Strange format of if statement with comments

Input
fn main() {
    if /*w*/ 5 /*x*/ == /*y*/ 6 /*z*/ {}
}

Output
fn main() {
    if
    /*w*/
    5 /*x*/ == /*y*/ 6
    /*z*/
    {}
}

Expected output
Same as input.  (Test case is from #4518 test cases.)
Meta

rustfmt version: rustfmt 2.0.0-rc.2-nightly (30bda450 2020-11-18)
From where did you install rustfmt?: self build

This is another case of non-ideal formatting, but a circumstance that seems odd/unlikely to be common place in real life. If I recall correctly, the formatting for control flow expressions is using a different comment handling helper than the rest of the codebase, and essentially will just always insert newlines around the comments.
I do not recall if that was done intentionally, or if it was simply done prior to the development of the more widely used comment util functions that utilize more complex heuristics to reformat in the presence of comments

OK.  I see that a comment after the { is formatted properly, e.g.:
fn main() {
    if x == 5 { /*Do nothing in this case*/
    } else {
        // Do something
    }

    if x == 5 {} /*Do nothing in this case*/
}

I agree that this seem sufficient, so I am closing the issue.
(Just for my record, the new lines before and after the control-flow comments are insetrted in expr.rs extract_comment().)

OK. I see that a comment after the { is formatted properly, e.g.:

This is true, but is really unrelated. How comments are handled within the block portion of the if expression is separate from how comments are handled between the keyword and the condition expression, and from how comments between the condition expression and the start of the block are handled.
I actually think there's a decent case to be made that the comment handling could be improved in those latter two locations, but it's also not exactly a high priority, and any such changes would need to have their associated maintenance+runtime costs against any associated benefits of improved formatting (would also have to avoid making the formatting worse for other non-if control flow expressions)

....comments between the condition expression and the start of the block are handled ....
I actually think there's a decent case to be made that the comment handling could be improved in those latter two locations ...

What about removing comments handling in these cases until such improvements are done?  If I understand correctly that means removing the 4 calls to extract_comment() in Rewrite for ControlFlow rewrite() to create between_kwd_cond_comment, after_cond_comment, between_kwd_else_block_comment, after_else_comment.
I ask that because currently extract_comment() "essentially will just always insert newlines around the comment" (as you wrote above), so it may be better that the original code will be used when such comments exist.

What about removing comments handling in these cases until such improvements are done?

No, definitely not. That would be a step in the wrong direction and a notable regression, as that would result in such expressions, and all of the nodes within their respective subtree in the AST not being formatted at all.
If there's better comment extraction/formatting approaches then great, but we don't want to intentionally stop handling comments in places where rustfmt currently handles them.


build and test cycles renderer for other platforms

cycles renderer is only compiled for macOS ( 10.15 )

use PApplet.platformNames[platform] to distinguish binaries


mac-34 lost external connection from phone device.

Type of Request
bug
Infrastructure Environment
LUCI, Github, Cocoon scheduler, Autosubmit, etc...
What is happening?
mac-34 lost external connection from phone device.

Steps to reproduce
Step 1:
Step 2:
..
Step n:
Expected results
I expect to see X when Y is finished.

Phone device keeping turned off by itself, reset phone device to restart device again.


Add parameter to local/remote shell runner to change delimiter in named parameters

While assisting some users today, I ran into a problem with optparse. In a nutshell, parsing options is hard in Bash, so there are many tendencies to shortcut. One such example:
while [ -n "$1" ]; do
    case $1 in
        -C|--gecos)    gecos=$2;  shift 2;;
        -e|--email)    email=$2;  shift 2;;
        -u|--userid)   userid=$2; shift 2;;
        -d|--dry-run)  dryrun=1;  shift;;
        -h|--help)     usage;;
        *) shift;;
    esac
done

Today, I can change the kwargs_op to any prefix I so desire. But, in all cases, the input is distilled to a dict, and then rendered as key-value pairs. (e.g.: --email=james@fryman.io). This causes a failure with the above logic.
This is not an uncommon pattern, and it would be good to be able to s/=/ / in the above parameter.

Some investigation from @m4dcoder: https://github.com/StackStorm/st2/blob/bc60c5508cad6605315daf2af9376a309c8a0754/st2common/st2common/models/system/action.py#L256
https://stackstorm-community.slack.com/archives/community/p1452804623012437

We can write this out as a jinja pattern in cmd today, right?
cmd: --c {{c}} --d {{d}}

Does the cmd trick work for local-shell-script runner? I don't think the cmd parameter exists

@lakshmi-kannan @manasdk fwiw, I'm not immediately blocked. The "workaround" was to fix the underlying script.
I avoided using the cmd jinja pattern hack as I think it's certainly an antipattern we need to watch carefully. It is supported (https://docs.stackstorm.com/runners.html?highlight=runner#runner-parameters). It is disjointed to have the ability to modify the kwargs_op option, but not have one for the delimiter between keyword parameters. If anything, dropping to the cmd and writing it out manually all but nullifies the need for kwargs_op, since I could define it in the cmd for that need as well.

How about we go with kwarg_pattern whose value could take form --%s %s, -%s=%s, -%s %s or --%s=%s.

I got bit by this today. I don't see a fix.

@powellchristoph I'm not certain a patch was added. Can you provide us an example of action parameters you were using and any relevant logs to make sure we're addressing the specific issue you saw.
My current understanding of the issue is this happens when we shell out to action container. If so we might can just take the work done in https://github.com/StackStorm/st2/pull/3976 and just only do parameter input via stdin.
/cc @Kami @lakshmi-kannan for some more context

@powellchristoph What @bigmstone said.
Can you please also share your exact use-case with us, what's the desired input & behavior (ideally a command line string of the arguments you want to pass to your script) and what problems do you have?

I have a simple bash script with named cli arguments that I am trying to use the local-shell-script with. I was able to change the kwarg_op seperator, but the runner still uses the = to separate k/v items.
So alittle script like this below would be called from the command like like:
./script.sh -r foo -w /tmp -s server -c client
or
./script.sh -r foo -w /tmp
I don't want to use positional args, because they aren't all required.
#!/bin/bash

