Support "&&=" and "||=" operators

Dart defines the following "regular" binary operators *, /, %, ~/, +, -, <<, >>, >=, >, <=, <, ==, &, ˆ, |. By "regular", I mean that they do no short-circuiting and are just syntactic sugar for a regular method call. These can all be implemented by user-defined classes.
It also defines three short-circuiting binary operators ||, &&, and ??. These cannot be overridden and do not desugar to method calls.
The regular operators also have self-assignment forms (except for the comparison operators), +=, -=, etc. It used to be the case that none of the short-circuiting operators did. However, when ?? was added, ??= was too. Given that, there is no good reason to omit ||= and &&=. They are consistent with ??= and—more importantly!—are sometimes useful.
So, to harmonize this, we intend to add ||= and &&= to Dart.
Syntax
We add &&= and ||= to compoundAssignmentOperator in the grammar.
Semantics
The semantics are pretty straightforward. The general vibe is that evaluation is "maximally lazy". A subexpression is evaluated at most once, and only if its result is needed.
To describe the desugaring, we need something akin to a "template language". It's basically Dart syntax, with a couple of extra bits:

C is any identifier that resolves to a type name.
A name starting with e is a placeholder for an arbitrary expression (except for a typename). It gets inserted as-is in the result.
name can be any identifier and is substituted as-is.
bool_convert() invokes the "boolean conversion" procedure in the language spec.

&&=
// An expression like `name &&= e3` desugars to:
(() {
  if (!name) return false;
  return name = bool_convert(e3);
})()

// An expression like `C.name &&= e3` desugars to:
(() {
  if (!C.name) return false;
  return C.name = bool_convert(e3);
})()

// An expression like `e1.name &&= e3` desugars to:
(() {
  var x = e1; // Don't double evaluate e1.
  if (!x.name) return false;
  return x.name = bool_convert(e3);
}())

// An expression like `e1?.name &&= e3` desugars to:
(() {
  var x = e1; // Don't double evaluate e1.
  if (x == null) return null;
  if (!x.name) return false;
  return x.name = bool_convert(e3);
}())

// An expression like `e1[e2] &&= e3` desugars to:
(() {
  var x = e1, y = e2; // Don't double evaluate e1 and e2.
  if (!x[y]) return false;
  return x[y] = bool_convert(e3);
}())

||=
// An expression like `name ||= e3` desugars to:
(() {
  if (name) return true;
  return name = bool_convert(e3);
})()

// An expression like `C.name ||= e3` desugars to:
(() {
  if (C.name) return true;
  return C.name = bool_convert(e3);
})()

// An expression like `e1.name ||= e3` desugars to:
(() {
  var x = e1; // Don't double evaluate e1.
  if (x.name) return true;
  return x.name = bool_convert(e3);
}())

// An expression like `e1?.name ||= e3` desugars to:
(() {
  var x = e1; // Don't double evaluate e1.
  if (x == null) return null;
  if (x.name) return true;
  return x.name = bool_convert(e3);
}())

// An expression like `e1[e2] ||= e3` desugars to:
(() {
  var x = e1, y = e2; // Don't double evaluate e1 and e2.
  if (x[y]) return true;
  return x[y] = bool_convert(e3);
}())

This desugaring has one wrinkle. It doesn't handle cases where the surrounding code is async or a generator since the function literals don't correctly propagate the "async-ness" or "generator-ness". Instead of actual functions, imagine them to be "block expressions" that let you define variables scoped to the expression instead of actually declaring a function, and you'll have the right idea.
Flag
While this is being implemented, to ensure we don't expose users to inconsistency in our tools, it should be put behind a flag named logical-self-assign.
Tracking issues

