Better exports

Is your feature request related to a problem? Please describe.
Currently starknet.js export many of its utilities as object, which prevent best dead code elimination
Describe the solution you'd like
It would be better to expose the utils  via package.json exports field
so if you were to export num utils this way in your package.json:
{
  "name": "starknet",
   ...
  "exports": {
    ".": {
      "import": {
        "types": "./dist/index.d.ts",
        "default": "./dist/index.js"
      }
    },
    "./utils": {
      "import": {
        "types": "./dist/utils/index.d.ts",
        "default": "./dist/utils/index.js"
      }
    },
    "./utils/num": {
      "import": {
        "types": "./dist/utils/num.d.ts",
        "default": "./dist/utils/num.js"
      }
    },
  },
...
}

we would then be able to import it this way and benefit from dead code elimination if we were to only use part of the num exports:
import {toBigInt} from 'starknet/utils/num';

Also another bonus is that it will let us access types defined there too

Hi @wighawag , can I be assigned this please?

hello @wighawag
Can i be assigned to this task?
I propose restructuring Starknet.js to export utilities more modularly by utilizing the package.json exports field. This change will allow for better dead code elimination and enhance the ability to import only the needed utilities.
The benefiy of doing this are:

By exposing individual utilities through the exports field, unused code can be excluded from the final bundle, resulting in smaller and more optimized builds.
Type-Safe Imports: Developers will be able to directly access types from each utility, improving code clarity and the developer experience, especially in TypeScript environments.

@wighawag can I be assigned this task? I'll deliver as soon as possible

to fix your trouble check this solution click
maybe this will solve your problem.


Video resolution

Dear authors,
I tried by saving a high resolution movie with outputdict = {'-vcodec': 'libx264', '-b': '30000000'}, but unfortunately, the saved video size is 0 kB.
In brief, the first line doesn't work for me. The second line works but only saving a low resolution movie. By playing the movie, I actually see the first several frames are quite good but frames become blur starting from a given frame.
[1] writer = skvideo.io.FFmpegWriter(movieName2, outputdict = {'-vcodec': 'libx264', '-b': '30000000'})
[2] writer = skvideo.io.FFmpegWriter(movieName2)
Thank you so much!
David

Hi David,
Sorry for the delay. That's strange that those options do not work for you. What resolution movie are you working with? Also, you can use the crf flag to control quality, somewhat.
Todd


Update configuration api

Description
This PR updates the config API quickstart to use V1 endpoint. It also updates the required sdk quickstarts as per sdk updates.
Issue reference
We strive to have all PRs being opened based on an issue, where the problem or feature have been discussed prior to implementation.
Please reference the issue this PR will close: #832
Checklist
Please make sure you've completed the relevant tasks for this PR, out of the following list:

[ ] The quickstart code compiles correctly
[ ] You've tested new builds of the quickstart if you changed quickstart code
[ ] You've updated the quickstart's README if necessary
[ ] If you have changed the steps for a quickstart be sure that you have updated the automated validation accordingly. All of our quickstarts have annotations that allow them to be executed automatically as code. For more information see mechanical-markdown. For user guide with examples see Examples.

@msfussell @paulyuk This PR updates config API quickstarts to use v1 endpoint.
Also, there have been breaking changes in Go, Java and Python-sdks. I updated these sdk quickstarts to use the latest changes, but since the sdks haven't had releases yet, Python and Java validations are failing. (For Go, I updated go.mod to use latest master commit). Is there anyway we can use master version of SDKs in the workflow? Or should the sdk changes be in a separate PR later after the SDK releases?

@msfussell @paulyuk This PR updates config API quickstarts to use v1 endpoint.
Also, there have been breaking changes in Go, Java and Python-sdks. I updated these sdk quickstarts to use the latest changes, but since the sdks haven't had releases yet, Python and Java validations are failing. (For Go, I updated go.mod to use latest master commit). Is there anyway we can use master version of SDKs in the workflow? Or should the sdk changes be in a separate PR later after the SDK releases?

We need to get the RC versions included into the build. If pulling in Master is the way to go, it would be good to change the test for this. @paulyuk  for his opinion here

@msfussell @paulyuk This PR updates config API quickstarts to use v1 endpoint.
Also, there have been breaking changes in Go, Java and Python-sdks. I updated these sdk quickstarts to use the latest changes, but since the sdks haven't had releases yet, Python and Java validations are failing. (For Go, I updated go.mod to use latest master commit). Is there anyway we can use master version of SDKs in the workflow? Or should the sdk changes be in a separate PR later after the SDK releases?

We need to get the RC versions included into the build. If pulling in Master is the way to go, it would be good to change the test for this. @paulyuk for his opinion here

My plan is as follows:

we keep master current and pinned with tagged releases or prereleases.  you can see now that master is already pinned to v1.11-rc2.  As rc3 comes out we'll change the pin.
we begin the practice of pre-releases and releases of Quickstarts.  I made a 1.11-rc2 pre-release last night, and will do rc3 today.  The bulk of pre-release->release testing should focus here
SDK Maintainers should coordinate with quickstart maintainers to tell us latest they want in the release.  Right now Configuration and Workflow are on my list since they appear to be broken.  This is a bit of a matrix with all the APIs x Languages so it relies on maintainers communicating well on needs.  otherwise we end up reactive like today.

Thoughts?

Sounds good to me. I posted on the Discord release channel to the SDK owners https://discord.com/channels/778680217417809931/804043781107613706/1111096250327126026

Looks good. Need to add examples in here for:

C# client (only http currently)
Javascript client (only http currently)

We already have examples for C# and Javascript client(both http and sdk). It's just there were no changes in the sdk versions of these and so there is no change in those files. See https://github.com/dapr/quickstarts/tree/master/configuration/csharp/sdk, https://github.com/dapr/quickstarts/tree/master/configuration/javascript/sdk


Add information about proxy_protocol in port 442

Adding a comment in the template to avoid adding this directive in the future in the wrong place.

This change is

Coverage remained the same at 44.409% when pulling 36f842c011e403ca454434f95c81e32f18b46c61 on aledbf:proxy-443 into e35e5bfce5ff1da6e6cd9cb1637f59e22b8c1455 on kubernetes:master.

merging, this is just a comment in the template.

LGTM - nice clarification


Check if activeFile exists before using

https://github.com/CattailNu/obsidian-file-info-panel-plugin/blob/eead561d4eb09490fa6ffe24b437893d1f6d50a7/main.ts#L235
You have if statements that are checking activeFile(), but when a vault first loads there is no activeFile and so the plugin causes a lot of typeErrors logged to the dev console. Please check that there is an activeFile before using it.

Whoops!  Good catch!  Fixed in 1.2.5.


[Feature Request] generateDocumentOutline similar to playwright (chromium)

In playwright (chromium), it's possible to use code like this to generate a PDF (from HTML) with tags/outline/bookmark/TOC:
import playwright from 'playwright';

export const generatePDF = async (html: string) => {
  const browser = await playwright.chromium.launch();
  const page = await browser.newPage();
  await page.setContent(html);
  const res = await page.pdf({
    path: './my-document.pdf',
    printBackground: true,
    preferCSSPageSize: true,
    tagged: true,

    // This part here:
    outline: true,
  });
  await browser.close();
  return res;
};

This was done by exposing the generateDocumentOutline and generateTaggedPDF options, along the lines of (in TS):
    const generateDocumentOutline = outline;
    const generateTaggedPDF = tagged;
    const result = await this._client.send('Page.printToPDF', {
      transferMode: 'ReturnAsStream',
      landscape,
      marginLeft,
      marginRight,
      pageRanges,
      preferCSSPageSize,
      generateTaggedPDF,
      generateDocumentOutline
    });

Could this functionality be implemented with gotenberg in a similar manner? The merge request for it is here:

https://github.com/microsoft/playwright/pull/29494

I can confirm that changing the following:
https://github.com/gotenberg/gotenberg/blob/62ba4877acd21b2e9f2acf29ec4e70dbeefe0b98/pkg/modules/chromium/tasks.go#L38-L53
to:
		printToPdf := page.PrintToPDF().
			WithTransferMode(page.PrintToPDFTransferModeReturnAsStream).
			WithLandscape(options.Landscape).
			WithPrintBackground(options.PrintBackground).
			WithScale(options.Scale).
			WithPaperWidth(options.PaperWidth).
			WithPaperHeight(paperHeight).
			WithMarginTop(options.MarginTop).
			WithMarginBottom(options.MarginBottom).
			WithMarginLeft(options.MarginLeft).
			WithMarginRight(options.MarginRight).
			WithPageRanges(pageRanges).
			WithPreferCSSPageSize(options.PreferCssPageSize).

                        // Adding this part here:
			WithGenerateDocumentOutline(true).
			  ##WithGenerateTaggedPDF(true)

Does give the desired result (h1, h2, h3, etc are appearing in my outline correctly).

Made PR #1044

@nktnet1 gotenberg/gotenberg:8.14.0 should be available within ~1 hour.


fix: improve init segment reference comparison

I'm going to let @joeyparrish review this, because I think there are a lot of implications to this.


Circular transition and effects

I was wondering about circular transitions and why no "effects" are returned when this happens:
https://github.com/davidkpiano/xstate/blob/master/test/effects.test.ts#L121
I'm thinking there could be a FetchingData state, which a transition back to itself when RETRY is triggered. Using onEntry I could define that I want the data to be refetched, but right now returns empty array when this happens.
Thoughts?

I think there should be a different hook then. Something like onReEntry.

It returns no effects because no transition occurred - that is, there's no defined transition for 'NOTHING' actions, so this is the expected behavior.
Now self-transitions are different. I'll add tests to ensure that if a state transitions to itself, it will return its own onExit/onEntry handlers as effects.

I'm a bit confused. Why do you call them actions? NOTHING is an event, isn't it? Does xstate even support actions? And the green state seems to have { on: NOTHING: ... }, but again maybe I'm missing something.

Hmm, you're right. I've been using the word "action" in the Redux sense of the word, even though in statecharts an action is what I refer to as an "effect" (as in, a side-effect). I think there is an opportunity to clarify this (but please open a separate ticket for that).


Token requests when running as a Windows Task

I wrote a Batch script to sync once a day with a variable date parameter. When the script is executed manually, everything works fine. But when I run it from Windows Task Scheduler whether on schedule or on demand, I receive the error Can't read config file ./.withings_user.json and the prompt to get the token from Withings. The error re-occurs on the next run after providing an updated token.
I thought the issue was that the task was being executed under a different user and doesn't have access to %appdata%\Python\Python312\site-packages\withings_sync, but task properties are set to run under my account. What could be the issue?

I assume the issue ist resolving the home dir:
HOME = os.environ.get("HOME", ".")
https://github.com/jaroslawhartman/withings-sync/blob/master/withings_sync/withings2.py#L12
and
USER_CONFIG = os.environ.get("WITHINGS_USER", HOME + "/.withings_user.json")
https://github.com/jaroslawhartman/withings-sync/blob/master/withings_sync/withings2.py#L21
Can you try set HOME?

