Add a sokol_gp "backend" for sokol_fontash (instead of requiring sokol_gl)

Hello!
I finally got sokol_fontstash setup in my engine but am running into some issues around integrating it with sokol_gp, namely around sorting/ordering the text in relationship to things created with sokol_gp. sokol_fontash uses sokol GL and as such has a slightly different call path than normal sg objects, so interleaving draw calls from GP and GL is a bit tricky.
What I'd like would be if sokol_gp just provided it's own "backend" for sokol_fontash that basically routes the API to sokol_gp functions instead of sokol_gl.
On the surface it doesn't seem to difficult, as many of the GL calls have very similar API surface to GP:
https://github.com/floooh/sokol/blob/8c989e39c008149a8a6b89cd001a2af3dbe3a8c2/util/sokol_fontstash.h#L2181
Additionally, instead of it being a core part of sokol_gp, it could similarily be in a utils folder?
I'd also be happy to sponsor this work if you're interested!

around sorting/ordering the text in relationship to things created with sokol_gp

This makes sense, as a general rule you should not mix drawings of Sokol GP and other APIs (Sokol GL, GL, Sokol, etc) in the same screen region, because Sokol GP is free to rearrange the drawing order to optimize batching, which can lead to undesired draw ordering in respect to external drawing APIs. If you really want to mix, you will need to flush the draw calls before calling external drawing APIs.

I'd also be happy to sponsor this work if you're interested!

Unfortunately I have little time to work on a Sokol GP backend to fontstash. But there is a simpler solution to your problem, you could just flush SGP draws calls by calling sgp_flush() before mixing other drawing APIs (eg Sokol GL).
Here a simple concept:
static void frame(void) {
    // Begin a render pass.
    sg_pass pass = {.swapchain = sglue_swapchain()};
    sg_begin_pass(&pass);

    // Begin drawing with SGP
    int width = sapp_width(), height = sapp_height();
    float ratio = width/(float)height;
    sgp_begin(width, height);
    sgp_viewport(0, 0, width, height);
    sgp_project(-ratio, ratio, 1.0f, -1.0f);
    sgp_clear();

    // Draw rectangle A
    sgp_set_color(0.0f, 0.0f, 1.0f, 1.0f);
    sgp_draw_filled_rect(0.0f, 0.0f, 1.0f, 1.0f);
    sgp_flush(); // Dispatch all draw calls, to maintain strict ordering

    // Draw some text with fontstash (using Sokol GL under the hood)
    fonsDrawText(...);

    // Draw rectangle B
    sgp_set_color(0.0f, 0.0f, 1.0f, 1.0f);
    sgp_draw_filled_rect(-1.0f, -1.0f, 1.0f, 1.0f);

    // Finish drawing with SGP
    sgp_flush();
    sgp_end();

    // End render pass.
    sg_end_pass();
    sg_commit();
}

In this example rectangle A and B will not be batched together, because the sgp_flush() just before the fonsDrawText() call will flush the batcher.
This is a proof of concept, there are still other questions about if you need to save/restore Sokol GL state when mixing APIs, I have not tested this really, so it's something it could be needed, unsure.

I am marking this a closed, because I have provided a solution that need no changes in Sokol GP. If you attempt trying it, let us know if you got it to working.


FI-1456: Fix navigation

This branch fixes an error where inferno's base path was being added twice to group links in the UI.
NOTE: This branch also updates inferno's default base path so that these errors will be found more quickly in the future. By default inferno will be hosted at localhost:4567/inferno.

Codecov Report

Merging #116 (06c4868) into main (e9d248f) will decrease coverage by 4.36%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #116      +/-   ##
==========================================
- Coverage   93.22%   88.85%   -4.37%
==========================================
  Files         107      107
  Lines        2656     2656
==========================================
- Hits         2476     2360     -116
- Misses        180      296     +116

Impacted Files
Coverage Δ

...rollers/test_sessions/session_data/apply_preset.rb
37.50% <0.00%> (-58.34%)
:arrow_down:

...b/inferno/apps/web/controllers/test_runs/create.rb
32.14% <0.00%> (-57.15%)
:arrow_down:

lib/inferno/dsl/resume_test_route.rb
48.48% <0.00%> (-51.52%)
:arrow_down:

lib/inferno/jobs/resume_test_run.rb
62.50% <0.00%> (-37.50%)
:arrow_down:

lib/inferno/jobs/execute_test_run.rb
62.50% <0.00%> (-37.50%)
:arrow_down:

...ferno/apps/web/controllers/test_sessions/create.rb
47.05% <0.00%> (-35.30%)
:arrow_down:

lib/inferno/apps/web/controllers/requests/show.rb
66.66% <0.00%> (-33.34%)
:arrow_down:

...b/inferno/apps/web/controllers/test_suites/show.rb
66.66% <0.00%> (-33.34%)
:arrow_down:

...inferno/apps/web/controllers/test_sessions/show.rb
66.66% <0.00%> (-33.34%)
:arrow_down:

...pps/web/controllers/test_sessions/results/index.rb
66.66% <0.00%> (-33.34%)
:arrow_down:

... and 13 more

Continue to review full report at Codecov.

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


GGRC-1614 Disable role editing if no permissions on object

WIP - please do not merge yet

Hm... not sure exactly what happened during a rebase and why Smotko's commit is included here... maybe because Git things I now a co-author of that?
(had to resolve some merge conflict, although not in that particular file...)


Instance fails to be created if corresponding volume already exists

Related issues:

https://github.com/MorphoCloud/MorphoCloudWorkflow/issues/54

Fixes have been implemented and deployed across multiple projects:

MorphoCloudWorkflow via commit https://github.com/MorphoCloud/MorphoCloudWorkflow/commit/4b3ffc6
MorphoCloudInstances via commit https://github.com/MorphoCloud/MorphoCloudInstances/commit/87a19e74d0465171416fed18680182ceec024098


Convert react-dates to use react-with-styles

This change moves react-dates onto Airbnb's modern best practices of CSS in your Javascript!
Because this is again a huge change, it is best viewed on a commit by commit level (which I've tried to split up by component).
While this transformation of the code is complete, there are still a number of things to be done.
-[X] Documentation! How do you use react-with-styles?
-[ ] More customization! I think we should identify overrides that might be useful in the theme since you can't go about overriding everything willy-nilly anymore
-[X] ~I think we might want to export a CSS-styles version of the code as well as the vanilla version~
-[X] TESTS DON'T WORK ANYMORE. I need to fix that.
-[X] Once tests are running, probably some of them will be broken
-[X] there is a weird flash before the height of the calendar month grid is set now... we should address that.
to: @ljharb @airbnb/webinfra @lencioni @adamrneary @sdjidjev

Coverage decreased (-83.4%) to 3.06% when pulling fc964d646ac4ed20e66be153f8c7b7e13116673a on maja-implement-with-styles into c464d43476191699567793097d09d21d98466cbb on master.

Coverage increased (+0.6%) to 86.994% when pulling d3d5b3a6b11c86f9e0a03e959753da8378480694 on maja-implement-with-styles into 0f6ccccc4e1da55f766a09c48147eb6adcc1b45c on master.

@lencioni yup! That is on my TODO. :)

Coverage increased (+0.2%) to 86.53% when pulling 52de5ce7aec63987396818c26ce27aa41834fcc6 on maja-implement-with-styles into 0f6ccccc4e1da55f766a09c48147eb6adcc1b45c on master.

@ljharb @gabergg I believe I've addressed all of your comments.

Coverage increased (+0.3%) to 86.695% when pulling 5ec30b3312e33281ea8210442b36ec9da5e439c8 on maja-implement-with-styles into a7747eac85ea7a66e6c0b1e0e41b1a5b9b8cc683 on master.

Coverage increased (+0.3%) to 86.695% when pulling 5ec30b3312e33281ea8210442b36ec9da5e439c8 on maja-implement-with-styles into a7747eac85ea7a66e6c0b1e0e41b1a5b9b8cc683 on master.

Coverage increased (+0.3%) to 86.695% when pulling 440787444fc147008429574d67781d2a9b4f026f on maja-implement-with-styles into a7747eac85ea7a66e6c0b1e0e41b1a5b9b8cc683 on master.

Coverage increased (+0.3%) to 86.695% when pulling 440787444fc147008429574d67781d2a9b4f026f on maja-implement-with-styles into a7747eac85ea7a66e6c0b1e0e41b1a5b9b8cc683 on master.

Coverage increased (+0.3%) to 86.695% when pulling eab055e470b4945daf6c792da72997c1f0a05f34 on maja-implement-with-styles into a7747eac85ea7a66e6c0b1e0e41b1a5b9b8cc683 on master.

@ljharb @gabergg @lencioni I am fishing for a stamp! :) I think I have addressed all comments.

Coverage increased (+0.3%) to 86.695% when pulling 312cdd0a818dd6ce66595d8e9ad93169a91a79a0 on maja-implement-with-styles into a7747eac85ea7a66e6c0b1e0e41b1a5b9b8cc683 on master.

Coverage increased (+0.3%) to 86.733% when pulling 177bf03c8f880b73755badd71d6f6d30099d8526 on maja-implement-with-styles into b737a8e1ae4948526c227d898cc775313b2369af on master.

what is the progress here??? are we pursuing styled-component now? pretty confused, I tried to get this react-date running with with-react-style but the component seems just dont have any style, even that's pretty much how the storybook from airbnb setup for DateRangePicker is... what else I should be configuring to have the style?
Btw the symptom is also that, I see dynamic class name applied to the airbnb's own storybook, but by using same config I copied from the airbnb's DateRangePicker story, I observed all css is missing.... anything I should be added to the style without apply a whole ccss sheet? I thought withStyle should work as is no?

@adamchenwei this PR was merged in in October and has been in active use since then... Have you read through the README, specifically this section: https://github.com/airbnb/react-dates#initialize?
There's also a bit more context on the transition to react-with-styles in https://github.com/airbnb/react-dates#advanced.
I'd love to answer more specific questions if you have them in a new issue. :)

@majapw thanks for the reply! I did do above. so the only thing I forgot and I found is to loading the actual css. I thought it suppose to work out of the book with withStyle but I see ticket that is work in progress toward that, which is great. Thanks.

@majapw actually sorry... I read the sections now, its not what I thought it was lol, I must misread... but it says react-date no longer depends on css, but I still had to even I used withStyle.... I think something else must went wrong.... I need to figure this out. thanks. Never actually knew react-dates no longer depends on css anymore lol wonder why its still avaialble for import, and no ... warning for deprecating css import? that would be great.... just a thought

@adamchenwei can you please open an issue so we can continue this discussion there where it's a bit more discoverable? :)


commented outage logic to clarify

Note this pull request now includes the extern variable mapping for library referencing.

Note this pull request now includes onsite storage to ReactorLite


Process HtmlEntities

I'm admittedly not a QuestPDF nor markdig expert, so there might be something I'm missing here. But I tested it with a simple unicode entity and it worked with no problems, so I thought I'd open a pull request in case you want to include it.

This change looks good to me. Thank you for your contribution. 👍


Update readme when a module is execute

When adding an option it might be good to update the readme on how to configure/use it.
For example when adding a database, it might be good to add the command to use to launch the docker-compose.

