testing: limit the number of errors

Exhaustive tests (such as found in math/big and strconv) can generate a phenomenal number of errors when they fail. At some point, there is no value in additional errors.
I think that we should maintain an error counter in testing.T and call t.Fatal("too many errors") once we hit (say) 100 errors in a test.
cc @adg and @robpike for feedback. I'll implement if you're ok with it, since this is a pain point for SSA development.

go test | sed 100q seems good enough to me. If you add features like this, you need features to control the features, new features are justified because they are in the same style, and they need more features to control them, and it never stops.

Ok. FTR, on digging, a large part of the pain is that I'm running with GOGC=off (by necessity) and all the output is buffered (not fixed by sed), which ends up causing massive memory usage.

The place to fix that is certainly not with new flags in the testing package.

I didn't have in mind new flags, FWIW, just an unexported counter field in testing.T and something at the beginning of Error(f) like
t.nerr++
if t.nerr > 1000 {
  t.Fatal("too many errors")
}

But it's not really worth more words.

But you know someone will then ask to have a flag to change that 1000. Where to draw the line?

Yep. :/


TypeError: expected np.ndarray (got numpy.ndarray)

Hi, don't know whether for the version of pytorch, I use torch=1.10. and happend to this error, please help me, thanks.
File "E:\desktop\KG\NCRFpp\model\wordrep.py", line 45, in init
self.word_embedding.weight.data.copy_(torch.from_numpy(data.pretrain_word_embedding))
TypeError: expected np.ndarray (got numpy.ndarray)

there is something wrong with my code, and I solved it

Hi @Biaocsu , is the problem still exist?

Generally, it is the name of mismatch. When we import numpy, we normally use import numpy as np.
The information you provided is limited, I can't give you more suggestions without further information.

Yes, the problem still exist. What’s more, using the same code, it happens to this error when running by windows, and when I run it by ubuntu then it is all right.  How can I help you to find the problem?

So the problem environment is Windows + PyTorch 1.0?  That's weird. Have you ever check the numpy version on Windows and Ubuntu?

I will send you my code to see whether you can reappear the error, plus my environment is Windows + Pytorch 1.10 + Numpy 1.16.1
链接：https://pan.baidu.com/s/15b-NbsrDb5E7DqrjRjaslg
提取码：ldw4

Have you changed the code?

just a little bit, I think it will no matter

You can run my original code to see if it exists.

yes! I just clone the code, and run it by Windows, the problem still exist, here is the complete output:
E:\NCRFpp>python main.py --config demo.decode.config Seed num: 42 MODEL: decode sample_data/example.dev ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ DATA SUMMARY START:  I/O:      Start   Sequence   Laebling   task...      Tag          scheme: BMES      Split         token:  |||      MAX SENTENCE LENGTH: 250      MAX   WORD   LENGTH: -1      Number   normalized: True      Word  alphabet size: 5104      Char  alphabet size: 5104      Label alphabet size: 14      Word embedding  dir: data/embeddings/gigaword_chn.all.a2b.uni.ite50.vec      Char embedding  dir: None      Word embedding size: 50      Char embedding size: 30      Norm   word     emb: True      Norm   char     emb: False      Train  file directory: data/WPS/train.char.bmes      Dev    file directory: data/WPS/dev.char.bmes      Test   file directory: data/WPS/test.char.bmes      Raw    file directory: sample_data/example.dev      Dset   file directory: result/model/lstmcrf.dset      Model  file directory: result/WPS/lstmcrf      Loadmodel   directory: result/model/lstmcrf.72.model      Decode file directory: sample_data/raw.out      Train instance number: 81485      Dev   instance number: 10040      Test  instance number: 8973      Raw   instance number: 0      FEATURE num: 0  ++++++++++++++++++++++++++++++++++++++++  Model Network:      Model        use_crf: True      Model word extractor: LSTM      Model       use_char: False  ++++++++++++++++++++++++++++++++++++++++  Training:      Optimizer: sgd      Iteration: 100      BatchSize: 10      Average  batch   loss: True  ++++++++++++++++++++++++++++++++++++++++  Hyperparameters:      Hyper              lr: 0.015      Hyper        lr_decay: 0.05      Hyper         HP_clip: None      Hyper        momentum: 0.0      Hyper              l2: 1e-08      Hyper      hidden_dim: 200      Hyper         dropout: 0.5      Hyper      lstm_layer: 1      Hyper          bilstm: True      Hyper             GPU: True DATA SUMMARY END. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ nbest: 10 Load Model from file:  result/WPS/lstmcrf build sequence labeling network... use_char:  False word feature extractor:  LSTM use crf:  True build word sequence feature extractor: LSTM... build word representation... Traceback (most recent call last):   File "main.py", line 564, in <module>     decode_results, pred_scores = load_model_decode(data, 'raw')   File "main.py", line 480, in load_model_decode     model = SeqLabel(data)   File "E:\NCRFpp\model\seqlabel.py", line 31, in __init__     self.word_hidden = WordSequence(data)   File "E:\NCRFpp\model\wordsequence.py", line 25, in __init__     self.wordrep = WordRep(data)   File "E:\NCRFpp\model\wordrep.py", line 45, in __init__     self.word_embedding.weight.data.copy_(torch.from_numpy(data.pretrain_word_embedding)) TypeError: expected np.ndarray (got numpy.ndarray)

yes, I just clone the code and run it, the problem still exist. here is the output:
Traceback (most recent call last):   File "main.py", line 564, in <module>     decode_results, pred_scores = load_model_decode(data, 'raw')   File "main.py", line 480, in load_model_decode     model = SeqLabel(data)   File "E:\NCRFpp\model\seqlabel.py", line 31, in __init__     self.word_hidden = WordSequence(data)   File "E:\NCRFpp\model\wordsequence.py", line 25, in __init__     self.wordrep = WordRep(data)   File "E:\NCRFpp\model\wordrep.py", line 45, in __init__     self.word_embedding.weight.data.copy_(torch.from_numpy(data.pretrain_word_embedding)) TypeError: expected np.ndarray (got numpy.ndarray)

Sorry, current I don't have available Windows environment to exam your problem. But I believe it is caused by some bugs in PyTorch rather than my code.
You can find the same problem in other projects:
https://discuss.pytorch.org/t/why-do-i-get-typeerror-expected-np-ndarray-got-numpy-ndarray-when-i-use-torch-from-numpy-function/37525
Maybe I will find an environment to solve this problem, but I don't have time recently.

yes, I see this. we will solve this, let's see

https://discuss.pytorch.org/t/why-do-i-get-typeerror-expected-np-ndarray-got-numpy-ndarray-when-i-use-torch-from-numpy-function/37525
@jiesutd this is could help you  to solve.maybe you not change to torch.

It's also happening for me on numpy 1.17.4, my own solution is to downgrade to 1.16.4

I have the same problem. Downgrading numpy to 1.16.4 did NOT help. Pytorch version: 1.4.0.
Does anybody managed to find a proper solution?


Allow Scripts to Access OAuth Token has moved

Documentation says it's on the Options tab for the build pipeline; it has now moved to the Agent phase configuration.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 77731c06-e4fd-8125-0daf-870c9ccedd3f
Version Independent ID: 0d5c338d-80f9-c64e-b675-bf7b4eb8e32b
Content: Use a PowerShell script to customize your build process
Content Source: docs/pipelines/scripts/powershell.md
Product: devops
GitHub Login: @andyjlewis
Microsoft Alias: alewis

Thanks for the heads up. Yes, for VSTS and newer TFS, but not for older TFS, so this change has to be versioned. Copied to backlog.


web: round last scrape timestamp to milliseconds

The excessive causes the table to jump around on refreshes. This has been bothering me for a while. I don't think we need sub-millisecond precision.

:+1:


Update nidcpower.h by removing LCR attributes and functions

What does this Pull Request accomplish?
In version 7 of nidcpower, we have yet not made public any LCR related attributes and functions. But these changes were present in the forked repo. This change will remove LCR related changes added earlier.
Why should this Pull Request be merged?
This change will make the contents of this file in sync with the exposed attributes and functions publicly and remove those which are not.
What testing has been done?
Manual

No longer required


Return meaningful finish reason instead of a boolean

Return a string to describe about the finish reason.
Related to https://github.com/ModelTC/lightllm/issues/130
Due to in codebase there exists the usage like
req.aborted and req.req_status == ReqRunStatus.WAIT_IN_QUEUE

It is not suitable to merge ReqRunStatus and FinishStatus, so I separate an individual class to indicate the finish reason.

@zeyugao thanks,  I fix some details.


Fix DatePicker bogus scroll

On older versions of Android, layout changes can cause the calendar part of the DatePicker's
view to scroll to a bogus month, which both makes the view look like it has the wrong value,
and also makes it hard to pick a relevant value in many cases. To get around this, we need
to somehow get the control to scroll to show the currently set value whenever layout changes.
To achieve this, we'll reset a counter to zero on layout change, count that up a couple times
in order to wait at least 1 frame (we need more than just one iteration to avoid potential
update manager ordering issues). Then, we'll grab the picker's current value and write it
back, tricking the picker to invalidate and scroll where we want it. The downside of this
approach is that any change in layout that causes this view to change size will scroll
the picker view to the currently selected value, but this is a decent tradeoff.
Also refactor some DatePicker interface code to move view polling and
other knowledge into the Android-specific implementation and expose a
root/unroot interface, which is much more general and could be useful
for other things in the future.
Fixes https://github.com/fusetools/ManualTestApp/issues/372.

One issue we may have here is that this could probably only be done if the api level is lower than 24 (which is when the clock appearance was introduced and methods like setCalendarViewShown was deprecated). @nekronos @kusma @cbaggers do we have a good way to query the API level without calling into java? I suppose I could query that at root time and cache the value, for example.


stop writing default_host.log

How can i disable constant writing to this file?

Technically default-host.log can be disabled in /nginx_proxy_manager/data/nginx/default_host/site.conf
You can comment access_log line and reload nginx proxy manager
HOWEVER I strongly discourage doing this:

You should understand that the point of the default-host.log is to store all access logs for default endpoint. This is exactly what NGINX does
The best way to handle that would be:
a) Logging default-host.log and checking it periodically
b) Blocking connection attempts from parasite IP address / Subnet / Country. The second option cannot be implemented by NPM out of the box.

thank you. solved via router firewall


Dolev/config ignored mails

