Feature CT-426 manage schemas

resolves #4957 CT-426
Description
Add support to manage (drop/monitor) schema for unmanaged models.
TODO because of draft

[ ] Update documentation
[ ] Test on different model types (view/table)
[ ] Test with multiple schema's
[ ] Test logging/warning behavior of runs

Checklist

[x] I have read the contributing guide and understand what's expected of me
[x] I have signed the CLA
[x] I have run this code in development and it appears to resolve the stated issue
[x] This PR includes tests, or tests are not required/relevant for this PR
[ ] I have opened an issue to add/update docs, or docs changes are not required/relevant for this PR
[ ] I have run changie new to create a changelog entry

@jtcohen6 could you review this PR? I think that the only missing part is the docs. But for that I would like to know whether the feature is finalized as is.

@agoblet Sorry for the delay! I've been away on vacation, and heads down getting ready for Coalesce (this week!). This is definitely on my list to review later in the month.
Thanks for the great conversation so far. If we can get this merge-ready, I would love to include it in an upcoming release.

@agoblet Sorry for the delay! I've been away on vacation, and heads down getting ready for Coalesce (this week!). This is definitely on my list to review later in the month.
Thanks for the great conversation so far. If we can get this merge-ready, I would love to include it in an upcoming release. Next step here is on me to review and provide feedback.

@jtcohen6 any news? Regarding the docs update, I think we only need to extend the dbt_project.yml spec

@jtcohen6 what is blocking us from moving forward with this? How can we solve it?

@jtcohen6 if you have no time for the review, maybe another reviewer could take a look, such as @gshank ?

@agoblet Sorry for the radio silence - this is still on me!
The remaining blocker at this point is me taking the time to sit down with the latest set of changes, and provide a functional review, including product/UX refinement as appropriate. Once I've signed off, I'll remove the Refinement label, add the ready_for_review label, and we'll tap in a software engineer to provide a code review. It's a big-enough addition that I want to give it the attention it deserves, and not rush through it.
Apologies that the limiting reagent here has been my time. We're still working through the backlog of new issues that came in during Coalesce.
To provide a sense of timing: Since this is a new feature, it would be included in the next minor version release after it's merged. The next minor version we have scheduled is v1.4, for release in January — so, we still have some leeway. I'm really appreciative of your patience in the meantime.

@jtcohen6 thanks for the valuable feedback! We are still interested in finishing this. I will start fixing some of these things hopefully next week. What is your idea about the timeline for this PR? Do we still want to add it to the january release, or do you think that is too tight?

Very excited about your work on this @agoblet ! I defer to @jtcohen6, but we might be too tight for the January release -- after today, we'll all be out of the office until January 3rd, and we're planning on cutting the release candidate (RC) for 1.4 just a handful of days later. The final release is planned for about two weeks after the RC.

@agoblet Agree that the timing here might be tight for v1.4, since we're planning to put out the release candidate (= lock any code changes) next week. Apologies again for the delay on my side.
That's okay! I'd still be very excited to merge this PR, when it's ready, without adding undue rush. Our current plan (hope) is to put out an early beta of v1.5 in February (final release scheduled for April), including a bunch of internal API changes that are currently on a feature branch (feature/click-cli), so that folks can start testing those out early & often. That would also represent a great opportunity to get beta feedback for this feature!
One big thing that remains is merging / rebasing changes in main. If you do get around to that in the next few days, in addition to the feedback above, you can mark the PR as "ready" (not draft), and we can get someone from the engineering team to give a technical code review. Again, no undue rush — this is something folks have wanted for a long time, and I'm okay with making them wait a little longer if it means we're shipping something high-quality and thought-through.

Hey @agoblet, Thanks for contributing this! We are focusing on getting the feature/click-cli branch merged this/early next week. Once that's merged I will circle back and provide some tips on moving this PR into using the new click-cli, should be just some relative quick adjustment we need to do.

Great, thanks @ChenyuLInx , we did not rebase yet, will do that once the new cli is on main. I will also try to fix the remaining comments next week.

I left the organisation I where I started this work and have not used dbt for a few years now. I nolonger wish to contribute to this and I’m closing this pr.


AndroidAnnotations not auto-detected

Thank you for this grat library!
I'm using 6.0.1 of AboutLibraries and AndroidAnnotations does not seem to be auto-detected.
   implementation 'org.androidannotations:androidannotations-api:4.4.0'
Am i missing something?
Thanks!

@10erlosh the androidannotations definition file does not define a Class which can be checked for existence:
https://github.com/mikepenz/AboutLibraries/blob/develop/library/src/main/res/values/library_androidannotations_strings.xml
Either open a PR to adjust this, or just use it's identifier so it shows up

or just use it's identifier so it shows up

how?

As shown in the sample here:
https://github.com/mikepenz/AboutLibraries/blob/develop/app/src/main/java/com/mikepenz/aboutlibraries/sample/ExtendActivity.java#L19
it's id is. androidannotations

created a PR (hopefully correct)

Oh sorry missed you PR. the classpath needs to point to a real java class. Sadly I can not detect a package name in java. it's only possible to check for the class.


Pathfinding

Kaboom doesn't use ;, you should run npm run lint. Epic commit!

Yeah, I was thinking that. I also need to know what to do with private interfaces.


Netlify redirects creation creates build error on Travis

re #3
https://github.com/technologiestiftung/tsb-react-map-boilerplate/blob/86fd873e98bcd8eaf5b2b530a296cc0dc046f41b/package.json#L37
@fdnklg What is the purpose of this line

It's necessary to prevent the Page not found Error of Netlify if a url is not found and redirects to index.html. This is a common issue at netlify.

