RFC: Annotating DoPrims, Muxes, and ValidIfs

Feature Request: Enabling annotating non-named nodes through unique tags
What is the use case for changing the behavior?
Right now, you cannot track non-named FIRRTL nodes such as a mux. The current work-around is to make sure that the mux is not in a nested expression, and then you annotate the name of the signal that is assigned its output. While this works generally, its not a robust solution. If the mux is inlined, the signal is deleted, but the mux is still around.
In addition, we are using the Target classes to build connectivity graphs (see #937), where these non-named nodes play an important role (and should be represented explicitly). The work-around for that PR is to make ReferenceTargets with special names, where the first mux in the module is named @mux#0, where the 0 is a unique module-scoped tag to single out a particular mux. This works well within a transform, but this mechanism to identify the mux is not robust under arbitrary transformations, and thus should not leave the transform.
Unfortunately, you often want this information to leave the transform. When recording the clock source of a given signal, the clock source may be an asClock non-named expression. We have no way to robustly record this information to live outside the transform. (A potential solution could be to transform the circuit to give the asClock a unique reference, e.g. pull it into its own module. This does seem heavy-handed, but I'm open to discussing it).
Impact: API modification? API addition?
Development Phase: Proposal
My current proposal is to add an optional tag argument (#tag) to every non-named node (DoPrims, Mux, ValidIf): e.g. add(x, y, #1), mux(x, y, z, #0)
The tag can be any positive integer, but must be unique among tags of other non-named nodes of its type. There can be an add with tag 0 and a mux with tag 0, but cannot have two muxes with tag 0.
When creating a new non-named node, you do not have to provide it with a tag. Only when you want a tag, can you add it (in which case we will provide library functions for guaranteeing a unique tag). This will preserve backwards compatibility. During a check pass (like with CheckHighForm), we will ensure that no two non-named nodes of the same type share a tag.
Mappers will always preserve the tag argument. If you are changing a DoPrim, you should preserve the tag (e.g. use expr.copy).
We will provide a corresponding Target class which will reference these unnamed nodes, and then you can update the RenameMap with any changes in your transform to these nodes.
Thoughts?
Questions to seed discussion:

Would you find annotating unnamed signals/components useful?
Should we add tags to Connect, PartialConnect, IsInvalid?
What about Print, Stop, Conditionally? Types? Literals?
Do you perceive any backwards-incompatibilities that I haven't thought of?

Should we add tags to Connect, PartialConnect, IsInvalid?
What about Print, Stop, Conditionally? Types? Literals?

Is there any reason not to support these? I'm a proponent of being able to annotate any node. MIDAS already wants to be able to annotate prints, and i can see use cases for Stop.

I suppose the reason to not support some are that some could have difficult semantics to define.
I think supporting Print, Stop, and Literals are no different than DoPrims etc.
Tagging Conditionally would require some thinking, but my gut feeling is it wouldn't be too bad, we'd just add a tag argument to the when clause.
I'm not sure how type annotations would work, but if you can annotate non-named signals, then I suppose you can always just reference the object itself and implicitly imply the type?
Connect/PartialConnect/IsInvalid would be a bit tougher to define the semantics of. Some example scenarios would be its behavior under ExpandWhens or Wire->Node conversions.

The tag can be any positive integer, but must be unique among tags of other non-named nodes of its type. There can be an add with tag 0 and a mux with tag 0, but cannot have two muxes with tag 0.

What is the motivation for different types of nodes to have the same tags?
Similarly to how names are not scoped by their type (we just have a, we don't have node#a and reg#a), I would think we should just have a single tag namespace per module. My argument is mainly that it feels simpler and less error prone.

What is the motivation for different types of nodes to have the same tags?

Yeah, the reason is it makes name changes more robust to small changes in the compiler. mux#30 is the 30th mux in the design, rather than the 30th non-named thing in the design.


When flutter is built to web it has a blank white screen with errors in console.

I ran flutter build web then navigated to the build/web directory and run in the build/web folder python -m http.server 1000. In the developer tools I see the error Uncaught (in promise) DOMException: Failed to register a ServiceWorker for scope ('http://localhost:1000/') with script ('http://localhost:1000/flutter_service_worker.js?v=1005452664'): The script has an unsupported MIME type ('text/plain').  I also went back to the default flutter app and tried to build it to web and I got the same error. I am on windows.
Here is my flutter doctor -v
flutter doctor -v
[√] Flutter (Channel stable, 3.0.5, on Microsoft Windows [Version 10.0.19043.1826], locale en-US)
    • Flutter version 3.0.5 at C:\Users\Owner\Documents\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision f1875d570e (2 weeks ago), 2022-07-13 11:24:16 -0700
    • Engine revision e85ea0e79c
    • Dart version 2.17.6
    • DevTools version 2.12.2

[√] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)
    • Android SDK at C:\Users\Owner\AppData\Local\Android\Sdk
    • Platform android-32, build-tools 32.1.0-rc1
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.11+9-b60-7590822)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop for Windows (Visual Studio Community 2022 17.0.5)
    • Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community
    • Visual Studio Community 2022 version 17.0.32112.339
    • Windows 10 SDK version 10.0.19041.0

[√] Android Studio (version 2021.1)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.11+9-b60-7590822)

[√] IntelliJ IDEA Ultimate Edition (version 2021.2)
    • IntelliJ at C:\Program Files\JetBrains\IntelliJ IDEA 2020.3.3
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart

[√] VS Code (version 1.69.2)
    • Flutter extension version 3.44.0

[√] Connected device (3 available)
    • Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version 10.0.19043.1826]
    • Chrome (web)      • chrome  • web-javascript • Google Chrome 103.0.5060.134
    • Edge (web)        • edge    • web-javascript • Microsoft Edge 103.0.1264.77

[√] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

Here is my flutter analyze
flutter analyze
Analyzing web...
No issues found! (ran in 1.3s)

My build folder:

My index.html in build/web
<!DOCTYPE html>
<html>
<head>
  <!--
    If you are serving your web app in a path other than the root, change the
    href value below to reflect the base path you are serving from.

    The path provided below has to start and end with a slash "/" in order for
    it to work correctly.

    For more details:
    * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base

    This is a placeholder for base href that will be replaced by the value of
    the `--base-href` argument provided to `flutter build`.
  -->
  <base href="/">

  <meta charset="UTF-8">
  <meta content="IE=Edge" http-equiv="X-UA-Compatible">
  <meta name="description" content="A new Flutter project.">

  <!-- iOS meta tags & icons -->
  <meta name="apple-mobile-web-app-capable" content="yes">
  <meta name="apple-mobile-web-app-status-bar-style" content="black">
  <meta name="apple-mobile-web-app-title" content="tabmanager">
  <link rel="apple-touch-icon" href="icons/Icon-192.png">

  <!-- Favicon -->
  <link rel="icon" type="image/png" href="favicon.png"/>

  <title>tabmanager</title>
  <link rel="manifest" href="manifest.json">

  <script>
    // The value below is injected by flutter build, do not touch.
    var serviceWorkerVersion = '1486543545';
  </script>
  <!-- This script adds the flutter initialization JS code -->
  <script src="flutter.js" defer></script>
</head>
<body>
  <script>
    window.addEventListener('load', function(ev) {
      // Download main.dart.js
      _flutter.loader.loadEntrypoint({
        serviceWorker: {
          serviceWorkerVersion: serviceWorkerVersion,
        }
      }).then(function(engineInitializer) {
        return engineInitializer.initializeEngine();
      }).then(function(appRunner) {
        return appRunner.runApp();
      });
    });
  </script>
</body>
</html>

https://docs.flutter.dev/deployment/web I was following instructions here.

Hi @Sami-ul,
There is a similar issue describing this case https://github.com/flutter/flutter/issues/108093, Please follow up there for further updates, Closing this issue as a duplicate. If you disagree feel free to write in the comments and we will reopen it.
Thank you.


tests: add tests to RoleFilter component

Closes: issue-52

References: /
What?

Add tests for RoleFilter component

Why?

To ensure the component is returning null or an given element depending if user has or not proper roles

How to test it?
# to run all tests suits
yarn test

# press 'a' to run all tests and see tests for RoleComponents passing

Not quite sure if what I've done on useRoleFilter tests is the more appropriated approach. Following the documentation of @testing-library/react-hooks in this section, to render hooks that needs information from some provider(e.g redux), we need to use a wrapper, and this wrapper needs to be simple as:
const wrapper = ({ children }) => <CounterStepProvider step={2}>{children}</CounterStepProvider>

But our wrapper returns a rendered element and didn't work as expected. If you guys have a tip to improve my tests I will be thankful

Not quite sure if what I've done on useRoleFilter tests is the more appropriated approach. Following the documentation of @testing-library/react-hooks in this section, to render hooks that needs information from some provider(e.g redux), we need to use a wrapper, and this wrapper needs to be simple as:
const wrapper = ({ children }) => <CounterStepProvider step={2}>{children}</CounterStepProvider>

But our wrapper returns a rendered element and didn't work as expected. If you guys have a tip to improve my tests I will be thankful

I've pushed a commit refactoring the wrapper component to support hooks.


Syntax styling

Removed an extra blank row at the beginning

@icoric : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Looks good. Thanks @icoric


Ability to pass parameters to event handlers

It seems that currently parameters are not supported. If you do e.g. this:
    @foreach(var x in xCollection)
    {

x.Name Click me

    }

    //More code

    @functions {
        private void HandleClick(string p)
        {
        }
    }

you get a compilation error:
error CS1503: Argument 1: cannot convert from 'void' to 'string'

It would simplify the binding to be able to pass parameters there.

The syntax is
    @foreach(var x in xCollection)
    {

x.Name  HandleClick(x.Value))">Click me

    }

    //More code

    @functions {
        private void HandleClick(string p)
        {
        }
    }

@Suchiman, is onclick="@(() => HandleClick(x.Value))" a temporary solution or the way to go in Blazor ?

@enetstudio it's the way to go, this is standard C# and razor, @() defines an expression context and inside what we've got is a normal capturing lambda expression that takes no arguments and calls another method () => HandleClick(x.Value) like is often used in LINQ. onclick is just something that takes an Action, Action<UIEventArgs>  or Func<Task>.


Refit Dependency

Currently it is very difficult, if not impossible, to make certain configurations of the HttpClient instance.
For starters you have no control over the construction of the HttpClient object so you cannot pass it an instance of HttpClientHandler to be able to configure for example a proxy or other things.
https://github.com/NikiforovAll/keycloak-authorization-services-dotnet/blob/6d20ce592c224ffb32c7a3e198e9d26cef8dc5ba/src/Keycloak.AuthServices.Sdk/Admin/ServiceCollectionExtensions.cs#L46
I think that at the very least there should be an overload that allows you to pass an instance of HttpClient directly: Func<IServiceProvider, HttpClient> clientProvider. It is very common nowadays this pattern: https://learn.microsoft.com/en-us/dotnet/architecture/microservices/implement-resilient-applications/use-httpclientfactory-to-implement-resilient-http-requests
Another issue is why there is a hard dependency to Refit when it should not be necessary, the implementation should be cleaner without dependencies to Refit.
Whoever uses the library if they want to use Refit should be their choice but not an imposition.
If you agree I am willing to help with a PR.

