Typescript: Realistic type definition errors

Type checking, and type definitions errors could me made significantly easier to debug by boiling down the type definitions to something realistic.

This first example shows the kind of errors I run into in actual development.  It's totally unreadable.

This second example shows the same effect

For this second example, it would be a lot more useful if instead it just showed what the type realistically is, and what it was missing.  Ie:
Property "badProp" does not exist on type `{
  requestId: string;
  type: string;
  id?: string;
  createdAt?: Date;
  data?: string;
}`

This could be a configuration thing, but I can't imagine any reason why a person would want cryptic error messages by default.

Kind of a difficult one.
It's not always true that the fully expanded type is more readable than the type alias.

I personally manually control the emit of my types to try and get the best error message I can.

I personally manually control the emit of my types (via type hackery)

How do I get started on that?
And I'm sure this is one of those threads that once you start pulling... but, never-the-less, it couldn't be any worse than it is for some of these errors.

To force TS to expand types,
https://github.com/microsoft/TypeScript/issues/3455
To force TS to not expand types (situational, doesn't work for all cases),
https://github.com/microsoft/TypeScript/issues/34777#issuecomment-551993933

This is the most helpful response I think I've ever gotten to a GH issue.  Thank you very much.... I'm going down the rabbit hole.

A way to reproduce the error you saw would be very useful. We can sometimes improve error messages based on the use case.
Anyway it's not at all clear what the right rule is here; if one way were just always better than the other, that's the one we'd be doing by now (one would hope).
Let's say you had something like
interface Options {
  height: number;
  length: number;
  depth: number;
  width: number;
  color: string;
  name: string;
  orientation: string;
  location: string;
  age: number;
  // 30 other properties
}

and you use Options a lot throughout your code.
Somewhere, a function says
function fn(opts: Partial<Omit<Options, "orientation">>) {

}

and you call it incorrectly.
What would you want to see? Partial<Omit<Options, "orientation">> which says "Options, but it's all optional, and no orientation" or
{
  height?: number;
  length?: number;
  depth?: number;
  width?: number;
  color?: string;
  name?: string;
  location?: string;
  age?: number;
  // 30 other properties
}

where you will have to manually diff the property list to figure out which one got removed? That would be clearly worse in a lot of cases.
You can't just rely on "Well if the alias appears in the code, then use that" rule either because these types can appear in higher-order forms, e.g.
function fn<T, U extends keyof T>(obj: T, key: U, others: Partial<Omit<T, U>>) {

where you'd still want the unexpanded alias form.

I suppose the ideal would be some form of switching between the two.  I don't expect that to have any easy way, but (if it was possible) it might be like:

Get error: Partial<Omit<Options, "orientation">>
click "show flattened"
have it turn to the long bare version
then click "show symbolic" to go back.

Anyway it's not at all clear what the right rule is here;

Perhaps there is a way to pass this logic off to user land?  There are some things I'd like to try.
Speculatively, I think it might be effective to show flat versions of anything with a symbolic tree of over 3-4 nodes.  Other times, it could perhaps fit both the symbolic and flat version one after another.
I've been getting really into advanced, conditional, and utility types for my projects.

I suppose the ideal would be some form of switching between the two.

A feature for this, mayhaps?

@weswigham That would definitely be a good way to go about it.  Really, anything works for me, as long as I can see what the final list of properties and types for them is.

I'm going to post examples here as they come up.

The thing is, I feel like most people don't know how to get the current type system to produce "good" type emit. Especially for complex generic types.
There are tricks for these things. But sometimes, the types are just too large and some amount of difficult-to-read output is unavoidable.

I've found a solution for my scenario, and it is to create facade types that are simple and assert their equivalency to my more complex (and realistic) types elsewhere.
I'm not sure what the limitation of facade types is, but so far it's doing the trick.

Just started to find a way to fold a type in error message. I'm new in typescript and sometimes I fight with it so hard to be safe typed. But when I see message like this I start to consider renaming this file to .js extension.


compreface-api cannot connect to Docker Postgres container if name contains an underscore

Describe the bug
A clear and concise description of what the bug is.
compreface-api using docker-compose, cannot connect to a Postgres Docker container whose name contains an underscore. The error shown in the logs is: java.sql.SQLException: Unsupported database URL.
To Reproduce
Steps to reproduce the behavior:

In docker-compose swap the Postgres container name's hyphens with underscores (container_name: "compreface_postgres_db")
In .env swap the postgres_domain name's hyphens with underscores (postgres_domain=compreface_postgres_db)
Docker-compose up
See error java.sql.SQLException: Unsupported database URL

Expected behavior
Can use Postgres container names that contain underscores
Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

OS: Repeated on macOS Monterey 12.3.1  / and on Ubuntu server 20.04
Browser [e.g. chrome, safari] na
Version [e.g. 22] na

Additional context
Add any other context about the problem here.

The error appears to be misleading, as running the compreface-admin container works fine (connects and creates the required db tables etc on first run)
Running Postgres with a name other than the default works as expected as long as it doesn't contain an underscore
This seems to be relating to the notificationReceiverService as that is where the error is raised

Closing as after further investigation this is due to the PG driver used not supporting hostnames that have underscores in them (even though it is common to see docker containers named with underscores) due to their following the standards for hostname naming ie, underscores are not allowed.
https://github.com/distribution/distribution/issues/2160


history.push not working

I am using version 4.10.1 of the history package which is not working correctly.
I have the following configuration:
// use redux
// file user.actions.js
import { createBrowserHistory } from 'history'
const history = createBrowserHistory()
export const login = () => dispatch => {
history.push('/home')
}
What is expected is that when running history.push ('/ home'), load the new route into the url and redo the corresponding component in the browser.
How are you behaving?
The path is added in the browser url, BUT the component is NOT changing.
Example in live codesandbox
https://codesandbox.io/s/mutable-bush-22kru?fontsize=14&hidenavigation=1&theme=dark

I will close the bug since I managed to solve the problem with history.push.
The solution?
The <BrowserRouter> must be changed to the <Router> component of react-router-dom, an as Router must not be used, but the native component.
// file inde.jsx
import { Router } from 'react-router-dom'
import history from './utils/history'

ReactDOM.render(
    <Router history={history}>
      <App />
    </Router>,
  document.getElementById('root'),
)

// file user.actions.js
import history from '../../../utils/history'

export const login = () => dispatch => {
  history.push('/home')
}


HELP! Unrecognised node type: LogicalExpression

With this code
/**
 * @ngdoc method
 * @name foo#bar
 * @description
 * Does important bar stuff on foo and will only be present if `readOnly` flag isn't set
**/

foo.bar = !options.readOnly && function() {
    // blabla
}

I get the following output when running the grunt task:
warn:    HELP! Unrecognised node type: LogicalExpression
warn:     type=LogicalExpression, operator=&&, type=UnaryExpression, operator=!, type=MemberExpression, computed=false, type=Identifier, name=options, range=[1438, 1445], line=51, column=15, line=51, column=22, type=Identifier, name=readOnly, range=[1446, 1454], line=51, column=23, line=51, column=31, range=[1438, 1454], line=51, column=15, line=51, column=31, prefix=true, range=[1437, 1454], line=51, column=14, line=51, column=31, type=FunctionExpression, id=null, params=[], type=BlockStatement, body=[], range=[1469, 1494], line=51, column=46, line=53, column=5, trailingComments=[type=Line, value= blabla, range=[1479, 1488], line=52, column=8, line=52, column=17], generator=false, expression=false, range=[1458, 1494], line=51, column=35, line=53, column=5, range=[1437, 1494], line=51, column=14, line=53, column=5

If I replace the assignment with if (!options.readOnly) foo.bar = ..., I instead get
warn:    HELP! Unrecognised node type: IfStatement
warn:     type=IfStatement, type=UnaryExpression, operator=!, type=MemberExpression, computed=false, type=Identifier, name=options, range=[1432, 1439], line=51, column=9, line=51, column=16, type=Identifier, name=readOnly, range=[1440, 1448], line=51, column=17, line=51, column=25, range=[1432, 1448], line=51, column=9, line=51, column=25, prefix=true, range=[1431, 1448], line=51, column=8, line=51, column=25, type=ExpressionStatement, type=AssignmentExpression, operator==, type=MemberExpression, computed=false, type=Identifier, name=foo, range=[1450, 1453], line=51, column=27, line=51, column=30, type=Identifier, name=bar, range=[1454, 1457], line=51, column=31, line=51, column=34, range=[1450, 1457], line=51, column=27, line=51, column=34, type=FunctionExpression, id=null, params=[], type=BlockStatement, body=[], range=[1471, 1496], line=51, column=48, line=53, column=5, trailingComments=[type=Line, value= blabla, range=[1481, 1490], line=52, column=8, line=52, column=17], generator=false, expression=false, range=[1460, 1496], line=51, column=37, line=53, column=5, range=[1450, 1496], line=51, column=27, line=53, column=5, range=[1450, 1497], line=51, column=27, line=53, column=6, alternate=null, range=[1427, 1497], line=51, column=4, line=53, column=6, leadingComments=[type=Block, value=*
     * @ngdoc method
     * @name foo#bar
     * Does important bar stuff on foo and will only be present if `readOnly` flag isn't set.
     , range=[1274, 1421], line=45, column=4, line=49, column=7]

I've been able to trace it to function findCodeName in packages/jsdoc-ext/services/code-name.js.

Hi,
I've added a FAQ entry on this issue.
You've either change your code as follows
/**
 * @ngdoc method
 * @name foo#bar
 * @description
 * Does important bar stuff on foo and will only be present if `readOnly` flag isn't set
**/
function foorBar() {
    // blabla
}
foo.bar = !options.readOnly && fooBar;

or add matcher for LogicaExpression or IfExpression' to handle this issue, dgeni-packages/jsdoc` module assumes that there's a formal API and tries to match 'subjective' codepoints.


Detection fails without explanation

I have a buildpack called "weblogic-ai" using the buildpack API 0.7. The detection only contains the following:
#!/bin/bash
set -eo pipefail

if [[ ! -d $CNB_APP_DIR/auxiliary-image ]] || [[ ! -f $CNB_APP_DIR/pom.xml ]]; then
   exit 100
fi

I have set CNB_LOG_LEVEL to "debug". The detection phase ends with this:
======== Results ========
fail<EMAIL_ADDRESS>ERROR: No buildpack groups passed detection.
ERROR: Please check that you are running against the correct path.
ERROR: failed to detect: no buildpacks participating

It is not possible to find the reason for this. There is no explanation. Getting stdout or stderr from the detect script also doesn't seem to be possible.
I have also tried it with the default /workspace instead of $CNB_APP_DIR, but the result is the same. It also fails when the detect script is empty, which indicates it is not called.
This is with kpack 0.5.3.
With the pack CLI I can run the build successfully.
If I create an image with the builder as the base image and an extra layer that populates /workspace with the project and then run the image interactively, it works. I go to /tmp and run /cnb/lifecycle/lifecycle detect, which produces group.toml and an empty plan.toml. After that /cnb/lifecycle/lifecycle build just performs the build.
In kpack the prepare phases succeeds, saying the git repo was cloned successfully in /workspace. It seems like the contents of the directory is different despite this. I checked the emptyDir for the pod on the node it has run on and apparently it is empty. Shouldn't the cloned git repo be there at least?

Sometimes it works, sometimes it doesn't. It won't be reproducible.


Nest wrapped typespec statements

Description
This pull request nests wrapped typespec statements.
For example,
@spec format(String.t,)
:: {:ok, String.t} | SyntaxError.t | SemanticsError.t

is formatted:
@spec format(String.t,)
  :: {:ok, String.t} | SyntaxError.t | SemanticsError.t

and
@spec async_stream(Enumerable.t, String.t, term, opts)
:: SyntaxError.t
| SemanticsError.t
| InterruptibleIOError.t
| ErlangError.t
| ParseError.t

is formatted:
@spec async_stream(Enumerable.t, String.t, term, opts)
  :: SyntaxError.t
  | SemanticsError.t
  | InterruptibleIOError.t
  | ErlangError.t
  | ParseError.t

Checklist

[ ] The change has been discussed in a GitHub issue.
[x] There are tests for the new functionality.
[x] I agree to adhere to the code of conduct.

Are there any packages that use this typespec style?
For comparison, the core library uses this style:
@spec async_stream(Enumerable.t, String.t, term, opts) ::
  SyntaxError.t |
  SemanticsError.t |
  InterruptibleIOError.t |
  ErlangError.t |
  ParseError.t

For example lib/elixir/lib/protocol.ex#L252

Aim to conform to this style guide: https://github.com/lexmag/elixir-style-guide
Could you open an issue there please? Seems the guide doesn't specify this.

@lpil A similar issue (for callbacks) was opened recently: https://github.com/lexmag/elixir-style-guide/issues/44
I can't say though if the core team has definitively decided on the indentation rules for callbacks and typespecs.


Manual add trust broken

https://github.com/stellarterm/stellarterm.github.io/issues/1
Reproducible bug.

Fixed. UI is still not user friendly but at least the button works.


✨ Proposal: Swagger spec generation from annotations and structs

Motivation
JIRA: https://issues.jboss.org/browse/AEROGEAR-2331
Description

see content added to README for how the generation works
CORS support is added to allow the use of Swagger UI locally

Progress

TBD

Additional Notes
CORS support may be required longer term (for browser based access to
this service), but isn't essential at this time.
It may be desirable to serve the swagger.json file directly from the
running server instead

@david-martin Will take a deeper look at this when I get the chance. I'd also like to throw out a suggestion. It would be cool if we could somehow integrate this into our CI release/publish pipeline. I've written Open Source tooling to do this in a previous project.
One of the major pain points I had with the Swagger UI is that they only show how to serve the swagger UI using a docker image they provide.
I wanted to auto generate and publish a Swagger UI as part of a CI process and I wanted it to be fast and cheap. i.e. you shouldn't need to run a server just to deliver what is essentially a static site.
In the interest of automation I wrote this neat little tool:
https://www.npmjs.com/package/swagger-gen
This is a CLI tool that takes a swagger json spec and generates a static Swagger UI. This enables the following:

Can be hosted (essentially for free) using something like an S3 bucket.
Can be used in CI to generate and publish the site. (publishing would done with additional tools such as s3 or Github pages)
Can be directly viewed on a developer's machine without any additional steps. just double click the index.html file

You lose out on the ability to make queries on a running server (unless you actually start one up), but it makes for a handy way to generate some decent API docs. I wouldn't like to slow down CI by also including Node.js, but given that I've already written this code before (and it's very small), it wouldn't take more than a day to rewrite it in Go.
This is not critical but it might be nice to have.

Really cool change! It is good case for trying out golang for servers.
Definitely worth sharing on the list. I will try to take look on this in near future.

@paolobueno Based on https://github.com/aerogear/aerogear-app-metrics/pull/39 being closed, are there any scheduled changes to the API that would mean updating the annotations in the PR?

@david-martin yes, no intended http api changes anytime soon.

@david-martin I would like to see the swagger.json file being added to the .gitignore instead of checking it into the repo considering it can be generated.
Either way, I'm happy with this PR.

@david-martin has asked me to take over this PR and get it merged. Because this PR was made from David's fork, I've asked him to push an upstream branch so I can make the necessary changes. I'm going to close out this PR in favour of the newly opened PR that still contain the same changes (and some additional minor things)


Landing page for each data source as main CTA post-ELT setup

Migrated from GitLab: https://gitlab.com/meltano/meltano/-/issues/1601
Originally created by @derek-knox on 2020-01-24 13:35:21

Here is the context for the subgrouping of a reports landing page https://gitlab.com/meltano/meltano/issues/1582#note_273489400
@DouweM Please check the link above for the subgrouping context we will do for each data source (though the example is specifically for Facebook).
So this issue is ultimately about improving context and CTAs (visible by default vs. hidden behind a click/hover) from a data source and/or its pipeline. Currently we have CTAs (that lack context) via the "Reports" dropdown associated with each pipeline in the "Data" page or the "Reports" main navigation dropdown.
My hunch is that we want to do one or the other as opposed to both:

Nest CTAs with added context with each pipeline
Have a dedicated landing page that does this (the aforementioned "Reports" landing page)

@DouweM If you have any thoughts, please share. I see both being useful, but I also see implementing each as redundant.
Related notes from #1757
Let's make this MVC for now (hidden route) to dogfood a landing page we would like to see for Facebook.

List the models themselves (call them "report builders/templates")
List any reports that leverage that data source
Link to the documentation and tutorials
List the data points and their definitions (with thematic groupings)

View 24 previous comments from the original issue on GitLab


Falco 0.33.1 "node name does not correspond to a node in the cluster" during startup due to jq filter failure on NotReady node with status.addresses missing

Describe the bug
When starting falco on EKS with:
        - '--k8s-node'
        - $(FALCO_K8S_NODE_NAME)

we've experienced whole DaemonSet failures (all new pods failing to start/restart) reporting errors like: Error fetching K8s data: Failing to enrich events with Kubernetes metadata: node name does not correspond to a node in the cluster: ip-xxx-yy-zzz-www.us-west-1.compute.internal. After some looking around and enabling libs_logger.enabled: true we've been able to narrow it down to: https://github.com/falcosecurity/libs/blob/01c07df720708f19b6ba3e2f6857bddb8c2c4779/userspace/libsinsp/socket_handler.h#L792
causing this error line:
[libs]: Socket handler (k8s_node_handler_state), [https://<IP_ADDRESS>] filter processing error "json_query filtering result invalid."; JSON: <{"kind":"NodeList","apiVersion":"v1","metadata":{[HUMONGOUS-API-RESPONSE]}}>, jq filter: <{ type: "ADDED", apiVersion: .apiVersion, kind: "Node",  items: [  .items[] |   {   name: .metadata.name,   uid: .metadata.uid,   timestamp: .metadata.creationTimestamp,   labels: .metadata.labels,   addresses: [.status.addresses[].address] | unique   } ]}>

While digging more, this failure is caused by a NonReady node being returned which does not present any .addresses in the .status field:
example:
{
    "metadata": {
        "name": "ip-10-5-13-255.us-west-1.compute.internal",
    },
    // ....
    "status": {
        "conditions": [
          /// ...
        ],
        "daemonEndpoints": {
            "kubeletEndpoint": {
                "Port": 0
            }
        },
        "nodeInfo": {
            "machineID": "",
            "systemUUID": "",
            "bootID": "",
            "kernelVersion": "",
            "osImage": "",
            "containerRuntimeVersion": "",
            "kubeletVersion": "",
            "kubeProxyVersion": "",
            "operatingSystem": "",
            "architecture": ""
        }
    }
}

How to reproduce it
remove status.addresses field from a single k8s node returned by https://<IP_ADDRESS>/api/v1/nodes?pretty=false
Expected behaviour
such node should not prevent all other falco pods from starting
Environment

Falco version: 0.33.1
OS: bottlerocketOS
Kernel: n/a
Installation method: Kubernetes+Helm

/milestone 0.34.0


Jwt token with audience & is not issued for these clientIds[ & ]

Hi Colleages,
Today I start getting an error while reaching to a CF destination, "Jwt token with audience & is not issued for these clientIds[ & ]" in my local as well as in deployed code.
It was working fine few days back and suddenly started getting issue since yesterday.
installed library versions are as below:
├──<EMAIL_ADDRESS>└─┬<EMAIL_ADDRESS>└──<EMAIL_ADDRESS>deduped
If I add iasToXsuaaTokenExchange: false, in the call, message "Failed to verify JWT", starts coming.
For any further detail on steps to reproduce and github repo link, please contact me on our internal teams chat at<EMAIL_ADDRESS>Best Regards
Krishan Raheja

Closing due to inactivity.


how give refresh token?

how can give refresh token for use when the access token expired?

If done correctly the browser/client should send the token back to the django server and ask for the information that you want along with the token (or maybe just to vertify its good) if it's not then you should just call the user to relogin, I believe it should send an authentication error to your browser/client. Thats the basic structure your going to want to achieve, which is called a user load function.


Can't get to work

Okay, I have downloaded all the dependencies for this, but I'm still running into errors.
I have spent hours trying to get this to work, and I have no idea what I did wrong.
If your wondering, here are the errors
First the program runs into a syntax error:

Then at the end, it gets this error:

What version of python are you using? I have tested armchair-expert with python 3.5 and 3.6. Several people have got it working on Windows as well.
I recommend running armchair-expert with the Anaconda distribution of python, and install tensor flow with "conda install tensorflow".

Minimum tensorflow 1.5 is required from what I saw today.


v2.0 - api updates

Codecov Report

Merging #15 (e28edb3) into main (e01586d) will decrease coverage by 4.92%.
The diff coverage is 95.00%.

:exclamation: Current head e28edb3 differs from pull request most recent head 7119b57. Consider uploading reports for the commit 7119b57 to get more accurate results

@@            Coverage Diff             @@
##             main      #15      +/-   ##
==========================================
- Coverage   89.98%   85.07%   -4.92%
==========================================
  Files           3        4       +1
  Lines         679      355     -324
  Branches      187      112      -75
==========================================
- Hits          611      302     -309
+ Misses          7        3       -4
+ Partials       61       50      -11

Flag
Coverage Δ

unittests
85.07% <95.00%> (-4.92%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

lib/public/task_pool/task_pool.h
83.75% <ø> (-8.92%)
:arrow_down:

lib/task_pool.cpp
100.00% <ø> (+17.29%)
:arrow_up:

lib/public/task_pool/traits.h
94.44% <80.00%> (+0.32%)
:arrow_up:

lib/public/task_pool/pipes.h
100.00% <100.00%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


saga support dubbo or not?

can i use saga with dubbo? i test it and found dubbo will always timeout, i think may be something conflict, does anyone have a try?
有没有人尝试将saga用于dubbo服务？从原理上来说应该是可以的， 但测试了下会导致dubbo总是超时

thank u for your reply, i add dubbo filter to pass omega context from consumer to provider, and it seems work fine now.

@wuzunqian  Do you mind to submit a PR for it?
I think there are lots of Dubbo users want to use this feature.

@WillemJiang ok, i will fork and submit a PR when i was free

@wuzunqian Great, I'm looking forward you PR.

@wuzunqian  Here is the JIRA  https://issues.apache.org/jira/browse/SCB-245  for it.
If you add SCB-245 in you PR log, the PR record will be sent to JIRA automatically.


Array of enums

I have an issue regarding arrays of enums:
If I have the following class, where B is an Enum:
@Parcel
class A {
    public B[] elems; // B is an enum
    ....
}

The code generated is for the class is:
public class A$$Parcelable implements ... {
    ....
     private A readA(android.os.Parcel parcel$$2) {
         A a$$1;
         a$$1 = new A();
         java.lang.String b$$0 = parcel$$2 .readString();
         b$$1.elems = ((B[]) ((b$$0 == null) ? null : Enum.valueOf(B[].class, b$$0)));
         ...
     }

     private void writeA(A a$$3, android.os.Parcel parcel$$4, int flags$$0) {
         B[] b$$1 = a$$3.b;
         parcel$$4.writeString(((b$$1 == null) ? null : b$$1.name()));
         ...
     }
}

So arrays of enums are processed as enums.

Hmm, I thought this case was covered.  Let me investigate.

Made a quick fix PR,  which will wait for the next release.  In the mean time, could you use a List<B> instead?

Sure. Thx

@johncarl81 when will be the next release?

Very soon, trying to finalize some other big changes.  This update to fix the enums is also somewhat of a band-aid, I'd like to try and fix it in a better way.  Do you need it for a release or something?

No don't worry, no rush. It is just to know when to expect it. Thx :)

If you have some free cycles I'd appreciate a review (try the SNAPSHOT out on your project) on the other PRs.

Sure, i'll check it later today

It works perfect.
In my case the enum implements parcelable (just for a short time, it will be moved to Parceler), so now it is treated as an array of parcelables.

Merged!


cmake: modules: boards: Add board revision variable

Not sure this is the right way to go about this but don't know enough about the internals of the zephyr build system to know where this would go. Use case is for application code to be able to know the board revision that it was compiled for.
This variable can be accessed by applications to know what board
revision is being used.

@stephanosio perhaps you'll find https://github.com/zephyrproject-rtos/zephyr/pull/44654 more persuasive?
@lairdjm please give that a shot and let's see if we can get it in tha tway

Going with alternative implementation


Does not have the critical log level

nor error or critical are supported in java logging only severe.


different validation behaviour between azure and local docker containter

1Doc-NeisseriaGonorrhoeae.json

The value provided ('de-CH') could not be validated because the code system urn:ietf:bcp:47 is not known
Unable to check whether the code is in the value set http://hl7.org/fhir/ValueSet/doc-typecodes|4.0.1
Unable to check whether the code is in the value set http://fhir.ch/ig/ch-elm/ValueSet/ch-elm-lab-study-types|1.0.0
Unable to check whether the code is in the value set http://hl7.eu/fhir/laboratory/ValueSet/lab-reportType-eu-lab|current
Constraint failed: ch-addr-1: 'ISO Country Alpha-2 or ISO Country Alpha-3 code' (defined in http://fhir.ch/ig/ch-core/StructureDefinition/ch-core-address

2Doc-ChlamydiaTrachomatis.json
Constraint failed: ch-elm-material: 'Material declared by Observation.code or non-mandatory.' (defined in http://fhir.ch/ig/ch-elm/StructureDefinition/ch-elm-observation-results-laboratory)

To debug the terminology server:
logging:
  level:
    ch.ahdis.matchbox.terminology: DEBUG

Not sure if we should increase log level for other packages.

this behaviour was triggered because the terminology server was not available on this port

should be fixed with release 1.0.4


Add regen nct assetlist and images

What is the purpose of this? Looks like it break it. We need a base denom with 0 exponent....

This could actually be a leftover PR.  I'm going to close it.
On Mon, Jun 19, 2023, 6:40 PM JeremyParish69 @.***>
wrote:

What is the purpose of this? Looks like it break it. We need a base denom
with 0 exponent....
—
Reply to this email directly, view it on GitHub
https://github.com/cosmos/chain-registry/pull/2367#issuecomment-1597914207,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACBIMSVUVLWE4NYDYUZVB6TXMDWRJANCNFSM6AAAAAAZJ6UQ2A
.
You are receiving this because you authored the thread.Message ID:
@.***>


resizing words

Need the option to use larger fonts.
Resize words.
Display is too small on the 32in screen.

You can now set the fontsize in the config. You can use the names as defined in the main.css

You can now set the fontsize in the config. You can use the names as defined in the main.css


SQL REPL error output should be improved

Describe the bug
We should not show internal errors for user errors or parsing errors.
i.e.
SELECT * FROM non_existing_table will produce an internal error when connected to a Spice.ai dataset:
Status { code: Internal, message: "External error: Execution error: Unable to query Flight: Unable to query: status: InvalidArgument, message: \"Table 'tpch.orders' not found\\nstartLine 1\\nstartColumn 413\\nendLine 1\\nendColumn 423\\nSQL Query SELECT b.o_orderkey, b.o_custkey, b.o_orderstatus, b.o_totalprice, b.o_orderdate, b.o_orderpriority, b.o_clerk, b.o_shippriority, b.o_comment FROM (SELECT tpch.orders.o_orderkey, tpch.orders.o_custkey, tpch.orders.o_orderstatus, tpch.orders.o_totalprice, tpch.orders.o_orderdate, tpch.orders.o_orderpriority, tpch.orders.o_clerk, tpch.orders.o_shippriority, tpch.orders.o_comment FROM tpch.orders) AS b ORDER BY tpch.orders.o_orderkey ASC NULLS LAST LIMIT 1\", details: [], metadata: MetadataMap { headers: {\"date\": \"Fri, 19 Jul 2024 00:02:58 GMT\", \"content-type\": \"application/grpc\", \"strict-transport-security\": \"max-age=15724800; includeSubDomains\", \"alt-svc\": \"h3=\\\":443\\\"; ma=86400\", \"cf-ray\": \"8a567217ebe55a9c-MEL\", \"cf-cache-status\": \"DYNAMIC\", \"server\": \"cloudflare\"} }", source: None }
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Spicepod
Add the relevant spicepod.yml section.
Output of the describe table
Add any relevant describe table output here.
Output of explain query
Add any relevant explain query output here.
E.g. explain select 1
+---------------+--------------------------------------+
| plan_type     | plan                                 |
+---------------+--------------------------------------+
| logical_plan  | Projection: Int64(1)                 |
|               |   EmptyRelation                      |
| physical_plan | ProjectionExec: expr=[1 as Int64(1)] |
|               |   PlaceholderRowExec                 |
|               |                                      |
+---------------+--------------------------------------+

spice, spiced, OS info

spice version: spice version
spiced version: spiced --version
OS info: uname -a

Have you tried this on the latest trunk branch?
If possible, run spiced with DEBUG log level
By setting the environment variable SPICED_LOG="spiced=DEBUG,runtime=DEBUG,data_components=DEBUG,cache=DEBUG"
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.

As confirmed Jul 29th, SELECT * FROM non_existing_table don't produce internal error. However, similar error is found when exeuting failing queries (e.g. tpch_q4)
sql> SELECT * FROM non_existing_table
Query Error table 'spice.public.non_existing_table' not found

To Reproduce

Configure spicepod as followings, run spice run
In separate terminal, run spice sql
run tpch_q4 in spice sql repl
See error using .error
Status { code: Internal, message: "External error: Execution error: Unable to query Arrow Flight: Unable to query: status: InvalidArgument, message: \"Table 'tpch.lineitem' not found\\nstartLine 1\\nstartColumn 722\\nendLine 1\\nendColumn 734\\nSQL Query SELECT tpch.orders.o_orderpriority, count(1) AS order_count FROM tpch.orders WHERE (((tpch.orders.o_orderdate >= CAST('1993-07-01' AS TIMESTAMP)) AND (tpch.orders.o_orderdate < CAST((CAST('1993-07-01' AS DATE) + INTERVAL '3' MONTH) AS TIMESTAMP))) AND EXISTS (SELECT tpch.lineitem.l_orderkey, tpch.lineitem.l_partkey, tpch.lineitem.l_suppkey, tpch.lineitem.l_linenumber, tpch.lineitem.l_quantity, tpch.lineitem.l_extendedprice, tpch.lineitem.l_discount, tpch.lineitem.l_tax, tpch.lineitem.l_returnflag, tpch.lineitem.l_linestatus, tpch.lineitem.l_shipdate, tpch.lineitem.l_commitdate, tpch.lineitem.l_receiptdate, tpch.lineitem.l_shipinstruct, tpch.lineitem.l_shipmode, tpch.lineitem.l_comment FROM tpch.lineitem WHERE ((tpch.lineitem.l_orderkey = tpch.orders.o_orderkey) AND (tpch.lineitem.l_commitdate < tpch.lineitem.l_receiptdate)))) GROUP BY tpch.orders.o_orderpriority ORDER BY tpch.orders.o_orderpriority ASC NULLS LAST\", details: [], metadata: MetadataMap { headers: {\"date\": \"Tue, 30 Jul 2024 04:51:46 GMT\", \"content-type\": \"application/grpc\", \"strict-transport-security\": \"max-age=15724800; includeSubDomains\", \"alt-svc\": \"h3=\\\":443\\\"; ma=86400\", \"cf-ray\": \"8ab2bc48bad76826-SEA\", \"cf-cache-status\": \"DYNAMIC\", \"server\": \"cloudflare\"} }", source: None }

Expected behavior
A clear and concise description of what you expected to happen.
Spicepod
version: v1beta1
kind: Spicepod
name: spark_demo
datasets:
  - from: spice.ai/tpch.supplier
    name: supplier
  - from: spice.ai/tpch.part
    name: part
  - from: spice.ai/tpch.customer
    name: customer
  - from: spice.ai/tpch.orders
    name: orders
  - from: spice.ai/tpch.nation
    name: nation
  - from: spice.ai/tpch.partsupp
    name: partsupp
  - from: spice.ai/tpch.lineitem
    name: lineitem
  - from: spice.ai/tpch.region
    name: region


Event Trigger

We need the ability to run arbitrary scripts immediately following a new database creation.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Alberto Grespan seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Commander as stati library

Hello thanks for this package! Is there a way to make commander be a static library? It would benice to just be able to copy the cli executable arround without worring about the libraries being in the same folder.
Thanks

Hi @maxydon yes there is, it will depend on how you are building your command line tool and what package manager you are using to add Commander. I believe that Swift package manager should build the command line tool statically by default.

I'm confused then, I see this in the build folder.

my Package.swift file looks like this:
// swift-tools-version:4.0
// The swift-tools-version declares the minimum version of Swift required to build this package.

import PackageDescription

let package = Package(
    name: "swiftcli",
    dependencies: [
        // Dependencies declare other packages that this package depends on.
        // .package(url: /* package url */, from: "1.0.0"),
        .package(url: "https://github.com/kylef/Commander", from: "0.6.1"),
    ],
    targets: [
        // Targets are the basic building blocks of a package. A target can define a module or a test suite.
        // Targets can depend on other targets in this package, and on products in packages which this package depends on.
        .target(
            name: "swiftcli",
            dependencies: ["Commander"]),
    ]
)

Frameworks may be in the build project, but the CLI tool may be statically by default.
You can inspect your CLI to see if it is:
$ otool -L .build/debug/Example | grep Commander

NOTE: The swift runtime libraries will still be dynamically linked so you will still need those around unless you build with -static-stdlib:
$ swift build -c release -Xswiftc -static-stdlib
Compile Swift Module 'Commander' (9 sources)
Compile Swift Module 'Example' (1 sources)
Linking ./.build/release/Example
$ otool -L ./.build/release/Example
./.build/release/Example:
	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1349.64.0)
	/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.50.2)
	/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 307.5.0)
	/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1349.63.0)
	/System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics (compatibility version 64.0.0, current version 1070.22.0)


Allow tar2ext4 to convert slashes

Both \ and / are valid paths on Windows, so Linux layer tar files generated on Windows may potentially use either.
Update tar2ext4 to convert \ to / in paths when on Windows to avoid creating invalid ext4 file systems.

If I understand this correctly then using a \ instead of a / for a Linux image is a bug in the export process itself, right? Do we need to do something to fix that?

If I understand this correctly then using a \ instead of a / for a Linux image is a bug in the export process itself, right? Do we need to do something to fix that?

id say its a bug of how Go handles file paths, cause both \ and / are valid path separators on windows, so its technically valid to export a tar image (on windows) with either as the separator (and I don't think tar makes a distinction?), but then tar2ext4 only recognizes / as a valid path separator on windows, since path.Split & co only recognize \, even on Windows (https://cs.opensource.google/go/go/+/refs/tags/go1.20.6:src/path/path.go;l=152)

thinking about this more, since we only need to consider \ as a path separator on Windows (since its not a valid tar on Linux), ill update this to sanitize paths on Windows without needing a flag

I think it's best we don't create cases where tar2ext4 functions differently based on the host OS it's running on. For instance, you should be able to convert a Windows layer on Linux, and get a same result as if you had converted it on Windows.
Are there actual cases observed where layer tars have backslash separators in the paths? Do we believe these are prevalent/valid enough that we need to support them?

Are there actual cases observed where layer tars have backslash separators in the paths? Do we believe these are prevalent/valid enough that we need to support them?

Yes, go github.com/google/go-containerregistry/cmd/crane --platform linux/amd64 export export docker.io/library/alpine:latest fs.tar results in backslash separators.
Also bsdtar (tar.exe) on Windows generates tar files with \ as the separator.
Notably, Go doesn't enforce that tar filepaths, on Windows, use / as the separator, and filepath operations on a path returned from tar archive opened in Go are already filesystem dependent (ie, filepath.Clean will replace / with \ on Windows).
So, from the code's perspective, on Windows, \ are valid separators in a filepath, since the layer tar could have been generated on Windows (and \ are used for path separators in Windows layers).
I can add a switch/gate it, but I think it something that we should be handling

Are there actual cases observed where layer tars have backslash separators in the paths? Do we believe these are prevalent/valid enough that we need to support them?

Yes, go github.com/google/go-containerregistry/cmd/crane --platform linux/amd64 export export docker.io/library/alpine:latest fs.tar results in backslash separators. Also bsdtar (tar.exe) on Windows generates tar files with \ as the separator.
Notably, Go doesn't enforce that tar filepaths, on Windows, use / as the separator, and filepath operations on a path returned from tar archive opened in Go are already filesystem dependent (ie, filepath.Clean will replace / with \ on Windows). So, from the code's perspective, on Windows, \ are valid separators in a filepath, since the layer tar could have been generated on Windows (and \ are used for path separators in Windows layers).
I can add a switch/gate it, but I think it something that we should be handling

I'm not sure if '\'-separated tar paths should really be considered a valid tar, but if we are seeing them in some cases in practice, then I think it's reasonable to have a flag to allow converting them. I suspect that most tar tooling in the wild will assume that tar paths are '/'-separated -- to do otherewise may be considered a bug in the tar creator.
At least on my box, the built-in tar.exe seems to produce '/'-separated paths when creating a tar:
> tree /f foo
└───dir
        file

> tar cf foo.tar foo
> tar tf foo.tar
foo/
foo/dir/
foo/dir/file


Build Telephone-Number-Validattion

Phone number validation is the process of ensuring that a contact's phone number is accurate and in the proper format. This can help with list building efforts as it eliminates inaccurate or incomplete numbers, resulting in a higher quality contact list.
In this project i used
HTML file
CSS file
JavaScript file
Linters

@ahzamir
Hello teacher I hope doing well. Please check my project.

@ahzamir
Hello teacher please check my project


[MM-43761} remove channel actions dm gm

Summary

Ticket Link

Fixes https://github.com/mattermost/mattermost-server/issues/20072
Checklist

[ ] Telemetry updated
[ ] Gated by experimental feature flag
[ ] Unit tests updated

Hello @santoniriccardo,
Thanks for your pull request! A Core Committer will review your pull request soon. For code contributions, you can learn more about the review process here.

@santoniriccardo, would you be willing to add some E2E tests to make sure this works? We can check CI here once the webapp PR is merged.

This PR has been automatically labelled "stale" because it hasn't had recent activity.
A core team member will check in on the status of the PR to help with questions.
Thank you for your contribution!


Handshake gives error "wrong verion number"

I'm using this https://github.com/youngwolf-project/ascs/tree/master/examples/ssl_test
and when I restart client for 3 times.
Client gives error "stream truncated" and
Server gives error "336130315 wrong version number" and then "336130329 decryption failed or bad record mac"
Any idea?
win7 x64  binary win32
Thanks :)

Sounds like this is a query you should raise with the project at the link you gave. Decryption failed or bad record mac is usually an indicator that something fairly low level has gone wrong. You might want to use wireshark to see what is happening on the wire.


Enable Teradata

New DB engine spec for Teradata:

LimitMethod should be WRAP_SQL since Teradata does not supporting "LIMIT" clause  (TOP) - without this change sqllab does not work
Timegrains for Teradata are added

Codecov Report

Merging #5870 into master will decrease coverage by 14.25%.
The diff coverage is 100%.

@@             Coverage Diff             @@
##           master    #5870       +/-   ##
===========================================
- Coverage      78%   63.74%   -14.26%
===========================================
  Files          46      374      +328
  Lines        9314    23331    +14017
  Branches        0     2607     +2607
===========================================
+ Hits         7265    14873     +7608
- Misses       2049     8445     +6396
- Partials        0       13       +13

Impacted Files
Coverage Δ

superset/db_engine_specs.py
55.45% <100%> (+0.26%)
:arrow_up:

...sets/src/explore/components/ExploreChartHeader.jsx
71.42% <0%> (ø)

superset/assets/src/components/Checkbox.jsx
100% <0%> (ø)

...perset/assets/src/dashboard/util/getEmptyLayout.js
0% <0%> (ø)

...ts/src/dashboard/util/getComponentWidthFromDrop.js
96.15% <0%> (ø)

...erset/assets/src/SqlLab/components/QuerySearch.jsx
69.36% <0%> (ø)

...rc/explore/components/controls/AnnotationLayer.jsx
22.92% <0%> (ø)

superset/assets/src/welcome/DashboardTable.jsx
81.81% <0%> (ø)

...erset/assets/src/dashboard/util/injectCustomCss.js
91.66% <0%> (ø)

...ets/src/dashboard/components/dnd/DragDroppable.jsx
97.91% <0%> (ø)

... and 319 more

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 657993d...5db551f. Read the comment docs.

@mistercrunch added
see https://github.com/apache/incubator-superset/pull/5885


How do I add details (meaningful display name, profile pic, banner image, description)

I was able to create my first RSS feed public ID:
https://satellite.earth/@npub1cfty6nd2td5y00t04zlpqchgwe2d2sgr68laevllk8yu45r4fwgsfsp4k5
generated from https://www.economist.com/the-world-this-week/rss.xml
There were no options to add any feed information to make it more descriptive - is that not possible?
Thank you

Hello @verityj ! For the moment this is not possible... the profile information, pic, banner image is automatically extracted from the feed attributes (like description, image and so on....).
Nevertheless, I will consider implementing this, as it could be very useful to do that...
I'm thinking probably the only problem will be people trolling or making some kind of scam... will take that into account.


Tracker 2018 usb

Turns out I had a nasty bug in my code and went on a wild goose chase. The lightcap data is as we expect it to be, only at a different endpoint. This commit adds non-HIDAPI access to a 2018 Tracker (called a TRACKER1 in the code) and pulls button, IMU and light data from it over USB. It also reads the new "head" element from the JSON configuration file.

Sorry @asymingt that this took so long to get around to; the rewrite of the USB device incorporated the new endpoints and now the head position code should be working as expected.


[feat] [sale widget] Enable manual tx execution for sale widget

Hi👋, please prefix this PR's title with:

[ ] breaking-change: if you have introduced modification that necessitates immediate adjustments by this SDK's users to their applications, clients, or integrations to avert disruptions to existing features or functionalities.
[x] feat:, fix:, refactor:, docs:, or chore:.

Summary

Enable manual transactions execution for sale widget to solve pop-up blocking for Passport.
Detail and impact of the change

Added

Exposes executeNextTransaction which allows the FE to hook into a button to initiate transaction execution manually.

this PR have the changes https://github.com/immutable/ts-immutable-sdk/pull/1879


Add warnings when there is no incoming data from stdin

Fixes #1255

Codecov Report

Merging #1256 (c0368a4) into master (4d7d6b6) will decrease coverage by 0.95%.
The diff coverage is 94.33%.

@@            Coverage Diff             @@
##           master    #1256      +/-   ##
==========================================
- Coverage   97.28%   96.33%   -0.96%
==========================================
  Files          67       85      +18
  Lines        4235     5810    +1575
==========================================
+ Hits         4120     5597    +1477
- Misses        115      213      +98

Impacted Files
Coverage Δ

tests/test_binary.py
100.00% <ø> (ø)

httpie/compat.py
31.11% <27.90%> (-68.89%)
:arrow_down:

tests/conftest.py
77.14% <58.33%> (-9.82%)
:arrow_down:

httpie/output/lexers/http.py
59.09% <59.09%> (ø)

tests/test_ssl.py
91.01% <66.66%> (-3.93%)
:arrow_down:

httpie/output/lexers/common.py
75.00% <75.00%> (ø)

httpie/output/lexers/metadata.py
81.25% <81.25%> (ø)

httpie/uploads.py
87.82% <81.94%> (-12.18%)
:arrow_down:

httpie/manager/__main__.py
82.35% <82.35%> (ø)

httpie/models.py
93.93% <88.88%> (-3.43%)
:arrow_down:

... and 67 more

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 4c56d89...c0368a4. Read the comment docs.

Continue to review full report at Codecov.
Legend - Click here to learn more
Δ = absolute  (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 4c56d89...18eabfb. Read the comment docs.


[WIP] Experimenting with Stimulus JS

This PR exists mostly so you can watch while I experiment with StimulusJS. My goal is to understand how we'd integrate it into our webpack config and eventually how to have a single text input field ("awesome bar") which will then use code from https://github.com/Carreau/open-with-binder to generate the "launch link".

Made some progress with a new and simpler "launch a binder" page. It has just one form field into which you can paste a URL. It is using the code from https://github.com/Carreau/open-with-binder/blob/master/content_scripts/binderify.js to parse that URL and generate the "build" URL. Then it redirects people there.
Next to the launch button there is a "advanced options" link which takes you to the full launch form. The new page is at /beta so that nothing changes for unsuspecting visitors.
Next is handling things like DOIs/not links, adding back the badge copy&paste areas and making it more robust.
I made some small changes to the CSS for the new form but they should not change the old landing page, at least not on purpose.

This PR is super outdated so closing it.


Sanitize file names before saving

This PR is to address #2084. I added a setter to StreamManager.file_name property which sanitizes it the input value. Getter sanitizes suggested_file_name if necessary. The sanitization strips trailing whitespaces, replaces spaces with underscores and removes all non-alphanumeric characters except for dashes and dots. I added a unit test and will add an integration test if you agree with this approach.

Thanks for the PR @mirgee . We'll have to review if this is the right approach or not. Not sure we want to stripe all the characters you mentioned.

@jackrobison So the the sanitization should be applied apply only to suggested file name when a stream is created / updated, and we should attempt to save the file using the suggested file name (and fail if it contains illegal characters)? Or try saving using file_name then try suggested file name in case of failure?

@mirgee
If a file is being created for a download, the default file name should be the suggested file name (the downloader should also sanitize this on their end, as old streams pre-sanitization will exist and weird streams can be constructed manually).
The file name shouldn't be sanitized for the publisher, but the suggested file name in the sd blob they generate should be sanitized. When the publisher runs file_list they should see the path to the file they published - it shouldn't silently get renamed or duplicated with a sanitized name. If they deleted this file and then re-downloaded/saved it, the behavior should be the same as for someone downloading/saving it for the first time (it should be the sanitized suggested file name unless explicitly provided as an argument).
If a file name is provided manually as an argument to file_save or get when downloading/saving I don't think it should ever be sanitized as this would be unexpected.


[WIP][SPARK-36035][PYTHON] Adjust test_astype, test_neg  for old pandas versions

What changes were proposed in this pull request?
Why are the changes needed?
Does this PR introduce any user-facing change?
How was this patch tested?

(pyspark-dev-pd-1.0.1) ~/spark (SPARK-36035)$ python/run-tests --testnames 'pyspark.pandas.tests.data_type_ops.test_num_ops IntegralExtensionOpsTest.test_astype'
Running PySpark tests. Output is in /Users/xinrong.meng/spark/python/unit-tests.log
Will test against the following Python executables: ['/miniconda2/envs/pyspark-dev-pd-1.0.1/bin/python3']
Will test the following Python tests: ['pyspark.pandas.tests.data_type_ops.test_num_ops IntegralExtensionOpsTest.test_astype']
/miniconda2/envs/pyspark-dev-pd-1.0.1/bin/python3 python_implementation is CPython
/miniconda2/envs/pyspark-dev-pd-1.0.1/bin/python3 version is: Python 3.8.0
Starting test(/miniconda2/envs/pyspark-dev-pd-1.0.1/bin/python3): pyspark.pandas.tests.data_type_ops.test_num_ops IntegralExtensionOpsTest.test_astype
Finished test(/miniconda2/envs/pyspark-dev-pd-1.0.1/bin/python3): pyspark.pandas.tests.data_type_ops.test_num_ops IntegralExtensionOpsTest.test_astype (19s)
Tests passed in 19 seconds

(pyspark-dev-pd-1.0.1) ~/spark (SPARK-36035)$ python/run-tests --testnames 'pyspark.pandas.tests.data_type_ops.test_boolean_ops BooleanExtensionOpsTest.test_astype'
Running PySpark tests. Output is in /Users/xinrong.meng/spark/python/unit-tests.log
Will test against the following Python executables: ['/miniconda2/envs/pyspark-dev-pd-1.0.1/bin/python3']
Will test the following Python tests: ['pyspark.pandas.tests.data_type_ops.test_boolean_ops BooleanExtensionOpsTest.test_astype']
/miniconda2/envs/pyspark-dev-pd-1.0.1/bin/python3 python_implementation is CPython
/miniconda2/envs/pyspark-dev-pd-1.0.1/bin/python3 version is: Python 3.8.0
Starting test(/miniconda2/envs/pyspark-dev-pd-1.0.1/bin/python3): pyspark.pandas.tests.data_type_ops.test_boolean_ops BooleanExtensionOpsTest.test_astype
Finished test(/miniconda2/envs/pyspark-dev-pd-1.0.1/bin/python3): pyspark.pandas.tests.data_type_ops.test_boolean_ops BooleanExtensionOpsTest.test_astype (11s)
Tests passed in 11 seconds

Test build #140768 has started for PR 33250 at commit 89ed506.

Test build #140768 has finished for PR 33250 at commit 89ed506.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/45280/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/140768/

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/45280/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/45280/

Test build #140818 has started for PR 33250 at commit 1d0b30f.

Test build #140818 has finished for PR 33250 at commit 1d0b30f.

This patch fails PySpark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/45329/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/140818/

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/45329/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/45329/

CC @ueshin @HyukjinKwon @itholic

Merged to master and branch-3.2.


fix fix bug that backend tag may change to default after upgrading to 1.2

Proposed changes
Issue Number: close #xxx
Problem summary
When upgrading from 1.1.x to 1.2.x, the tag of backend may change to location:default,
no matter what you set before.
This PR fix this issue
Checklist(Required)

Does it affect the original behavior:

[ ] Yes
[x] No
[ ] I don't know

Has unit tests been added:

[ ] Yes
[x] No
[ ] No Need

Has document been added or modified:

[ ] Yes
[ ] No
[x] No Need

Does it need to update dependencies:

[ ] Yes
[x] No

Are there any changes that cannot be rolled back:

[ ] Yes (If Yes, please explain WHY)
[x] No

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 35.42 seconds
load time: 451 seconds
storage size:<PHONE_NUMBER>7 Bytes
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20221214131226_clickbench_pr_63411.html


Update to MvvmCross 6

The latest major release of MvvmCross, version 6.0.0 (well, technically, 6.0.1) was just released. It changes some stuff, most importantly, the countless base libraries were merged into a single assembly.
Unfortunately this project still depends on the old libraries, making it near impossible to be used with 6.0.
The library should be updated to .Net Standard and MvvmCross 6.x

Hi @fonix232,
I'm the friendly issue checker.
It seems like (100.00 %) you haven't used our issue template :cry: I think it is very frustrating for the repository owners, if you ignore them.
If you think it's fine to make an exception, just ignore this message.
But if you think it was a mistake to delete the template, please close the issue and create a new one.
Thanks!

@fonix232 Thanks, I'd like to see why you say it's near impossible to be used with MvvmCross 6.0

closed by #307


Allow old plugins to work with 3.x

The changes in 3.x broke some old 2.x external plugins like log4j2-logstash-layout (cf. #1586).
We should consider maintaining binary compatibility in some util classes (e.g. Constants) to allow most 2.x plugins to work with 3.x without any changes.

How can we fix the incompatibility with the changes in Layout, though? If we release Log4j 3.0 with support for serialization, that'll be embarrassing to be honest.


Allow users to update everything in inputspecs except for isregexpattern

Motivation
When doing function update, currently our update semantics are pretty restrictive. For example we cannot update any property in the consumerConfig in the inputSpecs. However apart from isRegexPattern, pretty much all parameters can be updated. This pr modifies the update behavior to do these kind of updates
Modifications
Describe the modifications you've done.
Verifying this change

[ ] Make sure that the change passes the CI checks.

(Please pick either of the following options)
This change is a trivial rework / code cleanup without any test coverage.
(or)
This change is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:
(example:)

Added integration tests for end-to-end deployment with large payloads (10MB)
Extended integration test for recovery after broker failure

Does this pull request potentially affect one of the following parts:
If yes was chosen, please highlight the changes

Dependencies (does it add or upgrade a dependency): (yes / no)
The public API: (yes / no)
The schema: (yes / no / don't know)
The default values of configurations: (yes / no)
The wire protocol: (yes / no)
The rest endpoints: (yes / no)
The admin cli options: (yes / no)
Anything that affects deployment: (yes / no / don't know)

Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)
If a feature is not applicable for documentation, explain why?
If a feature is not documented yet in this PR, please create a followup issue for adding the documentation

@srkukarni a general question:
We should definitely allow users to update receiverQueueSize config in ConsumerConfig but does it make sense for users to also be able to update schemaType and serdeClassName ?

@jerrypeng I don't see a reason not to? Afterall one can experiment with different libraries of serialization changes to test which one works better. And also we do make sure that the types etc match.

@srkukarni but then why don't we allow users to update the actual input topic?  Since serde and schema are kind of tied to the topic.

updating input topic has the associated overhead of cleaning up subscriptions and such.

run integration tests
run java8 tests


[QUESTION] Detected camera types more than reality.

Hello, there is a dataset called wayve that has 5 camera types with total 1000 images. Here is the dataset that I concerned
It already has processed colmap's poses and instrinsic. Here is cameras.bin
# Camera list with one line of data per camera:
#   CAMERA_ID, MODEL, WIDTH, HEIGHT, PARAMS[]
# Number of cameras: 5
10 OPENCV_FISHEYE 1920 1080<PHONE_NUMBER>6975372<PHONE_NUMBER>4361361<PHONE_NUMBER>5516648<PHONE_NUMBER>5901408 -0.012557840449801991 -0.033048322739036511 0.041067527957576684 -0.01560882401539797
9 OPENCV_FISHEYE 1920 1080<PHONE_NUMBER>4084277<PHONE_NUMBER>4798021<PHONE_NUMBER>7622675<PHONE_NUMBER>2801316 0.013253850100268727 -0.041866095271345875 0.045384296297246864 -0.01654660514377345
8 OPENCV_FISHEYE 1920 1080<PHONE_NUMBER>2486922<PHONE_NUMBER>1770038<PHONE_NUMBER>4280459<PHONE_NUMBER>8372404 -0.027272058345406188 0.0062243721691585931 0.0025747723317551198 -0.0027478737587189701
1 OPENCV_FISHEYE 1920 1080 1607.8224767268289 1605.6720193282838<PHONE_NUMBER>0545625<PHONE_NUMBER>6810504 -0.026879582395269497 0.17615572980440725 -0.48427871506845432 0.34801469711296695
7 OPENCV_FISHEYE 1920 1080<PHONE_NUMBER>5777819<PHONE_NUMBER>4175568<PHONE_NUMBER>1717588<PHONE_NUMBER>7941824 -0.0055187400236421909 -0.004809028940045092 0.0061212722781081603 -0.0026949126171779908

Then I rerun the exact dataset with glomap. But, it has multiple cameras.
colmap feature_extractor \
    --image_path    scene_001/images/ \
    --database_path scene_001_glomap/distorted/database.db

colmap sequential_matcher \
    --database_path scene_001_glomap/distorted/database.db

glomap mapper --database_path scene_001_glomap/distorted/database.db \
    --image_path scene_001/images/ \
    --output_path scene_001_glomap/distorted

colmap image_undistorter \
  --image_path scene_001/images \
  --input_path scene_001_glomap/distorted/0 \
  --output_path scene_001_glomap

Here is the cameras.bin
# Camera list with one line of data per camera:
#   CAMERA_ID, MODEL, WIDTH, HEIGHT, PARAMS[]
# Number of cameras: 1000
785 PINHOLE 1851 1040 15236.77176687543 15236.77176687543 925.5 520
244 PINHOLE 1934 1081 4070.0260849583292 4070.0260849583292 967 540.5
786 PINHOLE<PHONE_NUMBER>.2327411663164 1386.2327411663164 192 108
so on until 1000 cameras listed here

What should I do, so I get only 5 cameras?
It already discussed here, its really slow if the camera intrinsic of each images needs to be estimated with the View Graph Calibration component

for this, you would need to specify directly to colmap in the feature_extraction step about the camera id. Or, you can write an external program to manually change the camera id after feature_extractor if this info is known

for this, you would need to specify directly to colmap in the feature_extraction step about the camera id. Or, you can write an external program to manually change the camera id after feature_extractor if this info is known

Hello, I found another ways that seems better.
I differentiate the camera type by separating the folder inside ./path/to/scene/images. So each folder has images that has one type of cameras. Then I run this command:
colmap feature_extractor \
    --image_path    ./path/to/scene/images \
    --database_path ./path/to/scene/database.db \
    --ImageReader.single_camera_per_folder 1

If I found any problem, please let me reopen this thread. Thank you


Tracing of constructors can cause constructed object not to be returned

When we run tracing of a constructor function, eg:
myObj = new mod.Construct(data);

the instrumentation that's injected to generate the tracing fails to return the constructed object, so myObj is undefined.

Fixed by PR #73


Update README.md

Replace incorrect crate name with correct one.

Hey thanks @SteveAlexander appreciate the PR -- would you mind following conventional commits? something like:
docs: fix crate-name in README` would work

I can jump in and change it if you don't mind

Hi Victor! Thanks for pointing me to Conventional Commits. I hadn't come across that before.
Please go ahead and make the change however works best!

Hey @SteveAlexander yup it's pretty awesome/convenient/straight forward. While I'm sharing the gospel, check out git-cliff for automating changelog generation as well -- fantastic use of CC.


Color Picker V2

Summary of the Pull Request
Color Picker V2 is here!
Following on #5379 we have added a new "Editor" window which will be opened when pressing Activation shortcut for Color Picker (Shift + Win + C), this is configurable and you can decide on following actions.
For a faster adoption, we set this setting to be checked by a default.

When pressing the activation shortcut, following window will open:

Top left corner - color picker icon will open color picker and you can start picking your colors on the screen
Left side list - history of picked/configured colors, newest on top, we have set this list to show 20 latest colors (we can expose this number settings in SettingsUI, to be configurable). Right click enables removing colors from this list.
Top right corner - settings icon - will open SettingsUI and ColorPicker page directly (this functionality is dependent on #7408)
Middle part top - color gradient - biggest middle bar shows the current color, on sides there are color variations - clicking on those will add a new color into history
Middle part - color formats
DEMOS!
New picking experience
The new picking experiences uses Fluent Design (like drop shadows for better contrast) and is now theme aware.

Checking different colors and copying desired color format into the clipboard
You can either select and copy only a part of a color format or click the icon on the right to copy the whole string into the clipboard directly.

Fine tune picked color
You can pick a different shade of color by clicking on the smaller rectangles. These will be added to the history and will be selected. By clicking on the main color you can finetune the color by using the sliders.

Theming support
Colorpicker now supports light, dark and all high contrast themes (#7290)

New icon
Shown in taskbar and task manager.

Add/hide color formats
The user is able to show/hide and re-order the color formats in Settings. Using the toggleswitch colorformats can be enabled/disabled, dragging them changes the order.

Please note, there will be further bug fixes and smaller design tweaks!
PR Checklist

[x] Applies to #5379, #7290, #7532, #8023
[x] CLA signed. If not, go over here and sign the CLA
[ ] Tests added/passed
[x] Requires documentation to be updated
[ ] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #xxx

Info on Pull Request
What does this include?
Validation Steps Performed
How does someone test & validate?

@niels9001 , @martinchrzan
Ong, it's amazing. Great work.
One point I want to be mentioned: The contrast between the copyColor button and the ui background could be higher.

Great work!!!
Joining @htcfreek  in asking if this elements have enough test to background contrast, since we already have some accessibility bugs opened because of similar low contrast values

Good comments.  We need another go to check on accessibility, inc. colors.

@niels9001 , @martinchrzan
Omg, it's amazing. Great work.
One point I want to be mentioned: The contrast between the copyColor button and the ui background could be higher.

For clarification:
My comment is regarding to the moment when you hover and press the button. The the color button and the background is nearly the same, what you can see in your own screenshot.

And another suggestion:
You have this eide button for adding color representations where the people mostly click in zhe middle where you have the plus sign. And then opens a small menu on the right side and you have to move the cursor over the half ui.

This is not the best usability and looks a bit like not thought to the end.
Not sure if this is a good solution in way of accessibility.

The menu should have the same wide as the button and the text should be centered, I think.

@htcfreek let's review final UI once this goes out of draft. There's still work to be done and we are aware :)

@htcfreek @enricogior We have made updates to the UI, using Windows 10X color palettes so these should be fine for contrast.

@htcfreek @enricogior We have made updates to the UI, using Windows 10X color palettes so these should be fine for contrast. I have updated the images in the PR description.

LGTM.
Can you please post a screenshot of settings too.

Can you please post a screenshot of settings too.

@htcfreek Added - settings page is a bit under construction yet. See updated gif in PR description.

BTW: Please reference the "shortcut settings label" issue under "applies to".

Done.

Question: Will the format also copied when opening editor?

@martinchrzan @niels9001
is it ready for the final review?

Not yet, I need to fix some functionality, fix installer, add telemetry, but design wise it should be almost done

@martinchrzan
I have an idea which maybee needs a bit work to realise. Should I mention it now or should I wait until the PR is ready for review.

@htcfreek go on now :)

Idea regarding the open/activation behaviour
I think at the moment it's not clear that I can either copy color code or open editor while only looking in settings. So I would change the settings a bit.
Variant 1
Change only the text to Open editor instead of copy color code on activation shortcut.
Variant 2 (My 💗 if we only change settings representation!)
Because this is a setting with switching behaviour I would use radios instead of a checkbox:
Action on activation shortcut:
* copy color code
* open editor"

Additional I would appreciate it to pick a color and directly open/show it in editor. And if we allow this we should use radios and we maybe need an additional shortcut/button to only open the editor.
So the settings then will be like this:
Action on Color Picker shortcut:
* copy color code
* open editor
* pick color and show it in editor

 Shortcut/Button for only open editor (Only available if radio two is checked!)

Thoughts about color format settings
Copied color settings

Mention that this is for "copy code" mode.

List for individual formats

We should clearly mention that this setting is used in editor.
We should make the header better readable by using two lines or brackets.

Both
Enable settings elements based on the activation mode ("copy code" / "editor").

@htcfreek I agree with most suggestions, we will reword it better and make it more clear what is it expected to happen on activation shortcut.

@martinchrzan
In the color fine tune ui wevhave now three sliders. What is the difference between slider two and three? The look nearly like the same and maybee we can describe it's value type in a tooltip.

@htcfreek They represent HSV - the first being Hue, the second is Saturation and the third is Value, they affect each others, we can probably add some tooltip for them

@htcfreek They represent HSV - the first being Hue, the second is Saturation and the third is Value, they affect each others, we can probably add some tooltip for them

But I would buse the names Hue, Saturation and Brightness.

One thing we should consider is if it makes sense to have a theme override settings in Color Picker too.

Feedback:
First, this is really slick. I think the first three issues we should have a discussion on.

so interaction model, i feel like we have a change of default behavior.  IMO this should be false by default to "open editor" important

with the option off, how do you open the 'editor'? important

maybe this is a combo box for behavior?  Dropper only, 'Open editor first', Dropper then open 'editor'

I don't know if "editor" is the best phrasing here for the color history window. important
Settings ordering, i think we may need to think about how we show it is draggable.  Right now i don't think it is visually discoverable.
there should be a ghost image for dragging.

Two tracking items we'll need for 0.27

Update Wiki
Update image that the settings img points to

so excited for this!

so interaction model, i feel like we have a change of default behavior.  IMO this should be false by default to "open editor" important

I think the 'editor' actually changes the value prop of what Color Picker is. It's superior in the sense that you'll get access to more color formats and a color history. I'm afraid that turning it off by default, most users will never get to see it at all..

with the option off, how do you open the 'editor'? important

maybe this is a combo box for behavior?  Dropper only, 'Open editor first', Dropper then open 'editor'
Good question.. Two shortcuts could be a way (one to color pick and one for the editor), but sounds a bit overcomplex to me. Open in settings? Or use the snip and sketch way? (Standalone app launch, or a notification banner after snipping)

I don't know if "editor" is the best phrasing here for the color history window. important
Settings ordering, i think we may need to think about how we show it is draggable.  Right now i don't think it is visually discoverable.

I'd show a drag glyph on mouse over. Good example is SharePoint:

there should be a ghost image for dragging.
Shouldn't that come with the default WinUI ListView?

@niels9001

so interaction model, i feel like we have a change of default behavior.  IMO this should be false by default to "open editor" important

I think the 'editor' actually changes the value prop of what Color Picker is. It's superior in the sense that you'll get access to more color formats and a color history. I'm afraid that turning it off by default, most users will never get to see it at all..

Here I think you are right. We should have editor as default to hint the user to the new feature. Maybe we can show a hint on first open of editor that the old behaviour can be restored in settings.

with the option off, how do you open the 'editor'? important

maybe this is a combo box for behavior?  Dropper only, 'Open editor first', Dropper then open 'editor'

Good question.. Two shortcuts could be a way (one to color pick and one for the editor), but sounds a bit overcomplex to me. Open in settings? Or use the snip and sketch way? (Standalone app launch, or a notification banner after snipping)

Here I reference to my post above, where I wrote my ideas.

I don't know if "editor" is the best phrasing here for the color history window. important

Fair point.. any recommendations? It shows color history, but also let you tweak the color and copy color formats.

My idea would be something like Color preview & history.

Settings ordering, i think we may need to think about how we show it is draggable.  Right now i don't think it is visually discoverable.

I'd show a drag glyph on mouse over. Good example is SharePoint:

This would be a great enhancement.

there should be a ghost image for dragging.
Shouldn't that come with the default WinUI ListView?

Can we implement this in our own way until the new WinUI ListView is available?

with the option off, how do you open the 'editor'? important

maybe this is a combo box for behavior?  Dropper only, 'Open editor first', Dropper then open 'editor'

@crutkas , @niels9001
In my comment above I suggest a radio button control. But drop-down sounds good too.
Imo we should definitely improve the text to make clear that this setting changes the behaviour from open picker only to open editor only.

@niels9001 i see great value in the picker, however I strongly believe if I do the keystroke, it is since I wanted to sample a color

You can still do it, pressing a button in the left top corner in the editor opens picker, so it would be one step more, but not that bad. Other times you might want to get one of colors you picked before - so you would have to have either another activation shortcut or if we open editor after you pick a color you would have to pick some dummy color, just to open the editor and see your color history.

You can still do it, pressing a button in the left top corner in the editor opens picker, so it would be one step more, but not that bad. Other times you might want to get one of colors you picked before - so you would have to have either another activation shortcut or if we open editor after you pick a color you would have to pick some dummy color, just to open the editor and see your color history.

What about using tray menu of PT to open only editor? (This would be something for the ui in ??.)

You can still do it, pressing a button in the left top corner in the editor opens picker, so it would be one step more, but not that bad. Other times you might want to get one of colors you picked before - so you would have to have either another activation shortcut or if we open editor after you pick a color you would have to pick some dummy color, just to open the editor and see your color history.

What about using tray menu of PT to open only editor? (This would be something for the ui in #6751. - Two buttons: The first for picking and copy or editor. The second for opening directly only the editor.)

Currently, "Win+ Shift +C" opens the colour picker and then you have to left-click on the mouse or trackpad to get the colour, what if you could right-click to open the "editor"? Wouldn´t be the more natural behaviour? Or at least the expected one?
Just a humble suggestion from a user.
BTW, you guys rock!

@niels9001
Is it possible to move the gripper icon on the left side in front of the format name.

@niels9001
Is it possible to move the gripper icon on the left side in front of the format name.

Feels cramped. I would like to keep the text aligned with all other UI elements.

The rest of the items appear to be correct, so if you have perl, you can run the command given by the bot, or you can just manually add the items listed into .github/actions/spell-check/expect.txt (oddly, there are two different live PRs that will be trying to add modernwpf, so if you both sort alphabetically, one will hit a merge conflict -- you'd be better served randomly inserting it and letting someone else sort&uniquify later).

@martinchrzan should we rename the 'copied colorformat' to something like "Default color format"?

We can, but we wanted to indicate that it will be also copied, not just shown or would that be implied? Or something like - "Default displayed and copied color format" - or too long, too weird? 🙂

Updated the activation key trigger action options from one checkbox to following options:

Updated the activation key trigger action options from one checkbox to following options:

I wouldn't use a group header for the radio title.
I think this should be a normal setting und "Shortcuts" because it defines the behaviour of the shortcut.

Does anybody mind a suggestion for the radio button text? "Opens" should be "Open".

Open color picker. Copy color directly to clipboard.
Open editor and copy a color.
Open color picker and show editor after copy.

This focuses on actions. I mean that text like "browse your history or pick a new color" is more like a comment. The text in the shown image uses a comma in the first radio and dashes in the others; and that's inconsistent and unnecessary. Is these comments are still worth mentioning, give them a special "style" different then the words for the actions.
Random example:

Certainly the inconsistent use of , and - bothered me...

> I wouldn't use a group header for the radio title.

I think this should be a normal setting under "Shortcuts" because it defines the behaviour of the shortcut.

That's a negative. But the header should appear as normal text, definitely not the size/style it is now. And must be much, much shorter.
https://docs.microsoft.com/en-us/windows/uwp/design/controls-and-patterns/radio-button#create-a-winui-radiobuttons-group

> I wouldn't use a group header for the radio title.

I think this should be a normal setting under "Shortcuts" because it defines the behaviour of the shortcut.

That's a negative. But the header should appear as normal text, definitely not the size/style it is now. And must be much, much shorter.
https://docs.microsoft.com/en-us/windows/uwp/design/controls-and-patterns/radio-button#create-a-winui-radiobuttons-group

I think you understand what I mean.

@Jay-o-Way I like that suggestion.
@martinchrzan-mfst I'll update the visual UI of the radiobuttons based on this:

I can also tackle the header issue.

@niels9001
can you resolve my code comments too?

@htcfreek I let @crutkas handle all the strings, better to let a native English speaker look at these!

@htcfreek I let @crutkas handle all the strings, better to let a native English speaker look at these!

okay.
But you can move the custom format description to the resx file.

I have updated the settings page:

I have updated the settings page:

We should decide if we write Picker or picker.

Two small things:

preferred is with double R
I strongly believe we should use the word Open (without the -s) because it is a direct action/result, not a reference to something else. The example from the Focus Assist settings also show this. Also the words like "Allows you to..." and "...copies..." and "...will..." do not feel good.

I think the idea of what I call a "reference" comes from the words "Shortcut behavior".

@niels9001 Two things:

I strongly believe we should use the word Open (without the -s) because it is a direct action/result, not a reference to something else. The example from the Focus Assist settings also show this. Also the words like "Allows you to..." and "...copies..." and "...will..." do not feel good. I think the usage of what I call a "reference" comes from the words "Shortcut behavior".
preferred is with double R. And maybe a word like "selected" is better?
browse should be without the -r

As I mentioned before, @crutkas will do the check on the strings. These are currently set as placeholders.

@niels9001
"Color picker first" -> "Color Picker first" since it's a name, same for "Color picker only"

@niels9001
"Color picker first" -> "Color Picker first" since it's a name, same for "Color picker only"

Well... that depends, I was thinking about it in this way:

There's the PT module "Color Picker", and one of the features is the 'color picker'.
Actually, Photoshop and PowerPoint are using the term 'Eyedropper' (for the picking colors bit). Maybe that's a better term and will also avoid any confusion? (cc @martinchrzan thoughts?)

Hm, not sure I like eyedropper, we are not dropping any eyes, but picking a color with it :)

Eyedropper seems like a Skeuomorphic name, rather than a functional once

Hm, not sure I like eyedropper, we are not dropping any eyes, but picking a color with it :)

The word comes from the object as shown in the icon.

Hm, not sure I like eyedropper, we are not dropping any eyes, but picking a color with it :)

The word comes from the object as shown in the icon. Sometimes the word pipette is used.

What about describing the action instead?
Text can be like this:

Open Editor first
Pick a color first
Pick a color only

Idea for the individual color formats settings:
Header: Individual color formats in Editor
Description (text in light grey): Individual color formats can be shown or hidden (...)

@niels9001, @martinchrzan
In the PR description you add a gif showing the new picking ui/experience. In this gif the color code ui is behind the zoom ui. I think this should be changed to be the other way: Zoom window is behind the color code ui.

@htcfreek you can ignore that, it is only debug issue, we didnt change that behavior

i can't compile this locally due to VS 16.8.  Can we sync this with the main branch?

i did a few tweaks on text and layout.  thoughts?

I also strongly believe the default should be Color then editor.  https://github.com/microsoft/PowerToys/pull/8079 is the changes for all of the above

I'd argue that that Open Color Picker's case differs from Open color picker with... is problematic. Is it a brand? (If so, always uppercase.) Is it not? (If so, use sentence caps.)
Also, why is HEX all caps?
Individual color formats can be shown or hidden in the list below. is odd -- I'd suggest Show additional color formats.
wrt. Change the order of appearance by dragging.:
Windows:

macOS:

i did a few tweaks on text and layout. thoughts?

I also strongly believe the default should be Color then editor. #8079 is the changes for all of the above

Personal preference would be to "start small" when ordering the text/actions in the radio buttons. For example: I would start with the simple - current - color picker on top. But again: personal.
"Individual color formats can be shown or hidden in the list below" --> But the list below isn't the target, the list in the editor is. So I would say something like "(Select) color formats to show in the Editor".
The example of the list of languages (in jsoref's comment) gives me a new idea. We COULD use the format on the top of the list to automatically be the one that will be copied. It would remove need for the dropdown combo/list.

@crutkas , @niels9001 , @martinchrzan
Think about if we want to merge the working cp and do the text/settings improvements in a new PR after discussing them in a new issue. This PR here gets a bit big and imo we discuss without comming to a final solution which is implemented in the next days.

Absolutely! We have more than 4000 lines added, yet we discuss 3 sentences in settings, which I consider the least important in here ;) I would like to get the code and functionality checked.

Absolutely! We have more than 4000 lines added, yet we discuss 3 sentences in settings, which I consider the least important in here ;) I would like to get the code and functionality checked.

We need to pay attention on merging #8079 first and we have to fix the build errors before merging.

@martinchrzan
Later maybe we can collect the suggestions, made mok ups and then create a closed survey where we can only vote but not comment.
For me this sounds like a good way to get a decision.

Sorry. I just saw Clint asking for thoughts. I got plenty of those and I like sharing them. 🤷🏻♂
But I'm happy to copy n' paste them into a new issue/pr later, if that would be better.

I think we need to be hyper focused on issues at hand versus larger issues.  At this point, i feel we've move past toggle vs checkbox for this PR.
Lets merge this puppy in and address targeted adjustments in a new issue.

@martinchrzan
we did some testing and we didn't run into any issue 👍
I have some feedback for the UX (I didn't read all the comments in the PR, so sorry if these have been already suggested/sorted out):

the editor opens in the same place where it was last used, it would be nice to have an option to make it open where the cursor is
is not immediately clear that in the editor is possible to choose a similar color or adjust the current color, have you considered to add a label on top of the color bar?

@enricogior

Right know it should open in the center of the screen, we could open it where you picked it, I just wonder if that would not be confusing - lets say you open editor (without picking a color) - center screen - now you press color picking button (top left) and you pick any color - would you want you editor to open at the same place it was before or move to a new location? Or do you want to have as an option in the settings? @niels9001 any opinions on this one?
Agree, it is not immediately clear that you can do something with the color bar. @niels9001 what about Enrico's suggestion for some label? Would it be cluttering the UI?
Sure we can add that. @niels9001 Should we use the same icon as for "remove"?

@enricogior

Right know it should open in the center of the screen, we could open it where you picked it, I just wonder if that would not be confusing - lets say you open editor (without picking a color) - center screen - now you press color picking button (top left) and you pick any color - would you want you editor to open at the same place it was before or move to a new location? Or do you want to have as an option in the settings? @niels9001 any opinions on this one?
Agree, it is not immediately clear that you can do something with the color bar. @niels9001 what about Enrico's suggestion for some label? Would it be cluttering the UI?
Sure we can add that. @niels9001 Should we use the same icon as for "remove"?

I'd ship it, see if there's any feedback from users about the window position and then think about a solution.
I'd avoid using a label because we already have so much UI stuff going on in a small window - the colors change color on mouse hover and a tooltip shows a message. We could maybe change the cursor when hovering over a color? Photoshop does this:

I'd go for a 'clear all' button at the bottom of the vertical list - or have keyboard support to multi-select colors (e.g. holding shift, right-clicking => delete would then remove all colors). Adding keyboard support/multi-select might be more work I can imagine?

@martinchrzan @niels9001
let's ship it and let's see the community feedback.

@niels9001 Should we change the cursor to hand (or something else) when over ColorPickerControlor or would it be confusing since we don't change it on other buttons?

Yeah, let's leave it out for now and ship it to see if we run into any major issues.

We could add e.g. a teaching tip at some point as an OoBE for the editor if users don't see it at all.

@niels9001 also, should we drop/decrease drop shadow on the picker/zoom window since I feel like it makes it jerky?
@enricogior did you notice picker being slower when moving on a screen?

@martinchrzan

did you notice picker being slower when moving on a screen?

No, but I tested on a desktop with a 12 core CPU and a dedicated GPU.

:partying_face: :tada:
:shipit:

@martinchrzan yeah, if it lags let's get it out. I don't think WPF shadows are as optimized as the UWP ThemeShadows.

Do we release this with 0.27?

@martinchrzan this will need https://github.com/microsoft/PowerToys/pull/8142's fix which is still being tested for CI to pass.

:tada: :partying_face: