x/tools/cmd/goyacc: Please add "version" command or flag

What version of Go are you using (go version)?
bash-4.2$ go version
go version go1.12.15 linux/amd64

Does this issue reproduce with the latest release?
Can't tell, see below for details.
What operating system and processor architecture are you using (go env)?
go env Output
bash-4.2$ go env
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/prow/.cache/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/prow/go"
GOPROXY=""
GORACE=""
GOROOT="/usr/local/go"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build991634038=/tmp/go-build -gno-record-gcc-switches"

What did you do?
Ran goyacc -version:
bash-4.2$ goyacc -version
flag provided but not defined: -version

What did you expect to see?
I expected a version to be output.
What did you see instead?
I received an error message.
I'm working on a project that uses goyacc to generate files. There are differences in the generated files between versions. Experentially, I can tell that I am using a different version of goyacc in my local environment than is being used in my CI container because the output is different, but I have no way to tell what version is being used where because this flag is not defined.
I spent hours today trying to pin down the source of the differences, and which version of goyacc I needed to be using in order to get a clean build that matched CI. I ended up needing to use git bisect on the goyacc tool to determine a known good version. I even tried using readelf -x and strings on the goyacc binary to determine version information, but I could not find anything there.
Please consider adding a -version flag to the goyacc tool so it is clear and easy to determine differences in output between different versions of the tool. Thank you!

While there's nothing wrong with adding a version flag, I don't understand why you would care since the generated parser should be semantically the same. If the parser, as opposed to its source, has changed behavior, that's a genuine bug that we should fix.

I don't know what would keep the version flag up to date.  goyacc hardly ever changes: there were no changes between September 2018 and July 2020.  It seems risky to rely on human memory to update the -version output.

Hm, strange. I have a file that is being generated by goyacc that shows whitespace changes if I check out today's HEAD but not an earlier commit (~Jun. 16). I will see if I can bisect to a specific breaking commit tomorrow.
Honestly, I wouldn't mind if you hid a git commit in the ELF file or embedded some identifying version information directly the binary. Doesn't have to be a -version flag. I'm stuck because it's impossible to tell what source a shipped binary in a container was built from.

It's not a "breaking commit". Depending on the exact format of the yacc output (or almost any output, honestly) is not a great idea. It's what the generated code does that matters, not what it looks like.

When generated artifacts are being checked into source control, as is common, any diffs---semantic or not---result in a dirty build.
I don't mind having to update said artifacts when upstream tools make changes, but I do need to be able to predict and differentiate between what tools produce what outputs for reproducibility.

If you want to get a stable build for generators, you should to the following:
Run your generator by using go generate and a generate.go file containing :
//go:generate go run golang.org/x/tools/goyacc <options>

To keep the version of goyacc stable, also add a tools.go file to the top of your repository which contains:
//build +tools
include (
        _ "golang.org/x/tools"
)

This file serves to make sure the dependency to the tool is maintained in your module.
Finally add the following to your go.mod file
require golang.org/x/tools@v<desired_version>
replace golang.org/x/tools => golang.org/x/tools@v<desired_version>

The replace statement prevents inadvertent upgrades until you are ready to perform them.
This is a somewhat complex procedure to get a stable build using generators, but that is how it is supposed to work nowadays. Perhaps this procedure should be documented somewhere or explained in a Go Blog post?

This is one possible solution and I think it would certainly be worth documenting!
However, I don't think this addresses my concern. It avoids the problem, but it does not solve the problem. In that sense, it feels more like a workaround rather than a fix.
Consider that it is possible for there to be multiple versions of goyacc installed on a given system. As an operator using this tool, the installation of which I may or may not control (i.e. in this case I'm working with common CI images that I might not control the builds of), I would like some way to determine what version of the tool is being used without having access to the full build chain for the system.
A feature flag or embedded commit isn't a perfect solution for determining what source a given binary corresponds to (e.g. it doesn't address security concerns without e.g. byte for byte reproducibility), but it would be better than nothing. Golang itself and most other golang binaries that I've used have a -version flag or similar capability, so I didn't expect this to be seen as a novel request; it would be nice for that to be standardized across the toolchain.

I'm not opposed to adding a -version flag to goyacc.
But I don't understand how that will solve your problem.  It is in the nature of goyacc that essentially any change will change the generated file.  After all, the only thing that goyacc does is generate a file.  So if it essential that you avoid changes to the generated file, then your goal should be to use a consistent version of goyacc.  And the way to do that is to lock to a specific git revision, as @beoran suggests.
To put it another way, if a -version flag will solve your problem, then I suggest that you treat the git revision of your goyacc sources as the version of goyacc.

I see your concern abiut stable builds, but the nice thing about //go:generate go run module/tool is that, in conjunction with my other suggestions, the correct version of the tool will be downloaded by the go compiler and executed during the call to go generate. Like that the tool doesn't need to be installed in the CI or build image, only the go compiler is enough. Combine this with a makefile or even better, a magefile (https://magefile.org/) to coordinate the build.

@ianlancetaylor My problem is that:

I want to be able to determine what version of goyacc is being run,
because I encountered a situation where two different versions of goyacc on two different systems generated different output
but currently, it is not possible to identify the version delta from the binaries alone, because a given build of goyacc does not contain any version information.

Locking things to a specific git revision by vendoring the tool/putting limitations on it within the project codebase is a workaround. It does not solve the problem in other situations where goyacc is being used as an independent utility: for example, in a continuous integration environment, where goyacc is shipped as part of the base image independently from the code because it is used solely for verification and should not be included in deployed binaries.
(While I do appreciate the gomod advice, this is unfortunately an older project that is in the process of being deprecated that doesn't use gomod, so I wouldn't be able to apply that in this case!)

I wonder if we can build on go version -m here.

Like @ianlancetaylor said, it really seems like the solution is to run go version -m .../path/to/goyacc.


Allow setting BindExecutionOrder from ZenjectBinding component

Currently, the execution order of components that are defined with ZenjectBinding depends on the order of their parent game objects in the scene hierarchy.
Sometimes, it is desirable to arrange such game objects differently from the order they should be initialized (i.e. in alphabetical order). In that case, allowing to set BindExecutionOrder via a property of ZenjectBinding could be useful.

But what if you have multiple instances of the same MonoBehaviour in your scene, with different values for this ExecutionOrder property?  (right now, execution order can only be set by type not instance)

Sorry, it seems I hadn't thought about the problem thoroghly before raising the issue.
By the way, is there any conceptual limitation as to allow specifying the execution order per instance? If not, maybe we could revisit the issue when/if the situation with the execution order will be changed later?

No, there isn't any conceptual limitation.  We could add support for a per-instance execution order.  That would make sense as a feature and not be too difficult to support

That's a good news for me, and thanks for the clarification :smile:


Use union types instead of enums

This pull request is a proof of concept for the idea I described in #12432.
SourceState is an enum that is used quite often, so it is a good candidate for analysing the effect of such a change on the build size. The difference is not significant. I think the most common scenario is that OpenLayers modules are part of a bundle with quite standard configurations. In this case, the gzipped size is a bit smaller with this change than without. In other scenarios (non gzipped, build with mangling enabled for properties suffixed with _ like the legacy build), the build size is a bit larger after this change.

full build, gzipped, without mangling for properties suffixed with _:
before: 331,756 bytes
after: 331,740 bytes
full build, without mangling for properties suffixed with _:
before: 1,301,295 bytes
after: 1,301,407 bytes
full build, gzipped, with mangling for properties suffixed with _:
before: 326,060 bytes
after: 326,078 bytes
full build, with mangling for properties suffixed with _:
before: 1,242,378 bytes
after: 1,242,490 bytes

I'm putting this up for discussion. I like working with union types better than with string enums. What do others think? Is mangling common in build configurations? If so, is the marginal difference in build sizes something we should consider?
No need to merge this if others are not in favour of such changes. In that case we should maybe also close #12432.

Thanks for putting this up for discussion, @ahocevar.  It seems like this difference in build sizes is negligible.  Maybe you could provide a few benefits/drawbacks.  I assume it makes no difference from an app developer perspective.  If so, what are the differences in the lib dev experience?  I wonder about things like auto-complete or editor suggestions.

I also see nice suggestions in the editor:

I'm sold.

I added a commit that removes the GeometryType enum in favor of a union type.  If others like this direction, we could make changes across the board.

