Custom Entity Recognition

How to train custom entity labels other than PER, LOC, ORG & MISC?
I need entities like "total amount" from a document.

The code is data agnostic: if you provide the right vocab files / data files, it will be able to learn any task.

@guillaumegenthial Hi,  I used some tags other than PER, LOC, ORG &MISC，but when I used conlleval to evaluate the predictions, it only has accuray not zero, precision,recall and FB1 are all zeros, and there isn't evaluation results for each tag. The output of conlleval is as follows, can you tell me what's wrong? Thank you~
processed 120652 tokens with 0 phrases; found: 0 phrases; correct: 0.
accuracy:  97.37%; precision:   0.00%; recall:   0.00%; FB1:   0.00

@guillaumegenthial Hi, I used some tags other than PER, LOC, ORG &MISC，but when I used conlleval to evaluate the predictions, it only has accuray not zero, precision,recall and FB1 are all zeros, and there isn't evaluation results for each tag. The output of conlleval is as follows, can you tell me what's wrong? Thank you~
processed 120652 tokens with 0 phrases; found: 0 phrases; correct: 0.
accuracy: 97.37%; precision: 0.00%; recall: 0.00%; FB1: 0.00

Face same problem ? Did you able to resolve this problem


:closed_lock_with_key: CAC cert for Katy

Upload a cac cert migration to STG

The secure migration will only be uploaded for STG

Warnings

:warning:
Please add the JIRA issue key to the PR title (e.g. MB-123)

  Generated by :no_entry_sign: dangerJS against 99897642fe51c73b55772096aad0be951e998be9


BaseX 8.0: New XQJ Driver

The server protocol in BaseX 8.0 was updated. Could you please update the BaseX XQJ driver to Version 1.4.0? It works with both BaseX 8.0 and older versions. Thanks in advance.

Hi ligasgr,
I've tried to fork and update the repository to support the new XQJ driver, but I'm afraid that I'm running into problems.
/usr/home/bridger/src/intellij-xquery/src/main/java/org/intellij/xquery/usage/XQueryFindUsageProvider.java:59: cannot find symbol
symbol  : variable FIND_OTHER_USAGES
location: interface com.intellij.find.impl.HelpID
        return HelpID.FIND_OTHER_USAGES;
                     ^

This error appears to be the main problem when I run the Gradle intellij-xquery [allTests] and [build] commands from IDEA v14.0.3 but that may be a bad assumption on my part.
I'd like to be able to help with this, but I'm afraid that I don't know enough Java to sort through these problems. If you have suggestions or feedback, I'm delighted to try to make additional changes and provide a pull request -- of course, I do realize that it is probably easier for an expert to fix this.
Thank you for all of your work on the plugin.
Best,
Bridger

Hi,
@ChristianGruen
Due to some external constraints I'm not able to work on this at the moment. I'll try to sort it out at some point.
@CanOfBees
from what I can see on your fork you're heading more or less in the right direction :)
The issue is that last release was still built and released with IntelliJ 13 in mind (and on the machine). In order to sort out all the problems that you're facing you either have to be using IntelliJ 13 or do the full migration of the production codebase (some api changes) + lots of debugging and checking IntelliJ source code for fixing all of those failing tests (they did some changes to the internals of the platform which cause some of the tests fail). If you are really determined to know IntelliJ plugin platform from the inside-out - give it a go! Otherwise I'd suggest trying it out on the older version of IDEA.
In general I'll try to sort it out soon (-ish) so if you have the patience please wait for a month or so. If not you can always use the latest driver by configuring your XQuery Data Source (on XQuery Data Sources tab in settings) to use "User defined XQJ driver". This should work fine out of the box!
Thanks and regards,
Grzegorz

Thanks!

ligasgr - thank you so much!


