[BEAM-12736] ProtoByteBuddyUtils fix enabling field names defined in camel-case to be used with ProtoMessageSchema

ProtoByteBuddyUtils.protoGetterName() previously depended on field names being snake-case. Now it attempts method identification first with snake-case, and then with camel-case.
R: @reuvenlax

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[X] Choose reviewer(s) and mention them in a comment (R: @username).
[X] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

@chrishinds - Could you look at the open comments please?

It would be a shame to close, it's very close. I think the only blocker is the missing test case for oneof/camel-case

@TheNeuralBit -  I am not sure the author is still active. If you have time, feel free to edit the PR. Or merge, and file a follow up jira.


[SPARK-19552] [BUILD] Upgrade Netty version to 4.1.8 final

What changes were proposed in this pull request?
We should use Netty 4.1.8 due to one security concern and other bug fixes - we'll need to change Spark code as well as the usual misc files (like pom.xml and deps files) to enable this
How was this patch tested?
Existing unit tests - this is a WIP as this introduces some new test failures and I have dummy implementations for the required methods I've added.

Jenkins, retest this please

Test build #72715 has started for PR 16888 at commit cc4fb37.

Test build #72715 has finished for PR 16888 at commit cc4fb37.

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

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

Merged build finished. Test FAILed.

Shouldn't we use netty-4.0.44.Final rather than 4.1.x?

BTW for Netty we shouldn't just bump to the highest version. We should use the maintenance branches.

Updating to 4.0.44 should be fine (though, we got bit even by a maintenance update behavior change a while ago) but apparently that doesn't include the security fix in question. That said, it's not clear what the security issue is or whether it affects Spark -- can we start with that?
Updating to 4.1.x is probably a good idea, eventually, even if it's not necessary, but it will require some care and testing. It sounds like this should be marked as [WIP] and doesn't work yet. If it's troublesome we may not proceed with this.
CC @zsxwing

Netty 4.1.1 and above has the fix in (a change to OpenSslEngine)- Netty 4.0.x does not, and the implementations of OpenSslEngine differs substantially between the releases (so a simple case of adding in the fix would be non-trivial and potentially lead to complications, this would be the path of least resistance)
You can find more info on the CVE I'm concerned with at: https://www.versioneye.com/java/io.netty:netty-all/4.0.43.Final
To be impacted it sounds as though we need to do several things - use Spark with Netty 4.1.0 and below (including the 4.0.x releases), have tcnative on our classpath and we specify to use the OpenSslEngine (there's a useful overview on why you'd want to do this here which mentions it being a drop-in replacement for the JDK classes and offers superior performance). Info on using tcnative here
We don't include any of the netty/tcnative native libraries for Spark so I don't think we're impacted - but moving up to take on other fixes as well would be useful (and if it so much faster we could see shuffle-intensive workloads speedup by upgrading and including natives later on). I'll set this as a WIP and look into why the tests fail.

OK, so there isn't actually a security case here (might update the JIRA accordingly). Updating to 4.1.x seems like a fine thing to try. If you can get it to work well, great.

Are there specific benefits brought by updating to 4.1 of Netty? Netty is so core to Spark that any bug in it would be extremely difficult to debug (yes we have founds bugs in Netty and helped fix those in the past). So unless there are significant benefits, please do NOT update to 4.1.

@a-roberts Spark doesn't use Netty's SSL handler, so it won't be a problem.

I'll close this one then until there ever is a need to upgrade, cheers

taken over by https://github.com/apache/spark/pull/19884 ?


PLUGIN-1769: Add retries for fetch in PubSubRDDIterator

Added retries on retryable api exceptions in PubSubRDDIterator.hasNext()

Can you please add unit tests?

I have now used the retry settings in the pubsub client directly. Hence this change cannot be unit tested easily


Allow Consuming Apps to Exclude TypeScript Maps

Currently, the .map file of our JavaScript bundle is very large, 26 MB. We should provide a way for the consuming application to optionally skip this file when publishing/releasing.
https://github.com/NuGet/Home/issues/9853 is an open gissue to add multiple versions to a nuget package, but that is not implemented yet.

Found a working pattern for this, will include in the next docs release:
   var provider = new FileExtensionContentTypeProvider();
   provider.Mappings[".wsv"] = "application/octet-stream";
#if RELEASE
   provider.Mappings.Remove(".map");
#endif
   app.UseStaticFiles(new StaticFileOptions
   {
       ContentTypeProvider = provider
   });


FIREFOX ONLY: transactions history visually broken - transactions overlapping with pagination

Still Cannot get Firefox to load markets


Possible bug of premature automate call in CompositionEngine._createControllerAndSwap

https://github.com/aurelia/templating/blob/90087a0dd4af40a6305ebd3810a40e39b8c362ed/src/composition-engine.js#L110-L118
@EisenbergEffect while chasing this issue, that appears recently, (https://discourse.aurelia.io/t/using-require-breaks-router/1411/17), I noticed that it's always calling automate before waitForCompositionComplete(), which could potentially be wrong. Should it be like the following: moving automate inside promise and right before calling _swap
    return this.createController(context).then(controller => {

      if (context.compositionTransactionOwnershipToken) {
        return context
          .compositionTransactionOwnershipToken
          .waitForCompositionComplete()
          .then(() => {
            controller.automate(context.overrideContext, context.owningView);
            return this._swap(context, controller.view);
          })
          .then(() => controller);
      }

      controller.automate(context.overrideContext, context.owningView);
      return this._swap(context, controller.view).then(() => controller);
    });

cc @huochunpeng

Did it solve the weird timing bug with bluebird?
BTW, I think you can dry it to
return this.createController(context).then(controller => {
      if (context.compositionTransactionOwnershipToken) {
        return context
          .compositionTransactionOwnershipToken
          .waitForCompositionComplete();
      }
}).then(() => {
      controller.automate(context.overrideContext, context.owningView);
      return this._swap(context, controller.view);
}).then(() => controller);

Yes, you can solve bluebird bug with following patch

import { CompositionEngine } from 'aurelia-templating';

CompositionEngine.prototype._createControllerAndSwap = function(context) {
    return this.createController(context).then(controller => {
      if (context.compositionTransactionOwnershipToken) {
        return context
          .compositionTransactionOwnershipToken
          .waitForCompositionComplete();
      }
    }).then(() => {
      controller.automate(context.overrideContext, context.owningView);
      return this._swap(context, controller.view);
    }).then(() => controller);
  }

Any update on this fix?
More people are affected by this nasty bug.
https://stackoverflow.com/questions/51348676/aurelia-nav-bar-not-showing-up-any-more

@bigopon Do we have a PR for the suggested fix? We could merge that and get it out Monday or Tuesday. I've got another bug fix in binding that's planned to go out then too. Let me know.

@EisenbergEffect I can create a PR from the snippet above. We will have 2 choices:

Keep the old behavior of repeat, by reverting my old PR https://github.com/aurelia/templating-resources/pull/349
Apply the above fix, keep the repeat fix.

1 will solve no bug, but it will bring back the long "stable" behavior
2 will solve both bugs, but i'm not certain what this fix implies for existing applications. It seems to have been like that since the start https://github.com/aurelia/templating/commit/b8e51df0c2d94254172eca53b66031a37664bc91#diff-4bfd9a6641ba63793471805ad54f3324

To me,
Option 2 is needed anyway to normalise native/bluebird promises, there might be more edge cases if not fixed.
Option 1 is for future. After @fkleuver implemented changeQueue in vNext, all rendering will be processed when model is not mutating. aurelia/templating-resources#349 will be unnecessary by the time.

@huochunpeng Yeah about that, the concept I had in mind is starting to manifest itself in an almost complete rewrite of binding as well as a large amount of small changes in templating.
The changes are too fundamental for a "quick backport" and our current test coverage isn't nearly high enough to confidently release something like that. It would probably have to come in the form of a "backwards-compatible version of vNext". I don't see it happening in this code base.

@bigopon Did @huochunpeng 's version fix the issue as well?

@davismj What version is it ?

@bigopon I can't think of a reason why waiting to call automate until after the transaction is complete would be a problem. Can you submit a PR for this change? I can get it merged and released today or tomorrow.

K, i'll push it up soon.


Rack / HPE Aruba  shape category shows white box

The HPE Aruba categories (Gateways, Security, and Switches) for shapes show up as white boxes when leaving the editor. Is there a place in the files to add these categories as I am assuming they were added since the last update.

This looks related to #313 and #314. Are you by any change using grafana 8.1.2?

This looks related to #313 and #314. Are you by any change using grafana 8.1.2?

#313 -- yes i am using grafana 8.1.2 version

No, it is version 8.1.1 Enterprise Free.

means this issue happen on 8.1.2 also 8.1.1. i am using 8.1.2 version and facing the same issue.

Hi Sourve,
This may be another issue, since the extension-based file check was introduced in grafana 8.1.2, I see these HPE shapes in the flowcharting 1.0.1b snapshot with the right access rights, which version of the flowcharting plugin are you using?
If I'm not mistaken, the extension-based file check was introduced to replace a check based on file permission, the executable bit should not be set (sudo chmod uog-x var/lib/grafana/plugins/grafana-flowcharting/dist/libs/drawio/stencils/rack/rack/hpe_aruba/*.xml).
$ ls -lsa /var/lib/grafana/plugins/grafana-flowcharting/dist/libs/drawio/stencils/rack/rack/hpe_aruba
total 4132
   4 drwxr-xr-x 2 grafana grafana    4096 Dec  6  2020 .
   4 drwxr-xr-x 3 grafana grafana    4096 Dec  6  2020 ..
 308 -rw-r--r-- 1 grafana grafana  313881 Dec  8  2020 gateways_controllers.xml
  96 -rw-r--r-- 1 grafana grafana   97778 Dec  8  2020 security.xml
3720 -rw-r--r-- 1 grafana grafana 3807659 Dec  8  2020 switches.xml

Kind regards,
Dennis

I am using 1.0.0b snapshot, I did not see a 1.0.1b in the archives. When I run the list it shows that the folder exists with the difference being that root is in place of grafana user and group. Is this due to how I installed the plugin that may be causing this problem?
$ sudo ls -lsa /var/lib/grafana/plugins/grafana-flowcharting/dist/libs/drawio/stencils/rack/rack/hpe_aruba total 4132    4 drwxr-xr-x 2 root root    4096 Dec  6  2020 .    4 drwxr-xr-x 3 root root    4096 Dec  6  2020 ..  308 -rw-r--r-- 1 root root  313881 Dec  8  2020 gateways_controllers.xml   96 -rw-r--r-- 1 root root   97778 Dec  8  2020 security.xml 3720 -rw-r--r-- 1 root root 3807659 Dec  8  2020 switches.xml

Hi Sourve,
The executable bits are not there on the *.xml files, so that looks ok. I don't expect that the root user/group will have much difference since the files are readable for others, but there may be a directory in the path for which that is different, you could of course change the user&group for the whole plugin and see if that solves your problem:
sudo chown -R grafana:grafana var/lib/grafana/plugins/grafana-flowcharting/
Kind regards,
Dennis

Couldn't figure anything out. Did find out that Rack/IBM also has this issue but everything else in the rack directory shows up fine. They seem to match other xml files in the same directory as them so I can't find a cause. Thanks for the suggestions though.

I am using 1.0.0b snapshot, I did not see a 1.0.1b in the archives.

My bad, I mistyped, I'm also using v1.0.0b
Dennis

There may be some inconsistency in the shape names (first line of the xml files) versus folder names, maybe that is why they are not found.
E.g. in rack/ibm.xml it has name=mxgraph.ibm, and others like rack.hp show mxgraph.rack.hp. rack/rack/hpe_aruba/gateway_controllers.xml has name=mxgraph.rack.hpe_aruba.gateways_controllers. I.e. a 'rack' is missing in those path names.

Might be, I have no solution for it and can't edit the files or it will become a manipulated signature and wont load. I'm guessing the same will happen if I try to move the files directory.

You may be right, a new plugin version may need to be created, the drawio shapes may have been fixed upstream.
Until now only Arnoud has provided those, but he has not been active lately, I don't have so much experience with this.
Kind regards, Dennis


DirectWriteCore.dll not found

I cannot run text rendering sample, it complains about DirectWriteCore.dll not found when I try to run it after building.

Hi @sergeyn, can you provide more information about the problem you're encountering? Is there a specific message? Do you see the Microsoft.WindowsAppSDK package installed in the project?

Hi @btueffers ,
I'm trying to build/run unpackaged project "DWriteCoreGallery"  under debugger to see how it works.  There's no reference to windowsappsdk. There's one in (packaging) project , but that one I cannot debug.

Hi @sergeyn, sorry for the delay on this. I just attempted to reproduce your issue but wasn't able to - on my machine, I was able to successfully build and run the DWriteCoreGallery sample. To do so, I followed the instructions on this page and made sure to install the correct workloads and components for Visual Studio 2022, and additionally installed the Win11 SDK from the optional VS components list. I also made sure to set the DWriteCoreGallery (packaging) project as the startup project. I could then run the sample app, set breakpoints, etc.
You might have already done all this but can you confirm if you have tried all these steps first? Thanks!

The sample has been updated to use WindowsAppSDK 1.2. If you still see this issue, reactivate with your updated results.


Update both ember and ember-cli to v2.9.1

Keeping up with the cool kids - the only huge jump I see is from ember-cli-qunit v2.1.0 => v3

Ah, had my previous commits on it - dumping this for a standalone ember-cli update PR


gremlin to cypher

our system is using a graph database( not neo4j )and it's live .
Wanted to migrate it to Neo4j.
we have used gremlin for graph traversal and approximately 10000 gremlin traversal queries(read intensive system) and impossible to translate each and every query to cypher .
It will lead to a very big change in the system , testing etc .
Hence we are looking for a gremlin to cypher translator which is something similar to open cypher library which converts cypher to gremlin.
Input is cypher query string and output is gremlin.
Similarly if we have any such library for taking gremlin query string as input and converting it to cypher query string so that we can seamlessly migrate our system.

have got 0.4.6 version of neo4j-gremlin-bolt
As Michael mentioned its relied on a lot of roundtrips.
if gremlin query has multiple traversal steps for each step cypher statement gets generated and executed .
so it wont fit  due to which the project (neo4j-gremlin-bolt) might have reached abandoned state.
e.g.
g.V().has('Service','name',serviceName).in('ServiceComposedOf').in('ConfigAssignedwithEntity')."


Adapt Tutorials into Test Suite

The tutorials on https://github.com/solipsis-project/mizu-documentation are designed to demonstrate Mizu's capabilities through sample commands. Each of these commands and its results should be replicatable by a user following along.
We should have a test suite based on the tutorial that verifies that the provided commands are correct.
How difficult would it be to have both the examples and the tests be generated from the same source, such as a .org file?

https://github.com/solipsis-project/mizu-client/commit/f205676711d497c09c67edf39e678a7c666454c0 adds a script for generating powershell test scripts from our documentation.

93fbce979eaf472829e63dcb05e7ce433c0db909 now, as part of npm run test, builds scripts based on marked tests in the documentation, and runs them.


Implement Ascii event functions

We should implement hadrons() and final_partons() for Ascii events.

added in af1c22f6833e63ffccf581ccc95b503773aaffd9


[Tooltip] - Tooltip doesn't disappear when mouse leaves due to scrolling

Current behavior
When tooltip shows up, and parent container is scrolled, the tooltip is still visible.
https://github.com/user-attachments/assets/c50ee52b-bfca-4440-a202-6dec6a9e2148
Steps to reproduce the bug

Open https://stackblitz.com/edit/tulmk9?file=dialog-combobox-command-menu%2Findex.tsx
Open dialog
Hover over an item label to  trigger the tooltip
Scroll up and down

Expected behavior
Tooltip should disappear
Workaround
No response
Possible solutions
No response

I believe that's expected (even though this description doesn't specifically mention mouse leave):