[ ] Analyzer (#26997)
[ ] dart2js (#26998)
[ ] dev_compiler(https://github.com/dart-lang/dev_compiler/issues/617)
[ ] Formatter (https://github.com/dart-lang/dart_style/issues/515)
[ ] Specification (#26999)
[ ] VM (#27000)
[x] IntelliJ-plugin (#27091)

In An expression like e1[e2] &&= e3 desugars to: and An expression like e1[e2] ||= e3 desugars to: it seems that e2 is evaluated twice.

Oops, fixed!

do we want a DDC bug too? if so it's here: https://github.com/dart-lang/dev_compiler/issues/617

The desugar of e1?.name &&= e3 and e1?.name ||= e3 looks strange to me. Shouldn't it be :
// An expression like `e1?.name &&= e3` desugars to:
(() {
  var x = e1;
  if (x == null) return null;
  var y = x.name;
  if (!y) return y;
  return x.name = e3;
}())

// An expression like `e1?.name ||= e3` desugars to:
(() {
  var x = e1;
  if (x == null) return null;
  var y = x.name;
  if (y) return y;
  return x.name = e3;
}())

I also notice that if e1 = null and e3 = true then e1 = e1 && e3 leads to e1 equals to false but e1 &&= e3 leads to e1 equals to null. Is it intended ?

do we want a DDC bug too? if so it's here: dart-lang/dev_compiler#617

Yes, added it to the list, thanks!

Is it intended ?

Oof, no. Thought it through better and updated the above. This will teach me to put out a proposal before I write tests. :)

I would also expect the rules for &&= to be:
// An expression like `v &&= e3` desugars to:
(() {
  var x = v;
  if (x) return true;
  return v = boolean_conversion(e3);
})()

// An expression like `e1.name &&= e3` desugars to:
(() {
  var x = e1;
  var y = x.name;
  if (y) return true;
  return x.name = boolean_conversion(e3);
}())

// An expression like `e1?.name &&= e3` desugars to:
(() {
  var x = e1;
  if (x == null) return null;
  var y = x.name;
  if (y) return true;
  return x.name = boolean_conversion(e3);
}())

// An expression like `e1[e2] &&= e3` desugars to:
(() {
  var x = e1;
  var y = e2;
  var z = x[y];
  if (z) return true;
  return x[y] = boolean_conversion(e3);
}())

and similar for ||=.
The boolean_conversion function refers to boolean conversion (16.4.1) in the spec, but there isn't currently a syntax for performing that in code.
(As usual, the rewrite using an applied function expression isn't sound (#25858), but it's consistent with the other unsound rewrites in the spec).

The boolean_conversion function refers to boolean conversion (16.4.1) in the spec, but there isn't currently a syntax for performing that in code.

you could write x ? x : x ... although that's a bit of a hacky way to express it :)

The boolean_conversion function refers to boolean conversion (16.4.1) in the spec, but there isn't currently a syntax for performing that in code.

Ah, right. I didn't realize && and || return the boolean conversion of the RHS. (That seems strictly less useful to me than just returning the RHS, but I guess the spec does what it wants.)

We also need a special case for C.name &&= e3 where C is a type name.

Ah, yes. It would be nice to kill that special case by having types evaluate to an object that does have the static members...

We do have a bunch of ways to say this, I think we're just converging on the level of obscurity of presentation that we are ready to accept. See this gist for some variants of the semantic specification. A tricky point is, for instance, how many times can we call the relevant getter and setter? If we wish to fix that to "call the getter exactly once" and "call the setter at most once, and do not call it in the case that corresponds to shortcut evaluation of the underlying operator && and ||" then the presentation gets a bit less readable.

PS: x ? x : x evaluates to the value of x, not the boolean-converted value. ;-)

PS: x ? x : x evaluates to the value of x, not the boolean-converted value. ;-)

(haha, oops. In my head I've already moved on to strong mode/dart2 where a "bool" is actually true, false, or null, so I was just trying to get the cast+assert-non-null ... yeah, in Dart 1 you'd need x ? true : false to get both the assert(x != null) and the identical(x, true) part... anyway, I'll stop sidetracking this bug with my silly comments :) )

One shorthand that could work is, say for v.name &&= e:
  (v.name && (v.name = e))

You still need the temporary variables when the LHS isn't simple, like e1[e2] &&= e3:
  (x = e1)[y = e2] && x[y] = e3

(where x and y are fresh variables).

Why not just have the following rule:
e1 op= e2 is equivalent to e1 = e1 op e2 except that e1 is only evaluated once.
I think this is true for all existing compound assignment operators.

except that e1 is only evaluated once.

That's more or less what the proposal specifies. It's just that saying "e1 is only evaluated once" doesn't precisely capture that fact that it appears in both lvalue and rvalue position and the distinctions between the two.

You will never get x ? true : false through a code review with me :smiling_imp:
Alternatives are x == true which doesn't throw in checked mode, or !!x which does.
That latter is idiomatic in JavaScript, but Dart has rarely needed it because most programs are checked-mode correct.

The reason for lhs &&= rhs not being equivalent to lhs = lhs && rhs is that it's unnecessary to do the assignment when the short-circuit operator bails out. In that case, it will be equivalent to lhs = lhs, and then it's easier to just not do the assignment.
We did the same thing for ??= - if the left-hand operand is null, we don't assign null back to it again.
It gets slightly more complicated because unchecked mode can allow a non-bool left operand to evaluate to false, so lhs = lhs && rhs is bailing out but actually assigning a different (now bool) value back.
Still, the program is bad and the author should feel bad. It would throw in checked mode, and I'm not particularly worried about not assigning a boolean back to the variable in this case.

Executing the setter in the case where shortcutting is supposed to occur could have arbitrary side-effects, so it does matter.

Correct @eernstg . The question is if the assignment is executed or not. I think it is important that the programmer, who refactors code from E1 = E1 op E2 into E1 op= E2 does not get caught by surprise, because this refactoring is a breaking change for the short-circuit operators?
@lrhn If the assignment boils down to assigning back the value itself (i.e. the setter is a simple assignment), the compiler would figure this out and not perform the store. - If it does not do this right now, it would be easy to make sure it does.
I would rather change ??= to be consistent with the rule I proposed than adding these new operators with surprising semantics.

because this refactoring is a breaking change for the short-circuit operators?

It's potentially a breaking change but is rarely one in practice.

the compiler would figure this out and not perform the store

That's hard to do in the general case since setters can have arbitrary side effects.

I would rather change ??= to be consistent with the rule I proposed than adding these new operators with surprising semantics.

That would be a breaking change to the language.
I don't personally have a strong opinion here (in fact, I don't personally care about this feature at all), I just tried to come up with semantics that are consistent with ??= and had a coherent principle behind it.
The other logical operators seem to have a rule of being "maximally lazy"—they only evaluate a subexpression if needed, so I did the same thing here.

Most of the "Tracking issues" have been closed as "Will implement in CFE". I don't know if there is an issue for CFE because GitHub search does not like &&= or ||=...

Most of the "Tracking issues" have been closed as "Will implement in CFE". I don't know if there is an issue for CFE because GitHub search does not like &&= or ||=...

it looks like it is at least partially implemented, but disabled in CFE (LAZY_ASSIGNMENT_ENABLED). I wasn't able to find any open CFE bugs tracking this. I don't know whether it is implemented beyond parsing.
Analyzer has some support as well, and is also disabled (scanLazyAssignmentOperators).

Closing this in favor of https://github.com/dart-lang/language/issues/23


Loaders should check library versions when possible

Loaders using external libraries should ideally check the library version for a sane minmimum version.

We can test this with pywavefront in the next release
Figure out a minimum version for Pillow
Figure out a minimum version for trimesh and if the library exposes a version string


🐛 BUG: Code action Organize imports stopped working in v.2.8.1 (works in 2.8.0)

Describe the Bug
When I use Organize imports feature in VSCode, it does not work (imports are not sorted) with the v.2.8.1, while works in v.2.8.0.
Steps to Reproduce

Open any .astro file with a few imports in the frontmatter
Ctrl+Shift+P -> Organize imports
Test with v.2.8.1 and v.2.8.0 of the extension

Thank you for the report, I can confirm the issue. 2.8.1 included a refactor that wasn't supposed to cause any issues, alas. We'll try to have a fix up in the next 24 hours, otherwise we'll revert the update.
In the meantime, reverting to 2.8.0 can be done by pressing right click on the extension in the extension list and selecting "Install another version.."

Fixed by https://github.com/withastro/language-tools/pull/831


TuYa YSR-MINI-Z remote control is wrongly identified as TS0044

Description of the issue
After adding the TuYa YSR-MINI-Z in Zigbee2Mqtt it is wrongly identified as TS0044 switch.
Addon version
v1.30.4
Platform
Home Assistant 2023.5.3
Supervisor 2023.04.1
Operating System 10.1
Frontend 20230503.3 - latest
Logs of the issue (if applicable)
No response

Please fill in https://github.com/Koenkk/zigbee2mqtt/issues/new?assignees=&labels=wrong+device&projects=&template=wrong_device.yaml&title=[Wrong+device]%3A+


Feature Request - displaying sequences

Reading this comment by Yossaria (http://gokibitz.com/kifu/Xyz44v8qE?path=14) :
"Yossarian 2 hours ago
This seems like the wrong direction to me - I would be happy to play out a relatively simple joseki - like R14, R16, Q14, O17, Q10 - to try and build a moyo."
That make me think that would be fine to be able to see sequences in the goban
a bit like it works with individual move that shows an 'X' but in this case that would place stones with numbering starting at 1 to display the varaiation. that last playexd move should certainly also be removed... (showing game position -1)
I think that would be simplier than implementing a full "gobook" format, and still very usefull...
here is a quick picture of what that would look like

I actually think this is a really good idea. It doesn't mean we can't do fuller go-book style notation later on or even some of the more involved stuff I was thinking of, but this has the significant advantage of being very straightforward to implement. Back to you soon!

Thanks again for your suggestion, oca. You really helped make this happen. Let me know what you think of the implementation: I'm always open to feedback.

That's looks allready great ! but think that the first move in the sequence should replace the last played move, So move 1, R14  should be white here i think, like in the picture in the prévoies message

You can already do that by specifying the color of the first move, but I
think your suggestion to change the default makes sense
--
Nate Eagle
On Jan 20, 2015, at 5:14 PM, git-oca<EMAIL_ADDRESS>wrote:
That's looks allready great ! but think that the first move in the sequence
should replace the last played move, So move 1, R14 should be white here i
think, like in the picture in the prévoies message
—
Reply to this email directly or view it on GitHub
https://github.com/neagle/gokibitz/issues/16#issuecomment-70745359.

I've updated the default to be the color which last played, so the
sequence's first move replaces the last game move.
--
Nate Eagle
On Jan 20, 2015, at 5:14 PM, git-oca<EMAIL_ADDRESS>wrote:
That's looks allready great ! but think that the first move in the sequence
should replace the last played move, So move 1, R14 should be white here i
think, like in the picture in the prévoies message
—
Reply to this email directly or view it on GitHub
https://github.com/neagle/gokibitz/issues/16#issuecomment-70745359.

That's so great ! just a quick little one, if you look at that comment : http://gokibitz.com/kifu/Xyz44v8qE?path=14,
The initial move is not replaced, I suppose this is due to the "displaySequence" function in sgfLabel,js, where the variable "firstMove" should now be initialized with "lastMove.c"
Maybe something like that : (but not checked as I have a few errors right now while building the last version, see below...)
var lastMove = $scope.player.kifuReader.node.move;
var displaySequence = lastMove.c;
if (attributes.firstMove) {
firstMove = (attributes.firstMove === 'W') ? -1 : 1;
}
if (lastMove.c === firstMove) {
$scope.player.board.removeObjectsAt(lastMove.x, lastMove.y);
}
Problem while building :

gulp
...
C:\Users\oca\Desktop\my\gokibitz\server\utils\parseLabels.js
line 7  col 123  Line is too long.
...
1 problem
[08:05:53] gulp-notify: [Compile Error] Error: Cannot find module 'angular-file-
upload' from 'C:\Users\oca\Desktop\my\gokibitz\client\src\js'
...
[08:05:54] gulp-notify: [Compile Error] Error: Cannot find module 'dom-delegate'
from 'C:\Users\oca\Desktop\my\gokibitz\client\src\js\directives'

there is also a small bug when we go to the next move and the sequence is still active, then the priginal stone is not displayed anymore...
step to reproduce :

go to http://gokibitz.com/kifu/QkgtBEmV?path=34
click on the sequence  W O1, N3, M3, O3, M2, M4.
click on the next button to go to move 35 (here you can see that the original white stone at M5 is not present)
click on the back button to go back to move 34

this will show :

Sorry about the build errors: I forgot to push a couple items that I hurriedly fixed on my server to make it build, which was bad manners on my part.
Thanks for checking up on this: you're awesome! It's amazing what things you can manage to forget to double-check, even when you think you're running through all the possible interactions. I fixed those bugs this morning, thanks to you.

That't perfect ! thanks I really like this feature !

oups... found a new one ;) ...
if you go here : http://gokibitz.com/kifu/m1gwesI9V?path=6

click on O17 P17 variation
use the back button to go moves 5,4,3,2,1,0, the stone at O16 doesn't disapear...

You're awesome. It didn't even occur to me to check that edge case. Okay: this is the first thing I'll fix tonight.

A quick new one ;)  this sequence doen't appear on the goban when I click on it
http://gokibitz.com/kifu/XJi08D7r?path=25

Huh! I wonder what's happening there. I'll check it out in a bit.
--
Nate Eagle
On Jan 22, 2015, at 12:18 PM, git-oca<EMAIL_ADDRESS>wrote:
A quick new one ;) this sequence doen't appear on the goban when I click on
it
http://gokibitz.com/kifu/XJi08D7r?path=25
—
Reply to this email directly or view it on GitHub
https://github.com/neagle/gokibitz/issues/16#issuecomment-71058607.

I don't feel as embarrassed about this one: that was a pretty creative way to break the parser. Good job finding it! Another gold star for @git-oca.


Gen3 for developers documentation

Jira Ticket: PXP-xxxx
New Features
Breaking Changes
Bug Fixes
Improvements
Added developer documentation to helm charts.
Dependency updates
Deployment changes

@AidanHilt - I had to do it like this (just to create a better git history. Something weird was going in other branches 😦  )


Add tg.Add to exported wallet methods

Exported methods of top-level modules that are called by the API directly should always call tg.Add. Especially if those methods access closable resources.
e.g. wallet.ConfirmedBalance can currently be called during a shutdown which results in a error since ConfirmedBalance calls syncDB on a closed database.

I'm not sure how to handle methods which don't return an error in this PR though. Right now I simply return the default datatypes but a user calling the API might expect a custom shutdown-error.

Well, we could always just add return values. If it's possible for the call to fail and for the user to recieve unexpected data, the function should definitely have an error return value.
So I would change the function signatures.

I don't think it's worth it to overhaul everything and complicate every piece of code that touches the wallet just so that we can report one specific type of error that occurs under one specific circumstance. The same issue applies to other modules, so inevitably we'd have to add an error return value to every single method on every module.
You can avoid all of this by arranging things so that you never call a module's methods after you've called Close. That requires some careful code in the node package, but nowhere else. I think it's reasonable for a module to say "behavior of these methods is undefined after Close has been called."

The methods of os.File all have to return errors anyway, because all I/O operations can fail. So there's no ergonomic penalty to adding a file is closed error. Notably, there are two methods of os.File that don't return an error: Name and Fd. It looks like after calling Close, Name continues to return the file's name, and Fd returns garbage. Unfortunately there aren't many other examples in the standard library.
Calling methods after Close should be treated the same way as a "use after free" bug. Calling methods on a nil pointer causes a segfault. Sending to a closed channel results in a panic. These are developer errors.

Closing a channel releases it as a resource. It makes no more sense to close a channel multiple times than it makes to close a file descriptor multiple times, or free a block of allocated memory multiple times. Such actions imply the code is broken, which is why closing a closed channel triggers a panic. (Rob Pike)

I do agree with your point about network-attached modules. But we can't blindly assume that every method needs to return an error because it might be implemented weirdly. There are lots of interfaces that don't expose any errors, like fmt.Stringer and hash.Hash, because it would be silly for them to do I/O. Similarly, (*os.File).Name doesn't return an error because the name is always small enough to keep around in memory; you should never have to do I/O to retrieve it. So I think we just need to use our best judgment when deciding which methods need errors. Specifically, I'm okay with adding errors to methods like (modules.Wallet).SetSettings, because it's reasonable to assume that an implementation of SetSettings would need to do I/O. I'm not okay with adding an error to Rescanning or Unlocked: if the wallet is closed, the logical return value of these methods is false. Height and DustThreshold are debatable, since they're small enough value to keep in memory, and it's much more ergonomic for them to not return an error. Lastly, methods like Transaction should probably just return an error instead of an error and a bool.
tl;dr: I'm okay adding errors to most of these methods, not because they should be safe to call after Close, but because they should be returning an error anyway.
One last thing that comes to mind is this commit: https://github.com/NebulousLabs/Sia/pull/1615/commits/5bef693b9144bf1e9eb8b9e9bbb0c31a7afad879. crypto.SignHash originally returned an error, even though it could never fail, because "switching libraries in the future may result in errors that can be returned." This turned out to be a case of premature generalization, and removing the error cleaned up a ton of code.

You are right, a os.File was probably not an appropriate comparison because in my opinion it's not necessarily a developer mistake to access the API after a shutdown. A webserver that is used by services like Nextcloud, Plex etc. should be able to receive calls during a graceful shutdown instead of being killed by a panic. e.g. I'd like to be able to take my Sia node offline, upgrade it and restart it while other services are using it without having to shut them down.
I don't think it's a problem for Height and DustThresholdto return an error. A Height of 0 to indicate an error while the http status code is still 200 feels like a violation of http conventions.
I also think it's reasonable for DustThreshold to return an error. DustThreshold calls FeeEstimation on the transactionpool which in turn calls methods like requiredFeesToExtendPool that could potentially use I/O in the future. I shouldn't have to worry as a dev about changing the signature of DustThreshold just because I changed the way the transactionpool does fee estimation.

I'm definitely in favor of having the function signatures all return errors. We had this discussion over a year ago, and we settled with not having errors. In this case, it has caused a handful of crashes for users. It also has forced us to change our API/intefaces for some functions which previously didn't touch disk, but now do touch disk because we switched from an in-memory wallet to a database wallet.
For complex, dynamic interfaces where we are continuing to upgrade the implementation and add new features, having error checking on all the functions is a defensive way to program that should limit bugs and allow us to be creative in the future without breaking compatibility.


How does ollam support the input of long text quantity

The large model supports 128k data input, which is equivalent to supporting hundreds of thousands of words. What is the maximum number of words that the ollama URL can support for input? Can you input hundreds of thousands of words.

Can you input hundreds of thousands of words.

Yes.

Yes it can – however, make sure to set the context window with /set parameter num_ctx 128000 or "options": {"num_ctx": 128000}} in the API


Create additional info blocks

You can make your resume less official by adding more entertaining info, like your hobbies and interest, or what do you like, some interactive content or joke, easter egg, etc.

info blocks were reviewed.


Selection of storage pool

It would be really nice if it were possible to select the storage pool to use for the Windows installation. Cloning to shift pools after installation is really cumbersome.

As in an LVM storage pool on another disk, right?
I didn't know this was possible until now but it turns out it is:
https://www.qubes-os.org/doc/secondary-storage/
This looks like a pretty easy feature to add just using the -P option of qvm-create as it says in the above documentation . (Once the user already created the LVM pool themselves)

Just as a note: I have done what Elliot suggested above, I simply changed the qvm-create command within qvm-create-windows-qube.sh to add the -P option.  Worked like a charm.

Good news, I added this feature in https://github.com/elliotkillick/qvm-create-windows-qube/commit/b5089a3c66f914de7f760f123731f6e01b1e0d95!


What is this string?

Hello!
Got a device that send this to the log
2016-12-09 13:29:39 DEBUG: [B65162F6: 5022 < <IP_ADDRESS>] HEX: 78781f12100c0a021d1fc800842fa9081ec208003d5702dc7b15a500d837001272b90d0a78780a1345003e000100137e750d0a78781f12100c0a021e01c700842f4d081ec294003cb302dc7b15a500d8430014d9910d0a
2016-12-09 13:29:39  WARN: Unknown device - c0a021d1fc80084 (<IP_ADDRESS>)

But, if i configure device c0a021d1fc80084 in traccar, it never appears on map, so I think, the port is not right or the id is not fine.
Decoding string result in
...binary data...

so, is unusable.
What tool can I use to decode the HEX string?

Your device is using GT06 protocol, so correct port is 5023.

yes, thanks for your answer. But,what tools can I use to know the data sent by the device. I want to decode the string.

It's not a string, so you can't "decode" it with HEX decoder. Your device sends binary data.


Why must destructure first?

Where is the code design that must be deconstructed before use ？

Store data will be inject into a component using useState, destructure is calling useState.
So need to follow the Hooks rules, at the top level of a component, cannot after if, and then use, otherwise there will be a React warning.

@nanxiaobei Maybe you can create a hook like const { prop } = useResso(state) - linter will work correctly with hook rules and state destruction will be more transparent
useResso is just a (state) => state

here is an introduction about the API design thinking:
https://nanxiaobei.medium.com/resso-worlds-simplest-react-state-manager-a3b1b0ccaa99
You can check "5. How the API of resso is designed?" part~

Yes, I'm understand that it's a featue) And I think it look good.


