New metadata

Context
Firebreak :)
The register register doesn't have fields for custodian or register-name (human-friendly name).  Hence there is nowhere to record that data in the register definition yaml files in registry-data/data/{phase}/register/{register}.yaml.
The custodian is added by a command-line argument to scripts/rsfcreator.py
The register-name is added by scripts/name-a-register/sh.
Both these steps have sometimes been forgotten when recreating a draft register, causing custodians to ask why the names have reverted to default values.
Changes proposed in this pull request
Alter scripts/rsfcreator.py to use extra metadata defined in registry-data/data/{phase}/meta/{register}.yaml if available.
Remove the -- custodian command-line flag from all scripts.
Guidance to review
Is this a sensible approach?  Currently there are no tests in the registry-data repo to check that the metadata yaml is sensible.
Check that the tests test the new behaviour, and still check the remaining behaviour.

Given that custom field descriptions live here:
registry-data/data/{phase}/{register}/field/{field}.yaml
Would it be better if metadata lived somewhere like:
registry-data/data/{phase}/{register}/meta.yaml
Then all register-specific stuff is available in one directory?

Thinking aloud about the file paths...
The metadata location registry-data/data/{phase}/meta/{register}.yaml follows the existing pattern registry-data/data/{phase}/register/{register}.yaml.  Both are register-specific, and the meta file is for things that we might have put in the register register.
If we're moving away from the register register concept then @michaelabenyohai's suggestion makes more sense registry-data/data/{phase}/{register}/meta.yaml and leaves room to migrate normal register metadata (name, description, etc.) to registry-data/data/{phase}/{register}/register.yaml


Show avatars for persons in autocompletes.

We should show avatars in the web app when we have typeaheads for people, particularly when we do at-mention typeaheads.  The mobile app already does this, and it can prevent accidental spamming of people.

I am sure Tim April will appreciate that :trollface:

@zulipbot claim

@Konigari I can take this issue if you have abandoned working on it.


Suggestion: Remove duplicate Pokemon

The following are Pokemon that appear more than once in the Pokedex:

[ ] Pikachu
[x] Treecko
[ ] Bulbasaur
[x] Kingler
[ ] Squirtle
[ ] Charizard
[ ] Arcanine
[ ] Rayquaza
[ ] Gyarados
[ ] Tyrantrum
[ ] Caterpie
[ ] Psyduck
[ ] Eevee
[ ] Charmander
[x] Snorlax
[ ] Jolteon
[ ] Greninja
[ ] Ho-Oh
[ ] Oricorio
[x] Shuckle
[x] Electrode
[ ] Ninetales
[ ] Meltan
[ ] Xerneas
[x] Dragonair
[x] Crobat
[x] Roserade
[x] Diggersby
[x] Rampardos
[x] Chesnaught
[x] Marowak
[x] Komala
[x] Sunflora
[x] Bastiodon
[x] Maractus
[x] Chimecho
[x] Leavanny
[x] Wooper
[x] Tsareena
[x] Gigalith
[x] Eiscue
[x] Swoobat
[x] Charmeleon
[x] Metapod
[x] Chimchar
[x] Poochyena

Some duplicates were created by different users and some were created by the same exact user.
I propose we remove duplicate entries created by the same user.
Please let me know your thoughts, I'm happy to make a PR removing said duplicates.

Sure, go ahead and make the PR. Thank you!

Duplicate entries created by the same user have been removed, please check PR #457 .
PR also contains some broken image fixes and name corrections.
The remaining, unchecked Pokemon in this issue have duplicate entries created by different users.

Okay. We wont remove duplicate entries from different users. Thank you.


Not executing clocking block wait in do-while loop

In push_pull_host_driver.drive_push() task, it's not executing the "@(PUSH_DRIVER)" inside the do-while for the first req. While debugging, I found that it sets valid high, then sets valid low in the same time just for the first one, then it works fine for subsequent ones. I've recently seen this in a WD project too. If I add an "@(PUSH_DRIVER)" at the beginning of the drive_push() task, it works, so it's like if the task starts during a clk cycle, it seems to need to sync to the beginning of a clk cycle or it misses it. But this adds a clk so don't want to and shouldn't need to do that. I'm only running xcelium so maybe this is a Cadence issue? Couldn't view vcs waves last time I tried so haven't been able to see if vcs has this problem too. I'm pursuing it with Cadence but wanted to run it by you also to see if you have any ideas.

Thank Steve, do you have a specific test that we can run and check waveforms? I think all my testbenchs are using pull agent only :)