Ok, I see that the AddKeycloakAdminHttpClient method returns an IHttpClientBuilder and I see that the Refit.HttpClientFactory dependency uses the Microsoft library I said.
Even so, I still think that the Refit dependency should not be necessary.
Examining the code I see that it provides several functionalities through C# attributes for client generation and I understand the "convenience" of using it but I still think that it should be a library for the exclusive use of the consumer of a library, not intended for whoever develops a library because you are imposing that use.

Good point, next version will focus on removing unnecessary dependencies

Will be fixed as part of: #64

Done as part of https://github.com/NikiforovAll/keycloak-authorization-services-dotnet/releases/tag/2.0.0


valtio/state-snapshot-rule for useMemo

valtio/state-snapshot-rule should not show warn in useMemo.
There are situations where useMemo needs to track snapshots.

useMemo needs to track snapshots.

that doesn't work as expected. thus, the rule warns it.


feat(experimental): jsx support on the server

Preliminary support with custom TypeScript config. We would most likely create an appropriate preset for developers to use.
We're not going to migrate example server over to it (too much work), but I would like to implement the new demo server with this for the Apple review so we can start dogfooding. That should make it a bit easier to review/merge, even though is not perfect.

closing as we have implemented a lot already. submitting new pr.


new social traitor objective + fix targeting for other traitor alive

About the PR
Changelog

:cl: Rane

fix: You'll no longer be tasked to keep 'fellow traitor' yourself alive.
add: New objective: Ensure another traitor completes at like half of their objectives.

any particular motivation for this move? i think i get it, but would like some justification

any particular motivation for this move? i think i get it, but would like some justification

social group needs a bit more population, after this and https://github.com/space-wizards/space-station-14/pull/11678 I'll probably make a much lower weighted objective that asks you to make them fail instead


It seems that current published version 0.0.3 is older than the source code here

react-testing-library version: 0.0.3
node version: 10.15.3
yarn version: 1.15.2

Relevant code (example from readme):
import {render} from 'preact-testing-library'

const {rerender} = render(<NumberDisplay number={1} />)

// re-render the same component with different props
rerender(<NumberDisplay number={2} />)

Problem description:
I basically wanted to use the rerender method but it's undefined. Then I digged into the dist/index.js file and it looks for me that that compiled code is basically before #4 was merged. Also other render() return values are mssing. Since version 0.0.3 was released after #4 I guess that this version was somehow built with old code in dist repository.
Suggested solution:
Republish latest code with a new version.

Would be nice to get that fixed!

Confirming this, the current published version 0.3.0 does not contain debug method for example.

Oops, I'm sorry for this.. Not sure how I have missed it. Anyways, have updated to version 0.4.0 along with https://github.com/antsmartian/preact-testing-library/pull/16, https://github.com/antsmartian/preact-testing-library/pull/15. Can confirm by dist/index.js has methods like debug, unmount, rerender

@molefrog @tobiasweibel @philippkast Ping 🔉 Will close it, once you guys can confirm.

@antsmartian version 0.4.0 fixes the problem. Thanks!

Closing this issue.. Thanks everyone for reporting this!

Just updated the package, everything seems to work now. Thanks @antsmartian


Don't make join output DataValueArray unless there are NAs

I used the same strategy in unstack (assume DataValue even if all values are there) following join example: I should probably change it there as well.

This PR turned out to be unrelated to _promote_op removal though... What it does is it never creates DataValueArray but instead maintains indices where a region (left or right) of the output is null, then creates DataValueArray at the end.
Getting rid of _promote_op considerably increases the complexity of the _join!... Especially harder once we have missing (i.e. the type may change from the first element to the second) in which case you have to use something like try; push!(..); catch err @goto retry end to meaningfully handle this -- this is a performance disaster.

Not really knowing what this PR does, I don't think it's related. Inference isn't needed for joins, as the type of the data is perfectly known: it's that of the input (without any function in-between). What we do in DataFrames is that columns have Union{T, Missing} eltype if one of the input columns allowed for missing values, or when some values have to be filled with missing values for joints other than inner (https://github.com/JuliaData/DataFrames.jl/pull/1316).

The main difference is that join in IndexedTables can accept an arbitrary joining function:
join(f, x, y)
where f defaults to be the concatenation function (joining the two data rows) but it could be an arbitrary function taking two Tuples as input and returning a Tuple.

I see, thanks. Then indeed the problem is very similar to #25925.


[Issue]: Continued System Crashes with BOINC OpenCL Apps Since RDNA3 Release

Problem Description
Since launch of RDNA3, I have not been able to resume running BOINC many OpenCL apps that had been working for many years on AMDGPU.  Recently, ROCm 6.1 was released through my distro's official pkg repo, so I thought I would try again.  Things are better; I was able to get expected performance, no crashes, and no invalid results for the Einstein@Home O3MDF Gravitational Wave app.  However, BRP7 (Meerkat) app crashed the whole system.
Operating System
Fedora Linux 40 (Workstation Edition)
CPU
AMD Ryzen 9 5950X 16-Core Processor
GPU
AMD Radeon RX 7900 XTX
ROCm Version
ROCm 6.1.0
ROCm Component
No response
Steps to Reproduce
Install BOINC & join Einstein@Home
Enable only BRP7 (Meerkat) app
System is very likely to crash moments after starting a work unit.  Some work units were completed as valid, however, so it isn't wasn't 100%. I estimate less than 2 hours MTBF.
(Optional for Linux users) Output of /opt/rocm/bin/rocminfo --support
rocminfo-support.log
Additional Information
journal-10.log
Task<PHONE_NUMBER> _<EMAIL_ADDRESS>

Wonderful!  Thank you.  Let me know how I can help.

Hi @PorcelainMouse, a couple BOINC-related questions: is there any way this can be reproduced locally? Currently waiting for Meerkat tasks to be scheduled and run to get output, which will make investigating this very slow. I do see some provided source files for the app, but is there test data I can run it on? Also, you mention enabling only Meerkat; is there a way to do this from the command line?
You mention you've been having these issues since the launch of RDNA3. Can you still run Meerkat tasks without issues on older hardware and ROCm versions?

Sorry for the late reply! Didn't get a message about your update.  Just seeing this now.
Uh, in theory, yes, you can run test applications with text work units.  I looked into it a long time ago.  I think you can get these GPU apps that run either entirely outside BOINC or maybe it's inside BOINC with some special setup.  That's a more controlled environment for devs who write BOINC apps. But, I never actually got that environment setup up, myself.  I guess I can look into it for you, though.
If it helps, I've had to abandon the E@H project, again, because even running All-Sky Gravitational Wave search on O3 (GPU) [O3AS] causes crashes within 48 hours.
journal-11-short.log
I don't have my old hardware, unfortunately.  Had to sell them to buy 7900.  That's not impossible, though.  I could probably get my hands on a 5700xt for cheep or my old 6800xt if I beg the person I sold it to.  Old ROCm would be harder.  I don't have a dedicated system for BOINC, this is my daily driver, so I can't go back in time that far.  But I could downgrade pkgs to ROCm 6.0 pretty easy.  If you want older than that, I'm assuming I can get old pkgs from F39, F38, but I guess I don't know how far back I can really go.  I probably can't install a kernel prior to 6.8.5 (easily) without having to downgrade my whole system to the previous major distribution release.  I mean, I could build any kernel I want, but haven't done that since the '90's and probably couldn't commit to that.

@schung-amd Thanks again for you help.
Going back one post, I wanted to double check with you on the downloads. I usually doesn't take more than a few seconds to download apps and and work units.  You probably don't need much work, so you can set the work limit to just half a day or something.  But, your system should start crunching as soon as it downloads the first work unit, so normally it doesn't take any time at all to start crunching.  I assume by this time, 2 weeks later, you've had plenty of time to test Meerkat work units?
Here are some instructions on building your own apps.  The "anonymous platform" they refer to just means setting up your own BOINC apps without letting the project configure the app for you.  I ran "anonymous platform" for quite a few years, myself, but I started with an official E@H configuration and then just tweaked it.  But, maybe, you don't even need to use BOINC at all.  If you download the source code and build it, maybe you can just run in manually to test.  The hard part is getting work units to test with.  Maybe there are instructions on getting test work units, though, with the source.  Been a while since I looked into it.
https://einsteinathome.org/application-source-code-and-license

Hi @PorcelainMouse, thanks for keeping up with this!
Re: Meerkat on older hardware/software, no worries if it's hard to test on your end. When I was searching for similar issues, I saw several clusters of reports of Meerkat breaking which suggested that this issue could be related to changes with the workload, so I'm mostly curious if this issue could be related to changes in Meerkat rather than (or in addition to) changes on our end, which would be a good clue as to what is causing this workload to fail. Once I figure out how to get Meerkat running properly, we have a variety of older hardware I can test this on.

I assume by this time, 2 weeks later, you've had plenty of time to test Meerkat work units?

Unfortunately my repro system seems to want to run everything except Meerkat when possible, and in addition the Meerkat workload has been failing on my end for unrelated OpenCL reasons, so I haven't been able to repro this yet. I can run the other tasks perfectly fine, which suggests to me that something is not configured properly in the Meerkat app. I've been trying to build from source without much success so far, but I'm still working on it. I'll let you know when I'm able to reproduce your issue.

Okay.  Very interesting.  Thanks for working so hard.  I'm sorry that it's a pain; I wish it were not so hard to test.

If you use "regular" BOINC & E@H, you can select which specific apps you want.  You could turn off all apps except Meerkat.  Then you could get Meerkat WUs without the other ones.  At least then you wouldn't need to roll your own dev app.
Yeah, it's possible the WUs or the app has changed over time.  That wouldn't surprise me.
Just to reiterate, there are two details that I got wrong on my initial report

I actually got credit for a few Meerkat WUs before a crash.  The crash was just at the very beginning of a WU and the crash was very hard. The system crashed three times in a row, the second two times it occurred moments after staring BOINC.  So that means that either A) BOINC didn't know the job failed and kept retrying it until I aborted the job, or B) some Meerkat WUs are okay, but some are instant death.
Even though the other apps--by which I mean Gravitational Wave apps (GW)--will run for 24 hours, doesn't mean that those apps are safe.  After turning off Meerkat, I've been running GW GPU apps and my system has crashed once every other day.  It's not stable.  I've had to abandon the whole project, again.  So, if you can test the other apps with real WUs from the regular stream for just a few days, I think that would be really helpful too.  I can crunch O(20000) GW WUs in a day, and then it'll crash the next day.  So, don't expect the other apps to be "instant" crash.  But, I'm pretty confident there is a problem with them, also.

When I had my 5700xt, the original blower design,--which I much prefer!!--I'm assuming you know that card was notorious for running too hot.  I had lots of crashes, like A LOT. I had to abandon the project back then too.  I finally got a tool that let me set my own fan curve, and that made a HUGE difference.  MTBF was >30 days, which I could live with.
I upgraded to 6800xt and didn't have to change anything.  Literally swapped the card out, and booted it up, started crunching.  That's why RDNA3 has been such a shocking experience.  Everything changed.  And now it's been almost two years since things worked.  Two of the biggest GPU apps in all of BOINC that I used to crunch with have shutdown in the interim, so much of the work I'm doing now is different than what was stable for me for so long prior to RDNA3.  But, E@H is a project that I used to crunch for.
If we can get Meerkat working or send a bug upstream.  That'd be great.  I thought it had a good chance to lead to something; that's why I reported it.  (Just now realizing that I could have sent you the offending WU, but I didn't think of it.  Crap, that would have been really helpful.  Sorry!  I didn't think of it at the time.)  ...But, TBH, I would have reported these problems with the GW app if Meerkat had worked.  (ooh, maybe I'll get you some of these GW WUs that crashed my system, while I'm thinking of it!)