Well your script still throws an error. Did you test this locally?
Shouldn't this be ${echo '/* /index.html  200' > build/_redirects}

Sorry. The issue came not from the script. It was the build error.


Advice: Overriding templates

I just wanted to confirm that there isn't an easier way to customize the templates, other than:

Subclass the views that use templates.
Create and include my own version of djoser.urls

Correct?

Good question. I don't remember Django behavior here, but if you add e.g. djoser/password_reset_email_subject.txt into one of your TEMPLATE_DIRS it will override djoser template. Am I right?

Konrad,
Yes, I wasn't paying attention that you were using the template loader.
Thank you.
Tim
On Wed, Apr 22, 2015 at 2:09 PM, Konrad Hałas<EMAIL_ADDRESS>wrote:

Good question. I don't remember Django behavior here, but if you add e.g.
djoser/password_reset_email_subject.txt into one of your TEMPLATE_DIRS it
will override djoser template. Am I right?
—
Reply to this email directly or view it on GitHub
https://github.com/sunscrapers/djoser/issues/37#issuecomment-95287704.

No problem. Happy to see that it works for you.


fiotest container never exits / port 8000 exposed on local network

Hi there,
Getting to grips with fiotest here... The test spec seems to run then sit forever rather than the container exit.
Is this the expected behaviour? Or is there a way to free up the container when the tests have executed?
Thanks!
Alex

The idea is that we run the tests every time a new target is deployed. So its running as a daemon:
https://github.com/foundriesio/fiotest/blob/master/docker-compose.yml#L8
that aklite notifies after each install operation.

ref: https://github.com/foundriesio/fiotest/pull/15

Thanks @doanac will close this down then


Option to disable filters

Is your feature request related to a problem? Please describe.
Filters are always applied (even when not changing resolution), this is unnecessary most of the time for me
Describe the solution you'd like
Option to not use any filtering
Describe alternatives you've considered
None

All of them. It filters even if i dont change resolution. Or does "basic" do none? Just want an option to do no filtering

Just not use filters, i didn't get what exactly you want

Updated the issue to be clearer. Is it true that filtering happens all the time though? Just to make sure

Filtering happens if you use filters

But how to i not? Theres always a "scale mode" selected

ah, you are about this, it's not a filter, it's scaling mode, it happens on every image resizing, basic just uses simple way to achieve it

Maybe i thought it was being filtered without changing scale due to the jxl and heif color issue

jxl color issues releated to jxlcoder library


Switch to Caddy on Docker

Caddy is so much easier to set up using let's encrypt than nginx. A perfect fit for Cookiecutter Django.

@jayfk, I've heard "rumours" (yeah, sort of "some people say"-stuff) that Caddy is not yet ready for wide real-world adoptioin, or I am wrong?

I've been using Caddy for a lot of smaller and mid-sized sites and I'm really happy with it. Djangopackages.org runs Caddy for ~6 months, no problems.
I wouldn't use it for very large sites, but the only reason is that nginx Plus offers some great enterprise features.

@jayfk, what do you think about introducing a separate 'nginx-master' branch off of master for dedicated nginx support while migrating the mainline to Caddy to further cherrypick Caddy-unrelated master commits to nginx-master so keeping both options?

@jayfk, even better: We could introduce these two mutually-exclusive cookiecutter-django template options, and stick with one branch.

I'm -1 on that. Supporting multiple servers is a huge pain in the long run. Either Caddy or nginx.
I'm in huge favor of Caddy. It's simple, has a great config file format, supports Lets Encrypt with secure defaults out of the box and it's super easy to add basic load balancing capabilities. A prereq for #1133.
@pydanny @audreyr @luzfcb @burhan @theskumar @webyneter  and everyone interested. Can I get a vote on that? 👍 for caddy, 👎 against it.

@jayfk , I trust your experience wholeheartedly on this :smile:.

@jayfk, how is this going? Can I be of any help?

Just for reference, I don't think caddy works on AWS when using and AWS Cert and load balancer. Here's a related article. https://msaizar.com/blog/cookiecutter-django-nginx-route-53-and-elb/


Add update-secret extension to extended reference

Looks good. Do you think these should be updated as well?

https://www.rabbitmq.com/extensions.html

Yes, it should be mentioned in the Authentication and Identity section. I don't think it requires a separate page.

https://www.rabbitmq.com/amqp-0-9-1-reference.html
https://www.rabbitmq.com/amqp-0-9-1-quickref.html

These 2 are generated from the XML file, so the changes should show up automatically.

OK great I thought there may be an auto-update from the XML.


Spotify Connect - Seems to login OK but doesn't work

In my messages buffer:
Contacting host: accounts.spotify.com:443
error in process filter: cdr: Wrong type argument: listp, #s(hash-table size 65 test equal rehash-size 1.5 rehash-threshold 0.8125 data (access_token "BQBk6KXIJhsIPNvJ7lCvT5-z2JjnVwG4IB3XohNYQmZamPC2doF50T4_jirX57citpCjOCdAqb4j7HjGkzyU1n3XFHjo2kFA_iord2J3R7QvBe0qoh0VMpbumAxMa0riXJyw-H3GlEc5HQmCDM6X489QlL2oDGb5YA0ijJdf0xfLJI-XZKbWKstgGzYmrYgwrXUdZOE3EVBdfvO290y3L8fgNPdOHgWKL_a31w" token_type "Bearer" expires_in 3600 scope "playlist-read-private playlist-modify-private playlist-modify-public user-read-private"))
error in process filter: Wrong type argument: listp, #s(hash-table size 65 test equal rehash-size 1.5 rehash-threshold 0.8125 data (access_token "BQBk6KXIJhsIPNvJ7lCvT5-z2JjnVwG4IB3XohNYQmZamPC2doF50T4_jirX57citpCjOCdAqb4j7HjGkzyU1n3XFHjo2kFA_iord2J3R7QvBe0qoh0VMpbumAxMa0riXJyw-H3GlEc5HQmCDM6X489QlL2oDGb5YA0ijJdf0xfLJI-XZKbWKstgGzYmrYgwrXUdZOE3EVBdfvO290y3L8fgNPdOHgWKL_a31w" token_type "Bearer" expires_in 3600 scope "playlist-read-private playlist-modify-private playlist-modify-public user-read-private"))

I also get the same message.  Additionally, anytime I run a spotify-mode command it opens a page in my browser saying "you can go back to emacs now," but emacs just displays this error message.

That browser thing is by design. But something in that login & callback process breaks, apparently.

@sebasmonia Did you configure your Spotify app with the callback address for whatever the localhost address is in the README?

Yes, which is why the browser that @ColeW-Picaro mentioned opens.

I get this error message
error in process filter: cdr: Wrong type argument: listp, #s(hash-table size 65 test equal rehash-size 1.5 rehash-threshold 0.8125 data (access_token "..." token_type "Bearer" expires_in 3600 scope "playlist-read-private playlist-modify-private playlist-modify-public user-read-private"))

Can you give a more detailed step-by-step instructions on how to reproduce the issue? You can also run (setq debug-on-error 1)' in the scratch` buffer before running triggering the issue so you can send us the error trace.

Clone repo into .emacs.d/packages/

Add this to .init.el:
`
(use-package spotify
:load-path "packages/spotify.el/")

(setq spotify-oauth2-client-secret "secret")
(setq spotify-oauth2-client-id "id")
(setq spotify-transport 'connect)
`
3. Create Spotify App with redirect URL set to http://localhost:8591/

Open Emacs and run M-x global-spotify-remote-mode

Browser opens saying Success, Emacs has previously mentioned error.

I tried running these steps but could not reproduce the reported outcome; what I saw was a weird save-current-buffer: Selecting deleted buffer message in the *Messages* buffer, but the remote mode otherwise worked as expected.
What emacs version are you running?

Also what are the python version in your system?

Emacs 26.3 and I have Python 2.7.16 and Python 3.7.4 installed

Emacs 27 and python 3.7 on windows

I could not reproduce this even with a clean emacs configuration.
I got other issues with the master version though:

Sometimes the device list buffer gets rendered inside an existing buffer, instead of in the *Devices* buffer
Sometimes I get the following error after activating the remote mode:

Debugger entered--Lisp error: (error "Selecting deleted buffer")
  set-buffer(#<killed buffer>)
  (save-current-buffer (set-buffer buf) (if global-spotify-remote-mode (turn-on-spotify-remote-mode) (if spotify-remote-mode (progn (spotify-remote-mode -1)))))
  (while --dolist-tail-- (setq buf (car --dolist-tail--)) (save-current-buffer (set-buffer buf) (if global-spotify-remote-mode (turn-on-spotify-remote-mode) (if spotify-remote-mode (progn (spotify-remote-mode -1))))) (setq --dolist-tail-- (cdr --dolist-tail--)))
  (let ((--dolist-tail-- (buffer-list)) buf) (while --dolist-tail-- (setq buf (car --dolist-tail--)) (save-current-buffer (set-buffer buf) (if global-spotify-remote-mode (turn-on-spotify-remote-mode) (if spotify-remote-mode (progn (spotify-remote-mode -1))))) (setq --dolist-tail-- (cdr --dolist-tail--))))
  (let ((last-message (current-message))) (setq-default global-spotify-remote-mode (if (eq arg (quote toggle)) (not (default-value (quote global-spotify-remote-mode))) (> (prefix-numeric-value arg) 0))) (if global-spotify-remote-mode (progn (add-hook (quote after-change-major-mode-hook) (quote global-spotify-remote-mode-enable-in-buffers)) (add-hook (quote find-file-hook) (quote global-spotify-remote-mode-check-buffers)) (add-hook (quote change-major-mode-hook) (quote global-spotify-remote-mode-cmhh))) (remove-hook (quote after-change-major-mode-hook) (quote global-spotify-remote-mode-enable-in-buffers)) (remove-hook (quote find-file-hook) (quote global-spotify-remote-mode-check-buffers)) (remove-hook (quote change-major-mode-hook) (quote global-spotify-remote-mode-cmhh))) (let ((--dolist-tail-- (buffer-list)) buf) (while --dolist-tail-- (setq buf (car --dolist-tail--)) (save-current-buffer (set-buffer buf) (if global-spotify-remote-mode (turn-on-spotify-remote-mode) (if spotify-remote-mode (progn (spotify-remote-mode -1))))) (setq --dolist-tail-- (cdr --dolist-tail--)))) (run-hooks (quote global-spotify-remote-mode-hook) (if (default-value (quote global-spotify-remote-mode)) (quote global-spotify-remote-mode-on-hook) (quote global-spotify-remote-mode-off-hook))) (if (called-interactively-p (quote any)) (progn (customize-mark-as-set (quote global-spotify-remote-mode)) (if (and (current-message) (not (equal last-message (current-message)))) nil (let ((local "")) (message "Global Spotify-Remote mode %sabled%s" (if (default-value ...) "en" "dis") local))))))
  global-spotify-remote-mode(t)
  eval((global-spotify-remote-mode t) nil)
  elisp--eval-last-sexp(nil)
  eval-last-sexp(nil)
  funcall-interactively(eval-last-sexp nil)
  call-interactively(eval-last-sexp nil nil)
  command-execute(eval-last-sexp)

I'm implementing some improvements to spotify.el by moving some API calls to use the oauth2-url-retrieve (which is asynchronous) instead of oauth2-url-retrieve-synchronously, and at least in my machine the new Spotify Connect API code runs considerably smoother. This code is in the async-test branch, if you want to give it a try (although it might not help with your case since it seems you can't get the login workflow to complete).

Hi Daniel,
I tried the async-test branch and it's working for me :)
Thank you so much for this little gem.  Cheers

Tested the async branch and it worked for me too! Thanks @danielfm for the awesome package. I always wanted to drive my spotify from Emacs :)

@danielfm async-test is working well for me too. I set the refresh interval to 5 sec since it has to make an API call every time. Might be a sane default for 'connect

Awesome. Yes, in my tests, I'm using a 10s interval to make sure I'm not throttled. Will add this to the README when the async branch is ready.

I think I finished translating all calls to use async calls to the Spotify API.
Can you people test it again?

@danielfm I'm not seeing a new commit?

I force-pushed, so there's only one commit in that branch. Will send it to a new branch + open a PR just to keep track of further changes, if any.

Here: https://github.com/danielfm/spotify.el/pull/37

Testing. Perfect so far. Will use all day and report back.

@danielfm I'm getting this the last few minutes. Player has been stopped for maybe an hour. It's locked up my Emacs pretty tight, but not completely:
#[257 \306\203	�\307\202
�\310D\311\312\313#\266\314\203�\315\202�\316\317\211\320$\237\206%�\321\317\322!\322\2038�\323\301!\2038�	\2029�!\203B�\324\202C�\325\317\326\327\330"\203T�\331\332"\210\211\203\230�\211@\333\334!!\262\335\336"\203s�\337\326\211\224#\202t�\211\227\340!\211AA\203\217�\211V\203\217�\262\262\211\262\266A\266\202\202V�\210\340!\204\275�~\210db\210\341\206\264�\206\264�\206\264�\342\343\344\261\210\317\202\375�\345\346\347\350#!\351\327\352"\243	\320%\211\204\330�\320\202\373�	\203\341�\353\202\342�\330BB
-./\35401#\210+\317\266\202)\207 [url-current-object url-http-proxy url-basic-auth-storage url-http-extra-headers url-http-method url-http-data Handling %s authentication proxy normal apply url-debug http mail-fetch-field proxy-authenticate www-authenticate nil t (basic) url-recreate-url boundp url-http-proxy-basic-auth-storage url-http-real-basic-auth-storage 0 assoc Authorization error Wrong authorization used for %s url-eat-trailing-space url-strip-leading-spaces string-match [ 	] substring url-auth-registered Sorry, but I do not know how to handle    authentication.  If you'd like to write it,  please use M-x report-emacs-bug RET. url-parse-args subst-char-in-string 44 59 url-get-authentication realm Proxy-Authorization url-retrieve-internal url-request-extra-headers url-request-data url-request-method url-callback-function url-callback-arguments] 15 (/Applications/MacPorts/Emacs.app/Contents/Resources/lisp/url/url-http.elc . 11780)]: Wrong authorization used for https://api.spotify.com/v1/me/player

I was getting such errors when I was letting oauth2.el refresh the token on its own, that's why I added extra code to always check the token TTL before reusing it (and manually triggering the token refresh if the TTL was close to expire or was already expired).
Ever since I implemented this, I haven't seen this message. I'll continue testing.

@danielfm I've been running all day without issue today. I did end up restarting my Emacs so perhaps it was some leftover state related to oauth tokens?

I think I finished translating all calls to use async calls to the Spotify API.
Can you people test it again?

@danielfm Working perfectly here ...thank you so much...now i live inside emacs :)

Seem to be working fine, and I agree with the above comment...now I don't have to unlock my phone to play music at work 💯

Considering this fixed as of #37.


Routing in a Causal cluster

Did this lib work with routing in a causal cluster?
When I connect and read data it's works, but writing get me an error for trying to write on non leader node.
There's a way to use that?

Method hello (init) accepts routing as forth argument. More about this argument is described here: https://7687.org/bolt/bolt-protocol-message-specification-4.html#request-message---41---hello

I am having the same problem and setting routing to [] doesn't work.
I am using Neo4j Aura

I am having the same problem and setting routing to [] doesn't work.
I am using Neo4j Aura

Hi.

Here is an extraction of my code
Setup code for my neo4j class
protected function bolt()
{
            $ip = config('services.neo4j.ip');
            $port = config('services.neo4j.port');
            $version = config('services.neo4j.version');
            $username = config('services.neo4j.username');
            $password = config('services.neo4j.password');

            // Create new Bolt instance
            $conn = new StreamSocket($ip, $port);
            $conn->setSslContextOptions([
                'verify_peer' => true,
                'allow_self_signed' => true
            ]);
            $bolt = new Bolt($conn);

            // Set Bolt protocol version if needed
            /*if (in_array($version, [3, 4, 4.1])) {
                $bolt->setProtocolVersions($version);
            }*/

            // Connect to database
            $bolt->hello('Laravel/1.0', $username, $password, []);

            return $bolt;
}

