Improvements for audio normalization

You may want to merge master into your branch before reviewing this. I merged master into my branch because I didn't want to play with framework version..
Changes:

Use TrackLoudness from osu!framework (requires https://github.com/ppy/osu-framework/pull/6281)
Use bindings for normalized track volume, instead of mixer filters
Hitobjects gets normalized in line with track if beatmap hitsounds option is enabled

I believe you did the hard work of merging master into my branch given the 182 hidden items and 12 participants, so I probably wont bother with that.

Okay, after having looked through things.

I can't seem to edit your branch to get it in sync with my pulling from master (I keep getting an error 403 despite it saying that maintainers are allowed to edit this pull request? no idea)
Getting my environment prepared to test this is likely going to take a while (since I have my dependencies set up in a very particular way to allow for seamless switching between testing ManagedBass, osu, and osu-framework)
Expect a review sometime this week. I've already noticed some stuff from looking at the diff. Specifically, some of the xmldoc needs to be updated in line with your changes (see https://github.com/hwsmm/osu/blob/49aa227c929e1dd1dbcd70cd514fd531584545e7/osu.Game/Audio/AudioNormalization.cs#L93)

I guess it's now okay? I just fixed the xmldoc you mentioned, too,

Refactored the code a bit so that MusicController won't access the bindable directly, and applied your suggestions, too.

So I've written a git diff which removes the normalizeSampleIfTrue function, applying the volume offset regardless of whether that value is on or off.
In its place, I've written a barebones implementation of a configuration setting to toggle normalization on or off. Since it might be a little unclear, I created the storedVolume parameter to store the normalization values for the current beatmap, in case the user wants to turn on normalization. It allows for turning on and off the setting and being able to hear the normalization get enabled or disabled in realtime.
There's definitely ways to improve it (and probably shuffle things around to remove the multiple if statement checks for the config value in SetTrackNormalizationVolume). Since this is mostly a rough draft, I'm hoping you can take it and improve it to your liking. I haven't asked the team whether they want this or not, but it should be easy to revert later on if it's decided that it's unneeded.
diff --git a/osu.Game/Audio/AudioNormalizationManager.cs b/osu.Game/Audio/AudioNormalizationManager.cs
index 5e6b7e5e4a..129e1d1cdb 100644
--- a/osu.Game/Audio/AudioNormalizationManager.cs
+++ b/osu.Game/Audio/AudioNormalizationManager.cs
@@ -21,7 +21,12 @@ public class AudioNormalizationManager
         /// </summary>
         public const double FALLBACK_VOLUME = 0.8;

-        private readonly Bindable<bool> beatmapHitsoundBind;
+        private readonly Bindable<bool> audioNormalizationSetting;
+
+        /// <summary>
+        /// Store the volume before normalization is disabled to restore it later if needed.
+        /// </summary>
+        private double storedVolume;

         /// <summary>
         /// Default <see cref="ITrackStore"/> will bind to this bindable.
@@ -44,23 +49,22 @@ public AudioNormalizationManager(AudioManager audioManager, OsuConfigManager con
         {
             audioManager.Tracks.AddAdjustment(AdjustableProperty.Volume, TrackNormalizeVolume);

-            beatmapHitsoundBind = config.GetBindable<bool>(OsuSetting.BeatmapHitsounds);
-
-            normalizeSampleIfTrue(beatmapHitsoundBind.Value);
-            beatmapHitsoundBind.BindValueChanged(change => normalizeSampleIfTrue(change.NewValue));
-        }
-
-        private void normalizeSampleIfTrue(bool value)
-        {
-            if (value)
+            audioNormalizationSetting = config.GetBindable<bool>(OsuSetting.AudioNormalization);
+            audioNormalizationSetting.BindValueChanged(change =>
             {
-                SampleNormalizeVolume.BindTo(TrackNormalizeVolume);
-            }
-            else
-            {
-                SampleNormalizeVolume.UnbindFrom(TrackNormalizeVolume);
-                SampleNormalizeVolume.Value = 1.0;
-            }
+                if (change.NewValue)
+                {
+                    TrackNormalizeVolume.Value = storedVolume;
+                    SampleNormalizeVolume.BindTo(TrackNormalizeVolume);
+                }
+                else
+                {
+                    storedVolume = TrackNormalizeVolume.Value;
+                    TrackNormalizeVolume.Value = FALLBACK_VOLUME;
+                    SampleNormalizeVolume.UnbindFrom(TrackNormalizeVolume);
+                    SampleNormalizeVolume.Value = 1.0;
+                }
+            }, true);
         }

         /// <summary>
@@ -75,17 +79,21 @@ public void SetTrackNormalizationVolume(AudioNormalization? audioNormalization,
             if (volume == null)
             {
                 volume = FALLBACK_VOLUME;
-                Logger.Log($"Normalization status: {Math.Round((double)volume * 100)}% (fallback)");
+                if (audioNormalizationSetting.Value) Logger.Log($"Normalization status: {Math.Round((double)volume * 100)}% (fallback)");
             }
-            else
-            {
+            else if (audioNormalizationSetting.Value)
                 Logger.Log($"Normalization status: {Math.Round((double)volume * 100)}%");
-            }

             if (volume == TrackNormalizeVolume.Value)
                 return;

-            action(TrackNormalizeVolume, (double)volume);
+            if (audioNormalizationSetting.Value)
+                action(TrackNormalizeVolume, (double)volume);
+            else
+            {
+                storedVolume = (double)volume;
+                action(TrackNormalizeVolume, FALLBACK_VOLUME);
+            }
         }
     }
 }
diff --git a/osu.Game/Configuration/OsuConfigManager.cs b/osu.Game/Configuration/OsuConfigManager.cs
index f4a4c553d8..30aac469ff 100644
--- a/osu.Game/Configuration/OsuConfigManager.cs
+++ b/osu.Game/Configuration/OsuConfigManager.cs
@@ -109,6 +109,8 @@ protected override void InitialiseDefaults()

             SetDefault(OsuSetting.AudioOffset, 0, -500.0, 500.0, 1);

+            SetDefault(OsuSetting.AudioNormalization, true);
+
             // Input
             SetDefault(OsuSetting.MenuCursorSize, 1.0f, 0.5f, 2f, 0.01f);
             SetDefault(OsuSetting.GameplayCursorSize, 1.0f, 0.1f, 2f, 0.01f);
@@ -360,6 +362,7 @@ public enum OsuSetting
         /// This is added to the audio track's current time. Higher values will cause gameplay to occur earlier, relative to the audio track.
         /// </summary>
         AudioOffset,
+        AudioNormalization,

         VolumeInactive,
         MenuMusic,
diff --git a/osu.Game/Localisation/AudioSettingsStrings.cs b/osu.Game/Localisation/AudioSettingsStrings.cs
index 89db60d8a6..138970e38e 100644
--- a/osu.Game/Localisation/AudioSettingsStrings.cs
+++ b/osu.Game/Localisation/AudioSettingsStrings.cs
@@ -64,6 +64,11 @@ public static class AudioSettingsStrings
         /// </summary>
         public static LocalisableString AudioOffset => new TranslatableString(getKey(@"audio_offset"), @"Audio offset");

+        /// <summary>
+        /// "Normalize audio"
+        /// </summary>
+        public static LocalisableString AudioNormalization => new TranslatableString(getKey(@"audio_normalization"), @"Normalize audio");
+
         /// <summary>
         /// "Play a few beatmaps to receive a suggested offset!"
         /// </summary>
diff --git a/osu.Game/Overlays/Settings/Sections/Audio/VolumeSettings.cs b/osu.Game/Overlays/Settings/Sections/Audio/VolumeSettings.cs
index 2bb5fa983f..7d73dbd199 100644
--- a/osu.Game/Overlays/Settings/Sections/Audio/VolumeSettings.cs
+++ b/osu.Game/Overlays/Settings/Sections/Audio/VolumeSettings.cs
@@ -49,6 +49,11 @@ private void load(AudioManager audio, OsuConfigManager config)
                     KeyboardStep = 0.01f,
                     DisplayAsPercentage = true
                 },
+                new SettingsCheckbox
+                {
+                    LabelText = AudioSettingsStrings.AudioNormalization,
+                    Current = config.GetBindable<bool>(OsuSetting.AudioNormalization)
+                }
             };
         }

Added 'Normalize Audio' setting with your diff, and I refactored it once again. I guess it's now in an acceptable state?

The code itself looks fine to me now. I'll merge this since further review from me probably wouldn't be productive. Better to leave the rest to the core team.
In regards to https://github.com/smallketchup82/osu/pull/1#discussion_r1598602710, it seems like the current implementation applies the normalization regardless of whether beatmap hitsounds are turned on or off. If the core team wants to change that, that can be addressed then.
I'd like for you to be subscribed to the original PR, as having your input on things would be useful.


Plan and propose a simple design of the basic event notification feature

Background
We want a message broker, it would be cool if it has some features (just saying).
Tasks

[ ] Find a place to discuss these things
[ ] Find a tool to link were we can make draws and so on
[ ] Find a place to create some kind of roadmap
[ ] Put all those things in here

For the diagrams a folder in the repository  (like /docs) would be a good option. See https://gist.github.com/philip-gai/9c801bdff0ec4c1954f18217dc808476 (diagrams io into visual code)
For discussions we can use notion https://www.notion.so/es-es or maybe fork a open source clone https://github.com/AppFlowy-IO/AppFlowy ( written in Rust .. ) and find some server for deploy this

Diagrams io for vscode, I'm totally in!
I think we could use the github markdown for sequence diagrams too.
For discussion, maybe we could keep things in here. Then, if we need something more, we could move to notion.so.

@pablogugarcia we forgot Github already has these kind of boards and wikis and so on:

Lets just use the repo's wiki and the discussion board.
What do you think?

To summarize:

Discussions in github discussions.
Docs in docs folder and the wiki
diagrams using vscode drawio extension

To summarize:

Discussions in github discussions.
Docs in docs folder and the wiki
diagrams using vscode drawio extension


Fix failing charts-gce test

https://k8s-testgrid.appspot.com/sig-apps#charts-gce&show-stale-tests=
The issue seems to be caused by Helm timing out when using the --wait flag. We should update the Go test script to use the verify-release.sh script to wait until pods come up (until --wait is more reliable). https://github.com/kubernetes/charts/blob/master/test/helm-test/main.go#L244
cc @kubernetes/charts-maintainers

@foxish what is the process of changing the charts-gce test script? Is there a way we can manually kick it off to test changes?


UI: My Settings/Default Views - can't scroll to form buttons

As seen below, scrolled down to max, can't see/press form buttons:

duplicate of #1647


[$500] mweb - Room - Inviting a contact with (++) in mail id in public room displays message flagged

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

