Rework MacOS documentation

Description
Rework MacOS documentation to be consistent with Ubuntu and Windows tests

Related issue:
Rework MacOS documentation to be consistent with Ubuntu and Windows tests #1604
Check list

[x] Related issue / work item is attached
[x] Documentation is updated (if applicable)
[x] Changes are tested and related VM images are successfully generated

Builds:
macOS-10.14, macOS-10.15, macOS-11.0

Some names are missing


Create preliminar Infrastructure diagrams

[ ] Started using diagrams to generate CF bot's components diagrams

a brief comparison using javascript-based diagram tooling x python based.
Adapt previous docs/graphs/diagrams into new docs structural design

After pondering those two approaches, I've decided that Mermaid seems to be the best use case for our docs. The reason can be outlined into two main points:

The general graph coding experience (layout/classes) is similar to Diagrams, which makes its use quite simple to structure new graphs or add modifications to existing ones
Docssauros has a built-in (needs import) plugging for including mermaid diagrams direct in markdown files without much trouble. e.g.

... your diagram here

In compression with Diagram it is easier to handle, build (no need to run extra commands), and modify in the future.

As of now, to reduce the spent time on getting our diagram in the mermaid format, we will be using LucidCharts to generate the structure of these, for initial review and iterations, and later import into the docs with the proper formating/code

Current iteration

Here we have come key concepts described using different colors:

Agents/actors
Objects
Verbs
which still lack a proper definition, but its idea is to better organize the different situations and functionality of conda-forge infrastructure into classes of objects that sometimes interact with other resources (usually modifying some integral part of it), the agents/actors, or the object that receive such interactions "the objects."

Such classification helps outline the different scenarios with which the same object/actor might be involved and the extra level of coordination/management/authority that the same object controls.

Identified above the core concept is definitely the feedstock, wich in the next iteration will become the center part of the next diagrams in a more easy to read/follow representation

I merged the current status to get us going but we need to revisit the diagrams in the future. I'll create a separate issue for that.


Fe assessment 2

drift-video-link - https://video.drift.com/v/abWkc5NpstVsLWMOWkYzYC0FXVWHhKmczsbGaDuEO8SQ/

this is the overall UI of the assessment

Metric
Value

alert_status
:white_check_mark: OK

bugs
2

code_smells
3

reliability_rating
C (at least 1 Major Bug)Note: A being best, E being worst

security_rating
A (0 Vulnerabilities)Note: A being best, E being worst

vulnerabilities
0


Take over compiler/machine/backend configuration from act

I’m currently making the tester depend on act for all of the compiler/machine/backend introspection.  Once this tester is complete, it’ll likely be the only part of act depending on that information, in which case I wager act-tester would do a better job of maintaining that configuration itself.
This would then reduce act to a fuzzer and C litmus test manipulator, which seems closer to what it actually is.
However, this is likely to not be a priority this side of a paper, so I’m wishlisting it.  (Labelling it WONTFIX for now, but I’ll eventually make a new label.)

This has ended up becoming the case out of convenience when implementing other bits of the tester, so I'm closing this.


Create new input(String locator, String value, int delay) convenience method.

Would like to see another input convenience method that takes (String locator, String value, int delay).  Currently the only way to pass in a delay is to use the (String locator, String[] values, int delay) version. Edit to add: The issue is that we would have to split a data-driven string value at runtime in JavaScript, which we could do, but I thought it might be a handy addition to the framework.
I've added a minimal project zip that demonstrates the expectation: karate-input-with-delay.zip
I would consider adding a PR from my fork, if that's preferable, that has all of the required changes to do this, but I'm still a little new to the internals, so I wasn't sure what all would need to change.
Great project, by the way.  My company is currently working on standardizing on Karate to be our preferred test automation framework through our Enterprise Architecture Board, so another happy 'user'!

@krstcs thanks :) okay so I really try hard to not bloat the API and I personally thought an extra pair of square brackets wouldn't be such a big deal
but maybe this existing option would be enough ?
* locate('#foo').delay(1000).input('bar')

The problem is (and I didn't explain this part well, so my bad!), input(locator, [value], delay) where there's only one string in '[value]' doesn't actually delay between each letter of the input string (which is what I'm needing).  So there's an expectation that it would (maybe a wrong expectation), but it's only delaying between each string in the array, not each letter in each string.  Adding the single-string version would allow for splitting a single-string at runtime to do what I'm expecting.  Due to the need for data-driving the input, we would need to split the input every time we use this method if we need to delay between characters.  Like I said, we can do that, but I thought another convenience method would help clarify in this situation.
I understand not wanting to add bloat though, so we can try something else if this isn't worth putting in.

Also, I don't think those examples fit exactly what I didn't explain well the first time around.  😄
I think they do the same type of thing, they just delay inputting the value, they don't add a delay in between the keystrokes.
Our issue is a third-party application (3PA) that we customize heavily.  Their input fields are very picky and we have to go slow with them or they cause problems, like not getting the last few letters of input.  I don't know if the issue is with our customization or the 3PA.

@krstcs got it. in fact I faced the exact same problem which is why I introduced that 3rd arg in the first place. now my mind is cleared up and I totally agree this is how I should have done it in the first place. will make this change

@krstcs I normally don't do this, but since you are able to - can you confirm it works ?
thanks for providing so much detail, appreciate it.

Awesome, thanks!!

Give me a minute, in a meeting!

Added a comment to the commit.  Instead of the loop, you can use value.split("") to get the string array of individual characters.  Split with an empty string arg splits on each character.

Also, not sure how to test from the commit, we are required to use our internal artifactory server (with pass through to jcenter) for dependencies.  I've never done this type of thing before from a branch/commit.  More than willing to help out, but could use some guidance.  Thanks!!

@krstcs sure. no hurry, I'd really appreciate more contributions. sorry I thought you may have seen the developer guide already, it should get you going locally: https://github.com/intuit/karate/wiki/Developer-Guide

Yeah, I hadn't seen the Developer Guide, thanks.  I'll look at it this morning.
I'm hoping to get my company to sign off on full contribution to FOSS like this since we're trying to standardize on Karate.  That might mean I have more time to poke and prod for you.  😄

@krstcs send me an e-mail if you use slack and would like to be part of a karate channel: https://twitter.com/KarateDSL/status/937271659785961477

0.9.6 released


Sweep speed min value is to low

Expected Behaviour
When decreasing the sweep speed the wave update should slow down
Actual Behaviour
The wave update is only minimal decreased and more or less not visible

If you fix this with this issue, #116 is ready, isn't it?
(Might be fixed via changing the step of TimeSweepSliders back to -5 to +5 or so)


feat: support connect failed to force refresh routing table

when one of the neo4j cluster's instance shutdown, the connection will be failed, becuase the routing table ttl is 300s. In the 300s, the routing table can not refresh, the session is failed until next routing table refresh. if modifiy router ttl's value short on neo4j server, the cache is no valueable .
now, if session connection failed, client will be forced refresh routing table and retry connection neo4j server.
s.router.Invalidate(s.databaseName)

The router make the database invalidate, when it next try to connection neo4j cluster ,the router will be create new routing table.

As per issue #519, a fix for the problem mentioned will be included in a future release.

Thank you very much for taking the time to make a contribution @youngxhui 🙌
As mentioned by @StephenCathcart we've been working on a fix for this issue independently. #520 should fix it while even being broader: removing bad servers from the routing table should not only happen when using transaction functions (session.runRetriable), but for any other API as well.
I will close this PR for now. However, we will come back to it should we not move forward with the other PR I've linked.

Is there a plan to support 4.4?

Hi @youngxhui, unfortunately for now there are no plans to support this change in 4.4 - there are too many things to backport for an LTS. Upgrading to the 5.x driver is fairly straightforward, if you don't mind deprecation warnings.


Flutter Web App Error [_binaryMessenger != null || ServicesBinding.instance != null] [White Screen Error]

