Uploading Files Guide doesn't mention Thymeleaf dependency

I went over the https://spring.io/guides/gs/uploading-files/ guide and to my surprise got a Whitelabel Error Page rather the expected output.
After googling around and seeing people having similar problems and I figured it out. I had to have Thymeleaf as a dependency. I contributed the answer at http://stackoverflow.com/questions/31134333/spring-uploadthis-application-has-no-explicit-mapping-for-error/
I think if you mention in the Guide that you need to have that dependency then less people would get the Whitelabel Error.

Not sure I'm following the issue. Both the "initial" and the "complete" versions of code have spring-boot-starter-thmyeleaf in both maven and gradle builds. The prose also mentioned Thymeleaf. So where did things go wrong exactly?

I generated a spring boot application.  The upload guide I found by googling for "spring boot file upload". I opened up the guide, added the controller, template and then got an error.
I didn't do the primary flow of opening the guide and checking out the guide project. I guess the other guy on Stackoverflow didn't either.
The name Thymeleaf is mentioned in the tutorial but when you are starting out with Spring boot you don't make the connection instantly that you are missing a dependency. Maybe something to add to the What you'll need section?
When you google for the error for the upload you actually get many results where people have turned to multiple Forums with the same problem. See https://www.google.com/search?q=spring+upload%3AThis+application+has+no+explicit+mapping+for+%2Ferror&oq=spring+upload%3AThis+application+has+no+explicit+mapping+for+%2Ferror

The problem as mentioned on that SO question is that the Spring MVC route is at /upload, but the op is visiting /, for which there is no mapping. When you visit an undefined route, Spring Boot is configured to print out the default error page instead of giving away server specific details.
To make this less confusing, I updated the guide to operate at / instead of /upload.
There is no value in putting Thymeleaf among the things you'll need at the top of the guide, because thymeleaf is NOT something you need before you get underway with the guide. Instead, it's something pulled in by exercising the guide.
Resolved via https://github.com/spring-guides/gs-uploading-files/commit/1f329cb1665bf694418c5569fee29d2836daf2c5


Add fr fr locale

Fixes #65
Changes proposed in this pull request:

ADD fr-FR locale for the components
ADD fr-FRlocale for the documentation

I did run npm run test with no error:
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 167 of 167 SUCCESS (31.531 secs / 29.966 secs) TOTAL: 167 SUCCESS
@wxsms

Coverage remained the same at 95.042% when pulling e9ae1bdd728110fe39646a9755983cbb63b1ad47 on francoismassart:add-fr-fr-locale into 86d91525d5dba36631a575a5fcff2196f782b07a on wxsms:master.


Asynchronization and Optimisation

[x] Async Inventories
[x] Async Plot Generation
[x] Async Plot Abandon
[x] Async Plot Submit
[x] Async Review
[x] Async Plot Schematic Saving
[x] Async FTP upload and download

Ready for merge ✨


Changing labels breaks the recording rules

The top-level labels (.spec.labels) in PrometheusServiceLevel resources get carried over in various recording rules produced by SLOth e.g. slo:sli_error:ratio_rate30d. If you change any of those labels, while keeping other values the same, then the expressions in those rules will start to return more than one series (one with the old label, one with the new label), causing the recording rules to fail until the old label ages out. The error is "vector contains metrics with the same labelset after applying rule labels".
Steps to reproduce:

Install SLOth as a kubernetes operator using the PrometheusServiceLevel CRD
Define a PrometheusServiceLevel with a custom label and apply it to the cluster e.g.

apiVersion: sloth.slok.dev/v1
kind: PrometheusServiceLevel
metadata:
  name: test-slo
spec:
  service: "test"
  labels:
    owner: "qa"
  slos:
    - name: "overall-availability"
      objective: 99.9
      sli:
        events:
          <etc>

Change the label, e.g. set owner: "bob", and apply it to the cluster
Some of the rules stop recording

Kindof a footgun but thought I'd report it. 😄

We ran into this while setting up rules - I wouldn't expect Sloth to cater for it. If it helps anyone else, we just cleared out the old data for the SLO as we didn't need to keep the history.
Assuming the prometheus admin API is enabled:
curl -v -X POST -g '$PROMETHEUS_API_BASE/api/v1/admin/tsdb/delete_series?match[]={sloth_id="<sloth_id>"}'

and then optionally deleting the data on disk with
curl -v -X POST '$PROMETHEUS_API_BASE/api/v1/admin/tsdb/clean_tombstones'

Thanks for the response @Limess :top:, indeed this is more how prometheus works, adding this use case would add lots of complexity on Sloth I don't think is worth it, however, I think that this would be good to have it on the sloth docs, so your answer is very valuable!
I'm closing this in favor of an issue on the docs repo: https://github.com/slok/sloth-website/issues/19
Thanks


rename_crop_BRATS.py isn't working for BraTS2015 dataset

When trying to convert the dataset downloaded from  https://sites.google.com/site/braintumorsegmentation/home/brats2015 there is an assertion error, caused in function load_scans_BRATS15. I expected the code and it seems that the problem is caused by the fact that the images in original dataset are in .mha, but load_scans_BRATS15 expect to read .nii images. This logic works fine for BraTS2017 dataset since they are in .nii format from the beginning. However, 2015 seems to need some fixing.

Thanks for the feedback! The script is now updated to load .mhas, SimpleITK needs to be installed in advance.


Allow client apps to configure max_connections.

Client applications should be able to set the max_connections value (i.e. decide the maximum pool size) for the database connection. The default value for this in Sequel is 4. I've set that default here, which will allow client applications to avoid specifying this setting should they wish.
With this change, setting a pool size of 8 from example the RRR app would look like:
configure do |config|
  config.database_url = container.settings.database_url
  config.max_connections = 8
  config.global_extensions = [:postgres]
  config.connection_extensions = %i[error_sql pg_array pg_json pg_enum]
end

I've confirmed this increases the number of connections to the database locally.

@andrewcroome Merging this now since it has been fine in prod with RRR


OUTER JOIN implementation is incomplete.

if(typeof exports === 'object') {
	var assert = require("assert");
	var alasql = require('..');
  var _ = require('lodash');
} else {
	__dirname = '.';
};

describe('Test OUTER JOIN on more than 2 tables', function() {

  it('1. Test OUTER JOIN on more than 2 tables', function(done) {
	var data = {
      COLORS: [{id:1,name:'red'},{id:2,name:'blue'},{id:3,name:'orange'}],
      FRUITS:[{id:1,name:'apple'},{id:2,name:'grape'},{id:3,name:'orange'}],
	  MASCOTS:[{id:1,name:'redsox'},{id:2,name:'whitesox'},{id:3,name:'orange'}]
	};

	res = alasql('select t0.name t0n ,t1.name t1n, t2.name t2n from ? t0 outer join ? t1 on t1.name = t0.name outer join ? t2 on t2.name = t0.name or t2.name = t1.name',[data.COLORS,data.FRUITS, data.MASCOTS]);
	assert.deepEqual(res.data, [
	{t0n: 'red', t1n: undefined, t2n: undefined},
	{t0n: 'blue', t1n: undefined, t2n: undefined},
	{t0n: 'orange', t1n: 'orange', t2n: 'orange'},
	{t0n: undefined, t1n: 'apple', t2n: undefined},
	{t0n: undefined, t1n: 'grape', t2n: undefined},
	{t0n: undefined, t1n: undefined, t2n: 'redsox'},
	{t0n: undefined, t1n: undefined, t2n: 'whitesox'}
	]);
    done();
  });
});

The outer join implementation should include all rows that match the predicate, and all rows from both the right and left which do not match the predicate. While evaluating not matched rows, the join code seems to backtrack up one join level, then include rows that don't match, but with garbage data from earlier in the join stack.
I think maybe if you add a var query.matched, and track what rows are matched (or not matched) during the entire join, and then at the end go back and include all non-matched rows, it would fix the issue. Another solution might be to just force evaluation of a NULL row for the left side of all outer joins if the end of the loop is reached and all rows on the right side have not been matched.
Not sure how best to solve -- any thoughts?

Current implementation gives:
[ { t0n: 'red', t1n: undefined, t2n: undefined },
  { t0n: 'red', t1n: undefined, t2n: 'redsox' },
  { t0n: 'red', t1n: undefined, t2n: 'whitesox' },
  { t0n: 'red', t1n: undefined, t2n: 'orange' },
  { t0n: 'blue', t1n: undefined, t2n: undefined },
  { t0n: 'blue', t1n: undefined, t2n: 'redsox' },
  { t0n: 'blue', t1n: undefined, t2n: 'whitesox' },
  { t0n: 'blue', t1n: undefined, t2n: 'orange' },
  { t0n: 'orange', t1n: 'orange', t2n: 'orange' },
  { t0n: 'orange', t1n: undefined, t2n: 'redsox' },
  { t0n: 'orange', t1n: undefined, t2n: 'whitesox' },
  { t0n: undefined, t1n: 'apple', t2n: undefined },
  { t0n: undefined, t1n: 'grape', t2n: undefined } ]

I will check.

The current algorithm works on the similar way you described:

The outer join implementation should include all rows that match the predicate, and all rows from both the right and left which do not match the predicate. While evaluating not matched rows, the join code seems to backtrack up one join level, then include rows that don't match, but with garbage data from earlier in the join stack.

I will check the output of other SQL realizations.

I think the issue is in this block: https://github.com/agershun/alasql/blob/develop/src/39dojoin.js#L145
I think this works for aa single join, but once there are more than one join, it starts emitting garbage because it only clears the scope for the middle level. Nested loop join gets complex in this case. Either you'd have to fully materialize each join before evaluating the next, or you would have to track whether every row of every source has been matched. If not matched, it would be evaluated with any prior table aliases in the scope set to null. This would handle cases where your output should have {t0n: undefined, t1n: 'purple', t2n: 'purple'} and {t0n: undefined, t1n: undefined, t2n: 'purple'}.
PostgreSQL won't even do an outer join without a sargable predicate, because it only does merge joins and hash joins for outer joins. I will grab the output of SQL server today and post it here. I don't think mysql does full outer joins at all, which is horrible to try and work around.

amending the previous example to add rows existing in both t1 and t2 but not t0:
if(typeof exports === 'object') {
    var assert = require("assert");
    var alasql = require('..');
  var _ = require('lodash');
} else {
    __dirname = '.';
};

describe('Test OUTER JOIN on more than 2 tables', function() {

  it('1. Test OUTER JOIN on more than 2 tables', function(done) {
    var data = {
      COLORS: [{id:1,name:'red'},{id:2,name:'blue'},{id:3,name:'orange'}],
      FRUITS:[{id:1,name:'apple'},{id:2,name:'grape'},{id:3,name:'orange'},{id:4,name:'peaches'}],
      MASCOTS:[{id:1,name:'redsox'},{id:2,name:'whitesox'},{id:3,name:'orange'},{id:4,name:'peaches'}]
    };

    res = alasql('select t0.name t0n ,t1.name t1n, t2.name t2n from ? t0 outer join ? t1 on t1.name = t0.name outer join ? t2 on t2.name = t0.name or t2.name = t1.name',[data.COLORS,data.FRUITS, data.MASCOTS]);
    assert.deepEqual(res.data, [
    {t0n: 'red', t1n: undefined, t2n: undefined},
    {t0n: 'blue', t1n: undefined, t2n: undefined},
    {t0n: 'orange', t1n: 'orange', t2n: 'orange'},
    {t0n: undefined, t1n: 'apple', t2n: undefined},
    {t0n: undefined, t1n: 'grape', t2n: undefined},
    {t0n: undefined, t1n: 'peaches', t2n: 'peaches'},
    {t0n: undefined, t1n: undefined, t2n: 'redsox'},
    {t0n: undefined, t1n: undefined, t2n: 'whitesox'}
    ]);
    done();
  });
});