(ooh, maybe I'll get you some of these GW WUs that crashed my system, while I'm thinking of it!)

Oh, well, I guess I don't know how to do that.  I looked at the project docs and source code docs, but couldn't see how to download work to use with the app.  Rats.  I'm sure it's possible.  Maybe you figured it out already?  I'll put the "problem" work units here.  Maybe you can get them. But, they don't last forever, so maybe it will not be useful by the time you can look into GW.
h1_1591.60_O3aC01Cl1In0__O3ASHF1d_1592.00Hz_43718
h1_1591.60_O3aC01Cl1In0__O3ASHF1d_1592.00Hz_43720
h1_1591.60_O3aC01Cl1In0__O3ASHF1d_1592.00Hz_56112
h1_1591.60_O3aC01Cl1In0__O3ASHF1d_1592.00Hz_56114_2

Thanks for the info! I have tried configuring the project to run only Meerkat apps, but it somehow results in my system not running anything, but I'll try that again. As an aside, I am now running into issues with O3AS as well, but I did update to ROCm 6.2 at some point before seeing these failures so those could be on our side. When you say your system was crashing intermittently, did these show up in the task reports as errors? Also, were you running these tasks while using the system, or was this while the system was otherwise idle?

Thanks for the info! I have tried configuring the project to run only Meerkat apps, but it somehow results in my system not running anything, but I'll try that again.

:-( Hmm, yes, sometimes BOINC is inscrutable; it's very complex with the way it schedules work.  When I make changes to project allocations or tweak things, it often takes 24 hrs to see the results, longer even.  The manager only gets updates periodically, and even when it gets your new preferences, it may not implement them right away; it actually waits until you get new WU sent to you from a project.  So, you can force a "update", and you'll see the new preferences acknowledged in the log, and it just keeps doing the old thing, and then, later, you get new WU downloaded, and then it changes behavior.  It can be confusing.
The only other thing I can think of is that it thinks you can't or don't want to run Meerkat, which could be due to many things.  But, it's probably not that.

As an aside, I am now running into issues with O3AS as well, but I did update to ROCm 6.2 at some point before seeing these failures so those could be on our side. When you say your system was crashing intermittently, did these show up in the task reports as errors?

Hmm, well, maybe.  In my experience (since 1999) I almost never see them.  They usually get detected and error out, then reported.  In theory, it shouldn't need to do that, though, because the tasks are all checkpoint-ed and can be resumed without loosing all the work already done.  The fact that these crashes result in terminated tasks with lost work is unusual to begin with.
I see these tasks on the project website in my list of reported tasks with errors; that's usually where I see them.  But, before they get uploaded, yes, they should be listed in the manager as failed or error-ed tasks.  I just never notice them there.  I think that is for a few reasons: 1) they get cleared very quickly on the next start, so it's not like they hang round an flash red or something; BOINC just starts new tasks.  That's usually what I see: if there is a new task at 0 % when I start BOINC, I know the task that was running error-ed out.  2) I also sort my tasks by status, and I think the error-ed tasks go to the bottom and I just never see them. 3) I think BOINC does an update on startup, so it reports those failed tasks immediately, so they don't sick around on your system for very long.

Also, were you running these tasks while using the system, or was this while the system was otherwise idle?

Since I run BOINC 24/7, most crashes happen when I'm not at the system doing something else.  These recent ones are no exception to that rule.  But, I have also been typing or clicking when some of the crashes have happened.  My system does everything--web, coding, gaming, CAD, video conferencing, image processing.  It's also full of CRON jobs doing automated clean up jobs here and there.  So yeah, there's is a lot going on on my box other than BOINC.  But, the symptoms are very specific and consistent.  Nothing behaves like a video card crash, and almost nothing else actually crashes the system.  These always start with AMDGPU error, card reset, card reset fails, GNOME shell crashes, system hangs, or lately, the system kills all users process without hanging and then GDM restarts and I can start a new desktop session, but I always just reboot in that case anyway.
In the past, like with the 5700xt, I've even gone so far as to stop running BOINC completely for a week or so to prove that it's not something else.  When I got this 7900xtx, I had it RMAed three times because I just couldn't believe it couldn't run the same work my 6800xt would run.  I went back to my 6800xt many times over about 8 months, waiting for new drivers and hoping it would just start working.    I think the mainboard did actually have a problem, but after that, I started reporting these problems against the drivers because I knew it couldn't be my hardware.  Things have improved since then; there's no doubt.   It used to crash in <1 hr on every fp OCL app I tried. Now it's 24-48 hrs.  But, I've been running PrimeGrid instead of E@H, which has been working well, but that's all int work.
The Fedora ROCm pkg maintainer was very helpful and had me working on upstream kernel branch with a COPR channel with upstream ROCm pkgs.  That was fun, but we didn't get far with troubleshooting.  We just kept waiting for the next ROCm release.  And all the special kernel overrides made for trouble when upgrading my distribution, so I'm not on the upstream kernel anymore.  That started with ROCm 5.8 or something, and, like I said earlier, I had my heart set on 6.1 to be "the one", so I got up the courage to try E@H again after that arrived.
Sorry for the long posts.  Please keep asking questions.  I may not get your answers right away, but I will test or do what else you ask if it is at all possible.

Thanks for the replies, I appreciate your insight. An update from my end: I was able to configure BOINC to pull only Meerkat and O3AS tasks properly this time. My system has completed several of these without crashing. I'm on Ubuntu 22.04 with a 7900XTX and ROCm 6.2. I'll keep the tests running to see if anything changes, but for now ROCm 6.2 (on Ubuntu, at least) seems to be completing Meerkat and O3AS tasks without issue.

Hmm, that's really really frustrating.  You're killing me.  I'm mean, I barely believe you; I've had this problem for nearly two full years, so you can understand my skepticism.  I've replaced every piece of silicon in my rig and upgraded major OS releases three times during that interval.  I've ruled out everything I possibly could.
You could be on to something with ROCm 6.2, but that still seems unlikely.  Looks like pkg mgrs are not planning to push 6.2 to current Fedora.  But next version will be out soon, so maybe I'll get it then.
What kernel are you on?
You're getting ROCm 6.2 from where?  This repo?  You're building it yourself?
Is there a reason why you didn't try 6.1?

Hmm, that's really really frustrating. You're killing me. I'm mean, I barely believe you; I've had this problem for nearly two full years, so you can understand my skepticism. I've replaced every piece of silicon in my rig and upgraded major OS releases three times during that interval. I've ruled out everything I possibly could.
You could be on to something with ROCm 6.2, but that still seems unlikely. Looks like pkg mgrs are not planning to push 6.2 to current Fedora. But next version will be out soon, so maybe I'll get it then.

It's frustrating to me as well that I can't reproduce your issue. One variable that might be in play here is your distro, we don't officially support Fedora at the moment so there may be some incompatible components causing your issues. I'd advise you to test on Ubuntu if you get a chance, just to rule that out.

What kernel are you on?
You're getting ROCm 6.2 from where? This repo? You're building it yourself?
Is there a reason why you didn't try 6.1?

Kernel version is 6.8.0-40-generic which came with Ubuntu 22.04. ROCm was installed using instructions from https://rocm.docs.amd.com/projects/install-on-linux/en/latest/install/quick-start.html; I used the AMDGPU installer but I don't think the method matters.
Generally it makes sense to check if an issue exists in the current version of ROCm, as a lot of issues end up being fixed between versions and we can advise users to upgrade. Of course, distros we don't officially support yet, such as Fedora and Arch, will not necessarily have the latest ROCm versions available, but this is out of our control. I have also checked on ROCm 6.1, and I do not see any issues on Ubuntu 22.04.

Thanks, I appreciate your help.
If you didn't see it with ROCm 6.1, then it's probably not that, either, although there is still chance that 6.2 will improve compatibility.
I have the PowerColor 7900XTX OC.  I suppose manufacturer OC could be another aspect we haven't ruled out.
I've been using OCL since 1999 and never had an nVidia card.  I wouldn't be using AMD if it wasn't for their statements of support for OSS.  I can't imagine what my distribution has to do with it, but if it does, it would be the first time ever.  580, 5700, 6800 all worked...eventually...and whatever I had before the 580, too.  Catalyst was a different time, though. Back then, I was hacking the installer to work on Fedora.  Since ROCm, I haven't had to do that.  Perhaps I've come to expect too much.
For a while, I was using upstream kernel, so, even Fedora kernel patches don't seem likely to be the issue.  It would have to be libs, then?
I'm on kernel 6.10 now; soon 6.11.  I can't even get 6.8 easily; I don't think there is any pkg repo for Fedora with "old" kernels.  Maybe that's something I can look into...hmm, didn't see anything like that.  Mostly folks interested in even newer kernels, not older ones.
You did a lot of work.  I guess I should try to run Ubuntu.  That's conceivable for me to do, but probably too disruptive.  I'll need to do some planning, at the very least.

I can't imagine what my distribution has to do with it, but if it does, it would be the first time ever.

I don't know the details at the moment, but on Fedora specifically it seems like the ROCm packages have modifications which are not present in the official packages, and this divergence may play a part in why this seems to be fully functional on Ubuntu but broken on your end. Since we don't officially support Fedora, I doubt the modified code has been tested as thoroughly as our mainline code and wouldn't be surprised if something broke because of it.

Oh, really?  Well, that's very interesting.  Thank you for explaining.  I'm surprised to here that.  I will take it up with the maintainers.

Closing this for now, as I can't reproduce the issue on our end. I'm sorry this hasn't worked for you for quite some time on your distro of choice. When you get a chance to try this on Ubuntu in the future, if you're still running into this issue feel free to comment and we can reopen this. I'll also provide an update if we find more information about what might be causing your issues.

Hey, I've got some new information.  I know this is closed, but I'm hoping you can spare some thought on it. I got ROCm 6.2, now, and E@H apps error out immediately on start.  They aren't crashing the system, which is an improvement, but it's still not working.  And it's extra strange because you said you tested 6.2 and didn't have any problems.  I'm assuming you would have noticed if it error-ed out?  That's not why it didn't crash on you, is it?
Failed OpenCL buildlog:
ld.lld: error: undefined symbol: __printf_alloc
>>> referenced by /tmp/comgr-9492ec/input/linked.bc.o:(XLALLoopOverCoarseGridFrequencyBins)
>>> referenced by /tmp/comgr-9492ec/input/linked.bc.o:(XLALLoopOverCoarseGridFrequencyBins)
Error: Creating the executable from LLVM IRs failed.
XLAL Error - XLALOpenCLGetProgramFromSource (/home/jenkins/workspace/workspace/EaH-GW-OpenCL-Testing/SLAVE/LIBC215/TARGET/linux-x86_64/EinsteinAtHome/source/lalsuite/lalpulsar/lib/GPUUtils/OpenCLUtils.c:705): clBuildProgram failed with OpenCL error: CL_BUILD_PROGRAM_FAILURE
XLAL Error - XLALOpenCLGetProgramFromSource (/home/jenkins/workspace/workspace/EaH-GW-OpenCL-Testing/SLAVE/LIBC215/TARGET/linux-x86_64/EinsteinAtHome/source/lalsuite/lalpulsar/lib/GPUUtils/OpenCLUtils.c:705): Generic failure
XLAL Error - XLALGCTOpenCLKernelsSetup (/home/jenkins/workspace/workspace/EaH-GW-OpenCL-Testing/SLAVE/LIBC215/TARGET/linux-x86_64/EinsteinAtHome/source/lalsuite/lalapps/src/pulsar/GCT/HierarchSearchGCT_OpenCL.c:212): Check failed: XLALOpenCLGetProgramFromSource ( source, &(GCTOpenCLKernels.HierarchSearchGCTProgramm) ) == XLAL_SUCCESS
XLAL Error - XLALGCTOpenCLKernelsSetup (/home/jenkins/workspace/workspace/EaH-GW-OpenCL-Testing/SLAVE/LIBC215/TARGET/linux-x86_64/EinsteinAtHome/source/lalsuite/lalapps/src/pulsar/GCT/HierarchSearchGCT_OpenCL.c:212): Internal function call failed: Generic failure
XLAL Error - MAIN (/home/jenkins/workspace/workspace/EaH-GW-OpenCL-Testing/SLAVE/LIBC215/TARGET/linux-x86_64/EinsteinAtHome/source/lalsuite/lalapps/src/pulsar/GCT/HierarchSearchGCT.c:1394): Check failed: XLALGCTOpenCLKernelsSetup( uvar->SortToplist, uvar->getMaxFperSeg, uvar->computeBSGL, detectorIDs, usefulParams.BSGLsetup ) == XLAL_SUCCESS
XLAL Error - MAIN (/home/jenkins/workspace/workspace/EaH-GW-OpenCL-Testing/SLAVE/LIBC215/TARGET/linux-x86_64/EinsteinAtHome/source/lalsuite/lalapps/src/pulsar/GCT/HierarchSearchGCT.c:1394): Internal function call failed: Generic failure
2024-11-20 11:15:54.9516 (162207) [CRITICAL]: ERROR: MAIN() returned with error '-1'

https://einsteinathome.org/task/1684803437

Hey, I've got some new information.  I know this is closed, but I'm hoping you can spare some thought on it. I got ROCm 6.2, now, and E@H apps error out immediately on start.  They aren't crashing the system, which is an improvement, but it's still not working.  And it's extra strange because you said you tested 6.2 and didn't have any problems.  I'm assuming you would have noticed if it error-ed out?  That's not why it didn't crash on you, is it?
Failed OpenCL buildlog:
ld.lld: error: undefined symbol: __printf_alloc
>>> referenced by /tmp/comgr-9492ec/input/linked.bc.o:(XLALLoopOverCoarseGridFrequencyBins)
>>> referenced by /tmp/comgr-9492ec/input/linked.bc.o:(XLALLoopOverCoarseGridFrequencyBins)
Error: Creating the executable from LLVM IRs failed.
XLAL Error - XLALOpenCLGetProgramFromSource (/home/jenkins/workspace/workspace/EaH-GW-OpenCL-Testing/SLAVE/LIBC215/TARGET/linux-x86_64/EinsteinAtHome/source/lalsuite/lalpulsar/lib/GPUUtils/OpenCLUtils.c:705): clBuildProgram failed with OpenCL error: CL_BUILD_PROGRAM_FAILURE
XLAL Error - XLALOpenCLGetProgramFromSource (/home/jenkins/workspace/workspace/EaH-GW-OpenCL-Testing/SLAVE/LIBC215/TARGET/linux-x86_64/EinsteinAtHome/source/lalsuite/lalpulsar/lib/GPUUtils/OpenCLUtils.c:705): Generic failure
XLAL Error - XLALGCTOpenCLKernelsSetup (/home/jenkins/workspace/workspace/EaH-GW-OpenCL-Testing/SLAVE/LIBC215/TARGET/linux-x86_64/EinsteinAtHome/source/lalsuite/lalapps/src/pulsar/GCT/HierarchSearchGCT_OpenCL.c:212): Check failed: XLALOpenCLGetProgramFromSource ( source, &(GCTOpenCLKernels.HierarchSearchGCTProgramm) ) == XLAL_SUCCESS
XLAL Error - XLALGCTOpenCLKernelsSetup (/home/jenkins/workspace/workspace/EaH-GW-OpenCL-Testing/SLAVE/LIBC215/TARGET/linux-x86_64/EinsteinAtHome/source/lalsuite/lalapps/src/pulsar/GCT/HierarchSearchGCT_OpenCL.c:212): Internal function call failed: Generic failure
XLAL Error - MAIN (/home/jenkins/workspace/workspace/EaH-GW-OpenCL-Testing/SLAVE/LIBC215/TARGET/linux-x86_64/EinsteinAtHome/source/lalsuite/lalapps/src/pulsar/GCT/HierarchSearchGCT.c:1394): Check failed: XLALGCTOpenCLKernelsSetup( uvar->SortToplist, uvar->getMaxFperSeg, uvar->computeBSGL, detectorIDs, usefulParams.BSGLsetup ) == XLAL_SUCCESS
XLAL Error - MAIN (/home/jenkins/workspace/workspace/EaH-GW-OpenCL-Testing/SLAVE/LIBC215/TARGET/linux-x86_64/EinsteinAtHome/source/lalsuite/lalapps/src/pulsar/GCT/HierarchSearchGCT.c:1394): Internal function call failed: Generic failure
2024-11-20 11:15:54.9516 (162207) [CRITICAL]: ERROR: MAIN() returned with error '-1'

https://einsteinathome.org/task/1684803437


Clients does not seem to be initialized anymore in DefaultCallbackLogic

Hi,
In the past, the DefaultCallbackLogic would call Clients.findClient to find a client.
This would initialize the Clients object if needed and all the clients configured.
Now there is this DefaultCallbackClientFinder used and it doesn't seem to do this initialization anymore.
I think that's a bug, no? I suppose it was caught before because usually people would first go through the DefaultSecurityLogic (which does initialize the Clients object via DefaultSecurityClientFinder's calls to Clients.findClient) first. But with jax-rs-pac4j, it happens that someone would directly go through a DefaultCallbackLogic.