Update sdm-functions with terra et al. implementations, including extent, data retrieval, and modeling

Next (and last) up is SDMForecast()

Completed with 060d1c1 (and prior commits).


Android thumbs small

Is there a way to scale up the thumbs so they’re easier to grab?

Fwiw.   Seems like adding scale to these has solved this:
ThumbImage.  ThumbPressedImage


Key Combination for PlotActions in PlotViews

Feature Suggestion
Feature Description: To change the mouse and keyboard keys for panning, zooming, etc., for Actions in Plot Viewer in WPF, I had to create a class from the IPLotInteraction interface and change it based on my needs. However, I think in some cases, users need to assign a key combination to these plot actions. For example, I prefer to pan the axis while the space key is being held and dragged with the mouse's middle button.
Code example: If applicable, use this space to demonstrate how you wish the new feature could be used in code.
public InputBindings Inputs = new InputBindings()
{
    DragPanButton = MouseButton.Middle+KeyBoardKeys.Space.Holding,
    DragZoomRectangleButton = MouseButton.Right,
    DragZoomButton = MouseButton.Middle+KeyBoardKeys.Alt.Holding,
    ClickAutoAxisButton = MouseButton.Middle,
    ClickContextMenuButton = MouseButton.Unknown,
    DoubleClickButton = MouseButton.Left,
    ZoomInWheelDirection = MouseWheelDirection.Up,
    ZoomOutWheelDirection = MouseWheelDirection.Down,
    LockHorizontalAxisKey = Key.Shift,
    LockVerticalAxisKey = Key.Ctrl,
    PanZoomRectangleKey = Key.Alt,
};

I prefer to pan the axis while the space key is being held and dragged with the mouse's middle button

This is a great example of a behavior that is a challenge with the current design! I'll leave this issue open and continue to think about how I can streamline control behavior customizations.
I'm thinking that I may have gotten too complex by all those interfaces, binding classes, etc. A simple ControlBehavior class may be the way to go, every method could be virtual so the user can inherit-and-override to customize specific behaviors without having to re-implement everything.
I'll keep thinking about this topic and prioritize refactoring this system in a future release 👍
PS: https://scottplot.net/demo/ has updated information about customizing some elements of user inputs

Spillover from #3622, when this refactoring is done ensure there is consistency across controls for how to get the mouse position. This is platform-specific when it comes to display scaling and styling, especially for WPF controls.

I'm not sure if I love the idea of just throwing strings around, stringly-typed fields are typically quite difficult to work with. I think if you want that sort of generality you should make it an interface, where users are required to override all the relevant classes to handle that interface.
In C++ you would make the entire thing generic, people specify TInputEvent and they're required to also specialize the relevant classes for that specific type. Not sure if there's a clean way to do that in C# (other than dynamically by branching based on typeof(inputEvent)).
I also just wonder if this can be done by implementing IPlotInteraction, I don't think anything stops a user from adding behaviour like this via that route. It looks like WpfPlot.Interaction is public get-settable. There shouldn't be any difficulty in writing an implementation such that you can drag-pan with Space+Mouse3 (except as listed below). Most of the fiddly stuff like keeping track of keyboard state can be copy-pasted from our current implementation.
The only problem is I think most keys other than Ctrl, Alt, and Shift are simply flushed to Key.Unknown. We can fix this the right way (adding all the keys and the corresponding code such that the controls all send the right key) or we can do it the wrong way, and just cast the scancode to the enum and say good luck (probably with the high bit set to ensure they don't conflict with our current definitions). I am pretty sure that this is kosher, but I would check that the CLR isn't allowed to assume that enum values correspond to fields when the [Flags] attribute isn't present. And check that these enums will have a large enough size (I believe they're always ints). Or the middle way, which is to offer an alternative API that takes the scancodes in addition to our enum-based API.

Also, scancodes are only the same cross-platform for USB keyboards. I don't want to know how dank it gets if a user uses two different PS2 keyboards. It may be better to just pass through the reported key code (which may not be a scancode, and is probably not the same between WPF and other platforms) and expect the user to use the same enum.

stringly-typed fields are typically quite difficult to work with

This is a good point! It doesn't feel right to me either... but it's simple, and I'll probably keep using them for now as I'm building this out and exploring designs. After we know more about the final design, I do like the idea of shifting toward a strategy that better leverages the type system.

make it an interface, where users are required to override all the relevant classes to handle that interface.

I like the idea! Creating an IUserInputEvent allows us to pass a single object around too, instead of separate name/x/y values. I'll definitely do that next.
Regarding tracking key presses, I'm thinking about adding a HashSet<string> to track what "things" are pressed and released. That string type can change if/when the new type strategy discussed above is decided. Mouse button clicks and keyboard presses would be all be tracked in the same hash set, and each UserAction could look at the collection of things that are currently pressed and determine if and how to respond. This would probably resolve the key code issue.

Most of the fiddly stuff like keeping track of keyboard state can be copy-pasted from our current implementation.

Indeed! Also as I copy/paste functionality over I will write unit tests to ensure the behaviors perform as expected and continue to in the future.
Thanks for your feedback Ben!

I dont understand, why its so complicated, in my opinion some simple boolean flags do the job.
Add for each axis an somevboolean flags:
Boolean ActivatePan;
Boolean ActivateZoomIn;
Boolean Activate ZoomOut;
and you are independent from key combinations and mouse keys.

simple boolean flags do the job

This is true for the events you described! however, consider the middle-click-drag zoom rectangle: The zooming action needs to know the mouse down pixel, the mouse up pixel, the dimensions of the plot in pixel units, and the range of axis units in coordinate units. Some user inputs send more information than a Boolean flag can convey. Also consider pinch-zoom in the Blazor web interface on mobile devices, and perhaps 3-finger-swipe pan on mobile devices too. It gets pretty complicated pretty quick!

If you want to sidestep ScottPlot input handling that should already be possible by creating your own WpfPlot.Interaction which is given its input directly rather than filtered through ScottPlot code.

I'm merging #4053 now. See the "custom mouse behavior demo" to get an idea for how the new API works. The key code is shown here: https://github.com/ScottPlot/ScottPlot/pull/4053#issuecomment-2237773602
This new merge is not a breaking change because you can still use the old system, but if you opt-in to the new UserInputProcessor system you get all the newest features and abilities. Eventually we'll probably mark the original Interaction system obsolete.
@MohammadSadeghSalimian all the features in your original comment should now be possible. If you get stuck on one, let me know and we can take a closer look together 👍


Remove dup changelog items; Reassign icon families

Changes proposed in this Pull Request:

Reassigned 3 icons (Silo, Building, Garage Closed) to the family "maps".
Removed dup changelog items;

I will update the changelog date in packages/svg/CHANGELOG.md to whenever this is approved


Remove version: Jackett.Jackett version 0.21.1932

404 - release deleted
Microsoft Reviewers: Open in CodeFlow

URL: https://github.com/Jackett/Jackett/releases/download/v0.21.1932/Jackett.Installer.Windows.exe
Response Error: The remote server returned an error: (404) Not Found.
(Automated message - build 918)


Release 2.1.103

On the docket:

[ ] Pull in Pip fixes. #1805

Unlikely / backlog:

[ ] PEX_INHERIT_PATH+default shebangs don't interact well with virtualenvs #1344
[ ] Pex interpreter cache is not upgrade / downgrade safe. #1176
[ ] Provide a better resolve error message for a Platform DistributionTarget when --resolve-local-platforms. #1070
[ ] Remove PEX_PYTHON_PATH from build time interpreter selection. #1075

