Make testHtml independent of jsEnv

I am trying to use ESModule support in Scala.js to avoid having to use webpack/scalajs-bunlder. Here is minimal example that works using snowpack with Scala.js.
npm start and npm run build work as expected and loads the fastOptJS as ESModule which in turn imports rxjs. But running sbt testHtml gives an error:
(node:1996) UnhandledPromiseRejectionWarning: /Users/mushtaqahmed/projects/scala/scalajs-snowpack-example/example/target/scala-2.13/example-test-fastopt.js:685
import * as $i_rxjs from "rxjs";S 2s
^^^^^^

SyntaxError: Cannot use import statement outside a module
    at wrapSafe (internal/modules/cjs/loader.js:1117:16)
    at Module._compile (internal/modules/cjs/loader.js:1165:27)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1221:10)
    at Module.load (internal/modules/cjs/loader.js:1050:32)
    at Function.Module._load (internal/modules/cjs/loader.js:938:14)
    at ModuleWrap.<anonymous> (internal/modules/esm/translators.js:155:15)
    at ModuleJob.run (internal/modules/esm/module_job.js:140:23)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
    at async Loader.import (internal/modules/esm/loader.js:162:24)
(Use `node --trace-warnings ...` to show where the warning was created)
(node:1996) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:1996) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

The alternate way to test could have been via scala-js-env-selenium, but that does not support ESModules, yet: https://github.com/scala-js/scala-js-env-selenium/issues/115

testHTML still requires that your code be executable with your jsEnv. This seems to be not the case here.
The error you are seeing is basically Node.js interpreting your file as a script (probably because it does not have the extension .mjs). You'll have to change the extension of the generated file to .mjs.
artifactPath in (<project>, Compile, fastOptJS) := (crossTarget in project).value / "<output-name>.mjs"'

Further, you'll have to configure Node.js correctly to find rxjs.
I realize this is very manual. However, managing JS bundling, libraries and such is explicitly out of scope for the core repo. So unless you want to manage your JS libraries manually, avoiding scalajs-bundler/webpack might not be the best idea.

testHTML still requires that your code be executable with your jsEnv. This seems to be not the case here.

Thanks for clarifying this. I was under the impression that testHtml will generate an HTML file that can be opened in any browser independent of the jsEnv.
I think, for my use case where I want to use Chrome exclusively, it is best that I give a shot at tacking scala-js/scala-js-env-selenium#115. Hope it is not too difficult.

@gzm0 So, is this as-designed/won't fix?

Well... this might be a good time to re-discuss options with regards to this.
The reason we are still triggering the jsEnv on testHtml is that we use sbt for test detection. So sbt needs to invoke a jsEnv to retrieve the fingerprints of the test framework. Then, there is black magic to inject the set of tests into the HTML.
This is not very nice, but I'm not sure how we can improve this without giving more reflection power to Scala.js. We'd need to support (in addition to what is currently supported):

Query all subclasses of an instantiatable class.
Query annotations.

Querying all subclasses on an instantiatable class (or all instantiatable classes for that matter) is something we could expose easily as a library-level new method in Reflect.
Querying by annotations is an entirely different story. That information is currently entirely dropped by the compiler back-end. I don't see a path towards including that information in the sjsir files, let alone at run-time.
I'm not sure it's possible to move test detection to the JS side.

Querying by annotations is an entirely different story.

