Docs stuck on enum with methods generated at compilation time

Docs generation gets stuck when an enum has methods defined using macros.
A minimal example:
enum Foo
  A = 1

  {% for sec in %w(a b c) %}
    def {{sec.id}}
    end
  {% end %}
end

Removing the method definition from the macro loop fixes the issue... it only occurs for enums as changing the type to a class/struct also fixes the issue.
@straight-shoota told me to use strace. The following text is the last lines of the output, hope it helps.
stat("./docs/css", {st_mode=S_IFDIR|0777, st_size=4096, ...}) = 0
stat("./docs/js", {st_mode=S_IFDIR|0777, st_size=4096, ...}) = 0
open("./docs/css/style.css", O_WRONLY|O_CREAT|O_TRUNC|O_CLOEXEC, 0644) = 9
fcntl(9, F_SETFD, FD_CLOEXEC)           = 0
fcntl(9, F_GETFL)                       = 0x8001 (flags O_WRONLY|O_LARGEFILE)
write(9, "html, body {\n  background: #FFFF"..., 12194) = 12194
close(9)                                = 0
open("./docs/js/doc.js", O_WRONLY|O_CREAT|O_TRUNC|O_CLOEXEC, 0644) = 9
fcntl(9, F_SETFD, FD_CLOEXEC)           = 0
fcntl(9, F_GETFL)                       = 0x8001 (flags O_WRONLY|O_LARGEFILE)
write(9, "window.CrystalDocs = (window.Cry"..., 106) = 106
write(9, "CrystalDocs.searchIndex = (Cryst"..., 16744) = 16744
write(9, "\nNavigator = function(sidebar, s"..., 7641) = 7641
write(9, "var UsageModal = function(title,"..., 7130) = 7130
close(9)                                = 0
open("./docs/Foo.html", O_WRONLY|O_CREAT|O_TRUNC|O_CLOEXEC, 0644) = 9
fcntl(9, F_SETFD, FD_CLOEXEC)           = 0
fcntl(9, F_GETFL)                       = 0x8001 (flags O_WRONLY|O_LARGEFILE)

Thanks for the bug report!
For future bug reports you can ignore the strace: I never use it.

In this case the stack trace actually helps to identify which type was being generated. crystal docs has no log output, so that's the easiest way ;)


Add "platforms" field to readme examples