public function execute(string $statement)
{
        $bolt = $this->bolt();
        $mode = preg_match('/(CREATE|SET|MERGE|DELETE)/m', $statement) ? 'w' : 'r';

        if (! $res = $bolt->run($statement, [], [
            'mode' => $mode
        ])) {
            return null;
        }

        $records = $bolt->pull();
        array_pop($records);

        return array_map(function ($record) {
                return $record[0];
        }, $records);
}

Example of usage:
$userId = 1; /* Logged in user id */
$postId = 10; /* Id of post */

$neo4j = new Neo4j();
$neo4j->execute("MERGE (u:User { id: $userId })-[r:READS]->(p:Post { id: $postId }) SET r.ts = timestamp() RETURN p.id");

In the cluster I see there are three servers, two are FOLLOWERs and only one is the LEADER.
I can run CALL dbms.cluster.overview() to view their details.

@u12206050 It looks okay for me. What version of Neo4j are you using?

@u12206050 also did you try set directly the address for routing leader? ["address": "your-address:port"]

Yes that is what I am currently doing although I am setting it as the main ip.

Setting ["address" => "your-address:port"] doesn't work, it only works when I put the address to the LEADER as the main ip

Sorry, using version 4
On Sun, 27 Dec 2020, 20:23 Michal Štefaňák<EMAIL_ADDRESS>wrote:

@u12206050 https://github.com/u12206050 also did you try set directly
the address for routing leader? ["address": "your-address:port"]
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/stefanak-michal/Bolt/issues/42#issuecomment-751506438,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABSVMWUJ4T3JVG3ETG2EH6TSW6CU7ANCNFSM4UJGIBRA
.

I opened this "issue" because I can't make the routing to work.
I use a causal cluster running in AWS with kubernetes and the official neo4j helm.
On some research i did i found that the routing implementation is in the language driver side not in the DBMS or protocol itself.
I get an example in the go lang driver and some other oficial drivers.
In the end, i did something like that with some changes and adjustments for my needs, like caching and retries.
It'll be great if we have this in the driver side.
In other hand I don't think that in this case where the lib is bolt focused, not like an "ORM", it has this routing responsability.
That's just my opinion.
If you guys want to implement something like that or want to discuss about that, call me. =)

Thanks @luiztucillo I was starting to implement something like that similar.
Which brings me to the question what does the routing argument in this library eg. ["address" => "your-address:port"] actually do then, since there is also multiple addresses within a cluster?

Sadly I don't have Aura cluster to test it. I followed official documentation, you should connect to leader. I created local cluster at my pc and it works for me. After cluster runs I checked which one is leader and discovered it runs at 7689 port (neo4j database).

id
addresses
databases
groups

1
"dea18832-edf1-434d-bc13-3fd554c32925"
["bolt://localhost:7687", "http://localhost:7474"]
{   "neo4j": "FOLLOWER",   "system": "LEADER" }
[]

2
"f42cb101-1f97-40ad-8ec8-8a1d21e7f71a"
["bolt://localhost:7688", "http://localhost:7475"]
{   "neo4j": "FOLLOWER",   "system": "FOLLOWER" }
[]

3
"6bba34e1-3744-4399-a4ac-06f0a303dcf5"
["bolt://localhost:7689", "http://localhost:7476"]
{   "neo4j": "LEADER",   "system": "FOLLOWER" }
[]

I'm not sure about the logic which @luiztucillo mentioned, because the guy said, he is using Neo4j version 3.
This piece of code works for me without problem.
$conn = new \Bolt\connection\Socket('<IP_ADDRESS>', 7689, 3);
$bolt = new \Bolt\Bolt($conn);
$bolt->init('MyClient/1.0', $user, $password, []);
$res = $bolt->run('RETURN 1 as num, 2 as cnt', [], ['mode' => 'r']);
$res = $bolt->run('CREATE (a:Test) RETURN a, ID(a)');

Also you didn't send what error are you receiving.

TL;DR: It's also not working for me (AWS EKS + Neo4j Helm chart)
I've set up the AWS EKS cluster and deployed the Neo4j helm chart there. At first, I was able to connect to the cluster and write to it but that was probably just because I got lucky and I got the right IP from the DNS record. Now with the same solution, I'm getting "No write operations are allowed directly on this database. Writes must pass through the leader. The role of this server is: FOLLOWER (Neo.ClientError.Cluster.NotALeader)"
My connection:
$bolt = new LibraryBolt(new StreamSocket('my-neo4j.default.svc.cluster.local', 7687));
$bolt->setProtocolVersions(4.2);
$bolt->init('Client/1.0', $username, $password, []);

@stefanak-michal I think that problem with your example is that you checked routing yourself and then connected to the right leader manually (by using the right port) rather than connect to the follower and let the server switch you with routing = [] (that example would work even without routing argument). The difference may also be in using DNS records vs connecting to a specific server/port (not sure, just putting it out here).

TL;DR: It's also not working for me (AWS EKS + Neo4j Helm chart)
I've set up the AWS EKS cluster and deployed the Neo4j helm chart there. At first, I was able to connect to the cluster and write to it but that was probably just because I got lucky and I got the right IP from the DNS record. Now with the same solution, I'm getting "No write operations are allowed directly on this database. Writes must pass through the leader. The role of this server is: FOLLOWER (Neo.ClientError.Cluster.NotALeader)"
My connection:
$bolt = new LibraryBolt(new StreamSocket('my-neo4j.default.svc.cluster.local', 7687));
$bolt->setProtocolVersions(4.2);
$bolt->init('Client/1.0', $username, $password, []);

@stefanak-michal I think that problem with your example is that you checked routing yourself and then connected to the right leader manually (by using the right port) rather than connect to the follower and let the server switch you with routing = [] (that example would work even without routing argument). The difference may also be in using DNS records vs connecting to a specific server/port (not sure, just putting it out here).

@Dreiser you are right. I've made check of port before connecting.
I'll postpone this issue to Neo4j people to discover some solution.

@Dreiser you are right. I've made check of port before connecting.
I'll postpone this issue to Neo4j people to discover some solution.

Important
I've response from Neo4j people (it was fast). Currently there is no solution for how to receive routing table or let Neo4j database to do it by itself. Application has to acquire routing info in another way and use it for connection.
The Neo4j team is preparing change for this this year. Connection will be extended and they will add new message type to acquire routing info which can be used for connection message.
I'll be informed and I'll try to implement it asap.

Important
I've response from Neo4j people (it was fast). Currently there is no solution for how to receive routing table or let Neo4j database to do it by itself. Application has to acquire routing info in another way and use it for connection.
The Neo4j team is preparing change for this this year. Connection will be extended and they will add new message type to acquire routing info which can be used for connection message.
I'll be informed and I'll try to implement it asap.

That doesn't make sense though, i was able to run a query to get the
available servers (read, write) and the based on the type of query I want
to run I setup a connection to the correct server.
I only recheck the servers once a write query fails, possibly because
another server has become the new write server.
On Fri, 15 Jan 2021, 19:14 Michal Štefaňák<EMAIL_ADDRESS>wrote:

Important
I've response from Neo4j people (it was fast). Currently there is no
solution for how to receive routing table or let Neo4j database to do it by
itself. Application has to acquire routing info in another way and use it
for connection.
The Neo4j team is preparing change for this this year. Connection will be
extended and they will add new message type to acquire routing info which
can be used for connection message.
I'll be informed and I'll try to implement it asap.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/stefanak-michal/Bolt/issues/42#issuecomment-761100725,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABSVMWQQRXREJH6V2LLKIXDS2CAXBANCNFSM4UJGIBRA
.

That doesn't make sense though, i was able to run a query to get the
available servers (read, write) and the based on the type of query I want
to run I setup a connection to the correct server.
I only recheck the servers once a write query fails, possibly because
another server has become the new write server.
On Fri, 15 Jan 2021, 19:14 Michal Štefaňák<EMAIL_ADDRESS>wrote:

Important
I've response from Neo4j people (it was fast). Currently there is no
solution for how to receive routing table or let Neo4j database to do it by
itself. Application has to acquire routing info in another way and use it
for connection.
The Neo4j team is preparing change for this this year. Connection will be
extended and they will add new message type to acquire routing info which
can be used for connection message.
I'll be informed and I'll try to implement it asap.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/stefanak-michal/Bolt/issues/42#issuecomment-761100725,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABSVMWQQRXREJH6V2LLKIXDS2CAXBANCNFSM4UJGIBRA
.

@u12206050 if you connect to follower, request that info, discover which one is leader, disconnect and connect again to leader, it should work.
What query for that are you using?

@u12206050 if you connect to follower, request that info, discover which one is leader, disconnect and connect again to leader, it should work.
What query for that are you using?

Yep something like that, here is my Neo4jClient

<?php

namespace App\Neo4j;

use Bolt\Bolt;
use Bolt\connection\StreamSocket;

class BoltClient
{
    protected $servers;
    protected $writer;
    protected $reader;

    private $ip;
    private $port;
    private $username;
    private $password;

    public function __construct ()
    {
        $this->ip = config('services.neo4j.ip');
        $this->port = config('services.neo4j.port');
        $this->username = config('services.neo4j.username');
        $this->password = config('services.neo4j.password');

        if (config('services.neo4j.cluster')) {
            $this->loadRoutingTable();
        } else {
            $this->reader = $this->writer =
$this->newConnection($this->ip, $this->port);
        }
    }

    protected function loadRoutingTable ()
    {
            return cache()->remember('neo4j-routing-table', 86400, function () {
                $bolt = $this->newConnection($this->ip, $this->port);
                $bolt->run('CALL dbms.routing.getRoutingTable({})');
                $rows = $bolt->pull();

                $writeServers = [];
                $readServers = [];

                if(isset($rows[0][1])) {
                    foreach($rows[0][1] as $server) {
                        if($server['role'] === 'WRITE') {
                            $writeServers = $server['addresses'];
                        } elseif($server['role'] === 'READ') {
                            $readServers = $server['addresses'];
                        }
                    }
                }

                return [
                    'w' => $writeServers,
                    'r' => $readServers
                ];
            });
    }

    protected function newConnection ($ip, $port)
    {
        // Create new Bolt instance
        $conn = new StreamSocket($ip, $port);
        $conn->setSslContextOptions([
            /*'peer_name' => 'localhost',*/
            'verify_peer' => true,
            'allow_self_signed' => true
        ]);
        $bolt = new Bolt($conn);

        // Connect to database
        $bolt->hello('Laravel/1.0', $this->username, $this->password, []);

        return $bolt;
    }

    public function getClient ($mode = 'w')
    {
        if ($mode === 'r') {
            return $this->getReader();
        }

        return $this->getWriter();
    }