Yeah... That was my feeling as well :( Unfortunately, that's the mechanism JUnit uses, so any partial support would be hard to test for us as well :-/
If it's OK with you, I'd like to keep this open for a bit and think a bit more.

If it's OK with you, I'd like to keep this open for a bit and think a bit more.

Sure.

So, it turns out that I didn't really give the entire story: Even JUnit, at the end of the day, only cares about all subclasses of a given type (org.scalajs.junit.Bootstrapper). The way it deals with annotations is with its own compiler plugin. It seems that any reasonable implementation of a test framework must follow this approach.
What is unclear to me at this point, is if we can change the interface in a backwards compatible manner to deal with this.

Technically, the bootstrapper contains everything we would want, including the ability to iterate over all the tests, for discovery.
The problem is that a generic processor would have to work with an sbt.testing.Fingerprint, and generically perform some lookups. How would that generic processor know to search for "Xyz$Bootstrapper" classes? There are two Fingerprint classes:

SubclassFingerprint: for that, we can:

depending on isModule(), iterate through reflectively loadable modules or instantiatable classes
find the ones that extend superclassName() (¹)
if classes, and if requireNoArgConstructor(), check that they have a 0-arg constructor (we can already do that with the Reflect API)

AnnotatedFingerprint: for that,

we can use isModule() the same way as for SubclassFingerprint
but we're stuck at the problem of identifying the bootstrappers anyway, because nothing links the annotationName() to any kind of bootstrapper magic

(¹) There's one catch here, though: if we had a j.l.Class of the superclass, we could do superclassClass.isAssignableFrom(reflectivelyInstantiatableClass.runtimeClass), but the fingerprint only gives its getName(). We don't have a way to get the Class from its name since that superclass is typically abstract (or a trait) and hence not reflectively instantiable itself. So we'll also have to find something here, but that seems easier than the annotation problem.
One possible way would be to invent a new standard interface for all bootstrappers. It could have the following form:
@EnableReflectiveInstantiation
trait AnnotatedFingerprintTestBootstrapper {
  def handlesAnnotationName(annotationName: String): Boolean
  def associatedTestClassName(): String
}

The test runner could reflectively iterate through all of those, and call handlesAnnotationName(fingerprint.annotationName()) to test whether it matches. If it matches, use associatedTestClassName() to get the name of the actual test class (which will be given to the testing framework).
We could retroactively make junit.Bootstrapper extend that trait as:
trait Bootstrapper extends AnnotatedFingerprintTestBoostrapper {
  def handlesAnnotationName(annotationName: String): Boolean =
    annotationName == "org.junit.Test"

  def associatedTestClassName(): String =
    getClass().getName().stripSuffix("$scalajs$junit$bootstrapper")
}

(the second method relies on Semantics.runtimeClassName not to alter the names of those boostrappers, so for the future we'll want the JUnit plugin to override associatedTestClassName() with a constant)
In theory, the retroactive extension only works on 2.12+ because it requires the new methods to be default methods. But test classes are almost never used from binaries only; they are used from compiled sources.

Hmmm... So that would require all test frameworks to provide this. I'm not sure that is feasible; especially for test frameworks that currently don't need a compiler plugin. (Although their test class itself could extend AnnotatedFingerprintTestBootstrapper but that in turn would make its methods leak).

No, only testing frameworks that rely on an AnnotatedFingerprint would require this. And today, those testing frameworks require a compiler plugin anyway. Moreover, in practice, we only know of JUnit as a real example.
All other testing frameworks use a SubclassFingerprint, for which we don't need much more than what we have today (we just need something new in the Reflect API for the (¹) I mentioned above).

Fair enough. I think we should probably indeed do this.

The more I think about this, I'm not sure we can implement (¹) without either of:

Adding compiler support.
Reaching getSuperclass (this might not be a problem, but then we need to change the way how we test codebases where it isn't reached).

Yes, I think you're right.
Although getSuperclass wouldn't be enough. We would also need getInterfaces, which we never implemented. And even then, it wouldn't work with altered  runtimeClassName.
So I believe we need compiler support.

:( that in turn changes the binary backwards compat story quite a bit.
It's quite bothering that Scala.js itself with the JSEnv test kit actually has an example that would break if we introduce a re-compilation requirement (although on the JVM, but the concept really would translate 1-1).

Yes, the big downside is that it would require recompilation of the superclass/supertrait (so in practice, of the testing framework) for this feature to work. The question is: is that deal breaker? It would mean that testHtml in a new version of Scala.js would not work with a testing framework compiled for an earlier version. That's ... probably on the side of being a deal breaker, unfortunately. Unless we find a way to make it still work with older things using the technique used today, and only use the new technique for newer testing frameworks ...

It's quite bothering that Scala.js itself with the JSEnv test kit actually has an example that would break if we introduce a re-compilation requirement (although on the JVM, but the concept really would translate 1-1).

Hum, I'm not following. :s What example?

The JSEnv test kit is an example of tests that are published in compiled form and intended to be used that way. It is only JVM artifacts, so not affected by this, but a good example of the impact the recompilation requirement would have on the ecosystem:

The scalajs-js-envs artifact needs to publish a new version.
All JSEnv implementations need to update the version if they wish to update Scala.js.

If step 1 does not happen for an artifact, everybody is blocked from step 2.

No, that would not be the equivalent. We don't need to recompile test classes. We only need to recompile the superclass/supertrait of all tests, which is defined in the testing framework. So the equivalent here would be to recompile the JUnit testing framework, and then use the new JUnit framework with the existing binaries of the tests in the test kit, and things would work. The blocking step is for the testing framework itself to republish a version.

Yes, right. It's an example of how we need backwards compatibility for the bootstrapper in JUnit specifically.

Unless we find a way to make it still work with older things using the technique used today, and only use the new technique for newer testing frameworks ...

I'll think about it, but I don't think so (short of making hardcoded lists). Mainly because we cannot access any information about the testing framework without launching some JS code.

Note to self: Is it time to build sbt.testing._ version 2? List of stuff that could be fixed:

This issue
#3123 (thread context switching due to async interface), or more general: abstract execution details away.
#4294

We can't really do that, I'm afraid.
First, in terms of binary compatibility, that would break every testing framework that has been published. We would have a hard time to tell them that they need to upgrade to the new version and republish if they want newer users of Scala.js to be able to use their framework; while at the same time that it would break users of older Scala.js. (testing framework authors can be very conservative about what they support)
In terms of source compatibility, one design constraint of sbt.testing._ is that it remains source compatible with the JVM one. At least in a way that frameworks can be written for both platforms using the same sources. While we could fix #4294 under that constraint, I'm not sure what we could for this issue and #3123.

Just to be clear: This is not about Scala.js' sbt.testing._ it is about the Scala ecosystem's sbt.testing._. IMO backwards compatibility is not that much of an issue, because we could very likely bridge the new version to the old version (from what I see, we'd like to give less control to the framework caller, so we can probably implement something with less control on top of something with more control). This would be a change overarching the entire Scala / sbt ecosystem, so the next step would be to write a SIP / SPP / SCP.

Oh, you're aiming far! Wow. That will require to get even more people on board, notably the maintainers of all the Scala build tools in circulation. I guess the right way to start a discussion like that would be to open a thread on https://contributors.scala-lang.org/

An alternative to all this, could be to introduce a resource file provided by testing frameworks (with a name derived from the name of the Framework class name) that contains the fingerprints.
The TestAdapter could look for these files and if they exist, bypass execution of the jsEnv. If the file does not exist, it would fall back to executing the jsEnv in order to retain backwards compatibility.
What remains unclear, is how we'd get these files into the testing framework artifacts (as in: ensure most frameworks have them).

Perhaps we should have a larger discussion with likely stakeholders, such as build tool maintainers and testing framework maintainers. It seems we're not going to achieve anything on our own, or at least without their buy-in.


Oscillator strength for naive/projected/allprojected qLR with Qiskit interface

Renaming of one_elec_op_pauli_0i_0a not included yet

Renaming addded


fix: update tsgrpc to latest

tsgrpc just had a big update. try out if it works

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

Coverage data is based on head (0280f77) compared to base (d6547d2).
Patch has no changes to coverable lines.

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #220   +/-   ##
=======================================
  Coverage   70.29%   70.29%
=======================================
  Files          93       93
  Lines        2380     2380
  Branches      304      304
=======================================
  Hits         1673     1673
  Misses        660      660
  Partials       47       47

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

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


JavaScript errors triggered in IE

From<EMAIL_ADDRESS>on December 28, 2009 17:30:11
What steps will reproduce the problem? 1. Try to use wwwsqldesigner in IE8.
2. JavaScript runtime errors show up in debug console What version of the product are you using? On what operating system? svn rev 71 Please provide any additional information below. Patch attached. IE has a JS bug in its implementation of
arrays, for (x in array) will iterate methods in absence of array
elements.
Attachment: ie.patch
Original issue: http://code.google.com/p/wwwsqldesigner/issues/detail?id=55

From<EMAIL_ADDRESS>on December 28, 2009 08:31:16
Obviously I'm responsible for this breakage ;). I've only now gotten to testing in IE.

From ondrej.zara on December 28, 2009 12:58:34
Actually, IE's implementation is right here. Arrays should not be iterated with
"for..in", because this lists all properties, which includes properties added to
Array.prototype. This is a rather complex part of the JavaScript story; the only
thing relevant to this issue is that arrays should be always iterated with a good-old
for (var i=0;...) construct.

From<EMAIL_ADDRESS>on December 28, 2009 13:04:30
If so, then there are a few more problems like this in code that isn't mine ;) Updated patch on its way.

From<EMAIL_ADDRESS>on December 28, 2009 13:12:34
Heh, spoken too soon -- the other code that uses (for x in something) is in fact correct. All of the horkage
smells like my own code. Apologies for the breakage, and patch is attached.
Attachment: ie.patch

From ondrej.zara on January 03, 2010 11:24:02
Commited in r74 .
Status: Fixed


feat: #449 update links public admin

Public:

Add Go to FOM link and adjust title styling.
Fix public menu toggling not working on small device.
Adjust header layout style based on Olga's feedback.
Add vertical separator between header items.
Make adjustment for system font-family so it is consistent with Admin.

Admin:

Add new "About" page, component, routing and entry link at header.
Add two links ("Training for FSP Holders" and "Training for Reviewers:") at About page.
Adjust header layout style based on Olga's feedback.
Add vertical separator between header items.

Thanks for the PR!
Any successful deployments (not always required) will be available below.

api
admin
public

Once merged, code will be promoted and handed off to following workflow run.

Main Merge Workflow

Training for reviewers link is still requiring a login prompt for me.

@basilv it worked for me incognito. Are you using the github link?

Hi @basilv , the "submitter" one is BCEID/Public accessible (updated the link from Julius), and the "reviewer" link does require IDIR he mentioned (which is the same link before). You should be able to click the first one without login prompt needed. Please try again and see if it does not work for you?
@OlgaLiber2

Hi @basilv , the "submitter" one is BCEID/Public accessible (updated the link from Julius), and the "reviewer" link does require IDIR he mentioned (which is the same link before). You should be able to click the first one without login prompt needed. Please try again and see if it does not work for you? @OlgaLiber2

Okay, that matches what I'm seeing. The first submitter link is fine, the second one (reviewer) still needs a login. I personally don't think the 2nd link should require a login, but if that is what Julius wants then that's fine.


Remove all "caip" references from all packages

Overview
Remove caip vernacular from all packages in lib, which will require major version bumps for each.
References and additional details
All caip-related types will be replaced with their generic equivalents.
Acceptance Criteria
No caip-specific types left in lib.
Need By Date
No response
Screenshots/Mockups
No response
Estimated effort
No response

Closed by:

@shapeshiftoss/caip: https://github.com/shapeshift/lib/pull/625
@shapeshiftoss/types: https://github.com/shapeshift/lib/pull/604
3.@shapeshiftoss/market-service: https://github.com/shapeshift/lib/pull/607
@shapeshiftoss/chain-adapters: https://github.com/shapeshift/lib/pull/606
@shapeshiftoss/asset-service: https://github.com/shapeshift/lib/pull/605


How to Install Audiobookshelf on Centos 7

I want to install Audiobookshelf on my hosted virtual private server, but Liquidweb techs are asking for instructions to install it since the Audiobookshelf site does not include Centos 7. What can I tell them? Thanks.

My real suggestion would be to upgrade to CentOS Stream 9 (or similar) as your base operating system. The end of life for CentOS 7 is only next year, but setting up a new service, you might already want to switch now.
That being said, I didn't build the repository for CentOS 7 since the OS has actually changed a bit between el7 and el8, and I don't really have any infrastructure left to properly test el7 packages. Close before the EOL, I also didn't want to build that up again. But the actual build instruction for el7 should be pretty close. If you want to set that up and test it, feel free to provide a pull request. I don't mind accepting that.
If you don't want to upgrade and not spend any time on adding the el7 build infrastructure, my suggestion would be to get Docker running and use Audiobookshelf's Docker deployment since it is OS-agnostic.


RFC: Officially recommend against using GraphQL Stitching in Gravity

Proposal
Officially recommend against using GraphQL Stitching in Gravity
Reasoning

As there is quite a lot of history behind our decision to implement GraphQL stitching at Artsy I'm going to keep this RFC focused on practical day-to-day concerns around complexity / maintenance costs and forgo some of the technical philosophy behind why one should employ stitching in the first place. For those unfamiliar with what stitching is, I would encourage you to read our 2018 blog-post: GraphQL Stitching 101.

We have two mechanisms for shuttling Gravity data to Metaphysics:

REST endpoint in Gravity, which gets consumed by a data-loader in Metaphysics
GraphQL schema in Gravity, which gets "stitched" in with the GraphQL schema in Metaphysics

While both approaches currently work reasonably well, the latter comes with quite a bit of overhead and required knowledge, as illustrated by this common scenario:
Problem: We would like to attach a list of LotEvents to the Me type, to be displayed in some UI
Using Stitching:

In graphql-ruby, write a resolver in Gravity that fetches data from Gravity backend
Resolver then applies the result to a connection for pagination
Export updated Gravity GraphQL schema
Go over to Metaphysics, copy in Gravity schema
Open Gravity's schema.ts file to ensure that the new Gravity type does not clash with existing types. Dynamically rename types with _unused_gravity_ or DoNotUseFoo type idioms if appropriate
Open up Gravity's stitching.ts contract file
Switching mental models a bit, extend the SDL-based User type with the newly created LotEventsConnectionType from Gravity
Since the LotEventsConnectionType takes some arguments, utilize delegateToSchema to forward Gravity's GraphQL arguments over to MP, but be sure to reference the dynamically-created _unused_gravity_lotEventsConnection type when delegating, since at this point in the schema execution we don't have access to the original type-names from Gravity.
Since the new LotEvent model in Gravity contains some date information, we'll need to re-resolve that field in Metaphysics using our dateRange helper
For any other helper transformations and / or field expansions we may need for the UI, apply those as well

Using REST + DataLoader in MP:

Write conventional endpoint in gravity and apply the paginate_and_sort helper on the data
In Metaphysics, open Gravity's REST endpoints list and add the new lot-events endpoint
Create a new file called lotEvents and, copy 🍝ing  from the possibly hundreds of examples throughout Metaphysics, write a connection and apply the paginationResolver helper
Apply dateRange helper to start_at and end_at  data, as they've been [returned from rest endpoint](https://github.com/artsy/metaphysics/blob/62c985ab60f8ce348e53342571855691de0eb153/src/schema/v2/fair.ts#L150-L1530

From the perspective of an engineer at Artsy, Stitching requires a great deal of specialized knowledge compared to the REST approach, which can be applied by arguably any engineer regardless of skill-level or depth of domain specific knowledge. And by specialized, I do not mean proficient. One can be highly proficient in GraphQL with little to no knowledge of its inner workings, as we have a large codebase of patterns that one can refer to for any conceivable task. With stitching, however, this breaks down. In order to understand how to merge schema A (Gravity) into schema B (Metaphysics) and then augment the result one needs to understand multiple language paradigms and then apply them expertly within a highly complex 3rd-party library context.
One must have a solid working knowledge of:

GraphQL
graphql-ruby
SDL
graphl-js
Schema stitching itself, and how to do it (via graphql-tools)
Advanced debugging techniques in Node.js for figuring out why something inevitably goes wrong
And more (there are other prerequisites that I'm surely missing here).

For a few more examples of complexity / maintenance costs applied to other services, see our stitching files for

Exchange
Vortex
Gravity
Kaws
Causality

In each of the examples above, deep technical understanding is required to add, edit, remove or debug a field. And even existing engineers need to frequently refresh their understanding of how to stitch due to all of the conceptual overhead. The technical density in the stitching docs does not help.
For engineers who possess an expert-level understanding of GraphQL or have a hacker mindset, stitching can be fun and intellectually stimulating to work with. But the question remains: Is it worth it for the everyday product engineer? Are there hidden costs required to stitch in a new field? Have we ever encountered the at-scale problems that stitching professes to solve? And has the industry even settled on how to work with multiple schemas effectively?

Related to the last question, its worth noting that when stitching was first released by Apollo it was almost immediately deprecated in favor of a new approach called Federation. The graphql-tools/stitching library was then abandoned until a consultancy firm named The Guild then decided to take on ownership. Currently, at Artsy, we're four versions behind latest release.

Exceptions
While this RFC is narrowly scoped to Gravity as our primary microservice containing the most Artsy functionality, it's worth noting there have been successes with our stitching approach, including within Gravity itself. Once all of the wiring is in place to stitch in a microservice often all it takes to get a field from a microservice to the UI is a change in the microservice itself, and a copy of the related schema over to MP + a deploy.
When it works, it works really well. For example, Diffusion. However, it's worth noting that Diffusions schema is very simple.
A more complex but arguably successful example is Convection. Once we had convection stitched in we were able to almost exclusively work within the Convection repo. There was very little friction and we were able to grow Convection's schema to a reasonable size, encapsulating a good amount of functionality without needing to intercept and augment that much.
For the reasons above, and for the simple fact that we already have a good amount of stitching running in production, this RFC stops short of recommending that all future stitching is deprecated. Going forward though, we should limit the amount of stitching-centric code in Gravity so as to reduce future complexity/maintainability burdens. Using the patterns / helpers we have already written around REST+MP is sufficient.
Additional Context
It's worth surfacing this conversation that was had in engineering-core around Stitching recently. Lots of good opinions inside.
How is this RFC resolved?

Update docs with official guidance on avoiding stitching in Gravity in favor of conventional REST+dataloader in MP approaches
Danger warning when new files added to /graphql folder in gravity repo
Bonus points for a doc that discusses when we should use stitching, more generally

My understanding is that certain things are difficult or impossible with regards to typings and fragments. For instance each one of our services has their own PageCursors type:

We also don't stitch Metaphysics and other services back into Gravity. Which further makes other things difficult or impossible. Gravity fields don't implement images correctly AFAIK. If it used markdown or date formatting those implementations would drift, etc.
I think going with the REST pattern is the way to go for now but I'd like to recommend we explore federation in the future as well.

Just a thought but another, maybe more specific way to phrase this could be:

Officially recommend against adding operations to the GravitySchema:

https://github.com/artsy/gravity/blob/main/app/graphql/gravity_schema.rb#L1

Seconding @dzucconi around confusion exploring our schema, developers unfamiliar with the stitching paradigm open up the Metaphysics GraphiQL docs and see all kinds of things like

What does this even mean? (For devs familiar with stitching, what does this even mean?) It's unfortunate noise related to types and clashing -- the very things we stitching is supposed to resolve, but in practice it creates a by-product in the form of this kind of output, permanently muddying the understandability of our GraphQL layer.
@jonallured

Just a thought but another, maybe more specific way to phrase this could be Officially recommend against adding operations to the GravitySchem

I'd like to be a bit more specific here. Because in the end, arguing against stitching is not the same as arguing against a microservice having a GraphQL layer. GraphQL is fine. The argument is against using stitching if the desired end result is consuming said data from metaphysics -- something REST + a dataloader is perfectly suited to.

At the risk of sounding hyperbolic, it's worth giving another look in Exchange's stitching.ts file in order to reflect on the tragedy of complexity therein. Exchange deals with our $$. If it was simply an old fashioned REST app connected to Metaphysics via a DataLoader, would any of this have been necessary? Somehow we've even found ourselves within the realms of AST manipulation. Why? Working around the hidden costs of stitching within a system that never needed to scale.

Rather than officially recommend against stitching, could we instead promote the validity of REST and data loaders alongside stitching, and leave it up to the developer?
There are good vanilla-ish examples of merging in a schema with no stitching, or minimal stitching (like including an artwork connection within them). Everything mentioned in this thread are real examples of stitching complexity, I just think we can officially recommend REST and data loaders as well (I thought this was the status quo, that both GraphQL w/ stitching and REST/data loaders were recommended and supported).

I thought this was the status quo, that both GraphQL w/ stitching and REST/data loaders were recommended and supported

As mentioned in the cited thread the whole point of this RFC is reduce future complexity / maintainability burdens. To say that a developer should use whats they feel is best ignores the thesis of this RFC, that there are serious complexity costs around expanding our stitching-based codebase, compared to just using REST.
If a developer can achieve a fully functional connection by using a REST endpoint + paginate_and_sort + paginationResolver in metaphysics and be done with it -- three very low-complexity operations requiring very little understanding of any of the three technologies -- then why would we recommend that they freely choose between REST or stitching, where for the latter they'd need to have a fairly advanced understanding of 5+ technological domains just to feel confident enough to contribute and debug should something go wrong? The point of all of this is to clarify the status quo for the team by reevaluating past decisions.

Could you clarify:

What part of this proposal is specific to Gravity? Some of the specific complaints would apply equally to any ruby back-end, or even to any back-end. Is the difference that Gravity has a well-established REST API, or that Gravity's schema tends to require more of the complex stitching work, or something else? Without a good reason, I'd hate to recommend one approach for most other services and then have a big exception for Gravity.
What about mutations and schema properties that can be straightforwardly "merged" into Metaphysics' schema without stitching complexities (e.g., a widgetsConnection and a createWidget mutation)? Are those acceptable or do you propose REST throughout?

What about mutations and schema properties that can be straightforwardly "merged" into Metaphysics' schema without stitching complexities (e.g., a widgetsConnection and a createWidget mutation)? Are those acceptable or do you propose REST throughout?

That's the thing, they aren't straight forward due to the differences in Pagination-related types. Like if we define a single pagination fragment for use in a pagination component in Force, it wouldn't be useable in stitched pagination fields. (I may be missing something here because this seems so obviously a problem that there has to be a reasonable solution?)

I completely agree that stitching adds a lot of problems and complexity in most cases and we should favor MP+Loaders. But looking at cases where stitching makes things easier I wonder if we should allow (or even encourage) the usage of stitching in those cases (e.g. simple mutations, services like Convection with independent types).
What do you think about restricting the usage of stitching to a list of well defined cases and recommend MP+Loader in all other cases?

Mutations are rarely going to be simple because they necessitate the logged in user and the return field should always include 'me' which is in Metaphysics

I am with @mzikherman on this and would leave this up to the developer.

@kajatiger @mzikherman it's very clear though that the average developer just doesn't know what's best for the overall schema:

The pervasiveness of nullable fields
The inability to implement pagination correctly/completely
Not knowing what objects to return in mutations
Not knowing when to implement common interfaces (dates, images, markdown)

@olerichter00 - this is really the dilemma here. And to @joeyAghion's point, I was originally thinking that this RFC would be about recommending against all stitching, but then I started thinking back to how undeniably well it worked with Convection and decided to hold back.
But even then, @dzucconi is also right. It might seem simple, but compared to basic CRUD operations performed via dataloaders, its still more complicated because in the end mutations are meant to return data, and once you start crossing schema boundaries then one is mixing mental models and we're back in the realm of a) required specialized knowledge; and b) unnecessary complexity.

I think it's important to recognize that this RFC is to recommend against adding to Gravity's GraphQL endpoint. There may still be exceptions, and I feel that's totally reasonable if the dev(s) making them are aware of the tradeoffs and have a reason for choosing GraphQL over REST.
There's a real advantage to having a clear recommendation: less mental overhead, less time spent wondering "does this make more sense in GraphQL or REST?" Instead, it's REST unless a tech plan or conversation surfaces a really good reason it should happen in GraphQL.
I agree with a lot of the points made in this thread. We have less GraphQL experience, and I think more importantly less enthusiasm for complex GraphQL work, than we have in the past when people like Eloy, Justin, and Orta were on the team. That's not to say we're not capable of solving GraphQL problems or reinvesting in our GQL infrastructure, but more that doing so would require us to either hire people with deep GQL experience, or for existing Artsy engineers to want to build that level of experience.
IMO there are three big things to consider with a change like this:

Performance

AFAIK there's not a large/obvious benefit to either side (GQL/REST)

Dev experience

This is core to this RFC. Chris' argument is that it's a better dev experience to use REST with dataloaders instead of GQL, and after reading and reflecting, I agree

Number of different tools/patterns to maintain

Also core to this RFC. While we're not necessarily talking about having less tools/patterns overall, we are talking about simplifying and clarifying what people should do when faced with a choice between GQL and REST in Gravity, so effectively cutting down on our total maintenance burden (mentally, at least)

Thanks for starting this conversation @damassi!

Thank you for opening this RFC @damassi !
I agree with the recommendation, mostly because in my experience, stitching works until it doesn't (which can be unpredictable!). And when it doesn't, it can sink tons of developer time and morale (for all the reasons stated above).
Quick aside
I also agree with @joeyAghion that perhaps we can make the recommendation stronger. Reason being: if possible, having a single recommendation across our codebases reduces the mental overhead even further, which would be awesome!
Here's my understanding/potential recommendation:

Clients prefer to consume (and mutate) data using GraphQL, via Metaphysics

Assume "client" here means an app that is primarily responsible for providing a view on data to end-users. Includes things like Force, Eigen, Forque, Volt, and Pulse.
I assume (?) this is non-controversial, but I'm not sure if it's written down anywhere.

Metaphysics prefers to fetch data from backends via REST, but it can also be stitched in, in special cases. Metaphysics should not fetch data from backends using GraphQL but no stitching.

Assume the special cases are of course the stitching we've already implemented.
Assume "special cases" are cases where we are already stitching, or if it's straightforward (<- could be expanded upon) and we're not encountering anything new (<- dangerous, but I could see someone making the point).
The second point, about not fetching data via GraphQL without stitching is a reference to the "fake stitching" we did when we first built Exchange. See the PR that removed all this code here, and a slack thread that discusses the brittleness of the setup.

I think this roughly matches what's above, but the point I want to make here: Gravity is an ideal case to suggest REST over stitching, because it already has a robust REST API and for devs adding new functionality, we can make it easy to choose one over the other.
It is less straightforward if a backend app (Exchange, for example) only has a GraphQL API, and so it might be unnecessary overhead to start supporting a REST API, given we're all-in on GraphQL. However, in this case, I would prefer stitching over the "fake stitching" that hurt us in the past.
It's way out of scope of this RFC, but I'm still not sold on backend APIs communicating with each other via GraphQL (it's fine, but in my very limited experience the tooling hasn't seemed great for consuming those APIs). One reason we got into this situation we're in is because in the past, our recommendation for people starting new apps was to prefer GraphQL APIs over all else, assuming we'd be stitching. I'd be curious if that recommendation should change as well, especially given what we know now about stitching. (This could be a separate RFC 🙃).

Closing this RFC as accepted! The support seems fairly enthusiastic.
As a follow-up I'll open another RFC to provide stronger guidance around stitching in general, across all of our systems. While there isn't much we can do about those services that are already stitched in, providing clear guidance around future systems will be useful. In short: Avoid GraphQL stitching unless service has already been stitched in and lacks a REST layer. Once that is accepted I will update docs and corresponding playbooks.


Driver for String

Hi,
How much work do you think it would be to have a very basic driver for HTML strings using webkit or selenium?
I know I can already use the Node matchers on strings, but I'd like to be able to save a rendered screenshot in order to help debug our View and Cell specs.
I'm happy to look into this myself, but I'd like it if someone with knowledge of the capybara internals could give me a steer on whether it's possible/practical and how much work this would be.

To save a rendered screenshot of a string - you would need to load the string into webkit or selenium so they can process and render the css.  If you know its a static html string without any JS or anything you could save it to a file and then open that file in FF or whatever.  However,  wouldn't it just be easier to set up your tests to rerun failing tests in selenium or webkit and save a screenshot from there.
I'm closing this since its not an issue with Capybara, if you want to discuss further please move over to the mailing list detailed in the README


Introduce batch_row_count for ordered map/merge

This PR imlements #375, adding the ability to request jobs with sizes divisible by a certain batch_row_count.
Additionally, it enhances ordered chunk pools to perform chunk splits based on estimated data weight to form jobs with weights almost exactly to equal to data_size_per_job, which was previously only achieved with a certain margin.
Also refactored some of the comments in the touched files into YT style. Left comments in some of the chunk pool unittests unchanged, as there are too many lines.

Shipped!

Shipped!

Shipped!

Shipped!

Shipped!


Allow registration with price plan

NB is breaking so will bump to 0.3.0 probs?

Hmm seems to be picking up comments from old branch/PR??

 Add a button next to promo code box to allow any user to sign up for Send for £15/year


feature: convert CASE WHEN to IF

Proposed changes
Add a rule to optimize CASE WHEN expression.

Rewrite rule to convert CASE WHEN to IF.

For example:

CASE WHEN a > 1 THEN 1 ELSE 0 END -> IF(a > 1, 1, 0)

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

run buildall

run buildall

(From new machine)TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 47.14 seconds
stream load tsv:          544 seconds loaded<PHONE_NUMBER>9 Bytes, about 131 MB/s
stream load json:         20 seconds loaded<PHONE_NUMBER> Bytes, about 112 MB/s
stream load orc:          64 seconds loaded<PHONE_NUMBER> Bytes, about 16 MB/s
stream load parquet:          30 seconds loaded 861443392 Bytes, about 27 MB/s
insert into select:          29.2 seconds inserted 10000000 Rows, about 342K ops/s
storage size:<PHONE_NUMBER>7 Bytes


Create a way to switch between versions of Swiftype query

Description
To make our evaluation process easier, it would be helpful to have a mechanism to switch between the different versions of the query to Swiftype so we can determine which approach gives us the most relevant results. The mechanism can be super ugly and the implementation can be crude since its only going to be used as a testing tool for us.
Let's timebox this to an hour so we can spend the majority of the time on tweaking/researching different techniques to get us results.

Done with branch search-research.


NTR: decreased level of generation of precursor metabolites and energy gene mRNA during vegetative growth

decreased level of generation of precursor metabolites and energy gene mRNA during vegetative growth

(increased yada yada exists)
PMID:27886462

decreased level of generation of precursor metabolites and energy gene mRNA during vegetative growth FYPO:0005826
(it's such a horrible GO term ...)
edit file: b360b83b3f72fd8768b325716e4470ad2b1d99be
release: c32a451b2bda3a433bcb28614fb9f262a7d24a42

yep I know.
Its a useful grouping term though...its even in the slim...
http://www.pombase.org/spombe/related/GO:0006091
I wonder why it isn't just called "energy generation". I don't really know what the precursor metabolites part means.....


Cannot find 'WidgetCenter' in scope

Hi all,
we found a compile problem only when we try to compile with Release Schema on the Simulator.
As in the screenshoot the problem is "Cannot find 'WidgetCenter' in scope"
If we try to run our app with Debug Schema on Simulator/Device it works well, and also if we try to run with Release Schema on real Device  it works well.. the problem seems to be only when we run with Release Schema on the Simulator.
Can you help us ?
We have:
react-native: 0.60.6

react-native: 0.64.0 same error

react-native: 0.60.6
same problem, WidgetCenter not in scope, how we can fix?

Same problem with 0.60.6

same on react-native 0.61.5


example/widgets-gallery packaged+installed crashes on Windows 10

In order to hunt down performance issues customers experienced on Windows 10 I tried to give them a plain app from the official examples as windows installer. As example I chose the widgets-gallery and followed the simple gradlew :desktop:package from the README. gradlew :desktop:run worked fine.
I could install the resulting msi. However when I executed the installed exe the UI did not show up and the launched process disappeared in the task manager. The same happened with the todo-app.
I also changed the TargetFormat from MSI to EXE, installed via the exe installer but could not launch the app.
Unfortunately I don't know if or where logs would be written to determine what was actually failing.
I tried to build the app first within a virtualbox windows image (Version 1809 build 17763.1935 with an AdoptOpenJdk 16 Hotspot) and later on a "real" Windows PC (Version 21H1 build 19043.1110 with an Oracle OpenJdk 16.0.2) with the same result.
As I remember the try in virtualbox was first with the code version of v0.5.0-build262 while on the real PC was the master code from today (around v1.0.0-alpha4-build318).
Can you confirm the issue?

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


update home page

update home page based on new design

viewable at modelviewer.dev/home.html

Thanks! Want to ping Ricardo for a review once this deploys? Would be nice to talk to him about it tomorrow.

yeah, if he's back from vacation


Different background color for markdown inline  blocks

Here's what `code` blocks currently look like in README files:

I think something like this is much more readable:

In that example I've just added these 3 lines to the .prose code CSS block:
background-color: #e6e6e6;
border-radius: 2px;
padding: 0.05rem 0.2rem;

WDYT @gary149?

I agree this is more readable 👍 . The background is a bit too dark but that's fine-tuning. @mishig25 can probably take a look at this (we need to be careful with the CSS cascading to not break anything).


Microsoft.Azure.Mobile.Client.Files is no longer available in NuGet

This packaged is referenced in multiple examples for file upload/download for mobile clients.
The project site: https://www.nuget.org/packages/Microsoft.Azure.Mobile.Client.Files/ mentions no reason for delisting or alternative.

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

ID: b01cf43e-ecf3-ce7a-f9b8-a54918d23601
Version Independent ID: b9b8e1e9-2e1f-ce3a-faed-2d3ccef82a9d
Content: Working with the App Service Mobile Apps managed client library
Content Source: articles/app-service-mobile/app-service-mobile-dotnet-how-to-use-client-library.md
Service: app-service-mobile
GitHub Login: @elamalani
Microsoft Alias: emalani

@XamarinTounsi Thank you very much for bringing this to our attention. Please take a look at the following document: How to use the managed client for Azure Mobile Apps (link) for additional information. In the meantime, I am going to assign this to the appropriate service area for further investigation.

@XamarinTounsi the only reference I found to Microsoft.Azure.Mobile.Client.Files was in the handle errors section. Since that section is more about handling errors and not uploading files, the use of it is not relevant to this doc.
@elamalani could provide additional details; however, I'll proceed to close this issue. Feel free to reopen and tag me if you have any further questions regarding this issue.


Error

This is my error. Can you help me ?
" Traceback (most recent call last):
File "demo.py", line 21, in
model = WHENet('WHENet.h5')
File "/home/hoangnn/pose/HeadPoseEstimation-WHENet/whenet.py", line 13, in init
out = keras.layers.GlobalAveragePooling2D()(out)
File "/home/hoangnn/.local/lib/python3.7/site-packages/keras/engine/topology.py", line 606, in call
previous_mask = _collect_previous_mask(inputs)
File "/home/hoangnn/.local/lib/python3.7/site-packages/keras/engine/topology.py", line 2845, in _collect_previous_mask
mask = node.output_masks[tensor_index]
AttributeError: 'Node' object has no attribute 'output_masks'"

Hi there, can you provide more details about the error?

This is my error. Can you help me ? " Traceback (most recent call last): File "demo.py", line 21, in model = WHENet('WHENet.h5') File "/home/hoangnn/pose/HeadPoseEstimation-WHENet/whenet.py", line 13, in init out = keras.layers.GlobalAveragePooling2D()(out) File "/home/hoangnn/.local/lib/python3.7/site-packages/keras/engine/topology.py", line 606, in call previous_mask = _collect_previous_mask(inputs) File "/home/hoangnn/.local/lib/python3.7/site-packages/keras/engine/topology.py", line 2845, in _collect_previous_mask mask = node.output_masks[tensor_index] AttributeError: 'Node' object has no attribute 'output_masks'"

Change
import keras
To
import tensorflow.keras as keras
in Whenet.py


Implement negative input styles

Needs to be made into a mixin in order to be reused with different colors.

negative bottom margin thingy is derp

Done


Use of header in the resume

Hi there,
Thank you for your template. How can I use the header on the first page only? It seems the header information is also other pages as well, which is recapitulation.
Thanks

I just had the same issue and found a fix here. Go to the _header.tex file. There should be a line which says \fancypagestyle{fancy}, I changed it to \fancypagestyle{firstpage}. Then in the main resume.tex file, right after begin{document} I added the line \thispagestyle{firstpage}. Worked for me :)


Triage access for @emplums

Triage access
👋 I am a defund12.org collaborator requesting triage permissions so I can assist in the Review, Editing, and Approval Team.

Hey can you please provide some examples of contributions you've made to the project? We're slowly rolling out triage access, and prioritizing early on / high volume contributors!


How to access values of the datetime-range

Hi, is there a possiblity of specifying ng-model so that the start and end values can be used?
Secondly, can the dates prior to start date be disabled in the end date selector?
Thanks,
Aman

Hi! Originally these components were not designed to be used with ng-model and as such are not compatible with it. They do offer the same level of two-way binding of data though :)
What is the specific use case you have for using the ng-model directive?
Your second question sounds like a feature request, what do you mean with disabled? Currently the dates outside the range of start and end date are not allowed, e.g. you can click on a date before the selected start date but it won't get set.

We are planning to build a notification system, wherein notification start and end datetime is selected by Admin. So I was planning to use your implementation, and hence the need to get the value selected by the user. So I am now using "start" and "end" variables to get the selected value.  Its solved 👍

Great! Glad it worked out :)


Is there the same app on other platform?

Is there the same app on other platform?
Like Windows or Android....
Because I don't have either MacOS nor iOS....
Please!

Hi,
I developed it only for OSX. Depending on your level of skills, if you use VisualStudio and OF for VS, I am pretty sure you can port it to Windows. Actually, if you do it, let me know.
Sorry I can't help further

Thnak you!I will try it,I am just using Visual Studio. And excuse me,what
is "OF" you mentioned?
And "VS" means  Visual Studio?
2017年2月12日 23:33，"Anto"<EMAIL_ADDRESS>Hi,
I developed it only for OSX. Depending on your level of skills, if you use
VisualStudio and OF for VS, I am pretty sure you can port it to Windows.
Actually, if you do it, let me know.
Sorry I can't help further
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/antocreo/BYO_Master/issues/1#issuecomment-279226134,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AOqrCXMbHWJ25hZ2nuaZdFhYB6FtwaTlks5rbyZBgaJpZM4L-hG3
.

OF [Openframeworks] http://openframeworks.cc/
I am using this to develop the app. You will need to install it for VS (Visual Studio) as well as the dependencies addons.
I don't know much about OF for Windows, but the OF community is quite big and very helpful. I recommend to rely on their forum if you need help with it.
cheers

OK!
Thanks very much!
2017-02-12 23:54 GMT+08:00 Anto<EMAIL_ADDRESS>
OF [Openframeworks] http://openframeworks.cc/
I am using this to develop the app. You will need to install it for VS
(Visual Studio) as well as the dependencies addons.
I don't know much about OF for Windows, but the OF community is quite big
and very helpful. I recommend to rely on their forum if you need help with
it.
cheers
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/antocreo/BYO_Master/issues/1#issuecomment-279227508,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AOqrCYS2PtZGIJwT-jXd4rcRL-JUddvxks5rbytHgaJpZM4L-hG3
.


Refactor testVulnerability for concurrent execution and time it

What's new
This PR refactors testVulnerability function to improve test performance.

The test function now runs concurrently using Promise.all and async funtions.
Uses a timer to measure execution time.

Note: A feature flag is included to skip tests.

Thanks @lloydlobo will review it shortly.

@lloydlobo can we add Vulnerability_test.ts outside of src directory? Because it seems only for testing purpose, not for production.

@lloydlobo can we have a concise documentation for the developers to use this test scripts in contributing.md?


pwsh does not work properly.

I installed the latest powershell 7.3.x and tried using it in telminal, but it keeps printing something weird and also doesn't interact properly, any solutions here?
step:

Install pwsh
Enter pwsh in telminal and send
I get continuous confusing output, and I can't use interactive mode normally:

Stop.Ix��p������������
>> 0��perShell_profile.unml console is readinStop.InformatipStop:PowershellinStop.Ix��p������ux3���perShell_profile.unml console is readinStop.InformatipStop:PowershellinStop.Ix��p�������x3H�|erShell_profile.unml console is readinStop.InformatipStop:PowershellinStop.Ix��p�����b"k��nv3�nv3p��perShell_profile.unml console is readinStop.InformatipStop:PowershellinStop.Ix��p�����h�x3��������-V��perShell_profile.unml console is readinStop.InformatipStop:PowershellinStop.Ix��p�������a���perShell_profile.unml console is readinStop.InformatipStop:PowershellinStop.Ix��p�������perShell_profile.unml console is readinStop.InformatipStop:PowershellinStop.Ix��p������U�����-V��M������perShell_profile.unml console is readinStop.InformatipStop:PowershellinStop.Ix��p�����Ds��>|/��perShell_profile.unml console is readinStop.InformatipStop:PowershellinStop.Ix��p�����nformatipStop:PowershellinStop.Ix��p�������>�|�o��^CPS /home/azureuser>
                                ^CPS /home/azureuser>

It's so weird!
Seems it's a power shell core bug. so unfortunately I haven't a solution for you right now
https://github.com/PowerShell/PowerShell/issues/13023#issuecomment-677942379
Also, a few clues here:
https://github.com/PowerShell/PowerShell/issues/14932
https://github.com/PowerShell/PSReadLine/issues/1376


Changes to the video field and column

Hi all!
I was implementing the video field for one of our clients when I noticed that the field was not storing the video duration, and that was just the attribute we needed 😅. I decided to dive into the code and I wrote a change for it, but along the way I also discovered a few other bugs that I immediately fixed as well.
To sum up I did the following:

[Field] Added functionality to retrieve the video duration from a YouTube video
[Field] Changed the fetchVimeo function to use the new endpoint (the previous one has been deprecated, see here)
[Column] Made the video link align at the same height as the video thumbnail

As always: let me know what you think, if you feel like I should change something or if you think this PR is not a good addition to your project!

A new inspection was created.

The inspection completed: No new issues

Hi @dnwjn!
I took a look at the code and I like it! It's clean. I also think it's a good addition to backpack 😁
I'm wondering if there is more data from the video we could save and provide by default.
Since backpack v4.1 is feature freeze right now, we're mainly fixing bugs, we'll postpone this feature to v4.2.
We're close to that so this PR is going to be reviewed soon ✌
Thank you for the submitting the code 🙌

@promatik Sounds good, looking forward to it! And if you want me to change things or want to discuss other/better ways to implement my changes, let me know 😄.

A new inspection was created.

The inspection completed: No new issues

A new inspection was created.

The inspection completed: No new issues


Bulk resize doesn't resize images on S3

Hi guys,
I have a volume with S3 in which I have already uploaded quite large images.
Then I installed the plugin and performed the "Bulk Resize" in order to resize the existing images. The problem is that it apparently did not resize any image but only update database fields related to its size.
 It therefore appears that the problem may be related to previously existing images.
I am attaching some screenshots in the hope that they will be useful:
Assets
BEFORE

AFTER

AWS S3
BEFORE

AFTER (it's not the wrong screenshot, it looks like the files have not been touched)

Dialog and Log

Configuration

Steps to reproduce

Create a S3 volume and upload large images
Install Image Resizer plugin
Check image's file size and dimensions in Assets section
Run Bulk Resize
Check image's file size and dimensions again

Additional info

Plugin version: 2.1.0
Craft version: 3.6.7
Multi-site: Yes

I can confirm this bug also. After running the bulk resize command, I can locate the images in craft/storage/runtime/assets/sources and they have been resized properly, but the image source on Amazon S3 has not changed.
Craft Pro: 3.7.24
Image Resizer: 2.1.0
Amazon S3: 1.3.0
PHP: 7.4.22

@engram-design FYI this seems to be because the image gets saved to /storage/runtime/assets/sources, but Craft doesn't allow this:
Prevented saving [...]/storage/runtime/assets/sources/REDACTED.jpg as an asset. It must be located within a temp directory or the project root (excluding system directories).

On this line, it uses getImageTransformSourcePath() for a pre-existing file on S3 which seems to end up in the local filesystem as storage/runtime/assets/sources, which is disallowed to be saved because it's in the runtime path.
Fix would be to save this elsewhere (not a system path) and clean it up afterwards.
Refs:

https://github.com/craftcms/cms/blob/7447808979ecd27a92857ade64335fd382215921/src/elements/Asset.php#L3288-L3299
https://github.com/craftcms/cms/blob/7447808979ecd27a92857ade64335fd382215921/src/services/Path.php#L585

I can't seem to replicate that error, no matter what I do I'm afraid. It's true that if no local file exists from S3, it will download a local copy of it to resize, then save it against the assets (which uploads/replaces it). I believe the code you're referring to is only fired when relocating a file, not editing existing ones.
However, the original issue should be fixed, where the details in remote providers weren't being reflected by their local Craft details on size. Fixed for the next release. To get this early, run composer require verbb/image-resizer:"dev-craft-4 as 3.0.10".

Fixed in 3.0.11


fix(#203): update version in pom + fixed syntax

Ref: #203

PR-Codex overview
This PR focuses on improving the functionality and performance of the multimap and list classes.
Detailed summary

Fixed a bug in multimap-tests.eo where a function call was missing parentheses.
Updated list-tests.eo to use integers instead of empty arrays for variables.
Modified range.eo to improve code readability and efficiency.
Updated map.eo to use integer values for size calculations.
Made changes to pom.xml for version updates.
Updated list.eo to fix indexing issues and improve sorting process.
Made changes to multimap.eo to fix indexing issues and improve performance.

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

@yegor256 please have a look

@rultor merge

@rultor merge

@yegor256 OK, I'll try to merge now. You can check the progress of the merge here

@rultor merge

@yegor256 Done! FYI, the full log is here (took me 10min)


Chainer backward basic

Hi, I have read basic tutorial on this link:
https://docs.chainer.org/en/v1.22.0/tutorial/basic.html#core-concept
Here is my code:
import numpy as np
import chainer
x_np = np.array([1,2,3], dtype = np.float32)
x = chainer.Variable(x)
y = x**2
print(y.data, type(y.data)) // output: [1. 4. 9.] <class 'numpy.ndarray'>
y.backward()
stderr:
Traceback (most recent call last):
File "./test.py", line 10, in
y.backward(retain_grad = True)
File "/usr/local/lib/python3.6/site-packages/chainer/variable.py", line 966, in backward
self._backward_main(retain_grad, loss_scale)
File "/usr/local/lib/python3.6/site-packages/chainer/variable.py", line 1095, in _backward_main
target_input_indexes, out_grad, in_grad)
File "/usr/local/lib/python3.6/site-packages/chainer/function_node.py", line 548, in backward_accumulate
gxs = self.backward(target_input_indexes, grad_outputs)
File "/usr/local/lib/python3.6/site-packages/chainer/functions/math/basic_math.py", line 609, in backward
return PowVarConstGrad(self.value).apply((inputs[0], gy[0]))
File "/usr/local/lib/python3.6/site-packages/chainer/function_node.py", line 243, in apply
self._check_data_type_forward(in_data)
File "/usr/local/lib/python3.6/site-packages/chainer/function_node.py", line 320, in _check_data_type_forward
self.check_type_forward(in_type)
File "/usr/local/lib/python3.6/site-packages/chainer/functions/math/basic_math.py", line 624, in check_type_forward
in_types[0].dtype == in_types[1].dtype,
AttributeError: 'NoneType' object has no attribute 'dtype'
chainer.version "4.2.0"
numpy.version "1.14.3"
Thanks for your help!

In very short, Variable.backward() only works when the size of Variable is 1.
I think what you wanted to do was below.
import numpy as np
from chainer import Variable
from chainer import functions as F

x = Variable(np.array([1, 2, 3], dtype=np.float32))
y = x ** 2
loss = F.sum(y)
loss.backward()
print("x.grad: {}".format(x.grad))

x.grad: [2. 4. 6.]

And you'd better reference latest documentation  instead of chainer v1's documentation

@fiarabbit Oh, thank you


GaussianCheckerboard leaks

check the latest output of memcheck: http://buildbot.shogun-toolbox.org/memcheck/20170623-0120.html
MLK ==13454== 8,810 (208 direct, 8,602 indirect) bytes in 1 blocks are definitely lost in loss record 589 of 592
==13454==    at 0x4C2C21F: operator new(unsigned long) (vg_replace_malloc.c:334)
==13454==    by 0x836F7CC: shogun::CDenseFeatures<double>::copy_subset(shogun::SGVector<int>) (DenseFeatures.cpp:622)
==13454==    by 0x1003495: GaussianCheckerboard::GaussianCheckerboard(int, int, int) (GaussianCheckerboard.h:93)
==13454==    by 0x10038FA: LinearTestEnvironment::LinearTestEnvironment() (LinearTestEnvironment.h:49)
==13454==    by 0x1002E42: main (main_unittest.cc:74)
==13454==
MLK ==13454== 8,810 (208 direct, 8,602 indirect) bytes in 1 blocks are definitely lost in loss record 590 of 592
==13454==    at 0x4C2C21F: operator new(unsigned long) (vg_replace_malloc.c:334)
==13454==    by 0x836F7CC: shogun::CDenseFeatures<double>::copy_subset(shogun::SGVector<int>) (DenseFeatures.cpp:622)
==13454==    by 0x10034DD: GaussianCheckerboard::GaussianCheckerboard(int, int, int) (GaussianCheckerboard.h:95)
==13454==    by 0x10038FA: LinearTestEnvironment::LinearTestEnvironment() (LinearTestEnvironment.h:49)
==13454==    by 0x1002E42: main (main_unittest.cc:74)
==13454==
MLK ==13454== 10,810 (208 direct, 10,602 indirect) bytes in 1 blocks are definitely lost in loss record 591 of 592
==13454==    at 0x4C2C21F: operator new(unsigned long) (vg_replace_malloc.c:334)
==13454==    by 0x836F7CC: shogun::CDenseFeatures<double>::copy_subset(shogun::SGVector<int>) (DenseFeatures.cpp:622)
==13454==    by 0x1003495: GaussianCheckerboard::GaussianCheckerboard(int, int, int) (GaussianCheckerboard.h:93)
==13454==    by 0x10039CE: MutiLabelTestEnvironment::MutiLabelTestEnvironment() (MutiLabelTestEnvironment.h:49)
==13454==    by 0x1002E5F: main (main_unittest.cc:75)
==13454==
MLK ==13454== 10,810 (208 direct, 10,602 indirect) bytes in 1 blocks are definitely lost in loss record 592 of 592
==13454==    at 0x4C2C21F: operator new(unsigned long) (vg_replace_malloc.c:334)
==13454==    by 0x836F7CC: shogun::CDenseFeatures<double>::copy_subset(shogun::SGVector<int>) (DenseFeatures.cpp:622)
==13454==    by 0x10034DD: GaussianCheckerboard::GaussianCheckerboard(int, int, int) (GaussianCheckerboard.h:95)
==13454==    by 0x10039CE: MutiLabelTestEnvironment::MutiLabelTestEnvironment() (MutiLabelTestEnvironment.h:49)
==13454==    by 0x1002E5F: main (main_unittest.cc:75)

and this is in case of every unit test…. this is due to the fact that copy_subset if you check already calls SG_REF on the returned CFeatures, i.e. no need for the
SG_REF(features_train)
SG_REF(features_test)

in GaussianCheckerboard::GaussianCheckerboard

@MikeLing @micmn


[Bug] Video does not play on iOS Safari

To reproduce:

Build and deploy the example
Open up an iPhone simulator
Open safari and navigate to the example
Hit play

Current behavior:

Nothing happens

Expected behavior:

The video plays

I'll have a PR ready for this shortly.

Merged #6

Also published on pub.dev


If relationship called by system user then attempt to use unauthentic…

…ated local dao to avoid the unnessary overhead of authentication checks.

Replaced by a Refinement on the nanopay side, as the 'local' naming convention is nanopay.


update to avoid 'Warning: Accessing PropTypes via the main React'

sorry for my last PR, it was a mistake.
this will eliminate this warning (not a big deal, just annoying when you see it everytime the server refreshes):
Warning: Accessing PropTypes via the main React package is deprecated. Use the prop-types package from npm instead.
EDIT: i updated all the packages so they are update with master, babel-cli 6.25.0 is not on the npm list so i tried 6.26.0, style loader and normalize.css are upgraded further than master because, otherwise it gives me warnings

Hi @andersoo thanks for this. Do you mind rebasing and then I would be happy to merge. ❤

@andersoo hey man! I'm not getting that. Are you using the most recent redux branch?


Support GCP-auth for private PyPi repositories

Quoting a Slack discussion:

Hello all, we are running a docker container for our dev environment. I am able to use the container shell and use pip to install packages from our private repository, but as soon as we try to run flows that require packages from that same private repo, it doesn't work, we get a 401 Error. It seems like metaflow is building the conda command but the pip keyring configurations do not get passed through from metaflow-->conda-->pip. Any help would be appreciated on how to configure either metaflow or conda to pass those through!

GCP has the concept of Application Default Credentials, kind of like a "personal service account key" that you can use to authenticate to the different services from your machine.
In this case, I am using it as described here, the part where it talks about the python keyring and ADC. I am passing the GOOGLE_APPLICATION_CREDENTIALS  environment variable to the container and mounting the json "key" file as a volume.
from there, using pip in the container "just works", but it seems like metaflow/conda/pip doesn't respect that same flow

Hello, original requestor from the slack discussion, asking for a follow-up on this please!

The fix is to probably add keyring and keyrings.google-artifactregistry-auth packages in the pypi_base decorator but I will wait for @martinhausio for a confirmation...
Reason: the environment variable GOOGLE_APPLICATION_CREDENTIALS needs keyrings.google-artifactregistry-auth package in order to be able to store stuff...

@savingoyal and @saikonen -- I have tried the above in a fresh new local conda / mamba environment. It turns out that indeed this is the issue. (Will still wait for @martinhausio to confirm though).
But in case this resolves it, this is not really a metaflow issue then...
If we need to automate this, we probably need to inject keyrings.google-artifactregistry-auth as a dependency that gets installed automatically somewhere..
Do you guys have any further thoughts?

Great work looking into this.
One place we could consider adding the dependency is in metaflow_config.py#get_pinned_conda_libs, but there is a consideration to be made with this:
The packages returned by get_pinned_conda_libs depend on the configured datastore. Can we reliably say that only users with a GS datastore will be requiring the keyring package? If so, then adding to the list should be straightforward

After a lot of debugging over slack with both @madhur-ob and @romain-intel , we found the root cause of the problem.
The first issue was that the flow code itself didn't contain the required keyring and keyrings.google-artifactregistry-auth as pointed out by @madhur-ob.
When trying to add those packages, we found out that the builder environment needs to contain those packages for the actual environment to resolve the packages required in the flow.
since pip doesn't support index prioritization, having the authentication to the private repo is required in the builder environment, otherwise it won't be able to resolve any package, therefore not able to install anything if your configuration includes any private repository.
Romain is looking at a solution to make this configurable.


Add support for tpm2-tools serialized handle files

https://github.com/tpm2-software/tpm2-tss-engine/issues/179 applies also here.
It would be good to add support for handle files produced by the -o option of tpm2_evictcontrol. The man page for that tool specifically mentions these being safer to use than a raw handles.

At this moment, one can specify serialized handle as an input key. So, what we are missing are serialized handles as parent keys.


Add tests for GQLV2 Application query & mutations

For https://github.com/opencollective/opencollective-api/pull/7508

Commit will be cherrypicked and edited directly


IntelliJ missing comma causes code below it to be marked as dead instead of warning about missing comma

From @ScottS2017 on December 11, 2017 19:29
Some other unexpected behavior from IntelliJ. One would expect it to warn about a missing comma, the same way we're warned about a missing ; ] or }. However, instead of that, it just marks all code below that point as "dead code" and turns it gray. As you know, dead code also has tips disabled, which doesn't help matters.
Since I was getting warnings for missing ; ] and } I assumed that I wasn't missing anything since I wasn't getting a similar warning. Therefore, I chased my tail for hours trying to figure out what was wrong with other things in the code. Here is an example of code that this actually happened on, with the text changed for simplicity:
body: new Container(
        child: new Center(
          child: new Column(
            children: <Widget>[
              new Text("Placeholder Text") //Missed a comma here,
                                            //all code below here
                                           // is gray "dead code"
              new RaisedButton(child: new Text("Press me!"))
            ],
          ),
        ),
      ),

Copied from original issue: flutter/flutter#13485

From @sethladd on December 11, 2017 19:35
cc @devoncarew @mit-mit

I do see analysis error in your sample, but they're too subtle in this case. They're associated with a 1-char missing location where the the ; / ] / ) might be.

In order to improve this, we'll either need to associate the error with a larger range of text (an enclosing expression?), or improve the in-line error display in IntelliJ. I think the 2nd one may be the right choice here.

/cc @alexander-doroshko for any ideas for how to improve in-line error display in IntelliJ

I'm not sure we can fix it at the IDE end.
The first error range is new keyword - and that's ok. I'd expect analyzer to report Expected to find comma error here (currently it is Expected to find ) or ]).
Looks like parser recovery is not ideal because of the missing comma. In addition to red new keyword, analyzer reports dead code and a dozen of other errors in other places, and this confuses developer. I know parser recovery is one of the trickiest things.