Shows the content element based on the user's hover intent over the anchor element. This behavior purposely ignores mobile touch and unintentional mouse enter events, like those that happen during scrolling.
— https://ariakit.org/reference/tooltip-anchor#showonhover

This also seems to be related: https://x.com/diegohaz/status/1553744035772235783

It makes sense for mouse enter, but for mouse leave, I would expect the tooltip to disappear, (it works like that in similar libraries)


”Chiheru de Jos” is listed in the drop-down menu

Description:
"Chiheru de Jos" is listed in the drop-down menu alongside its corresponding county and commune, according to the law.
Precondition:
The website is up an running.

Step 1
Type "Chiheru de Jos" in the search bar.

Expected results
The location is listed in the drop-down menu as "Comuna Chiheru de Jos, MUREȘ".


Gather and expose JSDoc nodes in TypeScript files

Closure adds various semantic JSDoc annotations that aren't currently modeled by TypeScript, such as @export (unrelated to TS export) and @nosideeffects.
https://developers.google.com/closure/compiler/docs/js-for-compiler#overview
As part of our tool chain to run TypeScript through Closure we'd like to be able to munge these via the TypeScript API.  It appears TypeScript gathers JSDoc comments when parsing JavaScript -- is there a good reason to not gather these in TypeScript as well?
Specifically, I believe my suggestion amounts to removing the "if" statement in the below code (though I'm not certain this is the right place) in parser.ts:
        function addJSDocComment<T extends Node>(node: T): T {
            if (contextFlags & NodeFlags.JavaScriptFile) {
                ...all of the code is in here...
            }
        }

They are disabled for performance purposes, given that in TS context nothing is inferred from the comments, where as in JS types can come from comments.
so you need these for emit purposes, correct?

@mhegazy Oops, I never responded, sorry!  Yes, we consume and generate modified JSDoc in our Closure emitter.
But this is not only for our crazy Closure compiler hacks.  You can imagine other more reasonable examples; for example, a tool that generates documentation from TypeScript code would need access to the JSDoc (now that I think of it, how does VSCode get at it?).  An optimizer might want access to specific JSDoc attributes; e.g. the Closure compiler can make use of @nosideeffects annotations among others.
Some ideas to fix this that don't require turning it on always:

You could put "parse JSDoc or not" behind a flag in the TS parser API.
You could expose the JSDoc parsing code such that a tool walking the TS AST could call back into the parser.

Re my second suggestion, right now we have to write our own JSDoc parser because the TS one isn't public API:
https://github.com/angular/tsickle/blob/e79f7837e2774f8fbbef695a1ab7471c27369548/src/tsickle.ts#L85

nothing stops us from doing this on demand. see https://github.com/Microsoft/TypeScript/blob/master/src/services/services.ts#L360-L366.
we could add a new API, say getJSDocComemnts that would return you a Node and will invoke the parser on the text and cache the resulting tree.

We would be open to take a PR for this.

It appears that TS maybe now gathers JSDoc always.  That is, given a ts.Node you can call getDocumentationComment() on it and it updates the (internal property) node.jsDoc (and does some caching).
However, there's still no way to get at the parsed JSDoc there.  getDocumentationComment() only returns the comment portion of the JSDoc, not the tags.  So my request still stands, but now it's just a request to expose API to retrieve the full JSDoc of a node.

I have not checked every code path but it does appear that Parser.parseSourceFile will call createNodeWithJsDoc for JsDocContainer nodes.  Can we just remove the internal comment ?
export interface JSDocContainer {         /* @internal */ jsDoc?: JSDoc[];                      // JSDoc that directly precedes this node         /* @internal */ jsDocCache?: ReadonlyArray<JSDocTag>; // Cache for getJSDocTags     }
To save doing
var classDeclaration:ts.ClassDeclaration=getFromSomewhere(); var jsDocs=:ts.JSDoc[]=(classDeclaration as any).jsDoc

i am experiencing the same issue, where in order to reach the JSdoc comments for some nodes i have to resort to using the private "jsDoc" member on the ast nodes

@sandersn thoughts on exposing that property?

ts.getJSDocTags is the public API from the compiler, which does a full search plus cache. The private jsDoc property is just the jsdoc comment directly on a node, but jsdoc frequently appears on a node above the one it actually applies to.
The getDocumentationComment method has been broken for this purpose since I rewrote the jsdoc parser a couple of years ago.
I think it's always the right thing to do a search for applicable jsdoc tags, not just that attached directly to the node.
@nadavwix @tonyhallett @evmar can you weigh in on whether getJSDocTags is sufficient for what you want to do?

getJSDocTags is returning an empty array when I transform a .d.ts file using the transformer API via ts.transform().  My use case: I want to perform custom transformation of declarations based on JSDoc tags, for example switching methods from public to private or omitting declarations based on custom rules.
Do I need to do something different to getJSDocTags for a .d.ts file?

@cspotcode I don't think so. Any differences you saw were probably a bug. Can you file a new one with more details about how you're using the transformer API?

When using my transformer via "ttypescript", it seems setParentNodes is not enabled.  getJSDocTags doesn't return anything and I can't perform the necessary transformations.
Is getJSDocTags supposed to require parent nodes to be set?
Is there a way to enable setParentNodes during a normal compilation?
Is there a different, recommended workaround?
I know you don't support ttypescript, so I'm just wondering what is the most pragmatic solution for my situation, even if it's a hack.

From my reading of the code setParentNodes needs to be true because getJSDocTags traverses the parent nodes to find the comment tags.  I have a different but similar issue in that getJSDocTags returns empty because there are just comments with no tags on a ClassDecleration. I can clearly see JSDoc is set and it retrieved but then dropped from the output. Unfortunately getDocumentComment is not on the ClassDecleration interface. It would be nice to expose getJSDocCommentAndTags which underpin getJSDocTags.

It's strange to have to use the type checker to get the js doc comment. It would be nice to solely do this via the AST and expose the jsDoc property, which would allow people to quickly see the js doc comment's range, comment, and tags.

I think the typechecker is required because it includes the linker, which is responsible for setting up references between nodes.  E.g. associating every usage of a variable to where it's declared.  Linking also associates jsDoc nodes with the functions, variables, and fields that they describe.
I assume, though I'm not sure, that the linker is invoked on-demand to provide linked jsDoc nodes, but full typechecking does not need to run.

I'm finding that even with setParentNodes to true, running ts.getJSDocTags(node) just returns an empty array for each of the top level nodes I iterate over. My input source looks like this:
/** foo doc comment */
export type foo = {
  /** barry! */
  bar: number
  wibble: string
  hey: 2
  another: false
  foo: 'hello' | 'there'
}

/**
 * Hello!
 */
/** hello there */
type bar = "hello"

The jsDoc field contains the comments as I'd expect. Is this a bug?

@jsdw IIRC getJSDocTags will get tags specifically.  Those comments don't have any tags (e.g. @param or @deprecated)

Ah, thanks, that makes sense! Do you know of a supported means to obtain the comments? I'm only interested in the text content of them.
I'm not aware of any api docs for this stuff offhand so I'm just muddling through based on the typescript types that exist on these functions!


Delegation/Baking: Fill in carousel content

Task description
This is a placeholder task for now. Will be filled out when then content for the carousels is ready.

Verified.
Version 3.0.0 (84).

Validate Baking carousel comparing with Figma.

I didn't find any differences of the baking flow with what's specified in Figma, except for the behaviour already reported in #170.


fix CHN and ZAF month regexp

'(?P<mm>0[1-9]|1[12])'   is not match month=10
for exmaple:
`
from idnumbers.nationalid import CHN
id_number = "372925199510103222"
print(id_number, ' -> ', CHN.NationalID.validate(id_number))
`
result is :
372925199510103222  ->  False
In fact , this ID is correct
my PR to fix it,

@microdataxyz  Do you have any time see it


RSS feed URLs inconsistent or erroneous

 tags currently list two feed URLs: `/site/rss`, which happily redirects to feedburner; and `/site/abridged-rss`, which at one point used to work, but is at present a 404.
<link rel="alternate" type="application/rss+xml" title="A List Apart: The Full Feed" href="/site/rss" />
<link rel="alternate" type="application/rss+xml" title="A List Apart: The Abridged Feed (just articles and columns)" href="/site/abridged-rss" />

The RSS page (/about/rss), meanwhile, suggests /main/feed for the RSS URL.
Makes it a bit confusing to know which URL to subscribe to.

That was an oversight and it has now been corrected - thank you @pinterface for letting us know!
The correct feed URL is /main/feed.


Polish backon vision: What is backon and what are its future goals?

I started backon as an alternative to backoff. I love its API design and am happy to see it being used in many production areas. As part of our 1.0 plan, I believe the first step is to clarify what backon is and what its future goals are.

Backon should be correct, simple, zero cost. It should feel like something natively provided by Rust.

Backon should be a runtime agnostic solution that can operate on any asynchronous runtime.

Backon should be available on any platform that supports Rust.


GD-06: Editor-Script: The context menu dosen't shows "Run Tests" and "Debug Tests" when only one script is opened

The used Godot version:
Godot Engine v3.2.3.stable.official
OS including version:
All OS
Describe the bug
When i start godot with an empty editor (no scripts opened) and open one script the context menu is missing "Run Tests" and "Debug Tests" items
Steps to Reproduce

Close all scrips to have an empty script view
Restart Godot
open a script
click right mouse for context menu

Closed because it is not repoducible to v3.3.rc8


Bugfix/no 3385

Description

Fix a bug "a custom resolver with permission_classes doesn't accept @sync_to_async decorator"
The root cause was inspect.iscoroutinefunction() function returns True only for functions defined with "async def".
Now is_async function returns True for a resolver function decorated with @sync_to_async
Types of Changes

[ ] Core
[x] Bugfix
[ ] New feature
[ ] Enhancement/optimization
[ ] Documentation

Issues Fixed or Closed by This PR

https://github.com/strawberry-graphql/strawberry/issues/3385

Checklist

[X] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[X] I have read the CONTRIBUTING document.
[X] I have added tests to cover my changes.
[X] I have tested the changes and verified that they work and don't break anything (as well as I can manage).

Summary by Sourcery
Fix the issue where custom resolvers with permission_classes did not work with the @sync_to_async decorator by updating the is_async function to recognize SyncToAsync instances.
Bug Fixes:

Fix a bug where a custom resolver with permission_classes did not accept the @sync_to_async decorator by updating the is_async function to correctly identify such functions.

Documentation:

Add a RELEASE.md file to document the patch release fixing the bug with custom resolvers and @sync_to_async.

Tests:

Add a test to verify that a resolver function decorated with @sync_to_async works correctly with permission_classes.

Thanks for adding the RELEASE.md file!

Here's a preview of the changelog:

Fix a bug "a custom resolver with permission_classes doesn't accept @sync_to_async decorator"
The root cause was inspect.iscoroutinefunction() function returns True only for functions defined with "async def".
Here's the tweet text:
🆕 Release (next) is out! Thanks to Hyun S. Moon for the PR 👏

Get it here 👉 https://strawberry.rocks/release/(next)

Thanks for adding the RELEASE.md file!

Here's a preview of the changelog:

Fix a bug "a custom resolver with permission_classes doesn't accept @sync_to_async decorator"
The root cause was inspect.iscoroutinefunction() function returns True only for functions defined with "async def".
Here's the tweet text:
🆕 Release (next) is out! Thanks to Hyun S. Moon for the PR 👏

Get it here 👉 https://strawberry.rocks/release/(next)

Request for changes is mostly for the issue I commented with python 3.12+
Other than that, looking good! :)

@bellini666 Thanks for a comment. I updated the PR based on your suggestion.

Thanks for contributing to Strawberry! 🎉 You've been invited to join
the Strawberry GraphQL organisation 😊
You can also request a free sticker by filling this form: https://forms.gle/dmnfQUPoY5gZbVT67
And don't forget to join our discord server: https://strawberry.rocks/discord 🔥


Version missing from ABI

I noticed that forum.abi is missing a version field. If the ABI is meant to follow the EOSIO ABI quasi-standard that clients such as cleos, abieos, and eosjs2 expect, then it needs to have the version string "eosio::abi/1.0".
While the version string may not be currently enforced in either of the aforementioned clients, they will likely be soon updated to fix that bug and enforce it as they always should have. Clients that enforce the ABI version should reject processing an ABI that declares an unsupported version, which could break functionality such as reading table rows or pushing JSON-formatted actions when interacting with contracts that have an ABI with incompatible version declared.

@arhag Thanks for the heads-up, I will fix that for sure.
If you find anything else, small or large, I'll be more than happy to get your review of the contract :)

This was fixed with ccbd5040a7ed57e7b05b354bce62e94d8fa0a732 so I am closing the issue.
FYI: I noticed that the ABI on the eosforumrcpp account on the EOS blockchain was updated to include the version, but the same is not true for the eosforumdapp account (which I assume is associated with this contract since the README refers to it).

We are going to update the README since eosforumdapp is the old version and not "used" anymore.


Get new strings translated by Google's internal translation system

While https://github.com/shaka-project/shaka-player/issues/3752 covers pushing manual changes from GitHub back into Google's internal translation system, we also need to submit new strings for translation that have been added to Shaka since the last round of translations, then pull the translations into GitHub.
Internal tracking in b/361830865

Initial sync in https://github.com/shaka-project/shaka-player/pull/7261, still need to resolve conflicts between the two systems.

Conflicts resolved.  Still need to pull in missing translations for zh-HK.

SJN translations updated in https://github.com/shaka-project/shaka-player/pull/7324

@joeyparrish , now is it complete?

Waiting on zh-HK translations.  The rest are done.

It turns out that the zh-HK translations were temporarily blocked by an internal bug in the translation system, but someone worked around it and they should be available in a few days.

I misread!  They are available now!


Migrate to GitHub Actions

Migrate CI to use GitHub Actions with the exception of allocation count
performance tests which will remain on the old CI for now.
Motivation:
To migrate to GitHub actions and centralised infrastructure.
Modifications:
Changes of note:

Disable warnings-as-errors until issues with recent NIO changes are
resolved
Adopt swift-format using rules from SwiftNIO
Remove scripts which are no longer needed

Result:
Feature parity with old CI, all-but-allocations migrated to GHA.

@Lukasa When this PR is merged I we want to update the branch protection rules but in this case we want to retain the old CI PR validation checks because they (now only) run allocation count tests.


feat: automatically update pnpm lock file when it is out-of-date when update_pnpm_lock is True

update_pnpm_lock defaults to False so that npm_translate_lock rules from external repositories are never affected. update_pnpm_lock default to True if yarn_lock or npm_package_lock are set so the current pnpm import behavior is preserved.
API docstring:
        update_pnpm_lock: When True, the pnpm lock file wil be updated automatically when any of its inputs
            have changed since the last update.

            Defaults to False unless `npm_package_lock` or `yarn_lock` are set, in which case it defaults
            to True.

            A `.aspect/external_repository_hashes/npm_translate_lock_HASH` file will be created and used to determine
            when the `pnpm-lock.yaml` file should be updated. This file should be checked into the source control
            along with the `pnpm-lock.yaml` file.

            When the `pnpm-lock.yaml` file needs updating, `npm_translate_lock` will run either
            `pnpm install --lockfile-only` or `pnpm import`. The latter will be used if there
            is a `npm_package_lock` or `yarn_lock` specified.

            To update the `pnpm-lock.yaml` file manually either [install pnpm](https://pnpm.io/installation) and
            run `pnpm install --lockfile-only` or `pnpm import` use the Bazel-managed pnpm by running
            `bazel run -- @pnpm//:pnpm --dir $PWD install --lockfile-only` or `bazel run -- @pnpm//:pnpm --dir $PWD import`

            If the ASPECT_RULES_JS_FROZEN_PNPM_LOCK environment variable is set and `update_pnpm_lock` is True, the build
            will fail if the pnpm lock file needs updating. It is recommended to set this environment variable
            on CI when `update_pnpm_lock` is True.

package_json attribute (currently used only when yarn_lock or npm_package_lock are set) is deprecated in favor of adding all package.json files to the data attribute.
Examples failure on CI when ASPECT_RULES_JS_FROZEN_PNPM_LOCK is set and the action cache is out of date.
ERROR: `.aspect/rules/external_repository_action_cache/npm_translate_lock_NDg3NzUwNzA2NQ==` is out of date. `pnpm-lock.yaml` may require an update. To update run,

           bazel sync --only=npm

What are the new docs/*.md files.

Can we do all the file permission changes in a separate PR?

We'll need an update to https://github.com/aspect-build/rules_js/blob/main/docs/faq.md#can-i-use-bazel-managed-pnpm in this PR or right after.

We'll need an update to https://github.com/aspect-build/rules_js/blob/main/docs/faq.md#can-i-use-bazel-managed-pnpm in this PR or right after.

Yes. Although it will only bootstrap if you have a yarn or npm lock file. It won't bootstrap without any lock file specified since the repository rule has no idea which folder you want to run pnpm in.
Given a single package.json or a set of package.json files and a pnpm-workspace.yaml file in data it could. The tricky bit is the sequencing for users since you can't pass a label to a repository rule to a non-existant file.


Make character class a dropdown as well

Just a suggestion:
Currently, if you mistype a character's class, saving throws keep resetting to 0. So, like with monsters, it would probably be nice to have a character class dropdown, with an added "Normal Human" and "Custom" option for homebrew stuff. One of my players kept misspelling "Magic User" and got quite annoyed that his saves kept vanishing.

Thinking about this further, I may as well keep this drop down the same between monster and character and make monster an option as well as custom.


Unusable because of React dependency

sorry to say but your component is unusable for me (although it looked promising) because it has a direct dependency on react instead of a peerDependency. This makes my app load react twice and it ends up with 'Only a ReactOwner can have refs' errors.

@hmeerlo If i make react a peerdependency, what is the downside?

@mukeshsoni There is no real downside, except maybe that the user must explicitly add react as a dependency to his project. But he must do that anyway.

Cool. Have moved react and react-dom to peerDependencies in ver 3.2.3


fixed typos

huge thanks man! that text was a mess..
did you use a tool to do this? would be happy to run it myself once or twice ;)


How to set multiple headers with same name?

Hello,
I tried to find information about how to set multiple headers with same key.
pub async fn zzz(ctx: WebContext<'_>) -> Result<WebResponse, Error> {
  let mut res = ctx.into_response(ResponseBody::empty());
  let headers = res.headers_mut();

  let keys = vec!["access", "refresh"];
  for key in keys {
    let mut cookie = Cookie::new(format!("{key}_key"), "abc");
    let lifetime = 5;
    let t = OffsetDateTime::now_utc() + Duration::from_secs(lifetime);
    cookie.set_path("/");
    cookie.set_expires(t);
    cookie.set_http_only(true);
    headers.append(SET_COOKIE, HeaderValue::from_str(&cookie.to_string())?);
  }
  println!("HEADERS: {headers:?}");
  return Ok(res)
}

Output has single set-cookie header values concatenated with , :
HTTP/1.1 200 OK
set-cookie: access_key=abc; HttpOnly; Secure; Path=/; Max-Age=5, refresh_key=abc; HttpOnly; Secure; Path=/; Max-Age=5
...

Multiple header value is represented in the form of  <field name>: <field value 1>, <field value 2>, ...
Comma is standard separator of multiple values of a single header and you can reference it here with RFC9110
It also point out the edge case of set-cookie header and client side should be able to handle this case and generate multiple header value by split the comma.

I'm open to handle this edge case server side if it's a necessary special case (if popular clients don't want to or can't handle the separation). Otherwise I personally would prefer following the http/1.1 spec whenever possible.

But Chrome doesnt read cookies correctly. It's all malformed. First cookie with last cookie's exprire time in:
MacOS Chrome
Version 120.0.6099.234 (Official Build) (x86_64)

I think we need multiple headers with same key.

But Chrome doesn't read cookies correctly. It's all malformed. First cookie with last cookie's expiration time in:
MacOS Chrome
Version 120.0.6099.234 (Official Build) (x86_64)

I think we need multiple headers with same key.

Can you try this branch to see if it works for your use case? You can import it by adding patch session to your Cargo.toml
[patch.crates-io]
xitca-http = { git = "https://github.com/HFQR/xitca-web", rev = "d80fd7b227a0edb548f59348842d207130e818b3" }

And maybe run cargo update after adding the patch.

I tried to replace the patch and tested. Yes it's working. I got 2 cookies in browser:
HTTP/1.1 200 OK
set-cookie: access_key=abc; HttpOnly; Secure; Path=/; Expires=Fri, 02 Feb 2024 02:33:50 GMT
set-cookie: refresh_key=abc; HttpOnly; Secure; Path=/; Expires=Fri, 02 Feb 2024 02:33:50 GMT

Btw you are so fast. Fast response and fast updates :P.

I tried to replace the patch and tested. Yes it's working. I got 2 cookies in browser:
HTTP/1.1 200 OK
set-cookie: access_key=abc; HttpOnly; Secure; Path=/; Expires=Fri, 02 Feb 2024 02:33:50 GMT
set-cookie: refresh_key=abc; HttpOnly; Secure; Path=/; Expires=Fri, 02 Feb 2024 02:33:50 GMT

Btw you are so fast. Fast response and fast updates :P

np. Thank you for bringing the issue up and I can imagine it's a deal breaker for most people using multiple set-cookie headers.
I have released xitca-http 0.2.2 on crates.io. You can remove the patch session from your Cargo.toml and run cargo update one more time for a stable fix.

Recently I start coding web app in Rust. I tried few different frameworks based on https://www.techempower.com/benchmarks and I liked this one. But I cannot figure out one thing.
How to create an Error response in middleware?
async fn error_handler<S, C, Res>(s: &S, ctx: WebContext<'_, C>)
  -> Result<Res, Error<C>>
where S: for<'r> Service<WebContext<'r, C>, Response = Res, Error = Error<C>>,
{
  s.call(ctx).await.map_err(|err| {
    eprintln!("GOT SOME ERROR: ${err:?}");
    err
  })
}

For example what if i want response status 500 when panic happaned. Or what if i want modify response body based on error etc... I cannot figure out custom error handler...

Recently I start coding web app in Rust. I tried few different frameworks based on https://www.techempower.com/benchmarks and I liked this one. But I cannot figure out one thing. How to create an Error response in middleware?
async fn error_handler<S, C, Res>(s: &S, ctx: WebContext<'_, C>)
  -> Result<Res, Error<C>>
where S: for<'r> Service<WebContext<'r, C>, Response = Res, Error = Error<C>>,
{
  s.call(ctx).await.map_err(|err| {
    eprintln!("GOT SOME ERROR: ${err:?}");
    err
  })
}

For example what if i want response status 500 when panic happaned. Or what if i want modify response body based on error etc... I cannot figure out custom error handler...

You may want to give this piece of doc a read for error handling:
https://docs.rs/xitca-web/latest/xitca_web/error/index.html
Unlike other popular web frameworks in Rust xitca-web encourages you to handle error lazily. In plain word you just return Error<C> type when an error occur and eventually it will be converted to a http response when needed. The conversion can either be handled by a middleware you provided or a default catch all xitca-web offers as last chance conversion.
For example of catching panic with a blank 500 error response.
use xitca_web::{
    error::{Error, Internal},
    handler::handler_service,
    http::WebResponse,
    route::get,
    service::Service,
    App, WebContext,
};

fn main() -> std::io::Result<()> {
    App::new()
        .at("/", get(handler_service(root)))
        .enclosed_fn(catch_panic)
        .serve()
        .bind("localhost:8080")?
        .run()
        .wait()
}

async fn catch_panic<S, C>(service: &S, ctx: WebContext<'_, C>) -> Result<WebResponse, Error<C>>
where
    S: for<'r> Service<WebContext<'r, C>, Response = WebResponse, Error = Error<C>>,
{
    use futures::FutureExt;
    std::panic::AssertUnwindSafe(service.call(ctx))
        .catch_unwind()
        .await
        // Internal is the default blank 500 error response type. we convert it to Error<C> type and
        // the default catch all convertor would help up construct a http response.
        .map_err(|_| Internal)?
}

// always panic at "/" path
async fn root() -> &'static str {
    panic!("")
}

For custom typed error you can reference these doc and example:
https://docs.rs/xitca-web/latest/xitca_web/error/struct.Error.html
https://github.com/HFQR/xitca-web/blob/main/examples/error-handle/src/main.rs
https://github.com/HFQR/xitca-web/blob/main/examples/macros/src/main.rs
In general xitca-web can use any type as error as long as it implement the traits needed presented by above doc and examples. Personally I find start with the macro offered by codegen feature is an easy way to get into the pattern.

Ok, thank you very much. I'm gonna close this issue now. When i got more familiar with this framework and better understand traits I will try to contribute later. Thanks again.


Raidboss: triggerSetConfig Input Box Shows Default Value in Config Panel, but Returns Empty String Instead of Default Value When Accessed in Code

The entire text was generated by a translation software. If there are any parts that are not clear, please let me know.
Description

When the input box for triggerSetConfig is cleared and the webpage is refreshed, the config panel shows the default value. However, when accessing data.triggerSetConfig in the code, it returns an empty string '' instead of the default value.
The input box in the config panel should have gray font color to indicate that the triggerSetConfig value is unmodified when it is the same as the default value.

This is highly misleading to users because they see a value displayed, but in reality, it is an empty string. Moreover, this behavior contradicts the behavior of outputStrings, so I believe it is a bug. (outputStrings correctly retrieves the default value, and the value saved in the JSON is also an empty string, which is consistent with the expected behavior.)
I believe these two issues share a commonality, which is why I have reported them together.
Expected

When the input box for triggerSetConfig is cleared and the webpage is refreshed, the config panel should show the default value. Additionally, when accessing data.triggerSetConfig in the code, it should return the default value Hello.
The input box should have gray font color to indicate that the triggerSetConfig value is unmodified when it is the same as the default value.

Actual

After clearing the input box for triggerSetConfig and refreshing the webpage.
The input box always has black font color and does not accurately reflect whether the triggerSetConfig default value has been modified.

Reproduce
js:
Options.Triggers.push({
  zoneId: ZoneId.MatchAll,
  id: "Souma_Test",
  config: [{ id: "TEST_20230707", name: { en: "TEST_20230707" }, type: "string", default: "Hello" }],
  triggers: [
    {
      id: "TEST 20230707",
      type: "StartsUsing",
      netRegex: { capture: false },
      infoText: (_data, _matches, output) => output.text(),
      suppressSeconds: 9999,
      run: (data, _matches, output) => {
        console.warn("config:", data.triggerSetConfig.TEST_20230707);
        console.warn("output:", output.text());
      },
      outputStrings: { text: { en: "World" } },
    },
  ],
});

config:

raidemulator:

Clear config string and restart ACT:

raidemulator:

As it is impossible to differentiate between "I am clearing this to set the default" and "nothing", my intention is that empty string should be the default as it does for output strings. I must have just missed a case to check for empty string in config.ts when retrieving the value.


[$500]  IOU - On workspace chat, category of previously created expense is auto-assigned

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.4.5-3
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
Action Performed:
Pre-requisite: user must be a member of a workspace as an employee

Go to workspace chat
Create a money request and select a category
Create another money request, but do not select any category

Expected Result:
The most recent expense should not have any category assigned
Actual Result:
The category of the most recent expense is auto-assigned to the one selected on the previous money request
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/78819774/d7eef6ce-711d-497d-9f89-8b49fe9317d7
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~010fc799cb6c6c36b1
Upwork Job ID:<PHONE_NUMBER>099601408
Last Price Increase: 2023-12-06

https://github.com/Expensify/App/blob/ef3d8cd3f9f069a2d917ac7c1ee0a5baf7baaffa/src/libs/actions/IOU.js#L183-L186
Here we are setting transaction data like category, merchant and so on
but if a transaction data contains an empty category value in RequestMoney API, the backend is likely set to the previously selected category in RequestMoney API call.
https://github.com/Expensify/App/blob/ef3d8cd3f9f069a2d917ac7c1ee0a5baf7baaffa/src/libs/actions/IOU.js#L874-L898

Proposal
Please re-state the problem that we are trying to solve in this issue.

IOU - On workspace chat, category of previously created expense is auto-assigned

What is the root cause of that problem?

Currently, when creating money request, if user does not select the category, BE will auto create a money request with the category of the previous request.

What changes do you think we should make in order to solve the problem?

We can create the default category for each policy. Do it by:

First, create an onyx collection, for example INITIAL_POLICY_CATEGORY to store the initial category for each policy.
Create a set method for this collection

function setInitialCategory(policyID, category) {
    Onyx.set(`${ONYXKEYS.COLLECTION.INITIAL_POLICY_CATEGORY}${policyID}`, category)
}

Subscribe the ONYXKEYS.COLLECTION.INITIAL_POLICY_CATEGORY in MoneyRequestConfirmPage
Update:
https://github.com/Expensify/App/blob/ef3d8cd3f9f069a2d917ac7c1ee0a5baf7baaffa/src/pages/iou/steps/MoneyRequestConfirmPage.js#L363
to:

                        iouCategory={props.iou.category || props.initialCategory}

What alternative solutions did you explore? (Optional)

NA

@eVoloshchak Mind commenting on the proposals so far?

Currently, when creating money request, if user does not select the category, BE will auto create a money request with the category of the previous request.

@DylanDylann, while we could resolve this on the front end with your fix, I think we should resolve it on the back end itself. Are there advantages you'd think of of fixing this on FE?

@eVoloshchak

If the user creates a lot of request money sequentially, they do not need to re-select the category (This is a feature request rather than a bug). We need to confirmation from internal team. cc @JmillsExpensify
But we also need to fix from the BE side that if the payload does not contain category data, do not auto-assign the previous category.

I don't think we want that feature at the moment, so let's make sure this gets fixed in the backend.

@JmillsExpensify, could you assign an internal engineer to this please?
The only thing we need is the BE fix (https://github.com/Expensify/App/issues/32234#issuecomment-1832935991)

fix from the BE side that if the payload does not contain category data, do not auto-assign the previous category.

Still waiting to be picked up internal.

I am not able to reproduce, I sus that the policy has category expense rules set and it is auto categorising the expense?
@eVoloshchak are you able to reproduce?

@lanitochka17 is is still reproducible?

I sus that the policy has category expense rules set and it is auto categorising the expense?

To confirm this suspicion, could you please check if policy has any category expense rules set, or try requesting money on a new workspace chat, thanks!

Not sure if this is bug https://github.com/Expensify/App/issues/32234#issuecomment-1871931337

@lanitochka17 @eVoloshchak @JmillsExpensify are you able to reproduce?
If not, we can close this bug

@MonilBhavsar, unable to reproduce this one

I am not able to reproduce with latest build 1.4.21-3
https://github.com/Expensify/App/assets/78819774/fa28f517-91a9-4ef2-898a-a6beba8522ad

Thanks for checking. Closing this issue then. Feel free to reopen if issues is reproducible


[T4A5][T15-B3]Bartłomiej Woźniak

Add an Association Class Tagging.

Ready for review

@bartekwozniak93 Awesome work. Good attention to detail.


Custom intervals

Story
As a user
I want to use different intervals than the 6 provided in the Interval type.
So that I can use APIs that have longer intervals etc.
Acceptance Criteria

[ ] I can pass any duration as an interval

Tasks

[ ] Remove hard-coded enum type in favor of a more flexible parameter.

Notes
We don't currently have an API for anything lower than 6

@2ico The APIs served from Vega data nodes don't currently support more interval options than what we have currently, so its hard to gain traction for us to work on this right now. However, we'd welcome any PRs to allow for more intervals


Feature: Text datasets and emotion detection

This PR implements the first modality which is text emotion detection
The steps to achieve this are:

[ ] Find suitable datasets
[ ] Download data script
[ ] Combine datasets into one csv
[ ] Create DataReader Interface
[ ] Create TextDataReader Child
[ ] Create EmotionClassifier Interface
[ ] Implement NRClex emotion classifier
[ ] Implement bert emotion classifier
[ ] Bert training script

 Setup text emotion detection systems


Better error message for protocol-less urls (or just assume http)

In glyphhanger 3.0, we’ll spin up a webserver for you for local files.


make glovo hard

Glovo seems to require filling up a free text to be reviewed.

But are the instructions still the same?

But are the instructions still the same?

Well, there's one additional step of I guess asking to be deleted? The instructions are about 2 steps longer but seem pretty straightforward except for the last part.

Can you please also modify the notes to make them clearer, then?


[TEST] Refine test suites

Why are the changes needed?

Rename KyuubiOperationHiveSuite to KyuubiOperationHiveCatalogSuite;
Simplify redundant case in KyuubiOperationPerConnectionSuite;
How was this patch tested?

[ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible

[ ] Add screenshots for manual tests if appropriate

[ ] Run test locally before make a pull request

Codecov Report

Merging #741 (e945e85) into master (30ea032) will not change coverage.
The diff coverage is n/a.

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

@@           Coverage Diff           @@
##           master     #741   +/-   ##
=======================================
  Coverage   80.49%   80.49%
=======================================
  Files         122      122
  Lines        4748     4748
  Branches      576      576
=======================================
  Hits         3822     3822
  Misses        605      605
  Partials      321      321

Continue to review full report at Codecov.

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

thanks, merging to master for v1.3.0


Plugin continues working in background after window is closed

I put some popup code in one of the calls, and found out that the plugin continues to operate in the background even after clicking the red X to close the window. Perhaps there's some way to abort the running task if the window gets closed, or keep the window from being closed and provide a Quit button in the UI.

Nice one ;) I will need to have a closer look into the Qt api.

Do you have a close button in the title bar of that dialog?

Yes, I see a close button in the title bar. I am using Windows 10.

Confirmed. Your latest commit prevents closing the dialog when it's running.


Add all relevant repos to docs site via github action & search indexing

We need add the following repos/content:

[ ] onflow/flow repo located in this folder: https://github.com/onflow/flow/tree/master/docs/content (see note)
[ ] onflow/fcl-js
[ ] onflow/kitty-items
[ ] onflow/flow-nft
[ ] onflow/flow-go-sdk
[ ] onflow/flow-ft
[ ] onflow/nft-storefront
[ ] onflow/flow-emulator
[ ] onflow/flow-js-testing
[ ] onflow/vs-code-extension
[ ] All SDKs are located here: https://docs.onflow.org/sdks/
Note: Each folder in the onflow/flow repo (inside the content folder) should correspond to the top-level URL/route.
These repos should also be indexed in their docs folder.

Less critical but we should also add (unsure if these repos have docs setup correctly)

onflow/fcl-dev-wallet
onflow/flow-cadut
onflow/sdks

Steps:

Ensure we can render/fetch markdownfiles
How should we organize/design routing for these?

Docs living inside /flow:

[ ] onflow/flow/docs/content:

kitty-items
vs-code-extension

Docs in its own repositories:

[ ] onflow/fcl-js
[ ] onflow/flow-go-sdk
[ ] onflow/flow-js-testing

Repositories missing /docs and not living in /flow:

[ ] onflow/flow-nft (missing /docs)
[ ] onflow/flow-ft (missing /docs)
[ ] onflow/nft-storefront (missing /docs)
[ ] onflow/flow-emulator (missing /docs)

SDKs:

[ ] All SDKs are located here: https://docs.onflow.org/sdks/

Added /docs content and github actions to the 4 repos listed above (as missing /docs)
Added /flow internal docs content with recreating routes in a generic way

Video for kitty-items not rendering anymore, will investigate

I'll be taking over this task for the time being!
cc: @codingone21

Update: 2 last PRs need to be merged to get onflow/sdks and onflow/fcl-dev-wallet to render on the docsite, however they have some concerns under them


Respect ValueError in deserialization of the attributes

Coverage increased (+0.18%) to 84.64% when pulling 726431c92c177d7be351fdb636d3bd1b9578e506 on deserialization-value-error into 15a0d8ea24628694acbbfb5eac89247aba8cb97d on master.


Fix for SaveAsTableRule to work with Spark 3.5

I hope to fix SaveAsTableRule for Spark 3.5. The problem which causes the QbeastSQLIntegrationTest to fail is that they on the way of transition from TableSpec.properties to TableSpec.options. Also for some reasons writeOptions are always empty and our options like colunsToIndex specified in SQL are included into TableSpec.options instead. So I changed our rule to ensure that the columnsToIndex are available for the Qbeast writing mechanism.

Approved!


Do not parse buffers as strings.

https://github.com/TimMisiak/dbgrs/blob/43c0c3e8c7237c681b301e5e0827e27e95b508e3/src/main.rs#L11
Parsing the cmdline as if it was a buffer C style is a bad idea and it leads to the kind of bugs C leads to.
Import it as an OsString or &OsStr first and find a sensible way to parse from there safely.

Actually you may want to try std::env::args() to get the arguments rather than the raw Windows API call, it should give you sanitized and safe strings to manipulate.

Accidentally linked the wrong issue... reopened this.


Starting point of the demo organisation should be the Bundeshaus in Bern

Starting point of the demo organisation should be the Bundeshaus in Bern

Changed in Admin Panel to Lat: 46.946543 (N) Lon:  7.444254 (E)


Refactor/export lookup mappings

If in its own PR, feel free to merge this

I will do the loading of mappings in separate pr as I need to do it for
import as well.
I'll also remove temporary solution for critical failure.
Thanks,
Dan
On Mon, 29 Aug 2022, 14:04 Tom Ashworth, @.***> wrote:

@.**** commented on this pull request.
Could we implement that last bit or are you doing that in its own PR?
In
Capgemini.Xrm.CdsDataMigrator/Capgemini.Xrm.CdsDataMigratorLibrary/Forms/ExportLookupMappingsForm.cs
https://github.com/Capgemini/xrm-datamigration-xrmtoolbox/pull/73#discussion_r957272577
:

           (dgvMappings.Rows[dgvMappings.CurrentRow.Index].Cells[2] as DataGridViewComboBoxCell).DataSource = value.Select(x => x.LogicalName).OrderBy(n => n).ToArray();

       }

   }

   public List<DataGridViewRow> Mappings

   {

       get

       {

           List<DataGridViewRow> mappings = new List<DataGridViewRow>();

           foreach (DataGridViewRow row in dgvMappings.Rows)

           {

               mappings.Add(row);

           }

           return mappings;

       }

       // setter needed to load existing mappings. Still needs to be implemented

Has this been done?
In
Capgemini.Xrm.CdsDataMigrator/Capgemini.Xrm.CdsDataMigratorLibrary/Forms/ExportLookupMappingsForm.cs
https://github.com/Capgemini/xrm-datamigration-xrmtoolbox/pull/73#discussion_r957273634
:

       {

           this.OnRefFieldChanged?.Invoke(sender, e);

       }

   }

   [ExcludeFromCodeCoverage]

   private void ButtonCloseClick(object sender, EventArgs e)

   {

       Close();

   }

   [ExcludeFromCodeCoverage]

   private void dgvMappings_DataError(object sender, DataGridViewDataErrorEventArgs e)

   {

       //Temporary solution to hide critical failure

       e.Cancel = true;

Is this still required?
In
Capgemini.Xrm.CdsDataMigrator/Capgemini.Xrm.CdsDataMigratorLibrary/Forms/ImportMappingsForm.cs
https://github.com/Capgemini/xrm-datamigration-xrmtoolbox/pull/73#discussion_r957275667
:

@@ -45,6 +45,7 @@ public List Mappings
}
return mappings;
}

       // setter needed to load existing mappings. Still needs to be implemented

Has this been done?
In
Capgemini.Xrm.CdsDataMigrator/Capgemini.Xrm.CdsDataMigratorLibrary/Presenters/ExportMappingsFormPresenster.cs
https://github.com/Capgemini/xrm-datamigration-xrmtoolbox/pull/73#discussion_r957277874
:

       this.view.OnVisible += OnVisible;

       this.view.OnEntityColumnChanged += OnEntityColumnChanged;

       this.view.OnRefFieldChanged += OnRefFieldChanged;

   }

   [ExcludeFromCodeCoverage]

   public IMetadataService MetaDataService { get; set; }

   [ExcludeFromCodeCoverage]

   public IOrganizationService OrganizationService { get; set; }

   [ExcludeFromCodeCoverage]

   public IExceptionService ExceptionService { get; set; }

   [ExcludeFromCodeCoverage]

   public void OnVisible(object sender, EventArgs e)

It looks like the loading of existing mappings haven't been done
—
Reply to this email directly, view it on GitHub
https://github.com/Capgemini/xrm-datamigration-xrmtoolbox/pull/73#pullrequestreview-1088599955,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AMP2GLRCC6F663FL7UAP273V3SYMZANCNFSM575JCIGA
.
You are receiving this because you authored the thread.Message ID:
@.***
com>


Benchmarks comment should have commit info

What is not easy to do right now?
It's hard to relate the benchmark results with a change or commit ID. Sometimes the comments come one after the other even when no commit has been pushed.
Describe the solution you'd like
I would like to see performance comments for each commit.
Why is it important?
To build co-relation between benchmark numbers and commit ids.
Additional context
There is a way to do this here — https://docs.github.com/en/rest/guides/working-with-comments#commit-comments

merging this with #620


Writing custom TypeScript instances

I currently don't see how to use this library with custom JSON instances, especially since the constructors for TSDeclaration are not exposed and I don't see why.
Imagine a type and the following JSON instance, which sort of "flattens":
data Foo = Foo { a :: String, b :: SomeOtherProductType }

instance ToJSON Foo where
  toJSON (Foo a b) = case toJSON b of
    (Object hm) -> Object $ HM.insert "a" (toJSON a) hm
    _ -> error "oops"

How would you write an instance for this without messing with the TypeScript instance of SomeOtherProductType? I don't see a reasonable way.

You can write a custom TypeScript instance where getTypeScriptType returns whatever string you like, and that string will appear on the RHS of a declaration like type Foo = [your string]. It could even make reference to the SomeOtherProductType type. Why not just write
instance TypeScript Foo where
  getTypeScriptType _ = "{a: string} & SomeOtherProductType"

I suppose if the TSDeclaration constructors were cleaned up and exposed then you would have the ability to define additional hand-written interfaces and type aliases, which might lead to better TypeScript error messages for more complicated ad-hoc types. But then you're sort of getting away from what this library is designed for, which is translating automatically derived Aeson instances to TypeScript. At that point you might as well just write out the TypeScript you want manually since this library can't help ensure correctness.

You can write a custom TypeScript instance where getTypeScriptType returns whatever string you like, and that string will appear on the RHS of a declaration like type Foo = [your string]. It could even make reference to the SomeOtherProductType type. Why not just write

Well, this is just the type, not the declaration. The product type is huge.

At that point you might as well just write out the TypeScript you want manually since this library can't help ensure correctness.

I disagree, because I still have a complex type and I am just mixing in a single record field. Writing this interface by hand is error prone and will likely lead to bugs. I think TSDeclaration should definitely be exposed.

I'm not sure I want to support exposing those constructors yet, but maybe some builder functions could be exposed.
I'm having a little trouble seeing how this helps you, could you write out what you would do with the constructors if they were made public for your example?

data Bar = Bar
  { a :: Int
  , b :: Int
  }

data Foo = Foo
  { lol  :: Lol
  , bar  :: Bar
  }

instance TypeScript Foo where
  getTypeScriptType _ = "Foo"
  getTypeScriptDeclarations _ =
    let myType = TSTypeAlternatives "Foo" [] ["IFoo"]
        fDecls = getTypeScriptDeclarations (Proxy :: Proxy Bar)
    in myType : (fmap (\x -> if interfaceName x == "IBar"
                                then (insertRecord x (TSField False "lol" (getTypeScriptType (Proxy :: Proxy Lol)))){ interfaceName = "IFoo" }
                                else x) $ Prelude.filter isDecl fDecls)
    where
      insertRecord (TSInterfaceDeclaration iname igv ifm) rec = (TSInterfaceDeclaration iname igv (rec:ifm))
      insertRecord x _ = x
      isDecl (TSInterfaceDeclaration{}) = True
      isDecl _ = False

{--

type Foo = IFoo;

interface IFoo {
  lol: Lol;
  a: number;
  b: number;
}

--}

See, I think what you've written here is rather hideous -- much more confusing and error-prone than simply writing out some TypeScript declarations by hand. Look at all the places where you have strings like "IBar" and "IFoo" and "lol".
This is not a library for manipulating and formatting TypeScript ASTs, which is where this goes if we start encouraging such things. If we did decide to go in that direction, the constructors would have to be more elaborate.
Also I think I got my wires crossed before--I thought there was a way to write a raw string to use as a declaration rather than a type, but there's not. What would you think about a function like
-- | Allows you to write an arbitrary declaration by hand
rawTypeScriptDeclaration :: String -> TSDeclaration

I think with this function plus the intersection type suggestion I made above you would have an elegant way to get what you want (assuming the big record type is well-behaved). You would do
myFooDeclaration = rawTypeScriptDeclaration
  [i|type Foo = {a: string} & #{getTypeScriptType SomeOtherProductType}|]

See, I think what you've written here is rather hideous -- much more confusing and error-prone than simply writing out some TypeScript declarations by hand.

I don't think people can be bothered to write a 150 LOC string just because the constructors are not exposed. Sure, this specific case can be handled with intersection type, but I have many more types with custom JSON instances where I might need to mess with records and I need full flexibility. The default deriving just isn't enough.

What would you think about a function like

Only solves a subset of problems.

How is the ability to write an arbitrary declaration as a string not "full flexibility" or "only solving a subset of problems"? It's literally the most expressive power you can have.
You should realize I came up with these constructors you're so eager to use in about 5 minutes in order to represent the small subset of TypeScript that this library can generate. They are extremely ad-hoc and that's why I'm reluctant to expose them.
If you really want TypeScript AST manipulation capabilities, I suggest you do it outside of this library. We could expose the rawTypeScriptDeclaration function I mentioned, and then you can take whatever constructors you want + some simple functions to turn them into strings and go nuts. That way the responsibility of maintaining it can be yours instead of this library's :P.
(I'm not being sarcastic, I do think that a TypeScript AST manipulation library is a reasonable thing to have, and it would be lovely if it could be used nicely with this library, but it probably doesn't belong in this library.)

If you really want TypeScript AST manipulation capabilities, I suggest you do it outside of this library.

Alright. Seems I have to keep a fork of this library just for exposing the constructors...


_sa_instance_state is dropped when SQLModels are nested. Is this expected?

First Check

[X] I added a very descriptive title to this issue.
[X] I used the GitHub search to find a similar issue and didn't find it.
[X] I searched the SQLModel documentation, with the integrated search.
[X] I already searched in Google "How to X in SQLModel" and didn't find any information.
[X] I already read and followed all the tutorial in the docs and didn't find an answer.
[X] I already checked if it is not related to SQLModel but to Pydantic.
[X] I already checked if it is not related to SQLModel but to SQLAlchemy.

Commit to Help

[X] I commit to help with one of those options 👆

Example Code
from sqlmodel import SQLModel, Session, create_engine, Field

engine = create_engine("sqlite:///:memory:")

class A(SQLModel, table=True):
    id: int | None = Field(primary_key=True)
    x: int

    def blow_up(self, session: Session):
        self.x = 42
        session.add(self)

class B(SQLModel):
    a: A

    def blow_up(self, session: Session):
        self.a.blow_up(session)

if __name__ == "__main__":
    SQLModel.metadata.create_all(engine)
    with Session(engine) as session:
        a = A(x=1)
        session.add(a)
        # Placing `a` inside a `B` instance appears to copy the `a` instance,
        # stripping `_sa_instance_state` from it. Is this intentional?
        b = B(a=a)
        b.blow_up(session)

Description

Create a SQLModel instance (a)
Create a non-table SQLModel (b) and nest a inside it
Note that b.a._sa_instance_state is not present, whereas a._instance_state is
The call to b.blow_up() will result in SQLAlchemy failing to find instance state

  File "/Users/me/.virtualenvs/sqlmodel-issue-u6SafBdE/lib/python3.10/site-packages/sqlalchemy/orm/attributes.py", line 2254, in set_attribute
    state, dict_ = instance_state(instance), instance_dict(instance)
AttributeError: 'A' object has no attribute '_sa_instance_state'

Operating System
macOS
Operating System Details
Monterey 12.4
SQLModel Version
0.0.6
Python Version
Python 3.10.4
Additional Context
My question is: what should the expected behavior here be?
Stepping back: nesting pydantic models like this is pretty natural; that's why I found this behavior surprising. But: perhaps nesting is not-so-natural when working with SQLModels? I'm not sure. The upshot is that you can't perform database operations on nested instances, for example, by calling b.a.some_method_that_does_database_stuff().
(The behavior is unchanged if B derives directly from pydantic.BaseModel, too.)
If the behavior we're seeing is not the desired behavior, I'm happy to contribute a PR, provided we have a clear understanding of what the right behavior should be.
Thanks for all the hard work on FastAPI, Typer, and SQLModel!

Did this every get anywhere, just come across it today. Any suggestions at all?

@varneyo
Doesn't look like it, but I know that tiangolo must be super busy!
I think it's an interesting issue, in the sense that it seems to get to the heart of expected behavior.
SQLAlchemy models and Pydantic models are often tantalizingly similar... but I think nesting is a good example of where it's not clear that they can be cleanly unified. Nesting in relational databases is special, y'know?
Stepping back: mature web frameworks tend to have stories about how data models and database models relate. For instance, Django has its Model class (database) and its Form class (data).  Django also provides a way to take a database Model and create a Form from it, but this requires the developer to be explicit about which fields they want to carry over. The solution is intentionally not two-way: there's no built-in way to go from a Form back to a Model.
After dwelling on it a bit, this separation feels right to me; it's a separation I want in the code I write. Data models tend to sit at the API interface; database models sit one layer beneath. The User in my database is very much not the User exposed by my API, and I think that's a good thing.

Any update on this ?

I am also interested in this question


Remove Preprocessor logic in preparation of EventBus modularization

Fixes #231

Codecov Report

Merging #232 into master will decrease coverage by 0.26%.
The diff coverage is 63.46%.

@@            Coverage Diff             @@
##           master     #232      +/-   ##
==========================================
- Coverage   56.17%   55.91%   -0.27%
==========================================
  Files         125      125
  Lines        6654     6619      -35
==========================================
- Hits         3738     3701      -37
  Misses       2361     2361
- Partials      555      557       +2

Impacted Files
Coverage Δ

pkg/core/consensus/component.go
68.18% <ø> (ø)
:arrow_up:

pkg/util/nativeutils/eventbus/eventbus.go
100% <ø> (ø)
:arrow_up:

pkg/core/consensus/round.go
71.37% <ø> (-0.12%)
:arrow_down:

pkg/p2p/peer/processing/gossip.go
62.5% <ø> (ø)
:arrow_up:

pkg/util/nativeutils/eventbus/publisher.go
50% <ø> (+10%)
:arrow_up:

pkg/core/candidate/collector.go
69.23% <0%> (-12.59%)
:arrow_down:

pkg/core/candidate/validator.go
56.52% <100%> (-8.19%)
:arrow_down:

pkg/core/consensus/agreement/agreement.go
86.15% <100%> (-0.21%)
:arrow_down:

pkg/core/consensus/agreement/factory.go
100% <100%> (ø)
:arrow_up:

pkg/core/consensus/reduction/firststep/factory.go
100% <100%> (ø)
:arrow_up:

... and 6 more

Continue to review full report at Codecov.

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


Add visualization graphs to eval

Pull Request
Description
Add visualization graphs to eval. Fix the TODO in evaluation.py
Including "Predicted VS Actual" graph for every 48hrs segments and "Error Distribution" for all tested instances.
How Has This Been Tested?

[ ] Yes
Tested with python scripts/run_evaluation.py

Checklist:

[x] My code follows OCF's coding style guidelines
[x] I have performed a self-review of my own code
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[x] I have checked my code and corrected any misspellings

Remaining Issues

My code in local env uses the pip package quartz_solar_forecast, and it seems my visualization code has to be updated in the package before I can use. Investigating how to solve this.
How to update documentation for this?
I realize a lot of timestamps in results_df does not have real generation_power values

Examples
error_distribution.png

pred_vs_actual_9531_2021_07_28_22_00_00.png

pred_vs_actual_9531_2021_09_16_07_00_00.png

Hi @jacobbieker @peterdudfield, could you give any suggestions for the issues above? Thanks!

Hi @jacobbieker, is it a known issue that a lot of timestamps in results_df does not have real generation_power values? Thanks!

My code in local env uses the pip package quartz_solar_forecast, and it seems my visualization code has to be updated in the package before I can use. Investigating how to solve this.

You can use pip install -e . and hopefully you can then use it

How to update documentation for this?

Is there something you can add on the readme about visualization of the evaluation

I realize a lot of timestamps in results_df does not have real generation_power values

Hmm this is interesting, would you be able to write which values they are. It might be worth putting these in a different issue

My code in local env uses the pip package quartz_solar_forecast, and it seems my visualization code has to be updated in the package before I can use. Investigating how to solve this.

You can use pip install -e . and hopefully you can then use it

How to update documentation for this?

Is there something you can add on the readme about visualization of the evaluation

I realize a lot of timestamps in results_df does not have real generation_power values

Hmm this is interesting, would you be able to write which values they are. It might be worth putting these in a different issue

My code in local env uses the pip package quartz_solar_forecast, and it seems my visualization code has to be updated in the package before I can use. Investigating how to solve this.

You can use pip install -e . and hopefully you can then use it

How to update documentation for this?

Is there something you can add on the readme about visualization of the evaluation

I realize a lot of timestamps in results_df does not have real generation_power values

Hmm this is interesting, would you be able to write which values they are. It might be worth putting these in a different issue

Thanks! Let me address these issues. : )

Created an issue here https://github.com/openclimatefix/Open-Source-Quartz-Solar-Forecast/issues/110


HostPort port is not being set

When create workload with port of HostPort type, no HostPort is being opened on the backend. Need to fix the api mapper to set port.Hostport = sourcePort when kind="HostPort"

@sangeethah as a part of the check, a) make sure that the HostPort was set on the workload's conatiners port b) that it is actually accessible. If a doesn't work, reopen the bug for me. if b) doesn't work, reassign to RKE team.

Confirmed working:

HostPort configuration is applied to the workload container:

spec:
  containers:
  - image: nginx
    imagePullPolicy: Always
    lifecycle: {}
    name: nginx-hostport
    ports:
    - containerPort: 80
      hostPort: 8888
      protocol: TCP

The workload is accessible through the hostPort address.


Feat: handle generated column in StreamDMLExecutor

proposed by @fuyufjh
https://github.com/risingwavelabs/risingwave/pull/11698 is just a temporal solution that depends on the downstream materialize's overwrite pk conflict behavior.

Can you elaborate more? How do we plan to handle them?

Can you elaborate more? How do we plan to handle them?

Currently, the generated column such as proc_time() is evaluated in a Project executor. This works for inserts but become weird for updates & deletes.
The current design will update the generated columns as well, which is not expected, so https://github.com/risingwavelabs/risingwave/pull/11698 fixed the bug in a quick and dirty way.
A better solution may be like:
if op == Insert : evaludate generate column
if op == Update : keep the generated column value unchanged
if op == Delete : well just delete the row

This cannot be done by a ProjectExecutor. We can either do it in a new operator or just do it within StreamDMLExecutor. The later seems easier.


Add a wiki: L-Space

An anonymous user has submitted a new wiki via our submission form.
Link to origin wiki: https://discworld.fandom.com/wiki/Main_Page
Link to destination (independent) wiki: https://wiki.lspace.org/Main_Page

Now available in version 2.2.0


Add location info to all sub-expressions

This pull request adds location information to all sub-expressions. So loc_expr_todo! is no longer needed.
The added test case {} { local x = 1, x: x } + {} previously lacks location information at ObjExtend sub-expression even when loc_data: true is given.
I'd like to use jrsonnet-parser crate to detect unused variables in Jsonnet files. Location information is important in this use-case.

Thanks!


make funny its own function

this fixes some inconsistencies and makes funny easier to add

this is cool because it also allows checking for the achs on the spot instead of the next /ach command run


latest_testflight_build_number fails with 'there is no web session to update' error

🔑
New Issue Checklist

[x] Updated fastlane to the latest version
[x] I have read the Contribution Guidelines

Issue Description
When running the latest_testflight_build_number action, whether directly from the CLI via fastlane run or by placing it as a command inside a Fastfile lane, the action fails with a there is no web session to update error.
It is worth noting that I am logging in using an account that is part of more than one team.
Captured Output
Command Used: run latest_testflight_build_number
Output/Log

INFO [2017-07-17 14:53:11.76]: Successfully loaded custom action '/Users/jaderfeijo/Dropbox (EducationApps Ltd)/gojimo-dev/gojimo-ios/fastlane/actions/bump.rb'.
INFO [2017-07-17 14:53:12.00]: Successfully loaded custom action '/Users/jaderfeijo/Dropbox (EducationApps Ltd)/gojimo-dev/gojimo-ios/fastlane/actions/jira_pls.rb'.
INFO [2017-07-17 14:53:12.00]: Successfully loaded custom action '/Users/jaderfeijo/Dropbox (EducationApps Ltd)/gojimo-dev/gojimo-ios/fastlane/actions/push_bump.rb'.
INFO [2017-07-17 14:53:12.00]: Successfully loaded custom action '/Users/jaderfeijo/Dropbox (EducationApps Ltd)/gojimo-dev/gojimo-ios/fastlane/actions/slack_error.rb'.
INFO [2017-07-17 14:53:12.00]: Successfully loaded custom action '/Users/jaderfeijo/Dropbox (EducationApps Ltd)/gojimo-dev/gojimo-ios/fastlane/actions/slack_success.rb'.
INFO [2017-07-17 14:53:12.00]: Successfully loaded custom action '/Users/jaderfeijo/Dropbox (EducationApps Ltd)/gojimo-dev/gojimo-ios/fastlane/actions/tag.rb'.
INFO [2017-07-17 14:53:12.00]: Successfully loaded custom action '/Users/jaderfeijo/Dropbox (EducationApps Ltd)/gojimo-dev/gojimo-ios/fastlane/actions/vpn.rb'.
DEBUG [2017-07-17 14:53:12.00]: Checking if there are any plugins that should be loaded...
INFO [2017-07-17 14:53:12.09]: Successfully loaded custom action '/Users/jaderfeijo/Dropbox (EducationApps Ltd)/gojimo-dev/gojimo-ios/fastlane/actions/bump.rb'.
INFO [2017-07-17 14:53:12.09]: Successfully loaded custom action '/Users/jaderfeijo/Dropbox (EducationApps Ltd)/gojimo-dev/gojimo-ios/fastlane/actions/jira_pls.rb'.
INFO [2017-07-17 14:53:12.09]: Successfully loaded custom action '/Users/jaderfeijo/Dropbox (EducationApps Ltd)/gojimo-dev/gojimo-ios/fastlane/actions/push_bump.rb'.
INFO [2017-07-17 14:53:12.09]: Successfully loaded custom action '/Users/jaderfeijo/Dropbox (EducationApps Ltd)/gojimo-dev/gojimo-ios/fastlane/actions/slack_error.rb'.
INFO [2017-07-17 14:53:12.09]: Successfully loaded custom action '/Users/jaderfeijo/Dropbox (EducationApps Ltd)/gojimo-dev/gojimo-ios/fastlane/actions/slack_success.rb'.
INFO [2017-07-17 14:53:12.09]: Successfully loaded custom action '/Users/jaderfeijo/Dropbox (EducationApps Ltd)/gojimo-dev/gojimo-ios/fastlane/actions/tag.rb'.
INFO [2017-07-17 14:53:12.09]: Successfully loaded custom action '/Users/jaderfeijo/Dropbox (EducationApps Ltd)/gojimo-dev/gojimo-ios/fastlane/actions/vpn.rb'.
INFO [2017-07-17 14:53:12.09]: --------------------------------------------
INFO [2017-07-17 14:53:12.09]: --- Step: latest_testflight_build_number ---
INFO [2017-07-17 14:53:12.09]: --------------------------------------------
INFO [2017-07-17 14:53:12.09]: Login to iTunes Connect (### REDACTED FOR SECURITY REASONS ###)

Looking for related GitHub issues on fastlane/fastlane...
Search query: The request could not be completed because:
	there is no web session to update

URL: https://api.github.com/search/issues?q=The%20request%20could%20not%20be%20completed%20because:%0A%09there%20is%20no%20web%20session%20to%20update+repo:fastlane/fastlane
➡  There is no web session to update still appear on new version "fastlane"
    https://github.com/fastlane/fastlane/issues/9653 [closed] 12 💬
    3 days ago

➡  uploading ipa file through fastlane deliver fails.
    https://github.com/fastlane/fastlane/issues/9777 [open] 2 💬
    4 hours ago

➡  pilot - there is no web session to update (on upload)
    https://github.com/fastlane/fastlane/issues/9237 [closed] 24 💬
    29 May 2017

and 14 more at: https://github.com/fastlane/fastlane/search?q=The%20request%20could%20not%20be%20completed%20because:%0A%09there%20is%20no%20web%20session%20to%20update&type=Issues&utf8=✓

🔗  You can ⌘ + double-click on links to open them directly in your browser.

✅ fastlane environment ✅
Stack

Key
Value

OS
10.12.5

Ruby
2.3.1

Bundler?
true

Git
git version 2.11.0 (Apple Git-81)

Installation Source
~/.rbenv/versions/2.3.1/bin/fastlane

Host
Mac OS X 10.12.5 (16F73)

Ruby Lib Dir
~/.rbenv/versions/2.3.1/lib

OpenSSL Version
OpenSSL 1.0.2j  26 Sep 2016

Is contained
false

Is homebrew
false

Is installed via Fabric.app
false

Xcode Path
/Applications/Xcode.app/Contents/Developer/

Xcode Version
8.3.3

System Locale

Variable
Value

LANG
en_GB.UTF-8
✅

LC_ALL

LANGUAGE

fastlane files:
`./fastlane/Fastfile`
fastlane_version "1.98.0"

default_platform :ios

platform :ios do
    before_all do
        ENV["DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS"] = '-t DAV'
        ENV["SLACK_URL"] = '### REDACTED FOR SECURITY REASONS ###'
        ENV["CRASHLYTICS_API_TOKEN"] = '### REDACTED FOR SECURITY REASONS ###'
        ENV["CRASHLYTICS_BUILD_SECRET"] = '### REDACTED FOR SECURITY REASONS ###'
    end

    desc "Submit staging & production builds to Fabric"
    lane :beta do
		latest_testflight_build_number
    end

	desc "Submit production build to TestFlight"
	lane :release do
		print "Nothing to do"
	end

	def update()
		sh 'bundle exec pod repo update'
        cocoapods
	end

    after_all do
		#
    end

    error do |lane, exception|
		clean_build_artifacts
    end
end

`./fastlane/Appfile`
app_identifier "### REDACTED FOR SECURITY REASONS ###" # The bundle identifier of your app
apple_id "### REDACTED FOR SECURITY REASONS ###" # Your Apple email address

team_id "### REDACTED FOR SECURITY REASONS ###"  # Developer Portal Team ID
itc_team_id "### REDACTED FOR SECURITY REASONS ###"  # iTunes Connect Team ID

# you can even provide different app identifiers, Apple IDs and team names per lane:
# More information: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Appfile.md

fastlane gems

Gem
Version
Update-Status

fastlane
2.46.1
✅ Up-To-Date

scan
1.0.0
✅ Up-To-Date

credentials_manager
1.0.0
✅ Up-To-Date

spaceship
1.0.0
✅ Up-To-Date

Loaded fastlane plugins:
No plugins Loaded
Loaded gems

Gem
Version

did_you_mean
1.0.0

bundler
1.15.1

io-console
0.4.6

CFPropertyList
2.3.5

public_suffix
2.0.5

addressable
2.5.1

babosa
1.0.2

colored
1.2

highline
1.7.8

commander-fastlane
4.4.5

dotenv
2.2.1

excon
0.57.1

multipart-post
2.0.0

faraday
0.12.1

unf_ext
<IP_ADDRESS>

unf
0.1.4

domain_name
0.5.20170404

http-cookie
1.0.3

faraday-cookie_jar
0.0.6

faraday_middleware
<IP_ADDRESS>

fastimage
2.1.0

gh_inspector
1.0.3

jwt
1.5.6

little-plugger
1.1.4

multi_json
1.12.1

logging
2.2.2

memoist
0.16.0

os
0.9.6

signet
0.7.3

googleauth
0.5.1

httpclient
2.8.3

mime-types-data
3.2016.0521

mime-types
3.1

declarative
0.0.9

declarative-option
0.1.0

uber
0.1.0

representable
3.0.4

retriable
3.0.2

google-api-client
0.12.0

json
2.1.0

mini_magick
4.5.1

multi_xml
0.6.0

plist
3.3.0

rubyzip
1.2.1

security
0.1.3

slack-notifier
1.5.1

terminal-notifier
1.8.0

unicode-display_width
1.3.0

terminal-table
1.8.0

tty-screen
0.5.0

word_wrap
1.0.0

claide
1.0.2

colored2
3.1.2

nanaimo
0.2.3

xcodeproj
1.5.0

rouge
2.0.7

xcpretty
0.2.8

xcpretty-travis-formatter
0.0.4

sawyer
0.8.1

octokit
4.7.0

i18n
0.8.6

minitest
5.10.2

thread_safe
0.3.6

tzinfo
1.2.3

activesupport
4.2.9

oauth
0.5.3

jira-ruby
1.2.0

fuzzy_match
2.0.4

nap
1.1.0

cocoapods-core
1.2.1

cocoapods-deintegrate
1.0.1

cocoapods-downloader
1.1.3

cocoapods-plugins
1.0.0

cocoapods-search
1.0.0

cocoapods-stats
1.0.0

netrc
0.7.8

cocoapods-trunk
1.2.0

cocoapods-try
1.1.0

escape
0.0.4

fourflusher
2.0.1

molinillo
0.5.7

ruby-macho
1.1.0

cocoapods
1.2.1

commander
4.4.3

credentials_manager
1.0.0

generated on: 2017-07-17

bundler: failed to load command: fastlane (/Users/jaderfeijo/.rbenv/versions/2.3.1/bin/fastlane)

I have spent some more time investigating this issue and something interesting is happening. I have loaded a Spaceship playground via fastlane spaceship and I get some interesting results while probing my iTunes Connect account.
First of all, when I search for the app in question using Spaceship::Tunes::Application.find I get the application, however, the build_trains are completely wrong. When I run Spaceship::Tunes.client.team_id I can see that the first team that is listed for my account when I run Spaceship::Tunes.client.select_team is selected, however, that is not the correct team for the app I'm probing so in theory a search for the application using Spaceship::Tunes::Application.find should return nil since that application does not belong to the currently selected team. Instead I get the application, but with build_trains that do not reflect the application's versions so I'm not sure where that data is coming from.
I have also found out where the there is no web session to update error is coming from. It happens every time I run select_team.

Further update:
I have continued to investigate this issue and it doesn't seem to be related to the fact that I am a part of multiple teams. I have setup a new iTunes Connect account which is only part of the team I want to access and has access only to the app specified in my Appfile and still I keep getting the there is no web session to update error.

Just updated to the latest version of Fastlane 2.47.0 and it looks like this is now fixed so I'm closing this issue.


Unable to use insert opt in ngx.timer.at or ngx.timer.every

Hi there,
I am looking to do insert opt in ngx.timer.at or ngx.timer.every to do some cron job.It cause a runtime error:API disabled in the current context.
stack traceback:
[C]: in function '__index'
.//lua/vendor/resty/moongoo/utils.lua:31: in function 'generate_oid'
.//lua/vendor/resty/moongoo/collection.lua:67: in function 'ensure_oids'
After reading the openresty manual,the ngx.var.pid cannot be used in context(ngx.timer.*),so i use ngx.woker.pid() to relpace ngx.var.pid.It works well in openresty 1.11.x.
https://github.com/openresty/lua-nginx-module#ngxwokerpid
https://github.com/openresty/lua-nginx-module#ngxvarvariable

It is fixed by @jetz 14 days ago,I miss it.


Login: no response when connection is not possible to server

When entering IP, user, etc. and clicking on "Login" the app doesn't respond. @daGscheid please find a solution to let the user know connecting is in progress. Diabling the button or something.
Also the user shouldn't be able to select what to do if connection is not possible.

Talked with @maxbehzadi82. Will use a floating loading overlay during the connection process.


Remind Players

Some amount of time (1 day? 3 days? hours?) before a Job/Adventure is due to happen send a reminder to all players who've reacted to the job message to inform them that it's happening. This should be through DM to prevent potentially spamming a channel.
Message should include:

name of Job/Adventure
date/time scheduled
link to original Job/Adventure post

Done now with notification DMs going out up to 24 hours ahead of the game.


[Bug]:

What happened?
Steps:

Open the website page https://beam.apache.org/community/youtube-channel/
Find header What is it and what are the goals?
Scroll to The YouTube channel found here is owned by the Apache Beam PMC.
Change the screen size to 1042 * 730
Take a look on the right menu and youtube video

Actual result: right menu overlaps youtube video
Expected result: right menu doesn't overlap youtube video

Issue Priority
Priority: 3
Issue Component
Component: website

.take-issue


Is it safe to update to peer @vueuse/head v0.8.x?

Hi awesome people,
Hey I was doing some weekend deps gardening, and hit a hitch with the update semver peer dep for @vueuse/head. The line is referenced below:
https://github.com/antfu/vite-ssg/blob/9fe4232a2eea3237c603e492a6e7e5da734b9c10/package.json#L86
Is it a breaker to change the peer specificity to this:
"@vueuse/head": "^0.5.0 || ^0.6.0 || ^0.7.0 || ^0.8.0",

Here's a link to the @vueuse/head changes:
https://github.com/vueuse/head/releases/tag/v0.8.0
Cheers and thank you for the excellent package! And let me know if you just want me to push a PR through to you all!

Bumpped.

@antfu you rock and thank you! 🍻


Correct the sort order on the admin menu to place the Robots menu last.

Sometimes when you start up the site and navigate to the CMS Admin menu, the robots menu appears in the first position instead of the last position.
Expected outcome:
Robots menu item should be consistently after the default Optimizely admin menu items.

Merged to develop