    public function getWriter ()
    {
        if ($this->writer) {
            return $this->writer;
        }

        $writers = $this->servers['w'];
        if ($len = count($writers)) {
            $address = $len > 1 ? $writers[random_int(0, $len - 1)] :
$writers[0];
            $this->writer = $this->newConnection(...explode(':', $address));
            return $this->writer;
        }

        throw new \Exception('No NEO4J server loaded');
    }

    public function getReader ()
    {
        if ($this->reader) {
            return $this->reader;
        }

        $readers = $this->servers['r'];
        if ($len = count($readers)) {
            $address = $len > 1 ?$readers[random_int(0, $len - 1)] :
$readers[0];
            return $this->reader =
$this->newConnection(...explode(':', $address));
        }

        return $this->reader = $this->getWriter();
    }

    public function clearCache()
    {
        cache()->delete('neo4j-routing-table');

        $this->reader = $this->writer = null;
        $this->loadRoutingTable();
    }
}

On Fri, 15 Jan 2021, 19:27 Michal Štefaňák<EMAIL_ADDRESS>wrote:

@u12206050 https://github.com/u12206050 if you connect to follower,
request that info, discover which one is leader, disconnect and connect
again to leader, it should work.
What query for that are you using?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/stefanak-michal/Bolt/issues/42#issuecomment-761108230,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABSVMWV4DAVSGUHN7JNPLW3S2CCKZANCNFSM4UJGIBRA
.

Yep something like that, here is my Neo4jClient

<?php

namespace App\Neo4j;

use Bolt\Bolt;
use Bolt\connection\StreamSocket;

class BoltClient
{
    protected $servers;
    protected $writer;
    protected $reader;

    private $ip;
    private $port;
    private $username;
    private $password;

    public function __construct ()
    {
        $this->ip = config('services.neo4j.ip');
        $this->port = config('services.neo4j.port');
        $this->username = config('services.neo4j.username');
        $this->password = config('services.neo4j.password');

        if (config('services.neo4j.cluster')) {
            $this->loadRoutingTable();
        } else {
            $this->reader = $this->writer =
$this->newConnection($this->ip, $this->port);
        }
    }

    protected function loadRoutingTable ()
    {
            return cache()->remember('neo4j-routing-table', 86400, function () {
                $bolt = $this->newConnection($this->ip, $this->port);
                $bolt->run('CALL dbms.routing.getRoutingTable({})');
                $rows = $bolt->pull();

                $writeServers = [];
                $readServers = [];

                if(isset($rows[0][1])) {
                    foreach($rows[0][1] as $server) {
                        if($server['role'] === 'WRITE') {
                            $writeServers = $server['addresses'];
                        } elseif($server['role'] === 'READ') {
                            $readServers = $server['addresses'];
                        }
                    }
                }

                return [
                    'w' => $writeServers,
                    'r' => $readServers
                ];
            });
    }

    protected function newConnection ($ip, $port)
    {
        // Create new Bolt instance
        $conn = new StreamSocket($ip, $port);
        $conn->setSslContextOptions([
            /*'peer_name' => 'localhost',*/
            'verify_peer' => true,
            'allow_self_signed' => true
        ]);
        $bolt = new Bolt($conn);

        // Connect to database
        $bolt->hello('Laravel/1.0', $this->username, $this->password, []);

        return $bolt;
    }

    public function getClient ($mode = 'w')
    {
        if ($mode === 'r') {
            return $this->getReader();
        }

        return $this->getWriter();
    }

    public function getWriter ()
    {
        if ($this->writer) {
            return $this->writer;
        }

        $writers = $this->servers['w'];
        if ($len = count($writers)) {
            $address = $len > 1 ? $writers[random_int(0, $len - 1)] :
$writers[0];
            $this->writer = $this->newConnection(...explode(':', $address));
            return $this->writer;
        }

        throw new \Exception('No NEO4J server loaded');
    }

    public function getReader ()
    {
        if ($this->reader) {
            return $this->reader;
        }

        $readers = $this->servers['r'];
        if ($len = count($readers)) {
            $address = $len > 1 ?$readers[random_int(0, $len - 1)] :
$readers[0];
            return $this->reader =
$this->newConnection(...explode(':', $address));
        }

        return $this->reader = $this->getWriter();
    }

    public function clearCache()
    {
        cache()->delete('neo4j-routing-table');

        $this->reader = $this->writer = null;
        $this->loadRoutingTable();
    }
}

On Fri, 15 Jan 2021, 19:27 Michal Štefaňák<EMAIL_ADDRESS>wrote:

@u12206050 https://github.com/u12206050 if you connect to follower,
request that info, discover which one is leader, disconnect and connect
again to leader, it should work.
What query for that are you using?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/stefanak-michal/Bolt/issues/42#issuecomment-761108230,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABSVMWV4DAVSGUHN7JNPLW3S2CCKZANCNFSM4UJGIBRA
.

Neo4j version 4.2.2 has a server-side routing option and with that enabled this driver works as expected.

Neo4j version 4.2.2 has a server-side routing option and with that enabled this driver works as expected.

@Dreiser thanks, it is great solution, but i not found this information in changelog: https://github.com/neo4j/neo4j-browser/wiki/changelog, too, neo4j Aura has 4.2.0 driver

hi again, i think that the decision about what server from cluster use is from neo-client, not neo-bolt, i have added this feature to my connection, similar to the @u12206050 user: https://github.com/hidabe/neo4j-php-client/blob/master/src/Connection/Connection.php it work using "bolt+routing" in schema

@hidabe Sorry for the confusion - I'm not sure when did that option got to neo4j I just mentioned the version I updated on where I switched on server-side routing.
Anyways, this driver should ideally still implement bolr+routing protocol because it could optimize connections directly on the client side and it could handle the faulty connection (using a different connection from the pool).
Right now when I'm connected to Neo4j causal cluster using DNS with multiple records and when the first record goes down, PHP fails to connection initialization with "Read error" and the script dies even though other members are still up. This resolves itself either when the member comes back up or when the DNS translates to another working host. But obviously, it kills high availability and does not take full advantage of routing on the client.

For anyone stumbling upon this thread, https://github.com/neo4j-php/neo4j-php-client (developed by @transistive on top of this library) supports clusters and routing, so you should give it a try.

The Route message from latest neo4j version is implemented. But I know @transistive had to deal with some issues while trying to make it work. Maybe he has more insight for it.
https://7687.org/bolt/bolt-protocol-message-specification-4.html#request-message---43---route
https://7687.org/bolt/bolt-protocol-message-specification-4.html#request-message---44---route
https://github.com/neo4j-php/Bolt/blob/9dabf7de69c3e08270cdf26d0489e4a7dcb4c495/src/Bolt.php#L396

Hi All!
The client does indeed fully support clusters and routing. You can, of course, try and implement it yourself, but it is more challenging than it appears!
Good luck all :+1:


vmware-workstation: 16.2.3 -> 17.0.0 and support macOS guests

The purpose of this change is to both update VMWare Workstation to v17.0.0 (latest version at this time) and allow macOS guests to be run on top of non-Apple host systems.
This functionality is provided on other distros such as ArchLinux & Gentoo by AUR packages or USE flags in gentoo's case. This will be a useful addition and I am happy to maintain it (and as such have added myself as a maintainer of the package.)
Description of changes
The purpose of this change is to both update VMWare Workstation to v17.0.0 (latest version at this time) and allow macOS guests to be run on top of non-Apple host systems.
This functionality is provided on other distros such as ArchLinux & Gentoo by AUR packages or USE flags in gentoo's case. This will be a useful addition and I am happy to maintain it (and as such have added myself as a maintainer of the package.)
Things done

Built on platform(s)

[X] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[X] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[X] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[X] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[X] Fits CONTRIBUTING.md.

CC: @deinferno

Thank you for updating version and porting this useful addition from other build scripts. Code looks good to me.

Thank you for updating version and porting this useful addition from other build scripts. Code looks good to me.

Thanks - updated again to 17.0.0 and verified it works properly from my end. macOS VM seems run a little better with this version actually and we can FINALLY be rid of having to pin 5.8 kernel versions! Wooo! :+1:

looks better to me. r? @deinferno

Removed the need for python2. :)

Result of nixpkgs-review pr 200664 run on x86_64-linux 1

6 packages marked as broken and skipped:

linuxKernel.packages.hardkernel_4_14.vmware
linuxKernel.packages.linux_4_14_hardened.vmware
linuxKernel.packages.linux_4_19_hardened.vmware
linuxPackages_4_14_hardened.vmware
linuxPackages_4_19_hardened.vmware
linuxPackages_hardkernel_latest.vmware

17 packages built:

linuxKernel.packages.linux_4_14.vmware
linuxKernel.packages.linux_4_19.vmware
linuxKernel.packages.linux_5_10.vmware
linuxPackages_5_10_hardened.vmware (linuxKernel.packages.linux_5_10_hardened.vmware)
linuxPackages.vmware (linuxKernel.packages.linux_5_15.vmware)
linuxPackages_hardened.vmware (linuxPackages_5_15_hardened.vmware)
linuxKernel.packages.linux_5_4.vmware
linuxPackages_latest.vmware (linuxKernel.packages.linux_6_0.vmware)
linuxKernel.packages.linux_6_0_hardened.vmware
linuxPackages_latest-libre.vmware (linuxKernel.packages.linux_latest_libre.vmware)
linuxPackages-libre.vmware (linuxKernel.packages.linux_libre.vmware)
linuxPackages_lqx.vmware (linuxKernel.packages.linux_lqx.vmware)
linuxPackages_testing_bcachefs.vmware (linuxKernel.packages.linux_testing_bcachefs.vmware)
linuxPackages_xanmod.vmware (linuxKernel.packages.linux_xanmod.vmware)
linuxPackages_xanmod_latest.vmware (linuxKernel.packages.linux_xanmod_latest.vmware ,linuxPackages_xanmod_stable.vmware)
linuxPackages_zen.vmware (linuxKernel.packages.linux_zen.vmware)
vmware-workstation

Updated vmware-workstation and VMs work as intented on my host, i will download macOS image to test, but patcher does it things without errors too when enabled. Hope updated kernel modules compability won't break that fast :smile:

@deinferno Added all changes requested

@cawilliamson Everything looks ok, i just found out that if enableMacOSGuests then fetchurl else null and if enableMacOSGuests then fetchFromGitHub else null works, please rollback to using it, sorry for changes pingpong.

@deinferno Not sure what GitHub is talking about - I 100% didn't "remove the request for a review" from you intentionally! :)

@deinferno Not sure what GitHub is talking about - I 100% didn't "remove the request for a review" from you intentionally! :)


Readme Information is not accurate

I deployed the Amazon Chime SDK Serverless demo and proceeded to make meeting however upon copying the url to the new tab it asks for name and information and does not automatically join. This is an issue for testing the recording demo.
Am I missing something?