Broken off from "Release 2.1.102 #1862" to make way for a fix for #1866.


Invalid byte sequence in UTF-8 when generating spreadsheet

@straydogstudio
In my rails app, I'm trying to attach a generated xlsx file (basic) in a Sidekiq delayed mail. I'm getting the error: WARN: invalid byte sequence in UTF-8 every time I run the sending jobs.
mailer.rb
xlsx = (render_to_string handlers: [:axlsx], formats: [:xlsx],
    template: "report", layout: false)
attachments["#{subject}.xlsx"] = { mime_type: Mime::XLSX, content: xlsx }

report.xlsx.axlsx
wb.add_worksheet(:name => "Custom Report") do |sheet|
   sheet.add_row ["wrap", "me", "Up in Red"], :style => red_border
   sheet.add_row [1, 2, 3], :style => blue_border
end

Gem version 0.3.0, Rails 4.1.7, Ruby 2.2.0
Gemfile
...
gem 'sidekiq'
gem 'sidetiq'
gem 'rack-timeout'
gem 'axlsx_rails'

If I comment out the xlsx block, email sends fine.
Thanks for your help in advance :smile:

@straydogstudio any updates?

Sorry @samuelshih I haven't been able to get to it. One way you could help is to create a simple Rails repo in Github that demonstrates the issue. Then I won't have to set that up, and it will make sure I have the setup you do (with the entire Gemfile.) Would you be willing to do that?

@straydogstudio I figured it out!!
xlsx = (render_to_string handlers: [:axlsx], formats: [:xlsx],
    template: "report", layout: false)
attachments["#{subject}.xlsx"] = { mime_type: Mime::XLSX, content: xlsx }

  mail(
      to: params[:email],
      from<EMAIL_ADDRESS>      subject: subject,
      template_path: 'mailer',
      template_name: "report"
    )

The template in the xlsx block report can't have the same name as the html template. So I had to rename it to
xlsx = (render_to_string handlers: [:axlsx], formats: [:xlsx],
    template: "xls_report", layout: false)
attachments["#{subject}.xlsx"] = { mime_type: Mime::XLSX, content: xlsx }

@straydogstudio I figured it out!!
xlsx = (render_to_string handlers: [:axlsx], formats: [:xlsx],
    template: "report", layout: false)
attachments["#{subject}.xlsx"] = { mime_type: Mime::XLSX, content: xlsx }

  mail(
      to<EMAIL_ADDRESS>      from<EMAIL_ADDRESS>      subject: subject,
      template_path: 'mailer',
      template_name: "report"
    )

The template in the xlsx block report can't have the same name as the html template. So I had to rename it to
xlsx = (render_to_string handlers: [:axlsx], formats: [:xlsx],
    template: "xls_report", layout: false)
attachments["#{subject}.xlsx"] = { mime_type: Mime::XLSX, content: xlsx }

It was always breaking on mail( ....), so I was thinking it might be getting the template names confused even when I wasn't attaching the xlsx file, so there it is :smile:

Fantastic! That's great. I think I may know what that means then, but I'll have to check on that. Nice to have a simple solution!

I'm going to leave this open as a reminder to look into this.

Hey @straydogstudio , I also faced with the same problem. It looks like rails are trying to surround the xlsx file with layouts:

To fix this problem I have to either rename the axlsx template or by passing render layout: false, so my controller action looks like this:
respond_to do |format|
      format.html
      format.csv { send_data as_csv }
      format.xls { render layout: false } # avoid surrounding xml with layout
      format.xlsx { render layout: false }
    end

I prefer the later one.

@kikihakiem Thanks for the update. The format.xls really shouldn't come into play, as I don't register anything under that MIME type. But that is interesting.
What Rails / Axlsx / axlsx_rails versions do you have?

Rails 4.2.4, axlsx 2.0.1, axlsx_rails 0.4.0
Ignore that format.xls, it does neither relate to your gem or this issue. However I got the same issue when generating xls file using stdlib, so I think it's rails issue.

I have not been able to reproduce this bug. But, based on the experience of others (here and in other issues) the latest release of axlsx_rails (0.5.0) explicitly sets layout to false. Advising others to set the layout to false appears to fix these issues. I am cautiously optimistic. Please try 0.5.0 and comment on this issue (or open another) if the failure happens again.

ref #29 (dupe)


Should managed VM samples be reorganized?

Both the managedvms folder and appengine folders have managed VMs samples.  Shouldn't they be placed in the same folder?

The https://github.com/GoogleCloudPlatform/java-docs-samples/tree/master/appengine/appidentity sample is including from the Java App Engine docs for App Identity. It actually runs on managed VMs or standard App Engine if you remove true.
My understanding was that new samples should be Managed VMs if possible, but I put it in the App Engine folder for the reason that it is used from https://cloud.google.com/appengine/docs/java/appidentity/

Possibly we should remove the managedvms folder. I just noticed that the README.md in https://github.com/GoogleCloudPlatform/java-docs-samples/tree/master/appengine/appidentity talks about Managed VMs.

I think we've done the renames and now the docs all point to the right place.  I'm closing.


tkn pac generate show bad help message

should not be "f" but the filename

the filename generated is f too


Adding a TOC ignore above the TOC removes unique settings

If I have a setup like this:
<!-- prettier-ignore-start -->
<!-- TOC ignore:true -->
## Table of Contents
<!-- prettier-ignore-end -->

<!-- TOC depthFrom:2 depthTo:3 updateOnSave:false -->

