[P2P] Calculate ban time based on network configuration

In this PR we calculate the default ban time based on the network's target spacing and max reorg values:
Ban time = (target spacing in seconds) * (max reorg length) / 2

This is to ensure that the ban time never exceeds the amount of time it takes to create the amount of blocks equivalent to the max reorg value.
We check the type of ConsenusOptions to determine if the network is POW or POS. If it is POW, we use network's consensus powTargetSpacing, otherwise the network's consensus options TargetSpacingSeconds.
If the network does not have a max reorg value we use the FallbackMaxReorg constant on network.
The following changes should be noted:

TargetSpacingSeconds on the StakeValidator has been moved to ConsensusOptions.
FallbackMaxReorg in AddressIndexer has been moved to Network.
Some of the peer banning tests in the consensus feature has been moved Stratis.Bitcoin.Tests.

https://dev.azure.com/Stratisplatformuk/StratisBitcoinFullNode/_workitems/edit/4023

ConsensusOptions is supposed to disappear at some point, I'd recommend not puting anything there.
What's the difference between MaxReorg and FallbackMaxreorg. I understand it's a property of the indexer but why move it to consensus.

I am also  it sure I agree with the logic of this change.
A node that was banned and passed max reorg will still be able to jump on the main chain as long as they dont mine a new longer chain (max reorg applies to the longest chain not the banned nodes chain).
What's the reason behind deviding the max reorg second in two?
The ban reason that lead to this change was determined?

Every time we try to add something to ConsensusOptions the PR author gets hit with "we're going to remove ConsensusOptions soon", but there's nowhere else to put this stuff sensibly yet, and when we do remove ConsensusOptions it will be nice to have the problem all in one place :)

@dangershony what would you say about how:

IBD
MaxReorg
MaxTipAge
Ban time

Are related? Are some of them related and some not?

@codingupastorm what is the reason that nodes get banned? (what triggered this PR?) I think this should be addressed first. If miners get banned and fork away it indicates a biggere problem becuse forking to a new chain is not that easy if a node is playing by the rules.
I'd also agree perhaps we ban too fast, ideally a ban is long term and is removed after soetime just so to not lock the ip anymore. reducing a ban time is not the best solution to bypass consensus bugs.
Fiar point with ConsensusOptions  best I can do is try to prevent adding stuff to it, better put things in IConsensus perhaps or the consensus factory?

@dangershony @quantumagi I moved TargetSpacingSeconds to Consensus, let me know how this feels/looks like.
I think we can move TargetSpacingSeconds to Network or just delete TargetSpacingSeconds?
Or how do we handle networks that have both POW and POS eras?

Hey @fassadlr et al.
Why not make ban time just configurable per network. Doesn't have to be bound to TargetSpacing.
Just like we now know that MaxTipAge needs to get us within MaxReorgLength, we can document these constraints but allow the user to configure the values.
This PR would only need to be changed slightly I think!
Thoughts?

@fassadlr can we close this?

Closing as this was fixed in #3796


emoji: Add unified_reactions.json to the sha1sum.

While working on emoji earlier, I noticed we need to regenerate emoji when this file changes, so I'm adding it to the sha1sum.

Merged, thanks @evykassirer!


Default picture is not correspond figma template if the photo is not uploaded

Actual result:
When the photo is not uploaded the default picture looks like a camera.

Expected result:
There is a default picture on the screen. Please, see template:
https://www.figma.com/file/aD00e3k2pLwhEhBDq5VkJO/Mobile-Application?node-id=2545%3A0

New link for the template in light and dark themes — https://www.figma.com/file/aD00e3k2pLwhEhBDq5VkJO/Mobile-Application?node-id=6379%3A12774&t=PVDvkhAWpLJ5A28g-1


Add configuration option to run code analysis

Add "/p:Analysis=True" to the msbuild command to run code analysis. Separate PR to add it to CI/CD pipeline to follow.
Signed-off-by: Alan Jowett<EMAIL_ADDRESS>

@dthaler Why would we run analysis over test code? That seems redundant.

To catch bugs in tests.  Code analysis is applicable to everything.

To make things simpler, I am moving the common code analysis settings to a .props file and including it from all the projects. As we update the analysis setting, all projects will pick it up.

Enabled all analysis rules that currently pass; document and suppress rules that trigger failures.


GDAX Import keeps erroring out

Note: for support questions, please join our Discord server

I'm submitting a ...
[x ] bug report
[ ] feature request
[ ] question about the decisions made in the repository

Action taken (what you did)
Running import of 6 week timespan

Expected result (what you hoped would happen)
data import

Actual result (unexpected outcome)
Partial data import. Child process dies. Ubuntu Linux 16.04-64bit. Insured system is not going to sleep. Console output:

<-- POST /api/scansets
--> POST /api/scansets 200 831ms 124b
/opt/gekko/exchanges/gdax.js:262
log.debug('Backwards: ' + last.time + ' (' + last.trade_id + ') to ' + first.time + ' (' + first.trade_id + ')');
^
TypeError: Cannot read property 'time' of undefined
at Trader. (/opt/gekko/exchanges/gdax.js:262:48)
at Request._callback (/opt/gekko/node_modules/gdax/lib/clients/public.js:45:7)
at Request.self.callback (/opt/gekko/node_modules/gdax/node_modules/request/request.js:187:22)
at Request.emit (events.js:159:13)
at Request. (/opt/gekko/node_modules/gdax/node_modules/request/request.js:1044:10)
at Request.emit (events.js:159:13)
at IncomingMessage. (/opt/gekko/node_modules/gdax/node_modules/request/request.js:965:12)
at IncomingMessage.emit (events.js:164:20)
at endReadableNT (_stream_readable.js:1054:12)
at _combinedTickCallback (internal/process/next_tick.js:138:11)
RECEIVED ERROR IN IMPORT<PHONE_NUMBER>47063
Child process has died.

Other information
I have tried this numerous times and it continues to fail.

I have had this problem too on Ubuntu 17.10. I was importing GDAX and found out that this problem can be caused by 2 things.

The exchange did not have the data because it does not exist at the range you are asking for.
Some other reason that I do not know yet but think it could be due to either sending too many requests to the server or some glitch in the system either on your end or the exchange's.

If I get time or if someone else can, add a debug line to see what gekko is receiving for import and wait for the import to fail. We can then further debug the problem or at least know more about the source of the error.

This also occurs on Windows 10, sometimes immediately, sometimes after a few days of data has been imported.  It used to work perfectly, so I suspect the issue is on GDAX's end, possibly due to high server demand.

should be fixed now :)


cmd/compile: invalid for range loop executes w/o error message

This program

http://play.golang.org/p/RXFJJh5KRw

reports an error as expected, albeit a confusing one. This is related to, or the same as
issue #6764.

A short variable declaration in a for range loop can never redeclare an existing
variable because a for statement opens a new scope and thus there are no variables
declared earlier in that scope. So there should be a double declaration error.

Interestingly, adding an external declaration appears to "fix" the problem:

http://play.golang.org/p/4spddNy6Ki

The code compiles and runs without errors. Output:
0
1
2
3

Here it looks like the short variable declaration actually was handled like a
redeclaration of the outer a. Interestingly, value assigned to a is the index and not
the indexed element. Contrast this (and its output) to the following correct program:

http://play.golang.org/p/BWZD1fCWKj

Output:
1
2
3
3

@griesemer, it seems like CL https://go-review.googlesource.com/c/4851 solved the
issue(the CL is from February 2015, while this issue is from November 2013) repros
in https://github.com/golang/go/issues/6772#issue-51285695

https://play.golang.org/p/RXFJJh5KRw
https://play.golang.org/p/4spddNy6Ki
both fail to compile with error a repeated on left side of :=
which are the expected results.

Let me write a CL to lock in this behavior with tests.


[firebase_messaging] onMessage is missing notification.image

Issue
notification.image is missing from _onMessage
I know my server is working correctly because when my app is running in the background, and I send a notification over to my Android, the image appears. but when I try to handle the notification in foreground mode, I want to catch it with _onMessage and show the image in a flushbar. But I cannot because notification.image is missing.
The expected behaviour is notification.image should be present.
The Code
class FirebaseMessenger {
  static final FirebaseMessenger _singleton = FirebaseMessenger._internal();
  final FirebaseMessaging _fcm = FirebaseMessaging();
  static BuildContext _context;

  FirebaseMessenger._internal() {
    _fcm.configure(
      onMessage: _onMessage,
      onLaunch: _onLaunch,
      onResume: _onLaunch,
    );
    _fcm.requestNotificationPermissions(
        IosNotificationSettings(sound: true, badge: true, alert: true, provisional: true));
  }

  Future<dynamic> _onMessage(Map<String, dynamic> json) async {
      Log.debug(json.toString());
      var fbMessage = FirebaseMessage.fromJson(json);
       _showFlushbar(fbMessage);
  }
}

Output of Log.debug
{
notification: {
  title: perrylicious,
  body: Replied to your comment: Can't wait to come here next Friday!!! 🥩
},
data: {
  flashReply: 92,
  postId: 134,
  goto: post,
  click_action: FLUTTER_NOTIFICATION_CLICK
}
}

Flutter Doctor
E:\Magic\burntoast\crust>flutter doctor -v
[√] Flutter (Channel stable, v1.17.2, on Microsoft Windows [Version 10.0.16299.15], locale en-AU)
    • Flutter version 1.17.2 at C:\Apps\Flutter
    • Framework revision 5f21edf8b6 (11 days ago), 2020-05-28 12:44:12 -0700
    • Engine revision b851c71829
    • Dart version 2.8.3

[√] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at C:\Users\Luna\AppData\Local\Android\Sdk
    • Platform android-29, build-tools 29.0.3
    • ANDROID_HOME = C:\Users\Luna\AppData\Local\Android\Sdk
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b04)
    • All Android licenses accepted.

[√] Android Studio (version 3.6)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin version 45.1.1
    • Dart plugin version 192.7761
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b04)

[√] Connected device (1 available)
    • SM G970F • RF8M21WE1TT • android-arm64 • Android 10 (API 29)

• No issues found!

Hello, Is there any chance we can get this ? I really need it to display a local notification when the app receives notification in the foreground.
It's really simple to add this feature, and i think it's much needed, Thanks.


input reset on safari mobile

By default it adds a inner shadow. I fixed using this code:
input {
  outline: 0;
  border: 0;
  box-shadow: none;
  @extend .input-reset;
}

