Does this fix the docs?

Looks like there was a .tox in there that might have made a syntax error in the theme, not sure...
Merging this might fix #96?

Wow! 1602 files changed is my greatest ever PR!!!!


Quote MiniO port

Fixes #98

Please can you update the changelog and the chart version? Thanks.

Forgot about the changelog and the chart version, have now done so.
Once this PR is closed, will proceed to do the same for the other PR.


Fastnlight: Watch asdecosg.com

Fastnlight requests the watch of the watch_keyword asdecosg\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

asdecosg\.com has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by Makyen in Charcoal HQ


Send Failure

I keep getting this error on my Ubuntu server:
Probably wrong EMAIL or PASSWORD.
Error getting response stream (Write: The authentication or decryption has failed.): SendFailure

Even though I all the dependencies met, and running an identical setup on my Arch desktop or a Windows PC runs just fine.
I have checked and double checked the credentials.json and it's fine.

mozroots --import --ask-remove --machine
certmgr --ssl https://gateway-1.discord.gg

Try these with and without sudo. That error message is refer to some cert errors.

I did that.
Was it OK to use the Mono version from the repos? I did that on my desktop where it worked fine, but the guides say go through the whole process of adding it from their website.

Yes its fine. Was your problem solved @rushsteve1 ?

Yep! I needed to run the mozroots and certmgr commands as root. I should really learn to read error messages as they actually said to do that... but its all good now. Thanks @tg44


[Core][TouchTap] react-tap-event-plugin registering right clicks as taps on windows

react-tap-event-plugin is picking up right clicks on windows as clicks to trigger touchTap events.
I've posted an issue here: https://github.com/zilverline/react-tap-event-plugin/issues/70
This issue is present in our library, but here is a plain vanilla example demonstrating the issue:

var React = require("react");
var ReactDOM = require("react-dom");
injectTapEventPlugin = require("react-tap-event-plugin");
injectTapEventPlugin();

var Main = React.createClass({
  render: function() {
    return (
      <a
        href="#"
        onTouchTap={this.handleTouchTap}
        onClick={this.handleClick}
      >
        Tap Me
      </a>
    );
  },

  handleClick: function(e) {
    e.persist();
    console.log('click', e);
    // alert("click");
  },

  handleTouchTap: function(e) {
    e.persist();
    console.log('touchTap', e);
    // alert("touchTap");
  }
});

ReactDOM.render(<Main />, document.getElementById("container"));

The react-tap-event-plugin is gone on the v1-beta branch. We can close the issue 🎉 .


Blog: Search Issue (Low Priority)

It's weird, doesn't pull up the specific instance, just the blog.

What do you mean exactly by "doesn't pull up the specific instance, just the blog."?
because it shows all the posts it has the word "node"?

It shows the post, yes, but is there any way to show more detail? Like the sentence where the word is used? If not, can we display the results differently than "posts: the-airbnb-of-internet-capacity" maybe in some more human way? For example, "Post: The Airbnb of Internet Capacity."

Done, showing post titles now instead of slugs.


sitemap and SEO

One of the things that we decided to postpone was how to get best indexed. The discussion revolved around search engines and how they work these days. Google does a fair bit of javascript, others less. And since the majority of our pages are only available through search that is async driven, then we need a sitemap to be properly indexed across search engines.
@timrobertson100 mentioned that this was something that could easily be generated from the SOLR index and other indices. Sounds good to me. Either way we need to have a way for google to find the species, datasets publishers, contentful data etc.
Secondly we need to ensure that the things that we care about is indexed is rendered server side (unless we trust that all the search engines that we care about) can properly index async driven pages. The original statement when we had this conversation was that it should be done server side to ensure proper indexing by Baidu and other search engines, that didn't at the time promise any kind of js processing.
Priorities and search engines could have changed a lot since then, so it might be worth revisiting some of those decisions

Thanks for writing this up, and also marking release blocker.  Having seen how poorly google views our pages and explored site usage more I think this does need some attention soon.
If we use site maps my understanding is that we need to include every page that should be indexed. - i.e. Google doesn't follow further linked pages.  This means that any batch job becomes stale quickly and we would need to schedule the build.  Aiming for a dynamic site map seems like a better option I think.
Site maps can be nested, so we could have one for the site with static routes, and then include one for each subtype (dataset, species, publisher, contentful etc).  They could be generated on the fly using the paging APIs with page sizes of e.g. 1000.
Would that be doable do you think?  I'd suggest trying the contentful and dataset ones as a start and submitting them using the G. webmaster tools.
The more I read on JS and SEO the more I tend towards our needing some form of server side rendering.  What do you think?

I Think that I shouldn't mention you in comments when you are on vacation :)

I've added a sitemap. Or multiple really. Seemingly it isn't allowed to nest sitemap indices, but it is allowed to refer to several in the robots.txt file.
So we now have
...
Sitemap: https://demo.gbif-dev.org/sitemap.xml
Sitemap: https://demo.gbif-dev.org/sitemap-species.xml
Sitemap: https://demo.gbif-dev.org/sitemap-dataset.xml
Sitemap: https://demo.gbif-dev.org/sitemap-publisher.xml
Sitemap: https://demo.gbif-dev.org/sitemap-node.xml
Sitemap: https://demo.gbif-dev.org/sitemap-network.xml
Sitemap: https://demo.gbif-dev.org/sitemap-installation.xml

They are then a list of other sitemaps with urls. E.g. dataset.xml:
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <sitemap>
    <loc>https://demo.gbif-dev.org/sitemap/dataset/0/10000.xml</loc>
  </sitemap>
  <sitemap>
    <loc>https://demo.gbif-dev.org/sitemap/dataset/10000/10000.xml</loc>
  </sitemap>
  ...
</sitemapindex>

I'll check how well - if at all - it works when I get back. There are probably also some pages, that I have forgotten.
Next is then to make sure there is anything to read on the pages.
We also need some more meta tags for Facebook and the like.

new endpoint

http://api.gbif-dev.org/v1/sitemap/species
http://api.gbif-dev.org/v1/sitemap/species/1.txt
http://api.gbif-dev.org/v1/sitemap/species/159.txt

Sitemaps have been explicitly added to google and is also in the robots file.
I have not added installations because i'm curious when they will crawl that based on the robots.txt file alone.

SEO versions
Datasets are now properly indexed by Google. It might take a while before all the results are updated.

same for cms content

countries still render partly as angular template

outstanding issues