Pull Request
Description
Add option to ignore list of emails and users on signoff stage

Describe what you did and why.

Related issue (if any): fixes #58
Checklist

[V] I have followed this repository's contributing guidelines.
[V] I have used the conventional commits specification for my commit messages.
[V] I have signed my commits.
[V] I will adhere to the project's code of conduct.

Additional information

Anything else?

I'll take a look tomorrow why it failed

@TomerFi The only issue left is a known issue.

@dolby360
Both this and your previous contributions were a part of the new release 1.2.0.
Thank you very much!

Thank you.
It's a pleasure working with you. Be ready for many more;)
בתאריך יום ד׳, 17 באוג׳ 2022, 17:42, מאת Tomer Figenblat <
@.***>:

@dolby360 https://github.com/dolby360
Both this and your previous contributions were a part of the new release
1.2.0 https://github.com/TomerFi/auto-me-bot/releases/tag/1.2.0.
Thank you very much!
—
Reply to this email directly, view it on GitHub
https://github.com/TomerFi/auto-me-bot/pull/63#issuecomment-1218105938,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AFJABZ22PZ2FRRMTYJRD4M3VZT26ZANCNFSM56W6JCXA
.
You are receiving this because you were mentioned.Message ID:
@.***>


Adding actions to note layout

Adding quick actions in note layout would be a good feature, just like a post in any social media platform. However, it may complicate the UI a lot.
This page has a good overview on what notes could look like with quick actions.
Please share your thoughts.

What actions do you have in mind, those that currently sit in the note option drawer (Add reminder, pin, copy move, ... ?)

I'm still debating on finding a good design or way to put them inside the note layout. But, I think I might prefer swipe actions. If you have any thoughts, let me know!


ESP Exception Decoder Sketch path is not set

I am getting the following errors:
ESP Exception Decoder
Sketch path is not set

Thanks for trying the decoder and reporting the bug. What's your Arduino IDE version?

Version is  2.3.2
In the Preferences I change the SketchBookLocation to /home/pschatzmann/Development/Arduino

In the Preferences I change the SketchBookLocation to /home/pschatzmann/Development/Arduino

I could not reproduce it with 2.3.2 by changing the sketchbook location. I have to ask for some additional details from you:

Can you reproduce the defect by changing the sketchbook location back to the default one? That is ~/Documents/Arduino in Linux.
Can you compile (verify) that sketch in Arduino IDE?
Can you reproduce the bug with an older version of IDE2? For example, the 2.2.1 download links for Linux are the following:

https://downloads.arduino.cc/arduino-ide/arduino-ide_2.2.1_Linux_64bit.AppImage
https://downloads.arduino.cc/arduino-ide/arduino-ide_2.2.1_Linux_64bit.zip

Could you please enable the logs (see https://github.com/dankeboy36/esp-exception-decoder/issues/10#issuecomment-1727811557 for the steps) and share them here?

Thank you

Strange, I activated the log and now it has started to work.
So I guess pasting any logs will not provide any additional information.
I am closing the issue...

Thanks for the update. If you can reproduce it, please let me know.

I get this error in IDE version 2.3.3 for Windows (11).  My sketches are on a personal OneDrive.  The error doesn't show up straight away, it usually takes a while after starting up the IDE (although sometimes straight away).  Usually fixed by restarting the IDE, but then I have to wait for "package_esp32_index.json" to very slowly load (faster if I close the Serial Monitor)...  When it works, ESP Exception Decoder, works well...

My sketches are on a personal OneDrive.

It's a known defect in the Arduino IDE: https://github.com/arduino/arduino-ide/issues/1797. This decoder extension cannot do anything to work around the bug.

Usually fixed by restarting the IDE, but then I have to wait for "package_esp32_index.json" to very slowly load (faster if I close the Serial Monitor)

This was a bug in the Arduino CLI (https://github.com/arduino/arduino-cli/issues/2719) and has been fixed, but the fixes are not yet available from the Arduino IDE 2.3.3 or the nightly builds. (I could not find the corresponding Arduino IDE GitHub issue.) The decoder extension cannot fix this issue.
https://github.com/arduino/arduino-ide/blob/63e9dfd7f5949c77ffbfb6175e2e9c2991317bca/arduino-ide-extension/package.json#L172-L174

ESP Exception Decoder, works well...

I am glad to hear that.
Please update this issue if you can reproduce the defect after moving your sketch from OneDrive to your local disk, and closing the serial monitor.


i did sign the CLA and stil lstatus pending

URL to the linked Repo/Org:
Steps to reproduce the problem:

What is the expected result?
What happens instead?

Hey @Lil-Moon - do you have the same symptoms as per this issue?
https://github.com/cla-assistant/cla-assistant/issues/701
Have you signed a CLA before, or is it your first time signing?

Furthermore, if either of these is the PR you're referring to, both of them is picking up that it is signed now...
https://github.com/openmultiplayer/web/pull/357
https://github.com/openmultiplayer/web/pull/356

Hi @Lil-Moon,
I'm going ahead and close the issue. If you still experience issues, please feel free to open a new issue and include the link to the affected Pull-Request and we can dig into that.


People picker validation error and onchange event

Category
[ ] Enhancement
[ X] Bug
[ ] Question
Version
Please specify what version of the library you are using: [2.0.0]
Expected / Desired Behavior / Question
I want to use the getErrorMessage or errorMessage to display a error message when the field is empty.
Observed Behavior
When I use getErrorMessage, the onChange event is never fired... when using the errorMessage property via a state property it never get's emptied (once the errorMessage is populated). I see the state changing and form getting updated but the errorMessage keeps displaying the error even if the property is empty string or null
Steps to Reproduce
Create a simple react component with just the people picker and try one of the following:

use errorMessage property, controlled by a state property of the react component
use getErrorMessage and onChange together

Same issue here!

Hi @SuleymanA!
Thank you for reporting this issue!
It seems similar to #730 that has been fixed and will be available in the next release.
Could you please check beta version if that solves you problem as well?


docs: improved groups in community page

What is it?

[ ] Feature / enhancement
[ ] Bug
[x] Docs / tests

Description
Previously:

Now:

Use cases and why

One use case

Another use case

Checklist:

[ ] My code follows the developer guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have made corresponding changes to the documentation
[ ] Added new tests to cover the fix / functionality

Looks great, thanks!


Added fusing of quantization multiplication to convolution layer

@terfendail could you please update README to highlight that the plugin supports I8 experimentally?


ThreeFold Connect not receiving login attempts for some users.

EDIT from ken, more tickets with same issue :
https://github.com/threefoldtech/threefold_connect/issues/258
From the testers chat user Enigma

Context
Enigma:

Hi. I'm stuck on the authenticate part. Is something supposed to pop up in my threefold connect app? App is set up with id and tft in wallet. Am I supposed to logout in the app somehow first?

xmonader:

Enigma you need to hve the app open otherwise it won't work

Enigma:

Yeah app is open. Nothing pops up. I've tried going to settings, wallet, and home...but can't see anything to authenticate.
Also just to confirm...when browser page asks for my ID, it is just the first part I type in not the entire ID with the .3bot?

this issue happened with me today, it worked after closing the app 7 times.

Closed until further notice.
Sending another attempt always seems to work if the first one didn't arrive for some reason.
If anyone has this problem consistently please re-open the ticket and PM me personally so that we can find a solution together.


Introduce way to install update directly from tray. Make application updater unit testable...

This PR will:

Introduce behaviours for updating application

Checking for updates automatically
Downgrading version update
Installing update
Installing update from different update channels
Installing update using tray

Introduce way to install update using tray without having to check for updates again

Make notifications unit testable as part of behaviours

Make stuff happening when root frame is rendered unit testable as part of behaviours

Introduce concept called SyncBox to handle situation where main/renderer wants to react to same observable

No need to know anything about IPC anymore
Usages: discoveredUpdateVersionInjectable, progressOfUpdateDownloadInjectable, updateIsBeingDownloadedInjectable and updatesAreBeingDiscoveredInjectable

Channel Abstraction to handle two-way-communication

Consolidates most of the usages of old to new one. Note: some still left untouched for reasons.
To see usages, check usages of channelInjectionToken and channelListenerInjectionToken

Introduce a way to ask Yes/No from user in main process.

Shows notification in window to ask yes/no question from user
Check askBooleanInjectable

Introduce higher order functions for error logging and error suppression

Remove lot of boilerplate from existing unit tests

The tray menu indicates that an update is downloading even though it was already downloaded (?) There's an error too, because the app is not signed, which may be a situation that wouldn't happen, but still seems the menu should not still show the update is downloading.
Screen.Recording.2022-06-01.at.12.01.42.PM.mov
Made these changes to package.json:
diff --git a/package.json b/package.json
index 9eee528d0d..ef9750c69d 100644
--- a/package.json
+++ b/package.json
@@ -3,7 +3,7 @@
   "productName": "OpenLens",
   "description": "OpenLens - Open Source IDE for Kubernetes",
   "homepage": "https://github.com/lensapp/lens",
-  "version": "5.6.0-alpha.0",
+  "version": "5.6.0-alpha.0.1654038172276",
   "main": "static/build/main.js",
   "copyright": "© 2021 OpenLens Authors",
   "license": "MIT",
@@ -30,7 +30,7 @@
     "integration": "jest --runInBand --detectOpenHandles --forceExit integration",
     "test:unit": "func() { jest ${1} --watch --testPathIgnorePatterns integration; }; func",
     "test:integration": "func() { jest ${1:-xyz} --watch --runInBand --detectOpenHandles --forceExit --modulePaths=[\"<rootDir>/integration/\"]; }; func",
-    "dist": "yarn run compile && electron-builder --publish onTag",
+    "dist": "yarn run compile && electron-builder --publish always",
     "dist:dir": "yarn run dist --dir -c.compression=store -c.mac.identity=null",
     "download:binaries": "yarn run ts-node build/download_binaries.ts",
     "build:tray-icons": "yarn run ts-node build/generate-tray-icons.ts",
@@ -196,7 +196,14 @@
         "lens"
       ],
       "role": "Viewer"
-    }
+    },
+    "publish": [
+      {
+        "provider": "s3",
+        "bucket": "lens-auto-update-tests",
+        "path": "/ide"
+      }
+    ]
   },
   "dependencies": {
     "@astronautlabs/jsonpath": "^1.1.0",

and used the installer from make build
If this is a real issue it could be fixed in a followup PR

Sounds definitely like a bug. Thanks for instructions for local testing.


Updating GPMDP breaks shortcuts

I have GPMDP pinned to the start menu. Every time GPMDP is updated, it breaks that shortcut and its icon along with any and all other references to it not updated by the installer/updater, because the install location (AppData\Local\GPMDP_3\ app-3.6.0) changes for every new version that is installed.
Desirable and commonly used behaviour would be to install to the same folder every time, there is no reason to tag the install folder with the application version, neither is there a reason to keep two or more separate versions installed.
Admittedly, I haven't looked at the code, so I don't know how everything is set up. So if for some reason it's undesirable or not possible to have a static install location, at least place an executable in \GPMDP_3 that always launches the newest installed version. Shuffling executable locations around for every update doesn't make much sense.
 Thank you! :smile:
(Windows 7 x64)

@xdpirate

neither is there a reason to keep two or more separate versions installed.

There is actually a very good reason to keep the last version installed when updating, basically it comes down to the entire update methodology that Squirrel.Windows uses.

at least place an executable in \GPMDP_3 that always launches the newest installed version.

There is one, that's how all of our shortcuts work.  It's called Update.exe, if you setup your shortcut to have the following target
Update.exe --processStart "Goolge%20Play%20Music%20Desktop%20Player.exe"

It should launch the latest version automatically.

I have GPMDP pinned to the start menu.

Darn, we have code that automatically fixes peoples shortcuts if they are in any of the following places

Taskbar
Desktop
Start Menu

However, I guess being "pinned" to the start menu places the shortcut in a different folder.  I'll find out what that folder is and add it to our Shortcut Manager

There is one, that's how all of our shortcuts work. It's called Update.exe, if you setup your shortcut to have the following target
I wasn't aware that the update program could do that, thank you! :+1: :smile:

Start menu pinned items location (on Win 7, at least), is
AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\StartMenu :grinning:

... as an daily User with the most awesome app,  I just Deleted the Update exe file so I may use the 3.5.0 version.
The 3.6.0 version still have Sll Black screen.


Disable checkstyle

We use SonarCloud so we don't really need checkstyle during the build...

@LorenzoBettini Just noticed this ticket thanks to your comment on #152. I have a few comments about it.
Firstly, AFAIK, SonarCloud catches code smells and bad practices whereas CheckStyle helps to enforce coding conventions. To me it looks like they don't fulfil the same purposes, so does that really make sense to get rid of CheckStyle?
Secondly, if we don't want to use CheckStyle anymore we should remove the checkstyle.xml file and update the contribution guide, shouldn't we?

@echebbi actually I only disabled checkstyle during the maven build because it was generating too much noise in the log. Since it was generating lots of noise I had the impression that no one cared about that, otherwise those warnings had already been fixed ;)
Moreover the output of checkstyle produced in the build in the CI is not stored anywhere so I thought it was useless under that respect.
Sonarqube detects things like wrong order of public and static for example.
Note that I only disabled checkstyle by default in the build: the plugin configuration is still there (but in the pluginManagement section). Nothing else has been removed.
If you want we can reenable it also in the build, but in that case I think someone should fix all the issues found by checkstyle. Or maybe that can be done by using checkstyle in eclipse.