I undestand that maybe outline:0 it out of .input-reset but what do you think about the rest?
why, currently, border: 0 and padding: 0 is only applied for mozilla?

Thanks for the PR but going to pass on this change for a few reasons.

Tachyons doesn't apply opinionated visual styles to elements by default
This removes some important accessibility features without replacing them with an equivalent
Tachyons doesn't use @extend

For what it's worth the next minor release will feature more ways to compose hover and focus styles on form elements and will provide a way to remove the default box-shadow when an input has focus.

Sounds nice. The @extend was just an a example related with my code.

@mrmrs related with that: Now I discovered outline-0, but still is necessary for me the tricky code for border:0.
What do you think about include .border-0 class? Looks like have sense.


Seems like a lot of duplicate effort

There is a pretty robust codebase in https://github.com/PoisotLab/SpeciesDistributionToolkit.jl that already does many of the stated goals of this package. What functionality are you interested in that isn't in SDT? We could always work to add that functionality to SDT rather than duplicate a bunch of effort...

It's a fair point, but I think it extends to more than just those two packages. SpeciesDistributionToolkit.jl implements a bunch of features that are already in Rasters.jl or RasterDataSources.jl. Not to mention GBIF.jl and GBIF2.jl.

What functionality are you interested in that isn't in SDT?
Basically to make a package that actually fits ensemble models, and evaluates them, and projects them, similar to e.g. biomod2 in R. The most obvious way to do this (it seems to me) is to depend on MLJ. I needed that functionality for my own research and figured I might as well make a package.

SDT and related packages offer some tools to load and manipulate spatial and occurrence data, but don't actually fit models (and explicitly say that fitting models is not the goal).
The reason I started it as a separate package is that I would much rather depend on packages like Rasters.jl and MLJBase.jl with a lot of uses and users, instead of packages like SimpleSDMLayers.jl.
That said, I can see I ended up adding some tools here (e.g. spatial thinning) that could also fit in SDT.
Does that make sense?

Sure, if it makes things easier for your research you should use whatever gets the job done most efficiently---that makes sense.
That being said, over the next couple years of my postdoc fellowship, a major goal is to add interfaces to MLJ (and other computer vision specific tools) in SDT, likely building on the API in the (very recently released) SDeMO.jl subpackage of SDT.

That said, I can see I ended up adding some tools here (e.g. spatial thinning) that could also fit in SDT.

Happy to accept any contributions (and spatial thinning is a great one)

I didn't know about SDeMO.jl and I'm happy to hear that you will add interfaces to MLJ.
I have tried as much as possible to fit new functionality into existing packages, so this package can be as small as possible (and to avoid siloing and duplicate efforts).
The MLJ ecosystem already has a lot of really useful functionality. An example is a whole package that deals with confusion matrices and performance measures: https://github.com/JuliaAI/StatisticalMeasures.jl, which I can see SDeMO.jl re-implements from scratch.
I can see a use case for a very lightweight package with a few functions that really are specific to SDMs (and that both this package and SDT could depend on). But I can't think of very many functions that wouldn't fit into some other already existing package.

