Jackson NPM library cannot correctly POST to Azure ADFS via next-auth

Issue Summary
In attempting to sign-in with Azure ADFS, the following error comes up:
AADSTS750052: SAMLRequest or SAMLResponse must be present in body of HTTP request for SAML POST binding
It appears that jackson only sends the SAMLRequest through the query params, however this needs to be sent in the body. I've attempted to inject this manually into the body at the auth/saml/authorise endpoint, but was unsuccessful in getting it in. I know I'm correctly hitting my Azure as it only reaches this error when using our company's VPN. Outside the network Azure reaches the non-allowed environment screen.
I'm using the Jackson NPM library through a next-auth custom provider in a Next.js app. Followed the steps as described in the docs here: https://boxyhq.com/guides/jackson/frameworks/nextjs#setup-saml-jackson
Steps to Reproduce

Follow the docs at https://boxyhq.com/guides/jackson/frameworks/nextjs#setup-saml-jackson
Attempt to sign in to Azure ADFS

Technical details

@boxyhq/saml-jackson version: 1.9.6
Node.js version: 16.13.1
Next.js version: 12.3.1
Next-auth version: 4.22.1

Thanks for reporting this @SacredMesa, we'll look into the issue.

@SacredMesa The authorize call should return an authorize_form value that then can be sent over to the IdP.
See our service implementation here: https://github.com/boxyhq/jackson/blob/a6883734e59154a6515701322699ad6e2abbacdd/pages/api/oauth/authorize.ts#L22

Thanks for the quick reply @deepakprabhakara and @niwsa. I've tried the implementation you linked, but I am still facing the same error.
From my understanding, the issue comes when Jackson sends a POST request to Azure's login url. The SAMLRequest is sent in the query params, however Azure is expecting this to be in the body, and so returns a 400 and the error screen.
Screenshots of the issue:
POST to Azure login url returns 400:

Payload of POST request to Azure login url (SAMLRequest in query params and absent in body):

@SacredMesa Jackson would use the redirect binding if the IdP metadata has one, else it uses the POST binding. Can you check your ADFS metadata for the supported bindings?

@niwsa It appears my metadata shows both bindings:

If the metadata has a redirect binding then the IdP should support the same. But looks like that is not the case here.

@SacredMesa Would you mind posting the code snippet, we can take a look to see if we can spot anything.

Could you try wrapping the token route with try catch ... and check for any errors in the token handler ?  It could be that the token handler threw an error which is not handled, hence the timeout.
import type { NextApiRequest, NextApiResponse } from 'next';

import jackson from '../../../../lib/jackson';

export default async function handler(req: NextApiRequest, res: NextApiResponse) {
 try {
  const { oauthController } = await jackson();
  const response = await oauthController.token(req.body);

  res.json(response);
  } catch (err) {
       console.error('token error:', err);
  }
}

Also noticed that you are using the mem db engine. Are you running the app locally or is it deployed somewhere?

@niwsa I've wrapped the token and acs routes with try catch, but seems there's no error being thrown there. From what it seems, is that it hangs as it's trying to redirect. I can't tell if it's actually making the redirect request tbh, though the redirect url is there.
The app is deployed in AWS ECS. If I'm not mistaken the db is to store connection configs? I've set it up to preload the connection from a .js and .xml file though, would this suffice?

If I'm not mistaken the db is to store connection configs?

We also use it to conduct the Auth flow, as the OAuth 2.0 entities like code and token need to be persisted for some time.
Could you try increasing the HTTP timeout option inside the NextAuth Provider?
 httpOptions: {
        timeout: 30000,
},

@niwsa I've increased the timeout option, but doesn't seem to make a difference. We've had to drop this for awhile to handle some other tickets, but back on it now.
The last loggable event is still from the acs endpoint. We're getting the redirect url (https://<app-base-url>/api/auth/callback/jackson-saml?code=9ac638b03b03a87a61cc35bd5bc41d5e286e8a51&state=lMq9j_GpbQENA-2ZNPadcfUo7eKSrbw4cd4AGCkNFh8), but hanging after that.
Do you have any other suggestions on what we could try?

@SacredMesa Closing this, please re-open if this continues to be an issue.


Project Working? Still Alive?

Hello, didn't know where else to put this, but I was interested in using this software, and I have been testing it out, but I am unsure of whether or not it works or not, as I can lock onto a EDACS system but I can't seem to tune to different channels nor does the decoder ever show me any information.
I was just writing to see if this project is still alive, if it is in a working state, etc.

Hey, just wanted to try to reach out to you one more time to ascertain the status of this software, alive, dead? I also wanted to let you know I was going to fork and modify this software. I'd love to hear back from you, and make sure that it was okay to do so.

Totally dead :-) I'm working on the M17 Project at the moment. Do whatever you like with the code. Cheers!


staking tutorial: improvement suggestions

Suggestions for stake and unstake ZRC:
function stakeZRC(address staker, uint256 amount) internal {
    stake[staker] += amount;
    if (stake[staker] < amount) revert Overflow();

    // --> should not be necessary since updateRewards update the timestamp
    lastStakeTime[staker] = block.timestamp;

    // --> I think it should be at the beginning of the function. Since we update lastStakeTime, the claimed rewards will be nullified
    // also claimed stake is not teh right amount since stake is updated above
    updateRewards(staker);
}

function unstakeZRC(address staker) internal {
    uint256 amount = stake[staker];

    updateRewards(staker);

    address zrc20 = systemContract.gasCoinZRC20ByChainId(chainID);
    (, uint256 gasFee) = IZRC20(zrc20).withdrawGasFee();

    // --> I would call it AmountTooLow()
    if (amount < gasFee) revert WrongAmount();

    bytes memory recipient = withdraw[staker];

    stake[staker] = 0;

    IZRC20(zrc20).approve(zrc20, gasFee);
    IZRC20(zrc20).withdraw(recipient, amount - gasFee);

    // --> I think it is not necessary since stake is set to 0
    if (stake[staker] > amount) revert Underflow();

    // --> updateRewards updates the timestamp
    lastStakeTime[staker] = block.timestamp;
}

Modifications above would also require to modify queryRewards to skip if lastStakeTime is uninitialized
    function queryRewards(address staker) public view returns (uint256) {
        if (lastStakeTime[staker] == 0) {
            return 0
        }
        uint256 timeDifference = block.timestamp - lastStakeTime[staker];
        uint256 rewardAmount = timeDifference * stake[staker] * rewardRate;
        return rewardAmount;
    }

Thanks for suggestions, @lumtis 🙌

Staking tutorial has been deprecated.


Extract pipeline tests reports

https://docs.microsoft.com/en-us/azure/devops/pipelines/reports/pipelinereport?view=azure-devops#test-failures-report
These reports are great, however, I can't even copy paste the failing test list to include it in another document.
I want to be able to export this list or at least copy paste it in an excel sheet, or a wiki.
Maybe allow to create a WorkItem from a failing test in this list, to assign someone to fixing it.
Just visualizing the list does not make it actionable enough.

Thanks for the suggestion! The product teams aren’t always watching this repository, so to make sure it gets in front of them for triage, please submit your idea here.


Error with 0.8 and 0.107.7

Logger: homeassistant.setup
Source: custom_components/plex_assistant/helpers.py:26
First occurred: 4:38:20 PM (1 occurrences)
Last logged: 4:38:20 PM

Error during setup of component plex_assistant
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/setup.py", line 174, in _async_setup_component
    component.setup, hass, processed_config  # type: ignore
  File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/plex_assistant/__init__.py", line 75, in setup
    PA.lib = get_libraries(PA.plex)
  File "/config/custom_components/plex_assistant/helpers.py", line 26, in get_libraries
    shows.sort(key=lambda x: x.updatedAt)
TypeError: '<' not supported between instances of 'NoneType' and 'datetime.datetime'

I tried using master and got the same bug....FYI.

Interesting, seems like either you have a show with no updatedAt attribute or the connection to plex failed. Looking into it.

Updated master that adds a fallback in case a show doesn't have an updatedAt attribute. Falls back to addedAt.
Let me know if that solves it for you.

I had the same issue, and that solved it for me.  No more errors at least.  Now if only I could get Plex to play anything via HA that would be great. ;)

That fixed it thanks.
I found a few other interesting things FWIW.

It appears none of my cast devices are recognized unless I use aliases.  I have to alias 'Bedroom TV' by its same name for it to work.
Using DialogFlow, any Plex remote server takes a long time to respond whereby Google Assistant returns and says it cant communicate with plex, but then a minute later it works.  Not sure if this can be addressed or not.

Thanks for all your work!  I'll probably fork this and start adding merge requests.  This integration shows lots of promise!  :)

Haven't been able to track down the issue with aliases yet, someone else was having a similar issue. It's all working great on my setup and I've been trying to recreate the issue, but so far no luck.
DialogFlow is way more finicky than the IFTTT option. They are both doing the same thing, just passing the command to HA to be processed by the component, but there is for sure some strangeness associated with how DialogFlow handles it.

Released the fix for this one, going to close the issue.
@jmacul2 feel free to message me over on the HA forums if you have any questions.
@OppyLock I'm not sure what you mean with your comment, is it that this component isn't working for you or are you trying to do something else?

The component isn't working for me, in that I can't test it.  It throws no errors now.
However, i can't get Plex to play anything on anything when initiated by HA with the play_media service.  It throws a bunch of errors doing that and also when requested via plex assistant, so its not a plex assistant issue.
The Plex integration seems to work and updates the activities of the media players, I jcan start/stop/pause/skip, etc, but i can't initiate anything.  It throws TCP errors saying it can't open a websocket ... so I'll work through that ;)


log imagelist results

Describe the solution you'd like
after manager get the imagestatus results, manager should log them before they get overwritten in CR status

closing in favor of #102


Update acessTokenProvider selecting logic for restarting connection

Fixes: https://github.com/aspnet/AspNetCore/issues/8429
Making sure we don't lose the reference to the user passed in accessTokenProvider. Before if you got redirected by the service, then restarted your connection the accessTokenProvider regiestered with withAccessTokenProvider would be lost.

@aspnet-hello triage https://dev.azure.com/dnceng/public/_build/results?buildId=125367&view=logs

This comment was made automatically. If there is a problem contact ryanbrandenburg.
I've triaged the above build.


Add Tailwind styles to Forgot Your Password? page

This is relatively straightforward. We have a layout called auth_form.html.heex that is being used for the login and user registration pages already. We just need to use that layout for the "Forgot Your Password?" page. We can follow the example of either the login or registration page to see what other minor details need to change to make everything look good.

I can take this one too.