You must be right, the behavior has changed. I will fix that.


Edge hit doesn't work with arrows

short description of the bug / issue, provide more detail below.

I see the edge being hit when I swipe, but when the slider hits the edges when I am swiping with the arrows, it's not possible to fire that event.
JSFiddle: http://jsfiddle.net/fmo50w7n/1205/
====================================================================
Steps to reproduce the problem

...  Swipe to right or left with the arrows
...  You will see that the .on('edge') event won't trigger.

====================================================================
What is the expected behaviour?
...  To fire the .on('edge') event the edges gets hit by the sliders but by swiping with the arrows.
More Details

Which browsers/versions does it happen on? All
Which jQuery/Slick version are you using? jQuery: 1.12.4 - Slick: Latest
Did this work before? No

Seems like edge doesn't fire with next/prev buttons, should I open an issue for it, or this feature doesn't exists in slick yet?

@dehghani-mehdi it is my first time using Slick. And yes, maybe you should open an issue for this. Actually what I noticed: with the next/prev buttons, when you hit the edges, a class is added to the arrows anyways.

Hello, there's a solution for it? edge only works with swipe. With arrows, edge is not fired.


New home for contributors / new official fork

Dear Chart.js contributors. Many months ago @nnnick has begun work on Chart.js 2.0, a rewrite which has been fraught with delays. We waited patiently and now are sure that this project will not see any progress from the original author, including accepting your contributions. Fortunately, the project is alive with many users and active contributions of issues, forks, and pull requests.
I am writing to you today to organize our efforts and continue making incremental improvements to the existing product. If you are interested in the continued development of the current Chart.js product including the following:

Be an active "fork" of Chart.js, including referring to issue numbers in the original project for any relevant commits
Maintain complete API compatibility (and discuss API changes and other rework in a Wiki)
Respect copyright and credit of the original author
Keep full and beautiful documentation
Add unit testing and CI to the existing project to make contribution even easier

Then please join me in taking a few simple steps.

Pull my latest version of the code from https://github.com/fulldecent/Chart.js (includes a few forks with minor bugfixes)
Make pull requests against this code base and always note whether your PR is a bugfix, includes new API, or changes API
Ask for write access to https://github.com/fulldecent/Chart.js if you want to help triage PR

This will allow the project to continue moving forward and I am happy to help in any way I can. Please continue any discussion here for forking. Sorry if you are not interested, please unsubscribe. Also, GitHub does have a process we we can petition to have this fork made official, I am working to follow these guidelines.
Lastly, there are other Graph* projects, like http://www.favomo.be/graphjs/ which have different project goals that mine.
@722C @Ayiga @CAYdenberg @ClaudeMonnet @CyberCRI @DarrenLamb @DimitarChristoff @Erwin32 @Ferguzz @Gabriel0402 @Gartium @Inventorum @JackLiang @JakeFalcor @JonRowe @LegalArgument @MySiteApp @NekR @Nighthawk14 @OtkurBiz @PingoUPB @Regaddi @Shpigford @SleeplessByte @Verran42 @WebDevStudios @Wikunia @WimAtIHomer @Yappli @aderowbotham @airblade @ajsdhf @alexanderwiebe @alexdunphy @antzhdanov @anvarik @apeace @asghar07 @atandon @auds1n @beckmi @brumm @bshort @bugkiwi @callado4 @camillem @caphun @capripot @cedub @charlie8230 @chatcharin @chelfe @chrisella @clbanning @component @comyo-media @cpoDesign @cray0000 @cristiandouce @darkpicnic @deltaepsilon @dotcore @douglas-vaz @dsafe @earlonrails @fatihwk @franciscotfmc @freeday @fundon @funnylookinhat @gabrielgilini @gdi2290 @gkres @gnijor @gordski @gosteve @gsprenger @h-kamitomo @hiisi13 @huster-zhangpeng @ifeoktistov @ikozuliak @jairtrejo @jakabfia @jasonpunzalan @jespino @jhdavids8 @jimle-uk @joeyblake @jonmmay @jpdonaghy @kara @keithmkennedy @king9014 @kingcody @knadh @koleksiuk @krampstudio @kununu @laurihy @leathakkor @leoken @leolee101 @lijiejielice @linagee @live627 @lwy2016 @lxb @m1ksoftware @mattfelten @mdasberg @mkdynamic @module17 @morlay @mpacific @mrinalvenky @ngallagher87 @niko-niko @nnnick @nobodyisme @oatkiller @okcoker @oleglite @onoma @p4ul @parkerbossier @plus- @prajwolpkc @psyose @quicken @r043v @ranjancse26 @rasmusfl0e @raunaqgupta @rbichon @reisub-de @renanborgez @richsilv @rkmax @romhut @rubik @rux @ryanponce @samuelclay @saurabhkb @scottwio @sgarbesi @sheavner @sparkida @spilliams @steffenmllr @stvbdn @sukhpalsingh @syncsynchalt @taalendigitaal @theo-bittencourt @tinj @tm2 @tmathews @tpinto @tsl367 @tylertreat @ulrichsg @umaar @unlightable @veloce @versusrob @vinculis @vitchell @w1pko @walsh1kt @wdv4758h @wmwang @yDgunz @yoloseem @yukimono @yuwen @zjb82930 @zozi