Hey @ArtmisL, are you trying to test how the recording bot joins the meeting automatically by pasting the URL in the browser?
For that, you need to append record=true param in the URL. Here is an example of the URL
https://abcdefgh.execute-api.us-east-1.amazonaws.com/Prod/?m=SomeMeetingID&record=true

Let me know if this answers your question.

Closing the issue. Feel free to reopen it if you still have problems.


Cache results from docker ps command

When there are a large number of nodes, the loop for translate_ipaddresses_to_docker_container_ids runs 2 for loops inside each other:
for host in ${cassandraNodes} ; do
for container_id in $(docker ps -q) ; do
This results in the docker ps command being run number_of_nodes * number_of_containers_on_host, which is slow / inefficient.

Cache docker inspect too…


turns, stalls, callahans and drops are missing from get_player_stats() in gamestatsplayerstats.py

We don't use this class anymore. Instead, use
import audl.stats.endpoints.gamestats import GameStats

game = GameStats('2022-06-17-SEA-OAK')
players_stats = game.get_roster_stats()


MANIFEST.in to include LICENSE and CHANGELOG

MANIFEST.in to include LICENSE and CHANGELOG in sdist for pypi

It would be nice to have MANIFEST.in also include MANIFEST.in so the sdist can be rebuilt from the sdist (this is good for downstream distributors like Linux distributions).

Hey @kitterma,
Thanks for the pull request. Is there any place where I can find more information about this manifest file, and why it's important to have one?
Thanks,
Jonathan