The platforms field seems to be required for all projects in projects.json (see the error I got when it wasn't set below). The readme examples didn't contain it oddly enough. I've added it with Darwin as an example value.
Error received:
Traceback (most recent call last):
  File "./check", line 153, in <module>
    sys.exit(main())
  File "./check", line 147, in main
    compatibility_version = get_project_compatibility(args.project)
  File "./check", line 84, in get_project_compatibility
    if not platform.system() in project['platforms']:
KeyError: 'platforms'

Thanks!


Support for all Microsoft Laptops

When loading the list of Microsoft products the list is missing the "Surface Laptop 4".  According to the count there is support for 26 models, and the MS SKU reference site has 36.  Can we get all of the Laptops supported please? https://docs.microsoft.com/en-us/surface/surface-system-sku-reference

I created a local copy of the MSProducts.xml file, modified it and added the "Surface Laptop 4" SKU's, attempting to emulate the format of other models. I modified the OEMLinks.xml file to point to the local copy.  The new models  are visible in the GUI but the driver pack is not found and downloaded. It appears I don't have the correct "ProductName" variable. How do I find the correct one?

======== Processing Microsoft Surface Laptop 4 - Intel 13 Downloads ========
Info: Starting Download, extract and import processes for Microsoft model: Surface Laptop 4 - Intel 13
Info: Setting Microsoft variables
Info: Atteming match for SurfaceLaptop4
Info: Microsoft AKA shortlink URL is https://aka.ms/SurfaceLaptop4/19043
Info: Unable to locate AKA url for build 19043, falling back to build 18362. Check https://support.microsoft.com/tr-tr/surface/download-drivers-and-firmware-for-surface-09bb2e09-2a4b-cb69-0951-078a7739e120 if you wish to verify manually.
Info: Unable to find driver URL for the build of Windows specified for this model.  I found the download links here, https://dancharblog.wordpress.com/2021/04/06/all-direct-download-links-for-surface-firmware-drivers/ and modified the  "ProductName" variable in the MSProducts.xml file accordingly. I also had to select the  Windows 10 20H2 OS in the GUI.
<Model SystemSKU="Surface_Laptop_4_1950:1951" ProductName="SurfaceLaptop4/Intel" DisplayName="Surface Laptop 4 - Intel 13" SupportedBuilds="1809,1903,1909,2004,2009"></Model>
<Model SystemSKU="Surface_Laptop_4_1978:1979" ProductName="SurfaceLaptop4/Intel" DisplayName="Surface Laptop 4 - Intel 15" SupportedBuilds="1809,1903,1909,2004,2009"></Model>
<Model SystemSKU="Surface_Laptop_4_1958:1959" ProductName="SurfaceLaptop4/AMD" DisplayName="Surface Laptop 4 - AMD 13" SupportedBuilds="1809,1903,1909,2004,2009"></Model>
<Model SystemSKU="Surface_Laptop_4_1952:1953" ProductName="SurfaceLaptop4/AMD" DisplayName="Surface Laptop 4 - AMD 15" SupportedBuilds="1809,1903,1909,2004,2009"></Model>

Thank you!!  For both of the emails.  Worked on this today and got it working using a local copy of the products.xml.
Problem solved.
From: JCPine77 @.>
Sent: Wednesday, June 16, 2021 9:06 AM
To: maurice-daly/DriverAutomationTool @.>
Cc: Newhard, Bryan @.>; Author @.>
Subject: Re: [maurice-daly/DriverAutomationTool] Support for all Microsoft Laptops (#241)
I created a local copy of the MSProducts.xml file, modified it and added the "Surface Laptop 4" SKU's, attempting to emulate the format of other models. I modified the OEMLinks.xml file to point to the local copy. The new models are visible in the GUI but the driver pack is not found and downloaded. It appears I don't have the correct "ProductName" variable. How do I find the correct one?
[DATGUI]https://urldefense.com/v3/__https:/user-images.githubusercontent.com/80485840/122222890-b1429a80-ce80-11eb-83fa-4c571193f3e6.jpg__;!!CQl3mcHX2A!RqW9alQDtGeq-Pn-9pkXTnCTYpZewZpJnqUWhQgTvBgdw8Tqz5vQvxYcLnKiP7cJOLkj8cE$
======== Processing Microsoft Surface Laptop 4 - Intel 13 Downloads ========
Info: Starting Download, extract and import processes for Microsoft model: Surface Laptop 4 - Intel 13
Info: Setting Microsoft variables
Info: Atteming match for SurfaceLaptop4
Info: Microsoft AKA shortlink URL is https://aka.ms/SurfaceLaptop4/19043https://urldefense.com/v3/__https:/aka.ms/SurfaceLaptop4/19043__;!!CQl3mcHX2A!RqW9alQDtGeq-Pn-9pkXTnCTYpZewZpJnqUWhQgTvBgdw8Tqz5vQvxYcLnKiP7cJebmNwx4$
Info: Unable to locate AKA url for build 19043, falling back to build 18362. Check https://support.microsoft.com/tr-tr/surface/download-drivers-and-firmware-for-surface-09bb2e09-2a4b-cb69-0951-078a7739e120https://urldefense.com/v3/__https:/support.microsoft.com/tr-tr/surface/download-drivers-and-firmware-for-surface-09bb2e09-2a4b-cb69-0951-078a7739e120__;!!CQl3mcHX2A!RqW9alQDtGeq-Pn-9pkXTnCTYpZewZpJnqUWhQgTvBgdw8Tqz5vQvxYcLnKiP7cJdO3JdYU$ if you wish to verify manually.
Info: Unable to find driver URL for the build of Windows specified for this model. Try using an older build.

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://urldefense.com/v3/__https:/github.com/maurice-daly/DriverAutomationTool/issues/241*issuecomment-862362959__;Iw!!CQl3mcHX2A!RqW9alQDtGeq-Pn-9pkXTnCTYpZewZpJnqUWhQgTvBgdw8Tqz5vQvxYcLnKiP7cJQFHTkXc$, or unsubscribehttps://urldefense.com/v3/__https:/github.com/notifications/unsubscribe-auth/AKMHBMGZT2C3AMLRDRV72MLTTCOSBANCNFSM46VKNVIA__;!!CQl3mcHX2A!RqW9alQDtGeq-Pn-9pkXTnCTYpZewZpJnqUWhQgTvBgdw8Tqz5vQvxYcLnKiP7cJmfRYz6Y$.

how do you use a local copy of the products xml, i can find neither of these files msproducts.xml or oemlinks on my install

Thank you!! For both of the posts. Worked on this today and got it working using a local copy of the products.xml. Problem solved.

I was able to download Surface Laptop 4 driver packs. I found the download links here, https://dancharblog.wordpress.com/2021/04/06/all-direct-download-links-for-surface-firmware-drivers/ and modified the "ProductName" variable in the MSProducts.xml file accordingly. I also had to select the Windows 10 20H2 OS in the GUI.
<Model SystemSKU="Surface_Laptop_4_1950:1951" ProductName="SurfaceLaptop4/Intel" DisplayName="Surface Laptop 4 - Intel 13" SupportedBuilds="1809,1903,1909,2004,2009"></Model>
<Model SystemSKU="Surface_Laptop_4_1978:1979" ProductName="SurfaceLaptop4/Intel" DisplayName="Surface Laptop 4 - Intel 15" SupportedBuilds="1809,1903,1909,2004,2009"></Model>
<Model SystemSKU="Surface_Laptop_4_1958:1959" ProductName="SurfaceLaptop4/AMD" DisplayName="Surface Laptop 4 - AMD 13" SupportedBuilds="1809,1903,1909,2004,2009"></Model>
<Model SystemSKU="Surface_Laptop_4_1952:1953" ProductName="SurfaceLaptop4/AMD" DisplayName="Surface Laptop 4 - AMD 15" SupportedBuilds="1809,1903,1909,2004,2009"></Model>

Where is the MSProducts.xml located?  I only have this

The file doesn't normally exist locally. The path to it is in the OEMLinks.xml file.


Adding missing implementation of tabbed_display::selected_tab

This pull request adds a few lines to provide a getter for the selected tab in a tabbed_display.
In dlib/gui_widgets/widgets_abstract.h:1115 there is a getter for the currently selected tab in a tabbed_display. However, widgets.h and widget.cpp missed this, which I figured out when my code wouldn't link properly.
Out of curiosity, what is the reason to have basically two almost identical header definitions of the tabbed_display, one in widgets.h and one in widgets_abstract.h? The latter seems not to be picked up by the compiler (without my changes in widgets.h the new function wouldn't compile) and seems to be there mostly for the documentation purpose?

Awesome, thanks for the PR.
Yes, the _abstract.h files are documentation.  They aren't compiled.  This is discussed in the dlib introduction: http://dlib.net/intro.html


Give feedback on press instead of tap

The native iOS keyboards give audio feedback on press instead of tap.
This should be the standard behavior in KeyboardKit as well. The action handler should trigger feedback if:

The gesture is press and the keyboard action has a tap action
The keyboard action has an action for the provided gesture

I will implement this in the standard action handler, but it will then move to a new feedback handler as part of #249.

This can be tested in master.


Safe to use Private Property for LongPress?

In configureBarItemsGestures you are accessing the private View property of the UIBarButtonItems. Seems to be the best way due to the lack of UIBarButtonItems exposing their gesture Recognizers.
Are you aware of any App Store rejections caused by this?

Thanks for the heads up! That's what I hoped to hear, so thanks for the confirmation :)
For other people stumbling upon this thread:
After years I never jumped into the water of accessing private APIs, sub-classing and in ObjC days sometimes method swizzling were all I needed. But at some point, like detecting long-press on a UIBarButtonItem for back/forward history, you have to rethink if there is another way. Welcome to the dark side ;)
Your solution uses KVO to access the view, which is probably the most elegant approach.
For reference this post titled "Five Pieces of Evidence for "It's Not Private" on SO sums it up, why I might not be that "illegal":
http://stackoverflow.com/a/11924449/844907

It's a property that you can get to in other ways. Try this and one of those views is, in fact, the _view ivar of the UIBarButtonItem in question. This indicates that access to this UIView is not prohibited itself, though the KVO way in might be questionable (but I doubt it).

  NSArray *array = self.toolBar.subviews;
  for (UIView *view in array) {
      view.backgroundColor = UIColor.greenColor;
  }

They actually trigger the KVO for this property. ivars do not have to trigger the KVO API, right?
@Farcaller mentions a similar case which is for sale in the App Store. Since he/she answered within the first 20 minutes of the question being up there, it's reasonable (but not safe!) to assume that there might be thousands of apps in the App Store that do this.
This UIView gets subbed out each time the button is pressed, so you cannot just, for example, set a gesture recognizer on it and be done. You can, however, keep setting the same gesture recognizer every time the view gets replaced. To me, this is actually more evidence that it's not a private API thing, but rather you have to be very careful when using it (and use KVO to make sure you have the latest one).
My app is for sale in the App Store and does this.

One could argue if this approach needs more work when speaking of the current implementation in DZNWebViewController, like observing the KV for view and re-inject the gesture recognizer as Yar pointed out on SO, but currently the only thing that would happend without is, that the gesture would simply not work. Nothing spectacular.
@dzenbot Thanks for the nice solution!

Mind that I answered it like three years ago and the Apple policy on that changed. Still, I guess the code in here is reasonably safe.

@farcaller Thanks for joining! Absolutely, many things have changed. But agreed, the approach taken is still valid.
If someone is really picky about: with Swift 2 a simple do-try-catch sandwich around the exchange will ensure that accessing this private View has no consequences if Apple decides to make some changes in future.

Nothing swift-specific there, you can have @try block in ObjC for the same purpose (you should actually have it there, as that's common sense for using any unstable api).

Right, I'd been working through the changes of Swift 2 in the past days, and mixed that up.
That's probably because the ObjC @try block was very rarely used in projects I saw in the past years. Very rarely. Instead of the slower try blocks with their encapsulation overhead you would have likely see people checking for class functionality (selector checking), that's what is best practice anyway when not dealing with unstable (external) APIs but the probably changing ones from Apple.
Anyway the exception handling changed when compared to objc.

@dzenbot Fully agreed regarding the best approach where available. But I am pretty sure that isKindOfClass would not work here: The UIBarButtonItems do not subclass UIView. They are subclassed from > UIBarItem > NSObject. The UIView is just a private (Sub-)View of the Buttons that's inaccessible without KVO or iterating through the Views.
So the current approach seems still to be the best.

Both is right. KVO came from having my current KVO code for WKWebView in mind. Ok, time to get some sleep, it's in the middle of the night here ;)


chore: fix peerDeps versions.

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

Project coverage is 96.46%. Comparing base (7d848e4) to head (9ca32b0).

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #41   +/-   ##
=======================================
  Coverage   96.46%   96.46%
=======================================
  Files           3        3
  Lines         453      453
=======================================
  Hits          437      437
  Misses         16       16

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


can oc do it?

I think this repo is for swift only. 😴

@iamlion oc is for "Objective-C" ? It might be usable from there, never tried to be honest. But the repo is swift only and we have no plans to improve Obj-C compatibility since Swift is the way forward :)

@iamlion any news?

i think it working like “nodejs：  await new Promise(function(reslove,reject){ reslove({"key":"hello world"}); });”
but it doesn't work ： （

@iamlion Have you been able to use it? If you have another problem unrelated to objective C, please open a new issue, closing this for now :)


Added documentation on how to specify the reporter for browser mocha

Description of the Change
Update documentation to include usage instructions on how to specify the reporter for browser tests.
This was absent, despite hinting that it could be done.  It took quite awhile of digging through source to figure out how this could be correctly.  This information should be available.
Alternate Designs
Thought about not including the list of possible strings, but decided I should because otherwise people will have to guess on that front as well.
Why should this be in core?
Because it's documentation.
Benefits
Save people time and frustration.
Possible Drawbacks
None.
Applicable issues
Issue #1592

I guess the standard way to configure options, is using mocha.setup() as described some lines above:
mocha.setup ( {reporter: 'html'} )
I don't use Mocha in the browser, but I doubt the reporter lists is correct for browser usage.

Okay!
I'll try that out tomorrow and modify the documentation to match.
I'll try out a couple other reporters and see if they work.  All the ones I listed are included in mocha.js.  So it would seem that they technically should work (why include broken things).  I'll file a bug if they don't.
I haven't dug around too much yet.  Do you happen to know if mocha.js is exclusively for the browser?  (I guess that is pretty relevant to which reporters are loaded by mocha.js!)

@juergba You are absolutely right!  Thank you for the feedback!
I didn't realize this was how to do it correctly since the documentation on options for the browser is a bit sparse.  So I added to the options documentation a bit instead.
I also tested all the available builtin reporters.  They all "worked", (aka. none of them caused a failure).  Most of the time the output was legible.  I removed the list of reporters and put a link instead, (as they all basically correspond directly to the reporters list).

(Also not sure why the travis-ci build would fail when it is just documentation updates).  I ran npm test, it all passed.

Coverage increased (+0.07%) to 92.734% when pulling 1b7d7146c8f56ee5b390d910d0d664d5866118ec on Lindsay-Needs-Sleep:master into eed38d798270e230363abefd6934df8302c5f036 on mochajs:master.

I agree that the browser part of our docu is suboptimal. But again I have doubts about your changes.
The option list is not the actual one of the master branch, the Mocha constructor I guess.
Are you sure all these options do work in the browser?
What about the grep, probably also fgrep?

The browser may use the --grep as functionality. Append a query-string to your URL: ?grep=api.

What about color? invert is a CLI option?
Aren't the test files added manually to the browser, so file loading options do work only via CLI?

@juergba I just took the documentation from the code (lib/mocha.js I believe).
But, good piont.  I did not test each option.  So I guess it's technically better to have no documentation than have documentation that indicates non-existent/non-working functionality.  I have removed the parts I did not personally test.
You were right about color.  The documentation in the code was incorrect, it is not "color" but "useColors".  I have updated that.  And I did just test out useColors out of curiorsity:
useColors: false (reporter: spec)

useColors: true (reporter: spec)

I have removed the changes to the reporters' names documentation.  That will be solely part of Pull Request #4027.
This change only includes some minor improvements to the browser documentation.

Ok, let's make a last effort and finish this PR.
color / useColor:
the corresponding CLI option is color (with aliases c, colors), therefore the Mocha constructor should also accept an option color (the canonical name, no alias). There have been changes to the Mocha constructor a few weeks ago, in our master branch which is not published yet. Maybe you haven't tested with the master version of ./mocha.js. Anyway I didn't expect color to have an effect in the browser.
Add the options diff and inlineDiffs to your option list, they should also work in browser.
Please also add a comment that not all CLI options are supported in the browser, with a link to the CLI options.

@juergba Sure, I can go through those changes in a couple days.  (I just have some very urgent work deadlines that I need to finish first. T.T)

I added diff and inlineDiffs.  I tried them out as well.  Nothing broke (after my changes).  But I didn't see anything different.  What are they supposed to do?

Also, changing the options to use color instead of useColors caused this[opt](opts[opt]); to break:
    mocha.setup = function(opts) {
      if (typeof opts === 'string') {
        opts = {ui: opts};
      }
      for (var opt in opts) {
        if (opts.hasOwnProperty(opt)) {
          this[opt](opts[opt]);
        }
      }
      return this;
    };

So I also changed:
Mocha.prototype.useColors = function(colors) {

to:
Mocha.prototype.color = function(colors) {

I had do similar changes for diff and inlineDiffs.
This caused these tests to fail:
1) Mocha
       constructor
         "before each" hook for "should not attempt to set timeout":
     TypeError: Cannot stub non-existent own property useInlineDiffs
      at Sandbox.stub (node_modules\sinon\lib\sinon\sandbox.js:308:19)
      at Context.<anonymous> (test\unit\mocha.spec.js:23:15)
      at callFn (lib\runnable.js:386:21)
      at Hook.Runnable.run (lib\runnable.js:373:7)
      at next (lib\runner.js:384:10)
      at Immediate.<anonymous> (lib\runner.js:421:5)

  2) Mocha
       #hideDiff()
         should set the diff option to false when param equals true:
     TypeError: mocha.hideDiff is not a function
      at Context.<anonymous> (test\unit\mocha.spec.js:230:13)
      at callFn (lib\runnable.js:386:21)
      at Test.Runnable.run (lib\runnable.js:373:7)
      at Runner.runTest (lib\runner.js:534:10)
      at S:\Projects\MiloProductions\00 Old and reference Repos\mocha\lib\runner.js:652:12
      at next (lib\runner.js:443:14)
      at S:\Projects\MiloProductions\00 Old and reference Repos\mocha\lib\runner.js:453:7
      at next (lib\runner.js:362:14)
      at Immediate.<anonymous> (lib\runner.js:421:5)

  3) Mocha
       #hideDiff()
         should set the diff option to true when param equals false:
     TypeError: mocha.hideDiff is not a function
      at Context.<anonymous> (test\unit\mocha.spec.js:236:13)
      at callFn (lib\runnable.js:386:21)
      at Test.Runnable.run (lib\runnable.js:373:7)
      at Runner.runTest (lib\runner.js:534:10)
      at S:\Projects\MiloProductions\00 Old and reference Repos\mocha\lib\runner.js:652:12
      at next (lib\runner.js:443:14)
      at S:\Projects\MiloProductions\00 Old and reference Repos\mocha\lib\runner.js:453:7
      at next (lib\runner.js:362:14)
      at Immediate.<anonymous> (lib\runner.js:421:5)

  4) Mocha
       #hideDiff()
         should set the diff option to true when the param is undefined:
     TypeError: mocha.hideDiff is not a function
      at Context.<anonymous> (test\unit\mocha.spec.js:242:13)
      at callFn (lib\runnable.js:386:21)
      at Test.Runnable.run (lib\runnable.js:373:7)
      at Runner.runTest (lib\runner.js:534:10)
      at S:\Projects\MiloProductions\00 Old and reference Repos\mocha\lib\runner.js:652:12
      at next (lib\runner.js:443:14)
      at S:\Projects\MiloProductions\00 Old and reference Repos\mocha\lib\runner.js:453:7
      at next (lib\runner.js:362:14)
      at Immediate.<anonymous> (lib\runner.js:421:5)

  5) Mocha
       #hideDiff()
         should be chainable:
     TypeError: mocha.hideDiff is not a function
      at Context.<anonymous> (test\unit\mocha.spec.js:248:20)
      at callFn (lib\runnable.js:386:21)
      at Test.Runnable.run (lib\runnable.js:373:7)
      at Runner.runTest (lib\runner.js:534:10)
      at S:\Projects\MiloProductions\00 Old and reference Repos\mocha\lib\runner.js:652:12
      at next (lib\runner.js:443:14)
      at S:\Projects\MiloProductions\00 Old and reference Repos\mocha\lib\runner.js:453:7
      at next (lib\runner.js:362:14)
      at Immediate.<anonymous> (lib\runner.js:421:5)

  6) Mocha
       #useColors()
         should set the color option to true:
     TypeError: mocha.useColors is not a function
      at Context.<anonymous> (test\unit\mocha.spec.js:358:13)
      at callFn (lib\runnable.js:386:21)
      at Test.Runnable.run (lib\runnable.js:373:7)
      at Runner.runTest (lib\runner.js:534:10)
      at S:\Projects\MiloProductions\00 Old and reference Repos\mocha\lib\runner.js:652:12
      at next (lib\runner.js:443:14)
      at S:\Projects\MiloProductions\00 Old and reference Repos\mocha\lib\runner.js:453:7
      at next (lib\runner.js:362:14)
      at Immediate.<anonymous> (lib\runner.js:421:5)

  7) Mocha
       #useColors()
         should not create the color property:
     TypeError: mocha.useColors is not a function
      at Context.<anonymous> (test\unit\mocha.spec.js:364:13)
      at callFn (lib\runnable.js:386:21)
      at Test.Runnable.run (lib\runnable.js:373:7)
      at Runner.runTest (lib\runner.js:534:10)
      at S:\Projects\MiloProductions\00 Old and reference Repos\mocha\lib\runner.js:652:12
      at next (lib\runner.js:443:14)
      at S:\Projects\MiloProductions\00 Old and reference Repos\mocha\lib\runner.js:453:7
      at next (lib\runner.js:362:14)
      at Immediate.<anonymous> (lib\runner.js:421:5)

  8) Mocha
       #useColors()
         should be chainable:
     TypeError: mocha.useColors is not a function
      at Context.<anonymous> (test\unit\mocha.spec.js:370:20)
      at callFn (lib\runnable.js:386:21)
      at Test.Runnable.run (lib\runnable.js:373:7)
      at Runner.runTest (lib\runner.js:534:10)
      at S:\Projects\MiloProductions\00 Old and reference Repos\mocha\lib\runner.js:652:12
      at next (lib\runner.js:443:14)
      at S:\Projects\MiloProductions\00 Old and reference Repos\mocha\lib\runner.js:453:7
      at next (lib\runner.js:362:14)
      at Immediate.<anonymous> (lib\runner.js:421:5)

  9) Mocha
       #useInlineDiffs()
         should set the inlineDiffs option to true when param equals true:
     TypeError: mocha.useInlineDiffs is not a function
      at Context.<anonymous> (test\unit\mocha.spec.js:377:13)
      at callFn (lib\runnable.js:386:21)
      at Test.Runnable.run (lib\runnable.js:373:7)
      at Runner.runTest (lib\runner.js:534:10)
      at S:\Projects\MiloProductions\00 Old and reference Repos\mocha\lib\runner.js:652:12
      at next (lib\runner.js:443:14)
      at S:\Projects\MiloProductions\00 Old and reference Repos\mocha\lib\runner.js:453:7
      at next (lib\runner.js:362:14)
      at Immediate.<anonymous> (lib\runner.js:421:5)

  10) Mocha
       #useInlineDiffs()
         should set the inlineDiffs option to false when param equals false:
     TypeError: mocha.useInlineDiffs is not a function
      at Context.<anonymous> (test\unit\mocha.spec.js:383:13)
      at callFn (lib\runnable.js:386:21)
      at Test.Runnable.run (lib\runnable.js:373:7)
      at Runner.runTest (lib\runner.js:534:10)
      at S:\Projects\MiloProductions\00 Old and reference Repos\mocha\lib\runner.js:652:12
      at next (lib\runner.js:443:14)
      at S:\Projects\MiloProductions\00 Old and reference Repos\mocha\lib\runner.js:453:7
      at next (lib\runner.js:362:14)
      at Immediate.<anonymous> (lib\runner.js:421:5)

  11) Mocha
       #useInlineDiffs()
         should set the inlineDiffs option to false when the param is undefined:
     TypeError: mocha.useInlineDiffs is not a function
      at Context.<anonymous> (test\unit\mocha.spec.js:389:13)
      at callFn (lib\runnable.js:386:21)
      at Test.Runnable.run (lib\runnable.js:373:7)
      at Runner.runTest (lib\runner.js:534:10)
      at S:\Projects\MiloProductions\00 Old and reference Repos\mocha\lib\runner.js:652:12
      at next (lib\runner.js:443:14)
      at S:\Projects\MiloProductions\00 Old and reference Repos\mocha\lib\runner.js:453:7
      at next (lib\runner.js:362:14)
      at Immediate.<anonymous> (lib\runner.js:421:5)

  12) Mocha
       #useInlineDiffs()
         should be chainable:
     TypeError: mocha.useInlineDiffs is not a function
      at Context.<anonymous> (test\unit\mocha.spec.js:395:20)
      at callFn (lib\runnable.js:386:21)
      at Test.Runnable.run (lib\runnable.js:373:7)
      at Runner.runTest (lib\runner.js:534:10)
      at S:\Projects\MiloProductions\00 Old and reference Repos\mocha\lib\runner.js:652:12
      at next (lib\runner.js:443:14)