Agree, the ReadmeService has been created, and needed to be called to add text in README for each option

What I did for the cucumber was was to create a dedicated documentation in /documentation/cucumber.md. The goal is that it will be easier to update.
I'm not a fan of updating the readme if we want to keep the possibility to start JHLite on a project not generated with JHLite...
We can also build something that will:

Update the readme with the given file content if we find a needle;
Put the file content in documentation if we can't find it.

This way it'll work in all cases. I can add it to the module mechanism if you want

Another idea would be:

in README, we can put a link to documentation/xxxx.md
and add a specific and dedicated documentation/xxxx.md, according to the module

I did an implementation for postgresql but I think a mix of your ideas would be ideal.
In addition, it would limit my problem of separation between documentation for development and configuration in the readme.
All the documentation for the module would be in one place.

I created https://github.com/jhipster/jhipster-lite/issues/1952 that will help to achieve this. Dunno when but I'm gonna do an implementation for this optional replacement thing :)

I ended up doing this https://github.com/jhipster/jhipster-lite/pull/1955 once this is merged the module documentation feature should be easier to do. @antarus you are working on it or I add it to the modules mechanism?

You can add it. i can use your work after ;)

I ended up adding it here https://github.com/jhipster/jhipster-lite/pull/1955

@DamnClin
I started looking to refactor the postgresql generator with the new module system. I think it lacks the management of docker images or does it use the current DockerApplicationService service?
Sorry, I'm starting with the hexagonal architecture and DDD in general and I wonder if the docker generator should not be included in the module system :D

I may be wrong (just took 3mn to check that) but I don't think there is a need for a specific docker management in module since module is not doing anything special with docker file or the likes. I think you can rely on the existing service to get the version and do the update you want on files. Am I missing something there?

Ok I will look at how to use the existing service with the new module system. Docker files can be managed via the module's template system too.
Thank you


Trouble running code for Exercise 5 in Chapter 4

Hi! I recently took this course on DataCamp and did manage to run the code in the exercise. For future references, I copied the exercise and the answer to my own notebook using Jupyter. However, when I tried to run the code, I encountered an error.
This is the original code:
import random

# Start the training
nlp.begin_training()

# Loop for 10 iterations
for itn in range(10):
    # Shuffle the training data
    random.shuffle(TRAINING_DATA)
    losses = {}

    # Batch the examples and iterate over them
    for batch in spacy.util.minibatch(TRAINING_DATA, size=2):
        texts = [text for text, entities in batch]
        annotations = [entities for text, entities in batch]

        # Update the model
        nlp.update(texts, annotations, losses=losses)
        print(losses)

And this is the error I got:
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-10-aa733910c3ca> in <module>
     18
     19         # Update the model
---> 20         nlp.update(texts, annotations, losses=losses)
     21         #example = Example.from_dict(nlp.make_doc(texts), annotations)
     22         #nlp.update([example])