Hey @joshalling! Just to clarify for anyone who only sees this issue (but as I also said in #18), any issues labeled hacktoberfest are fair game to anyone. The first to submit a correct PR gets the merge! Thanks again for the interest! 🙂

assign this issue to me.


$feat: pretty cli animations with typer/rich

$feat: pretty cli animations with typer/rich
Fixes #13
$feat: pretty cli animations with typer/rich
Fixes #13
misc.
misc.

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

Current dependencies on/for this PR:

main

PR #22

PR #23   👈

This stack of pull requests is managed by Graphite.

Merge activity

Jan 7, 6:26 PM: Graphite rebased this pull request after merging its parent, because this pull request is set to merge when ready.


[ISSUE #4215] OFFSET_OVERFLOW_BADLY will lead to consumption from begin, a large number of repeated consumption

In  DefaultMessageStore.java ，There is the following code：
else if (offset > maxOffset) {
status = GetMessageStatus.OFFSET_OVERFLOW_BADLY;
if (0 == minOffset) {
nextBeginOffset = nextOffsetCorrection(offset, minOffset);
} else {
nextBeginOffset = nextOffsetCorrection(offset, maxOffset);
}
It can be seen that if minOffset=0.Consumption will start from 0.
I suggest modifying to:
else if (offset > maxOffset) {
status = GetMessageStatus.OFFSET_OVERFLOW_BADLY;
nextBeginOffset = nextOffsetCorrection(offset, maxOffset);
}

Codecov Report

Merging #4219 (61356c4) into develop (3cbb3b8) will decrease coverage by 0.11%.
The diff coverage is 0.00%.

@@              Coverage Diff              @@
##             develop    #4219      +/-   ##
=============================================
- Coverage      48.12%   48.00%   -0.12%
+ Complexity      5055     5038      -17
=============================================
  Files            637      637
  Lines          42637    42638       +1
  Branches        5605     5599       -6
=============================================
- Hits           20520    20470      -50
- Misses         19609    19649      +40
- Partials        2508     2519      +11

Impacted Files
Coverage Δ

...org/apache/rocketmq/store/DefaultMessageStore.java
55.41% <0.00%> (+0.10%)
:arrow_up:

...va/org/apache/rocketmq/store/FlushDiskWatcher.java
81.25% <0.00%> (-9.38%)
:arrow_down:

...org/apache/rocketmq/store/ha/WaitNotifyObject.java
66.07% <0.00%> (-5.36%)
:arrow_down:

...va/org/apache/rocketmq/logging/inner/Appender.java
34.83% <0.00%> (-2.25%)
:arrow_down:

.../rocketmq/broker/filter/ConsumerFilterManager.java
72.19% <0.00%> (-1.80%)
:arrow_down:

...ent/impl/consumer/DefaultLitePullConsumerImpl.java
67.75% <0.00%> (-1.56%)
:arrow_down:

...mq/client/impl/consumer/RebalanceLitePullImpl.java
72.05% <0.00%> (-1.48%)
:arrow_down:

...a/org/apache/rocketmq/store/StoreStatsService.java
36.97% <0.00%> (-1.13%)
:arrow_down:

...che/rocketmq/namesrv/kvconfig/KVConfigManager.java
59.18% <0.00%> (-1.03%)
:arrow_down:

...main/java/org/apache/rocketmq/store/CommitLog.java
75.08% <0.00%> (-1.02%)
:arrow_down:

... and 10 more

Continue to review full report at Codecov.

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

Coverage increased (+0.0001%) to 52.13% when pulling 61356c4210bba12a102874bfefaa4d891f81ce09 on iamqq23ue:develop into b6e65a8054a60cb5c62f5ade8a9e3927cf157185 on apache:develop.


git-workspace: 1.1.0 -> 1.2.1

Description of changes
https://github.com/orf/git-workspace/releases/tag/v1.2.1
https://github.com/orf/git-workspace/compare/v1.1.0...v1.2.1

Things done

Built on platform(s)

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

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

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

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

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

[X] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 219861 run on aarch64-darwin 1

1 package built:

git-workspace


Enabled splitter between Filters and Solution Imports.

@rappen - Hello from 2024. It has been 6 years, but your PR was precise what I needed for the splitter config. I have copied it manually because I had to update the framework and it resulted in a whole bunch of changes. Thank you Jonas.

😂 What did I do 6 years ago??
Ah, just a bit of the UI I guess 😊


What tool did you use to create the screenshot?

This screenshot looks really good. Can I ask what tool you used to make it?

Thanks :fire:

This is built-in macOS screenshot tool (⌘ + shift + 4, then press space bar)

Whoa! That is so cool! Thanks for sharing :) :tada:
Do you know how to get that nice drop shadow with drag to screenshot? Instead of capturing a window, just a portion of a window.

@searchy2 First press Cmd-Shift-4, then press the spacebar. Then just click on a window,


2.x Remove action context

Ticket: #1528
Issue
Timber adds an action function for Twig like this:
$twig->addFunction( new Twig_Function( 'action', function( $context ) {
    $args = func_get_args();
    array_shift( $args );
    $args[] = $context;
    call_user_func_array( 'do_action', $args) ;
}, array( 'needs_context' => true ) ) );

This function will always add the context as the last parameter in the hook, so that it can be used like this:
<?php
add_action( 'my_action_with_args', 'my_function_with_args', 10, 3 );

function my_function_with_args( $foo, $bar, $context ){
    echo 'I say ' . $foo . ' and ' . $bar;
    echo 'For the post with title ' . $context['post']->post_title;
}

As I see it, this was added so that developers can add their own actions and receive the context, should they need it in the hook.
Like mentioned in the ticket, there can be problems: When you don’t pass in any parameters, Timber will automatically add the context as the first parameter. This can lead to unexpected behavior, because the action function receives a parameter although you might not have passed one when you used {% do action() %}.
Consider this example, where a plugin might add an action that receives a string:
<?php
add_action( 'aye_aye', function( $string ) {
    echo 'I say ' . $string;
}, 10, 1 );

You could call the action like this, without an argument:
{% do action('aye_aye') %}

Timber would now pass a $context array to the action, which would lead to an array-to-string conversion error, because the action echoes out the string, which is an array in this case.
When calling do_action, Timber doesn’t know which functions will be called and how many arguments they will receive. Maybe we could read this out, but should we? And do we have to?
In my opinion, we should simply make it possible to call do_action and not try to do some magic here. The required arguments for do_action should just be passed in manually.
Solution

Delete functionality that adds the context automatically.
Delete tests.
Update documentation.

Impact
This will break calls with {% do action() %} that relied on the context in an argument. That’s why it’s a good place to add it to version 2.0.
Usage Changes
Hooks that expect the context to be passed as the last argument will have to be adapted so that the required arguments can be passed manually. So the example mentioned earlier would have to be rewritten like this:
<?php
add_action( 'my_action_with_args', 'my_function_with_args', 10, 3 );

function my_function_with_args( $foo, $bar, $post ){
    echo 'I say ' . $foo . ' and ' . $bar;
    echo 'For the post with title ' . $post->post_title;
}

The post will be passed manually as a third argument.
{% do action( 'my_action_with_args', 'Yippie', 'Yeah', post ) %}

Considerations
Did I forget to consider something?
Testing
I removed the relevant tests.

Thanks @gchtr, reviewing now!

Looks good! I made two small changes...

Updated the docs to show an example of using a "template" variable in an action
Used this as an opportunity to run coverage tests on things merging into 2.x (I was curious to see if we lost test coverage %%, we didn't)

Cool thing about the example in the documentation!

📜📜📜📜📜


buddy_list: Tweak spacing of rows, line-height, and circle placement.

Note this doesn't address the issue of sometimes having wonky circle spacing on non-Firefox browsers.
before:

after:

Merged, thanks @evykassirer!


Add Drive Utils

Merges 2 Repos

This one
https://github.com/gsuitedevs/drive-utils

Why merge to this repo?
We're merging these 2 samples into this repo to preserve the issues.
What's the plan after merging?
The repo will be renamed back to drive-utils after this merge, with the old drive-utils being deleted. This way, no URLs will break.

I'm going to proceed in merging this as it doesn't add new code, just merges 2 repos. We can brush up the contents later.


EventChannel.setStreamHandler(null) should cancel previous Stream Handler

Use case
Plugin may publish continuous values using an EventChannel.
As plugins go through lifecycle, they should clean up event channels in the same way that method call handlers are cleaned up: By setting the handler on the channel to null.
EventChannel's do pose a little more complexity as they have a onCancel method which should help to clear up any used memory.
Given a V2 plugin, a setup & clean up method currently could look like this:
  @Override
  public void onAttachedToEngine(@NonNull FlutterPluginBinding binding) {
    aEventChannel = new EventChannel(messenger, CHANNEL_NAME);
    aEventChannelHandler = new StreamHandler() { ... };
    aEventChannel.setStreamHandler(aEventChannelHandler);
  }

  @Override
  public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) {
    aEventChannelHandler.onCancel(null);
    aEventChannel.setStreamHandler(null);
    aEventChannelHandler = null;
  }

Proposal
When setting the StreamHandler to null, the framework should internally call onCancel, so that above method becomes:
  @Override
  public void onAttachedToEngine(@NonNull FlutterPluginBinding binding) {
    aEventChannel = new EventChannel(messenger, CHANNEL_NAME);
    aEventChannel.setStreamHandler(new StreamHandler() { ... });
  }

  @Override
  public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) {
    aEventChannel.setStreamHandler(null);
  }

From a glimpse in the code, DartMessenger.setMessageHandler() should maybe be adjusted to read like this:
  @Override
  public void setMessageHandler(
      @NonNull String channel, @Nullable BinaryMessenger.BinaryMessageHandler handler) {
    if (handler == null) {
      Log.v(TAG, "Removing handler for channel '" + channel + "'");
      BinaryMessenger.BinaryMessageHandler previous = messageHandlers.remove(channel);
      if (previous != null) {
        previous.onCancel();
      }
    } else {
      Log.v(TAG, "Setting handler for channel '" + channel + "'");
      messageHandlers.put(channel, handler);
    }
  }

@dnfield @matthew-carroll WDYT?


Authorisation guards on refresh prevent access

When refreshing an authorised page on a route the guards are executed before the user has been set in store so that they prevent access to it.

Fixed by 184d2a5fdecdb7086a22b966f07c10ec8cf5e6d2


Mentions.user_ids is deprecated

Sep 06 21:58:18 plum kitti[297250]: W 2022-09-06 11:58:18,970 py.warnings: /home/extensions/snark.py:25: DeprecationWarning: 'Mentions.user_ids' is deprecated and will be removed in a following version. You can use 'user_mentions_ids in the base message object' instead.

Presumably this is due to a recent hikari upgrade

Fixed with #39


Updated youtube-player dependency

Hi :)
I've been using your package recently to build an app.
Yesterday a new version of youtube-player has been released :
https://github.com/gajus/youtube-player/releases/tag/v5.5.1
This change turns out to be pretty usefull for me, so i thought i would upgrade the version in this package to benefit from this bug fix.
I also fixed some linting errors in src/Youtube.js ;)
Thank you

Great, thank you for your contribution 👍


The CacheLocation is blank ('') if it does not exist in either the user or machine level chocolatey config

Symptom:
Note - This is version <IP_ADDRESS> but it is also present in .31
The following error messages is thrown;
....
DEBUG: After checking the global config the value of 'cacheLocation' is ''
Write-Error : A configuration value for cacheLocation was not found
At C:\Dev\Chocolatey\chocolateyinstall\functions\Get-ConfigValue.ps1:20 char:7
+       Write-Error "A configuration value for $configValue was not found"
+       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...
DEBUG: Switching $env:Temp to ''

Exception calling "CreateDirectory" with "1" argument(s): "Path cannot be the e
mpty string or all whitespace."
At C:\Dev\Chocolatey\chocolateyinstall\chocolatey.ps1:145 char:5

and package installation fails
Steps to reproduce:

Modify your user and machine level chocolatey.config files and remove the cacheLocation xml element
Try to install package.  I tested with a packageid that did not exist which made the test a little faster

Reason:
If the cacheLocation xml node is missing in both the user and machine location. Because an error is thrown the $cacheLocation is set to $null.  The subsequent If statements assume it's a string so;
($cacheLocation -ne '') evaluates as true but the following ($cacheLocation -eq '') evaluates as false
Lines 125-127 of https://github.com/chocolatey/chocolatey/blob/master/src/chocolatey.ps1
Proposed resolution:
Change Line 127 of https://github.com/chocolatey/chocolatey/blob/master/src/chocolatey.ps1 to;
if ($cacheLocation -eq '' -or $cacheLocation -eq $null) { $cacheLocation = "$nugetPath\temp"}
or you could use an explicit cast;
if ([string]$cacheLocation -eq '') { $cacheLocation = "$nugetPath\temp"}