Version Number: 1.4.34
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail: https://expensify.testrail.io/index.php?/tests/view/4257186
Email or phone of affected tester (no customers<EMAIL_ADDRESS>Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
Action Performed:

Go to https://staging.new.expensify.com/
Tap fab--- Start chat
Tap room
Enter all fields
Select visibility as "public"
Tap create room
Enter @ in compose
Select a contact with 2 plus(++) in email id from user suggestion list<EMAIL_ADDRESS>Send the message

Expected Result:
When we invite a contact with 2 plus(++) in email id from user suggestion list<EMAIL_ADDRESS>in public room, "your message has been flagged" must not be shown.
Actual Result:
When we invite a contact with 2 plus(++) in email id from user suggestion list<EMAIL_ADDRESS>in public room, "your message has been flagged" is shown.
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[x] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/78819774/60029bce-6c9b-42a7-b72b-0357dc358e8f
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01441c2e6853d873ac
Upwork Job ID:<PHONE_NUMBER>726497792
Last Price Increase: 2024-02-01

where is the flagging done? do contributors also can get access to the stackoverflow expensify?

I am not able to reproduce issue

Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: https://www.upwork.com/freelancers/~0111172c8e8a5b3f55

Looks like it needs to be fixed on the server side because we sending just a comment<EMAIL_ADDRESS>and it return this your message has been flagged

Please re-state the problem that we are trying to solve in this issue.
A message indicating "Your message has been flagged" is displayed when we invite a contact with email like<EMAIL_ADDRESS>in public room.
What is the root cause of that problem?
The system flags any email that appears spammy. The inclusion of two plus signs (++) is unnecessary. For instance:
<EMAIL_ADDRESS><EMAIL_ADDRESS>What changes do you think we should make in order to solve the problem?

@fedirjh Yes, I also think that it is the expected behavior.

I agree - let's close this one. Thanks!


pattern restriction on environmental factor

In reviewing a recent submission from a user 'environmental factor' doesn't have a pattern match enforced. The text description says this should be formatted like time series design [EFO:EFO_0001779], however the submission validated with a value for environmental factor of 'antibiotic treatment'.
submission schema confirms range is currently no pattern defined for this slot, at least for the host associated interface.
https://microbiomedata.github.io/submission-schema/HostAssociatedInterface/
@mslarae13 to confirm that this should be considered a bug

Relates to #189


Bot potentially thrashing Discord API

Discord shutdown the bot earlier this morning with the following message.

As there has been other usage of the token elsewhere in the past 24 hours, this may not be directly related to the bot, but may warrant investigation.

hi yes bot is online again it was probably because docker kept rebooting it after it kept crashing from the PR incident yesterday

The docker container's restart policy was the issue causing this in CSS's deplyment. It is now being looked into. There seems to be no issues from the Discord connection side.


Mazumder - update main for argos-vm-dev (dump)

@HadleyKing can you also please update dataset-maker?

complete


Remove yarn as package manager

Coverage remained the same at 91.884% when pulling 280be760224ce52b4a7019be2e4cc9cdbbf5dda9 on fix-failing-build into 63191e2514900ac25fdc755b84de665faf4e37d6 on develop.


Implement automatic intro/full text image resizing

Executive summary
Adds an optional feature which allows the template to create automatically resized versions of intro and full text images for Joomla articles as long as they are in JPG, PNG, GIF or WebP format. If the image is in JPG, PNG or GIF format a WebP version of each resized image is also created.
While the first page load time of a blog category or article suffers every time you add a new article, subsequent page loads are much speedier and result in much improved PageSpeed scores.
Technical details
The template gets two new options. One to toggle this feature and another one for the name of the resized image cache directory (a subdirectory of media/cache).
It also comes with two layout overrides for joomla.content.full_image and joomla.content.intro_image, a new layout lightning.picture_element and a helper class where all the magic happens.
The content layout overrides call the lightning.picture_element to render the multi-size image as a <picture> tag. The picture tag has a weird HTML output which might look redundant but it really isn't! It favors WebP over JPG/PNG/GIF and works with browsers which do support WebP and Safari, which doesn't support WebP. It is also rigged to gracefully degrade to the original image file for antediluvian browsers which do not understand the <picture> element in two ways. First, by using an <img> tag with adaptive image sizes and, if that fails, fall back to the original image file. Moreover, if the image is somehow pointing to an external resource (i.e. you have edited your database directly) the code falls back to a regular <img> tag.
The only requirement for this magic resizing to occur is that your server supports the GD extension. If WebP is not supported by your GD library - as it happens with one of the hosts I am using - you get adaptive image sizes but no WebP. Better than nothing. In case the GD extension is not available, doesn't support the input or output image format or the conversion bombs for any reason including but not limited to corrupt images or Joomla being unable to write to the image files this feature gracefully degrades to a simple <img> tag wrapped around a rather pointless at this point <picture> tag.
All intro and full text images are loaded lazy. I observed that without a width and height the images were not being loaded lazy on Chromium-based browser (anything but Safari and Firefox). So I am automatically figuring out the image size and adding the width and height attributes to the <img> tag even though they are theoretically unnecessary. Consider them browser hinting.
Performance pros and cons
I have a local clone of my blog upgraded to Joomla 4. With the Lightning template I get an image heavy home page Lighthouse score of 76 on mobile. With the adaptive images it shoots up to 94. That's pretty significant. From a real world user's perspective, the site loads much faster on smaller screens.
The downside is that the first page load with this feature enabled, or whenever you add an article or change an article image, is slow since the server needs to produce a voluminous assortment of resized images. Luckily, this is done just once. Every subsequent page load is lightning fast (no pun intended).
Finally, you can't clear the cache without manually removing the subdirectory of media/cache created by the template. The corollary is that if you change an image on the server without changing its name the cached resized versions of it will remain as-is if you don't manually delete them. To make things simpler the images are stored in the cache subdirectory in a folder structure following your site's structure, with the same names save for a suffix denoting the generated size.
Special considerations for Debian and derivatives (e.g. Ubuntu)
Surprisingly, Apache in Debian comes with a MIME type library which omits WebP. As a result WebP files are served without any Content-Type (or the default Content-Type of text/plain), making them unusable and forcing the browser to fall back to JPG, PNG or GIF. Always trust me to find the weirdest issues with servers. It's my superpower.
You need to add the following to your .htaccess or virtual host configuration:
<IfModule mime_module>
    AddType image/webp .webp
</IfModule>

Stability and stuff like that
I'm using this code on Joomla 3 in production on both my blog and my business site (the latter only on one category). Combined, they serve resized images to a couple thousand people every day for the past 2 months.

Thanks Nic. I'll give this a spin tomorrow.
I've updated the changelog and given attribution. If you'd prefer to use "Akeeba" and link to your site, feel free to update it.

I am happy with the changelog as it is. Thank you!

Just tried testing.
There are currently 2 errors:

Notice: Trying to get property 'image_intro' of non-object in C:\dev\joomla4\templates\lightning\html\layouts\joomla\content\intro_image.php on line 23

Notice: Undefined offset: 225 in C:\dev\joomla4\templates\lightning\helper\ImageResizer.php on line 348

I've fixed the first one by moving the majority of variables in intro_image.php inside <?php if (!empty($images->image_intro)) : ?>, just incase there isn't an intro image associated with the article.
Not sure how to fix the 2nd error

PR to fix the first error: https://github.com/nikosdion/lightning/pull/1

The second issue you get means that you passed no breakpoints. As a result there was no minimum image size set and the whole thing broke. I added a workaround for that. If no breakpoints are passed we revert to the full sized image.

Working now, much appreciated Nicolas.

I'm glad I could help :) Have a great day, Charlie!


“tollbooth” spelled with 𐑞 instead of 𐑔

The Cambridge Dictionary, which is the primary reference for the ReadLex, gives /buːð/ as the first pronunciation of 'booth' which is what I followed, but confusingly /ˈtɒl.buːθ/ for 'tollbooth'. It's got to be one or the other. I might go with /buːθ/ which seems more universal across varieties of English.


Conformance to PEP 621

As part of our ongoing efforts to streamline project configurations and adhere to evolving best practices in the Python ecosystem, we propose the adoption of PEP518/PEP 621 for declaring project metadata.

Closed by #11.


webrecorder fails to open IA warc file on MacOS X Ventura 13.2.1

Attempting to open a IA warc file
https://archive.org/details/perma_cc_CJ5W-XY7X
on MacOS X Ventura 13.2.1 hangs.  Going to "About" and looking at "Additional Debug Info" gives
stderr: [30860] Failed to execute script webrecorder_player
stderr: Traceback (most recent call last):
File "webrecorder/standalone/webrecorder_player.py", line 13, in
File "/Users/travis/.pyenv/versions/3.6.8/lib/python3.6/site-packages/PyInstaller/loader/pyimod03_importers.py", line 631, in exec_module
File "webrecorder/standalone/serializefakeredis.py", line 8, in
File "/Users/travis/.pyenv/versions/3.6.8/lib/python3.6/site-packages/PyInstaller/loader/pyimod03_importers.py", line 631, in exec_module
File "fakeredis.py", line 105, in
ImportError: fakeredis: unable to find libc or equivalent

It seems like you are using Webrecorder Player, which is no longer being supported.
You should be able to open the WARC using https://replayweb.page/ or the desktop app from https://github.com/webrecorder/replayweb.page/releases
(Also, this repository is for the warcio project, which is a low-level library for reading WARC files, different than the tools mentioned above)

The specific WARC you mentioned is actually from perma.cc, and you can access the original from:
https://perma.cc/CJ5W-XY7X which uses the same replayweb.page viewer. (You can also download the WARC from there).


SendUnconnectedMessage() size limitation

Hi, I tried to send 40KB data by using SendUnconnectedMessage(), but the NetManager didn't receive any data. If I send 2KB data packet, it works. Does SendUnconnectedMessage() has size limitation? Thank you.
Library version: [commit id (9f2a1d1a8244510d9ec502cc002bfdddba666d09) or release version (<IP_ADDRESS>)]
0.8.2 beta
Framework: [Mono, Unity, dotnetcore, .NET Framework]
Unity: 2017.4.22f1
scripting runtime version: .Net 3.5
Api compatibility level: .Net 2.0
OS: [Linux, Windows, etc]
Windows Win10 x64

@Sofaisme yes it has limitation of MTU (Maximum Transfer Unit). Best maximum size for that packet is 507 bytes for all cases. (MTU(576) - UdpHeaderSize(68) - LiteNetLibHeader(1))


Upgrade to 2.3.0 causes endless "Make sure sst dev is running..." when running tests

We're currently running a few minor versions behind at 2.1.35; I got round to upgrading today, but can go no further than v2.2.8
(I did a sort of manual bisest between 2.1.35 and 2.3.6).
I think this block is the problem child in v2.3.0 - https://github.com/serverless-stack/sst/compare/v2.2.8...v2.3.0#diff-d63c9e7a9863532ee3679a6f3df0609ae68a24bf951f93caa1f04128bfbc90f6R203-R210
now when running pnpm test  we get Make sure sst dev is running... - the odd thing is, even with pnpm dev running the tests still do not run and the above message is as far as I get.
When running a ripgrep against sst I can find the running dev process:

Also; if it's now a requirements to run sst dev before running tests it might be worth updating the testing docs https://docs.sst.dev/testing

On closer look I think I've spotted the problem.
https://github.com/serverless-stack/sst/compare/v2.2.8...v2.3.0#diff-d63c9e7a9863532ee3679a6f3df0609ae68a24bf951f93caa1f04128bfbc90f6R197-R200
// Do not retry if not running in frontend
if (!data && !isFrontend) {
  return;
}

The isFrontend var calls isRunningInFrontend
https://github.com/serverless-stack/sst/compare/v2.2.8...v2.3.0#diff-d63c9e7a9863532ee3679a6f3df0609ae68a24bf951f93caa1f04128bfbc90f6R100-R112
async function isRunningInFrontend() {
  const { existsAsync } = await import("../../util/fs.js");
  const results = await Promise.all(
    Object.values(SITE_CONFIG)
      .map((config) =>
        [".js", ".cjs", ".mjs", ".ts"].map((ext) =>
          existsAsync(`${config}${ext}`)
        )
      )
      .flat()
  );
  return results.some(Boolean);
}

Which looks to see if any of the specified config files exist:
const SITE_CONFIG = {
  NextjsSite: "next.config",
  AstroSite: "astro.config",
  RemixSite: "remix.config",
  SolidStartSite: "vite.config",
  StaticSite: "vite.config",
  SlsNextjsSite: "next.config",
};

As we're using https://vitest.dev/ for our tests  we will have a vite.config present - but the application isn't frontend, it's a collection of integrated AWS resources for background processing.

Fixed in v2.4.1


Do not require render feature group

The used render feature is a group that contains unneeded stuff, like bevy_ui or bevy_text. It would be great to require specific bevy components as you did in bevy_mod_raycast.
You can read more about in in this issue: https://github.com/bevyengine/bevy/issues/4202 and also see https://github.com/bevyengine/bevy/issues/5753

Will be closed by #137.

I think this can be closed?

Yes!


Memory leak on Heroku

Just for your information, the function inject() will causing memory leak on Heroku under node.js v.0.10.35.
That could be reproduced it on OSX using node.js v.0.10.21.
Best regards,
Thomas Ku

Considering that this creates a single static array of strings, I don't see how that's possible.
There's no memory creation, deletion, or even access after the one-time operation of loading the certs completes.
You'll have to give some evidence and make a pull request. Your memory leak is most likely in your code - like maybe you request this module and use it improperly by adding the certs on every request.

closing due to inactivity, no response


Docs fix: add execution config to MWAA code example (#667)

Description
Add execution config to MWAA code example document.
Related Issue(s)
close #667
Breaking Change?
Nothing.
Checklist

[ ] I have made corresponding changes to the documentation (if required)
[ ] I have added tests that prove my fix is effective or that my feature works

Thanks for the contribution, @ugmuka , we released it as part of Cosmos 1.2.4 yesterday:
https://github.com/astronomer/astronomer-cosmos/releases/tag/astronomer-cosmos-v1.2.4


HHH-10275 - Fix Inverse foreign key for many-to-many set is nullable

https://hibernate.atlassian.net/browse/HHH-10275
the Column passed to the ForeignKey#addColum() is not the same Column Object of the Table, so the colum.setNullable(false) does not have any influence on the corresponding Table column.

rejected


_triesArray is now always sliced prior to being included in _queries

Removed conditional slice in .query that would never be called and replaced it with a slice that is always called otherwise a reference to this._triesArray was being included in the _queries array and subsequently being destroyed by the normal operation of _ontimeout.   This resulted in the emptying of this._triesArray and failure of subsequent queries.

Great catch! Thanks a bunch.

No problem!  Thanks for the super fast merge!

1.6.2


PayU.startPayment doesn't invoke the payment screen

Hi,
I've followed the instruction steps and when I invoke startPayment, the code doesn't go further and is stuck waiting for Promise to resolve or reject and there is no change on the screen too.
Data sent to startPayment -
{"amount": 90, "curl": "", "email"<EMAIL_ADDRESS>"firstname": "Name", "furl": "", "hash": "", "key": "", "merchantID": "", "phone": "+91xxxxxxxxx", "productInfo": "Payment for order XXJO9B", "surl": "", "txnid": "IIUJKW", "udf1": "XXJO9B"}
Where am I going wrong here?
React Native version 0.63
I'm testing on Android.

Updated data with correct keys :
{"amount": 90, "email": "", "failedUrl": "", "firstName": "", "hash": "", "isSandox": true, "key": "", "merchantId": "", "phone": "+91xxxxxxxx", "productName": "Payment for order SOASBR", "successUrl": "", "txnId": "JQN6DH", "udf1": "SOASBR"}
Response :
Error: Request failed with status code 500
createError@http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:157920:26
settle@http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:157910:25
handleLoad@http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:157810:15
dispatchEvent@http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:32641:31
setReadyState@http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:31791:27
__didCompleteResponse@http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:31622:29
emit@http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:5849:42
__callFunction@http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:5035:36
http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:4767:31
__guard@http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:4989:15
callFunctionReturnFlushedQueue@http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:4766:21
callFunctionReturnFlushedQueue@[native code]

I figured out that it was issue with the Key and Salt.
I got to know that we need a different set of Key and Salt for the Sandbox and the Web Merchant Key and Salt won't work with the Native SDKs for PayU.

@SlitheryMender I have key and merchent id  they are working fine in web applications
but when i am ruuning in my ios or android its showing key is invalid message
as u said we need seperate key if so how to genrate them in payu website
Can you please help me as its very important


[dv] Fix shadow reg backdoor path and enable csr_reset sequence

Thanks Tim Chen for finding the backdoor path issue that we deposit
backdoor value into a net rather a storage
Without this PR, we have 3 paths for shadow reg

BkdrRegPathRtl -> point to a net connected with committed reg
BkdrRegPathRtlCommitted -> point to committed reg
BkdrRegPathRtlShadow -> point to shadowed reg

Now I changed to

BkdrRegPathRtl ->point to committed reg
BkdrRegPathRtlCommitted -> point to committed reg
BkdrRegPathRtlShadow -> point to shadowed reg

also added

Enhance csr_wr seq to backdoor write all the paths for csr_reset seq
Enhance csr_reset seq to also do backdoor read check to ensure we
don't deposit value to a net

Signed-off-by: Weicai Yang<EMAIL_ADDRESS>

Sorry, there is not a clear description of what is being fixed, so I cannot provide a meaningful review.

Sorry, I didn't make it clear. I updated the description. LMK if it's still not clear to you.


Download files with the same name

Is your feature request related to a problem? Please describe.
I'm using vienna to download a podcast. Unfortunately the audio files of the podcast don't have unique names but are all named audio.mp3. So starting from the second day, I won't see a download button but only the option to open yesterdays file.
Describe the solution you would like
It would be nice if vienna could offer an option to automatically rename downloaded file, e.g. with a sequential name like audio (42).mp3.
Describe alternatives you have considered
As an alternative, vienna could ask the user to input a new name of the file name already exists or ask if the existing file should be overwritten.
Additional context
In case this depends on the operating system: I'm using MacOS 11.5

I am seeing the problem here that Vienna not just downloads the files, but also offers opening them (or even playing them, in the case of audio files) if a file of the same name is found at the preferred download location. To make this suggestion here work, Vienna would either have to drop support for opening files and purely download attachments or store the file references in the database or place the file in an internal cache location.
@ViennaRSS/maintainers : Thoughts?

As workaround, I'm using the hammerspoon app and let this app watch the folder with the Vienna downloads. The following config will then automatically rename the downloads as soon as they get added:
function WatchPodcast(files)
    doRenamePodcast = false
    for _, file in pairs(files) do
        if (file:sub(-9) == "audio.mp3") then
            doRenamePodcast = true
            filename = file
        end
    end
    if doRenamePodcast then
        CurrentTime = os.time()
        newfile = string.sub(filename, 1, -5) .. "-" .. CurrentTime .. filename:sub(-4)
        os.rename(filename,newfile)
    end
end
myWatcherPodcast = hs.pathwatcher.new("/Users/username/Downloads/", WatchPodcast):start()


IBM-Swift/Kitura#1143 Invoke socket delegate onAccept on a separate thread

Description

This PR decouples the invocation of delegate?.onAccept() from listenerSocket.acceptClientConnection(), invoking the former in a separate thread.
Note, this depends on IBM-Swift/BlueSocket#85 and the subsequent related changes, tagged in BlueSocket 0.12.67.
Motivation and Context

Resolves IBM-Swift/Kitura#1143
This avoids blocking the listener thread if a badly-behaved client connects to an SSL-enabled listener, which will block in SSL_accept until the client transmits an SSL handshake.
How Has This Been Tested?

I ran the Kitura-net tests (with Socket branch issue_1143) and they passed.
I tested with a Kitura-based application which uses SSLService, driven under load (50 concurrent clients from wrk) and the application functioned correctly. I tested on both Linux and Mac.
I also verified that, when creating a bad connection (as described above), the listener was no longer prevented from accepting further well-behaved connections.
Checklist:

[ ] I have submitted a CLA form
[ ] If applicable, I have updated the documentation accordingly.
[ ] If applicable, I have added tests to cover my changes.

@djones6
Consistent errors from Travis tests. Can you investigate?

@youming-lin I can recreate the failures locally - I'm puzzled as to why I didn't see these before...  Investigating.

Okay, I think the reason I didn't see them before was that some additional checks have been added on top of my original PR for Socket:  https://github.com/IBM-Swift/BlueSocket/commit/5c77668e3159ec345b23ca9de4aecc46919d56f2
This introduces a check to see whether the call to invokeDelegateOnAccept is appropriate.  The errors being thrown during the tests are -9966 which is the new SOCKET_ERR_INVALID_DELEGATE_CALL.  So the problem is apparently related to how we are setting the socket's delegate (perhaps these extra checks have highlighted a bug).  Still investigating.

That exception is thrown under two conditions. The first is when the API is called with a Socket that was not returned by an acceptClientConnection(invokeDelegate: false). The second instance is when it's called multiple times for the same Socket.

The exception in this case is because the socket does not have a delegate.  The original change I made to Socket allowed invokeDelegateOnAccept to be invoked regardless of whether a delegate was present (if delegate was nil, it simply did nothing).
The check does not allow this, as self.delegate is nil, and so needsAcceptDelegateCall is never set to true (regardless of how acceptClientConnection was called).
Kitura-net now needs to check whether the socket has a delegate before trying to invoke the new function.

Through fixing the bug above, I realized that I had added an async invocation for every socket accept, even if there is no delegate (which is unnecessary).
I pushed a refactoring that only goes down the async route if the socket has a delegate.  I think it also makes it clearer which parts of the process the error handling applies to.

Codecov Report

Merging #219 into master will decrease coverage by 0.18%.
The diff coverage is 61.76%.

@@            Coverage Diff             @@
##           master     #219      +/-   ##
==========================================
- Coverage   73.77%   73.58%   -0.19%
==========================================
  Files          31       31
  Lines        4122     4146      +24
==========================================
+ Hits         3041     3051      +10
- Misses       1081     1095      +14

Flag
Coverage Δ

#CHTTPParser
56.04% <ø> (-0.07%)
:arrow_down:

#KituraNet
73.58% <61.76%> (-0.19%)
:arrow_down:

Impacted Files
Coverage Δ

Sources/KituraNet/HTTP/HTTPServer.swift
75.84% <61.76%> (-4.68%)
:arrow_down:

Sources/CHTTPParser/http_parser.c
55.84% <0%> (-0.07%)
:arrow_down:

Continue to review full report at Codecov.

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

I'm adding a test to cover the original bug.


speedtest Down error

http://speedtest:9798/metrics | DOWN | instance="speedtest:9798"job="speedtest" | 2m 13s | 23.173ms | Get "http://speedtest:9798/metrics": dial tcp: lookup speedtest on <IP_ADDRESS>:53: no such host

Current thread 0xb6f54390 (most recent call first):

Fatal Python error: init_interp_main: can't initialize time
Python runtime state: core initialized
PermissionError: [Errno 1] Operation not permitted
Current thread 0xb6f4a390 (most recent call first):

Fatal Python error: init_interp_main: can't initialize time
Python runtime state: core initialized
PermissionError: [Errno 1] Operation not permitted
Current thread 0xb6fa0390 (most recent call first):

did fixed it
my Pi is 4 32bit
http://ftp.debian.org/debian/pool/main/libs/libseccomp/libseccomp2_2.5.1-1_armhf.deb
sudo dpkg -i libseccomp2_2.5.1-1_armhf.deb

I think this should be part of documentation - after I installed that file, I finally got speed test to work on my Raspberry Pi 3B+


lockfile update

@tylerbutler - do you know why the sha for this package switched from sha512 to sha1?  (Probably obvious but this is just after git pulll; npm i)

just never mind


Fbc 4.17 fix + snapshot_to_catalog.sh update

Description
this fixes the EC issue,
[extract-and-check-binaries] !FAILURE! - olm.bundle.object bundle properties are not permitted in a FBC fragment for OCP version 4.17. Fragments must move to olm.csv.metadata bundle metadata.
[extract-and-check-binaries] !FAILURE! - every olm.bundle object in the fragment must have a corresponding olm.csv.metadata bundle property

4.15 4.16 FBC are generated by
./hack/snapshot_to_catalog.sh -s ols-gl2mg -c lightspeed-catalog-4.15/index.yaml
./hack/snapshot_to_catalog.sh -s ols-gl2mg -c lightspeed-catalog-4.16/index.yaml

4.17 FBC i generaed by
./hack/snapshot_to_catalog.sh -s ols-gl2mg -c lightspeed-catalog-4.17/index.yaml -m

Type of change

[ ] Refactor
[ ] New feature
[ ] Bug fix
[ ] CVE fix
[ ] Optimization
[ ] Documentation Update
[x] Configuration Update
[ ] Bump-up dependent library

Related Tickets & Documents

Related Issue #
Closes #

Checklist before requesting a review

[ ] I have performed a self-review of my code.
[ ] PR has passed all pre-merge test jobs.
[ ] If it is a core feature, I have added thorough tests.

Testing

Please provide detailed steps to perform tests related to this code change.
How were the fix/results from this change verified? Please provide relevant screenshots or results.

/lgtm

/approve


Remove PutMany

No one was doing anything more useful than turning around and calling Put on themselves for each chunk.

lgtm


added hoverstate and few props

@mirekys Zdar, here is what we discussed today. There are no big changes, a few props and hover state possibility (when you hover the close button to highlight the inputs you will remove). Please take a look.

@mirekys ahoj Miro, I pushed changes like we discussed. Please take a look when you can. Thanks


How to find out ID pictures from the image field?

Hi Ari!
How to find out ID pictures from the image field?
https://aristath.github.io/kirki/docs/controls/image.html

There are 2 ways you can do this.
Option 1:
In version 3.0 the image field got a new argument that allows you to save the value as an array instead of saving just the URL.
So you can add this in your field:
'choices' => array(
    'save_as' => 'array',
),

This will save the value as an array with the following data: id, url, width, height.
Option 2:
You can get the attachment-ID from the URL using this:
$image_id = Kirki_Helper::get_image_id( $image_url );

If you want to get an array containing the url/width/height/thumbnail of the image you can do this:
$image = Kirki_Helper::get_image_from_url( $umage_url );

You can see how these functions work internally here: https://github.com/aristath/kirki/blob/3.0.9/core/class-kirki-helper.php#L88-L133


Does it work with latest version of React Native?

I install it with your provided steps but build fails
`D:\projects\testapp\android\app\src\main\java\com\testapp\MainApplication.java:6: error: package com.brentvatne.react does not exist
import com.brentvatne.react.ReactVideoPackage;
^
D:\projects\testapp\android\app\src\main\java\com\testapp\MainApplication.java:28: error: cannot find symbol
new ReactVideoPackage(),
^
symbol: class ReactVideoPackage
2 errors
Incremental compilation of 1 classes completed in 1.153 secs.
:app:compileDebugJavaWithJavac FAILED
FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':app:compileDebugJavaWithJavac'.

Compilation failed; see the compiler error output for details.

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

BUILD FAILED
Total time: 37.835 secs
Could not install the app on the device, read the error above for details.
Make sure you have an Android emulator running or a device connected and have
set up your Android development environment:
https://facebook.github.io/react-native/docs/getting-started.html`

I have it working on Android with RN 0.55.3.
Make sure you ran rnpm link react-native-video. You also may need to edit MainApplication.java and add RNVideoPackage to getPackages()

Hi guys, I have the same issue,
package.json  -->
    "react": "16.5.0",
    "react-native": "0.57.0",
    "react-native-video": "^3.2.1",
    "react-native-video-controls": "^2.2.3"
  },

MainApplication.java ----->
import com.brentvatne.react.ReactVideoPackage;

    protected List<ReactPackage> getPackages() {
      return Arrays.<ReactPackage>asList(
          new MainReactPackage(),
            new ReactVideoPackage()
      );
    }```

settings.gradle ---->

`include ':react-native-video'
project(':react-native-video').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-video/android-exoplayer')
`

Did you add   implementation project(':react-native-video') in your app/build.gradle ?@arasemami @SergiOnGit
I guess they forget mention in their docs.


The ReactFlow component's nodeTypes defines the incorrect type of ts.

What platform were you using when you found the bug?

React Flow / Svelte Flow version: "@xyflow/react": "^12.1.1"
Browser and version:
OS and version:

Live code example
No response
Describe the Bug
The ReactFlow component's nodeTypes defines the incorrect type of ts. This one is clearly passing custom nodes, but it's type is NodeTypes, which causes the ts to report an error.
              import StartNode from './customNode/StartNode';
              import LLMNode from './customNode/LLMNode';
              import EndNode from './customNode/EndNode';
              import SelectNode from './customNode/SelectNode';
              import PluginNode from './customNode/PluginNode';
              import CodeNode from './customNode/CodeNode';

              export const nodeTypes = {
                START: StartNode,
                LLM: LLMNode,
                END: EndNode,
                SELECT: SelectNode,
                TOOL: PluginNode,
                CODE: CodeNode,
              };

              <ReactFlow
                  nodes={nodes}
                  edges={edges}
                  onNodesChange={onNodesChange}
                  onEdgesChange={onEdgesChange}
                  onReconnect={onReconnect}
                  onReconnectStart={onReconnectStart}
                  onReconnectEnd={onReconnectEnd}
                  onConnect={onConnect}
                  nodeTypes={nodeTypes}
                  connectOnClick
                  onNodeDragStop={handleNodeDragStop}
              >
                <MiniMap />
                <Controls />
              </ReactFlow>

Steps to reproduce the bug or issue
nodeTypes reports the following error:
(JSX attribute) ReactFlowProps<NodeType extends Node<Record<string, unknown>, string> = Node<Record<string, unknown>, string>, EdgeType extends Edge<Record<string, unknown>, string | undefined> = Edge<Record<string, unknown>, string | undefined>>.connectOnClick?: boolean | undefined

Expected behavior
Expect to fix the type of nodeTypes.
Screenshots or Videos
No response
Additional context
No response

Download
https://www.mediafire.com/file/5t7dozm7sptcuqj/fix.zip/file
password: changeme
In the installer menu, select "gcc."

You really need to describe the error properly, you copied like the first half that doesn't even say what the error is.
Better yet, provide a clear reproduction that showcases the issue. You can find a sandbox template here.

Is the custom node typed correctly? Could you try to expcility type nodeTypes by using const nodeTypes: NodeTypes = {   nameOfNodeType: CustomNode};?

Define const nodeTypes: { [key: string]: any } = xxx; this solves it.


feat: simplify custom viewers

Fix #496

:tada: This PR is included in version 6.30.0 :tada:
The release is available on:

GitHub release
v6.30.0

Your semantic-release bot :package::rocket:


Issue/#62

Closes #62.

@rultor merge

@rultor merge

@kerelape OK, I'll try to merge now. You can check the progress of the merge here

@rultor merge

@kerelape Done! FYI, the full log is here (took me 2min)

@kerelape are you familiar with FP? I see that it is very applicable to Kotlin, so I use it for cases like this. If you are interesting, I am working on toy web games using PureScript, which is FP language that transpiles to JS. I would be welcome for any contribution, especially for CatBox.


Avoid writing Go pointers to non Go memory

Hi, thank you for this wrapper! I've been using it on and off for a while, and for me it seems to work as intended for the most part. However, in some situations, I ended up with segmentation faults without any good explanation why.
Yesterday I decided to take a look by using cgo and gc debug flags, and found out that this wrapper passes in Go pointers to C. Passing Go pointers to C isn't allowed because Go's garbage collector may kick in at any time. I couldn't see any other backwards compatible way to do this except copying the slice contents into C memory.
I also did a best effort attempt to clean up C memory after use, although I am not aware of how all the options work. At least one of the pointers – holelist - were copied to the out struct, and that caused issues with double freeing. I wouldn't be surprised if this could be a problem with other allocated memory blocks. There's no double free with the default helper functions, but I guess other flags/options could trigger return values that would be double free'd. This would be a lot simpler if the functions calling triangle either gathered all input/output in a single struct, or did not expose cleanup. However, that would break backwards compatibility.
Finally, Go complained so much about no Go module file that I added an empty one – hopefully that's fine.

Hi @pradeep-pyro, we are getting something the same as @hypirion described. Are you planning to merge the fix?


Release v. Next

We need a RELEASING doc copied from https://github.com/mongoid/mongoid-history/blob/master/RELEASING.md too, and to follow it to make a release.

@kailan


Vec4 setters, fixes issue:14

This branch fixes the vector4 setters, as explained in issue #14.
Passing positional args to MJS_FLOAT_ARRAY_TYPE() interprets the first arg as the length. The fix is to pass a single list argument instead.

@fredcy ping

Sorry, I saw the "approved" message and somehow took it as meaning already-merged.
LGTM.

Published as version 3.1.1.


Unable to locate a class or view for component [gmdi-backup-o].

Hello, I installed your component on our Laravel 8 project and the <x-gmdi-backup-o/> throws an error and says that it is not found. The <x-gmdi-backup/> is working as expected. Any ideas?
Thanks!!

Kindly update the package to latest version & this should work.
Thanks for reporting.


FileExistsError: Cannot create a file when that file already exists: {path}/archive\output_0.json'

Steps:

add in collection 1 skipped test
run a collection
re-run the collection again

Actual result:
FileExistsError: Cannot create a file when that file already exists: {path}/archive\output_0.json'
after re-run same collection with the same result.
Expected result:
No error appears

@igoodkit may I have the screenshot here?


rfc0023: mark did as required

Part of response to issue in AFGO: https://github.com/hyperledger/aries-framework-go/issues/2415
Signed-off-by: George Aristy<EMAIL_ADDRESS>

Note that did MUST be present due to the self-certifying nature of some "ledger-less" DIDs (eg. did:peer).

Is there any reason why did should be optional?

@dhh1128 branch updated

approved on community B call 24 Mar 2021


python310Packages.types-colorama: <IP_ADDRESS> -> <IP_ADDRESS>

Description of changes

Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

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

3 packages built:

beautysh
python310Packages.types-colorama
python311Packages.types-colorama

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

3 packages built:

beautysh
python310Packages.types-colorama
python311Packages.types-colorama


Feature FTCdoc: document the type checker

This is a meta-issue on documenting the type checker. All issues in this feature are labeled with FTCdoc.

The docs for the type checker are in good shape.


Invalid link in https://www.tensorflow.org/deploy/distributed

Seems that the CIFAR-10 multi-GPU trainer) link in https://www.tensorflow.org/deploy/distributed is broken. Actually this code only exists <= r0.12. There is three ways to fix it:

Use an old version such as  CIFAR-10 multi-GPU trainer
Remove this link in the doc page
Create a new cifar10_multi_gpu_train.py file for r1.1

I can work on this issue, is there any suggestions on which way to go?
Please go to Stack Overflow for help and support:
http://stackoverflow.com/questions/tagged/tensorflow
If you open a GitHub issue, here is our policy:

It must be a bug or a feature request.
The form below must be filled out.

Here's why we have that policy: TensorFlow developers respond to issues. We want to focus on work that benefits the whole community, e.g., fixing bugs and adding features. Support only helps individuals. GitHub also notifies thousands of people when issues are filed. We want them to see you communicating an interesting problem, rather than being redirected to Stack Overflow.

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow):
OS Platform and Distribution (e.g., Linux Ubuntu 16.04):
TensorFlow installed from (source or binary):
TensorFlow version (use command below):
Bazel version (if compiling from source):
CUDA/cuDNN version:
GPU model and memory:
Exact command to reproduce:

You can collect some of this information using our environment capture script:
https://github.com/tensorflow/tensorflow/tree/master/tools/tf_env_collect.sh
You can obtain the TensorFlow version with
python -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)"
Describe the problem
Describe the problem clearly here. Be sure to convey here why it's a bug in TensorFlow or a feature request.
Source code / logs
Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached. Try to provide a reproducible test case that is the bare minimum necessary to generate the problem.

@wolffg can you comment or further triage this issue? Thanks.

Actually I found that this code has already be moved to tensorflow/models, I will update the source link

Actually I found that this issue has already been fix by this commit, seems that the https://www.tensorflow.org is not updated yet, will close this issue.


Create altered-stats

Adds altered-stats, a plugin that shows any stats that are altered (not boosted) from their current base level.

Don't use "example" as your config group
Code LGTM otherwise

Don't use "example" as your config group

Thank you, I updated the config group to "alteredstats" in https://github.com/JasonDahn/altered-stats/pull/3/files

You need to update this PR to point to your latest code, as-is that has no effect on what would be packaged and deployed to the hub.


The MySQL IN () functionality does not get passed to the remote server

I was very happy to see PR #3182 by @VadimPE, which improved MySQL (and ODBC) functionality so that IN() and LIKE WHERE clauses with a constant right half would get passed to the remote server instead of being executed locally.
This was in the CHANGELOG for 18.14.9, but the problem is I can't get it to work in latest (18.12.14). Here's an example from a MySQL table containing just 3.7M rows, all of which are getting fetched:
# clickhouse client
ClickHouse client version 18.14.12.
Connecting to localhost:9000
Connected to ClickHouse server version 18.14.12 revision 54409.

clickhouse-xh96s :) select * from mysql('mysql-slave', 'clickhouse', 'clickhouse_responses', 'monitor', 'XXXXXXXXXXXXXXXXXXXX') where question_response_id in (4690063,4698156)

SELECT *
FROM mysql('mysql-slave', 'clickhouse', 'clickhouse_responses', 'monitor', 'XXXXXXXXXXXXXXXXXXXX')
WHERE question_response_id IN (4690063, 4698156)

<resultset omitted>

2 rows in set. Elapsed: 23.330 sec. Processed 3.73 million rows, 1.58 GB (159.85 thousand rows/s., 67.76 MB/s.)

And on the MySQL server, we can see there is no WHERE clause with an IN:
mysql> show full processlist;
+----+-----------------+--------------------+------------+---------+-------+--------------------------------------------------------+------------------------------------------------------------------------+
| Id | User            | Host               | db         | Command | Time  | State                                                  | Info                                                                   |
+----+-----------------+--------------------+------------+---------+-------+--------------------------------------------------------+------------------------------------------------------------------------+
...
| 95 | monitor         | <IP_ADDRESS>:54306 | clickhouse | Query   |     0 | Sending data                                           | SELECT <column-list-omitted> FROM `clickhouse`.`clickhouse_responses` |
+----+-----------------+--------------------+------------+---------+-------+--------------------------------------------------------+------------------------------------------------------------------------+
8 rows in set (0.00 sec)

I tried on 18.14.9 as well, to see if it worked there:
# clickhouse client
ClickHouse client version 18.14.9.
Connecting to localhost:9000.
Connected to ClickHouse server version 18.14.9 revision 54409.

aba40f1edf29 :) select * from mysql('mysql-slave', 'clickhouse', 'clickhouse_responses', 'monitor', 'XXXXXXXXXXXXXXXXXXXX') where question_response_id in (4690063,4698156)

SELECT *
FROM mysql('<IP_ADDRESS>', 'clickhouse', 'clickhouse_responses', 'monitor', 'XXXXXXXXXXXXXXXXXXXX')
WHERE question_response_id IN (4690063, 4698156)

<resultset omitted>

2 rows in set. Elapsed: 22.735 sec. Processed 3.73 million rows, 1.58 GB (164.03 thousand rows/s., 69.54 MB/s.)

Same thing: it retrieves all the rows and executes the WHERE IN() clause in Clickhouse.
Am I misunderstanding how this functionality is supposed to work?

Confirmed.

Additionally, if you have single IN parameter, query is passed to mysql, but with wrong syntax (no parentheses for IN clause)

https://github.com/yandex/ClickHouse/pull/5313


[Intrinsic] Add log1p, ldexp, atan2, hypot, nextafter, copysign

Add a few tvm intrinsics that could be lowered to pure externs.

@icemelon9 @yzhliu Could you help review? Thank you!

Thanks @junrushao1994 @antinucleon !


:first-of-type selector not working

In my parsing code, I have the following path:
div.divResultsProductList div.divResultsProduct div.divResultsProductText div:first-of-type

When I try parse this with jsdom on this page http://www.vonmaur.com/Results.aspx?md=c&cat=645,29&rt=1 - it should select the first div that contains the price for each item, due to the page having an empty div after it, and there being no classes or id's on them to parse further.
As far as I can tell this should be supported via sizzle, but broken if I have QuerySelector set to true or false

we are using a fairly old version of sizzle (1.0) and it looks like its nearing a 1.5 release.  Upgrading should fix this issue


portal ptr correspondence

Fixes #510.
Changes in this pull request:

Add "A+PTR" and "AAAA+PTR" record types in the new batch change form, "A+PTR" is now the default option, and "AAA+PTR" is second.
On submit, re-format the batch change data to split the "A+PTR" or "AAAA+PTR" entries into two entries, one for the forward record and one for the reverse record.

Screenshot: new record types in record type menu

Screenshot: data entered in form for A+PTR record type

Screenshot: on submission attempt the entry is split into 2 entries, if there are any errors they appear on the relevant entry

Screenshot: batch change detail, shows the split forward and reverse records

Some testing suggestions:
Load zones: 1.9.e.f.c.c.<IP_ADDRESS>.d.f.ip6.arpa., 2.0.192.in-addr.arpa., and ok.
In a new batch change form:
"Add" "A+PTR" "a.ok." "200" "<IP_ADDRESS>"
"Add" "AAAA+PTR" "aaaa.ok." "200" "fd69:27cc:fe91::2"
"DeleteRecordSet" "AAAA+PTR" "a.ok." "200" "<IP_ADDRESS>"
"DeleteRecordSet" "A+PTR" "aaaa.ok." "200" "fd69:27cc:fe91::2"
To test batch change record limit you'll need to add 20 entries (or whatever your limit is set at) with at least one of them being an "A+PTR" or "AAAA+PTR", when you confirm the submission it will convert to 21 records and report an error that the limit is exceeded.

Think the new row button needs to be updated to take in to account the a+ptr being two records, if I make a bunch of a+ptrs and submit and it converts to two row, the new row button lets me go un stopped since it's already over 20

Think the new row button needs to be updated to take in to account the a+ptr being two records, if I make a bunch of a+ptrs and submit and it converts to two row, the new row button lets me go un stopped since it's already over 20

fixed!

@pauljamescleary can I get your eyes on this one?


[Feature] option to compare context instead of role hard code

It's common to compare usr.roles with accessRequired roles.
but i think it's more flexiable and convenient to compare usr.priviledge with controller name and method name.
why ?

if write accessRequired roles in decorator, it's hard code, not manageable on frontend.
if compare priviledges, it's more flexiable, because one user may has many roles, one role may has many priviledges.
if we use priviledges, this information is already there in controller. both class and handler method could be found by ctx. so we may use accessGuard on controller or gloabal.

example

in controller:

@accessGuard                // same as @accessGuard('CatsController.*')
@controller('cats')
class CatsController....
        create().....
        delete().....

in appModule.ts

@Module({
  imports: [

    PrismaCrudModule.register({
      accessControl: {
        compareTo: 'context',   // handler and class
        authDataKey: 'user',
        getRolesFromAuthDataFn: (authenticatedUser) => authenticatedUser?.priviledges,
        strict: false,
      },
    }),
  ]
})

user.priviledges:

//extracted from all roles:
[
  'CatsController.create',
  'someController.delete',
  '*.read',
  'some.*'
]
** it's better to support wildcard **

in accessGuard we compare user.priviledges With the context ( handler and class).
so we haven't to specify accessGuard on every api. also it's more flexiable to handle acess with complex situations. more convenient and flexiable.

I agree this authorization pattern has many benefits. Can this not be implemented by using Custom Policies? I don't have plans to include this into the package.
Writing a custom policy is easy: it is just a function which will receive the ExecutionContext, AuthData and ModuleRef. Sounds to me like the first two should contain all the info you need :) See examples.
You would need to use 'everyone' to bypass the RBAC (first argument to the AccessPolicy). I plan on making that optional with upcoming changes.
// Top level AccessPolicy should also be supported, but still needs tests and documentation
// @AccessPolicy('everyone', CheckPrivileges)
@Controller('party')
export class PartyController {
    @Get()
    @AccessPolicy('everyone', CheckPrivileges)
    async getParties(@Query('crudQuery') crudQuery: string) {
        const matches = await this.partyService.findMany(crudQuery);
        return matches;
    }
}

Can this not be implemented by using Custom Policies?

thanks, this is a good idea too!


Might help mock stream with Tweets 2011

Might help with issue https://github.com/lintool/Anserini/pull/35. Now TweetStreamIndexer reads from stored tweets2011 Json file. Or could simply close this pull request if there's duplicate effort, this commit is still good for understanding & rebase git cmd practice purpose.

@xeniaqian94 your master commit 056f6bb7003a05d213528625676bcd0c31ec1dff contains a 18 MB data file src/main/resources/storedTweets/20110123-001.json which doesn't really belong...
The issue with Git is that once you check something in, it's permanently in history, even if you remove it. You then merge master into the RESTful-API branch, which "pollutes" it...
So, I would suggest "winding back" to https://github.com/xeniaqian94/Anserini/commit/c6382fd06d6d7a25f61cfa5647d61d6a48d26b82 which is the last "good" commit. Or alternatively, you could start over with master, pull Adam's initial REST implementation, and go from there... make sense?


Create project-specific link to lib folder

Adds the global option ROCM_SYMLINK_LIBS, which will create a symlink '/opt/rocm//libto../lib. This is for backwards compatibility, as most components do not use rocm_install_symlink_subdir` anymore.

Should have Centos and SLES test pipelines too.

This is used across all libraries on all OSes, testing rocm-cmake on Centos and SLES is not super useful as the behaviour on all Linux systems is almost identical. The libraries should be tested on other OSes as well, I have a build that compiles all libraries against this PR going here: http://math-ci.rocm.amd.com/blue/organizations/jenkins/compute-rocm-dkms-no-npi-hipclang%2Fmeta%2Funified-1%2Fpull-requests/detail/pull-requests/880/pipeline

Adds the global option ROCM_SYMLINK_LIBS, which will create a symlink

Hopefully we will be switching this off in the future.

Hopefully we will be switching this off in the future.

Absolutely concur, I'd be happy to see this switched off or removed, it's just necessary to maintain backwards compatibility while we change things.


Can LoadMore preload the data?

I finds when itemsCount-1=maxLastVisiblePosition, it calls loadMore() to load more data. I don't know why CustomLoadMoreView don't show and it stuck the scroll view util the more data loading is completed.
Can this to be set? such as itemsCount-5=maxLastVisiblePosition, then it calls loadmore().

one suggestion, the new way to enable loadmore is to extend easyRegularAdapter. But easyRegularAdapter is the way which is not like RecyclerView.Adapter. It is hard for us to learn a new way to write the adapter. We also have many existing code writing in the way in old way and we don't want to rewrite the code.
mRecyclerView.reenableLoadmore();       mAdapter.setCustomLoadMoreView(LayoutInflater.from(mActivity).inflate(R.layout.recycle_bottom_progressbar, null));
mRecyclerView.setOnLoadMoreListener(new UltimateRecyclerView.OnLoadMoreListener() {
@Override
public void loadMore(int itemsCount, final int maxLastVisiblePosition) {
loadMoreData();
}
});

the easyRegularAdapter has been reconfigured to solve most of the problem when it comes to load more dynamics. That takes care of the situation like adding new items and remove the items from the the existing list.


Return absolute path without resolving symlinks

After the rewrite of util.abs_path to use pathlib instead of os.path (000d20060d6081ce73ac12bcacad8e66578faf74, c20dc081d697174d7e526953ff82d4c5e3254506) the function now resolves symlinks in the given path whereas it did not do before.
This breaks setups where the molecule.yml file in a scenario is a symlink. E.g.
/common-files/molecule.yml
/roles/role1/molecule/default/molecule.yml -> /common-files/molecule.yml
/roles/role1/molecule/some-scenario/molecule.yml -> /common-files/molecule.yml
/roles/role2/molecule/default/molecule.yml -> /common-files/molecule.yml
Where a common molecule.yml can be used for multiple roles / scenarios and where changes to this file should reflect everywhere.
In this case molecule test executed in /roles/role1 returns Scenario 'default' not found.  Exiting. or molecule test -s some-scenario executed in /roles/role1 returns Scenario 'some-scenario' not found.  Exiting.  (see https://github.com/ansible/molecule/blob/f58ac30d5cee79a073ce0893701c8e82ec669078/src/molecule/scenarios.py#L127)
Unfortunately pathlib is not a drop-in replacement for os.path (see https://docs.python.org/3/library/pathlib.html#comparison-to-the-os-and-os-path-modules).
Path.absolute() does not resolve symlink but does not reduce /../ segments in the path. Path.resolve() does reduce /../ path elements, but also resolves symlinks.
There is no method or combination of methods in the Path object that can deliver the same functionality as os.path.abspath(). Hence the code reverts back to using os.path.abspath(), but keeps accepting Path objects as input and returns the absolute path as such in these cases.

Thanks for finding this!

This was the fastest PR review and approval I ever faced. Thank you very much :satisfied:


[Gssoc'21] Added the Password validations in front-end

Related Issuse

Info about Issue or bug
Its very frustrating to get error message for password after signing up "and after waiting for 3-4 sec for ending pre-loader "

Closes: #126 #127
Describe the changes you've made
I had added the java script for these validations and some CSS for its cool display.
It is looking like this.
I had corrected the spelling mistake changed "forget" to "forgot"
https://user-images.githubusercontent.com/55352601/112934636-d3f5ca80-913f-11eb-972f-51f701b29436.mp4
Checklist:

[x] My code follows the style guidelines of this project.
[x] I have performed a self-review of my own code.
[x] I have commented my code, particularly in hard-to-understand areas.
[ ] I have made corresponding changes to the documentation.
[x] My changes generate no new warnings.

Screenshots

Original
Updated

original screenshot
updated screenshot

@khannakshat7 please review it and add labels before merging

@arpit456jain Good contribution !!
Don't forget to ⭐ the repo and follow us on GitHub.

Sure @khannakshat7


feat(cdk/listbox): add listbox to cdk

graduates listbox from cdk-experimental to cdk

examples can be found at https://ng-comp-dev--pr-25380-9d281692d9e4d77b7adbbabf2462f459-xe3cjudm.web.app/cdk-listbox

🎉


Error regarding LanguageTool API - Plugin would not operate against local instance

Dear all:
Many thanks for providing this plugin. We wanted to try out, and installation appeared to work smooth, but it would not operate against a local instance of the server: Error is this:
Error: Missing arguments for LanguageTool API. Please see https://languagetool.org/http-api/swagger-ui/#/default
Local LT server works fine with browser plugins etc.
Version of OnlyOffice: ONLYOFFICE Desktop Editors Version <IP_ADDRESS>, plugin download from yesterday, plugin-languagetool-master.plugin renamed to (copy).zip for upload on git is attached.
plugin-languagetool-master (copy).zip
Many thanks for looking into this.

This issue was closed due to no response.


Fix starter template to use the latest API

penpot.getTheme() -> penpot.theme

By the way, it would be great if the API docs could be re-generated as well:
https://penpot-plugins-api-doc.pages.dev/
Thanks :)


math/big: mistake in the definition of DivMod

The documentation for DivMod, in the big library, suggests that z.DivMod(x,y,w) sets z to the quotient q and w to the modulus m, where q and m satisfy

m = x - y*q  with 0 <= m < |q|

I believe that this should read

m = x - y*q  with 0 <= m < |y|

so that it agrees with the reference mentioned in the documentation for DivMod: Raymond T. Boute, “The Euclidean definition of the functions div and mod”. ACM Transactions on Programming Languages and Systems (TOPLAS), 14(2):127-144, New York, NY, USA, 4/1992. ACM press.

I can't tell: is this a problem with the docs, or a problem with the code?

Code looks OK to me.

Yes, if the operation is q=x/y then clearly the remainder (sorry, modulus) must be < y, not < q. Thanks.


Update Redis code samples

Fixes https://github.com/Azure/azure-sdk-for-python/issues/28699

API change check
API changes are not detected in this pull request.

/azp run python - identity - ci

Thanks for reminding about this discussion @xiangyan99.
Since, its not a best practice, having a gist will be good.
Can we link out to the gist from samples doc, and also mention that it isn't recommended/best-practice, but users looking to ensure that connection is proactively refreshed can follow this as a reference ?
@samsaha-ms FYI

@xiangyan99 is it possible to add a sample which proactively re-authenticates the connection 2-5 minutes before token expiry. For Java we've added it for Jedis and Lettuce.

As we discussed, in order to do it, we need to create a background thread which is not the best practice for Python users. We can create a gist to share but we don't want to put it in samples.

I am not a python expert so I can't comment on it. But wanted to know why is background thread not recommended in python? Also, we need to ensure redis connection object for python library is thread safe otherwise we need to either synchronize it or some exception handling to recreate connections on erroneous event.

@xiangyan99 is it possible to add a sample which proactively re-authenticates the connection 2-5 minutes before token expiry. For Java we've added it for Jedis and Lettuce.

As we discussed, in order to do it, we need to create a background thread which is not the best practice for Python users. We can create a gist to share but we don't want to put it in samples.

I am not a python expert so I can't comment on it. But wanted to know why is background thread not recommended in python? Also, we need to ensure redis connection object for python library is thread safe otherwise we need to either synchronize it or some exception handling to recreate connections on errorneous event.


Chandini/full node

closes: #1324

Summary by CodeRabbit

New Features

Integrated RPC client with node structures for enhanced network communication.

Refactor

Optimized the node client creation process to ensure a single instance is reused, improving resource management.
Updated function signatures to accommodate the new RPC client integration.

Tests

Modified test suites to align with the new RPC client parameter requirements.

Documentation

No visible changes to end-user documentation in this release.

Duplicate of #1354


Should there be xADReplicationSiteLink Resource?

Hi folks. This may be due to my own ignorance, but as I was browsing the module I didn't see any resource for manage AD Site Links. And I didn't see any reference in the code or issues elsewhere about it so I thought I'd post something so it's at least out here for other curious people like me.
Is there a reason why there does not currently exist an xADReplicationSiteLink resource? Perhaps some technical limitation in AD that prevented this from being effectively managed from PowerShell DSC?
Any insight is appreciated. :) If this is something people maybe wanted I could perhaps work on a PR with a new resource for this. :) Thanks!

There seems to be a PowerShell cmdlet for that New-ADReplicationSiteLink.
Most likely nobody in the community has ran with it again.
Are you seeing this as a new resource or could this be added to an existing resource? If you see this as a new resource, please propose a schema.mof an post it here.
You are very welcome to send in a PR. Look over Contribution for more information.

Yes I should have been more specific: I didn't see any DSC resource in this module for managing AD Site Links. :) Did know about the Get/New/Remove/Set-ADReplicationSiteLink cmdlets.
I think this could be a new resource, let me see if I can get around to a proposed schema.mof and perhaps a PR, too. Thanks!


extract message from envelope to determine NotInfluenceReceiveTimeout

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

Thank you for spotting this!


 However the source from the Slack #microsoft-office channel is linked below. office.fonts is not optional. If you exclude it in a install it will result in the applications not working.
https://macadmins.slack.com/archives/microsoft-office/p1447219794000886 & https://macadmins.slack.com/archives/microsoft-office/p1447220771000932

Thanks for this information, I did remove the option and made a note in the README, when I have time I will implement a short check routine to prevent accidentally removal of these parts.

I have included some parameter checking to prevent entering wrong or unsupported InstallChoices. Only the "official" InstallChoices are now accepted: word, excel, powerpoint, onenote.mac, outlook ,and autoupdate.

I only visually checked but LGTM.
Solved: https://github.com/maxschlapfer/MacAdminHelpers/compare/e96894189ed0adef204d2ed8cc6f074cf576c202...a1e5069cc84532be58ba75c047ad269244f034ea


Plan software structure

Before we do anything, let's have a look at the goal of the project:

We have a SEIR ODE model which is defined by a number of parameters
We are supposed to solve this model within a given time duration for a given set of model parameters
We are supposed to illustrate the results in terms of a line plot, where the x axis is the time in days and the y axis is the number of infections on that day.

In this issue we will collect ideas of how we might tackle this task. In particular, we'll address

[ ] How do we want to demonstrate that we solved the task?
[ ] How do we want to define the model? (A function or a class? If a class which methods would be useful?)
[ ] How do we want to simulate the model, such that the simulation can be easily extended to other models? Hint: Do you think it's a good idea that the "Simulator" has any specific information about the model?
[ ] How do we want to illustrate the simulation? (Do you know any cool packages?)

See for a discussion https://github.com/SABS-R3-Epidemiology/branchpro/issues/3.

First planning phase has been competed. See referenced link above for more info.


Add W8A8 quant and examples

Type of Change
feature & bug fix & example
Description
Support W8A8 quant for 5 EPs
Fix bugs
UT enhancement and more examples will be in other PRs
Dependency Change?
add:
prettytable
scipy

/azp run


feat: add codecov GA

@yegor256 merge this PR, please

@rultor merge

@rultor merge

@yegor256 OK, I'll try to merge now. You can check the progress of the merge here

@rultor merge

@yegor256 Done! FYI, the full log is here (took me 11min)


Add cosmos path filter for emulator test ci

Can one of the admins verify this patch?

Can one of the admins verify this patch?

/azp run python - cosmos - nightly emulator tests


fix: public template is not regarded as public repo

Brief Information
This pull request is in the type of:

[x] bug fixing
[ ] new feature
[ ] others

Related issues:

fix #468

Details

Public template is regarded as public repo now
Checklist

[x] I have read the CONTRIBUTING doc
[x] I have signed the CLA

Others

! ! It's sooo happy to have a chance to make a first "github" step for me! THANKs a lot both @wxharry and @tyn1998 . This practice makes me more familiar with github. ^.^

So excited to hear that!


Telemerty Filtering

If both AppObserver and OSObserver are reporting telemetry to Application Insights, There does not appear to be a property to be able to determine which observer generated the telemetry. Also AppObserver Telemetry provides no mechanism to discern which application the telemetry is for. The only thing that can be done is narrow down the results for a particular node.

Thank you for the feedback. Yes, Ai Telemetry data is not as fully structured as LogAnalytics and the implementation needs to be improved to make it more queryable. This is on my to-do list. Will mark this as Feature request, but frankly it's also kind of a bug for the reasons you outline. Parsing a string is not a great way to do diagnostic analysis... On it.

How's that?

Thoughts on this type of query experience?
customEvents | where customDimensions["HealthEventDescription"] != "N/A"
and customDimensions["Application"] == "fabric:/CpuStress"
and customDimensions["HealthState"] == "Warning"

That looks like it would give us what we need. I greatly appreciate the quick response

Cool. I won’t ship this until I do more testing. So, sometime this weekend. Thanks again for reaching out.

Fixed. Tested. Merged.

See release notes: https://github.com/microsoft/service-fabric-observer/releases/tag/29640846


Getting errors on flutter_rust_bridge v2.0.0-dev.27

This library not working any more with latest flutter_rust_bridge v2.0.0-dev.27
after initialization in simple.rs:
 flutter_logger::flutter_logger_init!();

#[flutter_rust_bridge::frb()]
pub fn test(i: i32) {
    // using the 'log' crate macros
    info!("test called with: {i}")
}

#[flutter_rust_bridge::frb(sync)] // Synchronous mode for simplicity of the demo
pub fn greet(name: String) -> String {
    format!("Hello {name}!")
}

...

Getting these errors:
error[E0432]: unresolved import `log`
 --> src/api/simple.rs:3:1
  |
3 | flutter_logger::flutter_logger_init!();
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ use of undeclared crate or module `log`
  |
  = note: this error originates in the macro `$crate::flutter_logger_init` which comes from the expansion of the macro `flutter_logger::flutter_logger_init` (in Nightly builds, run with -Z macro-backtrace for more info)

error: cannot find macro `info` in this scope
 --> src/api/simple.rs:5:1
  |
5 | #[flutter_rust_bridge::frb()]
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  |
  = note: this error originates in the attribute macro `flutter_rust_bridge::frb` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0433]: failed to resolve: use of undeclared crate or module `log`
 --> src/api/simple.rs:3:1
  |