I'm sorry for the dumbest question. My coding skills are only as good as using precise instructions and asking ChatGPT to debug.
Where should I set HOME environmental variable? Will it be on Windows level? I tried this documentation for os.environ and the output list didn't have a HOME variable.

@dnbrv
You use GUI to set environmental variables in Windows.
ref. https://www.computerhope.com/issues/ch000549.htm
Instead of modifying "Path", try creating new user variable "HOME", and set the value of it to the address of the directory that .withings_user.json is located.

@harupong That worked! Thank you!

@harupong Nope. It worked when I set it up. The next time it triggered automatically, the token prompt came up again.

@harupong Nope. It worked when I set it up. The next time it triggered automatically, the token prompt came up again.

can you run set in this scope, to ensure HOME is still configured?

@longstone Strangely, it has resolved itself and everything has been working fine for 2 months now.


ignite-gg-12573 Check cluster state from daemon node, using compute

Feel free to reopen PR if it is needed.


If pushState is turned on, 404 often occurs in the back of cordova packaged app

thanks !  but ,  Accidental 404 of pages  version: framework7 4.0+ cordova 8.0
I git clone https://github.com/framework7io/framework7-template-vue-webpack ,
f7params: {
id: 'io.framework7.testapp', // App bundle ID
name: 'Framework7', // App name
theme: 'auto', // Automatic theme detection
// App routes
routes: routes,
view: {
pushState: true,
pushStateRoot: document.location.pathname.split('index.html')[0],
},
},
the routes.js is like --
export default [
{
path: '/',
component: HomePage,
alias: '/index.html',
},
{
path: '/panel-left/',
component: PanelLeftPage,
},
{
path: '/panel-right/',
component: PanelRightPage,
},
{
path: '/about/',
component: AboutPage,
},
{
path: '/form/',
component: FormPage,
},
{
path: '/dynamic-route/blog/:blogId/post/:postId/',
component: DynamicRoutePage,
},
{
path: '(.*)',
component: NotFoundPage,
},
];

Please, use forum for questions


Missing Document information

Hi,
I am not sure why but some information about this plugin in the october website seems missing now?
Could you please add to the document section the link to GA Events API please and give an example of setting up a custom one.
(This info use to be up there and now it seems missing???)
Anyway, it would be easier for people if it was added to the documentation page please.
Thanks.
(Off to search for the GA Events API page now...)
Rainlab I found the link you should add its this one: https://developers.google.com/analytics/devguides/reporting/core/v3/common-queries

Are you referring to the Support article OB-17? http://octobercms.com/blog/post/advanced-content-marketing-and-analytics
You can find this any time via the Support section here: http://octobercms.com/support

Hi no I am not referring to that blog post. I am talking about this link: http://octobercms.com/plugin/rainlab-googleanalytics#documentation
You should add details here for people wanting to create custom GA Dashboard widgets in October.
Using this link: https://developers.google.com/analytics/devguides/reporting/core/v3/common-queries
I then found the dimension and metric values and was able to create a custom widget on my dashboard today.
I hope that makes a bit more sense what I am saying. You use to have instructions there a few months ago, I don't understand why it is suddenly missing now?

Are we talking about the same plugin? I'm not seeing a widget with these properties. However I am seeing one on the Google Analytics extension plugin.
Perhaps you are thinking of this plugin: https://octobercms.com/plugin/bedard-analyticsextension


[feature] use github.com/DeDiS/protobuf for ser/de operations

The affected code is only within this file:
https://github.com/chrislusf/glow/blob/master/io/channels.go#L77
and
https://github.com/chrislusf/glow/blob/master/io/channels.go#L54
I tried to use github.com/DeDiS/protobuf, but it can not handle reflect.Value.

i was using protocol buffers (PB) and recently started to use FlatBuffers (FB) for perf reasons.
FB is the successor to PB that has been in the alpha oven for a while now, but is now ready.
http://google.github.io/flatbuffers/
if seems a good match this Glow, and i am curious on your thoughts.
I also likes the ability to serialise between raw FB and JSON. This allows the data types to be reused in the any web layer for a application.

Protocol Buffer or Flat Buffer need definition and code generation. They could be used to customize ser/de.
The default ser/de should not need any additional steps.

ok. I need to look into the code to see how your doing it. I guess its reflection based ?

Fyi: The package was renamed to netchan:
https://github.com/chrislusf/glow/blob/master/netchan/channels.go#L52
https://github.com/chrislusf/glow/blob/master/netchan/channels.go#L77

if you really want to use DeDis/protobuf,
maybe write a func EncodeValue(value reflect.Value) to wrap from L51~L57
https://github.com/dedis/protobuf/blob/master/encode.go#L51
and write another func (dec *Decoder) DecodeValue(v reflect.Value) to wrap L64
https://github.com/dedis/protobuf/blob/master/decode.go#L64


[Issue 11678 ] [pulsar-functions] When the action has no 'continueOn', continue to invoke subsequent actions

Fixes #11678
Motivation
terminateFunction does not clean up batch source intermediate topics, resulting in topic leak.
Modifications
If an action does not have a 'continueOn' check, the default should be to continue invoking subsequent actions.
Verifying this change

[x] Make sure that the change passes the CI checks.

Added unit test.
Documentation
This is a bug fix, no documentation impact.

@jerrypeng PTAL when you get a chance.

/pulsarbot run-failure-checks

/pulsarbot run-failure-checks


Changing the ID generation string to include one more letter of number

Instead of reworking the import it was suggested that we could just change out minter template to make the new ids generated longer than the older ids so no old id would get used for creating new files.
What do people think?  Is an 11 digit id ok with everyone? @olendorf you have the final say...

If we change the template we need to remove the state file for the template change to take affect.

fine with me. I don't think the library has a real stance on this other than that they are indeed unique and it works.


unsafe_fragment should support dynamic arguments

We have added unsafe_fragment/1 and in a later commit I added the ability to interpolate arguments on it, such as unsafe_fragment(^"? = ?", left, right). The issue with this proposal is that the number of arguments is very likely not statically known so we should support something instead.
We need to either support the second argument to be a list or allow unsafe_fragment to be a list of strings and values, such as:
unsafe_fragment(^[left, " = ", right])

Closing in favor of the PR.


Bmedx/travis deploy fix

Read up on some other folks having this issue, this seems like the next thing to try. Having "branches: only: master" seems to turn off builds based on tags. These changes are supposed to undo that.

Codecov Report

Merging #10 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff          @@
##           master    #10   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           2      2
  Lines          94     94
  Branches       12     12
=====================================
  Hits           94     94

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 4f39e45...3142953. Read the comment docs.


[BUG]　“Despite setting the MRTK3 profile, I’m getting an error saying ‘MRTK Profile could not be retrieved’

Describe the bug
In my Unity project using MRTK3, when I place the MRTK XR Rig and MRTK Input Simulator objects and run the scene, it goes into a pause state. Despite setting the MRTK profile, I’m getting the following error indicating that it’s not being retrieved correctly.
MRTK Profile could not be retrieved.
UnityEngine.Debug:LogError (object)
MixedReality.Toolkit.XRSubsystemHelpers:GetConfiguration<MixedReality.Toolkit.Input.SyntheticHandsConfig, MixedReality.Toolkit.Input.SyntheticHandsSubsystem> () (at ./Library/PackageCache/org.mixedrealitytoolkit.core@c00d0949582c/Utilities/XRSubsystemHelpers.cs:282)
MixedReality.Toolkit.Input.SyntheticHandsSubsystem:Register () (at ./Library/PackageCache/org.mixedrealitytoolkit.input@719fc273754c/Subsystems/SyntheticHands/SyntheticHandsSubsystem.cs:50)

No profile is available. Please ensure a profile is assigned in the MRTK settings or file a bug if one is and this error is still occurring.
UnityEngine.Debug:LogError (object)
MixedReality.Toolkit.Subsystems.MRTKLifecycleManager:Awake () (at ./Library/PackageCache/org.mixedrealitytoolkit.core@c00d0949582c/Subsystems/MRTKLifecycleManager.cs:49)

Strangely enough, this error is resolved as soon as I open the MRTK3 item in ProjectSettings, even if I don’t change any scene settings.
However, when I restart Unity, the error occurs until I open ProjectSettings.
It’s just a guess, but I get the impression that I can’t access the MRTK profile due to some influence.
To reproduce

Run MRTK3 Scene in UnityEditor
The scene is paused and the aforementioned error occurs.
Open Project Settings and display the MRTK3 menu
from step 3, the error is resolved until Unity is restarted again.

Your setup (please complete the following information)

Unity Version 2022.3.5f1 (URP)

MRTK Version

Windows11PC

Target platform (please complete the following information)

UnityEditor

Hello @HoloMoto, thank you for reaching out.  Could you please confirm if you have your MRTK profile set in both Universal Windows Platform and Windows settings? for example:

and also

@ms-RistoRK
Hello! Yes I’ve checked and it’s definitely set for both UWP and standalone. I’ve restarted my PC and such, but it keeps happening.

@ms-RistoRK Hello! Yes I’ve checked and it’s definitely set for both UWP and standalone. I’ve restarted my PC and such, but it keeps happening.

Thank you for the clarification @HoloMoto .  Is there a project + scene you could share with the issue? I want to try and reproduce it on my side.

@ms-RistoRK   I will share my project occued this error.
https://github.com/HoloMoto/HoloLens_To_iOS_ConnectTest
It occurs reproducibly in my local environment.　If I can't reproduce it, I will provide any information you might be able to identify about the bug, such as my PC settings.

Hello @HoloMoto thank you for providing the link to the repository.  I cloned the repo and attempted to reproduce the issue, but I was unable to reproduce the issue.  I opened "SampleScene" from Assets/Scenes and when running from Unity Editor no error about MRTK profile appeared in the Editor's Console.  May I suggest that you run a 'git status' on your repository root folder? For example:

This would help us see what other files have changed.

Also @HoloMoto , can you confirm that all of your platforms have a MRTK profile set (iOS, Android, UWP, Standalone)

I have been facing the same issue as I have added the MRTK profile to all platforms. The problem was fixed. @HoloMoto

On my side, I added a log in the MRTKSettings.OnEnable() function.
When I have the error MRTK Profile could not be retrieved. on enter playmode, my log doesn't appear in the console.
When it works (most of the time), the log is the first logged in the console.
For some reason, sometimes Unity doesn't call the MRTKSettings.OnEnable() function when entering playmode (or maybe it's called to early, before domain reload reset the static field). When I select the asset in the project window, the OnEnable() function is called and I don't have the error on the next playmode start.
(I have all profiles set for all my platforms.)

I am getting the same error sometimes in playmode (with and without Holographic Remoting). The MRTK profile is assigned to all installed platforms (Windows, UWP). Selecting the MRTK profile asset fixes the error for some time. Restarting the editor has no effect.
(Unity 2022.3.12f1)

Attempted another reproduction with Unity 2022.3.7f1, commit https://github.com/MixedRealityToolkit/MixedRealityToolkit-Unity/commit/f279218d1e1f0856ebb32c6122b0b22a273a15d6 on a fresh install and a fresh repo clone.
Still unable to reproduce.  Closing this issue, please file a new issue if this happens again.


PromptDialog.Confirm is functionally incorrect in Group conversations in skype

