Allow the use of Isolated V8 methods for node-0.12

I was trying to build the atom/node-spellchecker for nw.js with nw-gyp and keep getting the same error:
▶ nw-gyp build
gyp info it worked if it ends with ok
gyp info using<EMAIL_ADDRESS>gyp info using<EMAIL_ADDRESS>| darwin | x64
child_process: customFds option is deprecated, use stdio instead.
gyp info spawn make
gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
  CXX(target) Release/obj.target/spellchecker/src/main.o
In file included from ../src/main.cc:1:
../node_modules/nan/nan.h:207:13: error: no type named 'SetCounterFunction' in 'v8::V8'
    v8::V8::SetCounterFunction(cb);
    ~~~~~~~~^
../node_modules/nan/nan.h:212:13: error: no type named 'SetCreateHistogramFunction' in 'v8::V8'
    v8::V8::SetCreateHistogramFunction(cb);
    ~~~~~~~~^
../node_modules/nan/nan.h:217:13: error: no type named 'SetAddHistogramSampleFunction' in 'v8::V8'
    v8::V8::SetAddHistogramSampleFunction(cb);
    ~~~~~~~~^
../node_modules/nan/nan.h:221:12: error: no member named 'IdleNotification' in 'v8::V8'; did you mean 'NanIdleNotification'?
    return v8::V8::IdleNotification(idle_time_in_ms);
           ^~~~~~~~~~~~~~~~~~~~~~~~
           NanIdleNotification
