fix(selection-list): focus input on screen focus

Details

TextInput was not being focused after coming back from pages, only on first mount.

Refactored the focus logic to always focus the TextInput when the screen is focused
Removed the unnecessary shouldDelayFocus prop, since every list that has a TextInput should delay the focus to after the animation completes, so the animation is not overriden

This is basically a copy of @roryabraham 's Draft PR + removing the unused prop in propTypes and fixing tests.
Fixed Issues

$ https://github.com/Expensify/App/issues/25893
PROPOSAL:
Tests

[X] Verify that no errors appear in the JS console

In all pages listed below, verify this criteria:

When you open the page, input should be focused after animation ends
If the page has the ? help button, press to navigate to the help page, then go back. The input should be focused again
[X] Profile -> Pronouns
[X] Profile -> Timezone
[X] Profile -> Personal Details -> Date of birth -> Year (this is not a common page, it's a Modal, but should work the same)
[X] Workspace -> Members (has ? button)
[X] Workspace -> Members -> Invite (has ? button)

Offline tests

QA Steps

[ ] Verify that no errors appear in the JS console

In all pages listed below, verify this criteria:

When you open the page, input should be focused after animation ends
If the page has the ? help button, press to navigate to the help page, then go back. The input should be focused again
[ ] Profile -> Pronouns
[ ] Profile -> Timezone
[ ] Profile -> Personal Details -> Date of birth -> Year (this is not a common page, it's a Modal, but should work the same)
[ ] Workspace -> Members (has ? button)
[ ] Workspace -> Members -> Invite (has ? button)

PR Author Checklist

[X] I linked the correct issue in the ### Fixed Issues section above
[X] I wrote clear testing steps that cover the changes made in this PR

[X] I added steps for local testing in the Tests section
[X] I added steps for the expected offline behavior in the Offline steps section
[X] I added steps for Staging and/or Production testing in the QA steps section
[X] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[X] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[X] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[X] I included screenshots or videos for tests on all platforms
[X] I ran the tests on all platforms & verified they passed on:

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

[X] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[X] I followed proper code patterns (see Reviewing the code)

[X] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[X] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[X] I verified that comments were added to code that is not self explanatory
[X] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[X] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[X] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[X] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[X] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[X] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[X] I verified the JSDocs style guidelines (in STYLE.md) were followed

[X] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[X] I followed the guidelines as stated in the Review Guidelines
[X] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[X] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[X] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[X] I verified that if a function's arguments changed that all usages have also been updated correctly
[X] If a new component is created I verified that:

[X] A similar component doesn't exist in the codebase
[X] All props are defined accurately and each prop has a /** comment above it */
[X] The file is named correctly
[X] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[X] The only data being stored in the state is data necessary for rendering and nothing else
[X] If we are not using the full Onyx data that we loaded, I've added the proper selector in order to ensure the component only re-renders when the data it is using changes
[X] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[X] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[X] All JSX used for rendering exists in the render method
[X] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[X] If any new file was added I verified that:

[X] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[X] If a new CSS style is added I verified that:

[X] A similar style doesn't already exist
[X] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

[X] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[X] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[X] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[X] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[X] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[X] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[X] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS

Android

Hey @roryabraham here's the follow up to the Draft PR you sent. It's basically the same + a few polishings on propTypes and fixing tests. I left a question for you here, if I can understand what were the issues with your first approach I could maybe try to investigate that road. Thanks!

Yes @thiagobrez I can explain (original explanation here.
There were a few approaches I tried:

useFocusEffect and InteractionsManager.runAfterInteractions, as suggested in the react-navigation docs here. This does not work because on web InteractionsManager.runAfterInteractions uses requestAnimationFrame, which interrupts the transition animation.
set up a listener for transitionEnd and focus the text input there. This does not work when popping a screen off the stack (for example pressing the back button to go from the workspace invite page to the workspace members list). The reason for this is because transitionEnd only runs for the top card on the stack, as explained by Satya in this comment. This means that when you pop a card off the stack, transitionEnd is not fired for the card that is now on top. I think this is a bit of a weird design as both the top and second-to-top card in the stack are affected by the transition, but the maintainer has rejected a PR to change this in the past.

Reviewer Checklist

[x] I have verified the author checklist is complete (all boxes are checked off).
[x] I verified the correct issue is linked in the ### Fixed Issues section above
[x] I verified testing steps are clear and they cover the changes made in this PR

[x] I verified the steps for local testing are in the Tests section
[x] I verified the steps for Staging and/or Production testing are in the QA steps section
[x] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[x] I checked that screenshots or videos are included for tests on all platforms
[x] I included screenshots or videos for tests on all platforms
[x] I verified tests pass on all platforms & I tested again on:

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

[x] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[x] I verified proper code patterns were followed (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I verified that this PR follows the guidelines as stated in the Review Guidelines
[x] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Web & Desktop
https://github.com/Expensify/App/assets/85645967/32ee2bf5-996b-4c40-baee-cbe10c49fa96

Mobile Web - Chrome & Mobile Web - Safari
https://github.com/Expensify/App/assets/85645967/1b28b16d-48af-4a88-aadb-9506706d18fa

iOS
https://github.com/Expensify/App/assets/85645967/9976a3cd-d75e-4711-9f58-12e0a8402a46

Android

Thanks, hoping to merge this as soon as the merge freeze is lifted.

I think this ready to merge but I want to hold off until after 1 more production deploy to prevent us having an unmanageably huge deploy checklist

@thiagobrez can you resolve conflicts here?

@roryabraham Done!

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/roryabraham in version: 1.3.69-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

@mvtglobally raised this is failing https://github.com/Expensify/App/issues/25893 on Android, @thiagobrez could you double check?

@mountiny Yep, on it

@mountiny Works for me on latest main:
https://github.com/Expensify/App/assets/26878038/4cc528e3-8bfd-4b4b-b2a5-ee50f6359c56
If you have more info how to reproduce, I can test it again!

🚀 Deployed to production by https://github.com/mountiny in version: 1.3.69-2 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to staging by https://github.com/roryabraham in version: 1.3.70-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/thienlnam in version: 1.3.70-8 🚀

platform
result

🤖 android 🤖
failure ❌

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅


cmap: follow naming conventions for offset members

For consistency with naming conventions used throughout the spec, fix two deviations from the conventions for offset members:

In encoding record, change "offset" to "subtableOffset"
in format 4, change "idRangeOffset" to "idRangeOffsets"

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

ID: 86923ff4-2b60-9144-e2b4-77cdb36fd698
Version Independent ID: ea221e53-f51a-8233-3c0b-d416e5360623
Content: cmap - Character To Glyph Index Mapping Table - Typography
Content Source: typographydocs/opentype/spec/cmap.md
Product: typography
GitHub Login: @PeterCon
Microsoft Alias: PeterCon

Part of this (idRangeOffsets) has issues — see #1001.


chore: Have our own proto build env image

This will allow us to have a proto build env image of our own, automatically built when it needs to be.
Documentation and Release Note

Does this pull request introduce a new feature or user-facing behavior changes? (yes / no)
Is a relevant changelog entry added to the Unreleased section in CHANGELOG.md? (yes / no)
How is the feature or change documented? (not applicable   /   specification (x/<module>/spec/)  /  Osmosis docs repo   /   not documented)

can you explain in a github issue, more of the overarching reason of why we should do this? I don't really understand why we shouldn't use the process we do rn with the SDK image? (I don't have a great reason for it either - but this is a degree of context thats needed before this can be reviewed)

I prefer to use the SDK image... just need to get it working.
How about, if I don't get auto builds there working, then I make the issue.
If I do, I close this

just curious, does the current SDK image have problems or bugs?

Not exactly.  I just haven't gotten it to work with ghcr.io just yet.
Also, I'm pretty sure that they all have bugs, including the sdk one.  I have yet to see protobuf things work fully smoothly on any repo.

I am going to close this, because the sdk reacted really oddly to go v1.19


Code of conduct

__Originally posted by @AlongRizaL in https://github.com/ardalis/new-software-project-checklist/issues/4__no repository md any project have repository md will find all cost pair to md paid back to Along rezal...this is for all open project.Strip nows the Story.

Thanks for reaching out!
We require the template to be filled out on all new issues and pull requests. We do this so that we can be certain we have all the information we need to address your submission efficiently. This allows the maintainers to spend more time fixing bugs, implementing enhancements, and reviewing and merging pull requests.
Thanks for understanding and meeting us half way :grinning:


Convert to Python 3 package

Description
Convert the fid_drift_mon repo into an installable package that runs in Ska3 and uses modern practices.
Interface impacts

Stores fid drift data in an SQlite3 file fid_stats.db3 instead of Sybase.
Testing

Unit tests
No unit tests.
Functional tests

Planning to compare data values and plots from the new code to those being generated by the Ska2 legacy code.
Test output at https://cxc.cfa.harvard.edu/mta/ASPECT/fid_drift3/

Is there a setup.py hanging around in your local git repo for this @taldcroft ?

Good guess. It's part of this PR now. :smile:

Closing this as superseded by #15


Certain routes false information

Certain routes in the feed don't correspond with the belgianrail website.
Example of trip that shouldn’t be in data on Feb 15th:
18:59, from Bordet to Michelen
stop_id: 8811163
trip_id: IC404095271
service_id: 9527
Thank you Charles from CityMapper for finding this bug!

Could this have happened because this data is added later than when the feed was generated? I'm now working on a system to generate a feed every 3 months instead of once per year. This corresponds to the Belgian Railways own GTFS they give in their data sharing programme: a feed each 3 months.


Dashboard: Dynamically Determine Scale of Circle Radius

Right now the circles are hardcoded to size themselves within a domain of 0-400rps.
They should instead dynamically set this domain to a floor/ceiling derived from the data being streamed -- or at least be easily configurable if that doesn't work well.

Closing this out due to inactivity.  If someone would like to take ownership of the dashboard roadmap, please re-open.


rkt: Allow overriding configuration directory paths

In the same way as we allow overriding rkt data directory. Can be
useful for some functional tests that need clean state. With those
parameters these tests could set their own data and configuration
directories.

I like that :+1:
Documentation/configuration.md would need to mention it instead of just saying /etc/rkt.
An alternative way of doing it would be a compilation option instead than a run-time option. But I prefer the run-time option because it is easier to plug in the tests and users might use it too.
/cc @eyakubovich (/etc/rkt is also used to store the network configuration)

lgtm


iOS does not have a apiversion 3.

Build error on Titianium SDK 6.0.0+
[ERROR] Found incompatible Titanium Modules:
[ERROR]    id: de.marcelpociot.collectionview	 version: 1.0	 platform: ios,iphone	 min sdk: 3.5.1.GA
Because, iOS does not have a apiversion 3.
https://jira.appcelerator.org/browse/TIMOB-24144

Thanks!


Adding method to access the object before stringification

I find this modification adds some flexibility to the usage of the package. Also, do you mind adding a license to the package so I can feel comfortable contributing more and using it in the future?

Thanks for the changes. As you have already figured out, license is ISC. Do i have to attach the file inside project root too?


Quicksilver hangs when searching contacts

In the last 2 or 3 versions of Quicksilver, I'm having an issue with it crashing every time the search results pulls up the first option being a contact.
For example, when searching "bel", I have a contact name Belinda, but I'm trying to search for Bellhop app.
If Belinda comes as the first option on my search, and I try to use the directional buttons on my keyboard to look the other search results, Quicksilver hangs up and stop responding me. So I have to use Force Quit for it.

@kaarlows  - this issue was created a while back, and we haven't made any progress on it, sorry.
Can you please try the latest version of Quicksilver, and if you're still facing this this issue, can you please re-open this issue then confirm where your contacts are stored (iCloud/computer) and whether the hang is related to internet-fetches.


Frustrated at lack of documentation...can anyone help?

The variable "Setpoint" is the desired angle correct? What is its min/max values (the example just has "512")?
I normally use VS Code, but I went to the Arduino IDE to use the Serial Plotter to diagnose things, but it's just a bunch of lines flying by really fast. How can I display the values correctly (I copied this part straight from the example).

Have you tried adding a delay so the lines come by slower? That's what I typically do when debugging. I do agree with you on the lack of documentation

I'm busy with other projects atm, but will eventually take a look at this lib again. As for now, there is an example (which you've found), but there is also a readme that explains quite a few things. The setpoint and gain parameters are interfaced in the same exact way as the legacy Arduino PID library - pass the parameters by reference to the begin() function and change the parameters directly when needed without being required to call any lib functions.
Also, the purpose of the setpoint is simply the desired controller output. That desired output will change depending on your application.

Yeah, absolutely! It would be super cool if it was compatible with Read the Docs. I don't have experience with Read the Docs, but I've tried messing around with doxygen (had issues with getting it to work and pretty much abandoned it).
I'm open to PRs/MRs


Stack Implementation using queues | Queue implementation using Stack

Can i add these questions to the repository?

Yeah,sure

Could you review m pr?


tac: correct behavior of -b option

Correct the behavior of tac -b to match that of GNU coreutils
tac. Specifically, this changes tac -b to assume leading line
separators instead of the default trailing line separators.
Before this commit, the (incorrect) behavior was
$ printf "/abc/def" | tac -b -s "/"
def/abc/

After this commit, the behavior is
$ printf "/abc/def" | tac -b -s "/"
/def/abc

Fixes #2262.

I'm going to close this in favor of a simpler solution.


TournamentServiceImpl null rank not handled

TournamentServiceImpl currently is unable to handle null min or max rank (due to calling a getter method defined by @getter in CreateTournamentDTO.java)

Changed minRank and maxRank to be Integer data type instead of int so it can handle null


Fix editorial inconsistencies or inaccuracies

[ * ] Have you followed the contributing guidelines?
[ * ] Have you explained what your changes do, and why they add value to the Guides?

Please note: we will close your PR without comment if you do not check the boxes above and provide ALL requested information.

Fixed editorial inconsistencies or inaccuracies
I corrected some of the grammatical errors found.

Personally I think this should be reverted. Quotes should not be changed, spurious spaces were added, and it's not clear to me the grammatical changes are improvements.

@mlinksva You're right, I missed that the first quote was adding, and not removing, a space. Feel free to go ahead and revert.


Comprehensive fixup for the Slurm role

Closes #62.
I reworked the Slurm role to deploy the necessary things on all nodes, not just compute nodes.
Overview:

The package building task is now in a separate role given that it will be used only occasionally. The new slurm_pkgbuild role is invoked in a separate entry in site.yml.
The slurm deployment role doesn't make a special case for the user-facing node anymore. From an installation standpoint, the user-facing node is identical to a compute node. To avoid getting the user-facing node clogged up with work, we can just exclude it from partitions.
I've added support for (re)starting services using supervisord on the controller node.

Use cases:

Adding a node to the slurm cluster: run the site playbook with --tags slurm to install munge and slurm on all nodes.
Changing the config file: run the site playbook with --tags slurm-node to take care of slurm daemons + config.
Removing a node from the slurm cluster: this can technically be done with --tags slurm-node because the node will be excluded from the config file, but slurm itself will not be uninstalled or stopped, so the daemon will continue running while being ignored from the controller.

The linting issue is about my ansible.builtin.command: systemctl line, which I'm using to check whether systemd is running on the current node. The linter doesn't like systemd-related things as plain commands. I'll find a solution.

Concerning the init system in use: There is the ansible_service_mgr fact that stores that.
Taken from this SO Answer: https://stackoverflow.com/a/39394420

Concerning the init system in use: There is the ansible_service_mgr fact that stores that. Taken from this SO Answer: https://stackoverflow.com/a/39394420

I tried that last week but it detects systemd for our slurmctld container. I had a look at https://github.com/ansible/ansible/blob/devel/lib/ansible/module_utils/facts/system/service_mgr.py and it looks like our container passes the "offline" systemd test: it's not running but it's installed correctly (possibly pulled in as a dependency). Essentially, since our container is built on ubuntu, it looks like it should be managed by systemd. Furthermore, there's no code in there to check for supervisord.

Instead of checking for systemd, I'm now checking for supervisord while assuming systemd as a default. It looks more appropriate regardless of the linting problem.


[SPARK-43242][CORE][3.5] Fix throw 'Unexpected type of BlockId' in shuffle corruption diagnose

What changes were proposed in this pull request?
port to 3.5 for [SPARK-43242][CORE] Fix throw 'Unexpected type of BlockId' in shuffle corruption diagnose
Why are the changes needed?
3.5 conflict with PR in master, see end of discussion https://github.com/apache/spark/pull/40921
Does this PR introduce any user-facing change?
No
How was this patch tested?
Existing tests

Thanks, merged to branch-3.5.


[KYUUBI #2375][FOLLOWUP] Implement BatchesResource GET /batches

Why are the changes needed?

To return all types of batch when empty batch type specified.
How was this patch tested?

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

[ ] Add screenshots for manual tests if appropriate

[ ] Run test locally before make a pull request

please help me to review it. @turboFei @ulysses-you

Codecov Report

Merging #2583 (8338058) into master (965bf21) will decrease coverage by 0.02%.
The diff coverage is 100.00%.

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

@@             Coverage Diff              @@
##             master    #2583      +/-   ##
============================================
- Coverage     63.82%   63.80%   -0.03%
  Complexity       73       73
============================================
  Files           378      378
  Lines         18140    18141       +1
  Branches       2451     2452       +1
============================================
- Hits          11578    11575       -3
- Misses         5465     5468       +3
- Partials       1097     1098       +1

Impacted Files
Coverage Δ

...g/apache/kyuubi/session/KyuubiSessionManager.scala
87.50% <100.00%> (+0.15%)
:arrow_up:

...rg/apache/kyuubi/engine/trino/TrinoStatement.scala
66.66% <0.00%> (-4.60%)
:arrow_down:

...ache/kyuubi/operation/KyuubiOperationManager.scala
83.60% <0.00%> (-1.64%)
:arrow_down:

...ain/scala/org/apache/kyuubi/engine/EngineRef.scala
79.04% <0.00%> (+0.95%)
:arrow_up:

Continue to review full report at Codecov.

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

merging to master, thanks


Fixes for Microsoft Teams conversation references

Filter out the bot from the conversation members, so we don't attempt to create a conversation with the bot. This was throwing an error.
Use a getter and setter to make sure botApi#conversationReferences and Bot#conversationReferences reference the same object. Previously, these would get out of sync if you do something like botApi.conversationReferences = {...}.
Apply lint formatting.
Populate the conversation reference with extra user data.

:rocket: PR was released in<EMAIL_ADDRESS>:rocket:

:rocket: PR was released in<EMAIL_ADDRESS>:rocket:


Refactor Pl_TIFFPredictor

Use standard library instead of memcpy and raw pointers.
For the last 7 days crashes have been running at over 500 per day. Probably worth seeing whether this makes a difference

Btw, is there a test recipe for performance testing Pl_TIFFPredictor?

Also btw, bits_functions feels overly general.
If n is the number of bits read/written, bits_function does not impose any constraints on n (other then maxima). As far as I can tell, in all cases where the functions are used we have n = 8 * i or n * i  = 8 for some integer i. Only supporting those cases would make the code much easier to reason about, and possibly might be faster.

Also btw, bits_functions feels overly general.
If n is the number of bits read/written, bits_function does not impose any constraints on n (other then maxima). As far as I can tell, in most cases where the functions are used we have n = 8 * i or n * i = 8 for some integer i. Only supporting those cases would make the code much easier to reason about, and possibly might be faster.

I took the bits code from earlier code I had written for that image library I've mentioned. That code needed more general bit support. Also, linearization hint tables use it. Maybe they need more functionality. It's been a long time. The bit code isn't heavily used in most cases, I believe, so I don't how much benefit we'd get from optimizing it. That code has been very stable for a long time. I'm not saying one way or the other about whether it can be simplified, only that it was used in a more general context and that I haven't looked at the code for a very long time.

I've scrutinized this, and I can't see any problems with it. However, with your optimization of the 8 bits per sample case, the coverage has changed. I'm going to double check code coverage and modify the fuzzer so that I'm certain we are exercising other than 8 bits per sample in the fuzzer.


No error message when index.html file is missing

Describe the bug
If there is no index.html file present then running vite shows no errors and trying to access the page will give a 404 server error. Although having a missing index.html file is obviously wrong and unlikely to happen if using the cli, it's easy to forget to add one if migrating an existing project from web pack to vite. I would expect vite to show some error message that no html file was found.
Reproduction

Use the cli to create a vite project.
Remove the index.html file.
Run 'npm run dev'

There will be no error message. Trying to access the page will show a 404 error.
System Info

vite version: 2.0.0-beta.30
Operating System: MacOS 11.1
Node version: 14.4.0
Package manager (npm/yarn/pnpm) and version: npm 6.14.11

Ah. I think the 404 is a explict error message.

Ah. I think the 404 is a explict error message.

Ah. I think the 404 is a explict error message.

Yes, but it doesn't give you any clues as to what is wrong. Many things could lead to a 404.

Ah. I think the 404 is a explict error message.

Yes, but it doesn't give you any clues as to what is wrong. Many things could lead to a 404.

Because vite is a dev server, not a bundler?
If you start a static file http server in an empty directory with no index.html... what do you expect?

Because vite is a dev server, not a bundler?
If you start a static file http server in an empty directory with no index.html... what do you expect?

exist a way to set a different input?, example I would like set a virtual html, and render vue components on it.
Im watching virtual plugin vite example, but it does not works, even some plugin hooks does not be triggered, i tried to set a different input/entry like rollup example but it does not works.
//vite.config.js
import vuePlugin from '@vitejs/plugin-vue'

function myPlugin(opts) {
	const virtualFileId = '@my-virtual-file'
	console.log({ opts });
	return {
		name: 'my-plugin', // required, will show up in warnings and errors
		options(options) {
			console.log({ options });
			return options
		},
		builStart(opc) {
			console.log("buildStart", {
				opc
			});
		},
		resolveId(id) {
			console.log('resolveId', id);
			if (id === virtualFileId) {
				return virtualFileId
			}
		},
		load(id) {
			console.log('load', id);
			if (id === virtualFileId) {
			return `export const msg = "from virtual file"`
			}
		}
	}
  }

export default {
	// build: {
	// 	rollupOptions: {
	// 		input: 'entry'
	// 	}
	// },
	plugins: [
		vuePlugin(),
		myPlugin({
			batman: `export default 'na na na na na'`,
		}),
	]
}

the only hook is triggered is load, I dont know why.

exist a way to set a different input?, example I would like set a virtual html, and render vue components on it.
Im watching virtual plugin vite example, but it does not works, even some plugin hooks does not be triggered, i tried to set a different input/entry like rollup example but it does not works.
//vite.config.js
import vuePlugin from '@vitejs/plugin-vue'

function myPlugin(opts) {
	const virtualFileId = '@my-virtual-file'
	console.log({ opts });
	return {
		name: 'my-plugin', // required, will show up in warnings and errors
		options(options) {
			console.log({ options });
			return options
		},
		builStart(opc) {
			console.log("buildStart", {
				opc
			});
		},
		resolveId(id) {
			console.log('resolveId', id);
			if (id === virtualFileId) {
				return virtualFileId
			}
		},
		load(id) {
			console.log('load', id);
			if (id === virtualFileId) {
			return `export const msg = "from virtual file"`
			}
		}
	}
  }

export default {
	// build: {
	// 	rollupOptions: {
	// 		input: 'entry'
	// 	}
	// },
	plugins: [
		vuePlugin(),
		myPlugin({
			batman: `export default 'na na na na na'`,
		}),
	]
}

the only hook is triggered is load, I dont know why.

To serve custom virtual html you need to add a custom middleware using the configureServer plugin hook because HTML is not handled as part of the normal transforms during dev.

To serve custom virtual html you need to add a custom middleware using the configureServer plugin hook because HTML is not handled as part of the normal transforms during dev.

Because vite is a dev server, not a bundler?

That’s a fair point. Maybe this doesn’t fall on Vite then.

And why would you remove the index.html which is already created for you?

If you’re converting an existing project you may not already have the index.html file.

Because vite is a dev server, not a bundler?

That’s a fair point. Maybe this doesn’t fall on Vite then.

And why would you remove the index.html which is already created for you?

If you’re converting an existing project you may not already have the index.html file.

Closing since this is expected - open to a PR to provide more descriptive error message for this though.

Closing since this is expected - open to a PR to provide more descriptive error message for this though.


[Node-Exporter]: updated helm chart, Readme, dashboards and alerts

@ddiiwoong Please check this contents out. Thanks :)

Thanks @jain-tt


XFail failing driver tests

It looks like an issue crept in with https://github.com/apple/swift-driver/pull/580.
This should get things moving until that can be resolved.

@swift-ci please smoke test

@swift-ci please smoke test


bump dependencies

Applied mkpr on package.json
/tmp/mkpr.sh

Pull Request Test Coverage Report for Build<PHONE_NUMBER>9
Warning: This coverage report may be inaccurate.
This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

For more information on this, see Tracking coverage changes with pull request builds.
To avoid this issue with future PRs, see these Recommended CI Configurations.
For a quick fix, rebase this PR at GitHub. Your next report should be accurate.

Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 94.253%

Totals

Change from base Build<PHONE_NUMBER>3:
0.0%

Covered Lines:
1310

Relevant Lines:
1389

💛  - Coveralls


COM context switch deadlock upon launch

how2fix?

i got the same issue

I don't think this happens anymore, so closing.


Update VgtGlobalSearch.vue

When using ViteJS to build for prod, we are getting an error. It works fine with npm run dev.
"Uncaught (in promise) DOMException: Failed to execute 'setAttribute' on 'Element': '{}-search-placeholder' is not a valid attribute name".
I modified the file to use kebab-case in quotes in the prop and that seemed to have gotten rid of the error and the page now loads.
Not sure why the camel case didn't work.

After further investigating, looks like the issue stems from out vite.config.js.
define: {         "global": {}     },


update deprecations

Passing strings to setAuthor() and setFooter() was deprecated in discord.js v13.5.0 (https://github.com/discordjs/discord.js/pull/7153)
fixes #40
Looks like the Message.deleted property was also removed in v13.4.0 (https://github.com/discordjs/discord.js/pull/7109)
fixes #36
I would appreciate it if this gets applied to the msg branch too since that's what I use :)

my bad, shouldn't have removed the check for reason !== "messageDelete"


Change DNS retries to be a static (requires restart) config value

This fixes #7699

Cherry-picked to v9.2.x


KAFKA-7509: Avoid passing most non-applicable properties to producer, consumer, and admin client

The producer, consumer, and admin client log properties that are supplied but unused by the producer. Previously, Connect would pass many of its worker configuration properties into the producer, consumer, and admin client used for internal topics, resulting in lots of log warnings about unused config properties.
With this change, Connect attempts to filter out the worker’s configuration properties that are not applicable to the producer, consumer, or admin client used for internal topics. (Connect is already including only producer and consumer properties when creating those clients for connectors, since those properties are prefixed in the worker config.)
For the most part, this is relatively straightforward, since there are some top-level worker-specific properties that can be removed, and most extension-specific properties have Connect-specific properties. Unfortunately, the REST extension is the only type of connect extension that uses unprefixed properties from the worker config, so any it is not possible to remove those from the properties passed to the producer, consumer, and admin clients. Hopefully, REST extensions are prevalant yet, and this will mean most users may not see any warnings about unused properties in the producer, consumer, and admin client.
Removing the Connect worker configs is one step. The other is to remove the any properties for the producer that are specific to the consumer and admin client. Likewise, for the consumer we have to remove any properties that are specific to the producer and admin client, and for the admin client remove any properties that are specific to the producer and consumer. Note that any property that is unknown (e.g., properties for REST extension, interceptors, metric reporters, serdes, partitioners, etc.) must be passed to the producer, consumer, and admin client. All of these — except for the REST extension properties — should be used by both the producer and consumer. But, since the admin client only supports metric reporters, any properties for interceptors, serdes, partitioners and REST extension will also be logged as unused. Connect configures the serdes for the producers, so we're left with any custom properties for interceptors and partitioners still getting passed to the AdminClient, but this is about the best we can do at this point.
All of this filtering logic was added to the ConnectUtils class, allowing the logic to be easily unit tested and minimize changes to other existing code. All changes are limited to Kafka Connect, and will work with all client and Connect extensions (passing them to the clients if they are unknown). Also, note that when configuring the producers and consumers for connectors, Connect only uses the properties that begin with the producer. and consumer. prefixes, respectively.
This supersedes #5867 and #5802.
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

retest please

retest this please

Has this fix been abandoned?

KAFKA-6793 and #8043 appears to be a super simple fix that will eliminate these warnings by making them debug statements. Since that change obviates the need for this far more complex change, I'm closing this PR without merging and marking  KAFKA-7509 as WONTFIX.

I'd like to ask for this to be reopened and addressed, since it seems KAFKA-6793 and #8043 won't happen.

I'll reopen, and I hope to update this soon to remove the merge conflicts.

I still hope this can be fixed soon.

As a new user, I am a bit concerned about warnings that appear in logs.
Warnings usually indicate that the software found something questionable but not fatal.
In most applications, these are things that the user/system admin should investigate to be sure that the issue flagged is not a "real" problem or is not going to cause unexpected behavior.
Spitting out a whole lot of messages as WARN that have no value and are expected normal behavior is not correct.
When things are not working, they are a definite PITA as one tries to find out what the real problem may be.

just checking in, has this been resolved?

Should KAFKA-10090 also fix this ?

        kafkaEndpointBuilder.kerberosRenewWindowFactor((String) null);         kafkaEndpointBuilder.kerberosRenewJitter((String) null);         kafkaEndpointBuilder.kerberosInitCmd(null);         kafkaEndpointBuilder.kerberosBeforeReloginMinTime((String) null);         kafkaEndpointBuilder.sslTruststoreType(null);         kafkaEndpointBuilder.sslTrustmanagerAlgorithm(null);         kafkaEndpointBuilder.sslKeystoreType(null);         kafkaEndpointBuilder.sslEndpointAlgorithm(null);         kafkaEndpointBuilder.sslProtocol(null);         kafkaEndpointBuilder.sslEnabledProtocols(null);         kafkaEndpointBuilder.sslKeymanagerAlgorithm(null);
solves the problem for me.

        kafkaEndpointBuilder.kerberosRenewWindowFactor((String) null);         kafkaEndpointBuilder.kerberosRenewJitter((String) null);         kafkaEndpointBuilder.kerberosInitCmd(null);         kafkaEndpointBuilder.kerberosBeforeReloginMinTime((String) null);         kafkaEndpointBuilder.sslTruststoreType(null);         kafkaEndpointBuilder.sslTrustmanagerAlgorithm(null);         kafkaEndpointBuilder.sslKeystoreType(null);         kafkaEndpointBuilder.sslEndpointAlgorithm(null);         kafkaEndpointBuilder.sslProtocol(null);         kafkaEndpointBuilder.sslEnabledProtocols(null);         kafkaEndpointBuilder.sslKeymanagerAlgorithm(null);
solves the problem for me, works with SSL.

I've taken an alternative approach in https://github.com/apache/kafka/pull/11986. If anyone wants to take a look and either review the changes or take them for a spin locally, I'd appreciate any feedback. Thanks!

Would love to get this fixed. How can I help?

@szalapski Would you be willing to do a round of review on https://github.com/apache/kafka/pull/11986? It's grown out of date and I have to do a rebase on it, but the high-level idea should remain the same. IMO the biggest hurdle to getting it merged is deciding whether or not the changes proposed there require a KIP; would be good to get thoughts on that in addition to the standard code review.

@rhauch Any idea how to move this along?

@rhauch Can we either close or merge this?

@szalapski I think we've deprioritized work on this front since https://github.com/apache/kafka/pull/13225 appears to be a reasonable compromise. We still emit messages about unused properties, which of course isn't great, but since they now take place at the INFO level instead of WARN, the overall issue is addressed: users no longer have to worry about the WARN level being polluted with unactionable and unavoidable warnings.
If you've upgraded to a version of Kafka that contains the changes from https://github.com/apache/kafka/pull/13225 and aren't satisfied, can you help us understand (either here or with a comment on KAFKA-7509) how this is still impacting you?

That sounds great. I'll try to upgrade and look into it soon.  Feel free to close.

@rhauch or @C0urante please close this as I suspect you'd like to.

Yeah, I'm going to close this. As @C0urante mentioned above:

We still emit messages about unused properties, which of course isn't great, but since they now take place at the INFO level instead of WARN, the overall issue is addressed: users no longer have to worry about the WARN level being polluted with unactionable and unavoidable warnings.


How to add popup and marker information to GeoJSON module

I tried to figure it out by myself but I am a bit blocked switching to dash-leaflet==0.1.0.
I had a markergroup as:
group = dl.MarkerClusterGroup(id="markers",
                                         children=markers,
                                          options={"polygonOptions": {"color": "red"}}
                                          ),

and used it
 dl.Map(preferCanvas=True,
                   attributionControl=False,
                   children=[ group, ...

However the MarkerClusterGroup seems deprecated in favor of the SuperCluster / GeoJSON.
I managed to get markers on the SuperCluster, but how do I pass the popup with it?

A marker being like
dl.Marker(children=dl.Popup(
                [
                    html.Div(f'Point {i}'),
                    html.A('link', target='_blank', href='https://www.google.com'),
                    html.Div(html.Img(src='...'))
                ]), position=item["geometry"]["coordinates"], id={"point": i})

If I keep using MarkerClusterGroup I get the following error:
react@16.v1_7_0m1598376541.13.0.js:2210 Uncaught Error: Component MarkerClusterGroup not found in dash_leaflet
    at Object.resolve (dash_renderer.v1_7_0m1598376560.dev.js:39855)
    at getProps (dash_renderer.v1_7_0m1598376560.dev.js:38885)
    at persistenceMods (dash_renderer.v1_7_0m1598376560.dev.js:38990)
    at dash_renderer.v1_7_0m1598376560.dev.js:39019
    at Array.forEach (<anonymous>)
    at persistenceMods (dash_renderer.v1_7_0m1598376560.dev.js:39017)
    at dash_renderer.v1_7_0m1598376560.dev.js:39019
    at Array.forEach (<anonymous>)
    at persistenceMods (dash_renderer.v1_7_0m1598376560.dev.js:39017)
    at dash_renderer.v1_7_0m1598376560.dev.js:39019

The MarkerClusterGroup is deprecated, but my intention was actually to keep it for backwards compability. It seem that there was a mistake in the build process.

Maybe the default behavior should be to bind tooltip/popup if the feature has properties with these names

Thanks @emilhe for your quick reaction all the time!
The rc1 works again!
I am still a bit puzzled about the popups logic. In the previous version, the API was very clear as every marker could have it's own popup and the use of dash_html elements and dash_core_components as children felt very well integrated into the dash architecture as such. Currently I use images and whatnot in every popup and the code stays all readable with the MarkerCluster.
Now I have to setup a secondary dependency (transcrypt) without really seeing what this does. I understand this is done for performance reasons

Maybe the default behavior should be to bind tooltip/popup if the feature has properties with these names?

Yes, and then it would maybe be possible to build a convert function in Python that would take a list of dl.Marker (as of now) and transforms this into geoJSON which can then be simply inserted into the GeoJSON module?

Example popup in my app

Maybe I can help getting this functionality into the GeoJSON?

It should be possible to change the dash-transctypt dependency to being optional; I'll look into that. I just tried out binding tooltip/popup per default (version 0.1.1rc2), which would lead to a syntax like this,
import dash
import dash_html_components as html
import dash_leaflet as dl
import requests

import dash_leaflet.express as dlx

# Get some example data (a list of dicts with {name: country name, latlng: position tuple, ...})
marker_data = requests.get("https://gist.githubusercontent.com/erdem/8c7d26765831d0f9a8c62f02782ae00d/raw"
                           "/248037cd701af0a4957cce340dabb0fd04e38f4c/countries.json").json()
# Create marker cluster.
dicts = [dict(tooltip=m["name"], popup=m["capital"], lat=m["latlng"][0], lon=m["latlng"][1]) for m in marker_data]
cluster = dl.GeoJSON(id="markers", data=dlx.dicts_to_geojson(dicts), cluster=True, zoomToBoundsOnClick=True)
# Create app.
app = dash.Dash()
app.layout = html.Div(dl.Map([dl.TileLayer(), cluster], zoom=3, center=(51, 10)),
                      style={'width': '100%', 'height': '50vh', 'margin': "auto", "display": "block"})

if __name__ == '__main__':
    app.run_server()

which is not that far from the MarkerClusterGroup syntax.

This is already much appreciated. Syntax is pretty much back to normal +1!
But I guess we can still not use dash_html or something like that in the markers with this way

Great! Yes, that's the main remaining drawback. I am still thinking about how to address that issue. I am currently thinking about something like targeting the popup container via a Dash callback somehow. If this could be done, i guess you could fill in any info needed (pictures, graph, html, ...).

about something like targeting the popup container via a Dash callback somehow. If this could be done, i guess you could fill in any info needed (pictures, graph, html, ...).

This sounds like a good idea! I would not need more than one open popup at the time. Something along the line using pattern matching callbacks

@app.callback(Output({'marker': MATCH, 'target': 'popup'}, 'open'),  # a open flag could also be used in the same callback to close again if already open
              [
                Input({'marker': MATCH, 'target': 'marker'}, 'n_clicks'),
              ],
              [
                  State({'marker': MATCH, 'target': 'marker'}, 'open')
              ])
def show_popup(n):
    marker_id = ...  # some logic to extract the id from match

    return html.Div([
        html.Strong(f'Point {marker_id}'),
        html.Img(src='...')
    ])

Like this the GeoJSON module can stay specialized on the geojson features and if one wants to have funky popups, this is handled with "standard" dash components

I have just released version 0.1.1; it fixes the MarkerClusterGroup issue, introduced the new tooltip/popup syntax, and removes the dash-transcrypt dependency :)
Yes, exactly. From a performance perspective, the idea is to avoid rendering all the popups beforehand. If you have a million markers, and each tooltip contains images and graph, it would take forever to load. And from a user perspective, i would like a solution based on Dash components; as you note, it's much easier than anything else...

You're awesome! Thanks

From a performance perspective, the idea is to avoid rendering all the popups beforehand

True. This is what I am doping now. I do not have too many markers (yet!). So getting this new way would be awesome

And from a user perspective, i would like a solution based on Dash components; as you note, it's much easier than anything else...

Indeed, something for the next release?

Now that i think about it; you can actually just use a tooltip on the GeoJSON component itself and update it using a callback. Hence, the following code should work without any modifications to dash-leaflet (i.e. using versiuon 0.1.1),
import dash
import dash_html_components as html
import dash_core_components as dcc
import dash_leaflet as dl
import plotly.express as px
import requests
import dash_leaflet.express as dlx
from dash.dependencies import Output, Input

# Get some example data (a list of dicts with {name: country name, latlng: position tuple, ...})
marker_data = requests.get("https://gist.githubusercontent.com/erdem/8c7d26765831d0f9a8c62f02782ae00d/raw"
                           "/248037cd701af0a4957cce340dabb0fd04e38f4c/countries.json").json()
# Create marker cluster.
dicts = [dict(name=m["name"], lat=m["latlng"][0], lon=m["latlng"][1]) for m in marker_data]
cluster = dl.GeoJSON(id="markers", data=dlx.dicts_to_geojson(dicts), cluster=True, zoomToBoundsOnClick=True,
                     children=[dl.Tooltip(id="tooltip")])
# Create app.
app = dash.Dash(prevent_initial_callbacks=True)
app.layout = html.Div(dl.Map([dl.TileLayer(), cluster], zoom=3, center=(51, 10)),
                      style={'width': '100%', 'height': '50vh', 'margin': "auto", "display": "block"})

@app.callback(Output("tooltip", "children"), [Input("markers", "hover_feature")])
def update_tooltip(feature):
    if feature is None:
        return None
    # Create a figure. Or an image. Or anything else :)
    fig = px.scatter(px.data.iris(), x="sepal_width", y="sepal_length")
    fig.layout.title = feature["properties"]["name"]
    fig.layout.width = 300
    fig.layout.height = 200
    return dcc.Graph(figure=fig)

if __name__ == '__main__':
    app.run_server()

@emilhe Thanks for this example, not only did I get my app working with the new GeoJSON module, but I managed to throw away quite some code of which this new module now takes care!
sent you a little thankyou through the donate button (you could maybe switch to github sponsoring instead of paypal?)

tap node on ipad foes not open the popups   is there a wirkaeound?

Thanks so much! I'll definitely check out github sponsoring also - it seems that it just got out of beta. Are you using ToolTip or Popup on the iPad?

I used Popup and click_data. I would prefer Popup

If I close the popup on the x on the top right, I can open another. But if I click on another marker while a popup is open neither popup will work....
@app.callback(Output("popup", "children"), [Input("markers", "click_feature")])

with
dl.GeoJSON(id="markers", data=None, cluster=True, zoomToBoundsOnClick=True,
                                 format="geojson", children=[dl.Popup(id="popup")]),

I believe by setting the popup options as follows
dl.Popup(id="popup",
autoClose=True,
closeOnEscapeKey=True, closeOnClick=True
)

it is working correctly?

The problem is that the behaviour on a touch device is a bit flaky, see the example movie attached
Untitled.mov.zip

Thanks for the video! Yeah that doesn't look so good. I'll try to think about a solution. I was aware that hover functionality doesn't work on touch devices, but i would have imagined that popups would work...

Since yesterday I was testing and testing all the possible settings and it just stayed flaky on my ipad. This morning I accessed my app through a different URL and suddenly everything was fine.....
After a cleanup of the website cache on my device, the flakyness stopped. I am very sorry for the hassle caused just because some old JS or whatever was somehow interfering from the browser cache (should have known).
Many thanks for you help and responsiveness. I guess we can close this issue

@nistran
Here is some example code
You need a GeoJson with a dl.Popup as child:
dl.Map([
     dl.GeoJSON(id='markers', data=..., children=[dl.Popup(id="popup")]),
])

then a callbacjk in dash for filling the popup:
@app.callback(Output("popup", "children"),
                  [Input("markers", "click_feature")])
    def update_tooltip(feature):
        if feature is None:
            raise PreventUpdate
        image_urls = ... # get them from somewhere

        return [
            html.Div([
                'Title'
            ]),
            make_image_slider(images)
        ]

and the image renderer:
def make_image_slider(image_urls: List[str]):  # List of URLs, the output of this must be feed via callback into the dl.Popup.children

    images = []
    for i, url in enumerate(image_urls):
        images.append(
            html.Div(id=f'slide-{i}', children=[
                html.Img(src=url)
            ])
        )

    image_links = [html.A(str(i), href=f'#slide-{i}') for i, img in enumerate(images)]

    return html.Div(
        children=[
            'Title',
            ' ',
            *image_links,
            html.Div(children=pictures, className='slides'),

        ],
        className='slider')

and then you need some css code for that

.slider {
    width: 200px;
    text-align: center;
    overflow: hidden;
}

.slides {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
}

.slides::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

.slides::-webkit-scrollbar-thumb {
    background: black;
    border-radius: 10px;
}

.slides::-webkit-scrollbar-track {
    background: transparent;
}

.slides > div {
    scroll-snap-align: start;
    flex-shrink: 0;
    width: 200px;
    height: 200px;
    margin-right: 50px;
    border-radius: 10px;
    background: #eee;
    transform-origin: center center;
    transform: scale(1);
    /*transition: transform 0.5s;*/
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 100px;
}

.slides > div:target {

    transform: scale(0.999);
}

.slider img {
    object-fit: cover;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.slider > a {
    display: inline-flex;
    width: 1.5rem;
    height: 1.5rem;
    background: white;
    text-decoration: none;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    margin: 0 0 0.5rem 0;
    position: relative;
}

.slider > a:active {
    top: 1px;
}

Output("popup", "children")

Thank you for that. Works like a charm. Really nice work :+1:
I'm now wondering if there is a way to prevent the popup when using superclusters and clicking of one of the clusters. Or getting the the Points, which are included in the cluster.
But I think this is worth a new issue ;)


zerocracy vitals url is not available

This URL is broken: https://h1alexbel.github.io/fakehub/fakehub-vitals.html

This should be good: https://www.h1alexbel.xyz/fakehub/zerocracy/fakehub-vitals.html


Disable the Generate Sponsors Cronjob on Forks

Type of Change

[x] Bug fix

Description
Disables the Generate Sponsors Cronjob on Forks
At the moment, the workflow tries to run periodically on all up-to-date forks but fails because ${{ secrets.PAT }} is not configured. Depending on the Configuration of the User this results in failure E-Mails being sent to the user periodically.
This change was directly taken from the PR #2402 by @wojsmol
Impact
No more Email and Notification Spam for Contributors
Issue related to PR

Resolves #2468

Additional Information
The original PR also disabled the Compile and Close Issue Action. I don't see why this would be necessary because these actions run without a problem. Therefore I omitted them from this PR

@Marterich Quoting from my issue

.github/workflows/compile.yaml is causing that main branch on fork is at least 1 commit ahead of main branch of this repository when synchronizing fork In addition if someone create PR directly from main branch then that PR contains updated winutil.ps1 and this is not intended change.

This also occurs on any branch created from main and is visible on https://github.com/Marterich/winutil/commit/af4958dd8c2b85d42d04307bcaf717cdf69a81e6

@Marterich Quoting from my issue

.github/workflows/compile.yaml is causing that main branch on fork is at least 1 commit ahead of main branch of this repository when synchronizing fork In addition if someone create PR directly from main branch then that PR contains updated winutil.ps1 and this is not intended change.

This also occurs on any branch created from main and is visible on Marterich@af4958d

Fair argument. But the problem with downright disabling it would be, that at the moment, you can be certain that if you modify something, the winutil.ps1 in your fork is up-to-date. This would not really be the case anymore.
I thought about how to fix this in the past and I almost always came to the conclusion, that probably the only "real" solution to once and for all get rid of the "winget.ps1 has changed and needs is included in a PR" Problem, would be to remove the file completely from the Git Tracking (and therefor all repos) and only include the compiled File in the Releases and Pre-Releases, but I think a change like this should be carefully examined.


[fix] Enforcing main dttm column

This PR ensures that if defined the "Main Datetime Column" is used as the default value. Previously this value was being ignored and thus for datasource with multiple temporal columns a sub-optimal choice may occur, i.e., using a non-partitioned column.
to: @GabeLoins @graceguo-supercat @michellethomas @mistercrunch  @williaster

Codecov Report

Merging #5584 into master will increase coverage by 14.04%.
The diff coverage is 100%.

@@             Coverage Diff             @@
##           master    #5584       +/-   ##
===========================================
+ Coverage    63.6%   77.64%   +14.04%
===========================================
  Files         359       46      -313
  Lines       22781     9176    -13605
  Branches     2530        0     -2530
===========================================
- Hits        14489     7125     -7364
+ Misses       8277     2051     -6226
+ Partials       15        0       -15

Impacted Files
Coverage Δ

superset/connectors/sqla/models.py
78.96% <100%> (+0.04%)
:arrow_up:

...explore/components/controls/ColorPickerControl.jsx

...explore/components/controls/AdhocFilterControl.jsx

...src/explore/components/controls/SpatialControl.jsx

...essageToasts/utils/getToastsFromPyFlashMessages.js

superset/assets/src/visualizations/histogram.js

superset/assets/src/components/VictoryTheme.js

superset/assets/src/components/EditableTitle.jsx

...d/util/logging/getLoadStatsPerTopLevelComponent.js

...et/assets/src/explore/components/controls/index.js

... and 303 more

Continue to review full report at Codecov.

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

This PR would remedy #3629, I suppose.
Thanks a lot!

LGTM


[Sandbox] Drasi

Application contact emails
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>Project Summary
Drasi is a change data processing platform that automates real-time detection, evaluation, and meaningful reaction to events in complex, event-driven systems.
Project Description
Drasi is engineered to identify and react in real-time to events in complex, event-driven systems. Drasi streamlines the development of change detection systems for developers and software architects by eliminating the need to integrate multiple specialized tools and services. It offers a unified solution that provides built-in capabilities to track system logs for specific events, evaluate them for relevance, and automatically initiate appropriate reactions.
It operates through three main components:
i.      Sources connect to data repositories within software systems, monitoring logs and feeds for specific events.
ii.     Continuous Queries are the central component of Drasi. They interpret monitored events by applying specific criteria and conditions to identify significant changes. Running continuously, these queries evaluate incoming events in real-time, enabling Drasi to detect and react to events promptly. Implemented using the Cypher Query Language, Continuous Queries provide Drasi with precise and customizable event analysis functionality.
iii.    Reactions trigger meaningful responses based on updates to the result sets of the Continuous Queries.
Drasi is also extendable at its two points of integration, Sources and Reactions. Beyond the currently available options, developers can easily create new Sources and Reactions, allowing them to customize Drasi for specific environments and requirements.
Org repo URL (provide if all repos under the org are in scope of the application)
http://github.com/drasi-project (github.com)
Project repo URL in scope of application
http://github.com/drasi-project/drasi-platform (github.com)
Additional repos in scope of the application
https://github.com/drasi-project/drasi-core
Website URL
https://drasi.io
Roadmap
Drasi's roadmap is available here, https://github.com/drasi-project/community/blob/main/ROADMAP.md
Roadmap context
Moving forward, we will focus on improvements that enable Drasi to support real-world, production workloads. Specific areas of investment will include but will not be limited to scalability, performance and security. We have extensibility in place for Sources and Reactions. We’re ready to accept contributions and assist the community with expanding the set of supported technologies.  Areas for improvement include:
i.    Improve developer experience
ii.    Implement a flexible security model
iii.   Enhance platform resilience
iv.   Increase operational readiness
We will prioritize this work based on community feedback.
Contributing Guide
http://github.com/drasi-platform/CONTRIBUTING.md at main drasi-project/drasi-platform (github.com)
Code of Conduct (CoC)
http://github.com/drasi-platform/CODE_OF_CONDUCT.md at main drasi-project/drasi-platform (github.com)
Adopters
No response
Contributing or Sponsoring Org
Microsoft
Maintainers file
http://github.com/community/MAINTAINERS.md at main drasi-project/community (github.com)
IP Policy

[x] If the project is accepted, I agree the project will follow the CNCF IP Policy

Trademark and accounts

[x] If the project is accepted, I agree to donate all project trademarks and accounts to the CNCF

Why CNCF?
We aim to enable innovation in event-driven system management and this goal aligns closely with CNCF's focus on promoting cloud-native computing and the development of scalable, dynamic applications.

Drasi addresses critical needs in event-driven systems—a core aspect of cloud-native architectures—by simplifying change detection and reaction mechanisms.
Integrating with other CNCF projects like Kubernetes and Prometheus enhances Drasi’s functionality and provides users with a cohesive ecosystem. Additionally, Drasi's event-driven, micro services-friendly architecture fits well within the CNCF landscape, promoting best practices in cloud-native development.
CNCF's commitment to open-source development and community engagement mirrors our own and its vendor-neutral governance model will ensure that Drasi remains an open and community-driven project.

Benefit to the Landscape
Contributing Drasi to the CNCF landscape will bring significant benefits by enhancing the ecosystem's capabilities in real-time event detection, processing, and automated reactions within cloud-native environments.

Drasi fills a gap in the current cloud-native landscape by providing developers a versatile tool for building reactive, event-driven applications.
It introduces unique functionality for continuous querying and real-time reaction to data changes.
Drasi's ability to integrate with various data sources and systems makes it easier for organizations to adopt cloud-native practices without overhauling their existing infrastructure making the CNCF ecosystem more attractive to them.
Drasi simplifies development by providing a comprehensive solution for change detection and reaction, allowing developers to focus on core functionality rather than integrating multiple tools.

Cloud Native 'Fit'
Drasi embodies key cloud-native principles by enabling applications to be more responsive, scalable, and manageable in dynamic cloud environments.
Event-Driven Architecture:

Reactive Systems: Drasi is designed around an event-driven model, allowing applications to react to changes in data and system states in real-time. This aligns with the cloud-native emphasis on building reactive, responsive systems.
Loose Coupling: By decoupling the detection of events from the reactions, Drasi promotes a modular architecture where components can evolve independently.

Micro services-Friendly:

It integrates easily with other micro services, facilitating communication and coordination across a distributed application landscape.

Containerization and Management:

Drasi is designed to run within containers ensuring consistency across development, testing, and production environments.
Management of Drasi is via a CLI or API.
Drasi integrates with the OpenTelemetry observability framework.

Cloud-Agnostic Design:

Drasi is designed to be cloud-agnostic, allowing it to run on any public, private, or hybrid cloud infrastructure without significant changes.

Cloud Native 'Integration'
Drasi depends on

Kubernetes
DAPR

Drasi integrates with the following for observability:

OpenTelemetry
Prometheus

Cloud Native Overlap
At present, we have not identified a CNCF project that offers all the features that Drasi has as a comprehensive solution.
Similar projects
There are several event-driven automation framework CNCF projects such as Argo Events and Knative Eventing (component of Knative). While none of these projects are identical to Drasi, they offer similar functionality for event detection, processing, and automated reactions in real-time. Drasi distinguishes itself by providing an integrated platform specifically designed for change data processing, combining event monitoring, continuous queries for event assessment, and reaction mechanisms in a unified solution.
Contributing Drasi to the CNCF adds value by providing capabilities not fully addressed by existing projects, enhancing the ecosystem's capabilities in automated change detection and response.
Landscape
No. Drasi is not already listed in the CNCF landscape.
Business Product or Service to Project separation
Currently, there aren’t any managed service offerings or business products based on Drasi. If in the future this changes, the service or offering will exist separate from the upstream open-source project under CNCF governance.
Project presentations
Drasi has not been presented to a CNCF TAG. We are interested in presenting to the App Delivery TAG and will seek an opportunity to do so in the coming months.
Project champions
The Drasi team briefed Chris Aniszczyk and he's supportive of the project going through the CNCF project proposal process.
Additional information
No response

Thank you for taking a look at the Drasi Sandbox Issue and adding the Runtime label, @angellk. Would it be possible to know what aspects of Drasi make it a good fit for the Runtime TAG? I am hoping to learn more about the TAG and what they would like to see presented to them. When we reviewed Drasi with Chris Aniszczyk, he mentioned that the App Delivery TAG would be suitable group for it. Any information would be greatly appreciated!


ValueError

Hello, teacher!
I followed your github operation steps under the installation, I used prodigal to predict the virus protein .faa and.gff files. Then run the code as follows:
nohup ./metafisher/metafisher.py --gff data_test/GCF_000070465.1/vOTU-gene.gff.gz
--faa data_test/GCF_000070465.1/vOTU-protein.faa.gz
--outdir metafisher_results1
--diamond_db TA_data/type_II_TA.dmnd -v &
The error is as follows:

ask for your help

Hello,
The error message indicates that MeTAfisher is not able to map the gene IDs from the hmmsearch results (originally sourced from the faa file) to the CDS entries of the gff file.
MeTAfisher expects to find the gene ID either in the attribute protein_id= of the CDS line or, if that attribute is absent, it uses the ID found in the ID= attribute of the line. Each of these IDs should correspond to a protein sequence present in the faa file.
To diagnose this issue, can you verify whether the protein_id or ID attributes in your GFF file match the sequence IDs in your FAA file?
For instance, if you have the following sequence in the faa file:
>WP_003806928.1
MKVMASVKRICRNCKVIKRHGVVRVICTDPRHKQRQG

It should have a corresponding line in the gff file with the same protein_id=WP_003806903.1:
NC_010645.1	Protein Homology	CDS	31171	31482	.	+	0	gene=rpsJ;protein_id=WP_003806903.1;transl_table=11

or ID=WP_003806903.1
NC_010645.1	Protein Homology	CDS	31171	31482	.	+	0	ID=WP_003806903.1;Parent=gene-BAV_RS00140;Dbxref=Genbank:WP_003806903.1,GeneID:41391953

Best regards,
Jean

Thank you for your quick reply, I used the protein prediction made by prodigal to get the.FAA and.GFF at the same time.

Unfortunately, the gff and faa files generated by Prodigal do not seem to be compatible with metafisher's expectations. This is something that could be enhanced in the code for better compatibility.
As a quick fix, you could process the gff file to include the "protein_id" attribute that metafisher requires. To accomplish this, you can use an AWK command:
awk 'BEGIN {OFS="\t"} $1 != prev_first  {counter = 1; prev_first = $1} $1 !~ /^#/ {print $0"protein_id="$1"_"counter++";"}' your_initial.gff > your_new.gff

This appends a new "protein_id" attribute at the end of each line, composed of the contig's name and a counter.
After applying this command, you can try to run metafisher using the newly generated gff file.
Best,
Jean

Hello, teacher, I'm sorry to bother you again. After I modified awk according to you, there are still problems in operation. I would like to ask what software you used to make protein prediction.
cat nohup.out
INFO: Mode verbose ON
INFO: command line: metafisher/metafisher.py --gff data_test/GCF_000070465.1/vOTU-gens_new.gff.gz --faa data_test/GCF_000070465.1/vOTU-protein.faa.gz --outdir metafisher_results-1 --diamond_db TA_data/type_II_TA.dmnd -v
INFO: Running hmmsearch to identify TA genes.
INFO: Protein sequence file data_test/GCF_000070465.1/vOTU-protein.faa.gz ends with gz. It will be unzipped first to be used in hmmsearch.
INFO: zcat command: zcat data_test/GCF_000070465.1/vOTU-protein.faa.gz > metafisher_results-1/vOTU-protein.faa
INFO: hmmsearch command: hmmsearch -E 0.0005 --domtblout metafisher_results-1/vOTU-protein.faa.hmmsearch /data/home-lusy/software/MeTAfisher/TADB_stat/TA_domains.hmm metafisher_results-1/vOTU-protein.faa > metafisher_results-1/vOTU-protein.faa.hmmsearch.LOG
INFO: diamond command: diamond blastp -q data_test/GCF_000070465.1/vOTU-protein.faa.gz -d TA_data/type_II_TA.dmnd -o metafisher_results-1/vOTU-protein.faa.diamond --outfmt 6 qseqid sseqid qstart qend sstart send pident qcovhsp evalue bitscore stitle > /dev/null
diamond v<IP_ADDRESS> (C) Max Planck Society for the Advancement of Science, Benjamin Buchfink, University of Tuebingen
Documentation, support and updates available at http://www.diamondsearch.org
Please cite: http://dx.doi.org/10.1038/s41592-021-01101-x Nature Methods (2021)
#CPU threads: 64
Scoring parameters: (Matrix=BLOSUM62 Lambda=0.267 K=0.041 Penalties=11/1)
Temporary directory: metafisher_results-1
#Target sequences to report alignments for: 25
Opening the database...  [0.003s]
Database: TA_data/type_II_TA.dmnd (type: Diamond database, sequences: 12358, letters: 1525882)
Block size =<PHONE_NUMBER>
Opening the input file...  [0.409s]
Opening the output file...  [0s]
Loading query sequences...  [7.874s]
Masking queries...  [1.118s]
Algorithm: Double-indexed
Building query histograms...  [0.741s]
Seeking in database...  [0s]
Loading reference sequences...  [0.005s]
Masking reference...  [0.009s]
Initializing temporary storage...  [0s]
Building reference histograms...  [0.008s]
Allocating buffers...  [0s]
Processing query block 1, reference block 1/1, shape 1/2, index chunk 1/4.
Building reference seed array...  [0.009s]
Building query seed array...  [0.27s]
Computing hash join...  [0.111s]
Masking low complexity seeds...  [0.002s]
Searching alignments...  [0.004s]
Deallocating memory...  [0s]
Processing query block 1, reference block 1/1, shape 1/2, index chunk 2/4.
Building reference seed array...  [0.006s]
Building query seed array...  [0.323s]
Computing hash join...  [0.125s]
Masking low complexity seeds...  [0.004s]
Searching alignments...  [0.011s]
Deallocating memory...  [0s]
Processing query block 1, reference block 1/1, shape 1/2, index chunk 3/4.
Building reference seed array...  [0.017s]
Building query seed array...  [0.358s]
Computing hash join...  [0.102s]
Masking low complexity seeds...  [0.002s]
Searching alignments...  [0.018s]
Deallocating memory...  [0s]
Processing query block 1, reference block 1/1, shape 1/2, index chunk 4/4.
Building reference seed array...  [0.006s]
Building query seed array...  [0.264s]
Computing hash join...  [0.085s]
Masking low complexity seeds...  [0.003s]
Searching alignments...  [0.006s]
Deallocating memory...  [0s]
Processing query block 1, reference block 1/1, shape 2/2, index chunk 1/4.
Building reference seed array...  [0.008s]
Building query seed array...  [0.285s]
Computing hash join...  [0.113s]
Masking low complexity seeds...  [0.004s]
Searching alignments...  [0.011s]
Deallocating memory...  [0s]
Processing query block 1, reference block 1/1, shape 2/2, index chunk 2/4.
Building reference seed array...  [0.012s]
Building query seed array...  [0.357s]
Computing hash join...  [0.081s]
Masking low complexity seeds...  [0.002s]
Searching alignments...  [0.004s]
Deallocating memory...  [0s]
Processing query block 1, reference block 1/1, shape 2/2, index chunk 3/4.
Building reference seed array...  [0.01s]
Building query seed array...  [0.348s]
Computing hash join...  [0.093s]
Masking low complexity seeds...  [0.003s]
Searching alignments...  [0.007s]
Deallocating memory...  [0s]
Processing query block 1, reference block 1/1, shape 2/2, index chunk 4/4.
Building reference seed array...  [0.008s]
Building query seed array...  [0.265s]
Computing hash join...  [0.08s]
Masking low complexity seeds...  [0.004s]
Searching alignments...  [0.006s]
Deallocating memory...  [0s]
Deallocating buffers...  [0.048s]
Clearing query masking...  [0.128s]
Computing alignments... Loading trace points...  [0.004s]
Sorting trace points...  [0.005s]
Computing alignments...  [3.822s]
Deallocating buffers...  [0s]
Loading trace points...  [0s]
[3.833s]
Deallocating reference...  [0s]
Loading reference sequences...  [0s]
Deallocating buffers...  [0s]
Deallocating queries...  [0.032s]
Loading query sequences...  [0s]
Closing the input file...  [0s]
Closing the output file...  [0.004s]
Closing the database...  [0s]
Cleaning up...  [0s]
Total time = 17.673s
Reported 30902 pairwise alignments, 30902 HSPs.
7168 queries aligned.
Traceback (most recent call last):
File "/data/home-lusy/software/MeTAfisher/metafisher/metafisher.py", line 309, in
main()
File "/data/home-lusy/software/MeTAfisher/metafisher/metafisher.py", line 290, in main
out.write_result(genes, dict_output, contig)
File "/data/home-lusy/software/MeTAfisher/metafisher/OutputFct_MetaF.py", line 175, in write_result
write_table_pairs_result(gene, g_post, dict_output['result_TA_pairs'])
File "/data/home-lusy/software/MeTAfisher/metafisher/OutputFct_MetaF.py", line 225, in write_table_pairs_result
best_shared_families = get_best_shared_families(gene_prev, gene_post)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/home-lusy/software/MeTAfisher/metafisher/OutputFct_MetaF.py", line 266, in get_best_shared_families
best_sum_score = max(shared_families2sum_score.values())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: max() arg is an empty sequence


[enhancement] Vimtutor lesson 8 (on VimRC) and a VimRC creation tool

As a soon to be computer science graduate, I wanted to make a tool to make programming with Vim (the editor my peers and I were told to use) a little more conducive to new users. This would mean adding to the VimTutor lessons, and including some tools to build or amend a VimRC. This is not meant to replace the vimrc, but rather is meant to serve as an introduction and subsequent jumping off point to customizing vim.
I would like the solution to be threefold, here are the steps bulleted below

Add lesson 8: the VimRC to vimtutor
Add a tool for users to create, amend, or add to their vimRC from a set of commonly used options, for the purpose of users seeing how to synthesize their own vimRC.
Add the ability to see changes to the vimrc in the current Vim instance(s), for better understanding of how each option works.
Each is a slight build upon the previous, with the hopes that a new user who chooses to use these tools will be given the background to modify their editor independently. Additionally, this may also serve as a faster way for developers to change their settings to fit their workflow without exiting their current work and navigating to a vimrc to enact changes.

This is an alternative to a pre-packaged VimRC, which I believe is against the spirit of Vim. By adding the vimtutor lesson and the 'settings pane' tool, users will be introduced to creating their VimRC and customizing vim to their use. This foregoes the style-railroading that would apply should the vimrc ship with the software.
This is my first OSS contribution, and as such I tried to choose tasks that were escalating in complexity. I have a firm knowledge of C, but should anything be impossible or able to be done better, please let me know! I hope you all find this applicable, and I look forward to firming the idea up and issuing a pull request!

On 2020-05-29, pmerry96 wrote:

As a soon to be computer science graduate, I wanted to make a tool to make
programming with Vim (the editor my peers and I were told to use) a little more
conducive to new users. This would mean adding to the VimTutor lessons, and
including some tools to build or amend a VimRC. This is not meant to replace
the vimrc, but rather is meant to serve as an introduction and subsequent
jumping off point to customizing vim.
I would like the solution to be threefold, here are the steps bulleted below
• Add lesson 8: the VimRC to vimtutor
• Add a tool for users to create, amend, or add to their vimRC from a set of
commonly used options, for the purpose of users seeing how to synthesize
their own vimRC.
• Add the ability to see changes to the vimrc in the current Vim instance(s),
for better understanding of how each option works.
Each is a slight build upon the previous, with the hopes that a new user
who chooses to use these tools will be given the background to modify their
editor independently. Additionally, this may also serve as a faster way for
developers to change their settings to fit their workflow without exiting
their current work and navigating to a vimrc to enact changes.
This is an alternative to a pre-packaged VimRC, which I believe is against the
spirit of Vim. By adding the vimtutor lesson and the 'settings pane' tool,
users will be introduced to creating their VimRC and customizing vim to their
use. This foregoes the style-railroading that would apply should the vimrc ship
with the software.
This is my first OSS contribution, and as such I tried to choose tasks that
were escalating in complexity. I have a firm knowledge of C, but should
anything be impossible or able to be done better, please let me know! I hope
you all find this applicable, and I look forward to firming the idea up and
issuing a pull request!

Vimtutor Lesson 7.2 is "Create a Startup Script", which covers the
very basics of using a vimrc.  The last line of that lesson is
a pointer to ":help vim-intro", which explains more thoroughly how
to use a vimrc.  Is there something else important to a new user
that's missing?
The ideal tool for building or amending to a vimrc is Vim itself.
Vimrc is a text file.  Vim excels at editing text files.  One
benefit of teaching new users to use Vim to edit their vimrc is that
they gain experience and proficiency at using Vim.
I think that a separate tool for editing a vimrc, even one
integrated into Vim, would add a layer of magic over Vim's command
line and the vimrc that would not help a new user's understanding of
the process and would give the erroneous impression that a tool was
necessary to maintain a vimrc.
The best thing that a new user, or any user for that matter, can do
to build confidence and proficiency with Vim is to use it.
As for the tool being "a faster way for developers to change their
settings to fit their workflow without exiting their current work
and navigating to a vimrc to enact changes":  it is not necessary to
exit one's current work nor to navigate to the vimrc.  Simply
execute either of these commands:
:new $MYVIMRC
:tabnew $MYVIMRC

You write well.  You recognize the problems that you and your peers
have had in learning to use Vim.  You formulated and presented
a reasonable solution.  I don't think it should be adopted as-is for
the reasons above, but I think you have a lot to offer the Vim
project and hope you continue to contribute.
Regards,
Gary


Update Composer dependencies (2021-09-30-00-05)

Visual regression test passed!
View the visual regression test report


Overriding exception handlers

This doesn't seems to be supported?
The workers are instantiated upon command without any possibility to push_exc_handler(my_handler)

Hi, I read this issue , django-rq can't override exception handlers currently. So how to get jobs exception message including a traceback string like normal python function error? I didn't find it in logs or somewhere, could u help me?

Fixed in https://github.com/ui/django-rq/pull/134


[FEAT] Verify conversion to homogeneous

We should double check the following behavior: https://github.com/opencv/opencv/pull/14411

closing this in favor of https://github.com/arraiyopensource/kornia/issues/146


The generated words of image caption are out of set of valid-words.p during validation

Hi staffs,
I've create valid-words.p for my own data (at maximum 3-gram) for the image caption task as follows:
list(words_p["document_frequency"].items())[:5]
[(('knife',), 855.0), (('her', 'head', 'cutting'), 1.0), (('cutting', 'a'), 502.0), (('a', 'chefs', 'knife'), 7.0), (('on', 'her', 'head'), 54.0)]

However, I had an unexpected KeyERROR:
 File "/home/kaz/ofa/trainer.py", line 1059, in valid_step
    sample, self.model, self.criterion, **extra_kwargs
  File "/home/kaz/ofa/tasks/mm_tasks/caption.py", line 154, in valid_step
    scores = self._calculate_cider_scores(hyps, refs)
  File "/home/kaz/ofa/tasks/mm_tasks/caption.py", line 131, in _calculate_cider_scores
    _, scores = self.CiderD_scorer.compute_score(gts, res_)
  File "/home/kaz321/ofa/utils/cider/pyciderevalcap/ciderD/ciderD.py", line 53, in compute_score
    (score, scores) = tmp_cider_scorer.compute_score()
  File "/home/kaz/ofa/utils/cider/pyciderevalcap/ciderD/ciderD_scorer.py", line 219, in compute_score
    score = self.compute_cider()
  File "/home/kaz/ofa/utils/cider/pyciderevalcap/ciderD/ciderD_scorer.py", line 194, in compute_cider
    vec, norm, length = counts2vec(test)
  File "/home/kaz/ofa/utils/cider/pyciderevalcap/ciderD/ciderD_scorer.py", line 143, in counts2vec
    df = np.log(max(1.0, self.document_frequency[ngram]))
KeyError: ('reserva',)

Note that the word reserva is not in the pkl['document frequency'], it seems that the generated contents are out of the closed word list. Is it related to the beam search's variables --eval-args='{"beam":5,"max_len_b":16,"no_repeat_ngram_size":3}' ?
I've also tried to remove --eval-cider, --eval-cider-cached-tokens, and --eval-args like issue #150 , but the best_checkpoint_metric is still the cider, so there is the other key error. Besides, it seems that there is no belu metric, and the code runs incorrectly if I set best_checkpoint_metric=belu.
Could you give me some suggestions? I appreciate your help in advance. Thank you very much for your time!

@taokz You can set --best-checkpoint-metric=loss and remove --maximize-best-checkpoint-metric


Unable to activate ms-python.python

Web Browser: Chrome Version 83.0.4103.97 & Firefox 77.0
Local OS: MacOS 10.13.6
Remote OS:  Ubuntu 18.04.3 LTS
Remote Architecture: amd64
code-server --version:  3.4.1 48f7c2724827e526eeaa6c2c151c520f48a61259

code-server installed using .deb package
Tried installing extension via code-server --install-extension and the gui. Neither seems to work.

 Right-click the extension in the sidebar and select "Install Another Version" and select the next most recently released version (probably 2020.5.80290.

cc @cmoog

@keiththomps that works, thanks.
Is it possible to specify the extension version with code-server --install-extension? I could not find anything related to it.

Btw, just for reference. I tried the extenstion with an older version of code-server(3.2.0) which was working before. Seems to have the same issue. So, it could be that the extension is either looking for a new thingy in vscode which is not available or a bug in the extension.

They cut a new release for the extension (2020.5.86806) that doesn't appear to have any issues, so unless someone explicitly goes out of their way to install this version I don't think there's anything to do here.

Huh, weird. It was by default installing a different version (2020.5.2) before. It seems to work now though.

Yeah, it looks like some weird version got published to the marketplace. There's not even a github release for 2020.5.2.

Looks like it was a bug in our marketplace scraper.
@cmoog has the details

I get the same error with the extension hediet.vscode-drawio from the coder.com repository.
abstractExtensionService.ts:396 Activating extension 'hediet.vscode-drawio' failed: Cannot find module '/home/coder/.local/share/code-server/extensions/hediet.vscode-drawio-0.0.1/dist/extension/index'
Require stack:
- /usr/lib/code-server/lib/vscode/out/vs/loader.js
- /usr/lib/code-server/lib/vscode/out/bootstrap-amd.js
- /usr/lib/code-server/lib/vscode/out/bootstrap-fork.js.

I'm not sure if this is caused by the same issue as above or is related to the extension itself.
About screen shows the following versions:
code-server: v3.4.1
VS Code: v1.45.1
Commit: 48f7c2724827e526eeaa6c2c151c520f48a61259
Date: 2020-06-04T10:39:14Z (2 mos ago)
Browser: Mozilla/5.0 (X11; CrOS x86_64 13099.102.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.127 Safari/537.36

Please file a new issue @davebarkerxyz! Usually such issues are due to us not building the given extension correctly.


Add campaign fields

What is needed?
We would like to add new campaign fields to database model, and return them accordingly in the endpoint view.
New campaign fields:
rewardValue - number eg: 600,000
rewardText - string e.g. "Some text description of reward"
iconUrl - string
safeAppUrl -  string
partnerUrl -  string
iconUrl should return the stored icon link and the admin page must support upload an icon per campaign.
All the previous fields can be nullable

At the request of @schmanu, an isPromoted field is also added, with boolean value and default value False.

Testeado y verificado. Un saludo 🙇


Frontend role creation error out on Cloudformation when switching from Cognito to Custom Auth

Describe the bug
When using data.all v2.2 , {resource_prefix}-{envname}-frontend-config-role is created inside the IdpStack ( Cognito Nested Stack ). During switching from Cognito Auth to Custom Auth, the cloudformtation template ( generated by cdk) tries to create the same role in backend stack before deleting the role in the same role in the IdpStack ( Cognito Nested Stack )
Error on Cloudformation : dataall-staging-frontend-config-role already exists in stack arn:aws:cloudformation:<REGION>:<AWS_ACCOUNT>:stack/dataall-staging-backend-stage-backend-stack-CognitoNestedStackCognitoNestedStackResour-/18700...
How to Reproduce

Install Data.all with Cognito Auth
Switch to Custom Auth Provider by adding the custom_auth configs as mentioned here https://github.com/awslabs/aws-dataall/blob/main/template_cdk.json

Expected behavior
Because cloud formation tries to create resources before it deletes them, this role should not be created again while switching from cognito to custom auth .
Possible Solution -
Create Cognito Role ({resource_prefix}-{envname}-cognito-config-role) in the IdpStack() as before and use this role in the ALBFrontend and while configuring cognito
When using custom-auth, use the other role  {resource_prefix}-{envname}-frontend-config-role to create frontend configs files for deploying with ALBFrontend stage.
Your project
No response
Screenshots
No response
OS
Mac
Python version
3.9
AWS data.all version
2.2
Additional context
No response

Discussion happening directly in linked PR

Closing as PR is merged