Gives:
[
  {"t0n":"red","t1n":undefined,"t2n":undefined},
  {"t0n":"red","t1n":undefined,"t2n":"redsox"},
  {"t0n":"red","t1n":undefined,"t2n":"whitesox"},
  {"t0n":"red","t1n":undefined,"t2n":"orange"},
  {"t0n":"red","t1n":undefined,"t2n":"peaches"},
  {"t0n":"blue","t1n":undefined,"t2n":undefined},
  {"t0n":"blue","t1n":undefined,"t2n":"redsox"},
  {"t0n":"blue","t1n":undefined,"t2n":"whitesox"},
  {"t0n":"blue","t1n":undefined,"t2n":"orange"},
  {"t0n":"blue","t1n":undefined,"t2n":"peaches"},
  {"t0n":"orange","t1n":"orange","t2n":"orange"},
  {"t0n":"orange","t1n":undefined,"t2n":"redsox"},
  {"t0n":"orange","t1n":undefined,"t2n":"whitesox"},
  {"t0n":"orange","t1n":undefined,"t2n":"peaches"},
  {"t0n":undefined,"t1n":"apple","t2n":undefined},
  {"t0n":undefined,"t1n":"grape","t2n":undefined},
  {"t0n":undefined,"t1n":"peaches","t2n":"peaches"}
]```

Test script for SQL server:
create table colors (id int, name varchar(255))
create table fruits (id int, name varchar(255))
create table mascots (id int, name varchar(255))
go
insert into colors(id, name) values
(1, 'red'),
(2, 'blue'),
(3, 'orange')
insert into fruits(id, name) values
(1, 'apple'),
(2, 'grape'),
(3, 'orange'),
(4, 'peaches')
insert into mascots(id, name) values
(1, 'redsox'),
(2, 'whitesox'),
(3, 'orange'),
(4, 'peaches')
select t0.name t0n, t1.name t1n, t2.name t2n
from colors t0
full outer join fruits t1 on t1.name = t0.name
full outer join mascots t2 on t2.name = t1.name or t2.name = t0.name

Returns:

t0n
t1n
t2n

red
NULL
NULL

blue
NULL
NULL

orange
orange
orange

NULL
apple
NULL

NULL
grape
NULL

NULL
peaches
peaches

NULL
NULL
redsox

NULL
NULL
whitesox

PostgreSQL test script:
drop table if exists colors;
drop table if exists fruits;
drop table if exists mascots;
create table colors (id int, name varchar(255));
create table fruits (id int, name varchar(255));
create table mascots (id int, name varchar(255));
insert into colors(id, name) values
(1, 'red'),
(2, 'blue'),
(3, 'orange');
insert into fruits(id, name) values
(1, 'apple'),
(2, 'grape'),
(3, 'orange'),
(4, 'peaches');
insert into mascots(id, name) values
(1, 'redsox'),
(2, 'whitesox'),
(3, 'orange'),
(4, 'peaches');
with t1 as (select COALESCE(t0.name, t1.name) AS name, t0.name as t0n, t0.id as t0id, t1.name as t1n, t1.id as t1id FROM colors t0 full outer join fruits t1 on t1.name = t0.name)
select t0n, t1n, t2.name as t2n
from t1
full outer join mascots t2 on t2.name = t1.name
order by t0id, t1id, t2.id

Like I said, Postgresql doesn't support full outer join with a predicate like  OR , so I use a cte to materialize the first join.
Returns:

t0n
t1n
t2n

red
NULL
NULL

blue
NULL
NULL

orange
orange
orange

NULL
apple
NULL

NULL
grape
NULL

NULL
peaches
peaches

NULL
NULL
redsox

NULL
NULL
whitesox

Using the same exact query as postgres above (minus "full") in alasql gives the correct result.
[
  {"t0n":"red","t1n":undefined,"t2n":undefined},
  {"t0n":"blue","t1n":undefined,"t2n":undefined},
  {"t0n":"orange","t1n":"orange","t2n":"orange"},
  {"t0n":undefined,"t1n":"apple","t2n":undefined},
  {"t0n":undefined,"t1n":"grape","t2n":undefined},
  {"t0n":undefined,"t1n":"peaches","t2n":"peaches"},
  {"t0n":undefined,"t1n":undefined,"t2n":"redsox"},
  {"t0n":undefined,"t1n":undefined,"t2n":"whitesox"}
]

This basically verifies that OUTER JOIN between 2 tables works as expected. It is only when more than 2 tables are being joined that alasql misbehaves.

I just found a bug in parser, and now we can use FULL keyword in queries (in combination FULL OUTER JOIN).
I will check these queries on January 11, 2016 in the office with MS SQL Server, to be sure.
Thank you!

@agershun Great!
Very cool library you have going here, it is a really powerful concept and I hope you keep driving towards a 1.0 :smile:

Oracle also returns 8 lines (unfortunately I can not figure out which lines). Below is the test script:
create table colors (id int, name varchar(255));
create table fruits (id int, name varchar(255));
create table mascots (id int, name varchar(255));

insert into colors(id, name) values (1, 'red');
insert into colors(id, name) values (2, 'blue');
insert into colors(id, name) values (3, 'orange');

insert into fruits(id, name) values (1, 'apple');
insert into fruits(id, name) values (2, 'grape');
insert into fruits(id, name) values (3, 'orange');
insert into fruits(id, name) values (4, 'peaches');

insert into mascots(id, name) values (1, 'redsox');
insert into mascots(id, name) values (2, 'whitesox');
insert into mascots(id, name) values (3, 'orange');
insert into mascots(id, name) values (4, 'peaches');

select t0.name t0n, t1.name t1n, t2.name t2n
from colors t0
full outer join fruits t1 on t1.name = t0.name
full outer join mascots t2 on t2.name = t1.name or t2.name = t0.name;

I tried to use thisOracle Terminal  tool.

This join-procedure was the hardest part of AlaSQL...

I love this - im gone for few hours and all THIS happens...

To be honest, I'm pretty sure multiple joins cannot be handled safely with this approach. The outer join operations (left, right, full) are neither associative nor commutative, so it's not correct to evaluate them recursively like this. You could probably hack together an algo that could do it, but it would have to maintain so much state information that the performance would suffer, and it would be hard as hell to maintain.
What needs to happen here is that multiple joins need to be processed in a tree.
So if I have something like:
Select * from a
outer natural join b
outer natural join c

You would end up with a plan like:
     ______
     |join|
     ------
    /      \
_____    ______
| c |    |join|
-----    ------
        /      \
     _____    _____
     | b |    | a |
     -----    -----

Logically, the join between a and b would be evaluated, and then the result would be joined with c. The join between a and b does not need to be materialized completely before beginning to evaluate the join with c. While evaluating c, the join process would need to consume rows from the a|b join. Those rows can be produced sort of as a coroutine.
Basically, what you need is a query planner to determine the order of evaluation of the joins (with inner joins you can evaluate them in whatever order you wish, with outer joins they are order-dependent). There are a ton of cases also where it would be much faster to do a merge or hash join instead of a nested loop join. This is less critical when everything is in memory, but for large relations it can still have a huge impact on performance.
Implement each join operation as an operator that holds internal state, takes a left source, a right source, and a predicate. The interface for each operator would just be a fetch() method that evaluates the inputs and returns the next row, or false when completed.
Start by implementing separate operators for nested loop join types. The query planner can simply assemble the join in the order it is written, taking into account the references in the predicates.
Once that's all working, you can add sort operators, merge or hash join operators, and cost based query planning if you really want to push performance.
Sorry to be dropping bombs :(
Happy to chat more any time you like, I'm on freenode, nick is zeroedin-bill.

There are a ton of cases also where it would be much faster to do a merge or hash join instead of a nested loop join.

:+1:

This complexity  is the reason why OUTER JOIN realized only in SQL Server and Oracle (and not in MySQL, Postgres, and SQLite). At the same time this is a reason, why we could not find much tests on multiple OUTER joins (nor RIGHT, SEMI or ANTI joins). Will work on it. Thank you!

Postgres does support full outer join, just not with a non sargable predicate. Meaning, the ON clause has to work with a hash or merge join.
If you look at the SQL server query plan, you can see that the planner has actually transformed the full outer joins into a combination of left outer joins and left anti semi joins, all nested loops. With the tiny dataset in the test, it is using all nested loop joins. If you run that same query with a lot of data (>10000), you would see it start to use merge and hash joins instead, but probably in the same structure.
Check out the join tests for postgres, it is a good suite, and has some more interesting tests than sqlite: https://github.com/postgres/postgres/tree/master/src/test/regress

https://github.com/postgres/postgres/tree/master/src/test/regress

Im looking into how they verify the tests so we can reuse them.
For others who like a little overview of the world of JOINs: http://blog.codinghorror.com/a-visual-explanation-of-sql-joins/

Also have a look at the executor implementation for some interesting reading.
https://github.com/postgres/postgres/tree/master/src/backend/executor

@mathiasrw About JOIN diagrams: Unfortunately, I could not find any diagram about how should look like JOIN on JOIN scheme...

JOIN on JOIN scheme

Like several joins in a row? Isnt it like a plus or minus - you can only do two at the time and then build on the result?

@mathiasrw outer join is not associative or commutative so yeah you can pretty much only do 2 at once. There are some papers on map/reduce algos to do it, but that stuff is over my head.

I temporarily comment the assert line in the test (to prevent TrevisCI annoying messages), but this problem is still in the focus.
I want to prepare set of tests with SQL Server on multiple JOINs and some explanation Vienna diagrams.
@mathiasrw We can add this limitation to the README.md file.

@agershun That sounds like a good first step - be careful of violating the SQL Server EULA (reverse engineering) in the process.
Using PostgreSQL as a basis for comparison or modelling on most behaviors is probably better than SQL Server just for legal purposes.

I temporarily comment the assert line in the test (to prevent TrevisCI annoying messages), but this problem is still in the focus.

If it.(... is changed to it.skip(... it will jump the test and we can keep an eye on how many tests are skipped (its displayed in result)

@mathiasrw We can add this limitation to the README.md file.

Check !

@mathiasrw I will use this it.skip()notation.

 :)
See this:

Join On Join page
test407.js

Good news: second INNER and LEFT joins are OK.
Bad news: second RIGHT and OUTER joins are wrong :(

WOW !
That is a LOT of good examples and a very good test.
Could you do the right join as a left join where you swap the order of the tables?

@mathiasrw
Think of right joins like the - operator.
1 + 2 == 2 + 1
1 - 2 =/= 2 - 1
You could in fact switch it and make it a left join, but you'd also have to rearrange any other joins in the query. Most query plan optimizers do these sorts of rearrangements, but it does require some pretty robust logic and architecture to accomplish.


[FLINK-31772] Adjusting Kinesis Ratelimiting strategy to fix performance regression

Purpose of the change
Addressing performance regression observed in kinesis sink in FLINK-31772.
Verifying this change
Please make sure both new and modified tests in this PR follows the conventions defined in our code quality guide: https://flink.apache.org/contributing/code-style-and-quality-common.html#testing
This change is a trivial rework / code cleanup without any test coverage.
Significant changes
(Please check any boxes [x] if the answer is "yes". You can first publish the PR and check them afterwards, for convenience.)

[ ] Dependencies have been added or upgraded
[ ] Public API has been changed (Public API is any class annotated with @Public(Evolving))
[ ] Serializers have been changed
[ ] New feature has been introduced

If yes, how is this documented? (not applicable / docs / JavaDocs / not documented)

Should we also update the PR summary?

Note that performance improvements have been put on the JIRA as comments:
https://issues.apache.org/jira/browse/FLINK-31772

@dannycranmer


FilesUWP version 0.23

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?

Microsoft Reviewers: Open in CodeFlow

Closing as the PR is a duplicate of https://github.com/microsoft/winget-pkgs/pull/5689.


firefox-bin: 79.0 -> 80.0

Motivation for this change
https://www.mozilla.org/en-US/firefox/80.0/releasenotes/
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[x] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[x] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

This is needed to address several vulnerabilites:
https://www.mozilla.org/en-US/security/advisories/mfsa2020-36/

Result of nixpkgs-review pr 96279 1

4 packages built:
- dropbox
- dropbox-cli
- firefox-bin-unwrapped
- mate.caja-dropbox


git clone command

In the instructions at the bottom of the README, shouldn't the proper clone command be:
git clone https://github.com/JohnSundell/Playground.git
The command you show fails.

@rpural The command in the README uses the SSH-based cloning URL, which works perfectly if you have SSH keys setup with GitHub. I agree though that it's probably better to show the HTTPS-based one since not everyone uses SSH. Do you want to submit a PR that fixes this issue?

Fixed it


CouchDB-Container loses connection when saving data very fast

Description
I am saving the output of a simulated CAN interface with a node js system to a CouchDB database in a docker container. This are very small data sets which are read from the interface very fast. I registered an EventListener which saves every message to the couchDB using nano(library). After aproximately ~150 messages which get saved successfully to the db (this takes about 1 second) the connection crashes and is refused by the database (also its not possible to reach the db via browser from outside the container after this point).
When logging into the docker container via bash everything seems to be working fine --> container running, port 5984 exposed, couchDB on <IP_ADDRESS>:5984 reachable via curl. If I restart the container everything is working fine again, up until I run the CAN dump again.
So does anybody maybe know if this is an issue with the docker container or maybe with too many couchDB connections/saves?
Example CAN message --> 1 dataset:
{ ts_sec:<PHONE_NUMBER>,   ts_usec: 113638,   id: 319,   data: <Buffer 00 00 00 05 00 00 00 1f> }
Error message from DB after the saves:
{ Error: connect ECONNREFUSED <IP_ADDRESS>:5984     at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1104:14)   name: 'Error',   scope: 'socket',   errid: 'request',   errno: 'ECONNREFUSED',   code: 'ECONNREFUSED',   syscall: 'connect',   address: '<IP_ADDRESS>',   port: 5984,   description: 'connect ECONNREFUSED <IP_ADDRESS>:5984',   stacktrace:    [ 'Error: connect ECONNREFUSED <IP_ADDRESS>:5984',      '    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1104:14)' ] }
Steps to Reproduce
Install CouchDB docker container
Save about 150 datasets to db using nano and node js in ~1 sec or faster
Your Environment
CouchDB: https://hub.docker.com/_/couchdb - image from the time of this post
Browser name and version: Chrome
Operating System and version: Official Kali Linux 19.1 virtualboxVM
Thank you very much and it would be great if somebody has an idea how I could solve this problem besides a hack to save the data slower to the db...

We need more logfiles from CouchDB to know what happened here. It's entirely possible that you overloaded what your container is capable of providing.
Have you considered reading from the interface fast, then doing a bulk doc operation regularly instead? https://docs.couchdb.org/en/stable/api/database/bulk-api.html#db-bulk-docs

Thanks for looking into this :) I found a workaround in the meantime --> I use the js library bottleneck now to throttle the accesstimes for the container/db. With a concurrency count of 10 and a minimal time bottleneck value of 10 (I think ms) it is working fine. Needs some more time to save the data, but that is ok.
Thanks anyway :)


[cluster health] Condense cmd output for clarity

Output after this patch:
ID:         1m2q4ujh9s1tmmtmi5u641rcbbqrdskp
Name:       osde2e-229p0
Provider:   AWS
AZs:        [us-east-1a]
Nodes
  Expected: 9
  Running:  10

you know, you could do that in a yaml object so it's parsable

you know, you could do that in a yaml object so it's parsable

Yeah and I'm sure this will be done properly at some point once the list of checks grows. For now I wanted it fast, so the thing is releasable and we can switch to using it asap.

/hold
just because we need it quickly doesn't mean that it cannot be done properly.
@georgettica can you work with @mmazur to get  a proper implementation of this?

It can be done properly if somebody has time to do it before end of week. Otherwise it's more important to do it quickly.

/lgtm

/unhold


Current Leadership Page

@aharris88
Let's simplify our leadership page-especially since so many leaders are volunteers and not staff...it's hard to know when to stop recognizing volunteers...know what I mean?
Let's change page title "Leadership Team" to "Meet the Pastors"
Please use the pic of Helton family you have on "About Us" page and Caption:
Lead Pastor Ben Helton, wife Kristen, children Karis, Rachel, & Jaxson
I've emailed Coleman family to ask for current family pic.
We'll caption this pic Pastor Coleman, wife Rachael, children...(I'll help you order and spell kids' names after we get the pic)
On "About Us" page, please remove Helton family pic and I'll find something else for that page.
You rock!

I'll do this after #100


Hide/Show items in the config page according to 'capabilities' of the watch

I would like to hide color options if the watch of the user is aplite.
I want to hide 'square' options or display cursom options if the watch is 'chalk'
With this commit, we will be able to make such customization in the custom js but it would be cool to describe this behaviour in the config.json
[
{
  "type": "section",
  "items": [
    { "type": "heading", "defaultValue": "Enamel Demo" },
    {
      "type": "toggle",
      "id": "enableBackground",
      "appKey": "enableBackground",
      "label": "Enable Background",
      "capabilities" : ["aplite"] // this item will be displayed only for aplite
    },
    {
      "type": "color",
      "id": "background",
      "appKey": "background",
      "defaultValue": "FF0000",
      "label": "Background Color",
      "sunlight": true,
      "capabilities" : ["color"] // this item will be displayed only for watch with color
    },
    {
      "type": "select",
      "id": "font_size",
      "appKey": "font_size",
      "defaultValue": "1",
      "label": "Text Size",
      "capabilities" : ["bw", "rect"] // this item will be displayed only for rectangular watch without color
      "options": [
        {
          "label": "Small",
          "value": 0
        },
        {
          "label": "Normal",
          "value": 1
        },
        {
          "label": "Large",
          "value": 2
        }
      ]
    },
...

The list of capabilities would be :

color
bw
aplite/basalt/chalk
round
rect
health
...

It's a neat idea but obtaining information other than what is directly returned from Pebble.getActiveWatchInfo() would mean that the capabilities would need to be calculated, which would become a pain to maintain each time Pebble comes up with a new feature. Ideally the Pebble global would have a method for obtaining the capabilities that Clay can use.

ok so maybe just a filter based on the watch model would be a good start :p

The multiple config file feature fixes the problem for me

I still think that a capabilities property is a good idea. It keeps with the whole "it just works" idea.


Spike: Update account creation system to support isolated networking.

User Story
As an MP engineer
I want to be able to provision accounts with isolated networking through a standard process
So that new accounts that use isolated networking have the same/similar shape as the existing member accounts.
Value / Purpose
Standardised account creation mechanism means that we can provision/update all of the member accounts in the same way without thinking about the differences between them. It limits a human error when it is done through code/automation, rather than manual code changes to the environment after the member account creation with the existing processes.
Useful Contacts
No response
Additional Information
Isolated networking accounts will not require:

Unique CIDR address ranges
Connectivity to Modernisation Platform Transit Gateway

Additionally they will require:

Consideration as to how we populate the environments/$application.json to supply an isolated subnet set
How this json value is picked up by our automation
What files we populate into modernisation-platform-environments/terraform/environments/$application.json to create infrastructure there

Proposal / Unknowns
Definition of Done

[x] Existing new account automation reviewed
[x] Propose changes needed to create new account with isolated networking
[ ] Proposal refined into issues
[ ]  Document the potential risks and approach to the change

At present we've created data-platform-compute accounts by following our existing documentation, but only to the end of the New Environment Files steps.

https://github.com/ministryofjustice/modernisation-platform/pull/6493


Seeder for easier demo and frontend testing

Fixes #229
Step 1 update db with db_construct
Step 2 cd backend
Step 3 python -m seeder uid
Make sure the User with uid is already in db
No quotes needed around uid, will insert 5 courses where you are teacher and 5 where you are student into the db, with like 5-30 other students with each some submissions.

Also, remove the session.close from except. Because finally will always execute so if an error occurs you'll try session.close twice


typeof(1_64) returns Int32

p typeof(1_64) # => Int32
p typeof(1_64) == Int64 # => false
p typeof(1_64) == Int32 # => true

I'm not sure if it occurs by optimaztion or it can produce any actual bug in production, but it's really abnormal.
$ crystal -v
Crystal 0.24.2 [4f9ed8d03] (2018-03-08)

LLVM: 4.0.0
$ uname -a
Linux localhost 4.15.17-200.fc26.x86_64 #1 SMP Thu Apr 12 18:28:26 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

self compiled crystal :
Using compiled compiler at `.build/crystal'
Crystal 0.24.2+1 [ef29deb29] (2018-06-20)