I didn't do the original pull request (lhw did), but I can speak to what he was trying to accomplish as we are collaborating to get prompt_toolkit packaged in Debian.
There are two files (LICENSE and CHANGELOG) that it would be good to have in the sdist, each for their own reason:
We want LICENSE because since Debian distributes both source and binary we want a copy of the exact license for the code in our source distribution so the the requirements are clear and self-contained.  I think this is a good general practice anyway.
We want CHANGELOG so we can ship it in the package documentation to enable users to see what has changed over time with the package.
MANIFEST.in is just a way to add files to the sdist (it's the normal way in distutils).  I'm not that versed in setuptools myself, but I do know there are other ways to do it.  What's important (at least from our point of view) isn't the MANIFEST.in file itself, but the added files it would add to the sdist.
If the MANIFEST.in isn't shipped with the sdist, then a downstream distributor that modified the package might get a different result.  I believe it's a good general practice to include all the components of a package build system when you ship it.
That's probably way more information than you wanted ...
Scott K

Thanks for the explanation. I appreciate it!
I merged the pull request from @lhw in this commit: https://github.com/jonathanslenders/python-prompt-toolkit/commit/0fbe8ee86d33699f87b43706302ac6a56aeb3ddb
Can you create a new pull request with the required changes?


Refactor post by Batuhan

This is @isidentical 's post on his Refactor project.  Still awaiting an image. Was having an issue with yarn develop so checking here.
Target publish: 9/22/21

Having an issue with the avatar... Trying to figure out.

Having an issue with the avatar... Trying to figure out.

I think the pull request needs to add a batuhan_taskaya.md to our content/authors folder. That may be why the engine can't find the author🤔

Having an issue with the avatar... Trying to figure out.

I think the pull request needs to add a batuhan_taskaya.md to our content/authors folder. That may be why the engine can't find the author🤔

Thanks @julieg18 ! 🙏

How to I show the differences? in the last code block as in @isidentical gist.

Still awaiting main image.  Thanks @isidentical for the correction to position 🤦♀ and approval.  Working on getting this image done today. 🤞

It looks good! One minor style change and we can merge it (or let's merge and do the fix after) - let me know.

@jendefig please do open follow-up issues (add missing tags to other posts and possible tags for removal)

Can we please just get this merged and deal with tags later. 😅

@jendefig please do open follow-up issues (add missing tags to other posts, possible tags for removal, sync tags ↔ keywords)

Ok.  I will add it to my list, but it will have to be on low priority.

@jendefig I think it's merged already :)

@jendefig I think it's merged already :)

Thank you!  @shcheklein and @casperdcl I saw!


Importing inputstreamhelper to dev environment

Hi. How can one easily import inputstreamhelper to its development environment so the message Unable to import 'inputstreamhelper' does not appear?

What we do for testing, is add this to requirements.txt:
git+git://github.com/emilsvennesson/script.module.inputstreamhelper.git@master#egg=inputstreamhelper

Or if you prefer to stick to a specific version, you can do:
<EMAIL_ADDRESS>
Then you can  pull this automatically into your dev environment using:
pip install -r requirements.txt

And this works for e.g. Travis as well to get your dependencies installed.
Take a look at the VRT NU add-on to see how we do this integration for testing: https://github.com/pietje666/plugin.video.vrt.nu

Thanks @dagwieers. Actually, I need only "inputstreamhelper stubs" (something like Kodistubs https://romanvm.github.io/Kodistubs/using.html), not the full library. I guess your answer will do. :)

PS C:\Projects\xbmc.plugin.video.nba> pip --version
pip 19.3 from c:\python27\lib\site-packages\pip (python 2.7)
PS C:\Projects\xbmc.plugin.video.nba> python -m pip install --upgrade pip
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Requirement already up-to-date: pip in c:\python27\lib\site-packages (19.3)
PS C:\Projects\xbmc.plugin.video.nba> pip --version
pip 19.3 from c:\python27\lib\site-packages\pip (python 2.7)
PS C:\Projects\xbmc.plugin.video.nba>

I need to know the version of setuptools, because that is the likely cause of this issue.

So for me using setuptools v41.2.0 on Python 2.7 it seems to work.
[root@moria plugin.video.vrt.nu]# pip install --upgrade git+git://github.com/emilsvennesson/script.module.inputstreamhelper.git@master#egg=inputstreamhelper
Collecting inputstreamhelper from git+git://github.com/emilsvennesson/script.module.inputstreamhelper.git@master#egg=inputstreamhelper
  Cloning git://github.com/emilsvennesson/script.module.inputstreamhelper.git (to master) to /tmp/pip-build-USIqYQ/inputstreamhelper
Installing collected packages: inputstreamhelper
  Found existing installation: inputstreamhelper 0.4.3
    Uninstalling inputstreamhelper-0.4.3:
      Successfully uninstalled inputstreamhelper-0.4.3
  Running setup.py install for inputstreamhelper ... done
Successfully installed inputstreamhelper-0.4.3

PS C:\Projects\xbmc.plugin.video.nba> pip list
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Package                       Version
----------------------------- -------
astroid                       1.6.6
autopep8                      1.4.4
backports.functools-lru-cache 1.5
colorama                      0.4.1
configparser                  4.0.2
enum34                        1.1.6
futures                       3.3.0
isort                         4.3.21
Kodistubs                     18.0.0
lazy-object-proxy             1.4.2
mccabe                        0.6.1
pip                           19.3
pycodestyle                   2.5.0
pylint                        1.9.5
setuptools                    40.6.2
singledispatch                <IP_ADDRESS>
six                           1.12.0
typing                        <IP_ADDRESS>
wrapt                         1.11.2

Try doing: pip install --upgrade setuptools and then try again.

I added a page to the wiki with the information we already learned:
https://github.com/emilsvennesson/script.module.inputstreamhelper/wiki/Testing
Also read the Integration page carefully, because we recommend to import inputstreamhelper in the routing that needs it, rather than importing it at the top.

Great, thank you @dagwieers!
PS C:\Projects\xbmc.plugin.video.nba> pip list
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Package                       Version
----------------------------- -------
astroid                       1.6.6
autopep8                      1.4.4
backports.functools-lru-cache 1.5
colorama                      0.4.1
configparser                  4.0.2
enum34                        1.1.6
futures                       3.3.0
isort                         4.3.21
PS C:\Projects\xbmc.plugin.video.nba> pip install --upgrade setuptools
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Collecting setuptools
  Downloading https://files.pythonhosted.org/packages/6a/9a/50fadfd53ec909e4399b67c74cc7f4e883488035cfcdb90b685758fa8b34/setuptools-41.4.0-py2.py3-none-any.whl (580kB)
     |################################| 583kB 1.1MB/s
Installing collected packages: setuptools
  Found existing installation: setuptools 40.6.2
    Uninstalling setuptools-40.6.2:
      Successfully uninstalled setuptools-40.6.2
Successfully installed setuptools-41.4.0
PS C:\Projects\xbmc.plugin.video.nba> pip list
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Package                       Version
----------------------------- -------
astroid                       1.6.6
autopep8                      1.4.4
backports.functools-lru-cache 1.5
colorama                      0.4.1
configparser                  4.0.2
enum34                        1.1.6
futures                       3.3.0
isort                         4.3.21
Kodistubs                     18.0.0
lazy-object-proxy             1.4.2
mccabe                        0.6.1
pip                           19.3
pycodestyle                   2.5.0
pylint                        1.9.5
setuptools                    41.4.0
singledispatch                <IP_ADDRESS>
six                           1.12.0
typing                        <IP_ADDRESS>
wrapt                         1.11.2
PS C:\Projects\xbmc.plugin.video.nba> python -m pip install --upgrade pip
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Requirement already up-to-date: pip in c:\python27\lib\site-packages (19.3)
PS C:\Projects\xbmc.plugin.video.nba> pip install -r requirements.txt
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Collecting inputstreamhelper
  Cloning git://github.com/emilsvennesson/script.module.inputstreamhelper.git (to revision master) to c:\users\user\appdata\local\temp\pip-install-_fdkn6\inputstreamhelper
  Running command git clone -q git://github.com/emilsvennesson/script.module.inputstreamhelper.git 'c:\users\user\appdata\local\temp\pip-install-_fdkn6\inputstreamhelper'
Installing collected packages: inputstreamhelper
    Running setup.py install for inputstreamhelper ... done
Successfully installed inputstreamhelper-0.4.3

It could be useful to have this procedure under Wiki as well.
Kind regards, Ivan

Well done! Now I can develop much easier, resolve all errors and warnings in my workspace, and also improve the xbmc.plugin.video.nba add-on with all suggestions on how to specify dependencies.
(I feel like a lot of recent changes under Wiki are motivated by the status in the mentioned add-on. :))

Hi @dagwieers. I was trying to make clean setup in my project:
python -m pip install --user --upgrade "pylint<2.0.0"
python -m pip install --user --upgrade autopep8
python -m pip install --user --upgrade pip
pip --version
pip list
python -m pip install --user --upgrade setuptools
pip list
python -m pip install --user --upgrade Kodistubs
pip list
python -m pip install --user -r requirements.txt
pip list

...but something is missing:
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

PS C:\Projects\xbmc.plugin.video.nba> python -m pip install --user --upgrade "pylint<2.0.0"
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Collecting pylint<2.0.0
  Using cached https://files.pythonhosted.org/packages/36/3b/fa4025a424adafd85c6195001b1c130ecb8d8b30784a1c4cb68e7b5e5ae7/pylint-1.9.5-py2.py3-none-any.whl
Collecting singledispatch; python_version < "3.4"
  Using cached https://files.pythonhosted.org/packages/c5/10/369f50bcd4621b263927b0a1519987a04383d4a98fb10438042ad410cf88/singledispatch-<IP_ADDRESS>-py2.py3-none-any.whl
Collecting mccabe
  Using cached https://files.pythonhosted.org/packages/87/89/479dc97e18549e21354893e4ee4ef36db1d237534982482c3681ee6e7b57/mccabe-0.6.1-py2.py3-none-any.whl
Collecting backports.functools-lru-cache; python_version == "2.7"
  Using cached https://files.pythonhosted.org/packages/03/8e/2424c0e65c4a066e28f539364deee49b6451f8fcd4f718fefa50cc3dcf48/backports.functools_lru_cache-1.5-py2.py3-none-any.whl
Collecting astroid<2.0,>=1.6
  Using cached https://files.pythonhosted.org/packages/8b/29/0f7ec6fbf28a158886b7de49aee3a77a8a47a7e24c60e9fd6ec98ee2ec02/astroid-1.6.6-py2.py3-none-any.whl
Collecting colorama; sys_platform == "win32"
  Using cached https://files.pythonhosted.org/packages/4f/a6/728666f39bfff1719fc94c481890b2106837da9318031f71a8424b662e12/colorama-0.4.1-py2.py3-none-any.whl
Collecting six
  Using cached https://files.pythonhosted.org/packages/73/fb/00a976f728d0d1fecfe898238ce23f502a721c0ac0ecfedb80e0d88c64e9/six-1.12.0-py2.py3-none-any.whl
Collecting isort>=4.2.5
  Using cached https://files.pythonhosted.org/packages/e5/b0/c121fd1fa3419ea9bfd55c7f9c4fedfec5143208d8c7ad3ce3db6c623c21/isort-4.3.21-py2.py3-none-any.whl
Collecting configparser; python_version == "2.7"
  Using cached https://files.pythonhosted.org/packages/7a/2a/95ed0501cf5d8709490b1d3a3f9b5cf340da6c433f896bbe9ce08dbe6785/configparser-4.0.2-py2.py3-none-any.whl
Collecting enum34>=1.1.3; python_version < "3.4"
  Using cached https://files.pythonhosted.org/packages/c5/db/e56e6b4bbac7c4a06de1c50de6fe1ef3810018ae11732a50f15f62c7d050/enum34-1.1.6-py2-none-any.whl
Collecting lazy-object-proxy
  Using cached https://files.pythonhosted.org/packages/71/0f/7b266ef296511461e0794e1ee0a6ddd6787f262038ff23ddcb0c451f2674/lazy_object_proxy-1.4.2-cp27-cp27m-win_amd64.whl
Collecting wrapt
  Using cached https://files.pythonhosted.org/packages/23/84/323c2415280bc4fc880ac5050dddfb3c8062c2552b34c2e512eb4aa68f79/wrapt-1.11.2.tar.gz
Collecting futures; python_version < "3.2"
  Using cached https://files.pythonhosted.org/packages/d8/a6/f46ae3f1da0cd4361c344888f59ec2f5785e69c872e175a748ef6071cdb5/futures-3.3.0-py2-none-any.whl
Installing collected packages: six, singledispatch, mccabe, backports.functools-lru-cache, enum34, lazy-object-proxy, wrapt, astroid, colorama, futures, isort, configparser, pylint
    Running setup.py install for wrapt ... done
  WARNING: The script isort.exe is installed in 'C:\Users\ekokiva\AppData\Roaming\Python\Scripts' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
  WARNING: The scripts epylint.exe, pylint.exe, pyreverse.exe and symilar.exe are installed in 'C:\Users\ekokiva\AppData\Roaming\Python\Scripts' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed astroid-1.6.6 backports.functools-lru-cache-1.5 colorama-0.4.1 configparser-4.0.2 enum34-1.1.6 futures-3.3.0 isort-4.3.21 lazy-object-proxy-1.4.2
mccabe-0.6.1 pylint-1.9.5 singledispatch-<IP_ADDRESS> six-1.12.0 wrapt-1.11.2
PS C:\Projects\xbmc.plugin.video.nba> python -m pip install --user --upgrade autopep8
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Collecting autopep8
  Using cached https://files.pythonhosted.org/packages/45/f3/24b437da561b6af4840c871fbbda32889ca304fc1f7b6cc3ada8b09f394a/autopep8-1.4.4.tar.gz
Collecting pycodestyle>=2.4.0
  Using cached https://files.pythonhosted.org/packages/0e/0c/04a353e104d2f324f8ee5f4b32012618c1c86dd79e52a433b64fceed511b/pycodestyle-2.5.0-py2.py3-none-any.whl
Installing collected packages: pycodestyle, autopep8
  WARNING: The script pycodestyle.exe is installed in 'C:\Users\ekokiva\AppData\Roaming\Python\Scripts' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
    Running setup.py install for autopep8 ... done
Successfully installed autopep8-1.4.4 pycodestyle-2.5.0
PS C:\Projects\xbmc.plugin.video.nba> python -m pip install --user --upgrade pip
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Requirement already up-to-date: pip in c:\python27\lib\site-packages (19.3.1)
PS C:\Projects\xbmc.plugin.video.nba> pip --version
pip 19.3.1 from c:\python27\lib\site-packages\pip (python 2.7)
PS C:\Projects\xbmc.plugin.video.nba> pip list
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Package                       Version
----------------------------- -------
astroid                       1.6.6
autopep8                      1.4.4
backports.functools-lru-cache 1.5
colorama                      0.4.1
configparser                  4.0.2
enum34                        1.1.6
futures                       3.3.0
isort                         4.3.21
lazy-object-proxy             1.4.2
mccabe                        0.6.1
pip                           19.3.1
pycodestyle                   2.5.0
pylint                        1.9.5
setuptools                    41.4.0
singledispatch                <IP_ADDRESS>
six                           1.12.0
wrapt                         1.11.2
PS C:\Projects\xbmc.plugin.video.nba> python -m pip install --user --upgrade setuptools
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Requirement already up-to-date: setuptools in c:\python27\lib\site-packages (41.4.0)
PS C:\Projects\xbmc.plugin.video.nba> python -m pip install --user --upgrade Kodistubs
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Collecting Kodistubs
  Using cached https://files.pythonhosted.org/packages/7c/2a/55785ae519e936af655f72a98e69e1a20e1daea7ea186e1ca3abeea762c0/Kodistubs-18.0.0-py2-none-any.whl
Collecting typing
  Using cached https://files.pythonhosted.org/packages/22/30/64ca29543375759dc589ade14a6cd36382abf2bec17d67de8481bc9814d7/typing-<IP_ADDRESS>-py2-none-any.whl
Installing collected packages: typing, Kodistubs
Successfully installed Kodistubs-18.0.0 typing-<IP_ADDRESS>
PS C:\Projects\xbmc.plugin.video.nba> python -m pip install --user -r requirements.txt
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Collecting inputstreamhelper
  Cloning git://github.com/emilsvennesson/script.module.inputstreamhelper.git (to revision v0.3.3) to c:\users\ekokiva\appdata\local\temp\pip-install-ovahl8\inputstreamhelper
  Running command git clone -q git://github.com/emilsvennesson/script.module.inputstreamhelper.git 'c:\users\ekokiva\appdata\local\temp\pip-install-ovahl8\inputstreamhelper'
  Running command git checkout -q c41476939e4ee27b3f2fbec089c7772c3bc24009
    ERROR: Command errored out with exit status 1:
     command: 'C:\Python27\python.exe' -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'c:\\users\\ekokiva\\appdata\\local\\temp\\pip-install-ovahl8\\inputstreamhelper\\setup.py'"'"'; __file__='"'"'c:\\users\\ekokiva\\appdata\\local\\temp\\pip-install-ovahl8\\inputstreamhelper\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base 'c:\users\ekokiva\appdata\local\temp\pip-install-ovahl8\inputstreamhelper\pip-egg-info'
         cwd: c:\users\ekokiva\appdata\local\temp\pip-install-ovahl8\inputstreamhelper\
    Complete output (3 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
    IOError: [Errno 2] No such file or directory: 'c:\\users\\ekokiva\\appdata\\local\\temp\\pip-install-ovahl8\\inputstreamhelper\\setup.py'
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
PS C:\Projects\xbmc.plugin.video.nba>

Can you please help once again?

What does this look like: c:\users\ekokiva\appdata\local\temp\pip-install-ovahl8\inputstreamhelper\ ?

What does this look like: c:\users\ekokiva\appdata\local\temp\pip-install-ovahl8\inputstreamhelper\ ?

It does not exist anymore. Whenever the last command is executed (refering to v0.3.3), several folders appear under ...AppData\Local\Temp\ - but disappear in a second.
Doing the same referring to master branch does not generate any issue.
It could be that v0.3.3 is not so compatible with setuptools 41.4.0.

Aha, this is v0.3.3? So no, it does not have a setup.py yet.
Why would you do this for v0.3.3 specifically?


[1.12] DCOS_OSS-4613 - Use default ssh_user in deprecated CLI installer validations

This backports https://github.com/dcos/dcos/pull/4414

@mesosphere-mergebot label Ready for Review


Q3 and Q4 of "biweekly contest 97" are on backwards

Problem Description
Currently, Q1-Q4 are sorted by credit at first and then by question_id.
But for "biweekly contest 97", Q3's question_id is bigger than Q4's question_id
db.getCollection('Question').find(
    {"contest_name" : "biweekly-contest-97"},
    {title:1, title_slug:1, credit:1, question_id:1, _id:0}
).sort({credit:1, question_id:1})

↩
/* 1 */
{
    "question_id" : 2639,
    "credit" : 3,
    "title" : "Separate the Digits in an Array",
    "title_slug" : "separate-the-digits-in-an-array"
}

/* 2 */
{
    "question_id" : 2640,
    "credit" : 4,
    "title" : "Maximum Number of Integers to Choose From a Range I",
    "title_slug" : "maximum-number-of-integers-to-choose-from-a-range-i"
}

/* 3 */
{
    "question_id" : 2641,
    "credit" : 5,
    "title" : "Disconnect Path in a Binary Matrix by at Most One Flip",
    "title_slug" : "disconnect-path-in-a-binary-matrix-by-at-most-one-flip"
}

/* 4 */
{
    "question_id" : 2673,
    "credit" : 5,
    "title" : "Maximize Win From Two Segments",
    "title_slug" : "maximize-win-from-two-segments"
}

So, Q3 and Q4 are misplaced.

Observed Time
Sun Feb  5 00:51:31 UTC+8, 2023
Possible Solution

🤔

The identical issue pertains to weekly contest 341

Solution:
After examining the fetched question data, I discovered that there is another 'id' field present. Sorting the data by this additional 'id' field should resolve the issue at hand.

@baoliay2008
Taking up this issue if this is not solved yet.

@MysteryHawk17  This problem was resolved in https://github.com/baoliay2008/lccn_predictor/commit/4cb7c186c4486371fb83bba493721288a241b372
Sorting by the new qi field works correctly, and I have republished the frontend code.


add pg17 support

Build images and update CI and readme for pg17. pgt.dev does not yet support pg17, so we will need to update again once that happens

The docker build (postgres w/ pgmq pre installed) depends on the official Postgres image, and those have not yet been published for pg17.


[libgit2] Add GIT_OPENSSL OPTION to fix setting certificate location fail

Fixes #14048
Add GIT_OPENSSL OPTION for linux targets to fix setting certificate location fail.

[x] Changes comply with the maintainer guide
[ ] SHA512s are updated for each updated download
[ ] The "supports" clause reflects platforms that may be fixed by this new version
[ ] Any fixed CI baseline entries are removed from that file.
[ ] Any patches that are no longer applied are deleted from the port's directory.
[x] The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
[x] Only one version is added to each modified port's versions file.

Invalid PR


kusion apply runtime error with little debug info

What would you like to be added?

when trying to use a new tf provider to complete a job, something is wrong, nearly can't debug. Need to add some detail info about the failure.
Why is this needed?
It will be efficient to view the error info in detail directly，can save a lot of time

@healthjyk ptal~

Thanks for your issue. Can you give more information? When does this bug happen? What's the specific bug?


Add NO_SETUP option for tests to allow testing with pre-installed ope…

…rator
Signed-off-by: Kevin Earls<EMAIL_ADDRESS>

@objectiser @jpkrohling @pavolloffay Please review

@jpkrohling Could you take a look and merge if it looks ok to you?


Thank you for making this library

Hello,
This is not an issue, I just wanted to thank you for making this library. I learned many things by reading the source code. In particular I liked the DeepBrand type.
I was using the following simple custom types to unit test types
export type Is<T extends true> = T
export type Equal<X, Y> = Exclude<X, Y> | Exclude<Y, X> extends never ? true : false

// To test that two types A and B are equal, I do
type Test = Is<Equal<A, B>>

As you see, this works for simple cases, but will fail to check optional properties for example ...
I will be using this library instead :)
Feel free to close this issue once you read it ;)

Thanks, much appreciated!


OpenAPI descriptions needs to be < 3.1.0

OpenAPI version 3.1.0 shall throw a validation error, given that it is not yet supported in OpenAPI.NET library yet.
Support for 3.1 https://github.com/microsoft/OpenAPI.NET/issues/795 will be released in the upcoming 2.0 version.

When using the CLI, we're getting this error:

We should bubble the same error via the JSON RPC server and making it a toast for developer like all other failures / notifications we share with them.

@thewahome Can you please add a screenshot and check the ACs above if implemented?
The second one might be something for a follow-up after GA, right?

Why show a warning instead of failing if we can't generate for OpenAPI 3.1?

It will shown an error and stop the generation, @thewahome please confirm.

Yes. It will show the error  stop loading a new document


Remove Sort at PageRequest

Changes
The goal is to define single responsibility at PageRequest
⚠ I saw the PRs around specification and TCK, thus, if you don't mind. I would break it into small pieces; thus, once it is merged, I will work on the TCK and the spec.

@gavinking @njr-11

I say go ahead and merge it, though I think we should all review all the related javadoc again after the merge.

I had only just started looking at it and already noticed missed places in JavaDoc/examples

@njr-11 @gavinking merged, I will work to fix the TCK.

Uff.  I don't think this should have been merged with compile time errors.  Now nothing can be developed or delivered until this is resolved. @otaviojava @gavinking

Uff. I don't think this should have been merged with compile time errors.

I totally agree. I tried making a comment that I had only even just started reviewing it and was seeing issues.  If it weren't so late in the cucle I'd say we should revert it, but that would only cost more time.
I see that Gavin already fixed one of the compile errors in the API. I'll look into fixing the others in the TCK

Uff. I don't think this should have been merged with compile time errors. Now nothing can be developed or delivered until this is resolved. @otaviojava @gavinking https://github.com/jakartaee/data/actions/runs/8556638994/job/23446947613

It was my mistake, sorry everyone.

Uff. I don't think this should have been merged with compile time errors.

I totally agree. I tried making a comment that I had only even just started reviewing it and was seeing issues. If it weren't so late in the cycle I'd say we should revert it, but that would only cost more time.
I see that Gavin already fixed one of the compile errors in the API. I'll look into fixing the others in the TCK

ops, I saw that you will work on the tck.
I will hold it.


Scaling / HA using Raft / Multiraft

Do any of the dB drivers have any scaling aspects ?
I would like to use genji in the traditional embedded scenario on desktops but also in servers. So for server usage I need a way to make it use Raft.
I saw bitcask and bitraft references in the issues. Looks like a promising candidate but it's not integration into genji yet.
@prologic: happy to know the status.
I think that is a badger Multiraft implementation on GitHub.
Please let me know blockers so I can decide if we should help do contribution

https://github.com/BBVA/raft-badger
Looks promising..

This is a much preferred implementation of a raft framework.
It also supports the new pebble store
https://github.com/lni/dragonboat

To have a scalable system with raft, even multiraft, isn't very straight forward. There is quite a bit to consider. MIT 6.824: Distributed Systems can abridge some of this knowledge for anyone not in the know right now.
What should the FSM do? If it is only doing GET/PUT/DEL operations, the database is only highly available. This wont help with scaling data distribution or read/write scaling. It would only be useful as a locking system, from which coordination can be done in addition to.
Assuming that multiraft is used, one group would still need to maintain coordination of other groups. An entire system schema is necessary for that to work effectively.
The common problems to solve for multiraft are:

how to handle coordination? (the answer is always some form of distributed locking and placement driver)
scaling reads and writes (each group is fully replicated, think write amplification)
handling transactions (sometimes these are partitioned to their own raft groups OR timestamping with 2Phase commits on top of MVCC)


follow FHS and install programs into PREFIX/libexec/softether/vpnxxxx

Dear devs,
with the move to cmake (thanks!) we can now shift around the installation. Unfortunately by now the location of the installed vpn programs is hardcoded into PREFIX/vpnxxxx.
The current pull request moves the 4 vpnxxx directories under PREFIX/libexec/softether, that is by default /usr/local/libexec/softether/vpnbridge etc.
SoftEther VPN Patch Acceptance Policy: 1
PRELIMINARY DECLARATION FOR FUTURE SWITCH TO A NON-GPL LICENSE
I hereby agree in advance that my work will be licensed automatically under the Apache License or a similar BSD/MIT-like open-source license in case the SoftEther VPN Project adopts such a license in future.

Looks good. Thanks alot for your PR. As a token of gratitude, your name will be added to the authors list. Again many thanks and all the best


Shared-tree fuzz tests with history on 0.1.1 fail

Describe the bug
With various minor code changes, shared-tree fuzz tests with history on 0.1.1 fail with errors similar to the following:
Unexpected Errors in Logs:
[
  {
    "eventName": "fluid:telemetry:FluidDataStoreRuntime:SharedTree:EditChunkUploadFailure",
    "category": "error",
    "stack": "Error\n    at ContainerRuntime.<anonymous> (...\\FluidFramework\\packages\\runtime\\container-runtime\\dist\\blobManager.js:54:32)\n    at Object.onceWrapper (events.js:519:28)\n
  at ContainerRuntime.emit (events.js:412:35)\n    at ContainerRuntime.dispose (...\\FluidFramework\\packages\\runtime\\container-runtime\\dist\\containerRuntime.js:767:14)\n    at ContainerContext.dispose (...\\FluidFramework\\packages\\loader\\container-loader\\dist\\containerContext.js:100:22)\n    at Container.close (...\\FluidFramework\\packages\\loader\\container-loader\\dist\\container.js:471:78)\n    at ContainerRuntime.<anonymous> (...\\FluidFramework\\packages\\loader\\container-loader\\dist\\container.js:1295:420)\n    at Summarizer.close (...\\FluidFramework\\packages\\runtime\\container-runtime\\dist\\summarizer.js:172:22)\n    at Summarizer.run (...\\FluidFramework\\packages\\runtime\\container-runtime\\dist\\summarizer.js:157:18)\n    at async Function.timedExecAsync (...\\FluidFramework\\packages\\utils\\telemetry-utils\\dist\\logger.js:334:25)",
    "error": "runtime disposed while blobAttach op in flight",
    "clientType": "noninteractive/summarizer",
    "containerId": "616591c6-acc5-4913-ae6c-ada0d066df8a",
    "docId": "test",
    "containerAttachState": "Attached",
    "containerLifecycleState": "closed",
    "containerConnectionState": "Disconnected",
    "runtimeVersion": "0.60.1000",
    "dataStoreId": "58d72261-09d7-49a6-9bfd-d6c464c94407",
    "isSharedTreeEvent": true,
    "dmInitialSeqNumber": 706,
    "dmLastProcessedSeqNumber": 772,
    "dmLastKnownSeqNumber": 772,
    "containerLoadedFromVersionId": "7f394579-eff7-473f-8c67-a98fbb9fad41",
    "dmLastMsqSeqNumber": 772,
    "dmLastMsqSeqTimestamp":<PHONE_NUMBER>850,
    "dmLastMsqSeqClientId": null,
    "connectionStateDuration": 1.6895000040531158,
    "loaderId": "76b8a2bc-961a-4380-ac6b-2a8cf7a96878",
    "loaderVersion": "0.60.1000"
  }
]

To Reproduce
Steps to reproduce the behavior:

Check out latest main branch (last verified at d0253a3761885482e03a6484b1199b0381e1ede1)
Set "adjustSeed" in SharedTreeFuzzTests.ts to 4
Observe the "SharedTree -> Fuzz tests with local server -> with history summarization -> using only version 0.1.1 -> with seed 0" test fails

@kian-thompson also reported a similar issue when touching the summarization heuristics.
Expected behavior

Test passes
Logs

@Abe27342 @noencke is this still relevant?

@noencke fixed this in #10242. Closing.


Challenger Coin - Fix interface not acting as it should to the potion

The "Drink" option is not lighting up when you can use the potion. Hm.

Ok, this code from Jedi515 gives the path to fix that problem.
https://github.com/Jedi515/sts-jedi/blob/master/src/mod/jedi/patches/OuftOfCombatPotionPatch.java

Fixed.


avoid Ogre::ItemIItemIdentityException in Ogre 1.12 when the same material is used multiple times

Description
The issue can be shown by building rviz with Ogre 1.12 and launching https://github.com/lucasw/gazebo_ros_demos/blob/noetic-devel/rrbot_description/launch/rrbot_rviz.launch then add a second RobotModel to rviz (probably two instance of any RobotModel that uses the _original postfix code path will fail in the same way):
terminate called after throwing an instance of 'Ogre::ItemIdentityException'
  what():  ItemIdentityException: Material with the name package://rrbot_description/meshes/hokuyo.daeMaterial0_original already exists. in ResourceManager::add at ./OgreMain/src/OgreResourceManager.cpp (line 148)
[rviz-3] process has died [pid 9096, exit code -6, cmd /home/lucasw/base_catkin_ws/devel/lib/rviz/rviz -d /home/lucasw/base_catkin_ws/src/ros/gazebo_ros_demos/rrbot_description/launch/rrbot.rviz __name:=rviz __log:=/home/lucasw/.ros/log/affefeb0-d77c-11ec-9be6-b72d65a8c914/rviz-3.log].
log file: /home/lucasw/.ros/log/affefeb0-d77c-11ec-9be6-b72d65a8c914/rviz-3*.log

The solution is similar to material_count used in https://github.com/ros2/rviz/blob/ros2/rviz_default_plugins/src/rviz_default_plugins/robot/robot_link.cpp#L708-L751
Checklist

[ ] If you are addressing rendering issues, please provide:

[ ] Images of both, broken and fixed renderings.
[ ] Source code to reproduce the issue, e.g. a YAML or rosbag file with a MarkerArray msg.

[ ] If you are changing GUI, please include screenshots showing how things looked before and after.
[x] Choose the proper target branch: latest release branch, for non-ABI-breaking changes, future release branch otherwise.
Due to the lack of active maintainers, we cannot provide support for older release branches anymore.
[ ] Did you change how RViz works? Added new functionality? Do not forget to update the tutorials and/or documentation on the ROS wiki
[ ] While waiting for someone to review your request, please consider reviewing another open pull request to support the maintainers of RViz. Refer to the RViz Wiki for reviewing guidelines.

Thanks for pointing out this issue. I think I found a better way to avoid duplicate material names: #1750.


feat(css): update from rem to px on utility classes

Describe pull-request
From support request they are having trouble convering from sdds to tds when adding headline classes since the sdds html font size is different from tegel ones. We decided to change all rems to px to help them update.
Solving issue
In case of GitHub issue add # plus the number of the issue (for example #123) OR if it is Azure then AB# and number of ticket
Fixes: CDEP-2992
How to test

Go to storybook and typography, select headline
Make sure that the headlines have px instead of rem when inspecting the element and that its correct and aligned with design.

Suggested test steps

[x] Browser testing (Chrome, Safari, Firefox)
[x] Design/controls/props is aligned with other components

Screenshots
If applicable, add screenshots to help explain

this kind of changes stuff that was changed in https://github.com/scania-digital-design-system/tegel/pull/445 but it still needs to update the variable there for modal example.


Calendar Entries are not rendered

I've had sucess running the docker container, but any widget that involves calendar entries (calendar.xxxxxx) and/or some icons (like extended wheater forecast) don't get rendered at :5000, I've tried it with the native calendar card, atomic card, and lovelace home feed card, they show perfectly on the dashboard in kyosk mode, but vanish on the screenshot at :5000

Please try setting RENDERING_DELAY to either 2500 or 5000 (2.5s or 5s). It let's the website settle after it's indicated that the website has been rendered for the given time. Sometimes Javascript code is executed with a short delay, which maybe too long for the Docker container. I hope it helps!

@sibbl I have run into the same issue, curiously enough also with the Calendar widget. I have set my RENDERING_DELAY to a whopping 20000ms (20 seconds), but the Calendar widget still only shows the calendar entries about half of the time...
Not sure if the delay timeout actually works, but just from looking at the code, it looks okay. I was briefly considering that maybe the version of Pupeteer has become to old to work with current HA, but then again, my screen is shown correctly half of the time...
Any further ideas?

@sibbl  thanks for merging and releasing the fix so quickly. :-) At least for me, this has resolved the issue.
I think you can close this issue for now.