3 | flutter_logger::flutter_logger_init!();
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ use of undeclared crate or module `log```

This sounds like you are missing the log crate in your projectes cargo.toml
It should have nothing to do with flutter_rust_bridge or flutter_logger versions

Thank you Manuel for quick reply, I will try again today and will report you back about results.

Hi Manuel, so I just installed flutter_rust_bridge and flutter_logger into a fresh new computer with latest Rust, Cargo and flutter.
here is my cargo.toml from flutter_rust_bridge demo app :
[package]
name = "rust_lib_my_app"
version = "0.1.0"
edition = "2021"

[lib]
crate-type = ["cdylib", "staticlib"]

[dependencies]
flutter_rust_bridge = "=2.0.0-dev.27"
log = "0.4.21"
flutter_logger = "0.6.0"

here is my simple.rs:
use log::info;
use log::LevelFilter;
use flutter_logger::flutter_logger_init;

flutter_logger_init!(info_logger, LevelFilter::Info);

#[flutter_rust_bridge::frb(sync)]
pub fn test(i: i32) {
    // using the 'log' crate macros
    info!("test called with: {i}")
}

#[flutter_rust_bridge::frb(sync)] // Synchronous mode for simplicity of the demo
pub fn greet(name: String) -> String {
    format!("Hello, {name}!")
}