- [Resources](#resources)
- [Develop](#develop)
  - [Run Locally](#run-locally)
  - [Add Command](#add-command)
  - [Add Client Event](#add-client-event)
- [Deploy](#deploy)
  - [Deploy Issues](#deploy-issues)
- [ToDo](#todo)
  - [Cleanup Tasks](#cleanup-tasks)
  - [Future Work](#future-work)

<!-- /TOC -->

When I trigger the command to Insert/Update, the unique settings are lost.
That is:
<!-- TOC depthFrom:2 depthTo:3 updateOnSave:false -->

is changed to:
<!-- TOC -->

Removing the TOC ignore line <!-- TOC ignore:true --> prevents this from happening.
However, in my specific setup I would like to prevent the ## Table of Contents section from being added while retaining the unique settings on the TOC.
This can be addressed by adding the unique settings to a VSCode workspace preferences file, but this is not ideal. Other markdown files in the workspace might need different unique settings.
I have confirmed the prettier-ignore lines are not causing the issue, only the <!-- TOC ignore:true --> line. The prettier-ignore is needed to prevent my code formatter from adding a blank line between the <!-- TOC ignore:true --> and the heading I want to ignore (## Table of Contents).
VSCode:
Version: 1.49.3
Commit: 2af051012b66169dde0c4dfae3f5ef48f787ff69
Date: 2020-10-02T17:54:06.165Z (1 wk ago)
Electron: 9.2.1
Chrome: 83.0.4103.122
Node.js: 12.14.1
V8: <IP_ADDRESS>-electron.0
OS: Darwin x64 19.6.0

markdown-toc
Version: v3.0.12

OS:
Version: macOS Catalina 10.15.7

I noticed there is a similar comment here: https://github.com/huntertran/markdown-toc/issues/40#issuecomment-691685368
It states that:

the extension cannot differentiate the first <!--TOC orderedlist:true--> with <!-- TOC ignore:true -->

Perhaps a solution could be to change how ignore comments are structured? Instead of <!-- TOC ignore:true --> consider <!-- TOC-ignore: --> so that the engine can differentiate these comments.


Factor out a function to read receipts

This closes https://github.com/raiden-network/raiden-contracts/issues/501.

Then I'll reopen #501 after this.


Add support for newer minestom version

This change allows the schem library to work on newer minestom versions where utils/Utils.java has been removed

I totally missed this and did the same thing (awkward), so it now exists


fix bug in treeview filtering logic in error analysis package

Description
Fix bug introduced in recent PR:
https://github.com/microsoft/responsible-ai-toolbox/pull/1562
During refactoring of a method the filtering logic broke.  This PR fixes the filtering logic again and adds a test to validate the nodes from error analysis constructed json are the same size as the original lightgbm tree exported model file.
Checklist

[ ] I have added screenshots above for all UI changes.
[ ] I have added e2e tests for all UI changes.
[ ] Documentation was updated if it was needed.

Codecov Report

Merging #1593 (78c103c) into main (7319c7d) will decrease coverage by 5.22%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main    #1593      +/-   ##
==========================================
- Coverage   88.95%   83.73%   -5.23%
==========================================
  Files         109       22      -87
  Lines        5379      418    -4961
==========================================
- Hits         4785      350    -4435
+ Misses        594       68     -526

Flag
Coverage Δ

unittests
83.73% <ø> (-5.23%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

...is/erroranalysis/_internal/surrogate_error_tree.py

erroranalysis/erroranalysis/version.py

...ponsibleai/databalanceanalysis/balance_measures.py

...ponsibleai/responsibleai/rai_insights/constants.py

...ranalysis/erroranalysis/_internal/cohort_filter.py

...ranalysis/erroranalysis/_internal/matrix_filter.py

raiwidgets/raiwidgets/explanation_constants.py

raiwidgets/raiwidgets/responsibleai_dashboard.py

...onsibleai/_tools/shared/attribute_serialization.py

...tools/error_analysis/dashboard_schemas/__init__.py

... and 77 more

Continue to review full report at Codecov.

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

looks like linting failed with error. Please check.


Data Science with Python : Data Visualization using Bokeh

Description
Welcome to the 'DSWP' Team, good to see you here.
With this issue, the readers will know on how to work on Data Visualizations using bokeh and how it's implemented.
This issue is created on contributors request.
To get assigned to this issue, add your serial numbers mentioned in the spreadsheet of "Data Science with Python", the approach one would follow and the choice you prefer (Documentation, Audio, Video). You can go with all three or any number of options you're interested to work on.
If you had referred any resources, add them up in "DS Resources". Similarly, if you had used datasets, include them in "DS Datasets".
Domain: Data Analysis and Visualization
Mentors Assigned : Dhruv Bajaj | Kareem Negm
Points to Note :
The issues will be assigned on a first come first serve basis, 1 Issue == 1 PR.
"Issue Title" and "PR Title" should be the same. Include issue number along with it.
Changes should be made inside the Datascience_With_Python/ directory & Datascience_With_Python branch.
Follow Contributing Guidelines & Code of Conduct before start Contributing.
This issue is only for 'GWOC' contributors of 'DSWP' domain.
All the best. Enjoy your journey ahead. 😎
Domain
Data Science with Python
Type of Contribution
Audio, Video, Documentation
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of this project.

Hello! @prathimacode-hub
I would like to work on this issue.
Title: Data Visualization using Bokeh
Name: Preeti Chaudhari
Serial No.: 268
Batch No.: 8
Mentor: Kareem Negm
Domain: Data Analysis and Visualization
Type: Documentation
Approach: Introduction to BOKEH, Benefits of Bokeh, Installation and Configuration, Python Bokeh examples in form of graphs and plots, a walkthrough will be given as well.

There are 2 mentors for an issue. Don't include mentor name in your interest comment. Issue assigned to @preestine for documentation

I would like to work on this issue.
Title: Data Visualization using Bokeh
Name: Kishlay Kumar
Serial No.: 501
Batch No.: 15
Domain: Data Analysis and Visualization
Type: Audio
Approach: Introduction to BOKEH, Benefits of Bokeh, Installation and Configuration, Python Bokeh examples in form of graphs and plots, a walkthrough will be given as well.


chore(insight_groups): bump up to 9.6.0

Update Dashboard plugin to GoodData SDK v9.6.0. More information about the new SDK version can be found in GoodData docs

Build succeeded (check pipeline).

Build succeeded (check pipeline).

Sonar scan result
More detail, see in https://sonarqube-gate.intgdc.com/dashboard?id=gooddata-dashboard-plugins-gate-PR64
To scan for vulnerabilities in dependencies and run unit tests (to get coverage report in sonar) please comment your PR with 'extended check sonar'.

Build succeeded (gate pipeline).

https://checklist.intgdc.com/job/compliance/job/gooddata-dashboard-plugins-sonarqube-scan-zuul-gate/57/ : SUCCESS in 59s
https://checklist.intgdc.com/job/compliance/job/gooddata-dashboard-plugins-fossa-scanning-zuul/34/ : SUCCESS in 53s (non-voting)
https://checklist.intgdc.com/job/compliance/job/gooddata-dashboard-plugins-merge-compliance-check/58/ : SUCCESS in 9s


Update ttf-parser

Just so we don't get it duplicated in https://github.com/ruffle-rs/ruffle/pull/16960.

It's not as simple as that... There will be a new ttf-parser update soon.

Published a new version.

Thank you for taking care of if so quickly!


MongoError when using mongos

I recently upgraded from 1.2.14 to 1.2.19 and immediately starting seeing MongoErrors. I'm connecting to sharded MongoDB 3.0.5 (using mongos). When I reconfigured the connection to skip mongos and connect straight to a replica set master, the errors stopped.
After some trial and error I found that 5f4cf95 seems to be the culprit. Using the commit immediately preceding this one, these errors do not occur. I am using readPreference: 'secondaryPreferred'.
Here are the two varieties of MongoError that I see
MongoError: Can't canonicalize query: BadValue unknown top level operator: $query
    at Function.MongoError.create (./api/releases/20151023195307/node_modules/mongodb/node_modules/mongodb-core/lib/error.js:31:11)
    at queryCallback (./api/releases/20151023195307/node_modules/mongodb/node_modules/mongodb-core/lib/cursor.js:267:34)
    at Callbacks.emit (./api/releases/20151023195307/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:95:3)
    at null.messageHandler (./api/releases/20151023195307/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:243:23)
    at Socket.<anonymous> (./api/releases/20151023195307/node_modules/mongodb/node_modules/mongodb-core/lib/connection/connection.js:262:22)

MongoError: Can't canonicalize query: BadValue unknown top level operator: $maxTimeMS
    at Function.MongoError.create (./api/releases/20151023195307/node_modules/mongodb/node_modules/mongodb-core/lib/error.js:31:11)
    at queryCallback (./api/releases/20151023195307/node_modules/mongodb/node_modules/mongodb-core/lib/cursor.js:267:34)
    at Callbacks.emit (./api/releases/20151023195307/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:95:3)
    at null.messageHandler (./api/releases/20151023195307/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:243:23)
    at Socket.<anonymous> (./api/releases/20151023195307/node_modules/mongodb/node_modules/mongodb-core/lib/connection/connection.js:262:22)

Are you using mongodb-core directly ? can you provide a simple code example that reproduces it.

No. I'm using the mongodb package, which recently had its dependency on mongodb-core updated.
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://mongo/test?readPreference=secondaryPreferred';

MongoClient.connect(url, {}, function(err, db) {
  if (err) throw err;
  var options = { sort: [['_id', 'descending']] };
  db.collection('documents').findOne({}, options, function(err, doc){
    if (err) throw err;
    console.log(doc)
  })
});

The above code results in the following error:
MongoError: Can't canonicalize query: BadValue unknown top level operator: $query
    at Function.MongoError.create (node_modules/mongodb/node_modules/mongodb-core/lib/error.js:31:11)

If I remove the sort option, or set readPreference=primary, the error no longer occurs.

29de00425c5a2ecdf60e39c670d2f9201ce9d8c3 fixes the issue


[0.11.0-rc1] Unexpected downsampling/missing rows in large query returns

I have been seeing some of the bottom rows being unexpectedly downsampled or missing when a query returns >100k rows.
Example query:
select cpu from host-1 where time >= '2016-02-01' and time <= '2016-03-01' order by time desc

@benbjohnson this seems to be an issue with queries ordered by descending time. I used influx_stress to generate a database and counted the number of rows emitted by these two commands:
select value from cpu: 10000000
select value from cpu order by desc: 3925000

I took every interval output by stress and counted how many points were output.
  100000                                                                                [57/1181]
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
   10000
   90000
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
   90000
   10000                                                                                [13/1181]
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
   25000
  100000
  100000
  100000
  100000
  100000
  100000
  100000
  100000
  100000
  100000
  100000
  100000
  100000
  100000
  100000
  100000
  100000
  100000
  100000
  100000
  100000
  100000
  100000
  100000
  100000
  100000
  100000
  100000
  100000
  100000
  100000
  100000
  100000
  100000
  100000
  100000

When done on the ascending output, every column is 100000.


Add new card component

The card components are implemented according to design in these sketches.
Added support for material-icons-outlined
Added colors.scss to make colors easier to access, and started work on splitting styling into different files, to make it easier to work with. Work on moving existing component-specific styling from main .scss-file will be done after the new sidebar component is merged

 Here is an overview of what got changed by this pull request:

Issues
======
- Added 58

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Issues
======
- Added 51

See the complete overview on Codacy


Update travis build matrix

Test against Rails 3.2, 4.0, 4.1, and 4.2.
Test against Ruby 1.9, 2.1, 2.2, and 2.3.

Notes:

sudo:false enables Travis's new build infrastructure for faster builds
We now explicitly use test-unit, instead of the test-unit shim on top of minitest. I had to fix some tests accordingly

@Shopify/payments

It's finally green on CI! Ready for review, @j-mutter @girasquid @edward @aprofeit


Use e.Message field instead of e.Code.Message()

The type Error already have the message field, so there is no reason to re-create it. When Error is created by WithArgs() and e.Code.Message() is a format specifier, e.Message contains the resulting formatted message.

Please sign your commits following these rules:
https://github.com/moby/moby/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:
$ git clone -b "errmessage" git@github.com:dmage/distribution.git somewhere
$ cd somewhere
$ git commit --amend -s --no-edit
$ git push -f

Amending updates the existing PR. You DO NOT need to open a new one.

LGTM


uavcan flow support (Here Flow)

This uavcan driver adds support for the pmw3901 via uavcan. It was tested and the data in uorb looks valid. The remaining issue is that we cannot generate the uavcan header inside px4 for this custom message. To test this we generated the header manually and then copied it into src/drivers/uavcan/libuavcan/libuavcan/include/dsdlc_generated. It would be great to find a way to have a directory in px4 where we can generate our own headers.
Once we figure this out I will clean this up for merging.

FYI @dagar @RomanBapst @bkueng

@DanielePettenuzzo @RomanBapst I've brought the DSDL generation into the PX4 uavcan driver and cleaned up some of the unnecessary parts (ioctl and read methods aren't even used). This is good to go from my perspective.

@dagar Bench tested this today.. I think we can merge this. I will try to fly it tomorrow or early next week.
The first part of the log I do rotations (flow and gyro very similar) and in the second part I do horizontal translation (flow larger than gyro).

In a separate pr I will add support for the distance sensor on this module

That’s awesome guy’s!

@dagar @DanielePettenuzzo @RomanBapst What's the doc requirement here?
What we at the moment is an Optical Flow page that has a subpage for PX4 flow. Basically I need to know how the setup differs for UAVCAN - ie which parameters still need to be set, and tuned, how the wiring is done, any new setup that needs to be done for UAVCAN Flow - ie new params to enable it, any limitations that come from using UAVCAN vs using any other distance sensor.
With respect to Here Flow I need to know if there is any special setup or tuning. For example, focussing the camera is covered for PX4Flow doc.
Can you guys look at optical flow page and PX4 flow doc and provide some sort of delta summary?

@hamishwillee @DanielePettenuzzo I am getting a couple of these units soon and would be interested to know, as @hamishwillee said, how these can be configured. Also, @DanielePettenuzzo is the lidar module mandatory to have it fly, similar to the PX4Flow, since you need to have the distance to the ground to determine the horizontal velocity?

@dagar @hamishwillee I started the PMW3901 page in the user guide because it's different from the PX4 Flow. I think we should have a generic optical flow page and then subpages explaining the PX4FLOW and the PMW3901. We can move the conversation to this pr in the user guide: https://github.com/PX4/px4_user_guide/pull/559


Profiler plot zoom and pan

As mentioned in godotengine/godot-proposals#2045 and the quite old #5682. Uses mouse wheel for zooming and middle click drag for panning. Little demonstration included below.
https://user-images.githubusercontent.com/30383615/232031698-691542cb-de74-4dbc-ba39-547ebf2beb28.mp4

I think being able to click and drag to highlight/select a particular area of the graph and have it zoom into that section would be an excellent addition to these changes.
Thanks for the improvements regardless!

This would be really helpful, is there a reason it wasn't merged for 4.x so far?

The improvement hasn't been decided on and this hasn't been reviewed yet, might be once 4.2 is released and new features are focused on once again

Any progress on this? It would be amazing to have! The ui is almost useless because of the microscopic frames and tiny framestep buttons.

Any progress on this? It would be amazing to have! The ui is almost useless because of the microscopic frames and tiny framestep buttons.

There are merge conflicts that need to be resolved first.
@reach-satori Could you look into rebasing this PR against the latest master branch? See Pull request workflow for instructions :slightly_smiling_face:

Thanks!


auto-render relation names without database

fixes: #91

@jtcohen6 the import is failing but I have no idea why, but I'm willing to bet it's just a rookie python typo.

@jtcohen6 the import is failing but I have no idea why, but I'm willing to bet it's just a rookie python typo.

something weird is happening with drop_relation(). For all 8 steps of the empty sequence and the first 12 steps of the base test sequence, the drop_relation's work as they should in that
this jinja-sql
if object_id ('{{ relation }}','{{ object_id_type }}') is not null
    begin
    drop {{ relation.type }} {{ relation }}
    end

compiles to this
 if object_id ('dbt_test_azure_sql_210211000737938430161027.view_model__dbt_backup','V') is not null
      begin
      drop view dbt_test_azure_sql_210211000737938430161027.view_model__dbt_backup
      end

However, starting with step 13 of the base test sequence (and continuing throughout many other tests) it fails, because now the compiled drop_relation SQL looks like this:
if object_id (''dbt_test_azure_sql_210211000737938430161027'.'swappable'','V') is not null
      begin
      drop view 'dbt_test_azure_sql_210211000737938430161027'.'swappable'
      end

@jtcohen6, does the global_project's incremental materialization (and others) change the QuotePolicy somehow? wild guess -- does the { this } relation object inherit the adapter's quoting policy?
SQLServerQuotePolicy is currently set to False for parts, so I don't get why the swappable view is getting quoted here.
@dataclass
class SQLServerQuotePolicy(Policy):
    database: bool = False
    schema: bool = False
    identifier: bool = False

it's also worth checking to see if the default incremental materialization still needs overriding

@jtcohen6 I've pulled in changes from #102 which drops the overriding of the incremental materialization. Unfortunately, the same issue is still happening, so I'm going to start locally logging/debugging the global project's incremental materialization.

Great question. I actually just tried running a project that was previously run with (I believe) dbt-sqlserver==0.19.0. And we get an error. So we should def table this PR until 0.19.1, instead of cramming it prematurely into <IP_ADDRESS>.
I haven't seen this error message before, maybe @jtcohen6 could explain. It seems it has to do with partial matches due to quoting differences? this might constitute a breaking change for users. What I don't understand is why:

it searches for an unquoted version, but
finds a quoted version, when
the quote policy is none, however
in all my debugging the relation was always showing up double-quoted (despite the False quote policy)

Compilation Error in model SAPHRPeopleDim (models/stage/SAPHRPeopleDim.sql)
  When searching for a relation, dbt found an approximate match. Instead of guessing
  which relation to use, dbt will move on. Please delete "ajs_stg"."SAPHRPeopleDim", or rename it to be less ambiguous.
  Searched for: ajs_stg.saphrpeopledim
  Found: "ajs_stg"."SAPHRPeopleDim"

  > in macro materialization_view_default (macros/materializations/view/view.sql)
  > called by model SAPHRPeopleDim (models/stage/SAPHRPeopleDim.sql)

I haven't seen this error message before, maybe @jtcohen6 could explain. It seems it has to do with partial matches due to quoting differences? this might constitute a breaking change for users.

Yes, that's right. If dbt finds an existing relation in the database that is similar to a model's relation-to-e, but not exactly the same (different quoting/casing), dbt will raise a compilation error to avoid accidentally overwriting a view/table it doesn't actually own. Here's the source for that behavior.
It sounds like you ran this same project previously, using dbt-sqlserver==0.19.0, when dbt was quoting relations. So, now that quoting has been turned off, dbt has identified the discrepancy. I agree this is a breaking change and should probably wait until v0.20.0.

in all my debugging the relation was always showing up double-quoted (despite the False quote poli

This is the part I'm not sure about! If the quote_policy is now False across the board, dbt should not be quoting relation components. Which brings me to ask: What's the actual reason to turn off quoting on SQLServer? I think I missed this part of the puzzle. The reason we turn it off for Snowflake is because, if an identifier name is quoted and contains non-uppercase characters, selecting it is a nightmare.

What's the actual reason to turn off quoting on SQLServer?

great question @jtcohen6. Looks like there wasn't a good reason and I just did it to try and solve a bug that I stirred up along the way. It isn't necessary. It is however necessary to change our relation part quote character from a single quote to double.
@mikaelene I tested this on a local project and it works without issue. ready for for your further review/approval.

@panasenco -- I very much appreciate you taking the time to try and make your PR with my refactor. TIL, I had no idea about the relation cache.
Totally open to the "straightforward SQL" approach, but any chance you could open up a different PR with the code you were stuck on so we can look at the error you were seeing? If anything, for curiosity's sake.


Some solid materials appear to have no thermal conductivity, chemical.k = None

Running this code for aluminium, copper, nickel, and iron returned None for all of them, but running it for oxygen, nitrogen, and carbon dioxide worked.
name = 'aluminium'
chem = ch.Chemical(name)
print ('{0} thermal conductivity: {1}'.format(name, chem.k))

Hi,
It would be nice if all chemicals had all data, but they simply don't.
Caleb


[guava] add guava shade module

UT Fail due to license

UT Fail due to license

https://github.com/apache/flink/blob/25798e8b2ed26307daaf4437aa144e345710843d/tools/ci/flink-ci-tools/src/main/java/org/apache/flink/tools/ci/licensecheck/JarFileChecker.java#L114-L119
The project uses flink-ci-tools to check the license, but the flink-ci-tools module will detect that the notice file must contain flink content.
There are currently several solutions:

Copy the flink-ci-tools module to paimon

Temporarily remove the check license

Indicate the reference to flink in the notice file (but all new modules need to be written in this way, and the newly added modules may not refer to flink)


[FEAT] Support issues/tickets linked to the feature branch

Is your feature request related to a problem? Please describe.
We use Jira and suffix commits with the ticket number, i.e. feat: commit (DEV-0123), and also prefix the branch name with the ticket ID, i.e. feat/dev-0123-commit.
Describe the solution you'd like
We would like to see GitHub issues, Jira tickets, and others natively supported.

Definitely useful (for us too). FYI I'm gonna first finish the refactor to git2go (for performance reasons) adding more unit tests in the same time. Then back to features, and this one is quite top priority for me. I want to be able to also integrate it to branch creation and probably further down (PR/MR, etc...).
First integrations planned: Jira, GitHub and GitLab

Definitely useful (for us too). FYI I'm gonna first finish the refactor to git2go (for performance reasons) adding more unit tests in the same time. Then back to features, and this one is quite top priority for me. I want to be able to also integrate it to branch creation and probably further down (PR/MR, etc...).
First integrations planned: Jira, GitHub and GitLab


Bash-language-server and explainshell container

Hello Everyone,
So I'm having some fun trying to get the bash language server with the explainshell integration working.
I have the explainshell container running and my settings look like:
{
    "files.autoSave": "afterDelay",
    "editor.tabSize": 2,
    "files.exclude": {
        "**/.git": true,
        "**/.svn": true,
        "**/.hg": true,
        "**/CVS": true,
        "**/.DS_Store": true,
        "**/secrets": true
    },
    "ruby.lint": {
        "rubocop": true,
        "ruby": true, //Runs ruby -wc
    },
    "python.pythonPath"<EMAIL_ADDRESS>    "python.linting.pylintEnabled": false,
    "python.linting.flake8Enabled": true,
    "python.linting.enabled": true,
    "python.linting.pylintPath": "/usr/local/bin/pylint",
    "bashIde.explainshellEndpoint": "http://localhost:5000"
}

If I browse to localhost:5000 in my browser everything works 100%. The container access logs only show the browser requests and I do not see bash-language-server trying to communicate at all.
Thoughts?

Hm... which Docker image did you use?

docker run --rm --name bash-explainshell -p 5000:5000 chrismwendt/codeintel-bash-with-explainshell

VS says the bashIde.explainshellEnpoint is not a valid configuration option

Looks like its just not getting the flag documentation.

Wondering if you misspelled Endpoint?

My configuration is . for . above.

It took me a while as well to figure why explainshell is not working, turns out the latest published version 1.5.1 simply doesn't include the explainshell functionality yet.
@mads-hartmann would you please consider publishing a new version? Ideally after merging #58 😛


chore(deps): run pnpm audit to fix json5 vulnerability in ESLint

Description
Seems like json5 dependency has a vulnerability used by ESLint (dev dependency)
Motivation and Context
ran pnpm audit to fix dev dependency vulnerability
How Has This Been Tested?

Types of changes

[x] Chore (change that has absolutely no effect on users)
[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have added tests to cover my changes.
[x] All new and existing tests passed.

Codecov Report

Merging #457 (892174d) into main (2c0921a) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #457   +/-   ##
=======================================
  Coverage   97.38%   97.38%
=======================================
  Files         154      154
  Lines        4534     4534
  Branches     1057     1057
=======================================
  Hits         4415     4415
  Misses        119      119

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


Improve text of NoReferenceAssemblyDirectory error

The existing message
https://github.com/Microsoft/msbuild/blob/99e150416ed43660782db8ea88b2d12135aca855/src/Tasks/Resources/Strings.resx#L2119-L2122
Can be very confusing, and doesn't have an actionable link.
This error is from
https://github.com/Microsoft/msbuild/blob/99e150416ed43660782db8ea88b2d12135aca855/src/Tasks/GetReferenceAssemblyPaths.cs#L249
Rewording (from me and @kathleendollard):

MSB3644: The reference assemblies for .NETFramework,Version=v4.6.2 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks

Leaving the space out of .NETFramework,Version=v4.6.2 allows us to directly use frameworkmoniker.ToString(), but we might be able to do better using the fields of frameworkmoniker.

Thought I'd state directly that the developer packs link goes to the download archives.


OpenAPi 3.1

OpenAPI 3.1 has been released, so to stay future-compatible, you'd need to update your project here too. :slightly_smiling_face:

Here are a few articles showing off the differences between OpenAPI v3.0 and v3.1.

https://www.openapis.org/blog/2021/02/16/migrating-from-openapi-3-0-to-3-1-0
https://www.apimatic.io/blog/2021/09/migrating-to-and-from-openapi-3-1/
https://nordicapis.com/whats-new-in-openapi-3-1-0/

Here are some example files which can make for handy pass/fail test cases:
https://github.com/Mermade/openapi3-examples/tree/master/3.1
If you're looking for the JSON Schema that defines a valid OpenAPI document, that'll be right over here:
https://github.com/OAI/OpenAPI-Specification/tree/main/schemas/v3.1
No rush, but when you're starting work on it, please update this issue so I can update openapi.tools to reflect that, and folks will have a way to subscribe for updates.
If there are no plans to make it happen, please archive this repo so there's no confusion about whats going on. I know how tough it can be to keep dedicating time to an OSS project thats not being used much anymore, so help point folks to another tool which will do what they want (loads of them on https://openapi.tools/).

If there are no plans to make it happen, please archive this repo

That's a rather drastic solution. A disclaimer in the README and tagline would be better, IMO. That approach would allow people who come across this tool, and prefer its approach to others (a low-barrier OpenAPI renderer based entirely on github-pages, with no explicit build step), to contribute to it and add missing features. That was what I did back when I had the need, anyway. (And to be clear, I wouldn't have forked and started my own project, as I didn't have the bandwidth for that commitment.)
Archiving the project would lock it from contributions and even issues/discussions, e.g. to ask the project creator whether PRs would be accepted, offers to maintain the tool, etc.

@waldyrious to be fair there hasn't been a commit/merge since June 2021, you said that in April 2022, it's now October 2022. Archiving this and helping redirect people to modern alternatives would be a good choice IMO.

Why do you consider that a README notice and status badge (stating that there's no active development, that contributions are accepted but may be slow to be reviewed, and that additional maintainers may be considered) would be a worse course of action than archiving the repo? The latter IMO is worse, because it unilaterally forbids others from even opening issues (e.g. to offer to maintain the tool).

Cool, thanks for clarifying. I would do the updates myself if I had write access to the repository, but unfortunately as it stands we'd need @robertlove to accept the changes anyway. So the only thing we can do for now is wait until he's able to comment on this issue.


Adal to Msal update and app registrations info. update on README

This PR makes the following changes:

Changes the auth. library from Adal to Msal using the Android auth wrapper library.
Updates the app registration steps in the new Azure portal in the README.

Closing PR to create a new one from irvinesunday/master


docs: fix typo in title

Fix the typo in the title of the suffix example README

Thanks for catching this, @emushtaq!
CI not required, only a docs change.


Feature/inject context

Support loading context data outside of the assertions in the command line tool and evaluating templates using CEL.
Adds preliminary support in the operator to mount context from config maps.
See #33 for a discussion of the design.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

62 of 66 (93.94%)  changed or added relevant lines in 4 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+1.9%) to 91.973%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

netcheck/runner.py
17
18
94.44%

netcheck/context.py
39
42
92.86%

Totals

Change from base Build<PHONE_NUMBER>:
1.9%

Covered Lines:
275

Relevant Lines:
299

💛  - Coveralls

Hmm I think the k8s integration tests are using the main branch docker images rather than this branch. Might need to look at calling kind load docker-image after building the images.

Hmm I think the k8s integration tests are using the main branch docker images rather than the code from this branch - would that be right @TheDen ?
I might need to look at calling kind load docker-image after building the images, or pushing the tag (e.g. pr-34) and using that in the k8s workflow job.

Yeah I think that's a good approach to use kind load docker-image to load the locally built image. I think you'd also need to use the --set option to set the image tag values when running helm upgrade --install

Cool, now the integration tests actually use the code from the branch.


[question] Using MongoDB as event store and ActiveMQ as broker

Hi,
for some small project I am requested to use event store but as main messaging is already based on ActiveMQ (AMQP 1.0) and storage on MongoDB, client doesn't want to introduce new storage and messaging technologies/protocol but remain on existing. Is it supported or easy to integrate mongodb and activemq as alternative components for event store?
Thank you very much.
Ladislav

Being discussed here, so closing
https://github.com/networknt/light-tram-4j/issues/5


feat(examples) add tauri communication example

Hmmm. Quasar is breaking
https://github.com/tauri-apps/examples/pull/60/checks?check_run_id=492352619#step:15:10


[MM-49082] Hide menu bar in calls popout window

Summary
PR brings back the title bar to the calls popout window (when global widget is enabled, Desktop >= 5.3) which was originally removed to avoid showing the menu bar.
At the time I wasn't aware that there was a simple way to customize a window opened from the renderer side but using webContents.setWindowOpenHandler() is working nicely and allows us to hide the menu bar while retaining the title bar which is useful for easily resizing, closing and dragging the window.
Ticket Link
https://mattermost.atlassian.net/browse/MM-49082
Related PR
https://github.com/mattermost/mattermost-plugin-calls/pull/282
Release Note
NONE

@devinbinnie Let me know if this needs further additions.


sink(ticdc): support multi topics

What problem does this PR solve?

Issue Number: ref https://github.com/pingcap/tiflow/issues/4423
What is changed and how it works?

flush worker supports multiple topics

ddl distribution support for multiple topics

checkpointts broadcast support for multiple topics (If no table is currently synchronized, the default is sent to the default topic)

Check List
Tests

Unit test

Code changes

Has exported function/method change
Has exported variable/fields change
Has interface methods change

Side effects

Increased code complexity

Related changes
None
Release note
None

/run-leak-test

/run-all-tests

Codecov Report

Merging #4913 (e1bdb09) into master (687e248) will decrease coverage by 0.3901%.
The diff coverage is 48.4942%.

Flag
Coverage Δ

cdc
60.7951% <47.1052%> (+0.1965%)
:arrow_up:

dm
51.7215% <49.0710%> (-0.7481%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.
@@               Coverage Diff                @@
##             master      #4913        +/-   ##
================================================
- Coverage   56.1240%   55.7338%   -0.3902%
================================================
  Files           522        524         +2
  Lines         65325      66491      +1166
================================================
+ Hits          36663      37058       +395
- Misses        25094      25778       +684
- Partials       3568       3655        +87

/run-all-tests

/hold
Please do not merge the release 6.0 branch before it is check out.

/hold
Please do not merge this PR until version 6.0 is check out.

/run-all-tests

/run-all-tests

/merge

/run-integration-test

/run-kafka-integration-test

/run-integration-test

/run-integration-test


attu search got param error

Describe the bug:
When I search in attu, I got the following error message:

Steps to reproduce:
1.
2.
3.
Attu version:
V 2.2.0

I think this was fixed in v2.2.1.


Cannot create folder in osfstorage

If I try to create a folder through OSF explorer, I consistently get the error message below. This happens both when I create a subfolder and a top-level folder.

It would seem that there was a small breaking change in the API, which now expects an additional length parameter, but I can find no trace of this in the Waterbutler docs: https://waterbutler.readthedocs.io/en/latest/api.html#v1-api (section Create Subfolder (folders)). Possibly the change was unintentional? Shall we notify the waterbutler guys of this?

Shall we notify the waterbutler guys of this?

Yes, but I see that you've already done that!

I just tried to replicate this with a bucket in the German region and didn't encounter this error.  Are you including any other headers in the request?

Did the HTTP request type maybe change? From PUT to PATCH, or similar?

I can reproduce the error @felliott.

I don't send any extra headers except the authentication token.

It's not something we handle explicitly in WB, and I'm not seeing it in Tornado.  That error suggests that something is not setting Content-Length header, but the PUT request to make a folder shouldn't have a content-length.
Can you try doing the same thing via curl?  The invocation would be:

I get a message that I am not authenticated as a response to the curl command:
curl -XPUT 'https://files.osf.io/v1/resources/hz9xv/providers/osfstorage/?kind=folder&name=test-name-01'

{"code": 401, "referrer": null, "message_long": "You must <a href=\"/login/?next=https://osf.io/api/v1/files/auth/?payload=eyJlbmMiOiAiQTI1NkdDTSIsICJhbGciOiAiZGlyIn0..pobuI2WqC9PJKAomIPuYoQ.J_4oto9OA2F8yT9qLOXGdTIrDXV49MSOON5weUMMEslOM4382YGgfL9GGlsUDx5d_U7ZQHPE2N4CpLFw1E9DWaicgOTrLYw1j8dZO1dHg-8QZ-NKWxPIs3L6FfWun2yn4u68YqIXM3Go4fAMf7f_4l2DQG9BaHZx-a2qpYbRQYnajd-7TlpHkluWwg19b_Vosw5hJXbqLl1j__c3lnww2Luoby5TL7u00wYQ2Z_ZnNepoik3VczRlv-xZLlrruiSq6RXnBYP_7dErAGS_droJkbakUVvtj9KvjjTLEbMdOj16Zs.EE_WPVXeQzpBBoB29rNRNg\">log in<\/a> to access this resource.", "message_short": "Unauthorized"}

which can be expected, as I am not logged in or passing a bearer token.
I will try the same using Postman if I find the time soon. That gives me easier ways to authenticate to the OSF API and play around with requests.
We haven't changed anything on our side since this error started occurring, so I doubt Qt started to do something fishy with its requests, but I'll check to be sure.

You can pass the auth header with:

Or you can do:
$ curl -H 'Authorization: Bearer asdjfha98234kadsf92' -XPUT 'https://files.osf.io/v1/resources/hz9xv/providers/osfstorage/?kind=folder&name=test-name-01'

to authenticate with your PAT, which you can create a https://osf.io/settings/tokens/.

Sorry, still haven't had the time to dive into this, but it is still on my radar and will have a look at it soon! (hopefully this week)

Although this issue is very stale, it's still relevant, and I only got around to looking into it now. I tried executing the above command with a PAT throught Postman, and that worked flawlessly. The problem thus must lie in our Qt codebase, and I will look into that.

Alright, that was a relative simple fix. If you perform a PUT request to the OSF, you apparently have to explicitly specify the Content-Length parameter in the request header. Qt apparently does not set this automatically to 0 if you perform a PUT request without any data. So by adding
if data_to_send is None:
    request.setHeader(request.ContentLengthHeader, '0')

folder creation works again without errors.


Tags API missing releases

Hey there,
I just noticed that creating and updating a release is missing from the tags api:
https://docs.gitlab.com/ce/api/tags.html#create-a-new-release
https://docs.gitlab.com/ce/api/tags.html#update-a-release
Would be very handy to have :)
Cheers

@Dbzman @svanharmelen  looks like support for this was added in #373, can we close out this issue?

@zaquestion Fine for me. We've been using it for a couple of weeks already. Works great! :)


IDE import of architecture variants

Split off from #777.  Add support for architecture variants during IDE import for visual studio and xcode.

Xcode IDE architecture support PR: https://github.com/gradle/gradle/pull/7900


Builder does not seem to function correctly when used for pivot field in edit form for BelongsToManyRelationManager

Package
filament/filament
Package Version
v2.10.41
Laravel Version
v9.6.0
Livewire Version
v2.10.4
PHP Version
8.1.2
Bug description
When trying to edit a previously attached BelongsToMany-relation, an error is thrown, which states Cannot access offset of type string on string in line 248 of the Builder return $this->getBlock($itemData['type']). After some research I think I found the culprit for this, see, I defined a pivot-model for the pivot data with the according casts, but this model is not involved when the Builder is fed with data/when retrieving the records for the table, which results in the Builder receiving just a string instead of the expected array.
A quick, albeit not so neat workaround is to manually re-add the cast by overriding the getTableQuery-method on the RelationManager and call withCasts in there.
Example:
public function getTableQuery(): Builder
{
    return parent::getTableQuery()
        ->withCasts(['your_builder_column' => 'json']);
}

Maybe you have a better idea to solve this, maybe this is so niche that it does not need to be fixed.
In the later case, just close this issue, at least this issue is here to lead others with the same problem to a solution. 😄
Steps to reproduce
No response
Relevant log output
No response

Hey, is this fixed by #2309?


Fixed riak_test so doesn't fail on starting inets.

A couple of tests each tried to start inets, and matched on 'ok'. The second
test that started it would instead get '{error, {already_started, inets}}'
instead. Wrapping the inets starts in a function to check for the not-
really-an-error error condition resolves it.

+1 fec8b87
Fails as described before fix, passes after. Changes look fine to me for search.


Almost all project are gone after upgrade

We upgraded from version 0.5.0 to 1.2.0 rc1
After the upgrade only 1 of 15 project was available in harbor.
Because of this we had to rollback to 0.5.0.
We use Docker version 1.12.3, build 6b644ec and docker-compose version 1.9.0, build 2585387
config-and-logs.tar.gz

For now we only support upgrade from 1.1.x to 1.2.0, but maybe we can help if you could provide detailed information on the steps you perform during the upgrade.

did you perform the migration before to update 1.2.0 rc1?

closing due to inactivity.


Helios Testing broken with Docker for Mac (beta)

The Docker for Mac beta ships a Docker setup packaged and well running on top of xhyve. Though the docker CLI is smart enough to find it (it knows where the socket is) other tools that look for the docker daemon need the DOCKER_HOST environment variable to be set. In this case, it should point at unix:///var/tmp/docker.sock.
Unfortunately setting DOCKER_HOST seems to break the TemporaryJobs.builder() as that contains a fair amount of glue to try and figure out where the heck Docker went. This results in the following stack trace:
[main] WARN com.spotify.helios.client.Endpoints - Unable to resolve hostname null into IP address
java.net.UnknownHostException: null: unknown error
    at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
    at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928)
    at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323)
    at java.net.InetAddress.getAllByName0(InetAddress.java:1276)
    at java.net.InetAddress.getAllByName(InetAddress.java:1192)
    at java.net.InetAddress.getAllByName(InetAddress.java:1126)
    at org.apache.http.impl.conn.SystemDefaultDnsResolver.resolve(SystemDefaultDnsResolver.java:45)
    at com.spotify.helios.client.Endpoints.of(Endpoints.java:92)
    at com.spotify.helios.client.Endpoints.of(Endpoints.java:79)
    at com.spotify.helios.client.HeliosClient$Builder.setEndpoints(HeliosClient.java:532)
    at com.spotify.helios.client.HeliosClient$Builder.setEndpointStrings(HeliosClient.java:548)
    at com.spotify.helios.testing.TemporaryJobs$Builder.endpointStrings(TemporaryJobs.java:663)
    at com.spotify.helios.testing.TemporaryJobs$Builder.endpoints(TemporaryJobs.java:658)
    at com.spotify.helios.testing.TemporaryJobs$Builder.configureWithEnv(TemporaryJobs.java:602)
    at com.spotify.helios.testing.TemporaryJobs$Builder.<init>(TemporaryJobs.java:562)
    at com.spotify.helios.testing.TemporaryJobs.builder(TemporaryJobs.java:507)
    at com.spotify.helios.testing.TemporaryJobs.builder(TemporaryJobs.java:502)
    at com.spotify.helios.testing.TemporaryJobs.builder(TemporaryJobs.java:494)
    at com.spotify.helios.testing.TemporaryJobs.builder(TemporaryJobs.java:490)
    at com.spotify.podservice.client.HttpPodserviceClientIT.<clinit>(HttpPodserviceClientIT.java:23)
    at sun.misc.Unsafe.ensureClassInitialized(Native Method)
    at sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:43)
    at sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:142)
    at java.lang.reflect.Field.acquireFieldAccessor(Field.java:1088)
    at java.lang.reflect.Field.getFieldAccessor(Field.java:1069)
    at java.lang.reflect.Field.get(Field.java:393)
    at org.junit.runners.model.FrameworkField.get(FrameworkField.java:73)
    at org.junit.runners.model.TestClass.getAnnotatedFieldValues(TestClass.java:230)
    at org.junit.runners.ParentRunner.classRules(ParentRunner.java:255)
    at org.junit.runners.ParentRunner.withClassRules(ParentRunner.java:244)
    at org.junit.runners.ParentRunner.classBlock(ParentRunner.java:194)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:362)
    at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:344)
    at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:269)
    at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:240)
    at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:184)
    at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:286)
    at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:240)
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:121)

I believe that this is caused by the following code path: https://github.com/spotify/helios/blob/83bb315662db0b1eede2385a178e2afe48d633e2/helios-testing/src/main/java/com/spotify/helios/testing/TemporaryJobs.java#L565-607
We end up hitting L596 and because DOCKER_HOST is set and will now try to parse unix:///var/tmp/docker.sock as a URI and call getHost() on it, which will return null. Because of the string concat and not explicitly checking for that null it means we end up adding an endpoint of http://null:5801.
This in turn causes the eventual java.net.UnknownHostException: null: unknown error when we try to do the DNS lookup for the host part of the endpoint.

Java and Unix sockets are not the best of friends, although I believe the docker client that helios-testing uses does support unix sockets.
Is it possible to simply configure docker beta for mac to listen on a tcp port?

Also, do you have any docker beta invites to hand out? ;)