Image building should respect .dockerignore

In contrast to the docker build command provided by the Docker CLI, the build method on the Images struct does not respect .dockerignore files. This is an issue especially for Rust crate build contexts that often have a target directory of a few GB or more, and are very slow to make it through the tarbell::dir steps of shiplift's build process.
A couple of suggested approaches that could solve the problem:

Respect .dockerignore files by default: this would technically be a breaking change, but would better align with the Docker CLI equivalent command
Add an option to BuildOptions enabling .dockerignore support: this seems surprising if it's not enabled by default, but this change wouldn't be a breaking change, at least
Allow users to provide their own tarballs to a build command: rather than dealing with the file system directly, users could use their own tarball-ing scheme and submit that archive directly to a separate build command (build_from_archive, perhaps?)

If any of those :point_up: sound like good options, I'd be happy to whip up a PR.

You're right. I think 1 sounds like a good default. I don't think there would be many cases to ignore a docker ignore if a docker ignore is present so I'd say you could skip 2.  3 sounds very reasonable but likely a rare case. I don't think I've ever hand built a tar ball and gave that to docker to run.
I believe there's a few off the shelf gitignore parsing crates that you may be able to leverage to managing a docker ignore. I believe it follows the same syntax.

Sounds good, let me tackle option 1 tonight. It won't be quite as simple as dropping in an existing gitignore crate, since .dockerignore syntax is based on golang's filepath.Match, and .gitignore is its own thing, but I need to support that syntax anyway in my own project.
Speaking of option three: my use case is a command-line tool that templates Dockerfiles and spins up containers for users, so it's pretty convenient to be able to generate my own tarball without writing a Dockerfile (and .dockerignore, soon) to the file system. This use case could also be addressed more generally by the ability to provide the contents of a Dockerfile instead of a path to an existing file, like one is able to do with the CLI by providing the contents over STDIN (e.g. echo "FROM rust" | docker build -f - .). I've implemented the former in my fork of shiplift, but wasn't sure if that was worthy of its own feature request or inclusion in shiplift itself.