Is it possible to do Dial (Meter Guage) using Chart.js

@swapips this is really NOT the place to ask. Open up your own issue.

Ohh...My mistake... Apologize..:)

Hi
I’m following and using this two projects and you have added great features but the basics such as responsiveness / scales / tooltips options are more professional in chart.js .
The above post is two years ago where there were no contributors and the traffic was low.
Take a look at chart 2.0 . There many changes and many contributors (180) and I thing that now is a good time to consider merging :)

@AK1979 Sorry, I did not under the context here. Are you talking about FVANCOP above?


Wrong vertical alignment of TextField in widgetsgallery sample

Hi,
When I run the widgetsgallery sample from this repo with IntelliJ 2020.3, the TextField examples show the input text a bit higher than vertically centered. The following screenshot shows the result I get:

The expected result would be to see a vertically centered input text as seen on the Material design specs: https://material.io/components/text-fields#filled-text-field
Thanks!

I read on slack that it renders correctly if you set singleLine = true on the text field.

@jimgoog  Yes, it was the answer I get when I asked the question, and it works. My concern is more about the conformance to the Material specs, which does not specify a parameter to get text aligned. Such a difference could lead to misinterpretation by developers.

Yeah, totally.  It's a bug, remains open, thanks for filing.  I was just posting the workaround here for posterity.

Fixed by https://github.com/JetBrains/compose-multiplatform/pull/3054

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


Introduce Template-based task logging plugin

TL;DR
Add Template-based task logging plugin and update usage to match.
Type

[ ] Bug Fix
[X] Feature
[ ] Plugin

Are all requirements met?

[X] Code completed
[X] Smoke tested
[X] Unit tests added
[X] Code documentation added
[X] Any pending items have an associated Issue

Tracking Issue
lyft/flyte#549
lyft/flyte#448

Codecov Report

Merging #144 (a19ec4f) into master (9d02bb0) will increase coverage by 0.28%.
The diff coverage is 80.17%.

@@            Coverage Diff             @@
##           master     #144      +/-   ##
==========================================
+ Coverage   61.62%   61.91%   +0.28%
==========================================
  Files         106      109       +3
  Lines        6090     6244     +154
==========================================
+ Hits         3753     3866     +113
- Misses       1954     1979      +25
- Partials      383      399      +16

Impacted Files
Coverage Δ

go/tasks/logs/config.go
100.00% <ø> (ø)

go/tasks/logs/logging_utils.go
67.21% <68.00%> (-16.66%)
:arrow_down:

...o/tasks/plugins/k8s/kfoperators/pytorch/pytorch.go
75.65% <71.42%> (-1.14%)
:arrow_down:

go/tasks/plugins/k8s/spark/spark.go
77.77% <74.35%> (-4.53%)
:arrow_down:

go/tasks/plugins/k8s/spark/config_flags.go
79.66% <79.66%> (ø)

go/tasks/pluginmachinery/tasklog/template.go
96.55% <96.55%> (ø)

go/tasks/logs/logconfig_flags.go
52.00% <100.00%> (+6.54%)
:arrow_up:

go/tasks/plugins/k8s/spark/config.go
100.00% <100.00%> (ø)

... and 1 more

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 9d02bb0...a19ec4f. Read the comment docs.

Codecov Report

Merging #144 (a19ec4f) into master (9d02bb0) will increase coverage by 0.28%.
The diff coverage is 80.17%.

@@            Coverage Diff             @@
##           master     #144      +/-   ##
==========================================
+ Coverage   61.62%   61.91%   +0.28%
==========================================
  Files         106      109       +3
  Lines        6090     6244     +154
==========================================
+ Hits         3753     3866     +113
- Misses       1954     1979      +25
- Partials      383      399      +16

Impacted Files
Coverage Δ

go/tasks/logs/config.go
100.00% <ø> (ø)

go/tasks/logs/logging_utils.go
67.21% <68.00%> (-16.66%)
:arrow_down:

...o/tasks/plugins/k8s/kfoperators/pytorch/pytorch.go
75.65% <71.42%> (-1.14%)
:arrow_down:

go/tasks/plugins/k8s/spark/spark.go
77.77% <74.35%> (-4.53%)
:arrow_down:

go/tasks/plugins/k8s/spark/config_flags.go
79.66% <79.66%> (ø)

go/tasks/pluginmachinery/tasklog/template.go
96.55% <96.55%> (ø)

go/tasks/logs/logconfig_flags.go
52.00% <100.00%> (+6.54%)
:arrow_up:

go/tasks/plugins/k8s/spark/config.go
100.00% <100.00%> (ø)

... and 1 more

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 9d02bb0...a19ec4f. Read the comment docs.

Yeah that won't work... the configured token doesn't have permissions to
push... I won't worry about it... once we move the repos over, I'll fix
these
On Tue, Jan 19, 2021 at 4:48 PM akhurana001<EMAIL_ADDRESS>wrote:

@akhurana001 approved this pull request.
LGTM, this looks like backward compatible with the current setup so we
should be fine.
Also the build is failing due to some access error, not sure why .
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/lyft/flyteplugins/pull/144#pullrequestreview-571783909,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAGUF3DZJJDTWT6PVW46RTS2YR6XANCNFSM4WIABKCQ
.

--
Thanks,
Haytham Abuelfutuh.

Yeah that won't work... the configured token doesn't have permissions to
push... I won't worry about it... once we move the repos over, I'll fix
these
On Tue, Jan 19, 2021 at 4:48 PM akhurana001<EMAIL_ADDRESS>wrote:

@akhurana001 approved this pull request.
LGTM, this looks like backward compatible with the current setup so we
should be fine.
Also the build is failing due to some access error, not sure why .
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/lyft/flyteplugins/pull/144#pullrequestreview-571783909,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAGUF3DZJJDTWT6PVW46RTS2YR6XANCNFSM4WIABKCQ
.

--
Thanks,
Haytham Abuelfutuh.


[performance] comparison with NVIDIA FasterTransformer

I run llama2 13B on 2 V100 GPUs(tensor parallel size = 2), the performance of vllm is no better than FasterTransformer. Neither latency nor throughput.
Has anyone done similar benchmarks? Need some double check.
I post my result here :
vllm

FasterTransformer

@sleepwalker2017 Hello, can you share the code for FasterTransformer llma2? I would like to compare the results and look forward to your reply.

Closing this issue as stale as there has been no discussion in the past 3 months.
If you are still experiencing the issue you describe, feel free to re-open this issue.


Remove nose dependency

Nose was only used to raise SkipTest that can be done with pytest.skip and that old dependency can be removed.

Nice one.  I noticed myself pytest.skip being used in another project, so I would probably have been fixing this myself today or tomorrow ... but now I don't have to bother :-)


Docusaurus

This PR introduces Docusaurus for API docs:

Includes GitHub actions for deploying directly to GitHub pages
Variables can be configured via .env file

Good stuff -- how will we integrate this with OrgBook BC?  Update the client to link to this new GH-Pages site? Or are should we deploy the docusaurus site to OpenShift and link to that?


interface-over-type-literal shouldn't be recommended

Yes, I know the Typescript docs say

Because an ideal property of software is being open to extension, you should always use an interface over a type alias if possible.

but seriously, if I am making a simple type with zero intention of ever using it as an extendable thing, it makes no sense to code it as an interface.

Sorry, I don't get what you mean. Is this a feature request or a bug report?

The default value for interface-over-type-literal in recommended.ts is true.  I believe it should be false.  Not sure if that constitutes a feature request or a bug :-)

After all the recommended preset is opinionated. It incorporates best practices and suggestions like the one you posted above.
When extending a preset, you can override the recommendation and tune the configuration to your needs.
Anyways, disabling the rule would be a breaking change. So don't expect any change before the next major version.

To clarify: interface-over-type-literal only complains about type alias declarations.
type Foo = {foo: number}; // The rule disallows this
interface Foo {foo: number} // and fixes it to this

let obj: {foo: number}; // This is still allowed

Since a type alias and an interface can be used (almost) interchangeably, I don't see why you would prefer the type alias.
On a related note: interfaces used to be cached while anonymous types like type aliases were recomputed for ever usage. So using type aliases could significantly increase compile time.
That performance gap will be almost gone with the next typescript version.

I do know that I can override it, but I feel pretty strongly that the recommendation is incorrect.
Here's my view of it.  There are many cases where an interface cannot be used for a type alias.  You can only use an interface to type an object literal.  If I am to follow the recommended best practices, then in a particular class file where I may have several type aliases, some will be type aliases and some will be interfaces.  Someone stumbling upon this class will wonder what the heck is going on and if I am intending the interfaces to be implemented/extended somewhere, or to at least be expecting it to be a possibility.
It would be much cleaner in my opinion for me to use a type alias for a type alias and an interface for an interface, rather than substitute one for the other in some cases just because interfaces have some extra capability (that I don't need if all want is a type alias).

I agree 100%. Interface chokes on next example:
type FileSection<T> = {
    [K in keyof T]: any
}

Yet, I use this kind of types VERY often. I Request removing this rule from recommended, look at thumb up's.

The use of interface keyword for structures should really be discouraged in my opinion. This rule does exactly the opposite, so there is no way in hell this can be considered a best practice.
This is one of the things typescript got wrong in my opinion, this is confusing the concept of interface, whose semantics in all other typesafe languages I've used, means "a collection of methods/functions/callable things", with object signature/duck type. The use of interface should be more restrictive, and I would really welcome a TSLint rule "interface-must-declare-only-functions", or a less restrictive "interface-must-declare-at-least-one-function"
Pure structures should be declared using the type operator and extended using the & operator. And the name should start with "T" :-)

@navels I agree with your feedback, I think tslint:recommended should remove this overly-opinionated rule configuration as a breaking change in the next major version

how can I override this option?

@sibelius in your tslint.json, under "rules", mark it as false:
{
    "extends": ["tslint:recommended"],
    "rules": {
        "interface-over-type-literal": false
    }
}

Note that this issue is tracking disabling the rule in the recommended ruleset. If you have general questions on TSLint, please use either StackOverflow or Gitter.

I'm not writing OOP code and I don't want to be forced to see interface or class in my code if I can help it.

@dandrei and I use Interfaces only when I want to describe functions (I use no OOP too).

Yeah, this one's definitely wrong and IMO should not be part of the recommended, or at least not auto-fixed so we can disable it before it clobbers our types.

The recommendation actually breaks code. Consider:
type Foo = {
  foo: string
}

interface IndexedObject {
  [key: string]: string
}

function useIndexedObject(object: IndexedObject) {}

const foo: Foo = {foo: "foo"}
useIndexedObject(foo)

The above code works. Until tslint --fix is applied and changes type Foo to interface Foo, the last line produces the error:
Argument of type 'Foo' is not assignable to parameter of type 'IndexedObject'.
  Index signature is missing in type 'Foo'.