Getting this issue with Flutter
Tried Flutter 2.10/2.10.1 and 2.11.0-0.1.pre beta versions still getting the same error
Error: Assertion failed: file:///C:/Flutter%20Folder/beta/flutter/packages/flutter/lib/src/services/platform_channel.dart:397:7
_binaryMessenger != null || ServicesBinding.instance != null
"Cannot set the method call handler before the binary messenger has been initialized. This happens when you call setMethodCallHandler() before the WidgetsFlutterBinding has been initialized. You can fix this by either calling WidgetsFlutterBinding.ensureInitialized() before this or by passing a custom BinaryMessenger instance to MethodChannel()."
    at Object.throw_ [as throw] (http://localhost:58637/dart_sdk.js:5388:11)
    at Object.assertFailed (http://localhost:58637/dart_sdk.js:5310:15)
    at platform_channel.MethodChannel.new.setMethodCallHandler (http://localhost:58637/packages/flutter/src/services/restoration.dart.lib.js:1639:98)
    at Function.registerWith (http://localhost:58637/packages/flutter_dtmf/dtmf_web.dart.lib.js:52:15)
    at Object.registerPlugins (http://localhost:58637/packages/call_crm/generated_plugin_registrant.dart.lib.js:37:25)
    at main (http://localhost:58637/web_entrypoint.dart.lib.js:36:35)
    at main.next (<anonymous>)
    at runBody (http://localhost:58637/dart_sdk.js:42986:34)
    at Object._async [as async] (http://localhost:58637/dart_sdk.js:43017:7)
    at main$ (http://localhost:58637/web_entrypoint.dart.lib.js:35:18)
    at http://localhost:58637/main_module.bootstrap.js:19:10
    at Array.forEach (<anonymous>)
    at window.$dartRunMain (http://localhost:58637/main_module.bootstrap.js:18:32)
    at <anonymous>:1:8
    at Object.runMain (http://localhost:58637/dwds/src/injected/client.js:8707:21)
    at http://localhost:58637/dwds/src/injected/client.js:23873:19
    at _wrapJsFunctionForAsync_closure.$protected (http://localhost:58637/dwds/src/injected/client.js:3487:15)
    at _wrapJsFunctionForAsync_closure.call$2 (http://localhost:58637/dwds/src/injected/client.js:11518:12)
    at Object._asyncStartSync (http://localhost:58637/dwds/src/injected/client.js:3451:20)
    at main__closure3.$call$body$main__closure (http://localhost:58637/dwds/src/injected/client.js:23885:16)
    at main__closure3.call$1 (http://localhost:58637/dwds/src/injected/client.js:23812:19)
    at StaticClosure._rootRunUnary (http://localhost:58637/dwds/src/injected/client.js:3849:18)
    at _CustomZone.runUnary$2$2 (http://localhost:58637/dwds/src/injected/client.js:12877:39)
    at _CustomZone.runUnaryGuarded$1$2 (http://localhost:58637/dwds/src/injected/client.js:12813:14)
    at _ForwardingStreamSubscription._sendData$1 (http://localhost:58637/dwds/src/injected/client.js:12403:19)
    at _ForwardingStreamSubscription._add$1 (http://localhost:58637/dwds/src/injected/client.js:12349:15)
    at _ForwardingStreamSubscription._add$1 (http://localhost:58637/dwds/src/injected/client.js:12682:12)
    at _MapStream._handleData$2 (http://localhost:58637/dwds/src/injected/client.js:12743:12)
    at _ForwardingStreamSubscription._handleData$1 (http://localhost:58637/dwds/src/injected/client.js:12708:20)
    at tear_off.<anonymous> (http://localhost:58637/dwds/src/injected/client.js:1392:45)
    at StaticClosure._rootRunUnary (http://localhost:58637/dwds/src/injected/client.js:3849:18)
    at _CustomZone.runUnary$2$2 (http://localhost:58637/dwds/src/injected/client.js:12877:39)
    at _CustomZone.runUnaryGuarded$1$2 (http://localhost:58637/dwds/src/injected/client.js:12813:14)
    at _ControllerSubscription._sendData$1 (http://localhost:58637/dwds/src/injected/client.js:12403:19)
    at _ControllerSubscription._add$1 (http://localhost:58637/dwds/src/injected/client.js:12349:15)
    at _SyncStreamController._sendData$1 (http://localhost:58637/dwds/src/injected/client.js:12197:32)
    at _SyncStreamController.add$1 (http://localhost:58637/dwds/src/injected/client.js:12078:15)
    at tear_off.<anonymous> (http://localhost:58637/dwds/src/injected/client.js:1450:48)
    at StaticClosure._rootRunUnary (http://localhost:58637/dwds/src/injected/client.js:3849:18)
    at _CustomZone.runUnary$2$2 (http://localhost:58637/dwds/src/injected/client.js:12877:39)
    at _CustomZone.runUnaryGuarded$1$2 (http://localhost:58637/dwds/src/injected/client.js:12813:14)
    at _ControllerSubscription._sendData$1 (http://localhost:58637/dwds/src/injected/client.js:12403:19)
    at _ControllerSubscription._add$1 (http://localhost:58637/dwds/src/injected/client.js:12349:15)
    at _SyncStreamController._sendData$1 (http://localhost:58637/dwds/src/injected/client.js:12197:32)
    at _SyncStreamController.add$1 (http://localhost:58637/dwds/src/injected/client.js:12078:15)
    at _GuaranteeSink.add$1 (http://localhost:58637/dwds/src/injected/client.js:23352:25)
    at HtmlWebSocketChannel_closure1.call$1 (http://localhost:58637/dwds/src/injected/client.js:23637:149)
    at _EventStreamSubscription_closure.call$1 (http://localhost:58637/dwds/src/injected/client.js:17865:26)
    at StaticClosure._rootRunUnary (http://localhost:58637/dwds/src/injected/client.js:3855:16)
    at _CustomZone.runUnary$2$2 (http://localhost:58637/dwds/src/injected/client.js:12877:39)
    at _CustomZone.runUnaryGuarded$1$2 (http://localhost:58637/dwds/src/injected/client.js:12813:14)
    at _CustomZone_bindUnaryCallbackGuarded_closure.call$1 (http://localhost:58637/dwds/src/injected/client.js:13014:25)
    at invokeClosure (http://localhost:58637/dwds/src/injected/client.js:1281:26)
    at WebSocket.<anonymous> (http://localhost:58637/dwds/src/injected/client.js:1300:18)

Hi @sahq-azhar, please provide a complete minimal reproducible code sample so that we may verify this.
Thank you

@danagbemava-nc This error is coming if we launching flutter on chrome (flutter run -d chrome). We are not getting this error in case of Android launch.
We are calling WidgetsFlutterBinding.ensureInitialized() under main
void main() async {
  WidgetsFlutterBinding.ensureInitialized();

I resolved this by checking the dependencies on pubspec.yaml file.
In my case flutter_dtmf was creating this issue.

Hi @pvsvamsi, kindly file a new issue and provide all the relevant information to reproduce the issue.
@sahq-azhar given that you have resolved this issue on your own, I'm going to close this issue as solved.
Thank you


MM-35726 Dependency updates

Nothing super big in terms of upgrades except I added a file that tracks upgrades using npm-upgrade. That file includes references to the ticket numbers for the bigger upgrades that we've been skipping.
Most of the individual line changes are snapshots changes caused by react-intl renaming some of their components internally.
Ticket Link
https://mattermost.atlassian.net/browse/MM-35726
Release Note
NONE

They're being ignored since I wanted to skip packages I knew we weren't upgrading when I was running npm-upgrade. As far as I know, that's the only way to tag them with their corresponding upgrade tickets in a convenient way.

I downgraded Storybook itself. I tried some other things to fix it, but those weren't working, and I don't understand enough about it too get replace addon-knobs. It sounds like it's just deprecated at this point and should continue working until Storybook 7, so I don't know what the issue is other than that.
As for those other ones, I'm not going to bother keeping the minor versions bumped after the initial one I did last week. We'll grab those next dependency update.

@jgilliam17 There's nothing particular to test here outside of a regular smoke test. The only notable things to test outside of what CI covers is that the libraries for syntax highlighting and searching in the system console were updated, and I've tested both of those locally already.

Thanks @hmhealey
I checked PR E2E failures  against master run and there is one issue that reproduces manually on the test server

Searching for individual plugins in the system console search box, more specifically "antivirus" can't be found even though it is installed and visible on the LHS.

@jgilliam17 I ended up downgrading the library we're using for searching in the System Console back to its previous version since I wasn't able to figure out how to get the new one to work. It's ready for another review now.


SW-2637 Use seed bank time zone for withdrawal date

If the user creates a viability test and doesn't give a start date, the test is
associated with a withdrawal on today's date. Use the seed bank's time zone to
determine what "today's date" is.
This is the only place in AccessionModel that needs to know the time zone;
a number of methods take Clock arguments but they only call Clock.instant().

Current dependencies on/for this PR:

main

PR #890

PR #891

PR #892

PR #893   👈

This comment was auto-generated by Graphite.

Oops, this is incomplete. I was correct that this is the only place in AccessionModel itself that needs the time zone, but I failed to notice that we need it in WithdrawalModel too, which is going to require a more invasive change. Will update this and rerequest review when it's ready.

This turned out to need a lot more changes than the initial stab. Updated the PR description to reflect what it looks like now.


Can't get groups to work

Describe the bug
I'm trying to use the same format for the path grouping as the built-in graph view, but it doesn't seem to work.
To Reproduce

Open global 3D graph
In the Groups pane, add a new Group with the following query: path:"<foldername>" where <foldername> is one of the top-level folders with many notes in your vault
Set the new group to a color
The selected color does not appear, even though many notes should belong to the group

Environment
macOS with Obsidian v0.15.9

Hi. Group queries have a different syntax in this plugin. To target a folder, simply type it out. Example:

ideas/ will target all notes, which live in ideas/
ideas/new/cool will target all notes, which live in ideas/new/cool
As you can see, there's no need to add path: before the query, you simply have to type the folder name.

I am aware that the current implementation is confusing, especially since the plugin looks very similar to the "normal" graph view. However, for this first version, the current approach was the easiest to implement. In the future, a more traditional query language is definitely something, that should be implemented.


Form is submitted when new item is submitted

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Click + icon and the form is submitted automatically.

Expected behavior
The form should not be submitted
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: Mac
Browser Chrome

Additional context
It looks like the Plus/Copy icon buttons are submit type buttons. So when I click plus icon then the form is submitted automatically. Is there a way to prevent form submission but repeater adds the set of form elements ?

Are these issues being tracked?

This is happening to me as well - fill out one row , click new row, fill it out again, click new row and then the entire form submits and the page loads.

for now, we can use it like this
        <form action="">
    <vue-repeater v-model="fields">
    </vue-repeater>
        </form>
    </div>


Duplicated images

When I save an image twice using button on hover the image saved duplicated with same file name and counter number (1),(2)..etc.
Please add option to avoid duplicated file name . Thank you

https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/downloads/FilenameConflictAction
There are 3 ways to handle conflicted filename:

uniquify - adding (1), (2) to the end of the filename.
overwrite - replace the old file with the new one.
prompt - ask the user whether to use uniquify or overwrite.

Seems that there is no way to avoid it (cancel the download), also the prompt option is not supported by Firefox:
https://bugzilla.mozilla.org/show_bug.cgi?id=1425515
Do you think that it is worth it to add an option to overwrite the old file?

Hi Sir,
Sadly that Firefox not supporting prompt option. So yes I think overwrite old file is better than duplicated. I wish you add this option. Thank you

Added in 0.6.1.


Warning from Python when loading the module

Now (windows branch) Dataframes will automatically load Python interpreter and import necessary modules. This leads to this being printed:
C:\Python37\lib\site-packages\sklearn\externals\joblib\externals\cloudpickle\cloudpickle.py:47: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
  import imp

sklearn module uses deprecated module, polluting our output. To be decided whether we want to do something about that (or not, as the warning is technically legit, even if coming from third-party).
Related third party issues:
https://github.com/scikit-learn/scikit-learn/issues/12226
https://github.com/cloudpipe/cloudpickle/issues/207

How to get rid of this?

On our side? No idea, haven't looket into this.
But it should bo possible to avoid this issue by using proper versions of our Python dependencies.


Persistently marking

Hi,
Very nice package. How can I mark a text persistently?
When you mention "persistently marking", where does the information is saved?
Thanks

I have the same problem, as soon as the file is closed the marking is lost.

Same here.

same problem.

same here, pls make it to save settings permanently, if so, it will be great package for sublime.


Refactor ClientConfigurationError for reduced size

Same changes as #6433 and #6414 but for ClientConfigurationError this time

Codecov Report

Merging #6471 (d5ad861) into dev (81d34b4) will decrease coverage by 2.23%.
Report is 314 commits behind head on dev.
The diff coverage is 60.52%.

Flag
Coverage Δ

*Carryforward flag

msal-angular
?

msal-browser
85.51% <ø> (-0.96%)
:arrow_down:
Carriedforward from bc3840d

msal-common
83.17% <ø> (-1.38%)
:arrow_down:
Carriedforward from bc3840d

msal-core
?

msal-node
80.19% <ø> (-3.21%)
:arrow_down:

msal-node-extensions
68.25% <60.26%> (-7.39%)
:arrow_down:
Carriedforward from bc3840d

msal-react
94.24% <ø> (-0.45%)
:arrow_down:

node-token-validation
?

*This pull request uses carry forward flags. Click here to find out more.

Files Changed
Coverage Δ

...ions/msal-node-extensions/src/utils/Environment.ts
20.51% <0.00%> (-22.08%)
:arrow_down:

...b/msal-browser/src/app/IPublicClientApplication.ts
41.17% <ø> (-2.58%)
:arrow_down:

...ib/msal-browser/src/app/PublicClientApplication.ts
65.90% <ø> (-29.42%)
:arrow_down:

...er/src/broker/nativeBroker/NativeMessageHandler.ts
86.29% <ø> (+0.33%)
:arrow_up:

lib/msal-browser/src/cache/AsyncMemoryStorage.ts
80.76% <ø> (+2.99%)
:arrow_up:

lib/msal-browser/src/cache/BrowserCacheManager.ts
89.47% <ø> (-2.25%)
:arrow_down:

lib/msal-browser/src/cache/BrowserStorage.ts
87.50% <ø> (-3.41%)
:arrow_down:

lib/msal-browser/src/cache/CryptoKeyStore.ts
80.00% <ø> (-3.34%)
:arrow_down:

lib/msal-browser/src/cache/DatabaseStorage.ts
34.00% <ø> (-4.54%)
:arrow_down:

lib/msal-browser/src/cache/MemoryStorage.ts
100.00% <ø> (ø)

... and 57 more

... and 175 files with indirect coverage changes


Find a better font for LPWA

Issues:

current font is ignored in Safari (iOS)
diacritics are not properly handled


recoveryservicesbackup release

https://github.com/Azure/sdk-release-request/issues/3909

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-arm-recoveryservicesbackup


Fix spill time metric unit

Change the spill time metric from microseconds to nanosecond.
This is a follow up of https://github.com/facebookincubator/velox/pull/9765/
Resolves: https://github.com/facebookincubator/velox/issues/10688

Can you help take a look?  Thanks! @xiaoxmeng


Custom authorization on beforerequest

Hello,
I'm trying to set the authorization property on the BeforeRequest action, but when i debug my WCF service the values added dont arrive on the request headers (I've implemented custom basic authentication on the WCF service).
I've tried the following codes without success:

  var settings = new ODataClientSettings()
  {
    UrlBase = URL_SERVICIO
  };
  settings.BeforeRequest += delegate(System.Net.Http.HttpRequestMessage request)
  {
    String aux = String.Join(":", new String[] { usuario, password });
    var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(aux);
    request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", System.Convert.ToBase64String(plainTextBytes));
};
 var client = new ODataClient(settings);

  var settings = new ODataClientSettings()
  {
    UrlBase = URL_SERVICIO
  };
  settings.BeforeRequest += delegate(System.Net.Http.HttpRequestMessage request)
  {
    String aux = String.Join(":", new String[] { usuario, password });
    var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(aux);
    request.Headers.Add("Authorization", "Basic " + System.Convert.ToBase64String(plainTextBytes));
  };

  var client = new ODataClient(settings);

Whe i debug the client, seems that the delegate is not invoked before doing the request.
Thanks,
Asier

Hi, I'm using version 4.7.0 of Simple.OData.Client and am attempting to pass through an OAuth2 bearer Authorization header. I'm currently experiencing the same problem as indicated above with initial $metadata call not passing the Authorization header to the source. Here's my setup of the header value:
var settings = new ODataClientSettings(ProjConfig.EndpointBase);
settings.BeforeRequest = (message) =>
{
message.Headers.TryAddWithoutValidation("Authorization",
"bearer " + authToken);
};
ODataClient client = new ODataClient(settings);
Any help would be greatly appreciated. Let me know if you want me to open up a new issue.

Thank you for the report. I will have a look at it.

Hi again,
I've inspected the code and ran some tests but was not able to reproduce the issue. I need more details about this. Did you debug the code? If so, did you see that BeforeRequest body was executed? I can see it in my debugging sessions.

Unable to reproduce.


ListItem primaryTogglesNestedList property ignored when checkbox is present

Problem description
ListItem primaryTogglesNestedList property ignored when checkbox is present.
When you click on the parent list item primary text, the nested list is not toggled.
If you remove the leftCheckbox, it works.
Steps to reproduce
<ListItem
  primaryText="Root"
  primaryTogglesNestedList
  leftCheckbox={<Checkbox />}
  nestedItems={[
    <ListItem primaryText="Child 1" />,
    <ListItem primaryText="Child 2" />
  ]} />

Versions

Material-UI: 0.15.0
React: 15.1.0
Browser: Chrome 51.0.

@rafaelsales It works for me!

Incase you did not try clicking on the expandable icon arrow on the right, it does work (). Only that it works just on click of the expandable icon arrow for toggle of nested items. The label of the parent however remains clickable only for the check uncheck of the item.

@aahan96 @nehalbhanushali
The documentation is very clear about the expected behavior:
primaryTogglesNestedList: If true, clicking or tapping the primary text of the ListItem toggles the nested list.

@aahan96 You didn't try clicking on the primary text.

@rafaelsales Clicking on the primary text takes check uncheck as priority. Question is, do we want it to check/uncheck and simultaneously open the nested item list?

@nehalbhanushali
I understand that's the priority that is happening, but that's not what the documentation says. I've got feedback from my clients they expected to open the nested when clicking on a parent item rather than selecting the checkbox.
If the docs says when primaryTogglesNestedList is true then clicking or tapping the primary text of the ListItem toggles the nested list, that's what needs to happen, regardless the item has children or not, otherwise this option just becomes dead for lists that has children.
It's a simple change and I can't see how it would break any rule described on the behavior for this component.

@rafaelsales You are right, that looks like a bug.
That looks like an issue with the createLabelElement. When primaryTogglesNestedList is true it shouldn't be using a <label /> component. It should also be triggering a handleNestedListToggle() during a touchTap event.

@oliviertassinari Implemented a fix based on your suggestion here: https://github.com/callemall/material-ui/pull/4988


Support non-rustup environment

Closes #26
I just hit this in one of my projects; so, my problem, my fix.

Looks good. Can you update the readme?

Thanks!


Introduce New lines or "\n" character in pages with more than one print output.

The image above contains 9 different print outputs. But they all seemed to be togerther. Introducing newlines at the end of print statements will make it cleaner. Expecially in files where you have more than 2 print statements.

@richardkdbz I will review the code and add the newlines wherever they seem missing to me. I may miss some results that bother you, in that case, feel free to reopen the issue. Thanks.


Support for Dataproc serverless components

As I understand, through a tag based system, the plugin can assign different compute targets for each node as follows:
# excerpt from vertexai.yml
# see https://kedro-vertexai.readthedocs.io/en/0.9.1/source/02_installation/02_configuration.html

  # Optional section allowing adjustment of the resources
  # reservations and limits for the nodes
  resources:

    # For nodes that require more RAM you can increase the "memory"
    data-import-node:
      memory: 2Gi

    # Training nodes can utilize more than one CPU if the algorithm
    # supports it
    model-training-node:
      cpu: 8
      memory: 60Gi

    # GPU-capable nodes can request 1 GPU slot
    tensorflow-node:
      gpu: 1

    # Resources can be also configured via nodes tag
    # (if there is node name and tag configuration for the same
    # resource, tag configuration is overwritten with node one)
    gpu_node_tag:
      cpu: 1
      gpu: 2

    # Default settings for the nodes
    __default__:
      cpu: 200m
      memory: 64Mi

  # Optional section allowing to configure node selectors constraints
  # like gpu accelerator for nodes with gpu resources.
  # (Note that not all accelerators are available in all
  # regions - https://cloud.google.com/compute/docs/gpus/gpu-regions-zones)
  # and not for all machines and resources configurations -
  # https://cloud.google.com/vertex-ai/docs/training/configure-compute#specifying_gpus
  node_selectors:
    gpu_node_tag:
      cloud.google.com/gke-accelerator: NVIDIA_TESLA_T4
    tensorflow-step:
      cloud.google.com/gke-accelerator: NVIDIA_TESLA_K80

Is there support for using Dataproc serverless components for a pipeline / node as well in this plugin?

As far as I recall, no, because this would require to use different component not only node selectors and currently every node is translated to ContainerOp.

Thanks @em-pe. Yep deep dived into the code and makes sense. I would love to contribute to this package, as I loved the concept of translating the kedro nodes into vertex ai nodes, grouping logic etc. It seems this is EXACTLY what I want, however with a bit more flexibility. I am embarking on a VertexAI + CloudComposer + Kedro MLOPS journey, and would share my learnings, and hopefully contribute back :)


build(CLI): Run test workflow only for CLI releases

Run the CLI tests only when there are related changes, otherwise it fails due to missing Go package version.

hm what about changes to CLI code itself?

@jablan @bikmazefe maybe we could then add clients/cli/** to the paths?

@jablan @theSoenke  Ah good point, I was thinking that the changes in Go would cause the version bump in the yaml file anyway but there are some static code there as well. Thank you, I'll add it.

It seems like the latest version of the tools module that was released on September 9th is causing some issues in the CI. I fixed it's version to the previous one. Can you please have another look? 🙏 @theSoenke @jablan


x/pkgsite:

As per instructions at https://go.dev/about for removing a package: please remove
https://pkg.go.dev/github.com/itecart/goost/*
https://pkg.go.dev/github.com/itecart/kangaroo/*
Thank you.

Done


Add interactive graph in RTD

CONTEXT
This PR allows integration of interactive graphics in a "Results" section in RTD.
Fixes: #222
PROPOSED CHANGES
Changes are made in generate_figure.py to generate interactive graphics with Plotly
HOW TO TEST
The graphics are in Results section in RTD

https://spine-generic.readthedocs.io/en/nr-dashboard/

@jcohenadad  I am currently not able to figure out how to generate on fly those html since I modified directly generate_figure.py. Do I only need to call this script in docs/_static folder?

@kousu do you think you could help @noemieroberge integrate her html generation script during RTD build?

@kousu or @alexfoias do you think you could help @noemieroberge integrate her html generation script during RTD build?

discussion redirected here: https://github.com/spine-generic/spine-generic/issues/239
Once this PR is merged, we will be able to test the html generation on the fly. So the strategy for now is to not include the html files in this PR.

@noemieroberge could you please update your branch with master, and also address my comments? we should merge your PR ASAP so @alexfoias can implement his solution https://github.com/spine-generic/spine-generic/issues/239

@jcohenadad I'm going to remove now all html and make some correction in script


Error text verbiage while creating a new cosmosdb using Azure CLI

I was trying to create a azure comosdb using CLI. Got it error a few times , but was not able to identify what the issue was. Syntactically looked like the key value pairs in locations is good. After reviewing it several times identified that it was not the format thats incorrect but  one of the property name itself was incorrect,

Would it be possible to display a different error message for this , something like  "Unknown property name {propertyname}". It would have been easier to debug.

cosmosdb

Hey @avanishkdev thanks for your feedback. We will investigate further and decide if that is possible. I will update here in sometime

Hi @yonzhan do you know if the CLI team is aware of any in-progress feature development which can potentially address this ASK. This issue is not service-related. It is CLI infra issue.

@jiasli to help.

This --locations is not the global parameter --location, so this issue is not related to CLI infrastructure.
https://github.com/Azure/azure-cli/blob/4aee466f6fce5db00db61639545e98712e6263b6/src/azure-cli/azure/cli/command_modules/cosmosdb/_params.py#L54-L57
And the error usage error: --locations [KEY=VALUE ...] is thrown at
https://github.com/Azure/azure-cli/blob/17015379924a13b12a48781469c8b0e5021c7c2a/src/azure-cli/azure/cli/command_modules/cosmosdb/actions.py#L40-L43
+ the author @shurd

The improved error messaging is in PR, and we are working on getting it merged.

We are still waiting for the PR to be reviewed, but it should be in the next CLI release.

Fixed in 2.14.0


Rewrite kmstool-enclave to a standalone command line tool

Issue #, if available:
Description of changes:
Rewrite kmstool-enclave to a standalone command-line tool, which can be used directly through command line inside the enclave.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@petreeftime I have resolved the issues you raised
And also modified Dockerfile.al2 because the branch name of awslabs/aws-c-io seems to be changed from master to main


[CWS] Add missing OnNewRuleSetLoaded implementation

What does this PR do?
Fix #30030
Motivation
Fixes MacOS builds.
Describe how to test/QA your changes
Possible Drawbacks / Trade-offs
Additional Notes

/merge


Change location

As a punter
I want to change the location
So that I can see what's on tap at different places

[x] Locations can be chosen from a dropdown list
[x] When a new location is chosen, the taplist is updated to display the taps at the chosen location

Completed in commit f816dfd


Danger-Swift as SPM Plugin? [IDEA]

At WWDC22, Apple introduced the concept of plugins for SPM. These plugins allow us to specify scripts that run either at build time or can be invoked manually.
Today, Danger Swift's setup requires "working around the system" to use the docs own words. I wonder whether the plugin system in SPM would remove the need to create a special target to get libDanger compiled. Once implemented as a plugin, it seems all one has to do is import it as a dependency like any other Swift Package, and then simply run something like:
swift package danger pr https://github.com/Moya/Harvey/pull/23
I don't see mass adoption of SPM plugins quite yet -- there may be reason for that. Perhaps at WWDC23 in a few days we'll see some further refinements to plugins.

This could work - it'd be worth figuring out if there are any sandboxing issues which come with running as a plugin ( I hear networking permissions were added pretty recently, so who knows what is not possible ) but it could work and it could be easier for folks to use then - which would be cool
I'd recommend taking a quick stab at it to see if there's any blockers

I believe the main issue is how Danger works.
Danger compiles the Dangerfile linking the needed libraries.
If you have plugins the library is compiled using your Package.swift definition to understand what is the library name to compile and link.
If you are not using plugins, the Danger library is linked.
I believe (and I would be happy to be wrong) using only a plugin would not allow us to have the libraries that needs to be linked to the Dangerfile compilation.

It was my understanding that the SPM plugins are essentially just light runners or wrappers over tools, and so my hope is that we could compile and link as part of the build step for the plugin. I can try and fool around with it some over the upcoming weekend and see if there's any feasibility.


Adding created ts to create test

I see "created" is optional in python SDK but required in JS. Why is this?

where are you looking, specifically?

@stephanwampouille plz do a follow up with the JS-SDK updates needed to match.


chore: version packages

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
<EMAIL_ADDRESS>Patch Changes

#1272 89f5b5c Thanks @love1ace! - docs(*): update description of package.json

Updated dependencies [89f5b5c]:

<EMAIL_ADDRESS>

<EMAIL_ADDRESS>Patch Changes

#1272 89f5b5c Thanks @love1ace! - docs(*): update description of package.json

Updated dependencies [89f5b5c]:

<EMAIL_ADDRESS>

<EMAIL_ADDRESS>Patch Changes

#1272 89f5b5c Thanks @love1ace! - docs(*): update description of package.json

Updated dependencies [89f5b5c]:

<EMAIL_ADDRESS>

<EMAIL_ADDRESS>Patch Changes

#1272 89f5b5c Thanks @love1ace! - docs(*): update description of package.json

Updated dependencies [89f5b5c]:

<EMAIL_ADDRESS>

<EMAIL_ADDRESS>Patch Changes

#1272 89f5b5c Thanks @love1ace! - docs(*): update description of package.json

Updated dependencies [89f5b5c]:

<EMAIL_ADDRESS>

<EMAIL_ADDRESS>Patch Changes

#1272 89f5b5c Thanks @love1ace! - docs(*): update description of package.json

Updated dependencies [89f5b5c]:

<EMAIL_ADDRESS>

<EMAIL_ADDRESS>Patch Changes

#1272 89f5b5c Thanks @love1ace! - docs(*): update description of package.json

Updated dependencies [89f5b5c]:

<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>

<EMAIL_ADDRESS>Patch Changes

#1272 89f5b5c Thanks @love1ace! - docs(*): update description of package.json

Updated dependencies [89f5b5c]:

<EMAIL_ADDRESS><EMAIL_ADDRESS>

<EMAIL_ADDRESS>Patch Changes

#1272 89f5b5c Thanks @love1ace! - docs(*): update description of package.json

Updated dependencies [89f5b5c]:

<EMAIL_ADDRESS><EMAIL_ADDRESS>

<EMAIL_ADDRESS>Patch Changes

Updated dependencies [89f5b5c]:

<EMAIL_ADDRESS><EMAIL_ADDRESS>

<EMAIL_ADDRESS>Patch Changes

Updated dependencies [89f5b5c]:

<EMAIL_ADDRESS>

<EMAIL_ADDRESS>Patch Changes

#1272 89f5b5c Thanks @love1ace! - docs(*): update description of package.json

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 73.04%. Comparing base (89f5b5c) to head (7e68ee4).
Report is 1 commits behind head on main.

Additional details and impacted files

@@           Coverage Diff           @@
##             main    #1273   +/-   ##
=======================================
  Coverage   73.04%   73.04%
=======================================
  Files          83       83
  Lines         831      831
  Branches      182      182
=======================================
  Hits          607      607
  Misses        200      200
  Partials       24       24

Components
Coverage Δ

@suspensive/utils
47.16% <ø> (ø)

@suspensive/react
100.00% <ø> (ø)

@suspensive/react-dom
96.66% <ø> (ø)

@suspensive/react-native
100.00% <ø> (ø)

@suspensive/react-query
72.09% <ø> (ø)

@suspensive/react-query-4
0.00% <ø> (ø)

@suspensive/react-query-5
0.00% <ø> (ø)

@suspensive/react-query-next-experimental
∅ <ø> (∅)

@suspensive/react-query-next-experimental-4
6.15% <ø> (ø)

@suspensive/jotai
0.00% <ø> (ø)

@suspensive/cache
98.01% <ø> (ø)

@suspensive/react-image
80.39% <ø> (ø)


Crypto symbol length bug fixes

Now instead of having max 4 chars per currency code, which was hard-coded, it has const now, that can be changed if need arises.
Also this PR fixes the EnsureCurrencyDataFeed bug, for example SENTETH didn't got ETHUSD subscription & Lean reported missing SENTUSD pair instead.
Description

For fixing fixed length currency code, Currencies.cs, Cash.cs, CashTests.cs, ForexTests.cs were modified.
For EnsureCurrencyDataFeed bug, Cash.cs EnsureCurrencyDataFeed function was main target.
Forex.cs had code style fixes and has received 1 new function. ForexTests.cs have new tests.
Related Issue

#996
Motivation and Context

It solves 2 things:

enables currency codes with more than 4 chars
fixed bug in EnsureCurrencyDataFeed for new cryptocurrencies

Requires Documentation Change

In Currencies.cs, two new consts were added, that should be in documentation:
public const int MaxCharactersPerCurrencyCode = 6;

and
public const int MaxCharactersPerCurrencyPair = 2*MaxCharactersPerCurrencyCode;

In Forex.cs, one new function has been added:
public static string CurrencyPairDual(string currencyPair, string knownSymbol)

How Has This Been Tested?

By running Unit tests and template algorithms in backend mode.
Adding AddCrypto("SENTETH"); into algorithm results in backtest wanting 2 symbols, "SENTETH" and "ETHUSD", instead of "SENTUSD".
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[x] Non-functional change (xml comments/documentation/ect)

Checklist:

[x] My code follows the code style of this project.
[x] I have read the CONTRIBUTING document.
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.
[x] My branch follows the naming convention bug-<issue#>-<description or feature-<issue#>-<description>

@viliwonka
Thanks for expanding the symbol length, I think there is still an problem with  AddCrypto("SENTETH") though:
The Cash.ConversionRate property is updated when receiving data for the internal feed and represents the conversion rate from the cash symbol (SENT) to the account currency (for now always USD);
If SENTUSD or USDSENT pairs are not available, we probably need an indirect conversion, calculating the SENT->USD conversion rate using prices from these two pairs (ETHUSD and SENTETH),
that should be added both as internal feeds by EnsureCurrencyDataFeed (as you did in this PR 👍)
Perhaps Cash.ConversionRateSecurity may need to become a List<Security> ?

@StefanoRaggi
Hi back! Thanks for review.
Yes, I had suspicion there should be conversion done for Cashbook.AccountCurrency-less pairs somewhere.
Any idea where the code for indirect conversion should be located & modified/added?
And yes, I had same idea about Cash.ConversionRateSecurity turning into List type, would make sense in multi-path conversion.

@StefanoRaggi
Hey, sorry for late pinging, but there it is - conversion to list.

Please remove the recent changes for maintaining a list of conversion rate securities. I'd like to merge the crypto symbol length changes and we can work on designing multi-legged conversion rates in a separate PR as a new feature.

@mchandschuh Ok, done!

Travis build has failed, but it's due to some keyserver error, not actual compile errors / unit test failures.

@viliwonka -- I think you may have reverted the wrong change. I was referring to the changes that change the conversion rate security into a list of conversion rate securities. I know this will crypto pairs that aren't immediately convertible into the account currency inoperable, but supporting multi-legged conversion is something we need to think carefully about -- my biggest concern is that there are often multiple paths. I think the multi-legged currency conversion logic should be handled in a separate feature PR. This PR should stay focused on supporting variable length crypto symbols.

@mchandschuh :man_facepalming:  Yeah, I knew exactly what you meant, I mis-understood the "revert commit" part, I thought it would rollback through history. My bad, I created a nice mess here.

@mchandschuh Here, hope all is well. Don't forget to make branch for indirect conversion :).

For the next phase:
Branch: feature-2060-multi-leg-currency-conversion
Issue: #2060 Support indirect/multi-leg currency conversions ( A->{Bridge Currencies}->B


IP reclaim for various scenarios

What would you like to be added?
1 split SPIDERPOOL_GC_TERMINATING_POD_IP_ENABLED to
gc terminating pod on not-ready node
gc terminating timeout pod on ready node
2 for ip conflict detecting of coordinate, when detecting a bad IP, it could trigger the IPAM to release assigned IP, and make it possible to assign a new good IP for next turn
Why is this needed?
No response
How to implement it (if possible)?
No response
Additional context
No response

next version

[root@controller-node-1 ~]# kubectl get po -owide | grep <IP_ADDRESS>
test-pod-6d474d8898-bb5qh     0/1     Terminating   5          131m   <IP_ADDRESS>   worker-node-3   <none>           <none>
test-pod-6f98fb4cd5-qsp9g     1/1     Running       0          126m   <IP_ADDRESS>   worker-node-3   <none>           <none>

fix #3081 and #3002


google/bazel:3.3.0 toolchain image "make: command not found"

The issue persists from https://github.com/GoogleCloudPlatform/cloud-builders/issues/555 which has a small repo that can reproduce this (modulo the gcr.io reference).

An even more minimal repro:
cloudbuild.yaml
steps:
- name: gcr.io/cloud-marketplace-containers/google/bazel:3.3.0
  entrypoint: ls
  args: ["/"]
- name: gcr.io/cloud-marketplace-containers/google/bazel:3.3.0
  entrypoint: make

ERROR: build step 1 "gcr.io/cloud-marketplace-containers/google/bazel:3.3.0" failed: starting step container failed: Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"make\": executable file not found in $PATH": unknown

Hi @bshi,
Thank you for opening this issue and letting us know about the need of make in the Bazel image. This does sound like a reasonable feature request and we will try to get it in with the next release of the Bazel image.

Thanks @alex1545! FWIW I encountered this issue trying to use bazellbuild/rules_foreign_cc.  IMO it would go a long way toward reducing friction in adopting Bazel if the examples in rules_foreign_cc worked out of the box but that's also at tension with Bazel's hermeticity principles and maintaining a minimal (for some hand-wavy definition of minimal) image footprint.  CC @irengrig

The Bazel 3.3.1 image is now out and includes the make tool.
Please give it a try and let us know if you are having any issues.


Parent relations can not be identified

Take a feature like a street and look at the associated relations like bus routes. In the feature's properties, there will be a list of relations, whose names are potentially shortened to something like

Bus Route Bus line number 123 from Bal…

From this point, there seems to be no way to identify the actual relation. There is no visible ID or otherwise. Clickin on the relation will select the relation, but still, no unique identification is possible as the properties panel doesn't show anything, either.
This seems to be particularly problematic for these relations because I noticed that in order to make substantial changes to features which are bound to relations, one often has to delete and later reconstruct these relations. I currently drop back into the OSM map view to identify them and match them by name, but not only is this very tedious but also not entirely safe, since I thereby rely on recognizing them by their names (which, is not unique and made more difficult by the shortening).

Can you give examples of relations with the same name? If they are bus routes they shouldn't have the same name.
You know you can always expand the left panel:

Can you give examples of relations with the same name? If they are bus routes they shouldn't have the same name.
You know you can always expand the left panel:

I did not know that the left panel can be resized. I tried to drag it by the very edge but only now discovered that you have to drag besides the edge, outside of it. My remark about coinciding names was more to illustrate the point of my having difficulties identifying them.
Maybe I am going about this wrong way, but even with the enlarged panel and unique names I am still having difficulties. I need to split a road to turn it into a double carriage way lke this
___                          ___
   \___   = (becomes) =>        \____
___/                         ___/‾‾‾‾

but iD won't let me perform the split until I have deleted a dozen bus route relations on the road segment, so I need to restore them later. Some of the bus routes had very similar names and were also written in a script I'm not fluent in and to which I have no keyboard. That's where comparing relations by name became difficult for me.

I did not know that the left panel can be resized. I tried to drag it by the very edge but only now discovered that you have to drag besides the edge, outside of it. My remark about coinciding names was more to illustrate the point of my having difficulties identifying them.
Maybe I am going about this wrong way, but even with the enlarged panel and unique names I am still having difficulties. I need to split a road to turn it into a double carriage way lke this
___                          ___
   \___   = (becomes) =>        \____
___/                         ___/‾‾‾‾

but iD won't let me perform the split until I have deleted a dozen bus route relations on the road segment, so I need to restore them later. Some of the bus routes had very similar names and were also written in a script I'm not fluent in and to which I have no keyboard. That's where comparing relations by name became difficult for me.

but iD won't let me perform the split until I have deleted a dozen bus route relations on the road segment, so I need to restore them later

Yes, this is unfortunately a disadvantage. It has to be done manually...

but iD won't let me perform the split until I have deleted a dozen bus route relations on the road segment, so I need to restore them later

Yes, this is unfortunately a disadvantage. It has to be done manually...

For consistency, a tooltip should be added to the label that contains the relation name, so that you can see the full name regardless of the sidebar’s width. There’s already a similar tooltip in the dropdown menu of nearby relations when adding a feature to a relation.


Repeated countless times: ERROR: add_signal: Type Sprite3D already has signal: frame_changed

This error is repeated every frame. Is that normal? Or how can it be prevented?
I have not used the "frame_changed" signal anywhere, this must be something internal.
ERROR: add_signal: Type Sprite3D already has signal: frame_changed
At: core/object_type_db.cpp:494.

i think this is fixed in github
On Fri, Jan 16, 2015 at 1:33 PM, ScyDev<EMAIL_ADDRESS>wrote:

This error is repeated every frame. Is that normal? Or how can it be
prevented?
I have not used the "frame_changed" signal anywhere, this must be
something internal.
ERROR: add_signal: Type Sprite3D already has signal: frame_changed
At: core/object_type_db.cpp:494.
—
Reply to this email directly or view it on GitHub
https://github.com/okamstudio/godot/issues/1234.

I think i fixed this issue a while ago on github, I also fixed yield() issues recently, maybe they are related?

Assuming this has been fixed already as per above comments.


selecting next level from the last level of "the Elements" -> crash

I played through all the levels of "the Elements" mode. After finishing level 25, I selected "go to next level" from the drop-down. The game crashed.
I was able to repeat this by re-playing level 25 and trying it again.

Thank you. That option should not be seen on the final level and has now been removed.

Maybe we should do a little bit more celebration when someone completes level 25 ?
Maybe showing the achievement that is earned ?


Jobserver hangs due to full pipe

Problem
When running cargo build on a machine with 128cores/256HT for CI running on debian with linux 5.8, builds regularly hang.
All rustc process and the cargo process each have a thread trying to write "|" to what i think is the  jobserver pipe, but the pipe is full, so the build hangs.
Increasing manually the pipe buffer size in C via /proc/pid/fd/ unblocks everything and the build finishes
Steps
Not sure tbh, besides running big amount of jobs
Possible Solution(s)
Notes
Currently only reproduced on cargo 1.50, but trying to upgrade everything to 1.54 to check
here is one backtrace from cargo
#0  __libc_write (nbytes=1, buf=0x7ffdf74b850f, fd=6) at ../sysdeps/unix/sysv/linux/write.c:26
#1  __libc_write (fd=6, buf=0x7ffdf74b850f, nbytes=1) at ../sysdeps/unix/sysv/linux/write.c:24
#2  0x000055add96cd5a6 in std::sys::unix::fd::FileDesc::write () at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b//library/std/src/sys/unix/fd.rs:146
#3  std::sys::unix::fs::File::write () at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b//library/std/src/sys/unix/fs.rs:845
#4  <&std::fs::File as std::io::Write>::write () at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b//library/std/src/fs.rs:679
#5  0x000055add969f5d7 in jobserver::imp::Client::release ()
#6  0x000055add96a0abd in <jobserver::Acquired as core::ops::drop::Drop>::drop ()
#7  0x000055add90134fe in cargo::core::compiler::job_queue::DrainState::drain_the_queue ()
#8  0x000055add8fcccd3 in std::panic::catch_unwind ()
#9  0x000055add8f3bafe in crossbeam_utils::thread::scope ()
#10 0x000055add9011856 in cargo::core::compiler::job_queue::JobQueue::execute ()
#11 0x000055add8ec3a15 in cargo::core::compiler::context::Context::compile ()
#12 0x000055add914bd01 in cargo::ops::cargo_compile::compile_ws ()
#13 0x000055add914ba5e in cargo::ops::cargo_compile::compile ()
#14 0x000055add8dbd67d in cargo::commands::build::exec ()
#15 0x000055add8d5f9f9 in cargo::cli::main ()
#16 0x000055add8dc7438 in cargo::main ()
#17 0x000055add8db6333 in std::sys_common::backtrace::__rust_begin_short_backtrace ()
#18 0x000055add8db6359 in std::rt::lang_start::{{closure}} ()
#19 0x000055add96df177 in core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once ()
    at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b/library/core/src/ops/function.rs:259
#20 std::panicking::try::do_call () at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b//library/std/src/panicking.rs:379
#21 std::panicking::try () at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b//library/std/src/panicking.rs:343
#22 std::panic::catch_unwind () at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b//library/std/src/panic.rs:396
#23 std::rt::lang_start_internal () at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b//library/std/src/rt.rs:51
#24 0x000055add8dc9c82 in main ()

And here is an example from rustc
(gdb) info thread
  Id   Target Id                                 Frame
* 1    Thread 0x7f64866604c0 (LWP 85722) "rustc" 0x00007f648b639495 in __GI___pthread_timedjoin_ex (threadid=140069719504640, thread_return=0x0, abstime=0x0,
    block=<optimized out>) at pthread_join_common.c:89
  2    Thread 0x7f6485dff700 (LWP 85806) "rustc" syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
  3    Thread 0x7f646517f700 (LWP 90268) "rustc" futex_wait_cancelable (private=0, expected=0, futex_word=0x7f647b40d30c)
    at ../sysdeps/unix/sysv/linux/futex-internal.h:88
  4    Thread 0x7f6464bff700 (LWP 90269) "rustc" __libc_write (nbytes=1, buf=0x7f6464bfc247, fd=6) at ../sysdeps/unix/sysv/linux/write.c:26
(gdb) thread 4
[Switching to thread 4 (Thread 0x7f6464bff700 (LWP 90269))]
#0  __libc_write (nbytes=1, buf=0x7f6464bfc247, fd=6) at ../sysdeps/unix/sysv/linux/write.c:26
26      ../sysdeps/unix/sysv/linux/write.c: No such file or directory.
(gdb) bt
#0  __libc_write (nbytes=1, buf=0x7f6464bfc247, fd=6) at ../sysdeps/unix/sysv/linux/write.c:26
#1  __libc_write (fd=6, buf=0x7f6464bfc247, nbytes=1) at ../sysdeps/unix/sysv/linux/write.c:24
#2  0x00007f648b6e6a26 in std::sys::unix::fd::FileDesc::write () at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b//library/std/src/sys/unix/fd.rs:146
#3  std::sys::unix::fs::File::write () at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b//library/std/src/sys/unix/fs.rs:845
#4  <&std::fs::File as std::io::Write>::write () at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b//library/std/src/fs.rs:679
#5  0x00007f648f0739f9 in <jobserver::Acquired as core::ops::drop::Drop>::drop ()
   from /home/user/.rustup/toolchains/1.50.0-x86_64-unknown-linux-gnu/bin/../lib/librustc_driver-02bb148e88292f22.so
#6  0x00007f648e4aefa9 in std::sys_common::backtrace::__rust_begin_short_backtrace ()
   from /home/user/.rustup/toolchains/1.50.0-x86_64-unknown-linux-gnu/bin/../lib/librustc_driver-02bb148e88292f22.so
#7  0x00007f648e4a9b32 in core::ops::function::FnOnce::call_once{{vtable-shim}} ()
   from /home/user/.rustup/toolchains/1.50.0-x86_64-unknown-linux-gnu/bin/../lib/librustc_driver-02bb148e88292f22.so
#8  0x00007f648b71256a in <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once ()
    at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b/library/alloc/src/boxed.rs:1328
#9  <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once ()
    at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b/library/alloc/src/boxed.rs:1328
#10 std::sys::unix::thread::Thread::new::thread_start () at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b//library/std/src/sys/unix/thread.rs:71
#11 0x00007f648b637fa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
#12 0x00007f648b5574cf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Oh dear, thanks for the report! This is definitely something we need to fix...
Do you know the capacity of the pipe by default on your system? (basically is it less than 256?) If the pipe capacity is greater than 256 I'm not sure how else this could be coming about, but if it's less than 256 then I can imagine this happening because Cargo at least will write tokens back to the pipe and then try to read them off again for later scheduling purposes. This would introduce a deadlock where Cargo, who can read tokens, is also waiting to write tokens.
Poking around it looks like we can use F_SETPIPE_SZ with fcntl on Linux to ensure that the pipe capacity is larger than the number of tokens that we want to write. I suspect that would be the fix for this (probably in the jobserver crate). That being said the first thing creating a jobserver does is to write everything into the pipe, so if that didn't block then this may be indicative of another bug where extra tokens are being added to the pipe by accident.

Actually you are right, i don't  see how pipe can be full with only 256 elements, on linux it is allocated page by page , so minimum would be 4k, doc says it is supposed to be 16 pages, so 64k, but when i write a small c tool to call fctnl on proc file system, it reports 4096. Migh be debian, might the fact it runs on systemd-nspawn container.
I sigstopped everything, and used cat to dump the pipe buffer :
|||||||||||||||||||||||||||||||||||||+||||+||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
here is an example. So it should not be full. Yet, increasing the pipe size with fcntl on proc filesystem allows the build to continue and finish, and i don't see how write can block if the pipe is not full. So my explaination is not totally accurate as it seems.
If you have any idea how to dig it further, i can try.

Oh dear, that sounds bad!
To confirm, you're not trying to use the unstable parallel rustc, right? Also, do you have any build scripts in play which use make or something like that which shares the jobserver with Rust? (AFAIK Rust only writes | but it looks like there's a + on the pipe so there may be something else in play).
Reading over the pipe(7) page again it reinforces that the only way to block in writing is if the pipe is full. Given that the jobserver was actually successfully created (which involves writing everything initially) it seems like the pipe will never be full...
When the system hangs, are you sure that the threads are all blocked? In that they're not like busy-spinning hogging CPU writing things to pipes?
Also, would you be able to share the project that reproduces this (perhaps just privately with me). I've got a 40/80 core system I can test on which I may be able to stress enough to reproduce this perhaps?

Oh no worries on 1.50 vs 1.54, I'm just trying to rule out some more esoteric possibilities to make sure this is as weird as I think it is. AFAIK nothing really substantive around this changed between 1.50 and 1.54 so upgrading will likely not show a difference.
My guess is that the issue here stems from the very-large amount of parallellism with 256 HT cores. You may be one of the first people to run Cargo/rustc on such parallelism!
Although if you have make calling Cargo that does introduce another actor in the system. Do you invoke make with any -j flags? Also, do you know if Cargo is configured to share the jobserver from make?

FYI, + is the token used by make, and | is the token used by the Rust jobserver client.

Hm ok, so it sounds like Cargo is the one making the jobserver and it's not dealing with the parent make at all. My suspicion about + in the pipe being from make though seems to be confirmed by @ehuss, so I don't think that we can rule out make just yet. Cargo lets build scripts inherit the jobserver so any sub-make spawned by a build script also can use it. I suspect that's happening for at least one of your crates since + is in the pipe.
I'm not sure that make would cause an issue like this, but is it possible to remove it from the equation? It seems like there's a lot of variables in play here so just trying to slim down what we're looking at.

Ah yes, sub-make is definitely possible, there are a lot of -sys crates. I'll see if i can play with bpftrace to try to find where + is coming.

I know believe it is not an issue with cargo. So as you said, as long as pipe buffer is larger than core count, it should never deadlock. Except, it seems linux pipe buffer has some perculiarity. Apparently, it is a ring buffer of pages, with two paths :

one for short writes, that tries to append on the last non full memory page
one for large writes, that writes pages by pages or something like that
https://elixir.bootlin.com/linux/latest/source/fs/pipe.c#L442
The short path is only disabled if the pipe has O_DIRECT set, which does not seem to be the case. The problem is, the short path does not seem to "ring" on a single page, the ring buffer has page granularity for looping.
Now, i confirmed that the doc is indeed correct, modern linux default pipe buffer capacity is 16 pages.
Confirmed also on the host and containers that creating a pipe is 16 pages. But for some reason, the pipe of hanged build is only 4096 bytes, so one page. In this case, even if the beginning is free, and the buffer could only contain a single byte, the buffer will not loop, and no new page is allowed to be allocated, so write will block. I think this is what is happening.

But i ran the build on my personal machines, and the pipe buffer is 64k all along the build, also strace everything, and no call to fcntl to change the pipe size happened. Except on this ci systemd containers, it is 4k, and so far i have not being able to find what reduces the pipe buffer, bpftrace shows no call to the kernel pipe_fcntl function that would reduce the size.
The tldr is that something fishy is happening, and it does not seem to be inside cargo or rustc

Ooh the plot thickens!
So I can actually pretty easily reproduce the deadlock you're seeing with this:
use std::io;

const N: usize = 10_000;

fn main() {
    unsafe {
        let mut a = [0; 2];
        if libc::pipe(a.as_mut_ptr()) != 0 {
            panic!("err: {}", io::Error::last_os_error());
        }
        println!("init buffer: {}", libc::fcntl(a[1], libc::F_GETPIPE_SZ));
        println!("new buffer:  {}", libc::fcntl(a[1], libc::F_SETPIPE_SZ, 0));

        for _ in 0..80 {
            assert_eq!(libc::write(a[1], b"a".as_ptr() as *const _, 1), 1);
        }

        let threads = (0..80)
            .map(|_| {
                std::thread::spawn(move || {
                    for _ in 0..N {
                        let mut b = [0u8];
                        assert_eq!(libc::read(a[0], b.as_mut_ptr() as *mut _, 1), 1);
                        assert_eq!(libc::write(a[1], b"a".as_ptr() as *const _, 1), 1);
                    }
                })
            })
            .collect::<Vec<_>>();

        for t in threads {
            t.join().unwrap();
        }
    }
}

If the line with F_SETPIPE_SZ is commented out or if it's set to 8192 instead of 0 (which rounds to 4096) then this completes just fine.
I think that the fix here is probably to document this ring behavior with pages in the jobserver crate and to explicitly increase the pipe buffer if the initial pipe buffer is just one page?

I think that the fix here is probably to document this ring behavior with pages in the jobserver crate and to explicitly increase the pipe buffer if the initial pipe buffer is just one page?

Indeed, i think it would be a good idea for linux systems. If it cannot increase the buffer due to user limit, it will probably fail, but then i guess it is much easier to understand what is going on while getting an error. As for me, i've increased /proc/sys/fs/pipe-user-pages-soft, so that right now all pipes stay at the default of 16 pages, and no build hanged since then.

Oh were you unable to get the pipe capacity to increase using F_SETPIPE_SZ? If that's the case then I think I'd need to make a better error message for the jobserver crate to explain what's going on, or it may means that the jobserver crate just has to fail instead of trying to increase its capacity.
FWIW I posted https://github.com/alexcrichton/jobserver-rs/pull/34 which I thought might fix things, but if F_SETPIPE_SZ would fail for you then it wouldn't do anything other than just fail sooner.

#include <stdio.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <stdlib.h>

int main(int argc, char **argv)
{
  int ret;
  size_t total_pipe_size = 0;
  int pipes = 0;
  int fds[2]; // leak fds who cares;
  while(1) {
    ret = pipe(fds);
    if (ret) {
      printf("cannot create pipe %s", strerror(errno));
      exit(1);
    }
    pipes ++;
    ret = fcntl(fds[0], F_SETPIPE_SZ, 1000000);
    if (ret <= 0) {
      printf("cannot increase pipe buffer for pipe %d after %lu : %s", pipes, total_pipe_size, strerror(errno));
      exit(1);
    }
    total_pipe_size += ret;
  }
  return 0;
}

I didn't fully reproduce the truncation of default value, but when the limit is reached, F_SETPIPE_SZ will return EPERM. So probably a good idea to have a nice error message here

Ah ok, so does that mean you can increase the size of some pipes, just not infinitely? (that makes sense because presumably the kernel is limited in resources).
To confirm, though, you can successfully increase the size of at least one pipe? If so that means my PR should fix the issue for you without having you to reconfigure the system limits.

Yes and Yes. Actually full example of what is going on :
#define _GNU_SOURCE
#include <errno.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
#include <unistd.h>

int main(int argc, char **argv) {
  int ret;

  int fd = open("/proc/sys/fs/pipe-user-pages-soft", O_RDONLY);
  char buf[64];
  ret = read(fd, buf, 64);
  close(fd);
  buf[ret] = '\0';
  int limit = atoi(buf);

  int fds[2]; // leak fds who cares;
  for (int i = 0; i < limit / 16; ++i) {
    ret = pipe(fds);
    if (ret) {
      printf("cannot create pipe %s", strerror(errno));
      exit(1);
    }

    ret = fcntl(fds[0], F_GETPIPE_SZ);
    printf("pipe %d buffer size %d\n", i, ret);
  }
  ret = pipe(fds);
  if (ret) {
    printf("cannot create last pipe %s", strerror(errno));
    exit(1);
  }
  ret = fcntl(fds[0], F_GETPIPE_SZ);
  printf("last pipe buffer %d\n", ret);
  ret = fcntl(fds[0], F_SETPIPE_SZ, 16 * 4096);
  if (ret <= 0) {
    printf("cannot increase last pipe buffer : %s\n",
           strerror(errno));
    exit(1);
  }
  return 0;
}

after some limit you can still create pipes, but buffer is limited to one page, so creating pipe works, but increasing size returns error, but initially it works until this limit is reached. So your PR would basically just make cargo fail, not fix the issue, but i guess at least it can explain what is going on.

Hm ok so to confirm I'm understanding, Linux, after enough pipes are created, reduces new pipes' default capacity from 16 pages to 1 page?
Is that how you were seeing this issue? Enough pipes were created such that new pipes defaulted to 1 page?

Is that how you were seeing this issue? Enough pipes were created such that new pipes defaulted to 1 page?

Yes, this is the issue. So in this case, unless some pipes were destroyed in the tiny time between pipe creation and now, ncreasing pipe buffer will likely fail anyway.

Ok that's good to know, and means I probably won't land that PR on jobserver, or at least not exactly as-is.
Does pipe-user-pages-soft apply to the whole system or per-process? Do you know what was creating so many more pipes than before?

As far as i understand, it applies per user, or might be to all unpriviledged users, i'm not so sure.

Do you know what was creating so many more pipes than before?

Probably related to the fact this machine has unusual load. It is big servers running 25 containers running CI builds concurrently, not only rust. It compiles a lot of ocaml code, and ocaml is a "traditional" compiler in the sense it pipes output a lot, eg to external assembler, for preprocessor, etc. So it is not unexpected that it would create more than 1024 pipes concurrently.

@alexcrichton thanks a lot for your help on this. Regarding your comment on your last commit we also discussed this internally and although I don't think it is per se a bug as it seems to be allowed by pipe semantic it seems to be a weird behavior of Linux pipes. Do you think we should raise that upstream?

Personally I am indeed quite surprised that my Rust program above deadlocks. That sort of feels like a bug in the kernel but I don't have the capacity myself to report upstream (or to know whether it's even reasonable to report upstream).
If y'all are willing though it's probably not a bad idea to report? My guess is that if Cargo is hitting this deadlock then make with high parallelism would also run the risk of triggering the deadlock (although not for sure since Cargo/Make's usage are slightly different)

checking /proc/x/stack, it is hanging at https://github.com/torvalds/linux/blob/master/fs/pipe.c#L560. checking comments, it looks like not only there needs to be space in the pipe, but also slots. at https://github.com/torvalds/linux/blob/master/fs/pipe.c#L1306, a one-page pipe has only one slot. this led me to test nthreads=2, which also hangs. checking blame of the pipe_write comment, it was added in https://github.com/torvalds/linux/commit/a194dfe6e6f6f7205eea850a420f2bc6a1541209. it says:

We just abandon the preallocated slot if we get a copy error.  Future
writes may continue it and a future read will eventually recycle it.

so i guess there is some race, causing the slot to be abandoned. normally this is not an issue, because some reader should always be queued. in this case, there is no reader. this is an incorrect use of pipes, see https://man7.org/linux/man-pages/man7/pipe.7.html:

Applications should not       rely on a particular capacity: an application should be designed       so that a reading process consumes data as soon as it is       available, so that a writing process does not remain blocked.

nonetheless, considering the strong emphasis placed on kernel backwards compatibility, it could be worth reporting on the linux mailing list.

If you need any information from me about how Cargo uses the jobserver and/or pipes please let me know! Otherwise personally I'm afraid of just being berated for incorrectly using pipes so I don't think I'll try to post myself.

I posted on the Linux kernel mailing list: https://lore.kernel.org/lkml/1628086770.5rn8p04n6j.none@localhost/. Of potential note to Rust is my comment at the end: registering a SIGCHLD handler with SA_RESTART likely works around this issue in GNU make. Using a two-page pipe buffer also has a high probability of working around the issue, but has a problem: the one-page buffer size is only selected in the first place because the user has exceeded their pipe buffer quota. I believe in this circumstance, unless the user happens to close some pipes between the pipe creation and resizing, the resize will be denied.

Thanks for that! That also seems like a reasonable solution to me, yeah, and I agree that the "fix" in the jobserver crate to increase the capacity is unlikely to ever work, so the main purpose of that patch was mostly to get a better  error message (or an error message at all).

My fix for this issue has been commited upstream: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=46c4c9d1beb7f5b4cec4dd90e7728720583ee348. Assuming there are no issues, it should be in the final 5.14 release, as well as stable releases back to 4.4.
Since this issue only occurs when the user has a very high number of pipes open simultaneously (at least 1024), and it can be worked around by increasing the value of fs.pipe-user-pages-soft, I don't think any fix is necessary on the Rust side. Since jobserver seems to be applicable for arbitrary uses of tokening, not just starting processes, it would not be appropriate to register a SIGCHLD handler in jobserver; the handler would need to be installed in cargo and all other users of jobserver.
Strictly speaking, to avoid this bug, the buffer size need only be increased to at least two pages (which is what the kernel fix does). However, https://github.com/alexcrichton/jobserver-rs/commit/865b7e375a29afbc8283f14729d4663daa858a1e also works. Note that the code is still technically incorrect for non-Linux platforms, as there is no guaranteed pipe buffer size or behavior. In practice, I think a minimum buffer size of 1000 bytes is likely to function on all Unix-like platforms, barring basically-a-bug behavior like Linux's here.
A fully correct implementation would always have at least one thread either currently or imminently reading on the pipe. However, as I explained in my (very long) email, GNU make exhibits the same behavior in edge cases, so I don't think it's something to be overly concerned about.

Oh wow that's awesome, thanks for the update @Hello71!

I think this is probably sufficiently handled now, so I'm going to close this, but if there are more updates here please feel free to post them!

final note<EMAIL_ADDRESS>points out that even after the patch, you can still write 4097 bytes to a 8192 byte buffer and fail to write 1 more byte, but after the change, pipes should be able to hold at least 4096 bytes in all cases. so theoretically https://github.com/alexcrichton/jobserver-rs/commit/865b7e375a29afbc8283f14729d4663daa858a1e should take the requested size and then add one page (not 4096 bytes on some platforms!), but in practice i doubt people will try to run more than 4096 simultaneous jobs, and it might not work on other platforms (as linus says, posix only requires 512 bytes)

The change to have the jobserver resize the buffer was reverted in #9798 because it was causing some breakage (see https://github.com/rust-lang/rust/issues/88091).
Alex outlined some alternatives here: https://github.com/rust-lang/rust/issues/88091#issuecomment-899864927
I'm not sure if it is worth re-opening this or if there are any realistic options.

I am not sure what would be a proper options. As reported by the other person hitting pipe limit, there are different tradeoff in different situations, i believe linux changes are enough. And from my side of things, i think this issues that is easy to google should already be enough if someone hits the same corner case so i would say you guys can keep things as is.


Data Science with Python : Hough Transform Implementation

Description
Welcome to the 'DSWP' Team, good to see you here.
With this issue, the readers will know on how to work and implement Hough Transform and its techniques.
To get assigned to this issue, add your serial numbers mentioned in the spreadsheet of "Data Science with Python", the approach one would follow and the choice you prefer (Documentation, Audio, Video). You can go with all three or any number of options you're interested to work on.
If you had referred any resources, add them up in "DS Resources". Similarly, if you had used datasets, include them in "DS Datasets".
Domain: Computer Vision
Mentors Assigned : Ishika Kesarwani | Peehu Saxena
Points to Note :
The issues will be assigned on a first come first serve basis, 1 Issue == 1 PR.
"Issue Title" and "PR Title" should be the same. Include issue number along with it.
Changes should be made inside the Datascience_With_Python/ directory & Datascience_With_Python branch.
Follow Contributing Guidelines & Code of Conduct before start Contributing.
This issue is only for 'GWOC' contributors of 'DSWP' domain.
All the best. Enjoy your journey ahead. 😎
Domain
Data Science with Python
Type of Contribution
Audio, Video, Documentation
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of this project.

I would like to contribute to this issue.
Name: Jeffy Johnson
Serial number: 713
Type: Documentation
Approach: What and implement Hough Transform

Issue assigned to @Sera001 for documentation


feat: No double ssh when sockets encrypted

- What I did
Closes #990
- How I did it
See commits
- How to verify it
Tests pass

@gkc pushed a minor change, the C daemon will return null for the ephemeral ssh key in the payload, so I made sure to only assert that the ephemeral key is not null when encryptTraffic = false.

@XavierChanth Shall we merge this to trunk?

@XavierChanth Shall we merge this to trunk?

Yes, I think we can, I've not encountered any further issues.


No variants IDs annotated

Hi,
this is not really a bug but more a hint: I have performed germline and somatic calls analysis with Sarek, running also the annotate.nf script, and the resulting .vcf files don't contain any variant ID annotated - I don't think this should be the case, as I see plenty of them in, for instance, dbsnp_138.b37.vcf.
To Reproduce
Steps to reproduce the behavior:

Command line 'nextflow run scilifelab/sarek/annotate.nf -r dev -profile cfc  --genome 'GRCh37' --annotateTools strelka --tools snpeff'

Expected behavior
I expect the .vcf files to contain variant IDs in the respective column: instead of this, it is filled with dots.
System (please complete the following information):

Hardware: Cloud
Executor: slurm
OS: Linux
Version 18.04

Nextflow :

Version: 19.01.0

Container engine (please complete the following information):

Engine: Singularity
version: 3.0.3

Sarek (please complete the following information):

version: 2.3

Closing due to moving to nf-core/sarek.
If you still have the issue @silviamorins can you please open a new one on the nf-core repo?
All the best,
Maxime


[Question] Is there a way to disable the Create User Account button / function?

How do you handle that nobody discovering your Web Frontend or the App + API URL can create new Users in your environment?  That will break App access. Is there a setting somewhere to disable creating new Users somewhere?

Interesting requirement. I hadn't considered that issue yet. I'm not sure one big "disable" switch is the right answer? It might be simpler to build. Certainly I don't think you want to create the users manually in couchdb.  Maybe some sort of "approval" process? I could create the new user but leave them "disabled" until some flag was changed in the _users database. Eventually I could put a UI on top of that approval process I guess.
I would prefer to use keycloak or some sort of oauth, but that I think is more architecturally complex to do at this point. I have that enabled on other services, but those don't have their own auth. framework too.
Thoughts on what you would want to see in terms of "approval" ?

I'm not sure one big "disable" switch is the right answer? It might be simpler to build.

That´s exactly what I had in mind. But I am only one User of many of your software. I think it depends what the audience is here. For me, it is just one family using it, I will not host it for the rest of the world or family outside of this household. So creating Users will be a one-time thing and probably never touched again. So being able to enable / disable User creation with a Parameter when starting the Containers or at a similar, "hard" to reach place is totally fine for me.
But if others are hosting it for a bigger audience like dozens or hundreds of people, that what you have in mind would make more sense. I have no overview of  for how many people usually host Groceries, so I can only speak for myself.
It just makes me fell uneasy that everyone can just create new Accounts / Data on a system I host. But I may be overthinking things.

Will go with simple approach for right now. I've added a new environment variable to the backend - DISABLE_ACCOUNT_CREATION that when set to true will not allow any new users to be created via the API.
Will be in next release coming out shortly.


Rotate Information

Hello!
Came across your application and its absolutely amazing. I was wondering if it would be a cool feature if it was possible to select a few units at once and have it rotate between those stats on the status bar? Or have the option where you can select a different stat while charging.
Amazing work 👏

I'm glad you find it useful!
This is an interesting idea, and potentially a good compromise for only having one status indicator. What is your expected usage? E.g. watts while charging and temperature while not?
Partially related (only show indicator while charging): https://github.com/dubrowgn/wattz/issues/35

Regarding the switching, currently I use temperature when using my phone, but found that I only need to glance at temperature occasionally due to the slow gradual temperature change. Whereas, it would be nice to have it rotate between watts and temperature to see more information.
Regarding the rotation when charging. Yes it would be nice to see wattage during charging and temperature during normal use.
Kind regards


Not found the function of "load_model" in utils.py

On line 280 of the main.py,This method  "load_model" cannot be found in utils.py.

Thanks for your interest. The bug has been fixed.


Added Basque and Tagalog back

Added Basque back from #1349
Added Tagalog back from #1417

Make sure to put them in the language selector as well.


OnClick event on touch devices

Hi,
setting isDraggable = true prevents OnClick handlers inside GridItem from being fired on touch devices. Tested in GC emulator as well on real device.
I have react-grid-layout ver. 0.8.5.
I have not found any workaround yet.
Jan

A lot of touch issues were fixed in the underlying <Draggable> a few months ago. Please reopen if you are still experiencing this.

The issue still persists on Touch devices.


Users

Hi, I have a site where I only have users that manage their user profiles themselves. But the profiles also have to be approved. Would this be possible for users or is "workflow" only targeted for entries?

At this stage, Workflow is very much targeted at entries, but it could certainly be extended to other elements such as Categories and users. Adding it as a feature.

That's great! Tnx


[MAT-6046] Replace TGT/ST with UMLS API Key in VSAC Requests

Remove TGT/ST related methods. Replace TGT session storage with API Key. Replace TGT/ST related parameters with API Key. Consider a UMLS session invalid when an authenticated request (using the API Key) returns 401 intead of checking for TGT/ST generation.
Pull requests into Bonnie require the following. Submitter and reviewer should :white_check_mark: when done. For items that are not-applicable, note it's not-applicable ("N/A") and :white_check_mark:.
Submitter:

[ ] This pull request describes why these changes were made.
[ ] This PR is into the correct branch.
[ ] JIRA ticket for this PR:
[ ] JIRA ticket links to this PR
[ ] Code diff has been done and been reviewed (it does not contain: additional white space, not applicable code changes, debug statements, etc.)
[ ] If UI changes have been made, google WAVE plug-in has been executed to ensure no 508 issues were introduced.
[ ] Tests are included and test edge cases
[ ] Tests have been run locally and pass (remember to update Gemfile when applicable)
[ ] Test fixtures updated and documented as necessary ( see internal wiki )
[ ] Code coverage has not gone down and all code touched or added is covered.

In rare situations, this may not be possible or applicable to a PR. In those situations:

Note why this could not be done or is not applicable here:
Add TODOs in the code noting that it requires a test
Add a JIRA task to add the test and link it here:

[ ] Automated regression test(s) pass

If JIRA tests were used to supplement or replace automated tests:

[ ] JIRA test links:
[ ] Justification for using JIRA tests:
[ ] JIRA tests have been added to sprint

Reviewer 1:
Name:

[ ] Code is maintainable and reusable, reuses existing code and infrastructure where appropriate, and accomplishes the task’s purpose
[ ] The tests appropriately test the new code, including edge cases

If JIRA tests were used to supplement or replace automated tests:

[ ] JIRA tests have been run and pass
[ ] You agree with the justification for use of JIRA tests or have provided input on why you disagree

Reviewer 2:
Name:

[ ] Code is maintainable and reusable, reuses existing code and infrastructure where appropriate, and accomplishes the task’s purpose
[ ] The tests appropriately test the new code, including edge cases
[ ] You have tried to break the code

If JIRA tests were used to supplement or replace automated tests:

[ ] JIRA tests have been run and pass
[ ] You agree with the justification for use of JIRA tests or have provided input on why you disagree

Bundle audit failure expected and an exception has approved.


Cargo build is to long

I'm just trying to read pptx file using example code on this example but i just get this when i ran cargo run

for a very long time. This is my cargo.toml file

if you want me to show more details that you need, just tell me please. I need help

I tried the example and it worked, it's just slow. This library generates tons of code and all types are statics (i.e. no generic or dynamic types), and rustc is just slow, so all together it's slow slow.
Recently I will try to split the library by features, like spliting docx, xlsx and pptx, and by office versions like office2007, office2010 etc.

I tried the example and it worked, it's just slow. This library generates tons of code and all types are statics (i.e. no generic or dynamic types), and rustc is just slow, so all together it's slow slow.
Recently I will try to split the library by features, like spliting docx, xlsx and pptx, and by office versions like office2007, office2010 etc.

Yes it work but it's very slow on my machine. Splitting library by features seems like a great idea, i'll be wait for that 🔥


After the update to v1.11.1 Can't import anymore pst files to Azure Storage Explorer

Storage Explorer Version:
Build Number:
Platform/OS:
Architecture:
Regression From:
Bug Description

Steps to Reproduce

Expected Experience

Actual Experience

Additional Context

@Inhereadncantdoan , can you elaborate on what issues you are running into? Screenshots, error messages, etc?


[ENH][BUG] Change predict_proba of WEASEL_v2 to the default behavior, as in RocketClassifier

This PR changes predict_proba() of WEASEL_v2 to the default behavior in sktime, same as in RocketClassifier

@MatthewMiddlehurst thank you. Will do an additional PR next week.

No rush @patrickzib. Think this is the first (merged) PR that actually needs something deprecated 🙂
Example from the webpage:
import warnings

class MyClass:
    """Contains x and y.

    Parameters
    ----------
    x : int, default=1
        The x parameter.
    y : int, default="deprecated"
        The y parameter.

        Deprecated and will be removed in v0.7.0.
    """

    # TODO remove 'y' in v0.7.0
    def __init__(self, x=1, y="deprecated"):
        self.x = x
        if y != "deprecated":
            warnings.warn("The 'y' parameter will be removed in v0.7.0.", FutureWarning)


Fixed the black glitch by setting centerContainerView's frame correctly

Using the CGRectGetMidX would get us e.g. 433.5 in such a frame (246.0, 0.0, 375.0, 667.0), which we'd need a rounding, but why not directly set the frame.
This fixes #32

I tried adding this fix, and it had a huge negative impact on performance.  Dragging becomes very choppy.
A better fix is this, which I tried and works perfectly, with no negative impact on performance:
self.centerContainerView.frame.origin.x = newFrame.origin.x

@hyouuu: Thanks!


Add a notebook for launching from the moon

This notebook complements the previous notebook for landing on the moon
very nicely.
What's also nice about it is that it offers a comparison between direct
and indirect methods of optimization. It is a direct approach to an
example in Optimal Control with Aerospace Applications by Longuski et
al. which is solved by indirect means in the book.
I did not edit the README file as it said "do not edit" but it wasn't clear to me exactly what to edit in order to properly regenerate README.md. Some help would be appreciated.

Thank you for this very interesting contribution. This marks the first notebook from an outside party, and much appreciated!!
I've created a utility, nbpages, that generates the indices, etc. So I'll merge your pull request, and follow that by a second commit to update the docs folder and the pages version of the notebooks.


proposal: introduce an e2e test suite

I propose we introduce a programatic e2e integration test suite that allows us to test functionality from the most basic operations like IBC transfers and native sends, to AMM operations.
Examples of this can be found here:

https://github.com/cosmos/gaia/tree/main/tests/e2e
https://github.com/umee-network/umee/tree/main/tests/e2e

If there is consensus on this, I'll be happy to tackle it.

This sounds awesome! Its something @nikever @czarcas7ic and @daniel-farina have been looking into
I think we should be really happy to use something that already exists! Is there some docs for how these end to end tests work? (Like how end-to-end are they? Is it starting a single node testnet, and then posting txs & running queries to it?)

Yeah, so in each implementation I've done, there is a doc.go that outlines what's going on, but I never spent that much time on that file/doc, but we totally could make it very elaborate.
The basic gist of it is:

Setup data and files (in tmp dirs)
Build and/or pull docker images (via dockertest)
Run containers (via dockertest)
Write your tests in Go! You have access to all gRPC, API and RPC endpoints.

Ah sweet, just checked the file! This sounds awesome, it even does IBC tests. I think we should totally use this

@czarcas7ic to investigate further with @alexanderbez.


EPERM error when trying to execute any copy task

I am receiving an EPERM error that reads, "Warning: EPERM, operation not permitted '/var/www/my-website/wp-content/themes/theme-1/library/css/flexslider.css' Use --force to continue." when running the grunt command in my console. My grunt task for reference is below:
dirs: {
    theme: '/var/www/my-website/wp-content/themes/theme-1'
},
copy: {
    main: {
        files: [
            {expand: true, cwd: '<%= dirs.theme %>/library/.css/', src: ['**'], dest: '<%= dirs.theme %>/library/css/'},
            {expand: true, cwd: '<%= dirs.theme %>/library/.js/', src: ['**'], dest: '<%= dirs.theme %>/library/js/'}
        ]
    }
}

Could someone please provide some insight as to why this task is failing? Even if I run grunt --force, it doesn't fail the Grunt build, but files are not successfully copied over. This used to work at one point in time, so I'm not sure why it's failing now. Newer build of 'grunt-contrib-copy' maybe? If someone could help me debug this, I would greatly appreciate it. Seems this is not an isolated issue/occurrence, as a quick Google search reveals that there are others having this issue, but following those StackOverflows, etc. does not yield a fix for me.
Thanks! I'm so grateful for any help!

I had the same issue in Ubunut 14. I added the 'cwd' value to the 'src' and removed the 'cwd' at all.
expand: true, src: ['<%= dirs.theme %>/library/.css/**/*'], dest: '<%= dirs.theme %>/library/css/'
It worked for me.

I'm having the same issue with grunt-contrib-copy v1.0.0, which is the latest at the time of writing this. There doesn't seem to be an underlying OS permissions error, as I can cp the files from src to dest without sudo.
Many of the answers I found implicated minimatch patterns, which I'm not using on the command-line. However, those fixes haven't worked for me.


Movie Set Current time

How i can set pause movie when it plays ?
How I can set current time to the movie, i mean set the frame ?

Have you solved？

I couldn't; this project was abandoned


Settings

Did the settings for this go away?

Eh, adding the setting manually to my config.cson seems to do what I need, I'll go this route.

They "should" still be there...

It may have just been my set up, no worries!


Problems with PowerShell language report

Problems are probably related:

PowerShell listed more then once (4+ times) in language list
Rank is less then total number of people for a few ratings.

Thanks i'm working on adding real time ranking, it will also solve this issue.


Hyprland theme

I generate the file with ai based on catppuccin and replacing it with edo colors

you're probably gonna have to pull before we can merge

you're probably gonna have to pull before we can merge

yeah