main warning: playback too early (-52994): down-sampling
main debug: resampling stopped (drift: -12862 us)
main warning: playback too early (-77383): down-sampling
main debug: resampling stopped (drift: -10010 us)
main warning: playback too early (-66171): down-sampling
main debug: resampling stopped (drift: -3423 us)
main warning: playback too early (-48540): down-sampling
main debug: resampling stopped (drift: -7199 us)
main warning: playback too early (-54023): down-sampling
main debug: resampling stopped (drift: 12848 us)
main warning: playback too early (-45447): down-sampling
main debug: resampling stopped (drift: -5193 us)
main warning: playback too early (-63212): down-sampling
main debug: resampling stopped (drift: -37 us)
main warning: playback too early (-43082): down-sampling
main debug: resampling stopped (drift: -18092 us)
main warning: playback too early (-65706): down-sampling
main debug: resampling stopped (drift: 2711 us)
main warning: playback too early (-45181): down-sampling
main debug: resampling stopped (drift: -4889 us)
main warning: playback too early (-46320): down-sampling
main debug: resampling stopped (drift: -7158 us)
main warning: playback too early (-65955): down-sampling
main debug: resampling stopped (drift: -1074 us)
main warning: playback too early (-62910): down-sampling
main debug: resampling stopped (drift: 4561 us)
main warning: playback too early (-45177): down-sampling
main debug: resampling stopped (drift: -4172 us)
main warning: playback too early (-48064): down-sampling
main debug: resampling stopped (drift: -7602 us)
main warning: playback too early (-44293): down-sampling
main debug: resampling stopped (drift: -3928 us)
main warning: playback too early (-89022): down-sampling
main debug: resampling stopped (drift: -1002 us)
main warning: playback too early (-41583): down-sampling
main debug: resampling stopped (drift: -3461 us)
main warning: playback too early (-51197): down-sampling
main debug: resampling stopped (drift: -11934 us)
main warning: playback too early (-41702): down-sampling
main debug: resampling stopped (drift: -779 us)
main warning: playback too early (-47410): down-sampling
main debug: resampling stopped (drift: -10512 us)
main warning: playback too early (-45883): down-sampling
main debug: resampling stopped (drift: -5547 us)
main warning: playback too early (-40184): down-sampling
main debug: resampling stopped (drift: 779 us)
main warning: playback too early (-56496): down-sampling
main debug: resampling stopped (drift: 11467 us)
main warning: playback too early (-45028): down-sampling
main debug: resampling stopped (drift: -5485 us)
main warning: playback too early (-45415): down-sampling
main debug: resampling stopped (drift: -4927 us)
main warning: playback too early (-45951): down-sampling
main debug: resampling stopped (drift: 1022 us)
main warning: playback too early (-41989): down-sampling
main debug: resampling stopped (drift: 18091 us)
qt debug: Video is not needed anymore
qt warning: orphaned video window
main debug: exiting
main debug: exiting
main debug: no exit handler
main debug: removing all interfaces
main debug: removing module "qt"
main debug: deactivating the playlist
main debug: incoming request - stopping current input
direct3d11 debug: WinProc WM_DESTROY
direct3d11 debug: Win32 Vout EventThread terminating
direct3d11 debug: Win32VoutCloseWindow
direct3d11 debug: WinProc WM_DESTROY
main debug: killing decoder fourcc h264' main debug: removing module "avcodec" main debug: saving a free vout main debug: reusing provided vout main debug: removing module "h264" main debug: killing decoder fourcc mlaw'
main debug: removing module "g711"
mmdevice debug: state changed: 0
wasapi debug: reset
main debug: removing module "samplerate"
main debug: removing module "audio_format"
main debug: removing module "scaletempo"
main debug: removing module "trivial"
main debug: removing module "float_mixer"
main debug: keeping audio output
main debug: removing module "live555"
main debug: Program doesn't contain anymore ES
main debug: dead input
main debug: nothing to play
main debug: destroying useless vout
main debug: removing module "direct3d11"
direct3d11 debug: Direct3D11 resources destroyed
qt debug: IM: Deleting the input
direct3d11 debug: Direct3D11 device adapter closed
direct3d11 error: SetThumbNailClip failed: 0x800706f4
main debug: removing module "inhibit"
qt debug: releasing video...
qt debug: Video is not needed anymore
main debug: removing module "freetype"
main debug: removing module "yuvp"
main debug: removing module "swscale"
main debug: removing module "mmdevice"
qt debug: requesting exit...
qt debug: waiting for UI thread...
qt debug: QApp exec() finished
qt debug: Video is not needed anymore
qt debug: Killing extension dialog provider
qt debug: ExtensionsDialogProvider is quitting...
main debug: removing module "lua"
main debug: removing module "win32"
main debug: removing module "hotkeys"
main debug: destroying
main debug: saving media library to file C:\Users\Alex\AppData\Roaming\vlc\ml.xspf.tmp4440
main debug: looking for playlist export module matching "export-xspf": 4 candidates
main debug: using playlist export module "export"
main debug: removing module "export"
main debug: deleting item Media Library' main debug: deleting item rtsp://<IP_ADDRESS>/ch0_1.h264'
main debug: deleting item `Playlist'
main debug: removing module "memory"
-- logger module stopped --

Would have liked to have done a bit more but am currently occupied with other things at this time, hopefully later on.

I'm rewriting the grabber for the umpteenth time.
Soon I will release a new version.


Migration to eslint flat config

This PR converts the config files to the newer format of flat config files. Information on this new format can be found in this official  blog post and docs page.
In order to use these new config files, each package should have a eslint.config.js file at its root and set up following the readme file.

please create beachball change

change file made


Ordering content in a list layout

What happened?
Hey! The theme is awesome. I faced some minor issues ordering content in a list layout. I'm not sure if they can be considered bugs but I wanted to share.
Order by date before weight
While default Hugo behavior is to order content by weight > date > title > filename Congo seems to order content by date > weight > ... So if date exists in a frontmatter weight is ignored.
Order by weight goes bottom-to-top
When there is no dates in posts Hugo orders content by weight. But content with lower weight comes lower in the list while Hugo docs says "Lower weight gets higher precedence.". So I expected a page with the lowest weight to appear first but it appears last in a list with the Congo theme.
Theme version
v2.3.0
Hugo version
v0.101.0
What browsers are you seeing the problem on?
Chrome
Relevant Hugo log output
No response

Thanks for the detailed report. I'll take a look at these and see if there's any adjustments to be made that can improve the output. In general, I try to stick to the default Hugo behaviours as much as possible.

A bit of a research showed that this line is responsible for the issue if it helps somehow
https://github.com/jpanther/congo/blob/a74a40190ae87a7cfbef3db7a8e2a9300acea2c8/layouts/_default/list.html#L29


Updated AUCE app

Better calculation of the fit errors, especially in decreasing functions

Still not able to run the site properly though


Deploy Python 3.7 action

it seems that IBM cloud function already support python 3.7. you can review the it here:  IBM Cloud Blog
The blog claim it is faster than python 3.6, it will be grate if the default runtime will be python 3.7

@idoyehe thanks for reporting this...let me explore in more details and we decide on the next step. I put this on hold for now, as more need to be investigated

@gilv @idoyehe With pull #112 , Python3.7 becomes default runtime in PyWren (With this pull request, Python 3.5, 3.6 and 3.7 have default runtime). Now PyWren internally checks the Python version and deploys the appropriate runtime, totally transparent to the users.
I did some tests, and seems that the Python 3.7 runtime is better in the invocation phase than the Python 3.6 one:
Python 3.6 runtime:

Python 3.7 runtime:

Looks like we can close it..


Robust Problem returns None

In non-robust problems, prob.value returns the objective value at optimality when prob.solve() is called, but in robust problems, prob.value always None

Fixed in 84f525704c49cd599db08e82c4f62173e3386432


negative currency parsing not working for de_DE, but for de_AT

I have following code:
import 'package:intl/intl.dart';

void main() {
  final currencyFormatter = NumberFormat.currency(locale: "de_DE", symbol: "", decimalDigits: 2);
  print (currencyFormatter.parse('-10'));
}

as far as I can see, the formatter should be able to work with negative values. I expect the formatter to parse the value.
Instead I get this:
Unhandled exception:
FormatException: Invalid Number: -10
#0      _NumberParser.invalidNumber (package:intl/src/intl/number_format.dart:1181:7)
#1      _NumberParser.parse (package:intl/src/intl/number_format.dart:1173:44)
#2      new _NumberParser (package:intl/src/intl/number_format.dart:1034:13)
#3      NumberFormat.parse (package:intl/src/intl/number_format.dart:597:29)
#4      main (file:///C:/Users/qiong/Desktop/test/test.dart:6:28)
#5      _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:301:19)
#6      _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:168:12)

I step debugged into this, and it seems that the culprit lies here:
https://github.com/dart-lang/intl/blob/master/lib/src/intl/number_format.dart#L1172
Apparently the negativeSuffix for de_DE is somehow an empty space character, which is of course wrong, and causes the NumberFormatter to throw an error.
Out of curiosity I changed the locale from de_DE to en_US and then parsing works!, more interestingly it also works when I change the locale to de_AT.
There must be an oversight somewhere in the locale configuration, causing the negativeSuffix to be set incorrectly for the locale de_DE
the currencyPattern for de_AT is here:
https://github.com/dart-lang/intl/blob/master/lib/number_symbols_data.dart#L347
and for de_DE:
https://github.com/dart-lang/intl/blob/master/lib/number_symbols_data.dart#L329
there must be an issue somewhere in these lines
Can someone check?
EDIT:
So what I found out so far:
the currency pattern for de_DE is '#,##0.00\u00A0\u00A4'
Which makes the numberformatter detect the positiveSuffix of this pattern as \u00A0 or ' ' according to
https://github.com/dart-lang/intl/blob/master/lib/src/intl/number_format.dart#L1256
which in turn is inserted to the negativeSuffix according to https://github.com/dart-lang/intl/blob/master/lib/src/intl/number_format.dart#L1275
All of this results in negativeSuffix being set to a blank space character, which fails all negative checks for input strings like "-1000", because the last space is missing, can someone confirm that this is a bug?
Also the following code is not working for me:
  final currencyFormatter = NumberFormat.currency(locale: "de_DE", symbol: '€', decimalDigits: 2);
  print (currencyFormatter.parse('10.000,00 €'));

Unhandled exception:
FormatException: Invalid Number: 10.000,00 €
#0      _NumberParser.invalidNumber (package:intl/src/intl/number_format.dart:1181:7)
#1      _NumberParser.parse (package:intl/src/intl/number_format.dart:1174:25)
#2      new _NumberParser (package:intl/src/intl/number_format.dart:1034:13)
#3      NumberFormat.parse (package:intl/src/intl/number_format.dart:597:29)
#4      main (file:///C:/Users/qiong/Desktop/test/test.dart:5:28)
#5      _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:301:19)
#6      _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:168:12)

It seems the issue is relevant for all countries with the euro currency since they all share currency pattern. Moreover, I found ru locale also to fail under these conditions.

yes indeed, generally .parse works very unreliably

Closing in favor of #376 and #478.
The problem is the space inserted by the formatter: even if you try to avoid the symbol by setting it to an empty string, an unbreakable space will still be inserted.
This works:
final formatter = NumberFormat.currency(
  locale: "de_DE",
  symbol: "",
  decimalDigits: 2,
);
print(formatter.parse('-10\u00A0'));

Your second problem is simply the broken relationship between format and parse for currencies.


Convert all file writes to output as UTF-8

A while back in PR #17 the files were written out as UTF-8 which is the default.
The file writing process was changed from a streamwriter with UTF-8 encoding over to File.WriteAllText but UTF-8 seems to have been dropped so this PR adds it back.

That seems like an omission, thanks for fixing that!

Thanks @laurencee I think I introduced that error. I've now learnt some new things!


[BACKLOG-8421] Added MDI support to Get Variable step

@mdamour1976 @bmorrise

Build completed
:fire: This pull request has some issues. It would be preferable to fix them in order for it to be just perfect. See below for more details. Some links are also available below for further assistance in addressing those issues.
Build Commands:

ant -Dtestreports.dir=bin/reports/unit-test -f engine/build.xml clean-all resolve jacoco && ant -Dtestreports.dir=bin/reports/integration-test -f engine/build.xml jacoco-integration checkstyle publish-local

Cleanup Commands:
rm -r ~/.ivy2/local || echo no publish local to remove
Changed files:
engine/src/org/pentaho/di/trans/steps/getvariable/GetVariableMeta.java
engine/src/org/pentaho/di/trans/steps/getvariable/messages/messages_en_US.properties
engine/test-src/org/pentaho/di/trans/steps/getvariable/GetVariableMetaInjectionTest.java
Unit test coverage change:
org.pentaho.di.job.entries.evalfilesmetrics.JobEntryEvalFilesMetrics:

Branch Change :  + .39%
Complexity Change :  + .51%
Instruction Change :  + .08%

org.pentaho.di.job.entries.getpop.MailConnectionMeta:

Branch Change : -1.00%
Complexity Change : -1.41%
Instruction Change : -.30%

org.pentaho.di.repository.kdr.KettleDatabaseRepositoryCreationHelper:

Branch Change : -1.64%
Complexity Change : -.69%
Instruction Change : -2.43%
Line Change : -3.70%

org.pentaho.di.trans.step.StepMeta:

Instruction Change :  + .19%
Line Change :  + .27%

org.pentaho.di.trans.steps.ifnull.IfNullMeta:

Instruction Change : -.08%

org.pentaho.di.trans.steps.ldapoutput.LDAPOutputMeta:

Instruction Change :  + .06%

org.pentaho.di.trans.steps.pgbulkloader.PGBulkLoaderMeta:

Branch Change :  + 1.75%
Complexity Change :  + .93%
Instruction Change :  + .23%
Line Change :  + .28%

org.pentaho.di.trans.steps.setvalueconstant.SetValueConstantMeta:

Instruction Change :  + .14%

org.pentaho.di.trans.steps.symmetriccrypto.symmetriccryptotrans.SymmetricCryptoTransMeta:

Branch Change : -3.33%
Complexity Change : -1.85%
Instruction Change : -.28%

org.pentaho.di.trans.steps.textfileinput.TextFileInputMeta:

Branch Change : -.53%


Add overloads to fn with more arguments

... because sometimes you have functions with more arguments. :)

👍  Seems reasonable! If you pull in the most recent changes on master that should hopefully get CI green so we can merge 🙂

@dfreeman - done!


exec format error

Hi, I've deployed hello-kubernetes to a 4 node raspberry pi k3s cluster and I'm getting the following output:
$ kubectl get service hello-kubernetes-custom
NAME                      TYPE           CLUSTER-IP    EXTERNAL-IP   PORT(S)        AGE
hello-kubernetes-custom   LoadBalancer   <IP_ADDRESS>   <pending>     80:31288/TCP   13m
$ kubectl get pods
NAME                                       READY   STATUS             RESTARTS   AGE
svclb-hello-kubernetes-custom-snkgf        0/1     Pending            0          13m
svclb-hello-kubernetes-custom-f44xh        0/1     Pending            0          13m
svclb-hello-kubernetes-custom-cghph        0/1     Pending            0          13m
svclb-hello-kubernetes-custom-kfqgg        0/1     Pending            0          13m
hello-kubernetes-custom-6468f86645-x98pq   0/1     CrashLoopBackOff   7          13m
hello-kubernetes-custom-6468f86645-mv2q6   0/1     CrashLoopBackOff   7          13m
hello-kubernetes-custom-6468f86645-gvwcd   0/1     CrashLoopBackOff   7          13m
$ kubectl logs svclb-hello-kubernetes-custom-snkgf
$ kubectl logs hello-kubernetes-custom-6468f86645-x98pq
standard_init_linux.go:211: exec user process caused "exec format error"

What could I look at in order to find out what's going wrong?

That's most probably because https://hub.docker.com/r/paulbouwer/hello-kubernetes/tags is for OS/ARCH linux/amd64 - which your raspberry pi k3s cluster is not... because that's ARM. Hope that makes sense. Have fun & best of luck.

That's most probably because https://hub.docker.com/r/paulbouwer/hello-kubernetes/tags is for OS/ARCH linux/amd64 - which your raspberry pi k3s cluster is not... because that's ARM. Hope that makes sense. Have fun & best of luck.

That indeed makes sense, thanks for the explanation!

@MichaelMichaelMichaelMichaelMichael stay tuned. I've just started planning a multi-arch version of this image so that you can run it on linux/amd64, linux/arm64, and windows/amd64.
Thanks for bringing this up - using this on a raspberry pi cluster validates my thinking for supporting arm.
By the way, what Pi are you running on? Should this be supporting both linux/arm/v7 and linux/arm64 ?

@MichaelMichaelMichaelMichaelMichael
Sorry if this has already been resolved.
I had the same problem and was able to solve it by reading through this issue to find out what caused the problem.
Your problem was caused by the lack of an ARM image on docker hub.
However, if you build the image yourself, you can get it working.
Just clone the repository and build it as described here.
I hope this message will help you.
Thanks to the author of this "hello-kubernetes" repo and the author of the issue!

@paulbouwer
pi@ras0:/home/pi [0] > lsb_release  -a
No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux 10 (buster)
Release:	10
Codename:	buster
pi@ras0:/home/pi [0] > uname -a
Linux ras0 5.4.51-v8+ #1333 SMP PREEMPT Mon Aug 10 16:58:35 BST 2020 aarch64 GNU/Linux

It's a Raspberry Pi 4. Meanwhile, I've added some Intel nuc bricks to that cluster, so for me, the docker buildx is taking the argument linux/x86_64,linux/arm64 in order to match both architectures. After a few weeks of training in kubernetes & docker, I come to the conclusion that having a mixed cluster brings many caveats to take care of when deploying my own apps and makes me learn that topic in depth.


Remove Candidate

Candidate was a type to record the possibility that a package was replaced using the replacements feature. However there were only two places that cared about this possibility. One was switched to used a lookup table in #6860. This PR switches the other to use that table as well. Making the entire Candidate type unnecessary.
The main benefit of this change is a reduction in the cognitive complexity.

r? @alexcrichton
(rust_highfive has picked a reviewer for you, use r? to override)

@bors: r+
Nice!

:pushpin: Commit c1b22c5b8661f5b4e21400b30be0646e86a005ee has been approved by alexcrichton

:hourglass: Testing commit c1b22c5b8661f5b4e21400b30be0646e86a005ee with merge 1ae512da978647df80494a7ac663961ccab61878...

:sunny: Test successful - checks-travis, status-appveyor
Approved by: alexcrichton
Pushing 1ae512da978647df80494a7ac663961ccab61878 to master...


Added classes to support lists provided by Extension:FlaggedRevs

FlaggedRevs (https://www.mediawiki.org/wiki/Extension:FlaggedRevs) is a commonly used MediaWiki extension to organize revisions. It allows to review edits before making them available for public. It offers part of its functionality through the MediaWiki Action-API, for example lists of reviewed, unreviewed and oldreviewed (already reviewed, but unreviewed changes) pages. I added classes for these queries, based on RecentchangeTitles.

Can you add unit tests that shows how the new classes should be used?

They are exactly used like RecentchangeTitles, but I'll write a few tests nonetheless.

I found some bugs, will fix them tomorrow.

Preparing a wiki for unit tests is quite difficult in this case as it requires the extension to be installed as well as multiple users with different rights.
Using it however is not difficult:
Iterator<String> reviewed = new ReviewedPagesTitles(MediaWikiBot);
Iterator<String> unreviewed = new UnreviewedPagesTitles(MediaWikiBot);
Iterator<String> oldreviewed = new OldreviewedPagesTitles(MediaWikiBot);
They equal to these special pages (for example on Liquipedia-SC2):
http://wiki.teamliquid.net/starcraft2/Special:ReviewedPages
http://wiki.teamliquid.net/starcraft2/Special:UnreviewedPages
http://wiki.teamliquid.net/starcraft2/Special:PendingChanges

I wrote a short gist to illustrate their usage.

can you fix the travis CI?

Ok, done. I'm really sorry that it took so long, it's my first time working with that.

Sounds okay, it is okay if I squash your commits to a single one with the original title (this will remove all "Fixed **" commits from history)?

Sure, go ahead :)

merged


Make the span class trivially copyable.

This way, we can use the uvector in more places and catch some more unused variables.

cc @rongou


Update jquery-autocomplete-light version to fix IE8 support

The currently linked version of jquery-autocomplete-light - https://github.com/yourlabs/jquery-autocomplete-light/tree/20cf0480ff6e64ee2cb5a3fd834d80b33bb801c6 - doesn't support IE8.
This appears to be the offending commit - https://github.com/yourlabs/jquery-autocomplete-light/commit/15dfa6ed4edf5976958d30eca52b07c33c538ce0. It has been fixed in master on jquery-autocomplete-light but the linked version doesn't include this fix.
My change just updates the linked version, and in so doing fixes IE8 support.

Released in 2.2.4, thanks !

Wow, amazingly speedy. Thanks very much!


Clarify peer discovery behaviour

Tessera Peer discovery docs here - https://docs.tessera.consensys.net/en/stable/HowTo/Configure/Peer-discovery/
Besu Multi-tenancy https://besu.hyperledger.org/en/stable/Tutorials/Privacy/Configuring-Multi-Tenancy/ (multiple tessera keys)
GoQuorum multi-tenancy https://consensys.net/docs/goquorum/en/latest/concepts/multi-tenancy/ (this adds the "multiple private states" config)
further context - https://github.com/ConsenSys/quorum/issues/1278
Success criteria
answers to these questions

[x] Basic peer discovery - if I have tessera nodes A and B, and then add node C to node A's config (peer section), do nodes B and C discover each other? (this can be verified without multi-tenancy just with multiple nodes)
[x] With Besu multi-tenancy - when I add another key to a tenant in tessera should it get propagated to other peers when peer discovery is on?
[x] Is this different with GoQuorum multi-tenancy (multiple private states)?
[x] clarifying updates to docs - in whatever format makes sense (eg gdoc writeup, raise a docs PR or create a docs ticket with relevant info)

Simple discovery scenario:
Node 1 has peer(Node 2), Node 2 has peer(Node1), and Node 3 has peer(Node 2).
all three nodes discover each other and know about all 3 keys ie all 3 give the same list for partyinfo/keys
curl -X GET http://<IP_ADDRESS>:8581/partyinfo/keys
{"keys":[{"key":"KkOjNLmCI6r+mICrC6l+XuEDjFEzQllaMQMpWLl4y1s="},{"key":"qaBVuA+nG7Yt+kru6CGI2VMxOBAK7b1KNmiJuInHtwc="},{"key":"GGilEkXLaQ9yhhtbpBT03Me9iYa7U/mWXxrJhnbl1XY="}]}%
Note this behaviour is exactly the same with mode="orion"

Similarly, if Node 1 has multitenancy ie multiple keys, and a new key is added and node1 restarted, all 3 nodes peer with each other and end up with the same keys
Node2 keys before Node1 restart:
➜  besu-local-nodes git:(multi-tenancy) ✗ curl -X GET http://<IP_ADDRESS>:8582/partyinfo/keys
{"keys":[{"key":"KkOjNLmCI6r+mICrC6l+XuEDjFEzQllaMQMpWLl4y1s="},{"key":"ud+qrMPpxjrW7IolCAlc4di6UkYr3mjjRlREIloRKTM="},{"key":"TRDAUCOYctDs9FaQgcUU5V0KRXcPB7oPh9xgRBDBdjU="},{"key":"T4TzXBqGh4b8Kt7XeHB4qYDUiiBnIszNeDDCJcgZ/w0="},{"key":"GU8u/JFsYMWKaDQ98tFStmL5zv9KJBEGBqpyE2q0wjo="}]}%
Create a new key
tessera -keygen -filename tm4
2022-01-21 05:49:18.997 [main] INFO  c.q.t.encryption.nacl.jnacl.Jnacl - Generating new keypair...
2022-01-21 05:49:19.015 [main] INFO  c.q.t.encryption.nacl.jnacl.Jnacl - Generated new key pair with public key PublicKey[ud+qrMPpxjrW7IolCAlc4di6UkYr3mjjRlREIloRKTM=]
2022-01-21 05:49:19.318 [main] INFO  c.q.t.k.generation.FileKeyGenerator - Saved public key to /Users/sallymacfarlane/workspace/besu-local-nodes/tm4.pub
2022-01-21 05:49:19.319 [main] INFO  c.q.t.k.generation.FileKeyGenerator - Saved private key to /Users/sallymacfarlane/workspace/besu-local-nodes/tm4.key
And Node3 keys after Node 1 restart: new key is present in the list:
➜  besu-local-nodes git:(multi-tenancy) ✗ curl -X GET http://<IP_ADDRESS>:8583/partyinfo/keys
{"keys":[{"key":"T4TzXBqGh4b8Kt7XeHB4qYDUiiBnIszNeDDCJcgZ/w0="},{"key":"ud+qrMPpxjrW7IolCAlc4di6UkYr3mjjRlREIloRKTM="},{"key":"KkOjNLmCI6r+mICrC6l+XuEDjFEzQllaMQMpWLl4y1s="},{"key":"GU8u/JFsYMWKaDQ98tFStmL5zv9KJBEGBqpyE2q0wjo="},{"key":"qaBVuA+nG7Yt+kru6CGI2VMxOBAK7b1KNmiJuInHtwc="},{"key":"TRDAUCOYctDs9FaQgcUU5V0KRXcPB7oPh9xgRBDBdjU="}]}%

Node1 with multiplePrivateStates enabled. ResidentGroup
add a new key to (existing) privacyGroup1
all keys are propagated to Nodes 1, 2, 3
add a new key to (new) privacyGroup2
all keys are propagated to Nodes 1, 2, 3

"keys" : {
"passwords" : [],
"keyData" : [ {
"privateKeyPath" : "/Users/sallymacfarlane/workspace/besu-local-nodes/tm1.key",
"publicKeyPath" : "/Users/sallymacfarlane/workspace/besu-local-nodes/tm1.pub"
}, {
"privateKeyPath" : "/Users/sallymacfarlane/workspace/besu-local-nodes/tm2.key",
"publicKeyPath" : "/Users/sallymacfarlane/workspace/besu-local-nodes/tm2.pub"
}, {
"privateKeyPath" : "/Users/sallymacfarlane/workspace/besu-local-nodes/tm3.key",
"publicKeyPath" : "/Users/sallymacfarlane/workspace/besu-local-nodes/tm3.pub"
}, {
"privateKeyPath" : "/Users/sallymacfarlane/workspace/besu-local-nodes/tm4.key",
"publicKeyPath" : "/Users/sallymacfarlane/workspace/besu-local-nodes/tm4.pub"
}, {
"privateKeyPath" : "/Users/sallymacfarlane/workspace/besu-local-nodes/tm5.key",
"publicKeyPath" : "/Users/sallymacfarlane/workspace/besu-local-nodes/tm5.pub"
}, {
"privateKeyPath" : "/Users/sallymacfarlane/workspace/besu-local-nodes/tm6.key",
"publicKeyPath" : "/Users/sallymacfarlane/workspace/besu-local-nodes/tm6.pub"
} ]
},
"alwaysSendTo" : [ ],
"features" : {
"enableRemoteKeyValidation" : false,
"enablePrivacyEnhancements" : false,
"enableMultiplePrivateStates" : true
},
"residentGroups":[
{
"name":"private",
"description":"default privacy group",
"members":["GU8u/JFsYMWKaDQ98tFStmL5zv9KJBEGBqpyE2q0wjo=", "TRDAUCOYctDs9FaQgcUU5V0KRXcPB7oPh9xgRBDBdjU="]
},
{"name":"PS2",
"description":"privacy group 2",
"members":["wwxDwnOCXzrtlPyrabTp3ZHWKmcwcMuuIWFJgq9PThM="]
},
{
"name":"PS1",
"description":"Privacy Group 1",
"members":["T4TzXBqGh4b8Kt7XeHB4qYDUiiBnIszNeDDCJcgZ/w0=", "ud+qrMPpxjrW7IolCAlc4di6UkYr3mjjRlREIloRKTM=", "e3smjrfZBIdR7n9dEGiDu9rH4M/zZMdp2+Je0QSNtXA="]
}
],

I haven't found any anomalies with peer discovery keys - with the scenario you described ie adding a new key to Node1 and restarting Node1 only, I get the same list from all nodes for partyinfo/keys endpoint. Note however that it does take some time for the peer discovery and key propagation to occur (in my local environment this is in the order of seconds, however depending on network configuration and latency, this could take longer).

@macfarla Similar to above example i have created new key pair and added new privacy group PS2 in Node1. Then restarted both Tessera and Node1. But without restart Node2 is not able to identify the new tenant(PS2) added in Node1.

@macfarla Just to mention, the Quorum version we are using is 21.7.1 and Tessera version is :  tessera:hashicorp-21.7.2
The error we are getting in Node2 is -
2022-01-24 16:44:01.182 [pool-2-thread-2] INFO  c.q.t.q.i.AsyncBatchPayloadPublisher - unable to publish payload in batch: Recipient not found for key: tW/gze5TrtG6ULIo2EjB+EZ6hWhWCmf4X7ka0Pcz1yQ=
2022-01-24 16:44:01.182 [qtp1465656305-33] WARN  c.q.t.data.EntityManagerTemplate - JPA exception thrown during execution Recipient not found for key: tW/gze5TrtG6ULIo2EjB+EZ6hWhWCmf4X7ka0Pcz1yQ=
2022-01-24 16:44:01.195 [qtp1465656305-33] WARN  c.q.t.a.e.KeyNotFoundExceptionMapper - Recipient not found for key: tW/gze5TrtG6ULIo2EjB+EZ6hWhWCmf4X7ka0Pcz1yQ=
2022-01-24 16:44:01.196 [qtp1465656305-33] INFO  c.q.tessera.q2t.TransactionResource3 - Exit Request : POST : /send
2022-01-24 16:44:01.196 [qtp1465656305-33] INFO  c.q.tessera.q2t.TransactionResource3 - Response for send : 404 Not Found

@macfarlan I have upgraded the network with Quorum version 21.10.1 and Tessera version 22.1.0, but still facing the same problem.

@purbaja thanks for your response. Can you try a couple of things:
can you call the partyinfo/keys third-party endpoint on Tessera Nodes 1 and 2 and compare the results after the new key is added:
eg curl -X GET http:///partyinfo/keys
if the results differ, wait a minute and check again?

Hi @macfarla , I checked with the above command.
Response from Node1 :
curl -X GET http://x.x.x.x:9080/partyinfo/keys
{"keys":[{"key":"G27/Rz02qexxYTI7h54W9Ebzoz3LgFppBhLSWbzgxCA="},{"key":"swAqIm6pDee0Y2mTEH7wmFPFPoK7QQL3WdZzXBVeASQ="}]}
***** this keys are of default tenant and Tenant1 of Node1
Response from Node2:
curl -X GET http://y.y.y.y:9080/partyinfo/keys
{"keys":[{"key":"O/ruD6wozXhv8FNg5WTlDDUY4LA9p/StZLzTFeGajW8="}]}
*** this keys are of default tenant of Node2

@macfarla  any update on this?

I may have to look into whether using Hashicorp vault introduces different behaviour.

Also note I have been using Tessera 21.10.0 for my testing so I have a note to replicate my checks with latest Tessera 22.1.0

@macfarla Thanks for the reply. Please let us know your output using Hashicorp vault .

Ok I have rerun the checks I did (excluding Hashicorp vault) with Tessera 22.1.0 and p2p discovery works as expected. Adding a key to node1 and restarting node1, all of node 1's keys get propagated to nodes 2 and 3.

I have found one anomaly with Tessera peering. I don't know if this is your situation because this depends on peer configuration in the config file https://github.com/ConsenSys/tessera/issues/1393

Another anomaly - also depending on peer configuration https://github.com/ConsenSys/tessera/issues/1394

According the experts both of those anomalies are expected behaviour. I did manage to reproduce something similar to what you're seeing - details on this ticket https://github.com/ConsenSys/tessera/issues/1394 (and we will aim to clarify this in the docs)
@purbaja can you check your peers config - the node that is being restarted needs to do the job of searching for peers

Hi @macfarla Purbaja has updated the config in here:
https://github.com/ConsenSys/quorum/issues/1278#issuecomment-1047820710
Could you please help on this?

Hi @subhasisbanik, sorry for the delayed response. Can you also check the logs with regard to peering - that is, verify that Nodes 1 and 2 peer with each other after Node1 restarts? If this is working fine then I think we can rule out peering behaviour as the issue. In which case it may indeed be a nuance with the use of HashiCorp Vault.

Hi @macfarla Bekore and after Node1 restart, both the time I am able to do private transaction between Tenant-1 of Node1 and default tenant of Node-2.
But I am unable to do private txn between Tenant-2(new tenant) of Node-1 and Node-2.
If i restart Node-2 , then it works

Hi, can you try suggested solutions over here https://github.com/ConsenSys/quorum/issues/1278 - it looks like both nodes only have node1 configured as the peer. So restarting node2 is needed with that configuration. Suggested solution is to have node1, node2 both as peers.

closing this one - let us know if you have further issues!


Rbac: Disambiguate between rbac 403 and application 403

When Rbac filter denies a request, it does not set a reponse flag.
From access logs, it is not possible to disambiguate a 403 emitted by the filter vs 403 emitted by the application.

Set response flag(s) to indicate
a. denied by policy
b. Potentially indicate that the response was generated within the proxy. This can be more generic than just rbac.
Indicate which rule or condition matched.

@yangminzhu @kyessenov

+1 for adding response flags and reasons if they are not already set. cc @alyssawilk

FWIW it is accessible via response code details (https://www.envoyproxy.io/docs/envoy/latest/faq/debugging/why_is_envoy_sending_internal_responses) but adding a flag is fine as well.

Set response flag(s) to indicate
a. denied by policy

@mattklein123
This should be straightforward to add, I can add the flag. Not very clear what do you mean for reasons here, like @alyssawilk mentioned, currently it is in the response_code_details, and the HTTP response body will also have RBAC: access denied.

b. Potentially indicate that the response was generated within the proxy. This can be more generic than just rbac.

@mandarjog
For HTTP, the response body is RBAC: access denied, how do you want to improve this? For TCP I'm not sure what we can do there.

Indicate which rule or condition matched.

A recent PR merged to print the effective policy name in debug logging. Not sure where else you want to see it? One idea I thought before is to add it to the HTTP response body but that may need some thinking (or flag/API to control it) as user may don't always want to expose it.

@yangminzhu response body is not logged and it is not part of any telemetry, So response_flag should indicate denial
For response reason, I think we can use what @alyssawilk suggested. Do you think it is the appropriate place to put rule_id (if using deny rule) that caused the denial?

@yangminzhu response body is not logged and it is not part of any telemetry, So response_flag should indicate denial

oh, ok, I thought you're referring to the end user experience.

For response reason, I think we can use what @alyssawilk suggested. Do you think it is the appropriate place to put rule_id (if using deny rule) that caused the denial?

I think it makes sense to set the response code detail to the policy_id. See https://github.com/envoyproxy/envoy/pull/12912


Cannot apply to subproject, and fail on root project

Build scan link

Plugin version

0.52.0
Gradle version

6.3
Android Gradle Plugin (AGP) version

Describe the bug

My project has a root project which doesn't do anything, and a sub-project containing my Kotlin code. It is structured like this because there are other sub-projects in other languages (TypeScript).
When i try to apply the plugin in my Kotlin subproject, i get the following error:
An exception occurred applying plugin request [id: 'com.autonomousapps.dependency-analysis', version: '0.52.0']
> Failed to apply plugin [id 'com.autonomousapps.dependency-analysis']
   > You must apply the plugin to the root project. Current project is :komga

Which seems fair enough to me.
I then try to add the plugin to my root project, and get the following error:
A problem occurred configuring project ':komga'.
> Type org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension not present

My root project build.gradle.kts is here: https://github.com/gotson/komga/blob/v0.47.0/build.gradle.kts
I modified it like this:
plugins {
  id("com.autonomousapps.dependency-analysis") version "0.52.0"
}

tasks.wrapper {
  gradleVersion = "6.3"
  distributionType = Wrapper.DistributionType.ALL
}

My Kotlin subproject build.gradle.kts is here: https://github.com/gotson/komga/blob/v0.47.0/komga/build.gradle.kts
To Reproduce
Steps to reproduce the behavior:

...

Expected behavior

I would expect the plugin not to crash my Gradle build.
Additional context

Thank you for this issue and the link to your project. I will take a look.

As I suspected from the error you pasted, the Kotlin plugin code is simply not on the classpath, which is very weird given that the :komga project is applying the Kotlin plugin. I verified this by modifying your root build.gradle.kts as follows
buildscript {
  repositories {
    jcenter()
  }
  dependencies {
    classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.72")
  }
}
plugins {
  id("com.autonomousapps.dependency-analysis") version "0.52.0"
}

and then in komga/build.gradle.kts, I commented out the versions for kotlin-jvm and kotlin-kapt (plugins whose code is already on the classpath cannot set a version).
After that, buildHealth would run, but then I saw this error relating to jooq: https://scans.gradle.com/s/ucvg2iodpow2s/failure
I'm not sure why that would happen.
(I am investigating if there's a solution to the first problem that I can implement at the level of my plugin.)

Ok, I think that the most canonical solution is actually this:
// root build.gradle.kts
plugins {
  kotlin("jvm") version "1.3.72" apply false
  kotlin("plugin.spring") version "1.3.72" apply false
  kotlin("kapt") version "1.3.72" apply false
  id("com.autonomousapps.dependency-analysis") version "0.52.0"
}

// komga/build.gradle.kts
plugins {
  kotlin("jvm")
  kotlin("plugin.spring")
  kotlin("kapt")
  id("org.springframework.boot") version "2.2.6.RELEASE"
  id("com.github.ben-manes.versions") version "0.28.0"
  id("com.gorylenko.gradle-git-properties") version "2.2.2"
  id("com.rohanprabhu.kotlin-dsl-jooq") version "0.4.5"
  id("org.flywaydb.flyway") version "6.4.0"
  id("com.github.johnrengelman.processes") version "0.5.0"
  id("org.springdoc.openapi-gradle-plugin") version "1.3.0"
  jacoco
}

note that the three Kotlin plugins no longer have a version, since it is specified by the root script. I don't have a link to the docs handy, but I believe this is Gradle's preferred pattern.

Thanks a lot for taking the time to try some workarounds. I will give it a try later.
Would it make sense to be able to apply your plugin on subprojects only?

It's not really about applying the plugin in the root. It's a classloader hierarchy issue (although I'm waiting on word from Gradle on a forum about that to confirm). It seems that my plugin might be in a parent classloader to the one that has the kotlin plugin applied, and so can't see those types.
That said, I think you're right that we wouldn't see this if the plugin were only applied on subprojects. Unfortunately, that would require a lot of work to re-architect how the extensions work.
GitHub<EMAIL_ADDRESS>wrote:
“Thanks a lot for taking the time to try some workarounds. I will give it a try later.
Would it make sense to be able to apply your plugin on subprojects only?”
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.

Hi, I tried the latest 0.53.0 but it fails:
> Task :komga:analyzeClassUsageMain FAILED
Caching disabled for task ':komga:analyzeClassUsageMain' because:
  Build cache is disabled
Task ':komga:analyzeClassUsageMain' is not up-to-date because:
  Task has failed previously.
file or directory '/Users/redacted/Development/komga/komga/build/classes/java/test', not found
:komga:analyzeClassUsageMain (Thread[Execution worker for ':' Thread 3,5,main]) completed. Took 0.097 secs.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':komga:analyzeClassUsageMain'.
> There was a failure while executing work items
   > A failure occurred while executing com.autonomousapps.tasks.ClassListAnalysisWorkAction
      > java.nio.ByteBuffer.limit(I)Ljava/nio/ByteBuffer;

My project is 100% kotlin, so it's not surprising there's nothing in java/test

Thanks for the report. I'll take a look.

I tried replicating and ran into an error with jooq. Can you take a look? https://scans.gradle.com/s/mlrv6vesyeo4e

Which version of Java are you using ? Can you try with Java 8 ?

That was actually the first thing I thought of, but I had the same error with Java 8 https://scans.gradle.com/s/z5d4bqglblsde#infrastructure

I believe this is the same issue as https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin/issues/224, which was just resolved by publishing 0.53.1. Closing, but feel free to reopen if you encounter it again.

Thanks, it's fixed. I have another problem, i will open another issue.


[ISSUE#1834][MAS4.2.1] [Screen reader -Debug] In forward navigation NVDA is not reading the under JSON tab section controls information

Solves #1834
Description
This pull request enables the NVDA to read the content of the JSON web viewer.
Changes made

Remove tab index from panel content to allow the Screen Reader to read the content of the JSON tree view.
a
The panel content had an attribute tabindex which causes conflicts with the screen reader navigation using the tab control.

Test
We navigate through the component using the tab control and the NVDA read the information of the elements as we expected.

Coverage decreased (-0.04%) to 66.897% when pulling 00172c557f3540fa86bc88280248f0aaaca2bac7 on fix/json-web-view-forward-navigation-screen-reader into a66f568a9984d6e84d52cb668410eb2a609c9ae7 on master.


(TEPHRA-219) Execute cross region calls in Coprocessor as the login user

i) Fixes a problem where the pruneThread would exit if the state of the service is not yet set to RUNNING state. This also fixes the flakiness in the PruneUpperBoundSupplierTest which was caused due to the above problem.
ii) Load the txMaxLifeTimeMillis and pruneEnable properties dynamically.
iii) Add a hook around cross region calls in the PruneUpperBoundWriter.

@poornachandra The build is failing in a different compat module due to the PruneUpperBoundWriter issue that I have fixed in compat-1.1-base module. Once we port the changes to other modules, it should fix the build.

LGTM


Checkpoints during the tutorial

During longer tutorials, it can be motivating to have a checkpoint list that autocompletes while scrolling.

I will build this awesome component! 👍

This component has already been built. Closing this issue.

This component has already been built. Closing this issue.


multimap

Greg,
Do you have plans to add a multimap variant for your flat hash map?

Hi @jmbnyc , probably not any time soon. Could you use flat_hash_map<K, std::vector<V>>  instead of multimap<K, V>?

Sure, but it would not be efficient esp when the majority of keys would have 1 value. My other thought was to do hash_map<K,V> where V is an address that comes from a spsc_queue which consists of a linked list of arrays with a free list concept where I coopt the value to be a pointer in a linked list similar to an allocator free list (the map needs insert and erase).
Regardless, thanks for you quick response.

Yes, in that case it would not be efficient. You could also try using btree_multimap from btree.h.

I prototyped with btree_multiple but the lookup is way too slow esp for the not found case. I need consistent per if I have 10 keys or 1M keys.

I'll close this because I don't expect to implement multimap support for the hash maps anytime soon.


cancel build

When running a python file using the virtualenv package, it is not possible to cancel the build using the 'Cancel Build' button located in Tools tab

I noticed this too.

Package is great so far... but as commented already few months ago it's not possible to "Cancel build" when running a long execution python script. Anyone found a fix for this?
Thanks.

@gregsadetsky Didn't work for me unfortunately. It gives an error:
__init__() got an unexpected keyword argument 'cancel'

What version of Sublime are you using? I am on v3, build 3143.

@gregsadetsky, thanks this worked perfectly for me, I also added "quiet": true


WIP: Adds text format Lexer

This will be complete when tests are backfilled to cover all edge cases, but stop only at parsing parens. This will keep the PR at a reasonable size and allow us to build on it.

Switched lexer to a incremental parse loop. This will allow us to more cheaply handle postion, column, etc and also avoid allocations when it comes to integrating with a real parser.

here are some early results of the general logic. There will be some optimizations left as there are some escapes noted in go build -gcflags -m wasm/wat/*.go which may not be great. Meanwhile, I'll move along functionality wise
BenchmarkLex
BenchmarkLex/base
BenchmarkLex/base-16         	67579126	        15.85 ns/op
BenchmarkLex/whitespace_chars
BenchmarkLex/whitespace_chars-16         	61862394	        19.48 ns/op
BenchmarkLex/unicode_line_comment
BenchmarkLex/unicode_line_comment-16     	26326196	        45.67 ns/op
BenchmarkLex/unicode_block_comment
BenchmarkLex/unicode_block_comment-16    	20848278	        52.55 ns/op

changed the example to use fibonacci and rejigged things to ease test writing. there's now some visible tech debt on token types that have similar branches. I'll work on that probably a lot of it will get better with a bitflag table to identify the token type from the current first byte

today I reworked logic to eliminate some (not all) tech debt and work on performance. I'm happy on performance for now as reached an emotional threshold of 1us to lex the example.

I thought about @mathetake's comments last night and in the middle of it :D: he's right. error reporting should win vs responsibility separation. anything that nests is particularly tricky to understand. The part that confuses this lexing is that parens are used both in block comments and in S expressions. Right now, we are only counting nesting in block comments because we are required to for unicode skipping to work. The better solution I think vs comments is to enforce nesting in normal parens, also. This brings coherence to the two places we are nesting as they need similar error reporting.
Ex. now at the lexing layer, we allow ")(" which is valid tokenization, but invalid code. The error for ")(" will be very similar to the same broken block comment ";)(;". If we will move paren tokenization up into the same place that handles white space, we reduce questions about the overlap in characters and also can tighten reporting. Counting and enforcing parens costs a little code, but we'd have to do it at the parsing layer if not here. So, it ends up at worst a wash, performance wise.

@mathetake thanks for the pointers, PTAL at the latest commit if you have a minute 🙇

Thanks for the help @mathetake!


Make get_prediction_vs_actual_data() a public method

Made get_prediction_vs_actual_data() a public method, added a check for outlier_threshold, and added it to API documentation.
Resolves #1542

Looks like one of the windows checks threw an internal pytest error. Since the other two windows checks passed and the particular failed test passed after rerunning I think it's a one-off error.


This expression is not callable error when initializing router and server

Describe the bug
This expression is not callable. error when using 0http.
To Reproduce
import cero from '0http';
const { router, server } = cero();
server.listen(3000);

Expected behavior
cero should be able to be called and the router and server should be able to be used.
Additional context
0http version: 3.5.1
typescript version: 5.0.4

Hi @not-ivy , please find out a complete example below:
import zero from '0http'
import { Protocol } from '0http/common'

const { router, server } = zero<Protocol.HTTP>()

router.use((req, res, next) => {
  return next()
})

router.get('/hi', (req, res) => {
  res.end(`Hello World from TS!`)
})

server.listen(3000)


Resolve new SPM package install warning

Also update scheme for recent new targets added.

cc: @var-const @wu-hui


Star Rail Code Redeem

Any intention/desire to incorporate Star Rails features? One that might be worth considering would be code redemption, as from my preliminary investigation, it uses the exact same endpoint as Genshin, just with a different biz key. Implementing it would mean refactoring some assumptions, of course, but it's not a huge change.

I'll look into adding it. They also have a web check-in, so I'll look into that as well.

I'm talking with some folks I know to see if we can't figure out the rest of the info.

I think I've successfully found the info I need, but I'm trying to figure out how to verify that it is correct. I was using the "get announcements" endpoint, but it doesn't work for me even for Genshin with the code as it exists now. Is it because I'm not located within the country?
If you know of a good way to ensure I have the region and biz info correct, please let me know.

If you know of a good way to ensure I have the CN region and biz info correct, please let me know.

Looking at other projects mentioning hkrpg_cn it seems correct. Foe example MihoyoBBSTools.

I was using the "get announcements" endpoint, but it doesn't work for me even for Genshin with the code as it exists now. Is it because I'm not located within the country?

Do you get any specific errors? It currently works for other users so I recommend opening a separate issue for that.

All of the CN are contributed by other users or copied from CN projects. I rarely go out of my way to make something also work for CN.
Though I do think that getting rid of hardcoded URLs, even if they don't support CN yet, should be a good idea.

I think what I'll do is use what I've learned and inferred and implement those, and if there are issues, we'll find out via bug reports?

Is there supposed to be a decent way of populating test data for running the tests locally? A lot of the tests fail on master locally because it seems that it's looking for a bunch of uninitialized test data.
I've got everything functional, I just need to verify no tests are broken and then write my own, but that starts with getting the tests to pass on the current master branch. XD

You should only require an environment variable with cookies of any hoyolab account.

Yeah, that's what I thought...I'll have to fiddle with what format it wants them in, given I'm using Powershell. I'm setting the env variable as a json object within a string but perhaps that's not how I should be going about it. I at least know it's reading from the env var as it would error completely, complaining about a lack of cookies, whereas now it's specific tests.

Not json objects, it excepts cookie headers. Like cookie_token=ABCD; account_id=1234

Yeahhh, I just figured that out after digging into BaseCookie. It's still throwing a few errors, though, but I'll let you know if I can't figure it out.

Heh, okay, so here's the remaining issues. The first was that I have two HoYoLab accounts logged in in separate browsers and it was selectively picking up the second account. Logged out of that and more tests passed.
The conftest.py file has some hardcoded UID assertions but at least, when the failures have gotten low, that can be noticed handled locally with no problem. This affects test_diary, test_diary_log, and test_notes.
test_character_details checks for a specific character (which not everyone will have)
And I'd never touched the lineups feature. It's acting weird regarding what characters I have, so I'm not sure I can even make any, but either way, I can fix all but the lineup one.

Yeah the tests aren't the greatest, I'm honestly glad this project even has any.

Merged. #111


Set cookie headers in subscription request

We use authentication on subscriptions. When using queries/mutations the cookies are send from the current browser session. It would be nice when this is also done on subscription logic to authenticate if possible?

subscriptions over websocket doesn't support sending custom headers, mainly because websocket doesn't support sending custom headers. It only sends a predefined set of headers IIRC like origin.
There are other ways to authenticate your subscription as defined by the subscription approach you choose to use. Here are some links to other related issues.
https://github.com/altair-graphql/altair/issues/416
https://github.com/altair-graphql/altair/issues/793
https://github.com/altair-graphql/altair/issues/1419
https://github.com/altair-graphql/altair/issues/1465
https://github.com/altair-graphql/altair/issues/1448
https://github.com/altair-graphql/altair/issues/1431

@imolorhe : thanks for the info. Maybe I don't understand correctly, but could it be added to the first initial (http?) request that sets up the websocket? (this is how we initialize the websocket and keep the authenticated user in the websocket context on the server)

Altair doesn't do anything special here (except maybe in the desktop app where we add the cookie headers intentionally where possible). Everything else is based on the subscription model and the browser

thanks @imolorhe
What I still don't understand.

My application and Altair client 5.1.0 Chrome extension both use the same graph-ws library (I think): https://github.com/apollographql/subscriptions-transport-ws
My application nicely sends the cookies from my localhost domain on the Subscription handshake request
The Altair client nicely sends the cookies on queries and mutations
The Altair client doesn't send the cookies on the Subscription handshake

Does the first Websocket http handshake request act differently than the "normal" http requests in Chrome extensions only than as the cookies are nicely send in our own application with the same library?
 Maybe Altair is missing a config option to make it work as you would expect, and we just need to set it in Altair as well. Here's where the subscription client is created in Altair https://github.com/altair-graphql/altair/blob/master/packages/altair-core/src/subscriptions/providers/ws.ts#L13-L17
Or maybe there's a newer version of subscription-transport-ws that supports sending the cookies and Altair is using an older one? https://github.com/altair-graphql/altair/blob/master/packages/altair-core/package.json#L23

Another thing you can try (if the above looks okay) is to check if there's an available integration that you can use to host Altair directly in your application. That way it will share the same domain as the app. There's a slim chance that the websocket protocol enforces the same-origin policy more rigidly than regular HTTP requests.

@danielvanmil do you still have questions around this?


Fail to use ExtensionSettings policy in ungoogled-chromium.

Ref : https://support.google.com/chrome/a/answer/9867568
Try to config something like this code to auto install extensions.
{
    "*": {
        "installation_mode": "allowed"
    },
    "cjpalhdlnbpafiamejdnhcphjbkeiagm": {
        "installation_mode": "force_installed",
        "update_url": "https://clients2.google.com/service/update2/crx"
    }
}

but fail with policy error
Key "cjpalhdlnbpafiamejdnhcphjbkeiagm": This computer is not detected as enterprise managed so policy can only automatically install extensions hosted on the Chrome Webstore.
The Chrome Webstore update URL is "trk:05:https://clients2.9oo91e.qjz9zk/service/update2/crx".

As i understand you prevent browser from leak to "clients2.google.com"
Is it posible to allow user to use it ? like flag setting?
For easy deploy in company.

Hi.
I have also been trying to use the policy feature and failed.
However, I have been able to load an extension using the master_preference file. I am still not able though to get it updated at start and fully functioning.
Have you tried that way and succeeded?
Or am I stuck because of the same limitations? I don’t have any error displayed though.

This is an old issue, that didn't show much activity recently — closing.
If you have any more information to add, let us know.


[BREAKING] Change "isWindowInBreakPointRange" function to use numeric breakpoint values

Numeric values will be 1 - 5 to match breakpoint classes.

Completed.


[QoI] Add checking for direct subscript reference in ExprRewriter

Some of the correctly typed expressions involving direct call to
subscript make it past type-checker because (currently) there is
no difference between subscript call and subscript member reference
for type-checker point of view. This results in SIL crashes, let's
prevent it by putting additional check into ExprRewriter.
Resolves: rdar://problem/27017206

@jrose-apple I know there is work going on to make special DeclName with specialization information but maybe this is good enough for now to make it so correctly typed direct references to subscripts don't crash in SIL for time being, WDYT?


Update off net461 kinda everywhere

This commit is one possible solution to #96. Here, I'm simply dropping support
for net461 entirely, in favor of targeting netstandard. While I was doing
this, I bumped the netstandard version to 2.1, but this could easily be an
addition instead of a replacement. Similarly, I noted that the global.json
specified SDK version 3.0, but with a roll-forward directive for newest minor
version. Accordingly, I bumped to the newest SDK 3.1 release. These changes
meant I could remove the mono block from the Fleece solution, so I did.
These changes reach all through Fleece, and prompted the replacement of net461
with netstandard2.1 (mostly in documentation) or netcoreapp3.1 (mostly in
tests) in many places. While I was doing this, I cleaned whitespace and
indentation, and added a missing XML specifier to an fsproj file.
On my machine, the build and all tests are passing.
Closes #96

I would not suggest going all the way to netstandard2.1, as that target framework shuts off users that target .net-framework entirely. If you target netstandard2.0 instead, you retain support for net472 and net48 target frameworks, encouraging projects to upgrade from net46x while not stranding them completely.
That's just my opinion, though.

I would not suggest going all the way to netstandard2.1, as that target framework shuts off users that target .net-framework entirely. If you target netstandard2.0 instead, you retain support for net472 and net48 target frameworks, encouraging projects to upgrade from net46x while not stranding them completely.
That's just my opinion, though.

Seems pretty reasonable to me. Would be comparatively easy to target netstandard2.0;netstandard2.1 for as long as is commodious.

Seems pretty reasonable to me. Would be comparatively easy to target netstandard2.0;netstandard2.1 for as long as is commodious.

Hrmm. AppVeyor failed; I'm not very familiar with AppVeyor, but I presume that's the windows build? I'll experiment a bit, see if I can get it to pass.

Hrmm. AppVeyor failed; I'm not very familiar with AppVeyor, but I presume that's the windows build? I'll experiment a bit, see if I can get it to pass.

At the risk of throwing in the towel too early, it does (thus far) appear that SystemJson locks the project into explicit net461 support.

At the risk of throwing in the towel too early, it does (thus far) appear that SystemJson locks the project into explicit net461 support.

Oh, I see why. That package only exposes app-specific TFMs. The core fleece lib can be netstandard2.0, but the extension specifically for STJ can target netcoreapp2.x, 3.x, 5.x, whatever you like. That doesn't keep the whole project at net461 if you don't want it to.

Oh, I see why. That package only exposes app-specific TFMs. The core fleece lib can be netstandard2.0, but the extension specifically for STJ can target netcoreapp2.x, 3.x, 5.x, whatever you like. That doesn't keep the whole project at net461 if you don't want it to.

@baronfel yeah, I think that'll be the way to go here. The SystemJson extension will be netstandard2.1;net461; everything else can drop net461 explicitly. So far, this builds and the tests pass locally, and the builds pass in CI. Just need to get the tests passing in CI and then this should be ready for other tweaks/expansions/discussions.

@baronfel yeah, I think that'll be the way to go here. The SystemJson extension will be netstandard2.1;net461; everything else can drop net461 explicitly. So far, this builds and the tests pass locally, and the builds pass in CI. Just need to get the tests passing in CI and then this should be ready for other tweaks/expansions/discussions.

Ah, there we go! Much buildier. This leaves net461 in place for SystemJson, moves off it everywhere else, and builds perfectly happily on Linux. Possibly we could drop the Reference Assemblies from the non-SystemJson project specs?

Ah, there we go! Much buildier. This leaves net461 in place for SystemJson, moves off it everywhere else, and builds perfectly happily on Linux. Possibly we could drop the Reference Assemblies from the non-SystemJson project specs?

I think it looks good. Just that we should keep the netstandard2.0 since that will allow older targets as @baronfel mentioned.

Great! Sorry for the delay; intense week. Will have that updated in a second here.

I think it looks good. Just that we should keep the netstandard2.0 since that will allow older targets as @baronfel mentioned.

Great! Sorry for the delay; intense week. Will have that updated in a second here.

Great work! Just some small adjustments, then we should be able to merge.

Great work! Just some small adjustments, then we should be able to merge.

No worries about that 😃

No worries about that 😃

I can do the fix and push to the branch so that we can merge it if you want?

I can do the fix and push to the branch so that we can merge it if you want?

I can do the fix and push to the branch so that we can merge it if you want?

Ah, I think I got it? If there are any other changes you like, I certainly wont be offended if you just make them. But! I always like doing what I can to see the thing completely done. So. Here we are, perhaps?

I can do the fix and push to the branch so that we can merge it if you want?

Ah, I think I got it? If there are any other changes you like, I certainly wont be offended if you just make them. But! I always like doing what I can to see the thing completely done. So. Here we are, perhaps?

I think these changes are good.

I think these changes are good.


Windows/Firefox fail to log in

Describe the bug
Trying to log in to the client with Firefox as the default browser, OpenID connect consent is successfully given, and we get redirected to something like http://<IP_ADDRESS>:64351/?code=NXq-MmI7GkHYWyi7KAVKa3sqoc102bTWmvTRUNCATED&scope=openid+offline+public_profile+upload_map+upload_mod+lobby&state=YqWppNPOzAQsoyJ8wU0OOGrlbSTRUNCATED, where the client then reports what's below.
This doesn't happen in edge, so I assume it's a Windows/FF specific issue.
Log or error message
Client Version: 2023.12.3
java.lang.IllegalStateException: Could not extract value with pattern 'code=([^ &]+)' from<EMAIL_ADDRESS>y.S�;��ݯ/\��+i�?��.��xŅ�da(�"�+�/̨̩�,�0�
	at com.faforever.client.login.OAuthValuesReceiver.extractValue(OAuthValuesReceiver.java:141)
	at com.faforever.client.login.OAuthValuesReceiver.readValues(OAuthValuesReceiver.java:133)
	at com.faforever.client.login.OAuthValuesReceiver.readValues(OAuthValuesReceiver.java:91)
	at com.faforever.client.login.OAuthValuesReceiver.lambda$receiveValues$0(OAuthValuesReceiver.java:52)
	at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768)
	at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1760)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)
	at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)

OS
Windows

Cant reproduce on FF with Linux

Does the URL really contain http:// or https://? Because it looks like encrypted data being sent to an HTTP port.

Hmmm yeah I guess that would explain the characters. I guess I never really expected browsers to redirect localhost to https since I thought the server normally controlled the redirects.

Yep, my browser was going to HTTPS first due to the Smart HTTPS plugin, disable that, and it all works fine.


Add my Fantastic Program to The kernel

Do it n o w

yes yes
Maxi<EMAIL_ADDRESS>schrieb am So., 1. Nov. 2020, 22:41:

Do it n o w
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Abb1x/example-kernel/issues/1, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKUMZOLXW224RRG3XZM3KT3SNXIXHANCNFSM4TGYPMLA
.

Do it n o w

What's your program?

yes
Abb1x<EMAIL_ADDRESS>schrieb am Mo., 2. Nov. 2020, 18:44:

Do it n o w
What's your program?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/Abb1x/example-kernel/issues/1#issuecomment-720623199,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKUMZOKIMFHDOPVROUL7LYTSN3VWFANCNFSM4TGYPMLA
.


Add KmlReader and fromStream.

Use main branch to keep same commit history between 2 repositories.
#22
Hi. I made a KmlReader based on your library for my personal project. And I wish it could be added to the original library.
Of course. I know this is a gpx library. If you don't think my pr fits your library, please fell free to close it.
#23
I replaced all Iterator with StreamIterator for code reusing. This may be a breaking change because the methods were changed to asynchronous.
I've also considered keeping both sync (Iterator) and async (StreamIterator) versions, but they are very similar, maintaining two versions at the same time may be exhausting or cause unnecessary risks. .

Closed cause they are tooo different.


Medal.tv (clipping software) causes runtime to crash (if the game is detected by medal)

Describe the bug
If you have the popular screen recording/video game clipping software called medal,and it is actively running and your game is detected as a game (which starts recording), the remix software will crash before rendering 3d. I experienced the same behavior in PAYDAY: the heist, and then The Simpsons hit and run, but not on supertuxkart due to the fact its somewhat obscure so medal didn't detect it as a game and start recording.
How do you reproduce the bug?
Install medal and have it running, then launch any game that starts the recording software. However if the game is obscure or VERY new and doesn't get detected as a game, it will not crash due to it not recording.
dxvk-remix-07f623f-665-release
bridge-remix-3f0ef49-113-release
What is the expected behavior?
The runtime runs and everything is fine, as long as the game is supported
Version
i tried latest CI builds, 0.6.0, 0.5.4, 0.3.0, and 0.1.1 and all had the issue
Logs
For payday the heist:
d3d9.log
payday_win32_release_d3d9.log
NvRemixBridge.log
For The Simpsons hit and run:
d3d9.log
Simpsons_d3d9.log
NvRemixBridge.log
Crash dumps
Simpsons crash dmp
NvRemixBridge.exe_20241013_030937.dmp
Payday crash dmp
NvRemixBridge.exe_20241013_030740.dmp
Media
No response

Ive also reported the issue to medal and they so far are saying its an issue with them and i am assisting them to get information that may help them fix the issue.

Hi @WeiFi - thanks for reporting this! We've opened REMIX-3646 to track the issue internally, though we also suspect this is an issue with Medal. Is there a public bug or other documentation on Medal's side that we could follow for updates? Thanks!

I was talking to someone from medal on discord and from the information i provided they concluded it was an issue with the hook of medal. sadly i don't think anything is public so you aren't able to see what they are doing.

Thanks for letting us know, @WeiFi! Please keep us posted about any updates you get from Medal.tv's team! :)


Try to use avutil.GetPicture to save Frame to jpeg, but get a empty file.

In tutorial01.go, I create a function called SaveFrameToImage to save frame to a jpeg. It's very similar to original SaveFrame. I execute 2 functions together, the ppm file is correct, but the jpeg file is uncorrect，and can not be openned.
Is' there any problem with my code? Thx
......

SaveFrame(pFrameRGB, pCodecCtx.Width(), pCodecCtx.Height(), frameNumber)
SaveFrameToImage(pFrameRGB, frameNumber)

......
func SaveFrameToImage(frame *avutil.Frame, frameNumber int) error {
	// Open file
	fileName := fmt.Sprintf("frame%d.jpg", frameNumber)
	file, err := os.Create(fileName)
	if err != nil {
		return err
	}
	defer file.Close()

	img, err := avutil.GetPicture(frame)
	if err != nil{
		return err
	}

	err = jpeg.Encode(file, img, nil)
	if err != nil{
		return err
	}
	return nil
}

I also tried avutil.GetPictureRGB, cause it print some log while executing. And I got logs
......
Writing frame 3
2020/03/27 13:16:53 w 2592 h 0
Writing frame 4
2020/03/27 13:16:53 w 2592 h 0
Writing frame 5
2020/03/27 13:16:53 w 2592 h 0

It seems the function cannot get frame height.

I found the problem, I should use pFrame, but not pFrameRGB


Order of files in refactor preview doesn't match order in multi-diff editor

Testing https://github.com/microsoft/vscode/issues/205853
With all the files in the multi-diff editor collapsed to make it easy to see:

To repro, try to rename this:
https://github.com/microsoft/vscode/blob/f34821fb1b2d37f704f82f6590cf7639365167d9/src/vs/platform/configuration/common/configuration.ts#L130

I see, that's a good point thanks!

To verify:

Do a rename but do not accept rename
Click on shift + enter
The refactor preview should open
Open the multi diff editor from there by clicking on any change in the refactor preveiw
Check that the order of the files in the refactor preview matches the order of the files in the multi diff editor


feat: report metrics during rebalancing or when consumer group metrics are empty

Related issue:

https://github.com/lightbend/kafka-lag-exporter/issues/63

Description:

I'm not a "true" scala developer, but I would like to have a hand to fix the issue that I posted above. I really appreciate any help you can provide.

Hi @emelyanovtv,
Thank you for your contribution! We really value the time you've taken to put this together.
Before we proceed with reviewing this pull request, please sign the Lightbend Contributors License Agreement:
https://www.lightbend.com/contribute/cla

@seglo , can you take a look, please?


This extension caused an Error : Extension host terminated unexpectedly

ADD ISSUE DESCRIPTION HERE
Version: 1.66.0
Commit: e18005f0f1b33c29e81d732535d8c0e47cafb0b5
User Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36
Embedder: codespaces
Extension version: 0.40.0

Was there any additional error info in the developer tools?

Thanks for your reply. The error disappeared after closing the terminal and opening a new terminal.

Van: Alex Ross @.>
Verzonden: woensdag 6 april 2022 17:43
Aan: microsoft/vscode-pull-request-github @.>
CC: Medeon @.>; Author @.>
Onderwerp: Re: [microsoft/vscode-pull-request-github] This extension caused an Error : Extension host terminated unexpectedly (Issue #3449)
Was there any additional error info in the developer tools?
—
Reply to this email directly, view it on GitHubhttps://github.com/microsoft/vscode-pull-request-github/issues/3449#issuecomment-1090421499, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AKE5U5PIGU3ORAJV7RLGXVLVDWWLVANCNFSM5SNMI7GQ.
You are receiving this because you authored the thread.Message ID: @.***>

Hmm. The only terminal API that this extension uses is the terminal link handler API.
Without additional error information there's nothing I can do to investigate the issue. If you see the issue again, can you please open the developer tools and see if there's any error information in the console that you can share?

Sure, thanks for the effort.
Outlook voor Androidhttps://aka.ms/AAb9ysg downloaden

From: Alex Ross @.>
Sent: Thursday, April 7, 2022 11:13:22 AM
To: microsoft/vscode-pull-request-github @.>
Cc: Medeon @.>; Author @.>
Subject: Re: [microsoft/vscode-pull-request-github] This extension caused an Error : Extension host terminated unexpectedly (Issue #3449)
Hmm. The only terminal API that this extension uses is the terminal link handler API.
Without additional error information there's nothing I can do to investigate the issue. If you see the issue again, can you please open the developer tools and see if there's any error information in the console that you can share?
—
Reply to this email directly, view it on GitHubhttps://github.com/microsoft/vscode-pull-request-github/issues/3449#issuecomment-1091395190, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AKE5U5JL3ZHHW63AWHDAFXTVD2RLFANCNFSM5SNMI7GQ.
You are receiving this because you authored the thread.Message ID: @.***>


RB Table Version 2 Markup

This changes the current markup to be more in-line with the markup needed set by the Rockabox styling of table components

Coverage remained the same at 100.0% when pulling 84a81d26c06da3f898bedbb1267ed5952f244054 on nick/rb-table-v2-markup into b816ae5e939bfe5bfe35512894b1b15860302f32 on v2.


Thank You (Global Hotkey for Microphone Mute)

I found no other way to address some Thank You to the developers of Powertoys. The new global hotkey option to mute your microphone in v.28 is such an everyday helper for me. Thanks so much!

Thanks!!!


Sampled llama31 8b

This PR contains:

[ ] a new test-case for the benchmark

[ ] I hereby confirm that NO LLM-based technology (such as github copilot) was used while writing this benchmark

[ ] new dependencies in requirements.txt

[ ] The environment.yml file was updated using the command conda env export > environment.yml

[x] new generator-functions allowing to sample from other LLMs
[x] new samples (sample_....jsonl files)
[x] new benchmarking results (..._results.jsonl files)
[ ] documentation update
[x] bug fixes

Related github issue (if relevant): closes #102
Short description:

I was  benchmarking llama3.1 8b

How do you think will this influence the benchmark results?

It is a new model, introducing a new datapoint, just a bit a head of llama3:8b

Why do you think it makes sense to merge this PR?

To stay up-to-date with recent models.

I screwed this PR up by submitting [broken] 70b benchmarking to the same branch. Will later iterate on this


Use gyb from the Swift project for the AppKit/UIKit extensions

The MutableProperty wrappers are effectively copy & pasted with a few tweaks here & there for types, associated keys, and so on. It would be wise to figure out a way to use the gyb (Generate Your Boilerplate) tool from the Swift project to help us overcome a lot of that (sadly necessary) boilerplate.

Good idea - https://github.com/apple/swift/blob/master/utils/gyb.py

Implemented in #142. :)

@andersio In my humble opinion, that should have been done in a separate PR and not in a branch expected to restructure/rename a lot of things and which may not be merged soon. I think this won't make our life easier because it will require a synchronization between current version targeting Swift 2.x and the new one targeting Swift 3.

I agree we need a branch like RAC5 in the main repo for reviewed PRs.
But for gyb particularly, I don't see we would back port it for any Swift 2.x release, which would not be broken without it.
Moreover, it actually helps ease our development effort of RAC5 in further restructuring, like dropping prefixes or even introducing new property types specifically for them. IMO we would probably want it to land as part of the Swift 3 renaming.


Cannot be Uninstalled or Showing even after Uninstall

Uninstalling this package gives the error:
Failed to delete atom-autocomplete-php: Does not exist
Please fix.Thanks.

A problem with atom, not the plugin.


fix: Improve issue templates

Addresses issue #440
Bug Report:

Feature Request:

i approve but i don't know why the format is failing.  I just pulled down latest...

please investigate the styling issue and i'll merge this

@ThePrimeagen I formatted the project, try it now

I just realized this is against Master.
Please redo the PR against harpoon2

I just realized this is against Master.
Please redo the PR against harpoon2

Oh, ok. The old issue templates were in master, and there were none in harpoon2, which was why I thought to put them against master. Sorry about that. I'll fix it right up.

I reopened this PR because the new issue templates are not showing up. I did some digging, and it appears that issue templates must be on the default branch of the repository.


Prevent display of password validation message during paste

When I paste a valid password into the set password form, it still shows the "password is invalid" message regardless:

Closing this off as it's outdated and working now. You cannot set initial password in the extension popout anymore also


Warning: unable to extract comment count

Post the full output you get when running with --verbose option.

Closing due to insufficient info. Feel free to open a new issue with full --verbose log.


[docs-only] Fix broken url and path on ocis_wopi.md

Signed-off-by: Muhammet Kara<EMAIL_ADDRESS>
Description

Related Issue

Fixes <issue_link>

Motivation and Context

How Has This Been Tested?

test environment:
test case 1:
test case 2:
...

Screenshots (if appropriate):
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Technical debt
[ ] Tests only (no source changes)

Checklist:

[ ] Code changes
[ ] Unit tests added
[ ] Acceptance tests added
[ ] Documentation ticket raised:

@pascalwengerter Thanks for the review & merge!


Rename python pipset @base_pip3 -> @envoy_pip3

I have been using tooling that is setup in envoy more recently in related repos (mobile/website/mobile-website)
I had thought to potentially rename the pipset to just pip3 but on 2nd thoughts this is envoy's pipset so should be named that

posting before making this change as other downstream repos may be affected by this name change


Bump min version and take in latest content sdk

Increases min version to 16 and takes in latest content sdk to support deprecation of TLS 1.0

Verified that @doncung has signed the CLA. Thanks for the pull request!


Typo fix: of of -> of

Fix stray/repeated "of" in comments in three places.
Resolves rdar://problem/54218099

@swift-ci Please smoke test and merge


MBlast should clean up corrupted state when a job is killed.

Currently when killing a job, the job directory is left lingering with no data.  This should be detected and cleaned up as part of the job status detection.

Relates to #110


Feature Request: Jupyter Labs plugin

This is just a feature request for a Jupyter Labs plugin/extension.
I currently use the chrome plugin with whitelisting, though it doesn't provide any information about projects*, filenames, save states etc, and personally, I try to avoid using chrome in favour of lightweight browsers.
The chrome extension also seems to log time that the browser tab is open but not being actively worked on, skewing the tracking further.
As a data scientist who works across multiple IDEs/editors, this would be incredibly valuable.

I have set up a filter in wakatime to set all jupyter traffic to project: "Jupyter Lab" and language: "Python", but having at least the name of the notebook in the heartbeats would allow me to set more specific project filters and combine it with data logged in other IDEs/editors.

Upvoted
I use Pycharm for measure my Python coding time. But when I use jupyter lab for analysis and exploration, it is not record. Jupyter lab or Jupyter Notebook plugin would be great.


fix(urlMatcherFactory): fix tilde edge case with "string" encoding

Hello,
I noticed that "~2F" in a param value would be encoded as "~~2F" and then decoded as "~/" (plunk). I fixed this so now the encoding/decoding are symmetrical. I think this use case was the reason for encoding "~", and the decoding issue was an oversight.
Note: The problem was in the decode function (valFromString), but I also refactored the encode function (valToString) so that the functions stay easy to read as a pair.
Let me know what you think. If you like it, I also prepared a branch that ports the changes to legacy.

a perfect PR, thank you!


Aliases resource option isn't working with the TargetGroup resource in Go SDK

What happened?
I have a TargetGroup resource that I'd like to rename. However, passing the Aliases resource option doesn't seem to work. Pulumi still wants to replace the resource because the name has changed. Note that I am using the Go SDK for this provider.
Steps to reproduce

Create a target group resource first in your stack.
Rename the resource and provide the Aliases resource option.

package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ec2"
        "github.com/pulumi/pulumi-aws/sdk/v5/go/aws/alb"

	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

vpc, _ := ec2.NewVpc(ctx, vpcName, &ec2.VpcArgs{
		CidrBlock:          pulumi.String("<IP_ADDRESS>/16"),
		EnableDnsHostnames: pulumi.Bool(true),
})

targetGroupName := "targetGroup"
targetGroup, _ := alb.NewTargetGroup(ctx, targetGroupName, &alb.TargetGroupArgs{
                // I am not using auto-naming for this resource.
		Name:            pulumi.String(targetGroupName+"-2"),
		Port:               pulumi.Int(input.HostPort),
		Protocol:        pulumi.String("HTTP"),
		VpcId:            vpc.Id,
		ProtocolVersion: pulumi.String("GRPC"),
}, pulumi.Aliases([]pulumi.Alias{{Name: pulumi.String(targetGroupName)}}))

Expected Behavior
No changes to the stack since the resource is properly aliased.
Actual Behavior
A resource replacement for the renamed resource is proposed by Pulumi.
Output of pulumi about
⚠ sanitized output to remove sensitive info.

Dependencies:
NAME                                 VERSION
github.com/pulumi/pulumi-aws/sdk/v5  5.1.2
github.com/pulumi/pulumi/sdk/v3      3.46.1

Additional context
No response
Contributing
Vote on this issue by adding a 👍 reaction.
To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already).

Hi @praneetloke! I notice that your pulumi-aws version is from April. It might be unrelated but I'd suggest giving upgrading it a try. In the meantime, I'll check with some aliasing SMEs.

on second glance I think I see what's happening here. You've renamed and aliased the physical (cloud provider) name of the resource. That is not supported by aliases since, they are only for logical (Pulumi) names. See here for the distinction. In your example, you could rename the second argument to NewTargetGroup and alias it to the old name.

Ah. My bad. I guess I need to swap the names which should fix this. I'll test that.

@thomas11 the corrections worked. Thank you for setting my understanding straight with aliases. It, of course, makes sense to me now that Pulumi can't alias a provider's own resource! 🤦♂ Apologies for the distraction.

Corrected app
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ec2"
        "github.com/pulumi/pulumi-aws/sdk/v5/go/aws/alb"

	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

vpc, _ := ec2.NewVpc(ctx, vpcName, &ec2.VpcArgs{
		CidrBlock:          pulumi.String("<IP_ADDRESS>/16"),
		EnableDnsHostnames: pulumi.Bool(true),
})

targetGroupName := "targetGroup"
// The Pulumi resource name (aka logical name) can be renamed with an alias.
targetGroup, _ := alb.NewTargetGroup(ctx, targetGroupName+"2", &alb.TargetGroupArgs{
                // Can't alias this since it's the name of the resource used by the provider.
		Name:            pulumi.String(targetGroupName),
		Port:               pulumi.Int(input.HostPort),
		Protocol:        pulumi.String("HTTP"),
		VpcId:            vpc.Id,
		ProtocolVersion: pulumi.String("GRPC"),
}, pulumi.Aliases([]pulumi.Alias{{Name: pulumi.String(targetGroupName)}}))

No worries and glad I could help!


Add support for Robot Framework files

Oops, duplicate of #323. The Github network map is not always as informative as it could be!


[Pynq-Z2] Add Uart1

Hi! I'm using Pynq-Z2 board.
I have a question.
I have found uart1 in the device tree file.
How do I activate this uart1?
Should I rebuild the image,
Or can I just upload a driver?
Please tell me how to do it~~!!

Can you please post this to the support forum: http://www.pynq.io/support.html ?

Absolutely! Thank you~


fix(groups): Fix search crashes

What this PR does 📖

Fixes crash when searching for groups if a group has chars that are bigger than a byte (usually non latin chars)

Which issue(s) this PR fixes 🔨

Resolve #1700

The following test is failing:
If you have a group named "Test" that has the user "ChatUserB" (who is a friend also) and then you look for the string "Ch", its only shows the user itself and not the group that has the user as results

The following test is failing: If you have a group named "Test" that has the user "ChatUserB" (who is a friend also) and then you look for the string "Ch", its only shows the user itself and not the group that has the user as results

hmm strange. its working for me. can you show the test group?

i also noticed that searching using greek or cyrillic does not perform the search
STR:

go to chat
add a group with either of these names
Ё Ж З И Й К
Η Θ Ι Κ Λ Μ
search for the group
no results

unsure if works on dev because trying the same on dev crashes
Cyrillic Script:
Ё Ж З И Й К
Greek Script:
Η Θ Ι Κ Λ Μ
macOS, m1

i also noticed that searching using greek or cyrillic does not perform the search
STR:

go to chat
add a group with either of these names
Ё Ж З И Й К
Η Θ Ι Κ Λ Μ
search for the group
no results

unsure if works on dev because trying the same on dev crashes
Cyrillic Script: Ё Ж З И Й К
Greek Script: Η Θ Ι Κ Λ Μ
macOS, m1

was a case sensitiv issue. fixed now

The following test is failing: If you have a group named "Test" that has the user "ChatUserB" (who is a friend also) and then you look for the string "Ch", its only shows the user itself and not the group that has the user as results

hmm strange. its working for me. can you show the test group?

Strange, I see that the test is passing now on last execution, I tested it manually on friday and it worked correctly. I'll keep an eye on the test results for next runs before it's merged and let you know any other findings.


Question: pv_pool mirroring

Hello team,
Have a question about mirroring pv_pool.
I have create a PV Pool, all works fine, but the pool size is equat to sum of each volumes. I.e. I have installed PV Pool as STS with 3 Pods with 100G for each and the maximum pool size is 300G.

Is it possible to mirror this pool (Like raid1) and have only 100G as total size?
What will happen with Pool if one pod/pvc went down?

Hi @yaroslavkasatikov!
Thanks for posting your question.
If you mean to use 3 copies between those 3 PVs then this can be done, but currently not exposed from the CRDs APIs. In the UI you can edit the "Data Resiliency Policy" per bucket - see screenshot:

If one of those pods/pvcs is down or corrupted, the mode will change to non-healthy (depending on the causing issue), and since that pool has just 2 healthy nodes, the bucket will become non-writable since it requires 3 copies. Reads will still work. So if you would like to achieve live failure tolerance of 2 volumes, you will need to set the copies to 3 and use 5+ PVs (so that even 2 are down we still have 3 left).
Let me know what other details can assist your design and we can write a doc to describe these capabilities.

Hi @guymguym !
Thank you very much for rapid reply.

Number of copies it perfect solution. Thanks.

If one of those pods/pvcs is down or corrupted the pool will become non-healthy, and since that pool has just 2 healthy nodes, the bucket will become non-writable since it requires 3 copies. Reads will still work.

But what will happen with data in this case if 'Number of copies' is 1?  As I understand it become unavaliable until PVs returns.
And one more question is raise based on you comment:

but currently not exposed from the CRDs APIs

But in generally can I create buckets from yaml?
PS: Sorry if some queistions are silly, but it's the first day when I work with NooBaa
Thanks a lot,
Yaroslav

Right, with 1 copy we have no tolerance to unavailable PVs.
The reason this is the default is that many PV providers already provide internal resiliency.
But for a long time we used a default of 3 copies, and this is a very common use case.
You can create buckets from:

UI
CLI - noobaa bucket create
CRD (yaml) - ObjectBucketClaim - see this doc https://github.com/noobaa/noobaa-operator/blob/master/doc/obc-provisioner.md

Thanks a lot!