Hi,
I was facing another issue with PromptDialog.Confirm.
When yes or no is replied to the PromptDialog (like @(Bot) yes) in a group conversation - it doesn't treat the response as a valid response.
But in a 1-1 conversation window, it works fine.
Note: I used Skype web app for this.
Thanks in advance for looking into this.

Hi @satheeshravi , are you still seeing this issue?

When I tried couple of days back, it still had this issue. Is there a fix pushed for this, during this week ?

Yes, Skype has released an update.

@satheeshravi was this fixed?

@Andrea-Orimoto : Sorry about the delay. I will try it out and update you folks by the weekend.

@satheeshravi did you have a chance to look at this?

Hi @satheeshravi, if you see this problem, please open a new issue. Thanks!


[Bug Report] el-tree not adding dynamic node to tree

Element UI version
2.3.6
OS/Browsers version
windows 10
Vue version
2.3.3
Reproduction Link
https://jsfiddle.net/chauriyagaurav/2mekfhfr/
Steps to reproduce

click Level one 3 node on Tab 2. This should add new node to el-tree as written in handleNodeClick method.
Inspect htlm with developer tool, new element can be seen in Tab 1 el-tree.

What is Expected?
New tree node should be added to same active tree
What is actually happening?
New node is always getting added to first tab's tree node.
Additional Information
The issue is been occurring from version 2.2.0 and working perfectly fine with version 2.1.0.

I think this is not a bug. Don't share data between two or more Tree components.
https://github.com/ElemeFE/element/blob/94434dcb795ad6ab5cc7948ade38b0ce1877a446/packages/tree/src/model/node.js#L435-L441
If item[NODE_KEY] exists,  Tree doesn't regard the new item as new node. When the second tree rerenders, the new item's NODE_KEY exists. So only the first Tree update.


func without currying?

I'm using tcomb to add strictness to actions in a Flux application. It's awesome!
I was surprised by the default behavior of function:
var tcomb = require('tcomb');
var add = tcomb.func([tcomb.Num], tcomb.Num).of(function(a) { return a + 1; })
add();

I expected this to throw, but really it curries func by default, so calling functions without arguments just returns the functions. I'd much rather have an API that throws on missing functions than silently curries, as this is doing.
I can see from the earlier discussion https://github.com/gcanti/tcomb/issues/84 that this is a tricky problem. Could currying be optional for the func method?

cc @beckyconning

i don't think that currying should be optional as its easy to have a function from a tuple to something else. e.g.
\\ f :: (Num, Num) -> Num
var f = T.func([T.tuple([T.Num, T.Num])], T.Num).of(function (xs) { return xs[0] + xs[1]; });

however i agree that functions called without arguments should throw type errors. e.g.
\\ f :: Num -> Num -> Num
var f = T.func([T.Num, T.Num], T.Num).of(function (x, y) { return x + y; });
f(); \\ was not called with a number should throw type error

Although you could wrap whatever you are expecting to take the result of that argument using the func combinator to ensure that it takes a Num rather than a Func.
var safeRender = T.func([T.Num], U.Promise).of(render);

i don't think that currying should be optional as its easy to have a function from a tuple to something else.

I'm adding tcomb to an existing API: in order to use tuples, I'd need to change all method signatures and everywhere those methods are called, right?

i think it would probably be easier and more valuable to wrap the api methods which you are calling using the func combinator than to use the tuple approach.

I'm not totally sure what that means: for instance, in my app I have a method like this:
var actionSignOrder = func([Str, Obj], Prom).of(function(id, data) {
      return MapboxClient.signOrder(id, data)
        .then(orders => {
          dispatch({
            actionType: OrdersConstants.ORDER_SIGN
          });
      });
    })

This is a method with two required parameters. Somewhere else in my application, I had a call to this method that gave it only a single str argument. Before, that call would fail because MapboxClient would try to get a property of data, which would be undefined, and throw. Ideally, that call would fail immediately because it didn't include a required parameter, and tcomb could give one of its informative error messages immediately. But with automatic currying, invoking actionSignOrder(str) fails silently, which is arguably worse than either of the other alternatives.

I'm adding an optional boolean param uncurried to Func.of(f, uncurried)
var Type = func([Num, Num, Num], Num);
var sum = Type.of(function (a, b, c) {
  return a + b + c;
}, true); // <= uncurried = true
sum(1, 2, 3); // => 6
sum(1, 2); // throws

I changed my mind about the next version of tcomb. I'll ship a v2.0 so I can do breaking changes. The uncurried version will be the default and I'll add a curried optional param.

published in v2.0.0-beta


Update NLog dependency to 4.2.3

Current coverage is 81.62%

Merging #25 into develop will not affect coverage as of aaac0e4

@@            develop     #25   diff @@
=======================================
  Files             3       3
  Stmts           185     185
  Branches         37      37
  Methods           0       0
=======================================
  Hit             151     151
  Partial          18      18
  Missed           16      16

Review entire Coverage Diff as of aaac0e4

Powered by Codecov. Updated on successful CI builds.

:shipit:


Mounting Gullfaxi or Boreas sends a false Hallowed Ground or Holmgang call.

Not sure if intentional or not, figured I would report it anyway as 2 other friends reported the same to me.
Mounting either of the two mounts gives out the following calls targeted at the player.
Boreas - Holmgang, Gullfaxi - Hallowed Ground.
Steps to reproduce are simple, be on a tank class, mount on either of the mounts, and the call will appear on your screen.

Thanks for this.  I always wondered why there were random Hallowed/Holmgangs at the start of frontlines matches and I could never quite figure it out.
It turns out that's what's in the log, though.  It has the ability id and the name of hallowed ground and holmgang.  I'm going to file this upstream with the ACT plugin.

I've been seeing this for months since Boreas was my main non-flying mount, and I'm a tank main.
Just thought it was some oddity with mounting calling out Holmgang, never occurred to me it only happened with a specific mount..

¯_(ツ)_/¯

This should be fixed now in the latest ffxiv plugin.


Workflow secrets and .env for docker-compose

Node.js.yml workflow uses Github Secrets in workflow run and both docker-compose-dev and docker-compose-test get their environmental variables from .env

👍


metrics: fix Y410 PSNR and SSIM

Signed-off-by: U. Artie Eoff<EMAIL_ADDRESS>

Verified and this patch works well and with the PSNR for Y410 back to right range
[2020-07-28 03:31:39] DETAIL: drv.iHD.psnr:actual = [47.7306, 53.0405, 52.754, 47.842, 53.8441, 53.4644]

superseded by #220


Automated Package Upgrade

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Question about using this for all api levels

Should TrustKit be used only if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N)?
It's unclear to me what will happen if we do this on N+ devices:
connection.setSSLSocketFactory(TrustKit.getInstance().getSSLSocketFactory(serverHostname));
This example is for HttpsURLConnection, but the question applies to OkHttp too. Will there be a double pinning check in this case? One by core Android and one by TrustKit?
I did see this in the readme:

On Android N devices, TrustKit uses the OS's implementation of pinning

But it's not clear what happens if our own code is setting SSLSocketFactorys on connections in N.  Maybe an explicit statement in the readme could remove doubt that this can indeed be done on N, and that we don't need to include any api level checks.
Thanks!

Hi @calvarez-ov, TrustKit can be used for every version of Android, at least for now. I'm not sure to understand what is the issue ?
TrustKit is doing the SSL pinning part of every connections where you're using it before Android N. Still you can use the reporting part even with N or more recent version of Android.
Thanks for the feedback and does that answer to your question ?

Thanks. I was wondering what's the difference between using TrustKit vs not using TrustKit on Nougat.  Indeed, I see that the reporting is one of the things that TrustKit adds.
I took a look at PinningTrustManager.java for more insight.  I see that the manual pinning is only done before N, and for N+ it relies on the baseline (system) trust manager to check the pinning.  So I guess the actual validation of pins shouldn't be different whether TrustKit is used or not.
On N+, looks like there are a couple of other things that happen in TrustKit in addition to reporting: the hostname verification is always done first, and errors can be ignored if enforcePinning is set to false.
This is enough for me to understand what TrustKit adds on N+. Thanks.


Dialog Layout button appears to always change navigation menu Color pallette to the Default colour

I am noticing an unexpected behaviour when using the button that can change some dialog views from vertical to horizontal that I believe was added recently. At least I only noticed it recently.

Not sure where to submit this but I have a strange colour background behaviour.
I have my backgounds set to White but when I make a change to the layout that was added (top left corner) to some dialogs the background for the left navigation panel changes from White to Blue.
I have tried to see when it happens and have been able to reproduce it by Selecting Virtual server

Select the botton and select save. Then return to Virtual server. The menu switches to the Dark Blue background.
To switch it back to white I go into Theme configuration and switch the navigation menu colour back to White. It appears to automatically revert to the Default which is set to Blue.

Its a little bit irritating.

Hello,
You're right! Sadly there was a bug that caused other theme options not saved. Fixed in the latest commit. You can install patched version using Theme Configuration page!
Thanks for the heads up!


Only show the outdated version messages on JetBrains IDEs if the new version is already available in the marketplace.

Whenever a new version of mirrord is available, the user is currently presented with a suggestion to update it:

But if the new version is not available on the JetBrains marketplace yet, when clicking update, the user would be presented with the plugin's page where there would be no update button if the current version is the latest available one.

It would be a better experience for the message only to be.shown if the new version is already available for JetBrains IDEs.

should be a minor fix, as we can do something like this:
curl -s 'https://plugins.jetbrains.com/api/plugins/19772/updates?channel=&size=1' | jq -r '.[0].version'
3.15.2


added link to become a mentor

Name     :           Keshav Agrawal
Linkedin :           https://www.linkedin.com/in/keshav-agrawal-2ba75018b/
Twitter    :           https://twitter.com/KeshavA76309037
About     :           Software Engineer at Apisero

Please add your details in the MENTORS.md file and make a separate PR. I'm closing this for now.


Add links to UCT documentation pages

At the moment there is no relation between this video and UCT's documentation, which makes it impossible for users to learn more about the tool.

created PR in private repo: https://git.corp.adobe.com/AdobeDocs/commerce-learn.en/pull/40

Closing -- internal PR was merged.


I though that ansible_ssh_user was deprecated ?

Issue Type

Bug report

Molecule and Ansible details
ansible --version
ansible 2.8.4

molecule --version
molecule, version 2.22

Molecule installation method (one of):

pip

Ansible installation method (one of):

pip

Detail any linters or test runners used:
Desired Behavior
I would like to use one scenario for AWS but using multiple platforms.
But even by supplying ansible_user, it is using the ssh_user from create.yml which is ubuntu.
Actual Behaviour
My actual config:
---
dependency:
  name: galaxy
driver:
  name: ec2
lint:
  name: yamllint
platforms:
  - name: ec2-centos6
    image: ami-07fa74e425f2abf29
    instance_type: t2.micro
    vpc_subnet_id: subnet-d25fb0b8
    groups:
      - centos
  - name: ec2-centos7
    image: ami-04cf43aca3e6f3de3
    instance_type: t2.micro
    vpc_subnet_id: subnet-d25fb0b8
    groups:
      - centos