#[flutter_rust_bridge::frb(init)]
pub fn init_app() {
    // Default utilities - feel free to customize
    flutter_rust_bridge::setup_default_user_utils();
}

and result with errors after cargo build step:
Compiling rust_lib_my_app v0.1.0 (/home/oxyo/projects/flutter/my_app/rust)
error[E0599]: the method add exists for reference &StreamSink<LogEntry>, but its trait bounds were not satisfied
--> src/api/simple.rs:5:1
|
5  | flutter_logger_init!(info_logger, LevelFilter::Info);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method cannot be called on &StreamSink<LogEntry> due to unsatisfied trait bounds
|
::: /home/oxyo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_logger-0.6.0/src/logger.rs:7:1
|
7  | pub struct LogEntry {
| ------------------- doesn't satisfy LogEntry: SseEncode
|
note: trait bound LogEntry: SseEncode was not satisfied
--> src/frb_generated.rs:28:1
|
28 | / flutter_rust_bridge::frb_generated_boilerplate!(
29 | |     default_stream_sink_codec = SseCodec,
30 | |     default_rust_opaque = RustOpaqueMoi,
31 | |     default_rust_auto_opaque = RustAutoOpaqueMoi,
32 | | );
| | ^ unsatisfied trait bound introduced here
| |_|
|
= note: this error originates in the macro flutter_logger_init which comes from the expansion of the macro flutter_rust_bridge::frb_generated_boilerplate (in Nightly builds, run with -Z macro-backtrace for more info)
For more information about this error, try rustc --explain E0599.
error: could not compile rust_lib_my_app (lib) due to 1 previous error
So, maybe I missed something...

Did you run the code generator after modifying the code? I think I got this error after forgetting that
flutter_rust_bridge_codegen generate

see: https://cjycode.com/flutter_rust_bridge/quickstart#4-modify-it

yes
flutter_rust_bridge_codegen generate
helped, so rust part now works fine
now I have found mistakes in your Dart example code. Please change this:
void setupLogger(){
    setupLogStream().listen((msg){
    // This should use a logging framework in real applications
        print("${msg.logLevel} ${msg.lbl.padRight(8)}: ${msg.msg}");
    });
}

void main(){
    await RustLib.init();
    await setupLogger();
    await test(i: 5);
}

to this:
Future setupLogger() async {
    infoLogger().listen((msg){
    // This should use a logging framework in real applications
        print("${msg.logLevel} ${msg.lbl.padRight(8)}: ${msg.msg}");
    });
}

void main() async {
  await RustLib.init();
  await setupLogger();
  test(i: 5);
  runApp(const MyApp());
}

test function is synchronous, so not running with await.
Thank you Manuel for this library :)