LLVM: 4.0.1
Default target: x86_64-unknown-linux-gnu

Bug still exists.
Updated to newest
$ sudo dnf update
$ crystal -v
Crystal 0.25.0 [7fb783f7a] (2018-06-11)

LLVM: 4.0.0
Default target: x86_64-unknown-linux-gnu

Bug still exists.
------------- and more --------------
1_u8, 1_u16, ... 1_u128 are correct, but 1_8, ... 1_128 are always Int32.

1_64 is not an Int64 literal; it's the number 164. Underscores are used to optionally separate place value, as in 1,000,000 can be represented as 1_000_000 for better visual grepping.
For other literal types, you write iN, as in 1i64, etc:
p typeof(1i64) # => Int64
p typeof(1i64) == Int64 # => true
p typeof(1i64) == Int32 # => false

https://carc.in/#/r/4f6v
Some people may chose to stylize with _ to separate the literal type descriptor.


volar does not autocomplete

hello i just use volar with script setup sfc. it is very good and works well with vue. but one thing that does not work is the auto complete of quote, parentheses, bracket, etc.
what i mean is when i type { it supposed to auto close the bracket so the result will automatically be {} but right now i need to do it manually which is very annoying. is there anyway to fix this?
thankyou.

It's supported, try run Preferences: Open Settings (JSON), Preferences: Open Workspace Settings (JSON) commands and clear all settings. If the problem persists, try disable all other extensions.


[C++][CI] example-cpp-tutorial fails because of deprecated APIs

Describe the bug, including details regarding any error messages, version, and platform.
The example-cpp-tutorial Crossbow night build now fails because it's using some deprecated APIs.
https://github.com/ursacomputing/crossbow/actions/runs/11944262092/job/33294899404
It should certainly be easy to migrate the tested example(s) to non-deprecated APIs, and is therefore a good task for someone wanting to start on Arrow C++ development (or even perhaps general C++ development).
Component(s)
C++, Continuous Integration

@raulcd @assignUser

hey @pitrou I am new to arrow. Will try to check this issue out. Look forward to learning about this project and getting a fix in for this.

@malinjawi So, if you look at the link I gave you above, you can easily reproduce the error locally if you have the Docker client installed, and run these commands:
$ cd arrow/cpp/examples/tutorial_examples
$ docker compose run --rm tutorial

@malinjawi btw this was the PR that introduced the change that has to be updated on the tutorial examples:

https://github.com/apache/arrow/pull/44785

Oh, sorry.
I should have updated the file too...

Issue resolved by pull request 44807
https://github.com/apache/arrow/pull/44807


used the metadata service to determine NODE; make sure we are in clus…

Simplify the drain script / only attempt to drain if we are in the k8s cluster
@jmcarp

In theory, we want this release to work on non-AWS clouds, so I think we should avoid AWS-specific logic--there's an exception in https://github.com/18F/kubernetes-release/blob/master/jobs/kubernetes-minion/templates/pre-start.erb, but the goal is to deprecate that script when possible. WDYT?
Also, why would a node that's running the minion drain script not be in the cluster?

I saw it happen today when testing updating stemcells, cluster got into a weird state drain scripts started blowing up -- check concourse for details.

Got it, checking if the node is part of the cluster sounds reasonable if it helps not die when the cluster is in a weird state.

I'll open another PR with a different patch that doesn't rely on the metadata service (although which cloud providers don't support that at this point?) that adds some safety checks to the drain scripts once I can pin-point what caused it to fail when changing stemcell versions

Do all providers use the same metadata interface? I don't have a gcp account to mess with, but it looks like their urls are a little different, like http://metadata.google.internal/computeMetadata/v1/instance/attributes/hostname.


Error applying gradient for some algorithms

OS - Ubuntu 19.4

print(tfp.version)
0.9.0-dev20191113
print(tf.version)
2.1.0-dev20191111

In pg, ac a2c algorithms, I get the error:
in converted code:
/home/konstantin/IdeaProjects/RLs/Algorithms/tf2algos/a2c.py:158 train  *
self.optimizer_actor.apply_gradients(
/home/konstantin/anaconda3/envs/tsfl2/lib/python3.7/site-packages/tensorflow_core/python/keras/optimizer_v2/optimizer_v2.py:434 apply_gradients
self._create_slots(var_list)
/home/konstantin/anaconda3/envs/tsfl2/lib/python3.7/site-packages/tensorflow_core/python/keras/optimizer_v2/adam.py:149 _create_slots
self.add_slot(var, 'm')
/home/konstantin/anaconda3/envs/tsfl2/lib/python3.7/site-packages/tensorflow_core/python/keras/optimizer_v2/optimizer_v2.py:574 add_slot
var_key = _var_key(var)
/home/konstantin/anaconda3/envs/tsfl2/lib/python3.7/site-packages/tensorflow_core/python/keras/optimizer_v2/optimizer_v2.py:1065 _var_key
if var._in_graph_mode:
AttributeError: 'ListWrapper' object has no attribute '_in_graph_mode'

But with the algorithms dqn, ddqn, dddqn, dpg... everything works.
After writing this code, the error disappears:
self.optimizer_actor.apply_gradients(
zip(actor_grads, self.actor_net.trainable_variables + self.log_std)
)

Hi,
I haven't run those algorithms in python3.7, tf 2.1.0 and on ubuntu 19.04, not sure if it is related to these running environments.
BTW, could you tell me the training environment you used, so that I can see if I can reproduce the problem.
And also, I am not sure if you have used my latest submitted code.
Now in ac, a2c, I have written this
self.optimizer_actor.apply_gradients(
                zip(actor_grads, self.actor_net.trainable_variables + [self.log_std])
            )

It looks very similar to how you solved the problem, you can try again, or submit a PR.
thx.

OK!. I will create a new branch, make changes to it and send you a Pull Request tonight.
I used the BipedalWalker-v2 Box2D Gym environment

PG created.

Thank you very much for you PR!
Feel free to reopen this issue if still any problem about this!


Extension parameter don't work.

Bug Report
For more information, see the CONTRIBUTING guide.
Prerequisites

[ x] Can you reproduce the problem in a MWE?
[ x] Are you running the latest version?
[ x] Did you perform a search in the issues?

Environment Details and Version
[Package Version, Blazor Version, OS, Browser,...]
Description
Parameters given to piral extensions are not working.
I've reproduced the bug here:
https://github.com/luckyluggi/piral_extensions_and_aimages
Steps to Reproduce

[First Step]
[next step...]

Expected behavior
[What you expected to happen]
Actual behavior
[What actually happened]
Possible Origin / Solution
[Optionally, share your idea to fix the issue]

The origin of the bug is the blazor serialization. When going from .NET to JS blazor implicitly does a PascalCase to camelCase conversion, however, in this cycle we did not change the deserialization option. Therefore, the JSON deserializer ignores the lowercase value and does not populate Value for the given example.
This is fixed (and more options, e.g., incl. fields, ignoring read-only properties etc.) are also included making the conversion better / more reliable than beforehand.


Add EqualsOnAtomicClassProcessor (SonarSource rule 2204)

This PR adds a processor for the rule ".equals()" should not be used to test the values of "Atomic" classes.
Transformation:
 // Test for rule s2204
 // Tests from https://github.com/SonarSource/sonar-java/blob/master/java-checks-test-sources/src/main/java/checks/EqualsOnAtomicClassCheck.java

 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicLong;

 class EqualsOnAtomicClass {

 	void method() {
 		boolean isEqual = false;

 		AtomicBoolean abool1 = new AtomicBoolean(true);
 		AtomicBoolean abool2 = new AtomicBoolean(true);
-		isEqual = abool1.equals(abool2); // Noncompliant {{Use ".get()" to retrieve the value and compare it instead.}}
+		isEqual = abool1.get() == abool2.get();

 		AtomicInteger aInt1 = new AtomicInteger(0);
 		AtomicInteger aInt2 = new AtomicInteger(0);
-		isEqual = aInt1.equals(aInt2); // Noncompliant
+		isEqual = aInt1.get() == aInt2.get();

 		AtomicLong aLong1 = new AtomicLong(0);
 		AtomicLong aLong2 = new AtomicLong(0);
-		isEqual = aLong1.equals(aLong2); // Noncompliant
+		isEqual = aLong1.get() == aLong2.get();

 		Integer int1 = new Integer(0);
 		Integer int2 = new Integer(0);
 		isEqual = int1.equals(int2);
 	}

 }

Hi, I think this is one of the rule you gave me to work on 2 days ago :) .

It looks fine so I'll merge it :) .

Sorry Henry, I messed it up. I'm closing this PR.

No problem :) .

Henry, I am so so sorry for messing up. I made a confusion in my list. Maybe it's better to revert the merge and then you submit a PR covering this rule. I don't want that you lose work because of a mistake I did.

Well , I don't mind much really . Don't let it bother you :) . There are still many rules left to be done and I can take 2 more for my thesis .