I may have extrapolated, but since you said that "we dont use CheckStyle anymore" I understood that you were as well discouraging maintainers/contributors from using it.

actually I only disabled checkstyle during the maven build because it was generating too much noise in the log. Since it was generating lots of noise I had the impression that no one cared about that, otherwise those warnings had already been fixed ;)

I do care but it's true that I overlooked the new violations detected by Checkstyle. That's my bad for not taking the time to clean that up.

Moreover the output of checkstyle produced in the build in the CI is not stored anywhere so I thought it was useless under that respect.

I think that it can still be useful when reviewing PR. There's sadly not automatic report but a quick search on "checkstyle" in the raw logs can do the job.

Sonarqube detects things like wrong order of public and static for example.

Maybe SonarQube provides everything we need. I have to take the time to review our Checkstyle rules.

If you want we can reenable it also in the build, but in that case I think someone should fix all the issues found by checkstyle.

That's for sure. Shouldn't take too much time though. Most issues come from this rule that enforces a custom import order which is not followed by Eclipse IDE by default. Others are related to mixed spaces/tabs and wrong indents.
I take the action to check whether Checkstyle can still provide some value & to clean issues if needed.

I'm sorry I sounded despotic saying "We don't use checkstyle anymore", I was in hurry and I thought we were not actually using it O:)
if you want we can re-enable it right now in a Maven profile that we run only on the main Linux workflow, what do you think?

I'm sorry I sounded despotic saying "We don't use checkstyle anymore", I was in hurry and I thought we were not actually using it O:)

It's all fine :)

if you want we can re-enable it right now in a Maven profile that we run only on the main Linux workflow, what do you think?

We're not in a hurry, I think we can wait until I fix Checkstyle issues (I should be able to tackle this in the incoming days).


Use theme from scanpydoc

Fantastic! 😄

Thank you. Updating and releasing a new scanpydoc version is very simple:
First you make and check out your changes in scanpydoc’s own documentation, like in any sphinx project:
$ $EDITOR scanpydoc/theme/static/css/scanpy.css
[hack away]
$ cd docs
$ make html
$ $BROWSER _build/html/index.html
[check if it looks right]

Then you can very quickly commit, tag, and release:
$ git add scanpydoc/theme/static/css/scanpy.css
$ git commit -m 'Made layout even wider (o________o)'
$ git tag v0.5.1  # Don’t forget the “v”!
$ flit publish

That’s literally all.


Add References CodeLens.

Thanks :)

Thanks :)

@vsrs , I was trying to follow up on this by adding a reference CodeLens for enum variants.
I made the naive change to add a hir::ModuleDef::Variant match arm
here, and it compiled fine but didn't make the variant lens annotations show up.
Is that because visit_file_defs isn't returning nodes for enum variants?
Or am I just totally out to lunch lol.
I'd appreciate any pointers :) Thanks!!

I'm pretty sure declarations of a module don't contain variants, so visit_file_defs won't iterate over those as well. So you want to match on the ADT, checking if its an enum, fetch its variants and work with that.

@Veykril thanks a ton, that actually helped get me pointed in the right direction!!
Now I just need to figure out how to write a test for this...

We don't really test protocol boundary parts that much, as seen in this PR there aren't any tests for this either so I'd say its fine to go without them here.


Volume?

Hi there,
Not really an issue, was curious to know what this plugin can do before install it. I can currently control power states using edomoticz. Does this control volume? That would be handy!
Cheers

Yes it does :)

Brilliant, I have just tried it and I can only get the volume through EVE app. I use the native app within iOS 10 and on the watchOS 3. Is there a way to make them work with the stock Home app? The power works fine though 👍

I'll take a look, I haven't tested it with Home in iOS 10 yet

Cheers mate.
Sent from my iPhone
On 8 Oct 2016, at 12:46, Martin Purcell <notifications<EMAIL_ADDRESS>wrote:
I'll take a look, I haven't tested it with Home in iOS 10 yet

You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/greebowarrior/homebridge-squeezebox/issues/4#issuecomment-252420245, or mute the threadhttps://github.com/notifications/unsubscribe-auth/APQCAGDVtsw7MCdg280104KYFf-4f07Rks5qx4J3gaJpZM4KLs06.

HomeKit spec doesn't have a suitable service type that supports volume and power characteristics... it'd have to create a custom service type (as it currently does), thus out of spec, thus unsupported by native-spec-only apps such as iOS10 Home client.

Could it not be like a dimmer that relates to volume? It's what I'm using with my Denon amp? Or two switches, one called conservatory radio and conservatory radio volume. Then asking Siri to "turn off the Conservatory Radio" would turn off the radio and "set Conservatory radio volume to 50%" would do just that?
Cheers
On 9 Oct 2016, at 10:26, Marci <notifications<EMAIL_ADDRESS>wrote:
HomeKit spec doesn't have a suitable service type that supports volume and power characteristics... it'd have to create a custom service type (as it currently does), thus out of spec, thus unsupported by native-spec-only apps such as iOS10 Home client.

You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/greebowarrior/homebridge-squeezebox/issues/4#issuecomment-252475288, or mute the threadhttps://github.com/notifications/unsubscribe-auth/APQCAED8CkCVxMLPK8wlz6VVwUGE484Oks5qyLNNgaJpZM4KLs06.

Yep, but it'd have to show up as a dimmer, and a switch. Two separate devices, not a combined device.

Oh, yes... author needs to just map the LMS as a regular dimmable light rather than a custom device with a custom characteristic, then change it's category to media device. That's the only way it'd work in a spec-only app. Could have a flag in config.json that switches from map-to-spec-only to use-custom-chars to allow folks to choose and allow support either way.

Any luck on this mate? Chumping on the bits to be able to change volume on my squeezeboxes via Siri :)

I setup virtual dimmers within domoticz and they now get/set the volume and power states.


assert causes unhandledRejection when it fails

Trying to use assert:
```
this.Then(/^I should be logged in$/, function(callback) {
    this.client.
      execute("return Meteor.userId()")
      .then(function(res){
        assert.notEqual(res.value, null);
        callback();
      });
  });
```
If the assert throws an error, it causes:
[chimp] Detected an unhandledRejection.
[chimp][hooks] Reason:
[chimp] Finished running async processes with errors
[chimp] run complete with errors Cucumber steps failed
[xolvio:cucumber] Bad response from Chimp server.

Which does not render correctly in the Velcoity html-reporter (see attached) as it does not tell you which scenario or test has failed.
Is there a proper way to use assert (or an alternative) with Cucumber?

OK, so I'm calling assert wrong in my code above.
Here is the final working code:
  this.Then(/^I should be logged in$/, function(callback) {
    return this.client
      .execute("return Meteor.userId()")
      .should.eventually.have.property('value').that.is.not.equal(null);
  });

Much cleaner. Requires have.property due to #89


Support print var in normal mode

I tried to config the print_var function in thenormal mode.
vim.api.nvim_set_keymap(
  "n",
  "<space>rv",
  ":lua require('refactoring').debug.print_var({below = true})<CR>",
  { noremap = true }
)