provisioner:
  name: ansible
  config_options:
    defaults:
      hash_behaviour: merge
  inventory:
    group_vars:
      centos:
        ansible_user: centos
  lint:
    name: ansible-lint
verifier:
  name: testinfra
  lint:
    name: flake8

Now when I run this:
molecule --debug converge --scenario-name aws
[...]
TASK [Gathering Facts] *********************************************************
    task path: /Users/mmahfoudi/Github.mehdicopter/ansible-role-epel/molecule/aws/playbook.yml:2
    <<IP_ADDRESS>> ESTABLISH SSH CONNECTION FOR USER: ubuntu
    <<IP_ADDRESS>> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o Port=22 -o 'IdentityFile="/Users/mmahfoudi/.cache/molecule/ansible-role-epel/aws/ssh_key"' -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="ubuntu"' -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o ControlMaster=auto -o ControlPersist=60s -o IdentitiesOnly=yes -o StrictHostKeyChecking=no -o ControlPath=/Users/mmahfoudi/.ansible/cp/%h-%p-%r x.x.x.x '/bin/sh -c '"'"'echo ~ubuntu && sleep 0'"'"''
    <x.x.x.x> ESTABLISH SSH CONNECTION FOR USER: ubuntu
    <x.x.x.x> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o Port=22 -o 'IdentityFile="/Users/mmahfoudi/.cache/molecule/ansible-role-epel/aws/ssh_key"' -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="ubuntu"' -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o ControlMaster=auto -o ControlPersist=60s -o IdentitiesOnly=yes -o StrictHostKeyChecking=no -o ControlPath=/Users/mmahfoudi/.ansible/cp/%h-%p-%r x.x.x.x '/bin/sh -c '"'"'echo ~ubuntu && sleep 0'"'"''
    <x.x.x.x> (255, '', "Warning: Permanently added 'X.X.X.X' (RSA) to the list of known<EMAIL_ADDRESS>Permission denied (publickey,gssapi-keyex,gssapi-with-mic).\r\n")
    <x.x.x.x> (255, '', "Warning: Permanently added 'x.x.x.x' (ECDSA) to the list of known<EMAIL_ADDRESS>Permission denied (publickey,gssapi-keyex,gssapi-with-mic).\r\n")
    fatal: [ec2-centos6]: UNREACHABLE! => {
        "changed": false,
        "msg": "Failed to connect to the host via ssh: Warning: Permanently added 'x.x.x.x' (RSA) to the list of known<EMAIL_ADDRESS>Permission denied (publickey,gssapi-keyex,gssapi-with-mic).",
        "unreachable": true
    }
    fatal: [ec2-centos7]: UNREACHABLE! => {
        "changed": false,
        "msg": "Failed to connect to the host via ssh: Warning: Permanently added 'x.x.x.x' (ECDSA) to the list of known<EMAIL_ADDRESS>Permission denied (publickey,gssapi-keyex,gssapi-with-mic).",
        "unreachable": true
    }

    PLAY RECAP *********************************************************************
    ec2-centos6                : ok=0    changed=0    unreachable=1    failed=0    skipped=0    rescued=0    ignored=0
    ec2-centos7                : ok=0    changed=0    unreachable=1    failed=0    skipped=0    rescued=0    ignored=0

ERROR:

I know that if I change ansible_user to ansible_ssh_user, it works.
Modified config:
provisioner:
  name: ansible
  config_options:
    defaults:
      hash_behaviour: merge
  inventory:
    group_vars:
      centos:
        ansible_ssh_user: centos
        # ansible_user: centos
  lint:
    name: ansible-lint

But then I have a new

AFAIK there is nothing done in particular by molecule regarding this. Sadly there are still some problems with EC2 driver which prevent me from testing it right now.
If you narrow it down in molecule and make a patch to address it, I will be more than happy to help with the review.

Is it because of testinfra module which it is not able to read group_vars inventory ?


:sparkles: Adds support for active.end / end date value

ℹ What is the context for these changes?

Adds support for active.end within the Tokengate component.
During development of this I realized there was some similarity between the component which would display at the bottom of the card via the following states:

TokengateCardSection.ConnectWallet
TokengateCardSection.AvailableSoon
TokengateCardSection.SoldOut

Since these are all so similar, I found that it would make sense to create a wrapper component that accepted some similar props for translation key, value, and namespace. Though they all share the same namespace now, I left the namespace open so that it could be more dynamic in the future.
This also means we can create a single component to maintain the spacing and colors between all of these different sections.
Another thing that popped up was that the translation utilities from react-i18next make the translation string with dates include at instead of a comma between the date and the time.
🕹 Demonstration

Name / State
📖 Storybook Link

End Date
View on Storybook

Start Date
View on Storybook

Sold Out
View on Storybook

I believe the following two sections could probably be converted to use the new wrapper as well, but I omitted doing so since it would involve adjusting the logic of the Tokengate component which I do not want to do in this pull request.

TokengateCardSection.OrderLimitReachedError
TokengateCardSection.MissingTokensError

🎩 How can this be tophatted?

Use the storybook links mentioned in the table above ⬆
✅ Checklist

[ ] ~Tested on mobile~ N/A
[ ] ~Tested on multiple browsers~ N/A
[ ] ~Tested for accessibility~ N/A
[x] Includes unit tests
[ ] Updated relevant documentation for the changes (if necessary)

Will require an update to dev docs to change type of button from ReactNode to JSX.Element

/snapit


On Mac M1 Pro with Sonoma 14.0 I cannot see the window

Preflight Checklist

[X] I have installed the latest version of Storage Explorer.
[X] I have checked existing resources, including the troubleshooting guide and the release notes.
[X] I have searched for similar issues.

Storage Explorer Version
1.32.0(95)
Regression From
1.32.0
Architecture
arm64
Storage Explorer Build Number
20231101,3
Platform
macOS
OS Version
Sonoma 14,0
Bug Description
When I open the Microsoft Azure Storage Explorer only I can see this

I have no way to see the window anywere, I was able from the toolbar to see the version open another dialogs, but not the application itself.
it was tryied to open the app using the following command without success
open -a "Microsoft Azure Storage Explorer" --args --disable-gpu
Steps to Reproduce
Just open the application
Actual Experience
Openning the app I am only to see the following image

I tried to open from the console using
open -a "Microsoft Azure Storage Explorer" --args --disable-gpu
without success
Expected Experience
No response
Additional Context
No response

@antonio-bravo There may be something you can try to resolve this issue. However, before you try that, could you go to StorageExplorer app data directory, find a file called "appState.json" and copy paste its content here? You can quickly go to our app data directory by clicking through "Edit" > "SSL Certificates" > "View Imported SSL Certificates" in the app menu (the ones in your screenshot). It will open a directory in your Finder. Navigate one directory level up and you should be able to find the "appState.json". I am very confident that the whole file is safe to share but feel free to inspect its content before sharing.
Long story short. On mac, for unknown reason, the application window can be resized to almost 0x0 and placed at the very bottom of the screen. This normally should be blocked by our UI logic. The appState.json contains data that tells our application what size the window should have and where is should appear on the screen. We've always wanted to see the values in the "appState.json" when this issue occur. The resolution is to either find that tiny window and resize it back to normal, or simply delete the appState.json and let a new fresh default value replace the problematic ones.
You can find more details in this issue https://github.com/microsoft/AzureStorageExplorer/issues/3086

@antonio-bravo There may be something you can try to resolve this issue. However, before you try that, could you go to StorageExplorer app data directory, find a file called "appState.json" and copy paste its content here? You can quickly go to our app data directory by clicking through "Edit" > "SSL Certificates" > "View Imported SSL Certificates" in the app menu (the ones in your screenshot). It will open a directory in your Finder. Navigate one directory level up and you should be able to find the "appState.json". I am very confident that the whole file is safe to share but feel free to inspect its content before sharing.
Long story short. On mac, for unknown reason, the application window can be resized to almost 0x0 and placed at the very bottom of the screen. This normally should be blocked by our UI logic. The appState.json contains data that tells our application what size the window should have and where is should appear on the screen. We've always wanted to see the values in the "appState.json" when this issue occur. The resolution is to either find that tiny window and resize it back to normal, or simply delete the appState.json and let a new fresh default value replace the problematic ones. You can find more details in this issue #3086

Thank you so much for your prompt reply, this is the content of appState.json located at /Users//Library/Application Support/StorageExplorer/appState.json
{"lastWindowState":{"rect":{"x":0,"y":1663,"width":73,"height":29},"maximized":false},"disableGpu":false,"dialogAutoResponse":{}}
I have just changed the y value in order to fit on the screen and I can see right now.

Solution worked but I lost an hour with this issue.