So should I leave the prototype functions alone, and then be modifying the Mocha.setup function to not use this[opt](opts[opt]); and instead manually call the corresponding function for each option?
This seems way beyond the scope of my pull request intent.  I just wanted to let people know how to use custom reporters in the browser. T.T
This problem also probably extends to many of the options.  Could we create a new issue specifically for dealing with all the browser options?  (Finding out which ones actually do things, have proper names)

Yes, I'm sorry. Lets squash this PR down to the absolute minimum, the reporter setup thing, and then finish it.
I will have a look at the error messages.

I just have tested most of the builtin reporters, the only one which works in the browser on my laptop (Chrome/Windows10) is "HTML". All the others don't output anything.
You commented earlier that all builtin reporters were producing an output. Can you explain?
When I misspell the reporter (eg. "SPEC"), then the default reporter ("html") is used.
Otherwise with correct spelling "spec" there is no output at all.

I tested some CLI options in my Chrome browser and created a draft PR #4065.
If you still want (I'm sorry, how this PR turned into a beast) you can create your own PR, copy my option list and add your own ones. But I believe only what I see with my own eyes. And I'm rather sceptical that any builtin reporter other than "html" has ever been intended for browser usage. There must be some third-party reporters though.

@juergba (No need to be sorry!  I was the one who started the scope creep >.<)

I tested some CLI options in my Chrome browser and created a draft PR #4065.

Thank you so much!

If you still want (I'm sorry, how this PR turned into a beast) you can create your own PR, copy my option list and add your own ones.

Yes! When I have a bit more time I will be glad to contribute as well (since I have already spent some time with this, it makes sense)

I just have tested most of the builtin reporters, the only one which works in the browser on my laptop (Chrome/Windows10) is "HTML". All the others don't output anything.
You commented earlier that all builtin reporters were producing an output. Can you explain?
When I misspell the reporter (eg. "SPEC"), then the default reporter ("html") is used.
Otherwise with correct spelling "spec" there is no output at all.

When I use:
    mocha.setup({
        ui: 'bdd',
        useColors: true,
        reporter: 'spec'
    });

This is what I see:

Did you open the console?
All of the reporters, except "html", output to the console instead of the html.  If you are wondering whether that is useful/appropriate for the browser, that is actually entirely why this PR was started.  I wanted the html reporter to console.log any errors.  (So I had to figure out how to supply a customized reporter to mocha.)
Another good reason for having access to reporters that log to the console is for the case of automating tests using a headless browser like phantomJS.

Lets squash this PR down to the absolute minimum

I'll remove the extra documentation.  (Thanks you!)

Okay, I slimmed it down.
If you would prefer a different format or wording, please fee free to edit it, or tell me exactly what would be preferred.  I really want to do no more than 1 more revision to this! >.<

Since I have one try left ...

If you check the "deploy/netlify preview" (under "checks") the format is wrong, one column at the left.
I'm not happy with the console output. There are some illegible signs, and I don't want to be flooded by new issues about that. But obviously there are reasons to do so.
To finish this: we don't recommend to use CLI buitlin reporters for browser, but it's possible. So please mention this with cautious words (you can put your cat in the microwave, but don't blame us ...).

I updated it again.  How does it look now?  (I'll change it again if need be.)

If you check the "deploy/netlify preview" (under "checks") the format is wrong, one column at the left.

This is very cool.  Thank you for pointing this out.  (And the mistake.)  Apparently my markdown editor preview is not very accurate.  (I'll check back when the deploy/netlify is done)

The cat was meant as a picture, I was hoping you as english native would translate this into some smooth words ... meaning: you can use those CLI reporters in the browser, but they are not made/supported for that purpose.
I will finish this PR tomorrow with maybe:

It is possible to use built-in reporters as well, but their employment in browsers is neither recommended nor supported.

Thanks!

The cat was meant as a picture, I was hoping you as english native would translate this into some smooth words ... meaning: you can use those CLI reporters in the browser, but they are not made/supported for that purpose.

Haha, sorry!  I liked it, it made me laugh, and it definitely got the point across.  (But, I guess it was a bit extreme. :p)  (I wouldn’t have guessed that english is not your first language!)
Thank you for finishing this pull request though! :)


Errors you may encounter when upgrading the library

An error will happen when upgrading library prometheus/client_golang:
github.com/prometheus/client_golang
-Latest Version: v1.7.1 (Latest commit fe7bd95 7 days ago)
Master branch
-Where did you use it:
https://github.com/wrouesnel/postgres_exporter/search?l=Go&q=prometheus%2Fclient_golang
-Detail:

github.com/prometheus/client_golang/go.mod

module github.com/prometheus/client_golang
go 1.11
require (
	github.com/beorn7/perks v1.0.1
	github.com/cespare/xxhash/v2 v2.1.1
	…
)

github.com/prometheus/client_golang/prometheus/registry.go

package prometheus
import (
	"github.com/cespare/xxhash/v2"
	"github.com/golang/protobuf/proto"
	…
)

This problem was introduced since prometheus/client_golang v1.2.0(Latest commit 9a2ab94 on 16 Oct 2019) . Now you used version v0.9.4. If you try to upgrade prometheus/client_golang to version v1.2.0 and above, you will get an error--- no package exists at "github.com/cespare/xxhash/v2"
I investigated the libraries (prometheus/client_golang >= v1.2.0) release information and found the root cause of this issue is that----

These dependencies all added Go modules in the recent versions.

They all comply with the specification of "Releasing Modules for v2 or higher" available in the Modules documentation. Quoting the specification:

A package that has migrated to Go Modules must include the major version in the import path to reference any v2+ modules. For example,  Repo github.com/my/module migrated to Modules on version v3.x.y.  Then this repo should declare its module path with MAJOR version suffix "/v3"  (e.g., module github.com/my/module/v3), and its downstream project should use "github.com/my/module/v3/mypkg" to import this repo’s package.

This "github.com/my/module/v3/mypkg" is not the physical path. So earlier versions of Go (including those that don't have minimal module awareness) plus all tooling (like dep, glide, govendor, etc) don't have minimal module awareness as of now and therefore don't handle import paths correctly See golang/dep#1962, golang/dep#2139.

Note: creating a new branch is not required. If instead you have been previously releasing on master and would prefer to tag v3.0.0 on master, that is a viable option. (However, be aware that introducing an incompatible API change in master can cause issues for non-modules users who issue a go get -u given the go tool is not aware of semver prior to Go 1.11 or when module mode is not enabled in Go 1.11+).
Pre-existing dependency management solutions such as dep currently can have problems consuming a v2+ module created in this way. See for example dep#1962.
https://github.com/golang/go/wiki/Modules#releasing-modules-v2-or-higher

Suggested solutions
1. Migrate to Go Modules.
Go Modules is the general trend of ecosystem, If you want a better upgrade package experience, migrating to Go Modules is a good choice.
2. Keep using the dependency manage tool (like dep, glide, govendor, etc).
Because the import paths have different meanings between the projects adopting module mechanism and the non-module mechanism.

https://github.com/golang/go/wiki/Modules#semantic-import-versioning
https://golang.org/cmd/go/#hdr-Module_compatibility_and_semantic_versioning
https://github.com/golang/go/wiki/Modules#releasing-modules-v2-or-higher

If you prefer to use the dependencies manage tool (like dep, glide, govendor, etc), a textbook example provided by repo github.com/moby/moby can prevent this type of issues.
https://github.com/moby/moby/blob/master/VENDORING.md
https://github.com/moby/moby/blob/master/vendor.conf
In the vendor directory, github.com/moby/moby adds the /vN subdirectory in the corresponding dependencies.
This will help more downstream modules to work well with your package, otherwise they will be stuck in github.com/cespare/xxhash v1.1.0.
Do you plan to upgrade the libraries in near future?
Hope this issue report can help you ^_^
Thank you very much for your attention.
Best regards,
Kate

@wrouesnel @sfalkon Could you help me review this issue? Thx :p


[5.1] SQL server exists fix

Possible fix for https://github.com/laravel/framework/issues/10580

@HipsterJazzbo your PR broke something

Closing since issue reports this is still broken even with this PR applied.

Ping @HipsterJazzbo. We still have a broken feature from your PR that we will revert if is not fixed soon.

It took me a bit of time to track back to the relevant PR, so here it is:  #10373.


TypeError: Cannot read properties of undefined (reading '__asyncLoader') in VueJS

Vue version
3.2.45
Link to minimal reproduction
https://stackblitz.com/edit/vitejs-vite-48q3zs?file=index.html
Steps to reproduce
Please clone the repo first and then run the project.

Add items to the cart
Remove the item from the cart in the cart screen. While removing the last item, an error will be shown in the console.
OR
Go back to the Shop page from the navbar.

What is expected?
The expected result must be that every item should be deleted and the UI must be updated.
What is actually happening?
Showing the error in the console and the UI is not updating, also the application stops responding.
System Info
System:
    OS: Windows 10 10.0.22621
    CPU: (8) x64 Intel(R) Core(TM) i5-8350U CPU @ 1.70GHz
    Memory: 5.25 GB / 15.86 GB
  Binaries:
    Node: 16.13.0 - C:\Program Files\nodejs\node.EXE
    Yarn: 1.22.19 - ~\AppData\Roaming\npm\yarn.CMD
    npm: 8.12.1 - C:\Program Files\nodejs\npm.CMD
  Browsers:
    Edge: Spartan (44.22621.819.0), Chromium (108.0.1462.42)
    Internet Explorer: 11.0.22621.1

Any additional comments?
Following is the error, that showed up.
Uncaught (in promise) TypeError: Cannot read properties of undefined (reading '__asyncLoader')
    at isAsyncWrapper (runtime-core.esm-bundler.js:2272:40)
    at unmount (runtime-core.esm-bundler.js:6090:40)
    at unmountComponent (runtime-core.esm-bundler.js:6212:13)
    at unmount (runtime-core.esm-bundler.js:6097:13)
    at unmountChildren (runtime-core.esm-bundler.js:6241:13)
    at unmount (runtime-core.esm-bundler.js:6115:17)
    at patch (runtime-core.esm-bundler.js:5070:13)
    at ReactiveEffect.componentUpdateFn [as fn] (runtime-core.esm-bundler.js:5711:17)
    at ReactiveEffect.run (reactivity.esm-bundler.js:187:25)
    at instance.update (runtime-core.esm-bundler.js:5745:56)
isAsyncWrapper @ runtime-core.esm-bundler.js:2272
unmount @ runtime-core.esm-bundler.js:6090
unmountComponent @ runtime-core.esm-bundler.js:6212
unmount @ runtime-core.esm-bundler.js:6097
unmountChildren @ runtime-core.esm-bundler.js:6241
unmount @ runtime-core.esm-bundler.js:6115
patch @ runtime-core.esm-bundler.js:5070
componentUpdateFn @ runtime-core.esm-bundler.js:5711
run @ reactivity.esm-bundler.js:187
instance.update @ runtime-core.esm-bundler.js:5745
callWithErrorHandling @ runtime-core.esm-bundler.js:157
flushJobs @ runtime-core.esm-bundler.js:390
Promise.then (async)
queueFlush @ runtime-core.esm-bundler.js:282
queueJob @ runtime-core.esm-bundler.js:276
(anonymous) @ runtime-core.esm-bundler.js:5743
triggerEffect @ reactivity.esm-bundler.js:397
triggerEffects @ reactivity.esm-bundler.js:387
trigger @ reactivity.esm-bundler.js:355
set2 @ reactivity.esm-bundler.js:526
removeFromCart @ store.js:30
onClick @ CartView.vue:48
callWithErrorHandling @ runtime-core.esm-bundler.js:157
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js:166
invoker @ runtime-dom.esm-bundler.js:345

This reproduction isn't runnable or minimal - it uses stripe api, which fails for a missing API key, and fails with errors when trying to follow step 1 of the reproduction instructions.
I'll leave this open for now as we already have a PR for this type of error, but I would very much be interested in actually getting a runnable reproduction for this error that we can analyse, since I'm unsure wether the PR actually fixes or just masks the real bug.

I have also had this issue and the reason for the bug, while the bug itself is also painful as it makes debugging VERY hard, is that I mixed vue-stripe (which is vue2) and vue3. I didn't notice that until after a few hours after the bug came up and it was very hard to link it back to that issue as the page unmounting errors fatally without anymore info.
I found the bug by debugging through the unmounting process, finding the null instance which errored and looking at the parent to see the somewhat correct element. Maybe something like that could be implemented as an error message like
Failed to unmount null instace, parent: [parent]

so that debugging is easier while not ignoring the error (which would happen if the linked PR is implemented).

Discussion https://github.com/vuejs/core/discussions/7332

@talhameer could you please remove/work around the dependency on stripe?

I've removed the exrta code around Stripe.

@talhameer could you please remove/work around the dependency on stripe?

I've removed the extra code around Stripe. Please check here

The demo is still unusable because I'd need your secret stripe API key to make it run.

The demo is still unusable because I'd need your secret stripe API key to make it run.

Check now, I've updated the API key for testing.

Not sure where to check. the last link still has no API key.

这个问题现在有没有解决方式，我的项目也出现了？

这个问题现在有没有解决方式，我的项目也出现了？
Have you worked it out? I met this issue today.

这个问题现在有没有解决方式，我的项目也出现了？
Have you worked it out? I met this issue today.

me to ，its hard to  resolve


fix(docs): fix example command indentation

What type of PR is this?

Uncomment one (or more) /kind <> lines:

/kind cleanup
Any specific area of the project related to this PR?

Uncomment one (or more) /area <> lines:

/area documentation
What this PR does / why we need it:
See issue https://github.com/falcosecurity/falco-website/issues/1310
Which issue(s) this PR fixes:

Fixes #1310
Special notes for your reviewer:

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: LucaGuerra
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

content/OWNERS [LucaGuerra]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

LGTM label has been added.  Git tree hash: 874b7134d2dce19d90bab9e134209cd0de09f369

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: leogr, LucaGuerra
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

content/OWNERS [LucaGuerra,leogr]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


specs-go/config: Drop "this field is platform dependent" (again)

We dropped these in #568 but #565 was developed in parallel and brought in a new one.

LGTM

LGTM (I am not a maintainer on this project)

LGTM


Fix log output

Found an overflow int32 logging.
2 nodes (out of 3, 3 including learners) are not responding longer than 10000 ms, at least<PHONE_NUMBER>648514 node        s (including leader) should be alive to proceed commit

Maybe it is not a good way or logging because too easy to miss match type.

Can you fix other formats in the same log as well?
        p_er("%d nodes (out of %d, %zu including learners) are not "
             "responding longer than %d ms, "
             "at least %d nodes (including leader) should be alive "
             "to proceed commit",


Replace language headers with icons (instead of text , let's use the language icon) using Fluent UI icons.

@RabebOthmani I have a few questions/concerns about this issue.

Would the tab only have the icons without the text? or would they be alongside each other?
Also, some languages (e.g Objective-C) don't really have an official icon
Objective-C and Go icons don't exist in the Fluent UI documentation. In this case, should we just leave the text?

Hi @ElinorW ,
1/ the icons would replace the text so we save on space and make more beautiful. Let me know if you need me to share a screenshot from other documentation portals.
2/What's the process to request icons? Is that something we can do? If not, can we get approval to use the official language icon available online?

Hi @ElinorW , 1/ the icons would replace the text so we save on space and make more beautiful. Let me know if you need me to share a screenshot from other documentation portals. 2/What's the process to request icons? Is that something we can do? If not, can we get approval to use the official language icon available online?

Okay, thanks.
I haven't seen any provisions on how one can request icons, their documentation doesn't provide that. Perhaps we may need to get in touch with someone from the team

Please do not do this, icons are not an effectively replacement for text description, having usability should likely trump "beauty" in a utility that is often needed for rapid prototyping and API exploration.  I doubt most users want to have to attempt to figure out what each icon means, and its functionality.

Thank you @bruceburge  for your feedback on this one. Tagging our PM, @RabebOthmani

+1 @bruceburge on this one. @RabebOthmani  it's generally mentally tasking to figure out what icons mean. I have seen other tools use both text and icon which captures the best of both worlds


the activation function for the control

In the different branches
for the steer, I think that the nonlinear function should be the tanh([-1,1]) which means the turning rate should be [-180 degrees~180 degrees]
for the brake and the gas, the activation function should be sigmoid ([0,1])
in the model, all the activation function is Relu
Is the output converted by the CARLA control?
I haven't run the code in the CARLA yet because now I'm using the Ubuntu 14.04

Hey @Fengmoon93
I think the non linearities inside the network should be Relu, since
they tend to be more stable.
Also from my tests, i saw that putting activation functions on the last layer doesn't produce good results.  The last layer from the network definition is:
  branches.append(network_manager.fc(branch_output, len(branch_config[i])))
Maybe some problem with my code readability.
The "fc" methods from the network manager have no dropout or activation function.
Thanks for your interest !
Hope you try it later.

@felipecode When and where the code will adjust the output between [-1,1]? I saw in the experiment; sometimes network even will produce numbers higher than 1.05 or so.  Is there any adjustment for applying control inputs?

I don't adjust. It doest seem to be a problem. Yes eventually you have values slightly higher
than 1, but that is fine.
Maybe we could apply some threshold.


[Dubbo-5104] fix add mvn dependency to dubbo-all

What is the purpose of the change
see pull request #4408
It move code and do not add maven dependency to dubbo-all/pom.xml
Brief changelog
add maven dependency to dubbo-all/pom.xml
dubbo\dubbo-all\pom.xml

Verifying this change
add maven dependency
Follow this checklist to help us incorporate your contribution quickly and easily:

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

Codecov Report

Merging #5104 into master will decrease coverage by 0.01%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master    #5104      +/-   ##
============================================
- Coverage     64.03%   64.02%   -0.02%
- Complexity      453      480      +27
============================================
  Files           769      770       +1
  Lines         33263    33358      +95
  Branches       5250     5271      +21
============================================
+ Hits          21301    21358      +57
- Misses         9524     9554      +30
- Partials       2438     2446       +8

Impacted Files
Coverage Δ
Complexity Δ

...ache/dubbo/remoting/transport/AbstractChannel.java
75% <0%> (-12.5%)
0% <0%> (ø)

.../remoting/transport/netty4/NettyClientHandler.java
61.4% <0%> (-7.02%)
0% <0%> (ø)

...e/dubbo/remoting/transport/netty/NettyChannel.java
52.27% <0%> (-3.41%)
19% <0%> (-1%)

...pache/dubbo/remoting/transport/AbstractServer.java
44.79% <0%> (-3.13%)
0% <0%> (ø)

...dubbo/metadata/support/AbstractMetadataReport.java
72.83% <0%> (-1.74%)
0% <0%> (ø)

...pache/dubbo/registry/support/AbstractRegistry.java
78.54% <0%> (-1.54%)
0% <0%> (ø)

...a/org/apache/dubbo/monitor/dubbo/DubboMonitor.java
89.71% <0%> (-0.94%)
16% <0%> (-1%)

...g/apache/dubbo/registry/consul/ConsulRegistry.java
61.87% <0%> (-0.63%)
29% <0%> (ø)

...adata/definition/protobuf/ProtobufTypeBuilder.java
70.52% <0%> (ø)
28% <0%> (?)

...org/apache/dubbo/registry/redis/RedisRegistry.java
48.44% <0%> (+0.28%)
32% <0%> (+1%)
:arrow_up:

... and 5 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 0d09ef9...e70026e. Read the comment docs.


refactor(github): pr_issue refactor

Summary
enriching pr issue actually convert pr and issue to pr_issue, so we can adopt this to converter
Screenshots

Other Information
Any other information that is important to this PR.

closed by #1354


feat (Widget): Add a destroy function to Decoration.widget

Adds a destroy method to widget decorations per discussion here:
https://discuss.prosemirror.net/t/unmounting-a-decoration-widget-created-with-react/3050/6

Thanks! I've followed up with 05c05d9, since I can imagine the destroy function needing access to the actual DOM node that was created for the widget.


remove redundant dependency

the redundancy would normally be harmless, I think, but for
some reason over at https://github.com/scala/community-builds/pull/835
it's harmful in the context of the Scala community build

Awesome Seth, very happy for this project to be included.


Test added: Check if the document has more than 1 style tags

Checklist:

[x ] I have read freeCodeCamp's contribution guidelines.
[x ] My pull request has a descriptive title (not a vague title like Update index.md)
[x ] My pull request targets the main branch of freeCodeCamp.
[ x] I have tested these changes either locally on my machine, or GitPod.

Closes #47629

Added test to check if there are more than 1 style tags in the document. If so, the hint tells to work in the given style tag.

Also, the instructions need to be updated to let the user know that they should add the new rules in the existing style element. See my comment in the issue.


[Apple Notes] ...

Extension – Apple Notes
Author: @tumispro

Description

Error:

Steps To Reproduce

The current behavior
The expected behavior
Raycast version
Version: 1.37.1

Few weeks ago Search Notes didn't find anything.
Now I tried again, and it gave error "Something wen wrong"

Did it say something besides that message? It usually shows some kind of error below that title.

@pernielsentikaer any ideas on how to dive further into this?

@vpalomaki - there is a great addition here https://github.com/raycast/extensions/pull/2214 that adds SQL access to iCloud Apple Notes.


ruby_memcheck (valgrind) reports an invalid read

Hi! I'm messing around with ruby_memcheck and it reported this:
Invalid read of size 1
  RB_INT2FIX (long.h:117)
  rb_int2num_inline (int.h:242)
  rb_fiddle_ptr_aref (pointer.c:674)
  vm_call_cfunc_with_frame (vm_insnhelper.c:3037)
  vm_call_method_each_type (vm_insnhelper.c:3639)
  vm_call_method (vm_insnhelper.c:3750)
  vm_sendish (vm_insnhelper.c:4751)
  vm_exec_core (insns.def:778)
  rb_vm_exec (vm.c:2220)
  rb_ec_exec_node (eval.c:280)
  ruby_run_node (eval.c:321)
  main (main.c:47)

rake aborted!
Valgrind reported errors (e.g. memory leak or use-after-free)

I have to admit I'm not familiar enough with the C code and extension interop to quite know what's going on here, but thought I'd report it. Let me know if you'd like to try setting up an Action to run ruby_memcheck too -- I think that's something that Shopify is doing.

@mathias what leads you to believe this gem is the cause? It does not use fiddle

Oh. Nevermind 🤦♂ . I do use fiddle to cause an intentional crash in order to test the gem. This is the behaving as expected.


LoadBatchCellsThreaded -> LoadBatchCellsThreadedAsync

Related: Only loads some resources, not ones at the edge of max range (250-500m)
This fixes the issue with the mod not finishing scanning (i.e. no Finishing scan in sleeping/unloaded BatchCells... message).  I assume the game was updated and this method renamed, maybe?  I am not sure why there's not error in the logs if this is indeed the case.  We can do a dynamic solution that tries both method names if you wish.
In the save game scenario I uploaded, it will now find magnetite and a few other things it didn't originally find.  Note that it did originally find some things, but didn't finish the scan.
However, it will still not find blood oil, and the scanner will not find the magnetite over where the camera drone is (even though the above lists it).  I tried increasing the numOfBatchRings value, but this didn't seem to make a difference.

I should mention my Subnautica version is 2023-Mar 71288, which is after your last update in Januuary.

Ok, now it works as expected, loading all the resources it should.  Took me a while to hack around, I'm not used to Unity or C#.
I assume the Subnautica devs implemented LoadBatchCellsThreadedAsync to work similarly to your own LoadBatchCellsTask.  I'm sure you would know if there's a benefit to keeping the later and using it in conjunction.  I do notice that it takes noticably longer to finish loading the resources, but I'm not sure if this isn't just due to the larger number of cells to scan.
I ended up throwing together this visualizer to aid me in understanding how the loading happens:

Here's how it looked after the first commit in the PR:

So I think all that commit did was stop the process from failing, and not fix the actual loading of batchcells (red dots are batches, blue are roots scanned successfully).
A few thoughts:

Let me know if you want me to share this tool. It needs a certain output format of the debug logs, but nothing complicated.

The cells are loaded and scanned in a cube pattern.  Perhaps the process can be sped up by filtering out the corners and only processing batchcells in range?  Maybe even read the upgrades to reduce further if not max range?

The batches are loaded based on the center of the batch the scanner room is in, and not distance from the scanner room's actual position.  Can this cause an edge case where there would be some cells in range of the scanner room that are not loaded, if the scanner room is at the very edge of a batch?

Finally, thanks again @repkins for a great mod!  The scanner room if definitely my favorite, and it's amazing the devs haven't fixed this issue after all these years.

Please could you provide dll with fixes if there is one?

Hello, and thanks for submitting PR.
From what I understood, you suggesting to use dev implemented async function for loading batch cells. I would have used that myself if it does not perform side-effect which is interfering with batch streaming system. It directly updates array containers used by streamer instead of separately placing them outside of streamer influence.


Hyper.js CONFIG move in Root programm?!

windows 10 x64
Hi guys, my madness is to carry all my programs on a flash drive, and then take it with me, because after two weeks of setup, other programmers also want such a cool terminal and the same cool code editor as me, and I'm greedy and do not want with whom he shares.
By this, any possible crutches I move the config files to myself in one folder, most often to the root of the installed program.
Tell me please how can I move my config from: AppData \ Roaming \ Hyper
to: The root of the program.

so sad'

opened this issue 7 days ago · 0 comments

❤  here one 😄 -> On a more serious note, we talked before on a way to save settings and sync them on your github and pull them. For the moment I can't of a best way to do so. Maybe on new installation a way to import existing settings.. I can't tell yet.

What we could do is have a startup flag or environmental variable to override the config dir on startup, you could then point hyper to read the config from a specified location on startup. Something like HYPER_CONFIG_DIR maybe?

dead project
close


Fix side-nav styling issues

Fixes a couple of side-nav styling issues:

2nd level nav is not indented correctly
2nd level nav headers do not show hover background
Improved styling of 2nd level nav items (reduce font size and less padding)

@richard-cox Changes made


Update repo's website url

General information
The repo's website URL is returning 404
(https://developer.paypal.com/braintree/docs/javascript/sdk/client/)

SDK version: N/A
Environment: N/A
Browser and OS: Chrome  92.0.4515.131 on MacOS 10.15.7

Issue description
The link is showing a blank page and the network tab in chrome dev tools shows the following:

I believe the correct URL should be https://developer.paypal.com/braintree/docs/guides/client-sdk/setup/javascript/v3
We'll get that updated; thanks for pointing that out!


ConnectWithRetries generates multiple connections from a single client instance

If I perform the following I get multiple client connections between one client instance and one server instance:

Create client instance
Initiate client connection (attempt) via ConnectWithRetries
Wait a few seconds (something less than value given to ConnectWithRetries)
Create server instance
Initiate server listening via Start

Here are the results for my simple client-server example:

As you can see there are seemingly TWO client connections with the server, even though the intent was to have only ONE client connection. If I start the server prior to initiating a client connection via ConnectWithRetries, there is only ONE client connection made as expected.
For reference here is my code for initiating a client connection with the server:
private void btnConnect_Click(object sender, EventArgs e)
{
	try
	{
		client.ConnectWithRetries(10);
		btnConnect.Enabled = false;
	}
	catch(Exception ex)
	{
		MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
		btnConnect.Enabled = true;
	}
}

... and here is my code for updating the server UI after making a client connection:
private void Events_ClientConnected(object sender, ClientConnectedEventArgs e)
{
	this.Invoke((MethodInvoker)delegate
	{
		txtInfo.Text += $"{e.IpPort} connected.{Environment.NewLine}";
		lstClientIP.Items.Add(e.IpPort);
		btnSend.Enabled = true;
		btnDisconnect.Enabled = true;
	});
}

Is this behavior expected?

Hi @Exergist definitely not the behavior.  I was able to reproduce, looking into it now.

Getting ready to publish a fix.  Thanks for letting me know!

NuGet: https://www.nuget.org/packages/SuperSimpleTcp/<IP_ADDRESS>
Commit: https://github.com/jchristn/SimpleTcp/commit/44dc230fdb142d2d20817b74465530c25334bace
Please re-open if any issues.  Cheers @Exergist


Collecting Student Information

TAMU SHPE collects data from students such gender, GPA, major, expected graduation time, and more. The statistics are used in the best interest of the organization.

We're already collecting some of these. What exactly does this issue entail?

We're already collecting some of these. What exactly does this issue entail? Are we adding more fields?

There is a lot of other information that they need to gather (race, gpa, gender, DOB, etc). This formshows all the information they need.
The deadline for this would be by this weekend. Since we don't have enough time to come up with a solution + implement it. We are just going to give out the form similar to last year and add it add an instruction to fill the form out.
In the future, we will need a more permanent solution, so we don't have to collect the information externally.


Added bsc support

Description
Adds support for binance smart chain.
Resolves #78
How Has This Been Tested?
Added integ test.
Due Diligence

[ ] Breaking change
[ ] Requires a documentation update
[X] Requires a e2e/integration test update

Didn't fully resolve the issue, as still doesn;t support BSC testnet.


refactor MoneyRequestParticipantsPage const to function

CC @marcaaron, as you explained this to me in Slack
Details
Basically no migration was necessary. So I just replaced the const declaration with const as suggested here.
Fixed Issues

$ https://github.com/Expensify/App/issues/16279
PROPOSAL: GH_LINK_ISSUE(COMMENT)
Tests

Create group, create split using participants component

Create a new group with 2+ people
The new group chat should open
Use the FAB button to create a split within this new group
Deselect a participant at the confirmation step
Create the split
[x] Verify that no errors appear in the JS console

Offline tests

Create group, create split using participants component

Create a new group with 2+ people
The new group chat should open
Use the FAB button to create a split within this new group
Deselect a participant at the confirmation step
Create the split
[ ] Verify that no errors appear in the JS console

QA Steps

Create group, create split using participants component

Create a new group with 2+ people
The new group chat should open
Use the FAB button to create a split within this new group
Deselect a participant at the confirmation step
Create the split
[ ] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS
MISSED THIS ONE, ASKING REVIEWER/C+ REVIEWER TO CHECK IT

Android

Hey @stitesExpensify and @sobitneupane. PLease can you double check iOS, as I had. an issue building to my sim this morning. Ta

Ah thanks, I always forget to run prettier

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/neil-marcellini in version: 1.3.27-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to staging by https://github.com/neil-marcellini in version: 1.3.27-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/AndrewGable in version: 1.3.27-7 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅


Fix missing includes of standard headers.

Codecov Report
Patch coverage: 92.12% and project coverage change: -0.01% :warning:

Comparison is base (0b8cb4e) 92.85% compared to head (48b2b77) 92.85%.
Report is 11 commits behind head on master.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2012      +/-   ##
==========================================
- Coverage   92.85%   92.85%   -0.01%
==========================================
  Files         355      357       +2
  Lines       26272    26399     +127
==========================================
+ Hits        24395    24512     +117
- Misses       1877     1887      +10

Files Changed
Coverage Δ

common/analysis/citation.cc
100.00% <ø> (ø)

common/analysis/command_file_lexer.cc
83.33% <ø> (ø)

common/analysis/file_analyzer.cc
96.84% <ø> (ø)

common/analysis/file_analyzer.h
100.00% <ø> (ø)

common/analysis/lint_rule_status.cc
96.92% <ø> (ø)

common/analysis/lint_waiver.cc
93.51% <ø> (ø)

common/analysis/lint_waiver.h
100.00% <ø> (ø)

common/analysis/linter_test_utils.cc
96.15% <ø> (ø)

common/analysis/linter_test_utils.h
97.87% <ø> (ø)

common/analysis/violation_handler.cc
93.57% <ø> (ø)

... and 111 more

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


Update e2e-prow.sh to change target test repo

cc/ @kow3ns

We should also be able to test the automatic merge with an lgtm & approved label here.

/lgtm

/approve


Question about PHP-FPM configuration

Brand new installation and was getting connection errors in Apache log and 503 in browser. Looking at logs:
[Sun Apr 03 22:57:29.963981 2016] [proxy:error] [pid 2840] (111)Connection refused: AH00957: FCGI: attempt to connect to <IP_ADDRESS>:9000 (<IP_ADDRESS>) failed
[Sun Apr 03 22:57:29.964214 2016] [proxy:error] [pid 2840] AH00959: ap_proxy_connect_backend disabling worker for (<IP_ADDRESS>) for 60s
[Sun Apr 03 22:57:29.964508 2016] [proxy_fcgi:error] [pid 2840] [client <IP_ADDRESS>:58993] AH01079: failed to make connection to backend: <IP_ADDRESS>

netstat -tulpn | grep 9000 returned nothing. Looking at /etc/php5/fpm/pool.d/www.conf and it appears there's no listener on the loopback as defined in the ProxyPassMatch directive in the Apache host file. Added listen = <IP_ADDRESS>:9000 to the conf file and all is well now.
I'm new to PHP-FPM but Is there something missing in the conf file? Or am I missing something in the VM or playbook documentation?

Can you do a diff of the config.yml file and see if there are any differences in PHP settings? Also, have you run the ansible-galaxy install command again to make sure all roles are at the latest version? The PHP role defaults to listening on port 9000.

Seems like updating the ansible-galaxy roles did the trick. Thanks for the help!


update execution now takes timeout into account

This PR addresses GitHub issue: #187
Briefly describe the changes proposed in this PR:

timeout parameter now read and used by StatementsController
added protocol test that verifies form-encoded post for update with timeout param is accepted

Make sure you've followed the Contributor Guidelines. In particular (please tick to indicate you've taken care of it):

[x] RDF4J code formatting has been applied
[x] tests are included
[x] all tests succeed

@nikolavp PR up, have a look.

Test added, servlet api upgrade included, test now greenlines. Declaring victory.


Claim base rate limiting: Extracting claims from the token and use as a Client ID in the rate limiting

New Feature
Suggesting a new feature to implement the rate limiting based on the claims in the token.
Motivation for New Feature
Current rate limiting is based on the Client ID passed in the header from the request. There are chances that anyone can manipulate the request by updating headers and using APIs without any restriction.
So, instead of depending on the consumer to provide the Client ID in the header, we can use the claims from the token. Which is more secure and not modifiable. Considering this, a rate limit will be applicable for authenticated endpoints only.
Specifications

Version: 18.1.0
Platform: .NET 6

Have you tried this thing? I am trying to replicate if is there any flaw.
Its a security related thing you want to ask,
But clientId feature is well known to be such that it cannot be guessed and its external user login system can intergrated.
For example, if you integrate with Google Oauth, then we you will be signing In which will get you token, so in case of any manipulation you will be getting unauthorized before rate limit issue.
Read more about Identity Server intergation.
https://ocelot.readthedocs.io/en/latest/features/authentication.html
@raman-m @ggnaegi Its security question here, can we move it to discussion first, if required?

@ks1990cn  Tanmay,
Thanks for your message!
I'm busy now with release now. We will discuss this message after release...
Ping me once again after release...

@ks1990cn commented on Nov 27:
@raman-m @ggnaegi Its security question here, can we move it to discussion first, if required?

Tanmay, are you sure the author has an intention to communicate and contribute? 😉
There is no problem to convert it to a discussion... But the author is silent! Do you see?

@ArchPratik commented on Jul 18, 2022

Hi Pratik!
Welcome to the Ocelot world! 🐅
After team discussion we've designed to accept the issue! We agree that current Header solution is ugly. We must switch to Remote IP to detect client's identity for anonymous routes...
I have no idea when we will start development, I hope in January'24. We still have a couple of professional senior developers who write high quality code... So, any your contributions are really welcomed!

Hello all,
Does someone work on this ?
What is the specification for the configuration if we want to use a claim value as clientId ?
Let me know if I should work on this ;p

Hi Raman,
Thank you for accepting this proposal. I Apologise, for the delay in reply.
I am ready to work on this improvement, but let's clear the scope of this feature first.
I was suggested to implement claim-based rate-limiting for authenticated routes. For anonymous/unauthenticated routs we can relay on Remote IP as you suggested. Let me know if any changes in these requirements.

I think we should add a new property in RateLimitOptions like
ClientIdClaim or just Claim
If this property is set, it will try to get the value from Authorization header to override current clientId.
Seems good to you ?

@ArchPratik You are assigned! Please start development!

I was suggested to implement claim-based rate-limiting for authenticated routes. For anonymous/unauthenticated routs we can relay on Remote IP as you suggested. Let me know if any changes in these requirements.

Correct! But why not do discuss more?..
What about options model?
Also, a callback for Rate Limiter will be a good design and extensibility approach...

Dear @ArchPratik,
Do you work on the POC to show your design and ready to show us your code in a PR?

@impratikpatel What's up, man?


Add support for old frameworks

net45 is supported now. Check it our here https://www.nuget.org/packages/Code.Library/2.0.0-beta.2
Kindly note: This package will only be available to download with SemVer 2.0.0 compatible NuGet clients, such as Visual Studio 2017 (version 15.3) and above or NuGet client 4.3.0 and above.


Modify the return value of prepare_to_switch function to return an enumeration.

Currently, a Pu'er type is returned, so it is impossible to determine whether sleep needs to be detected or scheduled.
If an enumeration routine is returned, more cases can be distinguished.

Implementation as ENMU will have problems, do not modify


Fixed the incorrect type for sample property.

RT.
Basic type int couldn't conform any protocol.

I have committed this separately to maintain the code style which didn't quite match in your PR.
Thanks for flagging this :)


Switching to the real SEMVER format

SEMVER describes "pre-release" information as being appended to the version by a dash.

This would be inconsistent with how we've been releasing RSpec versions in the past, not sure wether this is important enough to change... Thoughts @myronmarston?

We'd also need to update the build scripts so they look for the right prerelease versions of other gems.

I have no issues making the change. Though I'd prefer to remain consistent with the rest of the rspec gems, so we'd need to consider making this change across the board.

Thanks for the pointing this out @krainboltgreene!
When I was getting ready to cut some pre-releases for VCR 2.0 (the first beta, IIRC), I tried following the SemVer.org spec for prerelease versions and found that rubygems had some problems with using a dash to separate the normal version part from the prerelease part.  It looks like whatever issue I ran into has been fixed (building a gem with a 3.3.0-pre does not error now like it used to).  However, rubygems still seems to treat it a bit oddly -- notice how it parses 3.3.0.pre vs 3.3.0-pre:
➜  rspec-expectations git:(try-diff-version-form) ✗ irb -rubygems
irb(main):001:0> Gem::Version.new("3.3.0.pre")
=> #<Gem::Version "3.3.0.pre">
irb(main):002:0> Gem::Version.new("3.3.0-pre")
=> #<Gem::Version "3.3.0.pre.pre">

If we use -pre instead of .pre, it seems to parse it as .pre.pre for some reason.  Reading the docs:
# The Version class processes string versions into comparable
# values. A version string should normally be a series of numbers
# separated by periods. Each part (digits separated by periods) is
# considered its own number, and these are used for sorting. So for
# instance, 3.10 sorts higher than 3.2 because ten is greater than
# two.
#
# If any part contains letters (currently only a-z are supported) then
# that version is considered prerelease. Versions with a prerelease
# part in the Nth part sort less than versions with N-1
# parts. Prerelease parts are sorted alphabetically using the normal
# Ruby string sorting rules. If a prerelease part contains both
# letters and numbers, it will be broken into multiple parts to
# provide expected sort behavior (1.0.a10 becomes 1.0.a.10, and is
# greater than 1.0.a9).
#
# Prereleases sort between real releases (newest to oldest):
#
# 1. 1.0
# 2. 1.0.b1
# 3. 1.0.a.2
# 4. 0.9

...it seems to suggest that rubygems only intends to handle versions with period separating the parts, and all the pre-release versions use periods instead of dashes.
I'd be interested in switching to follow the semver.org spec once rubygems gets these issues ironed out, but until then sticking with a period is going to work better.

Ugh, I had hoped they had fixed this by now. I reported it to them ages ago.
On Tue, May 26, 2015 at 2:10 AM, Myron Marston<EMAIL_ADDRESS>wrote:

Closed #1374 https://github.com/rspec/rspec-rails/pull/1374.
—
Reply to this email directly or view it on GitHub
https://github.com/rspec/rspec-rails/pull/1374#event-313478063.

--
Kurtis Rainbolt-Greene, Hacker
Software Developer
1631 8th St.
New Orleans, LA
70115


@Annotation\ErrorMessage not used with Regex validator

When creating a form the following form annotations:

namespace Application\Form;

use Zend\Form\Annotation as Form;

class AnnotationForm
{
    /**
     * @Form\Name("formProperty")
     * @Form\Type("text")
     * @Form\Options({"label":"Custom form property"})
     * @Form\ErrorMessage("Custom Error Message - 6 digits required")
     * @Form\Validator({"name":"Regex", "options":{"pattern":"/^[\d]{6}$/"}})
     */
    private $formProperty;
}

The "ErrorMessage" property appears not be used and "The input does not match against pattern '/^[\d]{6}$/'" is given as the error message instead. Is this the expected output? In order to change the error message, I have to pass a new messages array as one of the validator options.
ise

This issue has been closed as part of the bug migration program as outlined here - http://framework.zend.com/blog/2016-04-11-issue-closures.html


Funimation not working on certain new releases.

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I remove or skip any mandatory* field

Checklist

[X] I'm reporting a broken site
[X] I've verified that I'm running yt-dlp version 2022.10.04 (update instructions) or later (specify commit)
[X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
[X] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X] I've searched the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue
[X] I've read about sharing account credentials and I'm willing to share it if required

Region
USA
Provide a description that is worded well enough to be understood
yt-dlp is having a problem extracting episode information on newer Funimation releases.
Provide verbose output that clearly demonstrates the problem

[X] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[X] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
[debug] Command-line config: ['-vU', '-F', 'https://www.funimation.com/v/mob-psycho-100/getting-carried-away-100']
[debug] User config "/Users/Salar'sMacBook Pro/.config/yt-dlp/config": ['-S', 'lang:english,res:1080,filesize~1G', '-P', '~/yt-dlp/Output', '-P', 'temp:temp', '-P', 'subtitle:subs', '-o', '%(series)s - %(episode_number)s - %(title)s [%(id)s].%(ext)s', '-u', 'PRIVATE', '-p', 'PRIVATE', '--cookies-from-browser', 'chrome', '--downloader', 'aria2c', '--concurrent-fragments', '32', '--write-subs', '--sub-format', 'best', '--sub-langs', 'en_Uncut', '--no-check-certificates', '--merge-output-format', 'mkv', '--embed-subs', '--ffmpeg-location', '/usr/local/bin/ffmpeg']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version 2022.10.04 [4e0511f] (darwin_exe)
[debug] Python 3.8.9 (CPython 64bit) - macOS-12.6-x86_64-i386-64bit
[debug] Checking exe version: /usr/local/bin/ffmpeg -bsfs
[debug] Checking exe version: /usr/local/bin/ffprobe -bsfs
[debug] exe versions: ffmpeg N-108102-g60d8c2019f-tessus (setts), ffprobe 4.2.2
[debug] Optional libraries: Cryptodome-3.15.0, brotli-1.0.9, certifi-2022.09.24, mutagen-1.45.1, sqlite3-2.6.0, websockets-10.3
[Cookies] Extracting cookies from chrome
[debug] Extracting cookies from: "/Users/Salar'sMacBook Pro/Library/Application Support/Google/Chrome/Default/Cookies"
[debug] using find-generic-password to obtain password from OSX keychain
[Cookies] Extracted 3107 cookies from chrome
[debug] cookie version breakdown: {'v10': 3089, 'other': 0, 'unencrypted': 18}
[debug] Proxy map: {}
[debug] Loaded 1690 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version: 2022.10.04, Current version: 2022.10.04
yt-dlp is up to date (2022.10.04)
[funimation:page] Logging in
[debug] [funimation:page] Extracting URL: https://www.funimation.com/v/mob-psycho-100/getting-carried-away-100
[funimation:page] mob-psycho-100_getting-carried-away-100: Downloading JSON metadata
[debug] [Funimation] Extracting URL: https://www.funimation.com/player/4248339
[Funimation] 4248339: Downloading player webpage for 4248339
ERROR: [Funimation] 4248339: Unable to find episode information; please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
  File "yt_dlp/extractor/common.py", line 672, in extract
  File "yt_dlp/extractor/funimation.py", line 184, in _real_extract
  File "yt_dlp/extractor/funimation.py", line 175, in _get_episode

For contributors: this seems to be the old format URL
Related: https://github.com/yt-dlp/yt-dlp/issues/5292

For contributors: this seems to be the old format URL. I'm not closing it as duplicate
Related: #5292

Idk... seems like https://github.com/yt-dlp/yt-dlp/issues/4345

I'm willing to give account info if needed.

I get the exact same error for My Hero Academia S06E02 as Zoku-886 is getting for Mob Psycho 100 S03E03. Links from the Show page of a series are the links that give these errors. However, links from the New Releases page work just fine.
Note that altering the Show Page Link to look like the New Releases Page Link only works if the New Releases Page Link actually exist.

Show Page Link https://www.funimation.com/v/my-hero-academia/mirko-the-no-5-hero

F:_FNow-DL>yt-dlp.exe -v --no-check-certificate --cookies cookies.txt "https://www.funimation.com/v/my-hero-academia/mirko-the-no-5-hero" -F
[debug] Command-line config: ['-v', '--no-check-certificate', '--cookies', 'cookies.txt', 'https://www.funimation.com/v/my-hero-academia/mirko-the-no-5-hero', '-F']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version 2022.10.04 [4e0511f] (win32_exe)
[debug] Python 3.8.10 (CPython 64bit) - Windows-10-10.0.22621-SP0
[debug] Checking exe version: ffmpeg -bsfs
[debug] Checking exe version: ffprobe -bsfs
[debug] exe versions: ffmpeg N-107013-g93b31dae1d-20220527 (setts), ffprobe N-107013-g93b31dae1d-20220527
[debug] Optional libraries: Cryptodome-3.15.0, brotli-1.0.9, certifi-2022.09.24, mutagen-1.45.1, sqlite3-2.6.0, websockets-10.3
[debug] Proxy map: {}
[debug] Loaded 1690 extractors
[debug] [funimation:page] Extracting URL: https://www.funimation.com/v/my-hero-academia/mirko-the-no-5-hero
[funimation:page] my-hero-academia_mirko-the-no-5-hero: Downloading JSON metadata
[debug] [Funimation] Extracting URL: https://www.funimation.com/player/4248590
[Funimation] 4248590: Downloading player webpage for 4248590
ERROR: [Funimation] 4248590: Unable to find episode information; please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template.


[EXAMPLE] Use a newer swift-format

We use a very old swift format. Now that we've updated to 5.2, it might be a good idea to update swift format too.
We can spend years bike-shedding on the exact things we want. So far we have selected the following rules:

[None, everything is default]

NIO does not run a formatter: we're continuing to wait until a formal Swift project formatter is adopted, at which time we'll make a single change to meet its requirements. This is in service of reducing churn.

Let's have a team discussion first - I'm going to reduce the change size


MuseBSL

I've been working on MuseBSL, an update/modernization/lightening of muse-lsl (see #95).
My goal is to replace pylsl by BSL, but I think I'll need some reassurance on how to do that.
In particular, the pylsl functions used are StreamInfo, StreamOutlet and local_clock().
Is it correct that replacing pylsl. by bsl.lsl. should do the job? Is there some other improvements that could be implemented to make full use of the BSL benefits? Thanks!

One thing to note, the desc object was a callable in pylsl, but now isn't, so one need to change:
info = pylsl.StreamInfo(...)
info.desc().append_child_value()

to:
info =  bsl.lsl.StreamInfo(...)
info.desc.append_child_value()

Hello,
Yes, there are a couple of minor differences in the API, e.g. desc is now a property instead of a method.
The goal was to modernize and make the API more "python-like".
That said, you can simplify the code to set the channel descriptions, e.g. https://github.com/DominiqueMakowski/MuseBSL/blob/c1ea0bc2f61816b3c884b92d534b96cfceb3641a/MuseBSL/stream.py#L32-L37
sinfo = StreamInfo(...)
sinfo.set_channel_names(["TP9", "AF7", "AF8", "TP10", "Right AUX"])
sinfo.set_channel_types(["eeg"] * 4 + ["misc"])
sinfo.set_channel_units("microvolts")

Same for other StreamInfo, and you'll need to pin to main or to 1.0 or above (almost done.. got a bit submerged in side-task this past week). Either look at the code directly, or at the dev documentation build: https://fcbg-hnp-meeg.github.io/bsl/dev/index.html It eliminates the need to interact with the desc XML element tree.

Also, your push function seems wrong: https://github.com/DominiqueMakowski/MuseBSL/blob/91699ff4b15ec26a9ef3410a1f7a6f7a3247e20f/MuseBSL/stream.py#L100-L102
In LSL, a sample is an array of shape (n_channels,). In the case of a bsl.lsl.StreamOutlet.push_sample, it's optimal to push a numpy array of the same dtype as the StreamOutlet (float 32 in your case I think) which is C-contiguous. It's also True to some extend in pylsl, although it usually works through python list instead of numpy arrays, and the difference is not that important for that operation anyway.
Your push function is called by the callback: https://github.com/DominiqueMakowski/MuseBSL/blob/91699ff4b15ec26a9ef3410a1f7a6f7a3247e20f/MuseBSL/muse.py#L259-L308
Which seems to fill an array self.data with the samples received from 44, 41, 38, 32, 35 (I assume, your 5 channels); and then when the last sample (35) is received, you call the EEG callback function which calls push. So now, in push, you are iterating on this data array of shape (5,) and trying to push channel by channel instead of the entire "sample" at once.
At least, that's how I read the code, I might be completely wrong. Do you have any other traceback with this missing sample 1? I've never seen it thrown by LSL yet :cry:

I managed to simplify the code a lot with the convenience methods to set channel names etc. Cheers for that.
The only thing that we still set manually is the manufacturer, but I'm not sure it's super useful and standard (again, this was in muse-lsl, but I am happy to remove it if it's not of much use to make MuseBSL as light as possible).

Also, your push function seems wrong:
I checked and you are probably right, it seems like we're pushing channel by channel (assuming the second axis is the channels).

Do you suggest to change it from:
    def push(data, timestamps, outlet):
        for i in range(data.shape[1]):
            outlet.push_sample(data[:, i], timestamps[i])

to:
    def push(data, timestamps, outlet):
        outlet.push_sample(data[:, :], timestamps[:])

As you say we can push the entire array?

The manufacturer is less standardize than the already not that standardized channel names/types/units.
You can leave it or remove it; honestly it doesn't add any useful information.
For the push operation, if data is of shape (n_channels,) then you should indeed do outlet.push_sample(data, timestamp) where timestamp is a float; and if you have several samples, i.e. a chunk of shape (n_samples, n_channels), then you should do outlet.push_chunk(data, timestamp) where timestamp is again a float, the acquisition timestamp of the last sample (i.e. data[-1, :]).
From reading your code last time, it did look to me like data was of shape (5,), i.e. (n_channels,).

@DominiqueMakowski Hello! Quick ping so you notice that the repository has moved and was renamed.
bsl will still be available on PyPI, up to the existing minor version and on the repository https://github.com/fcbg-hnp-meeg/bsl, and this repository mne-lsl will have a stable release on PyPI and conda-forge soon.

Thanks for the headsup :)

Just to clarify,

then you should do outlet.push_chunk(data, timestamp) where timestamp is again a float, the acquisition timestamp of the last sample (i.e. data[-1, :])

This is an example of data for the eeg stream:
Timestamps:  [367030.56168572<PHONE_NUMBER>8407<PHONE_NUMBER>8243<PHONE_NUMBER>8079
<PHONE_NUMBER>7915<PHONE_NUMBER>7751<PHONE_NUMBER>7587<PHONE_NUMBER>7423
<PHONE_NUMBER>7259<PHONE_NUMBER>7095<PHONE_NUMBER>6931<PHONE_NUMBER>6767]
-------------------------
Data:  [[ -616.2109375    964.84375<PHONE_NUMBER>5  -854.98046875
  -1000.          -851.07421875<PHONE_NUMBER>5<PHONE_NUMBER>
   -541.015625   -1000.         -1000.<PHONE_NUMBER>5]
 [ -858.88671875   595.703125<PHONE_NUMBER>   -692.3828125
  -1000.         -1000.<PHONE_NUMBER><PHONE_NUMBER>5
   -354.00390625 -1000.         -1000.           -84.47265625]
 [ -802.734375    -197.265625<PHONE_NUMBER>   -578.125
   -831.54296875  -793.9453125   -353.02734375<PHONE_NUMBER>
   -399.90234375  -746.58203125  -799.31640625  -537.109375  ]
 [ -183.59375<PHONE_NUMBER>5<PHONE_NUMBER>5<PHONE_NUMBER>
  -1000.          -337.890625<PHONE_NUMBER>5<PHONE_NUMBER>5
    226.5625     -1000.          -511.23046875   869.140625  ]
 [    0.             0.             0.             0.
      0.             0.             0.             0.
      0.             0.             0.             0.        ]]

dimensions (12,) and (5, 12)
The timestamps are different. However, you suggest to just do
    def push(data, timestamps, outlet):
        outlet.push_sample(data, timestamps[-1])

and store the last one is that correct?

(5, 12) seems to be 5 channels and 12 samples.
If you have a single sample, array of shape (12,): outlet.push_sample(data, timestamp)
If you have a chunk of samples, array of shape (5, 12): outlet.push_sample(data.T, timestamps[-1]) (note the transpose since LSL expects the chunk to be of shape (n_samples, n_channels)).

It will always be one timestamp per sample, thus one timestamp for all channels. I think it should be fine.

pull_chunk seems to work! cheers :)
Moving forward, should I change the imports of bsl to mne_lsl ?

I would suggest so since I archived bsl and the future release will be only on mne_lsl. For now, you'll have to pin to the main version in the setup.py (or setup.cfg or pyproject.toml) until I release the first version.

Alright, as far as I'm concerned, everything seems to work neatly, I updated the README.
Let me know when you make a pypi release.
Again, thanks for your help and patience, much appreciated
Good luck with mne-lsl ;)

First release done: https://pypi.org/project/mne-lsl/
Conda-forge in the coming days.


Please update dactyl pages to reflect that the project is dead

In fact, the dactyl pages are still pointing at the dead hg repositories from google code on top of not identifying dead parts.

Hmm, when a project doesn't work with it's framework for more than a year...
You're dead...
and it's polite to not force people to search through multiple sites to id it...
and even more so to have web pages pointing to dead repos...
and not marking it sure doesn't motivate me to try to help to bring it to life...
The last major update was 2013 (to teledactyl)...
and again, if you wanted to motivate new developers, it would sure be helpful to say something more than just "invalid"...
It's too bad...

Pentadactyl is alive and kicking as you can see from the number of issues that have been closed recently. Bugs are corrected, and the extension is adapted to changes in new Firefox versions.

I think the point apeyser is trying to make is that yes, people involved on this issue tracker are well aware that the project is going well as you mention @eboth
But the way new people usually get their first impression is through the public website that should be in par with the amazing work done on the code side. Unfortunately that's not the case at the moment.