When I try to run the print_var in normal mode, I got this error message.
E5108: Error executing lua ...ck/packer/start/plenary.nvim/lua/plenary/async/async.lua:14: The coroutine failed with this message: ...packer/start/refactoring.nvim/lua/refactoring/region.lua:153: attempt to get le
ngth of a nil value
stack traceback:
        [C]: in function 'error'
        ...ck/packer/start/plenary.nvim/lua/plenary/async/async.lua:14: in function 'callback_or_next'
        ...ck/packer/start/plenary.nvim/lua/plenary/async/async.lua:40: in function 'step'
        ...ck/packer/start/plenary.nvim/lua/plenary/async/async.lua:43: in function 'execute'
        ...ck/packer/start/plenary.nvim/lua/plenary/async/async.lua:113: in function <...ck/packer/start/plenary.nvim/lua/plenary/async/async.lua:112>
        ...start/refactoring.nvim/lua/refactoring/pipeline/init.lua:70: in function 'print_var'
        [string ":lua"]:1: in main chunk
E5108: Error executing lua ...acker/start/telescope.nvim/lua/telescope/actions/set.lua:81: Vim(buffer):E939: Positive count required: buffer 0
stack traceback:
        [C]: in function 'cmd'
        ...acker/start/telescope.nvim/lua/telescope/actions/set.lua:81: in function 'edit_buffer'

Seem like this plugin has not supported this feature in normal mode.
It would be nice if we're able to print_var in normal mode, it reduces the step that we have to switch to visual mode and select the variable.

Since #308 was merged, I'll close this for now. Thanks for your contributions @thuan1412!


Add argument to list only upgradeable

[x] I have signed the Contributor License Agreement.
[x] This pull request is related to an issue - Resolves #3155

Microsoft Reviewers: Open in CodeFlow

Change looks good. @denelon to see if we have a better arg name than --upgrade

I don't want to require tons of typing, but winget list --upgrade almost feels like a synnonym for winget upgrade --all.
I'm not sure if "--upgrades" is better or "--upgrade-available" is better.

"--upgrade-available" seems more accurate

"--upgrade-available" seems more accurate

Travelling at the moment; Can you add as a suggestion so I can quickly commit?

/azp run

/azp run


Natural gas price calculation in the oilcane biorefinery

Hi @yoelcortes , something wasn't adding up to me on the natural gas price in the oilcane biorefinery, specifically, here
https://github.com/BioSTEAMDevelopmentGroup/Bioindustrial-Park/blob/71e39de4b1d5792654cf31ab9042a652d4337c7e/biorefineries/oilcane/_distributions.py#L102
It looks like the given prices (e.g., 4.16, 4.23) are in $/cf, and it's trying to convert to $/m3 by dividing 35.3146667. However, 1 m3 = 35.3146667 cf, so to convert from $/cf to $m3, I think you should multiply by 35.3146667 and the price would go crazy.
I'm wondering if the original price was given in $/mcf, which is $/1000 scf? Then to convert to $/m3 you should divide the number by (1000/35.3146667) = 28.32, which is more or less in line with the calculation
Also, it would fit more with the natural gas price I see somewhere else, e.g., EIA has it at ~$5/MM Btu, consider the LHV of natural gas is 983 Btu/scf, it's about 5/(1e6/983) = $0.004915/scf, or $4.915/mcf, which match the original distribution in the oilcane biorefinery

Then in the setting the model parameters, you used the conversion factor V_ng:
https://github.com/BioSTEAMDevelopmentGroup/Bioindustrial-Park/blob/71e39de4b1d5792654cf31ab9042a652d4337c7e/biorefineries/oilcane/__init__.py#L654
which I think is about 1.525 m3/kg for CH4, in setting the price:
https://github.com/BioSTEAMDevelopmentGroup/Bioindustrial-Park/blob/71e39de4b1d5792654cf31ab9042a652d4337c7e/biorefineries/oilcane/__init__.py#L734
you used the $/m3 price divided by V_ng to get to the $/kg price, but I think you should multiply by V_ng (e.g., if 1 kg has more than 1 m3 natural gas, the price per kg should be higher than the price per m3)
let me know if I misinterpreted any of your calculations, it's really confusing since they are all in different units... Thanks!

Oh btw, this might explain the differences in natural gas price I observed in different biorefineries, e.g., for cornstover:
>>> from biorefineries import cornstover as cs
>>> cs.load()
>>> cs.BT.natural_gas_price
0.218

but for oilcane it's much lower:
>>> from biorefineries import oilcane as oc
>>> oc.load('O1')
>>> oc.BT.natural_gas_price
0.08356757357116563

Thanks!

Hi Yalin, thanks so much for finding this issue and going over it in detail here. You're absolutely right, the natural gas prices (in USD per m3) should be multiplied (not divided) by 35.3147 (ft3/m3) and should also be divided by 1000. To get prices to USD per kg, they should be multiplied (not divided) by 1.525 m3/kg. As you noted this gives values more in lines with the natural gas price in BioSTEAM (which is originally from Warren Sieder's Process Design and Development textbook).
This should not change any biorefinery results since natural gas is not being consumed.
Thanks!

Feel free to update it, or I can update it later this week. I'll leave this issue open until it's been taken care of :)

Done in https://github.com/BioSTEAMDevelopmentGroup/Bioindustrial-Park/commit/1c2528164e9ad6140afdbb76cdf2a6d226172ee0, checked results for O1 config and indeed it didn't change the price, I'll close this issue!


Add Pendo Track Events for Weave GitOps CLI

Part of #2452

Added tracking command events with Pendo.

Added a test for the getCommandPath function.

Refactored imports where both cmd/gitops/import and pkg/config are imported for consistency.

Notes:

I've rebased on @joshri 's branch auto-analytics ( https://github.com/weaveworks/weave-gitops/pull/2868 ), so I'll need to wait until it is merged and rebase on main before merging the current PR.

You can view tracked events in Product > Track Events in the Pendo dashboard, but there is a delay before the events are displayed there.

I think you need to add the new ldflag(s) to .goreleaser.yml too, or only non-release binaries will have the tier set.

Added! 😅

@JamWils will update ACs and add an issue for WGE


fix: Allow chart import to update the dataset an existing chart points to

SUMMARY

Currently, attempting to overwrite a chart via import fails when the chart in the import file points to a dataset other than the one the chart currently points at.
This is because of the following filter which gets added to the query that checks if the chart being imported already exists:
filters.extend([getattr(cls, k) == dict_rep.get(k) for k in parent_refs.keys()])

which for charts evalulates to
filters.extend([Slice.datasource_id == dict_rep.get("datasource_id")])

When the chart's dataset has been changed, the query fails to find the chart even if a chart with the same UUID exists. It then attempts to create the chart since it thinks it doesn't exist, which obviously fails the UUID uniqueness constraint.
This PR allows for charts to be "re-parented" to another dataset on import by removing this filter for chart imports, which can be useful when importing and exporting assets between environments after making changes, or for managing assets as code.
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

TESTING INSTRUCTIONS

Have a database connection with a dataset
Create a virtual dataset identical to the dataset (SELECT * FROM <physical_dataset>)
Create a chart for each dataset
Do a bulk export with both of these charts
Extract the export file
Navigate to the charts folder and swap the dataset_uuid values for the charts
Compress the file
Import it back into the Superset instance
See the charts have swapped datasets

ADDITIONAL INFORMATION

[x] Has associated issue: https://github.com/apache/superset/issues/22506
[ ] Required feature flags:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

This is awesome! Thanks!!!

@jfrag1 I saw yesterday that someone publish a SIP about this topic. Should we wait for the SIP before making this change? In the SIP, they are proposing to require explicit confirmation from the user before overriding associated assets. Is this PR going to conflict with the SIP?

The SIP not only proposes the UI to allow choice in the cascade of overrides, but also having a checkbox or similar introduces a place to check for or add ownership/RBAC constraints. I'll add this comment (and others) to the sip as well.

I think this would only conflict with the SIP in case the chart dataset update also happens when importing a dashboard. Currently the overwrite check is only "applied" to the actual asset being imported -- for example, if you import a dashboard with charts, the dashboard will be overwritten but charts wouldn't. So if this change is only applied when importing a chart directly (or via the /api/v1/assets/import/ endpoint) I don't think it conflicts.

Got it. Thanks @jfrag1 @Vitor-Avila and @betodealmeida for the additional context.

@jfrag1 finally someone who understands the issue and know how to fix it! You are the best! Can't wait for it...


1.10: Attempting to use the Configurator on Pressurized Tubes causes a repeatable crash.

Crash report, for reference in case it helps pin down the bug. The crash report was substantially the same every time every time I repeated it.
http://pastebin.com/u3pDpE3B
In short, using a charged Configurator to attempt to access and configure Pressurized Tubes of any variety causes an immediate crash to desktop. The Configurator can still be used in wrench mode to remove the tubes, but any attempt to actually access them causes bad juju.
Experienced while using the All the Mods pack v1.4 on the Curse launcher, though it's likely universal (although I haven't checked for certain). It can be replicated on other clients besides my own, that I did verify with a friend.
Was attempting to pull hydrogen gas from an Electrolytic Separator, couldn't in any way get the tubes to hook up to the Separator nor find the configuration for the Separator itself, so, went for my Configurator, and the game crashed out on me.

This is due to a mod shipping with an outdated CoFH API. I assure you it's not on my end :)

its the same as this issue https://github.com/aidancbrady/Mekanism/issues/3474


[quilt_rails] Metric rounding error

Overview
https://app.bugsnag.com/shopify/signage/errors/5ed70682b066f60018d9e1dd?event_id=5eeacb59005b6dbc9fde0000&i=sk&m=ps
Consuming repo

What repo were you working in when this issue occurred?

Signage

@kvendrik, I think @b-ryu  had looked into this in the past and found it part of the junk data that was being sent by folks trying to mess with the endpoint


a few performance notes

Hi! I came here via a twitter post about performance. I was curious, so I poked around a bit for fun. A few minor comments, in the hopes that they are useful.
First, BenchmarkRandomInsert can be a bit misleading. If you make it run faster, it gets to a higher b.N, but at higher b.N, each iteration has to do more work. Thus code improvements don't necessarily show up in improved benchmark results. Picking a fixed number of iterations to do each time would be better. Perhaps like:
func BenchmarkRandomInsert(b *testing.B) {
	const iters = 10000
	boxes := randBoxes(iters)
	b.ResetTimer()
	for i := 0; i < b.N; i++ {
		var tr RTree
		for iter := 0; iter < iters; iter++ {
			tr.Insert(boxes[iter].min[:], boxes[iter].max[:], iter)
		}
	}
}