Does it have issues if you have <cacheLocation></cacheLocation> set? The intention is not for it to be removed.

If you add in the empty tag then no error is thrown.
In my case when I upgraded chocolatey from x.28 to x.30 it was missing.  However I could be experiencing a one-off error.
While this has a low probability of occuring and the workaround is fairly simple, I feel the logic error still needs attention;

If the cacheLocation tag should always be in the config file, then the error 'Write-Error : A configuration value for cacheLocation was not found' should be terminal and perhaps steps how to fix it be presented to the user

or

If it is possible that  the cacheLocation tag to not exist, then the case of $cacheLocation of being $null should be handled in the code as per one of my proposals.

I realise this is a low priority issue, so I'm happy to make the changes and submit a PR for it.
Also happy to write some pester tests for it.

No need. This will be completely unnecessary due to new codebase that
overrides this. The logic in this codebase may be a bit naive, yes.
On Thursday, January 8, 2015, Glenn<EMAIL_ADDRESS>wrote:

If you add in the empty tag then no error is thrown.
In my case when I upgraded chocolatey from x.28 to x.30 it was missing.
However I could be experiencing a one-off error.
While this has a low probability of occuring and the workaround is fairly
simple, I feel the logic error still needs attention;

If the cacheLocation tag should always be in the config file, then
the error 'Write-Error : A configuration value for cacheLocation was not
found' should be terminal and perhaps steps how to fix it be presented to
the user

or

If it is possible that the cacheLocation tag to not exist, then
the case of $cacheLocation of being $null should be handled in the code as
per one of my proposals.

I realise this is a low priority issue, so I'm happy to make the changes
and submit a PR for it.
Also happy to write some pester tests for it.
—
Reply to this email directly or view it on GitHub
https://github.com/chocolatey/chocolatey/issues/657#issuecomment-69281884
.

--
Rob
"Be passionate in all you do"
http://devlicio.us/blogs/rob_reynolds
http://ferventcoder.com
http://twitter.com/ferventcoder

Fair enough.
I'll close the issue.


More details on File Structure

Some questions need to be answered, like "How the features are connected to each other" and "How to connect the features" best practices and bad practices
https://github.com/reactjs/reactjs.org/blob/master/content/docs/faq-structure.md

I think this might be a bit too broad.
How to connect "features" depends on the context. What kind of features (components) are you connecting? If they're pages, then you could use component state or a routing solution like React Router. If they're smaller elements (eg buttons) then you can just require/import them directly and use them within another component's render method.
This sort of thing can vary by preference and I don't think the team wants to be too prescriptive here. There are many good solutions for how to connect components/features/etc.
PRs are always welcome for adding clarity and improving the docs. If you have ideas, please feel free to share a proposal by posting a PR. I don't think this issue is particularly actionable as-is though, so I'm going to close it.
Please feel free to ask for clarification if any of what I've said is unclear.

I'm having a hard time trying to develop this app: https://github.com/jvitoroc/issues-analyst/tree/ref
I don't know I'm following the best practices and if my file structure is good. Can you take a look?

Hey @jvitoroc. Dan added a bit more context to the File Structure page with PR #338. You might want to check it out again?
I don't really have the bandwidth to audit projects and give tailored feedback unfortunately. 🙁  I'm sorry.

@bvaughn Thanks, but at least tell me if it's alright copy and paste the same component in every folder inside src/. In my project I do this with the Message Component.
Sorry for my english

I'm not sure why you would need to copy paste the same component. You should be able to import it. Let's say your project structure looked like this:
.
└── src
    ├── PageOne
    │   ├── index.js
    │   └── PageOne.js
    ├── PageTwo
    │   ├── index.js
    │   └── PageTwo.js
    └── SharedComponent
        ├── index.js
        └── SharedComponent.js

If both pages (PageOne and PageTwo) want to use the same, shared component (SharedComponent) then they could import it like so:
// src/PageOne/PageOne.js
import SharedComponent from '../SharedComponent'; // Relative import
// You can now use <SharedComponent /> in your render method in PageOne

The specifics vary some depending on how your project is structured. You might want to post on Reactiflux or Stack Overflow if you have more questions about this though. 😄

I didn't realize that before, maybe it's because my shared component is too small and would be unnecessary create it's own folder. Anyways, I did what you suggested and thank you.

You don't need to create a folder for it. You can just keep it as a file, and then import it from different folder. I think it's not exactly clear what the problem was in your original question.

Yes, I don't need to, but it would be inconsistent. When I started to build this app I couldn't scale it (it hurts to remember), I was using the React/Redux file structure even without using Redux in my project. After converting to component folder pattern (explained in this article), I thought that each folder (aka feature, component) had to be exported to src/index.js and nothing else. Importing a feature inside another feature would be a bad practice. So I came up with this question.
Yes, my english is terrible.

My advice is: don't take directory structure too seriously, it doesn't matter as much :-) Spending too much time on it is not productive.


Utility Groups not working

needs debugging and validation , issue to keep track
example:
<div class="bg-white font-light sm:hover:(bg-gray-100 font-medium)"/>

works with Compilation mode
does not work with Interpretation mode

working on it, tracking branch will be up soon


error messages, import theano

I updated keras to Keras 1.0.3 and theano with pip install  git+git://github.com/fchollet/keras.git --upgrade --no-deps and pip install git+git://github.com/Theano/Theano.git --upgrade --no-deps.
Ubuntu 14.04
Keras version 1.0.3
Theano version Theano-0.9.0.dev1
import theano
output following error messages,
In file included from :0:0:
/usr/include/stdc-predef.h:59:1: fatal error: cuda_runtime.h: No such file or directory
#endif
^
compilation terminated.
['nvcc', '-shared', '-O3', '-use_fast_math', '-m64', '-Xcompiler', '-DCUDA_NDARRAY_CUH=mc72d035fdf91890f3b36710688069b2e,-DNPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION,-fPIC,-fvisibility=hidden', '-Xlinker', '-rpath,/home/realnabe/.theano/compiledir_Linux-3.13--generic-x86_64-with-debian-jessie-sid-x86_64-3.5.1-64/cuda_ndarray', '-Xlinker', '-rpath,/usr/local/cuda-7.5/lib', '-Xlinker', '-rpath,/usr/local/cuda-7.5/lib64', '-I/home/realnabe/anaconda3/lib/python3.5/site-packages/theano/sandbox/cuda', '-I/home/realnabe/anaconda3/lib/python3.5/site-packages/numpy/core/include', '-I/home/realnabe/anaconda3/include/python3.5m', '-I/home/realnabe/anaconda3/lib/python3.5/site-packages/theano/gof', '-o', '/home/realnabe/.theano/compiledir_Linux-3.13--generic-x86_64-with-debian-jessie-sid-x86_64-3.5.1-64/cuda_ndarray/cuda_ndarray.so', 'mod.cu', '-L/home/realnabe/anaconda3/lib', '-lcublas', '-lpython3.5m', '-lcudart']
ERROR (theano.sandbox.cuda): Failed to compile cuda_ndarray.cu: ('nvcc return status', 1, 'for cmd', 'nvcc -shared -O3 -use_fast_math -m64 -Xcompiler -DCUDA_NDARRAY_CUH=mc72d035fdf91890f3b36710688069b2e,-DNPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION,-fPIC,-fvisibility=hidden -Xlinker -rpath,/home/realnabe/.theano/compiledir_Linux-3.13--generic-x86_64-with-debian-jessie-sid-x86_64-3.5.1-64/cuda_ndarray -Xlinker -rpath,/usr/local/cuda-7.5/lib -Xlinker -rpath,/usr/local/cuda-7.5/lib64 -I/home/realnabe/anaconda3/lib/python3.5/site-packages/theano/sandbox/cuda -I/home/realnabe/anaconda3/lib/python3.5/site-packages/numpy/core/include -I/home/realnabe/anaconda3/include/python3.5m -I/home/realnabe/anaconda3/lib/python3.5/site-packages/theano/gof -o /home/realnabe/.theano/compiledir_Linux-3.13--generic-x86_64-with-debian-jessie-sid-x86_64-3.5.1-64/cuda_ndarray/cuda_ndarray.so mod.cu -L/home/realnabe/anaconda3/lib -lcublas -lpython3.5m -lcudart')
WARNING (theano.sandbox.cuda): CUDA is installed, but device gpu is not available  (error: cuda unavailable)
How can I fix it?

it seems that your theano version is too high.
try theano v0.8.1?

My theano version is the 0.7.1,then i update it.

sudo pip install --upgrade --no-deps theano

the theano is 0.8.2

Thanks, ymcui and alyno.
The same error messages appered when import keras.(theano=0.8.2 and keras=1.0.4)
But the error messages did not appear when import keras. (theano=0.82 and keras=0.3.1)

Hi,
had the same message when trying to install theano with gpu (geforce 1080, cuda 8.0) on Windows 10 with Visual Studio 2015.
Trying to understand the problem I realized, that the cuda sandbox is connected to cuDNN. Though cuCNN was installed (Version 5) it did not work. I simply forgot to add the installation path ob cuDNN to my system environment.
Done -> problem solved, the speed up is great:)
Regards, Martin

Hi Marin,
Were you talking about theano/sandbox/cuda/? Could you please explain what you did with more details (like how it is connected with cuDNN and how to add cuDNN path to system)? I am facing with the same problem... Thanks a lot!
Best,Wenxin


How to login to your telegram account through the files taken by Blank Grabber?

I checked Telegram on Blank grabber and it pulled the person's telegram. The files have arrived. But how can I log into someone's telegram account using these files?

Put those files and folders to your telegram's tdata folder.

Put those files and folders to your telegram's tdata folder.

O dosyalar tam olarak nerede?


Rewrite of the load_checkpoint function

This is a rewrite of how we determine which checkpoint to load when starting/restarting a training run. (Originally there was also a refactor of how our different checkpoint paths are processed, but I seperated this out for now)
Previously we had a quite brittle logic for this, with edge cases where metaseq would not load the correct checkpoint. For example here: https://github.com/facebookresearch/metaseq/issues/544
The new logic checks first all possible sources for checkpoints (restore-file, finetune-from, local checkpoints, nfs / azure checkpoints), and assigns them priority based on their progress in training and prefers local caches.
It then takes the most recent checkpoint and copies it to local disk.
To test this you need both metaseq / metaseq-internal PR's. Here: https://github.com/fairinternal/metaseq-internal/pull/842
I tested:

multi-node and single node local start
with and without nfs cloud upload path
crashing a run and correct continuing
with and without finetune-from
with and without resume-file
evals

What I didn't test yet, is if starting with an azure blob path is working.

Will test this on azure soon.

Heads up: https://github.com/facebookresearch/metaseq/pull/646 will likely go in first since tests are passing there (after loss parity check is added).  There will probably be merge conflicts after, but hopefully not too bad.


jax.numpy.repeat fails with JIT disabled for dimensions of size 1

jax.numpy.repeat throws a RuntimeError when JIT is disabled and the array dimension being repeated is of size 1.
The same error occurs on both CPU and GPU.
Simple repro:
import jax
import jax.numpy as jnp
with jax.disable_jit():
  jnp.repeat(jnp.zeros((1, 2)), repeats=2, axis=0, total_repeat_length=2)

Callstack:
---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
<ipython-input-88-7216fb989347> in <module>()
      4
      5 with jax.disable_jit():