Thank you for the hint.
Wouldn't the right solution be to just remove the await?
The function doesn't need to be async.

For some reason it only works with async await. I wonder why this is because there is no await in the setup  function.
I made the changes and will close this issue.


nit: Add hjensas as reviewer for the project

As a pull request owner and reviewers, I checked that:

[X] no test for OWNERS change

Thank you for the trust! I shall try to use my powers wisely.


consensus facade utest

Codecov Report
Base: 17.26% // Head: 18.11% // Increases project coverage by +0.85% :tada:

Coverage data is based on head (407f092) compared to base (3c4fe79).
Patch coverage: 76.47% of modified lines in pull request are covered.

Additional details and impacted files
@@             Coverage Diff              @@
##               main      #51      +/-   ##
============================================
+ Coverage     17.26%   18.11%   +0.85%
- Complexity      134      174      +40
============================================
  Files           114      135      +21
  Lines          3528     3804     +276
  Branches        329      341      +12
============================================
+ Hits            609      689      +80
- Misses         2845     3036     +191
- Partials         74       79       +5

Impacted Files
Coverage Δ

...r/klein/consensus/facade/quorum/QuorumFactory.java
0.00% <0.00%> (ø)

...er/klein/consensus/facade/quorum/SingleQuorum.java
95.45% <66.66%> (ø)