Second, I can get a ~15% speedup on BenchmarkRandomInsert on my machine by unrolling the loops in chooseLeastEnlargement. Here's the 3d version:
// min is a sloppy float min function.
// It is faster than math.Min, at the cost
// of sloppy handling of the usual
// floating point delights: NaN and Inf.
func min(x, y float64) float64 {
	if x < y {
		return x
	}
	return y
}

// max is like min, only max.
func max(x, y float64) float64 {
	if x < y {
		return y
	}
	return x
}

func (r *box) chooseLeastEnlargement(b *box) int {
	j, jenlargement, jarea := -1, 0.0, 0.0
	n := r.data.(*node)
	for i := 0; i < n.count; i++ {
		area := (n.boxes[i].max[0] - n.boxes[i].min[0]) *
			(n.boxes[i].max[1] - n.boxes[i].min[1]) *
			(n.boxes[i].max[2] - n.boxes[i].min[2])

		enlargedArea := (max(b.max[0], n.boxes[i].max[0]) - min(b.min[0], n.boxes[i].min[0])) *
			(max(b.max[1], n.boxes[i].max[1]) - min(b.min[1], n.boxes[i].min[1])) *
			(max(b.max[2], n.boxes[i].max[2]) - min(b.min[2], n.boxes[i].min[2]))

		enlargement := enlargedArea - area

		if j == -1 || enlargement < jenlargement || (enlargement == jenlargement && area < jarea) {
			j, jenlargement, jarea = i, enlargement, area
		}
	}
	return j
}

IMHO, it also improves readability a bit. Of course, it makes your code generation more complicated.

For anyone stumbling upon this post, the tweet mentioned above presents some preliminary benchmark results comparing my Rust and Go implementations of this data structure.
https://twitter.com/tidwall/status/1156339153698562048

Hi!
You bring up excellent points. Loop unrolling is undoubtedly a good improvement.
The code generation stuff doesn't concern me too much at this point. It came in handy while I was knee-deep into designing and testing.  But the data structure is hardened now and 2D/3D is all that I personally care about.
Another great side-effect from unrolling loops is that the smaller functions will then become candidates for inlining by the Go compiler. It is a bit unfortunate that the Go compiler does not inline functions with FOR loops.
Thus functions such as
func (r *box) intersects(b *box) bool {
	for i := 0; i < dims; i++ {
		if b.min[i] > r.max[i] || b.max[i] < r.min[i] {
			return false
		}
	}
	return true
}

could be replaced with
func (r *box) intersects(b *box) bool {
        return !(b.min[0] > r.max[0] || b.max[0] < r.min[0] ||
                b.min[1] > r.max[1] || b.max[1] < r.min[1]
                b.min[2] > r.max[2] || b.max[2] < r.min[2])
}

even this (cringe) is better for the compiler
func (r *box) intersects(b *box) bool {
	i := 0
loop:
	if i < dims {
		if b.min[i] > r.max[i] || b.max[i] < r.min[i] {
			return false
		}
		i++
		goto loop
	}
	return true
}

There are a few other improvements, such as moving to proactive insertions which would allow for a non-recursive insert function. But these are implementation details and not really related to the language or compiler. I hope to include these in the Go version at some point.
I'm confident that once these improvements are in-place the Go version will perform as well as the Rust version.

As for the benchmarking. Good tip on b.N. While the BenchmarkRandomInsert is only intended as a sanity check for perf regressions, it's probably worthwhile to make the change to recommend.
Here's the benchmark code that I used in the tweet:
package main

import (
	"math/rand"
	"os"
	"time"

	"github.com/tidwall/lotsa"
	"github.com/tidwall/rbang-go"
)

func main() {
	N := 1000000
	ENVELOPE := []float64{-112.0, 33.0, -111.0, 34.0}
	lotsa.Output = os.Stdout
	rand.Seed(time.Now().UnixNano())

	points := make([][2]float64, N)
	for i := 0; i < N; i++ {
		points[i][0] = rand.Float64()*360 - 180
		points[i][1] = rand.Float64()*180 - 90
	}

	tr := rbang.New(2)
	print("rbang-insert: ")
	lotsa.Ops(N, 1, func(i, _ int) {
		tr.Insert(points[i][:], points[i][:], i)
	})

	print("rbang-search: ")
	lotsa.Ops(N, 1, func(i, _ int) {
		var count int
		tr.Search(ENVELOPE[:2], ENVELOPE[2:],
			func(_, _ []float64, _ interface{}) bool {
				count++
				return true
			},
		)
	})

	print("rbang-delete: ")
	lotsa.Ops(N, 1, func(i, _ int) {
		tr.Delete(points[i][:], points[i][:], i)
	})
}

Thanks a ton for your input!

It is a bit unfortunate that the Go compiler does not inline functions with FOR loops.

There are many unfortunate things about the Go compiler's inliner: https://github.com/golang/go/issues/17566. For a discussion specifically about inlining for loops: https://github.com/golang/go/issues/14768. Feel free to ping the latter issue in the hopes of inspiring David to finish it up. :)

I'm confident that once these improvements are in-place the Go version will perform as well as the Rust version.

If it doesn't, and you've run out of optimization ideas, I'm happy to take another look. Optimizing Go code is one of my hobbies. :)  (Competing with Rust is not. I'm in full agreement with this thread: https://twitter.com/rustlang/status/1156926772212092928.)
Oh, and thanks for providing the benchmark code you used. I looked around a bit in the repo for it and then gave up and used the existing benchmark there.  And when a rando like me wanders into your code base looking for perf improvements it's where they'll start.  :)


Add support for GameObject tags

Similar to Unity's tag system, game objects should support tags so that related objects can be grouped together.
The simplest approach to achieve this would be to just have each GameObject support a Tag property - or Tags (to support more than one tag) which can be freely reassigned. However, this can lead to string dependencies and mistakes through typos which is a common mistake made in Unity.
An alternative approach would be to use a 64-bit tag mask which means tags can be stored as a single bit within the mask, rather than a collection of heap-allocated strings. This would lead to a performance boost but would in fact limit game objects to only having 64 tags maximum. Too many? Not enough?

Provisional implementation introduced with 4f49b713bd48b4487ad515cff691cc68232f7547
Subject to API change, issue remains open for now


Airy Live Chat: End Chat option

Summary
To enhance the Airy Live Chat experience, we should offer contacts the option to end the current chat permanently. We could offer this option with an X at the top righthand side of the chat, next to a (-) symbol as a means of minimizing the conversation. If a contact chooses to click this button, the next interaction with this user will create an entirely new conversation.

Design Notes
These images are only for illustrative purposes - this feature does not need to be built to look identical to this.

What's the exact UI interaction we expect to happen when someone clicks the button?

When someone clicks the button, we can prompt something like the following image:

And if the contact clicks "End", we can display a message saying something like "Your conversation has ended. Thank you for chatting with us today."
Below this, we can also offer the option to Start a New Conversation if the contact would like to.

To reiterate, the X will prompt the contact to end the chat, and the minus symbol will prompt the contact to minimize the chat. Please use the minus symbol I've attached from this website for the design.

Also: what will the agent see in the app? Do we send a special crafted message type saying "conversation ended" / "conversation restarted" ?

I think that would make the most sense in this situation. This way, the agent is aware of how to approach the conversation from that point forward (whether to treat it as an extension of the current conversation or the beginning of a new conversation).

As discussed in #1436 we might want to change the "auto open" setting if the chat has ended. So don't open the chat automatically when opening the page and the chat is defined as closed.


update to sbt version 0.13.7

Since typesafe migrated their repos  using sbt 0.13.0 leads to an obscure compilation error. Upgrading to a more recent sbt version resolves the problem.

Thanks! :-)


Show article/website inside app

Just a thought, instead of compulsorily sending the user outside the app, we can load the website inside a webview and show / hide with a toggle

That was intentional TBH. I open a lot of links in Twitter and similar apps, which opens the link inside the in-app browser, and then I have to do "Open in Browser" to open it in an external browser so that I can take actions (like saving as bookmark, sign in with my already logged in accounts, and similar other actions). This is the reason why I thought of taking the user to their favorite browser.
But this user experience can be improved a lot - by allowing the user to open in-app or externally. This can be an app setting. The original focus was to learn the MAD architecture, but now this can be improved by adding more features like user login, settings, personalization, and even bookmarks.


Question about pre-training

Thank you for providing such a well-documented model with all of the pretraining code!
I am currently using the provided slurm scripts to pre-train and I had a few questions.
You said in a previous issue that the models in the paper (1.9M parameters and 470k parameters) were trained for 10k steps.  When I look at the log files, I see the following metrics for the 1.9M parameter model)
start (after 1 step):
val/loss=0.970
val/perplexity=2.640
test/loss=0.964
test/perplexity=2.620
current (10268 steps):
val/loss=0.956
val/perplexity=2.600
test/loss=0.951
test/perplexity=2.590
I don't see a big difference in the loss or perplexity between the model at step 1 and 10k steps. Is this consistent with what you also saw in your training?  How did you decide to stop training at 10k steps?

Looking at my training runs, I have that validation loss @ 2k steps is 0.997 and at @10k steps it is 0.9521, which is a meaningful reduction. I don't believe I ever evaluated after 1 step so I don't have that number to compare to directly, but I am somewhat surprised by the value of 0.970 you report, which essentially corresponds to near random initialization.
10k steps was chosen based on speed of experimental iteration and to be somewhat comparable to HyenaDNA for similar sized models

Thank you for your quick reply.
Yes, I was also surprised. Perhaps I am misinterpreting the log files in the watch_folder directory?  I was looking at the very first logged value and assuming that was "step 1"

I think the first logged eval values should correspond to max_steps // 5 steps of training. If you can provide a bit more information about the command you used to launch the pre-training experiment and some of the log outputs as well, we can try to verify this.

I used the run_pretrain_caduceus.sh script provided.
I was wondering if perhaps it was loading a pre-trained model instead of a randomly initialized model.  Could that be the case?
I made the following changes to run in our environment:

added appropriate account, partition and time
replaced the setup_env.sh with activating the CADUCEUS_3 environment that I set up for our system and adding the cd to the correct caduceus dir
changed N_LAYER to 4