----> 6   jnp.repeat(jnp.zeros((1, 2)), repeats=2, axis=0, total_repeat_length=2)
      7
      8 def run_tests():

11 frames
google3/third_party/py/jax/_src/numpy/lax_numpy.py in repeat(a, repeats, axis, total_repeat_length)
   2921       x=zeros([total_repeat_length], dtype=int32),
   2922       idx=scatter_indices,
-> 2923       y=1)
   2924   # Cumsum again to get scatter indices for repeat, e.g. [0,1,1,3,3,3,3,3]
   2925   gather_indices = cumsum(block_split_indicators) - 1

google3/third_party/py/jax/_src/ops/scatter.py in index_add(x, idx, y, indices_are_sorted, unique_indices)
    141   """
    142   return _scatter_update(
--> 143       x, idx, y, lax.scatter_add, indices_are_sorted, unique_indices)
    144
    145

google3/third_party/py/jax/_src/ops/scatter.py in _scatter_update(x, idx, y, scatter_op, indices_are_sorted, unique_indices)
     50   treedef, static_idx, dynamic_idx = jnp._split_index_for_jit(idx)
     51   return _scatter_impl(x, y, scatter_op, treedef, static_idx, dynamic_idx,
---> 52                        indices_are_sorted, unique_indices)
     53
     54

google3/third_party/py/jax/_src/ops/scatter.py in _scatter_impl(x, y, scatter_op, treedef, static_idx, dynamic_idx, indices_are_sorted, unique_indices)
     62
     63   idx = jnp._merge_static_and_dynamic_indices(treedef, static_idx, dynamic_idx)
---> 64   indexer = jnp._index_to_gather(jnp.shape(x), idx)
     65
     66   # Broadcast `y` to the slice output shape.

google3/third_party/py/jax/_src/numpy/lax_numpy.py in _index_to_gather(x_shape, idx)
   4057     advanced_pairs = ((_normalize_index(e, x_shape[j]), i, j)
   4058                       for e, i, j in advanced_pairs)
-> 4059     advanced_indexes, idx_advanced_axes, x_advanced_axes = zip(*advanced_pairs)
   4060     advanced_axes_are_contiguous = np.all(np.diff(idx_advanced_axes) == 1)
   4061

google3/third_party/py/jax/_src/numpy/lax_numpy.py in <genexpr>(.0)
   4056       if isscalar(e) or isinstance(e, (Sequence, ndarray)))
   4057     advanced_pairs = ((_normalize_index(e, x_shape[j]), i, j)
-> 4058                       for e, i, j in advanced_pairs)
   4059     advanced_indexes, idx_advanced_axes, x_advanced_axes = zip(*advanced_pairs)
   4060     advanced_axes_are_contiguous = np.all(np.diff(idx_advanced_axes) == 1)

google3/third_party/py/jax/_src/numpy/lax_numpy.py in _normalize_index(index, axis_size)
   3785
   3786   return lax.select(
-> 3787     lax.lt(index, _constant_like(index, 0)),
   3788     lax.add(index, _constant_like(index, axis_size)),
   3789     index)

google3/third_party/py/jax/_src/lax/lax.py in lt(x, y)
    379 def lt(x: Array, y: Array) -> Array:
    380   r"""Elementwise less-than: :math:`x < y`."""
--> 381   return lt_p.bind(x, y)
    382
    383 def convert_element_type(operand: Array, new_dtype: DType) -> Array:

google3/third_party/py/jax/core.py in bind(self, *args, **params)
    261     top_trace = find_top_trace(args)
    262     tracers = map(top_trace.full_raise, args)
--> 263     out = top_trace.process_primitive(self, tracers, params)
    264     return map(full_lower, out) if self.multiple_results else full_lower(out)
    265

google3/third_party/py/jax/core.py in process_primitive(self, primitive, tracers, params)
    571
    572   def process_primitive(self, primitive, tracers, params):
--> 573     return primitive.impl(*tracers, **params)
    574
    575   def process_call(self, primitive, f, tracers, params):

google3/third_party/py/jax/interpreters/xla.py in apply_primitive(prim, *args, **params)
    232   """Impl rule that compiles and runs a single primitive 'prim' using XLA."""
    233   compiled_fun = xla_primitive_callable(prim, *unsafe_map(arg_spec, args), **params)
--> 234   return compiled_fun(*args)
    235
    236

google3/third_party/py/jax/interpreters/xla.py in _execute_compiled_primitive(prim, compiled, result_handler, *args)
    347   device, = compiled.local_devices()
    348   input_bufs = list(it.chain.from_iterable(device_put(x, device) for x in args if x is not token))
--> 349   out_bufs = compiled.execute(input_bufs)
    350   if FLAGS.jax_debug_nans: check_nans(prim, out_bufs)
    351   return result_handler(*out_bufs)

RuntimeError: Invalid argument: Argument does not match host shape or layout of computation parameter 0: want s32[1]{0}, got pred[]

I'm getting the same error, and am stuck because of it.

I have the same issue when disabling jit, but everything works fine when it is enabled.

I've been looking into this; it seems to be coming from a strange behavior of jnp.cumsum with jit disabled:
import jax
import jax.numpy as jnp

with jax.disable_jit():
  print(repr(jnp.ones(1).cumsum()))

DeviceArray(False, dtype=float32)

I'm not certain how False has a dtype of float32, but I suspect whatever bug is causing this is the root of the issue here.

The fix is in #5220. This turned out to be a much more subtle bug than I expected!


Distribution/installation of the GCC toolchain

Coming from #54

https://github.com/stnolting/neorv32/pull/54#issuecomment-853920947
By the way, what do you think about having the pre-build GCC toolchain as submodule inside this repository? Maybe in sw/gcc?
Tha scripts (makefiles) could use that as default so new-user could do a simple recursive git clone and they would get everything as a bundle 🤔

https://github.com/stnolting/neorv32/pull/54#issuecomment-853938959
That's something I wanted to bring in a different issue 🤣. So, why are you using your pre-built GCC toolchain? Do you need to customise it so that it understands NEORV32 as the target architecture? Or is it because of convenience? That is, could you use an "upstream" GCC? May NEORV32 be upstreamed?
This is a tool which your project depends on. It should not be a submodule inside the repository. Furthermore, most users should not install it through a custom script in this repo. Similarly to GHDL, Yosys, nextpnr, VUnit, etc. those should be installed independently. We want this project (and potentially any open source project) to be usable very regardless of the preferred environment of the user. Some will install system packages, others will use containers, MSYS2, Conda, Homebrew... They don't want to install those tools each time, but (very) infrequently. In that context, you are currently providing a single build for a very specific subset of environments.
Please, don't take me wrong. This is absolutely normal. Most open source EDA tooling projects are not properly packaged yet. Some (a few) are available on some (a few) popular distributions. There are efforts such as HDL's bazel and conda repos, or YosysHQ's oss-cad-toolchain. Yet, each of them is an ecosystem for the domain the maintainers/supporters are interested in.
Should you need to distribute a custom GCC because you need it customised, I would recommend that we add the generation of a container image and an MSYS2 package to you other repo. Then, consume those as any user will do. In fact, this is one of the main purposes of CI: to reproduce the experience you expect users to have on different platforms.

https://github.com/stnolting/neorv32/pull/54#issuecomment-853950156
Then let's discuss that in a new issue. 😄

https://github.com/stnolting/neorv32/pull/54#issuecomment-853950156

This is a tool which your project depends on. It should not be a submodule inside the repository.

Yeah right. You convinced me. 😉

So, why are you using your pre-built GCC toolchain? Do you need to customise it so that it understands NEORV32 as the target architecture? Or is it because of convenience? That is, could you use an "upstream" GCC? May NEORV32 be upstreamed?

I am aware of the "official RISC-V" prebuilt toolchains: https://github.com/riscv/riscv-gnu-toolchain/releases
The problem with these toolchains (for example: riscv32-elf-ubuntu-*) is they were compiled using a fixed library configuration (so no -multilib). This fixed library configs assume 64-bit double-floating point support. So you have to compile your code using the ilp64d ABI and accordingly with the D ISA extension (double-precision floating-point), which is not supported by the NEORV32 at all.
There are other common ABIs, like a "soft-float" ABI that is currently used by the NEORV32 makefiles. But without -multilib this is not supported by their toolchains.
Details
In theory, there is no big deal using a floating-point ABI even if the targeted core does not support floating point operations.
The compiler will not emit any floating-point operations if you do not use float arithmetic in your code (in theory).
BUT the compiler will emit instructions for spilling the floating point registers inside interrupt service routines. The CPU sees theses instructions and - of course - will raise an illegal instruction exception, since there is not floating-point support.
In summary, the executable cannot run. 😭
I don't know if this is a "bug" in their CI or if they are simply not aware of this. Or maybe there is something I did not see....
More details
The NEORV32 does support native floating-point operations. The Zfinx ISA extension provides full IEEE single-precision support. Unfortunately, this extension is not ratified yet and therefore not supported by GCC.

I am aware of the "official RISC-V" prebuilt toolchains: https://github.com/riscv/riscv-gnu-toolchain/releases

I was not specifically thinking about those packages, but about the upstream in system package manager. For instance, the following packages are available on MSYS2:
mingw64/mingw-w64-x86_64-riscv64-unknown-elf-binutils 2.35-1 (mingw-w64-x86_64-riscv64-unknown-elf-toolchain)
    GNU Tools for RISC-V Embedded Processors - Binutils (mingw-w64)
mingw64/mingw-w64-x86_64-riscv64-unknown-elf-gcc 10.1.0-2 (mingw-w64-x86_64-riscv64-unknown-elf-toolchain)
    GNU Tools for RISC-V Embedded Processors - GCC (mingw-w64)
mingw64/mingw-w64-x86_64-riscv64-unknown-elf-newlib 3.3.0-2 (mingw-w64-x86_64-riscv64-unknown-elf-toolchain)
    GNU Tools for RISC-V Embedded Processors - Newlib (mingw-w64)

Those are riscv64. However, I used RISCV_TOOLCHAIN=riscv64-unknown-elf-gcc make install in sw/example/demo_pwm, and that produced exactly the same output as using an Ubuntu container and extracting your custom GCC there. Since you are a Windows user, I'd like to please ask you to give it a try. I do not maintain that package, but MSYS2 is my main local and quick EDA development environment, so I'd be glad if you could confirm it's usefulness.

The problem with these toolchains (for example: riscv32-elf-ubuntu-*) is they were compiled using a fixed library configuration (so no -multilib). This fixed library configs assume 64-bit double-precision floating point support. So you have to compile your code using the ilp64d ABI and accordingly with the D ISA extension (double-precision floating-point), which is not supported by the NEORV32 at all.
There are other common ABIs, like a "soft-float" ABI that is currently used by the NEORV32 makefiles. But without -multilib this is not supported by their toolchains.

I'm no expert in this area, but @Paebbels created Paebbels/GCC-Toolchains very few days ago, in order to provide alternatives to the built-in toolchains in Vivado. He is currently using manual build procedures, but I guess the plan is to provide those as containers, MSYS2 packages and/or standalone zipfiles. Therefore, it would be interesting to join efforts and cover your use case there.

The GCC-Toolchains repo is currently a playground to build a useable toolchain, because the Xilinx toolchains are broken as ....
 Newlib is not aware of FreeRTOS. FreeRTOS does nor secure FPU registers on context switch. FreeRTOS does not support atomic operations, because the task switch asember code is false ..
Anyhow, I now try to build toolchains for ARMv7 targeting A9 and R5 and ARMv8 for A53. I would like to add RISC-V, PowerPC and MIPS as well, when the general CI pipeline works. In addition to baremetal builds (newlib), I would like to support GNU Linux with glibc as well as e.g. FreeRTOS.
In a later stage, we can talk about packaging this and also how to replace compilers in vendor tools.

@umarcor

Those are riscv64. However, I used RISCV_TOOLCHAIN=riscv64-unknown-elf-gcc make install in sw/example/demo_pwm, and that produced exactly the same output as using an Ubuntu container and extracting your custom GCC there. Since you are a Windows user, I'd like to please ask you to give it a try. I do not maintain that package, but MSYS2 is my main local and quick EDA development environment, so I'd be glad if you could confirm it's usefulness.

I am using Ubuntu on Windows as development environment.
Please run riscv64-unknown-elf-gcc -v in your setup and check for --with-abi=ilp32 and --with-arch=rv32i. If those two are there then the toolchain is fine. If not, the toolchain can be fine, too, if it was compiled with -multilib.
However, I will try to check out the RISC-V MSYS2 toolchain this weekend.
@Paebbels

I would like to add RISC-V, PowerPC and MIPS as well, when the general CI pipeline works. In addition to baremetal builds (newlib), I would like to support GNU Linux with glibc as well as e.g. FreeRTOS.

I am looking forward to this! 👍 😉

@stnolting it was compiled with --enable-multilib :tada:
# riscv64-unknown-elf-gcc -v
Using built-in specs.
COLLECT_GCC=C:\msys64\mingw64\bin\riscv64-unknown-elf-gcc.exe
COLLECT_LTO_WRAPPER=c:/msys64/mingw64/bin/../lib/gcc/riscv64-unknown-elf/10.1.0/lto-wrapper.exe
Target: riscv64-unknown-elf
Configured with: ../configure --build=x86_64-w64-mingw32 --host=x86_64-w64-mingw32 --prefix=/mingw64 --target=riscv64-unknown-elf --with-native-system-header-dir=/mingw64/x86_64-w64-mingw32/include --libexecdir=/mingw64/lib --enable-languages=c,c++,ada --enable-plugins --disable-decimal-float --disable-libffi --disable-libgomp --disable-libmudflap --disable-libquadmath --disable-libssp --disable-libstdcxx-pch --disable-nls --disable-shared --disable-threads --disable-tls --disable-libada --with-gnu-as --with-gnu-ld --with-system-zlib --with-newlib --with-headers=/mingw64/riscv64-unknown-elf/include --with-python-dir=share/gcc-riscv64-unknown-elf --with-gmp --with-mpfr --with-mpc --with-isl --with-libelf --enable-gnu-indirect_function --enable-multilib --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --enable-linker-plugin-flags='LDFLAGS=-static-libstdc++\ -static-libgcc\ -pipe\ -Wl,--dynamicbase,--high-entropy-va,--nxcompat,--default-image-base-high\ -Wl,--stack,12582912' LDFLAGS='-pipe -Wl,--dynamicbase,--high-entropy-va,--nxcompat,--default-image-base-high -Wl,--disable-dynamicbase,--image-base=0x400000'
Thread model: single
Supported LTO compression algorithms: zlib zstd
gcc version 10.1.0 (GCC)

So, we should update the docs (user guide) to let Windows users know that they can install pacman -S mingw-w64-x86_64-riscv64-unknown-elf-gcc mingw-w64-x86_64-yosys mingw-w64-x86_64-nextpnr 🚀

Absolutely!
And there should also be a new section about synthesis toolchain setup as the "toolchain" documentation only focuses on RISC-V gcc right now. -> TODO stack 😉


Fixed problem with multiple load-unload of comp zlib

Executing COMP_zlib_cleanup() to remove a memory leak did not allow to reload the comp zlib again.

This seems simpler:
    if (zlib_dso)
        DSO_free(zlib_dso);
    zlib_dso = NULL;

fixed in master 102 101


Update fsautocomplete to the most recent version

The current one is 0.26.0.
I tried doing that and there are some issues with that. It seems that it now outputs unicode strings encoded in utf-8 with the byte order mark and it crashes the JSON parser in the python code.
I'm also getting a weird problem in Windows with the reference to FSharp.Core.dll that I can only fix by manually changing the version in fsautocomplete.exe.config from <IP_ADDRESS> to <IP_ADDRESS>.

@yever this is worrying, let's get it sorted. For your first problem, in FsAutoComplete/Program.fs can you change the encoding assignment to:
Console.OutputEncoding <- new Text.UTF8Encoding(false, false)

let me know if that works.
Also, for the second problem... these assembly binding redirects are annoying. What is the error exactly?

Oh, thank you @rneatherway for picking it up so quickly (and sorry for not responding on the former issue... I'm having problems in properly reproducing that one, though it's still there).
As for the issue with the reference to FSharp.Core, it happens regardless of the vim plugin. I just downloaded the zip file of version 0.26.0 and ran fsautocomplete.exe, and I get:
Unhandled Exception: System.IO.FileLoadException: Could not load file or assembly 'FSharp.Core, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. Strong name validation failed. (Exception from HRESULT: 0x8013141A) ---> System.Security.SecurityException: Strong name validation failed. (Exception from HRESULT: 0x8013141A)
   --- End of inner exception stack trace ---
   at System.ModuleHandle.ResolveType(RuntimeModule module, Int32 typeToken, IntPtr* typeInstArgs, Int32 typeInstCount, IntPtr* methodInstArgs, Int32 methodInstCount, ObjectHandleOnStack type)
   at System.ModuleHandle.ResolveTypeHandleInternal(RuntimeModule module, Int32 typeToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext)
   at System.Reflection.RuntimeModule.ResolveType(Int32 metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
   at System.Reflection.CustomAttribute.FilterCustomAttributeRecord(CustomAttributeRecord caRecord, MetadataImport scope, Assembly& lastAptcaOkAssembly, RuntimeModule decoratedModule, MetadataToken decoratedToken, RuntimeType attributeFilterType, Boolean mustBeInheritable, Object[] attributes, IList derivedAttributes, RuntimeType& attributeType,
IRuntimeMethodInfo& ctor, Boolean& ctorHasParameters, Boolean& isVarArg)
   at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeModule decoratedModule, Int32 decoratedMetadataToken, Int32 pcaCount, RuntimeType attributeFilterType, Boolean mustBeInheritable, IList derivedAttributes, Boolean isDecoratedTargetSecurityTransparent)
   at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeAssembly assembly, RuntimeType caType)
   at System.Attribute.GetCustomAttributes(Assembly element, Type attributeType, Boolean inherit)
   at System.AppDomain.GetTargetFrameworkName()

I can change the version in fsautocomplete.exe.config, from:
<dependentAssembly>
    <assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="<IP_ADDRESS>-999.999.999.999" newVersion="<IP_ADDRESS>" />
</dependentAssembly>

to:
<dependentAssembly>
    <assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="<IP_ADDRESS>-999.999.999.999" newVersion="<IP_ADDRESS>" />
</dependentAssembly>

and it works.

Regarding the encoding, I can handle the encoding from the client code in python using .decode('utf-8-sig'). Do you think I should rather modify fsautocomplete?

Well, I never intended to output a BOM, that was a mistake. I think it's simpler without.

We don't really want to target F# 4 yet, so that isn't the best solution. I think the issue is because the NuGet package is not providing FSharp.Core <IP_ADDRESS> currently, and so we get the mono unsigned version. Can you try rebuilding with this patch?
--- a/FsAutoComplete/FsAutoComplete.fsproj
+++ b/FsAutoComplete/FsAutoComplete.fsproj
@@ -13,7 +13,7 @@
     <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir>
     <Name>FSharp.InteractiveAutocomplete</Name>
     <UsePartialTypes>False</UsePartialTypes>
-    <TargetFSharpCoreVersion><IP_ADDRESS></TargetFSharpCoreVersion>
+    <TargetFSharpCoreVersion><IP_ADDRESS></TargetFSharpCoreVersion>
     <MinimumVisualStudioVersion Condition="'$(MinimumVisualStudioVersion)' == ''">11</MinimumVisualStudioVersion>
     <TargetFrameworkProfile />
   </PropertyGroup>
diff --git a/paket.dependencies b/paket.dependencies
index a513f78..4616939 100644
--- a/paket.dependencies
+++ b/paket.dependencies
@@ -5,7 +5,7 @@ nuget Mono.Cecil
 nuget NDesk.Options
 nuget Newtonsoft.Json
 nuget FAKE
-nuget FSharp.Core
+nuget FSharp.Core <IP_ADDRESS>
 nuget NUnit
 nuget NUnit.Runners
 nuget Octokit
diff --git a/paket.lock b/paket.lock
index 0cf82ad..780a8c5 100644
--- a/paket.lock
+++ b/paket.lock
@@ -3,7 +3,7 @@ NUGET
   specs:
     FAKE (4.7.2)
     FSharp.Compiler.Service (<IP_ADDRESS>) - framework: >= net45
-    FSharp.Core (<IP_ADDRESS>)
+    FSharp.Core (<IP_ADDRESS>)
     Microsoft.Bcl (1.1.10)
       Microsoft.Bcl.Build (>= 1.0.14)
     Microsoft.Bcl.Build (1.0.21) - import_targets: false

Maybe also change the app.config to target <IP_ADDRESS>

OK, I've opened two PRs which should address your issues: https://github.com/fsharp/FsAutoComplete/pulls (the top two).
Once the tests pass I will merge and do a new release. I've tested the FSharp.Core.dll fix on Windows so it should be OK. It's annoying because the AppVeyor VS2015 image also has VS2013 so it doesn't show up all problems.

Thanks for your work. I had to leave earlier. I see you already got going. I'll check the PRs and comment on them.

@yever I've uploaded a new release with those two PRs merged in, 0.26.1.

Thank you very much, @rneatherway.

No worries, let me know if there are any problems with it.

I have updated vim-fsharp to use the latest fsac. Any reason to keep this open @yever @rneatherway ?

Not that I know of.

ok thanks closing.


Mark flutter_gallery_v2_chrome_run_test not flaky

Description
Looks stable.
Related Issues
Introduced in https://github.com/flutter/flutter/pull/53096
Tests
I added the following tests:
Replace this with a list of the tests that you added as part of this PR. A change in behaviour with no test covering it
will likely get reverted accidentally sooner or later. PRs must include tests for all changed/updated/fixed behaviors. See [Test Coverage].
Checklist

[x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
[x] I signed the [CLA].
[x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement].
[x] I read the [Tree Hygiene] wiki page, which explains my responsibilities.
[x] I updated/added relevant documentation (doc comments with ///).
[x] All existing and new tests are passing.
[x] The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change

[x] No, no existing tests failed, so this is not a breaking change.
[ ] Yes, this is a breaking change. If not, delete the remainder of this section.

\cc @pennzht


Bug: role coming as integer in GET /api/employee/{employee_id}/

JSON Response:
{"pk":2,"username":"pedro","email":"thisisemail@asdasd.com","first_name":"Pedro","last_name":"Carrillo","role":2,"skype_id":"1234","last_month_score":0,"current_month_score":0,"level":0,"score":0,"is_active":true,"last_login":"2016-04-21T16:26:25Z"}
In console the user "pedro" has the following role "Senior Android Developer" but client is receiving the integer 2

Also categories is missing and it is needed for give stars to other employees

Fixed and published


USBIP compatibility

Have you thought of making this compatible with USBIP, so it could be run with USBIP's signed driver?

that sounds an interesting topic!
i don't have much experience with USBIP, do you have some learning materials ?

After having some research, it seems USB/IP only works with USB devices. Unfortunately this driver only creates a HID device, can't see how to make it happen easily at this time.
feel free to reopen if you have any other commetns.


TiKV segfaults during profiling

Bug Report
TiKV segfaults unexpectedly.
[Sun Jun  6 02:37:58 2021] unified-read-po[3381]: segfault at 4c2b8 ip 00007f5178d510f8 sp 00007f50ce7cdb20 error 4 in libgcc_s-4.8.5-20150702.so.1[7f5178d42000+15000]
[Sun Jun  6 02:38:54 2021] unified-read-po[25653]: segfault at 8 ip 00007f50c53340f8 sp 00007f500efd3c60 error 4 in libgcc_s-4.8.5-20150702.so.1[7f50c5325000+15000]

What version of TiKV are you using?

2021/06/05 nightly
What operating system and CPU are you using?

Steps to reproduce

# run sysbench
sysbench --db-driver=mysql --mysql-host=tidbhost --mysql-port=47904 --mysql-user=root --time=15000000 --report-interval=10 --threads=64 --mysql-db=test --tables=200 --table-size=12500000 --create_secondary=off oltp_write_only run &

for i in $(seq 1 300); do { curl -v http://tikvhost:port/debug/pprof/profile\?seconds\=5 > profile.`date +"%m-%d-%T.%3N"`.svg; sleep 0.2; } done;

What did you expect?
No segfault.
What did happened?
Segfault.

Perhaps related to #10150. Can you upgrade tiup can try again?

/severity moderate

It's probably a fixed issue. Close it for now.


Add reference to WTO Jira

What does this PR do?
Add reference to WTO Jira
What issues does this PR fix or reference?
It fixes https://issues.redhat.com/browse/WTO-97
Is it tested? How?

We should probably also add this comment to web terminal exec and web terminal tooling as well

makes sense!


multiple subs

in your subscriber example how would someone subscribe to multiple IDs in the same instance, is that even possible?

Hi @concave-heyjan!
it's not possible in one call since Binance's API doesn't support multiple IDs.
You can easily achieve multiple subs by doing something like this though:
package main

import (
	"context"

	"github.com/rtunazzz/bfldb"
)

func SubMultiple(ctx context.Context, ids []string) (<-chan bfldb.Position, <-chan error) {
	cp := make(chan bfldb.Position)
	ce := make(chan error)

	for _, id := range ids {
		u := bfldb.NewUser(id)
		go func() {
			nCp, nCe := u.SubscribePositions(ctx)
			for {
				select {
				case <-ctx.Done():
					return
				case p := <-nCp:
					// forward to the main channel
					cp <- p
				case e := <-nCe:
					// forward to the main channel
					ce <- e
				}
			}
		}()
	}

	return cp, ce
}


is there a "standalone" rest API?

I don't want to use smartthings or other home automation systems but need a REST api for my own app. is there a REST api?

Yes, see documentation here:
https://help.konnected.io/support/solutions/articles/32000026804-api-overview

thx! do you confirm that this works on LAN with no need of internet access?

Yes, that's correct. Internet access is not required.


Users need to know that their vehicle details are correct

link to #145

This duplicates #145 so closing this one. It's linked to for reference.


Consider upgrading to v1.18

Apparently, Go project, and in particular, staticcheck, only support the last two versions (today it's v1.17 and v1.18). I'm still at v1.16, and the latest release of staticcheck no longer compiles.
At the same time, Google AppEngine so far only supports v1.16 (they are hopelessly behind), and it would be nice to stay compatible.
Although technically this project is not tied to Google Cloud (or any other cloud, for that matter), it'd be nice to retain compatibility somehow, so this engine could one day be run in the Cloud.

I'm no longer considering standard AppEngine environment, thus there is no need to be compatible with it. Let's update to Go 1.18 (even though as of this writing there is Go 1.19).
As a bonus, use generics for the parallel package.


CLOUDP-234519: [mongocli] Cleanup atlascli artifacts (non-code)

Proposed changes
Clean up files related to atlas which are not relevant for mongocli:

remove documentation under /docs/atlas
update readme
cleanup build directory
cleanup makefile
generated docs docs/atlascli
remove update-sdk script
removed atlas-cli icon
removed atlas examples

packing tasks on evergreen are expected to fail on this branch, accidentally scheduled them.
Jira ticket: CLOUDP-234519

make sure to remove deb and msi installer files as well

how about build/package/msi/installer?

Packaging will fail unless if you update .goreleaser.yml to not look for mongocli.md and you can also rename build/package/mongocli_mac_notarize.sh to build/package/mac_notarize.sh, these are the last changes I've found missing


[WIP] Home Assistant Component

I have a working Home Assistant component that uses andrewshilliday's Garage Door Controller. You can view the status and open/close garage door directly from the HA dashboard. No changes to andrewshilliday's Garage Door Controller code.
Could use some more testing. Project details: https://github.com/home-assistant/home-assistant/pull/2187

Very cool! Thanks for linking it back.  I never knew what home-assistant was.  Will have to check it out.

Looks like the initially linked PR was closed – fixed by #126 (Homebridge and Home Assistant are very similar).


Is navigator.storage.persist() supported?

Describe the bug
This is a question - not a bug. Is there a way to use navigator.storage.persist()?
https://developer.mozilla.org/en-US/docs/Web/API/StorageManager/persist
By calling this function the store can be made more resistant - e.g. against browser data deletion.
Some browsers will open a Permission Dialog.
Reproduction
https://developer.mozilla.org/en-US/docs/Web/API/StorageManager/persist
System Info
latest Pinia and pinia-plugin-persistedstate

Used Package Manager
npm
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guide.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] The provided reproduction is a minimal reproducible of the bug.

Hi, there is no plan to support it at the moment, also StorageManager involves lots of async operation incompatible with pinia's way of mutating things :)


[KYUUBI #4686] Support Chose ApplicationOperator with Deploy-Mode

Why are the changes needed?

Close #4686
ApplicationManager chose ApplicationOperator should with Deploy-Mode.
For example, Kubernetes + Client should handler by JpsApplicationOperator.
How was this patch tested?

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

[ ] Add screenshots for manual tests if appropriate

[ ] Run test locally before make a pull request

Codecov Report

Merging #4687 (aa5f247) into master (f0615a9) will increase coverage by 0.02%.
The diff coverage is 69.44%.

@@             Coverage Diff              @@
##             master    #4687      +/-   ##
============================================
+ Coverage     57.99%   58.02%   +0.02%
  Complexity       13       13
============================================
  Files           580      580
  Lines         32218    32254      +36
  Branches       4304     4307       +3
============================================
+ Hits          18684    18714      +30
+ Misses        11749    11743       -6
- Partials       1785     1797      +12

Impacted Files
Coverage Δ

...rg/apache/kyuubi/engine/ApplicationOperation.scala
77.41% <ø> (ø)

...apache/kyuubi/engine/JpsApplicationOperation.scala
75.00% <0.00%> (-2.42%)
:arrow_down:

...kyuubi/engine/KubernetesApplicationOperation.scala
17.54% <0.00%> (-0.16%)
:arrow_down:

...n/scala/org/apache/kyuubi/engine/ProcBuilder.scala
78.52% <0.00%> (-0.49%)
:arrow_down:

...pache/kyuubi/engine/YarnApplicationOperation.scala
58.73% <ø> (ø)

.../apache/kyuubi/server/api/v1/BatchesResource.scala
70.49% <50.00%> (-0.17%)
:arrow_down:

...ain/scala/org/apache/kyuubi/engine/EngineRef.scala
71.64% <57.14%> (+0.10%)
:arrow_up:

...ache/kyuubi/engine/spark/SparkProcessBuilder.scala
85.29% <80.00%> (+0.98%)
:arrow_up:

...pache/kyuubi/engine/KyuubiApplicationManager.scala
79.22% <100.00%> (-0.78%)
:arrow_down:

...kyuubi/engine/spark/SparkBatchProcessBuilder.scala
96.96% <100.00%> (+0.09%)
:arrow_up:

... and 3 more

... and 21 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

Ready for review, cc @turboFei @pan3793

After this PR,
for yarn-client mode, the application info will be return by JpsApplicationOperation, it is not expected.

close this pr to find other way


When is failover going GA?

This feature has been in preview for nearly a year now. There must surely be an ETA for when it's going GA by now?

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

ID: d8314bbb-3e1b-7a68-dcd1-f7dfe34221a2
Version Independent ID: 5c26cb3f-ec5c-b028-f456-53998a67749e
Content: Disaster recovery and storage account failover (preview) - Azure Storage
Content Source: articles/storage/common/storage-disaster-recovery-guidance.md
Service: storage
Sub-service: common
GitHub Login: @tamram
Microsoft Alias: tamram

Hi, Gavin! Thanks for checking in! The account failover capability is planned to go into GA by end of CY19. With the holidays coming up I don't have a firm date just yet and will know more in the next ~2 weeks. Would you mind sharing your scenario(s)/requirement(s)? An important call out is the current version of failover was designed for scenarios where a disaster is in progress or is coming and therefore it’s disruptive – upon failover completion the account becomes LRS. If you performed the failover as part of the disaster recovery drill you’ll need to convert it back to GRS/RA-GRS to be able to failover again (failback) to get to the state you were in before with respect to primary location. You’ll also need to convert the account to GRS/RA-GRS again upon failback completion to get to the state you were in before with respect to redundancy configuration. Converting from LRS to GRS/RA-GRS incurs cost. Finally, the state of the data can vary based on whether you lost any during the original failover and/or the subsequent failback. Potential data loss can occur depending on the usage pattern, e.g. you wrote blob A at 10.00 am which by 10.05 got replicated to the secondary location, at 10.10 you executed a failover – in this scenario there is no data loss associated with the failover however, if you executed a failover at 10.03 blob A didn’t get to secondary yet so it will be lost upon failover completion.

Hi Art. Thanks for the quick reply!
The scenario is nothing more complicated that having the ability for a customer-initiated storage account failover, so that "writes" can happen ASAP, without needing to update a connection string in the application/Key Vault/Azure App Configuration. Or in other words, the ability to initiate a storage account failover and none of my applications are even aware that it happened (with the exception of some slight downtime or data loss).
Effectively a similar flavor to what you get from setting up an Azure SQL failover, in that you have a connection string that doesn't need to be updated when failover is initiated.

@artemuwka  Requesting you to please add your comments here

Just got back from a short vacation - appreciate your patience, Gavin! And thanks for the context, this is helpful. Sounds like in your scenario disaster/outage would be one of the main reasons to execute a failover which is exactly what this flavor was designed for. One other consideration to throw into the blend of implications (on top of slight downtime and potential data loss) is that once failover is complete if all other components of the app are still residing in the original primary region there will be cross-region reads/writes happening with larger latency, and you'll be paying for egress on that storage account too. On the other hand, if the entire application gets failed over to the secondary region then these additional items aren't applicable.
I've also had a chance to sync with the dev team on the GA timeline and it's safer to assume that failover GA would happen in January 2020.
If you have any other questions/comments/concerns - please let me know!

@GFoley83 We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.

Hey @SumanthMarigowda-MSFT any update on when this will go GA?


fix spelling and grammar errors in monetization-foundations

Changes

Fixed multiple grammar/spelling mistakes.

Checks
By submitting your pull request for review, you agree to the following:

[X] This contribution was created in whole or in part by me, and I have the right to submit it under the terms of this repository's open source licenses.
[X] I understand and agree that this contribution and a record of it are public, maintained indefinitely, and may be redistributed under the terms of this repository's open source licenses.
[X] To the best of my knowledge, all proposed changes are accurate.

Hey @EthanMcKanna, thanks so much. We really appreciate it.


added translations for Croatian, Slovenian, Serbian, and Macedonian

Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Checklist:

[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[X] I have made corresponding changes to the documentation
[X] My changes generate no new warnings

Type of change.

[ ] FIX - a PR of this type patches a bug.
[ ] FEATURE - a PR of this type introduces a new feature.
[ ] BUILD - a PR of this type introduces build changes.
[ ] CI - a PR of this type introduces CI changes.
[ ] DOCS - a PR of this type introduces DOCS improvement.
[ ] STYLE - a PR of this type introduces style changes.
[ ] REFACTOR - a PR of this type introduces refactoring.
[ ] PERFORMANCE - a PR of this type introduces performance changes.
[ ] TEST - a PR of this type adds more tests.
[X] CHORE - a PR introduces other changes than the specified above.

Hi, I have added translations for the Export accounts sections and have resolved open changes.
Let me know if there is anything left that needs to be fixed/resolved.

Hi, I have added translations for the Export accounts sections and have resolved open changes. Let me know if there is anything left that needs to be fixed/resolved.

Hi @alenNBH, and adding "exportAccounts". and addressing required changes. I've added some comments, so if would be great if they could be addressed as well.


pnpm install fails installing the explorer

ProductName: macOS
ProductVersion: 14.3.1
BuildVersion: 23D60
npm version
{
  'fuel-explorer-project': '0.0.0',
  npm: '10.2.4',
  node: '20.11.1',
  acorn: '8.11.2',
  ada: '2.7.4',
  ares: '1.20.1',
  base64: '0.5.1',
  brotli: '1.0.9',
  cjs_module_lexer: '1.2.2',
  cldr: '43.1',
  icu: '73.2',
  llhttp: '8.1.1',
  modules: '115',
  napi: '9',
  nghttp2: '1.58.0',
  nghttp3: '0.7.0',
  ngtcp2: '0.8.1',
  openssl: '3.0.13+quic',
  simdutf: '4.0.4',
  tz: '2023c',
  undici: '5.28.3',
  unicode: '15.0',
  uv: '1.46.0',
  uvwasi: '0.0.19',
  v8: '<IP_ADDRESS>-node.17',
  zlib: '<IP_ADDRESS>-motley-5daffc7'
}

docker-compose version
Docker Compose version v2.24.6-desktop.1

rustup --version
rustup 1.26.0 (5af9b9484 2023-04-05)
info: This is the version for the rustup toolchain manager, not the rustc compiler.
info: The currently active `rustc` version is `rustc 1.76.0 (07dca489a 2024-02-04)`

forc 0.46.1

Going through the Getting Started guide https://github.com/FuelLabs/fuel-explorer/blob/main/docs/explorer/GETTING_STARTED.md for fuel-explorer, when I execute pnpm install under Install Dependencies, eventually I get the following error:
Scope: all 12 workspace projects
Lockfile is up to date, resolution step is skipped
Packages: +2624
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Downloading registry.npmjs.org/fuels/0.74.0: 5.76 MB/5.76 MB, done
Downloading registry.npmjs.org/typescript/5.3.3: 5.76 MB/5.76 MB, done
Downloading<EMAIL_ADDRESS>14.57 MB/14.57 MB, done
Downloading<EMAIL_ADDRESS>5.55 MB/5.55 MB, done
Downloading registry.npmjs.org/next/14.1.0: 20.76 MB/20.76 MB, done
Downloading<EMAIL_ADDRESS>35.36 MB/35.36 MB, done
Downloading registry.npmjs.org/typescript/3.9.10: 9.58 MB/9.58 MB, done
Downloading<EMAIL_ADDRESS>5.57 MB/5.57 MB, done
Downloading<EMAIL_ADDRESS>7.16 MB/7.16 MB, done
Downloading registry.npmjs.org/turbo-darwin-64/1.12.2: 8.76 MB/8.76 MB, done
Progress: resolved 2624, reused 713, downloaded 1904, added 2624, done
<EMAIL_ADDRESS>Running install script, done in 946ms
<EMAIL_ADDRESS>Running install script, done in 1s
<EMAIL_ADDRESS>Running install script, done in 818ms
<EMAIL_ADDRESS>Running install script, done in 1.1s
node_modules/.pnpm/@fuel-ts+fuel-core@0.74.0/node_modules/@fuel-ts/fuel-core: Running install script, done in 1.9s
node_modules/.pnpm/@fuel-ts+forc@0.74.0/node_modules/@fuel-ts/forc: Running install script, done in 9.1s
<EMAIL_ADDRESS>Running install script, done in 831ms
<EMAIL_ADDRESS>Running postinstall script, done in 136ms
<EMAIL_ADDRESS>Running install script, done in 8.6s
<EMAIL_ADDRESS>Running install script, done in 8.6s
node_modules/.pnpm/@prisma+engines@5.9.1/node_modules/@prisma/engines: Running postinstall script, done in 1.8s
node_modules/.pnpm/@fuel-ts+fuel-core@0.55.0/node_modules/@fuel-ts/fuel-core: Running install script, done in 2.4s
node_modules/.pnpm/@swc+core@1.4.0/node_modules/@swc/core: Running postinstall script, done in 827ms
<EMAIL_ADDRESS>Running postinstall script, done in 1.1s
<EMAIL_ADDRESS>Running postinstall script, done in 1.5s
node_modules/.pnpm/@biomejs+biome@1.5.3/node_modules/@biomejs/biome: Running postinstall script, done in 123ms
<EMAIL_ADDRESS>Running preinstall script, done in 137ms
node_modules/.pnpm/@prisma+client@5.1.1_prisma@5.9.1/node_modules/@prisma/client: Running postinstall script, done in 1.4s

dependencies:
+ @fuels/jest 0.1.5
+ @fuels/ts-config 0.1.5
+ ethers 5.7.2
+ fuels 0.74.0
+ jest 29.7.0
+ lint-staged 15.2.2

devDependencies:
+ @babel/core 7.23.9
+ @biomejs/biome 1.5.3
+ @fuels/tsup-config 0.1.5
+ @jest/types 29.6.3
+ @next/eslint-plugin-next 14.1.0
+ @nomiclabs/hardhat-etherscan 3.1.8
+ @openzeppelin/hardhat-upgrades 3.0.2
+ @playwright/test 1.41.2
+ @swc/core 1.4.0
+ @swc/jest 0.2.36
+ @types/jest 29.5.12
+ @types/node 20.11.16
+ @types/react 18.2.54
+ @types/react-dom 18.2.18
+ @typescript-eslint/eslint-plugin 6.21.0
+ @typescript-eslint/parser 6.21.0
+ @xstate/cli 0.5.17
+ dotenv 16.4.1
+ get-tsconfig 4.7.2
+ hardhat-typechain 0.3.5
+ husky 9.0.10
+ jest-environment-jsdom 29.7.0
+ jest-transform-stub 2.0.0
+ next 14.1.0
+ npm-run-all 4.1.5
+ ts-jest 29.1.2
+ ts-node 10.9.2
+ tsup 8.0.1
+ tsx 4.7.0
+ turbo 1.12.2
+ typescript 5.3.3
+ updates 15.1.1

. prepare$ husky install
│ install command is deprecated
└─ Done in 304ms
packages/graphql prepare$ pnpm build
│ ><EMAIL_ADDRESS>build /Users/andyfuel/dev/HoTcustemers/fuel/fuel-explorer/packages/graphql
│ > run-s codegen:fuel build:lib
│ ><EMAIL_ADDRESS>codegen:fuel /Users/andyfuel/dev/HoTcustemers/fuel/fuel-explorer/packages/graphql
│ > gql-gen -r dotenv/config --config codegen.fuel.ts
│ TypeError: Cannot destructure property 'providerUrl' of '_fuel.FUEL_CHAIN' as it is undefined.
│     at /Users/andyfuel/dev/HoTcustemers/fuel/fuel-explorer/packages/graphql/codegen.fuel.ts:5:9
│     at evalModule (/Users/andyfuel/dev/HoTcustemers/fuel/fuel-explorer/node_modules/.pnpm/jiti@1.21.0/node_modules/jiti/dist/jiti.js:1:256443)
│     at jiti (/Users/andyfuel/dev/HoTcustemers/fuel/fuel-explorer/node_modules/.pnpm/jiti@1.21.0/node_modules/jiti/dist/jiti.js:1:254371)
│     at loadTypeScript (/Users/andyfuel/dev/HoTcustemers/fuel/fuel-explorer/node_modules/.pnpm/graphql-config@5.0.3_@types+node<EMAIL_ADDRESS>│     at #loadConfiguration (/Users/andyfuel/dev/HoTcustemers/fuel/fuel-explorer/node_modules/.pnpm/cosmiconfig<EMAIL_ADDRESS>│     at #readConfiguration (/Users/andyfuel/dev/HoTcustemers/fuel/fuel-explorer/node_modules/.pnpm/cosmiconfig<EMAIL_ADDRESS>│     at async load (/Users/andyfuel/dev/HoTcustemers/fuel/fuel-explorer/node_modules/.pnpm/cosmiconfig<EMAIL_ADDRESS>│     at async Explorer.load (/Users/andyfuel/dev/HoTcustemers/fuel/fuel-explorer/node_modules/.pnpm/cosmiconfig<EMAIL_ADDRESS>│     at async getConfig (/Users/andyfuel/dev/HoTcustemers/fuel/fuel-explorer/node_modules/.pnpm/graphql-config@5.0.3_@types+node<EMAIL_ADDRESS>│     at async loadConfig (/Users/andyfuel/dev/HoTcustemers/fuel/fuel-explorer/node_modules/.pnpm/graphql-config@5.0.3_@types+node<EMAIL_ADDRESS>│     at async findAndLoadGraphQLConfig (/Users/andyfuel/dev/HoTcustemers/fuel/fuel-explorer/node_modules/.pnpm/@graphql-codegen+cli@5.0.1_@parcel+watcher@2.4.0_@…
│     at async loadContext (/Users/andyfuel/dev/HoTcustemers/fuel/fuel-explorer/node_modules/.pnpm/@graphql-codegen+cli@5.0.1_@parcel+watcher@2.4.0_@types+node@20…
│     at async createContext (/Users/andyfuel/dev/HoTcustemers/fuel/fuel-explorer/node_modules/.pnpm/@graphql-codegen+cli@5.0.1_@parcel+watcher@2.4.0_@types+node@…
│     at async runCli (/Users/andyfuel/dev/HoTcustemers/fuel/fuel-explorer/node_modules/.pnpm/@graphql-codegen+cli@5.0.1_@parcel+watcher@2.4.0_<EMAIL_ADDRESS>│   filepath: '/Users/andyfuel/dev/HoTcustemers/fuel/fuel-explorer/packages/graphql/codegen.fuel.ts'
│ }
│  ELIFECYCLE  Command failed with exit code 1.
│ ERROR: "codegen:fuel" exited with 1.
│  ELIFECYCLE  Command failed with exit code 1.
└─ Failed in 6.1s at /Users/andyfuel/dev/HoTcustemers/fuel/fuel-explorer/packages/graphql
 ELIFECYCLE  Command failed with exit code 1.

When going through the guides, the expectation should be that we don't encounter these errors once we make sure we have the correct dependencies etc.  It might also be worth having the guides cover different OSes, so different sections for Windows, Mac, Linux.
Please let me know if you need additional information.

Here it just looks like we need to fix the documentation.  We need an additional step to say that the user needs 2 .env files in the file structure, they should be copied from the corresponding .env.example files in the same folder.  So copy:
fuel-explorer/packages/app-explorer/.env.example -> fuel-explorer/packages/app-explorer/.env
fuel-explorer/packages/graphql/.env.example -> fuel-explorer/packages/graphql/.env


⚠ Bofrost.fr has degraded performance

In 2c88b78, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1005 ms

Resolved: Bofrost.fr performance has improved in 2244756 after 9 minutes.


locale: updated test for Tamil locale

This pull request has updated src/test/locale/ta.js with the latest Tamil numerals. Ref: #5616 --> updated numerals for src/locale/ta.js.

I merged this with https://github.com/moment/moment/pull/5616


Add yearChanged callback function

Added support for a callback function when the user changes the year.

There is already a way to do it with the month-changed callback. Because here you can use your callback only if you can directly change the year

Are you ok to use month-changed ? http://arca-computing.github.io/MultipleDatePicker/#month-changed

Hadn't realized that. Thanks! Will use month-changed from now on.


fix: usermanager.logout() Never completes/returns result of promise.

Description
I'm currently implementing our logout flow, however I've noticed the following events during the execution of the process:

The logout tab opens and closes almost immediately (blink and you'll miss it).
When tracing the execution with breakpoints, I was able to find that the following chunk from user_manager.dart never returned/completed (I sat for minutes waiting for something, and not even an error).

   final result = await resultFuture;
    if (result == null) {
      if (kIsWeb &&
          options.web.navigationMode ==
              OidcPlatformSpecificOptions_Web_NavigationMode.samePage) {
        //wait for a result after redirect.
        return;
      }
      await forgetUser();
      return;
    }
    await _handleEndSessionResponse(result: result);
  }

  Future<void> _handleEndSessionResponse({
    required OidcEndSessionResponse result,
  }) async {
    //found result!
    final resState = result.state;
    if (resState == null) {
      await forgetUser();
      return;
    }
    final resStateData = await store.getStateData(resState);
    if (resStateData == null) {
      _logAndThrow("Didn't receive correct state value.");
    }
    final parsedState = OidcState.fromStorageString(resStateData);
    await store.setStateData(state: resState, stateData: null);
    if (parsedState is! OidcEndSessionState) {
      _logAndThrow('received wrong state type (${parsedState.runtimeType}).');
    }
    //if all state checks are successful, do logout.
    await forgetUser();
  }

On the auth server side, we see the logout event occur.

Steps To Reproduce
I'm not quite sure how to reproduce this, as I'm hoping it's configuration issue of some kind, maybe something to do with the redirect.html???
Expected Behavior
I'd expect for the promise to be fulfilled or throw an error of some kind.
Additional Context

Flutter Web Project
Zitadel Auth OIDC Provider
New Tab Config

Additionally, we've added the following event monitors and we never see a pre-logout or null user event occur.
void monitorUserStream() {
    final AuthService authService = Get.find<AuthService>();
    userStream = authService.currentUser.stream;
    userStream.listen((userEvent) {
      final CommandService commandService = Get.find<CommandService>();
      if (commandService.isBusy.isTrue) {
        commandService.busyToggle();
      }
      if (userEvent == null) {
        if (Get.currentRoute != Routes.landing) {
          Get.offAllNamed(Routes.landing);
        }
      } else {
        if (Get.currentRoute == Routes.landing) {
          Get.offAllNamed(Routes.dispatch);
        }
      }
    });

    _oidcEventStream = authService.oidcEventStream();
    _oidcEventStream.listen((event) {
      switch (event) {
        case OidcPreLogoutEvent(:final currentUser):
          Get.log('Pre-Logout Event: ${event.toString()}');
          break;
        default:
          Get.log('Generic OIDC Event: ${event.toString()}');
          break;
      }
      return;
    });
  }

Have you checked https://github.com/zitadel/zitadel_flutter ?
I just tested the login/logout flow and it works perfectly.

They're also using v0.4.3 of oidc. I based our login/logout flow on that example though.
We see the request reach the endpoint, but we don't see the response handler kick in. Are there any optional configs that could interfere with the logout flow? We confirmed that the redirect URIs are what Zitadel is configured for.

you can output debug logs from the package by enabling package:logging
also check if you have assigned postLogoutRedirectUri
Since I can't reproduce the issue on my end

postLogoutRedirectUri is assigned, but I've confirmed that it is the same
as redirectUri. The reason for this is because we're working for both Web
and native app builds. So we're using the example conditional logic for
setting those variables.
On Mon, Apr 1, 2024, 10:22 PM Ahmed Fwela @.***> wrote:

you can output debug logs from the package by enabling package:logging
https://pub.dev/packages/logging
also check if you have assigned postLogoutRedirectUri
Since I can't reproduce the issue on my end
—
Reply to this email directly, view it on GitHub
https://github.com/Bdaya-Dev/oidc/issues/66#issuecomment-2030958271, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ABGBYI6M5FNW2FZQILIANULY3II6FAVCNFSM6AAAAABFSDH2UOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMZQHE2TQMRXGE
.
You are receiving this because you authored the thread.Message ID:
@.***>

We eventually received a delayed OidcPreLogoutEvent, but it was severely delayed. However, we never receive the logout response. As a workaround, I'm forcing the app to forget the user, as we have verified that the auth server does receive the end session api call. I couple this with using some GetX observable flags for the core auth operations (e.g. login, logout, refresh) and execute logic when those flag values change.
  void monitorAuthServiceStreams() {
    final AuthService authService = Get.find<AuthService>();

    _authLastErrorStream = authService.latestError.stream;
    _authLastErrorStream.listen((exception) {
      if (exception == null) {
        _closeModal();
        return;
      }
      _showAuthErrorDialog(exception);
      return;
    });

    _userStream = authService.currentUser.stream;
    // _userStream.listen((userEvent) {
    //   final CommandService commandService = Get.find<CommandService>();
    //   if (commandService.isBusy.isTrue) {
    //     commandService.busyToggle();
    //   }
    //   if (userEvent == null) {
    //     if (Get.currentRoute != Routes.landing) {
    //       Get.offAllNamed(Routes.landing);
    //     }
    //   } else {
    //     if (Get.currentRoute == Routes.landing) {
    //       Get.offAllNamed(Routes.dispatch);
    //     }
    //   }
    // });

    _oidcEventStream = authService.oidcEventStream();
    _oidcEventStream.listen((event) {
      switch (event) {
        case OidcPreLogoutEvent(:final currentUser):
          Get.log('Pre-Logout Event: ${event.toString()} @ ${DateTime.now()}');
          break;
        default:
          Get.log(
              'Generic OIDC Event: ${event.toString()} @ ${DateTime.now()}');
          break;
      }
      return;
    });

    _isLoggingOutStream = authService.isLoggingOut.stream;
    _isLoggingOutStream.listen((isLoggingOut) {
      if (!isLoggingOut) {
        // Check if a dialog is open before attempting to close it
        _closeModal();
        return;
      }
      Get.offAllNamed(Routes.landing);
      _showLoggingOutModal();
      return;
    });

    _isLoggingInStream = authService.isLoggingIn.stream;
    _isLoggingInStream.listen((isLoggingIn) {
      if (!isLoggingIn) {
        if (authService.isAuthenticated) {
          if (Get.currentRoute == Routes.landing) {
            Get.offAllNamed(Routes.dispatch);
            _closeModal();
            return;
          }
        }
        Get.offAllNamed(Routes.landing);
        _closeModal();
        return;
      }
      _showLoggingInModal();
      return;
    });

    _isAuthRefreshingStream = authService.isRefreshing.stream;
    _isAuthRefreshingStream.listen((isRefreshing) {
      if (!isRefreshing) {
        // Check if a dialog is open before attempting to close it
        _closeModal();
        return;
      }
      _showAuthRefreshModal();
      return;
    });
  }  void monitorAuthServiceStreams() {
    final AuthService authService = Get.find<AuthService>();

    _authLastErrorStream = authService.latestError.stream;
    _authLastErrorStream.listen((exception) {
      if (exception == null) {
        _closeModal();
        return;
      }
      _showAuthErrorDialog(exception);
      return;
    });

    _userStream = authService.currentUser.stream;
    // _userStream.listen((userEvent) {
    //   final CommandService commandService = Get.find<CommandService>();
    //   if (commandService.isBusy.isTrue) {
    //     commandService.busyToggle();
    //   }
    //   if (userEvent == null) {
    //     if (Get.currentRoute != Routes.landing) {
    //       Get.offAllNamed(Routes.landing);
    //     }
    //   } else {
    //     if (Get.currentRoute == Routes.landing) {
    //       Get.offAllNamed(Routes.dispatch);
    //     }
    //   }
    // });

    _oidcEventStream = authService.oidcEventStream();
    _oidcEventStream.listen((event) {
      switch (event) {
        case OidcPreLogoutEvent(:final currentUser):
          Get.log('Pre-Logout Event: ${event.toString()} @ ${DateTime.now()}');
          break;
        default:
          Get.log(
              'Generic OIDC Event: ${event.toString()} @ ${DateTime.now()}');
          break;
      }
      return;
    });

    _isLoggingOutStream = authService.isLoggingOut.stream;
    _isLoggingOutStream.listen((isLoggingOut) {
      if (!isLoggingOut) {
        // Check if a dialog is open before attempting to close it
        _closeModal();
        return;
      }
      Get.offAllNamed(Routes.landing);
      _showLoggingOutModal();
      return;
    });

    _isLoggingInStream = authService.isLoggingIn.stream;
    _isLoggingInStream.listen((isLoggingIn) {
      if (!isLoggingIn) {
        if (authService.isAuthenticated) {
          if (Get.currentRoute == Routes.landing) {
            Get.offAllNamed(Routes.dispatch);
            _closeModal();
            return;
          }
        }
        Get.offAllNamed(Routes.landing);
        _closeModal();
        return;
      }
      _showLoggingInModal();
      return;
    });

    _isAuthRefreshingStream = authService.isRefreshing.stream;
    _isAuthRefreshingStream.listen((isRefreshing) {
      if (!isRefreshing) {
        // Check if a dialog is open before attempting to close it
        _closeModal();
        return;
      }
      _showAuthRefreshModal();
      return;
    });
  }

Is there any way you can add a timeout for this call? It feels like it shouldn't just sit there waiting for a response.

@jlambright I will look into it

hi @jlambright sorry for the delay, if it's ok with you to send me the exact idp configuration you are using via email so I can debug this further<EMAIL_ADDRESS>so far I have tested against zitadel and duende, and as long as you provide the correct postLogoutRedirectUri the logout flow will work as intended


socks4/5 and http support??

@l3mpik bro can you add #socks4 #sock5 #http support just like ogar feeder bot???? i tried that yesterday but no succses :(

socks5 support already exists dist/bot.js add this lines :
            } else if (mode === 'socks') {
                console.log('Mode socks, proxy', proxyServer);
                let temp = proxyServer.split(':');
                let socksIp = temp[0]
                let socksPort = temp[1];
                requestOptions.agent = new Socks.Agent({
                    proxy: {
                        ipaddress: socksIp,
                        port: socksPort,
                        type: 5
                    }
                });
            }

and change var mode = 'http';
to var mode = 'socks';

@Wartoz yes i know that..i ask for something like ogar fedder bot
#socks4
//sock4 proxies
#socks5
//sock4 proxies
#http
//http proxiest

hmm i see

i support only http and socks5 . Sorry.  Maybe later.

https://github.com/dahquan/rattlesnake/issues/70

there isn't socks4

EDIT : I add socks4

Multi Proxy Support of slither-feeder-bot :
https://github.com/yario-o/slither-feeder-bot
Multi Proxy Support of rattlesnake :
https://github.com/yario-o/rattlesnake/tree/SocksAndHTTP/

Pull request : https://github.com/l3mpik/slither-feeder-bot/pull/31