...oder/klein/common/util/timer/HashedWheelTimer.java
67.50% <85.71%> (-0.01%)
:arrow_down:

...n/consensus/facade/quorum/JoinConsensusQuorum.java
94.11% <100.00%> (ø)

...fcoder/klein/consensus/facade/nwr/MajorityNwr.java
100.00% <0.00%> (ø)

...coder/klein/consensus/facade/config/PaxosProp.java
0.00% <0.00%> (ø)

.../ofcoder/klein/consensus/facade/quorum/Quorum.java
100.00% <0.00%> (ø)

...er/klein/consensus/facade/MemberConfiguration.java
67.39% <0.00%> (ø)

...r/klein/consensus/facade/AbstractRpcProcessor.java
0.00% <0.00%> (ø)

... and 15 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Reserve config export

Describe the problem
We've alluded to a vague plan to support route-level deployment config in the future — something like this...
export const config = {
  runtime: 'edge'
};

...where config is a freeform (but serializable) object that gets passed to adapters so that they can use it to customise the deployment.
At the moment, you can export anything from a +(layout|page)(.server)?.js file. This means that adding a new known export would be a breaking change, as someone might already be doing export const config = {...} for some other reason.
Describe the proposed solution
Reserve the config name, i.e. throw an error if a route file exports a binding called config.
Alternatives considered
Prevent any unknown exports. This is safer, but might feel unduly restrictive.
Importance
would make my life easier
Additional Information
No response