~\anaconda3\lib\site-packages\spacy\language.py in update(self, examples, _, drop, sgd, losses, component_cfg, exclude)
   1086         """
   1087         if _ is not None:
-> 1088             raise ValueError(Errors.E989)
   1089         if losses is None:
   1090             losses = {}

ValueError: [E989] `nlp.update()` was called with two positional arguments. This may be due to a backwards-incompatible change to the format of the training data in spaCy 3.0 onwards. The 'update' function should now be called with a batch of Example objects, instead of `(text, annotation)` tuples.

I'm sorry if it looks a bit confusing, but this error has been bugging me for weeks now, and I tried to find the solution through stackoverflow and applied them here, but nothing seems to work out. Really appreciate it if the author herself or anyone here can explain what happened.
Thank you.

Hi, this code looks like it was written for spaCy v2.x.
The version of the course at https://course.spacy.io should be compatible with spacy==2.3.5. It's possible this is a slightly older version and you might need spacy==2.2.4 instead.


Added mysql container inside init container

Added mysql container inside init container to give permission

Backup and restore job is working fine, but restore strategy is not correct.
We are performing the restore job on the same database, in any case, we change the schema of a table and then restore an old DB, it will result into errors.


Tooltip displaying NaN for values >999

Tooltips are showing NaN for values > 999, I think it's because the number is formatted as a string before it is passed to the formatter again. I can avoid this by writing my own label callback and doing my own formatting/handling.
To Reproduce
create project, run npm install --save @sgratzl/chartjs-chart-boxplot, download the items sample and utils sample files, update script src in items.html and update line 19 to something like:
const random = (min, max) => () => b() * ((max || 10000) - (min || 1000)) + (min || 1000);
Screenshots

Context

Version: chartjs-chart-boxplot: version 3.1.0  /  chart.js version 3.3.2
Browser: Chrome 91.0.4472.124

From what I've found digging into index.umd.js - during the getLabelAndValue definition inside of StatsBase$1 there is a call to _transformStats which we are passing vScale.getLabelForValue as the mapping function - this is where the number is initially formatted with commas.
Then during _toStringStats the string value is passed to helpers.formatNumber which yields the NaN.
Haven't found a great solution given that parts of the world use commas as thousands-separators, and others use it as the decimal separator.
Since my project does not chart user-input and I'm in the US - I can safely treat commas as thousand separators, my revised _toStringStats() method is now:
        _toStringStats(b) {
            const f = (v) => (v == null ? 'NaN' : helpers.formatNumber((typeof v === 'string' ? v.replace(',','') : v), this.chart.options.locale, {}));
            //const f = (v) => (v);
            return `(min: ${f(b.min)}, 25% quantile: ${f(b.q1)}, median: ${f(b.median)}, mean: ${f(b.mean)}, 75% quantile: ${f(b.q3)}, max: ${f(b.max)})`;
        }

should be fixed with v3.5.1 of this plugin


[Enhancement] Add dedicated troubleshooting command to remove errored operations

What happened:
For expands, the presence of pending previous expand operations can be a blocker. In order to be able to start a new expand operation, the pending ones need to be removed from the queue (in etcd). Currently, we have been providing customers at times with a script to do so.
What should happen:
There should be a dedicated troubleshooting command to remove errored operations. A potential auto-fix/auto-detect and recover from state would lead to an even more improved user experience.
Example script used:
#!/bin/bash
set -Eeou pipefail
function die {
  >&2 echo $@
  exit 1
}
if [ "$EUID" -ne 0 ]
  then echo "Please run the script as root"
  exit
fi
status=$(gravity status --output=json)
cluster_name=$(echo "${status}" | jq -r ".cluster.domain")
operation_ids=$(echo "${status}" | jq -c -r '.cluster.active_operations[]? | select(.type=="operation_expand") | .id')
if [ "" = "${operation_ids}" ]; then
  die "No active expand operation found"
fi
for id in ${operation_ids}; do
  gravity enter -- --notty /usr/bin/etcdctl -- rm --recursive /gravity/local/sites/${cluster_name}/ops/${id}
done
gravity status-reset

Will help with https://github.com/gravitational/gravity/issues/900

Closing as this is redundant with #1077


Build custom images for cloud deployment

The current EC2 deployment process uses Ansible to provision a stock image at deployment time, but this requires us to download components from GitHub, Oracle, Ubuntu, etc. for each instance we provision, exposing us to outages from any of those services. Building our own custom image that we deploy with only minimal provisioning (e.g, modifying config files and starting services) would make our deployments both faster and safer. One approach (among many) might be to use Ansible to provision a stock image and Packer to build the custom image (AMI or equivalent). We might then look at a more "native" solution like CloudFormation for deployment.

This has already been implemented in the myria-ec2-ansible repo (full automation hasn't been implemented yet, though).


Could you advise how to select ozzo-routing or fasthttp-routing?

Could you advise why not use fasthttp-routing to replace ozzo-routing in your ozzo framework if it is extremely fast?
Thanks.

fasthttp-routing requires you to use fasthttp, which could be a limiting factor for many people because the standard http has many more available third party handlers that you can use.


WIP: Cli by click

This is still WIP.
What is done:

created nameko.click_cli as alternative to nameko.cli
added command cnameko to allow comparing original and the new command
help for cnameko shown without crash (fixes #618)
implemented run, show-config, shell
all test/cli tests copied as test/click_cli and updated. All are working.

What is not yet done:

implementation of backdoor subcommand (shall be easy)
making other than CLI related tests completely running (the suite is huge and I am not sure, it was really working completely before my change)

Interesting side effects:

some CLI related components refactored to allow re-use out of default CLI. All are in nameko.click_cli.utils

setup_config: now one can use yaml config files incl. env variable rendering out of CLI.
import_service: renamed to import_services. Having module name (opt. with service name) one can use one call to get list of loaded services. CLI related exceptions generalized.
paramtypes serve click-related parameter/argument types which can be reused in other click based tools.

Possible side effects in future:

allow configuring some arguments using env variables and whatever other reasons can be found at https://click.palletsprojects.com/en/7.x/why/

Next actions:

complete backdoor implementation
final code review scoped to CLI stuff
another WIP pull request (still preserving nameko.cli and nameko.click_cli to allow easy comparison).
process feedback
remove old argparse based stuff and keep only the click one.
pull request

n.b.: I am really impressed by depth of the test suite and what cases it really handles. Great work @iky, @davidszotten , @mattbennett and couple of others.

This is looking great @vlcinsky!

Done so far:

[x] created nameko.click_cli as alternative to nameko.cli
[x] added command cnameko to allow comparing original and the new command
[x] help for cnameko shown without crash (fixes #618)
[x] implemented run, show-config, shell
[x] remove backdoor subcommand, add info how to connect to backdoor to nameko run (fixes #625)
[x] all test/cli tests copied as test/click_cli and updated. All are working.
[x] refactor import_services, setup_config and interact to nameko.click_cli.utils to make them reusable
[x] refactor click related reusable things (custom types and option and argument decorators) to nameko.click_cli.myclick (for possible reuse)
[x] internal code review
[x] ensure, all test/click_cli tests ares till working (ignoring other ones)

Expected actions:

[ ] your review of the code (@mattbennett?)
[ ] accept requests for changes (possibly few iterations)
[ ] remove old nameko.cli stuff, replace with current nameko.click_cli
[ ] (if agreed) squash and rebase
[ ] final pull request

@mattbennett 7 comments are resolved now.
Remaining 4 comments are await your further reaction.

Finally I renamed all click_cli to cli.
There are few things remaining, which I would like to resolve independently:

updated documentation (e.g. subcommand backport was removed)
test backport: it used to be tested as part of CLI test suite, but this is now removed. Testing backport is a bit complex as it requires external commands such as telnet, netcat etc.

After this PR is accepted, I can file an issue related to the docs and testing backport.
Regarding squashing: are you going to do that? I am fine if you do that (or if you keep all the commits even though there are a bit too many).

Thank you @vlcinsky. I'm happy for the docs and backport test to be added in a separate PR.
I have just one remaining question about the do_run module name, otherwise all looks good.
I will squash the commits when it's merged.

Regarding do_run module name - I understand you want to name it simply run. I will do that.

All checks have passed!
@mattbennett let me know, if there is anything I am supposed to do now.

the 3.0.0-rc branch is steadily growing.  is it waiting for anything in particular?

@davidszotten https://github.com/nameko/nameko/pull/628 is still open and adds some more backwards compatibility with 2.x, but otherwise I think development is now done.
The docs ought to get an update because there is quite a lot of new functionality here. We wanted to include guide for upgrading to Nameko 3 in there too -- for both service developers and extension developers.
@iky is there anything left other than docs?

@mattbennett yes, only the upgrade guide needed. The pre-release code is used on production on a number of places .)

@vlcinsky any chance meeting on https://cz.pycon.org/2019/ today or tomorrow?

@iky you are right, it is very close to where I live (25 minutes drive) but I am completing delivery of large project (doc, source code, docker images, python packages incl. some using nameko) due by this Sunday midnight.
I was planning to attend but I gave up. However, if you meet Eliška Vlčinská there, then she is my daughter who got pycon ticket as reward for her excellent graduation.
Feel free to call me or give my daughter your phone number and we can at least have a talk over phone (mine is +420-608979040).


support workload hostname field

workloads should be able to provide hostnames (not just services that resolve to vips) that get resolved by the dataplane to real IP addresses.
this should work similar to the strict dns cluster in envoy, since that's how istio implements a WE hostname (which this field was intended to support)

closing as duplicate of https://github.com/istio/ztunnel/issues/608


[Blazor] Binding fails inside SVG foreignobject tag

Describe the bug
Cannot bind to an input inside of a foreignobject svg tag.
Instead, the input tag fails to render completely with no errors in the web or server console.
To Reproduce
Attempt to do a bind inside of a foreignobject svg tag. (tested on server side blazor)
(Example)
<svg>
    <foreignobject style="overflow:visible">
        <input @bind="value" @bind:event="oninput" type="number"/> SVG Two way bind
    </foreignobject>
</svg>

Expected behavior
Bind works as with a native input.
Additional context
.NET Core SDK (reflecting any global.json):
 Version:   3.0.100-preview8-013656
 Commit:    8bf06ffc8d

Runtime Environment:
 OS Name:     Windows
 OS Version:  6.1.7601
 OS Platform: Windows
 RID:         win7-x64
 Base Path:   C:\Program Files\dotnet\sdk\3.0.100-preview8-013656\

Host (useful for support):
  Version: 3.0.0-preview8-28405-07
  Commit:  d01b2fb7bc

.NET Core SDKs installed:
  2.1.4 [C:\Program Files\dotnet\sdk]
  2.1.508 [C:\Program Files\dotnet\sdk]
  3.0.100-preview8-013656 [C:\Program Files\dotnet\sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.1.12 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.12 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 3.0.0-preview8.19405.7 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.12 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 3.0.0-preview8-28405-07 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.WindowsDesktop.App 3.0.0-preview8-28405-07 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

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

@dmorrison42 Thanks for reporting this issue! We know we have a bunch of issues with using SVGs with Blazor. For 3.0 we plan to document the known limitations and then we will look into addressing these issue more fully in a future release.

https://github.com/aspnet/AspNetCore/issues/13280

Thanks for the roadmap!
Does anyone know of a workaround?
The only one I've come up with thus far is to create my own input components in SVG, but that may run into other issues.

I stumbled across the same issue and didn't found a good workaround. I would love to see this bug fixed.

I encountered this issue as well.
It's not a workaround since I couldn't get any Blazor-bound foreignObject to display, but I was able to use Blazor JavaScript interop. It is painful, but from Blazor code, whenever the foreignObject gets created, I can use [IJSRuntime].InvokeVoidAsync extension method along with DotNetObjectReference.Create. The target JavaScript function has to attach my DOM events to the element and keep track of the DotNetObjectReference.Create parameter value. When the event fires, I have to use the parameter and call invokeMethodAsync to fire a JSInvokable-attributed method back in Blazor. With this approach, I faced an issue where the initial JavaScript interop fires before the DOM elements exist to attach events so you have to workaround that as well (such as with setTimeout). Also, you will may get a hard-to-diagnose error if you did not expose your JSInvokable-attributed method as public.
This is just for binding an event. Handling DOM updates inside the foreignObject have be all coded manually.
Please fix, thanks!

Closing as we will be tackling this as part of https://github.com/dotnet/aspnetcore/issues/18271


TCP support.

This checklist is used to make sure that common guidelines for a pull request are followed.

For new extensions:

[ ] My extension description/summary conforms to the Extension Summary Guidelines.

About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your PR is merged into master branch, a new PR will be created to update src/index.json automatically.
The precondition is to put your code inside this repo and upgrade the version in the PR but do not modify src/index.json.

Also getting these two style issues:
src/containerapp/azext_containerapp/custom.py:479:15: R1714: Consider merging these comparisons with "in" to "scale_rule_type in ('http', 'tcp')" (consider-using-in)
src/containerapp/azext_containerapp/custom.py:792:15: R1714: Consider merging these comparisons with "in" to "scale_rule_type in ('http', 'tcp')" (consider-using-in)


How to set check overrides per-family?

Observed behaviour
In https://github.com/google/fonts/issues/3953 we have a situation where I want to make an exception to the GF profile checks for a family, in this case that the license URL metadata is valid but unusual.
Expected behaviour
I would like to be able to mark that exception going forwards so that for this family the check WARNs instead of FAILs.
We've discussed ways to do this in the past, but I've lost track of if/how it can/should be done today :)
upstream.yml? In the GF profile code?
So I'm filing a new issue.
P0!! ;p No.

We can do this by setting up a fontbakery.yml file as described here: https://github.com/fonttools/fontbakery/blob/main/docs/source/user/USAGE.md#configuration-file


Pubsub acks are unsuccessful

When I use the streaming pull subscriber through the MessageReceiver interface, it seems acks usually expire, and even if they don't expire, the number of backlogged messages never changes (num_undelivered_messages in Stackdriver). This only seems to happen if messages take a while to be processed, i.e., more than a few minutes.
It's strange that acks are expired in the first place because I do see that the client is sending modify ack deadline requests (mod_ack_deadline_message_operation_count in Stackdriver). The subscription itself has an ack deadline of 10 minutes so these messages are processed well within the deadline.
Even when acks are successful (i.e., non-expired), num_undelivered_messages is unaffected in Stackdriver. I do see the previously acked messages being redelivered as well.
Another thing I noticed that even though the client is performing streaming pulls, in Stackdriver I see metric data coming in for pull_ack_message_operation_count but none for streaming_pull_ack_message_operation_count. Similarly I see results for mod_ack_deadline_message_operation_count but not for streaming_pull_mod_ack_deadline_message_operation_count. Is this expected?
I am using version 1.37.1 of the google-cloud-pubsub library. I have uploaded my code here: https://gist.github.com/stetra/d757fed41cb67d4a73dd7487ca4d452e
The following Stackdriver graphs show that successful acks are apparently happening, yet the backlog is not decreasing.

In summary, these are my questions:

Despite successful acks occurring, why is the number of unacknowledged messages not decreasing?

Why are expired acks occurring in the first place?

Why is the client performing streaming pulls with non-streaming acks and modacks?

Thanks for the reply. I did not realize that expired acks behaved that way. Is there documentation for those metric statuses in Stackdriver? E.g., for pull_ack_message_operation_count there's expired and success, but perhaps there's more statuses that I'm not aware of.
The above screenshots are from August 16 around 10 AM Pacific Time, but the issue is still happening at the moment (August 20, ~2:45 PM Pacific Time). The subscription is d-steven-long-sub on project lofty-outcome-860.
Screenshots:

Please let me know if you need anything else.

@stetra I contacted the pubsub team with your info. I'll keep you posted.

Hi @stetra, I am trying to debug this issue.
When you observe this behavior, what was the rate of publishing messages? how many messages per second were being published?
Also, do you observe this issue whenever you run your Repro.java, or does it happen only occasionally?

@pongad you mentioned bringing polling pull back, do you have an ETA on that?

I don't want to promise anything right now, but I'll try to work on it over the next couple of weeks if my availability opens up.

I am seeing similar behaviour where I get a lot of expired responses to acks and the number of undelivered messages stops going down. It seems to happen in 5-20 minute intervals. I am using the java client library version 1.45.0.
My subscriber is created as follows:
Subscriber
  .newBuilder(subscriptionName, receiver)
  .setSystemExecutorProvider(
    FixedExecutorProvider.create(Executors.newScheduledThreadPool(8)))
  .setExecutorProvider(FixedExecutorProvider.create(
    Executors.newScheduledThreadPool(128)))
  .setFlowControlSettings(
    FlowControlSettings
      .newBuilder()
      .setMaxOutstandingElementCount(128)
      .build())
  .build()

#3743  might help. Let's see where that gets us first.

The processing of messages is also slow in our case. Handing the processing off to another thread pool and keeping the message receiver lightweight appears to have fixed the issue.

I'm also seeing such behavior that @stetra faced, but now on node.js environment. Therefore it may be not related to exactly java implementation of the library.
Here is the link on the question on SO, in case if this might help.
https://stackoverflow.com/questions/54597310/google-cloud-pubsub-not-ack-messages

@stetra This issue will be resolved once we bring back polling pull. Closing this issue and we will track in #3500


Overload replicate with more precise types

This PR makes the types for replicate more precise. If replicate is given a number smaller than 10 the return type is an array where TypeScript knows the length.
Is having one, two, three and four is still necessary? After this PR replicate will give just as accurate types. Additionally one doesn't seem very useful and two is the same as pair (I think) which is confusing.

Thanks, I like this change. It does make the one-four functions redundant.
There is a difference: two replicates one generator twice whereas pair tuples two different generators.

There is a difference: two replicates one generator twice whereas pair tuples two different generators.

Ah. I see. Makes sense.

Should this be merged?


Adopt copier template

Copier template adoption. If we decide to adopt pyright then I can do that in another PR.

Still to adjust __init__ to be ruff compliant. This is a much larger issue :sweat_smile:

That was much easier than I thought it would be!

If I don't review this by end of Wednesday, go ahead without me on Thursday.


Unsuspend a user from user preview

During my first OctoberCMS project, I kept forgetting the user password for my test user. Having forgotten these passwords I had to manually keep clearing the user throttle table. Adding this will allow a quick way to remove the suspension on a user account not just useful for testing but also for further use within an application.

@ashleighsims can you post a screenshot of the page with the button now?

@LukeTowers Sure, here is an image of how the screen looks currently.

@ashleighsims thanks! Could you change the icon to icon-unlock-alt instead please? I think it fits better.

@LukeTowers Agreed, the unlock icon is a better fit.

Looks fantastic @ashleighsims, thanks! Do you think you could implement this for backend users as well?

Glad I could help! @LukeTowers I'm sure I could do the same for backend users. Keep an eye out for a PR :eyes:


Sync only works in 1 direction

When I edit a document on my phone, it changes on my PC.
However when I edit a document on my PC it doesn't change on my phone.
I'm not sure what's causing this. I have live sync enabled on both devices and have reset the database a few times, even after fetch on my phone it doesn't change the document.

Thank you for opening the issue!
Would you mind if I ask you to check the log that is shown on your device, please?
If DB <- STORAGE would not be shown while modifying some files, please make sure Suspend file watching have been disabled just in case. It is on the Hatch pane in the setting dialogue.
And if suspend file watching has been disabled, I hope to let me see about your whole configuration.
A configuration report can be made by the Make report button on the Hatch pane.

I didn't fully understand which logs you want to see and what you meant with DB <- STORAGE.
I have suspended file watching on PC and made a report which you can find below. Is the report on mobile different, should I add that one as well?
Thank you for looking into it!
----remote config----
cors:
credentials: "true"
headers: accept, authorization, content-type, origin, referer
max_age: "3600"
methods: GET, PUT, POST, HEAD, DELETE
origins: app://obsidian.md,capacitor://localhost,http://localhost
chttpd:
bind_address: any
port: "5984"
require_valid_user: "true"
admins: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷
vendor:
name: The Apache Software Foundation
feature_flags:
partitioned||*: "true"
chttpd_auth:
authentication_redirect: /_utils/session.html
hash_algorithms: sha256, sha
require_valid_user: "true"
indexers:
couch_mrview: "true"
prometheus:
additional_port: "false"
bind_address: <IP_ADDRESS>
port: "17986"
httpd:
WWW-Authenticate: Basic realm="couchdb"
bind_address: <IP_ADDRESS>
enable_cors: "true"
port: "5986"
smoosh:
state_dir: ./data
couch_httpd_auth:
authentication_db: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷
secret: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷
authentication_redirect: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷
couchdb_engines:
couch: couch_bt_engine
couchdb:
database_dir: ./data
single_node: "true"
uuid: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷
view_index_dir: ./data
---- Plug-in config ---
couchDB_URI: self-hosted
couchDB_USER: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷
couchDB_PASSWORD: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷
couchDB_DBNAME: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷
liveSync: true
syncOnSave: false
syncOnStart: false
savingDelay: 200
lessInformationInLog: false
gcDelay: 0
versionUpFlash: ""
minimumChunkSize: 20
longLineThreshold: 250
showVerboseLog: false
suspendFileWatching: true
trashInsteadDelete: true
periodicReplication: false
periodicReplicationInterval: 60
syncOnFileOpen: false
encrypt: true
passphrase: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷
usePathObfuscation: false
doNotDeleteFolder: false
resolveConflictsByNewerFile: true
batchSave: false
deviceAndVaultName: ""
usePluginSettings: false
showOwnPlugins: false
showStatusOnEditor: true
usePluginSync: false
autoSweepPlugins: false
autoSweepPluginsPeriodic: false
notifyPluginOrSettingUpdated: false
checkIntegrityOnSave: false
batch_size: 50
batches_limit: 40
useHistory: true
disableRequestURI: true
skipOlderFilesOnSync: true
checkConflictOnlyOnOpen: false
syncInternalFiles: true
syncInternalFilesBeforeReplication: false
syncInternalFilesIgnorePatterns: /node_modules/, /.git/, /obsidian-livesync/
syncInternalFilesInterval: 60
additionalSuffixOfDatabaseName: ""
ignoreVersionCheck: false
lastReadUpdates: 0
deleteMetadataOfDeletedFiles: false
syncIgnoreRegEx: ""
syncOnlyRegEx: ""
customChunkSize: 100
readChunksOnline: true
watchInternalFileChanges: true
automaticallyDeleteMetadataOfDeletedFiles: 0
disableMarkdownAutoMerge: false
writeDocumentsIfConflicted: false
useDynamicIterationCount: false
syncAfterMerge: false
configPassphraseStore: ""
encryptedPassphrase: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷
encryptedCouchDBConnection: 𝑅𝐸𝐷𝐴𝐶𝑇𝐸𝐷
permitEmptyPassphrase: false
useIndexedDBAdapter: true
useTimeouts: false
writeLogToTheFile: false
doNotPaceReplication: false
hashCacheMaxCount: 300
hashCacheMaxAmount: 50
concurrencyOfReadChunksOnline: 100
minimumIntervalOfReadChunksOnline: 333
hashAlg: xxhash64

I got the same problem after resetting db for a few times, then I try change "Batch size" and "Batch limit", somehow it works: https://github.com/vrtmrz/obsidian-livesync/blob/main/docs/troubleshooting.md

I got the same problem after resetting db for a few times, then I try change "Batch size" and "Batch limit", somehow it works: https://github.com/vrtmrz/obsidian-livesync/blob/main/docs/troubleshooting.md

I tried different numbers, but that didn't help unfortunately.

Thank you for the detail! and sorry for being delay.
The configuration looks fine. How about the log? Are there any related things shown?
Could you please enable the Verbose Log and see the log? (While changing the file).

Thank you for the detail! and sorry for being delay. The configuration looks fine. How about the log? Are there any related things shown? Could you please enable the Verbose Log and see the log? (While changing the file).

I enabled Verbose Log, but I don't know where I can find the log. Where is it outputted?

Sorry for being late! The logs would be shown if we opened the log pane, by clicking archive-box icon.
If it was not shown for some reason, please enable Write logs into the file. Then, logs will be written into the file on top of your vault.

Sorry for being late! The logs would be shown if we opened the log pane, by clicking archive-box icon. If it was not shown for some reason, please enable Write logs into the file. Then, logs will be written into the file on top of your vault.

I still can't find the log pane. What do you mean by archive-box icon, the hatch pane?
I tried to enable "Write logs into the file", but it doesn't write anything. I tried to add some extra text to the file to trigger it, but it doesn't trigger.

Could you be more specific as where I can find the logs?

Sorry for being late! The logs would be shown if we opened the log pane, by clicking archive-box icon. If it was not shown for some reason, please enable Write logs into the file. Then, logs will be written into the file on top of your vault.

I still can't find the log pane. What do you mean by archive-box icon, the hatch pane? I tried to enable "Write logs into the file", but it doesn't write anything. I tried to add some extra text to the file to trigger it, but it doesn't trigger.
Could you be more specific as where I can find the logs?
EDIT: I found the logs:
8/1/2023, 4:45:06 PM->Replication paused 8/1/2023, 4:45:07 PM->Replication activated 8/1/2023, 4:45:07 PM->Content saved:.obsidian/workspace.json ,chunks: 1 (new:0, skip:2, cache:1) 8/1/2023, 4:45:07 PM->STORAGE --> DB:.obsidian/workspace.json: (hidden) Done 8/1/2023, 4:45:08 PM->Replication paused 8/1/2023, 4:45:09 PM->Replication activated 8/1/2023, 4:45:10 PM->Content saved:Obsidian Vault/Tarot/Tarot Kaarten Betekenis.md ,chunks: 101 (new:1, skip:200, cache:100) 8/1/2023, 4:45:10 PM->DB <- STORAGE (plain) Obsidian Vault/Tarot/Tarot Kaarten Betekenis.md 8/1/2023, 4:45:10 PM->Replication paused 8/1/2023, 4:45:10 PM->Content saved:.obsidian/workspace.json ,chunks: 1 (new:0, skip:2, cache:1) 8/1/2023, 4:45:10 PM->STORAGE --> DB:.obsidian/workspace.json: (hidden) Done 8/1/2023, 4:45:10 PM->Replication activated

The archive box  that vrtmrz is referring to is on the left side panel. It is the last icon in the attached screenshot below.

Hey @kenjibailly, you might want to review your Sync Settings. Under the "Conflict resolution" section, you'll see an option titled "Always overwrite with a newer file". If this option is enabled, it's possible that a device with a different timezone is causing your edits to appear "outdated", thereby preventing the changes from being reflected across your other devices. You can solve this by either disabling this feature or ensuring that all your devices are configured with the same timezone/time settings.
@vrtmrz, considering the above, would it be possible to modify the time comparison mechanism for this feature to use Coordinated Universal Time (UTC) instead of localized times? This change could prevent issues that arise due to timezone differences, especially important for users who travel frequently and thus have devices with regularly changing timezones, where syncing timezones across devices is not an option.

Hey @kenjibailly, you might want to review your Sync Settings. Under the "Conflict resolution" section, you'll see an option titled "Always overwrite with a newer file". If this option is enabled, it's possible that a device with a different timezone is causing your edits to appear "outdated", thereby preventing the changes from being reflected across your other devices. You can solve this by either disabling this feature or ensuring that all your devices are configured with the same timezone/time settings.
@vrtmrz, considering the above, would it be possible to modify the time comparison mechanism for this feature to use Coordinated Universal Time (UTC) instead of localized times? This change could prevent issues that arise due to timezone differences, especially important for users who travel frequently and thus have devices with regularly changing timezones, where syncing timezones across devices is not an option.

The option is disabled on both devices.

Sorry for being late! The logs would be shown if we opened the log pane, by clicking archive-box icon. If it was not shown for some reason, please enable Write logs into the file. Then, logs will be written into the file on top of your vault.

I still can't find the log pane. What do you mean by archive-box icon, the hatch pane? I tried to enable "Write logs into the file", but it doesn't write anything. I tried to add some extra text to the file to trigger it, but it doesn't trigger.
Could you be more specific as where I can find the logs?
EDIT: I found the logs:
8/1/2023, 4:45:06 PM->Replication paused 8/1/2023, 4:45:07 PM->Replication activated 8/1/2023, 4:45:07 PM->Content saved:.obsidian/workspace.json ,chunks: 1 (new:0, skip:2, cache:1) 8/1/2023, 4:45:07 PM->STORAGE --> DB:.obsidian/workspace.json: (hidden) Done 8/1/2023, 4:45:08 PM->Replication paused 8/1/2023, 4:45:09 PM->Replication activated 8/1/2023, 4:45:10 PM->Content saved:Obsidian Vault/Tarot/Tarot Kaarten Betekenis.md ,chunks: 101 (new:1, skip:200, cache:100) 8/1/2023, 4:45:10 PM->DB <- STORAGE (plain) Obsidian Vault/Tarot/Tarot Kaarten Betekenis.md 8/1/2023, 4:45:10 PM->Replication paused 8/1/2023, 4:45:10 PM->Content saved:.obsidian/workspace.json ,chunks: 1 (new:0, skip:2, cache:1) 8/1/2023, 4:45:10 PM->STORAGE --> DB:.obsidian/workspace.json: (hidden) Done 8/1/2023, 4:45:10 PM->Replication activated

The archive box that vrtmrz is referring to is on the left side panel. It is the last icon in the attached screenshot below.

Thanks, took me a while to find it. This might help others in the future!

Apologies for the insufficient documentation! And thank you all for the support!
In usual cases, the modified time of a file should be handled at UTC. Just expressed in our locale.
However, I noticed that Obsidian on Windows has no timezone information. I am wondering when they lost... Modified times of files are also dependent on Obsidian. Fortunately, for now, it looks retrieved as surely UTC unix epoch milliseconds.
As the only time epoch is converted to a date type again is when it is displayed, (I hope to believe) this should be possibly not so relevant to this problem.
According to the log, your file looks surely saved in the database.
Would you mind if I ask to check the next step?

Write something and save it on the device (oneway source).
Check the log and make sure that Content saved is shown.
Perform a replication. (You can do this in the button, beside the document-box icon)
Check the log and the new chunks are surely sent to the remote.
Then, move to the next device (in which no document arrived) and perform a replication.
Check the log and the new document has (not) arrived.

Processed from 1 to 4, the log should be as below:

And, from 6 to 7, the log on the second device should be as below:

Would you please try these steps and check where our results have begun to diverge?


[api] override the config with Java system properties

e.g.
 java -Dmyapp.foo.bar=10 should override the property, if the property exists

It's actually already possible. Because, existst syste-property loader system:property whihc already can be used in combination with others.
So: nothing to do here.


Bug Fixes, Documentation, Test Cleanup

This pull request contains the following changes:

Documentation for Manta Subusers.
Removed legacy API tests that duplicate code and just replaced them with API compatibility tests.
Fixed a bug in the find method that was causing to fail when searching subdirectories.
Bumped the version to 2.0.1

This is great. Thanks. :)


[portfile helpers] vcpkg_from_git should support LFS for/from arbitrary endpoint

Is your feature request related to a problem? Please describe.
Right now, vcpkg_from_git support LFS argument to also check out LFS files. The problem is that the check out happens against the git url specified in the URL argument, rather than where the files actually are.
This means I still cannot use vcpkg_from_git for a private port, so I still need to use vcpkg_apply_patches, as per #22042.
Proposed solution
Either run git-lfs in a way that takes into account the repository's .lfsconfig, or provide LFS_URL argument, where I can point to a specific lfs remote.

cc @DDoS

@horenmar The git fetch never checks-out the repository files. It only does a fetch and archive, so it won't see the .lsconfig file.
The LFS fetch runs after the git fetch, and the URL is passed explicitly. As you said it's using the same URL as the git fetch, but we could change this to a different URL if one is provided. I think it could be an optional argument to the LFS keyword (if declared in cmake_parse_arguments as a "one value keyword" and no value is passed by the caller, the keyword will be in placed in <prefix>_KEYWORDS_MISSING_VALUES).
For testing all that's needed is to setup a second temporary test repo, and to try fetching from its URL.
If you want to tackle this, you can look at https://github.com/microsoft/vcpkg/commit/57ae838ee87313a3f0c5e14b008767d97d94debe to get an idea of which files will need to be modified for this improvement. Otherwise I should have time to work on this next week, after my holidays.


Word wrap is broken with introduction of v1.9

VSCode Version: 1.9
OS Version: MacOS Sierra

Steps to Reproduce:

Open a Markdown file.
Toggle word wrap

This word wrap feature used to work before upgrading to v1.9 but it seems to be broken now. When I attempt to toggle word wrap, it does nothing at all.

Same as #19842
@alexandrudima You might want to look at this. Hard to notice on a big screen, but I think I found a way to reproduce it on my 13":
If you set editor.wrappingColumn to any value lower than the max col that can be displayed in a row, editor.wordWrap is ignored.

In the previous release, editor.wordWrap: false  took precedence over the wrapping column (and it absolutely should stay that way, if a setting with a simple boolean says "Don't wrap", it should definitely not wrap, no matter what a more fine grained "wrap column"  says)

editor.wordWrap is set to false and wrappingColumn is set to 300. I'm on a new MacBook Pro 15".

Hmm, strange. If I set it explicitly to 300 I can toggle the word wrap. I just played around with it, in the setup shown in my screenshots the toggling stop as soon as I set wrappingColumn to 121.

Before 1.9.0 I set editor.wrappingColumn to -1 so I could toggle wrap dynamically with editor.action.toggleWordWrap. This no longer works, but  I verified that I can update wrap to something very long (e.g., 32767) to get the previous behavior.
The description for editor.wrappingColumn still says -1 should work for this purpose, but it appears this is not the case?
The actual behavior is described by the editor.wordWrap setting: "The lines will wrap at min(editor.wrappingColumn, viewportWidthInColumns)." This behavior makes sense, but it seems that the -1 value in editor.wrappingColumn is not honored?

The toggle word wrap action has changed (to be aligned with all the other View actions) and is now writing to user settings. Specifically, it writes to user settings editor.wordWrap: true or editor.wordWrap: false. Before, it would change an in-memory value which would be lost as soon as any other view action that would write to user settings would be executed (e.g. zoom in / zoom out) or as soon as settings.json would have been touched on disk.
Since the action now writes to the user settings, one thing to keep in mind is that the setting should not be present in the workspace settings, since workspace settings overwrite user settings. In other words, if the workspace settings contains editor.wordWrap, then the action will be a no-op. This is similar to the other View actions, such as zooming in/zooming out, etc. It is generally not a good idea to keep presentation options in the workspace anyways.
Mastering line wrapping
There are two important settings in VS Code that control line wrapping.

editor.wrappingColumn (300 by default)
and editor.wordWrap (false by default)

It is important to understand the need for two distinct settings and how to tweak them to suit your use-case:
Examples (with explanations):

wordWrap
wrappingColumn
Explanation

false
300
Lines will wrap at 300

false
0
Lines will wrap at viewport_column

false
-1
Lines will never wrap.

true
300
Lines will wrap at min(viewport_column, 300)

true
0
Lines will wrap at viewport_column

true
-1
Lines will never wrap.

It is not intuitive that any wrapping occurs when wordWrap is set to false. IMO the following is much more intuitive:

wordWrap
wrappingColumn
Explanation

false
any value
Lines will never wrap

true
-1
Lines will wrap at min(viewport_column, wrappingColumn)

true
0
Lines will wrap at viewport_column

true
>= 1
Lines will wrap at specified column

@alexandrudima in your example table, it appears that therefore wrapping is no longer toggle-able between 'Lines will wrap...' and 'Lines will never wrap' because wrappingColumn needs to be changed in order to unwrap all lines. Alt-Z basically doesn't work anymore.

What is the actual purpose of the editor.wordWrap setting?
If it is set false and some wrapping is still occurring, I find this counterintuitive and confusing.
In this case I would suggest giving this option a different name that tells better what it does.
Otherwise, I would suggest implementing behavior like described in my table above. If wordWrap is false, then there should be no wrapping. Ignore wrappingColumn.
If wordWrap is true, then honor setting in wrappingColumn.

It is not intuitive that any wrapping occurs when wordWrap is set to false.

It is the actual reason I'm here... reading this bug. Because that's what was introduced in 1.9 afaic. A bug.
I find it strange this issue is closed. Check out how many are reporting that they perceive this as a bug.
I used to love the column editing feature of VSCode (took a while to get used to, but is marvelous!), but now, because the lines wrap (no matter whether I enable or disable word wrap), I can't use this column editing feature effectively.
I guess the workaround is to set wrappingColumn to a very high value?
Please consider re-opening this. The feature is not an improvement imho.


DFred conditions do not work when dragged onto macro bar.

Describe the bug
When using a DFred condition from the macro bar an error comes up "Your controlled actor does not have an active effect with name "
To Reproduce
Using the DFred condition from the DFreds effect panel works properly.
When dragging the effect from the DFreds effect panel to the macro bar it stops working.
Expected behavior
If I drag from that list to macro bar, the macro is: game.dnd5e.macros.toggleEffect("Blinded")
This is wrong, it should be game.dfreds.effectInterface.toggleEffect("Blinded")

Did you mean to open this on https://github.com/DFreds/dfreds-convenient-effects? If so, this is a known issue. The macro is being created but is overridden by a new feature of dnd5e that also creates a macro. See https://github.com/DFreds/dfreds-convenient-effects/pull/155

So will there be an update soon with the script changes?


result_type as List

I don't know if this is related to https://github.com/pydantic/pydantic-ai/issues/242 or not.
I am trying to replicate this from the Ollama examples (ref: https://ollama.com/blog/structured-outputs)
from openai import OpenAI
import openai
from pydantic import BaseModel

client = OpenAI(base_url="http://<IP_ADDRESS>:11434/v1", api_key="ollama")

class Pet(BaseModel):
    name: str
    animal: str
    age: int
    color: str | None
    favorite_toy: str | None

class PetList(BaseModel):
    pets: list[Pet]

try:
    completion = client.beta.chat.completions.parse(
        temperature=0,
        model='llama3.2:3b',
        messages=[
            {"role": "user", "content": '''
                I have two pets.
                A cat named Luna who is 5 years old and loves playing with yarn. She has grey fur.
                I also have a 2 year old black cat named Loki who loves tennis balls.
            '''}
        ],
        response_format=PetList,
    )

    pet_response = completion.choices[0].message
    if pet_response.parsed:
        print(pet_response.parsed)
    elif pet_response.refusal:
        print(pet_response.refusal)
except Exception as e:
    if type(e) == openai.LengthFinishReasonError:
        print("Too many tokens: ", e)
        pass
    else:
        print(e)
        pass

In pydantic-al I try
from pydantic import BaseModel
from pydantic_ai import Agent
from pydantic_ai.models.ollama import OllamaModel

ollama_model = OllamaModel(
    model_name='llama3.2:3b',
    base_url='http://<IP_ADDRESS>:11434/v1'
)

class Pet(BaseModel):
  name: str
  animal: str
  age: int
  color: str | None
  favorite_toy: str | None

class PetList(BaseModel):
  pets: list[Pet]

# # Create a system prompt to guide the model
SYSTEM_PROMPT = """
You are a helper that extracts pet information from text and formats it as a list.
For each pet mentioned, extract:
- name
- animal type
- age
- color (if mentioned)
- favorite toy (if mentioned)