Cannot overlay BBoxes and Classes on the final prediction (inference)

❓ Questions and Help
I ran the demo.py on pre-trained mask rcnn using weights form here
"e2e_mask_rcnn_R_101_FPN_1x.yaml" on this image

The predicted output of inference on this is:

How do I visualize the BBoxes and class information over this prediction?
I used the exact same code in demo.py and predictor.py.
Any pointers would be appreciated.
Thanks.

Hi,
The images have weird color because they are in BGR format, instead of RGB.
This is how I did for overlaying the class names and predicted boxes, and the underlying functions are fairly simple.
I'm closing the issue, but let us know if you have any further questions.

If you observe carefully, objects of the same class have the same color.
Another example is this:

I used RGB notation, not BGR. I used the underlying functions for overlaying boxes and class names but they fail to appear in the inferred image. Do I have to print the boxes to see them in the image?

@fmassa Am I missing something?

predictions is not the image with the boxes drawn, but a BoxList object which contains the coordinates of the boxes, as well as other information.

"predictions" in demo.py , not in predictor.py

Do you mean this file? https://github.com/facebookresearch/maskrcnn-benchmark/blob/master/demo/webcam.py

I mean this:
https://github.com/facebookresearch/maskrcnn-benchmark/blob/master/demo/Mask_R-CNN_demo.ipynb

@fmassa , I am digressing here a bit but I want to train on my own dataset with a different number of classes. Requesting you to pls help me with the following questions:

Do I have to prepare a .json file consistent with the coco format?
What I did now is create my own dataset (as per the helper function provided), as below:

It correctly loads the data.
But I don't understand how and where to pass this for training?
And in which function should I change the number of classes to suit my data?

Would be of great help if you could point accordingly.
Thanks so much for your patience.

Hi,
Have a look at https://github.com/facebookresearch/maskrcnn-benchmark/pull/131 to see how they added Pascal VOC dataset. There was also some refactoring going on there, so don't be scared about the number of lines changed.
Basically, you need to import your dataset here so that it's visible in the datasets module, and then extend the paths catalog with the name of your dataset and paths. The factory method is the name of your dataset as it can be seen in maskrcnn_benchmark.data.datasets.

Let me take a look and get back to you.
Appreciate your quick response :)

I thought this is useful for preparing our own datasets. I prepared my data according to the above link but do not know where to pass it.
Pointers pls.

Question: So do I need .json files in my data path?
I have .mat file instead and I used the .mat file to get bbox and class id in class "MyDataset(object)" definition.

You can write your dataset as you want. There is no restriction about JSON.
There is a drawback though as mentioned in the post, which is that evaluation metrics are currently specific to COCO-style datasets, but this is being improved on the Pascal VOC PR.

Thanks! Appreciate your response and patience.


Pacaur doesn't seem to respect IgnoreGroups for non-repo packages

I occasionally modify AUR packages (especially devel ones) to point to my local copies of the sources. When I run pacaur <OPERATION> --devel it searches the AUR for those packages and overrides my local versions, despite me having added groups=('local-builds') to each and IgnoreGroups=local-builds to /etc/pacman.conf.

That's because AUR packages don't have groups. I am not even sure the RPC info would return such information. I can add a check for it, sounds good.

I just checked a few queries on the RPC info, and it doesn't return the groups, so I'm not sure how this could be implemented short of reading cached PKGBUILDs. But even if you did that, any PKGBUILDs that were modified by the user will be overwritten on the next upgrade anyway, due to the git pull --hard HEAD in DownloadPkgs(). Either way, it'll probably be a difficult problem to solve. By my naïve reckoning, at a minimum pacaur would have to:

get a list of all foreign packages; and
check the clonedir to see if they've already been downloaded;
if so, read the PKGBUILDs without sourcing them (!) to find the groups and compare that against the IgnoreGroups in /etc/pacman.conf;

before proceeding as normal. There's probably a few more steps along the way in the rest of the build process that I've missed.
For the time being, I've just added a workaround to my local builds so the packages are called ${pkgname}-local and they conflict, provide and replace the original package. After all, I'm using my own forks of the sources so I'm keeping up-to-date elsewhere.

if so, read the PKGBUILDs without sourcing them (!)

This is the reason pacaur avoids to do it and use the RPC interface instead. It is insecure to parse the whole PKGBUILD directly, and parsing PKGBUILD without parsing them is difficult and inaccurate when dealing with complex PKGBUILDs. Please forward your request to the AUR-dev mailing list for implementing groups in the RPC interface.
This said, pacaur has never been intended to manage packages modified by the user - it just doesn't make sense. Rather, you should use cower instead of an automated helper (luckily cower is already installed if you are using pacaur). I'm not against implementing little features if they require only minimal work and maintenance, but in this case it's much work for something I don't use myself, and in which I don't want to invest time. Patches welcome. In the meantime, I'll just close this ticket.


Add documentation for showing slow queries in Laravel

This PR adds documentation for the recently added feature to spatie/laravel-ray that displays "slow" queries (queries that take longer than N milliseconds to execute).

Very nice! Thank you!


[openexr] fix iOS build, set bundle suffix for iOS

[openexr] fix iOS build, set bundle suffix for iOS
./vcpkg x-add-version --all

This switches to using vcpkg_copy_tools for openexr, which works in iOS as it uses the bundle extension.
Describe the pull request

What does your PR fix?
Fixes openexr package on iOS

Which triplets are supported/not supported? Have you updated the CI baseline?
arm64-ios, arm-ios

Does your PR follow the maintainer guide?

Yes