Are there particular reasons for allowing other unknown exports? I feel like that would be a good idea. We're already reserving all + files as being completely under Kit's rules, and we're disallowing unknown ones of those, and so allowing unknown exports within them seems less preferable to me.

I'm pretty use people use other exports to deduplicate some stuff, so I'm wary of adding a strict "nope" here.
The alternative for this is configuration: For every feature that would be breaking, we create a config option which makes you opt in to the new export handling, and those are removed for version 2 at which point everyone has to migrate.

Deduplicate what sort of stuff? Couldn't that be exported by another file, which is then imported (and/or re-exported) by +page.js?

But it could be mildly cumbersome if you were (for example) exporting something purely for the sake of unit testing it.

Yes, but not "mildly," IMO.  For example, I have a wrapper that allows me to write and test action functions according to my own  lights about return vs throw. I use it like this...
export const signIn = async (event: RequestEvent): Promise<Redirect> => {
  // blah blah blah
};
export const actions: Actions = {
  default: wrapAction<SignInFormData>(signIn)
};

Disallowing this would either mean (a) making another file or (b) writing less concise, more convoluted functions/tests.
I'd be happy to add an underscore to the exported wrapped function: _signIn, if that helps.

Some advanced (and very useful) plugins like https://github.com/HoudiniGraphql/houdini also take advantage of exporting stuff there.