I would love to offer things like BIOCLIM, which I can see you have implemented. But that would be much easier if it were registered as a standalone package (ideally with an interface to MLJ - but I understand if that's not a priority) so it would be much more lightweight.
I implemented Maxnet for instance, but as a completely separate package: https://github.com/tiemvanderdeure/maxnet.jl

I would just like to point out that @tiemvanderdeure is a serial contributor to Rasters.jl and the wider geospatial ecosystem, RasterDataSources and the MLJ ecosystem specifically due to this package intentionally being a small component of a wider functioning ecosystem. Its not really fair to say what this package should be without understanding the context.
See:
https://github.com/search?q=org%3AJuliaAI++tiemvanderdeure&type=pullrequests
https://github.com/EcoJulia/RasterDataSources.jl/pulls?q=is%3Apr+author%3Atiemvanderdeure+
https://github.com/rafaqz/Rasters.jl/pulls?q=is%3Apr+author%3Atiemvanderdeure+
Maxnet.jl was specifically written for this package to build on, but you can use it too. To get faster point extraction here, Tiem and I fixed extract to Rasters.jl: https://github.com/kadyb/raster-benchmark/pull/18 - its looking like the fastest alg in the world now.
To me it seems that in the long term the approach taken here is better for science in Julia than the approach of SimpleSDMLayers.jl.
In Julia we are limited by a small community but our strength is the ability to reuse code across domains by building small, modular components that leverage other packages. See https://www.youtube.com/watch?v=kc9HwsxE1OY

I would love to offer things like BIOCLIM, which I can see you have  implemented.  But that would be much easier if it were registered as a standalone package (ideally with an interface to MLJ - but I understand if that's not a priority) so it would be much more lightweight.

I think we're speaking past each other a bit here. All of the packages within SDT.jl are registered separately.
The reason for combining each package into the meta-package SDT.jl  (like Tidier.jl) is SDT.jl (as a whole meta-package) is not designed to be used by seasoned Julia programmers, it is largely for teaching purposes. Most people who work with SDMs do not know (or perhaps have never even heard of!) Julia. SDT is meant as an 'all-in-one' introduction to the language for the median SDM practitioner that exclusively works in R. People who know Julia will know how to install the specific sub-packages they need for a given purpose.

To me it seems that in the long term the approach taken here is better for science in Julia than the approach of SpeciesDistributionToolkit.jl (and involves much less duplication of effort in total).

I agree the modular approach is generally better for scientific software and  the language development as a whole.
Still, I've found that getting ecologists to use these tools requires meeting them halfway, which is why I think convenient (though inefficient) meta-packages like SDT.jl will bring more users to the language.

I can see a use case for a very lightweight package with a few functions that really are specific to SDMs (and that both this package and SDT could depend on). But I can't think of very many functions that wouldn't fit into some other already existing package.

Agreed. It'd be nice to have a common API for operations on SDMLayer/Rasters, and for shared calls between this package and the prototype model fitting api in SDeMo

SDT.jl is not designed to be used by seasoned Julia programmers

Rasters.jl and SpeciesDistributionModels.jl are also not designed to be used by seasoned programmers. They are pretty easy to use these days. To smooth the transition from other languages we are also part of cross-language initiatives, like this work-in-progress book: https://geocompx.org/jl

meta-packages like SDT.jl will bring more users to the language

I'm not sure. The thing almost always brings people to Julia is a paradigm shift in scale or performance

To focus on the topic of the issue: what I look for to reduce duplication of effort is a focus on the key underlying tools we share and are important in the wider ecosystem. Like fixing bugs and performance in MLJ.jl and other stats packages, or helping us on the geospatial packages you rely on in SpeciesDistributionToolkit.jl that we currently maintain with a few others in our spare time. Making high level packages like SDM/SDT work together is harder and has lower returns.

I know most people that use SDMs use R. And I really hope to be able to contribute to changing that.
I just don't think making a whole ecosystem of packages that is completely parallel to other Julia packages is the way to go, though.
It doesn't take me long to find code in SDT.jl to broadcast over rasters, and mask them, and to read in climate data, while Rasters and RasterDataSources already does that. I think that's a shame, both because it's a huge amount of duplicate effort to write and maintain, and because it's never going to compete with Rasters.jl in terms of speed (or indeed user-friendliness), becuase Rasters.jl has 1000s of people using it and maybe dozens contributing.
So to go back to your question of what this package should do that SDT.jl doesn't do: I wanted to make a package that works with the existing ecosystem of spatial data and machine learning packages. I knew that SDT.jl existed, but didn't see it as an option because it exists within a parallel universe.


Update docs and screenshots to reflect current UI

The documentation shows a screenshot with Jenkins commenting "Build started" but this doesn't seem to happen out of the box and I can't find any config to make it do that 🎅

Ah yes, that feature used to exist, but was recently deprecated (it's really noisy, and was only useful before Harbormaster supported build artifacts).
I need to update the screenshots to show what it looks like with a modern phabricator.

Ah okay, just didn't spot the tiny little link to Jenkins there - worth mentioning in a docs update 👍

@sectioneight  will u update  the screenshots & doc later?
I had tried to use jenkins2 and phabricator-jenkins-plugin,it seems in jenkins2 we must write a pipline file to use this plugin ?

pipelines are still optional on Jenkins 2, I'm using this plugin on Jenkins 2 with no pipeline, just the old setup that we've had working since Jenkins 1

We're blocked on upgrading to Jenkins 2 internally (cc @jjx). Will follow up on this one once we're running 2 in prod.

Note: also need to document staging areas


Fix some issues related to serialization

This PR addresses a few issues I have identified so far. @eireland, I'll use your single-snapshot-type-exp branch as a base branch for PRs, and when things are reviewed and working, I'll simply merge it into master.

Temperature restoration was broken because this.setClimateChangeEnabled(snapshot.climateChangeEnabled); was called, which zeroes the temperature. We don't need to serialize the climate change switch value, as it cannot be changed during the simulation.
I've simplified and fixed how we skip unnecessary snapshots. When vegetation stats are the same, I reuse the existing cellSnapshot but still serialize other properties (like droughtLevel and temperature) since they might change. That was probably a second reason why the temperature was not restored correctly. They are also cheap to serialize. This approach ensures we never have to deal with undefined snapshots, making snapshot restoration simpler.
Related issue - incorrect vegetation stats were compared when checking if we could optimize the snapshot.
Now, I am serializing and restoring _vegetation without calling setVegetation, as that method also resets vegetation age, which would change/break simulation progress.

@eireland,

Though I still don't understand how this restores the fire events?

The only difference between a fire event and a non-fire event snapshot is sparks array. Everything else is the same. So, if the snapshot is taken when sparks array still has some sparks in it (that's true until the end of the fire event), we're taking a "fire event snapshot".


the unistring module contains a lone > 16 bit unicode escape

(Original issue 754 created by RonnyPfannschmidt on 2012-04-02T13:57:31.357521+00:00)
it seems like it was added by hand, looking for the commit thats at fault

(Original issue 754 last updated on 2012-05-08T12:25:07.529776+00:00)
(Issue automaticaly closed due to status in Bitbucket: wontfix)

(Original comment by RonnyPfannschmidt on 2012-04-02T14:50:28.484282+00:00)
seems like its there since the first checking, but it doesnt actually get regenerated be default

(Original comment by birkenfeld on 2012-05-08T11:14:10.181013+00:00)
Well, that's intentional (see the try-except).  What is the problem with it?

(Original comment by RonnyPfannschmidt on 2012-05-08T12:25:07.510376+00:00)
it breaks on python on windows when the unicode width is 16 bit instead of 32 bit


Work in progress: Fix cannot fill in fields with pipes (|) in name-attribute

Fixes #702
Fixes non working sentence:
Feature: fill in fields with pipes (|) in name-attribute

  Scenario:
    Given I am on "/test.html"
    When I fill in "a|b|c" with "foobar" #  the name selector could not be found
    Then the "a|b|c" field should contain "foobar"

Non working context
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form>
    <input type="text" name="a|b|c" />
</form>

</body>
</html>
```

@gabel the PR should be opened on the mink repo, not on your fork.
And anyway, this is wrong. There is nothing forcing to have spaces around a pipe operator in XPath. And there is nothing forbidding to add spaces around a pipe in XPath strings.

@stof: lol ... for sure... :smile:


ISPN-9223 1PC isn't properly implemented in Hot Rod Client

https://issues.jboss.org/browse/ISPN-9223

I triggered a new CI build as there were many failures: all of them unrelated, but better be safe

Integrated into master, thanks @pruivo !


Update the debugging information

Describe the issue
The documentation for debugging the BMW App can be updated using updated tools like mitmproxy's wireguard support. I've documented the approach I've used for my own exploration here: https://github.com/colinbendell/bmw#debugging-the-mybmw-app
Expected behavior
Update the documentation using my approach. This is a simpler workflow and consistently works even with a virtual device emulation.

Hi, thanks for the heads up! Amazing work you have done there as well, especially with documenting all the quirks.
Two things come to mind:

Should we have a single "point of truth" for those documentation issues?
What kind of AVD and OS are you using? I have had issues on Android x86 AVD...

Should we have a single "point of truth" for those documentation issues?

Are you thinking about the debugging process or about the APIs themselves? Absolutely. WDYT about a separate repo that documents the current APIs, responses, etc?

What kind of AVD and OS are you using? I have had issues on Android x86 AVD...

I was using the latest AVD on a x86 macOS and separately on an m1 (arm64)


GET answers

Sample Request
GET /qa/questions/553458/answers?page=3&count=2
Sample Results
{
   "question":"553458",
   "page":3,
   "count":"2",
   "results":[
      {
         "answer_id":1081552,
         "body":"Animi id debitis sit.",
         "date":"2021-01-16T08:10:47.867Z",
         "answerer_name":"Ike_Spencer",
         "helpfulness":14,
         "photos":[

         ]
      },
      {
         "answer_id":1081553,
         "body":"Accusamus repudiandae in.",
         "date":"2020-09-28T12:40:25.515Z",
         "answerer_name":"Misael.Cummerata68",
         "helpfulness":14,
         "photos":[

         ]
      }
   ]
}

 GET /qa/questions/:question_id/answers

Codecov Report

Merging #1 (39f834b) into main (772233e) will decrease coverage by 11.74%.
The diff coverage is 77.14%.

@@             Coverage Diff             @@
##             main       #1       +/-   ##
===========================================
- Coverage   88.88%   77.14%   -11.75%
===========================================
  Files           1        5        +4
  Lines          18       70       +52
  Branches        2       13       +11
===========================================
+ Hits           16       54       +38
- Misses          2       13       +11
- Partials        0        3        +3

Impacted Files
Coverage Δ

middleware/asyncTry.js
33.33% <33.33%> (ø)

middleware/requestParser.js
69.56% <69.56%> (ø)

routes/get.js
96.55% <96.55%> (ø)

middleware/index.js
100.00% <100.00%> (ø)

sql.js
100.00% <100.00%> (ø)

app.js

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 772233e...39f834b. Read the comment docs.


Ability to use more keyboard keys to control the camera

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Yes, controlling the camera with the mouse can sometimes trigger the "highlighting" of the model to be activated. This is annoying when trying to record a screen capture video whilst flying through the dataset since it forces you to stop moving and click somewhere in the skybox or an area on the map tile that is empty of data.
Also, if the user wants to adjust the movement speed of the camera (say when you get closer to the ground and you want to slow things down) you have to stop pressing the W key and then adjust the movement speed with the mouse pointer. This is also a disruptive thing to do whilst making a screen capture recording.
Describe the solution you'd like
A clear and concise description of what you want to happen.
It would be great to at least have the option of using the arrow keys to control:

the direction of the motion of the camera (up,down, left, right)
control the speed of the movement through the model (using the + and - keys)

Lastly, if there was an "aircraft simulation mode" that would make pressing the left or right arrow key cause the camera to "roll" like an aircraft would also be useful for some situations.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
I've tried all of the other available keyboard control keys.
Additional context
Add any other context or screenshots about the feature request here.

It would be great to at least have the option of using the arrow keys to control:

the direction of the motion of the camera (up,down, left, right)

This can be achieved with the Key Bindings system (In the menu bar under System, or Ctrl+B) in the latest builds.

control the speed of the movement through the model (using the + and - keys)

This can be done via the scroll wheel (In the Settings window under Input & Controls), to my knowledge this works similar to how Geoverse does.
@OsiJr can probably provide more information on the roll mechanic.

Thanks for the info about the key bindings - I will check them out.
The scroll wheel causes the camera to "jump" either forward or backward - it does not affect the move speed permanently. Allowing the user to control the move speed using the + and - keys would be nice and simple / smoother way to do it in my opinion.

The scroll wheel causes the camera to "jump" either forward or backward - it does not affect the move speed permanently.

As I said you need to check the setting in Settings window under Input & Controls, it defaults to Zoom not Movement Speed. What you described, sounds like the Zoom mechanic.

I will check the settings but what I am really asking for is that the use of the + / - keys be made to be "default" functionality like the ASDF keys.

You are correct - there is a setting for what the mouse scroll does:
either "dolly" or "move speed".
I think having the mouse wheel just be "dolly" and let the + / - keys to control the move speed is far more intuitive and similar to how other software works.

#449 fixes this.


How to reset to prior module?

I had commented out some tests so they passed and it moved on to the next one. I want to go back and complete those tests now. What do I need to do to make arrays the current challenge?

figured this out, whoops


Add generic API client and Hawk request signing for requests to other APIs

Issue number: N/A
Description of change
This adds a generic API client and a Hawk authentication class compatible with requests.
These will be used for making requests to the company timeline API.
Checklist

[x] Have any relevant search models been updated?
[x] Have any relevant fixtures (fixtures/test_data.yaml) been updated?
[x] Have any relevant select-/prefetch-related field lists in the views and search apps been updated?
[x] Has the admin site been updated (for new models, fields etc.)?
[x] Has the README been updated (if needed)?

Codecov Report

Merging #939 into develop will increase coverage by <.01%.
The diff coverage is 97.56%.

@@             Coverage Diff             @@
##           develop     #939      +/-   ##
===========================================
+ Coverage     96.6%   96.61%   +<.01%
===========================================
  Files          177      178       +1
  Lines         4922     4963      +41
  Branches       470      473       +3
===========================================
+ Hits          4755     4795      +40
  Misses         112      112
- Partials        55       56       +1

Impacted Files
Coverage Δ

datahub/core/api_client.py
97.56% <97.56%> (ø)

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 f6a4d30...d66c10f. Read the comment docs.

I've gone a bit further, perhaps, by making them all internal, but there should be no reason for anything else to use those attributes. For me, it's less noise as the public interface is smaller.

Yeah, that's what I meant, apart from api_id and api_key the other ones could be probably changed dynamically without crazy/weird problems.


Enable relayer to use ESTIMATION_ADDRESS (0x1) when estimating relays from optimism

We cannot use the 0x1 Estimation address hack by Optimism because we use the tx.origin in ArbitrumL1Messenger as authentithicaiton for payment of the submission fee. 0x1 during estimation has a deposit of 0 -> revert.
This imposes the problem that the gas estimation cannot be used and the agent needs to try and retry blindly until relaying a message works. This could drain the agent’s funds.
Options
We can get back to the OP hack once we either don’t use the
tx.origin in the ArbitrumL1Messenger anymore or we are able to deposit on behalf of “0x1” (hack for the hack)
Edit: We could actually hardcode a deposit of the 0x1 address. There is no need to actually deposit anything.

partially duplicate of #1589


refactor: improve useEffect in Monaco

This PR...
Changes

Fixes

How to test it

Screenshots

Checklist

[x] tested locally
[ ] added new dependencies
[ ] updated the docs
[ ] added a test

lgtm!


Documentation: provide more information about tiers/badges

:link: https://docs.opencollective.com/help/developers/widgets
Reading through the avatar code for backer/sponsor images, it appears that it's really important to name backer tiers according to what Open Collective expects.
i.e. it specifically looks for the word "sponsor" in the tier name and changes the avatar size based on if the tier name has "silver", "gold", or "diamond" in the name
That seems like important information to document somewhere or to make visible to collective admins.

Should I rename the issue or create a new one?


Only my user record is added to hubot brain. How are users added to hubot?

I am having problems with getting hubot-auth to save user roles, and I installed hubot-brain-inspect to check what was in brain.users.

ubibot brain show users
ubibot 2:36 AM
zgfuB2P5P2ErF6Nyr edzillion

It shows only myself.
Yet, if I use the onlineUsers method added in this PR https://github.com/RocketChat/Rocket.Chat/pull/3799 (which really should be documented)

ubibot list online users
ubibot 2:33 AM
Johnny Appleseed, Ed Zillion, Adam Stoppard and Marc Johnstone are currently online
edzillion 2:36 AM

It shows an accurate list.
How are users added?

For anyone wondering, hubot only stores the users that have interacted with it. I had to make a helper function to add users to the brain:
robot.respond(/sync users with brain/i, function(msg) {

    if (!userHasRole(robot,msg,'admin'))
      return;

    var promise;
    promise = robot.adapter.callMethod('botRequest', 'allUsers');
    return promise.then(function(rocketChatUsers) {
      if (!rocketChatUsers)
        return console.error('no rocketchat users!');
      var prevUsers = robot.brain.users();
      var addedUsers = [];
      var user;
      for (var i=0; i<rocketChatUsers.length; i++) {
        if (prevUsers[rocketChatUsers[i]._id]) {
          continue;
        }
        user = robot.brain.userForId(rocketChatUsers[i]._id, {
          name: rocketChatUsers[i].username,
          alias: rocketChatUsers[i].alias
        });
        user.room = 'ubibot';
        user.roomID = 'Qt2v8pePHzgCihHZF'; //this is the id of the ubibot room
        addedUsers.push(user);
      }
      msg.send(addedUsers.length+" Users added to brain");
    }, function(error) {
        msg.send("Uh, sorry I don't know, something's not working");
    });
  });

Thanks for sharing!  We almost need a tips and tricks section for useful little snippets like this

@geekgonecrazy @edzillion - I'd love to start something like that and add a reference to the docs. I don't think it should go in the docs directly, because it will get crowded and make it harder to find the higher priority content. Do either of you have a suggestion for something like a public snippet collection? Apparently you can't use gists in an organisation - maybe we'd need another repo for just adding script snippets in markdown that demonstrate advanced use cases for the adapter.

Yeah @geekgonecrazy , I don't think it would be surfaced easily in a repo alongside an actual bot implementation codebase. Needs a dedicated and basic collection, preferably indexed somehow. Maybe a GH pages repo, just with markdown files for each tip and an index file linking to them.
We could possibly put that in a subdirectory of the adapter too and exclude it from NPM. Wouldn't add anything for deployments, only a few more KB for developers pulling the repo. Where having the snippets on hand might be useful anyway.

^ come to think of it, the only file that needs to be published to npm is the index.js

If that was done the GitHub pages would be available at: https://rocketchat.girhib io/hubot-rocketchat but more importantly actually at: https://rocket.chat/hubot-rocketchat

Correct

🎉  http://rocketchat.github.io/hubot-rocketchat/snippets  🎉
Check it out!
I haven't added a GH pages index yet, because I guess that should be the Readme, but it's under review so we'll wait till it's updated.


Set underlying console QTextEdit widget as proxy for QtConsole focus

This is meant to be a precursor to fixing https://github.com/napari/napari/issues/5166, allowing napari to programmatically set the keyboard focus on the console.
This is draft for now as I intended to open this in my own fork and need to fix the test failures in CI. Sorry!

the test failure is connected with imageio 2.22.1 release You need to block this version or wait until the next imageio release (as the bugfix is already merged in imageio).

the test failure is connected with imageio 2.22.1 release You need to block this version or wait until the next imageio release (as the bugfix is already merged in imageio).

Thanks - this saved me some digging and worked well, but now the tests fail for a reason I'm struggling with.
It seems to me likely related to https://github.com/pytest-dev/pytest-qt/issues/206 but I'm going to close this PR until I can figure it out in my own fork.

I'm familiar with this type of problem. Point it out, and maybe I could provide you a proper solution.

Thank you! I managed to get it working in my fork but of course appreciate your input on the changes. I'll reopen this so you can look here.

Thanks - my impression is that any minimal WM should work and I only selected herbstluftwm because it was suggested by the pytest-qt docs. I did very briefly try using twm but it was not immediately working. Let me know if there's anything else you'd like me to try. If there's a way to do this without running any WM at all that would be great!

When I locally test, it is enough to set the environment available to QT_QPA_PLATFORM=offscreenand add QT_QPA_PLATFORM to passenv section in tox.
This should allow us to not use xvfb at all. But I'm not sure which variant is better.

Oh neat thanks - I was not aware of QT_QPA_PLATFORM.

This PR along with https://github.com/napari/napari/issues/5166 works wonderfully as advertised. I also tested +/- each of the PRs and there are no issues with one or the other is missing.

Thanks again for all the review effort and suggestions!


sidebar menu is double!

I created a fresh site and installed personal-web as theme. i used the examplesite demo config and fired up the localserver. The sidebarmenu doesn't function as should! I see the same content twice, and when i switch to mobile view it doesn't use the hamburger-menu, it just shows the open menu twice below eachother!
screenshot: https://imgur.com/a/YKENpE8
Probably a small mistake in a layout or something? I'm not skilled enough to just edit this....
(Too bad! i'm really looking forward using this theme...)

Sorry I used the wrong version of Hugo (i didn't use the extended version)


Decouple layer selector from legends.

In order to be able to show one without the other because of map options.
cc @alonsogarciapablo @piensaenpixel

Ready for a second pass.


⚠ Bofrost.at has degraded performance

In fb78f8f, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1239 ms

Resolved: Bofrost.at performance has improved in afd7a85.


[admin] Publish

Learn Build status updates of commit ced97de:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/excel/custom-functions-dynamic-arrays.md
:white_check_mark:Succeeded
View

docs/excel/custom-functions-web-reqs.md
:white_check_mark:Succeeded
View

docs/index.yml
:white_check_mark:Succeeded
View

docs/outlook/testing-and-tips.md
:white_check_mark:Succeeded
View

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


[Q]Alignment and wrap-text

💬 Questions and Help
Hi!
I have a doubt with the aligment property and the wrap text option.
When i do:
worksheet.getRow(startRow).alignment = { wrapText: true };
The cells auto-fit the height and work fine, the problem comes when i use this option and the cells
are merged. If the cells are merged the height is the default height..
Is there any way to use the option with merged cells?
Thanks in advance!!

Are you applying the alignment before or after merging? I know unmerging will break any styles associated, which I would think merging would do the same.

The result of align, before of after, when merge are the same. Or i think so.
You can test in this fiddle:
https://jsfiddle.net/q8o0ny73/1/

This is by design https://excel.tips.net/T003207_Automatic_Row_Height_For_Merged_Cells_with_Text_Wrap.html

Thanks so much!!

I try to anthor way to resolve this problem.
just set row height，i will compute the word length and row count
worksheet.getRow(i).height = word length / row contain length * 13.5


LinkStowr Sync failed

Hi all, my LinkStowr suddenly is also experiencing the issue that Sync to Obsidian is failing. Worked fine for about two days and now has stopped working.

Hi @GLyttek, can you confirm if the access token that you added to the LinkStowr settings in Obsidian is correct? It should be of the format lshelf_XXXXXXXX_XXXXXXXXXXXXX. If that doesn't work can you try creating a new access token and using that instead?

Hi @joelseq , yes I can confirm, that I have added the correct token. I also have created a new one today and entered that into Obsidian.
I however have not deleted the old Token. Should I try to do that? I am also not sure, what might happen if I remove and re-add the add-on.

Have you tried syncing with the new token? I don't see any error logs showing up so I'm not sure if it's an issue with the linkstowr API or the obsidian plugin. One thing you can try is to check the console (cmd+option+i on macOS or ctrl+shift+i on Windows) and see if there are any errors showing up there

Hi @joelseq , Thank you for the steps, he seems to fail on the creation of the File.
I am still not sure, to why, as I haven't changed anything on my Linux System.

Hi @joelseq , Thank you for your help! I moved the Folder back up the structure, and it works now again.

@GLyttek great to here! I think I can potentially make some UX improvements to show an alert or something when it fails due to the folder not existing

That would be nice.
Even due I am not 100% clear, why it first worked, maybe something with the links I ingested.
But the important thing is, that it works again and hasn't lost any links.  So I am a happy customer. :-)
My structure is like this, and maybe a bit weird.
-Obsidian vault
|
|---Notes
|
|---Journals
|
|--- Old Links folder
             |... *New* Links folder

Thanks a Million @joelseq !


Draft pipeline for Lemnatec System at Danforth

Noah Dahlgren's group at Danforth has a pipeline for running the indoor phenotyping system at Danforth.
Setting up an automated pipeline for data transfer and feature extraction will be a good place to start.

[x] review and revise notes on the plant_cv_setup.md
[x] Identify and demonstrate software (e.g. Brown Dog, NDS, BETYdb) that can be used to manage data transfer, meta-data standardization, and feature extraction pipeline

replaced by #4, #5, #6,


new features on LinkedList and Playlist class

Adds method and operator's overload on LinkedList class and on Playlist Class.


Accept a list of references in the trigger column

The trigger column in XLSForm makes it possible to specify a reference to a field which, when changed by the user, triggers the run of the calculation defined in the row.
This corresponds to the XForms setvalue action with an xforms-value-change event trigger. XForms allows multiple setvalue actions to affect the same target node but that currently can't be expressed in an XLSForm.
Accepting a list of trigger references would expand flexibility without adding much complexity.
https://forum.getodk.org/t/different-behaviour-between-enketo-and-odk-collect-on-trigger-and-instance/50304/5

[ ] decide on separator

FWIW I have no preference on the delimiter
Minor point: is it possible today to write an explicit XPath for the trigger, eg /data/foo, or do they all need to be a ${foo} reference? (in case that has any implications on an appropriate delimiter...)


All tests of Tile Link UL and wishbone are passed

We made changes in the files to stabilize the Tile Link UL in caravan and also for passing the compliance test in NucleusRV with Tile Link UL. The changes are as follows:

TilelinkDevice.scala: The state machine involved in the design has now been removed. The register involved stateReg, states idle and wait_for_resp have been removed. The state logic has now been added to when logic blocks.
TilelinkHost.scala: The state machine involved in the design has now been removed. The register involved stateReg, states idle and wait_for_resp have been removed. The state logic has now been added to when logic blocks.
Tilelink Harness.scala: The multiplexer has been removed and io.valid has been directly wired to reqIn.valid.
Tilelink SwitchHarness.scala: The multiplexer has been removed and io.valid has been directly wired to reqIn.valid. The io.ackResp has been wired to  false.B.
Wishbone Harness.scala: The io.ackResp has been wired to  false.B.
TileLink & Wishbone HarnessTest.scala: The abstract class name has been changed at the required places. New tests were also added to the existing test scenarios.
DummyMemory.scala: Create the register “add” which holds the address.

okay, I see all tests are passed.


[Feature Request] - add pseudolocalization

Maybe you can add a button to toggle pseudolocalization with the first (or with a selected) language.
If there is enough space the pseudolocalization options could be added as well.
It would be great if this would work in the editor but if not it should work on runtime.
Currently there is only this documentation:
https://github.com/godotengine/godot-docs/pull/5119/files
I'm glad it works with Godot 4.

Done with work on pseudolocalization. Please see version 0.2.5 => https://github.com/VP-GAMES/Godot4LocalizationEditor/commit/e6fc4f3ebacacde11c6b763b750af62dd8dbbbb9


Add support for schema modules

This is a feature request, scenario below explains what and why I am looking for this feature.
I have a module called outbox.jar which contains some code used to send out emails, this code first writes the emails to a database table called outbox and then a background thread sends picks up the email and actually sends it.  The outbox.jar module can be used in a lot of applications, so I would like to be able to just drop outbok.jar into an application's classpath (especially via a SpringBoot starter) that are using flyway and then have flyway automatically pickup the migrations in db.migration directory inside the outbox.jar.
The lifecycle of the migrations in outbox.jar is 100% independent of the migrations in the application that outbox.jar is being used from. Creating a separate schema_version table for outbox while possible is undesirable because it will slow down application startup and there are lots of other examples of third party modules that depend on having their's tables present. It would not make sense to have three separate schema_version tables under different names of course for three separate reusable modules.
Is it possible to add the notion of a module to flyway so that flyway schema_version has an extra column called module which would identify the source of the migration scripts. This would make it possible to have V001_create_tables.sql in the outbox.jar file and a V001_create_tables.sql in the application without having these two migrations conflict with each other and having the result of the migration recorded in the scheam_version table of the application.
With modules getting added to Java 9 and the move towards microservices based architecture I am finding myself with a lot of common libraries that need their own database tables and the module feature would really make things much easier.
Is a feature like this desirable for the Flyaydb team or is there some reason why such a feature should never be included.
Would a pull request implementing such a feature be accepted assuming it met the coding/testing/style standards for the project?

Thanks for the suggestion. Adding another layer into the mix just doesn't seem worth it. I am also not sold on the statement that adding a second schema_version table would somehow slow down the application startup.
My recommendation: one schema per module, with its own Flyway schema_version table.


Run real-time control with switches

I'm running Franka Emika Panda arm with switches between control box and workstation. Because of the switch lag is being introduced and robot can not run real-time commands as it drops around 20 packages.
Considering I can not do anything about the switches how can I run the real-time control at 500Hz instead of 1000Hz so that I can do real-time control with switches. Or is it even possible and if there is any other solution let me know, please.

In general it is not possible to decrease the real-time control to 500Hz at the moment. Using certain professional switches would allow to properly control the robot with a 1kHz control loop. However, most consumer switches buffer packets and introduce a high delay / jitter, so 500Hz would probably not even be possible.
I assume you want to use the robot and have at the same time connectivity to your company network / to the Internet? In such a case I'd recommend to buy a second Intel PCI-E network card and directly connect the robot. We generally recommend to only use the robot directly connected to the PC to get the best performance.

Hello, thank you for your input, we currently have 2 arms connected to the switch which is connected to 3 workstations so that we can control both the arms with any workstation available. One arm s working properly with the switches while the other is not. It keeps giving us communication error.
RSL@rsl-panda-experimental1:~/libfranka/build$ ./examples/communication_test <IP_ADDRESS>
WARNING: This example will move the robot! Please make sure to have the user stop button at hand!
Press Enter to continue...

Finished moving to initial joint configuration.

Starting communication test.
.
.
.
#4600 Current success rate: 0.97
libfranka: Move command aborted: motion aborted by reflex! ["communication_constraints_violation"]
control_command_success_rate: -0.7372 packets lost in a row in the last sample: 176

For arm 2:

RSL@rsl-panda-experimental1:~/libfranka/build$ ./examples/communication_test <IP_ADDRESS>
WARNING: This example will move the robot! Please make sure to have the user stop button at hand!
Press Enter to continue...

Finished moving to initial joint configuration.

Starting communication test.
.
.
.
#9900 Current success rate: 0.96

Finished test, shutting down example

Can you please help regrading this issue?
Note:- Direct communication without the switches does not throw any errors.

Hi, I assume that this behaviour is caused by the switch. Interesting would be to check whether using arm 1 on the switch port of arm 2 would lead to an other result for arm 1. However, we recommend to directly connect the control pc to the robot.

I'm closing this issue. If the problem still persists, please contact support or reopen the issue.

@Gathiyo I have the same problem as you. How did you solve it? Thanks!


Unable to go for first run

I'm receiving this error when im trying to launch my first flutter program with my android device
Launching lib\main.dart on RMX2151 in debug mode...
lib\main.dart:1
Checking the license for package Android SDK Build-Tools 29.0.2 in C:\Users\jaggi\AppData\Local\Android\Sdk\licenses
Warning: License for package Android SDK Build-Tools 29.0.2 not accepted.
Checking the license for package Android SDK Platform 30 in C:\Users\jaggi\AppData\Local\Android\Sdk\licenses
Warning: License for package Android SDK Platform 30 not accepted.
FAILURE: Build failed with an exception.

What went wrong:
Could not determine the dependencies of task ':app:compileDebugJavaWithJavac'.

Failed to install the following Android SDK packages as some licences have not been accepted.
platforms;android-30 Android SDK Platform 30
build-tools;29.0.2 Android SDK Build-Tools 29.0.2

Steps to Reproduce

Connect Android Device To PC and enable debugging
Create Flutter App
Run using F5

Logs

Logs

[√] Flutter (Channel stable, 2.5.0, on Microsoft Windows [Version 10.0.19042.1165], locale en-IN)
• Flutter version 2.5.0 at C:\src\flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision 4cc385b4b8 (7 days ago), 2021-09-07 23:01:49 -0700
• Engine revision f0826da7ef
• Dart version 2.14.0
[!] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
• Android SDK at C:\Users\jaggi\AppData\Local\Android\Sdk
X cmdline-tools component is missing
Run path/to/sdkmanager --install "cmdline-tools;latest"
See https://developer.android.com/studio/command-line for more details.
X Android license status unknown.
Run flutter doctor --android-licenses to accept the SDK licenses.
See https://flutter.dev/docs/get-started/install/windows#android-setup for more details.
[√] Chrome - develop for the web
• Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe
[√] Android Studio (version 2020.3)
• Android Studio at C:\Program Files\Android\Android Studio
• Flutter plugin can be installed from:
https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)
[√] VS Code (version 1.60.1)
• VS Code at C:\Users\jaggi\AppData\Local\Programs\Microsoft VS Code
• Flutter extension version 3.26.0
[√] Connected device (3 available)
• RMX2151 (mobile) • CU9TKNUWZDRWX4M7 • android-arm64  • Android 11 (API 30)
• Chrome (web)     • chrome           • web-javascript • Google Chrome 93.0.4577.82
• Edge (web)       • edge             • web-javascript • Microsoft Edge 93.0.961.47
! Doctor found issues in 1 category.

@daxontop
The error message indicates why you are unable to run:
Failed to install the following Android SDK packages as some licences have not been accepted.. You need to accept Android licenses to get rid of this issue.
See this link to get help on how to resolve it.
Closing from here. You can ask for help on support channels like StackOverflow.


UI Bug - Deploying Stepper numbering

Current
On the deployment page in the wizard - the stepper starts with 0

Update
Change stepper numbering to start with 1

https://user-images.githubusercontent.com/86802655/195691090-51293d3a-8a10-498d-96c8-d544a102b865.mov


POC: Use same development version in complete workspace

This is a proof of concept that allows to reconfigure a new version throughout the workspace.
All packages have and reference the same version. Supplied node js script uses shell js to perform the changes
If this version specified is not available from a registry, then it is resolved locally without any special adjustments (like npm link).
Resolution between examples and langium package works. When npm run watch is executed cli execution works: Tested with naive console.log in default-module.ts and arithmetics example.
Idea is to move to an "incremented" version immediately after release and then use this in development. WDYT?

Will this change still link correctly across repos in this case? I would think that npm link is still necessary.

The new project is independent of the workspace and it will therefore not work. You have to manually link langium and langium-cli.
Having a local version independent of the release or at least the capability to generate one by invoking a command makes sense / is good practices.

I picked a bad branch name and will open a new PR once it is ready (rebased, files at proper location, documentation, potential GH Action intergration, etc.)


Adds git clone ros-planning/moveit2.git to install

Description
adds missing step to Foxy source install instructions: https://github.com/ros-planning/moveit2/issues/438#issuecomment-826421039 @tylerjw
Checklist

[ ] Required by CI: Code is auto formatted using clang-format
[ ] While waiting for someone to review your request, please consider reviewing another open pull request to support the maintainers

@newcanopies Thanks for noticing the missing step and your PR! I left a small comment and will merge right after, you update your PR.

Thanks for fixing it. @newcanopies you still have one more trailing whitespace in the empty line (see https://github.com/ros-planning/moveit2_tutorials/pull/79/checks?check_run_id=2437626373). Can you also remove that?


NURLConnection

Hi there,
I just pulled the most recent BlocksKit, and I see that NSURLConnection has changed dramatically.
I've made the changes to my code, however, I continuously get errors with failureBlock on the line:
categoryConnection.failureBlock = ^(NSURLConnection *connection, NSError *error) {
The error I get is:
[NSURLConnection setFailureBlock:]: unrecognized selector sent to instance 0x552f70
My code:
NSURLRequest *categoryRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:businessCategoryRequestUrlString]];
NSURLConnection *categoryConnection = [NSURLConnection connectionWithRequest:categoryRequest];

categoryConnection.failureBlock = ^(NSURLConnection *categoryConnection, NSError *error) {
    NSLog(@"Error grabbing category list: %@\n", [error description]);

};

categoryConnection.successBlock = ^(NSURLConnection *connection, NSURLResponse *response, NSData *responseData){
    //do stuff
};

[categoryConnection start];

Any ideas? It worked great before the pull, but now...
Many thanks,
Brett

Ugh...type, the actual code snippet should say:
categoryConnection.failureBlock = ^(NSURLConnection *connection, NSError *error)
not:
categoryConnection.failureBlock = ^(NSURLConnection *categoryConnection, NSError *error)
Although I tried both ways in an attempt to figure it out.

Is this happening in a debug build, release build, Ad-Hoc, or what? We've been running into this, but only in an Ad-Hoc build. If you're able to reproduce it in a debug build, that would be massively helpful.

Nope. But I did get it to work by commenting out the block(); line (in the dealloc method listed above) and compiling to a static library. I have no idea how commenting this line out will affect my app though. Any thoughts?

Try pulling from the new released master, we supposedly fixed both problems you've mentioned in this issue. Make sure you've pulled for the sub module as well.
Sincerely,
Zachary Waldowski
Sent from my iPhone
On Jan 13, 2012, at 12:03 PM<EMAIL_ADDRESS>wrote:

Nope. But I did get it to work by commenting out the block(); line (in the dealloc method listed above) and compiling to a static library. I have no idea how commenting this line out will affect my app though. Any thoughts?

Reply to this email directly or view it on GitHub:
https://github.com/zwaldowski/BlocksKit/issues/60#issuecomment-3482750

Awesome! How would I pull from the sub module as well? (Sorry, not 100% git fluent yet).

You can run git submodule update from the BlocksKit root dir or git pull from A2DynamicDelegate in the BlocksKit dir.
Sincerely,
Zachary Waldowski
Sent from my iPhone
On Jan 13, 2012, at 12:07 PM<EMAIL_ADDRESS>wrote:

Awesome! How would I pull from the sub module as well? (Sorry, not 100% git fluent yet).

Reply to this email directly or view it on GitHub:
https://github.com/zwaldowski/BlocksKit/issues/60#issuecomment-3482812

That did the trick! Thanks for your promptness in fixing it!


Bug: "Scroll to previous folder when navigating up" not working on network locations

Description
"Scroll to previous folder when navigating up" is not working in all scenarios.
When using a network location, enter a folder and go back, the folder will not be selected anymore.
This works fine on local drives and network drives.
Steps To Reproduce
Does not work:

Make sure "Scroll to previous folder when navigating up" is enabled
Access a network location (in my case \\nas)
Enter a folder (let's say \\nas\asdf)
Go back to the previous folder. It is reproducible for me with the controls at the top (left arrow and up arrow) and the special mouse key
The folder (asdf) is not selected

Works fine:

Repeat the steps above, but instead of using a network drive, just use your C: drive
Repeat the steps above, but use "Map network drive" to assign a drive letter to the network location

Requirements
"Scroll to previous folder when navigating up" works consistently
Files Version
<IP_ADDRESS>
Windows Version
Windows 11 Pro 23H2 22631.3296
Log File
debug.log

Thank you for the report

This should be resolved in the next update.


Warning while npm build

Use of eval in "node_modules/ml-sparse-matrix/src/index.js" is strongly discouraged as it poses security risks and may cause issues with minification.

@NishaSharma14
I believe they are aware of this risk and have a reason for using it in this manner.


TA review : VNV

@samm82
Summary

[x] When referencing another section, you should include a link to it. Your usability survey is never referenced by a requirement!
[ ] Minor grammar issues. Test-SG10 should be removed, since it is just Test-SG9 with a different ID number.
[ ] You mention Dr. Irene Yuan is an "SRS verifier", but state that she will be able to "Validate documentation"; make sure you are using terminology consistently, since "verification" and "validation" are two different things!
[ ] What environment should these tests be run in? For example, will a dummy testing database be used, or will they just be executed in the main database
[ ] Note that for test cases to be specific, the actual data should be included as part of the tests; you could even make a table to easily define multiple tests with different inputs! For example, for any testing of passwords, you should specify what password(s) should be used in the test (and why).
[ ] For Test-CR5, how will a tester "check ... that they need to correctly enter the password to enter the game room"? Should they try every single possible password and make sure only the correct one lets them in? I also thinks it makes more sense to group this test with Test-JR3 due to their overlap.
[ ] Test-RS3's method of being performed is unclear, likely due to a grammar issue. Likewise, how will check that "all assets have been loaded at the start of a game" in Test-ST2 (although this should be described abstractly, you should be able to describe an algorithm for doing this)? What is the criteria for "a certain puzzle number/type" in Test-ST4? Should they all be unique? Part of a specific set based on group size?
[ ] What are "dangerous conditions" in Test-UH10? What does "various ethnicit[ies], religion[s], and culture[s]" mean; how will you know if you have a diverse-enough group?
[ ] Test-JR1 seems to imply that only rooms with available capacity will be displayed to the user; this should be made explicit in your SRS (could be done by changing JG5; my feedback on this may have been built on a wrong assumption) and have a separate test case to ensure that no room that is at/over capacity is displayed to the user. What if the capacity of a room is reduced to below its current capacity (e.g., a room with 5 people currently in it is edited to have a capacity of 3)? This should also be reflected in your SRS.
[ ] Test-SG2's method is unclear: it currently seems to say "if the tester pauses the game, the tester should be able to continue doing actions", where the derivation implies that the italicized part should be "other group members".
[ ] Since Test-SG5 is built with "the limit imposed by Unity" in mind, it isn't really a test of "the extreme case", since the user will likely be unaware of this.
[ ] Some traceability is incorrect or missing: Test-SG5 doesn't really test SG7, but Test-SG8 also seems to test LG1 and Test-PI4 seems to test PI4. Test-CR2 to Test-CR6 all seem to test CG5 as well (because of this, Test-CR7 seems redundant). Test-PI7 and Test-PI8 seem to test the same thing with little/no difference.
[ ] Test-ST5 doesn't actually check that the progress bar reflects the current progress, just that it exists (Test-PI5 seems to test this, however...); this should be made more explicit in your SRS and traceability updated as appropriate.
[ ] I should have caught this in your SRS, but there is no requirements/tests for calibration. What is involved in calibration? How do you know if it's been done correctly? Is this in your scope?
[ ] Test-UH1 doesn't make sense with the SRS assumption that "the user will always be connected to the internet"; I agree that this test should be there, but that the SRS (and the relevant requirement) be updated to be consistent.
[ ] While there are issues with their tests in #113, the two are slightly different, testing different "levels" of installability.

Deadline
March 20th, 2024
Estimated Work Hours
6 hours

Task 1 completed in commit id: c5db539b20c58f8f7c266343d3105fd00122f56d

All tasks completed.


Creating Annotations

Is there a way yet how to create annotations for the data you're sending to graphite from C#?

There's currently no support for creating annotations


Add stub files for PRAW

As per #1144 I will be adding in a folder of stub files that match the expected types in every function, class and method. I tried my best to figure out the types from the corresponding docstrings, but some of them might be erroneous. Please send a PR with any corrected mistakes.
The blank templates were generated with mypy's stubgen --doc-dir ./docs/ -p praw -o ./stubs/ which was run in the base directory of the repo. This requires that the development praw be installed, as the -p option will import praw. mypy can be obtained through pip install mypy.

There are stub files for every file, but not all of them are filled in.

What's the point of the stub files? If I'm not mistaken, type hints should be able to be provided inline with the code itself: https://docs.python.org/3/library/typing.html

@bboe Providing stub files is a clean way to add type hinting information to a module, and they can be updated without messing with the function signature, therefore allowing other PRs into the repo. Inline type hinting gets messy real fast, and it gets hard to edit stubs without scrolling through miles of code

Interesting. I imagine it'd be harder to maintain for people however, as they have to update two files whenever adding a parameter.
Do you have a resource for these stub files?

Interesting. I imagine it'd be harder to maintain for people however, as they have to update two files whenever adding a parameter.
Do you have a resource for these stub files?

Read my initial PR message

Okay so this: https://www.python.org/dev/peps/pep-0484/ Thanks!

Okay so this: https://www.python.org/dev/peps/pep-0484/ Thanks!

That's the PEP on stubs, which has the guidelines for how to write it

Regarding stub files PEP484 reads:

Stub files are files containing type hints that are only for use by the type checker, not at runtime. There are several use cases for stub files:

Extension modules
Third-party modules whose authors have not yet added type hints
Standard library modules for which type hints have not yet been written
Modules that must be compatible with Python 2 and 3
Modules that use annotations for other purposes

From that it seems like the better solution is to add type hints directly to the code. For the purposes of not needing to maintain two files to make changes, I too think that's a better approach.
Also for ease of merging in changes, I'd recommend typing at most one class, or approximately no more than 100 changes per pull request. PRs with hundreds, not to mention thousands of lines of changes, are going to sit in code review for a rather long time.

Regarding stub files PEP484 reads:

Stub files are files containing type hints that are only for use by the type checker, not at runtime. There are several use cases for stub files:

Extension modules
Third-party modules whose authors have not yet added type hints
Standard library modules for which type hints have not yet been written
Modules that must be compatible with Python 2 and 3
Modules that use annotations for other purposes

From that it seems like the better solution is to add type hints directly to the code. For the purposes of not needing to maintain two files to make changes, I too think that's a better approach.
Also for ease of merging in changes, I'd recommend typing at most one class, or approximately no more than 100 changes per pull request. PRs with hundreds, not to mention thousands of lines of changes, are going to sit in code review for a rather long time.

I suppose I will copy the annotations over to the respective files.

Closing and starting type hinting PRs

Official Statusboard:
praw

[ ] config.py
[ ] objector.py
[ ] init.py
[ ] exceptions.py
[ ] reddit.py
[ ] endpoints.py
[ ] const.py

praw/util

[ ] cache.py
[ ] init.py
[ ] snake.py

praw/models

[ ] redditors.py
[ ] auth.py
[ ] subreddits.py
[ ] user.py
[ ] util.py
[ ] preferences.py
[ ] init.py
[ ] mod_action.py
[ ] inbox.py
[ ] comment_forest.py
[ ] front.py
[ ] trophy.py
[ ] modaction.py
[ ] stylesheet.py
[ ] helpers.py
[ ] base.py

praw/models/list

[ ] init.py
[ ] redditor.py
[ ] trophy.py
[ ] base.py

praw/models/reddit

[ ] comment.py
[ ] emoji.py
[ ] multi.py
[ ] submission.py
[ ] init.py
[ ] message.py
[ ] redditor.py
[ ] wikipage.py
[ ] widgets.py
[ ] subreddit.py
[ ] more.py
[ ] collections.py
[ ] modmail.py
[ ] live.py
[ ] removal_reasons.py
[ ] base.py

praw/models/reddit/mixins

[ ] reportable.py
[ ] editable.py
[ ] inboxtoggleable.py
[ ] replyable.py
[ ] gildable.py
[ ] init.py
[ ] fullname.py
[ ] votable.py
[ ] inboxable.py
[ ] messageable.py
[ ] savable.py

praw/models/listing

[ ] domain.py
[ ] init.py
[ ] listing.py
[ ] generator.py

praw/models/listing/mixins

[ ] rising.py
[ ] submission.py
[ ] init.py
[ ] redditor.py
[ ] gilded.py
[ ] subreddit.py
[ ] base.py


Add uuid function to MysqlSqlModule

Add support for function uuid described in the MySQL docs.
Add function to MysqlFunctionDef in MysqlSqlModule
Add test in FunctionDefSpec

I would like to work  on this

Done.


@Nullable list generated for a non-null array

I found a weird thing when building my query. Say that you have the following schema:
type Query {
  get_foos(): [Foo!]!
}
interface Foo {
  a: String!
  b: String!
}
type Bar implements Foo {
  a: String!
  b: String!
}

Now say that we define the following query:
get_foos {
  foo {
    a
    ... on Bar {
      b
    }
  }
}

In the generated code, get_foos() returns a @Nullable List<Foo>.
Now for this query:
get_foos {
  foo {
    a
  }
}

In the generated code, get_foos() returns a @NotNull List<Foo>.
Is that an expected behaviour?

I believe this issue is fixed.


Dynamic Resize [FancyZones]

##I think that the windows should resize dynamically based on the number of windows on the screen.
I expect that this would be active all the time, given that the user has pressed a toggle.
If you'd like to see this feature implemented, add a 👍 reaction to this post.

While neat, what instantly comes to mind is adding in the smarts for what app should be small vs large ... and dynamically.   A feature like this typically needs to be near perfect else a user won't use it.
In addition, i believe this is a different style of layout than what FancyZones is designed for. We're a user defined zone system where this feels more dynamic.

Duplicate of https://github.com/microsoft/PowerToys/issues/2694


The language switcher is breaking the display on mobile resolutions, causing responsiveness issues.

Describe the bug
When selecting an option with a large text in the language switcher box, the OpenCollective logo next to it is compressed or even breaks the resolution, as is the case when selecting 'Brazilian Portuguese - Português brasileiro'.

logo compressed:

break of resolution:

To Reproduce
Steps to reproduce the behavior:

Go to '/'
Scroll down to footer
Click on 'language switcher'
Select 'Brazilian Portuguese - Português brasileiro'
See error

Expected behavior

Desktop (please complete the following information):

OS: Linux Mint
Browser: Chrome

If it's okay, I can solve this issue and others related to responsiveness, like:
https://github.com/opencollective/opencollective/issues/7058
https://github.com/opencollective/opencollective/issues/7057
If there's another open issue related to responsiveness, I'd be happy to help.

@Guilherme-NL Such a contribution would be greatly appreciated if you have the time. Just make sure you make one PR per issue; it helps with reviews and rollbacks (in case of unspotted regressions).
cc @gustavlrsn

No problem @Betree, It would be great to help with these issues


fix promisified fs.exists

fs.exists callback is not being called with an error as most node callbacks are.
This prevents bluebird.promisify from working as expected.
The boolean passed into the callback that indicates if the file exists
is being misinterpreted as an error, causing the promise always be rejected.
// pseudo implementation of exists:
function exists(file, callback) {
  // ... lets assume file exists
  callback(true);
}

// kind of what promisify does internaly:
exists('foo.js', function(err, args...) {
  if (err != null) {
    reject(err);
  } else {
    resolve(args...);
  }
});

Documentation of fs.exists:
https://nodejs.org/api/fs.html#fs_fs_exists_path_callback
ref #5

:+1:

Already fixed on my other laptop. Fixed.

Great :)


How to change the default White color of the Menu

I am searching for methods for changing the default White color of the Menu . Couldn't find one . Can you tell me how will i achieve this ?

Hi, all you need is to customize your MenuObject instances. Check getMenuObjects() method in the sample: https://github.com/Yalantis/Context-Menu.Android/blob/master/app/src/main/java/com/yalantis/contextmenu/sample/MainActivity.java#L54


[Bug] error: Found argument '--peer_id' which wasn't expected

Currently nightly docker image is broken
We removed --peer_id parameter in https://github.com/libra/libra/pull/1051, however validator.Dockerfile still contains this parameter, therefore docker container can not start with error: Found argument '--peer_id' which wasn't expected, or isn't valid in this context

Fixed in https://github.com/libra/libra/pull/1125


🚧  Displacement Robustness Domain Simulation

Description
This PR presents the first version of the Displacement Robustness Domain Simulation. It is a starting point and further ideas will be incorporated step by step.
Checklist:

[x] The pull request only contains commits that are related to it.
[x] I have added appropriate tests and documentation.
[ ] I have made sure that all CI jobs on GitHub pass.
[ ] The pull request introduces no new warnings and follows the project's style guidelines.

@Drewniok will you provide Python bindings for this algorithm?

@Drewniok will you provide Python bindings for this algorithm?

Yes, I will do that when we are clear about the structure.

Here are a few comments regarding the general structure of the code. Hope we can iterate from here 🙂

Thanks for your feedback! 🙏 I will address them asap.


Reduce permissions of default authentication scope

Problem

While the Openverse ToS disallows scraping, our current authentication scheme and API parameter management is not conducive for preventing the easiest classes of abuse. Right now it is trivial for someone to authenticate at the most basic level and scrape the Openverse API. Even banning a single client application is easy to get around.
Description

My proposed solution is to reduce the allowance of page size and page depth for the default authentication scope.
To do this, add a field to ThrottledApplication similar to rate_limit_model named privileges[^alternative-names]. The field should be an ArrayField with a base_field of CharField with choices set to a list of privileges. The choices to start with should be increased_page_size and increased_query_depth. The default of the field should be an empty list (i.e., no special privileges).

This data model gives us the flexibility to add or remove different types of privileges for a given ThrottledApplication, without needing to automatically opt everyone with any privilege into all privileges or to create a confusing hierarchy of combinations. If we used a boolean or a single CharField, then True would need to imply all expanded parameter allowances, or each individual choice would need to represent one or a mix of the choices. It's much cleaner to use the ArrayField. ThrottledApplication is pulled in full for every request with Bearer auth, so the list will be immediately available for the serializer to check permissions on the request.

[^alternative-names]: I also considered api_scopes, query_scope or parameter_allowances but rejected them. api_scopes has too much potential for confusion with OAuth scopes, which isn't really the question here. The latter two have an inherently narrow application to just search query. This field could represent access to other non-search endpoints, so a non-search specific name is more appropriate.
Make the field editable in Django admin so maintainers can add or remove privileges for individual client apps.
Once the new field is available, update the serializer to check the relevant entries in the new field. If the request parameters exceed any given privilege, add a warning to the request following the example of the source parameter warning:
https://github.com/WordPress/openverse/blob/7dd355000f4d1d4bd597e3256b1f804d43f13f18/api/api/serializers/media_serializers.py#L407-L417
The warning text should link to a section of the API documentation that explains the privileges and how to request increased access. This would be new documentation, and the implementing PR must add it. Unauthenticated requests should continue to return an error response as they do today.
We also need to be able to evaluate existing usage patterns and ensure that any integrations known to be safe and relying on these features that require a higher level of trust will continue to work. We should also ensure that existing requests, regardless of trust level, do not 403. Instead, I propose that we clamp parameters to the maximum value of their application scope, and along with the warning mentioned above, monitor the frequency of requests exceeding granted privileges on a per-application basis. A new log line for each request that exceeds privileges that includes the ungranted privilege and the client application name would be sufficient for analysis after deployment.
When a request exceeds the privileges, clamp the parameter down to the anonymous maximum.
Specifics for each parameter
Based on the table below, I've made suggestions for behaviour for each specific parameter
The table was pulled from logs analysis using this query analysing the last month of API nginx logs for paginated requests
  filter @logStream like "nginx"
| parse request /(?<httpMethod>(GET|POST|PUT|DELETE)) \/v1\/(?<mediaType>(images|audio))\/((?<resource>[0-9a-z\-\/]*)\/)?(?<queryParams>\?.*)? /
| parse queryParams /page=(?<page>\d+)/
| parse queryParams /page_size=(?<pageSize>\d+)/
| fields isempty(resource) and not isempty(mediaType) as isSearch, page * least(20, pageSize) as paginationDepth
| filter isSearch and page > 1 and status >= 200 and status <= 300
| stats count() as paginatedQueryCount,
  max(greatest(1, page)) as maxPage,
  min(least(1, page)) as minPage,
  max(greatest(20, pageSize)) as maxPageSize,
  min(least(20, pageSize)) as minPageSize,
  avg(least(20, pageSize)) as averagePageSize
  by client_application_name

For privacy, I've passed the client application names through sha1

client_application_name
paginatedQueryCount
maxPage
minPage
maxPageSize
minPageSize
averagePageSize

666581
100
1
20
1
19.992

5dceabe8e24ce99c33a4e2c82b44e7d7c04df303
12167
20
1
24
20
20

235e9ac0fe5d168ed2c8245440cbce8c3deca272
153
11
1
50
20
20

09323e87079447d33d3564d1111d060693310236
246
12
1
25
20
20

46dc23b46b51e47c710bdae407469947973b7e85
106
11
1
500
1
18.8962

76e45af6b84391eb0a74170a0c281a9f33bcf3e3
447
20
1
20
20
20

da0e53723b9999ce1d916823b2af6f732d458bb6
190
20
1
24
20
20

101c63b2f5d652671f29898455f17da436074a2b
123
20
1
500
10
16.9106

3ea411a77707d2551bee90c10260d4f2ab1bad0c
87
6
1
25
20
20

912a6241f10c3faa0460b71511259e1f15109b7d
19
6
1
25
20
20

2a3aec6e30b424572565e331fa566fa1615d249b
17
5
1
25
20
20

3afac6d593a6457ca512f6664e135174a03f7c1f
2
2
1
25
20
20

84023988640fd26e8f592a42160a2cfb536aa739
41
5
1
500
20
20

0854151fc8312612081a246d55ef8b3fe731cc61
17
3
1
100
20
20

b8d84862bbaed24eba05fa85cc77373f75cac31b
4
5
1
20
20
20

a3213452eee0959445e8828c50637f9fd043ab18
5
2
1
20
20
20

8690a4e435333974f3d632c25351560abcac546e
6
3
1
25
20
20

b1c7ddb28dcbf9fe1c873c57fce8147db97d1c8a
1
3
1
20
20
20

096fdac8d366831ded024ebd947369febb34472e
2
2
1
20
20
20

9040e29a872a36dc4b6a5efc0e86e65328947469
1
2
1
30
20
20

2e2eb310033a0b99997c59a981197678d7b82991
10
5
1
20
20
20

Of these, the two with a maxPageSize of 500 are known to be unwanted requesters, and almost certainly scrapers.
page_size
Authenticated requesters should get a default maximum of 50. This is based on usage from known integrations where integrations we are aware of and have relationships with cap out their page size at 50. There is one integration that made over 100 requests in the last month that went up to 50 page size. I don't see a problem with that, and it seems as good a number as any to create the somewhat arbitrary cut-off of default privileges granted to authenticated requests.
page
If the page size maxes out at 50, page maxing out at 20 would be 1000 images. I don't necessarily feel that's excessive, but I think we should reduce the default privilege to max out at 10 pages of requests, if not 5. Most requesters do not go above 5, and all requesters should be respecting the page_count parameter on responses anyway, so reducing the maximum will not cause integration problems. Openverse search relevancy beyond the first few pages is not that useful in most cases anyway.
I ran another query to get the average page, and most are below 5 on average, even for large integrations.
I propose we start with 5 given the average case will not be affected, and given what we know about Openverse search relevancy. That creates a maximum result count of 250.
Alternatives

Continue to have extremely broad and generous API allowances that make ToS abuse trivial and impossible to reasonably regulate. We can just "ignore" this issue. If we do, I question whether our ToS would ever be enforceable or how transparent our application of the policy really could ever be.

Thanks for putting this together! I think a new ThrottledApplication concept which enforces result page size and page depth is a great idea. The approaches to avoiding breaking existing integrations also sound good.
It sounds like this will require a few issues. Do you think it warrants a dedicated project or milestone?

I think it only requires one issue for implementation, with a follow-up issue of non-code work to check on the monitoring.
The Django admin changes should be minimal, just configuring the new field to be editable.
We already have facilities for adding warnings to searches, which are the only relevant requests for this work. Likewise, we have established logging practices, adding a new log line is trivial (though we'll want to be smart about the properties of that line).
Adding a note to the documentation doesn't seem like a separate issue either.
Please let me know if I've missed something you think would warrant a separate issue.

Nope, thanks @sarayourfriend

Great, I'll update the PR description with specific implementation details.

Thanks for bringing all this information together, and for sharing the queries made to gather this information - that's awesome!
One question about page depth: I do sometimes find myself going past 5 pages in the frontend when searching for images. However, 5 pages at the default of 20 is only 100 images. Should we consider the anonymous limit as a total image limit, rather than discrete page size/page depth limits? Or maybe setting the max page depth to 10 would be the best compromise, especially given how many of the high-requesters you posted above are above 5 for max page depth.

Limiting max result depth, in addition to page size, rather than max page number, sounds good to me! It simplifies the rationale of the limit too, at least to me. We're limiting to 250 results, rather than technically a variety of limits based on the page size used.
Combined with rate limiting, sounds good to me!


Update http4s-circe, http4s-dsl to 0.23.23

About this PR
📦 Updates

org.http4s:http4s-circe
org.http4s:http4s-dsl

from 0.23.4 to 0.23.23
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.http4s" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "org.http4s" }
}]

labels: library-update, early-semver-minor, semver-spec-patch, version-scheme:early-semver, commit-count:1

Superseded by #476.


Looking for cause and solution to "config returned for certificate is not nil and points to different cache" error returned in cache.go

What is your question?
I've built and installed the acme-dns product, which utilizes your library.  I did run it first using sudo (as root) from its original build location, but then followed the instructions to create a systemctl service (perhaps this has something to do with the issue).
When I run it as a service, I get the following in the log file: unable to get configuration to manage certificate; unable to renew
with the reason being
"config returned for certificate [] is not nil and points to different cache; got 0xc0000b1b20, expected 0xc0000b1c00 (this one)"
I see this error is generated at line 372 of certmagic/cache.go
However it is unclear to me what exactly might be the cause of this (why would it be expecting one value but get the other).
What have you already tried?

I have not reviewed the acme-dns code yet. I'm hoping any response explaining what this error means will lead me in the right direction to discovering the cause/solution to this problem.
Include any other information or discussion.

Bonus: What do you use this package for, and does it help you?

acme-dns has an https based API, and it needs to be secured with a valid cert.  One option is to use LetsEncrypt, and when selected, it appears to be using your certmagic library to maintain it.  It created the cert no problem the first time I ran it, and the cert is in use.  But it seems that maintaining it could be an issue given this error.
Thanks.

When the cache is maintaining its certificates, it has to get the config for the certificate it is maintaining. The cache has to be provided with a "GetConfigForCert" function that that can do this. The reason it's a function instead of a static field is because the way a certificate is managed can change over time, since certs can be loaded long-term into memory, and the way it is to be managed can be changed from the time it loads to when it is maintained, potentially months later.
Anyway, if that loaded config doesn't reference the same cache, then there's a problem. The caller is probably creating multiple caches and confusing/conflating configs across them.
Sounds like a bug that acme-dns will need to address, or whatever is calling CertMagic.

I'm closing this issue - sorry to bother you.  I found that the issue is known in acme-dns (see https://github.com/joohoi/acme-dns/issues/337)
There is a fix available there, not committed to the master yet, but working on it.

Okay, excellent. Thanks!


Snowflake driver report invalid JWT token for the keypair auth with privateLink accountIdentifer

What happened?
In the basic auth scenario.
The privateLink + Basic Authentication is succeeded.

The privateLink + KeyPair auth is failed.

The error report is the JWT token is invalid.  Customer confirmed when using the public endpoint. The the keyPair auth is succeeded.
Error Message:
[Snowflake] 390144 (08004): JWT token is invalid.

The privateLink name format is link org-account.privatelink.
@davidhcoe These issues related with the Account Identifier. Do you have any insights for this? Does the snowflake ADBC driver doesn't support account name with privateLink.
How can we reproduce the bug?
No response
Environment/Setup
No response

https://github.com/apache/arrow-adbc/issues/1422
I got it to work, but you have to use a server url with .privatelink in it..
The Go driver has a bug which strips .privatelink causing the connection to fail..

Hi Team, do we have any ETA to fix the issue? Truly appreciate your time and consideration in advance.

Wasn't the issue fixed with 1.6.25?
https://docs.snowflake.com/en/release-notes/clients-drivers/golang-2023#:~:text=Fixed an issue with OCSP fallback requests in PrivateLink environments.

https://github.com/apache/arrow-adbc/issues/1422#:~:text=Returns with these errors%3A

Can we test with 1.6.25 or any version above and see if that helps?

The team owning the driver was not able to repro the issue with their latest version and closed the ticket.
https://github.com/snowflakedb/gosnowflake/issues/1033

@kiyoungoh were you able to try using the approach that @davlee1972 mentioned in https://github.com/apache/arrow-adbc/issues/1777#issuecomment-2078612172 which he said was able to work?

@zeroshade Thanks for checking but from the UI, we don't have control to try the combination mentioned.

Does our C# binding provide a UI? or is that something external to the ADBC project?

Was referring to Azure ADF UI as @ruowan shared above, and it relies on the driver to construct the host URL.

Since we don't control the Azure ADF UI, you would have to talk to them about being able to try the fix that @davlee1972 mentioned if the UI doesn't provide the ability to try that combination.

I believe the combination mentioned was just a workaround of the issue that is caused by the old version 1.6.22 of gosnowflake. Can we consider updating the gosnowflake dependency to a more recent version that has already fixed the issue?
Appreciate suggesting the workaround but I believe having a more recent version of gosnowflake that already fixed the issue under the hood would be more efficient and beneficial.

We are already using the most recent version of gosnowflake. ADBC v0.11.0 went out using gosnowflake v1.8.0, and the main branch is using v1.9.0
The snowflake ADBC driver hasn't used gosnowflake v1.6.22 since ADBC v0.9.0

The go driver repo has code that does strip ".privatelink" from the account, but I'm not sure ADBC driver uses this file..
https://github.com/snowflakedb/gosnowflake/blob/0389a9ab3f7073d4fbf527c06990ce11bd93b17e/dsn.go#L148C1-L156C3
	// in case account includes region
	posDot := strings.Index(cfg.Account, ".")
	if posDot > 0 {
		if cfg.Region != "" {
			return "", errInvalidRegion()
		}
		cfg.Region = cfg.Account[posDot+1:]
		cfg.Account = cfg.Account[:posDot]
	}

@davlee1972 We call ParseDSN to parse the URI if an explicit URI is provided, which looks like doesn't get processed by gosnowflake the same way to strip the region as if you do the reverse (converting a config into a dsn) https://github.com/snowflakedb/gosnowflake/blob/0389a9ab3f7073d4fbf527c06990ce11bd93b17e/dsn.go#L527
If you don't use a URI and instead supply the arguments individually, then we just populate gosnowflake.Config with the arguments which feels like gosnowflake should handle properly rather than needing ADBC to check for and strip things. Thoughts @lidavidm ?

This still sounds like an upstream issue, then.

I opened a new issue with Snowflake..
https://github.com/snowflakedb/gosnowflake/issues/1132
I also contacted our Snowflake reps to see if they can prioritize this..

Ok I found the bug.. The Snowflake GO Driver isn't capturing the region into cfg.Region before stripping it from cfg.Account in parseDSN().. This should fix this ADF UI issue..

I also figured out what was wrong with my original issue which uses a pure Config.. which has zero logic to manipulate any config parameters..
Instead of:
adbc.snowflake.sql.account: MYACCOUNT.privatelink
This worked:
adbc.snowflake.sql.account: MYACCOUNT
adbc.snowflake.sql.region: privatelink
This is just a bit confusing since the python snowflake connector and snowsql passes MYACCOUNT.privatelink for account..

Adding to the confusion..
adbc.snowflake.sql.account: MYACCOUNT.privatelink
works fine when using :
adbc.snowflake.sql.auth_type: auth_ext_browser
because this still works when constructing a host url, but no account is needed for the JWT..

Given the fact that ADF doesn't have fields for region or host, it might make more sense to check if account includes both account and region in MYACCOUNT.privatelink format and split it into account MYACCOUNT and region privatelink.
This probably should be done in the Snowflake Go driver or in the ADF UI..

This should be fixed if we can use an updated Snowflake Go driver..

released in May 2024 cycle with version 1.10.1

The account will be parsed out of account.privatelink for JWT token generation..


Add trace formats for device traces

Include a README in the folder with the format of both traces so that people can use their own trace or contribute new traces.

I just looked up the trace files themselves. They seem to be in binary format, which isn't ideal for adding new traces easily.
Why not keep the data in plain text format with an easy-to-understand schema?

@dywsjtu can you take a lead on this?


AvoidUninitializedVariable triggers on break, continue, and return in nested for loop.

for ($i = 0; $i -lt 10; $i++) {
    for ($j = 0; $j -lt 10; $j++) {

        #break, continue, and return
        #causes AvoidUninitializedVariable for $j.

        break
    }
}

This is also fixed by https://github.com/PowerShell/PSScriptAnalyzer/pull/227