while getopts r:w:c:s:m: option
do
    case "${option}" in
        r) REGION=${OPTARG//=/};;
        w) WORKDIR=${OPTARG//=/};;
        s) SERVER="ParameterValue=${OPTARG//=/}";;
        c) CLIENT="ParameterValue=${OPTARG//=/}";;
        m) MANIFEST=${OPTARG//=/}
            ;;
    esac
done

But using the following meta parameters. It gets passed by Stackstorm as
./script.sh -r=foo -w=/tmp -s=server -c=client
parameters:
  w:
    type: "string"
    required: true
  r:
    type: "string"
    required: true
  s:
    type: "string"
  c:
    type: "string"
  m:
    type: "string"
  kwarg_op:
    type: "string"
    immutable: true
    default: "-"

So now my args are passed to my script by getopts as =value and I have to use the ${OPTARG//=/} to strip it off.


Sveltekit not loading images in npm run preview

Describe the bug
SvelteKit doesn't load images in npm run preview but does show them in npm run dev.
Reproduction
IDK
Logs
Error: Not found: /eclipse-loader.svg
    at resolve (file:///Users/ethanfox/Code/material-space/.svelte-kit/output/server/index.js:2472:18)
    at resolve (file:///Users/ethanfox/Code/material-space/.svelte-kit/output/server/index.js:2339:34)
    at Object.#options.hooks.handle (file:///Users/ethanfox/Code/material-space/.svelte-kit/output/server/index.js:2516:59)
    at respond (file:///Users/ethanfox/Code/material-space/.svelte-kit/output/server/index.js:2337:43)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)

System Info
System:
    OS: macOS 13.1
    CPU: (10) arm64 Apple M1 Pro
    Memory: 92.95 MB / 16.00 GB
    Shell: 5.8.1 - /bin/zsh
  Binaries:
    Node: 16.17.0 - /usr/local/bin/node
    npm: 8.15.0 - /usr/local/bin/npm
  Browsers:
    Chrome: 110.0.5481.100
    Safari: 16.2
  npmPackages:
    @sveltejs/adapter-auto: ^2.0.0 => 2.0.0
    @sveltejs/kit: ^1.5.0 => 1.7.1
    svelte: ^3.54.0 => 3.55.1
    vite: ^4.0.0 => 4.1.1

Severity
annoyance
Additional Information

The contents of src are only served in development, which happens so that you can run an unbundled version of the site.
Also, shockingly, "IDK" is not a valid reproduction.


console spam and freeze every sec

https://mclo.gs/CrwOvLd

neoforge 1.21.1 .65

EMI never begins loading in this log, you have another issue.


GBP no longer available in Currency drop down (1.1.9)

I'm not sure if it was an error in the Columbian Peso update, but GBP / UK Pound is no longer available as a display currency.

Thanks for looking!
Are you running 1.1.10? Honestly I am not sure how to tell what version is installed. I just checked my instance and it looks like GBP is available. Pound Sterling. Should I change the label to something else?

Am running 1.1.9 BUT I just found it. I had Pound Sterling selected previously for the config and it seemed to be lost in the latest upgrade, which is why I went looking for the currency, but was focused on something beginning G(BP) or U(K) so missed it. Am not sure why the config was lost in the upgrade but I agree that it is not an ongoing issue, apologies.

No worries,
I will add the abbreviation before the name. I think that will help everyone.


federation of billing

quick note that all upstream back-ends should use same billing currency.
VITO backend uses credits at the moment: https://github.com/Open-EO/openeo-geopyspark-driver/blob/4c4d2ad70344ad0f0b3b9bb6abaa8491da49a187/openeogeotrellis/backend.py#L366-L369
aggregator uses EUR, but that should change to credits as well
https://github.com/Open-EO/openeo-aggregator/blob/14c06e3f57ddfb248f82826172e3d1e6bd1a6368/src/openeo_aggregator/backend.py#L1113-L1116

Further possible todo's under this ticket:

check that all upstream back-ends also report in credits currency (e.g. as part of integration tests, or raise warnings at run time, ...)

I think I meant that all upstream backends in the aggregator should use the same currency (credits in this case) listed under currency in capabilities doc / which is the currency used for budget, cost in batch job metadata, user info, ...
The aggregator has to list a single currency under its own capabilties, and if there is a discrepancy with upstream backends, there is a problem because there is currently no conversion happening from the cost reported by upstream backend to cost reported by aggregator.
In principle it's possible I guess to add conversion logic at aggregator level, but I'm not sure if that is a good idea, because this requires new means (new apis) to discover  conversion rates properly.

Just for overview of current state

backend
currency (declared at /)

aggregator https://openeocloud.vito.be/openeo/1.1/
"credits"

eodc https://openeo.eodc.eu/openeo/1.1.0/
"EUR"

vito https://openeo.vito.be/openeo/1.1/
"credits"

sentinelhub https://jjdxlu8vwl.execute-api.eu-central-1.amazonaws.com/production/
"processing units"

Endpoints that involve currency (e.g. though a cost or budget property):

GET / : declare currency used by back-end (if any)
GET /me > budget: remaining budget the user has available
POST /result set maximum budget to consume
POST /jobs and PATCH /jobs/{job_id} set maximum budget for batch job to consume
GET /jobs/{job_id} get actual cost (and budget) of batch job
GET /jobs/{job_id}/estimate get cost estimate of a batch job
POST /services and PATCH /services/{service_id} set maximum cost for service
GET /services/{service_id} get actual cost (and budget) of a service

looping in @christophreimer @LukeWeidenwalker : what is the status of EODC back-end regarding using "credits" as currency (instead of "EUR")?

Hi, can bump the api to switch to "credits", that's not a problem. We could also add support for credits to /me and GET /jobs/{job_id}, as that's currently missing.


not able to loggin with swagger created client

My actions before raising this issue

[x ] Read/searched the docs
[x ] Searched past issues
[x ] Asked in gitter channel

swagger-codegen-cli generate -i mycvatswagger.json -l python -o ../swagger_client

Expected Behaviour

I should be able to connect as described on client documentation (generated from swagger.json)
like:
# Configure HTTP basic authorization: Basic
configuration = swagger_client.Configuration()
configuration.username = 'admin'
configuration.password = 'secretpassword'
configuration.debug = True

try:
    # Returns a paginated list of tasks according to query parameters (10 tasks per page)
    api_response = api_instance.api_v1_tasks_list()
    pprint(api_response)
except ApiException as e:
    print("Exception when calling ApiApi->api_v1_tasks_list: %s\n" % e)

Current Behaviour

It fails with a:
HTTP response body: {"detail":"Invalid username/password."}

Possible Solution

Steps to Reproduce (for bugs)

download you swagger.json
generate you swagger_client (as described before)
try to list you're task with valid credentials (with client documentation code)

Context

Your Environment

Git hash commit (git log -1):
1.0.0 release
Docker version docker version (e.g. Docker 17.0.05):
Are you using Docker Swarm or Kubernetes?
no
Operating System and version (e.g. Linux, Windows, MacOS):
client on macos, server ubuntu
Code example or link to GitHub repo or gist to reproduce problem:
Other diagnostic information / logs:
Logs from `cvat` container

Next steps
You may join our Gitter channel for community support.
Also asked here.

@verasativa , thanks for the bug report. Could you please help us to fix it?

I've built my python client for working with cvat around a swagger codegen base. There are a few inconsistencies that should be addressed between the API as it is documented and its true interface.
Using the auth token as the default rather than username and password is a simple change to the settings.py  However the response field for a 200 response to the login field to return a key is undocumented.
Another bug is in the spec for files, (client, server, remote). The current spec says that filenames are placed under a file key when it actually accepts a list of strings. I think it would be good to change the cvat client to nest filenames names under the file key as it is documented. In the future this could allow for extending the file model more easily to include additional specifications, e.g. content type into the data model.

@gdj0nes , I agree. Could you please help us to fix that?

@nmanovic is it better in your mind to update the front end to meed the document interface or change the documentation of the interface.


boards: xtensa: Add support for xiao esp32s3

add board support for seeed xiao esp32s3.

@Maxwelltoo, you have to compress the images to less than 100kB I think. Can you re-check?


need to include How to trigger a synapse pipeline from another synapse pipeline

This page needs to include How to trigger a synapse pipeline from another synapse pipeline.
Or at a minimum state that this is not supported.    This use case is EXTREMELY common and needs to get addressed on this page

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 3d564675-f719-57fc-a406-6aec51d26b29
Version Independent ID: 84124e8f-efad-274f-c2eb-40a04748296c
Content: Pipeline execution and triggers - Azure Data Factory & Azure Synapse
Content Source: articles/data-factory/concepts-pipeline-execution-triggers.md
Service: data-factory
Sub-service: orchestration
GitHub Login: @dcstwh
Microsoft Alias: weetok

@scottstensland
Thanks for your feedback! We will investigate and update as appropriate.

@dcstwh
could you please review this and update as appropriate.

@scottstensland
I've delegated this to @dcstwh, a content author, to review and share their valuable insights.

@scottstensland
Could you please review add comments on this, update as appropriate.

Thanks for your question @scottstensland. I checked and confirmed, the only way to execute a pipeline this way would be to use a Web activity to make a REST call. The REST APIs for ADF and Synapse are documented here: https://learn.microsoft.com/en-us/rest/api/datafactory/pipelines?view=rest-datafactory-2018-06-01.
#please-close


Support for subjectAltNames?

It'd be great to be able to manage certificates containing additional SAN fields (at a minimum, a joint www and non-www cert would be particularly convenient).

There is a fork of this project that is just about to merge support for SAN names. It also supports:

Many DNS API's for dns-01, as well as http-01, and dns-sni-02 via the built-in lego library.
Ingress label/annotations for creating certificates (as well as Certificate resources)
Multiple instances of kube-cert-manager for different groups of Certificates/Ingresses (my PR merging shortly)

The code is largely rewritten at this stage, but totally inspired by and originally based on this project.


Adds random labels

I've added piece labels to one of my pie charts, yet when I take a look at my bar charts on another page these render with 'percentage' piece labels all of a sudden.
I'm not quite sure why? When I remove import 'chartjs-plugin-labels'; they disappear again. Tried to put render to false but it didn't work.

It's the showZero, doesn't work. See: https://github.com/emn178/chartjs-plugin-labels/issues/82
If you fill with null you get NaN displayed in the chart itself.


Implement what is needed to support dynamic federation changes

description will be added soon

@kansi wrote a spec for a way to change the number of validators in a federation (consortium cluster) at run time; see BEP-3. It was implemented and was first available in BigchainDB 2.0 Alpha.
Other run-time changes to federation parameters can be spec'd out in future BEPs.


This certificate was signed by an untrusted issuer

I do a testing like this, but I get a problem about this certificate was signed by an untrusted issuer. How can I fix this error?

Error in browser? You need check this and change string for production:
var lex = require('letsencrypt-express').create({
  // set to https://acme-v01.api.letsencrypt.org/directory in production
  server: 'staging'

Oh, my fault. I did not note that. Thank you for your answer.


How to Update/Optimize subset of params

Hi, first of all thanks for providing this library.
This might be clear to everyone else, but it's not clear to me. Suppose I have 2 groups of params distributed throughout a single model, i.e. my model has some fast weights, and some slow (meta) weights, but they cannot be easily separated into 2 distinct models, i.e. they are interleaved. My use case is this:

pass full model, fast_weight_optimizer to Higher
Update fast weights with Higher (e.g. diffoft.step(loss)), keep slow weights fixed
compute meta-loss, update slow (meta) weights w.r.t updated fast weights
retain the updated fast weights, i.e. the full model has been updated after a single step.

It doesnt seem like this should be too much different from the use case in the Meta-Learning via Learned Loss code, but it's not working for me yet. The issue seems to be that the fast weight update is not being retained after I exit the Higher block, i.e. when i check the fast weights, they don't seem to have been updated. Do I need to do this manually? What am I missing? Many thanks.

@bbc1183  The inner-loop context manager higher.innerloop_ctx(model, opt) creates a stateless copy of the model, and the changes in the inner updates do not affect the original model. Therefore, if you need to retain the final state of the fast model in the inner loop you need to manually copy it.

Yes, eventually figured it out. Many thanks.


Add .well-known endpoint

http://docs.stups.io/en/latest/components/twintip.html

@Gregsen @harti2006 I will close this issue, we can reopen it if needed


Undo last commit as it introduces an error

The last merged pull request introduced an error, as in line 112 it used the prefixed version of IGNORE_ADMIN_VERSION_CHECK whereas it should used the one without prefix as defined in settings.py. Reverting the last commit fixes the error.

Also see the last pull request #137 , which also fixes the same error. You could alternatively merge that one.


[Content]: Clarify (and possibly correct) checkout_id vs order_id

What article on segment.com/docs is affected?
https://segment.com/docs/connections/spec/ecommerce/v2/
What part(s) of the article would you like to see updated?
According to this article:

Checkout Started accepts only order_id.
Checkout Step Viewed and Checkout Step Completed accept only checkout_id.
Order Completed accepts both checkout_id and order_id.

My best guess is that this is a mistake, and Checkout Started should accept only checkout_id, not order_id.
Logically, the checkout ID should exist as soon as the checkout is started, whereas an order ID won't normally exist until an order is completed. This is the way it works with most e-commerce platforms.
Additional information
No response

Just checking if this issue is still pending or if we should now use the checkout_id for checkout steps. Is the documentation currently correct or should we follow the logic @aaronadamsCA lined out?

Any update on this? It's quite confusing what checkout_id vs order_id since there is no explanation what they mean in the context. Are they the same?


Isolates are way too complex for a standard user

I've been trying to use Dart Isolates for the past few days and it's been a total nightmare. Most of the documentation and tutorials ask to use compute from Flutter. But compute returns the result, not the context, so it is not cancellable. Then, the function that you pass must be in the root level, not in the function level, which makes the error message unclear:

[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: Invalid argument(s): Illegal argument in isolate message: (object extends NativeWrapper - Library:'dart:ui' Class: Path)

I heard there is also a limitation where you can't return every type, like only primitive types work. And that it copies the values when returning. So, making a simple Isolate from hand is really really hard, there are many edge scenarios, and sometimes it is slower. It is done in a way no one should use, except most people could benefit from parallelism.
I understand how it is thread-safe, memory-safe, and these things are great. But it is implemented in such a non-intuitive way that no uses it in normal situations.
I wish Dart could learn some lessons from coroutines or goroutines and make "async"/multi-thread/parallelism easy to use for anyone. A few months ago, there was describeEnum in Flutter, now Dart takes care of it. Now, I wish there were some care for compute, so hopefully one day it can be deprecated in Flutter with a better solution.
How it is right now (got this code somewhere on stack overflow):
Future<Person> fetchUser() async {
      ReceivePort port = ReceivePort();
      String userData = await Api.getUser();
      final isolate = await Isolate.spawn<List<dynamic>>(
          deserializePerson, [port.sendPort, userData]);
      final person = await port.first;
      isolate.kill(priority: Isolate.immediate);
      return person;
}

void deserializePerson(List<dynamic> values) {
    SendPort sendPort = values[0];
    String data = values[1];
    Map<String, dynamic> dataMap = jsonDecode(data);
    sendPort.send(Person(dataMap["name"]));
}

How it could be:
Future<Person> fetchUser() async {
    final person = await launch(Thread.io, () => deserializePerson(userData));
}

The scoping mechanism with launch and useContext in Kotlin is perfect to me. It is not memory safe, but the scope helps it be easy to use and intuitive.

Unfortunately, this is a very complex topic where it is extremely hard to hide the underlying complexity without making Isolates significantly less useful.
There is an excellent package on pub.dev that I'd recommend which is actors. If it doesn't serve your use cases, then I'd highly recommend for you to take a look inside of it. It is well tested and can serve as a good starting point for making isolates work with your use case.
Note: Dart 2.19 comes with Isolate.run See: #40238

Can you cancel Isolate.run? Or it is just compute with another name?

Hi @bernaferrari, I'm wondering if you've had a chance to use Isolate.run yet?
I think you'd really enjoy this blog post, "Better isolate management with Isolate.run()". It explains how run works specifically to address some of the issues you described (it even begins by going into detail on just how much of a nightmare using isolates is without run 🙂):

Most of the documentation and tutorials ask to use compute from Flutter.

I'm not too familiar with Flutter, but I know compute now uses run instead of spawn (so presumably some of the benefits carry over)

Then, the function that you pass must be in the root level, not in the function level,

run allows sending closures, and it abstracts the use of sendPort and responsePort, so you can pass it any function without having to explicitly configure those values.

I heard there is also a limitation where you can't return every type, like only primitive types work.

More kinds of objects are now allowed to be sent between isolates (see https://github.com/dart-lang/sdk/issues/46623, and send API docs for the types)

And that it copies the values when returning.

run transfers memory between isolates, it doesn't copy.

So, making a simple Isolate from hand is really really hard, there are many edge scenarios, and sometimes it is slower.

You no longer need to build out any sendPort or responsePort like with spawn, run encapsulates all of that complexity. It basically looks exactly how you described:
    final person = await Isolate.run(() => deserializePerson(userData));
    // not an exact recreation but you get the idea!

Plus run has built in error handling that helps reduce complexity for edge scenarios.
Isolate.spawn absolutely was unintuitive, which the blog post goes into detail about, so I think you'll really enjoy reading it. The dart.dev documentation was also updated to more succinctly show how to use run .
Let us know if that's helpful!

I will answer better later, but I don't like Isolate.run because I can't cancel it.

For better visibility you might want to create a separate issue specifically describing the cancelling functionality you'd like to see for isolates (and maybe close this one if you agree that most of the general complexity of isolates is addressed by run)

I will answer better later, but I don't like Isolate.run because I can't cancel it.

Our APIs currently don't allow cancelling synchronous or asynchronous operations - independent of isolates.  One could make this cancellable with semantics of just killing the helper isolate. That is a little tricky because our Futures aren't cancellable atm. But some team members are thinking about how we could add cancellable futures (/cc @mraleph )

Yeah, for me isolates are useless because what if the user starts a long running async operation and navigates to different screen? I need a way to stop that. If I don't use isolate, the screen freezes. So I don't have an option right now.

@bernaferrari as I said in https://github.com/dart-lang/sdk/issues/50456#issuecomment-1312998117, have you considered looking at actors?
Note: there are some primitives for cancelable operations in package:async such as CancelableOperation and CancelableCompleter

I took a look, but it is still feels too complex, most of isolates seem to be targeted into a "execute a long running operation, interact from the outside, get a result", it fits more the context of a super server than an app. For me, Kotlin corutines are perfect, I can scope into where I am, initialize/kill with easy, select which thread I want (I think Android has 4 by default which are enough). It never overwhelms, it is always just enough. I can also run coroutines out of functions, like myfunction = launch { }, so with the launch it is guaranteed to be in another thread, and it dies automatically if the current screen context is disposed. I can't wrap a function with isolates, and I can't do in a "responsive react/flutter-like way", everything is still too "start, do this, wait for that, iterate on that, finish". I miss this, a lot. And I think it is not me, because isolates are barely used right now, where in Android coroutines are used everywhere, because they are super simple to use.

@bernaferrari  It looks to me like you are looking for a feature that looks and feels like coroutines in Kotlin, is that correct?
Note that coroutines are not strictly better than Isolates, because you can run into synchronization issues while using them. Such synchronization issues are hard to detect and can be introduced by accident.
Isolates are fundamentally a different feature. They allow you to add true concurrency to your app without also introducing any synchronization issues by accident. This comes at the cost of some convenience, but you won't have any accidental synchronization issues!
I agree with the following comment by MaryaBelanger https://github.com/dart-lang/sdk/issues/50456#issuecomment-1689091664, that is, it would probably be best to describe any issues you have with Isolate.run (and the fact that you can't cancel them) in a new issue.

I'm looking for a way that Isolates could be useful for a standard user, people are afraid right now because it is too hard to use. Kotlin is an example, but Go or Swift could also work well for Dart. Even Java, with threads, can have dozens of issues, but is easier to use than Dart right now.
I agree with the synchronisation issues, but my biggest issue right now is that I can't use isolates in a consistent regular way, neither anyone. My theory is that it is because it is too hard. Even Flutter's official color palette example (which uses isolates) has bugs because there is no way to cancel it.
I have issues such as, not being able to invoke a function in an isolate without any compiler warning, only runtime warning, because process.io is not static but since it is being imported from another library, Dart ignores it.
For me, the ideal feature would be an Isolate.run that is cancelable, allows to select the thread from a poll (and queues in that poll), allows non static functions (that comes at a cost, I know, but right now it is too complex). Most of all, I miss an Isolates example that is like 2 LOC, and not 15 to do something trivial.


add a user with node add_user

Because this will be deployed on a server a script to create a user.json file would be nice.

Good migration commit :) GG
users.json = Top! Purpose When [npm test]>
[Fri May January 2015 0:22:37] INFO: Loaded users
[Fri May January 2015 0:22:37] INFO: Started: Forever Web Console
[Fri May January 2015 0:22:37] INFO: Server listening on port: 8085
http://gyazo.com/ad04e4be519aac739a054dc41bd2e9f9

password SHA256 encryption + unique uuid's for the id's

@Cinezaster released in v0.3.0


Email rejected by server when sender name is short

Hello, I can't explain this, but in the code below, when sender is less than 5 characters, the mail is rejected by the remote SMTP server with an error message like this one:

SMTP error from remote server for TEXT command, host: smtpz4.laposte.net (<IP_ADDRESS>) reason: 560 5.7.1 Service refuse. Service refused. LPN007_510

Looking at detail, I see that the FROM field starts with "=?utf-8?q?", for example:

From: =?utf-8?q?club?=<EMAIL_ADDRESS>
If I add one single character to the sender name (eg. "cluby" instead of "club"), the error disappears.
Here is the code for sending:
def send_async_email(the_app, msg):
    with the_app.app_context():
        mail.send(msg)

def send_email(subject, sender, recipients, text_body, html_body):
    msg = Message(subject, sender=sender, recipients=recipients)
    msg.body = text_body
    msg.html = html_body
    Thread(target=send_async_email, args=(app, msg)).start()

with passed sender as:
sender = '%s <%s>' % (app.config['APP_NAME'], app.config['MAIL_USERNAME'])

For infos, I'm using Flask-Mail 0.9.1 with Flask 1.0.2 in Python 3.7.2 32-bit under Windows 7 64-bit.

I can't reproduce this issue.


Setup SQLite database table for RFI’s

Setup SQLite database table for RFI’s

[x] Determine what the RFI table will look like in the DB

[x] Build the “RFI” database table

this is done


Flow release finish not working

When I launch git flow release finish from the plugin, it switch to the terminal but this error is shown
Switched to branch 'master'
error: Terminal is dumb, but EDITOR unset
Please supply the message using either -m or -F option.
Fatal: Tagging failed. Please run finish again to retry.

Is a problem with this plugin or with my system configuration?

Git flow is the one piece of GitSavvy I didn't put together :) @asfaltboy, can you comment?

@ramiel I can't really tell without seeing your branches. Help me help you with some questions:

Copy paste the output the following commands:

$ git config -l | grep flow
$ git branch -va | grep feature

Which branch are you on when you issue the release finish command?
What happens when you issue the same directly in command line: git flow release finish?
Which version of git-flow do you use, and where did you install it from?

So, here the informations:
$ git config -l | grep flow
gitflow.branch.master=master
gitflow.branch.develop=develop
gitflow.prefix.feature=feature/
gitflow.prefix.release=release/
gitflow.prefix.hotfix=hotfix/
gitflow.prefix.support=support/
gitflow.prefix.versiontag=
gitflow.path.hooks=/home/fabrizio/Modelli/Projects/doc-ci/instructor/.git/hooks

then
$ git branch -va | grep feature
feature/extractors     57ad4dd Ignored local configuration

The version of git-flow is 1.8.0 (AVH Edition).
When I try to close the release I'm on the release branch itself.
Doing the same on the console actually close the branch (show me three commit message, two for the merges and and for the tag)

To be honest I have not been aware of the AVH version up to this moment. Our current implementation was built to work with nvie's git-flow (requiring 0.4.1 or up), which is what I'm using, but I don't think the fork is the reason.
I installed latest git-flow-avh (1.9 from homebrew) but could not reproduce your issue. Looking again at your error, the message seems to indicate that the EDITOR environment variable must be set (release finish requires a message for a tag commit), when executing commands the way we do (IIRC using subprocess.Popen).
Can you try setting, for instance, EDITOR=vi in your profile, running sublime from that profile and then executing the command again? Alternatively, set the editor of your choice in git config, e.g:
git config core.editor=mvim -f

Also, it's worth noting that SublimeGit had/have a similar issue, and I'm not sure how they solve it. Is opening a view in sublime to record the message from use a good solution (similarly to commit)?

@divmain How do you feel about this? A release/hotfix finish by default requires a message to be added (to be used when creating the tag). However a commit for a tag it is not required, so it could be skipped. Alternatively, we could optionally enter the commit message for the tag in sublime, prior to using git flow release finish.

Has someone documented/published the "git flow way" in a blog post or something?  As I mentioned, I don't use it in my workflow, and that may make it difficult to support multiple possible variants of git flow.  However, as a general rule, I'd aim to be as permissible as possible.  In this case, it may mean always doing flow release in an AVH-compatible manner - so possibly always prompt for a message, even if it is not required for nvie's git flow.  Does that make sense?

Here is Vincent's original blog post that "started it all". In fact the blog, as well as both AVS and nvie versions use an annotated tag by default (git tag -a <ver>) when finishing a release.
The default in git-flow is to display an editor for the annotated tag message. However, git-flow (both versions) currently calls the configured editor, which may not be even configured, as the case with this issue.
An external editor (say gvim) called from our subprocess can also cause sublime to freeze, as has happened to me a few times.
So, do you think a one-liner sublime prompt for a tag annotation it's enough? Or do we need to build something larger like the commit view?

If you want my humble opinion, people expects a commit window for the annotated tag.

@asfaltboy - any more thoughts about this?  I'm fine adding something similar to the commit view (there is already a UI primitive to use for this, which is used for amending commits).  But since I'm not a flow user, I'm not sure of the best way forward with this.  @ramiel, if you're still using GitSavvy and this is an important issue for you, I'd welcome a PR from you also.

This raises a question on where are long/short prompts appropriate. In other words, I don't see this as a "flow" problem only; this applies to any git command that prompts for input in an editor, (such as creating a tag would).
For example, in the Create Tag command, we already prompt for tag commit message in the subject line, so technically we could easily do that here too. However, people may want to / used to commit a longer tag description using the commit view, listing e.g. version release notes.
So my suggestion is try implement a simple switch (perhaps defined in settings), for which prompt to display in some commands. I could imagine some users wanting to use short commit messages for regular commits too, perhaps being used to single line git commit -m "message" invocation.
I'd also extract the prompting methods into a resuable mixin and use were appropriate.

Hi,
Has this been fixed yet? I'm a flow user and just started really using Git. I normally use SmartGit because its fast but having to always switch away from Sublime Text is just a hiccup in my workflow in both Github repositories and others. I believe this must be fixed by now and you just forgot to close the issue.
Thank you for your works!

@mufeed20 thanks for the reminder, actually this wasn't fixed yet!
I completely forgot about fixing this, which is silly, since I myself resort to switching to shell to finish a release. Will try to resolve this weekend, thanks!

What would be the workaround? Just set EDITOR to 'subl3' ?
Thanks again.

To be honest, I simply use shell right now, and I found EDITOR=vi works well. Not sure if sublime works as editor by default, but you can try and let us know.

Unfortunately it doesn't seem like there's a way to pass the messages to the git-flow tool.
This means that if we wanted to implement this part of git-flow correctly, we'd need to write our own implementation that will, if we follow nvie's app output, do the following:

Summary of actions:

Latest objects have been fetched from 'origin'
Release branch has been merged into 'master'
The release was tagged '0.0'
Release branch has been back-merged into 'develop'
Release branch 'release/0.0' has been deleted

I think I fixed that some time ago.


sqlite3 error during startup

Netflix add-on version
v1.20.4+matrix.1
Operative systems used
Linux (Ubuntu / Mint / ...)
Kodi version used
Kodi 19 (Matrix)
Description of the bug
During startup of Kodi or after fresh install of plugin.video.netflix I see the following message in the log:
2023-01-23 10:10:58.435 T:32537    INFO <general>: CAddonMgr::FindAddon: plugin.video.netflix v1.20.4+matrix.1 installed
2023-01-23 10:10:58.439 T:1037     INFO <general>: initializing python engine.
2023-01-23 10:10:58.571 T:14224 WARNING <general>: CGUIMediaWindow::OnMessage - updating in progress
2023-01-23 10:10:58.814 T:1037     INFO <general>: [plugin.video.netflix (0)] The debug logging is set as DISABLED
2023-01-23 10:10:58.991 T:1037    ERROR <general>: [plugin.video.netflix (0)] SQLite error Incorrect number of bindings supplied. The current statement uses 2, and there are 4 supplied.:
2023-01-23 10:10:58.991 T:1037    ERROR <general>: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                                    - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                                   Error Type: <class 'resources.lib.common.exceptions.DBSQLiteError'>
                                                   Traceback (most recent call last):
                                                     File "/home/hifi/.kodi/addons/plugin.video.netflix/resources/lib/database/db_base_sqlite.py", line 124, in _execute_non_query
                                                       cursor.execute(query, params)
                                                   sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 2, and there are 4 supplied.

                                                   The above exception was the direct cause of the following exception:

                                                   Traceback (most recent call last):
                                                     File "/home/hifi/.kodi/addons/plugin.video.netflix/service.py", line 13, in <module>
                                                       run(sys.argv)
                                                     File "/home/hifi/.kodi/addons/plugin.video.netflix/resources/lib/run_service.py", line 115, in run
                                                       G.init_globals(argv)
                                                     File "/home/hifi/.kodi/addons/plugin.video.netflix/resources/lib/globals.py", line 272, in init_globals
                                                       self.CACHE_MANAGEMENT = CacheManagement()
                                                     File "/home/hifi/.kodi/addons/plugin.video.netflix/resources/lib/services/cache_management.py", line 74, in __init__
                                                       self.next_schedule = _compute_next_schedule()
                                                     File "/home/hifi/.kodi/addons/plugin.video.netflix/resources/lib/services/cache_management.py", line 371, in _compute_next_schedule
                                                       G.LOCAL_DB.set_value('clean_cache_last_start', last_run)
                                                     File "/home/hifi/.kodi/addons/plugin.video.netflix/resources/lib/database/db_base_sqlite.py", line 53, in wrapper
                                                       return func(*args, **kwargs)
                                                     File "/home/hifi/.kodi/addons/plugin.video.netflix/resources/lib/database/db_base_sqlite.py", line 226, in set_value
                                                       self._execute_non_query(query, (key, value, value, key))
                                                     File "/home/hifi/.kodi/addons/plugin.video.netflix/resources/lib/database/db_base_sqlite.py", line 129, in _execute_non_query
                                                       raise DBSQLiteError from exc
                                                   resources.lib.common.exceptions.DBSQLiteError
                                                   -->End of Python script error report<--

2023-01-23 10:10:59.267 T:1037     INFO <general>: Python interpreter stopped

Same happens for version v1.20.5+matrix.1, version v1.20.3+matrix.1 still works fine. This is probably due to commit 2ac70df96aea1119743937a1ed07afb6de9f4698. I'm using libsqlite3-0:amd64              3.22.0-1ubuntu0.7.
A bit debugging showed that params has indeed 4 items (log is gone unfortunately :-( )  I recall "1.20v5, service_previous_version, service_previous_version, 1.20v5" or similar.
Steps to reproduce the behavior

Start Kodi v19 -matrix
Install plugin.video.netflix v.20.4+matrix.1 or higher
Kodi will display an error notification to check log file
kodi.log contains attached message

Debug log - mandatory
https://paste.kodi.tv/tawaxivili.kodi
Possible fix
No response
Additional context
No response
Screenshots
No response

Stumbled over this issue after updating plugin.video.netflix from 1.20.3 to 1.20.5 on an Ubuntu 18.04+Kodi Matrix 19.5 install, which has SQLite3 v3.22.
Reverting https://github.com/CastagnaIT/plugin.video.netflix/commit/2ac70df96aea1119743937a1ed07afb6de9f4698 fixes this.

please try replace the method code with this and let me know
    @handle_connection
    def set_value(self, key, value, table=db_utils.TABLE_APP_CONF):
        """
        Store a single value to database
        :param key: The key to store the value
        :param value: Value to save
        :param table: Table map
        """
        table_name = table[0]
        table_columns = table[1]
        value = common.convert_to_string(value)
        # Update or insert approach, if there is no updated row then insert new one (no id changes)
        if common.CmpVersion(sql.sqlite_version) < '3.24.0':
            query = f'INSERT OR REPLACE INTO {table_name} ({table_columns[0]}, {table_columns[1]}) VALUES (?, ?)'
            self._execute_non_query(query, (key, value))
        else:
            # sqlite UPSERT clause exists only on sqlite >= 3.24.0
            query = (f'INSERT INTO {table_name} ({table_columns[0]}, {table_columns[1]}) VALUES (?, ?) '
                     f'ON CONFLICT({table_columns[0]}) DO UPDATE SET {table_columns[1]} = ? '
                     f'WHERE {table_columns[0]} = ?')
            self._execute_non_query(query, (key, value, value, key))

seem that dont like have arguments to not be used

thanks for the feedback i will apply the changes

What can we do to fix the problem?

its already fixed on new release

And with the new version the problem remains. I am using the flatpak version of kodi

@andreasdimo open a new issue by fullfill bug template


Wrong ES6 method definition colors

Since 0.11.0, parentheses and the parameters themselves are displayed in different colors than before.
@0.10.5:

@0.11.0 (and 0.11.4 as well):

Was this an intended change? Here's how it looks on Sublime Text 3 with the babel package installed (also notice the import and from keywords):

I'm using the oceanic-next-syntax syntax theme, if that matters.

When I introduced flow support I changed the value of arguments passed in functions and methods from variable.parameter.function.js to storage.type.variable.flowtype for no other reason than the color of parameters was just white in the One Dark scheme and it is just a variable after all. I guess the original is the more correct scope name. Do you have strong opinion on this? Not a lot is left from my port of babel-sublime.
I can't see any difference in the import using oceanic-next syntax in regard to imports!

I have no idea about sublime-text as I don't have it and have never used it. My guess is that the syntax styling  for imports is different on both platforms. The scope name for import is keyword.control.module.js

No, I don't have strong opinion on this. It's not a big deal. I recently switched from Sublime and this particular color scheme is something that I'm used to. I haven't had any problems with 0.10.5 so I'm probably going to stay on it and not update as it "just works". Thanks for the reply.

I will change the colour of the parens in my next release. That is an error.


Apply some automated clang fixes on tests.

Result of
.github/bin/run-clang-tidy.sh --checks="-*,modernize-use-equals-default,readability-redundant-string-init,google-readability-braces-around-statements,readability-redundant-member-init,readability-else-after-return" --fix

Codecov Report
Base: 93.01% // Head: 93.01% // No change to project coverage :thumbsup:

Coverage data is based on head (b25199c) compared to base (64eafaa).
Patch coverage: 100.00% of modified lines in pull request are covered.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@           Coverage Diff           @@
##           master    #1745   +/-   ##
=======================================
  Coverage   93.01%   93.01%
=======================================
  Files         352      352
  Lines       25512    25512
=======================================
  Hits        23729    23729
  Misses       1783     1783

Impacted Files
Coverage Δ

common/analysis/line_linter_test_utils.h
100.00% <100.00%> (ø)

common/analysis/syntax_tree_linter_test_utils.h
100.00% <100.00%> (ø)

common/analysis/text_structure_linter_test_utils.h
100.00% <100.00%> (ø)

common/analysis/token_stream_linter_test_utils.h
100.00% <100.00%> (ø)

common/lexer/lexer_test_util.h
89.33% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Date validation misses some invalid values

The DateTime.rfc3339 used here to check for valid dates doesn't raise an error when the year has more than four digits or starts with a -.
Technically -0001-12-31 is a real date but it breaks our BigQuery implication.

Can you provide some examples of what you're expecting? Using the date format, I'm seeing 5 digit years as invalid and -0001-12-31 as valid:
>> schemer = JSONSchemer.schema({ 'format' => 'date' })
=> #<JSONSchemer::Schema::Draft7:0x00007fa043182ac8 @root={"format"=>"date"}, @format=true, @insert_property_defaults=false, @formats=nil, @keywords=nil, @ref_resolver=#<Proc:0x00007fa0439e8230@/Users/dharsha/repos/json_schemer/lib/json_schemer/schema/base.rb:21>>
>> schemer.valid?('-0001-12-31')
=> true
>> schemer.valid?('10000-12-31')
=> false

Oh it looks like I was a version behind, when I update I do see what you're seeing for the 5 digit years but I am still getting invalid -0001-12-31. I don't really think that a negative year should be considered valid, do you?

I don't really think that a negative year should be considered valid, do you?

Hm, a negative year seems ok to me, but it's not totally clear from reading about ISO 8601:

To represent years before 0000 or after 9999, the standard also permits the expansion of the year representation but only by prior agreement between the sender and the receiver.

It says basically the same thing about any year before 1583:

Instead "values in the range [0000] through [1582] shall only be used by mutual agreement of the partners in information interchange."

I feel ok about leaving it up to Ruby's implementation of DateTime.rfc3339. As a workaround, you could define a custom format: https://github.com/davishmcclurg/json_schemer/blob/ec9b051104aa063ea3f0ac913999f256556ad5dd/lib/json_schemer/schema/base.rb#L36


Adds commas and semicolons to listen(...) example

I don't think the build is failing because of my changes to Readme.md

It's not.  It's failing because of a test related to an SSL certificate being expired.  For now, can you disable the test?

@benjamin-albert try rebasing and updating this PR.  I just commented out the failing test and will ping the author about it.

I've rebased the commit, looks like the tests pass now.

Thanks @benjamin-albert !

You're welcome.


support chatgpt-4o-latest ENG-1330

Support chatgpt-4o-latest. Just a draft PR for now until the backend merges so that we can run tests

PR ready for review @dragos199993


Avoid using unstable React API

I suppose it's about unstable_batchedUpdates, but actually it's stable ) E.g. "react-redux v7.0.1" v use it and export from package. The React team encouraged them to use this.
You can find more interesting details about "unstable_batchedUpdates"  here https://github.com/facebook/react/issues/15080


Add Support for addPkg and RemPkg

fix #107
tested with the latest version of flix, working smoothly.
Only includes fpkg files which are in a directory named lib.

*/lib/package.fpkg is included
*/lib/subdirectory/package.fpkg is included.

*/package.fpkg is not included.

Will take a look soon!


Add Drag & Drop feature for installed Linux apps between guest and host OS

Drag & Drop functionality would be a huge help and make things much easier to work with installed GUI Linux apps with WSLG.
programs like browsers, photo related, video related, file managers and many more would benefit from drag and drop between guest and host OS.

Yup that would be just perfect :)

This would be neat, is it just a missing feature from the built in X server?

I add my voice to this!


why the dependencystore has no writer

why the dependencystore has no writer? i saw it already define in the interface.go in the dependencystore?but why in the mock directory , the writer didn't exist? is you guys forgot to merge it ?

I think because we don't have a REST endpoint for storing dependencies, as it's typically done by a Spark job that writes to Cassandra directly.

Closing as it's not clear why this is an issue


Fix column count issues with certain ligature.

Summary of the Pull Request
This change tries to fix column size calculation when shaping return glyphs that represents multiple characters (e.g. ligature).

References
This should fix #696.

PR Checklist

[ ] Closes #xxx
[X] CLA signed. If not, go over here and sign the CLA
[ ] Tests added/passed
[ ] 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

Detailed Description of the Pull Request / Additional comments
Currently, it seems like CustomTextLayout::_CorrectGlyphRun generally assumes that glyphs and characters have a 1:1 mapping relationship - which holds true for most trivial scenarios with basic western scripts, and also many, but unfortunately not all, monospace "programming" fonts with programming ligatures.
This change makes terminal correctly processes glyphs that represents multiple characters, by properly accumulating the column counts of all these characters together (which I believe is more close to what this code originally intended to do).
There are still many issues existing in both CustomTextLayout as well as the TextBuffer, and the correct solution to them will likely demand large-scale changes, at least at the scale of #3578. I wish small changes like this can serve as a stop gap solution while we take our time to work on the long-term right thing.

Validation Steps Performed
Builds and runs. Manual testing confirmed that it solves #696 with both LigConsalata and Fixedsys Excelsior.

I am trying to explain things a little bit more verbosely here, so excuse me if you already know about anything I am talking about below.

IDWriteTextAnalyzer::GetGlyphs in DirectWrite (as well as any other font/shaping engine that  supports things like GSUB) might return result that the number of glyph is less (or more) than the number of character codes.

This is typically caused by typographical features such as ligatures, which is the case of #696.

Hence for many scenarios such as selection, a map from character codes to corresponding glyph is necessary.

To solve this issue, IDWriteTextAnalyzer::GetGlyphs included clusterMap as one of its outputs.

clusterMap is a map from character index to glyph index.

Which means the array index is the character index, and the array content is the corresponding glyph index of such character.

To my knowledge both _textClusterColumns and _glyphClusters are arranged on character index, not glyph index.

Therefore I believe would be incorrect to access them using i, which is glyph index in this context.
This is why charIndex is calculated using std::distance from the beginning of _glyphClusters.

The added code does the following:

Find the chatacter range in _glyphClusters that represents current run. (runStartIterator, runEndIterator)
Within the run range, find the character range that is associated with this glyph from _glyphClusters.

Note that since _glyphClusters has results of multiple runs stored together in the same array, on beginning of each run glyph index is resetted to 0. Hence  i - run.glyphStart.

For each character representing the current glyph, find their column count from _textClusterColumns and add them together into columns.

I believe the reason why fonts like Cascadia Code work is because those fonts handles ligatures differently.

Instead of returning a glyph with multiple width, Cascadia Code returns multiple glyphs of equal advance width.
In example of "===", the first two glyphs are left blank. The last glyph has significant amount of negative left side bearing.

This negative LSB allows the glyph to visually occupy the space of all three glyph, while only report advance of one standard width.

Hope this helps. Please let me know if you need any other clarification.

I am trying to explain things a little bit more verbosely here, so excuse me if you already know about anything I am talking about below.

IDWriteTextAnalyzer::GetGlyphs in DirectWrite (as well as any other font/shaping engine that  supports things like GSUB) might return result that the number of glyph is less (or more) than the number of character codes.

This is typically caused by typographical features such as ligatures, which is the case of #696.

Hence for many scenarios such as selection, a map from character codes to corresponding glyph is necessary.

To solve this issue, IDWriteTextAnalyzer::GetGlyphs included clusterMap as one of its outputs.

clusterMap is a map from character index to glyph index.

Which means the array index is the character index, and the array content is the corresponding glyph index of such character.

To my knowledge both _textClusterColumns and _glyphClusters are arranged on character index, not glyph index.

Therefore I believe would be incorrect to access them using i, which is glyph index in this context.
This is why charIndex is calculated using std::distance from the beginning of _glyphClusters.

The added code does the following:

Find the chatacter range in _glyphClusters that represents current run. (runStartIterator, runEndIterator)

Within the run range, find the character range that is associated with this glyph from _glyphClusters.

Note that since _glyphClusters has results of multiple runs stored together in the same array, on beginning of each run glyph index is resetted to 0. Hence  i - run.glyphStart.

For each character representing the current glyph, find their column count from _textClusterColumns and add them together into columns.

I believe the reason why fonts like Cascadia Code work is because those fonts handles ligatures differently.

Instead of returning a glyph with multiple width, Cascadia Code returns multiple glyphs of equal advance width.

In example of "===", the first two glyphs are left blank. The last glyph has significant amount of negative left side bearing.

This negative LSB allows the glyph to visually occupy the space of all three glyph, while only report advance of one standard width.

Hope this helps. Please let me know if you need any other clarification.

That's excellent. Can you please embed much of this as comments inside the code block so it can be referred to in the future, especially when someone gets the idea to further revise this code? Thank you!

I vaguely remembered I did something similar in #3578 and wrote a bunch of weird code. It definitely needs more comment for other people to fully understand the layout process.

There may be cases that a character is transformed into multiple glyphs, or even multiple characters converted into multiple glyphs (it may be uncommon for LGC but there may be cases that a console app outputs complex script text). Also, should test that RTL runs like Arabic won't crash the console.

@reli-msft I am well aware of those issues. However, I personally consider the ability to handle those things (especially BiDi) as part of "large scale right-things" instead of something that I can easily handle as part of this CL. Therefore I will only ensure things does not crash at this moment.
To handle multi-glyph and N-to-M mapping scenarios, I think the best solution is to properly introduce a concept of cluster. (If my memory is correct I think @skyline75489 did something similar in #3578?) It is also necessary to have better respect to advances and offsets coming from DWrite, in order to deal with things like diacritic glyphs.
It seems like constraints coming from legacy console APIs like ReadConsoleOutput could cause significant trouble with things like Bidi/RTL languages and non-BMP glyphs. Those issues do need very careful designs, as most likely we will need to have some systematic way to manage compatibility. Personally I think these are out of scope for this PR, and we probably should talk about it somewhere else.

@reli-msft provides several enlightening comments in #3546, which are the inspiration of #3578. I have a mixed feeling about it, considering I've opened #3458 which may even increase the complication of the layout problem.

@milizhang I have not forgotten about this. My son was sick on Friday so I stayed home with him and the daycare has been closed every work day since thanks to our area snow. I want to review this, but I need more than 75 seconds of uninterrupted brain power to reconcile what @skyline75489 has said with your change before approving, so it will probably be a few more days before I get to this... also known as whenever the daycare opens again and I can sit at my desk in peace and think. :)


⚠ Samsung has degraded performance

In 2071d1d, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2718 ms

Resolved: Samsung performance has improved in fc7d77c.


RELATED: WEB-3837 Detect absolute links in version picker

Build succeeded (check pipeline).

https://checklist.intgdc.com/job/compliance/job/gooddata-docs-theme-oss-check/29/ : SUCCESS in 4s

Build succeeded (gate pipeline).

https://checklist.intgdc.com/job/compliance/job/gooddata-docs-theme-fossa-scanning-oss-zuul/22/ : SUCCESS in 1m 28s (non-voting)
https://checklist.intgdc.com/job/compliance/job/gooddata-docs-theme-merge-compliance-check/7/ : SUCCESS in 10s


ENV vars are ignored (sometimes)

I have a repo with app.json.
That app.json contains the "env" section with a variable. After I introduced the variable it worked and it was asked. But during all subsequent runs the variable is ignored (not being asked).
  "env": {
    "USE_GOOGLE_ADS_CONFIG": {
      "description": "Would you like to use a google-ads.yaml (Y) - please upload one, otherewise (N) you'll be asked to enter credentials later",
      "required": true,
      "value": ""
    }
  },

I tried both required true/false, with and without value.
If I rename it, it starts working again. But if I rename it back it stops.
All that I'm doing with the var is checking for its value in my prebuild.sh:
if [[ $USE_GOOGLE_ADS_CONFIG = "Y" || $USE_GOOGLE_ADS_CONFIG = "y" ]]; then
...

It's really weir behavior and can't tell exact reproducing steps.

Here's an example of a deployment log (the var is there, see app.json, but it wasn't promted):

Welcome to Cloud Shell! Type "help" to get started.
To set your Cloud Platform project in this session use “gcloud config set project [PROJECT_ID]”
sergei@cloudshell:~$ cloudshell_open --repo_url "https://github.com/evil-shrike/cloud-run-button-test.git" --page "shell" --force_new_clone
[ ✓ ] Cloned git repository https://github.com/evil-shrike/cloud-run-button-test.git.
[ ✓ ] Queried list of your projects
[ ✓ ] Found 11 projects in your GCP account.
[ ? ] Choose a project or press ctrl-c to create a new project: myproject1
[ ✓ ] Enabled Cloud Run API on project myproject1
[ ? ] Choose a region to deploy this application: us-central1
[ ! ] Running command: ./cloud-run-hooks/prebuild.sh

./cloud-run-hooks/prebuild.sh
^C
sergei@cloudshell:~ (myproject1)$ cd cloud-run-button-test/
sergei@cloudshell:~/cloud-run-button-test (myproject1)$ cat app.json
{
"env": {
"USE_GOOGLE_ADS_CONFIG": {
"description": "Would you like to use a google-ads.yaml (Y) - please upload one, otherewise (N) you'll be asked to enter credentials later",
"required": true,
"value": ""
}
},
...
}

If the service exists then it will find the env var on a second run.
Glad your workaround works. :)

hold on, are these envvars taken from an existing CRun service? :-( ) So, it's not just vars inside a Shell VM?

Yeah, the env vars in Cloud Run Button are for setting env vars on Cloud Run services.


Fix arg reduce for M3

Proposed changes
Fix arg reduction for 2 byte types on M3
Checklist
Put an x in the boxes that apply.

[x] I have read the CONTRIBUTING document
[x] I have run pre-commit run --all-files to format my code / installed pre-commit prior to committing changes
[x] I have added tests that prove my fix is effective or that my feature works
[x] I have updated the necessary documentation (if needed)

Thanks @jagrit06 !!!


bugs in running merge checks

Bug description
the checks for Code Format and License Header  failed  after I submitted this pr #10704.
https://github.com/facebookincubator/velox/actions/runs/10330109589/job/28598703540?pr=10704
https://github.com/facebookincubator/velox/actions/runs/10330109589/job/28598703339?pr=10704

the reason for the failure of these checks is that the package(linux-libc-dev_6.8.0-39.39_amd64.deb)  cannot be fetched in this container environment.
System information

Relevant logs
No response

in my opinion, there may be some problems in our CI/CD container env.  could you please take a look ? @majetideepak @assignUser


Scene contents are not disposed so stories will still leak memory until we're able to wield HMR/SPA location hooks.

Actually, Storybook embeds stories within iframes, so the browser should be handling cleanup of GPU memory automatically.


Ignoring indexer that doesn't support searching

I have set up 3 indexers, 2 public and 1 private, but I keep getting the following:
Configuration file already exists.
info: Validating your configuration...
warn: Ignoring indexer that doesn't support searching: http://<IP_ADDRESS>:9696/1/api?apikey=?API
warn: Ignoring indexer that doesn't support searching: http://<IP_ADDRESS>:9696/2/api?apikey=?API
warn: Ignoring indexer that doesn't support searching: http://<IP_ADDRESS>:9696/12/api?apikey=?API
error: no working indexers available

OS: OpenMediaVault Shaitain
Installation: Standalone Docker-Compose/Stack via Portrainer
Network: same network as Prowlarr

Hi
Just saw this as closed. Any reasons why?
Thanks

Oh, someone had posted it in the discord and said they figured it out. I thought it was you

Oh didn't know you had a discord. No unfortunately I have not, do you have any idea how the other user did?

They updated prowlarr

Unfortunately, mine seems already on the latest:

Is there anyway to get a verbose log of this?


Revert "[Papercut][SW-15999] Don´t show inactive articles in crosselling"

Reverts shopware/shopware#706

@shyim We has to revert #706. Because of usability and consistency issues as there might be already inactive articles assigned.


adds scores, turbo count, start and reset functionality

looks good. We need to take a look at our syntax auto indent. Seems Our editors are doing 2 different things.


Duplicated tokens in Terms.yml

https://github.com/errata-ai/Microsoft/blob/26acca62396038d7c46a56ea631c2a5261edf767/Microsoft/Terms.yml#L27-L30
Saw some of these tokens are duplicated. What was the intention?

Nope, PRs welcome.

@jdkato Opened PR


UVI Request

--- UVI JSON ---
{
  "vendor_name": "Linux",
  "product_name": "Kernel",
  "product_version": "versions from  to before v5.10.51",
  "vulnerability_type": "unspecified",
  "affected_component": "unspecified",
  "attack_vector": "unspecified",
  "impact": "unspecified",
  "credit": "",
  "references": [
    "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=c92298d228f61589dd21657af2bea95fc866b813"
  ],
  "extended_references": [
    {
      "type": "commit",
      "value": "c92298d228f61589dd21657af2bea95fc866b813",
      "note": "fixed"
    }
  ],
  "reporter": "joshbressers",
  "reporter_id": 1692786,
  "notes": "",
  "description": "virtio-net: Add validation for used length\n\nThis is an automated ID intended to aid in discovery of potential security vulnerabilities. The actual impact and attack plausibility have not yet been proven.\nThis ID is fixed in Linux Kernel version v5.10.51 by commit c92298d228f61589dd21657af2bea95fc866b813. For more details please see the references link."
}
--- UVI JSON ---

This issue has been assigned UVI-2021-1001299


Add metrics for sync status

The best_known_block_number and blockchain_height implemented in the Nethermind client look particularly useful.

Would like to take this one.


Upgrade pysam to 0.15.0

Part of the codebase upgrade project

According to the past experience, this is the most difficult part of our upgrade project. There are quite a few things that broke on python 2 when running 0.15.0, needless to mention its compatibility when we run it on python 3.
This issue can be closed when:

[ ] Running pysam==0.15.0

[ ] All the of tests are passing

[ ] Related endpoints are running, this might include some manual testing, e.g., all of the pysam related endpoints are functional

What will happen next?
Obviously, some breaking changes brought by the update of pysam caused these problems. At this stage, it would be good to install a bunch of different versions of pysam, and see which one passes our test suite. Whichever the latest one that passes our test suite can be then used to determine which version introduced the breaking changes, which would be easier for us to dig into.
Current progress
Will be updated here.

| Python 2.7 | Python 3.6.5 | Python 3.7.2
-- | -- | -- | --
Pysam 0.9.0 | Yes | No | No
Pysam 0.9.1 | Errored | No | No
Pysam <IP_ADDRESS> | Errored | No | No
Pysam <IP_ADDRESS> | Errored | No | No
Pysam <IP_ADDRESS> | failures=2 | Yes | No
Pysam <IP_ADDRESS> | failures=2 | Yes | No
Pysam 0.10.0 | failures=2 | Yes | No
Pysam 0.15.2 | errors=25, failures=1 | Yes | Yes

Based on the tests we ran, I have decided that for now, using pysam <IP_ADDRESS> gives us the best balance between upgrading pysam and our codebase. One problem here, however, is that that means we are bound by whichever Python version that pysam==<IP_ADDRESS> requires, which appears to be <=3.7.0a1; so effectively we can only run the app in 3.6. I believe this is fine for now.

Closing issue!


Add Translations for Wind Direction

Add localised text for Wind Direction abbreviations like NNV, ESE etc.
Translations will be located in the translations subdirectory, and countrycode.json
Supported languages for now will be:
en - [DEFAULT] English
da - Danish
de - German
fr - French
es - Spanish
it - Italian
nb - Norwegian Bokmål
nl - Dutch
pt - Portuguese
sv - Swedish

Released with V0.18


Feature/one of support

What kind of change does this PR introduce? (check at least one)

[ X ] Bugfix
[ X] Feature
[ X ] Test
[ ] Docs
[ ] Refactor
[ ] Build-related changes
[ ] Other, please describe:

Description: OAS 3 provides support for oneOf with 'discriminator' and the 'example' keywords. Newer AJV versions support this too. This change adds the support for it to the project.
https://swagger.io/docs/specification/data-models/inheritance-and-polymorphism/
Unfortunately AJV does not yet support the 'mapping'-property of 'discriminator' as OAS3 does, so I had to remove the mapping from the AJV schema object. Validation support for discriminator is still possible without this mapping property.
See: https://github.com/ajv-validator/ajv/issues/2003
Example OAS Code:
oneOf: //supportet by AJV
  - $ref: '#/components/schemas/Object1'
  - $ref: '#/components/schemas/Object2'
discriminator: //supportet by AJV
  propertyName: objectType //supportet by AJV
  mapping: //NOT yet supportet by AJV
    obj1: '#/components/schemas/Object1'
    obj2: '#/components/schemas/Object2'

after dependency update, test are not anymore supported on node 10 & 12. Node 18 added instead


test: scenarios-feature_branch_happy_path (2024-01-30 02:34:22.658133+00:00)

automatic test cleanup


Configuration problems

i have a problem in this step while executing grafana-reporter

What folder are you trying to run it from?

I see you commented on another issue, so I assume this is solved.


lm studio

the instructions aren't clear on how to run it on lm studio server

According to Mervin Praison in his youtub video "RawDog: How I Cut My Work Hours in Half with Context-Aware AI?" (https://www.youtube.com/watch?v=5r86vtZcvJ4)
rawdog --llm-base-url http://:1234/v1  --llm-custom-provider openai --llm-model
This forces a setting of openai key because the provider is openai
Due to a "bug" with rawdog you can NOT specify it on the command line, it will still complain, even if you specify the key on the command line
To make this work you must set the environment variable for openai key to get this to work
[change for your operating system]
export OPENAI_API_KEY=XXXXXXXXXXXXXXXXXXXXXXXXX
The number of characters I believe doesn't matter
The rawdog  command should work now
example:
export OPENAI_API_KEY=XXXXXXXXXXXXXXXXXXXXXXXXX
rawdog --retries 1 --llm-base-url http://<IP_ADDRESS>:1234/v1  --llm-custom-provider openai --llm-model Orenguteng/Llama-3.1-8B-Lexi-Uncensored-GGUF count the number of files in the directory


sync container principles with mysql

@hhorak FYI

[test]

Script scl_enable can use ENABLED_COLLECTIONS env. variable, so we can share the scripts with 9.2.

@mfojtik I see the replica example uses postgres-master and postgres-slave as image arguments -- is it necessary to include symlinks /usr/bin/postgres-master -> run-postgresql-master and  /usr/bin/postgres-slave -> run-postgresql-slave to maintain compatibility for now or is it enough to change the replica example?

@hhorak it is OK to change the replica example to reflect the new names

[test]

small nits, but LGTM
@bparees || @rhcarvalho  you want to have second look?

@hhorak it is OK to change the replica example to reflect the new names

@praiskup please, don't forget to change the "arg" in the replica example, I've learned in the mysql example that it may do some troubles..
Otherwise it looks fine to me, LGTM.

ping

@praiskup can you squash please? @bparees merge this at your will :-)

[test]

@bparees i'm merging this to unblock @hhorak folks, this should not break anything (hopefully)


Add Walletconnect Gossip Servers

When WalletConnect team has Gossip protocol figured out, add as a fallback to cLabs run WalletConnect Servicers

Blocked on WalletConnect Team releasing V2 gossip protocol.

Dupe #8620


Add soil enzymes to model

Description
This pull request changes the soil carbon model to make it an enzyme explicit model, i.e. one where carbon flows are controlled by enzymes pools which are included in the model. This is unfortunately quite a large pull request, as I couldn't find a sensible place to stop midway.
The largest structural change I've made is moving the calculations of environmental factors impact on biogeochemical rates into a separate submodule. I did this as soil.carbon felt like it was becoming too large.
I've also started to make use of core constants as well as model constants. So feedback on how I've done this would be useful.
Generally looking for feedback on the structure, but if @vgro is able to check that the leaching function I've added is sensible that would be great.
Type of change

[x] New feature (non-breaking change which adds functionality)
[ ] Optimization (back-end change that speeds up the code)
[ ] Bug fix (non-breaking change which fixes an issue)

Key checklist

[x] Make sure you've run the pre-commit checks: $ pre-commit run -a
[x] All tests pass: $ poetry run pytest

Further checks

[x] Code is commented, particularly in hard-to-understand areas
[x] Tests added that prove fix is effective or that feature works

Working on this, but it might take me a couple of days.

Thanks for all the feedback, I made a few changes in response to it, but mainly I made a lot of issues as a lot of the problems raised didn't make sense to tackle in this PR. The new issues are as follows: #342, #344, #345, #346, #347, #348


Feature Request: Distribute Atom through the Mac App Store

IANAL.  Please can anyone confirm whether the Atom MIT license is compatible with the Mac App Store?
Now that Electron 0.34.0 supports the Mac App Store https://github.com/atom/electron/blob/master/docs/tutorial/mac-app-store-submission-guide.md, is it possible to submit Atom to the Mac App Store so that the app auto-updates?
As of Atom 1.0 to 1.6, the OS X auto-update framework is borked as per https://github.com/atom/atom/issues/2860
Thanks!

To my knowledge, there is no restriction against open source software on the Mac App Store. On the other hand, an application on the Mac App Store is restricted to a sandbox that precludes reading from and writing to files outside certain areas. Since editing files anywhere on your system is one of the features of Atom, until that requirement changes I don't believe we'll be pursuing publishing on the Mac App Store.
Thanks for your feedback!


keyError: 'gnomAD_AF'

Description of the bug

querynator uses the gnmoAD allele frequency, annotated by VEP
VEP annotates the gnomAD AF based on their genomic data or exonic only
VEP names the fields gnomADg_AF and gnomADe_AF respectively
there does not seem to be gnomAD_AF anymore (see vep option docs and a search on the vep website yielding no results)

until the issue is fixed in the querynator you can simply alter the annotation field string in your vcf from gnomADg_AF to gnomAD_AF:
bcftools view -Ov INFILE.vcf.gz | sed "s/gnomADg_AF/gnomAD_AF/g" | bcftools view -Oz -o OUTFILE.vcf.gz

Command used and terminal output
No response
System information
No response

apply changes for all samples in samplesheet:
parallel --bar --skip-first-line --colsep , "bcftools view -Ov {2} | sed 's/gnomADg_AF/gnomAD_AF/g' | bcftools view -Oz -o {2}" :::: samplesheet.csv


Splitting steps from main engine code

Changes introduced with this PR
This pull request splits the step implementations from the main engine code. We define an interface (step.Provider that can be implemented in order to add new capabilities to the engine. The first implementation will be the ability to execute the already existing plugins included in this PR.
With this PR, step executions are split into stages, each of which can have an input and one or more outputs. For the plugin provider, these stages will be deployed, deploy_failed, running, ~finished~outputs, crashed.
The provider advances step stages automatically, but stops if no input has been provided for a stage that requires an input. The engine will get a callback and have an opportunity to provide the input if it becomes available, allowing the provider to continue the step lifecycle.
In the configuration the kind keyword will distinguish between the step types. For backwards compatibility, the plugin kind will be the default.
The main benefit of this change is that it allows other step implementations, such as workflow operators for loops, forks, etc.

By contributing to this repository, I agree to the contribution guidelines.

It doesn't appear to be functionally equivalent to the main branch.
The example workflow has a dependency error on this branch, but not main:
Workflow execution failed (failed to build dependency tree for steps.pcp.running (dependency error in step steps.pcp.running: 'run_duration' (failed to connect input to steps.pcp.running (connection from node input to node steps.pcp.running already exists))))


New api spec : Window.AppWindow api

Spec PR to introduce a new Window.Appwindow api
Description
This spec PR introduces a new api for accessing appwindow object from mux code. More details are in the spec document itself.
Motivation and Context
Mentioned in spec documented.
Screenshots (if appropriate):
Code examples included in spec document.

I'm a bit confused. I think AppWindow was supposed to be a high-level abstraction of CoreWindow and HWND implementations. I find it odd that we're thinking about hanging AppWindow APIs off its window implementations. Doesn't seem right. Did I misunderstood the proposal?
Perhaps we should zoom out and acknowledge UWP is on the way out and AppWindow appetite is low, having only one implementation (HWND) after all. Maybe AppWindow should instead pivot and just be a consistent set of inbox HWND helpers (e.g. various presenters for various scenarios).

To me it is much more confusing that i have to mess with 2 classes, Window and AppWindow, that essentially describe the same thing, a window. Why does it have to be this way and why can't you just make all the windowing functionality available at one site, preferably at the Window object?

Perhaps we should zoom out and acknowledge UWP is on the way out and AppWindow appetite is low, having only one implementation (HWND) after all. Maybe AppWindow should instead pivot and just become a consistent set of inbox HWND helpers (e.g. various presenters for various scenarios) instead.

I don’t see how this negates having an AppWindow property on Window. The way I see it, AppWindow is in some sense a collection of helpers for an HWND-style window, the only difference being that it manages itself to ensure consistent internal state (which is a great thing—win32 apps oftentimes do messy and inconsistent things to their windows unintentionally).
Since a Microsoft.UI.Xaml.Window is backed by an HWND, and AppWindow wraps the HWND, putting AppWindow as a property on Window seems to me the most logical and convenient place to put it. I would and I’m sure most developers would appreciate having one-line access to the convenient window helpers that AppWindow provides (like presenters but also the very useful title bar APIs, for example).

To me it is much more confusing that i have to mess with 2 classes, Window and AppWindow, that essentially describe the same thing, a window. Why does it have to be this way and why can't you just make all the windowing functionality available at one site, preferably at the Window object?

Since Windows App SDK is more than just WinUI, it makes sense to have these APIs be separate (e.g., you could take advantage of the API from within a WPF app). The XAML Window arguably shouldn’t do much at all, since it’s basically just the content inside the HWND. But since HWND is unfriendly, the AppWindow APIs are conveniently there to manage the window for you.

I think we basically agree then that AppWindow is a collection of HWND helpers. So does that make sense to hang off the actual Window object? What if someone wants to develop a better set of helpers? Seems more appropriate to just have a helper object that devs can opt into using, e.g. WindowHelpers.FromHwnd(hwnd).EnterPictureInPictureMode();

it manages itself to ensure consistent internal state (which is a great thing—win32 apps oftentimes do messy and inconsistent things to their windows unintentionally).

I actually find AppWindow to be consistently unreliable release after release and generally no better than just doing the HWND work yourself. But that's just my take!

I think we basically agree then that AppWindow is a collection of HWND helpers. So does that make sense to hang off the actual Window object? What if someone wants to develop a better set of helpers? Seems more appropriate to just have a helper object that devs can opt into using, e.g. WindowHelpers.FromHwnd(hwnd).EnterPictureInPictureMode();

it manages itself to ensure consistent internal state (which is a great thing—win32 apps oftentimes do messy and inconsistent things to their windows unintentionally).

I actually find AppWindow to be consistently unreliable release after release and generally no better than just doing the HWND work yourself. But that's just my take!

In principle I don’t disagree. It is awkward to have Microsoft.UI.Windowing in any API in the Microsoft.UI.Xaml namespace at all. They don’t have anything to do with each other.
But say you wanted to move a window in WinUI 3. Today, you would do something like this:
var hWnd = WinRT.Interop.WindowNative.GetWindowHandle(this);
SetWindowPos(hWnd, null, x, y, 0, 0, SWP_NOZORDER | SWP_NOSIZE | SWP_NOACTIVATE); // Clunky win32 API

or with the convenience of AppWindow,
var hWnd = WinRT.Interop.WindowNative.GetWindowHandle(this);
var windowId = Win32Interop.GetWindowIdFromWindow(hWnd);
var appWindow = AppWindow.GetFromWindowId(windowId);
appWindow.Move(...);

Or, as you said, use your own helpers.
Any one of those approaches requires significantly more developer effort than should be needed. You could just simplify and call it window.Move(...), but now you have a bespoke solution for just WinUI for no reason. And AppWindow still exists, so now you have redundant APIs.
AppWindow provides a lot of utility that win32 apps previously had to do themselves, as well as crucial basic functionality, so I think the priority should be to make it as easy as possible to access. In this PR, you would get
window.AppWindow.Move(...), which, once developers know about it, is not meaningfully harder than if Window itself had such methods.
You basically described the status quo for how getting AppWindow from a XAML Window works: get the HWND, get an AppWindow, and your hypothetical WindowHelpers.FromHwnd API might as well return an instance of AppWindow. I would like to see the HWND step cut out. Even though the abstraction is no longer needed per se, developers coming from things like WPF or UWP probably want something more straightforward, i.e., AppWindow. And, of course, the HWND is still available for those who want it using the APIs that exist today.
The issue here is how do you get an AppWindow from a Microsoft.UI.Xaml.Window, because today’s method is unacceptably clunky. You could do a static helper, something like WindowHelper.GetAppWindowFromWindow(Window window), but that is still clunky and also mixes the Windowing and Xaml namespaces anyway. The proposed Window.AppWindow property is the easiest way to expose common windowing properties and is the best option for discoverability.
And the way I understand AppWindow to work, none of its restrictions should apply until you start using the API, so there should be no concern over it interfering with your own helper methods if you wanted to use those over AppWindow’s.

Spec note: Mapping an hwnd to an AppWindow causes the hwnd to be subclassed, meaning that the timing of
when AppWindow.GetFromWindowId
is first called can potentially have a behavioral side effect. To ensure this is predictable, the AppWindow
for Xaml's hwnd will be created during the Xaml Window's construction. Note that this could potentially be
an observable behavior change from the behavior before the introduction of this API.

That said, this part of the spec is a little troubling, and it would be good to know what the side effects of this would be.

I think the point about other UI-Frameworks is moot as they all support the missing functionality since long ago. So why make it more complicated for the current tech than necessary?

As BreeceW says, the goal is to make it easier to get from a Window to an AppWindow, and to not copy all of the AppWindow API onto the Window API. (Note too that the UWP AppWindow is different than the WinAppSDK AppWindow.)
The Xaml Window API in WinUI2 has the same approach; Window.CoreWindow gets you easily from a Window to a CoreWindow, but Window doesn't try to duplicate CoreWindow.
I am, though, expecting that with we'll add more APIs on Window that wrap the underlying AppWindow, more so than CoreWindow is wrapped, to avoid app code from commonly having to switch coordinate spaces. (Xaml APIs including Window are in relative view coordinates, AppWindow APIs are in screen coordinates.)

@nnshah99 FYI

I think you live in your own bubble way too hard. Ask a dev coming over from winforms/wpf if your strategy is intuitive in any way.
Create a new project there and you are presented with the designer and the mainwindow, where you can set its properties, like size, location, title, maximize, minimize, icon and so on...
Now create a new winui3 project and you are also presented with the mainwindow, but you can not do anything useful with it. Everything you want to do with it, you have to google for it because it is obfuscated and abstracted away in ways that might be logical to you, bot not the devs who want to use this.

I think you live in your own bubble way too hard. Ask a dev coming over from winforms/wpf if your strategy is intuitive in any way.

Not disagreeing current API can be improved, or more windowing API should be wrapped by XAMl's Window, but this line strikes me as missing the picture still. There are windows devs/platforms other than winforms/wpf. E.g. Flutter on windows could use the new WASDK's AppWindow without using XAML's Window.
This is not a sign of living in a bubble. This is good engineering.
Bottom line, I'd agree XAML Window should have more functionality out of the box, but complaining about "having two window classes" is missing the point of this separation of concern.

I gave a concrete example, for the 2 most successful UI frameworks on windows. If you can't see why it is the most crucial thing to ease the transition for them, to have this platform succeed and progress in any meaningful way, then there is nothing i can do for you.

@MikeHillberg  @jeffstall  since most of questions have been answered and resolved,  any final comments you want to capture ?

/azp run


Unkown DNS service error

Hi all,
First off, super cool lib! I'm using it all the time.
Issue: every once in a while I get the error below and I don't know why. The error disappears on its own after reboot, or sometimes just after restarting the app a couple of times.
Error: dns service error: unknown
    at Error (native)
    at MDNSService.on_resolver_done (/3dea/node_modules/mdns/lib/resolver_sequence_tasks.js:19:30)
    at SocketWatcher.MDNSService.self.watcher.callback (/3dea/node_modules/mdns/lib/mdns_service.js:18:40)

Any ideas?

This has to be the most frustrating error in all Node libraries I've ever used. And truth be told, it doesn't originate in this library at all. There really should be no such as thing as "unknown error". Maybe avahi needs some work.

Hi @kevinkleine,

First off, super cool lib!

Thanks!

Any ideas?

@ronkorving is right. Unfortunately there is no good solution. Try this:

trap the error using an error handler
if it happens stop your browser and wait a second
create and start a new browser
rinse and repeat

Obviously this only helps with a temporary outage, not if a reboot is required :-/
For completeness there is a more radical solution: Depending on your requirements and environment it might be possible to just deinstall avahi and use apples mdns responder instead. I haven't tested this in a long time. So, the ... uh... "auto detection" might need a little kick.
Hope this helps.


Move cursor to corner of focused window

Describe in detail your idea.
I noticed that when movefocus is called the cursor moves to the center of the focused window.
In xmonad there is a way to move the cursor to the corners of the screen by pressing a key combination
Here is one way I used the feature when I was using xmonad
https://github.com/japrogramer/xmonad-hs/blob/master/xmonad.hs#L156

and whats the idea here?

To move the cursor out of the way without lifting the hands from the keyboard

ok

added in e924cd95fde26bf776951800a595662bba0b9326


Developer console cannot be disabled

Even if you set "Enabled = false", the tilde key still opens the developer console.  I am using that key to open the Inventory, and this setting overrides that, even when disabled.

This should be fixed in the next version. I added the option but didn't actually implement it properly! 😅

Fixed in v0.0.5


Consider demoting this add-on as of March 15, 2024

Nobody has ever mentioned using this add-on, it will be demoted to github.com/rfay/ddev-beanstalkd if nobody says they want to keep it as official.
It's not really maintained, and AFAIK not really useful.

Demoted this to rfay/ddev-beanstalkd, removing the ddev-get label


Streams should not be able to add duplicate contexts to state

Migrated from GitLab: https://gitlab.com/meltano/sdk/-/issues/368
Originally created by @edgarrmondragon on 2022-04-27 23:56:26

Summary
There are some situations in which a developer might (accidentally) create/update the stream state with a duplicate partition context. This results in the stream failing on the next invocation when the duplicate is detected: https://gitlab.com/meltano/sdk/-/blob/72e7e2be7271d37c9d2c40ae0d0be3785c243876/singer_sdk/helpers/_state.py#L83-87.
Steps to reproduce
NA
What is the current bug behavior?
Duplicate partition contexts are written to a stream state.
What is the expected correct behavior?
Taps should not be allowed to write duplicate contexts.
Relevant logs and/or screenshots
NA
Possible fixes
One safeguard we could add to prevent this is to check for duplicates before they're added to the tap state in https://gitlab.com/meltano/sdk/-/blob/72e7e2be7271d37c9d2c40ae0d0be3785c243876/singer_sdk/helpers/_state.py#L95-101.

View 2 previous comments from the original issue on GitLab

Still relevant

Still relevant


keygen-js needs to be able to make a wallet with only master ticket + ownership seed.

In Bridge, if a user has no ships but they would like to make a wallet in order to receive a ship with an unknown name, they should be able to make a wallet with only a master ticket and ownership seed.

Closed in #34.


Grapghics

Run/HP/Special moved to the far right after update also, task bar is off as well

Fixed in 9d6f817a7072992583b1efab558560df59bebcfe

still seeing same issue..


[WIP] vim-plugins/deoplete-go: init at 2016-11-12

Status
neovim displays the message [deoplete] gocode panicked when trying to autocomplete.
Motivation for this change
deoplete recommended over neocomplete, and deoplete-go will give Go completion
Things done

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

[ ] NixOS
[ ] macOS
[ ] Linux

[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Fits CONTRIBUTING.md.

@steveeJ  please see https://github.com/steveeJ/nixpkgs/blob/a2f23873a295bdf12ea21cd83048e4d679baf04f/pkgs/misc/vim-plugins/default.nix#L19 so add buildInputs and phase to a corresponding file.
@Mic92 please don't comment vim plugins in NixOS if you don't know our infrastructure in this module.

@jagajaga thanks for the review. I've addressed your comments. PTAL.


Move CSP Subscription to different Tenant

Can we move CSP Subscription to a different Azure AD tenant? I know we can for EA/PAYG/Visual Studio subscriptions but not sure about CSP.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: da261ee4-3348-b520-a27c-98f9d9ef40cc
Version Independent ID: 13d12189-ee46-8058-dd99-058adc69f1c5
Content: Add an existing Azure subscription to your tenant - Azure Active Directory
Content Source: articles/active-directory/fundamentals/active-directory-how-subscriptions-associated-directory.md
Service: active-directory
Sub-service: fundamentals
GitHub Login: @eross-msft
Microsoft Alias: lizross

@vikaskumawat80 Thank you for your query . We will investigate and update this thread.

Hi Folks,
Is there any way to migrate Resources from Azure CSP subscription from one tenant to another Azure CSP Subscription tenant,
Basically there are 2 Azure tenants, both has 2 Active CSP Subscription, source tenant has 1 VM with 256GB Premuim SSD and destination tenant subscription is empty without any resources
Appreciate for your kind assistance.

@shashishailaj any update on the query I asked?

@anwer007  @vikaskumawat80 My apologies for the delayed reply .  I checked internally with support and at this point it is not possible . In CSP a customer tenant is the first thing that is created and it serves as the identity store of the customer/company. It is based on the idea that a company could have one single tenant and any associated azure assets can be created within subscriptions associated with the Company/CSP tenant . Hence in this case if you move a subscription to another tenant, its like moving the subscription and its associated azure assets to a different company . It could be possible that the new tenant/company is also managed by same CSP or it could be managed by different CSP. There are some technical/compliance limitations which can not be described in a public forum due to which it is designed this way for now.  In case you would like to switch your azure subscription to a different partner you can check the following two articles.
https://docs.microsoft.com/en-us/azure/cloud-solution-provider/customer-management/switch-subscription-to-different-csp-partner
https://docs.microsoft.com/en-us/partner-center/switch-azure-subscriptions-to-a-different-partner
At this point , the feature requested by you is not available unfortunately. We do have a Uservoice feature request requesting CSP subscription transfers between different tenants . I would encourage you to upvote it so that PG can prioritize it.
Hope the above answers your queries. We will now close this issue  Should you have any further queries on this , feel free to tag me to your reply and i will be happy to help .
Thank you.

Thanks @shashishailaj

See also: https://feedback.azure.com/d365community/idea/3bccbdd0-b825-ec11-b6e6-000d3a4f0789