Maybe you wait with openexr. There is a PR for updating to 2.5.8 (https://github.com/microsoft/vcpkg/pull/26503).
And the real challenge is finding a vcpkg way to transition to version 3.

I see, good call.
I still think my change to scripts/cmake/vcpkg_common_definitions.cmake is valid, should I open a new PR?

The changes to scripts/cmake/... cause a lot of packages to rebuild. It may make sense to bundle the iOS changes but YMMV. Reviewers, contributors and users may have different perspectives and demands.
FTR there is a set of scripts changes for Android, but we didn't manage yet to get them through reviews...

Makes sense. Should I bundle my scripts/cmake changes from this and #26520 into a separate PR then, and mark #26520 as a draft until that change is merged?

Please get failure logs here.

Was going through the logs with the intent of opening a new PR with just the bundle suffix changes, and they seemed quite unrelated:
Half-2_5.lib(half.cpp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in spin_rw_test.cpp.obj
Half-2_5.lib(half.cpp.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MTd_StaticDebug' in spin_rw_test.cpp.obj

Suppose I'll just go for it and see

I ended up splitting this PR into #26612 and #26641


Only generate legend for items that are displayed on the page

[x] I have checked issues with enhancement label and found no duplicates

Problem
Currently, the legend at the bottom is cluttered with ALL possible types of exports including some particularly rare ones. This can often lead to a feeling of being lost in some readers, when first looking at the bottom of the page.
For example, if viewing a class that only contains some methods and properties, it's pretty useless for the reader to be reminded about icons for enums, enumeration members or variables...
Suggested Solution
It should be possible to only render legend for the items that are currently present on the page.
This would greatly benefit documentation simplicity of the small packages with short API-s.

Is this really working the way it is supposed to? I'm getting a legend that contains far fewer entries in them, but they have virtually no overlap with the types I'm expecting it to display:

That definitely looks like a bug, looks like we are missing Enum, Interface, Class, Function and... whatever that other purple dot is.
There was a bug in a previous version caused by the rename from "External Modules" to "Modules", are you on the latest version?

I'm using 0.17.4

Could you open a new issue with a reproduction? Seems to be working correctly based on a quick test with the symbols I noted are missing that I just did.

I have the same problem. Enum and other types are missing. I am using mode "file".
@johansten : have you found a solution to the problem?

I am having the same issue with the enums. Interestingly the "Enumeration" shows up in my real project and the "Enumeration member" is missing, but in my reproducer both of them are missing.
Is there a way to include all of them again, so we at least have all of them shown properly?


add support for object property selector

@blainekasten, thanks for quoting me in #105, gave me the drive to attempt to add the support. Let me know what you guys think.
I also just happened to notice while I tried to follow code patterns adding functionality that there seems to be some opportunity to reuse some code between MountedTraversal and ShallowTraversal. There was definitely some copy & paste I did :)

Updated with suggested edits.

This looks great. Quick question, though:
isMatch makes a strict equality check on the props of the object passed in. This means that the following will not work:
const wrapper = shallow(
);
expect(wrapper.is({ style: { height: 20 } })).to.equal(true);

Do we potentially want to implement our own matcher?  We may even want to have special flattening for the style prop.

Yeah style poses an interesting problem. Also just general nested objects { prop: { id: 1 } }.
isMatch was used because underscore is already included in the library.
is-subset is used by skin-deep to compare prop objects. What about using is-subset?

I also made is-equal which works a bit more reliably than assert.deepEqual and is used by expect. It doesn't work for subsets though.

@ljharb Just took a look at is-equal, very nice library, but i think you're right, since it doesn't work for subsets I decided to give is-subset a whirl.
Let me know how you guys feel about this possible solution.

I was trying to think about what the most sensible API for this is...  I think there are 2 questions:

Since we are effectively doing "subset" matching behavior one level down for props, should we continue to match things as subsets at the sub-prop level?
Since style has special built-in behavior, do we want to handle it differently by pre-flattening the styles array for matching?

Question 2 is sort of a special case of Question 1... it just goes a bit further. At the moment I feel like the answer to 2 is "yes", and if 2 is "yes" I think 1 has to be yes or else the API becomes inconsistent.
As a result, I think the following API would be ideal:

{ foo: 'bar' } matches <Foo foo="bar" />
{ user: { id: 1 } } matches <Foo user={{ id: 1, name: 'Bob' }} />
{ foo: 'bar', qoo: 'qux' } matches <Foo foo="bar" qoo="qux" />
{ style: { width: 20 } } matches <Foo style={{ width: 20, height: 20 }} />
{ style: { width: 20 } } matches

{ foo: 'bar', qoo: 'qux' } does not match <Foo foo="bar" />
{ style: { width: 20 } } does not match <Foo style={[{ width: 20 }, { height: 20 }]} />

Let me know if any of you guys disagree, but I feel like that last rule is probably the right behavior. Basically, I'm thinking we will only "flatten" styles when the node type is a string (ie, it's a DOM node).
This could end up kind of annoying though, because some people could have a test set up where their render method somewhere along the lines has something like:
<input style={[styles.input, error && styles.inputError]} ... />

Then they have a test somewhere that asserts that the inputError styles are applied to the input. With the proposed API above, this works swimmingly BUT... at some point there might be a refactor like the following:
<Input style={[styles.input, error && styles.inputError]} ... />

At this point, this test will end up failing (assuming a shallow render), but its still behaving properly. Now writing the same test becomes a lot more difficult.
I guess the question comes down to whether or not we want to treat the style prop as a special case for all components, or just for DOM components where we know that they behave in this way?  I think there are arguments for both cases...

If it matches subsets all the way down, how would I go about not matching a subset, ie, only doing strict matching?
I think that the only special cases should ever be on DOM components - style is just a random prop on anything else.

I think that the only special cases should ever be on DOM components - style is just a random prop on anything else.

I agree with this. @ljharb. I also haven't thought about strict matching. Maybe hold off till users are asking for it? Then maybe an options object passed as second argument with the selector?
@lelandrichardson I'm having trouble understanding
. This doesn't seem to currently be a thing in v0.14, it looks like it might be something someday?
But the array for style is currently working for React Native Components, but they have to be Components <Text/> not dom elements/nodes
. And then the trouble is in 'regular react' passing that array for style just becomes a prop of style whose value is an array.
example fiddle https://jsfiddle.net/n38pwsdc/
So i could see this:

{ style: { width: 20 } } matches <Foo style={[{ width: 20 }, { height: 20 }]} />
{ style: { width: 20 } } does not match

but even this is weird because the top one truly only works for react native.
If we just keep it as is just looking for subsets of props, then the user has to know what to expect since they are testing. No flattening needed on our end.

LOL. @hartzis you're completely right. I've just been working way too much in react native recently...  we don't need to do anything specific for style then at this point.
As far as strict matching goes... I agree that maybe we just wait on this.  As a result, I think the current state of this PR is what we all agree on?

no worries. let me know about those errors and i'll get it updated asap to get this merged in

LGTM.

LGTM.


Can Linux also be supported?

Hi @aaassseee,
first of all thank you for your contribution!
I wanted to ask as the title suggests, if it is possible to add compatibility for Linux as well.
Thanks in advance and have a nice day!

Hi @0Franky. This will be done. However it is hard to develop and test due to there are so many Linux OS.

Hi @0Franky, I have been created a branch linux_support and finish with draft code. Due to lacking of physical system with linux install as main system. Would you like to give it a test? I am pretty sure code does not work with vm linux machine.

Hi @aaassseee,
sorry for the late reply.
I just tried the Linux feature on Ubuntu (currently xorg, I'll try it also on Wayland).
it fails.
when opened the window I selected the first button and I was trying to change the brightness, but the app crashed (it gave me an error about a pointer -> 0)
I'll try it also on arch soon.
What version of Linux did you test on?

@0Franky, I didn't have another disk or space to install a sub-system with linux, so I didn't test it. Would you like to share the full crash log. I may need you to help with completing linux support.


MINOR: eliminate warnings from KafkaProducerTest

Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

retest this please

@kamalcph thanks for the review and for letting me know about #5427, I'll keep in mind if I want to further refactor something. As far as I see though that PR doesn't aim to change this class and while we might be just doing this there I'd rather stand by not removing those bits from this commit if you don't insist.
I generally think it's much simpler to go with smaller but reasonably sized commits as they are easier to review, less change at once, less chance for conflicts, easier to merge.

@ijuma thank you very much for the reviews. Not just this one, but the previous ones too! :)


af2_complex_error

How can i solve this error?
/scratch/valiente/anaconda3/envs/dl_binder_design/lib/python3.9/site-packages/Bio/Data/SCOPData.py:18: BiopythonDeprecationWarning: The 'Bio.
Data.SCOPData' module will be deprecated in a future release of Biopython in favor of 'Bio.Data.PDBData.
warnings.warn(
/scratch/valiente/dl_binder_design/af2_initial_guess/af2_util.py:14: UserWarning: Import of 'rosetta' as a top-level module is deprecated and
may be removed in 2018, import via 'pyrosetta.rosetta'.
from rosetta import *
No GPU/TPU found, falling back to CPU. (Set TF_CPP_MIN_LOG_LEVEL=0 and rerun for more info.)
WARNING:tensorflow:From /scratch/valiente/dl_binder_design/af2_initial_guess/alphafold/model/tf/input_pipeline.py:151: calling map_fn (from t
ensorflow.python.ops.map_fn) with dtype is deprecated and will be removed in a future version.
Instructions for updating:
Use fn_output_signature instead
PyRosetta-4 2023 [Rosetta PyRosetta4.conda.linux.cxx11thread.serialization.CentOS.python39.Release 2023.33+release.9c16e13c3cc4d3ef76e5869e0a
5b44da70cff686 2023-08-18T11:32:04] retrieved from: http://www.pyrosetta.org
(C) Copyright Rosetta Commons Member Institutions. Created in JHU by Sergey Lyskov and PyRosetta Team.
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
WARNING! No GPU detected running AF2 on CPU
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
Processing struct with tag: design_ppi_2_dldesign_0_cycle1
The distance between residues 81 and 82 is 54.63 A > limit 3.0 A.
I'm going to insert a chainbreak after residue 81
Running model_1_ptm
Struct with tag /scratch/valiente/trabajo/2018-2019/Philip_M_Kim/RFdifussion_new_test/protein_mp_fr_out/design_ppi_2_dldesign_0_cycle1.pdb fa
iled in 78 seconds with error: <class 'AttributeError'>
Processing struct with tag: design_ppi_1_dldesign_0_cycle1
The distance between residues 74 and 75 is 24.13 A > limit 3.0 A.
I'm going to insert a chainbreak after residue 74
Running model_1_ptm
Struct with tag /scratch/valiente/trabajo/2018-2019/Philip_M_Kim/RFdifussion_new_test/protein_mp_fr_out/design_ppi_1_dldesign_0_cycle1.pdb fa
iled in 5 seconds with error: <class 'AttributeError'>
Processing struct with tag: design_ppi_4_dldesign_0_cycle1
The distance between residues 91 and 92 is 39.92 A > limit 3.0 A.
I'm going to insert a chainbreak after residue 91
Running model_1_ptm
Struct with tag /scratch/valiente/trabajo/2018-2019/Philip_M_Kim/RFdifussion_new_test/protein_mp_fr_out/design_ppi_4_dldesign_0_cycle1.pdb fa
iled in 5 seconds with error: <class 'AttributeError'>
Processing struct with tag: design_ppi_9_dldesign_0_cycle1
The distance between residues 91 and 92 is 55.87 A > limit 3.0 A.
I'm going to insert a chainbreak after residue 91
Running model_1_ptm
Struct with tag /scratch/valiente/trabajo/2018-2019/Philip_M_Kim/RFdifussion_new_test/protein_mp_fr_out/design_ppi_9_dldesign_0_cycle1.pdb fa
iled in 5 seconds with error: <class 'AttributeError'>
Processing struct with tag: design_ppi_3_dldesign_0_cycle1
The distance between residues 78 and 79 is 62.85 A > limit 3.0 A.
I'm going to insert a chainbreak after residue 78
Running model_1_ptm
Struct with tag /scratch/valiente/trabajo/2018-2019/Philip_M_Kim/RFdifussion_new_test/protein_mp_fr_out/design_ppi_3_dldesign_0_cycle1.pdb fa
iled in 5 seconds with error: <class 'AttributeError'>
Processing struct with tag: design_ppi_0_dldesign_0_cycle1
The distance between residues 95 and 96 is 56.01 A > limit 3.0 A.
I'm going to insert a chainbreak after residue 95
Running model_1_ptm
Struct with tag /scratch/valiente/trabajo/2018-2019/Philip_M_Kim/RFdifussion_new_test/protein_mp_fr_out/design_ppi_0_dldesign_0_cycle1.pdb fa
iled in 5 seconds with error: <class 'AttributeError'>
Processing struct with tag: design_ppi_6_dldesign_0_cycle1
The distance between residues 93 and 94 is 30.94 A > limit 3.0 A.
I'm going to insert a chainbreak after residue 93
Running model_1_ptm
Struct with tag /scratch/valiente/trabajo/2018-2019/Philip_M_Kim/RFdifussion_new_test/protein_mp_fr_out/design_ppi_6_dldesign_0_cycle1.pdb fa
iled in 5 seconds with error: <class 'AttributeError'>
Processing struct with tag: design_ppi_5_dldesign_0_cycle1
The distance between residues 96 and 97 is 69.17 A > limit 3.0 A.
I'm going to insert a chainbreak after residue 96
Running model_1_ptm
Struct with tag /scratch/valiente/trabajo/2018-2019/Philip_M_Kim/RFdifussion_new_test/protein_mp_fr_out/design_ppi_5_dldesign_0_cycle1.pdb fa
iled in 5 seconds with error: <class 'AttributeError'>
Processing struct with tag: design_ppi_7_dldesign_0_cycle1
The distance between residues 71 and 72 is 30.48 A > limit 3.0 A.
I'm going to insert a chainbreak after residue 71
Running model_1_ptm
Struct with tag /scratch/valiente/trabajo/2018-2019/Philip_M_Kim/RFdifussion_new_test/protein_mp_fr_out/design_ppi_7_dldesign_0_cycle1.pdb fa
iled in 5 seconds with error: <class 'AttributeError'>
Processing struct with tag: design_ppi_8_dldesign_0_cycle1
The distance between residues 96 and 97 is 36.09 A > limit 3.0 A.
I'm going to insert a chainbreak after residue 96
Running model_1_ptm
Struct with tag /scratch/valiente/trabajo/2018-2019/Philip_M_Kim/RFdifussion_new_test/protein_mp_fr_out/design_ppi_8_dldesign_0_cycle1.pdb fa
iled in 5 seconds with error: <class 'AttributeError'>

I add the debug option to my script now I have this error:
File "/scratch/valiente/anaconda3/envs/dl_binder_design/lib/python3.9/site-packages/jax/_src/deprecations.py", line 53, in getattr
raise AttributeError(f"module {module!r} has no attribute {name!r}")
AttributeError: module 'jax' has no attribute 'tree_multimap'
what can I do

This error is due to having an old version of JAX installed in your environment. I would recommend installing the AF2 environment I have recently added which is easier to install than the previous environment.


with version 1.2.0 @data is not passed to the omniauth_external_window.html.erb

Hi, first of all, let me say that I have been using devise token auth since 2017 and I have integrated various types of authentications (with regular username and pwd) and other custom omniauth strategies with success. I have been using this library to authenticate with various web client apps (ember, react) flawlessly. Now after all these years, I decided to update the version of devise token auth from 1.1.0 to 1.2.0. I am on rails <IP_ADDRESS>.
I have been running the current specs for my code base and out of 509 examples, it seems that I have only 1 spec failing; by having a look at what is going on, it seems that for some unknown reason, the spec is failing since the response.body for the callback response is an empty string and the @data coming from the  render_data(message, data) method in the omniauth_callbacks_controller.rb is not passed to the omniauth_external_window.html.erb view (as instead it was happening with version 1.1.0). This is totally weird, since if I directly debug from inside devise_token_auth and I inspect what is going on in the  render_data(message, data) method my @data is there, here is an example of calling @data.to_json from the method
"{\"auth_token\":\"ABCDERWEEWWEFR\",\"client_id\":\"DAFAFDFDSFDSF\",\"uid\":\"123456\",\"expiry\":1684595450,\"config\":null,\"email\":\"user@email.com\",\"username\":\"username-123456\",\"fullname\":\"User name \",\"id\":1,\"created_at\":\"2019-12-18T13:48:54.252Z\",\"updated_at\":\"2023-04-20T15:10:50.346Z\",\"deleted_at\":null,\"invitation_token\":null,\"invitation_sent_at\":null,\"invitation_accepted_at\":null,\"invitation_limit\":null,\"invited_by_id\":null,\"invited_by_type\":null,\"invitation_created_at\":null,\"show_archived_experiments\":false,\"avatar\":null,\"url\":null,\"location\":null,\"laboratory\":null,\"show_archived_reagents\":false,\"show_tasks\":\"all\",\"provider\":\"idplus\",\"persistent_allow_password_change\":false,\"investigator_id\":null,\"show_archived_data\":false,\"allow_password_change\":false,\"investigator_lock\":null,\"inst_assoc\":\"INST\",\"indv_identity\":\"REG\",\"indv_identity_method\":\"U_P\",\"inst_assoc_method\":\"CSCREATED\",\"inst_acct_id\":\"1243423\",\"inst_acct_name\":\"Maintenance \",\"inst_acct_image\":\"http://domain.com/institution.JPG\",\"path_choice\":false,\"policy_success\":[\"urn:com:domain:idp:policy:product:indv_identity\",\"urn:com:domain:idp:policy:product:inst_assoc\"],\"message\":\"deliverCredentials\"}"

but to my great surprise, it seems that when I am redirected to auth/provider/callback page, this page is always empty, no js is executed (I tried to put a console.log in there to see if I could debug something from the view), I even tried to manually place some plain text in the body to understand if I could at least have the @data included in this page by using simple ERB but no matter what, this is always rendering an empty page: the @data is not passed to the view and  the sign in is successfull, since if I inspect the current user, this user is signed in and authenticated to the rails app (the sign in count is updated in my db table) but the @data is not passed anymore in the view with version 1.2.0 as it was happening with version 1.1.0 and no js is executed, I am totally stuck on this and I do not understand if this has anything to do with the new changes in the version 1.2.0 or if this has something to do with the version of rails, has anyone by chance experienced this same type of issue with version 1.2.0 of devise token auth? Any kind of support on this would be highly appreciated, thanks in advance!

I tried with version 1.2.1 and the result remains the same, this is really weird since the callback is successfully returning the auth hash, I even got the code passed as param to the callback and this sets the session, the user is successfully signed in, all auth params are in place, I even tried to add back sprockets since I noticed this has been removed thinking this was the cause of the issue, but no way to get past this weird behaviour. The strange thing is that if I add an override for the external omniauth page, or if I directly try to edit the one for the gem (by mounting devise_token_auth in my Gemfile to use the local version I cloned on my machine), no updates are reflected in the page, so let is say that for example I am doing something like this in my custom override
#app/views/devise_token_auth/omniauth_external_window.html.erb
 <!DOCTYPE html>

Hello World

Instead of seeing at least the text comment in the template, it literally always renders an empty view, this is totally weird, in this way I am prevented to have the @data passed into the view and then do the redirect to my FE app, by the way no sort of js is triggered in this page I am totally stuck on this...

Ok so, to answer myself, and hoping this would save some time to other people, after 2 days spent investigating this issue, I have found out that somewhere along the way during the subsequent versions bumps from 1.1.0 to 1.2.1  - yes I just updated to the latest stable instead of sticking to 1.2.0 -  the way that omniauth callbacks are handled was changed. In previous versions, the omniauth callback controller would automatically render a template. However, in 1.2.0, this behavior was removed, so to fix this I had to include into my OmniauthCallbacksController the following
  include ActionView::Layouts
  include ActionController::Rendering

makes sense, since I am using a rails api only app and without those  includes any rails api only app will not render, since ActionView::Layouts provides Layout and include ActionController::Rendering provides template rendering. With them, I can render *.html.erb . With those changes to my callback controller everything runs fine, and all specs are passing and  I am now using latest devise_token_auth stable version. I would appreciate some quick feedback from any maintainer, to understand if what I am supposing is correct (and maybe is there a specific commit that removes the previous behaviour). I will leave this issue open, in case anyone would face the same issue as me.


Add continuous integration / continuous deployment

When opening a pull request like https://github.com/DougInAMug/Collective-Governance-Directory/pull/6, it could be nice to have a job (such as a GitHub Actions workflow) which would check that the site compiles correctly. For instance this would catch JSON formatting errors.
Also the deployment pipeline could be improved: gerenally, the build artifacts (your build/ directory) are not tracked in the Git repository, but are generated when deploying.

I just moved the build step to the workflow and took build/ out of the repo This seems to catch big JSON formatting errors, but not 'smaller' ones (e.g. incorrectly naming a key leading to undefined in the web app). This seems 'OK', but if you have a further suggestion for error checking, let me know! Else feel free to close.

Amazing! That looks much better. To catch such additional errors, you could add some tests to your app and run them from the CI. For instance, one test could validate the JSON blob against a JSON Schema.


Support rust 1.59.0

https://blog.rust-lang.org/2022/02/24/Rust-1.59.0.html

Codecov Report

Merging #745 (8f70c50) into main (d8489a0) will decrease coverage by 0.00%.
The diff coverage is n/a.

:exclamation: Current head 8f70c50 differs from pull request most recent head af2f676. Consider uploading reports for the commit af2f676 to get more accurate results

@@            Coverage Diff             @@
##             main     #745      +/-   ##
==========================================
- Coverage   72.24%   72.23%   -0.01%
==========================================
  Files          87       87
  Lines       11912    11912
==========================================
- Hits         8606     8605       -1
- Misses       3306     3307       +1


Created various driver control options

Each are stored in swerve.teleopControls in the commands folder

DriveRotatedCommand drives the robot relative to the field, and uses the right stick or DPad to set its rotation. It is currently bound to the A button.
DriveRotationCommand drives the robot relative to the field, and uses the right stick to spin. It is currently bound to the B button.
DriveRobotRelative drives the robot relative to itself, where up is forward and left is right-to-left, and the right stick spins. It is currently bound to the X button.

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

Current dependencies on/for this PR:

main

PR #14

PR #15

PR #16

PR #17

PR #18   👈

This stack of pull requests is managed by Graphite.


Added possibility to use secure hashes to store passwords

Addresses #1166
PBKDF2WithHmacSHA256 is used instead of MD5.
https://www.owasp.org/index.php/Hashing_Java was used as a reference for the implementation

With which setup did you test this? OS, Java vendor and version?

Linux (Fedora), openjdk-8
I am able to test against Windows7, Oracle JRE 7 later this day

Okay, thanks.
I have started to integrate your changes, but will have/want to rewrite
them some.

Not as soon as I thought, but finally verified: Windows 7/Oracle JRE 7 is woking fine


the "g" key does not work at vs code

GitLens Version:v11.2.1
Git Version: 2.23

VSCode Version:1.53.2
OS Version:
laptop: asus x550c

Steps to Reproduce:
1.after install git lens the "g" key does not work at vs code anymore and after I uninstall the git lens the key works fine
I recorded a video for this problem :
http://www.mediafire.com/file/gtvlhov18auu9hg/Desktop-1614517212231+(convert-video-online.com).mp4/file

I don't see how GitLens could cause this -- GitLens doesn't ship with any key binding for just g. Do you have any customizations in your keybindings.json that could be causing it?
You can also turn off all GitLens key bindings by setting "gitlens.keymap": "none" to see if that makes any difference.


Add an option to use vendored libgit2

Hmm... I would expect it to either keep working as long as they end up depending on the same foreign library or will stop compiling when it starts to depend on two of them, but yea, making a cargo request would be a better solution and not just for cargo-show-asm. Will look into that.


feat: using custom waitForUI5 with callbacks instead of Promises

There is ~1.2sec delay on every sap.ui.test.waitForUI5() function call since the call adds unresolved promise into _promiseWaiter pipeline. This change skips extra Promise creation to speed up waitForUI5() function execution
https://github.com/js-soft/wdi5/issues/196

thanks a ton for this! 🙌


Can't pickle generics in certain cases

Initial Checks

[X] I confirm that I'm using Pydantic V2

Description
The reified generic classes only seem to be registered as a value in their modules in some cases. The test case below illustrates the bug.
This may be a dupe of the root cause of #7503.
The core issue seems to be that pickle (at least in python 3.11) first tries to find a for the class to pickle using __qualname__
https://github.com/python/cpython/blob/978fba58aef347de4a1376e525df2dacc7b2fff3/Lib/pickle.py#L1062. This seems to be the case since at least 3.8
But Pydantic only seems to be registering a symbol for the reified generic classes when they're created at a global level
https://github.com/pydantic/pydantic/blob/4d7bef62aeff10985fe67d13477fe666b13ba070/pydantic/_internal/_generics.py#L152
I'm not close enough to the details of the original implementation by @dmontagu in https://github.com/pydantic/pydantic/commit/53fcbec645ffea6509f68e3d587836e12173019e but is there a reason to only restrict the updating of module references to when things are run at the top-level? What would be the downside of updating the origin.__module__ to always have the reified generic instances?
Some off the cuff thoughts around options:

eliminating the type var args in the generic subclass __qualname__ will probably have a bunch of other, unintended side-effects. It also means that when you're un-pickling, it would use the raw generic base class
Whichever way the specialized generic subclass is registered, there needs to be some portion of the un-pickling code path that specifies that same generic type and args e.g. if you're starting a new process and my.module.MyGeneric[T] exists on the import path but you haven't ever defined a MyGeneric[str] un-pickling with fail with a similar error to how pickling currently fails in the test case below

Example Code
import pickle
from typing import Generic, TypeVar

from pydantic import BaseModel

T = TypeVar("T")

class MyGeneric(BaseModel, Generic[T]):
    prop: T

def create_and_pickle():
    m = MyGeneric[str](prop="test")
    print(m.__class__.__qualname__)
    print(pickle.dumps(m))

# If you uncomment this next line, it has the effect of registering a __qualname__ of
# "MyGeneric[str]" in this module and make this test case work.
# MyGeneric[str]

create_and_pickle()

Python, Pydantic & OS Version
pydantic version: 2.6.4
        pydantic-core version: 2.16.3
          pydantic-core build: profile=release pgo=true
                 install path: /Users/shawn/Code/instance-bio/instance/services/web/.venv/lib/python3.11/site-packages/pydantic
               python version: 3.11.4 (main, Aug 14 2023, 09:41:08) [Clang 14.0.3 (clang-14<IP_ADDRESS>.1)]
                     platform: macOS-14.4.1-arm64-arm-64bit
             related packages: typing_extensions-4.11.0 pyright-1.1.321 pydantic-extra-types-2.7.0 fastapi-0.110.2 pydantic-settings-2.2.1
                       commit: unknown

Hi @strangemonad,
Thanks for your questions. I think this is a duplicate of https://github.com/pydantic/pydantic/issues/8913. Let me know if that explanation is helpful enough for your use case!

@sydney-runkle it does seem like a dupe of #8913. I suppose I'd question the rationale for closing the issue though? Manually managing dynamic models is always discussed as an "advanced pydantic topic" that should only be needed in a few cases while generics are documented as a feature that should "just work". At the very least this should probably be a change to the docs or a better error message (e.g. by overriding the reduce method of generic pydantic models to make it clear it's not supported) but I don't think it's unreasonable to support since generics are supported as first-class.
I'm currently working around this with the following mixin that I include in the class hierarchy. Since there's already a case in the ModelMetaClass that handles this code path when module == __main__ I don't think it should be too difficult to extend
class PatchGenericPickle:
    """A mixin that allows generic pydantic models to be serialized and deserialized with pickle.

    Notes
    ----
    In general, pickle shouldn't be encouraged as a means of serialization since there are better,
    safer options. In some cases e.g. Streamlit's<EMAIL_ADDRESS>there's no getting around
    needing to use pickle.

    As of Pydantic 2.7, generics don't properly work with pickle. The core issue is the following
    1. For each specialized generic, pydantic creates a new subclass at runtime. This class
       has a `__qualname__` that contains the type var argument e.g. `"MyGeneric[str]"` for a
       `class MyGeneric(BaseModel, Generic[T])`.
    2. Pickle attempts to find a symbol with the value of `__qualname__` in the module where the
       class was defined, which fails since Pydantic defines that class dynamically at runtime.
       Pydantic does attempt to register these dynamic classes but currently only for classes
       defined at the top-level of the interpreter.

    See Also
    --------
    - https://github.com/pydantic/pydantic/issues/9390
    """

    @classmethod
    @override
    def __init_subclass__(cls, **kwargs):
        # Note: we're still in __init_subclass__, not yet in __pydantic_init_subclass__
        #  not all model_fields are available at this point.
        super().__init_subclass__(**kwargs)

        if not issubclass(cls, BaseModel):
            raise TypeError(
                "PatchGenericPickle can only be used with subclasses of pydantic.BaseModel"
            )
        if not issubclass(cls, Generic):
            raise TypeError("PatchGenericPickle can only be used with Generic models")

        qualname = cls.__qualname__
        declaring_module = sys.modules[cls.__module__]
        if qualname not in declaring_module.__dict__:
            # This should work in all cases, but we might need to make this check and update more
            # involved e.g. see pydantic._internal._generics.create_generic_submodel
            declaring_module.__dict__[qualname] = cls

@strangemonad,
Fair point! I'll tag this with the documentation tag - we can definitely start with that as a first step.


quinsigamond community college

adding quinsigamond community college. qcc.edu, qcc.edu/sites/default/files/2023-11/how_to_access_student_email.pdf, qcc.edu/courses/computer-science-i

@chrstphr84 Thank you for your patience while waiting for a review and processing your request. Pull request merged. Please start applying for JetBrains educational subscription at https://www.jetbrains.com/shop/eform/students in an hour, to allow the changes to propagate through JetBrains systems.


Failed to import -  Import 'https://esm.sh/<EMAIL_ADDRESS>failed: 500 Internal Server Error

Failing module
Import 'https://esm.sh/<EMAIL_ADDRESS>failed: 500 Internal Server Error

GitHub: https://github.com/Effect-TS/io
npm: https://www.npmjs.com/package/@effect/io

import * as T from "https://esm.sh/<EMAIL_ADDRESS>
Error message
After running deno run I got this:
error:  Import 'https://esm.sh/<EMAIL_ADDRESS>failed: 500 Internal Server Error```

## Additional info

- **esm.sh version**:
- **Deno version**: deno 1.31.0

https://github.com/esm-dev/esm.sh/pull/546 should have fixed this, will deploy the changes later

@ije Thanks, looking forward to it. I can't load this package from npm due to supabase edge deploy restrictions and I can't get it to load correctly form anywhere else.

v112 has been lunched, thanks to @Justinidlerz


chore(substrait): bump to v0.39.0

Note, this contains a breaking change in map behavior.
See https://github.com/substrait-io/substrait/releases/tag/v0.39.0 for
more info.

Good to know, thanks!


specify latest version in README.md

Such changes don't need a changelog entry.

@bbatsov made changes :)

One more thing - capitalize the commit message and drop the redundant lines in its description (guess they were the result of squashing). Basically you need to do git commit --amend and git push --force.

:ok:

Thanks!


Fix typos

thanks rwsu, could you resubmit to gerrit? https://github.com/redhat-openstack/tripleo-quickstart/blob/master/README.rst#code

These tasks were removed in the last big change, so this PR can simply be closed.


route warning /3

Fixes #28746
Fixe #28747

Internal previews

📄 File
🔗 Preview link

aspnetcore/diagnostics/asp0022.md
aspnetcore/diagnostics/asp0022

aspnetcore/diagnostics/asp0023.md
aspnetcore/diagnostics/asp0023

aspnetcore/diagnostics/asp0024.md
aspnetcore/diagnostics/asp0024

@tdykstra  can you figure out the error? I've moved the date, added/removed the leading 0. The metadata was a pure copy of your file, not even a copy/paste as I copied the filed and changed the content below the metadata (sans the ID was changed).

@mitchdenny please review | aspnetcore/diagnostics/asp0024

LGTM


Math Libraries

A couple of existing GPU libraries wrapping CuSolver/CuBlas or Magma

ArrayFire
https://arrayfire.com
https://github.com/arrayfire/arrayfire

Armadillo
https://gitlab.com/conradsnicta/armadillo-code

Also BLAS for sparse matrics
https://graphblas.org

I think both of them don't use magma

ArrayFire has magma backend
https://github.com/arrayfire/arrayfire/tree/master/src/backend/opencl/magma

OneMKL now provides  MKLConfig.cmake module for MKL integration
https://www.intel.com/content/www/us/en/develop/documentation/onemkl-macos-developer-guide/top/getting-started/cmake-config-for-onemkl.html

Yes. I am aware of this. This is not compatible with cmake default version on some of the platform and conda package. So currently we will not use this

we hooked up with magma after v0.9.


codebase support

Hi. So I've been happily using firebase-tools-with-isolate for a little while, on a monorepo with a single monolithic firebase backend package. I've reached the point where I'd like to split that up into separate chunks using firebase codebases. For example:
/packages
  /firebase-backend
    /codebases
      /chunk1
      /chunk2
    /firebase.json
    /src
      /some-other-firebase-functions-and-definitions-here

with firebase.json containing:
{
  "functions": [{
    "source": ".",
    "runtime": "nodejs20",
    "isolate": true,
    "codebase": "default"
  },
  {
    "source": "codebases/chunk1",
    "runtime": "nodejs20",
    "isolate": true,
    "codebase": "chunk1"
  },
  {
    "source": "codebases/chunk2",
    "runtime": "nodejs20",
    "isolate": true,
    "codebase": "chunk2"
  }]
}

I was unable to get Firebase to attempt to deploy the codebases unless they were part of the /packages/firebase-backend tree, and when it did deploy it kept uploading the default codebase bundle instead of the bundle for each codebase.
I did some digging and ended up patching firebase-tools-with-isolate and isolate-package so that it does now correctly deploy each codebase bundle. There's two PRs for discussion, one here and one for isolate-package, and I fully expect that these don't work for other usecases so take them simply as a point of discussion to see if there's a way forward that would work for all scenarios.
The changes in this PR are just to correctly set cwd when running isolate() so that the process.cwd() calls in isolate-package operate within the codebase directory, instead of the firebase root. That allowed me then to write an isolate.config.json file within each codebase, to correctly point far enough up the tree to reach the workspace root.
{
  "workspaceRoot": "../../../.."
}

The isolate-package changes are basically about preventing it from caching any config, so each call to isolate() starts from scratch and doesn't get confused with previously created state.

isolate-package PR is here: https://github.com/0x80/isolate-package/pull/75

@leemhenson Support for multiple firebase packages has been there from the start. It was one of the motivations for creating isolate-package, because I also wanted to split up my codebase.
However, nested structure for packages is not common and seem to complicate things unnecessarily. The prerequisites section of the isolate-package readme talks about this, and Turborepo also does not support it.
For an example you can also have a look at my ts-mono boilerplate.
Let me know if things are unclear, but I think your PRs can be closed.

I cannot see an example in ts-mono or elsewhere where there are multiple codebases in a single firebase project. Is there one somewhere?

I'm not sure what you mean with "codebases in a single firebase project". In a monorepo, each package is self-contained, and packages are typically not nested, because they depend on each other using normal dependency declarations in their package manifest files.
In the case of mono-ts, you can find 2 packages under "services", each deploy to the same firebase project (or different projects if you have a use-case for that). They use the "codebase" property inside firebase.json to give each a unique namespace within the firebase project, which then acts as a prefix for any firebase functions (this allows each package to deploy functions with the same name and not clash)
In one of my projects I am moving towards grouping each domain in its own package deploying to the same firebase project. This makes bundle sizes smaller and should reduce cold start and deployment times.


[68] Publish

I've left out the "News and community" section, as I haven't seen anything that fits there this week. Feel free to add something if you think I missed it :)

Looks great! Thanks so much @BasThomas ! 🎉


How can I add more streams to a multi-platform streaming setup that by default only supports three streams? Thank you!

How can I increase the number of channels on a multiplatform pushstream system that defaults to three channels? Additionally, if there is no visual indicator for the maximum number of stream paths that can be added, would it be possible to implement a feature to add more paths? If paths are added manually, what is the correct procedure for inputting the keycode?

Upgrade to v5.15.5+, see https://github.com/ossrs/oryx/releases


front page search functionality

@drkane I hope this is ok....
It's a simple way to return search results to / using bottle POST method to handle forms. search_results.html template is then included within index.html.
Note that at the moment there must be a limit of 10 on the number of hits app.config["es"].search_template is returning (try search for 'Guide Dogs'). If we wanted to show all could use pagination.

Looks great. I think eventually we should have a separate search results page.

Probably does make more sense, esp if pagination is to be incorporated.


Implement editorial workflow for Gitea / Forgejo backend

Now that there is a Gitea / Forgejo Backend supported, I open this issue proposal to request adding publish_mode: editorial_workflow support to it.
Maybe @denyskon who's fantastic work contributed Gitea support 👍🏻 😄 can comment on the viability of this task? Did you notice anything quirks that might make it not feasible?

Thanks for the quick reply 🌟 Since you know the Decap code (and I do not), if you make a list of those endpoints, I'm happy to open isses on Gitea tracker and perhaps even bug some of my Go developer friends to nudge this forward...