IMO, any rule that breaks code should not be a recommendation. Heck, it shouldn't even be a rule if it has the potential to break code.

Not only that, but it also causes the "interfaces must start with 'I'" rule.

Index Signature is missing in type 'SOME INTERFACE'.
so I have to use type.

If your apps have a lot of types, it is a good indicator of violations of SOLID principles.

Removing the Type: Breaking Change label per #4811. Now accepting PRs!

So why is it called TypeScript, when it should be named InterfaceScript?! 🤣


Fade on Scroll Animation

Is your feature request related to a problem? Please describe.**
The way the content is presented on the website right now is relatively static,
Describe the solution you'd like**
A clear and concise description of what you want to happen.
I would Like to add a fade-in animation on the contents on scroll, as in when the user will scroll towards that content, the content will appear with a bit of fade-in and rise up animation or a Reveal Animation, it will help to retain the user's attention on the content more,
Screenshots
Website Right Now :

an example of the kind of animation I am aiming for
https://codepen.io/SitePoint/pen/warKXE
If you like the idea then please assign this issue to me!

Go ahead @MridulTi
Show your support by stargazing the repo 🌟


qps_json_driver timeout

https://sponge.corp.google.com/target?id=ee25caf7-2336-4357-a46a-243e261282fc&target=grpc/ubuntu/pull_request/grpc_basictests_cpp_opt&searchFor=&show=ALL&sortBy=STATUS
2017-11-09 00:02:44,910 RUNNING SCENARIO: cpp_protobuf_async_unary_qps_unconstrained_insecure
D1108 23:56:38.942589420   20597 test_config.cc:388]         test slowdown factor: sanitizer=1, fixture=1, poller=1, total=1
D1108 23:56:38.942813397   20597 ev_posix.cc:135]            Using polling engine: epollex
D1108 23:56:38.942843400   20597 dns_resolver.cc:307]        Using native dns resolver
I1108 23:56:38.942910452   20597 server_builder.cc:269]      Synchronous server. Num CQs: 32, Min pollers: 1, Max Pollers: 2, CQ timeout (msec): 10000
I1108 23:56:38.943951617   20597 server_builder.cc:269]      Synchronous server. Num CQs: 32, Min pollers: 1, Max Pollers: 2, CQ timeout (msec): 10000
I1108 23:56:38.944742474   20597 driver.cc:272]              Starting server on localhost:-1 (worker #0)
I1108 23:56:38.944944262   20616 qps_worker.cc:231]          RunServerBody: about to create server
I1108 23:56:38.944973060   20616 qps_worker.cc:69]           Starting server of type ASYNC_SERVER
I1108 23:56:38.946501274   20616 server_async.cc:94]         Sizing async server to 32 threads
I1108 23:56:39.222034621   20616 qps_worker.cc:239]          RunServerBody: server created
I1108 23:56:39.222100176   20616 qps_worker.cc:246]          RunServerBody: creation status reported
I1108 23:56:39.222136941   20597 driver.cc:328]              Starting client on localhost:-1 (worker #1)
D1108 23:56:39.222197801   20597 driver.cc:350]              Client 0 gets 64 channels
I1108 23:56:39.222345651   20657 qps_worker.cc:188]          RunClientBody: about to create client
I1108 23:56:39.222364544   20657 qps_worker.cc:50]           Starting client of type ASYNC_CLIENT UNARY 0
I1108 23:56:39.228116445   20657 client_async.cc:224]        Sizing async client to 32 threads
I1108 23:56:39.391543870   20657 qps_worker.cc:193]          RunClientBody: client created
I1108 23:56:39.391595777   20657 qps_worker.cc:198]          RunClientBody: creation status reported
I1108 23:56:39.391622360   20597 driver.cc:371]              Initiating
I1108 23:56:39.391669288   20657 qps_worker.cc:200]          RunClientBody: Message read
I1108 23:56:39.401946461   20657 qps_worker.cc:209]          RunClientBody: Mark response given
I1108 23:56:39.412649547   20597 driver.cc:392]              Warming up
I1108 23:56:39.412666418   20597 driver.cc:398]              Starting
I1108 23:56:39.413753229   20616 qps_worker.cc:248]          RunServerBody: Message read
I1108 23:56:39.413782221   20657 qps_worker.cc:200]          RunClientBody: Message read
I1108 23:56:39.418479616   20616 qps_worker.cc:257]          RunServerBody: Mark response given
I1108 23:56:39.423815467   20657 qps_worker.cc:209]          RunClientBody: Mark response given
I1108 23:56:39.424333596   20597 driver.cc:425]              Running
I1108 23:56:40.412764793   20597 driver.cc:439]              Finishing clients
I1108 23:56:40.414013265   20657 qps_worker.cc:200]          RunClientBody: Message read
I1108 23:56:40.415423277   20657 qps_worker.cc:209]          RunClientBody: Mark response given
I1108 23:56:40.415443432   20657 qps_worker.cc:212]          RunClientBody: Awaiting Threads Completion
I1108 23:56:40.415770036   20597 driver.cc:453]              Received final status from client 0

2017-11-09 00:02:44,911 TIMEOUT: qps_json_driver:inproc_cpp_protobuf_async_unary_qps_unconstrained_insecure GRPC_POLL_STRATEGY=epollex [pid=20597, time=366.0sec]

Same as https://github.com/grpc/grpc/issues/14045.


Proposal to implement pattern matching throughout the repo

It's fun to turn switch statements into switch expressions, but there are other interesting ways that pattern-matching can make things more concise & readable.
example (widget_inspector.dart):
// before
final Object? object = toObject(id);
if (object is Element) {
  final RenderObject? renderObject = object.renderObject;
  if (renderObject is RenderFlex) {
    renderObject.mainAxisAlignment = mainAxisAlignment;
  }
}

// after
if (toObject(id) case Element(:final RenderFlex renderObject)) {
  renderObject.mainAxisAlignment = mainAxisAlignment;
}

It's not so clear to me if pattern matching is always a clear win in terms of readability. I've heard that concern from others as well and I am trying to get them to voice their opinion on this issue as well. Let's get some input from the team and community on this before we move forward with this and apply this to the entire repository. Maybe also gather some feedback from the Discord channels?

Let's get some input from the team and community on this before we move forward with this and apply this to the entire repository. Maybe also gather some feedback from the Discord channels?

Sounds good! I posted a design doc issue for this today (and shared it on Discord as well). I'm very happy about the feedback it's received so far!

https://github.com/flutter/flutter/issues/152313


Partial downloaded

@smasoka Lets have a think about this. The question raised in the comment is:

If the file is already in the cache, can we assume that it's hash is correct?

I suspect we may be able to. The reasons being that:

We download into a file with the .partial extension. See here and here.
If the download completes, then the file with the .partial extension is renamed to the actual filename. See here for example.

It might make more sense to do the hash check before the move. Then we know that if the file (without the .partial extension) exists, it has the right hash. One could also use an exception to indicate when this fails. e.g.
   class FileHashMismatch(ValueError):
       pass

    ...

    with open_and_hash_file(part_filename) as (size, sha256hash, f):
        if size > 0:
            log.info("Resuming download of %s at %d", filename, size)
            # Some of this file has already been downloaded
            # Request the rest of it
            total_size = int(response.headers['Content-Length'])
            response.close()
            headers = {'Range': 'bytes=%d-%d' % (size, total_size)}
            response = session.get(url, params=params,
                                   headers=headers, stream=True)

        if response.status_code != 416:
            try:
                response.raise_for_status()
            except requests.exceptions.HTTPError as e:
                raise Exception(e)

            for chunk in response.iter_content(CHUNK_SIZE):
                if chunk:  # filter out keep-alive new chunks
                    sha256hash.update(chunk)
                    f.write(chunk)

    # Changes start here
    sha256hash = sha256hash.hexdigest()

    if sha256hash != entry['hash']:
        raise FileHashMismatch(f"{sha256hash} doesn't match {entry['hash'}")

    shutil.move(part_filename, filename)
    return sha256hash

Yeah, I agree and code in download handles that well. The assumption that if the filename is there (under cache) than its complete should stand.
I am testing the partial part of the code and I get this, I'm just adding that and testing

I am testing the partial part of the code and I get this, I'm just adding that and testing

Nice catch.I suspect that there are going to be more of these subtleties.


Drop in Unidata datetime intro materials notebook

This is a drop-in of this notebook from some of Unidata's introductory python materials that lives alongside our workshop materials. Mostly content-unmodified.
There were some headaches getting this to play nicely with jupyter-book including some hidden rogue widget and name metadata that totally broke the process. Mentioning that for myself and anyone else that might run into similar issues, as the tracebacks weren't particularly helpful.
Notes:

In my opinion, one of the better notebooks I've dropped in so far with regards to narrative and guiding text
The scope might be a bit of a mixed bag. Defining classes/functions and using the mesowest API to discuss datetime
Might be a bit too tightly dependent on scientific contexts, but does have varied examples
Organization fits current theme pretty well. Might benefit from more consistent titling as-is

I'll work on massaging this to the template during today's hackathon.

Looks great, @dcamron. I just had a few minor suggestions.

This is looking great!
With regard to the inclusion of the "30-second intro to OOP", my sense is that this ultimately belongs elsewhere in the Foundations content, ideally as a later section of the Intro to Python chapter. But it's really good! How about we include it as is in this notebook for now, and later on we can replace it in this notebook with a "reminder about OOP as it relates to datetime" link to where it will ultimately go?

This is looking great!
With regard to the inclusion of the "30-second intro to OOP", my sense is that this ultimately belongs elsewhere in the Foundations content, ideally as a later section of the Intro to Python chapter. But it's really good! How about we include it as is in this notebook for now, and later on we can replace it in this notebook with a "reminder about OOP as it relates to datetime" link to where it will ultimately go?

I will open an issue about this when we merge this PR so we don't forget about it entirely.