#!/bin/bash
#SBATCH --get-user-env                      # Retrieve the users login environment
#SBATCH --account=soc-gpu-np
#SBATCH --partition=soc-gpu-np
#SBATCH --qos=soc-gpulong-np
#SBATCH -t 72:00:00                         # Time limit (hh:mm:ss)
#SBATCH --mem=100G                          # RAM
#SBATCH --gres=gpu:a6000:8                        # Number of GPUs
#SBATCH --ntasks-per-node=8                 # Should correspond to num devices (at least 1-1 task to GPU)
##SBATCH --cpus-per-task=4                   # Number of CPU cores per task
#SBATCH -N 1                                # Number of nodes
#SBATCH --requeue                           # Requeue job if it fails
#SBATCH --job-name=caduceus_ps              # Job name
#SBATCH --output=../watch_folder/%x_%j.log  # Log file
#SBATCH --open-mode=append                  # Do not overwrite logs
module load cuda
nvidia-smi
source activate CADUCEUS_3
Setup environment
#cd ../ || exit  # Go to the root directory of the repo
#source setup_env.sh
cd /uufs/chpc.utah.edu/common/home/u1323098/sundar-group-space2/PHAGE/MODELS/CADUCEUS/caduceus
export HYDRA_FULL_ERROR=1
NUM_DEVICES=8
Run script
SEQLEN=1024
MAX_STEPS=10000
D_MODEL=256
N_LAYER=4
LR="8e-3"
BIDIRECTIONAL_STRATEGY="add"
BIDIRECTIONAL_WEIGHT_TIE="true"
RCPS="true"
RC_AUG="false"
BATCH_SIZE=$(( 1048576 / SEQLEN ))
SEQLEN_DIS="$(echo "scale=0; ${SEQLEN} / 1000" | bc)k"
WANDB_NAME="caduceus_ps_seqlen-${SEQLEN_DIS}_d_model-${D_MODEL}_n_layer-${N_LAYER}_lr-${LR}"
HYDRA_RUN_DIR="./outputs/pretrain/hg38/${WANDB_NAME}"
mkdir -p "${HYDRA_RUN_DIR}"
srun python -m train
experiment=hg38/hg38
callbacks.model_checkpoint_every_n_steps.every_n_train_steps=500
dataset.max_length=${SEQLEN}
dataset.batch_size=$(( BATCH_SIZE / NUM_DEVICES ))
dataset.mlm=true
dataset.mlm_probability=0.15
dataset.rc_aug="${RC_AUG}"
model="caduceus"
model.config.d_model=${D_MODEL}
model.config.n_layer=${N_LAYER}
model.config.bidirectional=true
model.config.bidirectional_strategy=${BIDIRECTIONAL_STRATEGY}
model.config.bidirectional_weight_tie=${BIDIRECTIONAL_WEIGHT_TIE}
model.config.rcps=${RCPS}
optimizer.lr="${LR}"
train.global_batch_size=${BATCH_SIZE}
trainer.max_steps=${MAX_STEPS}
trainer.devices=${NUM_DEVICES}
+trainer.val_check_interval=$(( MAX_STEPS / 5 ))
wandb.group=pretrain_hg38
wandb.name="${WANDB_NAME}"
hydra.run.dir="${HYDRA_RUN_DIR}"

I was wondering if perhaps it was loading a pre-trained model instead of a randomly initialized model. Could that be the case?

Unless you have a checkpoint file in the HYDRA_RUN_DIR under checkpoints/last.ckpt this should not be loading any pre-trained models.
Based on the above, I believe the first time this logs val/test metrics is after 2k training steps. The different hyperparameters for the model (e.g. N_layers) that you used could account for why you see different metrics than what I posted. In any case, I think the validation loss curve you describe is reasonable.


vulnerability for Version 1.x. CVE-2021-4104

Hi,
Further this vulnerability discovered in v1.x, can we possibly release log4j without the JMSAppender. Here are recommendations provided on Slf4's website: http://slf4j.org/log4shell.html
See section on log4j 1.x:
In the absence of a new log4j 1.x release, you can remove JMSAppender from the log4j-1.2.17.jar artifact yourself. Here is the command:

   zip -d log4j-1.2.17.jar org/apache/log4j/net/JMSAppender.class

As tampering with the contents of public libs is not handy, this release would help.
I'm calling to contributors, @tallpsmith @scottdeboy @YoavShapira @grobmeier @garydgregory @pfumagalli I hope one of you is still active
Best regards,
Gregory

Hey, @zg2pro, you're not the only one with this suggestion! A few of us have been discussing what to do already. I just opened PR #16 with how far we got so far.
At Apache most communication happens on mailing lists. Could you join us there? See https://logging.apache.org/log4j/2.x/mail-lists.html for more information.

This PR should be closed.
See https://github.com/apache/logging-log4j1/blob/main/README.md for rationale.
See

https://reload4j.qos.ch/
https://github.com/qos-ch/reload4j

for a maintained/released fork with security fixes.


Add a way to skip parameters in categories

Using your config, let's look at Operational Amplifiers. They're a subgroup of Amplifiers, which is a subgroup of Integrated Circuits. Since Amplifiers specify Supply Current, whenever you're importing an opamp (say, a TL072), you'll be asked for Supply Current which is not really something listed in opamp datasheets.
It'd be nice if there was an _omit_parameters field to ignore these things.

Btw I'd like to help on things like this, I'm not just asking for you to do something, but you gotta approve it first.

The categories and parameters in my config are mainly based on DigiKey's structure. And regarding that specific example, DigiKey indeed specifies Supply Current (without Load) for Opamps. For example for the TL072HIDR. The value seems to come from the graphs on Page 28/29 of the datasheet.
Anyways, regarding the feature suggestion: I have actually come across a case in my configuration where this could have been useful, but the format generally works without it. You'll just have to define the parameters further down the category tree.
I'm not per se against this feature, but I fear that it might be pretty confusing.

After thinking about this a little more, I guess it wouldn't really hurt much to implement this and it might makes configuration easier in some cases.
Regarding the naming, _omit_parameters is already not bad. What do you think about something like _omit_parent_parameters or _ignored_parent_parameters (mainly to convey that this affects parameters inherited from parent categories)?

(Oh also, offtopic: Did you receive my e-mail reply btw? I had some issues with the DNS settings for my mail server the first time I sent it ^^)

Hey, I got your e-mail!
Yeah,  I agree with this, hopefully I'll find time soon to make an MR.
Also off topic here:
I'm also considering ways of incorporating the template part / variant functionality to have generic parts. I'll write an issue about it when I investigate it a bit further.
I'm currently doing an important project that uses your tool + Inventree, I want to see it through before suggesting any new functionality; I need to get a feel for how it works in real use.

Yeah, I agree with this, hopefully I'll find time soon to make an MR.

I might also be able to give it a shot if I find some time. I think this should require pretty minimal changes, like 10 lines or so at max.

I'm also considering ways of incorporating the template part / variant functionality to have generic parts. I'll write an issue about it when I investigate it a bit further.

Definitely check out #20 (comment) if you do. That's the kind of functionality that I'd think makes the most sense here (probably with slightly different naming though).

I'm currently doing an important project that uses your tool + Inventree, I want to see it through before suggesting any new functionality; I need to get a feel for how it works in real use.

Cool! Let me know if you run into any issues.

This has been implemented in b28047d!


Python3.7-dev is causing problems

Even though the python3.7-dev is installed, the install.sh script stops and returns the following response:

I have also this issue, I thought that was because I use the WSL on windows, but this seems not the issue.
Seems that the grep is buggy, maybe we can change the evaluation and replace grep

Ok, at first I wondered, but I'm the one who is buggy, not grep :rofl:


How to compile to dynamic library?

Hi, guys,
I just get a 76-byte libworkflow.so and 11.7M libworkflow.a after I run the make command in the project root folder. How to generate a real dynamic shared library?
Even using the libworkflow.a library, I can't compile my code. The error is below:
XXXXX@XXXXX-HPWS:~/personal/gitee/dl4cpp$ make
g++ -g -std=c++11 -Wall -I./sogou-workflow/include -L./sogou-workflow/lib -l:libworkflow.a src/main.cc -o src/main.o
/tmp/cc1vPAdt.o: In function protocol::HttpMessage::append_output_body(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)': /home/XXXXX/personal/gitee/dl4cpp/./sogou-workflow/include/HttpMessage.h:159: undefined reference to protocol::HttpMessage::append_output_body(void const*, unsigned long)'
/tmp/cc1vPAdt.o: In function EncodeStream::~EncodeStream()': /home/XXXXX/personal/gitee/dl4cpp/./sogou-workflow/include/EncodeStream.h:101: undefined reference to EncodeStream::clear_buffer()'
/tmp/cc1vPAdt.o: In function protocol::RedisValue::~RedisValue()': /home/XXXXX/personal/gitee/dl4cpp/./sogou-workflow/include/RedisMessage.h:228: undefined reference to protocol::RedisValue::free_data()'
/tmp/cc1vPAdt.o: In function protocol::RedisMessage::~RedisMessage()': /home/XXXXX/personal/gitee/dl4cpp/./sogou-workflow/include/RedisMessage.h:324: undefined reference to redis_parser_deinit'
/tmp/cc1vPAdt.o: In function WFServerBase::WFServerBase(WFServerParams const*)': /home/XXXXX/personal/gitee/dl4cpp/./sogou-workflow/include/WFServer.h:56: undefined reference to vtable for WFServerBase'
/tmp/cc1vPAdt.o: In function WFServerBase::start(unsigned short)': /home/XXXXX/personal/gitee/dl4cpp/./sogou-workflow/include/WFServer.h:69: undefined reference to WFServerBase::start(int, char const*, unsigned short, char const*, char const*)'
/tmp/cc1vPAdt.o: In function WFServerBase::stop()': /home/XXXXX/personal/gitee/dl4cpp/./sogou-workflow/include/WFServer.h:133: undefined reference to WFServerBase::shutdown()'
/home/XXXXX/personal/gitee/dl4cpp/./sogou-workflow/include/WFServer.h:134: undefined reference to WFServerBase::wait_finish()' /tmp/cc1vPAdt.o: In function WFServerBase::~WFServerBase()':
/home/XXXXX/personal/gitee/dl4cpp/./sogou-workflow/include/WFServer.h:52: undefined reference to vtable for WFServerBase' /tmp/cc1vPAdt.o: In function WFServer<protocol::HttpRequest, protocol::HttpResponse>::new_session(long long, CommConnection*)':
/home/XXXXX/personal/gitee/dl4cpp/./sogou-workflow/include/WFHttpServer.h:53: undefined reference to WFServerTaskFactory::create_http_task(std::function<void (WFNetworkTask<protocol::HttpRequest, protocol::HttpResponse>*)>&)' /tmp/cc1vPAdt.o:(.rodata._ZTV8WFServerIN8protocol11HttpRequestENS0_12HttpResponseEE[_ZTV8WFServerIN8protocol11HttpRequestENS0_12HttpResponseEE]+0x20): undefined reference to WFServerBase::handle_unbound()'
/tmp/cc1vPAdt.o:(.rodata._ZTV8WFServerIN8protocol11HttpRequestENS0_12HttpResponseEE[_ZTV8WFServerIN8protocol11HttpRequestENS0_12HttpResponseEE]+0x28): undefined reference to WFServerBase::create_listen_fd()' /tmp/cc1vPAdt.o:(.rodata._ZTV8WFServerIN8protocol11HttpRequestENS0_12HttpResponseEE[_ZTV8WFServerIN8protocol11HttpRequestENS0_12HttpResponseEE]+0x30): undefined reference to WFServerBase::new_connection(int)'
/tmp/cc1vPAdt.o:(.rodata._ZTVN8protocol12RedisMessageE[_ZTVN8protocol12RedisMessageE]+0x10): undefined reference to protocol::RedisMessage::encode(iovec*, int)' /tmp/cc1vPAdt.o:(.rodata._ZTVN8protocol12RedisMessageE[_ZTVN8protocol12RedisMessageE]+0x28): undefined reference to protocol::RedisMessage::append(void const*, unsigned long*)'
/tmp/cc1vPAdt.o:(.rodata._ZTVN8protocol12RedisMessageE[_ZTVN8protocol12RedisMessageE]+0x48): undefined reference to non-virtual thunk to protocol::RedisMessage::append(void const*, unsigned long*)' /tmp/cc1vPAdt.o:(.rodata._ZTI8WFServerIN8protocol11HttpRequestENS0_12HttpResponseEE[_ZTI8WFServerIN8protocol11HttpRequestENS0_12HttpResponseEE]+0x10): undefined reference to typeinfo for WFServerBase'
collect2: error: ld returned 1 exit status
GNUmakefile:15: recipe for target 'src/main.o' failed
make: *** [src/main.o] Error 1