I can use an IP but in this case that would be localhost/<IP_ADDRESS> which also seems to confuse Helios: https://github.com/spotify/helios/blob/9b45e0ded17147d9f6081874c80b5bf94a1dd4da/docs/integration_tests_with_helios_solo.md#issues-if-docker_host-refers-to-localhost-or-127001 😞
Unfortunately I don't get additional beta keys to hand out but after signing up for it I got my key within 3 days. So big chance that you can get one for yourself fairly quickly.

Thanks for tracing this down to the problematic code path. It seems like a bunch of tools make assumptions that docker-for-mac breaks.
I'm curious - does docker-for-mac set DOCKER_HOST for you by default, or tell you to run some sort of command similar to docker-machine env .. to set the proper variables? Or is it leaving it up to the user to figure out they have to set DOCKER_HOST to something?

It doesn't set DOCKER_HOST for you as the CLI binary that comes with it (and the other components) know where to find the socket in this case and just use that. Similarly it doesn't require the eval $(docker-machine env default) stuff.

@daenney ah that is what I figured, thanks. Hopefully my beta invite comes through soon so I can test this out locally as well 😄

@daenney just for completeness can you paste how your TemporaryJobs setup code looks like?

@danielnorberg i also got my key just 2 days after signing up, there doesn't appear to be an actual wait