[ ] angular templates in response.
[ ] missing description on search pages (or don't index them)

would be nice to extend some of them - though some pages (like installations) probably aren't something that needs much search optimisations and either way we have little to say.

It isn't clear to me how to approach this at this point. The numbers in Webmaster tools are conflicting: one place it will say it has indexed 11 pages another place 601 pages. Either way it is very little. They also state that they have registered ≈25mil pages, but hasn't indexed them.
the pages that they do index seemingly looks fine. This is based on a few tests where I have asked G to index a specific page. Afterwards it shows up nicely in search results.
Perhaps they just don't care to index us at this point for some unclear reason. Perhaps as more visitors come? Either way it is something that we should keep an eye on. How to best do this is still unclear and annoyingly obscure. But at least, the sitemap is detected, registered and those pages that are indexed show up okay. I'm moving this to impact high as it cannot block a release, but requires continous attention.


chore(main): release fork-diff 0.6.0

:robot: I have created a release beep boop
0.6.0 (2024-06-06)
Features

fork-diff: update fork.yaml (#17501) (8904c9b)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/taikoxyz/taiko-mono/releases/tag/fork-diff-v0.6.0 :sunflower:


Global dark mode toggle (should be based on user's system settings initially) prefers-color-scheme

@AwsmNinad25 do you want to work on this ?

@omkar845 shall I assign this to you

yes assign me

Thank you for showing interest, looking forward to merging you contributions🎉

@Omkar845 are you working on this issue ?

I made a dark mode toggle button but unable to code in JavaScript need to add some js framework

Plz help me

Please open the pull request with the code you have added so far , so that I can review and help you out

you can add more commits even after you have opened the PR, those commits will be reflected in that PR as long as the commits are in the same branch, feel free to reach out for any help, open the PR

@Omkar845 please make a PR with whatever you have done, so that I can help you


Edit Plotterbjork article

AAHHH if a codeblock is followed by a list item then there's not whitespace between them!

AAHHH if a codeblock is followed by a list item then there's not whitespace between them!


Prevent NullAwareTypeConverter dart value from being null

It is currently possible to pass null types to NullAwareTypeConverter
class MyTypeConverter extends NullAwareTypeConverter<String, String?> {
  String requireMapToDart(String? value);
  String? requireMapToSql(String value);
}

Because NullAwareTypeConverter handles nulls, a null will never get to requireMapToDart and the user may incorrectly try to handle that themselves.
This PR makes the dart value in NullAwareTypeConverter extend Object preventing it from being nullable and enforcing that behaviour.

This is technically a breaking change but the practical impact is probably very minimal. I'm fine with it, thanks for your contribution :+1:

I wasn't sure if it was merged into master yet. But thought it was a good change anyway


chore!: refactored the getTransactionCost method

Closes: #2362

Release notes
In this release, we:

Refactored functionality of Provider.getTransactionCost to Account.getTransactionCost.
Deprecated the Provider.getResourcesForTransaction method.

Summary

Refactored functionality for Provider.getTransactionCost to Account.getTransactionCost:

Separate concerns of estimating and fake funding a transaction.
Reducing unnecessary parameters, leading to a cleaner API.

Deprecated the Provider.getResourcesForTransaction method:

Lack of use-cases and deemed not required.

Breaking Changes

Refactored functionality for Provider.getTransactionCost to Account.getTransactionCost.

// Before
const provider = Provider.create(...);
const account = Wallet.generate({ ... }) || new Predicate(...);

provider.getTransactionCost(txRequest, {
  resourceOwner: account,
})

// After
const account = Wallet.generate({ ... }) || new Predicate(...);

account.getTransactionCost(txRequest);

Deprecation of the Provider.getResourcesForTransaction method.

Checklist

[ ] I added — tests to prove my changes
[x] I updated — all the necessary docs
[x] I reviewed — the entire PR myself, using the GitHub UI
[x] I described — all breaking changes and the Migration Guide

@ petertonysmith94 We still have some tests failing here.
Please let me know if you are having a hard time addressing them.


Cronjob hourly error (/etc/cron.daily/01-awp_daily)

I am receiving the following errors in the mail after the upgrade, anyone else who had this problem or solved this? The upgrade self was a success after some struggling. After the upgrade the Almalinux was stuck and really slow, there was something wrong with httpd which fixed itself after some minutes, really strange though.
/etc/cron.daily/01-awp_daily:

/etc/cron.daily/01-awp_daily: line 2: /var/awp/etc/config: No such file or directory
/etc/cron.daily/aum_nightly.sh:

/etc/cron.daily/aum_nightly.sh: line 2: /var/awp/etc/config: No such file or directory

I wonder if this is a problem and how this could be solved, it sending me a mail every hour.

Did you have the Atomic mod_security ruleset enabled before you upgraded?
Even if you didn't have it enabled currently, might you have done so previously?
I suggest this purely because awp and aum are potentially related to ruleset management for the Atomic ruleset, but I'm unfamiliar with the way Plesk implements updates which is different to the "native" way, so maybe I'm totally wrong..
I don't understand why you are getting the emails hourly though, as these should run daily not hourly.

The issue seems to be related to the atomic ruleset. If you're not using it, it should be safe to delete the cron job.
It's unusual that you don't have atomic installer configurations after the conversion. There might be a missing aum package for some reason. Could you please provide a feedback archive?


Enable next step for perf testing

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: utka
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

prow/OWNERS [utka]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@utka: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-e2e-envoyv2-v1alpha3.sh
47cfccc07d643bcdc14e48c0d4261d53ab61f6fc
link
/test istio-pilot-e2e-envoyv2-v1alpha3

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@utka: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-e2e-envoyv2-v1alpha3.sh
47cfccc07d643bcdc14e48c0d4261d53ab61f6fc
link
/test istio-pilot-e2e-envoyv2-v1alpha3

prow/istio-pilot-multicluster-e2e.sh
47cfccc07d643bcdc14e48c0d4261d53ab61f6fc
link
/test istio-pilot-multicluster-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@utka: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-e2e-envoyv2-v1alpha3.sh
47cfccc07d643bcdc14e48c0d4261d53ab61f6fc
link
/test istio-pilot-e2e-envoyv2-v1alpha3

prow/istio-pilot-multicluster-e2e.sh
47cfccc07d643bcdc14e48c0d4261d53ab61f6fc
link
/test istio-pilot-multicluster-e2e

prow/istio-integ-k8s-tests.sh
47cfccc07d643bcdc14e48c0d4261d53ab61f6fc
link
/test istio-integ-k8s-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@utka: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-e2e-envoyv2-v1alpha3.sh
47cfccc07d643bcdc14e48c0d4261d53ab61f6fc
link
/test istio-pilot-e2e-envoyv2-v1alpha3

prow/istio-integ-k8s-tests.sh
47cfccc07d643bcdc14e48c0d4261d53ab61f6fc
link
/test istio-integ-k8s-tests

prow/istio-pilot-multicluster-e2e.sh
4a81899d7bb1a686d21435b1379319fced695f13
link
/test istio-pilot-multicluster-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/lgtm

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: icygalz, utka
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

prow/OWNERS [icygalz,utka]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@utka: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-multicluster-e2e.sh
4a81899d7bb1a686d21435b1379319fced695f13
link
/test istio-pilot-multicluster-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@utka: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-multicluster-e2e.sh
4a81899d7bb1a686d21435b1379319fced695f13
link
/test istio-pilot-multicluster-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@utka: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-multicluster-e2e.sh
4a81899d7bb1a686d21435b1379319fced695f13
link
/test istio-pilot-multicluster-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


ngPreventDrag may be broken

I'm not really sure about it, but at least for me (Chrome 41) the ngPreventDrag throws an error.
The culprit is in line 425. event.originalEvent is accessed but for me e already is the original event. Simply removing the line and changed all e to event fixes the issue for me but I'm not sure if this just a Chrome thing...

thanks, fixed in latest.


Use attach type to attach

Currently attaching has to be done by program type instead of attach type

bug was in caller's code


Adding milestone error

Hi, when adding a new milestone, multiple table heades appears...
Is it correct? I'm using Redmine 2.3.0

Thanks!

Does this still happens ? I am not able to reproduce this one.


[$1000] On copy pasting multiline text in workspace invite member message, app does not focus at the end of text

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

Action Performed:

Open the app
Open settings
Open workspaces
Open any workspace
Open manage members
Click on invite
Select any member and click on next
Copy any multiline text and paste in message box and observe that focus after paste is not at the end of message

Expected Result:
App should focus at the end of message after pasting the text as it does for all the textboxes throughout the app
Actual Result:
App does not focus at the end of text after pasting the text.
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

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

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

Version Number: <IP_ADDRESS>
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/43996225/3f7528e2-c817-49af-bc38-71dc3ceb6b14
https://github.com/Expensify/App/assets/43996225/7e447b7a-e328-4d8f-8f69-9a418e6e9b92
Expensify/Expensify Issue URL:
Issue reported by: @dhanashree-sawant
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1683790152505519
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~0184557de63675181f
Upwork Job ID:<PHONE_NUMBER>719176704
Last Price Increase: 2023-05-24

Proposal
Please re-state the problem that we are trying to solve in this issue.
Text input has not focus the end after pasted
What is the root cause of that problem?
We haven't handled paste event on text input
We shouldn't use onChangeText prop in TextInput component because it can't detect paste event
Instead of use onChangeText, I suggest we use onChange
What changes do you think we should make in order to solve the problem?
We can detect paste event by use e.nativeEvent.inputType === 'insertFromPaste' and If user have pasted, we will scroll to bottom of text input
ref={(el) => (this.welcomeMessageInput.current = el)}
onChange={(e) => {
   const text = e.target.value;
   this.setState({welcomeNote: text}, () => {
      const isPasted = e.nativeEvent.inputType === 'insertFromPaste';
      if (isPasted) {
         setTimeout(() => {
            const scrollHeight = this.welcomeMessageInput.current.scrollHeight;
            this.welcomeMessageInput.current.scrollTop = scrollHeight;
         }, 10);
      }
   });
}}

https://github.com/Expensify/App/assets/129079323/af0075b8-f0d3-4589-a88b-63fd0f8407b9
What alternative solutions did you explore? (Optional)
None

@dhairyasenjaliya @kavimuru are you still able to reproduce this?
It's behaving as expected for me:
https://github.com/Expensify/App/assets/38236554/b7540e12-dc54-45e7-b39e-9f0e1dd323c3

Hi @bfitzexpensify, can you try with more bigger message? the issue is the scroll position is not at the end after pasting the text as  you can see in the start of your video. Sorry for the confusion.

Ah, I misunderstood! Yes, I can see what you mean.

Proposal
Please re-state the problem that we are trying to solve in this issue.
App does not focus at the end of text after pasting the text in workspace invite message.
What is the root cause of that problem?
This issue comes from this line https://github.com/Expensify/App/blob/811c0f36fba4953af008e6643349d95c949627e4/src/styles/StyleUtils.js#L325.
When using autoGrowHeight in https://github.com/Expensify/App/blob/811c0f36fba4953af008e6643349d95c949627e4/src/pages/workspace/WorkspaceInviteMessagePage.js#L183 we're setting the height of the input to maxHeight if the text input height is less than maxHeight to avoid the issue of the input shaking when breaking to a new line, the context for that is here and here.
The problem with that is, maxHeight is not actually the maxHeight of the TextArea but the maxHeight of the whole TextInput container, which includes 3 parts:

23 was allocated to the TextInputLabel (Message) as in here
20 x 4 was allocated to the 4-line message (lineHeight is 20)
2 was allocated for the bottom border (here)

So the actual height allocated to the textarea is only 90 (10 extra is for a nice padding between the last line to the bottom). In order to validate this, we can just add more than 5 lines to the text input, then check the textarea height in the browser.
With that said, in the case above we're putting the height of textarea as 115 (the maxHeight in here). So initially it's 115, then when we paste the multiline message, it becomes 90 (because it now satisfies this condition). This causes the cursor to be hidden (because when the cursor appears the height is still 115 so the cursor assumes the textarea goes that far, while in fact it reduces to 90).
What changes do you think we should make in order to solve the problem?

To fix this we can simply set the height of the textarea here to its correct maxHeight. (which is container's maxHeight minus the TextInputLabel and the bottom border height as explained above). This will give us only 90 which is consistent with the height of the textarea after pasting the multiline message. I've tested and it will not introduce the issue it intends to fix.
What alternative solutions did you explore? (Optional)
NA

@dangrous @bfitzexpensify Do we want the textinput in WorkspaceInviteMessagePage.js to autogrow? I believe autogrow was added when the "Invite Message Text Input" was present in "Invite New Members Page". So, we could have more space to show the participants list. I don't think autgrowing "Invite Message Text Input" carries value any longer.

I don't think we necessarily need it, but I feel like we might as well have it, right? Provides a slightly nicer experience, if I'm understanding it correctly.

@sobitneupane @dangrous The autogrow was added to fix a bug, please see the PR where it was added, for context https://github.com/Expensify/App/pull/17878

Found a discussion on inconsistency between multiline text inputs: https://expensify.slack.com/archives/C049HHMV9SM/p1684480867153739

Found a discussion on inconsistency between multiline text inputs: expensify.slack.com/archives/C049HHMV9SM/p1684480867153739

Ah, nice! So yeah, looks like autogrow is the way to go.

@tienifr Looks like with your proposal, the issue will be mostly solved. But still, user will have to scroll 1/2 pixels more to reach to the end.
If the workspace has large name it doesn't autoscrolls to the end. Can we cover the issue here?

@tienifr Bump on this.

If the workspace has large name it doesn't autoscrolls to the end. Can we cover the issue here if it has the similar root cause?

@sobitneupane I believe this is not similar and will require a different fix, it happens for the main message Composer as well

It will not default scroll to bottom if we reload the page, so I wonder it we want to fix it separately?
Also I'm not sure if that's an issue since if we open the invitation page first time, it's reasonable to expect that it will not scroll so that we can read what is the invitation message. If it scrolls then the first line might be hidden.

But still, user will have to scroll 1/2 pixels more to reach to the end.

@sobitneupane This is default behavior of textarea. Please try pasting a very long text here https://www.w3schools.com/html/tryit.asp?filename=tryhtml_elem_textarea, we'll see the behavior is also the same.
Also Slack behavior is also same if a very long text is pasted into the composer, it won't scroll to the very end.
I think it's intended browser behavior so that the scrollbar will show a bit, indicating that the textarea is scrollable.

Thanks for the update @tienifr
Proposal from @tienifr looks good to me.
🎀👀🎀 C+ reviewed
cc: @dangrous

sweet! assigning you, @tienifr !

The PR is ready for review https://github.com/Expensify/App/pull/19582.

Hey @michaelhaxhiu - I'm heading OOO this week. This one will need hiring/payment in a couple of days so assigning a BZ buddy. Appreciate the help!

No regressions as far as I can see. @sobitneupane can you start on the checklist please 🙏

Invited all involved people to the job in Upwork.

Thanks @michaelhaxhiu, I have accepted the offer.

BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:

[x]  [@sobitneupane] The PR that introduced the bug has been identified. Link to the PR:

https://github.com/Expensify/App/pull/17878

[x]  [@sobitneupane] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment:

https://github.com/Expensify/App/pull/17878#discussion_r1223837036

[ ]  [@sobitneupane] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion:

Regression Test Proposal

Login with any account
Go to Settings >> Workspaces
Select any workspace or Create one
Go to Members >> Invite
Select any contact
Click Next
Paste a long multi-line message into the text area
Verify that the text area auto grows
Verify that the text area auto scrolls to the last line.

Do we agree 👍 or 👎

Two minor edits - we should clarify that the text area is the "Message", and we should call out that it might be a single pixel away from the very end, which is expected

I think we're good to close out with the edits I proposed to the regression test.
@michaelhaxhiu anything you need on your end?

Just need to pay @tienifr at this point. @tienifr drop me a note here when you accept the job!


views: fix local variable 'pid' referenced before assignment

pid variable does not exist as SQLAlchemyError can happen only during pid variable assignment so it shouldn't be used when handling this exception.

INSPIR-3282

This fixes error we found when db connection fails
OperationalError: FATAL:  remaining connection slots are reserved for non-replication superuser connections

  File "sqlalchemy/engine/base.py", line 2276, in _wrap_pool_connect
    return fn()
  File "sqlalchemy/pool/base.py", line 363, in connect
    return _ConnectionFairy._checkout(self)
  File "sqlalchemy/pool/base.py", line 773, in _checkout
    fairy = _ConnectionRecord.checkout(pool)
  File "sqlalchemy/pool/base.py", line 497, in checkout
    rec._checkin_failed(err)
  File "sqlalchemy/util/langhelpers.py", line 68, in __exit__
    compat.reraise(exc_type, exc_value, exc_tb)
  File "sqlalchemy/util/compat.py", line 153, in reraise
    raise value
  File "sqlalchemy/pool/base.py", line 494, in checkout
    dbapi_connection = rec.get_connection()
  File "sqlalchemy/pool/base.py", line 606, in get_connection
    self.__connect()
  File "sqlalchemy/pool/base.py", line 652, in __connect
    connection = pool._invoke_creator(self)
  File "sqlalchemy/engine/strategies.py", line 114, in connect
    return dialect.connect(*cargs, **cparams)
  File "sqlalchemy/engine/default.py", line 489, in connect
    return self.dbapi.connect(*cargs, **cparams)
  File "__init__.py", line 126, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)

OperationalError: (psycopg2.OperationalError) FATAL:  remaining connection slots are reserved for non-replication superuser connections

(Background on this error at: http://sqlalche.me/e/e3q8)
  File "invenio_records_rest/views.py", line 383, in inner
    pid, record = request.view_args['pid_value'].data
  File "werkzeug/utils.py", line 90, in __get__
    value = self.func(obj)
  File "invenio_records_rest/utils.py", line 154, in data
    return self.resolver.resolve(self.value)
  File "inspirehep/pidstore/resolvers.py", line 26, in resolve
    pid = PersistentIdentifier.get(self.pid_type, pid_value)
  File "invenio_pidstore/models.py", line 194, in get
    return cls.query.filter_by(**args).one()
  File "sqlalchemy/orm/query.py", line 3347, in one
    ret = self.one_or_none()
  File "sqlalchemy/orm/query.py", line 3316, in one_or_none
    ret = list(self)
  File "sqlalchemy/orm/query.py", line 3389, in __iter__
    return self._execute_and_instances(context)
  File "sqlalchemy/orm/query.py", line 3411, in _execute_and_instances
    querycontext, self._connection_from_session, close_with_result=True
  File "sqlalchemy/orm/query.py", line 3426, in _get_bind_args
    mapper=self._bind_mapper(), clause=querycontext.statement, **kw
  File "sqlalchemy/orm/query.py", line 3404, in _connection_from_session
    conn = self.session.connection(**kw)
  File "sqlalchemy/orm/session.py", line 1133, in connection
    execution_options=execution_options,
  File "sqlalchemy/orm/session.py", line 1139, in _connection_for_bind
    engine, execution_options
  File "sqlalchemy/orm/session.py", line 432, in _connection_for_bind
    conn = bind._contextual_connect()
  File "sqlalchemy/engine/base.py", line 2242, in _contextual_connect
    self._wrap_pool_connect(self.pool.connect, None),
  File "sqlalchemy/engine/base.py", line 2280, in _wrap_pool_connect
    e, dialect, self
  File "sqlalchemy/engine/base.py", line 1547, in _handle_dbapi_exception_noconnection
    util.raise_from_cause(sqlalchemy_exception, exc_info)
  File "sqlalchemy/util/compat.py", line 398, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb, cause=cause)
  File "sqlalchemy/util/compat.py", line 152, in reraise
    raise value.with_traceback(tb)
  File "sqlalchemy/engine/base.py", line 2276, in _wrap_pool_connect
    return fn()
  File "sqlalchemy/pool/base.py", line 363, in connect
    return _ConnectionFairy._checkout(self)
  File "sqlalchemy/pool/base.py", line 773, in _checkout
    fairy = _ConnectionRecord.checkout(pool)
  File "sqlalchemy/pool/base.py", line 497, in checkout
    rec._checkin_failed(err)
  File "sqlalchemy/util/langhelpers.py", line 68, in __exit__
    compat.reraise(exc_type, exc_value, exc_tb)
  File "sqlalchemy/util/compat.py", line 153, in reraise
    raise value
  File "sqlalchemy/pool/base.py", line 494, in checkout
    dbapi_connection = rec.get_connection()
  File "sqlalchemy/pool/base.py", line 606, in get_connection
    self.__connect()
  File "sqlalchemy/pool/base.py", line 652, in __connect
    connection = pool._invoke_creator(self)
  File "sqlalchemy/engine/strategies.py", line 114, in connect
    return dialect.connect(*cargs, **cparams)
  File "sqlalchemy/engine/default.py", line 489, in connect
    return self.dbapi.connect(*cargs, **cparams)
  File "__init__.py", line 126, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)

UnboundLocalError: local variable 'pid' referenced before assignment
  File "flask/app.py", line 2446, in wsgi_app
    response = self.full_dispatch_request()
  File "flask/app.py", line 1951, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "flask_cors/extension.py", line 161, in wrapped_function
    return cors_after_request(app.make_response(f(*args, **kwargs)))
  File "flask/app.py", line 1820, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "flask/_compat.py", line 39, in reraise
    raise value
  File "flask/app.py", line 1949, in full_dispatch_request
    rv = self.dispatch_request()
  File "flask/app.py", line 1935, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "flask/views.py", line 89, in view
    return self.dispatch_request(*args, **kwargs)
  File "invenio_rest/views.py", line 240, in dispatch_request
    *args, **kwargs
  File "flask/views.py", line 163, in dispatch_request
    return meth(*args, **kwargs)
  File "invenio_records_rest/views.py", line 386, in inner
    raise PIDResolveRESTError(pid)

cc @inveniosoftware/architects

There's apparently https://github.com/inveniosoftware/invenio-records-rest/pull/253, which seems to be fixing this issue (the problem is that the pid variable is not assigned in case of an exception, so it's replaced with pid_value which definitely exists and still allows having a meaningful error payload).
@egabancho did this as a backport to the maint-1.4 branch, so maybe he has more context on why it's not in master (it should go in though).
I think the true issue, also related to the stacktrace you posted, is that regular DB errors (like e.g. in this case reaching the maximum DB connections) are captured by the except SQLAlchemyError: clause and are re-raised and hidden as a PIDResolveRESTError error, which of course is horrible behaviour...
Besides integrating the fix that was mentioned in the above PR, I think the way to proceed is to figure out the errors that we care about and that are actually meant to be caught in this try/except, and only catch these specifically (probably there's a PersistentIdetnifiery.query.filter(...).one() at some point, which fails and gives back a NoResultFound exception). Good candidates for these exceptions in this case would be in invenio_pidstore.errors.
Also IMO for errors that can't actually be handled by the application (e.g. max DB connections reached), letting an exception bubble up and result to a "natural" 500 response is the correct behaviour (and also preserves the original exception with its required stacktrace).

I allowed myself to dive with PDB to this code and I am affraid that pid_value you are passing in there is exatly the same pid_value from request.view_args:
> /home/pazembrz/.cache/pypoetry/virtualenvs/inspirehep-rAUWmTjo-py3.6/lib/python3.6/site-packages/invenio_records_rest/views.py(385)inner()
-> pid, record = request.view_args['pid_value'].data
(Pdb) print(pid_value)
<invenio_records_rest.utils.LazyPIDValue object at 0x7f10d27939b0>
(Pdb) print(request.view_args['pid_value'])
<invenio_records_rest.utils.LazyPIDValue object at 0x7f10d27939b0>

So it won't display any useful error when you will put pid_value there, instead it will just create a string representation of LazyPidValue object. I believe that solution here would be actually to remove try/except and let DB errors raise.


UAV

There should be an UAV.
Option A: Small UAV in a backpack of an UAV Operator.
Option B: Big UAV in the Air, in standby.(without missiles)

Tested "big UAV version" doesn`t worked well
Option A is better .

Same as air surveillance by MELB.

Naaah.


x/pkgsite: package removal request for old domains

The following domains currently redirect to some of the new source code and any broken links are deprecated unused projects. I wish to remove these redirects (from my server) and the documentation from the package site.
All packages under the following domains should be removed:

tea.melonie54.xyz
codehub.onpointcoding.net
code.mrmelon54.xyz
snow.mrmelon54.xyz

I believe there is 35 packages available under those domains as of 2024 / 04 / 09 - (source)

When we're requested to remove packages hosted by GitHub, it's easy to tell that the requestor and the repository owner are the same person. Can you provide us evidence that you are the owner of these domains? Unfortunately the fact that your GitHub ID is a segment of some of the domain names is not sufficient, as the two are independent.
One possibility would for you to alter the contents of each of these domains (e.g. add a file or redirect endpoint) to mention this issue. That would prove that someone with write access to the domain has consented to its removal from our index.

Yep I was prepared for this, these URLs all redirect to this issue as proof of ownership:

https://tea.melonie54.xyz/change
https://codehub.onpointcoding.net/change
https://code.mrmelon54.xyz/change
https://snow.mrmelon54.xyz/change

Please note my new git server is hosted at "code.mrmelon54.com" and all packages listed there should remain in the package database.

Great! (I checked the source of the Markdown to make sure the markup wasn't deceiving me. Why is security so hard?)
Deletion pending.  Please allow a few days.


Python 3.7 support

I removed it for now, because it doesn't have functools.cached_property.

Python 3.7 is already end of life.


[zh-cn] sync extend-kubernetes node-pressure-eviction pod-security-admission

content/zh-cn/docs/concepts/extend-kubernetes/_index.md
content/zh-cn/docs/concepts/scheduling-eviction/node-pressure-eviction.md
content/zh-cn/docs/concepts/security/pod-security-admission.md
content/zh-cn/docs/concepts/containers/images.md

Included a file conflicted with #43722 😅
content/zh-cn/docs/concepts/containers/images.md

/lgtm


BUGFIX: Make sure persistence check is correct

We updated to the latest 4.x QueueIndexerand still notice fake-nodes being created.
I'm not that much into the details of doctrine, but the docs from PersistenceManager.php suggest to check for false if the nodeData is in the repository - instead of true.
@daniellienert Could you have a look at this please and create a new (4.x) release if you think this makes sense.

hey @gjwnc,
thanks. We also still have the problem. Does this fix it for you?
Looks strange why that object, is not "new" but 🤷🏻♂

I don't have it running yet on the project. The reason this should work, is because setProperty() persists the node. That's the reason for the previous fix anyway. As the node is persisted, the state of the nodeData model is changed and thus it is not new anymore.
From the docs from doctrine and the docs of the linked method above in the PR description, it seems, that if isNewObject() returns true, this means, the nodeData was never sent to the database. But the idea here is, that if it is already persisted in the DB because of setProperty(), isNewObject() returns false - it's not new anymore.

@daniellienert I had a closer look again at this and I think I know what is going on. Further this PR works in my test cases.
Details: The case, that fake-nodes are persisted, seem to only occur if the node is in the user workspace, not in live workspace.
For a NodeData model, among others, the methods setNodeType, setProperty and setRemoved call addOrUpdate(). The entitymanager register's the NodeData as a unitOfWork and will insert/persist it.
This is the case for every NodeData. So the question is, in the end why don't get all NodeData objects persisted by FakeNodeFactory?
Funny, the reason is addOrUpdate() again. The setRemoved() call, set's the removed flag and  addOrUpdate() actually removes the node again (from the list unitOfWork), if some conditions are met - see NodeData.php.
In case of a live node, these conditions are met and setRemoved() is the actual reason why the NodeData object is not persisted. This is because, $workspace->getBaseWorkspace() is null (because of live workspace) - see the previous link.
In case of a user-workspace the condition is not fullfilled and the node will be persisted.
If you look a few lines below here, you find the same check if ($this->persistenceManager->isNewObject($nodeData) === false) { as it is used in my PR.
Does this make sense to you? I also noticed, I could have created the PR for branch 3.x. Should I change something or can you merge my PR at least in branch 4.x? That's the branch we are currently using in the project.


Can I pick some classes picture using this code?

hi, can I pick 6 classes pictures to use? coco has too many classes, which in some cases is not useful, so how to pick some interest class to become a new small coco dataset for me to use ?

cell [7] of coco/PythonAPI/pycocoDemo.ipynb
# get all images containing given categories, select one at random
catIds = coco.getCatIds(catNms=['person','dog','skateboard']);
imgIds = coco.getImgIds(catIds=catIds );

you can choose the catIds based on the catNms you want (i.e. 'person','dog','skateboard', etc.)
then load only the images with those classes.
that what you need???

hi, vchiley, the ref code load only the images with special classes.  is there some guideline for pick the special classes's annotations?

Hi how can i save all the images of a particular class to a folder?

Is it possible to pull only few class images and annotation and save it in a folder using coco api ?

Yes. Give the names of the classes required.
On Thu 20 Dec, 2018, 5:03 PM Rahul-Venugopal<EMAIL_ADDRESS>wrote:

Is it possible to pull only few class images and annotation and save it in
a folder using coco api ?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/cocodataset/cocoapi/issues/67#issuecomment-448966030,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AWbURMOZES4H-yl4n8videE4U2mYkRo5ks5u63VvgaJpZM4O_lh5
.

#https://github.com/cocodataset/cocoapi/blob/master/PythonAPI/pycocotools/coco.py


Prove balance in zero knowledge

This change addresses two mistakes found by Jonas Nick:
The first is a privacy leak. After seeing the sums of the r-terms the
coordinator could attempt link credential presentation to issuance. This
can be done by computing the products of different subsets of credential
request attributes, and seeing if the resulting commitment can be opened
to the sum of the r terms and the registered amount.
The second mistake was in the formula for the balance proof, neglecting
a set of r-terms.
Closes #40

Thanks @jonasnick for the report, and thanks @nothingmuch for the fix! :green_heart:


Added info that the signature itself also expires

Will also update the batch file's comments.

Added some additional info to the makecerts batch file and the readme to make it clear that the signature will expire when the certificate expires (very useful for testing; potentially bad for production).

I know this was merged quite a while ago.
However, this is the only time I've ever seen these eku. Are there any other resource available on these? Cert with "<IP_ADDRESS>.<IP_ADDRESS>.3,<IP_ADDRESS>.4.1.3<IP_ADDRESS>,<IP_ADDRESS>.4.1.3<IP_ADDRESS>,<IP_ADDRESS>.4.1.3<IP_ADDRESS>0" as /eku is refused for me by VisualStudio. Am I doing it right?
@ptorr-msft

There used to be a Support article for this, but it's temporarily (?) out of action. It's the first hit for this search:
https://support.microsoft.com/search/results?query=object+ids+associated+with+Microsoft+cryptography
Hopefully the link will get fixed soon.
Did you use makecert? I don't know if it works in Visual Studio.

Thank you for the reply! I was looking for that article before but as you said it is not available for now. I have extracted it from Google Cache (had to disable JS) now. That looks interesting, however, the eku's from from this patch are not documented there.
I have succeeded in creating a cert with makecert and using it with signtool to sign an msix(bundle). But unfortunatly I must have misunderstood, this cert seems to behave just the same as any other code signing cert. (The comments in this patch lead me to believe this might enable our app to be installable with sideloading disabled.)
Thanks for your help @ptorr-msft.

If you have sideloading disabled, apps must come from the Store; the EKUs won't help with that. Sorry.


Font-Awesome v6

Thanks for thinking ahead @owenvoke ! 🙏
The package already works with Font-Awesome v6. The new thin set as well as all the new icons are detected by the package. As soon as FA6 is out of alpha/beta the packed-in icons could be replaced but you can already use the FA6 Pro icons with the sync pro icons command. 🎉
Right now you can only sync the pro icons with the command as it has hardcoded fontawesome-pro in it.
https://github.com/owenvoke/blade-fontawesome/blob/60c1f2b6629012ab4c9e6871dc911c08606d0b27/src/Commands/SyncProIconsCommand.php#L23-L25
Would it be an idea to allow to customize that one as well so that this command could be used to sync the free FA6 icons as well? 🤔

Checked the docs and the Symfony setAliases() works the same in Laravel - so not a breaking change. 🥳
 protected function configure(): void
{
    $this->setAliases(['old']);
}

Well, that would be great!


npm install failure

Hi there, we were trying to install your package but we got this error:
$ npm install ember-cli-datepicker --save-dev
/
><EMAIL_ADDRESS>install /Users/dweebit/lemur-collections/frontend/node_modules/ember-cli-datepicker
> bower install

bower loader.js#1.0.1           cached git://github.com/stefanpenner/loader.js.git#1.0.1
bower loader.js#1.0.1         validate 1.0.1 against git://github.com/stefanpenner/loader.js.git#1.0.1
bower ember-cli-shims#0.0.3     cached git://github.com/stefanpenner/ember-cli-shims.git#0.0.3
bower ember-cli-shims#0.0.3   validate 0.0.3 against git://github.com/stefanpenner/ember-cli-shims.git#0.0.3
bower ember-cli-test-loader#0.0.4           cached git://github.com/rwjblue/ember-cli-test-loader.git#0.0.4
bower ember-cli-test-loader#0.0.4         validate 0.0.4 against git://github.com/rwjblue/ember-cli-test-loader.git#0.0.4
bower ember-load-initializers#0.0.2         cached git://github.com/stefanpenner/ember-load-initializers.git#0.0.2
bower ember-load-initializers#0.0.2       validate 0.0.2 against git://github.com/stefanpenner/ember-load-initializers.git#0.0.2
bower jquery#^1.11.1                        cached git://github.com/jquery/jquery.git#1.11.1
bower jquery#^1.11.1                      validate 1.11.1 against git://github.com/jquery/jquery.git#^1.11.1
bower handlebars#~1.3.0                     cached git://github.com/components/handlebars.js.git#1.3.0
bower handlebars#~1.3.0                   validate 1.3.0 against git://github.com/components/handlebars.js.git#~1.3.0
bower ember-data#1.0.0-beta.10              cached git://github.com/components/ember-data.git#1.0.0-beta.10
bower ember-data#1.0.0-beta.10            validate 1.0.0-beta.10 against git://github.com/components/ember-data.git#1.0.0-beta.10
bower ember-resolver#~0.1.7                 cached git://github.com/stefanpenner/ember-jj-abrams-resolver.git#0.1.10
bower ember-resolver#~0.1.7               validate 0.1.10 against git://github.com/stefanpenner/ember-jj-abrams-resolver.git#~0.1.7
bower ember#1.7.0                           cached git://github.com/components/ember.git#1.7.0
bower ember#1.7.0                         validate 1.7.0 against git://github.com/components/ember.git#1.7.0
bower ember-qunit#0.1.8                     cached git://github.com/rpflorence/ember-qunit.git#0.1.8
bower ember-qunit#0.1.8                   validate 0.1.8 against git://github.com/rpflorence/ember-qunit.git#0.1.8
bower ember-qunit-notifications#0.0.4       cached git://github.com/dockyard/ember-qunit-notifications.git#0.0.4
bower ember-qunit-notifications#0.0.4     validate 0.0.4 against git://github.com/dockyard/ember-qunit-notifications.git#0.0.4
bower qunit#~1.15.0                         cached git://github.com/jquery/qunit.git#1.15.0
bower qunit#~1.15.0                       validate 1.15.0 against git://github.com/jquery/qunit.git#~1.15.0
bower pikaday#~1.2.0                    not-cached git://github.com/dbushell/Pikaday.git#~1.2.0
bower pikaday#~1.2.0                       resolve git://github.com/dbushell/Pikaday.git#~1.2.0
bower moment#~2.8.3                         cached git://github.com/moment/moment.git#2.8.4
bower moment#~2.8.3                       validate 2.8.4 against git://github.com/moment/moment.git#~2.8.3
bower ember-cli-shims#0.0.3                ECMDERR Failed to execute "git ls-remote --tags --heads git://github.com/stefanpenner/ember-cli-shims.git", exit code of #128

Additional error details:
fatal: read error: Connection reset by peer
npm ERR<EMAIL_ADDRESS>install: `bower install`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script.
npm ERR! This is most likely a problem with the ember-cli-datepicker package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     bower install
npm ERR! You can get their info via:
npm ERR!     npm owner ls ember-cli-datepicker
npm ERR! There is likely additional logging output above.

npm ERR! System Darwin 13.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "ember-cli-datepicker" "--save-dev"
npm ERR! cwd /Users/dweebit/lemur-collections/frontend
npm ERR! node -v v0.10.28
npm ERR! npm -v 1.4.16
npm ERR! code ELIFECYCLE
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/dweebit/lemur-collections/frontend/npm-debug.log
npm ERR! not ok code 0

Looks like it's failing to fetch ember-cli-shims.

I bumped into this the other day. I managed to get it to work by running bower install then npm install again afterwards. I'm not exactly sure why this happens, but think it has something to do with the fact that datepicker tries to pull in libraries during its install cycle.


[DO NOT MERGE] Add generate checksums option to read stream

This needs #49 to be merged first.

Apologies for the stupid question, but how does this relate to #47 ?
(i.e. when would you generate the checksums in a readStream and when would you generate the checksums in a filterStream?)

@lurch in both cases (read- & filter-streams) you'd need this option to generate the checksums for a trimmed image – i.e. when you identified the ranges, but haven't generated an actual blockmap with checksums yet.

@lurch a FilterStream filters out unwanted blocks from another existing stream while a ReadStream will read the file itself (but only the interesting parts).
Generating checksums is useful in both.
If I have a local file, I'll use a ReadStream.
But there are cases where you don't have a local file, for example an image in a zip archive on an http server. In that case I'll create a read stream from the zip file, pipe it in a transform that gets the actual image stream and pipe it in a FilterStream.


Unable to install in Databricks

Describe the bug
A clear and concise description of what the bug is.
Following up from #1257 which said the v0.94 should work, I am getting resolution errors when trying to install this package in databricks.
To Reproduce

Create a new databricks resource
Create a databricks cluster (I used 9.1LTS)
Install the package from maven
coordinates  com.microsoft.azure:synapseml_2.12:0.9.4
resolver: https://mmlspark.azureedge.net/maven

Expected behavior
Install succeeded
Info (please complete the following information):

SynapseML Version: com.microsoft.azure:synapseml_2.12:0.9.4
Databricks: 9.1 LTS (includes Apache Spark 3.1.2, Scala 2.12)

** Stacktrace**
Library resolution failed. Cause: java.lang.RuntimeException: unresolved dependency: com.microsoft.ml.spark:synapseml_2.12:0.9.4: not found
	at com.databricks.libraries.server.MavenInstaller.doDownloadMavenPackages(MavenLibraryResolver.scala:437)
	at com.databricks.libraries.server.MavenInstaller.$anonfun$downloadMavenPackages$2(MavenLibraryResolver.scala:381)
	at com.databricks.backend.common.util.FileUtils$.withTemporaryDirectory(FileUtils.scala:466)
	at com.databricks.libraries.server.MavenInstaller.$anonfun$downloadMavenPackages$1(MavenLibraryResolver.scala:380)
	at com.databricks.logging.UsageLogging.$anonfun$recordOperation$1(UsageLogging.scala:341)
	at com.databricks.logging.UsageLogging.executeThunkAndCaptureResultTags$1(UsageLogging.scala:435)
	at com.databricks.logging.UsageLogging.$anonfun$recordOperationWithResultTags$4(UsageLogging.scala:455)
	at com.databricks.logging.UsageLogging.$anonfun$withAttributionContext$1(UsageLogging.scala:215)
	at scala.util.DynamicVariable.withValue(DynamicVariable.scala:62)
	at com.databricks.logging.AttributionContext$.withValue(AttributionContext.scala:95)
	at com.databricks.logging.UsageLogging.withAttributionContext(UsageLogging.scala:213)
	at com.databricks.logging.UsageLogging.withAttributionContext$(UsageLogging.scala:210)
	at com.databricks.libraries.server.MavenInstaller.withAttributionContext(MavenLibraryResolver.scala:57)
	at com.databricks.logging.UsageLogging.withAttributionTags(UsageLogging.scala:251)
	at com.databricks.logging.UsageLogging.withAttributionTags$(UsageLogging.scala:243)
	at com.databricks.libraries.server.MavenInstaller.withAttributionTags(MavenLibraryResolver.scala:57)
	at com.databricks.logging.UsageLogging.recordOperationWithResultTags(UsageLogging.scala:430)
	at com.databricks.logging.UsageLogging.recordOperationWithResultTags$(UsageLogging.scala:350)
	at com.databricks.libraries.server.MavenInstaller.recordOperationWithResultTags(MavenLibraryResolver.scala:57)
	at com.databricks.logging.UsageLogging.recordOperation(UsageLogging.scala:341)
	at com.databricks.logging.UsageLogging.recordOperation$(UsageLogging.scala:313)
	at com.databricks.libraries.server.MavenInstaller.recordOperation(MavenLibraryResolver.scala:57)
	at com.databricks.libraries.server.MavenInstaller.downloadMavenPackages(MavenLibraryResolver.scala:379)
	at com.databricks.libraries.server.MavenInstaller.downloadMavenPackagesWithRetry(MavenLibraryResolver.scala:137)
	at com.databricks.libraries.server.MavenInstaller.resolveMavenPackages(MavenLibraryResolver.scala:113)
	at com.databricks.libraries.server.MavenLibraryResolver.resolve(MavenLibraryResolver.scala:44)
	at com.databricks.libraries.server.ManagedLibraryManager$GenericManagedLibraryResolver.resolve(ManagedLibraryManager.scala:243)
	at com.databricks.libraries.server.ManagedLibraryManagerImpl$.$anonfun$resolvePrimitives$1(ManagedLibraryManagerImpl.scala:1222)
	at com.databricks.libraries.server.ManagedLibraryManagerImpl$.$anonfun$resolvePrimitives$1$adapted(ManagedLibraryManagerImpl.scala:1217)
	at scala.collection.Iterator.foreach(Iterator.scala:943)
	at scala.collection.Iterator.foreach$(Iterator.scala:943)
	at scala.collection.AbstractIterator.foreach(Iterator.scala:1431)
	at scala.collection.IterableLike.foreach(IterableLike.scala:74)
	at scala.collection.IterableLike.foreach$(IterableLike.scala:73)
	at scala.collection.AbstractIterable.foreach(Iterable.scala:56)
	at com.databricks.libraries.server.ManagedLibraryManagerImpl$.resolvePrimitives(ManagedLibraryManagerImpl.scala:1217)
	at com.databricks.libraries.server.ManagedLibraryManagerImpl$ClusterStatus.installLibsWithResolution(ManagedLibraryManagerImpl.scala:719)
	at com.databricks.libraries.server.ManagedLibraryManagerImpl$ClusterStatus.installLibs(ManagedLibraryManagerImpl.scala:705)
	at com.databricks.libraries.server.ManagedLibraryManagerImpl$InstallLibTask$1.run(ManagedLibraryManagerImpl.scala:387)
	at com.databricks.threading.NamedExecutor$$anon$2.$anonfun$run$1(NamedExecutor.scala:356)
	at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
	at com.databricks.logging.UsageLogging.$anonfun$withAttributionContext$1(UsageLogging.scala:215)
	at scala.util.DynamicVariable.withValue(DynamicVariable.scala:62)
	at com.databricks.logging.AttributionContext$.withValue(AttributionContext.scala:95)
	at com.databricks.logging.UsageLogging.withAttributionContext(UsageLogging.scala:213)
	at com.databricks.logging.UsageLogging.withAttributionContext$(UsageLogging.scala:210)
	at com.databricks.threading.NamedExecutor.withAttributionContext(NamedExecutor.scala:285)
	at com.databricks.threading.NamedExecutor$$anon$2.run(NamedExecutor.scala:355)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:834)

Code owner tags: @mhamilton723 @drdarshan

I am spinning up a cluster now to try to repro. Our build tests on 8.3 so perhaps this could be a workaround if you cannot get 9.1 to work

I am not able to reproduce this issue on my side with 9.1LTS and 0.9.4

uksouth I was going for. I'll take another look and see if I can get things running now. It'd be nice if time did fix it 😂

It took about 3 clusters on each of a eastus and uksouth newly made databricks cluster to get the package to actually install and not just get a resolution issue. Since all the installs are happening in Azure, perhaps there's problems with the maven repo hosting?

@stephlocke thanks for folloowing up. That is indeed odd as its hosted in a storage blob that doesn't seem to be acting up. In our next release we will host on maven central so perhaps that will make it more reliable for you. Also one other idea is to try the blob directly instead of the CDN
https://mmlspark.blob.core.windows.net/maven/

Feel free to re-open if needed


Race condition in stopper.go when shutting down

Hi,
When running go test ./utils -race the race detector is raising those warning below.
I think in practice it shouldn't be an issue.
But some project using goflow2 as library might have CI tests (with race detector enabled) failing due to this.
I think it might worth fixing this theoretical race condition, what do you think ?
$ go test ./utils -race
==================
WARNING: DATA RACE
Write at 0x00c000226c30 by goroutine 27:
  github.com/netsampler/goflow2/utils.(*stopper).Shutdown()
      /go/src/github.com/goflow2/utils/stopper.go:32 +0xc4
  github.com/netsampler/goflow2/utils.TestStopper()
      /go/src/github.com/goflow2/utils/stopper_test.go:16 +0x112
  testing.tRunner()
      /usr/local/Cellar/go/1.17.6/libexec/src/testing/testing.go:1259 +0x22f
  testing.(*T).Run·dwrap·21()
      /usr/local/Cellar/go/1.17.6/libexec/src/testing/testing.go:1306 +0x47

Previous read at 0x00c000226c30 by goroutine 28:
  github.com/netsampler/goflow2/utils.(*routine).StartRoutine.func1()
      /go/src/github.com/goflow2/utils/stopper_test.go:46 +0x45

Goroutine 27 (running) created at:
  testing.(*T).Run()
      /usr/local/Cellar/go/1.17.6/libexec/src/testing/testing.go:1306 +0x726
  testing.runTests.func1()
      /usr/local/Cellar/go/1.17.6/libexec/src/testing/testing.go:1598 +0x99
  testing.tRunner()
      /usr/local/Cellar/go/1.17.6/libexec/src/testing/testing.go:1259 +0x22f
  testing.runTests()
      /usr/local/Cellar/go/1.17.6/libexec/src/testing/testing.go:1596 +0x7ca
  testing.(*M).Run()
      /usr/local/Cellar/go/1.17.6/libexec/src/testing/testing.go:1504 +0x9d1
  main.main()
      _testmain.go:49 +0x22b

Goroutine 28 (finished) created at:
  github.com/netsampler/goflow2/utils.(*routine).StartRoutine()
      /go/src/github.com/goflow2/utils/stopper_test.go:44 +0x118
  github.com/netsampler/goflow2/utils.TestStopper()
      /go/src/github.com/goflow2/utils/stopper_test.go:14 +0xbc
  testing.tRunner()
      /usr/local/Cellar/go/1.17.6/libexec/src/testing/testing.go:1259 +0x22f
  testing.(*T).Run·dwrap·21()
      /usr/local/Cellar/go/1.17.6/libexec/src/testing/testing.go:1306 +0x47
==================
==================
WARNING: DATA RACE
Read at 0x00c000226c50 by goroutine 30:
  github.com/netsampler/goflow2/utils.TestStopper.func1()
      /go/src/github.com/goflow2/utils/stopper_test.go:18 +0x34
  github.com/stretchr/testify/assert.Eventually.func1()
      /go/pkg/mod/github.com/stretchr/testify@v1.7.0/assert/assertions.go:1655 +0x39

Previous write at 0x00c000226c50 by goroutine 28:
  github.com/netsampler/goflow2/utils.(*routine).StartRoutine.func1()
      /go/src/github.com/goflow2/utils/stopper_test.go:47 +0x64

Goroutine 30 (running) created at:
  github.com/stretchr/testify/assert.Eventually()
      /go/pkg/mod/github.com/stretchr/testify@v1.7.0/assert/assertions.go:1655 +0x3b7
  github.com/netsampler/goflow2/utils.TestStopper()
      /go/src/github.com/goflow2/utils/stopper_test.go:17 +0x196
  testing.tRunner()
      /usr/local/Cellar/go/1.17.6/libexec/src/testing/testing.go:1259 +0x22f
  testing.(*T).Run·dwrap·21()
      /usr/local/Cellar/go/1.17.6/libexec/src/testing/testing.go:1306 +0x47

Goroutine 28 (finished) created at:
  github.com/netsampler/goflow2/utils.(*routine).StartRoutine()
      /go/src/github.com/goflow2/utils/stopper_test.go:44 +0x118
  github.com/netsampler/goflow2/utils.TestStopper()
      /go/src/github.com/goflow2/utils/stopper_test.go:14 +0xbc
  testing.tRunner()
      /usr/local/Cellar/go/1.17.6/libexec/src/testing/testing.go:1259 +0x22f
  testing.(*T).Run·dwrap·21()
      /usr/local/Cellar/go/1.17.6/libexec/src/testing/testing.go:1306 +0x47
==================
--- FAIL: TestStopper (0.00s)
    testing.go:1152: race detected during execution of test
==================
WARNING: DATA RACE
Read at 0x00c000226e00 by goroutine 34:
  github.com/netsampler/goflow2/utils.TestCancelUDPRoutine.func3()
      /go/src/github.com/goflow2/utils/utils_test.go:41 +0x5e
  github.com/netsampler/goflow2/utils.TestCancelUDPRoutine()
      /go/src/github.com/goflow2/utils/utils_test.go:51 +0x318
  testing.tRunner()
      /usr/local/Cellar/go/1.17.6/libexec/src/testing/testing.go:1259 +0x22f
  testing.(*T).Run·dwrap·21()
      /usr/local/Cellar/go/1.17.6/libexec/src/testing/testing.go:1306 +0x47

Previous write at 0x00c000226e00 by goroutine 35:
  github.com/netsampler/goflow2/utils.(*dummyFlowProcessor).FlowRoutine()
      /go/src/github.com/goflow2/utils/utils_test.go:74 +0x90
  github.com/netsampler/goflow2/utils.TestCancelUDPRoutine.func1()
      /go/src/github.com/goflow2/utils/utils_test.go:20 +0x53

Goroutine 34 (running) created at:
  testing.(*T).Run()
      /usr/local/Cellar/go/1.17.6/libexec/src/testing/testing.go:1306 +0x726
  testing.runTests.func1()
      /usr/local/Cellar/go/1.17.6/libexec/src/testing/testing.go:1598 +0x99
  testing.tRunner()
      /usr/local/Cellar/go/1.17.6/libexec/src/testing/testing.go:1259 +0x22f
  testing.runTests()
      /usr/local/Cellar/go/1.17.6/libexec/src/testing/testing.go:1596 +0x7ca
  testing.(*M).Run()
      /usr/local/Cellar/go/1.17.6/libexec/src/testing/testing.go:1504 +0x9d1
  main.main()
      _testmain.go:49 +0x22b

Goroutine 35 (running) created at:
  github.com/netsampler/goflow2/utils.TestCancelUDPRoutine()
      /go/src/github.com/goflow2/utils/utils_test.go:19 +0x1e4
  testing.tRunner()
      /usr/local/Cellar/go/1.17.6/libexec/src/testing/testing.go:1259 +0x22f
  testing.(*T).Run·dwrap·21()
      /usr/local/Cellar/go/1.17.6/libexec/src/testing/testing.go:1306 +0x47
==================
--- FAIL: TestCancelUDPRoutine (0.10s)
    testing.go:1152: race detected during execution of test
FAIL
FAIL  github.com/netsampler/goflow2/utils 0.463s
FAIL

Hello,
Thanks for the report. I'm a bit late on this. I'm able to reproduce. Will see how I can fix.
The race condition does not like closing or changing the allocation outside of a select.
cc @mariomac

I believe this was fixed with https://github.com/netsampler/goflow2/pull/118.

@lspgn Shall we reopen the issue. I'm still seeing the same WARNING: DATA RACE when running go test ./utils -race using the latest code on main branch.

Should be fixed as part of #150


alias can't work

Initial Checks

[X] I confirm that I'm using Pydantic V2

Description
i have defined an model like that
class Env(BaseModel):
user_id: Annotated[int, Field(alias='userId', description='用户id')]
enterprise_id: Annotated[int, Field(alias='enterpriseId', description='企业id')]
group_id: Annotated[int, Field(alias='groupId', description='集团id')]
location_info: Annotated[str, Field(description='当前城市')]
pig_farm_id: Annotated[int, Field(alias='pigFarmId', description='猪场id')]
farm_name: Annotated[Optional[str], Field(description='猪场名称', default=None)]
the use send me a json like
{
		"userId": "3463429",
		"enterpriseId": "2404981",
		"groupId": "2379608",
		"location_info": "北京市",
		"pigFarmId": "2103231752110001077"
	}

the userid map to user_id, that good.
and then i store it in db, use model_dump_json the result is
{"user_id":3463429,"enterprise_id":2404981,"group_id":2379608,"location_info":"北京市","pig_farm_id":2103231752110001077,"farm_name":null}

and can't restore it from model_validate_json method

and i have to use alias to new the object by code
i can't use env = Env(user_id=1, enterprise_id=1, group_id=1, location_info='', pig_farm_id=1, farm_name='')
must use Env(userId=1, enterpriseId=1, groupId=1, location_info='', pigFarmId=1, farm_name='')
Example Code
No response
Python, Pydantic & OS Version
python 3.12
pydantic 2.5.0

i have try to use serialization_alias
class Env(BaseModel):
    user_id: Annotated[int, Field(serialization_alias='userId', description='用户id')]
    enterprise_id: Annotated[int, Field(serialization_alias='enterpriseId', description='企业id')]
    group_id: Annotated[int, Field(serialization_alias='groupId', description='集团id')]
    location_info: Annotated[str, Field(description='当前城市')]
    pig_farm_id: Annotated[int, Field(serialization_alias='pigFarmId', description='猪场id')]
    farm_name: Annotated[Optional[str], Field(description='猪场名称', default=None)]

but it can't resolve from json
{
		"userId": "3463429",
		"enterpriseId": "2404981",
		"groupId": "2379608",
		"location_info": "北京市",
		"pigFarmId": "2103231752110001077"
	}

or stop to use alias, accept the camel case name?

why it can't serialize according to the alias, the new instance by field name not the alias name

You need to use by_alias=True when using model_dump_json.
Docs:

https://docs.pydantic.dev/latest/concepts/fields/#field-aliases
https://docs.pydantic.dev/latest/concepts/alias/

@Viicos but when i new an instance by code, i must special with alias.
the decode method use alias by default, but serialize must special by_alias=True

This is being discussed at https://github.com/pydantic/pydantic/issues/8379.


FIX: plot_evoked_field

This PR fixes the visual artifacts appearing in plot_evoked_field() since VTK9 (caused by overlapping surfaces):
From examples/visualization/mne_helmet.py:
main:
https://user-images.githubusercontent.com/18143289/170063964-ec86484b-cea0-4481-8c50-f2ea6380d6fa.mp4
PR:
https://user-images.githubusercontent.com/18143289/170063715-f53e0dcb-8ecc-4334-aeb4-c2ee4cbfc526.mp4
Closes https://github.com/mne-tools/mne-python/issues/8812

IIRC the sensor meshes will cross the mesh of the helmet but not 100% line up with it. Is depth peeling enabled?

It is indeed related to depth_peeling, when I disable it, the flickering stops! :sweat_smile:

depth_peeling=False
depth_peeling=True

Thanks @GuillaumeFavelier !

thx @GuillaumeFavelier !


Popover transitionDuration doesn't work

transitionDuration for Popover does not seem to be working.
The show method in the popupMixin doesn't seem to make any mention of the transitionDuration option.
For hiding the popover I think the issue is that SHOW_CLASS is removed outside of the transitionDuration time out here
https://github.com/wxsms/uiv/blob/af05d3da706f71281118d2dc199edfbe7d445c5b/src/mixins/popupMixin.js#L217

the transition-duration prop must work with CSS.
for example: https://codepen.io/wxsm/pen/Nzqzeg


Assertion failed with many concurrent writers on GCS

Error and backtrace:
thread '<unnamed>' panicked at 'assertion failed: buf.len() >= msg_len + 4', /home/runner/work/lance/lance/rust/lance/src/io/object_reader.rs:121:9
stack backtrace:
   0: rust_begin_unwind
             at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/std/src/panicking.rs:593:5
   1: core::panicking::panic_fmt
             at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/core/src/panicking.rs:67:14
   2: core::panicking::panic
             at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/core/src/panicking.rs:117:5
   3: lance::io::object_reader::read_struct::{{closure}}
   4: lance::dataset::Dataset::checkout_manifest::{{closure}}
   5: lance::dataset::Dataset::open_with_params::{{closure}}
   6: lance::dataset::Dataset::write_impl::{{closure}}::{{closure}}
   7: lance::dataset::Dataset::write_impl::{{closure}}
   8: lance::dataset::Dataset::write::{{closure}}
   9: lance::dataset::write_dataset
  10: lance::dataset::_::__pyfunction_write_dataset
  11: pyo3::impl_::trampoline::trampoline
  12: lance::dataset::_::<impl lance::dataset::write_dataset::MakeDef>::DEF::trampoline

Reproduction

# python test.py gs://lance-performance-testing/concurrent_write
import lance
import pyarrow as pa
from concurrent.futures import ThreadPoolExecutor
import fire
import os

N_PROCESSES = 50
N_ITERS = 10

def do_write(uri: str):
    tab =  pa.table({
        'i': pa.array(range(10)),
    })
    return lance.write_dataset(tab, uri, mode="append")

def write_in_loop(uri: str):
    for i in range(N_ITERS):
        try:
            do_write(uri)
        except Exception as e:
            if 'Commit conflict for version' in str(e):
                pass
            else:
                raise e

def main(uri: str):
    # One initial to establish the table
    dataset = do_write(uri)

    pool = ThreadPoolExecutor(max_workers=N_PROCESSES)
    results = list(pool.map(write_in_loop, [uri] * N_PROCESSES))
    print(results)

if __name__ == "__main__":
    fire.Fire(main)

Note: table is still readable.

I think the explanation here is we are reading _latest.manifest while a concurrent writer updated that. We should only allow reading that file in a single request; range requests can lead to corrupted views.


[Demo] Fixes link for Time picker in demo projects

Pull Request
📖 Description
this PR removes the fragment from the demo navigation for the /DateTime link.
General

[ ] I have added tests for my changes.
[x] I have tested my changes.
[ ] I have updated the project documentation to reflect my changes.
[x] I have read the CONTRIBUTING documentation and followed the standards for this project.

@vnbaaij I removed it since all other components don't have one as well. It would be strange to start the page right in the middle since there is no nav item for FluentDatePicker

Yes, it is strange but even stranger to click on a link to time picker and land on a date picker segment 😀.
Time picker is an InputBase derived component. That is why it is shown in Form and input menu. DatePicker is not InputBase derived (yet?).
We need to address the underlying issue and probably just make separate pages.

Got it. Added the fragment. I didn't even know that you can find the FluentDatePicker under components instead.


Add missing frameworks to obj-c sdk

Same fix as here https://github.com/microsoft/cpp_client_telemetry/pull/1142

As of now, GitHub runner for iOS 10.15 is removed, and we are trying to fix this. Meanwhile this is small PR, and good to force merge to unblock the team.


STLT facilities/providers page - Hook up API

Problem statement
As part of the STLT Dashboard, we need to implement the API of the facilities/providers index page.
What you need to know

Latest Figma File

Hook up to the API (PR #9720)

To do

[x] Add/Update interface
[x] Add/Update hook
[x] Add endpoint call
[x] Facility Type column needs to transform value (transformFacilityType())
[x] Unit tests

Changing to a 5-pointer based on feedback from Penny


Add a plugin to define the publishing licenses of a course

Feature Request
Is your feature request related to a problem or unsupported use case? Please describe.
We need a plugin to define a licenses for:

the content of a course
the content created by participants in a course

Describe the solution you'd like
To add a license to the course content, the person editing the page can add a "license" plugin and choose from 8 possible licenses in a select box:

One of the 7 variants of Creative Commons as defined here https://en.wikipedia.org/wiki/Creative_Commons_license#Seven_regularly_used_licenses
Reserved Rights

A free text input is available for the person to give details (e.g. version of the cc license, adaptated version, etc.).
The license is displayed on the site with the free text and a set of logo+name+description defined by us (in the code) for each of the possible licenses.
Discovery, Documentation, Adoption, Migration Strategy
This is what we have today on the site:

Functionally it's done with PR #324 that has been merged but it lacks of some unitests, factory and to be included in demo-site.

Issue will continue in PR #341 with missing factory and tests


fixes#148

Simplified Makefile, integration tests around the k8s auth engine accessor.

please see #150 , that is the way to fix this issue. Thank you very much for finding it.

@davoustp is it safe to remove the accessor exports in the README? for example https://github.com/redhat-cop/vault-config-operator#configure-an-kubernetes-authentication-mount-point

please see #150 , that is the way to fix this issue. Thank you very much for finding it.

@raffaelespazzoli not sure that this relates to this PR, but thanks nonetheless ;-)

@davoustp is it safe to remove the accessor exports in the README? for example https://github.com/redhat-cop/vault-config-operator#configure-an-kubernetes-authentication-mount-point

Blimey! thought I had this cleared as well. Yes, it should be safe. What's the best course, another PR probably?

That's fine then we can update it later if not now.


What's the reason there is a custom feathers-authentication package?

Could you please elaborate why are you not using the package from feathers-authentication?

Good question, before there were two socket servers, one for feathers and the original, then I make a system to log the user of socket dice socket connection with the cookie, as with express.
Feathers-socketio does not allow to give him our own server socket.io so that I had no access to the server io outside socketHandler. I needed the authentication service is already configured in express, and I could not setup middleware instantly because there was not yet feathers-socketio to set.
I just changed to use app.io (which must be used after app.listen otherwise it's not defined).

I noticed that I get the message 'Hello World!' From server only by reconnecting in the hot reload.
I do not know why..

I misread question.
For a minor change that was useless now, I am waiting for that stabilizes a bit to update to last version.
I will revert to version 0.8.0-beta-1 pending


Sum of a sparse matrix and an numpy.array is a numpy.matrix

numpy.matrix is deprecated but is returned in sparse–array operations
Reproducing code example:

import scipy
import numpy
x = scipy.sparse.csr_matrix(np.random.rand(5,))
y = numpy.random.rand(5,)
print(x+y)
print(type(x-y))

gives
[[1.454 1.031 1.145 1.621 0.769]]
<class 'numpy.matrix'>

Scipy/Numpy/Python version information:
1.3.1 1.17.1
sys.version_info(major=3, minor=7, micro=4, releaselevel='final', serial=0)

Unfortunately we're stuck with this API, as changing from matrix to array would break pretty much all existing users.
It's not feature-complete yet, but eventually we'll start directing users to https://github.com/pydata/sparse to avoid the issue altogether.

Does it mean that SciPy will just drop sparse?

There's no current plan to stop supporting scipy.sparse as far as I'm aware of.

I mean, it's strange that users will be derected to pydata, scipy.sparse is not getting fixed but still no dropped, and this increases the gap between NumPy, that dropped matrices, new sparse and the old one.

It's not possible to "fix" the matrix semantics in scipy.sparse while maintaining backward compatibility.
So you anyway need new sparse matrix objects with numpy array-like semantics.


Could you please provide the pre-training backbone？

Thanks for your excellent work!
Could you please provide the pre-training backbone？I want to transfer it to mmdet and check the performance.

Oh, sorry, I found it in model zoo...


Fix SpongeCommon#1282

SpongeAPI | SpongeCommon
Necessary for https://github.com/SpongePowered/SpongeCommon/issues/1282

Going to close this as the API change is rendered unnecessary as the implementation can override the method itself. I'd rather break the API for bleeding to include a difference of LastPlayed versus LastJoined and being able to differentiate whether a player has played before if the LastJoined is the same as FirstJoined.


Investigate elastic resources maxing out

We've had quite a few of our clusters maxing out in memory, CPU and space.
There's quite a lot of little indexes popping up, ILM templates bopping around etc etc, this could probably do with a tidy up.

I'm going to close this for now – I don't think we've seen any issues recently.


Automatic ChainerX fallback of array attributes in Function

ChainerX array attribute fallback for chainer.Function similar to #5745

jenkins, test this please.

LGTM.


Send message size information (Celery)

Send message size information from the Celery integration. This information includes the following:
### Tasks
- [ ] byte size of message (`messaging.message.body.size`)
- [ ] byte size of message plus metadata (`messaging.message.envelope.size`)

Per the develop specs, we should only send these if we can retrieve them easily from Celery.

This information cannot easily be retrieved in Celery


Very confusing (and limiting) mix of options for running python terminal/repl

Environment data

VS Code version: 1.37.1
Extension version: 2019.9.34474
OS and version: Ubuntu 19.04
Python version : 3.7.3
Type of virtual environment used: None
Relevant/affected Python packages and their versions:
Jedi or Language Server?: Microsoft Language Server

There are at least four options:

Python: Create Terminal (command)
Python: Start REPL (command)
Run Selection/Line in Python Terminal (context menu)
Run Python File in Terminal (context menu)

Expected behaviour
At least, this use case should be supported: the user opens a python terminal / REPL and later sends a selection to this same REPL.
Also IMHO 1 and 2 are very much overlapping and it's not clear at all why the user would create a terminal named Python without a python REPL in it and that won't even be used by 3 or 4.
Actual behaviour
Option number 1 creates a shell terminal without running any python REPL in it. This is very confusing per se, but worse: the terminal is named Python but still is not used by 3 nor by 4.
Options 3 and 4 don't use the terminal created by 1 nor the REPL created by 2, but their own python terminal (also named Python).
This means that there is no way to open a REPL, do some exploration/interactive stuff and then send a selection to it. The only way to open a REPL that would later accept selections is to open it sending a selection (or file). This forces the user to send a dummy selection in order to open a selection-accepting REPL/terminal.
Steps to reproduce:
I think this is clear from the above description. There are many scenarios. Here is one:

Open a python terminal
This starts a shell terminal named Python
Open a python REPL
This indeed starts a REPL named REPL
Select some python code and send it to the terminal
This creates a third python terminal, also named Python

The following is quoted from the user guide and seems to imply that selection should be sent to the REPL created by the user:

The command opens the Python Terminal if necessary; you can also open the interactive REPL environment directly using the Python: Start REPL command. (Initial startup might take a few moments especially if the first statement you run is an import.)

On first use of the Python: Run Selection/Line in Python Terminal command, VS Code may send the text to the REPL before that environment is ready, in which case the selection or line is not run. If you encounter this behavior, try the command again when the REPL has finished loading.

Now, the REPL created by the user is named  REPL, the one created by sending a selection is called Python, and they are never the same one. Given what is documented, the behavior is not only inconvenient and confusing, as described in my previous comment, but also a bug.

Hi @memeplex, thank you for this feedback! So if I understood correctly, you would expect the "Python: Create Terminal" to create a REPL instead of a blank terminal, since the command name starts with "Python", is that correct?
Right now the behaviour of the "Python: Run Selection/Line in Python Terminal" is to create a new terminal and start the REPL when it's run for the first time, and after that it'll keep sending the selections to the same one. You'll notice that if you quit that REPL, this command will still send selections to the terminal as the extension has no information if there's a REPL running on the terminal or not. I agree that this experience is not ideal, but meanwhile we've been putting more efforts to give a great interactive experience with the Python Interactive Window ("Python: Show Python Interactive Pane" command). Have you tried this with the extension already? If not, please do give it a try and let us know if it doesn't work for your workflow.
Again, thank you so much for taking the time to provide this feedback!

Hi @luabud, thank you for your prompt reply!
I think it could be simplified to just these three actions:

Lauch REPL/Python terminal (which should be the same thing): the user launches a new python process attached to a terminal.
Run selection (or current line) in REPL/Python terminal: the selected code in the current editor (or the current line if no selection is active) is send to the-currently-selected or the-last-selected or a-new REPL/Python terminal, in that order. I mean, if there is a currently selected REPL, use it, if not but there is at least a running REPL, run the one more recently selected by the user, otherwise run a new one.
Run current file in REPL/Python terminal: as 2 but doing an exec of the file in the REPL/Python terminal instead of "copy&pasting" the code.

Something along those lines is done by other editors with python support I used in the past. More sophisticated approaches are also possible, like connecting an editor to a specific REPL, but I think the above suggestion is closer to what you have now and still more intuitive, simple and powerful (the last one because it allows for a workflow better mixing code from a file and code directly entered into the REPL).

Btw, the interactive python window is ok, but at this moment is limited to one instance. Besides it requires launching a jupyter kernel, which could be overkilling for quickly sending a selection to a REPL. Moreover, some things (like breakpoint() and help, ?, ??) just work better in good old terminal python/ipython.

@memeplex I see, thank you for the suggestion! I marked this issue as an "enhancement" and "needs decision", so we can have a conversation about your idea  😊
cc @ronglums for feedback on the interactive window in the comment above

Please have a look at this comment on #2997.

Closing this as Duplicate of #2997


shift+command+? doesn't work

robot.keyTap('?', ['shift', 'command']);
doesn't work but...
robot.keyTap('l', ['shift', 'command']);
does work.
I'm trying this out with the Eclipse Java app, maybe it just doesn't register the first command for some reason

This issue has been closed because it has been inactive for > 240 days.
You may reopen this issue if it has been closed in error.


Custom Service Tags

Is your feature request related to a problem? Please describe.
A clear and concise description of the problem. E.g Provide a feature to [...], I'm looking to  [...]
Within an organization, we may have numerous IPs advertised through BGP, and potentially an onprem environment.  We may leverage external services as well over certain public IPs through our partners.  Both of these we have to either setup inbound allow policies on our Network Security Groups, and if we have numerous subscriptions in our organization and numerous regions, appying these network security groups is not simple to make uniform and secure as we have to have this list of IPs we have to allow all the time.
Similarly if we want to setup UDRs on our subnets to those certain IPs, we have to remember them all the time, and manually assign them to our route tables on our subnets.  That is a pain and can cause inconcistency.
This can only be simplified via IaC such as terraform where we publish modules and release them in each subscription.
If we can have custom service tags, it will make NSGs and route tables simpler as we can create a custom NSGS, where the NSG rules can dynamically update to the company's approved custom IP service tags.  Company's IPs are constantly changing internally, just like Microsoft's Service Tags.  So if we need to securely allow Microsoft Service tags as they get updated withour breaking our PaaS workloads, this will make it much smoother and more secure for organizations as well, if they can publish their own service tags for their approved resources.  And when they make updates to their service tags, it gets picked up more quickly by their NSGs and route tables, rather then slowly performing releases via terraform everywhere.
Describe the solution you'd like
A clear and concise description of what you want to happen.
Custom Service Tags for NSGs and route tables that organizations themselves can supply with their approved IPs.
Describe alternatives you have considered
A clear and concise description of any alternative solutions or features you've considered.
Terraform module registry, terraform version control per subscription per region per environment (prod/nonprod/dev) where we update our prod IPs and NonProd IPs as they get updated, so our NSGs can block communication between each other.
This is very slow and can only be solved for the aprpoved IP ranges as we release.  It leaves some behind until we get to it.  It's also difficult for certain subnets with their own custom NSG.
As for example, the same NSG can be re-used on multiple subnets.  Similarly Route tables.  And we may have custom subnets with custom NSGs not in use by other subnets, and similarly route tables.
But updating them as we need to update our approved IPs for whitelisting/blocking/UDRs statically via IPs individually is not secure.
Being able to do via custom service tags that we manage our selves makes solves so many problems.
Additional context
Add any other context or screenshots about the feature request here.
Here is Microsoft's own Service Tags which update.
https://www.microsoft.com/en-us/download/details.aspx?id=56519
Having this support for ourselves as well can simplify management and security on our resources.

Also if Vendors can publish their service tags on Microsoft Market Place, it will also make our NSGs and UDRs more secure as well, as we don't have to come back and upate them as the Vendor updates their IPs

@wnadim92 Thank you for submitting this issue. NSGs are currently not used in Azure firewall today. This feedback will be provided to the Networking team.
Azure firewall has the IP Group feature that you may use for IP aliases today. You can find more information about Azure IP group here .
I will be closing out this issue, feel free to re-open it if you have any questions.

I posted this in the Azure Network Security page.  I wasn't seeing this page is for Azure Firewall.  Please keep this open and provide updates on that.  Please spend a little more time reading what I wrote above before closing this as an Azure Firewall request

@tobystic


smartdeblur: unstable-2013-01-09 -> unstable-2018-10-29

Description of changes
qt4 -> qt5
Splitting out parts of https://github.com/NixOS/nixpkgs/pull/174634, to make it more reviewable
Things done

Built on platform(s)

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

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

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

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

1 package built:

smartdeblur

Thank you!


Investigate potential API changes

Investigate potential API changes.
Potential sources of inspiration:

MongoDB
DiskDB

Related #30

Related #8


Investigate authenticating GitHub Orgs/Teams through Auth0

Description
Over in https://github.com/2i2c-org/pilot-hubs/issues/625, the question was raised whether we could facilitate authentication against GitHub Orgs and Teams via our current Auth0 setup. If it's possible, it would save us a lot of manual work in creating GitHub OAuth Apps, storing secrets, and allow us to continue using the infrastructure we have in place for Auth0 support.
Something we should think about while investigating this: The 2i2c Engineering team like to use Auth0 as it saves us the toil of creating IDs and secrets for various auth apps. Thinking with our Right to Replicate hat on, is there a benefit for a Hub Community (managing their own hub) to use this Auth0 as a pass-through to GitHub-based auth beyond the ID/secrets argument, especially given the more familiar setup using the native JupyterHub OAuthenticator? By folding this into our Auth0 setup, do we raise the barrier to a community replicating their infrastructure without 2i2c assistance?
Value / benefit

Reduced toil for 2i2c Engineers
A single authentication story across all hubs

Implementation details
As a point of reference, the Pangeo community did a bit of discussion around this topic as well.

Here's the original issue where they discussed Auth0
Though their implementation ended up using a lot of custom Javascript that may not be portable to other usecases.

When to check in on this
We need to gain some experience with our current "native JupyterHub" setup, to understand how much maintenance work it is and whether it is scalable. We should re-visit this issue around February 2022 (unless something escalates it earlier) to decide whether our current setup works well.
Tasks to complete
No response
Updates
No response

The main thing that made me think we might want to suggest that other organizations use Auth0 is that the Pangeo community was already using Auth0 by their own decision, weren't they? https://github.com/pangeo-data/pangeo-cloud-federation/issues/611
I think that there are probably different answers depending on the hub community size, but for communities of a decent amount of complexity, Auth0 seems to be a reasonable solution.

The main thing that made me think we might want to suggest that other organizations use Auth0 is that the Pangeo community was already using Auth0 by their own decision, weren't they? pangeo-data/pangeo-cloud-federation#611

They also had this issue though https://github.com/jupyterhub/oauthenticator/issues/265
And their auth0 setup involved a lot of custom Javascript https://github.com/pangeo-data/pangeo-cloud-federation/tree/prod/auth0 Do we have the skills on the team to maintain that sustainably? (I don't even have the skills to reimplement it)

@sgibson91 thanks for that extra context - that is definitely important follow-up.
Agreed that if using Auth0 also requires using a ton of custom JS, it's probably not something we can recommend.
Would this be a reasonable guideline:

For lightweight or straightforward authentication needs, Auth0 is reasonable
For anything more complex, use a native authenticator

?

For lightweight or straightforward authentication needs, Auth0 is reasonable
For anything more complex, use a native authenticator

Yes, this was pretty much what I was recommending in my design proposal, that using native JupyterHub OAuth is the exception to the rule :)

Cool - I agree w/ your assessment then :-)
IMO I kinda feel like we should just consider this issue as "resolved". Unless we can think of an easy way to support this with Auth0 without using a bunch of JS, then IMO we should just follow the approach you laid out. What do you think?

Unless we can think of an easy way to support this with Auth0 without using a bunch of JS

Tbh, I haven't done the work to look into this yet, I went straight to the Jupyter OAuthenticator. In my mind, this issue is here to track that work over longer term if and when we find ourselves being overwhelmed by manually creating GitHub OAuth Apps. Maybe I didn't write the issue up clearly enough though?

that makes sense - maybe we should time-box this then? E.g., in 9 months check whether we want to re-explore with Auth0? I just worry that we'll lose track of this issue since it's not something we'll take action on any time soon until we've had more experience with the current workflow

It would be good to hear from Pangeo folk like @scottyhq if they think using Auth0 with GitHub Teams is possible without all the Javascript given enough dev time?

I just worry that we'll lose track of this issue since it's not something we'll take action on any time soon until we've had more experience with the current workflow

For sure, but I was also worried that if we didn't have an issue saying "this is something to explore regarding this problem" open in the future when we may need it, dragging out the info from closed issues/PRs would be harder 😅

Indeed! OK I've added a short note about checking back in on this to the top comment 👍

In my mind, this issue is here to track that work over longer term if and when we find ourselves being overwhelmed by manually creating GitHub OAuth Apps.

I think this is the proper approach!
Btw, those JS pieces do not seem particularly complex, I would be more worried about using the concept of Auth "rules" regardless of the language it is implemented... I feel it might increase the risk surface and I am not sure about the limitations neither the easiness to work with them.

It would be good to hear from Pangeo folk like @scottyhq if they think using Auth0 with GitHub Teams is possible without all the Javascript given enough dev time?

Thanks for all the work you're doing on this! i'm sure there are lots of options on how these things are implemented, in case it helps i'll just provide a bit of context on the current setup:

we started using auth0 to make an attempt at easier user management (let's say we want to email all users of the GCP hub, we didn't have an easy way of doing that w/ standard github auth at the time). Teams-based access rules was an experiment that seemed useful, and i just copied this example since I don't know much JS :) https://gist.github.com/aslafy-z/4c4f73aa24bbeb4a59e8d6bc849cd1ba

The only time i've actually used Auth0 for user management was to block a specific bitcoin user/bot on the aws pangeo binder which uses github auth (but is open to any github user) https://github.com/pangeo-data/pangeo-binder/issues/188#issuecomment-775539615

whether it's Auth0 or something else it's really nice to have:

a user database that a hub admin can easily navigate
the ability to add and block users without modifying configuration code or yamls.

Somewhat related... During our move to Auth0 we also added this GitHub Action that automatically adds people to a pangeo-data org team based on their pangeo cloud google form application, and that has proven really useful so that we don't have to manually add users to the pangeo-data github org as we did in the past.  https://github.com/pangeo-data/pangeo-cloud-federation/blob/staging/.github/workflows/UpdateMembers.yml

I think we have basically now moved to using GitHub authentication directly, and support Organizations / team based auth. We also support per-team profiles! Closing this one.