I don't think this issue is unique to drive_push, drive_pull is pretty much the same idea. But it's good to check apples-apples. Anyways, I checked-in branch es_dv and run entropy_src_rng_test with fixed_seed 1234 (although it fails with other seeds I've tried too). It'll pass right now but looking at the wave, with Cadence at least, you should see no rng_if.valid. I'd like to know if you do with cadence and vcs. Let me know if I should do anything else or if you need any more info.

Hi Steve, thanks for bringing this issue up! I'll take a look at the test and seed that you provided, and will update this thread afterwards.

I feel it makes sense to wait for the clock before we call try_next_item. So it created #5715, PTAL

right now our reset finishes after active edge of clock. If an item is received right after reset, it seems like there is race condition in Xcelium and it starts the item and finishes at the same time. I feel we can update driver to avoid this situation.

Just curious, have you determined if this is just an xcelium issue or vcs too?

@senelson7 @weicaiyang
I just tested with Verdi , it seem to work.

Rasmus and I met with Cadence Xcelium developers and believe they have interpreted/implemented this correctly. In a nutshell, it has to do with how clocking block signals are scheduled/driven.
The "get and drive" task in the push_pull_host_driver is implemented with:
try_next_item, if !null drive, else wait a clk
This checks for a new item every clk and if I insert a clk to get by the issue, I can't do back-back transfers.
I modified it to:
get_next_item
This blocks/waits until a new item is sent and works for back-back.
I recommend modifying unless there's a valid reason it should be as currently implemented.


findspam.py: Add IP addresses to websites, too (#3722)

This crudely adds the blacklisted IP addresses to the blacklisted_websites regex (which should be fine) and the watched ones to watched_keywords (which may be slightly more dubious). It should fix #3722

What is the goal in adding these to the watchlist/blacklist keywords? In other words, is there something that isn't being detected (e.g. IP addresses being used in text, which isn't currently detected)? Is the goal to just add an additional detection/weight when the post uses the raw IP address, rather than a domain name in a link?
Doesn't the IP address already get detected by "bad IP for hostname in {}" if the raw IP address is used in the HTML (or at least within a link)? Is problem this change is trying to resolve that if the IP address is being used in text, but not within a link, then it isn't being detected by the IP address check?
This looks like it will always apply two detection reasons if the post uses a raw watched/blacklisted IP address within the HTML, or at least within a link. Is that really what we want to happen? I'm not saying I'm against doing that, as the raw IP address being used in a link is likely a very strong indicator of spam, I'm just checking if that's what we want to always be doing, given that we usually try to avoid double-detecting things. Arguably, it's detecting two different things: the use of the IP address as text and the URL resolving to an IP address which is blacklisted.
While the following is a concern, it's probably just something we deal with, if it ever comes up:
Adding these directly to the watched/blacklisted keywords means it will be difficult/compute intensive for us to create an exclusion for some matches of the IP, if there ends up being some need to exclude some use of the IP address text. In other words, if we need to create an exclusion due to some strange FP match, then a naive implementation would result in the exclusion being tested for on every single watch/blacklist match, rather than just on the matches which match that IP, or we'll have to pre-process the list to add the exclusion). Such a need is, of course, hypothetical.

Indeed, there are some posts with IP addresses which were not detected, as outlined in bug report #3722. I have probably not listed every time that happened; I know there was one just yesterday or the day before again, which caused me to revisit this bug and finally try to do something about it.

Looking at recent hits for http://1 I notice that the Indonesian gambling spammer uses IP addresses fairly often, though none of these seem to be good examples. The one which was missed the other day was theirs IIRC, but probably had an IP address starting with a different number.

The Circle CI failure is a recurring problem, it seems to fail spuriously in an unrelated chatcommands test but only part of the time. (My other pending PR failed at first, and then succeeded after rebase; here, we see the opposite.)

So the issue looks like that raw ip addresses in posts are not currently subject to ip or asn list checks. The nature of those two problems appears to be the same. Take ip watchlist for example. As we can see, in findspam.py, in function watched_ip_for_url_hostname(), it calls ip_for_url_host():
return ip_for_url_host(s, site, GlobalVars.watched_cidrs)

Then in ip_for_url_host(), it calls dns_query():
        a = dns_query(hostname, 'a')
        if a is not None:
            # Do something

The problem is, if hostname is a raw ip, dns_query() will return None (cannot resolve).
    try:
        starttime = datetime.utcnow()
        answer = dns.resolver.query(label, qtype)
    except dns.exception.DNSException as exc:
        # Some logging
        return None

Hence all raw ip won't be inspected by that rule.
The solution proposed in this PR, appending ip black- /watchlist to keyword black- /watchlist, would solve the ip check problems, but not the asn ones, and is probably not very extensible (such as to cidr).
A way to fix this is to detect raw ip address in dns_query() (with a regex like [1-2]?[0-9]?[0-9]\.[1-2]?[0-9]?[0-9]\.[1-2]?[0-9]?[0-9]\.[1-2]?[0-9]?[0-9], and if detected, construct an answer with that ip, rather than treating it as a domain and hence fail to resolve.


Fix bug in kitti eval

KITTI evaluation has some bugs and the evaluation results are strange as follows:
Evaluation official: car AP(Average<EMAIL_ADDRESS>0.70, 0.70:
bbox AP:100.00, 100.00, 100.00
bev  AP:0.10, 0.14, 0.23
3d   AP:0.10, 0.14, 0.23
aos  AP:100.00, 100.00, 100.00
car AP(Average<EMAIL_ADDRESS>0.50, 0.50:
bbox AP:100.00, 100.00, 100.00
bev  AP:0.10, 0.14, 0.23
3d   AP:0.10, 0.14, 0.23
aos  AP:100.00, 100.00, 100.00
This PR fixed the bugs, which were related to #16 .

does the mAP correct after fix this?

I have trained the model of original_pp_mghead_syncbn_kitti.py.
The evaluation results were as follows:
Evaluation official: car AP(Average<EMAIL_ADDRESS>0.70, 0.70:
bbox AP:90.69, 88.74, 87.21
bev  AP:89.95, 86.76, 84.04
3d   AP:86.09, 75.97, 69.33
aos  AP:90.60, 88.35, 86.57
car AP(Average<EMAIL_ADDRESS>0.50, 0.50:
bbox AP:90.69, 88.74, 87.21
bev  AP:90.78, 89.84, 89.12
3d   AP:90.78, 89.75, 88.87
aos  AP:90.60, 88.35, 86.57


Http sse v2

from v1:

Fixes on sample
Change variables name on sol_buffer_append_buffer

reviewed, I think the SSE should go from name and this should be made a "progressive" response, which people can use to do SSE.
Also convert the http-server flow nodes to do it, should be a nice test. We can then do the http-client in another PR. The inspector could be also in a different PR, since it will be more work.

https://github.com/solettaproject/soletta/pull/1733


Change Background

Hello,
I know its not really about this script but i wanted an entry where it changes the background for the lock screen and desktop. Can you give me instructions on how to set this in the script?

Actually your proposal is not really off topic of "Debloating" Windows... I was thinking also it would be nice changing background in order to remove the "more about this image" icon on the desktop.

I could see adding an option to set Background to Picture instead of Windows spotlight, like @GuillaumeHullin mentions. This is however already requested here: https://github.com/Raphire/Win11Debloat/issues/141
Any other changes would be outside of the scope of this script I feel.


Donkey Kong arcade roms not downloading

Title says it all. When running the updater it doesn't download any roms for Eric Lewis' Donkey Kong arcade core. On my side anyways (tested on a Mac).
Thank you for your hard work!

hm, but the core downloaded? if it skipped the core and the rom, check your pocket_updater_settings.json file and make sure the ericlewis.DonkeyKong core has "allowPrerelease" set to true

Got it. Thank you!


HTTP/2: SETTINGS_HEADER_TABLE_SIZE should be an unsigned int

The HTTP/2 spec demands that the max value for SETTINGS_HEADER_TABLE_SIZE  should be an unsigned 32-bit integer. However, it seems that some limitations in HPACK prevent us from supporting that.
h2spec test suite 6.5 fails due to this limitation. The exception is Setting HEADER_TABLE_SIZE is invalid:<PHONE_NUMBER>.
        × Sends a SETTINGS frame
          - The endpoint MUST sends a SETTINGS frame with ACK.
            Expected: SETTINGS frame (Flags: 1)
              Actual: GOAWAY frame (Length: 56, Flags: 0, ErrorCode: PROTOCOL_ERROR)

@buchgr will look into it.

Should be fixed by https://github.com/netty/netty/pull/5798

Fixed by https://github.com/netty/netty/pull/5798


Inverse option for prediction results (denormalize)

Hi, I'm trying to get the prediction results of de-normalized values from the both self-supervised and supervised modes of PatchTST. I'm reading through the code, but I can't find the inverse option.
Do you guys have the inverse option in place?
Otherwise, I try to add this feature. Do you think this would be possible in the current codebase?

Hi, currently we don't consider it to make the comparison consistent with previous projects like AutoFormer and FedFormer. You could easily add it in your own project. Thanks!

Thanks! I've successfully added the inverse option for the supervised mode of PatchTST.
One more question is that I think currently the self-supervised model is normalizing the ETT dataset twice. Is it expected behavior? Can I skip the first normalization?

First is in here https://github.com/yuqinie98/PatchTST/blob/main/PatchTST_self_supervised/src/data/pred_dataset.py#L158
The second is here https://github.com/yuqinie98/PatchTST/blob/main/PatchTST_self_supervised/src/callback/transforms.py#L32

Thank you!

Yeah I think you can skip one. Thanks for asking!

Thanks a lot for the confirmation!


[AV2-1148] UX/UI Badges Total Points

Story/Ticket Reference ID from JIRA:
https://intersective.atlassian.net/browse/AV2-1148
Additional Comments:
Added same logic we have in appv2 achievement service.
Checklist:

[x] Unit test completed?: (Y/N)
[x] Docs folder up to date?: (Y/N)
[x] Add if anything missed: (Y/N)

All checklists are okay.
This PR looks great - it's ready to merge! Please review and let's ship it. :)

This is not any breaking changes. mostly updated the UI and added small logic in achievement service. so merging it without review.


your requirements may contain some @, I can not know its current version

for example
blessings @ file:///tmp/build/80754af9/blessings_1614076441300/work

it may occur in your requirements
this may solve it problem
pip list --format=freeze > requirements.txt

I update the requirements file. The environment is different from the original version since the computer system is reinstalled and I have to reinstall all packages. I hasn't tested the new environment thoroughly, so some packages might be missing.


Revert to the working dotnet-coverage version

Resolves #2698
Microsoft Reviewers: Open in CodeFlow

Maybe in a future PR, can we check for empty corbertura.xml files, so this would get caught on the PR that breaks it?

Maybe in a future PR, can we check for empty corbertura.xml files, so this would get caught on the PR that breaks it?

That's an interesting idea 👍


Allow launch game without clicks

?address=srv.com&port=30001&go=1

Some browsers are very sensitive about allowing autoplay without user interaction. See:
https://developer.mozilla.org/en-US/docs/Web/Media/Autoplay_guide#autoplay_availability
I force a click to ensure that every browser will permit the launch, and in particular, allow the audio device to be opened.


feat(edit): add retain to Array, Table and InlineTable

Solves #311.

@epage I tried adding it to TableLike, but the generic for FnMut(...) -> bool made a compilation error, object safety requires that I don't put a generic in the retain method, I believe I could try with &dyn or &mut dyn, not sure if it works tho.

@epage I applied all changes and force-pushed accordingly.
Can I take the opportunity to ask two side-questions?

Do you prefer me to mark as resolved, or leave it to the reviewer to resolve?
Is force pushing in this context bad?

Do you prefer me to mark as resolved, or leave it to the reviewer to resolve?

If its obvious, go ahead.  If its not, its nice to leave it open so we can both better track whether a change actually resolved it.

2. Is force pushing in this context bad?

I very much appreciate force-pushes

Thanks!


Missing node.js support from context library

We need the ability to call a node.js function from inside the jvm context library.   It would be best if this could be called repeatedly.  It is completely ok if Node is orphaned from the greater event loop and has no signal access.

Hi Anthony,
can you please clarify what you mean with "a Node.js function". Do you mean an npm module, or Node.js core functionality ("fs.js")?
If it is plain JavaScript code with no dependency on Node.js, you can likely load it with load(filename) already.
Best,
Christian

Hi @wirthi
I am able to run plain javascript using the polyglot api on OpenJDK 11 by including the maven dependencies on my project, just like demonstrated here: https://github.com/graalvm/graal-js-jdk11-maven-demo
Is it possible to rely on npm packages as well?

Hi @thiagogcm
When you start from JVM and not from the node binary, you get a JavaScript engine, not the full Node.js ecosystem.
node and npm are binary applications that expect to be started by themselves, standalone. We can cheat in a JVM into those applications (that's what we do in GraalVM), but once you have started a full JVM you cannot inject a node application in the same process. You'd need to start node's eventloop then, ensure it gets access to all the signals it requires, etc. That might be possible, but  is outside our current focus.
What you can try, however, is to load npm modules. As long as they contain only JavaScript code and do not try to access core Node.js functionality, that should work. Tools like browserify can help you with that.
Best,
Christian

It's worth noting that while there is no official support for it from Node.js other applications have successfully embedded node, i.e. so that it can be used as a shared-library without being the entry-point of the application. The obvious example is Electron, but much smaller projects have also managed it such as discussed here and here.
I understand that it is outside the focus of the project itself atm, but if someone were to come along who wanted to do this I assume it would be possible to link against node via JNI or whatever and achieve the same effect for Graal.js.

This issue is a duplicate of #2

I found this library https://github.com/apigee/trireme. I'm going to start porting pieces of it under trial (I need net and http initially). Unless someone has a better idea.

You might also be interested in:
https://github.com/mikehearn/nodejvm
https://blog.plan99.net/vertical-architecture-734495f129c4

Thanks @chumer. I don't think Mike's wrapper will work in my case because I'm running trusted and untrusted code together. The nodejvm wrapper appears to be creating a full-access NodeJS thread first under which everything is run.

I spent the day working through the trireme code and can now see how to port it. Problem is that it's very old (Node version v0.10 - current version is v12) and the differences between these Node versions is quite significant. Porting it isn't a one-man show I think for this reason.

I had this issue before with Nashorn, and endup using Nodyn's package loader. I created a repo with an example of my approach. You can also see this working in a larger project.
I hope this helps someone!

Hi,
Since GraalVM 20.0.0, we have experimental support for common.js require().
Best,
Christian


add pre-commit-config.yaml

First step of #143

Codecov Report

Merging #156 (7942e5c) into master (4bb2849) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #156   +/-   ##
=======================================
  Coverage   94.68%   94.68%
=======================================
  Files          23       23
  Lines        2354     2354
=======================================
  Hits         2229     2229
  Misses        125      125

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 4bb2849...7942e5c. Read the comment docs.

@raybellwaves is this work in progress or ready to merge?

ready to merge


[C#] casing of method GetWorld3d in Node3D does not capitalize the letter D as the set convention in 4.0.

Godot version
4.0 beta 10
System information
Windows 10, Nvidia GTX 1660Ti, Vulkan
Issue description
In Node3D there's a method GetWorld3d(), if you go through it you can see it like this:
public World3D GetWorld3d() => (World3D) NativeCalls.godot_icall_0_49(Node3D.MethodBind32, Object.GetPtr((Object) this));

It gives World3D but it's called GetWorld3d, since everything is now either 2D or 3D I assume this was just missed? :)
I'm not sure if this belongs to one of the renaming issues here or not I'm a little bit lost in them not sure what is currently relevant or not so I apologize in case I should have added this just as a post in the discussion.
It's not a serious issues but inconsistency which slipped through I guess.
Steps to reproduce
See above.
Minimal reproduction project
Nothing.

Duplicate of https://github.com/godotengine/godot/issues/28748


fix change password form for users

Fixes: https://github.com/apache/cloudstack-primate/issues/700

@blueorangutan package

@Pearl1594 a Jenkins job has been kicked to build primate packages. I'll keep you posted as I make progress.

Packaging result: :heavy_check_mark:centos :heavy_check_mark:debian :heavy_check_mark:archive.
QA: http://primate-qa.cloudstack.cloud:8080/client/pr/701 (JID-3465)


HomeBridge stop reacting

In console it says: Failed to check registry.npmjs.org for updates: "getaddrinfo EAI_AGAIN registry.npmjs.org" - see https://git.io/JJSz6 for help.

Did you check the link?

getaddrinfo - your DNS resolver could not resolve registry.npmjs.org. Check your internet connection and DNS settings.


download button

[x] we discussed a "download button" to download both pdf and jpegs
[x] need to figure out what to do when the jpeg download list extends beyond the bottom of the page

6c3b13be96ab08e93a130bd273f7d8500774b24c


Add documentation for deploying at netlify

Close #30
Live site URL - https://brave-minsky-1bdc88.netlify.com/

Thanks @alaminopu
Can you put the documentation is under deployment sub titlte? so we will have two method 1. deploying with firebase CLI and 2. Deploying with netlify

@arrlancore  Yes. Updated!


Utilize Operator Overloads rather than extension Methods

First, I read your blog post about this and think this implementation of units is brilliant! As I was reading it though I was intrigued by the usage of .Add() rather than +, so I wanted to dig into the feasibility of operator overloads.
I just started digging into this and tried to take a stab at it myself. I failed to do so, but am willing to give it another shot in the future.
Rather than having the following
var distance = 5f.Meters();
var time = 4f.Seconds();
var speed = distance.Divide(time);

Is there a reasonable way within C# to do operator overloading on generic structs with interfaces?
var distance = 5f.Meters();
var time = 4f.Seconds();
var speed = distance / time;

Operator overloads declared at a class or struct level, and based on my limited research, there is no way to do thee via an extension method. Additionally, I'm unsure about the difficulties that come with different generic values in operator overloads.\
If this is impossible, I'm fine with closing it out, but if a workaround can be used I'd love to see this added.

I agree that operators would be better. However, I want to allow to add values of different units, e. g. kilograms and grams, or km/s and mile/min, and so the operator itself should be generic. But operators aren't generic in C#... yet.


How, exactly, is Elder JS SEO focused?

I'm evaluating ElderJS and wondering how, exactly, it's SEO focused (i.e. what that means).
Maybe it's obvious to some, but since it's a focus in the marketing copy it seems like a good addition to the FAQ in the docs.

This is a good question.
Basically Elder.js was built with large scale flagship SEO assets in mind and all decisions are filtered through that view instead of whatever the broader JS community is into. Good examples of this are client side routing, large bundles on the client, service workers, etc.
There is a SEO plugin in the works, but it need a lot more testing than just my assets as I have a very unique use case.
At a high level, basically it'll plug into the hook interface and make sure you aren't making silly SEO mistakes... like:

Orphaned pages
Bad site structure
Using h1, h3, h4, and not using h2
Missing canonical
Possible json+ld generation in a blogging template

Basically think of it like webhint.io but solely for SEO.
It may be released next year depending on how much time, interest, and community support Elder.js gets.

Thanks for this @nickreese! I think it will answer a lot of people's questions, while other things are in the works.
I'm curious if this is a correct understanding (please LMK if not and I could edit or update to avoid leaving incorrect info around).
Elder.js's performance considerations, and SEO
Client-side performance matters for SEO
This might be obvious to some readers but I've found there's a lack of general awareness. I think some people think this micro-improvements to bundle size or page loads -- are only about hype -- but the performance matters for SEO too. And small differences matter a lot... more than I wanted to believe 😉
Here's one source for curious readers
Also... Performance when building the site
This is an indirect support for SEO but it matters immensely;

Reduces/remove the temptation to take shortcuts on the 'staticness' of the site (especially as one keeps adding more and more content and the generator might bork)
Makes it more feasible to write a lot of content, and often, then re-bake the whole static site and redeploy ... allowing you to move at the speed of your content

@yet-another-dev can we close ?


BigQuery: Multiple rows with same primary key in single CDC-enabled Storage Write API request

I've noticed some interesting behavior when multiple rows with the same primary key are written in a CDC-enabled Storage Write API request. It seems like the first row for each given primary key is given precedence. It's debatable whether this is a bug, but it'd be nice if there could be some clarification on this behavior:

Is it intentional?
Can it be relied on?

I ask because when consuming from, e.g., a stream of Kafka records generated by Debezium, this scenario may arise, and it seems like there are three options to deal with it:

BigQuery client and/or backend behavior changes to give the last row in each request precedence, instead of the first (which IIUC would mirror the behavior if each row were written in its own request)
This behavior is intentional, will not be changed, and can be relied upon, in which case we might work with it by reversing the order of rows in each request we send
This behavior cannot be relied upon, in which case we'll probably have to split up each batch we write to only include one row for each primary key value

Environment details

BigQuery
OS type and version: MacOS Sonoma 14.0
Java version: 11

Steps to reproduce

Follow steps similar to the CDC Json writer example, but provide multiple rows with the same primary key in a single write request (see code example)
Observe that the first row with a given primary key in each write request appears to "win". In the code example, the end state of the table is that the "data" column has the value "CDC row 1" since that was the value in the first row, while every other row in the request had the value "CDC row 2".

Code example
package io.aiven.kafka.connect.bigquery;

import com.google.auth.oauth2.GoogleCredentials;
import com.google.cloud.bigquery.BigQuery;
import com.google.cloud.bigquery.BigQueryOptions;
import com.google.cloud.bigquery.Clustering;
import com.google.cloud.bigquery.Field;
import com.google.cloud.bigquery.PrimaryKey;
import com.google.cloud.bigquery.Schema;
import com.google.cloud.bigquery.StandardSQLTypeName;
import com.google.cloud.bigquery.StandardTableDefinition;
import com.google.cloud.bigquery.TableConstraints;
import com.google.cloud.bigquery.TableDefinition;
import com.google.cloud.bigquery.TableId;
import com.google.cloud.bigquery.TableInfo;
import com.google.cloud.bigquery.storage.v1.JsonStreamWriter;
import com.google.cloud.bigquery.storage.v1.TableFieldSchema;
import com.google.cloud.bigquery.storage.v1.TableName;
import com.google.cloud.bigquery.storage.v1.TableSchema;
import org.json.JSONArray;
import org.json.JSONObject;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class CdcBugRepro {

  private static final String PK_FIELD = "pk";
  private static final String DATA_FIELD = "data";
  private static final String CDC_FIELD = "_CHANGE_TYPE";

  public static void main(String[] args) throws Throwable {
    if (args.length != 3) {
      System.err.println("Usage: CdcBugRepro <project> <dataset> <table>");
      System.exit(1);
    }

    String project = args[0];
    String dataset = args[1];
    String table = args[2];

    TableName tableName = TableName.of(project, dataset, table);
    TableId tableId = TableId.of(project, dataset, table);

    BigQuery bigQuery = BigQueryOptions.newBuilder()
        .setProjectId(project)
        .setCredentials(GoogleCredentials.getApplicationDefault())
        .build()
        .getService();

    if (bigQuery.getTable(tableId) == null) {
      createTable(bigQuery, tableId);
      // Wait for table creation to propagate
      Thread.sleep(5_000L);
    } else {
      System.out.println("Table already exists");
    }

    writeToTable(tableName);
  }

  private static void createTable(BigQuery bigQuery, TableId tableId) {
    System.out.println("Creating table");
    Schema createdTableSchema = Schema.of(
        Field.newBuilder(PK_FIELD, StandardSQLTypeName.INT64)
            .setMode(Field.Mode.REQUIRED)
            .build(),
        Field.of(DATA_FIELD, StandardSQLTypeName.STRING)
    );
    TableDefinition tableDefinition = StandardTableDefinition.newBuilder()
        .setSchema(createdTableSchema)
        .setClustering(Clustering
            .newBuilder()
            .setFields(Collections.singletonList(PK_FIELD))
            .build()
        )
        .setTableConstraints(
            TableConstraints
                .newBuilder()
                .setPrimaryKey(PrimaryKey.newBuilder()
                    .setColumns(Collections.singletonList(PK_FIELD))
                    .build()
                )
                .build()
        )
        .build();
    TableInfo tableInfo = TableInfo.of(tableId, tableDefinition);
    bigQuery.create(tableInfo);
    System.out.println("Created table");
  }

  private static void writeToTable(TableName tableName) throws Throwable {
    TableSchema writtenTableSchema = TableSchema.newBuilder()
        .addFields(TableFieldSchema.newBuilder()
            .setName(PK_FIELD)
            .setType(TableFieldSchema.Type.INT64)
            .setMode(TableFieldSchema.Mode.REQUIRED)
            .build()
        ).addFields(TableFieldSchema.newBuilder()
            .setName(DATA_FIELD)
            .setType(TableFieldSchema.Type.STRING)
            .setMode(TableFieldSchema.Mode.NULLABLE)
            .build()
        ).addFields(TableFieldSchema.newBuilder()
            .setName(CDC_FIELD)
            .setType(TableFieldSchema.Type.STRING)
            .setMode(TableFieldSchema.Mode.NULLABLE)
            .build()
        ).build();

    Map<String, Object> cdcRow1 = new HashMap<String, Object>() {
      {
        put(PK_FIELD, 1);
        put(DATA_FIELD, "CDC row 1");
        put(CDC_FIELD, "UPSERT");
      }
    };
    Map<String, Object> cdcRow2 = new HashMap<String, Object>() {
      {
        put(PK_FIELD, 1);
        put(DATA_FIELD, "CDC row 2");
        put(CDC_FIELD, "UPSERT");
      }
    };

    List<JSONObject> values = new ArrayList<>(
        Collections.nCopies(1024 * 255, new JSONObject(cdcRow2))
    );
    values.set(0, new JSONObject(cdcRow1));

    try (JsonStreamWriter streamWriter = JsonStreamWriter
        .newBuilder(tableName.toString(), writtenTableSchema)
        .build()) {
      streamWriter.append(new JSONArray(values)).get();
    }
  }

}

External references such as API reference guides

https://github.com/googleapis/java-bigquerystorage/blob/68eaae7851ccc2b698eb06a88c11719905fca049/samples/snippets/src/main/java/com/example/bigquerystorage/JsonWriterStreamCdc.java
https://cloud.google.com/bigquery/docs/change-data-capture

Hi @Neenu1995! Sorry for the direct ping, but is there any chance you or someone else on this project could take a look?

Hi Chris,
Thanks for the question!

Is it intentional? No, please see explanation blow.
Can it be relied on? No.

Detailed explanation:
The current API sorts the records by I/O system ingestion time, the row with largest I/O ingestion time 'wins'. For the example you presented, all the rows which are appended in the same request have the same I/O ingestion time. In theory, the system just pick the one randomly.
You might inquire about how to ensure the ordering from the client side:
Option 1:
streamWriter.append("key1", row1)
streamWriter.append("key1", row2)
The latter append will have larger I/O ingestion time.
Option 2: (not available yet, stay tuned)
Clients can specify an ordering number on the client side, and the system will utilize the provided ordering to sort the records.
Please let me know if you have further questions.

Ah, neat! Thanks for the insight, this is really helpful.
Option 1 does seem feasible--some follow-up questions:

Is there a potential impact on throughput if we take the naive approach and issue a single StreamWriter::append call for each individual row?
What's the granularity of the ingestion time? If I issue rapid consecutive requests to StreamWriter::append without waiting on the resulting ApiFuture instances, am I guaranteed that those requests will be processed in order? (Based on local testing, this doesn't seem to be the case 🙁)
Does this change the atomicity of insertions? E.g., if we want to sent a batch of multiple records and one of them is invalid for some reason, is there a scenario where the whole batch would be rejected with the insert-all-at-once approach but other records might be accepted with the insert-one-at-a-time approach?

Option 2 would be lovely, please let me know if/when it lands! If you'd accept a small suggestion--it might be nice to have the stream writer automatically number rows in ascending order.
I should also note that pre-compaction (i.e., only sending the latest-available record for each primary key in each upstream batch to BigQuery) seems like a viable option too--thoughts?

Is there a potential impact on throughput if we take the naive approach and issue a single StreamWriter::append call for each individual row?

Yes, this is not preferred due to performance reason.

What's the granularity of the ingestion time? Milliseconds.

Does this change the atomicity of insertions? It will, since it is a single request per row.

Pre-compaction would work perfectly with your case, but we should do that work for you if you just specify which row you want to pick per key by assigning the ordering as mentioned in the option 2.

Wonderful, thanks @anahan0369! I think because of the performance limitations and potential gotchas with timestamp granularity we'll use pre-compaction for now, but option 2 would definitely be fantastic if/when it's available.


documentation/example

is there any documentation or an example for using this module?

Sorry I totally miss this issue. Yes, you can find an example project here: https://github.com/GodotNetworking/example-project

and this project doesn't work with current godot 4.0 build

and this project doesn't work with current godot 4.0 build

It should work, do you have any specific error?

How can I help with the documentation?

Let me check how it works the wiki on GitHub

How can I help with the documentation?

The best way is to document using the-Godot-way: so document using the XMLs files inside the doc_classes directory. Later, I'll add a bot that publishes that documentation on the GitHub wiki: in this way it will be easily accessible on both Godot and GitHub.

Ok. Where can I get description and info about functions and everything else?

@Malkverbena Add me as discord friend Andr3a#6362 or ping me on godot Rocket Chat. I can give you the info you need to doc it.

I've added you on Discord.


Staging to prod: improve map performance

Look for notes on "logic change" below - all else was renaming or minor refactoring

footer.tsx - renaming
map-layout.tsx - renaming
deploy-to-firebase-production.yml: brings staging up to par with production
add-information.tsx: replaces incorrectly spelled attribute with existing attribute
google-maps.ts: renamed function and changed zoom from 3 to 10
map-state.ts: renamed vars, got rid of MARKER_SET_KEYS as it was only providing a constant
map.tsx

got rid of MARKER_SET_KEYS
renaming
removed unused DataSet related to MARKER_SET_KEYS
removed unused getMarkerId
logic change: simplified logic in componentDidMount for getting center location. Unduplicated code and changed ".then()" to await and extracted getting center logic to function getCenterLocation
removed MARKER_SET_KEYS loop which only had one constant, kept logic in loop
set zoom to 10
fixed exception when marker missing info.info.types for filter - found at least one record with that issue in prod
renamed informationUpdated to updateClusterAndMarkersListener
and refactored.
renamed informationUpdated to updateClusterAndMarkersListener
and refactored.
Added some jsdoc (javadoc)

results.tsx

logic change: added conditional checks in render for info.contentBody and info.contact.  Display message try again if both don't exist.

dataDriver.tsx

renaming
logic change: repurposed hidden/visible to initial/details.  initial is used for getting data within displayed map area with minimum attributes only .  details retrieves all data, does not limit by area, and includes all attributes.
logic change: modified informationUpdated to use allMarkers which is populated at beginning with data from initialMarkers and detailMarkers

removed unused firebase.ts
added util.tsx debugLog function.
yarn.lock version updates
logic change: created Wiki for reverse engineering map logic.  See https://github.com/reach4help/reach4help/wiki

Great cleanup on the logic for getCenterLocation and for adding the conditional checks on data. The performance difference is pretty impressive now; I tried testing it out on Slow 3G and it's very remarkable. The switch over to Algolia's definitely paying off!
Leaving a few minor comments in the add-information.tsx file but apart from that, this is brilliant! Thank you, Ethan!


Algorithm visualiser app

🚀 Feature
A algorithm visualiser app which visually shows and hence helps in better understanding the logic being sorting algorithms.
Have you read the Contributing Guidelines ?
Yes
Motivation
I always wanted to be able to see how the algorithms perform base on their logic.
Pitch
Understanding the logic behind a sorting algo and implementing it is good but for beginners having a visual way helps grasp the concept much better and faster.

sure will add one :)


My customed problem never registered with registry problems

Description
I am following a tutorial of microsoft from this website
https://github.com/microsoft/ai-edu/tree/master/B-实践案例/B13-AI对联生成案例#模型推理
to get a model to inference Chinese couplet.
Now I have trained the model on Google cloud and I can also get good inference.
Howerver, when I am constructing inference service, I found my function to communicate with tensorflowserverapi can't find my problem get registered.
I also have trained this model for one step and add  t2t_trainer --registry_help, and I can see my problem is actually registered under problems Problems.
My code is just the same as
https://github.com/microsoft/ai-edu/blob/master/B-实践案例/B13-AI对联生成案例/code/service/up2down_model/up2down_model.py
And here is my test code:
from up2down_model.up2down_model import up2down
upper_couplet = input()
up2down.get_down_couplet([upper_couplet])

Thanks for your reading and time.
Environment information
OS: Ubuntu 20.04

$ pip freeze | grep tensor
tensor2tensor            1.15.6
tensorboard              1.14.0
tensorflow               1.14.0
tensorflow-addons        0.10.0
tensorflow-datasets      1.3.0
tensorflow-estimator     1.14.0
tensorflow-gan           2.0.0
tensorflow-hub           0.8.0
tensorflow-metadata      0.22.0
tensorflow-probability   0.7.0
tensorflow-serving-api   1.14.0

$ python -3.7.7

For bugs: reproduction and error logs
Error logs:
raceback (most recent call last):
  File "/home/enigma/anaconda3/envs/NLP/lib/python3.7/site-packages/tensor2tensor/utils/registry.py", line 509, in problem
    return Registries.problems[spec.base_name](
  File "/home/enigma/anaconda3/envs/NLP/lib/python3.7/site-packages/tensor2tensor/utils/registry.py", line 254, in __getitem__
    (key, self.name, display_list_by_prefix(sorted(self), 4)))
KeyError: 'translate_up2down never registered with registry problems. Available:
All problems without my own

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "test.py", line 1, in <module>
    from up2down_model.up2down_model import up2down
  File "/home/enigma/Desktop/NLP/service/up2down_model/up2down_model.py", line 85, in <module>
    up2down = up2down_class(FLAGS,server_address) # inference model
  File "/home/enigma/Desktop/NLP/service/up2down_model/up2down_model.py", line 40, in __init__
    self.problem = registry.problem(self.FLAGS.problem)
  File "/home/enigma/anaconda3/envs/NLP/lib/python3.7/site-packages/tensor2tensor/utils/registry.py", line 513, in problem
    return env_problem(problem_name, **kwargs)
  File "/home/enigma/anaconda3/envs/NLP/lib/python3.7/site-packages/tensor2tensor/utils/registry.py", line 527, in env_problem
    ep_cls = Registries.env_problems[env_problem_name]
  File "/home/enigma/anaconda3/envs/NLP/lib/python3.7/site-packages/tensor2tensor/utils/registry.py", line 254, in __getitem__
    (key, self.name, display_list_by_prefix(sorted(self), 4)))
KeyError: 'translate_up2down never registered with registry env_problems. Available:\n     reacher:\n      * reacher_env_problem\n    tic:\n      * tic_tac_toe_env_problem'

Have you solved this?


Validate SNP/TN93 DMs

@nrf1 reports that the SNP- and TN93-based trees may have unequal numbers of leaves, implying that one is somehow dropping nodes.

Found the bug! We got off-by-one when the first nucleotide was a SNP, because the counter stopped at 1 instead of 0. Resolved by 6e2db4de6dbe719f70592958645dbf0f3a7942e5


Decoded data contains imperceptible errors

Why does reftest allow a pixel component to be off by 2 from the reference? Changing it to 0 makes the test fail, indicating the output does not exactly match the reference.
I noticed this because I was trying to check the output of my own program against a reference, but the difference introduced by jpeg-decoder caused it to fail.

The reference images have been created by decoding the jpegs with libjpeg-turbo and then converting to png.
jpeg-decoder's output can differ slightly from libjpeg-turbo's because the upsampling implementation is not the same. But that is acceptable since the JPEG specification doesn't specify what upsampling algorithm should be used, so implementations are free to do whatever they want.

Thanks for the explanation.


fix for archiving long paths that have path components starting with ".." crossing the 100-character mark

The gnu tar supports arbirary path length by putting path truncated to standard 100 chars into the header and the rest is appended to contents. tar-rs validates that no path components should be exactly  ".." but in this case when a component starting with ".." (for example file named "..some_file") gets truncated after 2 characters we hit this validation and can't tar such file.
I have verified that gnu tar command can handle such paths and actually puts truncated .. in the header. This pull request makes tar-rs behave the same.
See tests for repro of the issue.
(I think the code for handling this special case is quite ugly - I'd appreciate suggestions for making it better)

@cgwalters Thanks for all the comments. I have fixed the coding style issues you raised making the code hopefully easier to review for the next round.


Looks bad exporting to .JPG

Test exporting to JPG, looks pretty bad.

Can you upload a version of the input, a PNG output (expected output), and JPG output (actual output)? Also, if you are using grunt-spritesmith/gulp.spritesmith, can you paste there config here?

Hey @twolfson, here it is.
Input jpgs

Output PNG

Output JPG (not so good)

Spritesmith grunt config (grunt-spritesmith 4.6.1)
pngbg: {
  src: [
    'imgs/blue-btn.jpg',
    'imgs/next.jpg',
    'imgs/menu-item.jpg'
  ],
  destCss: 'sass/generated-bgs.scss',
  dest: 'imgs/spritesheet-bgs.png',
  algorithm: 'top-down'
},

jpgbg: {
  src: [
    'imgs/blue-btn.jpg',
    'imgs/next.jpg',
    'imgs/menu-item.jpg'
  ],
  destCss: 'sass/generated-bgs.scss',
  dest: 'public/imgs/spritesheet-bgs.jpg',
  algorithm: 'top-down'
}

Ah, I see the checkerboard in the lowest image is getting destroyed and the wood texture is getting a little funky. For saving, we are using save-pixels which leverages jpeg-js under the hood. Unfortunately, there is no quality knob on the repo and I am not sure that transitioning repos will actually solve the problem.
Have you tried our using an engine with a quality knob on it (e.g. gmsmith)?
https://github.com/twolfson/gmsmith/tree/0.5.0#canvasexportoptions-cb
pngbg: {
  src: [
    'imgs/blue-btn.jpg',
    'imgs/next.jpg',
    'imgs/menu-item.jpg'
  ],
  destCss: 'sass/generated-bgs.scss',
  dest: 'imgs/spritesheet-bgs.png',
  algorithm: 'top-down',
  engine: require('gmsmith'),
  imgOpts: {
    quality: 100
  }
},

jpgbg: {
  src: [
    'imgs/blue-btn.jpg',
    'imgs/next.jpg',
    'imgs/menu-item.jpg'
  ],
  destCss: 'sass/generated-bgs.scss',
  dest: 'imgs/spritesheet-bgs.jpg',
  algorithm: 'top-down',
  engine: require('gmsmith'),
  imgOpts: {
    quality: 100
  }
}

Yeah I switched over to gmsmith yesterday which works well. Would be nice not to worry about installing gm in my deployments, but it's not that much extra work :P
Thanks

That's great to hear. I think we should open an issue in jpeg-js to see how open the maintainer is to supporting quality. Can you upload a copy of the JPEG generated gmsmith? I want to give examples of what we are talking about supporting.

Save-pixels already supports quality parameter for JPG saving: https://github.com/scijs/save-pixels/pull/15
Would you consider implementing the quality option?

Yea, it was actually myself that added said support =P https://github.com/scijs/save-pixels/pull/15 https://github.com/scijs/save-pixels/issues/13
I'm not sure why I didn't follow through to add it to pixelsmith. Would you be interested in opening a PR to add it as an option as in phantomjssmith?
https://github.com/twolfson/phantomjssmith/tree/1.0.0#canvasexportoptions

Quality is now supported for export in pixelsmith via @jabadia in #7. Their work has been released in 2.1.0 =)


Add addon jest

Issue:
What I did
Add addon-jest to monorepo
How to test
In storybook example

@shilman is a new adding considered a "small feature"?

Ready to merge I think? @Hypnosphi ?

Please move prop-types to dependencies

Latest screenshot:

Actually, I still don't get what's happening here =( Why those green and red bars have different length? Why storybook is a place to show test results in a fancy way? Why would anybody want to make empty stories?

it's isolated and shouldn't break anything

Actually isolation is an issue here. Once someone adds this addon for some of the stories, nobody can start-storybook in that project without running those tests locally first.

@shilman, @Hypnosphi I think I've resolved all issues? Can you accept?

@shilman The thing you mentioned has been resolved, I hope you're OK with me merging this.


Memory leak bugs in module init functions with PyObject_SetAttrString

Reporting a bug

[x] I have tried using the latest released version of Numba (most recent is
visible in the change log (https://github.com/numba/numba/blob/master/CHANGE_LOG).
[ ] I have included a self contained code sample to reproduce the problem.
i.e. it's possible to run as 'python bug.py'.

(a static analyzer bug report)
In file numba/np/ufunc/omppool.cpp, numba/np/ufunc/tbbpool.cpp, numba/np/ufunc/_num_threads.c, and numba/np/ufunc/workqueue.c, function PyObject_SetAttrString is used to add functions to the module being imported in the way shown below.
PyObject_SetAttrString(m, "function_name", PyLong_FromVoidPtr(&function));

As the function PyLong_FromVoidPtr returns a new reference, it will lead to a memory leak for the long objects returned by PyLong_FromVoidPtr.

Good catch! Thanks for the report.

Hi, I'm new and I would like to take this issue, please.
Basically I should replace:
PyObject_SetAttrString(m, "function_name", PyLong_FromVoidPtr(&function));

with:
tmp = PyLong_FromVoidPtr((void *) &function);
PyObject_SetAttrString(m, "function_name", tmp);
Py_DECREF(tmp);

correct?

LGTM. It seems that the function PyObject_SetAttrString will not steal a reference according to the CPython system library usages.
Maybe it would be better to write this in a macro?


frigate: fix BindPaths syntax

Current BindPaths directive shows an error on every Frigate start:
Invalid option string, ignoring setting: ro

BindPaths takes two options: "rbind/norbind" which govern whether the bind mount is recursive.
The directive syntax is:
<source>:<target?>:<option?>

This change resolves the error and corrects the BindPaths syntax.
Alternative implementation is to use BindReadOnlyPaths, but the source for the mount is nix store which is read only to begin with.
Description of changes

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[X] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[X] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

I think the bind mount is entirely unnecessary, because migrations have been working even with the misconfigured BindPaths. Please remove it.

Done


Expand cli test cases

This looks great. CI is much needed and your changes to test_cases.py also look reasonable (assuming all tests work the same way as before).

When the formatter is made optional, how do we know that the generated code is valid? Right now we rely on the formatter so the comparison to golden output succeeds.

The code needs rebasing so I can merge.

The formatter is Optional, but not really optional ;-).  The primary goal of that commit is to replace "/bin/true" which is a Linux-ism that isnt appropriate for Windows or macos.
We would still use and require a formatter where one exists.

Thanks for rebasing. Not trying to create any more work for you than needed.
It's not usual for such a thing to happen in an open source project with more than one person committing code.


fix: close popover when history is changed

Details

This PR adds a listener that closes the popover once browser history is changed.
Fixed Issues

$ https://github.com/Expensify/App/issues/22953
PROPOSAL: https://github.com/Expensify/App/issues/22953#issuecomment-1718344042
Tests

Log in to the app and click on the user avatar to open the RHP.
Click anywhere else to close it.
Open any popover.
Press the forward button in the browser.
Verify that the popover disappears.

[x] Verify that no errors appear in the JS console

Offline tests

N/A
QA Steps

Log in to the app and click on the user avatar to open the RHP.
Click anywhere else to close it.
Open any popover.
Press the forward button in the browser.
Verify that the popover disappears.

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:
[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is correct English and approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

https://github.com/Expensify/App/assets/30054992/463d6302-ac08-40ac-a9da-f9f58da28dab

Mobile Web - Chrome

https://github.com/Expensify/App/assets/30054992/88b4d2fc-b363-43ff-97d3-0f3c0aaac49d

Mobile Web - Safari

https://github.com/Expensify/App/assets/30054992/5249c758-7c6e-4236-bc15-d87d88f4a7ed

Desktop

https://github.com/Expensify/App/assets/30054992/37e83156-a806-40c0-a096-ff1d82e2bce8

iOS

https://github.com/Expensify/App/assets/30054992/e58d8112-2d11-487d-b10c-88364b0e87b3

Android

https://github.com/Expensify/App/assets/30054992/eb911755-30ae-4c0c-9d3c-676928c11db7

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/dangrous in version: 1.3.71-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/thienlnam in version: 1.3.71-12 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅


add templates for gogs and jenkins so we can configure the gogs domain or the jenkins seed project git repo

add templates for gogs and jenkins so we can configure the gogs domain or the jenkins seed project git repo

Refer to this link for build results (access rights to CI server needed):
https://fabric8-ci.fusesource.com/job/fabric8-quickstarts-master-pullreq/402/
Test PASSed.


IconComponent issue with 14.22.0

Describe the bug
I'm using the IconComponent() component to render icon in table headers. That was working fine in orchid 14.21.0.
Yesterday I tested orchid 14.22.0 and it's throwing an error now.
I'm not able to update Laravel to v11 because of some dependencies so I can't test orchid 14.23.0 yet. But I guess the issue will also apply in 14.23.0 when I check the files changes.
To Reproduce
TD::make('foo', (new IconComponent('bs.file-earmark-medical', '', null, '1.3em', '1.3em'))->render()())
Orchid\Icons\IconComponent::__construct(): Argument #1 ($finder) must be of type Orchid\Icons\IconFinder, string given, called in /Users/...../app/Orchid/Layouts/Order/OrderViewOrderItemLayout.php on line 144
Server (please complete the following information):

Platfrom Version: 14.22.0
Laravel Version: 10.43.0
PHP Version:  8.3
Database:  MySQL
Database Version:  8.3.0

Just saw that a new param IconFinder is required to pass and reason for my error. How can I get the IconFinder within a layout table?

Hello! I'm sorry you've encountered this issue. It's because some components were reworked to avoid generating temporary compiled Blade files, which was impacting performance. Unfortunately, I didn't explicitly document this change and didn't anticipate its consequences.
Currently, icon rendering relies entirely on blade, so it's challenging to invoke it as you wish. Here are approximate steps:
app(IconComponent::class, [
     'path'   => 'bs.file-earmark-medical',
     'width'  => '1.3em',
     'height' => '1.3em'
])->render()(['attributes' => []]); //  View object

Instead, it's recommended to use the rendering via Blade:
use Illuminate\Support\Facades\Blade;

Blade::render('<x-orchid-icon path="bs.file-earmark-medical"/>');

Thank you, that did help alot.
To use it for the table heading I only had to add ->__toString() at the end to avoid the "must be string" error and it's working.
Still hope for the icon feature for tables #2732 ;)


Chore/Repo maintenance

Please briefly answer these questions:
Base on #1
This PR add some repository maintenance files

what problem are you trying to solve? (or if there's no problem, what's the motivation for this change?)

what changes does this pull request make?

are there any non-obvious implications of these changes? (does it break compatibility with previous versions, etc)

Please add a pre commit config file.

It seems only the last commit is needed in this PR, please rebase.

Why does this pr based on #1? It looks like we only need the last commit.

Why does this pr based on #1? It looks like we only need the last commit.

Before #1, our code has not yet initialized the crate, so the CI scripts introduced by this PR will fail.

Please add a pre commit config file.

done

please add the typo check in the CI

please add the typo check in the CI

done


Failed to negotiate protocol. Wait for response timeout

I tried to run NUnit test cases in Visual Studio 2017 15.7.1 and I got this exception.
[5/17/2018 12:31:26 PM Diagnostic] VirtualReadOnlyTestDataStore.OperationStateChanged State=OperationSetFinished, operationInProgress=False
[5/17/2018 12:31:26 PM Diagnostic] TestDiscoveryStats.OperationStateChanged State=OperationSetFinished, InProgress=False
[5/17/2018 12:31:26 PM Error] Microsoft.VisualStudio.TestPlatform.ObjectModel.TestPlatformException: Failed to negotiate protocol. Wait for response timed out.
   at Microsoft.VisualStudio.TestPlatform.CommunicationUtilities.TestRequestSender.CheckVersionWithTestHost()
   at Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Client.ProxyOperationManager.SetupChannel(IEnumerable`1 sources, CancellationToken cancellationToken)
   at Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Client.ProxyExecutionManager.StartTestRun(TestRunCriteria testRunCriteria, ITestRunEventsHandler eventHandler)
[5/17/2018 12:31:26 PM Error] Microsoft.VisualStudio.TestPlatform.ObjectModel.TestPlatformException: Failed to negotiate protocol. Wait for response timed out.
   at Microsoft.VisualStudio.TestPlatform.CommunicationUtilities.TestRequestSender.CheckVersionWithTestHost()
   at Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Client.ProxyOperationManager.SetupChannel(IEnumerable`1 sources, CancellationToken cancellationToken)
   at Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Client.ProxyExecutionManager.StartTestRun(TestRunCriteria testRunCriteria, ITestRunEventsHandler eventHandler)
[5/17/2018 12:31:26 PM Diagnostic] Cancel requested, actions left in queue 1, exiting...
[5/17/2018 12:31:26 PM Diagnostic] VirtualReadOnlyTestDataStore.OperationStateChanged State=TestExecutionCanceling, operationInProgress=False
[5/17/2018 12:31:26 PM Diagnostic] TestDiscoveryStats.OperationStateChanged State=TestExecutionCanceling, InProgress=False
[5/17/2018 12:31:26 PM Diagnostic] ***    Run finished using 'InMemoryUnitTestWriter' ***
[5/17/2018 12:31:26 PM Informational] ========== Run test finished: 0 run (0:01:00.47631) ==========
[5/17/2018 12:31:26 PM Diagnostic] VirtualReadOnlyTestDataStore.OperationStateChanged State=TestExecutionCancelAndFinished, operationInProgress=False
[5/17/2018 12:31:26 PM Diagnostic] TestDiscoveryStats.OperationStateChanged State=TestExecutionCancelAndFinished, InProgress=False==========

Here are the package and versions I'm using in the project
    <PackageReference Include="NUnit" Version="$(NUnitVersion)" />
    <PackageReference Include="NUnit3TestAdapter" Version="$(NUnitTestAdapterVersion)" />
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="$(MicrosoftTestSdkVersion)" />

    <MicrosoftTestSdkVersion>15.8.0-preview-20180510-03</MicrosoftTestSdkVersion>
    <NUnitVersion>3.10.1</NUnitVersion>
    <NUnitTestAdapterVersion> 3.10.0</NUnitTestAdapterVersion>

I've also tried latest release 15.7.2 but still got the same exception

If I run directly dotnet test. I still got the same exception.

@linluxiang I was not able to reproduce the issue.
Can you please collect and share logs for vstest.console and testhost*exe
https://github.com/Microsoft/vstest-docs/blob/master/docs/diagnose.md#collect-trace-using-config-file
Also, if you are running on a slow machine, try increasing the timeout by setting the environment variable VSTEST_CONNECTION_TIMEOUT.

I was having similar issues with my unit test which was netcoreapp2.0. Building it with net461 would be fine but not netcoreapp2.0
I've added following to my project and it fixed it for netcoreapp2.0
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>

Unfortunately changing the config file doesn't work for me. I have to run dotnet test --diag:log.txt to get the log file.
And I can also give some hint as I tried to decompile vstest.console.exe to debug. I got an Exception on the line below.
https://github.com/Microsoft/vstest/blob/c36ef303f9a9a904a3c5ae70e3ea61a3c05f1eb1/src/Microsoft.TestPlatform.CommunicationUtilities/TcpClientExtensions.cs#L28
It's a NullReference exception and RemoteEndpoint is null !!! I set a breakpoint to see its IsConncted value and the value is true. I don't know how could it happen when IsConnected is true why RemoteEndpoint null.
log.txt
log.host.18-06-08_18-57-03_15512_5.txt

OK. I got another log.txt by changing vstest.console.exe.config.
log.zip

@linluxiang Can you share machine details(OS, etc) and sample repro project?
Can you try downgrading MicrosoftTestSdkVersion to 15.7.2?

@roozbehid-ic Can you share repro project and details steps how you solved it?

@smadala Hi my system is Windows 10 Pro Version 1709 OS Build 16299.371. And I've tried to downgrade but it didn't help

@linluxiang Interesting https://github.com/Microsoft/vstest/blob/c36ef303f9a9a904a3c5ae70e3ea61a3c05f1eb1/src/Microsoft.TestPlatform.CommunicationUtilities/TcpClientExtensions.cs#L28 not part of 15.7.2. Can we have quick skype call to investigate this?
Send a email to samadala at microsoft dot com.

@smadala I did a fully windows reinstallation and the problem was gone..

@linluxiang Thanks for update. I will keep this issue open to fix the NRE.

I get this error message when I try to run my tests on ubuntu-16.04 with dotnet core 2.1 and Microsoft.NET.Test.Sdk 15.7.2.
The logs look very similar to the one posted before. I could reproduce this on multiple machines (docker containers and physical machines). <CopyLocalLockFileAssemblies> doesn't help.
Can you explain more about what's going wrong here? Does anyone understand the root cause?
Are there any workarounds? (e.g. disable tests which do something that cause this issue)

Can you please try to downgrade Microsoft.NET.Test.SDK to 15.7.0? Let us know if that solved the problem.
Get Outlook for Androidhttps://aka.ms/ghei36

From: efrainsteinbach<EMAIL_ADDRESS>Sent: Friday, July 13, 2018 6:50:06 PM
To: Microsoft/vstest
Cc: Satya Madala; Mention
Subject: Re: [Microsoft/vstest] Failed to negotiate protocol. Wait for response timeout (#1607)
I get this error message when I try to run my tests on ubuntu-16.04 with dotnet core 2.1 and Microsoft.NET.Test.Sdk 15.7.2.
The logs look very similar to the one posted before. I could reproduce this on multiple machines (docker containers and physical machines).  doesn't help.
Can you explain more about what's going wrong here? Does anyone understand the root cause?
Are there any workarounds? (e.g. disable tests which do something that cause this issue)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2Fvstest%2Fissues%2F1607%23issuecomment-404831342&data=02|01|samadala%40microsoft.com|b910fdf9e893434a198008d5e8c359d1|72f988bf86f141af91ab2d7cd011db47|1|0|636670848077882660&sdata=jD67lQbKn3YAJCrRrVcFSte9C7Rws%2FfrwqPqio4GhnY%3D&reserved=0, or mute the threadhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAEIutK6T6dRR1PU44KRKJLNDbrL5zd3Vks5uGJ6GgaJpZM4UC0Kc&data=02|01|samadala%40microsoft.com|b910fdf9e893434a198008d5e8c359d1|72f988bf86f141af91ab2d7cd011db47|1|0|636670848077882660&sdata=w0LVvQLEt5zXcW8OsMgcAfJ0O1JEj5OGAxghGkSDIDI%3D&reserved=0.

@efrainsteinbach Did downgrading Microsoft.NET.Test.SDK version helped you? Can you please share Dockerfile/docker image to get repro for this issue? So that we can avoid theoretical fix?

I tried up- and downgrading between 15.6.0 and 15.8.0.. none of them worked.
Here's my dockerfile:
`ARG DOTNET_VERSION=2.1
prepare build image
FROM ubuntu:16.04 AS build
WORKDIR /tmp
ARG DOTNET_VERSION
ENV DOTNET_CLI_TELEMETRY_OPTOUT 1
RUN apt-get update
&& apt-get install -y --no-install-recommends
ca-certificates
curl
apt-transport-https
wget
&& wget -q https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb
&& dpkg -i packages-microsoft-prod.deb
&& apt-get update
&& apt-get install -y --no-install-recommends
dotnet-sdk-${DOTNET_VERSION}
&& rm -rf /var/lib/apt/lists/*
build
WORKDIR /src
COPY . .
run all test projects
RUN set -x && for filename in $(find tests/ -iname '*.?sproj'); do dotnet test --logger:trx -r ./test-results "$filename"; exit 0; done
`
There's nothing exotic here. There must be something peculiar about my projects which causes this not to work. We have very similar docker images working for testing. I'm investigating, but any pointers would be highly appreciated.

Looking into this. I will try to get the diag logs and see where the failure occurring.

@efrainsteinbach I have tried above Dockerfile, I couldn't repo for simple MSTest test project.
Can you please share your test projects on github?
Pass --diag log.txt to dotnet test command and share all log.*.txt files?

Same problem here for Multi-target test project.  Only affects netcoreapp1.0 and 1.1.  Works for other frameworks (net452, net46, net472).  Works on others developer machines.  Has happened to 2 developers now.  Upgrade/downgrade/reinstall of test sdk makes no difference.  Tried reinstalling Visual Studio - no difference.  Problem seen in both Visual Studio and command line.
Only identified fix has been to re-install windows.

@alexsaare Pass --diag log.txt to dotnet test command and share all log.*.txt files?

Log files below
log.host.18-08-01_11-25-17_87760_5.txt
log.host.18-08-01_11-26-18_61992_1.txt
log.host.18-08-01_11-26-21_05959_1.txt
log.host.18-08-01_11-26-23_25667_1.txt
log.txt
log.host.18-08-01_11-24-13_12184_5.txt
log.host.18-08-01_11-24-15_22427_5.txt
log.host.18-08-01_11-24-17_12463_5.txt

source can be found in the repo below (migrate-tests branch)
https://github.com/Insure-Tech/InsuranceHub.Client.Net/tree/feature/migrate-tests

@alexsaare Above logs are from failed test-run?

@alexsaare Nevermind, found the required log.

@smadala I'm going to leave this machine in this state for now (mostly because i don't have time to re-install windows).  So, if you need and further info or want me to try any fixes please let me know.

I'm able to repo the issue.
From log.host.18-08-01_11-24-17_12463_5.txt log messages this looks like RCA is .NET Core 1.0 APIs.
System.PlatformNotSupportedException: System.Reflection.TypeExtensions is not supported on NET Standard 1.3 or 1.5.
TpTrace Error: 0 : 15816, 8, 2018/08/01, 11:24:17.783,<PHONE_NUMBER>, testhost.dll, LengthPrefixCommunicationChannel: MessageReceived: Exception occurred while calling handler of type Microsoft.VisualStudio.TestPlatform.CommunicationUtilities.TestRequestHandler for MessageReceivedEventArgs: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> Newtonsoft.Json.JsonSerializationException: Error setting value to 'MessageType' on 'Microsoft.VisualStudio.TestPlatform.CommunicationUtilities.VersionedMessage'. ---> System.PlatformNotSupportedException: System.Reflection.TypeExtensions is not supported on NET Standard 1.3 or 1.5.
   at System.Reflection.TypeExtensions.IsAssignableFrom(Type type, Type c)
   at System.Linq.Expressions.Expression.ValidateLambdaArgs(Type delegateType, Expression& body, ReadOnlyCollection`1 parameters, String paramName)
   at System.Linq.Expressions.Expression.Lambda(Type delegateType, Expression body, String name, Boolean tailCall, IEnumerable`1 parameters)
   at Newtonsoft.Json.Utilities.ExpressionReflectionDelegateFactory.CreateSet[T](PropertyInfo propertyInfo)
   at Newtonsoft.Json.Serialization.ExpressionValueProvider.SetValue(Object target, Object value)
   --- End of inner exception stack trace ---
   at Newtonsoft.Json.Serialization.ExpressionValueProvider.SetValue(Object target, Object value)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
   at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
   at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
   at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
   at Microsoft.VisualStudio.TestPlatform.CommunicationUtilities.JsonDataSerializer.DeserializeMessage(String rawMessage)
   at Microsoft.VisualStudio.TestPlatform.CommunicationUtilities.TestRequestHandler.OnMessageReceived(Object sender, MessageReceivedEventArgs messageReceivedArgs)
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   at System.Delegate.DynamicInvokeImpl(Object[] args)
   at Microsoft.VisualStudio.TestPlatform.Utilities.MulticastDelegateUtilities.SafeInvoke(Delegate delegates, Object sender, EventArgs args, String traceDisplayName)

But this works fine on other PCs??

Yeah, It could be because .NET Core runtimes.
Can you see is there what is difference between two machine of dotnet --info? Mine is below.
.PS C:\Users\samadala\src\vstest> dotnet --info
.NET Core SDK (reflecting any global.json):
 Version:   2.1.400-preview-008975
 Commit:    462479933b

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.17134
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\2.1.400-preview-008975\

Host (useful for support):
  Version: 2.1.0
  Commit:  caa7b7e2ba

.NET Core SDKs installed:
  1.0.0-preview2-003131 [C:\Program Files\dotnet\sdk]
  1.0.0-preview4-004107 [C:\Program Files\dotnet\sdk]
  1.0.0-rc3-004512 [C:\Program Files\dotnet\sdk]
  1.0.0-rc3-004517 [C:\Program Files\dotnet\sdk]
  1.0.0-rc4-004755 [C:\Program Files\dotnet\sdk]
  1.0.0-rc4-004771 [C:\Program Files\dotnet\sdk]
  1.0.0-rc4-004788 [C:\Program Files\dotnet\sdk]
  1.0.0-rc4-004842 [C:\Program Files\dotnet\sdk]
  1.0.0 [C:\Program Files\dotnet\sdk]
  1.0.2 [C:\Program Files\dotnet\sdk]
  1.0.4 [C:\Program Files\dotnet\sdk]
  1.1.0-preview1-005089 [C:\Program Files\dotnet\sdk]
  1.1.0-rc4-005029 [C:\Program Files\dotnet\sdk]
  1.1.0 [C:\Program Files\dotnet\sdk]
  2.1.1-preview-007118 [C:\Program Files\dotnet\sdk]
  2.1.2 [C:\Program Files\dotnet\sdk]
  2.1.4 [C:\Program Files\dotnet\sdk]
  2.1.100-preview-007328 [C:\Program Files\dotnet\sdk]
  2.1.103 [C:\Program Files\dotnet\sdk]
  2.1.200-preview-007474 [C:\Program Files\dotnet\sdk]
  2.1.201 [C:\Program Files\dotnet\sdk]
  2.1.400-preview-008975 [C:\Program Files\dotnet\sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.1.1-rtm-30818 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.1-rtm-30818 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 1.0.1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 1.0.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 1.0.4 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 1.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 1.1.1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 1.1.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.0.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.0.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.0.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.0.7 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

To install additional .NET Core runtimes or SDKs:
  https://aka.ms/dotnet-download

mine...
.NET Core SDK (reflecting any global.json):
 Version:   2.1.302
 Commit:<PHONE_NUMBER>

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.17134
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\2.1.302\

Host (useful for support):
  Version: 2.1.0
  Commit:  caa7b7e2ba

.NET Core SDKs installed:
  1.0.0-preview1-002702 [C:\Program Files\dotnet\sdk]
  1.0.0-preview2-003121 [C:\Program Files\dotnet\sdk]
  1.0.0-preview2-003131 [C:\Program Files\dotnet\sdk]
  1.0.4 [C:\Program Files\dotnet\sdk]
  1.1.0 [C:\Program Files\dotnet\sdk]
  2.1.202 [C:\Program Files\dotnet\sdk]
  2.1.302 [C:\Program Files\dotnet\sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 1.0.0-rc2-3002702 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 1.0.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 1.0.1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 1.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 1.1.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.0.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

I'll get one from the other guys asap

Still waiting for the others to get back in the office however, in the mean time... the stack trace you posted above got my brain thinking.
We used to have a reference to System.Reflection.TypeExtensions however, this was removed.  In visual studio when I clicked on Manage NuGet Dependencies it was showing under the Installed packages.  Trying to remove it gave an error saying it was not installed.
Looking at the csproj revealed it was still referenced like this...
<ItemGroup Condition="'$(TargetFramework)' == 'net46'">
    <PackageReference Include="System.Reflection.TypeExtensions">
      <Version>4.5.0</Version>
    </PackageReference>
  </ItemGroup>
  <ItemGroup Condition="'$(TargetFramework)' == 'net472'">
    <PackageReference Include="System.Reflection.TypeExtensions">
      <Version>4.5.0</Version>
    </PackageReference>
  </ItemGroup>
  <ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp1.0'">
    <PackageReference Include="System.Reflection.TypeExtensions">
      <Version>4.5.0</Version>
    </PackageReference>
  </ItemGroup>
  <ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp1.1'">
    <PackageReference Include="System.Reflection.TypeExtensions">
      <Version>4.5.0</Version>
    </PackageReference>
  </ItemGroup>
  <ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp2.1'">
    <PackageReference Include="System.Reflection.TypeExtensions">
      <Version>4.5.0</Version>
    </PackageReference>
  </ItemGroup>

This removed the NuGet Issue but the tests still wouldn't run even after a Clean & Rebuild.
So... I ran dotnet nuget locals all -- clear and deleted all everything from C:\Program Files (x86)\Microsoft SDKs\NuGetPackages
I deleted all bin and obj directories then reopened the solution in visual studio.  Clean & Rebuild
Problem solved.  Unit test run again.  I'm not sure how or why those references got in there like that but that seems to have been the issue for me.
Hope this helps someone else.
@smadala Thanks for your assistance with this.

@alexsaare I have seen the "Failed to negotiate protocol" error when testing something with a reference to System.Reflection.TypeExtensions v4.5.0 and a target framework of netcoreapp1.0 or netcoreapp1.1 (2.0 and 2.1 work fine), but for some reason the problem doesn't happen when I reference System.Reflection.TypeExtensions v4.4.0 or lower - that works on all target frameworks for me.

Looks like we have multiple reasons for Failed to negotiate protocol. Wait for response timeout error. We are seeing this error due to failure of inter process communication in vstest(vstest.console <-> testhost).
Here is summary for solutions/workarounds discussed in this issue.

https://github.com/Microsoft/vstest/issues/1607#issuecomment-394521170
I was having similar issues with my unit test which was netcoreapp2.0. Building it with net461 would be fine but not netcoreapp2.0

I've added following to my project and it fixed it for netcoreapp2.0
Solution/workaround: <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>

https://github.com/Microsoft/vstest/issues/1607#issuecomment-395824567
It's a NullReference exception and RemoteEndpoint is null !!! I set a breakpoint to see its IsConncted value and the value is true. I don't know how could it happen when IsConnected is true why RemoteEndpoint null.

Solution/workaround: Downgrade Microsoft.NET.Test.Sdk version to <= 15.7.0 or upgrade to >=15.9.0-preview-* Fixed: https://github.com/Microsoft/vstest/pull/1713, Yet to release.

https://github.com/Microsoft/vstest/issues/1607#issuecomment-409236658
I tried up- and downgrading between 15.6.0 and 15.8.0.. none of them worked.

Here's my dockerfile:
ARG DOTNET_VERSION=2.1

# prepare build image
FROM ubuntu:16.04 AS build

WORKDIR /tmp
ARG DOTNET_VERSION
ENV DOTNET_CLI_TELEMETRY_OPTOUT 1

RUN apt-get update \
&& apt-get install -y --no-install-recommends \
    ca-certificates \
    curl \
    apt-transport-https \
    wget \
&& wget -q https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb \
&& dpkg -i packages-microsoft-prod.deb \
&& apt-get update \
&& apt-get install -y --no-install-recommends \
    dotnet-sdk-${DOTNET_VERSION} \
&& rm -rf /var/lib/apt/lists/*

# build
WORKDIR /src
COPY . .

# run all test projects
RUN set -x && for filename in $(find tests/ -iname '*.?sproj'); do dotnet test --logger:trx -r ./test-results "$filename"; exit 0; done

There's nothing exotic here. There must be something peculiar about my projects which causes this not to work. We have very similar docker images working for testing. I'm investigating, but any pointers would be highly appreciated.
Solution/workaround:  We don't know RCA for this. @efrainsteinbach Can you please create new issue with repo test project?

https://github.com/Microsoft/vstest/issues/1607#issuecomment-409508532
Same problem here for Multi-target test project.  Only affects netcoreapp1.0 and 1.1.  Works for other frameworks (net452, net46, net472, netcoreapp2.0, netcoreapp2.1).  Works on others developer machines.  Has happened to 2 developers now.  Upgrade/downgrade/reinstall of test sdk makes no difference.  Tried reinstalling Visual Studio - no difference.  Problem seen in both Visual Studio and command line.

Only identified fix has been to re-install windows.
Solution/workaround: https://github.com/Microsoft/vstest/issues/1607#issuecomment-409563971
Because too many comments I have to lock the conversion. Please create new issue with as much details as possible if above solutions/workarounds didn't work for you.


Any plans to support components?

Just an idea of doing API for components: API
The benefits of providing that API is that we might want to allow user defined components as well as see them defined in other crates.
Note: GAT for Message is used to leave opportunities for GADTs use for messages. Hope that they will be eventually added.
Unresolved question is do we really need to go with both State and View associated types?

What do you mean by "components" ? Are you referring to what was discussed in #648, or are you referring to a widget library, like https://github.com/iced-rs/iced_aw ?

What do you mean by "components" ? Are you referring to what was discussed in #648, or are you referring to a widget library, like https://github.com/iced-rs/iced_aw ?

The first, I've tried to build an example client for my study project and my Message type was like 15 variants, so I tried to build an initial version of components API, on top of iced. It worked well, but I had no way to typecheck messages that went "upper", to a holder of a widget.

I recently introduced a Component trait that allows users to use the Elm Architecture for implementing custom widgets in #1131.
However, my previous comment still stands! You should rarely use this trait! Mainly, it should only be used to implement very "internally state-heavy" custom widgets.


confusing behavior when field is named "schema"

If I understand correctly, "schema" is not a reserved word in capnproto schema files. However, it has a special meaning in pycapnp. Is there an idiomatic way to access fields named "schema" without resorting to to_dict?
Here's a strangely-behaving python script.
from tempfile import NamedTemporaryFile
import capnp

SCHEMA = b'''
@0x9ae8e764f07b1c27;

struct Message {
  notSchema @0 :Int32;
  schema @1 :Int32;
}

const test :Message = (notSchema = 1, schema = 2);
'''

with NamedTemporaryFile(suffix='.capnp') as tmp:
    tmp.write(SCHEMA)
    tmp.flush()
    schema_schema = capnp.load(tmp.name)
    print('test:', schema_schema.test)
    print('test.notSchema:', schema_schema.test.notSchema)
    print('test.schema:', schema_schema.test.schema)

Here is its output:
test: (notSchema = 1, schema = 2)
test.notSchema: 1
test.schema: <schema for tmpsuhzlq3o.capnp:Message>

Until I read the source, I would've expected this output:
test: (notSchema = 1, schema = 2)
test.notSchema: 1
test.schema: 2

...but when I explicitly access my "schema" field, I get the special behavior.

Ya, unfortunately schema is a reserved keyword for pycapnp. There's a handful of others too (like adopt, write, etc.). Would it have helped you if pycapnp printed a warning when loading such a schema?
To workaround this, you'll have to use the _get and _set methods. Even though they begin with underscores, they are "public" in the sense that I won't ever remove them, and I really should add docs about them. They're methods of last resort for conflicts such as this.

Even though it would've saved me some time, I'd rather not have a warning. In my case, I've kept the field name and gotten the code to work with _get. (Thanks!) A warning would just confuse users now that the code works.

You'd have to suppress them using https://docs.python.org/2/library/warnings.html#temporarily-suppressing-warnings. Obviously non-ideal, so I guess I'll hold off until more people complain :)


Better internal database_name for _internal database

https://latest.datasette.io/login-as-root then https://latest.datasette.io/_internal

That database_name is ugly. It should just be _internal.

There's some messy code that needs fixing here. The datasette.databases dictionary right now has a key that corresponds to the /_schemas URL in the path, and a value thats a Database()object. BUT... theDatabase()` object doesn't know what its key is.
While fixing this I should fix the issue where Datasette gets confused by multiple databases with the same stem: https://github.com/simonw/datasette/issues/509

The code for building up that .databases dictionary is a bit convoluted. Here's the code that adds a :memory: database if the user specified --memory OR if there are no files to be attached:
https://github.com/simonw/datasette/blob/ebc7aa287c99fe6114b79aeab8efb8d4489a6182/datasette/app.py#L221-L241
I'm not sure why I wrote it this way, instead of just calling .add_database(":memory:", Database(..., is_memory=True).

Here's the commit where I added it. https://github.com/simonw/datasette/commit/9743e1d91b5f0a2b3c1c0bd6ffce8739341f43c4 - I didn't yet have the .add_database() mechanism. Today the MEMORY object bit is no longer needed.

A Database should have a .name which is unique across the Datasette instant. The path should be optional, only set for file databases. A new .memory_name property can be used for shared memory databases.

Database internal class is documented here: https://docs.datasette.io/en/latest/internals.html#database-class

datasette-graphql returns an error due to this issue:

On the console:
INFO:     <IP_ADDRESS>:63116 - "POST /graphql/_internal HTTP/1.1" 500 Internal Server Error
Traceback (most recent call last):
  File "/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/promise/promise.py", line 844, in handle_future_result
    resolve(future.result())
  File "/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/datasette_graphql/utils.py", line 603, in resolve_table
    data, _, _ = await view.data(
  File "/Users/simon/Dropbox/Development/datasette/datasette/views/table.py", line 304, in data
    db = self.ds.databases[database]
graphql.error.located_error.GraphQLLocatedError: ':memory:c6dd5abe1a757a7de00d99b699175bd33d9a575f05b5751bf856b8656fb07edd'

I removed that MEMORY object() in dcdfb2c301341d45b66683e3e3be72f9c7585b2f

Fun query:
select table_name, group_concat(name, ', ') from columns group by database_name, table_name

https://latest.datasette.io/_internal?sql=select+table_name%2C+group_concat(name%2C+'%2C+')+from+columns+group+by+database_name%2C+table_name

I'm going to have the .add_database() method select the name used in the path, de-duping against any existing names. It will then set database.name to that so that the database has access to its own name.


add SlashDB Data Discovery features

The angular-slashdb api should support main SlashDB Data Discovery features like
Any request may be called with extension .json or header Accpet=application/json
List available databases
http://slashdb:6543/db.json
List tables in database
http://slashdb:6543/db/SQLiteChinook.json
Data drill down
GET parameters:

http://slashdb:6543/db/SQLiteChinook/Customer/CustomerId/..2.json?**depth=1**
http://slashdb:6543/db/SQLiteChinook/Customer.json?**limit=2**
http://slashdb:6543/db/SQLiteChinook/Customer.json?**offset=2**
http://slashdb:6543/db/SQLiteChinook/Customer/FirstName,LastName,Email.json?**sort=LastName**
http://slashdb:6543/db/SQLiteChinook/Customer/LastName.json?**distinct**

Adding objects
POST request with object to table url http://slashdb:6543/db/SQLiteChinook/Customer.json should result in adding new resource.
Updating data
Object update using PUT request with object to object url ttp://slashdb:6543/db/SQLiteChinook/Customer/CustomerId/2.json or
Scalar update using PUT request with value to scalar url slashdb:6543/db/SQLiteChinook/Customer/CustomerId/1/LastName.json

Adding objects
Updating data

A post method exists and I added a new put method just a moment ago - usage is exactly the same as with post. I'll add a example usage to the example app later.

List available databases
List tables in database

That works just fine via the get method, see main.js in example app.
The user can now pass in an additional request config object to set ad-hoc request attributes i.e. headers, query params - this works for get, post, put, executeQuery (SQL Pass-thru) methods of the slashDB service.
var requestConfig = {
    params: {
        limit: 50,
        sort: 'Name',
        offset: 3
     },
    headers: {
        'Accpet': 'application/json'
    }
};
slashDB.get('/db/SQLiteChinook/Customer.json', requestConfig);

For more on config object content see https://code.angularjs.org/1.5.7/docs/api/ng/service/$http#usage .


Adding Nextjs and Tailwindcss

Initial set up with nextjs and tailwindcss. Also adding github dependabot for dependencies updates.

If you like tailwind I recommend checking out https://chakra-ui.com/ instead but both are valid options

Also ur item on the Project board about eslint and code formatting isnt done with this PR. You need more standards added and a .vscode file would be nice. Also every item shouldn't be moved to done until PR is complete

If you like tailwind I recommend checking out https://chakra-ui.com/ instead but both are valid options

I have used charkra ui. Definitely a good option as well.

Also ur item on the Project board about eslint and code formatting isnt done with this PR. You need more standards added and a .vscode file would be nice. Also every item shouldn't be moved to done until PR is complete

I personally use nvim editor but I will add a standard vsco file for sure.


'make AMPI' doesn't rebuild libmoduleampi.so

Original issue: https://charm.cs.illinois.edu/redmine/issues/1941

One of the Charmworks interns reported this: doing 'make AMPI' in an existing build of AMPI only rebuilds the static library, not the shared one if it was built with --build-shared.

Original date: 2018-11-12 00:53:30

Not sure if something has changed since this was reported, but I could not reproduce this (on Linux or Darwin).
Test:
$ ./build AMPI multicore-linux-x86_64 -j5 --build-shared
$ touch src/libs/ck-libs/ampi/ampi.C
$ cd tmp && make AMPI
$ ls -l lib/libmoduleampi.a lib_so/libmoduleampi.so
-> both files have the same modification time.

Original date: 2019-02-12 23:55:27

Closing this for now as I can't reproduce it.