Ha ha, apparently GitHub Actions works in UTC, which kind of wrecks my new example :-(

I added some extra explanation to the UTC example, since it looked funny after executing on the server where local time = UTC.
I'll merge this tomorrow in case @dopplershift wants to respond to any of the edits.


Matching regex paths

Hello! I am trying to match a regular expression-based URL but I’m having trouble getting the syntax right. I want to match something like this:
/*/open/*

That is, the path accepts something like /user/open/account (any path, followed by the word open followed by any path).
Is there a way I can make this work with Deep Link Kit?

Hey @jbrennan
Naming the groups should work:
/:component/open/:action

Note that this will match:
https://thing.com/component/open/action
OR
thing://thing/component/open/action

But will not open:
thing://component/open/action

Since / checks everything in the path, excluding the host.

Wonderful, thanks!


Deterministic Variance Evaluation

Would it be possible to adapt the embedding inspector to utilize this technique?
Is This Loss Informative? Speeding Up Textual Inversion with Deterministic Objective Evaluation
https://arxiv.org/abs/2302.04841
They come to a similar conclusion that training loss does not give any meaningful indication of training goals and describe an alternative method.

I didn't read the 12 page paper, just the summary. Sounds like its just taking an average of the loss rate and stopping when it stops going down?

At the end of the paper they link to a github which has some examples:
https://github.com/yandex-research/DVAR
I don't know how it works, but I'm hoping there's some way to translate it into a graph that will better help determine when is a reliable stopping point during training.

Wouldn't the ideal solution be to just use their code that already does that?

Yes, that would be great, but I'm unfamiliar with how to use it. I currently use Automatic1111 to train textual inversion, how would I use the code to evaluate an embedding that I've trained with the webui?
I see this code on the github page:
export CUDA_VISIBLE_DEVICES="your-gpus"

python textual_inversion.py \
  -m [sd/ldm] \
  --train_data_dir="path-to-cat_statue-images" \
  --placeholder_token="inversion-cat_statue"
  --init_strategy best
  --train_batch_size=4 \
  --eval_batch_size=4 \
  --save_steps 100 \
  --max_train_steps 6100 \
  --learning_rate 5e-3 \
  --scale_lr \
  --sample_frequency -1 \
  --n_val_prompts 8 \
  --variant dvar_early_stopping \
  --early_stop_eps 0.39 \
  --early_stop_patience 282 \
  --mixed_precision fp16 \
  --logger wandb \
  --seed 59

As far as I understand it looks like it runs textual inversion from a command line. What part of it actually generates the deterministic loss graph?


PyCharm/IDEA warning on ox.settings

Contributing guidelines

[X] I understand the contributing guidelines

Documentation

[X] My problem is not addressed by the documentation or examples

Existing issues

[X] My problem does not appear in an existing issue

What operating system and Python version are you using?

Pip
Problem description

PyCharm/IDEA reports "Cannot find reference 'settings' in init.py" on any attempt to use ox.settings. This is a false positive: it still works.
Further, mypy is still unable to validate osmnx 2.0.0rc1 -- I mention this because typing was listed as a 2.0.0 feature.
error: Skipping analyzing "osmnx": module is installed, but missing library stubs or py.typed marker  [import-untyped]
error: Skipping analyzing "osmnx._errors": module is installed, but missing library stubs or py.typed marker  [import-untyped]

Complete minimal reproducible example
import osmnx as ox

ox.settings.cache_folder = "./_cache"

Is this just a pycharm/mypy problem or can Python itself not find the settings module? What happens when you run:
import osmnx as ox
print(ox.__version__)
print(ox)
ox.settings.cache_folder = "./_cache"

What's the printed output, and do you get a runtime error upon trying to access the settings module?

As mentioned above, I haven't been able to get mypy to scan it, and it does seem to be IDE-only. To be more explicit, I'm able to set the cache folder at runtime, and osmnx respects the setting.
mypy reports the following:
error: Skipping analyzing "osmnx": module is installed, but missing library stubs or py.typed marker  [import-untyped]
error: Skipping analyzing "osmnx._errors": module is installed, but missing library stubs or py.typed marker  [import-untyped]

For completeness, the printed output you requested:
2.0.0rc1
<module 'osmnx' from '...\\Python311\\Lib\\site-packages\\osmnx\\__init__.py'>

Ok, thanks. This is really helpful.

Further, mypy is still unable to validate osmnx 2.0.0rc1 -- I mention this because typing was listed as a 2.0.0 feature.

This should be resolved by #1231. I'll release another rc shortly so you can try it out.

PyCharm/IDEA reports "Cannot find reference 'settings' in init.py" on any attempt to use ox.settings. This is a false positive: it still works.

I still don't have a guess for this one. I don't use PyCharm, but a quick test with IPython shows it's having no problem with code inspection for the settings module.

If you do have any sense of the PyCharm code inspection issue, let me know.

I'll release another rc shortly so you can try it out.

rc2 is now released and available for you to try.

mypy: Seems to work now.
PyCharm: It seems to me that PyCharm is confused because it can't find a settings import in __init__.py. To be honest, as someone not native to Python, I'm also a little confused at how settings ends up getting exposed.
My guess is from . import settings in the init would fix this.

I'm also a little confused at how settings ends up getting exposed.

It's exposed because it's a module inside a package. The __init__.py file's existence is what makes this a package and the settings module importable. It could be an empty __init__.py file and the imports would still work fine. See the Python docs. We just also have some function imports in there to expose them directly in the default namespace for backwards compatibility (i.e., so you don't have to access those functions through their modules).
Your issue appears to be PyCharm-specific (see StackOverflow, which suggests it's a PyCharm bug), as it expects modules to be included in __all__ for inspection. But __all__ really exists to enable from whatever import * syntax, which in general is not a good practice. See also the PyCharm docs on resolving references.


create .ghuser

Hi @gonzalocasas
I am trying to use this AMAZING feature but there is something that doesn't work in my workflow.
The action seems to be completed with positive result but I am not sure if everythings is correct.
Can you please assist?
Can you maybe create a quick .gif to show me?
I can not find a way to find the file on github at the end of the action
Thanks,
Marco

Hi @Marco-Pellegrino ! Ah, yep, I've heard the same thing from others. The action is working correctly, but it might not be clear that, unless you do an extra step with the output files, those are only inside the build but never accessible outside that. I will add an extra example on how to take the built files and create build assets out of them so that they can be retrieved. (What we do in compas.dev is to bundle them immediately into the release, you can check our repo for more details about that if curious).

I added some notes about how to use upload-artifacts as one uploading options, and also comments on how this is used from COMPAS to include in the pip installable package: https://github.com/compas-dev/compas-actions.ghpython_components#where-are-the-generated-components


Update stable version in repo from 1.3.2 to 2.0.1

Think about update stable version to 2.0.1
Version: stable=1.3.2 (301 days old) => latest=2.0.1 (15 days old)
Installs: stable=1382 (62.88%), latest=214 (9.74%), total=2198
Click to use developer portal
Click to edit
Note: This is an automatically generated message and not personally authored by bluefox!

@oelison
Do you know any reason to delay stable update any longer?

This issue seems to be outdated.
This issue suggests to update the stable version of this adapter to 2.0.1 but the current stable version is already 2.0.1.
So this issue should be closed.


Not found proposal msg is displayed along with table headers

Description:

the messaging could definitely be improved!


Failed connection to private registry

Problem
Hi, I'm sorry if this is not proper place to post this. I've recently tried to use new Azure Artifacts private registry feature. I've setup cargo configuration as per instructions and tried to publish a sample crate. Unfortunately I've got following error (hid specific names):
❯ cargo publish --dry-run --registry <REGISTRY> --package <PACKAGE>
    Updating `<REGISTRY>` index
warning: spurious network error (3 tries remaining): [55] Failed sending data to the peer (Failed sending HTTP request)
warning: spurious network error (2 tries remaining): [55] Failed sending data to the peer (Failed sending HTTP request)
warning: spurious network error (1 tries remaining): [55] Failed sending data to the peer (Failed sending HTTP request)
error: download of config.json failed

Caused by:
  failed to download from `https://pkgs.dev.azure.com/<REGISTRY>/_packaging/<REGISTRY>/Cargo/index/config.json`

Caused by:
  [55] Failed sending data to the peer (Failed sending HTTP request)

Then I noted that cargo uses curl underneath and so tried to perform the request manually, using the same token I provided to cargo login, I'll note here that its size is about 10KB which could matter. Here is the result with newer version installed with homebrew:
❯ curl --version
curl 8.4.0 (x86_64-apple-darwin22.6.0) libcurl/8.4.0 (SecureTransport) OpenSSL/3.1.4 zlib/1.2.11 brotli/1.1.0 zstd/1.5.5 libidn2/2.3.4 libssh2/1.11.0 nghttp2/1.58.0 librtmp/2.3 OpenLDAP/2.6.6
Release-Date: 2023-10-11
Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz MultiSSL NTLM SPNEGO SSL threadsafe TLS-SRP UnixSockets zstd

❯ curl --location 'https://pkgs.dev.azure.com/<REGISTRY>/_packaging/<REGISTRY>/Cargo/index/config.json' \
  --header 'Authorization: Bearer <TOKEN>'
{"dl":"https://pkgs.dev.azure.com/<REGISTRY>/_packaging/<GUID>/cargo/api/v1/crates/{crate}/{version}/download","api":"https://pkgs.dev.azure.com/<REGISTRY>/_packaging/<GUID>/cargo","auth-required":true}

And below is the result with system provided curl which seems to be the same (libcurl) version as in cargo version:
❯ /usr/bin/curl --version
curl 8.1.2 (x86_64-apple-darwin22.0) libcurl/8.1.2 (SecureTransport) LibreSSL/3.3.6 zlib/1.2.11 nghttp2/1.51.0
Release-Date: 2023-05-30
Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS GSS-API HSTS HTTP2 HTTPS-proxy IPv6 Kerberos Largefile libz MultiSSL NTLM NTLM_WB SPNEGO SSL threadsafe UnixSockets

❯ /usr/bin/curl --location 'https://pkgs.dev.azure.com/<REGISTRY>/_packaging/<REGISTRY>/Cargo/index/config.json' \
  --header 'Authorization: Bearer <TOKEN>'
curl: (55) Failed sending HTTP request

My question is, can I somehow fix this given my setup or is there some deeper issue here.
Steps
No response
Possible Solution(s)
No response
Notes
No response
Version
cargo 1.75.0-nightly (b4d18d4bd 2023-10-31)
release: 1.75.0-nightly
commit-hash: b4d18d4bd3db6d872892f6c87c51a02999b80802
commit-date: 2023-10-31
host: aarch64-apple-darwin
libgit2: 1.7.1 (sys:0.18.1 vendored)
libcurl: 8.1.2 (sys:0.4.68+curl-8.4.0 system ssl:(SecureTransport) LibreSSL/3.3.6)
ssl: OpenSSL 1.1.1u  30 May 2023
os: Mac OS 13.6.2 [64-bit]

Thanks for the report. This is effectively https://github.com/curl/curl/issues/11405 and was fixed in curl 8.2.0 via https://github.com/curl/curl/commit/4e88024f0cda6674a91d3e7068e775edc5682f3b, which raises the limit to 1MB and is included in Cargo 1.72.0.
However, on macOS cargo don't static link to bundled libcurl but system-provided instead, due to some ABI and SSL compatibility issues. If you find a way to override your lib search path, that might work. Something like:
$ DYLD_LIBRARY_PATH=/opt/homebrew/opt/curl/lib cargo -vV
cargo 1.75.0-beta.3 (1d8b05cdd 2023-11-20)
release: 1.75.0-beta.3
commit-hash: 1d8b05cdd1287c64467306cf3ca2c8ac60c11eb0
commit-date: 2023-11-20
host: aarch64-apple-darwin
libgit2: 1.7.1 (sys:0.18.1 vendored)
libcurl: 8.4.0 (sys:0.4.68+curl-8.4.0 system ssl:(SecureTransport) OpenSSL/3.1.4)
ssl: OpenSSL 1.1.1u  30 May 2023
os: Mac OS 13.6.0 [64-bit]

Thank you for the suggestion. Indeed, with the environment variable the result is different, however, still unsuccessful.
❯ DYLD_LIBRARY_PATH=/opt/homebrew/opt/curl/lib cargo publish --dry-run --registry <REGISTRY> --package <PACKAGE>
    Updating `<REGISTRY>` index
warning: spurious network error (3 tries remaining): [92] Stream error in the HTTP/2 framing layer (HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1))
warning: spurious network error (2 tries remaining): [92] Stream error in the HTTP/2 framing layer (HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1))
warning: spurious network error (1 tries remaining): [92] Stream error in the HTTP/2 framing layer (HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1))
error: download of config.json failed

Caused by:
  failed to download from `https://pkgs.dev.azure.com/<REGISTRY>/_packaging/<REGISTRY>/Cargo/index/config.json`

Caused by:
  [92] Stream error in the HTTP/2 framing layer (HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1))

Ok, I was messing with cargo http options and setting http.multiplexing = false resolves error above resulting in success. So it seems that resolves my issue, with a tradeoff but still. If you have any additional suggestions that can retain multiplexing I'm open, but nonetheless thanks again for help.


Python 3.6 invalid escape sequence deprecation fixes

https://docs.python.org/3/whatsnew/3.6.html#deprecated-python-behavior

Codecov Report

Merging #144 into master will not change coverage.
The diff coverage is 100%.

@@           Coverage Diff           @@
##           master     #144   +/-   ##
=======================================
  Coverage   91.16%   91.16%
=======================================
  Files           5        5
  Lines        2116     2116
=======================================
  Hits         1929     1929
  Misses        187      187

Impacted Files
Coverage Δ

scour/scour.py
92.78% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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

@scop Out of curiosity: Did you ever see this warning? I can't seem to be able to trigger it even on purpose...

@Ede123 Yes, the warning is displayed when the code is run or compiled with Python 3.6 and -Wd (or -Wall).
$ python --version
Python 3.6.1
$ curl -sO https://raw.githubusercontent.com/scour-project/scour/62b16c11d85d7fa8155f8ed043317cdd9182b6d4/scour/scour.py
$ python -Wd -c "import py_compile; py_compile.compile('scour.py')"
scour.py:1414: DeprecationWarning: invalid escape sequence \(
  funcIRI = re.compile('url\([\'"]?#' + dup_id + '[\'"]?\)')  # matches url(#a), url('#a') and url("#a")
scour.py:1414: DeprecationWarning: invalid escape sequence \)
  funcIRI = re.compile('url\([\'"]?#' + dup_id + '[\'"]?\)')  # matches url(#a), url('#a') and url("#a")

@scop OK, will try that again. I couldn't produce the warning with just running the code for some reason...


Added Fundamentals of DBMS Navathe

Hey @vermakhushboo! :wave:
The book is a great addition to the compilation! :sparkling_heart: I'll go ahead and merge this, much thanks for the contribution! :sparkles:


[DO NOT MERGE] Added an initial attempt of having the IM support (U)INT24 types

Problem

The IM does not currently support reading and writing of types not being sized 2^n.
UINT24 support is needed for the PCC cluster to be fully testable

Change overview

Add support in the IM for UINT24 attribute read/write support
Added a structure called uint24_t and a int24_t in the chip::TLV namespace
Added Put()and Get() methods in CHIPTLVReader.cpp and CHIPTLVWriter.cpp to support these two new types

Testing

Build the chip-tool and all-clusters-app and tested on Darwin platform
Build the Darwin TestFramework and tested

 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.

I think you are right Boris. The changes should only go into the ember-compatibility-functions.cpp file and then have a clean machine type interface (8, 16, 32 and 64 bit integers) towards the TLV module. I was just not capable. I have been looking further into this, and the Accessorrs.cpp/.h files are they not autogenerated from the .zapt file templates?

But looking into the Accessors.js Java helper script in the src/app/zap-templates/common/attributes/ directory, I see the method canHaveSimpleAccessors() which is used in the Accessors.zapt and the Accessors-src.zapt files. This means that the UINT24 types are to be implemented here as well.

Given that this PR is in progress maybe it should be better to change it to draft


Track # of downloads of PearAI

Context
When PearAI is released, we need ability to track analytics on # of downloads / wk
Solution

closing since this is being tracked in Axiom


Combine Statement and Declaration types

Would it be a pain if we merged AST Statement and Declaration types into one?
Currently:
pub enum Statement<'a> {
    BlockStatement(Box<'a, BlockStatement<'a>>),
    /* ... */
    ModuleDeclaration(Box<'a, ModuleDeclaration<'a>>),

    Declaration(Declaration<'a>),
}

pub enum Declaration<'a> {
    VariableDeclaration(Box<'a, VariableDeclaration<'a>>),
    /* ... */
    TSImportEqualsDeclaration(Box<'a, TSImportEqualsDeclaration<'a>>),
}