../node_modules/nan/nan.h:220:19: note: 'NanIdleNotification' declared here
  NAN_INLINE bool NanIdleNotification(int idle_time_in_ms) {
                  ^
../node_modules/nan/nan.h:225:5: error: no member named 'LowMemoryNotification' in 'v8::V8'; did you mean 'NanLowMemoryNotification'?
    v8::V8::LowMemoryNotification();
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    NanLowMemoryNotification
../node_modules/nan/nan.h:224:19: note: 'NanLowMemoryNotification' declared here
  NAN_INLINE void NanLowMemoryNotification() {
                  ^
../node_modules/nan/nan.h:229:5: error: no member named 'ContextDisposedNotification' in 'v8::V8'; did you mean 'NanContextDisposedNotification'?
    v8::V8::ContextDisposedNotification();
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    NanContextDisposedNotification
../node_modules/nan/nan.h:228:19: note: 'NanContextDisposedNotification' declared here
  NAN_INLINE void NanContextDisposedNotification() {
                  ^
6 errors generated.
make: *** [Release/obj.target/spellchecker/src/main.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/nw-gyp/lib/build.js:267:23)
gyp ERR! stack     at ChildProcess.emit (events.js:110:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:1067:12)
gyp ERR! System Darwin 14.1.0
gyp ERR! command "node" "/usr/local/bin/nw-gyp" "build"
gyp ERR! cwd /Users/mob/Dev/node-spellchecker
gyp ERR! node -v v0.12.0
gyp ERR! nw-gyp -v v0.12.4
gyp ERR! not ok

After a lot of research I found that node-0.12 uses V8 version 3.28.73 which implement the method with Isolated (https://chromium.googlesource.com/v8/v8.git/+/3.28.73/src/api.cc#6692), and in the code those are available only for NODE_MODULE_VERSION >= IOJS_1_0_MODULE_VERSION.
After this change it worked, this is my first PR so any comments or another way to achieve the same are welcome.

While the patch seems to pass, I am still not entirely sure that it does not have any unintended consequences. The problem is that nw.js claims to  be something it clearly is not and we have no reliable way of checking for the actual v8 version used. Even if it somehow were possible, I will still not make special case after special case and exceptions left and right. A version is a version and will be treated as such, not a free-form user agent with five levels of hacks. It is completely unmaintainable.

Given that, I don't think it is necessary to change anything in nan, as they said in their documentation
 v0.11.6: (Jan 21, 2015, based off of Node v0.11.13, Chromium 38.0.2125.104)
The weird thing is that nw-gyp uses the node version of nw.js but when you ask the node version it uses node -v, maybe it's a problem in nw-gyp itself.

Will hold off while waiting for the response of nw.js, once this has been sorted out, new versions of nw.js 11 will most likely start working by themselves. nw.js 8 should still be fine. Past versions of nw.js 11 will never work.

@bnoordhuis thanks for CCing.
@morellan it's required to pass -t <version of nw> to nw-gyp so it will receive the correct version and then download the correct headers distributed by NW. If that's the case, I don't think nan should be changed.

@kkoopa NW.js integrates Chromium and Node.js (in <= NW 11) or IO.js (in NW 12 and later) and always uses the v8 version in Chromium.

Because nw-headers-v0.11.6.tar.gz states that it is node 0.11.13 in node-version.h, when the actual node 0.11.13 came with a different v8 version. There is no way of telling that this is not normal node 0.11.13.

The problem is that the version of v8 cannot be detected directly, so we must rely on NODE_MODULE_VERSION and NODE_VERSION to also detect v8 version. Since nw.js may use a different v8 version, that check will fail.

@kkoopa you're right. and v8 upgrades from <IP_ADDRESS> to 3.28.73 in Node.js (from 0.11.13 to 0.11.15).
Currently in NW11 the Node.js is 0.11.13 and v8 is <IP_ADDRESS> (from Chrome). Since Nan supports Node.js 0.11.15 (with v8 3.28.73), if NW updates its Node.js to 0.11.15 in next NW 0.11.7 everything should be fine is that correct?

Yes, that should hopefully work for now, but the problem remains if you need to change v8 versions again in the future.

@kkoopa yes. To fix the root cause v8 should add version definition macros in their headers ...

Yes, that would indeed be the best recourse. #226 revolves around the same problem.

That's https://code.google.com/p/v8/issues/detail?id=3075 - I took a shot at it once but IIRC I got stumped integrating with V8's homegrown release script.

FYI: https://codereview.chromium.org/955963002/

:+1: for the public version macro for v8 @bnoordhuis
But in the meantime at least we need to update the documentation on nw-gyp, maybe adding another note @rogerwang

Note: nw.js is packed with Node.js version 0.11.13 and a different version of V8 (<IP_ADDRESS>) than the one Node.js 0.11.13 has (<IP_ADDRESS>), it might lead to some inconsistent behaviour when building your native modules (see rvagg/nan#285).

Should I open a pull request with that?

@morellan yes please. thanks.

@rogerwang done!
nwjs/nw-gyp#62

I'm locked nan to 1.3.0, till fix release. Higher releases still not work under nw.js 0.11.6 with node 0.11.13.

nw.js 0.11.6 will never work

Yeah, on 0.11.5 was same issue :) But for now NW.JS won't start my app...without logs/messages... Magic...

You have to wait for a possible 0.11.7 or switch to 0.12.0.

Now all works fine on 0.11.6 with Nan 1.4.3 :+1:
@kkoopa I will wait for 0.12.0, Thanks!


fix and re-enable NativeVersionInfo_CreateNativeResourceDll for AzurePipelines

Fixes #294

hmm, it seems the pipeline build is behaving differently than local build from VS/with init.cmd/build.cmd
I didn't notice the additional warning before (which the pipeline is apparently treating as an error)

Yes I treat all the warnings as errors in the official versions. Feel free to scale back on the packages you updated if it's unrelated to your goal and would help you fix the problem.

This should fix the last warnings, but I don't know if/how I trigger a new AzurePipeline to verify again
(the pipeline was automatically triggered for previous updates of the pull request?)

Evidently the browser on my phone lied (probably a stale web page) and said the build was successful when in fact the test had failed. So I had to revert this PR. The new one is #297. Can you follow up to get the test actually working, @japj ?
Thanks.

Thanks.


No validation error displayed when submitting signup with all zeros

Originally created by Tom Smyth at 2015-11-21 21:43, migrated from redmine-#3672

Version set to 2.4

By Tom Smyth at 2016-10-23 03:31

Version changed from 2.4 to 2.5

By Tom Smyth at 2016-10-24 16:30

Status changed from New to Closed

By Tom Smyth at 2016-11-06 03:16


Adding a few request pattern examples to the Network Request Blocking docs

The Network Request blocking docs: https://docs.microsoft.com/en-us/microsoft-edge/devtools-guide-chromium/network-request-blocking/network-request-blocking-tool are not very thorough when it comes to explaining how patterns are actually matched.
This PR hopefully makes it clearer how users can use domain names or patterns to block whole classes of URLs without having to list them all one by one.
This fixes #1899, at least the first part of it.

Docs Build status updates of commit ccb4033:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

microsoft-edge/devtools-guide-chromium/network-request-blocking/network-request-blocking-tool.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


feat: zookeeper support  mutil nodes

Fixes: #53

Codecov Report

Merging #56 (2cf4eb5) into main (29af492) will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##             main      #56   +/-   ##
=======================================
  Coverage   62.55%   62.55%
=======================================
  Files          16       16
  Lines        1127     1127
=======================================
  Hits          705      705
  Misses        357      357
  Partials       65       65

Impacted Files
Coverage Δ

internal/discoverer/zookeeper.go
64.13% <100.00%> (ø)

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


Camera not showing

Hello,
I'm using Vuejs v2.6.10 and vue-web-cam v1.5.1, I cannot see anything :
Here is the code of my component :

I'm using chrome with SSL certificate (To allow the camera) but nothing :

And no errors in console :

Any help ?

Please forget this I copy/paste the demo and works fine, I think I forget some props


[GSSoC'23] Classroom Schedular front-end project

Describe the project you want to add with tech stack

Title - Classroom Schedular
Tech using - HTML, CSS and JS
Expected behavior

A website that lets you write about all your classes at one place.
You can also search by typing the name of the teacher if you have so many classes to take.
Cards effect on each notes.
Responsive website even for the small devices, and many more features.

Screenshots (optional)

Additional context (optional )

Very helpful project for the college students.

@MohitGupta121 @pranjay-poddar @Saurabh-kumar09 sirs, please assign this project to me


Gt06 protocol check.

Hello, I am checking the gt06 protocol, because one device that I am getting from china seems to have that protocol, even checking on google seems similar, but not according to the protocol document on traccar website.
Related cases #971 #526 #483 #326
Some other reference.
Just Share about GT003.  now my gps works nicely on xxxxxxxxxx
THIS IS THE HISTORY

Purchased GT003 from ebay, OK by SMS but need something better, no information on GPS manual book about how if you want to web tracking, then found wonderful website Orange-trace.com.
FIRS PROBLEM COME, based on manual book GT003 and seller website on ebay, to change server/IP  by type this format via sms : SERVER,1/0,domain/ip,port#.                  BUT, GPS always replied FORMAT WRONG !!.  no matter how i change the format by SMS, GPS replied FORMAT WRONG! (by sms command : PARAM,1# you'll see the original IP only from manufacturer)
THEN, I found this from forum http://forum.gpstrace.ru/viewtopic.php?pid=16739  (Thanks  a lot guys for share there)-- after tanslate from rusian to english, here it is: "my version GT003 - V06, and server command is entered differently than earlier versions and instructions that was included, namely SERVER, code, domain / IP, port # where the code is 8520.
So, I Got the newest version of GT003 with the new sms command syntax, and this is NOT CLEARLY informed on manual book/different.
This is the right format sms command: SERVER, code, domain / IP, port #.   I don't know where it come from the number: 8520, but USE it and works!.
HOW did we know the GT003 is V06 or not, simple.... by open your GPS and you'll see the sticker with V06 printed on gps chipset modul.
FINALLY
IN orange-gps tracker, GT003 is the same  protocol with GT06, so in this case :
4.1  IP and port will be used for GT003/GT06 configuration is  <IP_ADDRESS>/port 20281
4.2  I change the IP server on GPS by sms command :  SERVER, 8520,<IP_ADDRESS>,20281 #
GPS replied : SET IP OK ! IP:<IP_ADDRESS>,20281 #
YESSSS!!!
Make sure your SIMCARD setting for APN/Internet is OK and, make any proper configuration on orange-gps trace.com, and you'll see soon, your GPS is HERE.

May this useful for who got problem as me. big_smile
Regards
Added after    4 minuts  23 seconds:
This is GT003 looks like http://www.ebay.com/itm/130904718893?ss … 1497.l2649
if admin need to update the picture about device supported on this lovely web site.
I cannot attach will try on email.

The protocol documentation that you sent me called TK103 in Traccar and it works on port 5002.

good Afternoon.
I have 4 gt003 devices and I could not configure them for a year and a half and today with your help I managed to get two to work but I continue with two that keep the "Format wrong" response to the command. I noticed that those who did not accept the command are from version 12. Would you have any idea or knowledge about which command to use for this case?

Dear Wtracking,
It is because the field "8520" is a password. In my devices user manual it is written by hand
"83466207".
I entered command  SERVER, 83466207,<IP_ADDRESS>,6023#

Hope you still have the user manual...

Dear ACvardar,
Thanks for your help. that code 8520 help us to point two of our devices GT02B to wialon server but just work on two and we still need help with other two that us version 12.
From: acvardar
Sent: Sunday, April 16, 2017 8:18 PM
To: tananaev/traccar
Cc: Wtracking ; Comment
Subject: Re: [tananaev/traccar] Gt06 protocol check. (#1452)
Dear Wtracking,
It is because the field "8520" is a password. In my devices user manual it is written by hand
"83466207".
I entered command SERVER, 83466207,<IP_ADDRESS>,6023#
Hope you still have the user manual...
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

Hello,i am new to the gprs trackers,i want to buy gps tracker GT06 GSM GPRS GPS for out customers,the main aim is to set up a server so as to monitor our customers motorcycles!Any advice?

Dear Atraccar,
Did you know witch syntax must be used to set ip on GT003 track device
version 12?

Hi guys,
I have just test the code write on the manual by pen and its works for GT003 devices with version 12. if you have one of use that code SERVER, 83466207,<IP_ADDRESS>,6023# and you will get write answer from device like i get.
Enjoy

Thank you very much Wtracking. This work for me: SERVER, 83466207,<IP_ADDRESS>,5023#
Regards.


Temporary workaround for https://github.com/dotnet/corert/issues/8241

Temp fix until dotnet/runtime#39717 can be consumed when CoreRT moves to runtimelab.
Confirmed working with Big Sur.
CC @jkotas

Fixes #8241 temporarily.


Fix for settings button

Remove position: absolute on .setting-btn:before in src/components/icon/_setting.less

I'm working on it.

Is this issue open? And only what you said is to implement?
Can I work on this?

Hi @arkumari2000 yes that's all you have to do with the addition of running npm run compile afterwards and committing the changes.
I'll assign you.

Okay, Thank you


The destiny of rescript-sublime?

The CONRIBUTING.md says that https://github.com/rescript-lang/rescript-sublime is a source of truth for our Grammar, but looks like it's not really true, since it wasn't updated for the last 3 years.
Should the section be updated?
https://github.com/rescript-lang/rescript-vscode/blob/master/CONTRIBUTING.md#change-the-grammar

Probably, yes. As with all other editors, we need someone who uses it day to day and can invest time into maintaining. I guess this isn't true anymore for Sublime.


add linuxkit/metadata from published image

instead of building from (forked) source
Prep for #202
Prep for #294

Somehow, I forgot about a lack of arm support.


Update swiper from 4.4.1 to 4.4.6

https://github.com/kidjp85/react-id-swiper/issues/230
https://github.com/kidjp85/react-id-swiper/issues/232
working example: https://www.npmjs.com/package/@eredessil/react-id-swiper

Hi @eredessil , thanks for your PR but I will update next version soon


Creating UI Element to display Average Speed

Describe briefly your feature.
Creating an UI element for displaying the average moving speed related information.
Describe the solution you'd like
Its a subtask creating only UI element related to #91

Implemented in #198


Included CoP support + improvements in cones (friction & wrench)

This PR includes a structure that computes the inequality matrix and bounds for a CoP support. The idea is to use this structures in the residual APIs (#899) as we are doing for the friction/wrench cones.
Additionally, it improves the computation of the inequality matrices for the friction and wrench cones (exploits the structure during rotation transformation). There are other modifications regarding the cones, I enlist next:

update function (in both cones) do not require to pass any argument in update function (deprecated original one)
Wrench cone handles an arbitrary number of friction-cone facets (before it was hard-code -> buggy for an arbitrary number)
Friction cone is constructed with the rotation matrix as we want to encode yaw rotations (deprecate constructor based on surface normal)
Wrench cone models both inner/outer approximations of the cone (before it was only the inner one)
Included documentation of both cones
Extended the set of unit-tests for both cones
Updated the needed version of eigenpy as it solves an important bug for binding 4x6 matrices
Updated the gepetto displayer (it uses the rotation matrix, instead of the surface normal)

I had to rebase and resolve conflicts. This PR is now ready to be reviewed!

Would you agree that FrictionCone, CoPSupport and WrenchCone are subsets, or duplications of each other?

In the discussion following https://github.com/loco-3d/crocoddyl/issues/866, it was decided to get rid of the special classes that contain metadata about cost models. Following that, I see that the PR https://github.com/loco-3d/crocoddyl/pull/899 does indeed gets rid of the frame classes. Thank you for that.
However, it still keeps the FrictionCone, CoPSupport and WrenchCone classes in order to define residuals. Following the discussion that we had, this should be removed as well.

However, it still keeps the FrictionCone, CoPSupport and WrenchCone classes in order to define residuals. Following the discussion that we had, this should be removed as well.

This classes are not just containing data (as for the FrameXXX ones). I see them equals to the pinocchio::Motion. Perhaps we should discuss this topic in our next meeting.

Further comment, the inequality constraint matrices are updated only when it is called update(). This matrix changes according meta parameters such as rotation matrix, inner appr., amount others.
Btw, as far I remember, for instance, we decided to deprecate FrameFrictionCone but still keep FrictionCone.

Status:
I have discussed in private with @proyan about his concerns (which are not clearly reflected in this thread). His concern is about embedding both cones (friction and wrench) through an abstraction. He sustains that we should pursue it in this way; however, as I explained him, it affects the performance as the inequality matrices cannot be defined with fixed dimensions.
Further, despite that his suggestion is valid for discussion (reduce the code), it is orthogonal to the objective of this PR. It will also require extensive development: change of API, deprecation, and adaptation of unitt-test and cost functions, which affects significantly my ongoing agenda.
@proyan -- I suggest you to prepare your proposal with clear details. If this is accepted, then you need to proactively provide the solution (unfortunately, I do not have time).
In any case, thank you for raising your point, but, again, I hope you understand that your request is out of the scope of this PR.
In future, I would kindly ask you to only raise points that are within the scope of a PR. This is the most productive way for everyone.


Unexpected Result from synth_gowin Pass

Version
Yosys 0.40+33 (git sha1 34d9a7451, clang++ 14.0.0-1ubuntu1.1 -fPIC -Os)
On which OS did this happen?
Linux
Reproduction Steps
I observed a potential error where 'ORing' an undriven net with an input net results in a HIGH output, after executing synth_gowin. The following example reproduces the potential error -- in this case, buggy_a is set HIGH when bug_sub is instantiated in bug_top.
module bug_sub(
    input wire clk,
    input wire buggy_a,
    output wire x
);
reg [24:0] count;
always @(posedge clk)
    if (buggy_a)
        count <= count + 1'b1;

assign x = count[24];
endmodule

module bug_top(
    input wire clk,
    input wire a,
    input wire b,
    output wire x
);`
    wire undriven_wire;
    // assign undriven_wire = 1'b0;
    bug_sub this_sub (
        .clk(clk),
        .buggy_a(a | undriven_wire),
        .x(x)
    );

endmodule

The following line from the log (trace on) showss that  buggy_a is indeed driven high:
#TRACE# Connection in module bug_top: \this_sub.buggy_a = 1'1

The potential error seems to disappear if I do one of the following:

explicitly assign undriven_wire to 1'b0 (as in the commented out line)
execute setundef earlier than synth_gowin executes it (in a custom synthesis script that otherwise mirrors synth_gowin

Expected Behavior
this_sub.a should take on the the value of a, as undriven_wire is expected to be low (synth_gowin executes setundef -zero) .
Actual Behavior
this_sub.a is driven HIGH.

I'm fairly sure this is not a bug, and the optimizer is allowed to assume that undriven nets take any value that it finds convenient.

I would make the argument that it is a bug from the POV of intention. If I'm not misinterpreting what setundef does, then I believe synth_gowin 'intends' to set undriven nets to 0.
In addition to that, the undriven net itself is not really being driven HIGH, only the result of the expression it is a part of. When I try to assign the undriven net to an output, that output is grounded. To demonstrate this, I added an additional output, undriven_wire_out to bug_top and assigned undriven_wire to it.
These are the final assignments to the nets per the log:
#TRACE# Connection in module bug_top: \this_sub.buggy_a = 1'1
#TRACE# Connection in module bug_top: \undriven_wire = 1'x
#TRACE# Connection in module bug_top: \undriven_wire_out = 1'x

And from the json output, I can see that:
 "undriven_wire_GND_G": {
          "hide_name": 0,
          "type": "GND",
          "parameters": {
          },
          "attributes": {
          },
          "port_directions": {
            "G": "output"
          },
          "connections": {
            "G": [ 19 ]
          }
        },
        "undriven_wire_out_OBUF_O": {
          "hide_name": 0,
          "type": "OBUF",
          "parameters": {
          },
          "attributes": {
            "keep": "00000000000000000000000000000001"
          },
          "port_directions": {
            "I": "input",
            "O": "output"
          },
          "connections": {
            "I": [ 19 ],
            "O": [ 6 ]
          }
        },

So it appears I'm ending up with a case where:
buggy_a = (a | undriven_wire) = 1'1 (undriven_wire is assumed to be 1'1)

but
undriven_wire_out = undriven_wire = 1'0 (per the json output above, `undriven wire` is grounded)

This is consistent with the results I got from running this on an actual device, and very similar to the original challenge I encountered. Even if the optimizer makes the choice to set undriven_wire HIGH, doesn't it have to be consistent with that decision?

Even if the optimizer makes the choice to set undriven_wire HIGH, doesn't it have to be consistent with that decision?

Nope, each time 'x is replicated it can take a different value, similar to e.g. undef in LLVM. This is a deliberate part of its semantics.

That's fair enough. Even if it is certainly jarring to encounter.
Maybe it would be nice to have an option to tell synth scripts like synth_gowin to set all undriven nets to 0 prior to optimization.
Thank you very much for your time :pray:
I'll go ahead to close the issue.


[FEATURE] New tagged release

Is your feature request related to a problem? Please describe.
Last release 2.0.0 is lagging behind master pretty hard, cut a new one?
Describe the solution you'd like
New release is created and I can point my plugin manager to it instead of random commit

hey @Anrock! yep we are just waiting to push more issues before bumping that. Thanks!


2

some of the digits are actually spelled out with letters: one, two, three, four, five, six, seven, eight, and nine also count as valid "digits".
alright, I then need to make a type and a case of expression, something like that

replaceWordWithDigit :: [Char] -> Char

two1nine
eightwothree
abcone2threexyz
xtwone3four
4nineeightseven2
zoneight234
7pqrstsixteen

In this example, the calibration values are 29, 83, 13, 24, 42, 14, and 76. Adding these together produces 281.

replaceWordWithDigit :: [Char] -> [Char]
replaceWordWithDigit x = case x of
  "one"   -> "1"
  "two"   -> "2"
  "three" -> "3"
  "four"  -> "4"
  "five"  -> "5"
  "six"   -> "6"
  "seven" -> "7"
  "eight" -> "8"
  "nine"  -> "9"
  "zero"  -> "0"
  []      -> []

https://stackoverflow.com/questions/48198144/how-do-i-search-for-string-within-a-string-in-haskell

this is a convolution!

конвертировать в числа и обратно тоже можно автоматически

data Digit = Zero | One | Two deriving (Enum, Show)

fromEnum Two
2

toEnum 1 :: Digit
One

из них можно сделать "слова в кавычках" автоматически

data Digit = Zero | One | Two deriving Show

show Two
"Two"

map Data.Char.toLower $ show Two
"two"

in take pos str ++ digit ++ drop (length word) str

https://github.com/aleeusgr/aoc23/blob/c96b46ccd222792cf382bd5a7001b2e6b2e8b407/src/MyLib.hs#L40-L52
gives me
  expected: [29,83,13,24,42,14,76]
     but got: [29,23,13,14,42,14,76]

https://stackoverflow.com/questions/7653942/find-names-with-regular-expression

digits are actually spelled out with letters: one, two, three, four, five, six, seven
+--     -- I need to find numbers written as words and replace them with digit symbols

However there is a condition:
parsing must happen from the beginning of the list for each digit: if two shares t with eight, but 8 is before 2, then eight -> 8', but not eigh2`

The value in continuing is in learning more about problem solving.

and i have not much else to do.

https://en.wikipedia.org/wiki/Fold_(higher-order_function)

The digits are written out as number names, so I need to replace them back.
I must run exhaustive search on the list on number names for each letter in the word.
Looking at position 0, is it a number word? If yes replace, else move on to position 1.
So it boils down to comparing two lists: do the 0 elements match? If yes, move to element 1 in both lists, else move to element 1 in second list but stay on element 0 on the first list.

in take pos str ++ digit ++ drop (length word) str
Hello! Can you guide me on a problem?
I'm solving an Advent of Code problem, I am using Haskell.
The problem is described like so: in a string numbers are spelled as words
so the solution is to recognise number names in a string and replace them with digits.
if I use isSubsequenceOf the tests fail: the problematic word is eightwothree in which 2 is recognised before eight, so the result is eigh23 instead of 8wo3.
To solve this I need to compare two strings: if the zero is in the 0 position of the string, replace with the word, else check one.
If none of the number names corresponds to the pattern at the 0 position of the test string, apply the same function to the tail of the string.
I try to understand how to express them as code.
I'm not looking for a solution, but for links to documentation I could read and problems to practice to be able to solve this on my own.
I thank you for your time and knowledge
🙏

Parser works, now I need to map it
https://stackoverflow.com/questions/51073535/using-map-with-function-that-has-multiple-arguments

test case passes but I get an error on data
"5hkccqppaoc23: Prelude.head: empty list
CallStack (from HasCallStack):
  error, called at libraries/base/GHC/List.hs:1646:3 in base:GHC.List
  errorEmptyList, called at libraries/base/GHC/List.hs:85:11 in base:GHC.List
  badHead, called at libraries/base/GHC/List.hs:81:28 in base:GHC.List
  head, called at src/MyLib.hs:43:30 in aoc23-<IP_ADDRESS>-inplace:MyLib

https://wiki.haskell.org/Handling_errors_in_Haskell

yeah! I wrote the code below 👇 but it's buggy.
First it makes an error on inputs in line 55: the error traces to func at L41 and calling head on an empty list.
I tried to bodge the solution (L55) but there is more than one problematic case.
Curiously I tested the line 42 today and if I change the function return to [x] I don't get any errors before runtime and it seems to hang.
I need to test it again and if I can reproduce the error I should ask the Haskell security advisory team if it's a known vulnerability.
I will look into documentation on error handling to get the list of problematic inputs from the list of data.
I want the function to return the value if it causes it to err, so I must use some monad. I found the docs, will read soon.

https://github.com/haskell/security-advisories/issues/134

Fraser was able to find the error, a case for finally using QuickCheck to find the bug.

regex is really useful when you want to parse templated strings and get some values out of those.

https://stackoverflow.com/questions/7653942/find-names-with-regular-expression

Ok, I aim to solve 7 challenges as well.
Tried a short course on regex, it's really interesting and I will see if I have inspiration to use it in this case.
Many thanks for the idea about debugging: I used ghci and -fbreak-on-exception to rewind the runtime.
I realised without the debugger that function breaks on strings that don't contain any number names, such as "aa".
correctCalibrationValues checks for this, but some cases avoid this check.

That's not the right answer; your answer is too high. If you're stuck, make sure you're using the full input data; there are also some general tips on the about page, or you can ask for hints on the subreddit.


Share weights

I am not sure whether the script will make the weights shared. If not, simply split data into different towers will train each tower separately?
For reference, in the tutorial https://github.com/tensorflow/models/blob/master/tutorials/image/cifar10/cifar10_multi_gpu_train.py,
they have a (line 175) "tf.get_variable_scope().reuse_variables()" to make sure to reuse the weights.
Thanks!

I think make_parallel() may be sharing weight which tested in my experiment.
What about other people's thoughts?

Keras shares weights when you call the same already constructed Layer on multiple tensors.


Why error message only show in debug ?

so today I tried the helmet for the first time, when I ran it didn't output at all, after I checked the code, the output error only came out in debug.
May I know why the error message is only available in debug?
if err := actionConfig.Init(settings.RESTClientGetter(), settings.Namespace(), os.Getenv("HELM_DRIVER"), debug); err != nil {
		debug("%+v", err)
		os.Exit(1)
	}

	if err := cmd.Execute(); err != nil {
		debug("%+v", err)
		switch e := err.(type) {
		case pluginError:
			os.Exit(e.code)
		default:
			os.Exit(1)
		}
	}

https://github.com/helm/helm/blob/3d04c6c5ce5d019e3a1f58354ab9f67453a83f8a/cmd/helm/helm.go

@faisalburhanudin Can you provide more details what you ran? Did you use the CLI or the SDK? What was the error you got? What version of Helm?
Some more details is helpful in getting an idea of your issue.
FYI, there is PR #6909 opened about this.

So I using minikube without vm
sudo minikube start (minikube need root for run without vm)
Then I run helm cli using command such as:
$ helm --help
$

no output
than check helm code and run debugger.

there is error permission, but no error message in console.
so I check debug code
func debug(format string, v ...interface{}) {
	if settings.Debug {
		format = fmt.Sprintf("[debug] %s\n", format)
		log.Output(2, fmt.Sprintf(format, v...))
	}
}

and than check cli.New() and i found this.
https://github.com/helm/helm/blob/09ebcde05c5331743713af16777768de854ac972/pkg/cli/environment.go#L71
I think error message should show both in debug mode or note

Duplicate of #6863

You are right @faisalburhanudin  that the error message should be shown all the time. There is a PR that will soon fix that I hope.

Sorry @hickeyma, I missed that you had already identified a possible PR for this.


may be a bug: about revertPop/go method in createHashHistory

Scenes
Recurring path

Jump from /user to /user/6.

There is a button that can be rolled back in the /user/6 page.
The block method is called in the /user/6 page.

Click the back button for /user/6.

A confirmation box appears, because window.confirm()
click cancel
URL changes did not trigger UI changes

reason
go method
When the go function is triggered, it is not processed by transitionManager.confirmTransitionTo like triggering the push.
revertPop method
revertPop method
in line 151(if (toIndex === -1) toIndex = 0;) and line 155(if (fromIndex === -1) fromIndex = 0;) is not necessary.
If I think the problem is correct,I can give PR to history repo to solve this problem.

Sorry about this. revertPop is a hack that can never actually work as intended. We are going to remove it in the next major release. I wrote more about it in #690.


http implementation return error when URL contains "?"

When I try to fetch an URL with a "?" like this one:
uri = "https://www.ifremer.fr/erddap/tabledap/ArgoFloats.nc?data_center&time%3E=2026-12-20T00%3A00%3A00Z&time%3C=2026-12-27T14%3A48%3A20Z&distinct()"

which is a simple webAPI request, the http implementations throw an error because it can't "expand" this path:
import fsspec
fs = fsspec.filesystem('http')
fs.get(uri, "toto.nc")

returns the error:
---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
<ipython-input-48-ee357ddd0be1> in <module>
      5 uri = "https://www.ifremer.fr/erddap/tabledap/ArgoFloats.nc?data_center&time%3E=2026-12-20T00%3A00%3A00Z&time%3C=2026-12-27T14%3A48%3A20Z&distinct()"
      6
----> 7 fs.get(uri, "toto.nc")

~/anaconda/envs/obidam36/lib/python3.6/site-packages/fsspec/asyn.py in get(self, rpath, lpath, recursive, **kwargs)
    240         rpath = self._strip_protocol(rpath)
    241         lpath = make_path_posix(lpath)
--> 242         rpaths = self.expand_path(rpath, recursive=recursive)
    243         lpaths = other_paths(rpaths, lpath)
    244         return sync(self.loop, self._get, rpaths, lpaths)

~/anaconda/envs/obidam36/lib/python3.6/site-packages/fsspec/spec.py in expand_path(self, path, recursive, maxdepth)
    722         """Turn one or more globs or directories into a list of all matching files"""
    723         if isinstance(path, str):
--> 724             out = self.expand_path([path], recursive, maxdepth)
    725         else:
    726             out = set()

~/anaconda/envs/obidam36/lib/python3.6/site-packages/fsspec/spec.py in expand_path(self, path, recursive, maxdepth)
    737                 out.add(p)
    738         if not out:
--> 739             raise FileNotFoundError(path)
    740         return list(sorted(out))
    741

FileNotFoundError: ['https://www.ifremer.fr/erddap/tabledap/ArgoFloats.nc?data_center&time%3E=2026-12-20T00%3A00%3A00Z&time%3C=2026-12-27T14%3A48%3A20Z&distinct()']

going further, I found out that it is because glob.has_magic return True with the path string that the expand_path fails.
glob.has_magic(uri)
>>> True

and finally, glob returns True because of the "?" in the URI:
glob.has_magic(uri.replace("?",""))
>>> False

So, is this a bug in the internal fsspec machinery that should take more core with URLs in this case, or am I fetching this kind of webAPI the wrong way ?
Thanks for your help !
g

Thanks, this is a good report.
I am not immediately sure what to do about it, since indeed "?" is both an expected character in http URLs, and also a special character when considering globing. Do you have an idea of something that might work for both? Perhaps for the special case of http, only "*" is considered for glob purposes.

yes, may be for http url, only the "*" should be considered as magic, but not expert enough to be sure
in the mean time, I found a way around with cat_file that allows data to be fetched, but not as expected by fsspec design I guess:
import fsspec
fs = fsspec.filesystem('http')

uri = "https://www.ifremer.fr/erddap/tabledap/ArgoFloats.nc?data_center&time%3E=2026-12-20T00%3A00%3A00Z&time%3C=2026-12-27T14%3A48%3A20Z&distinct()"
# fs.get(uri, "toto.nc") # Not ok

data = fs.cat_file(uri) # Ok !

Another workaround that I think might have worked:
fs.get([uri], "toto.nc")

fs.get([uri], "toto.nc")

unfortunately this does not work since it relies on the asyn.get() method (which fails in expand_path) as well

What happens if you replace "?" with "%3F"?

What happens if you replace "?" with "%3F"?

Then it's the server which doesn't understand the request and returns 400 error

OK, I should not be surprised by that.
Can you please look into how much work it would be to override the glob functionality in HTTPFileSystem, which would presumably involve a custom has_magic and glob re-replacement patterns. You would presumably need class attributes for the regex to use when checking for magics.... sounds a little painful.
By the way, using the _file non-expanding version is a perfectly fine solution.

Can you please look into how much work it would be to override the glob functionality in HTTPFileSystem

could you then assign me to this issue ? so that I don't forget about this ...

I can also ping you periodically @gmaze !

Just stumbled upon the same issue.  For me, I came to it from trying to pull files from an ERDDAP serving and trying to use local caching.  I was initially puzzled as to why something like
import xarray as xr
import fsspec

uri = "https://www.ifremer.fr/erddap/tabledap/ArgoFloats.nc?data_center&time%3E=2026-12-20T00%3A00%3A00Z&time%3C=2026-12-27T14%3A48%3A20Z&distinct()"

of = fsspec.open('simplecache::'+uri)
with of as f:
    ds = xr.open_dataset(f)

was throwing a FileNotFoundError but discovered that internally there was a fs.get() request that was trying to handle the ? as an expansion character as noted above.  However, using either
of = fsspec.open('filecache::'+uri)
with of as f:
    ds = xr.open_dataset(f)

or
of = fsspec.open('simplecache::'+uri,
                 simplecache={"compression":'infer'})
with of as f:
    ds = xr.open_dataset(f)

seemed to trigger a different code path for downloading the file which bypasses the call to fs.get(). To get local copy of the file then some variation of
of = fsspec.open('filecache::'+uri,
                 filecache={"cache_storage": "./",
                            "same_names": True})
with of as f:
    ds = xr.open_dataset(f)

could be used.
Of course, making the change so that fs.get() does the right thing for HTTP is the right long term solution!

Sorry I haven't had a chance to think about how to change glob specifically for HTTP yet.

I keep thinking about it, but I really don't see how to handle this kind of request links.
May be the easiest way to proceed would be to identify the webAPI pattern /? and then to run the glob on the different components of the path, or just simply replace the ? with another glob.has_magic safe character

Sorry, I can't think of a way to solve this without copying a modified version of the whole of the glob method to http. That might be a reasonable thing to do, though. I'm still not sure what that logic would look like, though, except to say that "?" is special in this case,

and so cannot be used for globbing at all.

copying a modified version of the whole of the glob method to http

I don't think this would change a lot over time, so this would be the most appropriate solution
It's all in : https://github.com/python/cpython/blob/afe86066e748076f970ccd277fc64fc51bea189b/Lib/glob.py#L144


Fix panic from syslog trying to log a nil error with Error

Description
The syslog package was logging severities 0-3 (emerg, alert, crit, err) using log.Error. This ends up passing a nil error to Error() which pkg/log's rollbar tries to call .Error on. And boom panic.
This is PR handles this by not logging as Error in the syslog package, as its not really a boots error anyway, and by updating to version of packethost/pkg/log that returns from Error if error is nil.
How Has This Been Tested?
Ran locally in dev testing. Will be tried in lab/staging.
How are existing users impacted? What migration steps/scripts do we need?
No panics due to syslog messages.

@jacobweinstock good call on the loggerFuncs, I uh couldn't help myself and needed to make the other maps go away too, PTAL.


Child posts field on upload_bvas contains a comma with only one entry

I assume that e621 understands commas between child posts as a separator indicator. However, a new user may misinterpret its default inclusion as an oversight and manually remove it from the "Children" field every time. If possible, I would advise to remove the comma when only one child post is present to prevent requiring an assumption or additional research.

In fact, the code extracts out groups of numbers from the field. You could use any (non number) separator you desire. But yes, removing the initial comma may help reduce confusion about how that field works.

The issue is no longer relevant because of the change to the BVAS page.


Easy opt-out link

Add opt-out link to private note

@imsickofmaps Please review.

minor fix then :+1: when travis happy


modelmatcher changes

@lucianli123 You should rebase this change on the master branch, it contains the latest 1.4.1 release. I can help you out if you have merge issues.


Make menu title background same as dropdown upon hover

Ties the menu item more closely with the dropdown:

We were discussing about removing the top menu bar all together and relocate the actions closer to the context where they apply. For instance, create would be a + icon in the scene graph

That sounds cool but this can still apply until that work is complete.


Harmonize early return for pass! and fail!

Currently pass! does not early return from a Command, while fail! does early return.
These should have the same semantics.
Consider using Fibers to implement the pass and fail machinery.

Fibers are one way, but typically I think they're used for sequence types, not early exit.
What if you used return the normal way, but required that you return the CommandResult type, with a convenient method for building that type: fail and pass. I remember there potentially being some issue with this, but I don't remember what issue.
This allows you to use existing language semantics.
Another thing that this could do is allow you to use Exceptions a bit more broadly for failure cases.  Catch all Exception decendents and wrap them into Failure CommandResult. If they aren't Slayable (working name) then add a stack trace, allow a hook for reporting the bug, and return an UnexpectedCommandResult. If they are Slayable then you just return the Slayable.result method.
The types and whatever are all a bit non-ruby, but they communicate the idea well. It'd probably be responds_to? :result.

@Crisfole I think this is a strong critique and has mostly pulled me around to the "just use return statements way of thinking". Especially when the only serious argument for early-return pass!/fail! was:
# It's a lot nicer to type:
fail! status: :not_found
# Rather than
return fail! status: :not_found

By chance, I was just playing another item we had (converting services to use Result machinery), and I realized that the Fiber implementation unlocked something that was pretty powerful (stolen pretty directly from how Rust does error handling).
When we're composing Result, often we have the pattern: If the thing I called failed, then I should fail. If the thing I called succeeded, then I should capture it's value and continue executing.
With Fibers we can implement something like that really nicely by adding a third method try! that does just that.
def ComplexUserCommand < Slayer::Command
  def call(...)
    # ... omitted

    transaction do

      # ... omitted

      user = try! { UserService.find_most_relevant_user(form.search) }

      # ...omitted

    end
  end
end

This block will call the UserService to get the most relevant user. If the UserService fails, we will return early at this point, using the error information from the UserService result. If it passes, then we will capture the returned user and continue execution.
(My implementation also allows you to optionally override pieces of the result code)
user = try!(status: :not_found) { UserService.find_most_relevant_user(form.search) }

This will use the UserService result's values for failure, except it will overwrite :status with :not_found.
I'm absolutely not married to this implementation (it was all written waaaay too late at night), so it's really just a POC. I don't mind tossing it out.
That being said, I can't think of an elegant way to implement this without an early return mechanism. Without that, it becomes something like:
result = UserService.find_most_relevant_user(form.search)
return result if result.failure?
user = result.value

I realize this is fundamentally the same "syntactic sugar" argument as before, but I think it's a lot stronger of an argument now for two reasons:

With services also returning results, we'll be doing a lot more result handling
Each individual piece of syntactic sugar is now...sugarier(?). It's more powerful.

Still, I'm very open to thoughts. As an aside, a lot of this is coming from Rust's error handling concepts, which turned out to be very similar to what we were doing in Slayer by chance. Result and Result blocks were all developed fairly independently from Rust concepts, but as I was playing with Rust I realized how similar it was, and that's where I stole the idea for the try! shorthand method (https://doc.rust-lang.org/book/error-handling.html).
Is there a non early return idiom that I'm missing that can make try! unnecessary? Other thoughts?

Proof of concept pull requests:
Command Fibers: https://github.com/apsislabs/slayer/pull/40
Service Result Values: https://github.com/apsislabs/slayer/pull/41

As suggested by @Crisfole in chat, probably best to implement with exceptions (not fibers) with the following method set:
def pass # does't halt execution
def fail    # doesn't halt execution
def fail!   # halts execution with ResultFailureError
def try!   # _may_ halt execution with ResultFailureError

Proposed fix in https://github.com/apsislabs/slayer/pull/43

This discussion happened elsewhere, but I'm generally in favor of the proposed solutions here. I'm still looking for a method name I like as much as fail (as @ncallaway mentioned, we can't use that because it's a Ruby builtin).
I also feel like we don't need a mirror pass method that halts execution, as I think it's pretty defensible to say that commands realistically pass in one way, and that passing should be the last thing they do — thereby implicitly returning the pass call at the end of the function.
I think Rails also sets us up nicely with the ! version of fail halting execution, as the ! version of all ActiveRecord finders raise exceptions.

Closed by https://github.com/apsislabs/slayer/pull/43


Workspace Trust popup monospace font should inherit editor's

Should we? I know we do that for hovers and stuff but that's close to the code. We don't do that in the settings editor for example and this feels similar.


bottomSheet  not disposing controller when they are closed

Description
Get.bottomSheet not calling OnClose
Reproduction code
void main() => runApp(MaterialApp(home: Home()));

class Home extends StatelessWidget {
  @override
  Widget build(context) => Scaffold(
        appBar: AppBar(title: Text("Demo")),
        body: Center(
          child: GestureDetector(
            child: Text('open Modal'),
            onTap: () => Get.bottomSheet(ModalWidget()),
          ),
        ),
      );
}

class ModalWidget extends StatelessWidget {
    final ModalWidgetController controller = Get.put(ModalWidgetController());
  @override
  Widget build(BuildContext context) {
    return Container(
      color: Colors.red,
      height: 300,
      width: double.infinity,
      child: Text('super cool text!'),
    );
  }
}

class ModalWidgetController extends GetxController {
  @override
  void onInit() {
    print('onInit');
    super.onInit();
  }

  @override
  void onClose() {
    print('onClose');
    super.onClose();
  }
}

To Reproduce

click on 'open Modal';
a red modal should appear;
a 'onInit' print should appear on console;
click away from the red modal, this should close the red modal;
the onClose was not called;

Expected behavior
Call onClose on the controller, and then dispose the controller
Flutter Version:
Flutter 1.22.4 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 1aafb3a8b9 (4 months ago) • 2020-11-13 09:59:28 -0800
Engine • revision 2c956a31c0
Tools • Dart 2.10.4

Getx Version:
tested on 3.25.6 and 3.23.1
Describe on which device you found the bug:
Pixel 2 (API27)

Instead putting this line:
final ModalWidgetController controller = Get.put(ModalWidgetController());
You can try to use the GetX widget for initiate your controller.

Or you can even use the GetView abstract class for instantiate your controller aswell

Please try both approach and tell me if still don't work

Hey,
first attempt does not work because i'm not using any observable variable:
[Get] the improper use of a GetX has been detected.You should only use GetX or Obx for the specific widget that will be updated.If you are seeing this error, you probably did not insert any observable variables into GetX/Obx
class ModalWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return GetX<ModalWidgetController>(
      init: ModalWidgetController(),
      builder: (_) => Container(
        color: Colors.red,
        height: 300,
        width: double.infinity,
        child: Text('super cool text!'),
      ),
    );
  }
}
class ModalWidgetController extends GetxController {
  @override
  void onInit() {
    print('onInit');
    super.onInit();
  }
  @override
  void onClose() {
    print('onClose');
    super.onClose();
  }
}

and the second try, the onInit and onClose is not even called :
class ModalWidget extends GetView<ModalWidgetController> {
  @override
  Widget build(BuildContext context) {
    return  Container(
        color: Colors.red,
        height: 300,
        width: double.infinity,
        child: Text('super cool text!'),
    );
  }
}
class ModalWidgetController extends GetxController {
  @override
  void onInit() {
    print('onInit');
    super.onInit();
  }
  @override
  void onClose() {
    print('onClose');
    super.onClose();
  }
}

thx for the workaround!
but the Get.bottomSheet() not disposing the controller still a issue? or this behavior is expected?

thx for the workaround!
but the Get.bottomSheet() not disposing the controller whitout GetX<Controller> still a issue? or this behavior is expected?

Just the same quastion I have. It is a bug that bottomsheet doesn't dispose its controller whether you make it using persistent: false or not .

I struggled with this until I found this. If you Put or Find your ModalWidgetController as variable of the StatelessWidget itself, it won't dispose, but if you put it inside the build method, it works absolutely fine for me. Hope this helps.


Use staging k8s.io/kubelet/cri/streaming package

cri streaming package from kubelet moved to k8 staging so that it can be used my container runtime
https://github.com/kubernetes/kubernetes/pull/118253
This PR removes the containerd own package and use the K8s staging one

Interesting (positive) impact on k8s dependency imports in the diffstat: +7,628 −32,069!!
Looks like we get to drop api and api-server from containerd.

/ok-to-test


Add support for Jobs api v21

@samshuster I added "v21" for conflicting classes while leaving non-conflicting with the default naming schema. Please review and tell me what you think

Oh wow yep I didn't realize the extent of classes that would need to be created with this. Thanks for doing it.
Overall, I think I am ok with going this route, but I wonder if separating by package might be cleaner in the long run (especially after the legacy service/dtos are removed at some point far from now).
so for example com.edmunds.rest.databricks.DTO.v21.*
And then removing the v21 from the DTO class names themselves
Pros:

For teams that only use one or the other, could be cleaner
When eventually old Job stuff is deprecated, aren't stuck with v21 in class name at least.

Cons:

If team needs to use both, there will be conflicts that would have to be solved by full package qualification.

What are your thoughts? And sorry I didn't think about this other option before you did all of this.

@samshuster I spent about 2 hours thinking of what would be the best way to do it.
My options were:

Having package names like ...DTO.v21.* -> but this would end in also having ....service.v21.*, and also fully qualified names in many files that use both, and many APIs already use combinations of old and new DTOs

Having package like ...v21.DTO.* -> but this would make a non-logical approach since many v21 APIs use classes outside of the v21 package

Having all files in one folder, adding v21 to class names - this (in my opinion) sends a clear message of what API is used, and you could say that we add v21 in test mode) and you can do a release with a minor version update, and after some time, when all possible issues are fixed, you can do a major version (breaking change) update saying jobs v2.0 is deprecated and renaming all v21 to normal names. Since you are a maintainer, I will leave the final decision to you :) I am ok with either.

My main thought is do you intend do keep .v21. in package name forever ? If no - then anyway at some point you will have to make a release with renaming => breaking changes. If yes, it will create an awkward situation when future releases (lets say v2.2) will use some objects from v21 and from v20, and so on resulting in some very mixed class usage.
WDYT?

ok thanks for the write up. Definitely a tricky situation we are in. Lets go ahead and proceed with v21 in the class names like you have now. I am going to take another look over, but most likely I will be able to merge this in today. I will raise middle version for the release.

btw, seems like edmunds.com sells  cars. Is it still your site?

@samshuster btw, seems like edmunds.com sells cars. Is it still your site?

@samshuster btw, seems like edmunds.com sells cars. Is it still your site?

Hey yeah I still work for Edmunds which owns edmunds.com


Verify organization domain

Let's get a verified icon like other AWS organizations for https://opensearch.org?
https://docs.github.com/en/organizations/managing-organization-settings/verifying-your-organizations-domain

Love it. I believe this might be slightly complicated due to the indirect management of the organization but do-able.

@peterzhuamazon Do you anticipate any blockers on the TXT record?

I will take this over.

Looks like this is now solved. Horray!


Why do I get "jwt is missing" when the method of HTTP mismatched

I'm using Envoy as the gateway of my backend micro-services. The requests of clients are HTTP and I'm trying to use jwt and rbac to acess or deny the requests. Here is the config of my Envoy:
      filters:
      - name: envoy.filters.network.http_connection_manager
        typed_config:
          "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
          stat_prefix: ingress_https
          codec_type: AUTO
          upgrade_configs:
          - upgrade_type: websocket
          http_filters:
          - name: envoy.filters.http.jwt_authn
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication
              providers:
                remote_jwt_provider:
                  remote_jwks:
                    http_uri:
                      uri: http://<IP_ADDRESS>:11223/security/jwks
                      cluster: jwt_dev_service
                      timeout: 3s
                    cache_duration:
                      seconds: 300
                  forward: true
                  from_headers:
                  - name: Authorization
                    value_prefix: "Bearer "
                  payload_in_metadata: jwt_payload
              rules:
                - match:
                    prefix: "/"
                  requires:
                    provider_name: remote_jwt_provider
          - name: envoy.filters.http.rbac
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.filters.http.rbac.v3.RBAC
              rules:
                action: ALLOW
                policies:
                  "loginUser":
                    permissions:
                      - any: true
                    principals:
                      - metadata:
                            filter: envoy.filters.http.jwt_authn
                            path:
                              - key: jwt_payload
                              - key: role
                            value:
                              string_match:
                                exact: "loginUser"
          - name: envoy.filters.http.compressor
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.filters.http.compressor.v3.Compressor
              compressor_library:
                name: text_optimized
                typed_config:
                  "@type": type.googleapis.com/envoy.extensions.compression.gzip.compressor.v3.Gzip
          - name: envoy.filters.http.router
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
          route_config:
            name: local_route
            virtual_hosts:
            - name: local_service
              domains: ["www.example.com:*"]
              typed_per_filter_config:
                envoy.filters.http.jwt_authn:
                  "@type": type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.PerRouteConfig
                  "disabled": true    # disable jwt
                envoy.filters.http.rbac:
                  "@type": type.googleapis.com/envoy.extensions.filters.http.rbac.v3.RBACPerRoute    # disable rbac
              routes:
              - match:
                  prefix: "/"
                  headers:
                  - name: ":method"
                    safe_regex_match: { google_re2: {}, regex: "GET|POST" }    # oops, DELETE is missing
                route:
                  cluster: my_cluster

As you see, I disabled jwt and rbac with the config typed_per_filter_config.
Now, when a client sends a request to Envoy, the client will get the error: jwt is missing. This error message does confuse me. As my understanding, I don't think Envoy should check jwt anymore as I have disabled jwt.
The real problem is that the request used the method DELETE. So I should add DELETE in the regex: safe_regex_match: { google_re2: {}, regex: "GET|POST|DELETE" }.
So I think it should tell me something like "method mismatched", instead of jwt is missing.

Is this your complete configuration? It looks Envoy matched a different route that did not have jwt disabled.

@yanavlasov  Here is the complete configuration of Envoy:
static_resources:
  listeners:
  - name: listener_common_https
    address:
      socket_address: *common_ingress_https_addr
    listener_filters:
    - name: envoy.filters.listener.tls_inspector
      typed_config:
        "@type": type.googleapis.com/envoy.extensions.filters.listener.tls_inspector.v3.TlsInspector
    filter_chains:
    - filter_chain_match:
        transport_protocol: raw_buffer
      filters:
      - name: envoy.filters.network.http_connection_manager
        typed_config:
          "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
          stat_prefix: ingress_https
          common_http_protocol_options:
            idle_timeout: 3600s
          request_timeout: 200s
          http_filters:
          - name: envoy.filters.http.compressor
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.filters.http.compressor.v3.Compressor
              compressor_library:
                name: text_optimized
                typed_config:
                  "@type": type.googleapis.com/envoy.extensions.compression.gzip.compressor.v3.Gzip
          - name: envoy.filters.http.router
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
          route_config:
            name: local_route
            virtual_hosts:
            - name: local_service
              domains: ["www.example.com:*"]
              routes:
              - match:
                  prefix: "/"
                redirect:
                  https_redirect: true
    - filter_chain_match:
        transport_protocol: tls
      filters:
      - name: envoy.filters.network.http_connection_manager
        typed_config:
          "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
          stat_prefix: ingress_https
          codec_type: AUTO
          common_http_protocol_options:
            idle_timeout: 3600s
          request_timeout: 1200s
          upgrade_configs:
          - upgrade_type: websocket
          http_filters:
          - name: envoy.filters.http.jwt_authn
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication
              providers:
                remote_jwt_provider:
                  remote_jwks:
                    http_uri:
                      uri: http://<IP_ADDRESS>:11223/security/jwks
                      cluster: jwt_dev_service
                      timeout: 3s
                    cache_duration:
                      seconds: 300
                  forward: true
                  from_headers:
                  - name: Authorization
                    value_prefix: "Bearer "
                  payload_in_metadata: jwt_payload
              rules:
                - match:
                    prefix: "/"
                  requires:
                    provider_name: remote_jwt_provider
          - name: envoy.filters.http.rbac
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.filters.http.rbac.v3.RBAC
              rules:
                action: ALLOW
                policies:
                  "loginUser":
                    permissions:
                      - any: true
                    principals:
                      - metadata:
                            filter: envoy.filters.http.jwt_authn
                            path:
                              - key: jwt_payload
                              - key: role
                            value:
                              string_match:
                                exact: "loginUser"
          - name: envoy.filters.http.compressor
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.filters.http.compressor.v3.Compressor
              compressor_library:
                name: text_optimized
                typed_config:
                  "@type": type.googleapis.com/envoy.extensions.compression.gzip.compressor.v3.Gzip
          - name: envoy.filters.http.router
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
          route_config:
            name: local_route
            virtual_hosts:
            - name: local_service
              domains: ["www.example.com:*"]
              typed_per_filter_config:
                envoy.filters.http.jwt_authn:
                  "@type": type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.PerRouteConfig
                  "disabled": true
                envoy.filters.http.rbac:
                  "@type": type.googleapis.com/envoy.extensions.filters.http.rbac.v3.RBACPerRoute
              routes:
              - match:
                  prefix: "/report"
                route:
                  cluster: cluster_report_https
              - match:
                  prefix: "/sso/"
                  headers:
                  - name: ":method"
                    safe_regex_match: { google_re2: {}, regex: "GET|POST|PUT" }
                route:
                  cluster: cluster_sso_https
              - match:
                  prefix: "/h5/"
                route:
                  cluster: cluster_static_resources_https
              - match:
                  prefix: "/attend/"
                  headers:
                  - name: ":method"
                    safe_regex_match: { google_re2: {}, regex: "GET|POST|DELETE" }    # DELETE was missing
                route:
                  cluster: cluster_common_https

The config above will redirect http://www.example.com to https://www.example.com. And the domain name of all requests is www.example.com.
In my real case, I just tried to access https://www.example.com:80/attend/xxxx?xxx=xxx but I got the error: jwt is missing.
I don't think it could be routed to another route as the domain name is unique in my config file. And I configured typed_per_filter_config to disable the jwt for all of requests with the same domain name www.example.com.
BTW, I just tried to modify prefix: "/attend/" to an illegal prefix prefix: "/nonexist/" and I got the same error: jwt is missing.

@yanavlasov   https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/http/rbac/v3/rbac.proto#extensions-filters-http-rbac-v3-rbacperroute
As my understanding, leaving the config absent would disable RBAC per route.
              typed_per_filter_config:
                envoy.filters.http.jwt_authn:
                  "@type": type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.PerRouteConfig
                  "disabled": true
                envoy.filters.http.rbac:
                  "@type": type.googleapis.com/envoy.extensions.filters.http.rbac.v3.RBACPerRoute    # disable RBAC, right?

If I'm right, I think I have disabled RBAC... I kind of doubt that this might be some bug of Envoy...


qa_crowbarsetup: use 9GB flavor

this is a partial revert of commit d52cd69c7
We found that a Hyper-V compute node would refuse
to start an 8GB image in an 8GB flavor
being off by 472 KB - possibly for some metadata
exact error message was:
HyperVException: Cannot resize the image to a size smaller than the VHD max. internal size:<PHONE_NUMBER>. Requested disk size:<PHONE_NUMBER>

The reason I reduced the flavor size last time was because we observed some errors when spawning instances (no host found). This was caused because there was no space in any compute node to actually spawn the VM. The lack of space is due to some base image leftovers on the compute node after deleting an image. If you create/destroy several VMs from different images, that error is more likely to appear.
I'm ok with setting the flavor to 9GB if the CI gives us green light. Otherwise we may want mkcloud to create bigger volumes for the compute nodes.

:+1: in general for the simple fix (erm workaround) but this feels to be more hyperv related, as 8GB should be 8GB and hyperv should account for the metadata
I agree with abel that we need to carefully monitor the results of this change though. It might have unwanted side effects as we allocate 1GB for just 472kB.
What about reducing the size of our 8GB image to 7.9GB? That should fit into and 8GB VHD, right? That does not solve the actual problem either but is a workaround with less side effects. Just an idea.

for reference, upstream code that does the size checking (changed in master)
http://git.openstack.org/cgit/openstack/nova/commit/?id=af737b9529ed64eb66560045a36fd82fdce3ac6b

LGTM


Seurat v3 HVG method

Fixes #993.
This is an approximate implementation of the Seurat v3 hvg method. The only difference should be the use of lowess instead of loess (which is not available in python as far as I know).
This method takes the UMI counts as input. The way HVGs from batches are merged is also different from the other flavors. As such, I didn't see a straightforward way to integrate this in the existing HVG code.

Please let me know if you have any recommendations @ivirshup !

Thanks for the review. I will add the other requested changes/additions soon.

@ivirshup I added a custom implementation of loess, which uses a degree 2 polynomial (closer to seurat implementation). It's a bit slow, I'm sure it can be sped up with numba, but it's having a problem with this line:
https://github.com/adamgayoso/scanpy/blob/b48d5729a075bc6f7fa0bbbf38a856d4c2e720ba/scanpy/preprocessing/_highly_variable_genes.py#L607
Any idea why?

I'm also not sure why the test is failing -- it works interactively locally for me.

@ivirshup is it possible that Travis has cached pbmc3k and that's what's causing the error? I really don't have it running pytest locally either.
Also as far as the code review -- I understand code is duplicated, but this code does not really fit in the existing implementation because it works a bit differently and requires raw data. Let me know how you'd like to address this.
Thanks!

This got a bit messy -- travis is defeating me because the tests work locally. I'm going to close this and figure it out on my fork and make a new PR with a clean history.

Sorry for the lack of feedback! I got caught up in my own work.

Have you made any progress on the travis issue?
Is it an issue of getting different results from computing variance?

No worries - I really can't tell what the issue is since it works perfectly fine locally. My sense now is that
mean, var = _get_mean_var(adata[batch_info == b].X)
not_const = var > 0

is not working properly on travis because based on this method, if the regularized std is 1, which occurs when it's constant, the new variance would just be the same as in the variances column of the df, which is what's happening on travis.

Hey @adamgayoso ,
I really love this HVG method, but sometimes I get the following error from the loess fit:
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-244-764977f87ce6> in <module>
----> 1 sc.pp.highly_variable_genes(ad_sub, n_top_genes=1500, flavor='seurat_v3', layer='counts')
      2 sc.pp.pca(ad_sub)
      3 sc.pp.neighbors(ad_sub)
      4 sc.tl.umap(ad_sub)
      5 sc.tl.leiden(ad_sub, resolution=2.0)

~/.miniconda3/lib/python3.8/site-packages/scanpy/preprocessing/_highly_variable_genes.py in highly_variable_genes(adata, layer, n_top_genes, min_disp, max_disp, min_mean, max_mean, span, n_bins, flavor, subset, inplace, batch_key)
    413
    414     if flavor == 'seurat_v3':
--> 415         return _highly_variable_genes_seurat_v3(
    416             adata,
    417             layer=layer,

~/.miniconda3/lib/python3.8/site-packages/scanpy/preprocessing/_highly_variable_genes.py in _highly_variable_genes_seurat_v3(adata, layer, n_top_genes, batch_key, span, subset, inplace)
     82         x = np.log10(mean[not_const])
     83         model = loess(x, y, span=span, degree=2)
---> 84         model.fit()
     85         estimat_var[not_const] = model.outputs.fitted_values
     86         reg_std = np.sqrt(10 ** estimat_var)

_loess.pyx in _loess.loess.fit()

ValueError: b'reciprocal condition number  7.4971e-16\n'

This is due to the very low but non-zero variance genes, I think. It goes away when I run sc.pp.filter_genes(ad_sub, min_cells=5) but not when I run only sc.pp.filter_genes(ad_sub, min_cells=1).
Maybe we can make the variance check more stringent, or we can print a better error message for the users?


Floppy support

Hi,
Is this a USB floppy adaper?
Is it both read and write?
Does it support 5.25 floppy disks?

It is a USB floppy adapter but with a custom protocol and custom low-level read/write software supplied. It is not a "USB drive" in the sense you can connect a floppy drive and have it show up in Windows File Explorer (for example).

Please update the project description to avoid answering people like me :)
Now I get it. Great project!!! As a retro enthusiast I would like to write disk images directly from my Windows 10 PC to a 5.25 floppy. Actually you can give this as an example in the description.


Make sure the dependencies model supports no version

There are cases where the version is going to be set by a platform so you
effectively don't want to use a version (e.g, jupiter-engine).

@bot-gradle test this

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

@bot-gradle test this

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


Can't find Sign. location: com.kickstarter.libs.utils.Secrets

    Has anyone run it in Win ? I solved the problem about how to run "./script/bootstrap", but..New problems have emerged, I can't find sign(Maybe "symbol") .

error: can't find sign class: Secrets location: com.kickstarter.libs.utils.Secrets

There is no path "https://github.com/kickstarter/native-secrets vendor/native-secrets", I can't clone it from your github

My English is poor, The solution is complicated, I was worried about misrepresentation, use Chinese, you can use Google Translate.
折腾半天, 我来说一下全部的踩坑过程.
第一步, 安装软件. http://railsinstaller.org/en ;
第二步, 检测环境. 检测 ruby 和 bundle 的环境是否安装好了. 打开 cmd, 运行 "ruby -v" 和 "rails -v".后者可能报错.如果报错, 找到 rails.bat 文件, 替换全部内容, 详见 https://stackoverflow.com/questions/35545361/rails-the-system-cannot-find-the-path-specified ;
第三步, 在项目的根目录下执行 "./scritp/bootstrap" 和 "./script/bootstrap_configs" ;
第四步, 再次 build 项目, 可能还会报错, 我的报错是 "找不到符号 Secrets", 方法很简单, 直接找到 "Secrets.java.example"这个文件, 重命名为 "Secrets.java", 再次 build ,就可以运行啦 ~


backport to 1.14: tls: fix detection of the upstream connection close event. (#13858)

Commit Message:
backport to 1.14: tls: fix detection of the upstream connection close event. (#13858)
Fixes #13856.

Thanks, @PiotrSikora would you be able to do a review pass?

Thanks, @PiotrSikora would you be able to do a review pass?

@PiotrSikora Can you review this one, please? Thanks!

@PiotrSikora Can you review this one, please? Thanks!


Allow enabling logging for embedding models separately from the main models

For testing the integrations with ChatGPT and other models, it is quite helpful to activate the request/response logging for the model interactions. However, this also activates the logging for the embedding models. Thus, when a document is important, the log is directly spammed with a the request and response to the embedding model, which contains huge vectors and thus spamms the logs.
It would be great to be able to activate request/response logging for the embedding separately from the main model.

I think enabling logging per model makes sense.

https://github.com/quarkiverse/quarkus-langchain4j/pull/200 takes care of this


Refactored Function<T,Integer> to ToIntFunction

Hello,
I am a graduate student at Oregon State University and as a part of my research and subject CS562 Applied Software Engineering project (Study and Refactoring of Functional Interface in Java), I have done refactoring of the Function<T,Integer> to ToIntFunction.  My project deals with the boxing and unboxing of Wrapper class and the primitive data-types. I want to know that whether the open source community is ready to accept these micro-optimizing refactorings or not.
Thank you,
Harsh Thakor

Hi Harshraj - this would be a great question for the<EMAIL_ADDRESS>mailing list. Generally speaking such optimizations would be appreciated as long as it matches code style and doesn't break published interfaces/APIs.

Hello,
As a follow up to this pull request, I have sent an email on  the mentioned mailing list.
'AutoBoxing overhead in lambda expressions '
Ameya Ketkar


fix(paeckchen-core): externals should be converted

externals defined as 'false' should be converted to boolean

Coverage remained the same at 100.0% when pulling cc2fedf75589a0f159a96b314c75d5cc2d4eeab9 on core/config-convert-booleans into 945fe293130fc531333f7d7a247a57fc05e7b4f3 on master.


AnxOrderBook (ANXDepth) timestamp

Looking at the ANX response to an order book query there are 3 possible timestamps that come back.  None of which are documented.  They are:

dataUpdateTime
now
cached

We use the code uses the one called now.  Does anyone know why, or what any of them mean?
I'm basically trying to figure out when the order book was last updated.

Not sure. Now seems like the one to use, as it's when the server returned the json I presume.


Update mocha to 7.0.0 & an alternative custom reporter to mocha-multi

Issue

Our tests depend on mocha test runner and a plugin mocha-multi to make use of multiple reporters
mocha-multi library doesn't support<EMAIL_ADDRESS>latest(released a couple months ago).
Upgrade to<EMAIL_ADDRESS>would mean that we can't take dependence on mocha-multi library
https://github.com/glenjamin/mocha-multi/issues/68

Solution

mocha-multi is being used to plug in multiple reporters(spec and junit-reporters specifically) during the test runs
Build a custom mocha reporter and not rely on mocha-multi to allow<EMAIL_ADDRESS>upgrade

Changes in this PR

Added a new custom mocha reporter under common/tools/ that invokes spec and mocha-junit-reporter (and consequently getting rid of the dependence on mocha-multi)
Updated the test-scripts in package.json for all the SDKs to use this new reporter instead of relying on mocha-multi

OLD: --reporter mocha-multi --reporter-options spec=-,mocha-junit-reporter=-"
NEW: --reporter ../../../common/tools/mocha-multi-reporter.js

Removed mocha-multi from the devDependencies for all the SDKs in the repo
Removed "ts-mocha": "^6.0.0" for event-hubs which was also causing issues with<EMAIL_ADDRESS>
(I think ts-mocha was used previously(long back) to run the tests for event-hubs)

Updated mocha to v7.1.1
Updated pnpm-lock file

Closed in favor of #7931 which has more details


AF-546: Reduce startup time of AppFormer apps and workbenches

Replace @AfterInitializations with @PostConstructs.
(Allows RPC calls to be combined into a single playload.)

Relates to:

https://github.com/errai/errai/pull/267
https://github.com/AppFormer/uberfire/pull/751
https://github.com/kiegroup/guvnor/pull/464
https://github.com/kiegroup/kie-wb-common/pull/937
https://github.com/kiegroup/drools-wb/pull/533
https://github.com/kiegroup/jbpm-form-modeler/pull/117
https://github.com/kiegroup/kie-wb-distributions/pull/542
https://github.com/kiegroup/optaplanner-wb/pull/181
https://github.com/kiegroup/appformer/pull/88
https://github.com/kiegroup/jbpm-wb/pull/764

The dashbuilder showcase does not work after these changes.. It throws an exception during client code initialization. See screenshots:

@mbarkley Any idea?

@dgutierr Did you build Errai and UberFire (branches in the linked PRs) before testing this?
I encountered that problem during development and it should be fixed.

@dgutierr Wainting for you to be happy before merging into your repository.

@manstis @porcelli @dgutierr Looks like everyone has approved this now. Can one of you please merge?


MAINT: remove deprecation warning for **kwargs

This PR removes the deprecation warning for **kwargs, hence making it a feature that will stay.

ccing @stsievert

Codecov Report

Merging #198 (0dcc8eb) into master (e36f03f) will decrease coverage by 0.46%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #198      +/-   ##
==========================================
- Coverage   99.70%   99.23%   -0.47%
==========================================
  Files           6        5       -1
  Lines         669      652      -17
==========================================
- Hits          667      647      -20
- Misses          2        5       +3

Impacted Files
Coverage Δ

scikeras/wrappers.py
99.42% <ø> (-0.01%)
:arrow_down:

scikeras/_saving_utils.py
96.20% <0.00%> (-3.80%)
:arrow_down:

scikeras/__init__.py

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 e36f03f...66100ca. Read the comment docs.

Hm... I think this is a judgement call.
I think having Keras compatibility is a core feature of this library. But this library also tries to bring the Scikit-learn API to Keras models, and the Scikit-learn API says fit/etc should only accept data-dependent arguments (not batch_size/etc).
If I were developing this library, I think I'd keep an error message but remove all specific version info (and maybe reword the message a bit to warn about the API difference).

Let me try some rewording instead of removal and let's see how it looks.

Here's the new proposed warning:
Use of `**kwargs` for `fit` is not fully supported by the sklearn API.  Instead, set fit arguments at initialization (i.e., `BaseWrapper(fit__batch_size=32)`)

I also added a break so that only 1 kwarg is warned against each time fit/predict is called.

I also added a break so that only 1 kwarg is warned against each time fit/predict is called.

Eh, the goal of this warning is to encourage changing behavior. Making the warnings extra annoying for multiple arguments is a good way to do that. Or, you could consolidate the message:

Only keyword arguments that depend on the data X and y should be passed to fit. The keyword arguments batch_size, verbose should be set via the parameters fit__batch_size/batch_size, fit__verbose/verbose. This can be done via set_params or at initialization with BaseWrapper(..., fit__batch_size=32, fit__verbose=False).

Point noted, thanks for the feedback. Let me try another revision.

Style nit: here's some rewording I would do around the warning (more lines, reorganizing words for **kwargs):

Incorporated for the most part

@stsievert  could you take a look at the unresolved comments? Thanks

Thanks for this last review @stsievert . I think this is ready.


[SPARK-14353] Dataset Time Window window API for R

What changes were proposed in this pull request?
The window function was added to Dataset with this PR.
This PR adds the R API for this function.
With this PR, SQL, Java, and Scala will share the same APIs as in users can use:

window(timeColumn, windowDuration)
window(timeColumn, windowDuration, slideDuration)
window(timeColumn, windowDuration, slideDuration, startTime)

In Python and R, users can access all APIs above, but in addition they can do

In R:
window(timeColumn, windowDuration, startTime=...)

that is, they can provide the startTime without providing the slideDuration. In this case, we will generate tumbling windows.
How was this patch tested?
Unit tests + manual tests

Test build #54819 has started for PR 12141 at commit 9c63aeb.

Test build #54819 has finished for PR 12141 at commit 9c63aeb.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/54819/
Test PASSed.

Merged build finished. Test PASSed.

@brkyvz LGTM, only one minor comment.

Test build #54917 has started for PR 12141 at commit 215e708.

@davies Addressed your comment

Test build #54917 has finished for PR 12141 at commit 215e708.

This patch fails MiMa tests.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/54917/
Test FAILed.

Merged build finished. Test FAILed.

Retest this please
On Apr 4, 2016 6:09 PM, "UCB AMPLab"<EMAIL_ADDRESS>wrote:

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/54917/
Test FAILed.
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/apache/spark/pull/12141#issuecomment-205570278

retest this please

Test build #54930 has started for PR 12141 at commit 215e708.

Test build #54930 has finished for PR 12141 at commit 215e708.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/54930/
Test PASSed.

Test build #54934 has started for PR 12141 at commit 55c6925.

Test build #54934 has finished for PR 12141 at commit 55c6925.

This patch fails SparkR unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/54934/
Test FAILed.

Test build #54938 has started for PR 12141 at commit f43c138.

Test build #54938 has finished for PR 12141 at commit f43c138.

This patch fails SparkR unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/54938/
Test FAILed.

Test build #54946 has started for PR 12141 at commit 09ab9a3.

Test build #54946 has finished for PR 12141 at commit 09ab9a3.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/54946/
Test PASSed.

Merged build finished. Test PASSed.

Test build #54953 has started for PR 12141 at commit 37f013f.

Test build #54953 has finished for PR 12141 at commit 37f013f.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/54953/
Test PASSed.

Merged build finished. Test PASSed.

LGTM, merging into master.


@conda-forge-admin, please add user @amalota

Hi! This is the friendly automated conda-forge-webservice.
I just wanted to let you know that I added user @amalota in conda-forge/git-machete-feedstock#27.


Trigger the format command and nothing happens

Neovim version (nvim -v)
NVIM v0.10.2
Operating system/version
ubuntu22.04
Output of :checkhealth guard
guard: require("guard.health").check()

Executable check ~
- OK codespell found
- WARNING It seems that mason.nvim is installed,in which case checkhealth may be inaccurate. Please add your mason bin path to PATH to avoid potential issues.
- WARNING It seems that mason.nvim is installed,in which case checkhealth may be inaccurate. Please add your mason bin path to PATH to avoid potential issues.
- OK black found
- OK isort found
- OK docformatter found
- OK flake8 found
- WARNING It seems that mason.nvim is installed,in which case checkhealth may be inaccurate. Please add your mason bin path to PATH to avoid potential issues.

Output of :Guard info
# Guard info (press Esc or q to close)
## Settings:
- `fmt_on_save`: false
- `lsp_as_default_formatter`: false
- `save_on_fmt`: false

## Current buffer has filetype python:
- 1 formatter autocmds attached
- 2 linter autocmds attached
- formatters:

{
  args = { "--quiet", "-" },
  cmd = "black",
  stdin = true
}
{
  args = { "-" },
  cmd = "isort",
  stdin = true
}
{
  args = { "-" },
  cmd = "docformatter",
  stdin = true
}

- linters:

{
  args = { "--format", "default", "-", "--stdin-display-name" },
  cmd = "flake8",
  fname = true,
  parse = <function 1>,
  stdin = true
}

How to reproduce the issue
Trigger the format command and nothing happens
Expected behaviour
format my file.
Actual behaviour
nothing happened.
The minimal config used to reproduce this issue.
{
        "nvimdev/guard.nvim",
        -- Builtin configuration, optional
        dependencies = {
            "nvimdev/guard-collection",
        },
    },
---------------------------------------------------
local ft = require('guard.filetype')

-- Assuming you have guard-collection
ft('python'):fmt('black')
    :append('isort')
    :append('docformatter')
    :lint('flake8')

ft('lua'):fmt('lsp')

ft('*'):lint('codespell')

-- Call setup() LAST!
vim.g.guard_config = {
    -- Choose to format on every write to a buffer
    fmt_on_save = false,
    -- Use lsp if no formatter was defined for this filetype
    lsp_as_default_formatter = false,
    -- By default, Guard writes the buffer on every format
    -- You can disable this by setting:
    save_on_fmt = false,
}

vim.api.nvim_set_keymap("n", "<leader>fm", "<cmd>Guard fmt<CR>", { silent = true, noremap = true })

Seems to work on my machine?
https://github.com/user-attachments/assets/38380eec-b3b0-4d32-9b70-0c6392a40c93
Can you show me the output of
which black
which isort
which docformatter
which flake8

?

The output path is in the Mason path.
which black
which isort
which docformatter
which flake8
/home/eugene/.local/share/nvim/mason/bin/black
/home/eugene/.local/share/nvim/mason/bin/isort
/home/eugene/.local/share/nvim/mason/bin/docformatter
/home/eugene/.local/share/nvim/mason/bin/flake8

Did you edit the file ? the format work after changedtick increase.

This is demonstration in my machine, I meet some errors but It seems to have nothing to do with guard plugin.
And I edit the file using some blank lines, trigger Guard fmt command.
https://github.com/user-attachments/assets/f7898765-fa7b-4ad1-9392-50c82060a976

And does :!black "%" work? 🤔

ok there's one last easy problem I can think of, try:
require('guard.util').get_cmd({ cmd = 'black' })

and see if they point to your mason tools.
If that looks ok we have to put print statements inside guard.

I tried the command, the video following:
https://github.com/user-attachments/assets/fcf10ab4-e1ed-499e-ad1f-4253c88959c2
I will also assist in debugging issues to further improve the stability and performance of the plugin.

Erm use vim.print plz

ok，I re-output the result, it seems that the path of black is correct:

ok, let's do this:
Add the following under https://github.com/nvimdev/guard.nvim/blob/main/lua%2Fguard%2Fspawn.lua#L11-L11
vim.schedule(function()
    vim.print(result)
end)

I do this, then what should I do?

This is so weird, the same configuration works fine on my arch computer.

I deleted the configuration using rm -rf ~/.local/share/nvim and reinstalled guard. I found that guard can work normally. Maybe I didn't handle some things correctly before. Anyway, thank you for your careful guidance.

Glad it worked for you!


Doc: Installation using a minikube cluster in Readme

💭 Description
I think we should have a section on installation using the minikube cluster in the Readme.md file. As a minikube user, I myself got some issues and could not install Devtron in the first go using the previously written steps.
There are some steps which are subjected only for a minikube user Eg: for accessing the URL, an external IP address is required with a minikube tunnel in process.
👀 Have you spent some time to check if this issue has been raised before?

[X] I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

If valid, I would like to work on this issue

Hi @Kanika637
We have a separate documentation page for minikube https://docs.devtron.ai/getting-started/install/install-devtron-on-minikube-microk8s-k3s-kind
Is that something you wanted? Do you see some scope to enhance that?

No actually @prakarsh-dt, the documentation is appropriate, I just wanted to have this section in the Readme as well.

Sure, please go ahead. However, please ensure that it's not too loud in the Readme.

Will take care of that @prakarsh-dt.

Have made the PR

Closing this PR. Steps are enhanced and no longer the way they were a year ago.
And closing the linked PR too: https://github.com/devtron-labs/devtron/pull/2566
New PR: https://github.com/devtron-labs/devtron/pull/4477


Adding Indix to the list of adopters

Codecov Report

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

@@            Coverage Diff             @@
##           master     #786      +/-   ##
==========================================
- Coverage   86.67%   86.63%   -0.05%
==========================================
  Files          71       71
  Lines        2282     2282
  Branches       93       93
==========================================
- Hits         1978     1977       -1
- Misses        304      305       +1

Impacted Files
Coverage Δ

...re/shared/src/main/scala/io/circe/JsonNumber.scala
96.03% <0%> (-1%)
:arrow_down:

Continue to review full report at Codecov.

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

Thanks @manojlds!


try again button in update service alert is not correct

Currently the try again button only removes the alert.
Instead we need buttons similar to the new service registration - try again and try new file.

let me do it