#920 fixes a part of this, where TemporaryJobs.Builder tries to use the DOCKER_HOST value as a http:// URI.
The next issue I am seeing is that the container that is launched for my TemporaryJobs locally (with Docker for Mac) has an IP address like <IP_ADDRESS>, which TemporaryJob uses when probing the container to see if the service in it is up or not. For some reason this is not routable from the test running on the host. This might have more to do with Docker for Mac than anything in Helios though, I need to look further.

Another incompatibility: exec healthchecks are rejected if you run helios-solo locally on Docker for Mac because these checks fail - docker.info().executionDriver() is ""` for some reason.

I created a topic on the Docker for Mac forums about the IP address issues I am having now: https://forums.docker.com/t/ip-address-given-to-container-is-not-routable-in-bridge-mode/12725. This might be the last issue with helios-testing and Docker for Mac.

So, helios assumes that the IP address of the container (i.e. docker inspect -f {{.NetworkSettings.IPAddress}} container) is the address to use to reach the exposed ports of the service in that container. When TemporaryJob deploys a job with a port mapping, it probes the port at container_ip:port to check if the service is running before continuing with the test.
Docker for Mac gives a container an IP on a bridge, like 172.17.0.x, and then seems to map the external port of the container on the host (OS X). So if you expose port 80 on a container and it has IP address <IP_ADDRESS>, you would connect to localhost:80 from the OS X host, not <IP_ADDRESS>:80 (which you would use if using regular docker or docker-machine).
Routing to the container's IP seems to be not yet be supported in Docker for Mac.

 TemporaryJobs tries to figure out what address to use to communicate with any ports mapped from the container to the host, and ends up using a bad value for Docker for Mac.
I've found another new issue though - it seems like the port mapped by Docker for Mac accepts connections as soon as the container is started (i.e. if port 8080 on the container is mapped to localhost:31234, attempts to connect to localhost:31234 are accepted immediately), even before the process inside the container is listening to the port. This breaks assumptions by DefaultProber, which is responsible for determining when the service inside the container is "up" and when the actual test can resume.
If the TemporaryJob has a healthcheck, then there isn't an issue, but in cases where the "probing" of the port is assumed to be enough, then the test will end up running as soon as the container is started, which might be well before the container is actually accepting connections on the internal port.

Closing this as there is one known issue outlined in the previous comment but otherwise helios-testing works with docker for mac (as far as we know)


Adjust the parameters of pipeline script

Remove "metric" attribute and change the "baseline" to "type"

Ready to merage.


Can't bind to 'drawingControl' since it isn't a known property of 'agm-drawing-manager'.

If 'agm-drawing-manager' is an Angular component and it has 'drawingControl' input, then verify that it is part of this module.

If 'agm-drawing-manager' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the<EMAIL_ADDRESS>of this component to suppress this message.

To allow any property add 'NO_ERRORS_SCHEMA' to the<EMAIL_ADDRESS>of this component. ("
(circleComplete)="onCircle($event)"
[ERROR ->][drawingControl]="options.drawingControl"
[drawingControlOptions]="options.drawingControlOptions"): ng:///AppModule/AppComponent.html@14:4
Can't bind to 'drawingControlOptions' since it isn't a known property of 'agm-drawing-manager'.

If 'agm-drawing-manager' is an Angular component and it has 'drawingControlOptions' input, then verify that it is part of this module.

If 'agm-drawing-manager' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the<EMAIL_ADDRESS>of this component to suppress this message.

To allow any property add 'NO_ERRORS_SCHEMA' to the<EMAIL_ADDRESS>of this component. ("
(circleComplete)="onCircle($event)"
[drawingControl]="options.drawingControl"
[ERROR ->][drawingControlOptions]="options.drawingControlOptions"
[drawingMode]='options.drawingMode'
"): ng:///AppModule/AppComponent.html@15:4
Can't bind to 'drawingMode' since it isn't a known property of 'agm-drawing-manager'.

If 'agm-drawing-manager' is an Angular component and it has 'drawingMode' input, then verify that it is part of this module.

If 'agm-drawing-manager' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the<EMAIL_ADDRESS>of this component to suppress this message.

To allow any property add 'NO_ERRORS_SCHEMA' to the<EMAIL_ADDRESS>of this component. ("
[drawingControlOptions]="options.drawingControlOptions"
[ERROR ->][drawingMode]='options.drawingMode'

"): ng:///AppModule/AppComponent.html@17:4
'agm-drawing-manager' is not a known element:

If 'agm-drawing-manager' is an Angular component, then verify that it is part of this module.
If 'agm-drawing-manager' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the<EMAIL_ADDRESS>of this component to suppress this message. ("

<agm-map [latitude]="lat" [longitude]="lng" [zoom]="zoom">
[ERROR ->]<agm-drawing-manager
id="drawing-manager"
(polygonComplete)="onMapClick($event)"
"): ng:///AppModule/AppComponent.html@9:4
at syntaxError (compiler.js:2430)
at<EMAIL_ADDRESS>(compiler.js:20605)
at<EMAIL_ADDRESS>(compiler.js:26171)
at<EMAIL_ADDRESS>(compiler.js:26158)
at compiler.js:26101
at Set.forEach ()
at<EMAIL_ADDRESS>(compiler.js:26101)
at compiler.js:26011
at Object.then (compiler.js:2421)
at<EMAIL_ADDRESS>(compiler.js:26010)

Please send the documentation link of AGM drawing manager

closed see #1642