I stopped before reworking the event types, since we might want to have more discussion on the alternatives for those - mostly around their presentation in the docs (see https://github.com/openlayers/openlayers/issues/12432#issuecomment-913205829).

Giving my opinion for what it's worth: I think union types are preferable to enums because they require less code and incur less cognitive load to the reader. Besides, enums are a bit awkward IMO, since they exist at runtime but are only useful during static typechecking. All in all, union types makes our lives better and we should use them!

@ahocevar I did the change for extent/Corner and ol/source/WMTSRequestEncoding:

https://github.com/fredj/openlayers/commit/ef1309fd88694be746365fe9cdabd1cd45afab49
https://github.com/fredj/openlayers/commit/1f448e1ab6e8b9849841e7541d182ccd546a3b82

I you want I can push the commits to your branch

Thanks, @fredj. Yes, please add these commits to my branch.

The union types play nicer with the typescript type definitions, so I got a little too excited and tried to replace the ImageState enum which of course does not work as it is not a string enum and using the numbers directly is not really a good idea if we care about readability.
Do you have an idea on how to better deal with those?

I've wished those image states were strings many times.  Since they are not part of the API, we could change them to strings.  What do others think?

I need it. 👍
I am upgrading ol library from 5.3.0 to 6.11.0 and I have a lot of errors.

Regarding TypeScript there is also quite some effort put into another project (repository):
https://github.com/hanreev/types-ol
Wouldn't it make sense to join efforts?

Regarding TypeScript there is also quite some effort put into another project (repository): https://github.com/hanreev/types-ol
Wouldn't it make sense to join efforts?

We would welcome contributions from @hanreev or others on improving the type annotations in this repo.  I think that it is more sustainable to manage the types in the same place we manage the source.

@ahocevar - do you think there is work here that can be salvaged, or should we let this go?

I think it's better to start over.

Spending some time now to see if this can be salvaged.

I think this should be good again.

Finishing this now.

Rebased, conflicts resolved, ready for review again.


Existing label results to an error

I tried to sync repository labels in multiple repositories using a composite action with common source of label configurations.
The first repository succeeded just fine. The second which presumably had pre-existing labels with the same name failed with an exception.

It would probably be useful to get more output from the container, too.

Hello @rpsu,
I suspect something occuring.
Is the repository on which you face the error this one is public ? If so, could you point me to it ?
Thanks!

Unfortunately this repo isn't public but I can drop the same action thing to a public one.
What we have is a (private) repo composite action with labels.yml file in it, and we re-use the actoin from multiple repositories. But the issue we got looks like Github API saying "sorry, that label aready exists, you can not create additional labels with the same name."

well, there is only one repo so far that does not work with the action we have, a few tested. Not really sure how to debug it.

I think I got to the bottom of this. One of our repo labels was Bug but the config sync probably tested this in a case sensitive manner before trying to (re)create the label bug.


Feedback endpoint

@bermannoah @epintozzi @NZenitram
New endpoints for feedback: update and show. Also, feedbacks now come back with the solutions endpoint. Merge when ready!

Hella good to merge, thanks for making these!


Error using Deploy to Azure button when subscription already has free instance

I tried to use the template and got the error below. I tried to create a free tier resource and one already exists in my subscription.
When I clicked on view error details this is the error.
    "message": "Operation failed.

Closed with #54


docs: add sample dpdk app deployment

Change-Id: I918a997db461d71a32c4c65d7a389d9bbc096358

Can one of the admins verify this patch?

@zshi-redhat thanks for your review. Updates on its way

/lgtm


Updated documentation to setup Maps.

Fixes #1256
Changes: Updated documentation to help users setup maps for GooglePlay flavor of the app.
@the-dagger @mananwason
Please review.

@the-dagger
please review and merge


Notification chaining

Send more than one Notification at once.
The Controller already handles multiple Notifications, but they have to be send one by one.
Chaining would allow an simpler implementation for Notifications that use more than one Notification. Example: SideToCenter once and then CenterToSide once.
This needs some changes in the way the Notifications are called via the API.
Notifications should just call the .../api/notifications endpoint without the specific name and instead contain an extra attribute name which is then used to dertermine the specific Notification.
This allows for sending an array of Notifications in one single request.
Same could be done for Animations too. It makes no sense to chain them but for clarity sake.

The extra Attribute will be named effect


⚠ Bofrost.at has degraded performance

In a86d034, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 2152 ms

Resolved: Bofrost.at performance has improved in c1172c8.


docs: extend observability populating doc

Description

Extend observability populating doc
Minor formatting changes

Verification Steps

Checklist (Definition of Done)

[ ] All acceptance criteria specified in JIRA have been completed
[ ] Unit and integration tests added that prove the fix is effective or the feature works (tested against emulated and non-emulated OCM environment)
[ ] Documentation added for the feature
[ ] CI and all relevant tests are passing
[ ] Code Review completed
[ ] Verified independently by reviewer
[ ] Required metrics/dashboards/alerts have been added (or PR created).
[ ] Required Standard Operating Procedure (SOP) is added.
[ ] JIRA has created for changes required on the client side

looks good to me, it will be good to get a description on the parameters from @pb82 and @JameelB

Hi @pb82,
When you have some time could you take a look expand the documentation around this so I can include it?
Thanks

Ping @pb82 @miguelsorianod to get the status of the PR.

@machi1990 @miguelsorianod apologies, will get it done today

@machi1990 @miguelsorianod apologies, will get it done today

Thanks @pb82

Fixes https://github.com/bf2fc6cc711aee1a0c2a/ffm-project/issues/2

@machi1990 @miguelsorianod I've added the details for the Observability Parameters.

It will be good to get this content in once the question of @miguelsorianod on whether the observability resource repo needs to be a private repository has been answered.

bumping this PR...


Error when cloning jasper source

When I enter:
Git clone http://jasperproject/jasper-client/git. Jasper
It returns an error saying: cannot resolve host 'GitHub.com'

The correct command is:
git clone https://github.com/jasperproject/jasper-client.git

If that doesn't work, check your internet connection and your DNS settings.


Update to maistra 1.1.10

Signed-off-by: Kevin Conner<EMAIL_ADDRESS>Thanks submitting your Operator. Please check below list before you create your Pull Request.

Flat operator directory structure is obsolete from 23-rd of October 2019, only nested directory structure will be accepted.

New Submissions

[ ] Does your operator have nested directory structure?
[ ] Have you selected the Project Community Operator Submissions in your PR on the right-hand menu bar?
[ ] Are you familiar with our contribution guidelines?
[ ] Have you packaged and deployed your Operator for Operator Framework?

[ ] Have you tested your Operator in all supported installation modes?
[ ] Is your submission signed?

Updates to existing Operators

[X] Is your new CSV pointing to the previous version with the replaces property?
[X] Is your new CSV referenced in the appropriate channel defined in the package.yaml ?
[X] Have you tested an update to your Operator when deployed via OLM?
[X] Is your submission signed?

Your submission should not

[ ] Modify more than one operator
[ ] Modify an Operator you don't own
[ ] Rename an operator - please remove and add with a different name instead
[ ] Submit operators to both upstream-community-operators and community-operators at once
[ ] Modify any files outside the above mentioned folders
[ ] Contain more than one commit. Please squash your commits.

Operator Description must contain (in order)

[ ] Description about the managed Application and where to find more information
[ ] Features and capabilities of your Operator and how to use it
[ ] Any manual steps about potential pre-requisites for using your Operator

Operator Metadata should contain

[ ] Human readable name and 1-liner description about your Operator
[ ] Valid category name1
[ ] One of the pre-defined capability levels2
[ ] Links to the maintainer, source code and documentation
[ ] Example templates for all Custom Resource Definitions intended to be used
[ ] A quadratic logo

Remember that you can preview your CSV here.
--
1 If you feel your Operator does not fit any of the pre-defined categories, file an issue against this repo and explain your need
2 For more information see here

/ok-to-test

/lgtm

More infrastructure flakiness?
  type: https://quay.io/api/v1/error/invalid_token
  msg: 'Status code was 401 and not [200]: HTTP Error 401: UNAUTHORIZED'

/retest

It seems there are still backend issues, will retry later

/ok-to-test

/test CVP

/ok-to-test

@knrc can you look at error https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/origin-ci-test/pr-logs/pull/operator-framework_community-operators/2597/pull-ci-operator-framework-community-operators-master-deploy-operator-on-openshift/1326126917174169600/artifacts/deploy-operator-on-openshift/deploy-operator/container-logs/test.log?

@mvalarh It seems to be another backend problem, something in the tooling/checks is incorrectly translating the CSV.  Not a problem with the PR from what I can see.

Sorry, not CSV but package.yaml

@knrc i added test on pure k8s and i will see what the problem is more closer. Retesting it now. One can see results in Travis job.

@J0zi is looking it to this for openshit test failure

/test all

/test all

/test all


Problem with references not being shown correctly.

This issue has been moved from a ticket on Developer Community.

The tooltip that shows class reference (and other things) is quite buggy. See video.
In this video I am trying to see where my class is used throughout the project.
20231102-1508-57.3836484.mp4

Original Comments
Feedback Bot on 11/2/2023, 05:42 PM:
(private comment, text removed)
Feedback Bot on 11/13/2023, 05:08 PM:
(private comment, text removed)

Original Solutions
(no solutions)

Any UI issues with changing numbers are definitely a Roslyn issue not Razor 😛
Having said that, this is another manifestation of https://github.com/dotnet/razor/issues/6403 and https://github.com/dotnet/razor/issues/7213, due to the class name that a .razor/.cshtml file represents not being visible anywhere in user code, and so not being mappable when Roslyn finds it. Will need a Razor compiler change, but its difficult.


More Plotting Utilities.

Hi all,
This is a personal reminder to move the functions I have been using to generate test plots of the apertures and basis into `utils`. Given #157 I think that it would even make sense to move `plotting.py` outside of the `utils` directory if it does get fractured. What are your thoughts on this. For #157 I think that `utils` should only contain functions completely decoupled from `dLux`.

Plotting utilities have been decided against package wide.


Enhance 'Project Page' with JSON Animated Sticker, Unique Projects, and Box Structure

Description:
Add JSON Animated Sticker:
Integrate a JSON animated sticker. The necessary code can be sourced from other pages within this project.
Add More Unique Projects:
Include additional unique projects to enrich the variety and content.
Headline:
Ensure each project has a clear and engaging headline.
Box-like Structure:
Present each project within a distinct box-like structure for better visual organization and clarity.
Ex.

Thumbnail:
Incorporate a thumbnail image for each project to enhance visual appeal.
Centralize:
Centralize the content layout to ensure a balanced and visually appealing presentation.

Please assign under GSSOC.


Using stream-style-serialization: true for Assistants

Follow up issue on this PR https://github.com/Azure/azure-rest-api-specs/pull/27683
We should include the option stream-style-serialization: true in the tspconfig.yaml file in the spec.
Also remove enable-sync-stack: true as that is the default value for the flag.
I will add more details when I have them.

Please wait a bit for typespec-java 0.14.0 (it should set stream as default)
Current version of typespec-java probably pretty buggy (Alan and us fixed lots of issues since then -- but could be more -- this config is not widely uses it)
Not sure about "Polymorphic types" in the PR. "FunctionToolCall.java" disappeared?

I've tried converting tsp lib to stream-style-serialization (twice), latest here https://github.com/Azure/azure-sdk-for-java/pull/39287
Assistants appears good, but there is still issues on other libs.

blocked by this issue https://github.com/Azure/autorest.java/issues/2629
assistant has API to return a JSON array
    public List<OpenAIFile> listFiles(FilePurpose purpose) {
        RequestOptions requestOptions = new RequestOptions();
        if (purpose != null) {
            requestOptions.addQueryParam("purpose", purpose.toString(), false);
        }
        return listFilesWithResponse(requestOptions).getValue().toObject(FileListResponse.class).getData();
    }

And the de-serialization would have problem
https://dev.azure.com/azure-sdk/public/_build/results?buildId=3637219&view=logs&j=6c7f083d-ff58-51f0-96fc-ee802c31977a&t=14db3085-f2ce-5564-d924-c3d252922b7e&l=9677

Another issue https://github.com/Azure/autorest.java/pull/2556#issuecomment-2019478008

public List<OpenAIFile> listFiles

I think the units tests for this are passing, but maybe I am not understanding the issue you mention here @weidongxu-microsoft . Here we actually deserialize into a private type that has no generic parameters (FileListResponse) and then we simple expose on of its members with getData().

Another issue https://github.com/Azure/autorest.java/pull/2556#issuecomment-2019562804

I think it is due to incorrect typespec.

@weidongxu-microsoft , Could you elaborate a bit on what we would need to do differently if it's our definition that is wrong?

I think the unit tests for this are passing, but maybe I am not understanding the issue you mention here @weidongxu-microsoft . Here we actually deserialize into a private type that has no generic parameters (FileListResponse) and then we simple expose one of its members with getData().

Thanks. It should work fine if the wire type is not generic.


nuxtServerInit or fetch behaviour with req.vars

I'm using Passport.js for authentication. A variable is set on req, named req.user, containing the user data.
As follows, here it is the original store.js:
const nuxtServerInit = ({ commit }, { req }) => {
    if (req.user) {
        commit('SET_USER', req.user); // I got the user data, as expected
    }
};

But I need to get more data on every page. I think the nuxtServerInit method is the ideal location for that. So again on store.js:
const nuxtServerInit = async ({ commit }, { req }) => {
    if (req.user) {
        commit('SET_USER', req.user);
        let { data } = await axios.get('/api/account'); // To get more user related data, from another database table...
    }
};

On server.js:
app.get('/api/account', (req, res) => {
    console.log(req.user); // Just a test...
    res.json({ ok: true });
});

I got no user response on the log, when I called it from nuxtServerInit. I've also tried to get this user response from fetch method:
async fetch ({ store, params, req, res }) {
    console.log('fetch req.user', req.user); // I got the user with success here
    console.log('fetch store.state.user', store.state.user); // I got the user with success here too
    let { data } = await axios.get('/api/account');
},

Sadly, the result is the same (none) when I call req.user on /api/test from fetch. But when I try to call /api/test from mounted...
async mounted() {
    let { data } = await axios.get('/api/account');
},

...I got the user with success. The problem is that it happens after page rendering and I wanted it before it.
I don't know why req.user is passed on mounted, but not passed on nuxtServerInit or fetch methods. I don't know if it is a bug or if it is an intentional thing. Maybe I'm not thinking clearly. I'll appreciate any help with this question.

@josantana I think this the order/use of the middleware and nuxtServerInit is required in your case. You need to save the user in a cookie, otherwise the data will not be there. Check following example package, it will cover all your requirements: https://github.com/nuxt/example-auth0

You need to give the full URL in a iOS for nuxtServerInit (
http://localhost:3000/api/user).
Can you update and tell us if it works now?
On Mon, 27 Mar 2017 at 04:32, Dominic Garms<EMAIL_ADDRESS>wrote:

@josantana https://github.com/josantana I think this the order/use of
the middleware and nuxtServerInit is required in your case. You need to
save the user in a cookie, otherwise the data will not be there. Check
following example package, it will cover all your requirements:
https://github.com/nuxt/example-auth0
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/nuxt/nuxt.js/issues/455#issuecomment-289339738, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AA3OFLw_4d3GYm1T7lxsky4F8YhR2U8eks5rpx--gaJpZM4MpcLm
.

Hi @Atinux,
I haven't mentioned (sorry about that), but my axios was configured to set the baseURL as follows (on ~plugins/axios.js):
if (process.SERVER_BUILD) {
    options.baseURL = `http://${process.env.HOST || 'localhost'}:${process.env.PORT || 3000}`;
}

So, that was not the problem.
I've just managed to make it work by passing the session cookies received by nuxtServerInit or any middleware's request, to the api endpoint using axios get headers. Kind similar to what has been done on auth0 example (thanks for your help, @dohomi). ;)
I don't know if the problem is exactly timing, because I'm receiving the user information on nuxtServerInit, which is the first lifecycle moment. It is just not automatically sent on every request like it does on created(), mounted() or on user interaction.

@josantana indeed, on the server-side, you need to give the credentials to axios to make an authenticated request. On the client-side, when doing and XHR request, the cookies are sent automatically by the browser.
This is the dark side of SSR 😄


Refactor conversion of quad to Date on timeline in QuadConverter

Hi @erose!  In fixing up https://github.com/studentinsights/studentinsights/pull/119, I noticed there was some date conversion that we could pull into the QuadConverter helper object, since it's small and generic.  I did that here and then added some quick specs.

@erose this seem like a good change?

I APPROVE!

:+1:


[TEST] mutual_ptr

Current coverage is 96.23% (diff: 97.47%)

Merging #217 into master will decrease coverage by 0.26%

@@             master       #217   diff @@
==========================================
  Files            83         84     +1
  Lines          5746       5843    +97
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits           5545       5623    +78
- Misses          201        220    +19
  Partials          0          0

Powered by Codecov. Last update 09c183d...e5e7daa

Good attempt but far from correct.


Version bumps

Current dependencies on/for this PR:

main

PR #74   👈

This comment was auto-generated by Graphite.


Updated requirements.txt to match setup.py.

Consider setup.py reading from requirements.txt in the future.

LGTM
2 things that can be fixed separately:

Consider setup.py reading from requirements.txt in the future.

@bridadan I recall you knew why there was this duplication, we discussed this earlier. Shall we fix this as a separate PR.
@PrzemekWirkus versions of mbed-ls and greentea? I would assume using more strict versioning, for greentea >=0.2.x, <0.3.0 , similar for mbedls.

@0xc0170 I don't believe there's a good reason why there's duplication. Seems like we'd want to fix this in another PR.


[iOS] The app can't be downloaded on iOS devices

Expected Behavior
The user should be able to install the use the app
Actual Behavior

Steps to Reproduce the Problem

Install app from appcenter
Tap the app icon
Notice a popup is displayed and the app can't be installed

Specifications

Version: https://appcenter.ms/orgs/nventive-framework/apps/Application-Template-Canary/distribute/releases/20
Platform: iOS
Subsystem:

Can you test again with the latest buid?
Thanks!

@Romana-Nan @Iguins
Since Canary are not up yet, Romana please test Uno Application Template and not the Canary


experimentalDecorators ignored within nodejs project

I have walked through the wizard "Create a TypeScript project from existing nodejs code" with tsconfig.json containing the line: "experimentalDecorators": true within "compilerOptions". Still I get the experimental warnings for all decorators that have been used.
I tried the same tsconfig.json configuration and code in an ASP.NET 5 project and there it just works without the warning showing up.

OK after scrolling down all the errors and warning I now see a clear message: tsconfig.json is not supported in this project type. Closing the issue.

In VS today, if a project file exists, it take precedence on a tsconfig.json file as the main source of configuration/ build information.
This has been confusing to users trying to use tsconfig.json in existing projects. Issue https://github.com/Microsoft/TypeScript/issues/5287 is tracking  making this happen.
One thing to note, any property that you define today in tsconfig.json file has a matching MSBuild property that can be defined in your .*proj file. First unload the project file, right click, and edit, then in the project file define a property (note needs to be before the import of the .targets file):
<TypeScriptEmitDecoratorMetadata>true</TypeScriptEmitDecoratorMetadata>

for the complete list of MSBuild property names see: https://github.com/Microsoft/TypeScript/wiki/Setting-Compiler-Options-in-MSBuild-projects


TargetRubyVersion and embedded not working

app/controllers/categories_controller.rb:7:3: F: embedded document meets end of file (and they embark on a romantic journey)
(Using Ruby 2.3 parser; configure using TargetRubyVersion parameter, under AllCops)
=begin
^^^^^^
RuboCop version
Include the output of rubocop -V:
$ rubocop -V
0.42.0 (using Parser <IP_ADDRESS>, running on ruby 2.3.1 x86_64-darwin15)```

I don't quite understand the problem. More details would be useful.

@bbatsov Sorry, it's my fault, I have not run "rbenv rehash" when I upgrade ruby.


zwin32 stage3 compat

closes #102

Thanks! Looks good. I think we can remove support for stage1 (I'm already doing this in zaudio).

Requires upstream std lib changes: https://github.com/ziglang/zig/pull/12813

@michal-z I'm not sure about this change: https://github.com/michal-z/zig-gamedev/pull/104/commits/2523b456fdc658f24883b8f1366abd3580477396
What do you think?

Does below work?
pub const RAYTRACING_INSTANCE_DESC = extern struct {
    Transform: [3][4]FLOAT,
    InstanceIDAndMask: u32,
    bits: packed struct(u32) {
        InstanceContributionToHitGroupIndex: u24,
        Flags: u8,
    },
    AccelerationStructure: GPU_VIRTUAL_ADDRESS,
};

If not, let's go with your solution

Yeah that works :+1:
https://github.com/michal-z/zig-gamedev/commit/285a26dfbf0a9c57edcd5a1e6dde33d34260c4ff


Different upload-tail-file path

Added support for having a different upload path than download path for the public tails file. This supports the case where the upload path is a restricted, internal route to a central file distribution server and the download path is a public interface for a static file download. In our case using dockers, the upload path is an internal docker-resolved path and the public path is the controller application that links to the cloud-agent application.

Follow in https://github.com/hyperledger/aries-cloudagent-python/pull/829


Galley item hide properties/offers

Thank you for your contribution to the KodaDot NFT gallery.
👇 _ Let's make a quick check before the contribution.
PR Type

[ ] Bugfix
[x] Feature
[ ] Refactoring

Context

[x] Closes #4438
[ ] Requires deployment <>

Before submitting pull request, please make sure:

[x] My contribution builds clean without any errors or warnings
[x] I've merged recent default branch -- main and I've no conflicts
[x] I've tried to respect high code quality standards
[x] I've didn't break any original functionality
[x] I've posted a screenshot of demonstrated change in this PR

Optional

[ ] I've tested it at </bsx/collection>
[ ] I've tested PR on mobile
[ ] I've written unit tests 🧪
[ ] I've found edge cases

Had issue bounty label?

[x] Fill up your KSM address: Payout

Community participation

[ ] Are you at KodaDot Discord?

Screenshot 📸

[x] My fix has changed something on UI; a screenshot is best to understand changes for others.

Hey! Let's start with something simple:
* disable `o-tab-item` when there is no `MAKE_OFFER` event in `nft.events`

* show tooltip for rmrk if prefix rmrk

* show tooltip for disabled when no event

the tooltip is the heart of where it gets messy
in order to have tooltip on the tab header i need to provide o-teb-item with a header slot, agree?
because the header slot is a child of a disabled button generated by o-tab-item, it doesn't receive hover events
from there the road is set for all the css you see
maybe it's hackish, and i would love to have it simpler, but i see no alternative so far.
the real issue starts when extracting this into a component and needing to put o-tab-children where they belong
if you will permit it, i can push a working version where the required behavior is working, but it's not extracted into a component
but same as you, I don't like it, it should be in a component
should i uncomment the slot so you can see live what is happening?

the tooltip is the heart of where it gets messy in order to have tooltip on the tab header i need to provide o-tab-item with a header slot, agree?

Yes, I would rather have directly change GalleryItemTabsPanel to include <template #header>

all the css you see maybe it's hackish, and i would love to have it simpler, but i see no alternative so far.

please, let's try to avoid as much as possible css hack 🥺

the real issue starts when extracting this into a component and needing to put o-tab-item's children where they belong

Are you refering to your GalleryTab component? IMO, it's not needed
Btw, oruga-ui shouldn't be used in kodadot app, it was originally planned for histoire components.

Found it!
it happens when o-tab-item recieves no children
solution is to pass empty div as v-else
    <o-tab-item value="0" class="py-5">
      <template #header> Properties </template>
      <o-table
        v-if="nftMetadata?.attributes.length"
        :data="nftMetadata?.attributes"
        hoverable>
        <o-table-column v-slot="props" field="value" label="Trait">
          {{ props.row.value }}
        </o-table-column>
        <o-table-column
          v-slot="props"
          field="trait_type"
          :label="$t('tabs.tabProperties.section')">
          {{ props.row.trait_type }}
        </o-table-column>
      </o-table>
      <div v-else></div>
    </o-tab-item>

Sorry, I didn't knew tooltip wasn't working with disabled tab
Let me know if you find something, might be good to open an issue in oruga repo?

Sorry, I didn't knew tooltip wasn't working with disabled tab
Let me know if you find something, might be good to open an issue in oruga repo?

it's ok. I got it already
i'll submit working PR tommorow and we'll continue improving from that
Thank you :smile:

@roiLeo
this assignment is proving much more challenging then it appears on the surface... :tired_face:
I've switch to use oruga-ui tool tip and it working nicely in histoire
/home/luke/Videos/Screencasts/Screencast from 09-12-22 17:10:55.webm
but now not working in the app
by not working i mean not showing on hover
some more details that may help you help me...
if i always props  like this  in the histoire comonent
      <o-tooltip
        v-if="disabled"
        append-to-body
        always
        class="disabled-tab-tooltip"
        position="top"
        :label="disabledTooltip"
        @click.native.stop>
        {{ label }}
      </o-tooltip>

then when the page renders it looks

and then, when hovering over offers tab the tooltip "finds" it's position

any ideas?

@roiLeo
I think we're good to go
last thing i think is that the tooltip story doesn't really work :cry:
I found it hard to make the tooltip show there
can we mark is as leftovers?

Looks good so far

However, the inactive tab should not have a grey stroke, only the text color grey.

typeface of the tooltip doesnt look like its worksans

Last thing, you'll need to fix typo and it's good to go. I think we can increase the bounty for the work done here.

Done. Thank you :+1:

The message "Offers are not available on rmrk" does not appear when I hover over the offers on this nft

Not related with this issue, might be coming from #4463

The message "Offers are not available on rmrk" does not appear when I hover over the offers on this nft

Not related with this issue, might be coming from #4463

good to know, thanks for the clarification!

Ready to go isn't it?

Ready to go isn't it?

You might take a look at https://github.com/kodadot/nft-gallery/issues/4480#issuecomment-1346864543

Ready to go isn't it?

You might take a look at #4480 (comment)

I see... anything i can do to help resolve that?

Ready to go isn't it?

You might take a look at #4480 (comment)

I see... anything i can do to help resolve that?

Could you test when setting z-index: 100; on main if it's working as excepted and if there is no side effects?

@roiLeo the only side effect I've found so far is this:

can be fixed with a background-color

on a related issue... how do we deal with responsive font-size (to prevent tooltip from overflowing the screen on mobile) I expermineted and found this to work
    .o-tip__content {
        font-size: max(min(2vw, 0.9rem), 0.45rem);

but maybe this is not the preferred method?

It won't really be displayed on mobile, but yes it seems to me to be a good solution as long as you don't use px

@roiLeo the only side effect I've found so far is this:

* can be fixed with a background-color

mmm it actually has background already

works for me:

with main z-index:100 ?

@roiLeo is there anything more i need to do here?
do you want me to set z-index:100 as part of this PR?

@roiLeo is there anything more i need to do here? do you want me to set z-index:100 as part of this PR?

Would be top if you could fix https://deploy-preview-4460--koda-nuxt.netlify.app/rmrk/gallery/15527227-B02B8226FEE3EAA06D-ART-BRIDGE-0000000000000001?redesign=true hover not visible.
Next, wait for a 2nd approval and it's good to go.

pay 60 usd

😍 Perfect, I’ve sent the payout
💵 $60 @ 26.64 USD/KSM ~ 2.252 $KSM
🧗 EfmnRhHaQqfT3phm4cUCHCU3gFVDoSPR1U9WXzMRQBMqZ4L
🔗 0x8c938dfb0435482e592b2b853515271702f2ecb0137d265184abfafe01620d30
🪅 Let’s grab another issue and get rewarded!
🪄 github.com/kodadot/nft-gallery/issues

let's resolve conflicts @daiagi and merge it! :)

Done


Discord bot added to readme file

I created a Discord Bot with chatgpt package.

Looking good @onury5506 🙏


Add custom xpath parameters

The current py script just will not find the submit button on some webpages. Though it is nice to have an automatic finding of the DOM elements there are times this is not ideal. There should be an options where the user can directly specify the xpath of the element manually as an input parameter.

@george-haddad this is already possible. You can provide xpath in the auth.username_field, auth.password_field and auth.submit_field.


Fix for: Spkl writes connection string password to log file as a plain text when creating early bound types

When spkl is used to generate early bound types spkl writes parameters given to CrmSvcUtil into log file. These parameters include connection string and in many cases this will include password. This happens also when spkl interactively asks connection string or password from user.
This PR adds masking functionality into task responsible of creating early bound classes. Call to this masking functionality is added to the point in code which writes parameters into log. Passcode is masked with four stars. Otherwise parameter string going to log is left intact.

This is released to NuGet in https://github.com/scottdurow/SparkleXrm/releases/tag/spkl-v1.0.441

This is released to NuGet in https://github.com/scottdurow/SparkleXrm/releases/tag/spkl-v1.0.441


Problem: transaction(s) GQL endpoints don't have a "failureReason" resolver

This is required from the Granola-Team/mina-block-explorer

This is no longer an issue. Closing


Do not split --header flag into multiple values

Replaces pflag.StringSliceVarP with pflag.StringArrayVarP and thus
disallows multiple headers to be defined with a single flag.
Compare https://pkg.go.dev/github.com/spf13/pflag#StringSliceVar
for details.
The previous implementation did not allow header values to contain
a comma, this change fixes that.

Codecov Report

Merging #102 (a71835d) into master (54b8b0e) will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##           master     #102   +/-   ##
=======================================
  Coverage   72.33%   72.33%
=======================================
  Files           9        9
  Lines         589      589
=======================================
  Hits          426      426
  Misses        130      130
  Partials       33       33

Impacted Files
Coverage Δ

main.go
75.00% <100.00%> (ø)

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 54b8b0e...a71835d. Read the comment docs.


implement back to top button

Description
It fixes https://github.com/heybereket/oasis/issues/33
Included dependencies

react-scroll-up
Font Awesome

Screenshots

Awesome, thank you for the amazing PR! 🔥


Using mouse wheel to change virtual desktops

📝 Provide a description of the new feature
What is the expected behavior of the proposed feature?  What is the scenario this would be used?
Scrolling in empty space in the taskbar to switch to other virtual desktops, it's faster than using shortcuts.
If you'd like to see this feature implemented, add a 👍 reaction to this post.

I think that would create too much of:" Oh no. I have switched the desktop and I doesnt want it"

I think that would create too much of:" Oh no. I have switched the desktop and I doesnt want it"

Nah, I don't think that will happen, you don't use the mouse wheel very often.

@Raayib I often haventhe mouse im the taskbar when i scroll over a site. But i dont know what other people think

I think it's a good idea to be able to just remap the mouse wheel and alternate mouse keys for lots of things. Including swapping between taskbar apps.

@Sheshnuts This is a good idea. That would be a great addition to KeyboardManaget

I think remap mouse action to key stroke is a better, more generic item.

#3690 would be the tracking issue here

#3690 would be the tracking issue here

? Not sure what you mean. Tracking issue?


Changed formatting for noProxy flag

When installing Rancher via Helm and using the noProxy flag we need to properly format this flag.
So, instead of using --set noProxy="<IP_ADDRESS>/8\,<IP_ADDRESS>/8\,<IP_ADDRESS>/12\,<IP_ADDRESS>/16,.svc,.cluster.local"
We should use --set noProxy="<IP_ADDRESS>/8\,<IP_ADDRESS>/8\,<IP_ADDRESS>/12\,<IP_ADDRESS>/16\,.svc\,.cluster.local"

@bashofmann do you know who has merge auth for this repo?

@bashofmann do you know who has merge auth for this repo?

@edgarlanting that would be @catherineluse

@edgarlanting that would be @catherineluse

Thanks @bashofmann. @catherineluse would you be able to merge this one as one of our customers pointed this error out to us?

Thanks @bashofmann. @catherineluse would you be able to merge this one as one of our customers pointed this error out to us?


Differences in configuration spec to discussion at hackathon

I tried to update the configuration specifications as close to the hackathon discussions as close as possible. I made one (detail) change, that was discussed only with @FynnBe, but not with everyone:
To refer to the location of the definition with spec instead of source (which is the keyword we use for the implementation file). We thought this was helpful in order to keep these two concepts more separate from each other.
Also, I am not quite sure how we concluded to refer to URIs.
For now, I chose to handle this like so:

If the URI can only be a local path, it is specified as ./some/path/to/file/
If the URI can have several schemes, it is specified like so: file://./some/path/to/file, https://github.com/some_repo/some/file.
For dependencies, I chose to specify the dependencies as <dependency_manager>:<path to file with requirements>, e.g. conda:./environment.yaml.

If anyone is unhappy with this, feel free to propose a PR with changes.

This has been adapted in the meantime and is documented in https://github.com/bioimage-io/configuration/blob/6830274a11665c23431020a56c3c203d9599e90b/README.md


CELO Support dropped?

I noticed that as of this week'ish, querying for Celo tokens (https://li.quest/v1/tokens?chains=42220) returns nothing {"tokens":{}}.
Querying https://li.quest/v1/chains indicates that Celo is no longer supported.
Is Celo support dropped intentionally or is it mistake?

Ah I see, makes sense. Thanks 😊
I was relying on aforementioned endpoints to retrieve balances across chains. Do you plan re-enable retrieving token-balances despite not supporting bridging? Alternatively, do you plan to integrate with other Celo bridges?

Yes, we have plans to enable CELO in CelerIM bridge.
Also, you can retrieve token balances even if we don't provide you with chain information from the /chains endpoint. You just need to pass the correct parameters to the getBalance method.

Thanks alot, I'm also using your endpoints (https://li.quest/v1/tokens) for maintaining/tracking ERC20 addresses ;)


Control timeout of instant jump/instant repeat labels separately

Currently, all uses of 2-character search use the same timeout (exit_after_idle_msecs.labeled). However, I would like the timeout to behave differently when an instant jump is triggered. Ultimately, the config I would like to use is for normal labeled jumps to have no timeout (so I have time to process the labels that have been selected), but I would like instant jumps to behave like 1 character search (e.g. the labels disappear quickly).
My general reasoning is that for a normal 2-character search, I'm not done until after I've selected the final label, and once a final label is selected all labels disappear. When using an instant repeat, there will continue to be labels even after my cursor has reached its final destination, and I would like those to disappear automatically after a short timeout.
This is especially confusing for me when an instant jump is triggered, since it feels like lightspeed has exited already, but there are still phantom labels in case I choose to do an instant repeat after.
I'm not sure exactly what fits best with this plugin's philosophy, but one of these two things would definitely match my intuition:

Add a third exit_after_idle_msecs.instant timeout, that I can set to some small value
Use exit_after_idle_msecs.unlabeled for instant jumps.

Currently, all uses of 2-character search use the same timeout (exit_after_idle_msecs.labeled).

No, that is not entirely true. It is as simple and consistent as possible: if there are labels, the labeled timeout value applies, if there are no labels, only match highlights, then the unlabeled one. The kind of motion doesn't matter. For example, if you do a repeated 2-char search, but there are lots of matches (more than the number of safe labels), you can see that after the initial ; the labels will disappear, and change to match highlights. (Otherwise you could not exit safely.)
On the other hand, it is an intentional feature that the labels usually remain active even after ;. You might notice that there are too many matches to ;;;;;; through them, and want to use the label instead. What you're really asking for is a means for disabling this feature, I guess.
The problem is, I'm actually considering removing the timeout option entirely. It is a pretty useless gimmick actually: you most probably want to do something after a jump; the only exception I could think of is if one has some very big scrolloff value, and want to use a lightspeed motion as substitute for scrolling, but that sounds a bit silly for me, and is far from being compelling enough.

otherwise it is a bug

...and indeed it is the case! I'll look into it then ASAP.

FWIW, I discovered your simpler plugin, leap.nvim. I actually find it less disorienting for whatever reason. I think the combination of no graywash and repeat being opt-in with enter, rather than overloading the s label, an

I discovered your leap.nvim plugin, and tried it. I actually find it less disorienting, even with safe_labels. I think the combination of (a) no graywash and (b) repeat being opt-in with enter means that the jumping behavior is a lot more predictable. Surprisingly I don't even miss timeouts being gone there, due to the predictability.
So maybe leap.nvim is just more what I'm looking for, and my thoughts on lightspeed are less relevant? Either way, kudos for your great plugins.


Invalid path when searching for module

Getting started with mongoose, got stuck on this error while trying to find 'bson-ext' module.
In method find_package_json_with_name the location = currentModule.filename; variable is set to /node_modules/require_optional/index.js.
This casues error in method find_package_json where checking (location + '/package.json') results in invalid path /node_modules/require_optional/index.js/package.json
Using Node 8.4.0

+1 having same issue

+1 I am also having this issue

+1 any solution for this problem?

Getting this myself at the moment.

Any updates on that?

I start having this issue today. Any idea when this is going to be fixed. I just check and the change is not in master branch yet: https://github.com/christkv/require_optional/blob/master/index.js

Guys: I just fix the issue renaming the app folder. Not sure if this is related to VS Code or Node. Anyone has the same outcomes?

@juancarlosgarcia-arg I'm late to the party but there's a PR pending since last year. I am not sure if the original dev pays attention to this package anymore.
For late comers from Google: you can find the fix here I'd suggest to fork the module and add to the package.json your git version with the fix instead.


Add a ptipython --version call

blocked by ptipython supporting this ^_^ here's a failing build that shows that it's missing https://circleci.com/gh/lynncyrin/base-image/50?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link

Requires https://github.com/prompt-toolkit/ptpython/issues/310


Flexible discovery

I was not too happy about #58. We treat Puli in a special manner which feels weird. Also, I was not too happy about the logic in the fallback strategies.
This PR continues the work and replaces #58. The user has now the possibility to select what strategies to use and also add some more custom if there is a need for it.
Changes

Introduced Stratiegies that do the discovery. We try the strategies one by one until we find what we're looking for
many public functions are moved from ClassDiscovery to Strategy\Puli.
I've also created some new exceptions.
Added a simple cache mechanism
When Puli is missing we will not throw a \RuntimeException anymore. There will be a NotFoundException which has previous exception so you can see that Puli was missing.
The NotFoundException is moved from Http\Discovery to Http\Discovery\Exception

TODO
This is just a proof of concept. Do we like to go this way?

[x] Add tests
[ ] Update documentation

Huh, nice work. Haven't reviewed yet, but definitely will.
About strategies: not sure if we want discoveries to be made configurable. It's like creating a custom configuration layer which we don't want to.
I think the idea in the linked ticket was to use puli if available, fallback to our known resources if they are available. If this is what strategies intend to do (with a better abstraction) then it's fine, but we should keep it minimal: not too much extension points, etc

Thank you Mark.

I think the idea in the linked ticket was to use puli if available, fallback to our known resources if they are available.

Have a look at #58. It did that exactly. But it felt weird and it did not follow the Open/Close principle. But maybe you are correct, this is too many of extension points.

Discovery is for convenience, so I would rather follow KISS.

i like it. its indeed quite a thing you built here, but i think its clearly structured. i think there are too many public methods that are additional extension points we should not need. i think hard-setting the answer for a $type on the discovery itself should be all the configuration we allow. the whole discovery interface and implementations should have @internal annotations and never be interacted with. if you want to interact, have your application/library accept instantiated clients in addition to the discovery.
i also feel a bit unsure about the number of static methods. but as we don't want the discoveries to be configurable anyways, it should not matter.

FYI, If Puli is not installed AND we can't find a client:
For a client:

For a message factory:

i like this! the implementation looks good to me.

@Nyholm can you check the build failures please?

Yes of course. I started to fix the tests this morning but did not have time to finish.

sure, no hurry. just wanted to be sure we understand who is waiting on whom ;-)

Yooho. Tests are passing. I added a fix for the composer/puli thing.
Please feel free to make suggestions on the tests. PHPSpec is not my strongest suit.

Let me see if I understand well: we have x strategies which all return some resources, which we cache and then use this cache to find the actual resource?

Thank you for your review.
We work with a strategy at the time, if a strategy return a "candidate" were its dependencies are met we have found a class and we will return without investigating further strategies. This candidate is saved to the cache. The cache is only read from the second time we ask for the same resource.
The great thing about the strategies is that we can easily support Puli2 or WhatveverDiscovery without editing any existing class.

This is cool, I like it, great job @Nyholm.
I've added a few more comments besides the CS ones from earlier. Can you please take a look at them and at least answer them? If you have no time, I can do the improvements I suggested, but I need your comment to make sure I understood everything right. Thank you!

Thank you. I've address all your comments, either with a reply or a code change (or both).

This is still an open question from my POV: https://github.com/php-http/discovery/pull/59#discussion_r68460108

Great, I am happy with the current state. Can you please add some change log and squash?

Awesome. I'll must go afk now. Please feel free to make some changes or merge this when the tests passes.
Thank you for the reviews!


BrokenPipeError

Hello, I am a student in Japan.
Your research is very interesting.
I actually tried to run your prepared code , but
I got the following error
Is there any solution for this?
"Function rng.randint(low, [high, size, dtype]) is marked as deprecated "
-= Games #[799572887,<PHONE_NUMBER>,<PHONE_NUMBER>,<PHONE_NUMBER>,<PHONE_NUMBER>] =-
Traceback (most recent call last):
File "test_cooking_afk_batch.py", line 136, in
main()
File "test_cooking_afk_batch.py", line 117, in main
assert word in "{} {} {}".format(obs_, inv_, desc_), word
AssertionError: cook
Exception ignored in: <function AsyncBatchEnv.del at 0x7f2029906e60>
Traceback (most recent call last):
File "/home/yoneda/anaconda3/envs/afk/lib/python3.7/site-packages/textworld/envs/batch/batch_env.py", line 196, in del
self.close()
File "/home/yoneda/anaconda3/envs/afk/lib/python3.7/site-packages/textworld/envs/batch/batch_env.py", line 189, in close
env.call("close")
File "/home/yoneda/anaconda3/envs/afk/lib/python3.7/site-packages/textworld/envs/batch/batch_env.py", line 63, in call
self._pipe.send(("call", method, args))
File "/home/yoneda/anaconda3/envs/afk/lib/python3.7/multiprocessing/connection.py", line 206, in send
self._send_bytes(_ForkingPickler.dumps(obj))
File "/home/yoneda/anaconda3/envs/afk/lib/python3.7/multiprocessing/connection.py", line 404, in _send_bytes
self._send(header + buf)
File "/home/yoneda/anaconda3/envs/afk/lib/python3.7/multiprocessing/connection.py", line 368, in _send
n = write(self._handle, buf)
BrokenPipeError: [Errno 32] Broken pipe
Exception ignored in: <function _ChildEnv.del at 0x7f20299069e0>
Traceback (most recent call last):
File "/home/yoneda/anaconda3/envs/afk/lib/python3.7/site-packages/textworld/envs/batch/batch_env.py", line 87, in del
self.call_sync("close")
File "/home/yoneda/anaconda3/envs/afk/lib/python3.7/site-packages/textworld/envs/batch/batch_env.py", line 75, in call_sync
self.call(*args)
File "/home/yoneda/anaconda3/envs/afk/lib/python3.7/site-packages/textworld/envs/batch/batch_env.py", line 63, in call
self._pipe.send(("call", method, args))
File "/home/yoneda/anaconda3/envs/afk/lib/python3.7/multiprocessing/connection.py", line 206, in send
self._send_bytes(_ForkingPickler.dumps(obj))
File "/home/yoneda/anaconda3/envs/afk/lib/python3.7/multiprocessing/connection.py", line 404, in _send_bytes
self._send(header + buf)
File "/home/yoneda/anaconda3/envs/afk/lib/python3.7/multiprocessing/connection.py", line 368, in _send
n = write(self._handle, buf)
BrokenPipeError: [Errno 32] Broken pipe
Exception ignored in: <function _ChildEnv.del at 0x7f20299069e0>
Traceback (most recent call last):
File "/home/yoneda/anaconda3/envs/afk/lib/python3.7/site-packages/textworld/envs/batch/batch_env.py", line 87, in del
self.call_sync("close")
File "/home/yoneda/anaconda3/envs/afk/lib/python3.7/site-packages/textworld/envs/batch/batch_env.py", line 75, in call_sync
self.call(*args)
File "/home/yoneda/anaconda3/envs/afk/lib/python3.7/site-packages/textworld/envs/batch/batch_env.py", line 63, in call
self._pipe.send(("call", method, args))
File "/home/yoneda/anaconda3/envs/afk/lib/python3.7/multiprocessing/connection.py", line 206, in send
self._send_bytes(_ForkingPickler.dumps(obj))
File "/home/yoneda/anaconda3/envs/afk/lib/python3.7/multiprocessing/connection.py", line 404, in _send_bytes
self._send(header + buf)
File "/home/yoneda/anaconda3/envs/afk/lib/python3.7/multiprocessing/connection.py", line 368, in _send
n = write(self._handle, buf)
BrokenPipeError: [Errno 32] Broken pipe
Exception ignored in: <function _ChildEnv.del at 0x7f20299069e0>
Traceback (most recent call last):
File "/home/yoneda/anaconda3/envs/afk/lib/python3.7/site-packages/textworld/envs/batch/batch_env.py", line 87, in del
self.call_sync("close")
File "/home/yoneda/anaconda3/envs/afk/lib/python3.7/site-packages/textworld/envs/batch/batch_env.py", line 75, in call_sync
self.call(*args)
File "/home/yoneda/anaconda3/envs/afk/lib/python3.7/site-packages/textworld/envs/batch/batch_env.py", line 63, in call
self._pipe.send(("call", method, args))
File "/home/yoneda/anaconda3/envs/afk/lib/python3.7/multiprocessing/connection.py", line 206, in send
self._send_bytes(_ForkingPickler.dumps(obj))
File "/home/yoneda/anaconda3/envs/afk/lib/python3.7/multiprocessing/connection.py", line 404, in _send_bytes
self._send(header + buf)
File "/home/yoneda/anaconda3/envs/afk/lib/python3.7/multiprocessing/connection.py", line 368, in _send
n = write(self._handle, buf)
BrokenPipeError: [Errno 32] Broken pipe
Exception ignored in: <function _ChildEnv.del at 0x7f20299069e0>
Traceback (most recent call last):
File "/home/yoneda/anaconda3/envs/afk/lib/python3.7/site-packages/textworld/envs/batch/batch_env.py", line 87, in del
self.call_sync("close")
File "/home/yoneda/anaconda3/envs/afk/lib/python3.7/site-packages/textworld/envs/batch/batch_env.py", line 75, in call_sync
self.call(*args)
File "/home/yoneda/anaconda3/envs/afk/lib/python3.7/site-packages/textworld/envs/batch/batch_env.py", line 63, in call
self._pipe.send(("call", method, args))
File "/home/yoneda/anaconda3/envs/afk/lib/python3.7/multiprocessing/connection.py", line 206, in send
self._send_bytes(_ForkingPickler.dumps(obj))
File "/home/yoneda/anaconda3/envs/afk/lib/python3.7/multiprocessing/connection.py", line 404, in _send_bytes
self._send(header + buf)
File "/home/yoneda/anaconda3/envs/afk/lib/python3.7/multiprocessing/connection.py", line 368, in _send
n = write(self._handle, buf)
BrokenPipeError: [Errno 32] Broken pipe
Exception ignored in: <function _ChildEnv.del at 0x7f20299069e0>
Traceback (most recent call last):
File "/home/yoneda/anaconda3/envs/afk/lib/python3.7/site-packages/textworld/envs/batch/batch_env.py", line 87, in del
self.call_sync("close")
File "/home/yoneda/anaconda3/envs/afk/lib/python3.7/site-packages/textworld/envs/batch/batch_env.py", line 75, in call_sync
self.call(*args)
File "/home/yoneda/anaconda3/envs/afk/lib/python3.7/site-packages/textworld/envs/batch/batch_env.py", line 63, in call
self._pipe.send(("call", method, args))
File "/home/yoneda/anaconda3/envs/afk/lib/python3.7/multiprocessing/connection.py", line 206, in send
self._send_bytes(_ForkingPickler.dumps(obj))
File "/home/yoneda/anaconda3/envs/afk/lib/python3.7/multiprocessing/connection.py", line 404, in _send_bytes
self._send(header + buf)
File "/home/yoneda/anaconda3/envs/afk/lib/python3.7/multiprocessing/connection.py", line 368, in _send
n = write(self._handle, buf)
BrokenPipeError: [Errno 32] Broken pipe

Thanks for reporting. It seems there was an assertion error in the textworld code. I'll have a look at this issue today. (tagging @xingdi-eric-yuan and @IouJenLiu for visibility).


remove images and GC

Hello all
I just installed the newest protus on github ( https://github.com/SUSE/Portus).
there is "Delete image" link located on the top right corner of the page, and I can delete images. but when I want garbage-collect on registry container using:
bin/registry garbage-collect [--dry-run] /etc/docker/registry/config.yml
it returns:
configuration error: open garbage-collect: no such file or directory
Usage:
registry  [flags]
Flags:
-h, --help=false: help for registry
-v, --version=false: show the version and exit
actually the version of docker registry used in the latest released Portus is 2.3.1 and sounds like garbage-collect is avalible on registry 2.4. is that correct?
Based of this link (http://port.us.org/features/removing_images.html) the version of 2.1 is avalible where can I download it?
Thanks a lot

Just in case you havn't found out yourself already:

actually the version of docker registry used in the latest released Portus is 2.3.1 and sounds like garbage-collect is avalible on registry 2.4. is that correct?

Yes, you have to use registry 2.4 or newer. registry 2.3.1 does not contain a garbage collector.

Based of this link (http://port.us.org/features/removing_images.html) the version of 2.1 is avalible where can I download it?

Version 2.1 was released on september 30th, the current version is 2.1.1. However, if you were able to delete images from the web ui you probably used a current git version so just changing the registry version for a quick test should be sufficient.


Feat/update ftx spot connector

Before submitting this PR, please make sure:

[x] Your code builds clean without any errors or warnings
[x] You are using approved title ("feat/", "fix/", "docs/", "refactor/")

A description of the changes proposed in the pull request:
Upgrade of FTX spot connector to the latest standards.
The connector has been transformed in a pure Python connector, and is now a subclass of ExchangePyBase.
All unit tests for it have been implemented.
The PR also includes a change to remove the reference to the configuration map from the AsyncThrottler, that was causing issues during tests runs because the whole Hummingbot connectors configuration was being loaded (and hence the PairFetcher was executed)
It also includes an improvement in the logic that generates client order ids, to reduce the possibility of having repeated ids in different bot instances using the same API keys and trading the same pairs.
Tests performed by the developer:
All unit tests are passing in green.
Tests Summary:

Clone and install API keys : ok
Checking the balance output and cross verifying with exchange : ok
Create and import strategy : ok
Start the strategy and run status —live : ok
Data integrity ( best price, order book, and last price) : ok
Filled event : ok
Check history : ok
Verify fees paid : ok
Test fast and long refresh rate : ok
Test multiple levels : ok
Order cancelation and creation : ok
Testing hanging orders behaviour : ok
Flagged issues are resolved

Tips for QA testing:
Please perform a standard connector test for FTX spot. Check that all events are being received by the connector (order book is kept correctly synchronized, PNL is calculated correctly for fills and partial feels, etc).
This PR comes from https://github.com/CoinAlpha/hummingbot/pull/278
PRP: https://snapshot.org/#/hbot-prp.eth/proposal/0x7da6ea02f0b14794d94fcd464ad8d4907547067b40f77417683770e2dcd5755c

@aarmoa Could you please resolve branch conflicts?

@arnelhbot thank you for that. I have updated the branch with the latest changes from development branch. The issue should be fixed now.


Can not generate "Source Explorer"

Suddenly can not generate "Source Explorer", prompt "Open a source file from a local Chromium enlistment or form a directory containing a "vs-chromium-project.txt" file.". But the project dir has been added "vs-chromium-project.txt" file, Chromium works is the same. Vs tool version is vs2013 & vs2015.

Is this still happening? Can you try the latest version 0.9.28 and upload the log files stored in %LOCALAPPDATA%\VsChromium, as this may help diagnose the problem.


Controller logging consistency

We use centralized k8s log collectors (try and fluentd, and filebeat) with store logs to Elasticsearh.
Agones controller send field gs sometimes as empty string (""), sometimes as dict ("gs":map[string]interface {}{"metadata":map[string]interface {}{"generateName":....)
Filebeat drop whole log string with wrong type, Fluentd drop only fileds with type conflicts.
Bug: wrong logging architecture

We definitely have places where "gs" is the full gameserver, and I think we also have "patch" in admission controllers.
I feel like we should relegate full json dumps to Debug() level logging, and cleanup the "gs" logs to just output the name of the GameServer -- which is what we have in most(?) places.

Looking into this more - we should likely be using the FluentdFormatter formatter:
https://github.com/joonix/log
Change to be made here:
https://github.com/GoogleCloudPlatform/agones/blob/master/pkg/util/runtime/runtime.go#L37


feat: attach component custom props on initialize without ToppyOverlay

:tada: This PR is included in version 2.2.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Login via Github and IDIR in browser codespaces

Description
As a developer
I want to be able to login via keycloak thru GitHub and IDIR
So that I can develop for the Digital Marketplace without being tied to an IDE
Tasks (How)

[ ] Determine if feasible to login via keycloak in codespace browser
[ ] Implement code to facilitate logging in with GitHub and IDIR

Codespaces doesn't currently support this


fix widget dragging bug

Description
fix bug when drag widget, some widgets stay under it, but some - above ti
Testing
try drag widget
Risk
No major changes
Do you agree with those?

[] I agree to follow the Contributing guidelines
[] I agree to follow the terms of the Code of Conduct

Need to open a task


Fixed response failure for unsupported encoding

FastHttpUser fails the request if the response can't be converted to text. For example, if the response headers have application/octet stream as response header there is no proper encoding to convert it back to text.
This PR allows the request to succeed by,

Check response.content is null for failure
Before attempting to convert to text check if encoding is not None.

(We shall log warning to prompt that response cannot be converted to text and will not be available as a json)

Thx!


GSE just totally stopped working yesterday[BUG]

All my macros are suddenly dead on all 3 of my PC that I had wow installed on, I thought maybe 1 glitched or had issues but no macros work on all 3 separate pc’s? I totally whipped one clean of wow, deleted folder and anything to do with wow, reinstalled everything and still nothing…
Newest version of GSE
Windows 10
GSE.lua.txt
I am not the only one with this issue, we opened a post on wowlazymacros and another person there also posted they were having the same problem: https://wowlazymacros.com/t/did-blizzard-break-gse/35885
Thanks for your help Tim...

GSE Works fine for me.  I'm moving this to the discussion area.


Update Route.php (PHP 8.2 Compatible)

We really need this change, because the package generates warnings on PHP 8.2 Can you check why the check failed?

Thank you @jmarcher tagged as [v4.1.2]


Ort script gets lines missing, but database stores lines added

The naming of the columns in the database suggests that it will store the lines in the database that aren't in the local under db_lines and the lines that are in the local, but not in the database under local_lines.  To keep consistent with how the ort script handles these differences, the naming and usage should change to be db_lines_missing and local_lines_missing in the database and something similar in the JSON submitted to the web API.

See 6902537f43e908c49c178d51fe961ed8af370dea and 6902537f43e908c49c178d51fe961ed8af370dea

This is a fairly simple naming update and hasn't affected any of the functional parts of the code.


Add babel-polyfill for better ES6 support

See http://babeljs.io/docs/usage/polyfill/. Adds 30KB gzipped to the build, which isn't ideal. We can look into including more specific polyfills later. This fixes the campaign item view in IE for now. And is generally important since we don’t have CI notifying us of breakages like lacking Array.find() support in IE10, so very easy to introduce regressions there unless we have the polyfills in place.
Incidentally Sam had already added polyfill via https://github.com/silverstripe/silverstripe-framework/commit/b088efc6f9554b4750cb52626c3fcbf8b6a3f6db, but hadn't included it in the build.

Haha. Sam and I picked up the same thing. We can try using tree-shaking or a library specific optimisation method if needed (like only including this in IE).


If I want to print 2 pages on 1. But it prints the 2 pages in the size of 4 pages

Hi,
im using cups 1.7.5 on a pi3.
It worked great, but since 2 weeks i got this issue.
I want to print 2 pages on 1 page.
But the result is, that the 2 pages have the size, like when i would like to print 4 pages on 1.
So each page has not 50% size on the page, it has 25%.
If I just print one page on one page it works great.
If I connect the printer to my pc, it also works with 2 on 1 .
I rebooted and of course reinstalled my printer. No change.
The settings in word are correct or in the chrome browser.
So there must be an issue with cups.
Any ideas how to solve it ?

How did you send the job? Did you use any GUI application with its print dialog? Which one if so?
Or did you print by the command line?
Did you print from your pi3 system or from an external client? Which OS, CUPS, cups-filters version do you have on the client?
Which cups-filters version are you using on the pi3?
Which options did you set for the job? Which option default settings has you print queue? Do you have a ~/.cups/lpoptions file?
Which printer model are you using? How did you create your print queue? Can you attach the printer's PPD file?
Please set CUPS to the debug mode (cupsctl --debug-logging) do the print job again and attach /var/log/cups/error_log. If you print from a client which also runs CUPS, please set CUPS on both client and server into debug mode and attach /var/log/cups/error_log of both client and server.

Hi, will try to get all Informations.
But the Thing is, i changed nothing. No
Updates , Upgrades
I printed with word 2017 on mac os high Sierra.
The Printer is Directly Connected to my pi3.
It is a HP laserjet p1005

I have released cups-filters 1.21.4 now which contains fixes against duplicate execution of page management options. Also the newest CUPS (2.2.9) contains appropriate fixes.
Can you please test with these version whether this also covers your issue?

No response from the original poster, so I assume that my changes have fixed it. Closing ...


docs(README.md): fix broken links in 'Build Instructions' section

Notice

[x] I understand the code that I have edited, and have the means
to test it before making changes to Concord.

What?
This pull request fixes the broken links in 'Build Instructions' section of README.md.

Thank you!!


Fix bug in epoch second parsing and improve tests

Motivation and Context
As preparation for removing our dependency on chrono, I created a more thorough test suite for the date-time formatting code. Through this, I discovered the epoch seconds parsing has an accuracy bug due to using f64 for its parsing.
This PR adds the improved test suite, fixes the epoch second parsing issue, and removes trailing zeros from the fraction in HTTP date formatting.
Testing

Formatting/parsing test suite generator that compares against a stable implementation (the JDK)

Checklist

[x] I have updated CHANGELOG.md
[x] I have updated aws/SDK_CHANGELOG.md if applicable

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

I added a fuzz test suite for the date time parsing functions, and this revealed that the http-date and date-time parsers currently panic on bad input. Since some of these panics are happening inside of chrono, I'm going to fix them in a follow up PR that removes our dependency on it.


android: Fix adb background command PID detection

Sometimes the reported PID for a background command would be reported
incorrectly. This was due to an assumption that the lowest PID
was always the command we were looking for, however this is not always
true and PID's could be recycled resulting in the PID of the search
command being reported instead.
To avoid this, filter the reported processes on the the grep command
itself to eliminate matching processes in the system and improve
detection of the PID of the desired background process.

Was the problem really because of PID reuse or just that if the command terminates before the lookup of its PID, the current code would just get the PID of the grep command ?
In any case, that's a good catch, thanks for debugging that.

Was the problem really because of PID reuse or just that if the command terminates before the lookup of its PID, the current code would just get the PID of the grep command?

Perhaps reuse might not apply in this case and there was some delay introduce in spawning the initial command instead, however the result was the reported PID for the background command was returning the PID of the command used to find the PID rather than the background progress itself e.g.
In [13]: bg = ta.background("sleep 10")
    ...: print('PID: {}.format(bg.pid))
    ...: print('PID Found ', str(bg.pid) in ta.execute("ps"))

23534 /system/bin/sh -c (/data/local/tmp/bin/busybox ps -A -o pid,args | grep BACKGROUND_COMMAND_UUID=704c9a73dabc46e2af5da97d0abe6b61); echo "\n$?"
23536 /system/bin/sh -c BACKGROUND_COMMAND_UUID=704c9a73dabc46e2af5da97d0abe6b61 sh -c 'sh -c '"'"'export PATH=/data/local/tmp/bin:$PATH && export LC_ALL=C && sleep 1'"'"'  '
23539 grep BACKGROUND_COMMAND_UUID=704c9a73dabc46e2af5da97d0abe6b61

PID: 23534  # Should be: 23536
PID Found: False

This explains the "Process Not found" errors when trying to kill the processes as the grep had already completed, along with the leftover sleep processes preventing progress.

@marcbonnici I've updated my async PR with a patch that fixes that without needing to deal with complex redirections: https://github.com/ARM-software/devlib/pull/569/commits/b9671948d4a48912db009bdbf5af76e541092d75


UPSTREAM: : update go.mod packages

Description of your changes:

Fixing go.mod dependencies/packages related snyk CVEs.
Imported my fork in synk and made sure the relevant CVEs were fixed with this update.
Added a replace block for each CVE with the fix version suggested by Snyk.
Ran go mod tidy.
Pushed changes to my fork and ensured the CVEs were resolved.
Also executed a go build . locally and ensure it doesn't return any errors.
These updates resolve 24/27 Snyk High Level errors for the go.mod.
Additionally, also bumped go version to 1.20
Testing instructions
Pull the changes in this PR, push them to your fork's main (make sure the main branch of the fork is in sync with odh-io/argo-workflows main). Import your fork in snyk and verify.

/approve

/hold

/unhold


syntax error while building in windows

While running npm run build in Windows, command rm is not recognized at:
rm -rf dist/playground && mkdir -p dist/playground/public && npm run playground:build-assets && npm run playground:build-ts && ts-node scripts/playgroundPostBuild.ts
Possible solution:
Create OS agnostic build command/s.

Thanks @subedigaurav. You're right that this need to be changed into OS ognostic build command such as https://github.com/xFAANG/askql/blob/master/scripts/preBuild.ts#L5

Hint: As YonatanKra mentioned, 'Under scripts/utils there's a removeRecursive util that is OS agnostic'.

Hi @mhagmajer. I would like to take on this issue.

Sure @develper, it's yours :)

@develper , congrats for your first contribution! 🙂  🚀
How did you like it?
Would you have any feedback for us on what to improve in the process?

@develper good job on the issue. 🚀
@czerwinskilukasz1 there is still an issue with the following command while building:
tsc && mv dist/playground/public/assets/js dist/playground/public/js
Maybe this could be made OS agnostic as well?

Thanks @czerwinskilukasz1 and @subedigaurav ,I had an amazing experience.
I was able to follow contributing guidelines without any hassle. It is well documented. However, if I find any improvement later I will let you know.
Also, feel free to tag me on an issue which is beginner friendly(like me).

@develper good job on the issue. 🚀
@czerwinskilukasz1 there is still an issue with the following command while building:
tsc && mv dist/playground/public/assets/js dist/playground/public/js
Maybe this could be made OS agnostic as well?

@subedigaurav , thanks for your suggestion.  I would say mv is OK to stay if Windows, Linux and MacOS all support it. It seems they do, so I would leave it how it is now. However, there is currently 151 other issues to contribute to. Let me know if you would like a suggestion, which are good ones for now.

Thanks @czerwinskilukasz1 and @subedigaurav ,I had an amazing experience.
I was able to follow contributing guidelines without any hassle. It is well documented. However, if I find any improvement later I will let you know.

@develper, thanks for your kind words. For sure we have room to improve, we are eager to hear your feedback.

Also, feel free to tag me on an issue which is beginner friendly(like me).

Great, let's make it happen :)   I am wondering if you like parsers (we use PEG.js), if so, how would you like this one: https://github.com/xFAANG/askql/issues/51, and if you are more into just regular code, maybe you will like this: https://github.com/xFAANG/askql/issues/250?

@czerwinskilukasz1, #250 sounds good to me.


rosdistro sync, Mon Jun 17 17:12:45 2019

Superflore yocto generator began regeneration of package(s) ['action_msgs'] from ROS distribution(s) dashing on Meta-ROS from commit fac1280676138b333bc34b8802b3147c4820c174.
To reproduce this PR, run the following command.
superflore-gen-oe-recipes --upstream-repo https://github.com/herb-kuta-lge/meta-ros2 --upstream-branch thud-draft-superflore-test --ros-distro dashing --only action_msgs

Regenerated: '['action_msgs']'

Draft; closing it.


Kivy blurs pixels in Windows when UI scaling is enabled

In Windows 10, my resolution is 1920x1080 and UI scaling is set to 175%. With these settings, (and possibly others) the pixels in kivy apps appear blurred around the edges. Not sure if this is true across all Windows versions or just Windows 10.
Talking about this in IRC led me to discover that using kivy.metrics.dp(1) returns 1.0 and should ((unless I am mistaken) return 1.75 in this case.
Kivy needs to be made sensitive to where that information is exposed in the Windows API to fix this, so that this type of scaling can be applied with the nearest neighbor algorithm to keep the pixels sharp.
I can supply code that reproduces this issue if it will help.
As a temporary workaround, I have checked the "Disable display scaling on high DPI settings" option in the Windows Compatibility settings on my python.exe for all users. That results in sharp unscaled pixels. It would still be nice to get this fixed so we can have sharp scaled pixels.

I am having the same problems. See http://stackoverflow.com/questions/38049695/kivy-gui-does-not-adapt-to-customize-display-on-windows?noredirect=1#comment63553443_38049695
What is the status for Windows as it seems to be resolved for OsX?

Still no updates huh? Having issues with this on Win10 currently.

I also encountered the same problem on Win10. From the metrics.py dpi acquisition code, it seems that the code for windows is not implemented yet.
In conclusion, I was able to solve this problem via ctypes.
My code gets the window handle from tkinter and gets the DPI from there.
It would be better to get the handle from SDL. But I don't know how.
If someone tells me, I can send a pull request.

This is still a problem after +4 years....

I've got this blurry pixel issue as well on Windows 10 with UI scaling at 150%. Another related problem is that the Window core module reports the wrong size/position.
@kuguma is correct, on Windows the metrics.py code always returns 1.0 in its density method. Based on their suggestion to solve this using ctypes (plus some googling), I hacked together a fix. I don't know how "proper" this is; there could be issues I'm not aware of and I don't know if it will work in every environment. Hopefully someone who understands this better can weigh in and let me know if this is a reasonable approach.
In any case, it works great on my system as far as I can tell: text is perfectly crisp, and the Window module reports the correct size and position. I checked that it works across all the UI scaling options I have available, but obviously the app needs to be restarted after a setting change. I do not know how this will work if you're using multiple displays.
To apply the hack, edit your metrics.py file and delete line 218. Replace it with these lines:
        from win32api import GetSystemMetrics         from ctypes import windll         w0 = GetSystemMetrics(0)         h0 = GetSystemMetrics(1)         windll.user32.SetProcessDPIAware()         w1 = GetSystemMetrics(0)         h1 = GetSystemMetrics(1)         sf_w = w1/w0         sf_h = h1/h0         return min( sf_w, sf_h)

Can you try https://github.com/kivy/kivy/pull/7293 ? That should allow you to set a custom density, or make the window report the correct density from sdl2.

@matham thanks very much for pointing me towards this, I hadn't seen it. Will give it a try as soon as I get a chance.

@matham I'm having trouble getting the new features in the PR you linked to work properly. I copied your demo code, and I am able to see some effect of dynamic scaling using this line: Clock.schedule_once(partial(set_density, 1.5), 15)
I think that should set the density to 1.5 instead of the default 1.0, but even though there is an obvious visual change when the Clock timer runs out, the result doesn't look "right"-- text is still as blurry as in the master branch. The values in Window.size also don't seem to change along with the visual change. Using the hack I posted, I get crisp text with density set to 1.5 and Window.size changes to the correct values.
Could you explain how to get the window to report the correct density from sdl2? (This is the feature I'm mainly after.)

Ok, I see the issue now. By default Windows thinks Kivy is not DPI aware so Windows scales it up which makes it look blurry. Your code tell Windows that the window is dpi aware so Windows doesn't scale Kivy, rather you set a higher density and that does the scaling. So it looks nice.
The PR I linked changes only the density, but it does not tell Windows to not scale the window, hence it looks blurry. We'd have to also tell the Window that we're DPI aware and to not scale us. Normally, we'd go through SDL2 to do this, as that's what we use to control the window. However, SDL2 doesn't seem to support DPI scaling for Windows yet AFAICT (https://bugzilla.libsdl.org/show_bug.cgi?id=3281).
So I think your workaround is the best solution until SDL2 gains DPI awareness on Windows and allows us to read it or set it.

Thanks a lot for those clarifying details, I think I understand better about what's going on here. I'm still unsure how multiple monitors with different DPIs might interact with the ctypes fix-- probably just will be too big or too small on one monitor? I may get a chance to try it out sometime soon and if so will post back here about how it goes.

I'm still unsure how multiple monitors with different DPIs might interact with the ctypes fix-- probably just will be too big or too small on one monitor?

Yes. If the monitors have different scaling factors, I think that'll be the case. Although there are two dpi-aware Windows modes, one uses the DPI of the first monitor created on and Windows will always report the same density once created (that's what you're setting above), and the other updates per-monitor. However, unlike if we get the event from SDL2 and we could just react to that event, you'd need to check manually on every clock frame to see if the density has changed because the monitor has changed, and update the density accordingly. And you'd have to use the linked PR, because with master density cannot be changed once it's set.

I did a bit more reading on this, it looks to me like the "best"/most-modern way to set DPI awareness per-monitor (rather than just the first monitor) is with: windll.user32.SetProcessDpiAwarenessContext(-4). The -4 apparently signifies DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2, which is the newest iteration of this type of context-awareness. The calls to win32api.GetSystemMetrics can be replaced with windll.user32.GetSystemMetricsForDpi for the per-monitor version. I don't have a second monitor handy at the moment but these appear to work at least on a single monitor. The downside is these functions are only supported on Windows 10 Creators Update (1703) and newer.
The info here and here says there is also a version of this procedure for Windows 8.1 and newer, as well as a version for Windows Vista and newer (this is the one I had posted above, so not per-monitor aware). I think it would be pretty simple to have kivy check the OS version and use the correct one, falling back on density=1.0 for older versions?
In terms of reacting to the DPI change (using your new features in your PR), it also looks like Windows will send the window a WM_DPICHANGED message if it gets moved between monitors with different DPIs (if the per-monitor awareness mode is set). I wonder if kivy can react to this event like other types of events, and trigger the update?
This person is doing some of this, and happens to be using SDL2 as well. They say that SDL2 for some reason consumed the WM_DPICHANGED message and didn't pass it along, though I'm not familiar enough with kivy's event processing methods to know if that would be relevant here, too. That person did find a workaround, though (but again not sure if theirs would work here).

kivy's management of windows event is there,
https://github.com/kivy/kivy/blob/master/kivy/core/window/_window_sdl2.pyx#L557
experimenting with it requires compilation, if only to uncomment https://github.com/kivy/kivy/blob/master/kivy/core/window/_window_sdl2.pyx#L659 and see what's printed, but that should allow testing that hypothesis quickly.
It would probably be fine to have some os-specific code to handle setting the proper options at window creation.

Thanks for that tip @tshirtman ! I'll give it a try when I get a chance. I'll also try to grab a second monitor as well and see what I can see.

Unfortunately no luck here: when I uncomment line 659 in the file you linked (as well as line 675), and set a test app to be DPI aware, I don't get any events printed to console when I change UI scaling settings. I assume the same would be true for dragging the window to a second monitor but I haven't tested that.
The change to _window_sdl2.pyx does appear to work at least: I get "receive unknown sdl window event 512" printed to console when I manually resize the window (not sure why this is an unknown event). So that makes me think I've at least set things up correctly for this test.
In the stackoverflow thread I posted before, the OP left this comment suggesting they solved this by "subclassing the SDL window". I followed the link they left on that approach but I don't understand it well and I'm not sure if something similar could be done here.
Thinking through @matham's previous suggestion to manually check for a DPI change on each clock cycle: I guess the problem with that is an unacceptable hit to performance, or just generally being an ugly solution. But for something like this, I wonder if a check every 1 or 2 seconds would acceptable in terms of both responsive behavior and performance. Might give this a try...

Unfortunately no luck here: when I uncomment line 659 in the file you linked (as well as line 675), and set a test app to be DPI aware, I don't get any events printed to console when I change UI scaling settings. I assume the same would be true for dragging the window to a second monitor but I haven't tested that.
The change to _window_sdl2.pyx does appear to work at least: I get "receive unknown sdl window event 512" printed to console when I manually resize the window (not sure why this is an unknown event). So that makes me think I've at least set things up correctly for this test.
In the stackoverflow thread I posted before, the OP left this comment suggesting they solved this by "subclassing the SDL window". I followed the link they left on that approach but I don't understand it well and I'm not sure if something similar could be done here.
Thinking through @matham's previous suggestion to manually check for a DPI change on each clock cycle: I guess the problem with that is an unacceptable hit to performance, or just generally being an ugly solution. But for something like this, I wonder if a check every 1 or 2 seconds would acceptable in terms of both responsive behavior and performance. Might give this a try...

Please take a look at https://github.com/kivy/kivy/pull/7299. That should resolve the issue as long as you set the DPI mode as shown in that PR before running Kivy.

Please take a look at https://github.com/kivy/kivy/pull/7299. That should resolve the issue as long as you set the DPI mode as shown in that PR before running Kivy.


[Accessibility]A11y_VSCode_ScreenReaderOptimized_ScreenReader:VoiceOver is not reading the content and control of the screen.

Environment Details:
VSCode Version : 1.24.1
OS Version : Win10
Additional Details:
ScreenReader,VoiceOver,MACOS High Sierra 10.13.5 Beta (17F70a),MAS1.3.1
Repro Steps:

Launch VS Code.
Navigate to File->select New File->Navigate to Status Bar->Click on "Screen Reader Optimized" button.
Observe what Voiceover  reads.
Actual:
VoiceOver is not reading the content and control of the screen.
Expected:
VoiceOver should read the content and control of the screen.

Recommendations:
Refer below link which is repository of bug fixes code snippets:
https://microsoft.sharepoint.com/teams/msenable/mas/pages/browse-fixes.aspx
User Impact:
The user will not be able to know the content.
MAS Reference:
https://microsoft.sharepoint.com/:w:/r/teams/msenable/_layouts/15/WopiFrame.aspx?sourcedoc={54f28d1f-a2d1-4dcd-84e1-5c9b87e8aba4}
Does this issue occur when all extensions are disabled?: Yes
Attachment for Reference
[Accessibility]A11y_VSCode_ScreenReaderOptimized_ScreenReader.pptx

Dup of https://github.com/Microsoft/vscode/issues/52036