We've been aware of this issue for a long time but unfortunately we weren't able to figure out exactly why. We had hypothesis about multi-monitor setup that somehow tweaks the size of the app window to something super tiny (I've seen it happening for some other application) but we weren't able to reproduce it ourselves. In 1.33.0 we will enforce a small but still big enough minimum size of our app window so people can find the app window and resize it.

We've been aware of this issue for a long time but unfortunately we weren't able to figure out exactly why. We had hypothesis about multi-monitor setup that somehow tweaks the size of the app window to something super tiny (I've seen it happening for some other application) but we weren't able to reproduce it ourselves. In 1.33.0 we will enforce a small but still big enough minimum size of our app window so people can find the app window and resize it.

Certainly, it seems to be linked to multiple monitors. I had suspected this when the issue first arose, thinking that returning home to the multi-monitor setup would resolve it and move the window correct place but I was not able to see. That's when I decided to open this issue.


Split Allocation Issue

One of our gift processors is having an issue and opportunities not holding multiple GAU Allocations.  From her email.  Please let me know if you have any questions regarding the post.
"A donor has pledged $100 gift for 2 different funds split 50/50 between “General Unrestricted”, and “Program Support”.
The recurring donation is then set as a recurring donation with the “split allocation” checkbox filled, and the GAU overwrite set to “General Unrestricted”. The campaign is not relevant to the problem here – RDs and associated opportunities always share the same campaign regardless of GAU or installment distribution.
Once the opportunity is automatically created, I go in and split the GAU’s – the split allocation box on the opportunity is checked, no errors happen.
I go back and check on the pledged opportunity a while later (on a different day, sometimes in the next week), and the GAU has reset itself to only the “General Unrestricted” fund – the split did not hold, and the opportunity looks like the default opportunity that the RD made when created initially.
The same issue occurs should I change the amounts. Say instead of splitting a pledge by fund, a donor decides that the $100 pledge will be paid by a gift of $25 in September, and $75 which will come in April. The installment number on the RD will be set to 2, as there will be 2 installments. Once opportunities are created, I go in and change one opportunity from $50 to $25 and the other from $50 to $75.
This change also will not hold – after a few days, the 2 opportunities go back to being $50 each. This will happen no matter how many times I do this."

Hi @Agroag - Please post in the Power of Us Hub in the NPSP Group and someone will be able to assist you. NPSP does not have a 'Split Allocations' checkbox, so it sounds like you are running into challenges with some customizations in your org. The Hub community will be able to walk through that with you and hopefully point you in the right direction.
We reserve Github issues for items that have been verified as bugs/issue in the code for our developers to address, and not for general troubleshooting. Thanks for understanding and see you in the Hub!


docs: dark mode

What I did

add dark mode toggle to masthead (iconography, ux TBD)
various hacks and workarounds in context, surface, switch, to make darkmode + hydration work
prevent fouc (flash of white background)

https://github.com/user-attachments/assets/f607a492-bf41-4931-96d5-3cfb2b11ce2a
Testing Instructions

set throttling in network panel
set dark mode prefs in browser
load up the dp
toggle the switch in the masthead
toggle dark mode in OS / browser prefs

Notes to Reviewers
icons and ux of the switch are TBD

Theme and color palette are two different things. In RHDS, "theme" means customizing one or more color palettes. When we think about it that way, what need does the design system docs site have to customize the theme, outside of pages which provide examples of how to do so? Wouldn't that be confusing, a bait-and-switch?

...let me describe what I think you mean, and respond to that. If I got it wrong, let me know.

I could have been clearer.
By theme switch I mean utilizing our theme approach alongside of prefers-color-scheme which is IMHO the basis for a switch of light and dark directed by user preference for the whole page.  This then is an additional layer on top of what we have already with custom themes + color-palettes.
We are maybe saying the same thing here or closer than we think.  To help demonstrate here is a fast and dirty code example https://codepen.io/zeroedin/pen/NPKGmWp of how I would expect this to work.
prefers-color-scheme is a top level page thing from my point of view, then surface/[color palette] is the next layer and that then is customized through the theming.  This isn't to say the switch can target specific surfaces/color-palettes but that it isn't it's primary focus.

This PR already supports prefers-color-scheme (testing instructions point 5)


adding updated threatpipes records

Product has pivoted in function. Changing description to represent this.

Thank you!


rethink cassandra-launcher approach

We're using sbt-assembly in an unusual way for cassandra-launcher - I'm not sure sbt-assembly really promised to do what we ask it to do here.
This causes trouble trying to update of sbt-multi-jvm or sbt-assembly.

hmm, this still seems to be brittle, breaking the build when plugins change (e.g. #205)

After some digging out in #206, cassandra-launcher has no users to sbt-assembly, but cassandra-bundle is used.
I think the  sbt-assembly usage was in the "box", but the launcherbuild was a little problem.
Based on document: https://www.scala-sbt.org/1.x/docs/ Classpaths.html# Unmanaged+vs+managed
, Maybe we don't need to manage uber jar in the build


Abstract main.js functions into class

Abstract main.js functions into class app.js?

I don't think we need to move functions or passing boilerplate params from main.js to another app.js. Let's just call the main.js  - app.js and have users create their own app class for their template. If they want to reuse code and error handling they can, otherwise they can just do their own thing in their own myApp.js file. This will also avoid future merge conflicts. See #95.


TypeScript and dagrejs npm organization

I'm currently having issues with using the existing typescript bindings (https://www.npmjs.com/package/@types/graphlib) with the latest graphlib release (https://www.npmjs.com/package/@dagrejs/graphlib). Due to the organization switch I have to import it as
import {Graph} from '@dagrejs/graphlib';

However, the Typescript bindings are defined for just the graphlib module namespace, thus not applying. In the best case the typings are directly integrated and provided as part of this library.

Here is a workaround for this issue.
You can add local typings for "@dagrejs/graphlib" module and reexport everything from "graphlib"
Add these lines to your tsconfig.json
"compilerOptions": {
    ....
    "baseUrl": ".",
    "paths": { "*": ["types/*"] },
    ....
}

Then create types  folder inside your project, then make @dagrejs directory inside types folder and put graphlib.d.ts file with a single export statement:
export * from "graphlib"

You can ask VS Code to help with these steps

index.d.ts has been added to the repo and the v2.1.11 npm package. Let me know if that's not enough or the types are incorrect.


Missing tags/releases

There seem to be some releases in PyPI, but those are not available in Github as tags or releases. Could you please add those? Otherwise packaging this becomes a PITA... :-)

Any news on this?


Intermittently incorrect JoystickComponent position in landscape mode

Current bug behavior
When in landscape mode, adding a JoystickComponent to the game results in it usually being placed with a margin calculated from portrait mode gameSize dimensions.

Expected behavior
Component placed with the margins calculated from landscape mode gameSize dimensions.

Steps to reproduce
https://zapp.run/edit/flame-z4tm06d44tn0?entry=lib/main.dart&file=lib/main.dart
It seems to work fine on zapp, but not on the emulator or phone I'm testing with.
Flutter doctor output

[√] Flutter (Channel stable, 3.7.6, on Microsoft Windows [Version 10.0.19045.2311], locale en-US)
    • Flutter version 3.7.6 on channel stable at C:\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 12cb4eb7a0 (5 days ago), 2023-03-01 10:29:26 -0800
    • Engine revision ada363ee93
    • Dart version 2.19.3
    • DevTools version 2.20.1

[√] Windows Version (Installed version of Windows is version 10 or higher)

[√] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
    • Android SDK at C:\Users\Owner\AppData\Local\Android\sdk
    • Platform android-33-ext4, build-tools 33.0.1
    • Java binary at: C:\Program Files\Android\Android Studio\jbr\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

[!] Visual Studio - develop for Windows (Visual Studio Community 2022 17.5.0)
    • Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community
    • Visual Studio Community 2022 version 17.5.33414.496
    • Windows 10 SDK version 10.0.22000.0
    X Visual Studio is missing necessary components. Please re-run the Visual Studio installer for the "Desktop development with      C++" workload, and include these components:
        MSVC v142 - VS 2019 C++ x64/x86 build tools
         - If there are multiple build tool versions available, install the latest
        C++ CMake tools for Windows
        Windows 10 SDK

[√] Android Studio (version 2022.1)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)

[√] VS Code, 64-bit edition (version 1.75.1)
    • VS Code at C:\Program Files\Microsoft VS Code
    • Flutter extension version 3.60.0

[√] Connected device (4 available)
    • Android SDK built for x86 (mobile) • emulator-5554 • android-x86    • Android 11 (API 30) (emulator)
    • Windows (desktop)                  • windows       • windows-x64    • Microsoft Windows [Version 10.0.19045.2311]
    • Chrome (web)                       • chrome        • web-javascript • Google Chrome 110.0.5481.177
    • Edge (web)                         • edge          • web-javascript • Microsoft Edge 110.0.1587.50

[√] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.

More environment information
Flutter 3.7.6 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 12cb4eb7a0 (5 days ago) • 2023-03-01 10:29:26 -0800
Engine • revision ada363ee93
Tools • Dart 2.19.3 • DevTools 2.20.1

Flame version: 1.6.0
Platform affected: android
Platform version affected: android 10 & 11

Log information

1  Launching lib\sample.dart on Android SDK built for x86 in debug mode...
2  √  Built build\app\outputs\flutter-apk\app-debug.apk.
3  Connecting to VM Service at ws://<IP_ADDRESS>:57121/JYRF8O92gF8=/ws
4  I/flutter ( 3996): [15:23.335812] Component::handleResize Called by: FlameGame.onGameResize
5  I/flutter ( 3996): [15:23.375957] Component::_startLoading Called by: Component.addToParent
6  I/flutter ( 3996): [15:23.375957] Component::_startLoading canvasSize=[411.42857142857144,683.4285714285714]
7  I/flutter ( 3996): [15:23.382846] HudMarginComponent::onGameResize Called by: Component._startLoading
8  I/flutter ( 3996): [15:23.383405] Component::handleResize Called by: Component.onGameResize
9  I/flutter ( 3996): [15:23.382846] HudMarginComponent::onGameResize:gameSize=[411.42857142857144,683.4285714285714]
10 I/flutter ( 3996): [15:23.384123] Component::isMounted JoystickComponent
11 I/flutter ( 3996): [15:23.384123] Component::isMounted Called by: HudMarginComponent.onGameResize
12 I/flutter ( 3996): [15:23.384123] Component::isMounted:_state=1
13 I/flutter ( 3996): [15:23.382846] HudMarginComponent::onGameResize:isMounted=false
14 I/flutter ( 3996): [15:23.387] Component::isMounted JoystickComponent
15 I/flutter ( 3996): [15:23.387] Component::isMounted Called by: HudMarginComponent.onGameResize
16 I/flutter ( 3996): [15:23.387] Component::isMounted:_state=1
17 I/flutter ( 3996): [15:23.389688] HudMarginComponent::onLoad:margin=EdgeInsets(0.0, 50.0, 50.0, 0.0)
18 I/flutter ( 3996): [15:23.399208] HudMarginComponent::_updateMargins:gameRef.camera.viewport.effectiveSize=[411.42857142857144,683.4285714285714]
19 I/flutter ( 3996): [15:23.399208] HudMarginComponent::_updateMargins:gameRef.canvasSize=[411.42857142857144,683.4285714285714]
20 I/flutter ( 3996): [15:23.399208] HudMarginComponent::_updateMargins:screenSize=[411.42857142857144,683.4285714285714]
21 I/flutter ( 3996): [15:23.399208] HudMarginComponent::_updateMargins:x,y=316.42857142857144, 95.0
22 I/flutter ( 3996): [15:23.664055] Component::handleResize Called by: FlameGame.onGameResize
23 I/flutter ( 3996): [15:23.664055] Component::handleResize:_lifecycleManager._children:child=Instance of 'JoystickComponent'
24 I/flutter ( 3996): [15:23.667567] HudMarginComponent::onGameResize Called by: Component.handleResize.<anonymous
25 I/flutter ( 3996): [15:23.669054] Component::handleResize Called by: Component.onGameResize
26 I/flutter ( 3996): [15:23.667567] HudMarginComponent::onGameResize:gameSize=[731.4285714285714,411.42857142857144]
27 I/flutter ( 3996): [15:23.674273] Component::isMounted JoystickComponent
28 I/flutter ( 3996): [15:23.674273] Component::isMounted Called by: HudMarginComponent.onGameResize
29 I/flutter ( 3996): [15:23.674273] Component::isMounted:_state=3
30 I/flutter ( 3996): [15:23.667567] HudMarginComponent::onGameResize:isMounted=false
31 I/flutter ( 3996): [15:23.679500] Component::isMounted JoystickComponent
32 I/flutter ( 3996): [15:23.679500] Component::isMounted Called by: HudMarginComponent.onGameResize
33 I/flutter ( 3996): [15:23.679500] Component::isMounted:_state=3
34 I/flutter ( 3996): [15:23.726975] Component::isMounted MyGame
35 I/flutter ( 3996): [15:23.726975] Component::isMounted Called by: LifecycleManager._processChildrenQueue
36 I/flutter ( 3996): [15:23.726975] Component::isMounted:_state=6
37 I/flutter ( 3996): [15:23.731530] Component::_mount Called by: LifecycleManager._processChildrenQueue
38 I/flutter ( 3996): [15:23.733222] Component::isMounted MyGame
39 I/flutter ( 3996): [15:23.733222] Component::isMounted Called by: Component._mount
40 I/flutter ( 3996): [15:23.733222] Component::isMounted:_state=6
41 I/flutter ( 3996): [15:23.740683] JoystickComponent::onMount Called by: Component._mount
42 I/flutter ( 3996): [15:23.744009] Component::_startLoading Called by: Component.addToParent
43 I/flutter ( 3996): [15:23.744009] Component::_startLoading canvasSize=[731.4285714285714,411.42857142857144]
44 I/flutter ( 3996): [15:23.746768] Component::handleResize Called by: Component.onGameResize
45 I/flutter ( 3996): [15:23.748553] Component::_startLoading Called by: Component.addToParent
46 I/flutter ( 3996): [15:23.748553] Component::_startLoading canvasSize=[731.4285714285714,411.42857142857144]
47 I/flutter ( 3996): [15:23.751450] Component::handleResize Called by: Component.onGameResize
48 I/flutter ( 3996): [15:23.740683] JoystickComponent::onMount calling HudMarginComponent::onGameResize with game.size=[731.4285714285714,411.42857142857144]
49 I/flutter ( 3996): [15:23.755695] HudMarginComponent::onGameResize Called by: JoystickComponent.onMount
50 I/flutter ( 3996): [15:23.757267] Component::handleResize Called by: Component.onGameResize
51 I/flutter ( 3996): [15:23.757267] Component::handleResize:_lifecycleManager._children:child=Instance of 'CircleComponent'
52 I/flutter ( 3996): [15:23.759638] Component::handleResize Called by: Component.onGameResize
53 I/flutter ( 3996): [15:23.757267] Component::handleResize:_lifecycleManager._children:child=Instance of 'CircleComponent'
54 I/flutter ( 3996): [15:23.762084] Component::handleResize Called by: Component.onGameResize
55 I/flutter ( 3996): [15:23.755695] HudMarginComponent::onGameResize:gameSize=[731.4285714285714,411.42857142857144]
56 I/flutter ( 3996): [15:23.765017] Component::isMounted JoystickComponent
57 I/flutter ( 3996): [15:23.765017] Component::isMounted Called by: HudMarginComponent.onGameResize
58 I/flutter ( 3996): [15:23.765017] Component::isMounted:_state=2
59 I/flutter ( 3996): [15:23.755695] HudMarginComponent::onGameResize:isMounted=false
60 I/flutter ( 3996): [15:23.769279] Component::isMounted JoystickComponent
61 I/flutter ( 3996): [15:23.769279] Component::isMounted Called by: HudMarginComponent.onGameResize
62 I/flutter ( 3996): [15:23.769279] Component::isMounted:_state=2
63 I/flutter ( 3996): [15:23.778291] Component::isMounted JoystickComponent
64 I/flutter ( 3996): [15:23.778291] Component::isMounted Called by: LifecycleManager._processChildrenQueue
65 I/flutter ( 3996): [15:23.778291] Component::isMounted:_state=6
66 I/flutter ( 3996): [15:23.786324] Component::isMounted JoystickComponent
67 I/flutter ( 3996): [15:23.786324] Component::isMounted Called by: LifecycleManager._processChildrenQueue
68 I/flutter ( 3996): [15:23.786324] Component::isMounted:_state=6
69 I/flutter ( 3996): [15:23.893510] Component::isMounted JoystickComponent
70 I/flutter ( 3996): [15:23.893510] Component::isMounted Called by: LifecycleManager._processChildrenQueue
71 I/flutter ( 3996): [15:23.893510] Component::isMounted:_state=6
72 I/flutter ( 3996): [15:23.895388] Component::_mount Called by: LifecycleManager._processChildrenQueue
73 I/flutter ( 3996): [15:23.895659] Component::isMounted JoystickComponent
74 I/flutter ( 3996): [15:23.895659] Component::isMounted Called by: Component._mount
75 I/flutter ( 3996): [15:23.895659] Component::isMounted:_state=6
76 I/flutter ( 3996): [15:23.896251] Component::isMounted JoystickComponent
77 I/flutter ( 3996): [15:23.896251] Component::isMounted Called by: LifecycleManager._processChildrenQueue
78 I/flutter ( 3996): [15:23.896251] Component::isMounted:_state=6
79 I/flutter ( 3996): [15:23.896912] Component::_mount Called by: LifecycleManager._processChildrenQueue
80 I/flutter ( 3996): [15:23.897178] Component::isMounted JoystickComponent
81 I/flutter ( 3996): [15:23.897178] Component::isMounted Called by: Component._mount
82 I/flutter ( 3996): [15:23.897178] Component::isMounted:_state=6

More information
I put some debugging info in the log information section. The root of the problem is at lines 58 - 59.
When HudMarginComponent.onGameResize is called, it checks (Component).isMounted which returns false,
so it doesn't call _updateMargins() which leaves the JoystickComponent where it was originally placed, i.e. with gameSize
calculated while in portrait mode.
It finishes mounting at line 65, so it just barely misses it, and sometimes it does mount in time and the component is placed correctly.
I stuck an await Future.delayed(const Duration(milliseconds: 150)); at the top of Component.handleResize as a test and that fixes the symptom, but I'm not sure how to best fix the source of the problem.

Good catch, if you remove the isMounted check, does it work like it should?

Yes, in that it will load in the correct position, but then it is unresponsive to user input.

I just checked it again, and this time it did respond to user input. I'm not sure if my original test was faulty, but my comment above seems to be incorrect now.

Sure, will do.


Wait.until polling issue when using Text.ofAll() using WebdriverIO

Hi there, @jan-molak @viper3400, I have seen this issue that may be related to this issue here, #1339, I am wondering if ListItemNotFoundError error should be thrown in the below case?
In the below example, we are getting the text of a set of elements and making a comparison. It appears there can be a state when using Text.ofAll where Serenity can catch an error from WebdriverIO where the element is not found to get the text of and then Serenity will stop polling as there is no ListItemNotFoundError thrown.
Outline of the Experienced issue:
In the waitUntil function, there seems to be a case that can be hit where the element is not found by WebdriverIO and there is no ListItemNotFoundError thrown by Serenity to be caught in the waitUntil function when using Text.ofAll(PageElements).
In the below debug, we can see that we cannot call getElementText on the object as it does not yet exist. However this is before the Wait.until/Wait.upTo(Duration.ofSeconds(30)).until(...) has timed out, if the first polling iteration hits this error where the element cannot be found within the webdriverIO polling timeout, then Serenity will hit the try/catch block and check for the ListItemNotFoundError which instead receives Error and stops polling.
Expected result:
I would expect that we would throw a ListItemNotFoundError when checking the Text.ofAll and catching the error thrown from WebdriverIO when trying to get the text from an element that is not present and for this to be caught in the waitUntil function in order to continue polling until the timeout is hit.
Debug, code and output:
For context I have added some debug to the waitUntil method and WebdriverIO's implicitWait method in the following manor to more clearly outline the issue:
    1 function waitUntil(expectation, pollingInterval) {
    2     let delay;
    3     let pollingActive = false;
    4     async function poll() {
    5     │   async function nextPollingInterval() {
    7     │   │   if (pollingActive) {
    8     │   │   │   delay = waitFor(pollingInterval);
    9     │   │   │   await delay.start();
   10     │   │   │   await poll();
   11     │   │   }
   12     │   }
   13     │   try {
   14     │   │   const expectationIsMet = await expectation();
   15     │   │   console.log("SERENITY:CORE.expectationIsMet", expectationIsMet);
   16     │   │   if (expectationIsMet) {
   17     │   │   │   delay === null || delay === void 0 ? void 0 : delay.stop();
   18     │   │   │   return;
   19     │   │   }
   20     │   │   await nextPollingInterval();
   21     │   }
   22     │   catch (error) {
   23     │   │   console.log("--------- HIT TRY CATCH BLOCK -----------");
   24     │   │   console.log(`SERENITY:CORE.waitUntil.catch`, error);
   25     │   │   delay === null || delay === void 0 ? void 0 : delay.stop();
   26     │   │   if (error instanceof errors_1.ListItemNotFoundError) {
   27     │   │   │   console.log("SERENITY:CORE.waitUntil.catch.instanceOfListItemNotFoundError: ", error);
   28     │   │   │   await nextPollingInterval();
   29     │   │   │   return;
   30     │   │   }
   31     │   │   throw error;
   32     │   }
   33     }

Here is the output from the debug:
[0-0] WEBVDRIVERIO:CORE.implicitWait Error: element ("search-table [row-id] [col-id="nodeName"]") still not existing after 5000ms
[0-0]     at /home/jordanp/vistamanager/test/node_modules/webdriverio/build/commands/browser/waitUntil.js:66:23
[0-0]     at async Element.wrapCommandFn (/home/jordanp/vistamanager/test/node_modules/@wdio/utils/build/shim.js:137:29)
[0-0]     at async Element.elementErrorHandlerCallbackFn (/home/jordanp/vistamanager/test/node_modules/webdriverio/build/middlewares.js:24:32)
[0-0]     at async Element.wrapCommandFn (/home/jordanp/vistamanager/test/node_modules/@wdio/utils/build/shim.js:137:29)
[0-0]     at async Element.wrapCommandFn (/home/jordanp/vistamanager/test/node_modules/@wdio/utils/build/shim.js:137:29)
[0-0]     at async Element.elementErrorHandlerCallbackFn (/home/jordanp/vistamanager/test/node_modules/webdriverio/build/middlewares.js:24:32)
[0-0]     at async Element.wrapCommandFn (/home/jordanp/vistamanager/test/node_modules/@wdio/utils/build/shim.js:137:29)
[0-0]     at async implicitWait (/home/jordanp/vistamanager/test/node_modules/webdriverio/build/utils/implicitWait.js:18:13)
[0-0]     at async /home/jordanp/vistamanager/test/node_modules/webdriverio/build/utils/refetchElement.js:29:16
[0-0]     at async Element.elementErrorHandlerCallbackFn (/home/jordanp/vistamanager/test/node_modules/webdriverio/build/middlewares.js:41:37)
[0-0] --------- HIT TRY CATCH BLOCK -----------
[0-0] SERENITY:CORE.waitUntil.catch Error: Can't call getElementText on element with selector "search-table [row-id] [col-id="nodeName"]" because element wasn't found
[0-0]     at implicitWait (/home/jordanp/vistamanager/test/node_modules/webdriverio/build/utils/implicitWait.js:35:19)
[0-0]     at async /home/jordanp/vistamanager/test/node_modules/webdriverio/build/utils/refetchElement.js:29:16
[0-0]     at async Element.elementErrorHandlerCallbackFn (/home/jordanp/vistamanager/test/node_modules/webdriverio/build/middlewares.js:41:37)
[0-0]     at async Element.wrapCommandFn (/home/jordanp/vistamanager/test/node_modules/@wdio/utils/build/shim.js:137:29)
[0-0]     at async Element.wrapCommandFn (/home/jordanp/vistamanager/test/node_modules/@wdio/utils/build/shim.js:137:29)
[0-0]     at async Element.elementErrorHandlerCallbackFn (/home/jordanp/vistamanager/test/node_modules/webdriverio/build/middlewares.js:44:28)
[0-0]     at async Element.wrapCommandFn (/home/jordanp/vistamanager/test/node_modules/@wdio/utils/build/shim.js:137:29)
[0-0]     at async Element.wrapCommandFn (/home/jordanp/vistamanager/test/node_modules/@wdio/utils/build/shim.js:137:29)
[0-0]     at async Element.elementErrorHandlerCallbackFn (/home/jordanp/vistamanager/test/node_modules/webdriverio/build/middlewares.js:24:32)
[0-0]     at async Element.wrapCommandFn (/home/jordanp/vistamanager/test/node_modules/@wdio/utils/build/shim.js:137:29)

Our code:
   9 export class TableCells {
  10     static cellByIdentifier = (cellIdentifier: string): PageElements =>
  11     │   PageElements.located(By.css(`test-table [col-id="${cellIdentifier}"]`));
  12 }

   1     static deviceNameList(numDevices?: number): QuestionAdapter<string[]> {
   2     │   return numDevices != undefined
   3     │   │   ? Text.ofAll(TableCells.cellByIdentifier('nodeName')).slice(0, numDevices)
   4     │   │   : Text.ofAll(TableCells.cellByIdentifier('nodeName'));
   5     }

  147 cucumber.Then('the following devices will be in the device search results:', async (table) => {
  148     const deviceNameList = DataTable.parseSingleArray(table);
  149     return await actorInTheSpotlight().attemptsTo(
  150     │   Wait.upTo(Duration.ofSeconds(30)).until(
  151     │   │   InventorySearchResults.deviceNameList(),
  152     │   │   containAll(deviceNameList),
  153     │   ),
  154     );
  155 });

│  4 export const containAll = Expectation.define(
│  5     'containsAll',
│  6     'containAll',
│  7     <T>(actualValues: T[], expectedValues: T[]) => expectedValues.every((el) => actualValues.includes(el))
│  8 )

Other notes:
I may be using some methods incorrectly or not as they have intended to be used here, please let me know if this is the case or if I am missing anything in my understanding here.

Hey @atidyshirt!
So if I understand correctly, what you're proposing is for Text.ofAll(...) to throw ListItemNotFound if the list of PageElements is empty?
Would you mind proposing a PR with a failing test so we could see what the solution might be?
The best test suite to add the new test demonstrating the failure is PageElements.patterns.spec.ts

Hi. Yes, the ListItemNotFoundError was just implemented in the List question.
And your InventorySearchResults.deviceNameList() it not to a List, but a QuestionAdapter containing a string array.
I wonder, if it would work if you would try to return the PageElements in your deviceNameList instead and then call the Text.ofAll  directly in the Then:
   1     static deviceNameList(numDevices?: number): PageElements {
   2     │   return numDevices != undefined
   3     │   │   ? TableCells.cellByIdentifier('nodeName')).slice(0, numDevices
   4     │   │   : TableCells.cellByIdentifier('nodeName');
   5     }

  147 cucumber.Then('the following devices will be in the device search results:', async (table) => {
  148     const deviceNameList = DataTable.parseSingleArray(table);
  149     return await actorInTheSpotlight().attemptsTo(
  150     │   Wait.upTo(Duration.ofSeconds(30)).until(
  151     │   │   Text.ofAll(InventorySearchResults.deviceNameList()),
  152     │   │   containAll(deviceNameList),
  153     │   ),
  154     );
  155 });

Hi @jan-molak, @viper3400, Sorry for the late reply, I have not been able to reproduce this issue using the Serenity-JS templates with the following test, I would expect this to have reproduced the same issue as it meets all the criteria that was present in our code base to cause this issue, however it does not.
This likely means that this is not a problem with Serenity and may be due to some external factors from our code base, If I find a solution to this issue and it seems like someone else could run into this problem I will be sure to update this ticket with the relevant information.
I suspect this could be due to some package versions potentially giving unexpected results or a bug in our application that is not easily manually reproducible.
I will close this issue now and re-open if we find a valid method of reproduction.

Test details that we expected to reproduce the issue
            describe('using a polling interval that exceeds the timeout to find the element', () => {
                it(`checks to see that text is found on the second polling interval`, () => {
                    const loaderButton = PageElement.located(By.css('[type="button"]'));
                    const newParagraphs = Text.ofAll(PageElements.located(By.css("p")));
                    return actorCalled('Man').attemptsTo(
                        Navigate.to('/screenplay/interactions/wait/loader.html'),
                        Click.on(loaderButton),
                        Wait.upTo(Duration.ofSeconds(4)).until(
                            newParagraphs,
                            contain('paragraph rendered that did not previously exist')
                        ).pollingEvery(Duration.ofMilliseconds(500))
                    )
                })
            });

And altered loader.html to look as follows:

Not ready

<input id="load" type="button" value="load" onclick="load(2000)" />


MM-44323: disable duplicate if disallowed

Summary
If a team disallows public playbook creation, disable the duplicate option for playbooks on that team:

I investigated adding a unit test, but found the effort to customize the system scheme or team scheme out of scope for this small fix.
Ticket Link
Fixes: https://mattermost.atlassian.net/browse/MM-44323
Checklist

[ ] Telemetry updated
[ ] Gated by experimental feature flag
[ ] Unit tests updated

Thanks again for the help, @calebroseland! Now looks like:


Failed in different machines with multi-gpus

Config files:
node1
compute_environment: LOCAL_MACHINE
distributed_type: MULTI_GPU
fp16: false
machine_rank: 0
main_process_ip: xx.xx.xx.xx
main_process_port: 2333
main_training_function: main
num_machines: 2
num_processes: 2

node2
compute_environment: LOCAL_MACHINE
distributed_type: MULTI_GPU
fp16: false
machine_rank: 1
main_process_ip: same ip
main_process_port: same port
main_training_function: main
num_machines: 2
num_processes: 2

Error happened in node2
RuntimeError: Connection reset by peer

This looks to be an SSH error, so a problem of communication between the two machines.

No idea now, it's the error I get when there is some temporary disconnection when I ssh to some machine.

It's strange, it seems to connect master node with its ipv6 address but not ipv4, as below:
3620199:3620763 [0] include/socket.h:403 NCCL WARN Connect to fe80::64a6:63ff:fe0d:2ef4%9<48381> failed : Network is unreachable


add clear button

inspired by https://material.angularjs.org/#/demo/material.components.autocomplete

done, still counterintuitive
requires enhancement
[ ] X icon
[ ] animation


Does not work in Sketch 50.2

It just does nothing. :(

@robmosca just checked — everything works fine.
Did you try to run Sort Me form Plugins menu, not with shortcut? Sometimes shortcuts conflict and it looks like the plugin stops running.

Same here, triggered from menu, does nothing on Sketch 50.2 (55047).
Thanks!


Add action for writing 'properties' files

New Issue Checklist

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

Issue Description
Needed an action to output a Java properties file for consumption by external tools and Jenkins.
Here's one I prepared earlier #4380

Hi @Ashton-W! Thanks for reaching out. I'm going to circulate this with the internal team and then we'll update on this thread. We really appreciate you being part of our community 👍

This could maybe be a plugin

Thanks @jcampbell05! We'll close this out, but if someone wants to work on a plugin we'd be happy to see it! 👍


Trying to use tusd as a package and getting a 'method not allowed' error on upload

Describe the bug
I'm trying to use tusd as a package so I can integrate it into my current environment and make use of the hooks functionality without needing a separate plugin file or bash scripts. I based my setup from the tusd "use as a package" docs along with what is going on in /cmd/tusd/cli/composer.go
My main.go file is the following:
package main

import (
	"context"
	"fmt"
	"log"
	"net/http"
	"os"

	"github.com/aws/aws-sdk-go-v2/config"
	"github.com/aws/aws-sdk-go-v2/service/s3"
	tusd "github.com/tus/tusd/v2/pkg/handler"
	"github.com/tus/tusd/v2/pkg/s3store"
)

func main() {
	bucket := os.Getenv("S3_BUCKET")
	endpoint := "https://" + os.Getenv("S3_ENDPOINT")
	s3Config, err := config.LoadDefaultConfig(context.Background())
	if err != nil {
		log.Fatalf("Unable to load S3 configuration: %s", err)
	}

	s3Client := s3.NewFromConfig(s3Config, func(o *s3.Options) {
		o.BaseEndpoint = &endpoint
		o.UsePathStyle = true
		o.EndpointOptions.DisableHTTPS = true
	})

	store := s3store.New(bucket, s3Client)
	store.ObjectPrefix = ""
	store.PreferredPartSize = 50 * 1024 * 1024
	store.MaxBufferedParts = 20
	store.DisableContentHashes = false
	store.SetConcurrentPartUploads(10)

	// A storage backend for tusd may consist of multiple different parts which
	// handle upload creation, locking, termination and so on. The composer is a
	// place where all those separated pieces are joined together. In this example
	// we only use the file store but you may plug in multiple.
	composer := tusd.NewStoreComposer()
	store.UseIn(composer)

	// Create a new HTTP handler for the tusd server by providing a configuration.
	// The StoreComposer property must be set to allow the handler to function.
	handler, err := tusd.NewHandler(tusd.Config{
		BasePath:              "/files/",
		StoreComposer:         composer,
		NotifyCompleteUploads: true,
	})
	if err != nil {
		panic(fmt.Errorf("unable to create handler: %s", err))
	}

	// Start another goroutine for receiving events from the handler whenever
	// an upload is completed. The event will contains details about the upload
	// itself and the relevant HTTP request.
	go func() {
		for {
			event := <-handler.CompleteUploads
			fmt.Printf("Upload %s finished\n", event.Upload.ID)
		}
	}()

	// Right now, nothing has happened since we need to start the HTTP server on
	// our own. In the end, tusd will start listening on and accept request at
	// http://localhost:8080/files
	http.Handle("/files/", http.StripPrefix("/files/", handler))
	err = http.ListenAndServe(":8080", nil)
	if err != nil {
		panic(fmt.Errorf("Unable to listen: %s", err))
	}
}

When I run it, everything seems to be fine. But when uppy tries to upload files to http://localhost:8080/files/ I get the following errors:
2023/12/22 21:47:00 INFO RequestIncoming method=OPTIONS path="" requestId=""
2023/12/22 21:47:00 INFO ResponseOutgoing method=OPTIONS path="" requestId="" status=200 body=""
2023/12/22 21:47:00 INFO RequestIncoming method=POST path="" requestId=""
2023/12/22 21:47:00 ERROR InternalServerError method=POST path="" requestId="" message="s3store: unable to create multipart upload:\noperation error S3: CreateMultipartUpload, https response error StatusCode: 405, RequestID: 4387F83A653F0C18:A, HostID: TU45y96Is9fkMqUV6um5rWF5I/xYUwc8XPs5IxnX197J3kcCZuFoK+G8P64pYQlLdiSlizIgGtV9, api error MethodNotAllowed: The specified method is not allowed against this resource."
2023/12/22 21:47:00 INFO ResponseOutgoing method=POST path="" requestId="" status=500 body="ERR_INTERNAL_SERVER_ERROR: s3store: unable to create multipart upload:\noperation error S3: CreateMultipartUpload, https response error StatusCode: 405, RequestID: 4387F83A653F0C18:A, HostID: TU45y96Is9fkMqUV6um5rWF5I/xYUwc8XPs5IxnX197J3kcCZuFoK+G8P64pYQlLdiSlizIgGtV9, api error MethodNotAllowed: The specified method is not allowed against this resource.\n"

Is something wrong in my setup or config?

Oddly I somehow resolved this. I believe it had something to do with the AWS packages. I zeroed out my go.mod file and then reinstalled the tus package and s3store package and then... viola. Everything works now 🤷🏻♂


fix debug output (close #13)

@mafintosh I think this should solve the problem but I dont have a test case. Does it look right to you?

bumperoo

mergeadidily

4.1.2


Firebase Remote Config is missing the required GCMSenderID - Flutter Project

Step 0: Are you in the right place?
I can't build my Flutter project on IOS, because FIREBASE REMOTE CONFIG crash just in IOS. Because in Android works normaly.
I add the "GoogleService-Info.plist" normaly.
[REQUIRED] Step 1: FLUTTER Project -

Xcode version: _____
Firebase SDK version: Last version
Installation method: CocoaPods | Carthage | Zip file | Swift Package Manager (select one)
Firebase Component: _____ (Auth, Core, Database, Firestore, Messaging, Storage, etc)
Target platform(s): All | iOS | Catalyst | macOS | tvOS | watchOS

[REQUIRED] Step 2: Describe the problem
Steps to reproduce:
What happened? How can we make the problem occur?
This could be a description, log/console output, etc.
If you have a downloadable sample project that reproduces the bug you're reporting, you will
likely receive a faster response on your issue.
Relevant Code:
// TODO(you): code here to reproduce the problem
```'Terminating app due to uncaught exception 'com.firebase.config', reason: 'Firebase Remote Config is missing the required GCMSenderID property from the configured FirebaseApp and will not be able to function properly. Please fix this issue to ensure that Firebase is correctly configured.'

Thanks for reporting this, @giederloreto. First off, could you provide the SDK version you're using, code snippet or steps to reproduce the issue?

There's a good chance updating to Firebase 8.x will fix this problem.


Added documentation example for BS3 modal shown event binding

@niftylettuce Please, make explicit that this configuration is for Modals of Bootstrap 3.x. So, it will not cause confusion with Bootstrap 4.x :+1:


Social-sharing metadata for API HTML renderer

When a show/details page is shared on social media, no information about that page is shown. Social-sharing metadata needs to be included when these pages are shared.
A details page:

No metadata is shown:

The requirement is to add a Social Share Preview pane to the API Namespace #Show view

This view will allow the user to define the mapping for the OG specification by selecting which OG attributes map to the API Namespace attribute

see here for our current OG implementation, its used in the CMS at a global level: https://github.com/restarone/violet_rails/blob/master/app/views/shared/_meta_tags.html.erb#L1-L22
For each of the fields above we will need a form field that will help us define the mapping for each of the OG attributes:
ex;
og: {
                        image: og_image,
                        title: html_title(Subdomain.current),
                        description: site_description(Subdomain.current)
                      },

will be mapped to
og: {
                        image: api_resource.non_primitive_type[:video_thumbnail],
                        title: api_resource.properties[:title],
                        description: api_resource.properties[:description]
                      },


excel display

[QUESTION].hi, i need exporting excel like attached file.What to do?
excel shop.xlsx

Build the array like you want it, then call ->fromArray($yourArray).
http://www.maatwebsite.nl/laravel-excel/docs/export#array


Fix resolving of endpoint

If we don't use a specific endpoint, and would instead need the first endpoint, nothing is selected.
This is because the first in list is only selected if endpointKey is null. However, in StandardPrefixer the default is string.Empty.
This PR changes the default value to null, to enable the mentioned logic. Besides this, the PR also makes the Regex expression static to highlight its singleton nature.

Hi @stefanolsen
Can you update the build number to be 2.0.1, this needs to be done in the .csproj and also in the build-visitor-groups.yml.
Thanks

@andrewmarkhamUNRVLD Seems this is not approved correctly, yet. Still marked as "Review required".

@andrewmarkham How do we release it to the NuGet feed?

@stefanolsen - I need to do this.  I am just looking at a bug, so I may wrap the two into a single release

Hi @stefanolsen, new version of the package has been submitted to optimizely.  This should be available within the next 24hrs.

Works like a charm, @andrewmarkham. Thanks.


Unable to connect to Github

Before opening, please confirm:

[X] I have checked to see if my question is addressed in the FAQ.
[X] I have searched for duplicate or closed issues.
[X] I have read the guide for submitting bug reports.
[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.

App Id
d1tq1tb6wa1mud
Region
us-east-1
Amplify Hosting feature
Build settings
Describe the bug
In deploying a new Nextjs application, I am unable to get Amplify to connect to Github. The amplify deployment is done with CDK and uses the newer accessToken authentication with a PAT that has the admin:repo_hook scope.
Upon clicking "Reconnect repository", the "Github Reconnect: Install and authorize GitHub App" page refreshes repeatedly until arriving on the Github authorize app page. At this point Github will give a warning that excessive authorization attempts have been made. Repeating this multiple times will result in a secondary rate limit being applied by Github that will lock out authentication attempts for several hours.
Expected behavior
I had deployed this app before in 2021 with a different AWS account have been able to successfully deploy the application that way. I would expect to see Amplify connect to Github whether using the legacy OAuthToken or accessToken approach.
Reproduction steps
The application is deployed using the below CDK code.
const app = new aws_amplify.CfnApp(this, 'CfnAmplifyApp', {
  accessToken: secretsmanager.Secret.fromSecretNameV2(
    this,
    'GithubToken',
    'path/to/github-token',
  ).secretValue.toString(),
  repository: 'https://github.com/org/name',
  iamServiceRole: this.role.roleArn,
  environmentVariables: Object.entries(environmentVariables).map(
    ([name, value]) => ({ name, value }),
  ),
  buildSpec: codebuild.BuildSpec.fromObjectToYaml({
    version: '1.0',
    applications: [
      {
        appRoot: 'apps/renderer',
        frontend: {
          phases: {
            preBuild: {
              commands: [
                'nvm install',
                'cd ../..',
                'corepack enable',
                'pnpm install',
              ],
            },
            build: {
              commands: ['pnpm build', 'cd apps/renderer'],
            },
          },
          artifacts: {
            baseDirectory: '.next',
            files: ['**/*'],
          },
          cache: {
            paths: ['~/.pnpm-state/**/*', '.next/cache/**/*'],
          },
        },
      },
    ],
  }).toBuildSpec(),
});

new aws_amplify.CfnBranch(this, 'Master', {
  appId: app.attrAppId,
  branchName: 'master',
});

After running cdk deploy it can be seen that the project is not connected.

This page then refreshes multiple times

After which I am taken to the app authorization screen in which it appears the app has already been authorized. This then returns to the previous screen which continues to refresh repeatedly and return to Github in an endless loop.

Build Settings
version: "1.0"
applications:
  - appRoot: apps/renderer
    frontend:
      phases:
        preBuild:
          commands:
            - nvm install
            - cd ../..
            - corepack enable
            - pnpm install
        build:
          commands:
            - pnpm build
            - cd apps/renderer
      artifacts:
        baseDirectory: .next
        files:
          - "**/*"
      cache:
        paths:
          - ~/.pnpm-state/**/*
          - .next/cache/**/*

Additional information
We have this app deployed in another AWS account and it continues to work. The issue only arises when we try to deploy in a new account.

Hi @jtmthf 👋🏽  thanks for raising this issue. We are working to reproduce and find a solution.

Hi @jtmthf have you tried out these steps here: https://docs.aws.amazon.com/amplify/latest/userguide/setting-up-GitHub-access.html#setting-up-github-app-cloudformation

Please let re-open if you're still running into this issue.


[All hosts](Community call) November agenda (#3059)

clear agenda

update call agenda for November

shorten names

Docs Build status updates of commit b86e294:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/overview/office-add-ins-community-call.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


[Feature Request] CI for Examples

Add CI to examples so that we ensure that they continue to work in the future.  This would include:

Changing examples to use the local, and possibly the last deployed version
Adding CI to run these examples on every PR to ensure that they're working properly

This is done.


scan image fail

Hi, I have research quagga for a few day, I try to use JsBarcode to create the barcode and use Quagga to scan it in image type and liveStream type. But sometime I cannot scan and find out the result code in image type.
For example, I created the barcode with the string "1234", I can get the code when I use liveStream, but fail with the base64 url maked from canvas.toDataURL(), also the downloaded image. I tried many code, "12345678", "201108040076", "201243219876", only some of those success.
In fact, when I change the fontsize/text margin/margin of the barcode, the accuracy rate could be imporved but it is still affected by many things such as space. Would you like to tell me what are the reasons affect the accuracy rate or how to improve it?
Thanks!

If you're using locate: true (i believe that's the default) and not setting an area to scan in specifically, the biggest problem I've run into while scanning retail barcodes is the amount of space around the barcode.  If there's other images or text, or other barcodes very close to the barcode trying to be located, location will often fail.
It would be helpful to get some of the images and their corresponding dataURL if possible, since it seems like one is failing?

I used Quagga.decodeSingle() to scan the image file. Here is the code follow as:
// Function to create the BarCode
createCode() {
    JsBarcode("#barcode", this.inputValue, {
        format: "CODE128",
        fontSize: 40,
        // textMargin: 25,
        // margin: 50
    });
},

// Function to scan the BarCode
scanCode() {
    let target = document.getElementById('barcode');
    let url = tar.toDataURL();
    Quagga.decodeSingle({
        decoder: {
            readers: ["code_128_reader"]
        },
        locate: true,
        src: url  // base64 png
        // src: './download.png' // download via
    }, (res) => {
        if (!res) {
            return false;
        }
        if (res.codeResult) {
            console.log(res.codeResult)
        } else {
            console.log('Recognize fail')
        }
    })
}

As I see, those images is clear to be scanned, but I just only scan successful for the second and the fourth images, did I have something miss in the configuration?
By the way, I used margin: 50 in createCode() and download two images:

one is "1526 8594", and it is successful, the other one "15268594" is fail. How can I control it?

I don't know how long it'll take me to pull these and check them out, but my guess is that having a larger margin on top and bottom from any other things would help.  If these labels are printed along with any other text/images/something
Of course, image based scanning is inherently less reliable than laser scanning, and I've never made any claims that Quagga is problem free :-D  BUT most of the problems that people have reported were usually able to be handled with some adjustments to settings or images...
anyway, i'll get back to you when i can :)  if you find any further info, please add it

Thanks!
As you say, laser scanning is more reliable when I use the external camera, I can scan those images with the
suitable angle successful even thought they fail in decodeSingle().


Scale of assets [Question]

Previously I could change the scale of the icons on the map by changing/removing the "*1.5" scale. I like them a little bit smaller, and since the code has been refactored, I can't figure out where to change the scale. Where has this code section moved to?

You can do it by editing the frame of the view in :

PokeStopAnnotationView.m
PokemonAnnotationView.m
GymAnnotationView.m

Just add or edit : "self.frame = CGRectMake(0, 0, 10, 10);" in the initWithAnnotation func

There it was! Thank you! Totally missed the "Views" folder. :)