Hi there! Thank you for using our project.
I think I could help with the later question.
This is your command:

g++ -g -std=c++11 -Wall -I./sogou-workflow/include -L./sogou-workflow/lib -l:libworkflow.a src/main.cc -o src/main.o

Here are my two opinions:

src/main.cc should be put before -l:libworkflow.a. Library order does matter when using g++. See Here for more details.

-lssl -lcrypto -lpthread is needed following -l:libworkflow.a. Workflow needs OpenSSL and PThreads.

So, I think the right command was:
g++ -g -std=c++11 -Wall src/main.cc -I./sogou-workflow/include/ -L./sogou-workflow/lib -l:libworkflow.a -lssl -lcrypto -lpthread -o src/main.o
In addition, I have two other suggestions:

g++ outputs an executable file, so main.o might not be a good name. Usually .o file is created by g++ -c.

It is not necessary to rename _include and _lib dirs under sogou-workflow. But it is all right if you like it, not a problem.

If you got other problems, please don't be hesitate to  contact us. Thank you.

My fault.

Thanks @sonullx for quick reply. "main.o" is just for my test code. In formal project, I won't use the name like this.

@sonullx
One  more question: why the content of libworkflow.so is text: GROUP ( libworkflow.a AS_NEEDED ( libpthread.so libssl.so libcrypto.so ) ) ? I don't this kind of usage before. Where can I find the reference?

It is a linker script.
See this.


tests: Add target support to RepositorySimulator

Add very simple targets support into simulator
Add documentation for the simulator
Add an example targets test

This might need to be tweaked and/or extended as we add tests but the
implementation should give a good indication of how to extend it.
As an example, non-consistent targets (or metadata) are not yet supported, but
making fetch() check for the consistent_snapshot state and respond
accordingly should be easy.
Signed-off-by: Jussi Kukkonen<EMAIL_ADDRESS>
This should be useful to properly test consistent targets (#1576 ) and then implement good test coverage for updater in general.
CC @MVrachev, marking you a reviewer as I know you might want to use it. If you have any improvement ideas let me know. A potential one is a way for simulator to verify targets client has downloaded (a helper, so tests could say "assert that my target  is correct"), but I figured we'd first write some tests and see where we duplicate code...

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.02%) to 97.285%

Totals

Change from base Build<PHONE_NUMBER>:
0.02%

Covered Lines:
3950

Relevant Lines:
4038

💛  - Coveralls

(rebased on develop)


Block network requests for tests

Explicitly specify tests that do network requests
Close #105

Self-review: Gram, add flags to skip network-required tests and check it again.

These improvements are project specific. Best decision for DepHell is to forbid connections for all tests and allow only for some of them. pytest-socket is designed to support both ways with accent on allowing for all and forbidding for some. So, I don't think I have anything to contribute.
Thank you for review :)


update curl vcpkg version to 8.8.0

Fixes a component issue with 8.4.0 by updating to latest version available
Microsoft Reviewers: Open in CodeFlow

/azp run

/azp run

/azp run

/azp run


add support to Django 1.8

Add django 1.8 to:

Tox environment
Documentation
Example requirements

Coverage remained the same at 100.0% when pulling 5e7cf6024178644732a455138989d525ccc71b53 on django18 into 6733363fbf47333460cf952ca7cd721efae53376 on master.

Coverage remained the same at 100.0% when pulling 5e7cf6024178644732a455138989d525ccc71b53 on django18 into 6733363fbf47333460cf952ca7cd721efae53376 on master.

Coverage remained the same at 100.0% when pulling 5e7cf6024178644732a455138989d525ccc71b53 on django18 into 6733363fbf47333460cf952ca7cd721efae53376 on master.

Coverage remained the same at 100.0% when pulling 5e7cf6024178644732a455138989d525ccc71b53 on django18 into 6733363fbf47333460cf952ca7cd721efae53376 on master.

Coverage remained the same at 100.0% when pulling 5e7cf6024178644732a455138989d525ccc71b53 on django18 into 6733363fbf47333460cf952ca7cd721efae53376 on master.

Coverage remained the same at 100.0% when pulling 5e7cf6024178644732a455138989d525ccc71b53 on django18 into 6733363fbf47333460cf952ca7cd721efae53376 on master.

Coverage remained the same at 100.0% when pulling 5e7cf6024178644732a455138989d525ccc71b53 on django18 into 6733363fbf47333460cf952ca7cd721efae53376 on master.


iPadOS 15 showing unsolicited paste notification when typing in textfield

Steps to Reproduce

Add textfield to state full widget
Run app on iPadOS 15
Click on textfield and every time you enter a character the iOS clipboard notification displays

Expected results:
When typing in textfield the pasted notification should not show
Actual results:
When typing in a textfield on iPadOS 15 the posted notification shows
This does not happen on iOS

Hi @alexrabin, Thanks for filing the issue. I verified on the latest master channel and I was not able to reproduce the issue.
https://user-images.githubusercontent.com/31410839/151134527-65551f47-f68e-40a0-ba6f-f00204f9a31c.mov

flutter doctor -v
[✓] Flutter (Channel master, 2.9.0-1.0.pre.504, on macOS 12.1 21C52 darwin-arm, locale en-GB)
    • Flutter version 2.9.0-1.0.pre.504 at /Users/mahesh/Documents/flutter_master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 94d9b02deb (5 hours ago), 2022-01-25 22:00:07 -0600
    • Engine revision 54e1f3f4bb
    • Dart version 2.17.0 (build 2.17.0-54.0.dev)
    • DevTools version 2.9.2

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/mahesh/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.10.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • 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.8+10-b944.6916264)