Was just looking at the docker image build implementation to figure out how it works. Here's the code that handles tarballing and dockerignore, maybe it's a useful reference if anyone wants to implement this: https://github.com/docker/cli/blob/04dad42c3c82733c3c82b1f859829d62d8608128/cli/command/image/build.go#L293

Random semi-related thought, tarballing the entire context dir seems quite wasteful and requires thoughtfulness around where to put the Dockerfile, does anyone know a good reason why it wouldn't be possible to parse the Dockerfile and include just files that are referenced by ADD or COPY commands?


Sting_to_StringBuilder

Coverage remained the same at 95.041% when pulling 6312a3eb25482ec4920e066ffdd258590efd8afd on XenoAmess:Sting_to_StringBuilder into 3d4ed4a8ac63db1e51601ffc31fed44dccbb276c on apache:master.


Request: Fix Turn quest item to trader

There is a strange error that does not allow you to scroll through the transfer list of items
List of mods to reproduce the problem:

SPT
Andrudis QuestManiac Updated

BSG never hooked up the scrollarea to its content.
Will be fixed in 1.7.3.

Its so cool! Tnx man


dev: add LRU cache layer to block fetching client-side

/// Manage LRU caches for block data and their transaction statuses.
/// These are large and take a lot of time to fetch from the database.
/// Storing them in an LRU cache will allow to reduce database accesses
/// when many subsequent requests are related to the same blocks.
pub struct EthBlockDataCacheTask<B: BlockT>(mpsc::Sender<EthBlockDataCacheMessage<B>>);

This code was taken from frontier and is extensively used on their RPC layer. We should investigate adding this on our side and evaluate the performance gain using https://github.com/keep-starknet-strange/gomu-gomu-no-gatling

As @tdelabro pointed me to this issue I can try to work on this for our RPC layer. Would be glad to try out performance testing as well.

Yes sure. Try to draw inspiration from the frontier impl: https://github.com/paritytech/frontier

Hey ! Sorry for not giving news before today, was taken out by a bad cold.
I have been wondering about a detail in the cache implementation which I think is still important to determine. In frontier implementation we can see that they have a max_size parameter which limits the cache total stored size to a given threshold.
However, this implementation has one flaw I think, it only looks at stored values size and not at the allocated size (e.g.: for a value "a", value size: 1 byte, allocated size: 148 bytes). In the context of P2P networks and precise memory management, I was wondering if I should:

Keep the same memory management as frontier, which is imprecise but will allow for more values to be stored.
Change the memory management to allocated memory, allowing for more precise memory predictability.
Have a middle ground where either or both could be selected.

Eager to get your take on that :raised_hands:

I think in the first time you can go with the easier one.
And then if it's not too difficult switch to the second one which is more precise.

@tchataigner has been working on l1-l2 messaging recently.
If someone want to take the work for this issue where he left it, it would be great

repository archived in favor of https://github.com/madara-alliance/madara


5.66: Loading a StartGG set with weird set data results in the program not loading the set

When loading some sets from Sparring Grounds Online from the set selector or the stream queue reader, (most notably Losers Quarters), then the set data loading logic will stop quietly.
The log prints out the following error:
Traceback (most recent call last):
  File "src\Workers.py", line 66, in run
    result = self.fn(*self.args, **self.kwargs)
  File "src\TournamentDataProvider\StartGGDataProvider.py", line 399, in _GetMatchNewApi
    return self.ParseMatchDataNewApi(data.get("data", {}).get("set", {}))
  File "src\TournamentDataProvider\StartGGDataProvider.py", line 613, in ParseMatchDataNewApi
    playerData["seed"] = self.player_seeds[playerData["id"][0]]
KeyError: 19338

Full log:

log.txt
log_error.txt

Relatedly, there's also:
  File "src\TournamentStreamHelper\src\TournamentDataProvider\StartGGDataProvider.py", line 351, in GetMatch
    finalResult.update(result["new"])
                       ~~~~~~^^^^^^^
KeyError: 'new'```

This should be addressed in the newest release with some fixes for how we grab the player's seed and apply it. The second issue does appear to be related to a potential timeout, but it should be properly handled now.


Removed dist directory

#16  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @CatChen and the rest of your teammates on  Graphite


Fix small indendation shift in the entry schema.

There was a small indentation issue in the schema, and now that I've seen that, I cannot unsee...
I'm not entirely sure why git is so incredibly unhappy with this diff. It's just changing whitespace, but the diff algorithm somewhat fails to see that?!

The best way to review this is probably to check the branch out, and then diff with
git diff --ignore-all-space main

which will ignore whitespace changes, and thus show you an empty diff... I tried a couple of different diff algorithms, but I can't get GitHub to show the changes in a reasonable manner.

Turns out that GitHub also has a "hide whitespace" option for reviewing this kind of change

oh... cool. I never clicked the cogwheel in the review view. :D


Pass basic authentication parameters to critical process

I noticed that the basic authentication settings were not passed to the critical process, so I added them here.

Hi,
thanks for the fix. A new release with your fix is now live: https://github.com/m2-boilerplate/Module-Critical-CSS/releases/tag/1.0.11