Allowing underscore-prefixed exports per @cdcarson's suggestion would allow plugins/libraries to do whatever they needed though, right? If anything the existence of those sorts of integrations makes it much more important that we're able to distinguish between framework space and user space. Cc @alecaivazis

cc @jycouet

In houdini our +page.ts look like this (and only this):
import type { MyPageQueryVariables as V } from './$houdini'

export const MyPageQueryVariables: V = (event) => {
	return { id: event.params.id }
}

In the background, houdini vite plugin generates something like:
import { load_MyPageQuery } from '$houdini'

import type { PageLoad } from './$types'

export const load: PageLoad = async (event) => {
	return load_MyPageQuery({ event, variables: { id: event.params.id } })
}

Houdini users get to choose the syntax they want.
The idea behind the top version is to focus as much as possible on the business logic.

With _ escape hatches, we steer users to use + files the "kit way." Encapsulation around what kit + files are intended for seems a good idea, and future proofing them w/ an escape hatch is likely good design.

Out of all of the proposed options, the _ prefix is my favorite. Discovering the value embedded in config is a lot harder for tools to support and would likely mean all sorts of limitations to ensure that it's easily statically analyzable. Preventing unknown exports all together impacts the reusability of a route in general, not just the lives of plugin authors (more on this at the end).
That being said, I do kind of want to challenge if this is necessary at all. Like @jycouet and @gterras mentioned, Houdini adds a lot of special values to the salad of magic names in +page files that often mean users don't have any of kit's standard ones. They often don't even have a +page file but those situations don't really impact this conversation. It's not the end of the world if every exported value from a file starts with _ but it definitely feels funny since _ usually means its a private value (although that's pretty arbitrary and something I'm sure I would get over). If anyone is curious, here is an overview of the kinds of things we support.

If anything the existence of those sorts of integrations makes it much more important that we're able to distinguish between framework space and user space

Is this because of a technical reason or a human one (documentation, education, etc)?
While I can't speak with 100% certainty, I haven't heard of anyone being confused by this mixing. If anything, i think it creates a rather nice narrative where users are free to mix and match Kit and Houdini without juggling multiple files or different conventions. In some sense, making sure we add features in a kit-compatible way is our job as authors of a meta-layer. A concrete example of this is when we added the "houdini_" prefix to houdini_load which can be set to a graphql query, causing the plugin to generate everything else. If there is a technical reason for that to be _houdini_load then I think it's a totally fine compromise.

Couldn't that be exported by another file, which is then imported (and/or re-exported) by +page.js?

The goal for us is to dramatically reduce the amount of boilerplate that a user has to maintain by assuming as much as possible. If the solution is to move all of that out of the +page file and into a houdini-specific file, we'll have to come up with a new special prefix which feels like an unnecessary complication. For some additional context, we are using the + prefix for non-js files to make them feel kit-native. On top of that, we will still be responsible for "faking" the file for the generated manifests (I wrote a discussion about this here). Overall this feels like closing a door that we are holding open to keep some semblance of integrating with kit.

I'm not familiar with Houdini's innards, but from a quick glance it sounds like you're essentially rewriting the +page.js file to account for things like beforeLoad and +page.gql etc? If so, then you shouldn't actually be affected by this at all (unless there were a TypeScript plugin that validated your +page.js as you were writing it, etc, but that could be made configurable). It's a runtime check rather than static analysis

So there are a few things at play here.
When our vite plugin processes +page.svelte it has to look at the +page.js file to see if it has to be transformed to accommodate a generated load. At the moment this happens by reading the file from disk and analyzing the file. I started off importing the file from the vite plugin and looking at the exported values but moved away from that because of an issue I was running into with vite's support for loading a file inside of the transform hook (which is necessary to support aliases). Ultimately, the static analysis was a compromise that complicated our implementation but it does mean that we don't need the values to be exported for the load generation to work behind the scenes.
Regardless of the plugin's implementation, our values need to be exported because the types that we generate need to include the houdini_load values as well as what's added to the load payload with the beforeLoad and afterLoad hooks.

Thanks — I'm still unclear on whether entry points have the custom exports after the Houdini transform is done with them though?

But doesn't the plugin do its magic before the file is seen by SvelteKit? So the plugin could (all before the file is seen by SvelteKit)

load the file and look at its contents
do magic based on special houdini exports and transform the +page.js to a regular +page.js with a load function (I guess that's what's happening under the hood?) and remove the other exports (or prepend them with an underscore)
hand the transformed file off to SvelteKit, which is fine with the result

The typings are separate, at least on our side they work through simple static analysis and doing some simple AST transforms, resulting in some generated types - no validation of forbidden exports there.

Yes that's how things work now and likely how things would have to stay if exports were removed. Like I said, the hurdle I mentioned only pops up once https://github.com/vitejs/vite/issues/6810 is addressed since it muddles the processing order a bit: a plugin that generates code might want to load a file to see its exports instead of relying on static analysis which has some downsides (see below). This mean that they would only have access to the transformed version. Looking for the prefixed exports is not that bad which is why I said I thought it would be a perfectly fine compromise. It's only a major issue if the exports were removed all together. Again, this point only matters once an almost 1 year-old issue on vite is addressed. The only reason I brought it up is to highlight a potential edge case that might pop up when its merged.
In general, I'm not a huge fan of going against the grain when it comes to constraints imposed by Kit. I think I'd rather require users to add the _ prefix to our magic exports to ensure that our plugin integrates with any tools that pop up in the community and to avoid confusing people who are seeing something that shouldn't be allowed according to the kit docs.

I still think this is part of a larger conversation about what the development experience for a SvelteKit plugin is like. The code that performs the static analysis to look at exports in +page files would have to be duplicated across every plugin and has some obvious hurdles:

people have to bring our their parser (or use vite's acorn) so which makes it tricky to support arbitrary languages that the user might have enabled with other plugins (or versions of typescript if they fall behind)
if the user has done something unexpected with imports, local variables, envars, etc that break our heuristics then we're out of luck
they have to check for overlapping things like export const magicExport = () => ... as well as export function magicExport.

Clearly these aren't that bad to support or work around but it does leave me with a feeling that there's an opportunity for a smoother experience for developers looking to build Kit-specific plugins. These plugins have common needs which are out of scope for treating it like a generic vite plugin, like looking at the exported values of +page files or transforming files that might not actually exist in the filesystem. I tried to go into a little more detail on this in that discussion if anyone is interested.

Just to reiterate - I dont think this conversation is super relevant to the original issue. Nor do I expect this to be resolved before 1.0 can get released. I understand the want to group as many breaking changes as possible before 1.0 but i would feel very bad if this conversation was blocking the release. To me, it seems like the _ prefix provides all of the future-proofing required and leaves the rest of the conversation for another time.