[✓] IntelliJ IDEA Community Edition (version 2021.2.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 60.1.4
    • Dart plugin version 212.5080.8

[✓] VS Code (version 1.63.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.32.0

[✓] Connected device (4 available)
    • Redmi K20 Pro (mobile) • <IP_ADDRESS>:5555                     • android-arm64  • Android 11 (API 30)
    • iPhone 13 (mobile)     • 2FAADB73-D3EE-48FA-BF0D-B99CE312D366 • ios            •
      com.apple.CoreSimulator.SimRuntime.iOS-15-2 (simulator)
    • macOS (desktop)        • macos                                • darwin-arm64   • macOS 12.1 21C52 darwin-arm
    • Chrome (web)           • chrome                               • web-javascript • Google Chrome 97.0.4692.99

• No issues found!

You have to type in the textfield. Not just click on it

@alexrabin typing doesn't make any difference, can you share a video recording for a better visual to understand whats happening?
https://user-images.githubusercontent.com/31410839/151169466-34ddab94-1ac1-4502-8e2a-44b4e70d222f.mov

can you please check if this happens in other native apps.

Also, you could try running flutter textfield on web https://gallery.flutter.dev/#/demo/text-field

This is on a physical device not simulator
https://user-images.githubusercontent.com/15949910/151172343-7a9fc196-7214-4e1c-8fa6-072ab1c3cfd8.MOVis

Also, you could try running flutter textfield on web https://gallery.flutter.dev/#/demo/text-field

The paste message isn't showing up on there. Only on an app running on a physical device

This is my flutter doctor:
[✓] Flutter (Channel stable, 2.8.1, on macOS 12.1 21C52 darwin-x64, locale en-US)
    • Flutter version 2.8.1 at /Users/alexanderrabin/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 77d935af4d (6 weeks ago), 2021-12-16 08:37:33 -0800
    • Engine revision 890a5fca2e
    • Dart version 2.15.1

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/alexanderrabin/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.2

[✓] Android Studio (version 2020.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • 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-7281165)

[✓] VS Code (version 1.63.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.32.0

I verified on the latest master channel

I'm on stable branch, not master

Thanks for the info @alexrabin Could you please share the exact specs of the device on which this issue reproduces? Also would it be possible for you to verify if this happens on a simulator? I verified on iPad pro 9.7inch (ios 15.2) and iPad pro 11 inch 3rd generation (ios 15.2), This issue doesn't reproduce on the latest stable 2.8.1.

I don't want to use master. I'm trying to build an app for production. This is a work around, not a fix for production

@alexrabin This was a known issue that was fixed in the master, you will have to either wait until the fix lands on the stable channel in the upcoming releases or cherry-pick the fix locally.
Heres a related PR: https://github.com/flutter/flutter/pull/87678

Alrighty. Do you know how long it usually takes to get merged into stable?

Stable releases happen every quarter, branched out from beta channel. You can read more about it here https://github.com/flutter/flutter/wiki/Flutter-build-release-channels.
I see that this issue is also fixed on beta, You may try switching to the beta channel too.
Closing as fixed in new versions.


[Feature] Selector for for latest version when many provided

Is your feature request related to a problem? Please describe.
The database may have many values for a veature differenciated by version of the feature extractor (this may happen with classifications and magstats and corrections?)
The behaviour right now is not centralized and not completly clear.
Describe the solution you'd like
A consisten way to select the version tu use to display data musy be choosen.
Describe alternatives you've considered
Save a list with the different versions ordered by time or relevancy. If a query return many object return the one with the greates index in the list of versions. If not in the list, its always -1.
Note. the special case for lightcurve classifier and its features must be considered (exclude features version 23..
Additional context
This happen for example selecting the period for a lightcurve.
The object ZTF20aawwxkg have many periods calculated

The lightcurve uses 0.9980563820532297. Why?

This problem also affects classifiers.
When a new classifier and/or feature computation go into production, and an object has a previous classification and/or feature, then the Explorer shows more than one value for it, but it should show the latest one instead.
Example: ZTF22abyhaut
If I search ZTF22abyhaut in the Explorer, "Object ID" search filter, classifier "Stamp Classifier", output shows 2 rows with different highest probability classes (SN and bogus) and highest probabilities (0.537 and 0.415). A query to the database shows that these correspond to classifier versions "1.0.1" and "stamp_classifier_1.0.4" respectively. Although 2 results were shown in the search output, pressing on any of them leads to the same result https://alerce.online/object/ZTF22abyhaut, where bogus is the highest probability class (even when I pressed on the "SN" result row).
For this object, the same happens for the classifier "Lc Classifier" search: it gives 2 rows as a result, corresponding to versions "hierarchical_rf_1.1.0" and "lc_classifier_1.1.13".
This object has a period computed as a feature and displayed when selecting "Folded" in the light curve panel. It shows one value, but a query to the database shows that there are 2 "Multiband_period" computations, with values 0.330039 and 1.0, corresponding to versions "lc_classifier_1.2.1-P-transitional" and 23.12.25 respectively. It is not clear how the Explorer selects which one it will show.
The Explorer should show results only for the latest version. This includes the stamp classifier, the light curve classifier (and its branches), and features (currently only multiband period available in the Explorer).

Many solutions were considered.
In my opinion, to keet the most features of the search and api system, the refactor should be at database query level. Considering this I propose to use the taxonomy table to filter the last version of each classifier when searching and a similar table (even the same works) to fiter last version of features.
In the case of features is not that critical because there are no search querys over the table. So a backend solution could be implemented, but for consistency y suppor using the same solution for probabilities and for features.

New proposal, based on discussions with @AlxEnashi:

In the Explorer results table, add a column at the end indicating the version of the classifier. This will indicate to the user why rows are duplicated.
In the Explorer probabilities plot (after an object was selected from the list) show only results for the highest priority version. This version will be usually the latest available for the object, and will be shown even if the user selected a row with a different version (this mismatch occurs currently in the Explorer, but there are no indications of what version was chosen to be displayed in the plot).
The ideal solution, i.e. having no duplicates in the results table, is not feasible now because of pagination problems. A proper solution must be discussed in detail before moving to LSST.


Investigate serializer lookup issue

this didn't work this.get('/auction_results');
whereas this did:
this.get('/auction_results', (schema/*, request*/) => {
  return schema.auctionResult.all();
});

f95aa53262164953f70c970812d8462aa13feab2 closes


Fatal Twig\Extension\DebugExtension Timber 1.21.0

Expected behavior
Enable "DebugExtension" in a Wordpres  theme.
Actual behavior
A fatal “Fatal error: Uncaught LogicException: Unable to register extension “Twig\Extension\DebugExtension” as it is already registered.” is triggered
Steps to reproduce behavior
Add this hook in function.php theme :
add_filter('get_twig', function($twig)
{
    $twig->addExtension(new \Twig_Extension_Debug());
    return $twig;
});

What version of WordPress, PHP and Timber are you using?
WordPress 6.0.3, PHP 8.0, Timber 1.21.0
How did you install Timber? (for example, from GitHub, Composer/Packagist, WP.org?)
Upgraded to auto updade WordPress

@adriencorb Thanks for filling out this issue. We already know why this happens and it will be fixed with #2658.
This error happens, because we accidentally included Twig v2 instead of v1 in the plugin. And as of Twig 2, it’s not possible to register an extension twice. A LogicException will be thrown.
Because Timber already registers the DebugExtension when you set WP_DEBUG to true, you can remove the line of code that registers the DebugExtension. So in the next release, you will not see this error. But for future compatibility, it’s better to remove it now.
add_filter('get_twig', function($twig)
{
	// 👇 Remove this line, because Timber already registers the DebugExtension.
    $twig->addExtension(new \Twig_Extension_Debug());

   return $twig;
});


Dapr sidecar working for DotNet but not Springboot app

I have deployed Dapr based application to Azure Kubernetes service. The app is using Dapr sidecar to connect to a RabbitMQ pub sub component.
Everything works fine as expected in the Dotnet code. As can be sen below, the Dotnet consumer is able to communicate to the RabbitMQ broker.

With the same configuration for RabbitMQ pubsub component, when I try to use a consumer based on Springboot application, I get the following error. The Springboot based consumer is unable to establish the connection with RabbitMQ.

I have tried deploying RabbitMQ in Kubernetes cluster and also on an Azure VM. In both cases Dotnet consumer works perfectly fine. However, Java Springboot consumer fails with the same error in both situations.
Is there anything specific needs to be configured for Dapr Springboot SDK for Java when it is deployed to AKS? Note, the same code works fine in the standalone mode when running locally using dapr run command.
The complete source code is available in GitHub
https://github.com/NileshGule/cloud-native-ninja
What version of Dapr?
1.9.5

Can you share the RabbitMQ component YAML that you use for the Spring app?

The Springboot app seems to be running fine one port 8080

Can you share the RabbitMQ component YAML that you use for the Spring app?

hi @yaron2
You can find the Component YAML for RabbitMQ PubSub in Github
https://github.com/NileshGule/cloud-native-ninja/blob/main/k8s/Dapr-components/pubsub.yaml
The K8s manifest files are located in k8s directory
https://github.com/NileshGule/cloud-native-ninja/tree/main/k8s

I saw that your example uses Java 19. I would try with Java 17 instead because we have not yet got the SDK to work with Java 19.

I saw that your example uses Java 19. I would try with Java 17 instead because we have not yet got the SDK to work with Java 19.

@artursouza  I changed the Java version to 17 and still get the same error 😭😭😭

What's the value for connectingString in your k8s clusters?

In the past, I have seen issues when the application was not listening at the right endpoint. Can you change your app to listen on <IP_ADDRESS>?

What's the value for connectingString in your k8s cluster? It looks like Dapr is trying to connect to RabbitMW at localhost:8080

hi @yaron2
I am using the RabbitMQ connection string as a secret
amqp://user:PASSWORD@rabbitmq.default.svc.cluster.local:5672
Here is the secret definition
https://github.com/NileshGule/cloud-native-ninja/blob/main/k8s/AutoScaledConsumer/01-secret-rabbitmq-host.yml
The RabbitMQ pub sub component references this secret
https://github.com/NileshGule/cloud-native-ninja/blob/main/k8s/Dapr-components/pubsub.yaml

@ishanul thanks for the suggestion. I have already tried using eclipse-temurin based base image with the tag arm64v8/eclipse-temurin:17-jdk-jammy
Let me try a different flavour to see if it makes any difference.


Restructure to allow combining soft assertions entry points

Changes soft assertions entry point implementations to be interfaces with default methods, rather than classes. This allows you to combine multiple of them into a single entry point class.
Check List:

Fixes #1569
Unit tests : YES
Javadoc with a code example (on API only) : Not yet (will add if core team is happy with the implementation)

One thing I'm not sold on is the name of the superinterface. SoftAssertion is too similar to SoftAssertions. I'm open to suggestions, but perhaps SoftAssertionBase? Thoughts @joel-costigliola ?

One thing I'm not sold on is the name of the superinterface. SoftAssertion is too similar to SoftAssertions. I'm open to suggestions, but perhaps SoftAssertionBase? Thoughts @joel-costigliola ?

Actually, I meant SoftAssertionsBase. Another candidate is ISoftAssertions.

One thing that occurred to me is that the usage of interfaces with default methods means abandoning Java 6 compatibility - is that going to be a problem?

One thing that occurred to me is that the usage of interfaces with default methods means abandoning Java 6 compatibility - is that going to be a problem?

I don't think so as AssertJ Core 3.x requires Java 8 or higher

@kriegfrj integrated, thanks for the work.
I have changed a few things:

added AutoCloseableSoftAssertionsProvider instead of having SoftAssertionsProvider  being AutoCloseable, this raised a compiler warning for regular SoftAssertions because it was not explicitly closed!
renamed AbstractBDDSoftAssertions to BDDSoftAssertionsProvider
renamed AbstractStandardSoftAssertions to StandardSoftAssertionsProvider
renamed Java6AbstractBDDSoftAssertions to Java6BDDSoftAssertionsProvider
renamed Java6AbstractStandardSoftAssertions to Java6StandardSoftAssertionsProvider
made SoftAssertionsMultipleProjectsTest even more classy ;-)

I'm all good with those changes! Explains why auto close was not put on the main class originally. And the abstract classes - i didn't change those for backward compatibility,  but i suppose this would have been a breaking change anyway.
Thanks for your hard work... I'll polish up #1819 now.

If you don't close or run an AutoCloseable in try with resources block, you get a compiler warning.
so basically using SoftAssertions led to this warning.
Renaming is a breaking but we already had one by moving the classes to interfaces.