Format as a JSON object with a 'pets' array containing each pet's details.
"""

agent3 = Agent(model=ollama_model, result_type=PetList, retries=3)
result3 = agent3.run_sync(('I have two pets. A cat named Luna who is 5 years old'
                           ' and loves playing with yarn. She has grey fur. I also '
                           'have a 2 year old black cat named Loki who loves tennis balls.'))
pet_data = result3.data
print(pet_data)

passing PetList to the result_type.    This will fail.
If I just pass Pet, ie,    result_type=Pet   it will sometimes work, getting only 1 cat of course, but also fail sometimes.
Any guidance on how to address this would be appreciated.

I was getting a similar error with langchain_ollama.ChatOllama and thought it was something underlying with the code. But looking into your issue i made a few changes and got output:

SYSTEM_PROMPT wasn't assigned to Agent:

agent3 = Agent(model=ollama_model, result_type=PetList, retries=3, system_prompt=SYSTEM_PROMPT)

SYSTEM_PROMPT mentioned "animal type" that was throwing an exception when trying to map to animal property so I changed SYSTEM_PROMPT as follows

   SYSTEM_PROMPT = """
   You are a helper that extracts pet information from text and formats it as a list.
   For each pet mentioned, extract:
   - name
   - animal type
   - age
   - color (if mentioned)
   - favorite toy (if mentioned)
   """

Pet changed animal to animal_type
Used a different model (didn't have llama3.2:3b installed, probably shouldn't be an issue)
Changed the prompt to a different string syntax, probably shouldn't matter
Results in pets=[Pet(name='Luna', animal_type='cat', age=5, color='grey', favorite_toy='yarn'), Pet(name='Loki', animal_type='cat', age=2, color='black', favorite_toy='tennis balls')]

Final working code
from pydantic import BaseModel
from pydantic_ai import Agent
from pydantic_ai.models.ollama import OllamaModel

ollama_model = OllamaModel(
    model_name="qwen2.5-coder:14b",
)

class Pet(BaseModel):
  name: str| None
  animal_type: str| None
  age: int| None
  color: str | None
  favorite_toy: str | None

class PetList(BaseModel):
  pets: list[Pet]

# # Create a system prompt to guide the model
SYSTEM_PROMPT = """
You are a helper that extracts pet information from text and formats it as a list.
For each pet mentioned, extract:
- name
- animal type
- age
- color (if mentioned)
- favorite toy (if mentioned)
"""

agent3 = Agent(model=ollama_model, result_type=PetList, retries=3, system_prompt=SYSTEM_PROMPT)
result3 = agent3.run_sync('I have two pets. A cat named Luna who is 5 years old and loves playing with yarn. She has grey fur. I also have a 2 year old black cat named Loki who loves tennis balls.')
pet_data = result3.data
print(pet_data)

Thanks for the answer @IsaaacD! Marking as resolved :)

@IsaaacD just wanted to say thanks..
Also can confirm this code still fails with llama3.2:3b    but works with "qwen2.5-coder:14b" as you noted.
Appreciate your response and the update and usage approach with the system prompt too.  I have no issue using qwen for this work.
Still, the Ollama library will succeed with llama3.2:3b.  So there still must be some underlying combination of model and support for functions or tool chains in here somewhere to account for the difference in behavior with the llama3.2 model between the Ollama library and pydantic-ai.

I looked into it a bit more and added some debug options to trace what llama3.2 is doing. It appears llama3.2 is returning something that looks like valid JSON but PydanticAI is rejecting it or parsing it wrong? I'll put the changes I made and the list the ouput afterwards.
I changed the top to import these and add debug, switched back to llama3.2:
from devtools import debug
import logfire
from logging import basicConfig
from langchain_core.globals import set_debug
set_debug(True)
logfire.configure(send_to_logfire='if-token-present')
logfire.ConsoleOptions.min_log_level ='trace'
logfire.ConsoleOptions.verbose = True
basicConfig(handlers=[logfire.LogfireLoggingHandler()])
ollama_model = OllamaModel(
    model_name="llama3.2:latest",
)

Then around the call I added a try/except flow to print out the results:
agent3 = Agent(model=ollama_model, result_type=PetList, retries=3, system_prompt=SYSTEM_PROMPT)
try:
  result3 = agent3.run_sync('I have two pets. A cat named Luna who is 5 years old and loves playing with yarn. She has grey fur. I also have a 2 year old black cat named Loki who loves tennis balls.')
  pet_data = result3.data
  print(pet_data)
except:
  print("Error")
finally:
  debug(agent3.last_run_messages)

And then finally the debug(agent3.last_run_Messages) produces this:
pet_examplel.py:41 <module>
    agent3.last_run_messages: [
        SystemPrompt(
            content=(
                '\n'
                'You are a helper that extracts pet information from text and formats it as a list.\n'
                'For each pet mentioned, extract:\n'
                '- name\n'
                '- animal type\n'
                '- age\n'
                '- color (if mentioned)\n'
                '- favorite toy (if mentioned)\n'
            ),
            role='system',
        ),
        UserPrompt(
            content=(
                'I have two pets. A cat named Luna who is 5 years old and loves playing with yarn. She has grey fur. I'
                ' also have a 2 year old black cat named Loki who loves tennis balls.'
            ),
            timestamp=datetime.datetime(2024, 12, 23, 14, 55, 5, 637176, tzinfo=datetime.timezone.utc),
            role='user',
        ),
        ModelStructuredResponse(
            calls=[
                ToolCall(
                    tool_name='final_result',
                    args=ArgsJson(
                        args_json=(
                            '{"pets":"[{\\"name\\": \\"Luna\\", \\"animal_type\\": \\"cat\\", \\"age\\": \\"5\\", \\"color\\": \\"gre'
                            'y\\", \\"favorite toy\\": \\"yarn\\"}, {\\"name\\": \\"Loki\\", \\"animal_type\\": \\"cat\\", \\"age\\":'
                            ' \\"2\\", \\"color\\": \\"black\\", \\"favorite toy\\": \\"tennis balls\\"}]"}'
                        ),
                    ),
                    tool_id='call_kiakrf40',
                ),
            ],
            timestamp=datetime.datetime(2024, 12, 23, 14, 55, 6, tzinfo=datetime.timezone.utc),
            role='model-structured-response',
        ),
        RetryPrompt(
            content=[
                {
                    'type': 'list_type',
                    'loc': ('pets',),
                    'msg': 'Input should be a valid array',
                    'input': (
                        '[{"name": "Luna", "animal_type": "cat", "age": "5", "color": "grey", "favorite toy": "yarn"},'
                        ' {"name": "Loki", "animal_type": "cat", "age": "2", "color": "black", "favorite toy": "tennis'
                        ' balls"}]'
                    ),
                },
            ],
            tool_name='final_result',
            tool_id='call_kiakrf40',
            timestamp=datetime.datetime(2024, 12, 23, 14, 55, 7, 871995, tzinfo=datetime.timezone.utc),
            role='retry-prompt',
        ),
        ModelTextResponse(
            content=(
                'Here is the answer to your question:\n'
                '\n'
                '**Your Pets:**\n'
                '\n'
                '1. Luna (5 years old) - grey cat\n'
                '\t* Favorite Toy: Yarn\n'
                '2. Loki (2 years old) - black cat\n'
                '\t* Favorite Toy: Tennis Balls'
            ),
            timestamp=datetime.datetime(2024, 12, 23, 14, 55, 8, tzinfo=datetime.timezone.utc),
            role='model-text-response',
        ),
        RetryPrompt(
            content='Plain text responses are not permitted, please call one of the functions instead.',
            tool_name=None,
            tool_id=None,
            timestamp=datetime.datetime(2024, 12, 23, 14, 55, 8, 287356, tzinfo=datetime.timezone.utc),
            role='retry-prompt',
        ),
        ModelStructuredResponse(
            calls=[
                ToolCall(
                    tool_name='final_result',
                    args=ArgsJson(
                        args_json=(
                            '{"pets":"[{\'name\': \'Luna\', \'animal_type\': \'cat\', \'age\': \'5\', \'color\': \'grey\', \'favorite t'
                            "oy': 'yarn'}, {'name': 'Loki', 'animal_type': 'cat', 'age': '2', 'color': 'black', 'favor"
                            'ite toy\': \'tennis balls\'}]"}'
                        ),
                    ),
                    tool_id='call_ssu65p8z',
                ),
            ],
            timestamp=datetime.datetime(2024, 12, 23, 14, 55, 8, tzinfo=datetime.timezone.utc),
            role='model-structured-response',
        ),
        RetryPrompt(
            content=[
                {
                    'type': 'list_type',
                    'loc': ('pets',),
                    'msg': 'Input should be a valid array',
                    'input': (
                        "[{'name': 'Luna', 'animal_type': 'cat', 'age': '5', 'color': 'grey', 'favorite toy': 'yarn'},"
                        " {'name': 'Loki', 'animal_type': 'cat', 'age': '2', 'color': 'black', 'favorite toy': 'tennis"
                        " balls'}]"
                    ),
                },
            ],
            tool_name='final_result',
            tool_id='call_ssu65p8z',
            timestamp=datetime.datetime(2024, 12, 23, 14, 55, 8, 905979, tzinfo=datetime.timezone.utc),
            role='retry-prompt',
        ),
        ModelTextResponse(
            content=(
                'def format_pet_info(pets):\n'
                '    formatted_pets = []\n'
                '    for pet in pets:\n'
                '        name = pet["name"]\n'
                '        animal_type = pet["animal_type"]\n'
                '        age = pet["age"]\n'
                '        color = pet.get("color")\n'
                '        favorite_toys = f"{pet.get(\'favorite toy\', \'No favorite toy mentioned\')}" if pet.get(\'favorit'
                'e toy\') else "No favorite toy mentioned"\n'
                '        \n'
                '        formatted_pet = f"{name} ({age} years old)"\n'
                '        if color:\n'
                '            formatted_pet += f" - {color}"\n'
                '        \n'
                '        formatted_pets.append(formatted_pet)\n'
                '    \n'
                '    return formatted_pets\n'
                '\n'
                'pets = [\n'
                "    {'name': 'Luna', 'animal_type': 'cat', 'age': '5', 'color': 'grey', 'favorite toy': 'yarn'},\n"
                "    {'name': 'Loki', 'animal_type': 'cat', 'age': '2', 'color': 'black', 'favorite toy': 'tennis ball"
                "s'}\n"
                ']\n'
                '\n'
                'print(format_pet_info(pets))'
            ),
            timestamp=datetime.datetime(2024, 12, 23, 14, 55, 10, tzinfo=datetime.timezone.utc),
            role='model-text-response',
        ),
    ] (list) len=9

Note: I did have to change the output in VS Code with the following launch.json as it didn't produce a full output without setting "PYTHONUNBUFFERED": "0":
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "testpython.py",
            "type": "debugpy",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "env": {
                "PYTHONUNBUFFERED": "0"
            }
        }
    ],

}

It looks like the last couple of prompts should've been right proper JSON (the terminal output is word-wrapped so I don't think that's an issue). Might be something in the JSON parser or the escape characters llama3.2 is producing. I'll run this again right now with Qwen to compare.

This is the resulting output from Qwen:
pet_examplel.py:49 <module>
    agent3.last_run_messages: [
        SystemPrompt(
            content=(
                '\n'
                'You are a helper that extracts pet information from text and formats it as a list.\n'
                'For each pet mentioned, extract:\n'
                '- name\n'
                '- animal type\n'
                '- age\n'
                '- color (if mentioned)\n'
                '- favorite toy (if mentioned)\n'
            ),
            role='system',
        ),
        UserPrompt(
            content=(
                'I have two pets. A cat named Luna who is 5 years old and loves playing with yarn. She has grey fur. I'
                ' also have a 2 year old black cat named Loki who loves tennis balls.'
            ),
            timestamp=datetime.datetime(2024, 12, 23, 15, 10, 0, 191338, tzinfo=datetime.timezone.utc),
            role='user',
        ),
        ModelStructuredResponse(
            calls=[
                ToolCall(
                    tool_name='final_result',
                    args=ArgsJson(
                        args_json=(
                            '{"pets":[{"age":"5 years old","animal_type":"cat","color":"grey","favorite_toy":"yarn","n'
                            'ame":"Luna"},{"age":"2 years old","animal_type":"cat","color":"black","favorite_toy":"ten'
                            'nis balls","name":"Loki"}]}'
                        ),
                    ),
                    tool_id='call_1mb6236j',
                ),
            ],
            timestamp=datetime.datetime(2024, 12, 23, 15, 10, 35, tzinfo=datetime.timezone.utc),
            role='model-structured-response',
        ),
        RetryPrompt(
            content=[
                {
                    'type': 'int_parsing',
                    'loc': (
                        'pets',
                        0,
                        'age',
                    ),
                    'msg': 'Input should be a valid integer, unable to parse string as an integer',
                    'input': '5 years old',
                },
                {
                    'type': 'int_parsing',
                    'loc': (
                        'pets',
                        1,
                        'age',
                    ),
                    'msg': 'Input should be a valid integer, unable to parse string as an integer',
                    'input': '2 years old',
                },
            ],
            tool_name='final_result',
            tool_id='call_1mb6236j',
            timestamp=datetime.datetime(2024, 12, 23, 15, 10, 37, 427123, tzinfo=datetime.timezone.utc),
            role='retry-prompt',
        ),
        ModelStructuredResponse(
            calls=[
                ToolCall(
                    tool_name='final_result',
                    args=ArgsJson(
                        args_json=(
                            '{"pets":[{"age":5,"animal_type":"cat","color":"grey","favorite_toy":"yarn","name":"Luna"}'
                            ',{"age":2,"animal_type":"cat","color":"black","favorite_toy":"tennis balls","name":"Loki"'
                            '}]}'
                        ),
                    ),
                    tool_id='call_cb69k61m',
                ),
            ],
            timestamp=datetime.datetime(2024, 12, 23, 15, 10, 41, tzinfo=datetime.timezone.utc),
            role='model-structured-response',
        ),
        ToolReturn(
            tool_name='final_result',
            content='Final result processed.',
            tool_id='call_cb69k61m',
            timestamp=datetime.datetime(2024, 12, 23, 15, 10, 41, 200655, tzinfo=datetime.timezone.utc),
            role='tool-return',
        ),
    ] (list) len=6

The only main thing I see is that llama3.2 gives favorite toy with a space, instead of favorite_toy with underscore... Maybe if we switch to pascal case instead of snake case llama3.2 could get it? I'll try and report back 😊

@IsaaacD very nice investigation.   Thanks!
New to the use of LLMs in functions and workflow approaches.  Is it true that the models work best in these cases when trained or fine tuned from the start to work in this manner?   Combining that with good prompt engineering is what is needed to return results that parse into pydantic data structures?
I'll dig around, but I assume there is a way in pydantic to catch that a data stuct wasn't fully populated after n tries.  Or maybe it's just a try / except.
Either way, appreciate your CSI skills here.   I'll use those interrogate future events for sure!

@fils I'm not likely the person to ask about LLMs, just a humble software developer. I do believe the training set matters, and Qwen was made to read and write code so it's what I use in my tasks.
It's very weird tho, I found a Jupyter notebook (can't find the source now, I'm on my phone but I'll share it later) where it was trying to use Grok for natural language web scraping. I re-wrote it with Qwen 2.5 and python (outside Jupyter) and was having issues with it in code. I had one scenario where I fed the data to Qwen in a terminal with ollama and it spit out the results 100% accurate with one prompt but that was only once.
I tried recreating that in code and then in the terminal afterwards and didn't have any success. That's where I came here to see about wrapping it in Pydantic AI and saw it you were experiencing something similar. Didn't know if it was a downstream dependency, but doesn't appear so.
So long story short, training data matters, you won't generate PNGs with most LLMs, and it makes sense because it wasn't trained on them. I think code is of a similar vein, if llama3.2 didn't have much code or JSON in its training data, then it makes sense that it struggles with it.

I was just reading the issues on the Pydantic AI repo and ran into an issue that @fils listed in his initial post that I didn't see until I saw the bottom of the thread and noticed his name. I think this is likely what's going on, so I'm not sure if there's much to expect for all use cases until something is implemented for Ollama models


⚠ Bofrost.be has degraded performance

In 3abedfb, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1008 ms

Resolved: Bofrost.be performance has improved in 30a81d2 after 6 minutes.


[Feature] E2E Test plan for RayService

Search before asking

[X] I had searched in the issues and found no similar feature requirement.

Description
We should have a test plan for RayService after #759 is merged.
Use case
No response
Related issues
#759
Are you willing to submit a PR?

[ ] Yes I am willing to submit a PR!

Assign to the expert of RayService @shrekris-anyscale. We can schedule a meeting to discuss the plan.

We need to test following as first priority to make rayservice ready to onboard

Autoscaling
In place updates
roll outs

Closed by https://github.com/ray-project/kuberay/pull/1167


The swagger generate spec command does not run normally.

Problem statement
Hello.
I hope you're doing well.
After installing go-swagger through the brew install go-swagger command and running swagger generate spec -o swagger.yaml --scan-models in my Go project, the go-swagger cli stopped.
Also, no error message was printed.
To solve this problem, I looked through the go-swagger documentation and found an option called -w .
As soon as I passed the absolute path of my Go project as the value of the -w option, I confirmed that the go-swagger cli was working normally.
I couldn't figure out why I had to pass the -w option to get the go-swagger cli to run normally.
And I was wondering how to run go-swagger cli normally without -w option.
Be Safe and take care yourself.
Environment
swagger version: v0.27.0
go version: 1.17.1
OS: Apple M1 macOS Big Sur(11.5.2)

Same as me but mine is error, im run it with docker run through aliasing
err: exit status 1: stderr: failed to initialize build cache at /.cache/go-build: mkdir /.cache: permission denied

Same as me but mine is error, im run it with docker run through aliasing err: exit status 1: stderr: failed to initialize build cache at /.cache/go-build: mkdir /.cache: permission denied

I'm encountering this too. Solved via this comment: https://github.com/go-swagger/go-swagger/issues/2242#issuecomment-766881952
Change your swagger alias to:
alias swagger='docker run --rm -it  --user $(id -u):$(id -g) -e GOCACHE=/tmp -e  GOPATH=$(go env GOPATH):/go -v $HOME:$HOME -w $(pwd) quay.io/goswagger/swagger'

Same for me. Ubuntu 22.04 using an alias for the docker container setup. Comment from @dwjohnston solved it for me.
Maybe this part -e GOCACHE=/tmp just needs to be added to the documentation to prevent the error for a lot of people. Makes kind of sense if i think about it. Isn't it the case that the swagger generator wants to write to the cache folder in the go path but cannot because the gopath is outside of the container? So just setting another cache dir will help?


Add a backoff idle strategy to C Media Driver

In addition to the NoOp, Busy, Yielding, and Sleeping strategies that currently are available for the C media driver we should have a configurable backoff strategy that spins, yields, then sleeps in a progressive fashion when idle.

Fixed with this commit. https://github.com/real-logic/aeron/commit/363a85c71ea7949cef8be8bfb635e36c5ca05472


Unverified Mods and Reports Queues

This'd bring along different endpoints for viewing unverified mods and mods/users reports (as well as implementing them), and then dealing with them in respective ways

Unverified mods already have an endpoint, I'll look into reports later.

Unverified mods is already in a rooute called pending_mods. Renaming issue to only matter the reports queue

Related to #34. replace content with type as a Enum.


Doesn't work with Terminator (Ubuntu)

While it does with the default gnome terminal, it doesn't work with Terminator.

nvm, i had to post this on terminal link repository xDDD


merging conflicts were resolved

Targets were removed.
build after fetch upstream.
Tested to generate signed images for nrf52840 and stm32f411.

The PR still contains the target folder. Please exclude it via the .gitignore file.
The stm dependencies in the update crate are referencing rustboot-hal and not hal. By the way, does your change compile?

Nice work on your first pr - @yashwanthsinghm. 🚀


Fix cors error thrown by browsers

See https://github.com/apollographql/apollo-server/issues/514
and https://github.com/apollographql/apollo-server/pull/523
It'd be great if you could cut a new release after merge so that I could upate graphiql-workspace-app.

nice, thanks!

Published https://github.com/OlegIlyenko/graphiql-workspace/releases/tag/v1.1.2

Yay, thanks!


bug(MatFormField): Prerendering Angular universal fails

Is this a regression?

[ ] Yes, this behavior used to work in the previous version

The previous version in which this bug was not present was
No response
Description
If running npm run prerender and a component template, considered for prerendering, contains a MatFormField component, the prerendering fails:
⠋ Prerendering 6 route(s) to <DRIVE_LETTER>:\<project>\dist\<project>\browser...Unhandled Promise rejection: Cannot read properties of undefined (reading 'type') ; Zone: <root> ; Task: Promise.then ; Value: TypeError: Cannot read properties of undefined (reading 'type')
    at TokenStream.LA (<DRIVE_LETTER>:\<project>\dist\<project>\server\main.js:1:626334)
    at TokenStream.advance (<DRIVE_LETTER>:\<project>\dist\<project>\server\main.js:1:624983)
    at Parser._readDeclarations (<DRIVE_LETTER>:\<project>\dist\<project>\server\main.js:1:659046)
    at Parser.parseStyleAttribute (<DRIVE_LETTER>:\<project>\dist\<project>\server\main.js:1:660636)
    at parseStyles (<DRIVE_LETTER>:\<project>\dist\<project>\server\main.js:1:344961)
    at CSSStyleDeclaration.get (<DRIVE_LETTER>:\<project>\dist\<project>\server\main.js:1:345316)
    at CSSStyleDeclaration.value (<DRIVE_LETTER>:\<project>\dist\<project>\server\main.js:1:346137)
    at CSSStyleDeclaration.get (<DRIVE_LETTER>:\<project>\dist\<project>\server\main.js:1:359933)
    at cloakElement (<DRIVE_LETTER>:\<project>\dist\<project>\server\main.js:1:3558188)
    at <DRIVE_LETTER>:\<project>\dist\<project>\server\main.js:1:3558406 TypeError: Cannot read properties of undefined (reading 'type')
    at TokenStream.LA (<DRIVE_LETTER>:\<project>\dist\<project>\server\main.js:1:626334)
    at TokenStream.advance (<DRIVE_LETTER>:\<project>\dist\<project>\server\main.js:1:624983)
    at Parser._readDeclarations (<DRIVE_LETTER>:\<project>\dist\<project>\server\main.js:1:659046)
    at Parser.parseStyleAttribute (<DRIVE_LETTER>:\<project>\dist\<project>\server\main.js:1:660636)
    at parseStyles (<DRIVE_LETTER>:\<project>\dist\<project>\server\main.js:1:344961)
    at CSSStyleDeclaration.get (<DRIVE_LETTER>:\<project>\dist\<project>\server\main.js:1:345316)
    at CSSStyleDeclaration.value (<DRIVE_LETTER>:\<project>\dist\<project>\server\main.js:1:346137)
    at CSSStyleDeclaration.get (<DRIVE_LETTER>:\<project>\dist\<project>\server\main.js:1:359933)
    at cloakElement (<DRIVE_LETTER>:\<project>\dist\<project>\server\main.js:1:3558188)
    at <DRIVE_LETTER>:\<project>\dist\<project>\server\main.js:1:3558406
✖ Prerendering routes to <DRIVE_LETTER>:\<project>\dist\<project>\browser failed.
Cannot read properties of undefined (reading 'type')

Reproduction
Steps to reproduce:

install nguniversal/express-engine
import MatFormFieldModule and MatInputModule
add code to a component template:<form class="form">
     <mat-form-field appearance="fill">
         <input matInput>
     </mat-form-field>
 </form>

run npm run prerender

Expected Behavior
Prerendering should not fail.
Actual Behavior
Prerendering fails.
Environment
@angular-devkit/architect       0.1402.7
@angular-devkit/build-angular   14.2.7
@angular-devkit/core            14.2.7
@angular-devkit/schematics      14.2.7
@angular/cdk                    14.2.6
@angular/cli                    14.2.7
@angular/fire                   7.4.1
@angular/material               14.2.6
@nguniversal/builders           14.2.0
@nguniversal/express-engine     14.2.0
@schematics/angular             14.2.7
ng-packagr                      14.2.2
rxjs                            7.5.7
typescript                      4.7.4

Browser(s): not relevant
Operating System (e.g. Windows, macOS, Ubuntu): Windows 11

Can you post an example that reproduces the issue? As far as I can tell from the stack trace, this error isn't coming from Angular Material. It's also worth noting that we have some server-side rendering tests that didn't pick this up.

It is somehow, because only if using  it fails.
However. I tried to set up a new project and going forward step by step. As this didn't lead to anything, I've tried another approach and used my original project while step-by-step simplifying it.
And now I know what is not working in combination.
In my AppComponent I'm using the following HostBinding: @HostBinding('style.--vh') vh = '1vh';
If that is used combined with the MatFormField component, prerendering fails.
I've published my steps from the forward approach to GitHub (see single commits): tom4u/debug-prerender-mat-form-field

Thanks for the reproduction, it helped narrow down the issue. I spent some time investigating it, and it looks like this is a problem with the domino renderer that Angular uses for server-side DOM implementation. Domino doesn't support CSS variables and some CSS properties like clip-path, e.g. if you try doing element.style.setProperty('--foo', '1px'), the value just gets dropped. We work around it by writing directly to the style attribute instead: https://github.com/angular/angular/blob/main/packages/platform-server/src/server_renderer.ts#L298
The error in this specific case happens, because when the --vh variable is set, the element looks like <app-root style="--vh:1vh"></app-root>, but later on the Angular animations module tries to set el.style.display = 'none' on the same element. This tells Domino to parse the style attribute and it leads to the error, because Domino doesn't know how to deal with a property starting with --. It happens in the specific combination of the Material form field + CSS variables, because Material uses the Angular animations module to animate the error/hint messages, but it can also be reproduced with the following unit test:
it('fails', fakeAsync(() => {
  @Component({template: 'hello', selector: 'app-root'})
  class AppRoot {
    @HostBinding('style.--height') height = '100px';
  }

  @Component({
    template: '<app-root [@test]="animationState"></app-root>',
    animations: [trigger(
        'test',
        [
          state('enter', style({opacity: 1})),
          transition('void => enter', [style({opacity: 0}), animate('300ms linear')]),
        ])],
  })
  class MyApp {
    animationState = 'enter';
  }

  TestBed.configureTestingModule({declarations: [MyApp, AppRoot]});
  const fixture = TestBed.createComponent(MyApp);
  fixture.detectChanges();
  flush();
}));

The only workaround I've found, that doesn't involve an upstream fix in Domino, has been to ensure that at least one non-variable property is written to the DOM before any CSS variables. E.g. in your case you can work around it by adding a dummy host binding like @HostBinding('style.color') color = 'inherit' before the @HostBinding('style.--vh'). This workaround can be baked into Angular's server renderer as well, but it feels a little hacky.
I'm transferring the issue to the appropriate repo to continue the discussion.


chore: add bootstrap address for budavlebac

Description
Briefly describe the changes introduced by this pull request.
Related issue(s)
If this Pull Request is related to an issue, mention it here.

Fixes #(issue number)

@Budalebah
Please address the JSON format issue. You can verify the correctness of the data using https://jsonlint.com/.


How to get data from database up to display with dayspan-vuetify as a component

In app.vue  i see localStorage and  loadState method . but i want it display from my data in database and I'm using dayspan-vuetify as a component . So how do
  <template>
  <v-app id="dayspan" v-cloak>
      <ds-calendar-app :calendar="calendar"  @event-create="eventCreate($event)"></ds-calendar-app>
    </v-app>
</v-app>
</template>
// <script>
import { mapActions } from 'vuex'
import { Calendar } from 'dayspan';
import 'vuetify/dist/vuetify.min.css'
import 'material-design-icons-iconfont/dist/material-design-icons.css'
import 'dayspan-vuetify/dist/lib/dayspan-vuetify.min.css'

export default {
  name: 'Plan',
  data: () => ({
    calendar: Calendar.months(),
  }),
  methods: {
    ...mapActions(['setMiniDrawer']),
    eventCreate(event){
      console.log('event',event.schedule.toInput())
    }
  },
  created () {
    this.setMiniDrawer(false)
  },
  mounted () {

  }

}
</script>

Like I mentioned in my other message concerning #105, saving your events to the database most likely involves stringifying them into JSON and POSTing that data to your backend and have the backend store it in your database. HOW the backend does that (or, for that matter, whether or not you actually use a POST with JSON at all) is beyond the scope of this component; it has no opinion on how you should do that.
Likewise, reading back stored events into DaySpan-vuetify will most likely involve some GET request on your backend, which would collect event data from the database and send it back to the client. HOW this is done is again beyond the scope of this component. It only has one opinion:

If (and only IF) you want to use Parse.event to parse a simple, probably JSON.parse'd object into a DaySpan Event and Schedule object to add to a DaySpan calendar, DaySpan would really like it if you could make sure that that object contains a data member containing information like title, description, icon, et cetera and a schedule member containing schedule information which can be parsed by Parse.schedule.

Whether you agree and do it like that or roll your own parser for DaySpan Event and Schedule, when you and up with a collection of DaySpan Events you can use an :events binding on ds-calendar-app to automatically load that collection of Events into the calendar, or use DaySpan Calendar.addEvents (this.$dayspan.addEvents) to add either a collection of Events or indivudual Events programmatically.
By the way: app.vue isn't actually used when you use ds-calendar-app to display the calendar. It's only used for a standalone DaySpan-vuetify app. Its code serves mostly as an example, but will most likely not meet your requirements. (Like, saving to and loading from a database.)

You wouldn't. node_modules is managed by your package manager, like npm or yarn. It's unwise to touch anything in there. If you feel the need to change dayspan or dayspan-vuetify code, fork the repositories on GitHub and edit away. Changes you make to your own forks can be pushed back into GitHub (or your own repository provider). If you'd like to 'give back' to the main repository, you can use GitHub to create a pull request in this repository from your fork.
Just make sure you edit your package.json to point to your own repository instead of this one. (A good solution would be to make git submodule(s) in your project for your fork(s) and use a file reference like 'dayspan-vuetify': 'file:dayspan-vuetify-fork'. This tells your package manager to look for the 'dayspan-vuetify' package in the folder 'dayspan-vuetify-fork'.)


validHex Expression to Complex

Hi,
I've compiled the code but got an error on the validHex filter:

/Adafruit_BluefruitLE_OSX-master/Bluefruit Buddy/Utilities & Extensions.swift:127:50: Expression was too complex to be solved in reasonable time; consider breaking up the expression into distinct sub-expressions

let validHex = self.lowercaseString.characters.filter() {													// Strip out any non-hex characters 			return ($0 >= "a" && $0 <= "f") || ($0 >= "0" && $0 <= "9") 		}
Cheerse!

Hi svh. We've updated the project to work with the upcoming Swift 3.0 and resolved this error as well. Swift is still a work in progress so it can sometimes report unusual ghost errors like this one.
Thanks,
Kevin

It works like a charm 👍
Thanks for your quick response!

UR most welcome! Enjoy.

On Apr 25, 2016, at 10:47 AM, svh1985<EMAIL_ADDRESS>wrote:
It works like a charm 👍
Thanks for your quick response!
—
You are receiving this because you modified the open/close state.
Reply to this email directly or view it on GitHub https://github.com/adafruit/Adafruit_BluefruitLE_OSX/issues/1#issuecomment-214457566


Bump js-yaml from 3.14.0 to 4.1.0

Breaking change: Older safe* functions have been renamed.

Pull Request Test Coverage Report for Build 5919

9 of 10 (90.0%)  changed or added relevant lines in 8 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-0.007%) to 87.864%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

broker/core/app-config/src/index.js
1
2
50.0%

Files with Coverage Reduction
New Missed Lines
%

broker/data-access-layer/cf/src/TokenIssuer.js
1
98.55%

Totals

Change from base Build 5904:
-0.007%

Covered Lines:
9754

Relevant Lines:
10711

💛  - Coveralls


Wrong datatype in conllparser error message

If a coref has an error in it (for example, 'label', 'start' or 'end' is None), the assertion will fail, but the code that builds the assertion error message itself has an error. The lines (conllparser.py:352-356) are as follows:
assert (
                coref["label"] is not None
                and coref["start"] is not None
                and coref["end"] is not None
            ), ("Error in coreference " + coref + " in " + parsed)

Because coref is a dict, not a str, this will produce the error TypeError: can only concatenate str (not "dict") to str.
I can submit a pull request, but I'm not sure what the best information to include in the error message is.

We'd definitely welcome a pull request! In general it's best to include some information in the error message that helps the user identify the original culprit, i.e. as close to the original input as possible, without printing too much additional overhead.

Also, feel free to use f-strings, as we don't have to support Python 2 anymore!

Fixed by PR #242 - thanks again @shepdl !


Register Kernels as AutoGrad Ops

We have a quite a few custom autograd functions in the FOAK plugin

see kernels
also see fused ops

We should test compile with these autograds, and register them. Note that it is better to avoid what kernel-hyperdrive does as it registers them as custom_ops, see here,

for the kernel-hyperdrive it cant be helped as there is some stride issue
but if its possible, better to use this kind of wrapping.

If there are functions in autograds that need to be changed, the bench needs to be rerun for accuracy and performance checks

Using rms_layer_norm as an example, here is my attempt to list out a set of prescriptive tasks.

Look at all the different kernels that are attached to a model, e.g., llama. Go through them one by one.
For example, start with rms_layer_norm. In the above example, we replace the LlamaRMSNorm with the fast_rms_layernorm
The implementation of fast_rms_layernorm is found here, which is an autograd function Fast_RMS_Layernorm that as a triton kernel _rms_layernorm_forward in the forward, and _rms_layernorm_backward in the backward.
So to make this compilable, you must follow the pattern, to register it as a graph op. One way to do this is custom_op, as it is done here .
Using custom_ops can have overhead, so if its easier, we can do this as a first pass, but we need a clean way to disable the custom_op if compile is not enabled.
Finally, the more "standard" way to register ops is the torch.library.define pattern, see this issue for example.

torch.library.define("mylib::cvmm_triton", "(Tensor x, Tensor sel_index, Tensor sel, Tensor keys, ScalarType out_dtype, Tensor out_index) -> Tensor")

@torch.library.impl("mylib::cvmm_triton", "default")
def func()...

Lastly, after compile works you need to run the bench to test it

tox -e run_benches --  "1 2" "4 8" benchmark_outputs scenarios.yaml full-finetuning

You would add a compiled bench, so that we can bench the speedups that compile will give, in addition to the existing benches.


style(checkout): STRIPE-192 Add labels as floating

What? STRIPE-192
Add labels as floating
Why?
in order to change the style of the label in checkout customer, billing and payment inputs to be inside.
Ticket Related Checkout-SDK
Testing / Proof
https://user-images.githubusercontent.com/67211919/204382107-308552fc-608a-46da-aac2-a465bccdd768.mov
@bigcommerce/checkout @bigcommerce/payments

I think the CI check failed because of the code coverage, which should be fixed after rebase.
Is this PR achieving what you intended?

I think the CI check failed because of the code coverage, which should be fixed after rebase. Is this PR achieving what you intended?
Hi, @bc-peng
It is, there were some changes that fix the issue that affect BC front-end.