Well, from my standpoint it just pays to remind ones self that if you see dead code, quickly try a comma after the very last line of live code. I know it's far from ideal but if it's put out there as a tip then at least this might not lead to confused devs. It could end up being "just one of those things" that there's a 2 second work around for.

@devoncarew why can't the analyzer recover here and just present a more subtle 'missing comma' warning?

@devoncarew I don't have permissions to change issue labels any more. I don't think anything needs to be done at the IDE end. Do you?

@mit-mit, we likely could recover better here. I believe there are still some opportunities to improve the presentation of errors in-line errors in IntelliJ. In the original issue, I think one problem was that the errors (1 char wide) were not noticed.

We could recover better, but I think the right place to address this is in the fasta parser. I have sent out a CL (https://dart-review.googlesource.com/c/sdk/+/29600) adding a (currently failing) test for this and a few related recovery situations so that we have a record of the work needing to be done in fasta.


Fix bad footer from leap-day theme

The GitHub pages leap-day theme has a footer that overlaps the content instead of spanning both navbar and content.  Override the theme's layout.

This appears to be a simple fix but is untested.  Check page appearance after Jekyll regenerates the website.

@davaya  I merged it in but not sure I see the difference (but admittedly I didn't look before merging to see what the orignal problem was)


Update json field not working

Laravel Version: 5.4.26

Description:
I have json settings column in MySQL with value {"buh": {"admins": ["12", "13"]}}
This update not working $model->update(['settings->buh->admins' => [12]]);

Make sure you add the json attributes to the fillable array of the mode.

@themsaid For shure i added settings field into $fillable!

@themsaid Why you closed issue?

Now you'll need to add the field attributes as well.


please add docker support

Hi @Ujeeee,
I will try to include docker support with the upcoming version which is version 2.0.x
Please be patient enough for the next release 🤠

great
On Wed, Apr 13, 2022 at 12:23 AM Albin Varghese @.***>
wrote:

Hi @Ujeeee https://github.com/Ujeeee,
I will try to include docker support with the upcoming version which is
version 2.0.x
Please be patient enough for the next release 🤠
—
Reply to this email directly, view it on GitHub
https://github.com/albinvar/Github-Telegram-Bot/issues/5#issuecomment-1096994135,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ASHNED7HQOZQXDLQW54DCR3VEWWQTANCNFSM5NK6GCYQ
.
You are receiving this because you were mentioned.Message ID:
@.***>


Feature Request: Darkmode

A lot of devs use darkmode on most of their tools, Pocketbase is one of a few tools that don´t have darkmode. This hurts devs eyes and is very uncomfortable.
I´ll fork the project and work on this a bit myself but i thought an issue would be appropriate.

Please check https://github.com/pocketbase/pocketbase/issues/407.
Dart mode for now is very low priority (at least until we stabilize the API and UI changes).
If you haven't already, you can check the current roadmap and tasks priority in https://github.com/orgs/pocketbase/projects/2.


Update java cookbook dependency to >=8.2

The java cookbook is clearly outdated since v11.1 has been released.
The kitchen test works the same with java cookbook in 8.2 and 11.1

I've forgotten to create a feature branch, I will open a new PR


fix: Use non-root user in docker file for security

:tada: This PR is included in version 1.1.2 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


add_l_or_r_to_identifier now has case for type exp.Lambda

Addresses Issue #965, allowing lambda functions to be used in the blocking rules for generating predictions if users want to generate ROC/ precision-recall curves.

The Benchmark and Autoblack tests don't seem to pass if pull requesting from a fork - the pull request apparently has to come from a branch of the splink repo itself. As I don't have the permissions to create branches, it seems I need someone to create a branch on my behalf, merge my fork branch into it, and then pull request that new branch into master. @RossKen

Proof of the tests passing on my fork.

Could you add a test to test_sql_transform for this

Following some admittedly clumsy rewrites, test has been added.

Could you add a test to test_sql_transform for this


[lib.webworker.d.ts] Worker constructor type missing optional options

TypeScript Version:  3.1.3 (not fixed in master as well)
https://github.com/Microsoft/TypeScript/blob/release-3.1/lib/lib.webworker.d.ts#L2699

Search Terms:
web worker options
Code
new Worker('https://some-url', {type: 'module'})

Expected behavior:
Type check should pass.
Actual behavior:
Second (options) parameter isn't specified in Worker types, so type check fails.
Playground Link:
http://www.typescriptlang.org/play/#src=new Worker('https%3A%2F%2Fsome-url'%2C {type%3A 'module'})
Related Issues:
Couldn't find existing issue discussing this.
Reference:
https://developer.mozilla.org/en-US/docs/Web/API/Worker/Worker

PRs welcomed. You can find more information about contributing lib.d.ts fixes at https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md#contributing-libdts-fixes.

@weswigham I gave it a try... cloned the tsjs-lib-generator repo, edited overridingTypes.json > interfaces >interface > Worker, adding:
"constructor": {
    "override-signatures": [
        "new(stringUrl: string, options?: WorkerOptions): Worker"
    ]
},

That seemed to modify the generated constructor the way I wanted.
I couldn't, however, find a proper way to add the WorkerOptions interface. Tried adding it to addedTypes.json > mixins:
"WorkerOptions": {
    "name": "WorkerOptions",
    "properties": {
        "property": {
            "type": {
                "name": "type",
                "override-type": "WorkerType",
                "required": 0
            },
            "credentials": {
                "name": "credentials",
                "override-type": "RequestCredentials",
                "required": 0
            },
            "name": {
                "name": "name",
                "override-type": "string",
                "required": 0
            }
        }
    }
}

but that resulted in a global WorkerOptions constructor variable.
Not sure I'm even editing the correct files. Could use any pointers... :)

I think we normally use the dictionaries section for interfaces.

@weswigham thx for the tip. I also had to adjust knownTypes.json for the interface to actually be exposed. Opened PR.


Fix missing file from sdist

Fixes #166 and ensures that such problems can't happen again by making CI build the package using haskellPackages.buildFromCabalSdist.

@ErinvanderVeen Please make a new release (should be <IP_ADDRESS>) on Hackage


Update theme

There has been a handful of recent changes to the theme. The starter site needs to be updated to include these changes. This includes adding code to the starter site to demonstrate some of the new theme features. Specifically:

[x] Implement an example blog
[x] Implement a page that demonstrates using web components #5
[x] Use as many of the layouts as possible
[x] Use as many variables that are supported by the _config.yml file as possible
[x] Use layout from theme as defaults in the _config.yml file #12

Done in PR #15.


Accordion - Adds new component

Adds new accordion component

hi @anechol still in progress ? let me know when is ready to review

Yep this is still in progress. Once it's ready, I'll pull it out of draft.

This is ready for review

LGTM. Good job!
Please squash all commits in a single one

Done!


swagger-hapi statusCode not returned properly

From a project generated with the cli, it's not possible to return a proper status code. swagger-hapi is version 0.1.0. Here's the return code method used:
   res.statusCode = 401;
  res.end(data);

All is gotten is statusCode 200 notwithstanding the status code passed.

Changed default.yml with this and it fixed the issue:
    # pipe for all swagger-node controllers
    swagger_controllers:
      - onError: json_error_handler
      - cors
      - swagger_params_parser
      - swagger_security
      - _swagger_validate
      - express_compatibility
      - _router


[#154515257] Refresh access tokens

What
Issue fix. See commit message for details.
How to review
This repository has very little tests. I've moved the client into its own package in order to gradually move towards a more testable codebase, but until we have tests we rely on manual testing for new features, bug fixes, and regression testing.
To test this bug fix:

Use the existing latest plugin version (0.0.3) and run the following:

cf conduit service-instance-name -- sleep 610

It should leave an app behind because the token would have expired after 10 minutes.

Install this fix by checking out this branch and running make install.
Re-run the test above. It should clear up the app. Note: it may take several seconds for cf apps to reflect the fact the app has been deleted.

Regression testing:
Urm.. use the plugin, play about with it. Make sure you can still do basic stuff.
Release
I don't know what the release process is for this plugin. We will have to look into it.
Who
Only members of the A-Team (except me and @46bit)

Also I tested if the token refresh fails, the app writes the following message to stderr:
failed to delete __conduit_41110__ app, please delete it manually

👍 With my new commit, SIGHUP is handled properly and #30 is fixed.

@46bit nice work, I'll test your SIGHUP change and carry on with the remaining tasks.


Update kops.md

fix bad url

This change is

We should use relative URLs, so the original was fine.


Not an issue but a question

Is it possible to find a pointer in the game which causes the Master Sword to always be glowing anywhere?

You are best off asking in gba forums about this,


Publishing to artifactory does not work

Hi,
Thank you for the interresting article and the demo project.
I'm applying the same configuration and try to publish on an internal artifactory with this configuration:
artifactory {
    contextUrl = "${artifactoryHost}"
    publish {
        repository {
            repoKey = 'libs-snapshot-local'
            username = "${artifactoryUser}"
            password = "${artifactoryToken}"
            maven = true
        }
        defaults {
            publications 'pluginPublication'
            publishBuildInfo = true
            publishArtifacts = true
            publishPom = true
        }
    }
}

But it does not publish the "markers" and a project including it can not resolve the plugin.
Any idea, suggestion?

Hey there,
It's been a while since I've had the opportunity to work with Gradle plugins so I can't tell off the top of my hat. Your configuration looks fine at first glance. Where/how do you define your pluginPublication?

Here is the configuration for pluginPublication:
publishing {
    publications {
        pluginPublication(MavenPublication) {
            from components.java
            groupId project.group
            artifactId project.name
            version project.version
        }
    }
}

Under the current circumstances I don't have access to an Artifactory instance, however, just playing with it locally netted me some interesting results.
When I tried publishToMavenLocal, Gradle blew up stating:
Cannot publish multiple publications with coordinates 'com.praqma:demo:1.1.0' to repository 'mavenLocal'
Downgrading my Gradle wrapper to 5.5.1 solved this, and published the plugin just fine.
Try changing your Gradle wrapper version to 5.5.1 by calling ./gradlew wrapper --gradle-version=5.5.1, or see if upgrading to a more recent version also fixes it.
Also, when consuming the plugin, I bumped into the issue that my blog snippets try to apply the plugin at version 1.0.0, but the GitHub project publishes at 1.1.0, boneheaded mistake but it happens to all of us. Make sure you're consuming the version you're publishing.

Closing due to inactivity.


Migrate Toast Component

As stated in #11
We want to migrate QR code from website into ui-js.
This aims to consolidate components in thenewboston applications (Website/Account-manager).

also try to make tests & storybook component for it. That will be part of the requirement

HI there - this issue and respective PR https://github.com/thenewboston-developers/ui-js/issues/12 has been open for the past 19 days. Following up to close and be remitted for the work done here.


lib/std: add Path::last_error to aggregate errors on path services.

It it not complete but still a start

+1

I would prefer the name error to last_error. The longer name does not add any useful information and since it does not begin with err... it is harder to find in the doc and autocomplete Also, we usually rename it to error locally each time we use that attribute:
path.do_some_work
var error = path.last_error
if error != null then print "{path} raised {error}"

@xymus I can use a short error, I used last_error because of its use in stream. I can do a mass renaming if people agree with your proposal.

Major rewrite to handle all the error cases for the Path objects.
I kept the last_error name because I think it make the reading easier as it hints that the value is related to a previous method on the path object.
Please spend time on reviewing and discussing the API and the doc as I aim v1 material here.

reroll+update: add more services in path and improve error management (it was missing in file reading for instance).

Tests are passing, +1 are missing

:shipit:


Mouse keybind support?

i'd like to use (or have the option to use) the mouse wheel to zoom in and out. or just mouse button support for the keybindings menu at all. Other binds I would personally use would be like how left click goes to the next image, right click goes back an image.

Ctrl+Mousewheel will do the zoom in/out.  Note that the zoom mode has to be set to manual for zoom to work.
Left click by default will navigate to the next image, but if you enable the Smart mouse navigation option in the settings it will make it so that left clicking on the left side of the image will go backwards and left clicking on the right side will go forward.
Not having mouse button support in the keybinding settings is a limitation in GTK+, and there isn't much I can do to easily get around it.

ah i see, well i appreciate the quick reply and explanation. but i've tried setting ctrl + mouse wheel but it just sits on "New accelerator.." while i spam ctrl + mousewheel up/down. I'm trying on both win10 and arch linux.


SampleGen: Configure google.protobuf.Timestamp request field

java.lang.IllegalArgumentException:
Tried to assign value for unsupported type google.protobuf.Timestamp;

We should support the following features:

P0 allow a Timestamp to be set to the current time now()
but not allow it to be configured as a method/CLI parameter
P1 allow passing a string representation of the Timestamp in JSON format
See: JSON Mapping

parameters:
  defaults:
  - timestamp_one=now()
  - timestamp_two="2017-01-15T01:30:15.01Z"
  attributes:
  - parameter: timestamp_one
    description: A timestamp field (defaults to current time)
  - parameter: timestamp_two
    description: |
      A timestamp field, defaults to 1/15/2017
      Can be provided as method param or CLI argument
    sample_argument_name: timestamp_two

/cc @googleapis/samplegen

Might be nice to be able to render a standard comment above where we set timestamps to now() with a note about how to translate that given language's idiomatic Date/Time to a google.protobuf.Timestamp
Excerpt from timestamp.proto
// In JavaScript, one can convert a Date object to this format using the
// standard
// [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)
// method. In Python, a standard `datetime.datetime` object can be converted
// to this format using
// [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with
// the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use
// the Joda Time's [`ISODateTimeFormat.dateTime()`](
// http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D
// ) to obtain a formatter capable of generating timestamps in this format.
//
//
message Timestamp {
  // ...
}

A not-so-elegant workaround:
parameters:
- defaults:
  - timestamp_one.seconds=35
  - timestamp_one.nanos=45

Generated code in java as an example:
Timestamp timestampOne = Timestamp.newBuilder().setSeconds(35).setNanos(45).build();

Not sure if this is something you would like to generate (you probably don't), but just wanted to call out that this is an option, and should have already been implemented.

I don't know off-hand if second == seconds since epoch as returned by like date +'%s' or if there's some math to adjust it... that's mainly why I find it annoying.
I could just find a # seconds that's for Jan 1, 2000 or something and use that in every sample 😛
That's a good call, that should totally work

Moved to backlog: https://github.com/googleapis/gapic-generator/wiki/feature-backlog/


firebase-app-distribution 0.5.0

New Pull Request Checklist
Please mark the points which you did / accept.

[x] I will not move an already shared step version's tag to another commit
[x] I read the Step Development Guideline
[x] I have a test for my Step, which can be run with bitrise run test (in the step's repository)
[x] I did run bitrise run audit-this-step (in the step's repository - note, if you don't have this workflow in your bitrise.yml, you can copy it from the step template.)
[x] I read and accept the Abandoned Step policy

basically fixes https://github.com/guness/bitrise-step-firebase-app-distribution/issues/12 using
curl -sL firebase.tools | bash instead of npm -g install firebase-tools.

basically fixes guness/bitrise-step-firebase-app-distribution#12 using
curl -sL firebase.tools | bash instead of npm -g install firebase-tools.

Do you think install firebase tools globally is required?

Well, basically it is already installed on most of the stacks on bitrise, globally. so this curls makes a quick check, and installs it only if missing.

@guness how long does it usually take for the new version to appear in Bitrise?

@brittonjg couple of mins after the PR merged.
if your task is urgent, you can use
- git::https://github.com/guness/bitrise-step-firebase-app-distribution.git:

instead of on bitrise.yml
- firebase-app-distribution:

until PR is merged.

This did solve my issue as well. Any ETA when it will be approved and merged?

@viktorbenei any help ?

please merge it @viktorbenei  @trapacska

I'll ping the tooling team also assigned the review to them.


get_evaluation() implemented wrong

When calling get_evaluation() I expect the command eval to be put into stockfish. Currently the skript just executes a bestmove search and then uses the score of stockfishs best move.
This feature makes sense but is very misleading since it is called "get_evaluation". Maybe name it "get_bestmove_score" and actually call eval for "get_evaluation".
Very quick fix would be to at least add a note in the Readme.

This project is now maintained here (#130). Could you close this issue here and open it again on the fork? Thanks

sure!


[14.0] ISPN-14691 Fix actuator metrics load for unauthorized users

https://issues.redhat.com/browse/ISPN-14691

Merged, thanks


FixedGain that implements Seek

A FixedGain or (StaticGain?) signal is useful for cases where one wants to set how loud something is when it starts playing, but never adjust the loudness while it's playing. This allows implementing Seek which avoids needing a buffer for spatialization.
Here's a version I've implemented outside oddio:
use oddio::Frame;

pub struct FixedGain<T> {
    gain: f32,
    inner: T,
}

impl<T> FixedGain<T> {
    pub fn new(signal: T, gain: f32) -> Self {
        Self {
            gain,
            inner: signal,
        }
    }
}

impl<T: oddio::Signal> oddio::Signal for FixedGain<T>
where
    T::Frame: oddio::Frame,
{
    type Frame = T::Frame;

    fn sample(&self, interval: f32, out: &mut [Self::Frame]) {
        self.inner.sample(interval, out);
        for frame in out {
            for v in frame.channels_mut() {
                *v *= self.gain
            }
        }
    }
}

impl<T> oddio::Seek for FixedGain<T>
where
    T: oddio::Signal + oddio::Seek,
    T::Frame: Frame,
{
    fn seek(&self, seconds: f32) {
        self.inner.seek(seconds);
    }
}

Per sidechannel discussion, I'd like to get more input on use cases for this. Experience so far is that it is sufficient to amplify audio to the desired level once when it's loaded, which requires no changes in oddio and saves some CPU besides.

This was implemented in https://github.com/Ralith/oddio/pull/82. I forget what my line of reasoning was, but it's there now! Maybe if you wanted to play the same Frames at a variety of different volumes?


wishlist and compare button  not properly allign  we search any product

Bagisto Version

[ ] master branch

Steps To Reproduce

go to velocity and search any product

Actual Result
https://user-images.githubusercontent.com/96044834/150078936-ba45235f-b22f-4e2f-873e-6ee9eaf34c6c.mp4

same issue in mobile view

The card is bigger on the search and category page and that aligned correctly.


Fix OwnTracks state names

Description:
Fixes OwnTracks state names sometimes not matching their corresponding zone.
Related issue (if applicable): fixes #5453
Checklist:
If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated in home-assistant.github.io

If the code communicates with devices, web services, or third-party tools:

[ ] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[ ] New dependencies have been added to the REQUIREMENTS variable (example).
[ ] New dependencies are only imported inside functions that use them (example).
[ ] New dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[ ] New files were added to .coveragerc.

If the code does not interact with devices:

[ ] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[ ] Tests have been added to verify that the new code works.

According to the tests it seems to be by design that the location name gets spaces added.
@pavoni can you give some feedback on this PR?

I think there was an issue as to whether to use the Friendly name or the state name in the call to see. Justing by the code I settled on state name.
I do remember having trouble with this - a few of my zones are two work names (eg My Office / my_office) - and I settled on this as a fix by experimenting.
I do remember that the home zone worked in any case.
Would suggest carefully testing the new code with multi word zones before merging.
I think I saw a similar issue myself (https://github.com/home-assistant/home-assistant/issues/1588) at the time I thought that the issue was some inconsistancy between whether zones should be set to friendly_name or state_name.

Hi @tboyce1,
It seems you haven't yet signed a CLA. Please do so here.
Once you do that we will be able to review and accept this pull request.
Thanks!

Hi @tboyce1,
It seems you haven't yet signed a CLA. Please do so here.
Once you do that we will be able to review and accept this pull request.
Thanks!

I've been using this with no apparent issues. Most of my zones are single words though. I added a couple that are multiple words and have been testing those today and everything seems to work fine.

No issues for me using multiple word zones and waypoints.

Ok, will merge it.


python311Packages.eufylife-ble-client: 0.1.7 -> 0.1.8

Description of changes

Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

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

[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 260154 run on x86_64-linux 1

5 packages built:

home-assistant-component-tests.eufylife_ble
python310Packages.eufylife-ble-client
python310Packages.eufylife-ble-client.dist
python311Packages.eufylife-ble-client
python311Packages.eufylife-ble-client.dist


My Stories: Table View - Update Author column to show "Me" when current user is author

While we are  exposing the author of the story in the table view, we are not updating the column to say "Me" when the author is the current user. We need a way to know when the author is the current user and update the text accordingly.

Current view where the 'admin' should all be "Me"

Not needed per Sam


failed to compile with tsc

Description
I encountered some issues while compiling with TypeScript, and here is a minimal reproducible example.
Reproduction Steps
just run npx tsc
Logs
stdout.txt

This seems to be an issue with my configuration, but I don't know how to fix it, sorry :(

I added "skipLibCheck": true to tsconfig.json and it works now 😄