Could we make it just 1 enum combining all the variants:
pub enum Statement<'a> {
    // From `Statement`
    BlockStatement(Box<'a, BlockStatement<'a>>),
    /* ... */
    ModuleDeclaration(Box<'a, ModuleDeclaration<'a>>),

    // From `Declaration`
    VariableDeclaration(Box<'a, VariableDeclaration<'a>>),
    /* ... */
    TSImportEqualsDeclaration(Box<'a, TSImportEqualsDeclaration<'a>>),
}

I'm asking because this would simplify #2409. It is still possible to make it work without this change, but it's a bit more brittle.
To explain:
For AST transfer, ideally we want all enums to be #[repr(u8)] so the byte value for each option's discriminant can be specified explicitly. Then they're completely locked and you can read the bytes representing a Statement in memory, and reliably interpret them.
But in this case, the compiler is cleverly merging the discriminants for Statement and Declaration using niche optimization, which means Statement is 16 bytes. If we make Statement #[repr(u8)], it disables the niche optimization, and Statement becomes 24 bytes. Not good!
There is a way around this without changing the types: Don't make Statement #[repr(u8)], and the compiler in practice is predictable in what discriminants it assigns. But the compiler makes no promise not to change that at any minute without warning, so while I don't think likely that it will break, it could break at any time.
To get to the point... It'd be simpler to sidestep the issue entirely by folding Declaration's variants into Statement. Question is how much of a pain would that be? So is it worth it?
NB: The same problem applies to a few other types (only ExportDefaultDeclarationKind and AssignmentTargetMaybeDefault that I'm aware of, but maybe there's a few more). But of course Statement is the one which gets used absolutely everywhere.

Let me give this a try and see if the APIs around this part of the AST become difficult to use.

🤔 The node is reused here https://github.com/oxc-project/oxc/blob/0f86333437ac2b520490eb106039b412c4262c8f/crates/oxc_ast/src/ast/js.rs#L2498-L2501

🤔 The node is reused here

Ah. That does complicate matters.
Just to repeat, we don't have to do this. There is another way around it, it's just a bit more brittle.

After some experimentation (2 hours 😅 ), I conclude the current structure is better than everything flattened.

OK cool. Thanks for trying it out. I'll switch to plan B.


Switch to msys2 GCC compiler for Windows

Use msys2 in windows, as pymingw has been abandoned and never delivered support for Python 3.5+

Codecov Report

Merging #28 into master will decrease coverage by 0.25%.
The diff coverage is 61.53%.

@@            Coverage Diff             @@
##           master      #28      +/-   ##
==========================================
- Coverage   92.78%   92.53%   -0.26%
==========================================
  Files           4        4
  Lines         305      308       +3
==========================================
+ Hits          283      285       +2
- Misses         22       23       +1

Impacted Files
Coverage Δ

compiledtrees/code_gen.py
83.96% <55.55%> (ø)
:arrow_up:

compiledtrees/compiled.py
94.52% <75%> (-1.2%)
: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 7b076e2...e7107c3. Read the comment docs.


If distribute fee fails, refund to original sender

https://github.com/cosmos/ibc-go/blob/13f77de949ce84704db1c7307d31ba8c6e16842e/modules/apps/29-fee/keeper/escrow.go#L92
Should include a refund address argument which is original fee sender
If we are trying to refund to original sender and that fails, then we need to just no-op and continue.

What are the concerns of the fee being left behind in the ics29 module account if this fails?
For the same reasons a bank send fails to a forward/reverse relayer it may also fail to the refund account. Do you think this issue is still necessarily?


Add selectedLabelStyle and unselectedLabelStyle to BottomNavigationBarItem

Use case
When I switch pages on the homepage of my app, since the theme is blue, I hope to change the corresponding label color of the BottomNavigationBar below to blue as well. This may result in multiple label styles. However, to achieve this currently, I need to do
selectedLabelStyle: _selectedIndex == 1
            ? TextStyle(color: Colors.red, fontSize: 40)
            : TextStyle(color: Colors.green, fontSize: 20),

It's not very convenient. It would be great if we could add specific style controls within the BottomNavigationBarItem. I found the activeIcon property, but there's no way to control the label style.
Proposal
I suggest adding two properties (selectedLabelStyle and unselectedLabelStyle) to BottomNavigationBarItem. These properties would have a higher priority than those in BottomNavigationBar. When they are empty, the styles from BottomNavigationBar's selectedLabelStyle and unselectedLabelStyle would be used instead.
BottomNavigationBarItem(
    icon: Icon(Icons.person),
    label: 'label',
    selectedLabelStyle: TextStyle(color: Colors.red, fontSize: 20),
    unselectedLabelStyle: TextStyle(color: Colors.green, fontSize: 20),
),

@StanleyCocos
Can you check the code sample from this issue to see if it helps in your case or not ?
theme: ThemeData(
          primaryColor: Colors.blue.shade900,
          appBarTheme: AppBarTheme(backgroundColor: Colors.blue.shade900),
          bottomNavigationBarTheme: BottomNavigationBarThemeData(
              unselectedLabelStyle: const TextStyle(color: Colors.black),
              selectedLabelStyle: const TextStyle(color: Colors.red),
              selectedIconTheme: IconThemeData(color: Colors.blue.shade900))),

I understand that the existing functions can achieve my idea, but none of them are very convenient. If I have 5 tab items, each with a different style, it would be very troublesome to write. In my opinion, since BottomNavigationBarItem already exists, it is very reasonable to control the individual styles within it.


Fix and update dependencies to 0.3

Description
The branch constraints isn't building with latest dependencies.
Open questions

[ ] We declare DensePolynomial<F> concretely in some places, and expect the generic PC::BatchProof in others
[ ] fiat_shamir::AlgebraicSponge looks duplicate to ark_sponge::CryptographicSponge and should possibly be replaced

closes: #87

[ ] Targeted PR against correct branch (master) - N/A, this aims to fix constraints so the latter can be merged to master
[x] Linked to Github issue with discussion and accepted design OR have an explanation in the PR that describes this work.
[ ] Wrote unit tests
[ ] Updated relevant documentation in the code
[ ] Added a relevant changelog entry to the Pending section in CHANGELOG.md
[x] Re-reviewed Files changed in the Github PR explorer

We should be generic over the Polynomial type where possible (like the main branch is), and should indeed deprecate fiat_shamir::AlgebraicSponge entirely

ideas to fix the test?


(Suggestion) Delete downloaded input file.

I was testing it out with a downloaded youtube video and I found it really annoying having to delete the videos it generated. It would be nice to delete the downloaded input file from the downloaded yt video.

https://github.com/carykh/jumpcutter/pull/68#issue-270244145


macOS - prevent issues from trying to restore multiple fullscreen windows on the same display

fixes https://github.com/microsoft/vscode/issues/157605
fixes https://github.com/microsoft/vscode/issues/150790

This is horrible and I don't like it, but gets the job done.