@denyskon Do you have any insights which API endpoints are missing? Or do you have any pointers on how to find out which ones are missing? Once we know that, we can work with Gitea/Forgejo to get them implemented.


comparers tests fail on big sur

macOS Big Sur or Safari Technology Preview
yarn run test-browser
there are failures in vs/base/test/browser/comparers.test

Thanks for diabling the test. I think we are fine without that line for now.
@leilapearson I believe you introduced these tests, might you have time to look into this? In case you have macOS Big Sur? In case you do not or you do not have time let me know and I can investigate furhter.
Just before running tests, make sure to uncomment the two line @jrieken commented out


Transaction Service Blueprint & Schema

The Hook implementation is not honored, and I am not sure where the fault in my logic is. Since i've been staring at this for a bit now, a fresh pair of eyes may be of immense help.

After a dive into the source code, I believe to have found my mistake.
It’s not enough to pass the module containing the HookImplMarker to pluggy.PluginManager.register(), since plugy doesn’t look for the marker instance itself, but for functions/methods decorated with it inside the passed module.

Rebased onto dev

tests passed locally. Investigating..


Add lapindrome checker Implementation

Checklist

[X] I've looked at the contribution guidelines.
[X] This pull request is complete and ready for review.

Description
Add lapindrome checker Implementation #728

The implementation of this algorithm is pretty verbose. I'd like to challenge you to implement it using this function signature:
func isPalindrome(_ string: String) -> Bool
Just return a boolean indicating whether it's a palindrome or not.

Closing due to inactivity. Also, we changed our contribution guidelines to focus more on general-purpose D&A rather than interview questions. Thanks!


Colpr detection using HSV colorspace

Hello, I am GSSoC'21 participant, this code will detect all the blue color present in the surrounding or area Captured by primary camera of a device.
Kindly assign me this issue

Hey @varshakr1298, will this include any specific Image Processing technique we currently don't have?

In this I am basically creating a mask and then using bitwise and operation

Hey @varshakr1298, I guess these already exist.
Feel free to check out any other issue you can contribute to.
Thank you.

Okay thank you!


[qt wallet] Left navigation bar is missing on windows client

If it is open in browser, everything is normal

Everything is ok in IE/chrome.

If right click reload, Then it shows up


add an option to display only the current directory

I like my prompt to be as short as possible so I've added an option to remove the trailing directories from the prompt to leave only the topmost (current) directory. This means that if you are in /home/user/projects/foo/bar it would only display bar. Since this would prevent the user to know when they are located in / I've added a check for this so that it displays / when at the root of the filesystem. This feature is turned off by default but can be enabled by setting hydro_pwd_currentdir_only to true

This is an interesting idea, I'll think about it. 👌


Simplified using cases and changed empty values by nullable values in the profile page

This changed are not relevant, but they may help the app to dont crash.

LGTM

Would you like to merge rightnow? or mark it as "Draft" if you are still working.

Close #17.

You can delete the branch

Ok, sorry!

I replaced with IsNullOrEmpty method. in this code


Initializing multiple maps triggers error if WebGL is not available

When initializing a map for the first time with L.Mapzen.map in an environment that does not support WebGL it works, giving the following console.log:

WebGL is not available, falling back to fallbackTile option.

But, when running a second map initialization through L.Mapzen.map, whether on the same DOM-element or another, it causes the following uncaught error:

tangram.min.js:12 Uncaught Error: Couldn't create WebGL context. Your browser may not support WebGL, or it's turned off? Visit http://webglreport.com/ for more info

It seems to be caused by the fact that Tangram is already initialized the second time and that then automatically WebGL is chosen, also if the browser does not support that, see https://github.com/mapzen/mapzen.js/blob/b49d9bde9c34f03be8d9391e5a49ab635d64ac16/src/js/components/tangram.js#L41
By adding Tangram = undefined; just before initializing the map is a quick fix.

Thanks for reporting! Indeed mapzen.js was not handling the cases with more than one map without WebGL well. The fix for this issue will be ready to release soon!


additional arg for 'paket add' - [source]

allow adding a dependencies source from the commandline via
paket add source https://api.nuget.org/v3/index.json

adding
source https://api.nuget.org/v3/index.json

to the paket.dependencies file

can be used in tandem with group
can't be used with any other paket add sub-arg

(you can assign this to me)

I do have a similar issue with "paket add" when having multiple source in my dependencies file like
source https://www.nuget.org/api/v3/

nuget nuget1
nuget nuget2

source https://InternalRepository

nuget nuget3

If I try to add a nuget via command line it will only try to add it to the first source and fail.
The same goes when adding via the paketManager extension.
Looks like it could be related.

Interesting that this isn't in paket yet, I want this feature too! :)
Would that be easy to integrate, if so I would like to give it a try!