sort for tables not working with date strings

Bug Report
calling sortData on TdDataTableService with sorting field being a date doesn't work as expected
Screenshots or link to CodePen/Plunker/JSfiddle
What is the expected behavior?
sorting date should sort the dates. But the line
if (!Number.isNaN(Number.parseFloat(compA)) && !Number.isNaN(Number.parseFloat(compB)))
causes Problems. This is beacuse Number.parseFloat("2018-05-14T00:00:00.000Z") returns a number. 2018
What is the motivation / use case for changing the behavior?
Dates should be sorted properly
Which version of Angular and Material, and which browser and OS does this issue affect?

was it fixed? I see that in version 1.0.0-beta.3-1 it is still an issue

No it wasn't fixed but there is no clean way of sorting this without being really careful what you do. I suggested including moment.js but the repo admins don't agree that's a good idea yet so I don't have a good idea at the moment. Doing some sketchy Regex on strings is not a smart move.

We are trying to avoid adding external dependencies to reduce the bundle size. Unless the dependency is used heavily in the project, its not really worth it. We want to be able to fix this without it if possible.
That being said, you can always pull moment.js on your project and use it.

Can you just do a custom sort?  See code snippet in #521

Yes of course it's possible to get my date strings sorted manually. And although we shouldn't expect covalent to figure out for us what the string means, a date string is so common it would be nice. The real problem however is that it currently(is it still current?) interprets a date string as a number which becomes the year of the date. That is not correct. I can't look into the code base ATM, I'm on mobile.
I think best would be to rethink the interpretation of what is a number and leave the date handling out until either moment.js is included or someone finds a solid well proven way of determining strings being ISO date strings or not.

Hi,
I am able to sort data manually, but the problem is when I am clicking on pagination, all the sorting has gone. Can anyone help me in that.

We are trying to avoid adding external dependencies to reduce the bundle size. Unless the dependency is used heavily in the project, its not really worth it. We want to be able to fix this without it if possible.
That being said, you can always pull moment.js on your project and use it.

any other thing other than moment?


/impersonate Command Doesn't Work

Thank you for open sourcing your project!
Everything works as expected until I use the /impersonate command on myself. It just randomly spams any kind of racial slur you can think of. Is there a problem with the bot?

Don't impersonate dead people, it's not ethical


Added gridMetadata

@ryanlanciaux  I understood discussion about duplicate functionality but the griddle-react package in npm needs this, like me right now.
This is a very simple implementation, you pass all the data throw gridMetadata to the custom grid component. The only concern I have is about passing data or className because I didn't pass the metadata throw some scope like gridData just because I didn't like to create a extra scope for avoid these mistake, however, this is easy to change and depend of you.
About unit testing, you are using jest, jest using iojs instead of node. I could't get it run properly.
My suggestion is try to choose stack that people know, the big problem with JS is that one, too many packages with the same objective and I can't deal with everything, even was iojs problems which I have no idea what is the different from nodejs or even if I have to create a new environment for him because I can get node conflicts. I hope you understand my point
Related to https://github.com/GriddleGriddle/Griddle/issues/198

@ryanlanciaux please let me know if this can be in in the next release. I really need this

@yordis Please update your branch with the latest master which includes #241. This will allow your tests to run on Travis.  Thanks!

@kevinold I messed up something with my branch :cry:

@kevinold done!

@kevinold Are you gonna merge it?


Putting HTML elements to an accordion list head label broke the show/hide function

Hi,
If i put an HTML element in the link to open the accordion content, the show/hide functionnality is broken.
Exemple :
`

Text in span Text outside span

`
If i tap on the span element, nothing happens.
I think the listener is only on the link element.

Your HTML is broken, see the tag A

Sorry forgot it in the example. Still a bug.

Hello @fqboy,
Thank you for reporting this.
It will be fixed in the release 1.2.2 (coming asap).

Please, reopen the issue if it does not work for you.

Thank you, seems working !


Plugin system

(after #141)
Splitting out part of #123 to start a plugin system

move utilities from tests.js to test_utils.js (so they can be used by plugin tests)
added hooks class + tests
Added hooks to JSEP + tests for their arbitrary usage
Moved Ternary to a plugin. Default JSEP still includes ternary support.

LGTM, I guess we should wait until the other PR is merged now.

I merged in the main branch to update. I checked the performance of this PR versus the current and I'm a little concerned that this seems to make jsep significantly slower in parsing expressions (~35% slower, from my tests so far). There are ways to make it less readable for some minor gains (i.e. trading off setup time vs parsing time, possibly removing some hooks that aren't used just yet). Any thoughts?

@LeaVerou - I made another update for performance optimization:
Current Main: 100%
Current release (before the recent PRs, switching to a class): 78.87%
Pre-optimization: 67.26%
Now: 84.04%
I can revert if you prefer, but I felt that the performance hit of the hook calls was worth the change (and it's easier to use within the code, after the constructor pre-computes the calls). I'm open to further feedback and thoughts if you have any :-)

It would be good to see some actual timings instead of deciding solely on the basis of percentages. A 35% increase in running time can be ok if it takes execution time from 2ms to 3ms, but not ok if it takes it from 400ms to 600ms (numbers are random to make a point).
In a few words, what do you think helped improve performance in the latest commit? Is it adding the hooksAdd() method? Is it adding the hook functions on this? It might be a good idea to tease those apart if they are actually separate and see if it's one of the two that makes the biggest improvement.
It would be good to find a way to improve performance that doesn't involve repeating hook names all around the codebase. E.g. if we know we always want to bind to this, maybe we can remove the context parameter entirely and just provide this to the function as an explicit parameter (with optional extra arguments). Then perhaps we could make this optimization behind the scenes, transparently?
Overall, I would have liked to merge this PR at the state it was before the last commit, and iterate on the performance improvement vs maintainability tradeoff of the last commit in a separate PR.

The biggest performance bottleneck seemed to be from calling the hooks.run() method with the created { context: this, node: xx } and then using env.node everywhere. With multiple hook calls for each part of the expression parsing, it adds up. Changing to separate arguments for binding and the arg didn't have too much impact. You're right that it's probably negligible overall if it's only used to parse a single expression (versus an entire code base, for example)...
Would you be okay with a local method like this?
  runHook(name, node) {
    if (Jsep.hooks[name]) {
      const env = { context: this, node };
      Jsep.hooks.run(name, env);
      return env.node;
    }
    return node;
  }

it still has the if-statement for every run call, but then no setup in the constructor. It simplifies the callers and keeps performance close to the original. Or I can just back out my change (or create a new PR from the earlier commit)? The hooksAdd was just a convenience and for adding to the types file, but can be removed too, if you prefer.

Would you be okay with a local method like this?

I think so, but is this and node the only state we ever pass to a hook?
Though if this is faster, we could at least use it on the hooks that it covers.
But if the hooks only ever need this and node we could just pass node as a parameter and bind to this which would save us from creating env each time, surely that will improve performance a bit.
Though if we're down to object creation and binding making a difference, I suspect the gains or losses are too marginal to matter, even with parsing multiple expressions.

Hopefully okay now @LeaVerou ? Or if it needs anything else changed just let me know! :-)

Any further thoughts on this @LeaVerou ?


Bug:improved labels,placeholder update user page

Fixes Issue
My PR Closes #380
Changes proposed
What were you told to do ?
I was told to add labels and placeholders which were missing in update user page on small screen devices.
What did you do ?
I added placeholders which were missing in update user page and also changed display property of labels to font-size: large
Check List (Check all the applicable boxes)

[x] My code follows the code style of this project.
[x] This PR does not contain plagiarized content.
[x] The title and description of the PR is clear and explains the approach.

Screenshots
Mobile View

Desktop View

@IAmTamal I have done the suggested changes. Please review and let me know if i can make PR.

@tanishk-23 Push the changes to the PR please !

@IAmTamal I have pushed the changes to the PR.

@IAmTamal If you are satisfied with the changes then please merge my PR and if further changes are required please let me know.

@IAmTamal If you are satisfied with the changes then please merge my PR and if further changes are required please let me know.

Placeholders should not be visible on desktop.

@IAmTamal Implemented the changes.

@tanishk-23 You don't need to tag me and post SS everytime. Simply push the code to PR, we can review easily that way !


[Tweak] Arachnids suffer less now from hunger decay, asphyxiation and slowdown from damage.

About the PR

Makes it so arachnids get less hungry, take less asphyxiation damage and are slowed down less from pain
Media

[x] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Changelog

:cl: PixelTK

tweak: Arachnids suffer less now from hunger decay, asphyxiation and slowdown from damage.

Can you also add them glasses slot? I think it wasn't intended but as of right now you pretty much can't play sec as an arachnid and as engi you need to carry a welding mask

Can you also add them glasses slot? I think it wasn't intended but as of right now you pretty much can't play sec as an arachnid and as engi you need to carry a welding mask

having no glasses is intended

Considering welding is pretty important to engineering not being able to weld (when job selection isn't guaranteed) is pretty huge.

Considering welding is pretty important to engineering not being able to weld (when job selection isn't guaranteed) is pretty huge.
This also applies to sechud / medhud / whatever else.

I personally think they shouldn't have glasses, but I guess I could try out giving it a go for a bit and see how it goes.

Right renamed pr to be shorter, and gave arachnids a glasses permit.

If there's any more changes required do let me know.

good for gameplay + looks funny
its like those images of cats wearing headphones when they obviously are not over their ears


push_error() doesn't serialize final fdja_value*

gone with https://github.com/flon-io/flon/commit/9972ac628aac94bbc95a1f68b0df93caa993c3b4


Add handling for Traefik v2 acme.json

Description
This PR essentially adds the possibility to handle acme.json files generated by Traefik v2.
Traefik v2 adds the concept of multiple certificate resolvers (reference). As such, the structure of acme.json is slightly different.
Old acme.json from Traefik v1:
{
  "Account": {
    "Email"<EMAIL_ADDRESS>    "Registration": {
      "body": {
        "status": "valid",
        "contact": [
<EMAIL_ADDRESS>        ]
      },
      "uri": "https://acme-v02.api.letsencrypt.org/acme/acct/<redacted>"
    },
    "PrivateKey": "<redacted>",
    "KeyType": "4096"
  },
  "Certificates": [
    {
      "Domain": {
        "Main": "example.com",
        "SANs": null
      },
      "Certificate": "<redacted>",
      "Key": "<redacted>"
    }
  ...
  ]
}

New acme.json from Traefik v2:
{
  "default": {
    "Account": {
      "Email"<EMAIL_ADDRESS>      "Registration": {
        "body": {
          "status": "valid",
          "contact": [
<EMAIL_ADDRESS>          ]
        },
        "uri": "https://acme-v02.api.letsencrypt.org/acme/acct/<redacted>"
      },
    "Certificates": [
      {
        "domain": {
          "main": "example.com",
          "sans": [
            "sub.example.com"
          ]
        },
        "certificate": "<redacted>",
        "key": "<redacted>",
        "Store": "default"
      }
    ...
    ]
  }
}

Note the top-level "default" object (which is the name of the certificate resolver), as well as changed capitalization on Domain, Main, Certificate etc.
In order to support this file, I basically copied dumpcerts.acme.v2.sh, adapted it to this structure, and added detection in certs_helper.sh.
Type of change

[x] New feature (non-breaking change which adds functionality)

Status

[x] Ready
[ ] In development
[ ] Hold

How has this been tested ?
I use this in production with on my own instance using Traefik v2 - so far it works well. However, I don't use wildcard certificates, so I haven't been able to test functionality with wildcard certificates.

[x] Non-Wildcard certificate
[ ] Wildcard certificate

Hi @TheZenti ,
Thank you for your contribution.  I noticed the Travis CI build is failed on your branch and the previous PR as well.  If there is no objection, I will merge it tomorrow. CC: @hardware


setting default export in Phaser3

I'm using Phaser3 in next.js environment. It means, i'm using es6 when i import Phaser, not using es5(require)
Everytime i import Phaser and build it, it cause an import error message.
/* error message */
Attempted import error: 'phaser' does not contain a default export (imported as 'Phaser').

So i think it can be resolved by adding a single line of code.
/* before phaser.d.ts */
declare module 'phaser' {
    export = Phaser;
}

/* after phaser.d.ts */
declare const phaser : Phaser;

declare module 'phaser' {
    export = phaser;
}

By declaring a varaible phaser, Phaser could be used as if it is a default export in es6 syntax. It could be also available for es5.
But i found that phaser type files are automatically generated by tsgen, so i don't know how i can add this line.
Or this import error could be triggered by a next.js environment?
Phaser Version: 3.80
Operating system: window
Browser: chrome

We provide an ESM version of Phaser, but you have to import it specifically. See here for details: https://github.com/phaserjs/phaser/blob/master/changelog/3.60/ESMSupport.md

We provide an ESM version of Phaser, but you have to import it specifically. See here for details: https://github.com/phaserjs/phaser/blob/master/changelog/3.60/ESMSupport.md

Thank you! It works on me.
Then, there isn't a way to import Phaser itself as a module?

We provide an ESM version of Phaser, but you have to import it specifically. See here for details: https://github.com/phaserjs/phaser/blob/master/changelog/3.60/ESMSupport.md

Thank you! It works on me. Then, the esm version of Phaser is supported but it's not a default system for now?

Correct. Part of the work we're doing at the moment is upgrading the whole codebase to ES6 so it's native ESM, but this is not yet finished. Please follow our Dev Logs (in the Phaser World newsletter) to track progress. We shouldn't be far out now. This will form the basis of the 4.0.0 release.


How come you suggest using 'order: -1'?

Wouldn't it be simpler to just have the navigation HTML element declared above content? Just curious! Thanks

The idea is that the navigation is secondary to the content, so the content should come first in the source. It's an old idea that was one of the original requirements for the Holy Grail layout.


Don't send instance warning message if the instance has already

So we won't get false warning messages.
@yujunglo

looks good. Thanks!


Request new Breadcrumb for Python likes Pycharm did

Request new Breadcrumb for Python likes Pycharm did

☝Perfect Breadcrumb!!!!!!!

☝shitty Breadcrumb

I want it show The logical structure of the program rather than variable


TODO: implement RDF/RDFS entailment semantics as described here

This TODO is in the readme. Is it still the case that RDF/RDFS entailments are not yet implemented?

Hi @RichDijk -- I believe many of these are implemented but were accidentally grouped under the OWL-RL rules. Most of 9.2.1 in https://www.w3.org/TR/rdf11-mt/#entailment-rules-informative should already be implemented save for some of the basic ones like asserting rdfs:Resource, ref:Property, etc

Good, I expected something like that. Thank you.


Artur/ai

🛫 Pre-flight Checklist
Ensure that this form is filled in before the PR is merged to ensure that the review process can go as smoothly as possible.
🐅 PR Type

[ ] Dependency upgrade
[x] Bugfix (non-breaking change which fixes an issue)
[x] New feature
[ ] Breaking change (fix/feature causing existing functionality to break)
[x] Code quality improvements to existing code or addition of tests
[ ] Other (please describe)

🔨 DevOps Information

This PR fixes or closes issue: fixes #
This PR is related to issue or discussion:
Link to documentation pull request:

📝 Checklist

[x] The code change is tested and works locally.
[ ] There is no commented out code in this PR.

Oh-o! @mattsilverwood we have our first merge conflict 🎉


Refactor to support latest changes distributed in PyPI

Need some slight tweaks to allow a release including the pip-friendly changes I tried to incorporate into what was 0.9. (See Issue #121 and PR #120)

[x]  add wheel support to setuptools-related files (e.g. setup.py, setup.cfg)
[x]  make sure project works equally on Py2 and Py3 (required for universal wheels)

Ideally this refactor allows people that clone the project to simply run pip install -r requirements-dev.txt and they have everything required to run tests and hack on the code. Requirements files tend to do a better job making repeatable installations (see https://packaging.python.org/requirements/)

I'm going to track this work in the issue-122 branch.

Still need to work out an issue with python setup.py test not working right, but the new MANIFEST.in file now bundles the requirements.txt files nicely. I'm refreshing my PyPI packaging memory via https://hynek.me/articles/sharing-your-labor-of-love-pypi-quick-and-dirty/ for those interested.

@johnwheeler Just bumped the version number since master's setup.py was behind the released package on PyPI. Will you have a chance this week to try releasing to the staging PyPI so we can test a pip install?

@voutilad Apologize for the delay Dave. I've uploaded the wheel to production and verified that it works -- 0.9.2 Thanks for this fantastic enhancement!


[Flutter web] Assets are downloaded again in the 2nd visit despite service worker

Hello, I'm working on a project that is performance-sensitive, I need to squeeze every available resource in the HTML5 world to enhance performance and loading times.
Flutter apps download assets again in the second visit despite service worker, I know this happens because there is no call to
self.clients.claim();
Is there a reason why self.clients.claim() is not being called? Imo this is a desirable behavior by default or at least it should be a feature you can enable via environment.defines
Steps to Reproduce

create a new project flutter create example
build it for the web flutter build web
serve it python3 -m http.server
load the app for the first time
reload the app and notice how assets added by the app developer are downloaded again

Expected results: service worker should kick in right away
Actual results: service worker start caching things after the second session

Hi @davidlanderos-digital
Can you specify which assets here? (canvaskit.js, canvaskit.wasm, etc). Also, please provide the output of flutter doctor -v.
From my side, I can see some assets (such as canvaskit.js, canvaskit.wasm) are downloaded again from Network on browser inspector.

flutter doctor -v (stable and master)
[✓] Flutter (Channel stable, 3.3.8, on macOS 13.0 22A380 darwin-x64, locale en-VN)
    • Flutter version 3.3.8 on channel stable at /Users/huynq/Documents/GitHub/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 52b3dc25f6 (23 hours ago), 2022-11-09 12:09:26 +0800
    • Engine revision 857bd6b74c
    • Dart version 2.18.4
    • DevTools version 2.15.0

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-33, build-tools 31.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.0.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14A400
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)

[✓] IntelliJ IDEA Community Edition (version 2022.2.2)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 70.0.5
    • Dart plugin version 222.4167.21

[✓] IntelliJ IDEA Community Edition (version 2022.1.1)
    • IntelliJ at /Users/huynq/Library/Application Support/JetBrains/Toolbox/apps/IDEA-C/ch-0/221.5591.52/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.73.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.52.0

[✓] Connected device (3 available)
    • iPhone 14 Pro Max (mobile) • 332079AF-E895-4685-910E-7B1E18B0C6B8 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-16-0 (simulator)
    • macOS (desktop)            • macos                                • darwin-x64     • macOS 13.0 22A380 darwin-x64
    • Chrome (web)               • chrome                               • web-javascript • Google Chrome 107.0.5304.110

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

• No issues found!

[!] Flutter (Channel master, 3.6.0-3.0.pre.18, on macOS 13.0 22A380 darwin-x64, locale en-VN)
    • Flutter version 3.6.0-3.0.pre.18 on channel master at /Users/huynq/Documents/GitHub/flutter_master
    ! Warning: `flutter` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/flutter, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    ! Warning: `dart` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/dart, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 1aeb1721ca (2 hours ago), 2022-11-14 21:12:25 -0500
    • Engine revision 78ae241400
    • Dart version 2.19.0 (build 2.19.0-398.0.dev)
    • DevTools version 2.19.0
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-33, build-tools 31.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.0.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14A400
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)

[✓] IntelliJ IDEA Community Edition (version 2022.2.2)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 70.0.5
    • Dart plugin version 222.4167.21

[✓] IntelliJ IDEA Community Edition (version 2022.1.1)
    • IntelliJ at /Users/huynq/Library/Application Support/JetBrains/Toolbox/apps/IDEA-C/ch-0/221.5591.52/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.73.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.52.0

[✓] Connected device (3 available)
    • SM T225 (mobile) • R9JT3004VRJ • android-arm64  • Android 12 (API 31)
    • macOS (desktop)  • macos       • darwin-x64     • macOS 13.0 22A380 darwin-x64
    • Chrome (web)     • chrome      • web-javascript • Google Chrome 107.0.5304.110

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

! Doctor found issues in 1 category.

Hello
Can you specify which assets here?

all of them :) (those declared in RESOURCES array inside service_worker.js)
basically the first time you visit the page it installs the service worker, but since there is no call to self.clients.claim() in the install callback, the caching logic kicks in until the second time you visit the page. (which means, the loading time in the second launch is the same as in the first one, it's until the 3rd time you visit the page when you notice the performance gain.
and yes, as you mention the canvaskit request always reaches the server no matter how many times you visit the page, that happens because the service_worker expects canvaskit to be fetched from within the same app, but the actual implementation fetches it from a CDN. It can be fixed by adding a special case in the "fetch" event inside the service worker, which at the moment ignores all cross origin request
in any case, this is a one line fix, and I'm happy to share a PR, I'm just wondering if there is a reason why the service worker doen't call claim().
[!] Flutter (Channel master, 3.6.0-3.0.pre.1, on Microsoft Windows [Version 10.0.22000.1219], locale en-US)
    • Flutter version 3.6.0-3.0.pre.1 on channel master at E:\developer\flutter_experiments\flutter
    ! Upstream repository https://github.com/davidlanderos-digital/flutter.git is not a standard remote.
      Set environment variable "FLUTTER_GIT_URL" to https://github.com/davidlanderos-digital/flutter.git to dismiss this
      error.
    • Framework revision f92ff3e06f (2 days ago), 2022-11-13 18:39:57 -0600
    • Engine revision b63e6cf558
    • Dart version 2.19.0 (build 2.19.0-394.0.dev)
    • DevTools version 2.19.0
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly
      to perform update checks and upgrades.

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

[√] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
    • Android SDK at C:\Users\david\AppData\Local\Android\Sdk
    • Platform android-33, build-tools 33.0.0
    • ANDROID_SDK_ROOT = C:\Users\david\AppData\Local\Android\Sdk
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • CHROME_EXECUTABLE = C:\Program Files\BraveSoftware\Brave-Browser\Application\brave.exe

[√] Visual Studio - develop for Windows (Visual Studio Community 2022 17.3.5)
    • Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community
    • Visual Studio Community 2022 version 17.3.32922.545
    • Windows 10 SDK version 10.0.19041.0

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

[√] VS Code (version 1.73.1)
    • VS Code at C:\Users\david\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.52.0

[√] Connected device (3 available)
    • Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version 10.0.22000.1219]
    • Chrome (web)      • chrome  • web-javascript • unknown
    • Edge (web)        • edge    • web-javascript • Microsoft Edge 106.0.1370.52

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

! Doctor found issues in 1 category.

@davidlanderos-digital Thanks for providing more info! This issue is reproducible on the latest stable and master channels with sample code at https://github.com/flutter/flutter/issues/115336#issuecomment-1315493548. Labeling this issue for further investigation from the team.
May be related/similar: #55967

flutter doctor -v (stable and master)
[✓] Flutter (Channel stable, 3.3.8, on macOS 13.0 22A380 darwin-x64, locale en-VN)
    • Flutter version 3.3.8 on channel stable at /Users/huynq/Documents/GitHub/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 52b3dc25f6 (23 hours ago), 2022-11-09 12:09:26 +0800
    • Engine revision 857bd6b74c
    • Dart version 2.18.4
    • DevTools version 2.15.0

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-33, build-tools 31.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.0.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14A400
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)

[✓] IntelliJ IDEA Community Edition (version 2022.2.2)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 70.0.5
    • Dart plugin version 222.4167.21

[✓] IntelliJ IDEA Community Edition (version 2022.1.1)
    • IntelliJ at /Users/huynq/Library/Application Support/JetBrains/Toolbox/apps/IDEA-C/ch-0/221.5591.52/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.73.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.52.0

[✓] Connected device (3 available)
    • iPhone 14 Pro Max (mobile) • 332079AF-E895-4685-910E-7B1E18B0C6B8 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-16-0 (simulator)
    • macOS (desktop)            • macos                                • darwin-x64     • macOS 13.0 22A380 darwin-x64
    • Chrome (web)               • chrome                               • web-javascript • Google Chrome 107.0.5304.110

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

• No issues found!

[!] Flutter (Channel master, 3.6.0-3.0.pre.48, on macOS 13.0 22A380 darwin-x64, locale en-VN)
    • Flutter version 3.6.0-3.0.pre.48 on channel master at /Users/huynq/Documents/GitHub/flutter_master
    ! Warning: `flutter` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/flutter, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    ! Warning: `dart` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/dart, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 93c4b09e62 (15 minutes ago), 2022-11-15 18:07:50 -0800
    • Engine revision baad8f2c55
    • Dart version 2.19.0 (build 2.19.0-403.0.dev)
    • DevTools version 2.19.0
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-33, build-tools 31.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.0.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14A400
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)

[✓] IntelliJ IDEA Community Edition (version 2022.2.2)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 70.0.5
    • Dart plugin version 222.4167.21

[✓] IntelliJ IDEA Community Edition (version 2022.1.1)
    • IntelliJ at /Users/huynq/Library/Application Support/JetBrains/Toolbox/apps/IDEA-C/ch-0/221.5591.52/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.73.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.52.0

[✓] Connected device (3 available)
    • RMX2001 (mobile) • EUYTFEUSQSRGDA6D • android-arm64  • Android 11 (API 30)
    • macOS (desktop)  • macos            • darwin-x64     • macOS 13.0 22A380 darwin-x64
    • Chrome (web)     • chrome           • web-javascript • Google Chrome 107.0.5304.110

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

! Doctor found issues in 1 category.


possibility to set all visible handles of a RECTANGULAR_CALLOUT

Hi,
within my presentations, I am frequently using RECTANGULAR_CALLOUT elements. Within the Powerpoint GUI, they are displayed showing five "handles" with which I can adjust each one of the corners plus one further "pointer" to be placed somewhere on the current slide:
pptx.enum.shapes.MSO_SHAPE.RECTANGULAR_CALLOUT
the RECTANGULAR_CALLOUT looks something like this, where A, B, C, D and E are the visible adjustable handles:
A----------B
|          |
|  <text>  |
|          |
C----------D    <-  adjustment handle for bottom right corner
 \   /
  \ /
   E      <-  handle to manually adjust where the box points to

Now, in Powerpoint I can access and adjust the four corners of the shape by using the mouse or by using the shape's settings menu. The pointing handle E I can drag with the mouse as well. But there is no setting within the shape's settings menu where I could see the current position of the shape's handle E. And within python-pptx I don't see a corresponding member, either.
Is there a way to adjust the pointing handle E of the RECTANGULAR_CALLOUT shape by using python-pptx so that I don't need to use the Powerpoint GUI?
If there is no way, yet, could somebody assist me in finding the right places within the code base in order to be able to implement and suggest a solution myself? Unfortunately, I lack any knowledge about the python-pptx system structure, yet.
Any hints?
Thanks.

All these "handles" should be available in python-pptx. Have you studied this section in the documentation?
https://python-pptx.readthedocs.io/en/latest/user/autoshapes.html#adjusting-an-autoshape
You can ask further questions after getting as far as you can with that.
This is another document that might be helpful after some detective work:
https://github.com/scanny/python-pptx/blob/master/spec/ISO-IEC-29500-1/schemas/dml-geometries/OfficeOpenXML-DrawingMLGeometries/presetShapeDefinitions.xml
This file contains the definitions for each of the "preset" shapes, and callouts are one of those. The mapping of the names is not direct, you'll have to narrow down the one you're interested in, possibly "wedgeRectCallout". But this will tell you what the adjustment points are and how they are used to draw the shape. Also it lists the connection points.

Yeah, pretty sure wedgeRectCallout corresponds to RECTANGULAR_CALLOUT. There is some "run once" code here that I used to form some spec files for mapping these and MsoShapeRectangularCallout is mapped to wedgeRectCallout in there: https://github.com/scanny/python-pptx/blob/master/spec/gen_spec/src_data/msoAutoShapeType.py


No depracation warning on instantiating dirs

This deprecation warnings should go to release notes I guess.
They were printed on fs.js import when it's instantiated.
Fixes #54

Thanks for your PR, we'll add the deprecation warnings to the release notes instead as suggested 👍


classifyGif not working with buffer?

const imageDataBuffer = Buffer.from(Array.from(data.imageData.data))
        if (!Buffer.isBuffer(imageDataBuffer)) {
          console.log(`imagedata convert to buffer failed: ${typeof imageDataBuffer}`)
        }
        // TODO: path must be a string returned
        const framePredictions = await this._model.classifyGif(imageDataBuffer)

data.imageData is the ImageData (https://developer.mozilla.org/en-US/docs/Web/API/ImageData) and data.imageData.data is the https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8ClampedArray
so in above code imageDataBuffer is the Buffer object which I'm expecting it to work with classifyGif function. But with that I'm getting this error in the Browser (NOTE: I'm not using this server-side)

any advice would be appreciated. Thanks.
btw, I'm using web worker, so I'm sending imagedata to the web worker for processing since web worker don't have access to the DOM objects.

oops. this might be a webpack build issue.
https://github.com/infinitered/nsfwjs/issues/273 similar to this.


Create ms.txt

Added Moringa School

@mussaimo Thank you for the request. Moringa School seems to be a training center with 16 weeks long tranings, not one year long courses in IT. Please request classroom license by email to<EMAIL_ADDRESS>because training centers are not eligible for other types of licenses. Thank you for your understanding!


Issue with the py

Hi !
When i run a command i get this error :
root@dex-tools:~/dex# dexbuy instant bsc 0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56
Traceback (most recent call last):
  File "/usr/local/bin/dexbuy", line 5, in <module>
    from dexbuytools.__main__ import dexbuy
  File "/usr/local/lib/python3.10/site-packages/dexbuytools/__main__.py", line 38, in <module>
    def onliquidity(network_name, token_address, search_term, buy_params_path, wallet_data_path, general_params_path):
  File "/usr/local/lib/python3.10/site-packages/click/decorators.py", line 247, in decorator
    _param_memo(f, OptionClass(param_decls, **option_attrs))
  File "/usr/local/lib/python3.10/site-packages/click/core.py", line 2465, in __init__
    super().__init__(param_decls, type=type, multiple=multiple, **attrs)
  File "/usr/local/lib/python3.10/site-packages/click/core.py", line 2029, in __init__
    self.name, self.opts, self.secondary_opts = self._parse_decls(
  File "/usr/local/lib/python3.10/site-packages/click/core.py", line 2610, in _parse_decls
    raise TypeError(
TypeError: No options defined but a name was passed (search_term). Did you mean to declare an argument instead? Did you mean to pass '--search_term'?

I run on docker python:latest (debian11)
root@dex-tools:~/dex# python --version
Python 3.10.4
Could you help me ?
regards

Hey, this is indeed a bug. the program is ttying to execute the "onliquidity" option instead of "instant" will try to resolve it and let you know

was a minor mistake in the naming convention of options, should be working now :)

Yeah thx, I will check that !
I have a little request, can you add cronos nativly
some help :
CRO_RPC_URL: https://evm.cronos.org/
ROUTER_ABI_MMF : 0x145677FC4d9b8F19B5D56d1820c48e0443049a30
MAIN_TOKEN_ADDRESS : 0x5C7F8A570d578ED84E63fdFA7b1eE72dEae1AE23

thanks, that was useful info to get started :)
I have added an implementation for it. Brownie does not support cronos-forking, so I have not written any tests for it.
Can you set up a burner wallet with a tiny amount of funds and test it?

In fact, I copy BSC files (helpers/BscHelper.py ...) and adapt to cronos and instant buy work well.
I dont realy kwno how set a burner wallet...

burner wallet just means a new wallet that you dont use for anything else

but if it works for you now, feel free to close the issue :)

thx a lot


Feature requests

Please consider:

Adding the info about conflicting mods into About.xml, so that we can see it in RimPy.
Disabling any xenotypes and genes this mod adds, if they're unplayable or broken without 3rd party mods. Cum genes, for example. Any xenos using "fertilin'" should also be disabled if you don't have Sexperience, as there's no way to gain this fertilin' otherwise. I don't want to add Sexperience, Licentia or any of the RJW addons, as I find them unrealistic, broken or bloated or all three of those. I don't really understand how the insect xenos this mod adds work without Alpha Genes either (despite their seeming integration with AG, I'm not seeing any eggs genes?), but that part is whatever.
If it's even possible, disabling conflicting RJW options by default, like those for animal inheritance, or adding a better description about what exactly should be disabled in the front page.

Additionally:

The mod patches VE Phytokin xenotypes, but not their "female only" gene. Is this intended? (Since you mentioned other male/female only genes caused issues).
The "hypersexual" trait from RJW has been broken for years now. It disables the recreation and psyfocus gain from types of meditation other than sex, but doesn't actually disable them, resulting in pawns eternally meditating. Yet this mod forces this trait into default xenotypes.

Hi @Stars22223 , thanks for reaching out to me :)

is no problem, I just don't exactly know how :P Some people tell me that I should only use the About.xml, some only the Manifest.xml so I was a bit confused. For me things show up in the ingame-mod manager correctly.
Maybe something is not working properly for you, but in theory all genes that really need another mod (e.g. licentia when it comes to cumflation) are already invisible / not active for users without the respective mod. it is possible for pawns to gain fertilin based on the abilities and normal rjw interaction, but maybe it is a bit difficult (I think I nerfed need with 1.3 and I added another gene for gaining fertilin passively)
I don't know what is conflicting, when I tested things animal inheritance works with base-game + rjw. If you have any issues please let me know. There is an issue when using Menstruation #67, but that is not base-rjw

1A) Yes that was intended. They seem to work, as the important thing about the genes is the order in which they are applied. The sex-change must be done before the genitalia-changes. The AG ones seem to be fine, but I have my own as not everyone uses AG. It is a bit of bloat indeed.
2B) I have not perceived hypersexuality to be broken, but I will consider removing it from the Highmates 👍
Thank you for your perspective again. Most users seem to have a lot of mods and most of the RJW mods. So it is nice to hear the perspective of someone that does not use all rjw mods.

I think by now most of the feedback has moved in :)


Links without trailing / fail

eg:
www.logsearch.io/docs/ works, but www.logsearch.io/docs doesn't - seems to redirect to http://www.logsearch.io:61003/docs/

Fix by adding port_in_redirect off; to nginx.conf. (see)
Have raised  to get this fixed in the upstream in the staticfile buildpack (so a custom nginx.conf isn't needed)


Quick TODO

On pages/index when Public Links are loaded add some sort of loading animation instead of displaying the Failed to fetch all public links message.
It might be confusing to read the Failed to fetch... message and after a moment it displays public links.

Hydration completed but contains mismatches.

Error might be related to this issue somehow.

Fixed in d15ad3a0ada3f7f807feacbb20a0b7757610e1cb


Maximum of Numbers Python

Why:
Closes https://github.com/codinasion/codinasion/issues/91
What's being changed:

Added a Python program that prints the maximum of given numbers

Check off the following:

[x] I have reviewed my changes in staging (look for "Automatically generated comment" and click Modified to view your latest changes).
[x] For content changes, I have completed the self-review checklist.

Preview : https://codinasion--pr16-dev-2cf6nybl.web.app/programme/maximum-of-numbers/
(expires Wed, 02 Mar 2022 17:36:37 GMT)

LIVE : https://codinasion.web.app/programme/maximum-of-numbers/


Icons drawing outside of "bounds"

Hey,
I'm using font_awesome_flutter in a project but I'm having an issue I don't know how to work around. In the attached picture you can see that the icon draws outside of the "bounds" that I'm trying to layout. This is making it super difficult to center an icon in a circle, like I'm trying to in my app :)
Is this something happening in the package or is there a way to lay it out better in flutter?
Thanks for any help :)

Sorry,  just figured it out, if I wrap the icon in a container with a bigger width/height then the icon it works as expected.


[release-4.7] Bug 1969320: remove spec.cleanup from ClusterServiceVersion

spec.cleanup is not declared in CRD for 4.7, so it makes CVO hotloop
Followup for #2192, as https://bugzilla.redhat.com/show_bug.cgi?id=1969320 failed QE

/cc @timflannagan

/ok-to-test

/lgtm

@kevinrizza Are we okay with directly modifying the root list of manifests here?

/lgtm

/label qe-approved

/bugzilla cc-qa
Steps to verify it:

Build a payload with operator-framework/operator-lifecycle-manager#2329 using cluster-bot
build operator-framework/operator-lifecycle-manager#2329

Install a cluster with the payload built in step 1.

Check the audit log

oc get clusterversion
NAME      VERSION                                                  AVAILABLE   PROGRESSING   SINCE   STATUS
version   4.7.0-0.ci.test-2021-08-18-061332-ci-ln-6jdrj8k-latest   True        False         18m     Cluster version is 4.7.0-0.ci.test-2021-08-18-061332-ci-ln-6jdrj8k-latest
masters=$(oc get no -l node-role.kubernetes.io/master | sed '1d' | awk '{print $1}')
oc adm node-logs $masters --path=kube-apiserver/audit.log --raw | zgrep -h '"verb":"update"."resource":"."packageserver"' 2>/dev/null | jq -r '.user.username + " " + (.objectRef | .resource + " " + .namespace + " " + .name + " " + .apiGroup) + " " + .stageTimestamp + " " + (.responseStatus | tostring)' | sort
null

Check CVO log

grep "Updating ClusterServiceVersion openshift-operator-lifecycle-manager/packageserver" /tmp/cvo1.log
null
CVO no longer hotloops on packageserver.

/retest

/approve

[patch-manager] :rocket: Approved for z-stream by score: 0.10
adding cherry-pick approved

(manually adding the cherry-pick-approved label as michal doesn't have the requisite permissions in this organization)

Blocked until https://github.com/operator-framework/operator-lifecycle-manager/pull/2351 can be merged.

/retest


Simple way to change the text color to black

please help :(

Do you mean this?
cell.textView.textColor = [UIColor blackColor];

Take a look at - (UICollectionViewCell *)collectionView:(JSQMessagesCollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath method in DemoMessagesViewController.

Thanks @algrid


Add git submodule for assets

That way you don't have to manually clone the assets repo. It also prevents accidentally combining different versions of the assets and the executable.

Oh, I forgot to comment on this issue, sorry. :grimacing:
I had a terrible experience with git submodules and would really like to avoid them. But in any case, I decided to move all assets into this repo (#520).


[textanalytics] add single label classify bespoke method

Part of https://github.com/Azure/azure-sdk-for-python/issues/23528

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

/azp run python - textanalytics - tests


System contacts menu theme not changing

Describe the bug
Switching from flat to white theme does not change the system context menues from dark mode to light mode￼
System information:

Windows version: latest
Cairo version: latest
64-bit:
In Cairo Settings > Advanced, is Cairo set as shell?: no

Given this is a Windows API limitation, is there any action we can do here?


Inbox like grouping cards

Hello again :)
I'm trying to reproduce the inbox application way to group items with headers using card views.
I'm already using the HeaderHelper to group and to differenciate between a header and a normal item.
However after reading here (first answer)
https://stackoverflow.com/questions/31273203/what-is-the-best-practice-to-group-items-into-cardview
It seems that the proper way to obtain such efect is to have three different "normal" item views: one for the top of the group, one for the bottom and one for al the "middle" elements.
Or just a way to now if an item is the first / bottom of a group and a way to change the holder dinamically.
I'm thinking on adding some kind of "group counter" to the items that could be filled using the apply method of the headerhelper and that can be used by the item to change the viewholder.
Do you think it is feasible this way or am I missing something or there is a better way to obtain the same outcome?
Regards
Gabriel

@gpulido sounds like a possible solution.
In the end you probably would have 3 items. one is groupBeginItem, groupCenterItem, groupEndItem or so. And in the best case you use a GenericItemAdapter to define which model get's which type. (You can have some logic in there to get the groups correct, so you do not have to use the HeaderHelper which basically will just add an item inbetween)
If you use the HeaderHelper you might have a HeaderItem which combines start and end of the cards somehow...

@mikepenz  thank for the suggestion, the main problem is that each item has to know in which order "inside" the group he is.
As the header helper is external to the collection, and also the group function, the only that really could know the order is the headerhelper when it is creating the items on the apply function, so maybe one idea is that the headerhelper holds a dictionary of <model, typeoforder> (where typeoforder is begin-center-end) that is filled at the same time the apply function is called.
Then the headerhelper could expose a method: getTypeOfItem(model) that returns the typeoforder.
Then the constructor of the item (not the header item) the typeoforder is given so it could be used on the viewholder...

Using the previous idea I have modified the headerhelper class so it stores the grouping position of each item:
public class HeaderHelper<Item, HeaderItem> {
    @IntDef({TOP,
            CENTER,
            BOTTOM}
    )
    @Retention(RetentionPolicy.SOURCE)
    public @interface Positions{}
    public static final int TOP = 0;
    public static final int CENTER = 1;
    public static final int BOTTOM = 2;

    private ItemAdapter itemAdapter;
    private GenericItemAdapter genericItemAdapter;
    private HeaderHelper.GroupingFunction<Item, HeaderItem> groupingFunction;
    private Comparator<Item> comparator;
    private Dictionary<Item,  Integer> groupPosition;

    /**
     * @param groupingFunction
     */
    public HeaderHelper(HeaderHelper.GroupingFunction groupingFunction) {
        this.groupingFunction = groupingFunction;
    }

    /**
     * @param itemAdapter
     * @param groupingFunction
     */
    public HeaderHelper(ItemAdapter itemAdapter, HeaderHelper.GroupingFunction<Item, HeaderItem> groupingFunction) {
        this.itemAdapter = itemAdapter;
        this.groupingFunction = groupingFunction;
    }

    /**
     * @param genericItemAdapter
     * @param groupingFunction
     */
    public HeaderHelper(GenericItemAdapter genericItemAdapter, HeaderHelper.GroupingFunction<Item, HeaderItem> groupingFunction) {
        this.genericItemAdapter = genericItemAdapter;
        this.groupingFunction = groupingFunction;
    }

    /**
     * call this when your list order has changed or was updated, and you have to readd the headres
     *
     * @param items the list which will get the headers added inbetween
     */
    public void apply(List items) {
        //If the list is empty avoid sorting and adding headers.
        int size = items.size();
        groupPosition = new Hashtable<Item, Integer>();
        if (size > 0) {
            //sort beforehand
            if (comparator != null) {
                Collections.sort(items, comparator);
            }

            //we have to get the list size each time, as we will add the headers to it
            for (int i = -1; i < size; i++) {
                HeaderItem headerItem;
                if (i == -1) {
                    headerItem = groupingFunction.group(null, (Item) items.get(i + 1), i);
                    if (headerItem != null)
                        groupPosition.put((Item) items.get(i + 1), TOP);
                } else if (i == size - 1) {
                    headerItem = groupingFunction.group((Item) items.get(i), null, i);

                } else {
                    headerItem = groupingFunction.group((Item) items.get(i), (Item) items.get(i + 1), i);
                    if (headerItem != null) {
                        groupPosition.put((Item) items.get(i), BOTTOM);
                        groupPosition.put((Item) items.get(i + 1), TOP);
                    }
                }

                if (headerItem != null) {
                    items.add(i + 1, headerItem);
                    i = i + 1;
                    size = size + 1;
                }
                else
                    groupPosition.put((Item) items.get(i), CENTER);
            }
        }

        /**
         * set the sorted list to the itemAdapter if provided
         */
        if (itemAdapter != null) {
            itemAdapter.set(items);
        }
        if (genericItemAdapter != null) {
            genericItemAdapter.setModel(items);
        }
    }

    /**
     * @return the comparator to use before adding the headers
     */
    public Comparator<Item> getComparator() {
        return comparator;
    }

    /**
     * @param comparator the comparator to use before adding the headers
     */
    public void setComparator(Comparator<Item> comparator) {
        this.comparator = comparator;
    }

    /**
     * @return the ItemAdapter
     */
    public ItemAdapter getItemAdapter() {
        return itemAdapter;
    }

    /**
     * @param itemAdapter the ItemAdapter
     */
    public void setItemAdapter(ItemAdapter itemAdapter) {
        this.itemAdapter = itemAdapter;
        this.genericItemAdapter = null;
    }

    /**
     * @return the GenericItemAdapter
     */
    public GenericItemAdapter getGenericItemAdapter() {
        return genericItemAdapter;
    }

    /**
     * @param genericItemAdapter the GenericItemAdapter
     */
    public void setGenericItemAdapter(GenericItemAdapter genericItemAdapter) {
        this.genericItemAdapter = genericItemAdapter;
        this.itemAdapter = null;
    }

    /**
     * @return the function used to determine headers
     */
    public HeaderHelper.GroupingFunction<Item, HeaderItem> getGroupingFunction() {
        return groupingFunction;
    }

    /**
     * @param groupingFunction the function used to determine headers
     */
    public void setGroupingFunction(HeaderHelper.GroupingFunction<Item, HeaderItem> groupingFunction) {
        this.groupingFunction = groupingFunction;
    }

    public interface GroupingFunction<Item, HeaderItem> {
        /**
         * @param currentItem     the current item we check
         * @param nextItem        the item comming after the current item
         * @param currentPosition the current position of the currentItem
         * @return the HeaderItem we want to add after the currentItem
         */
        HeaderItem group(Item currentItem, Item nextItem, int currentPosition);
    }

    @SuppressWarnings("ResourceType")
    public @Positions int getGroupPosition(Item item)
    {
        return groupPosition.get(item);
    }
}

I'm not very happy with the apply code but it works.
Then is very easy to use it. For example I just added a new parameter on the constructor of my item:
 GenericItemAdapter<Object, GenericAbstractItem<Object, ?, ?>> itemAdapter = new GenericItemAdapter<>(new Function<Object, GenericAbstractItem<Object, ?, ?>>() {
            @Override
            public GenericAbstractItem apply(Object o) {
                if (o instanceof Competition) {
                    return new SectionItem((Competition) o);
                }
                else
                    return new ContenderItem((Contender) o, headerHelper.getGroupPosition((Contender) o));
            }
        });

And them it can be used inside the item to manipulate the visual logic on the bind holder.
Or it can be used directly on the apply to create a different item (ContenderItemTop, ContenderItemCenter, contenderItemBottom
@mikepenz Maybe you can add the changes to the headerhelper (probably with a better style :) )
Let me know if you like the idea.
Gabriel

@gpulido currently I think it's not necessary to add this to the lib itself. But thanks for providing the code which works for you, I have marked the question s "Good to know"
If you find time it would be awesome if you'd add a small sample using your code to the sample application :)


[improve][broker] Make dispatch rate limiter more precise

Motivation
The Dispatch rate limiter serves two purposes:

Limit your consumption speed
When there are many backlogs, bk can be protected to avoid excessive I/O

But the current design has the following problems:
available permits indicates how many messages the client needs, and then uses the rate limiter to determine how many entries to read. If batch production is not enabled, it is working. When batch production is enabled, the rate limiter counts the number of entries as the number of messages, resulting in excessive entries to be read.
In PR #6719, preciseDispatcherFlowControl was added to optimize the above problem: If enabled preciseDispatcherFlowControl, we call availablePermits / avgMessagesPerEntry to calculate how many entries to read, but this did not solve the problem because that:

When you compute avgMessagesPerEntry, randomly take a consumer from the subscription, and get attribute stat.avgMessagesPerEntry, it is possible to null the property. We should look for the consumer that meets condition stat.avgMessagesPerEntry != null.
The rate limiter still counts the number of entries as the number of messages.

Modifications

First, calculate how many messages to read by rate limiter, and then calculate how many entries to read by avgMessagesPerEntry
When calculating the "avgMessagesPerEntry," look up the attribute avgMessagesPerEntry from the consumers under subscription, if all consumers avgMessagesPerEntry is zero, look up under the topic.
Abstracting the method calculateToRead of Single consumer dispatcher and Multi consumer dispatcher into the parent class AbstractDispatcher, this will save codes.

Follow-up PR
After this PR, there are still such scenarios:  failing to get avgMessagesPerEntry resulting in reading excessive messages:

Create a new topic and a new subscription, since no data has been consumed yet, the consumer does not know how many messages per entry.
Use the created topic, only one subscription, and use the failover mode for consumption. Every time a new consumer becomes an active consumer, can not get avgMessagesPerEntry.

The PR below will fix it.

https://github.com/apache/pulsar/pull/18581

Documentation

[ ] doc
[ ] doc-required
[x] doc-not-needed
[ ] doc-complete

Matching PR in forked repository
PR in forked repository:

https://github.com/poorbarcode/pulsar/pull/42

first of all adding precise terminology in dispatch path is not correct and really misguiding. also have you considered performance impact due to this change? we should not take any performance impact because of this requirement.

Hi @rdhabalia
This patch has almost no performance penalty, except that the first time a consumer is created it retrieves a property of another consumer directly from memory

please rebase


[CONTROLLER/SERVICE] remove process api cache

This PR is for:

Server

remove process api cache
Checklist

[ ] Added unit test.

Backport to branches

main

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.zhengya seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Add flag to 'kiss update' to pull the latest repositories.

Not sure if this would go against the philosophy of the manager, but I'm sure that it would be more practical to have a sort of -p/--pull or -s/--sync flag for kiss update.
Naturally, this would iterate through all repositories in $KISS_PATH.
The downside is that a git output won't look necessarily pretty, which makes me curious about an alternative progress bar or something that would make it nicer in terms of UI.
Just a thought, I understand if it isn't necessary.
-v

This is definitely something we should look into. I wonder if git has some kind of option to pull from multiple repositories at once.

I found this whilst looking through Stackoverflow, not sure if it'd be applicable.
find . -type d -depth 1 -exec git --git-dir={}/.git --work-tree=$PWD/{} pull origin master \;
Explanatory comment here: https://stackoverflow.com/a/12495234/2577858

Actually, disregard that last comment, I wasn't thinking correctly.
It seems that the only way is to just do it recursively. There's no built-in support for multiple repos in git. You could make the repos into submodules of a git repo (that contains all of the repos) and update them all that way through git submodule update --recursive, but whether that's substantially different than iteratively going through $KISS_PATH is uncertain. Might be nicer to write at best, but requiring some major changes to $KISS_PATH.
If this path is taken, we'd need to turn $KISS_PATH into a general 'repos' folder that the user can put their repositories in, either by hand or through a function that adds a repo in the cli.
Which, come to think of it, doesn't sound all too bad. kiss addrepo <link_to_zip/git> would make repository management all the more convenient and wouldn't be outside the scope of what kiss should do.

Done. It's always on. I will make this configurable in the future, I need to finalize how the package manager will be configured.


Filter Secret resources watched by Authorino SecretReconciler

Use https://pkg.go.dev/sigs.k8s.io/controller-runtime/pkg/predicate to filter the events related to Kubernetes Secret resources, watched by SecretReconciler, only to resources labelled with the Authorino "managed-by" label:
https://github.com/Kuadrant/authorino/blob/6b44f9552fc97b7836137954fa26c19da71aac0c/main.go#L54

This example used in kuadrant-controller is doing pretty much the same, but with services instead of the secrets.
// SetupWithManager sets up the controller with the Manager.
func (r *ServiceReconciler) SetupWithManager(mgr ctrl.Manager) error {
	return ctrl.NewControllerManagedBy(mgr).
		WithEventFilter(onlyLabeledServices()).
		For(&corev1.Service{}).
		Complete(r)
}

func onlyLabeledServices() predicate.Predicate {
	return predicate.Funcs{
		CreateFunc: func(e event.CreateEvent) bool {
			// Lets filter for only Services that have the kuadrant label and are enabled.
			if val, ok := e.Object.GetLabels()[kuadrantDiscoveryLabel]; ok {
				enabled, _ := strconv.ParseBool(val)
				return enabled
			}
			return false
		},
		UpdateFunc: func(e event.UpdateEvent) bool {
			// In case the update object had the kuadrant label set to true, we need to reconcile it.
			if val, ok := e.ObjectOld.GetLabels()[kuadrantDiscoveryLabel]; ok {
				enabled, _ := strconv.ParseBool(val)
				return enabled
			}
			// In case that service gets update by adding the label, and set to true, we need to reconcile it.
			if val, ok := e.ObjectNew.GetLabels()[kuadrantDiscoveryLabel]; ok {
				enabled, _ := strconv.ParseBool(val)
				return enabled
			}

			return false
		},
		DeleteFunc: func(e event.DeleteEvent) bool {
			// If the object had the Kuadrant label, we need to handle its deletion
			_, ok := e.Object.GetLabels()[kuadrantDiscoveryLabel]
			return ok
		},
	}
}

Hopefully it is useful.
For the labels, the kuadrant controller needs to implement a custom predicate. The reason is that the controller also wants to catch resources update events when the old object had the expected label, not only the new one. If this is not your case, if on update events only the new object labels need to be matched, there is a helper function for that that does all the glue code of the predicates. Nicer.
// SetupWithManager sets up the controller with the Manager.
func (r *ServiceReconciler) SetupWithManager(mgr ctrl.Manager) error {
    kuadrantServicePredicate, err := predicate.LabelSelectorPredicate(metav1.LabelSelector{
        MatchLabels: map[string]string{kuadrantDiscoveryLabel: "true"},
    })
    if err != nil {
        return err
    }

    return ctrl.NewControllerManagedBy(mgr).
        WithEventFilter(kuadrantServicePredicate).
        For(&corev1.Service{}).
        Complete(r)
}

@eguzki I like the idea of using the LabelSelectorPredicate so we don't need to create a custom predicate for it but this predicate is not available on the controller-runtime version used by authorino at the moment (https://pkg.go.dev/sigs.k8s.io/controller-runtime@v0.6.3/pkg/predicate).
Maybe we should be looking into updating the controller-runtime version as well as the version of the operator-sdk

Maybe we should be looking into updating the controller-runtime version as well as the version of the operator-sdk

Agreed. See #125.

Maybe we should be looking into updating the controller-runtime version as well as the version of the operator-sdk

Agreed. See #125.

Nice one @guicassolato I might look into getting the controller-runtime version upgraded


Allow arbitrary line widths

We wanted a line chart with multiple lines and also with some points as circles (without lines in between the circles); this was the easiest way to do this as far as I could tell.

Hmm, maybe I can do this with a CombinedChartView... I will try that


Update to newer atoum versions

atoum 2.8 allows us to remove the bootstrap when it's only used to
require the autoloader (see atoum/atoum#605)
atoum 3.0 allows us to run tests on latest PHP versions.

@jubianchi thanks, but build is failing:

travis/7.1.sh: No such file or directory

See travis.yml

Everything should be OK now.


TST: start test-socket-server within the fixture

This PR adds the test-socket-server startup step as a part of the fixture used in the tests (with the session scope). This makes sure we have a running server before the client attempts to connect to it.

Once it's merged, we will update the test server to support the use case in #3.

Thanks for your review, @BriannaRomasky!


test_lock_time_tracing is flaky

This test was added recently, and is failing ~3% of the time.
An example failure:

https://neon-github-public-dev.s3.amazonaws.com/reports/pr-7663/9022743601/index.html#testresult/45c20a5d0b81d6cd/retries

test_runner/regress/test_storage_controller.py:1312: in test_lock_time_tracing
    env.storage_controller.assert_log_contains(
test_runner/fixtures/neon_fixtures.py:2003: in assert_log_contains
    assert res is not None
E   assert None is not None

@jbajic are you available to fix this?

@jbajic are you available to fix this?

Yes I am. I will take a look at it


U — [Accessibility] ARIA annotations

Trello
https://trello.com/c/9FnL9sDM/249-aria-annotations-fx-75
Acceptance criteria

[ ] Support new aria-description property

[ ] Support new ARIA 1.3 draft roles mark and suggestion

[ ] Support ARIA comment role

[ ] Support multiple aria-details ids

There could be quite a bit of work involved here. We don't have a complete set of ARIA documentation, so I think the best thing for us to do for now is as follows:

Create a "Using ARIA annotations" guide under https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques
Create new pages for the mark, suggestion, and comment roles, under https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles. These can probably be smaller than many of the existing roles pages — provide concise detail and a small example for each one, then link to the guide mentioned above for the full details.
Link the currently inactive link to aria-details on https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques to the section ofd the guide mentioned above where you explain how aria-details works.

Main ARIA annotations page written: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Annotations
New role pages written:

https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/Comment_role
https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/Mark_role
https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/Suggestion_role
https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles

Note added to rel notes: https://wiki.developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/75#Accessibility


Make marker draggable and tell user what country they are in as well …

…as the language spoken in that country

Check out what this does at bergmoney-step-2020.appspot.com/maps.html


Crudspec feature

Feature branch based on @craicoverflow PR. I have made mistake to integrate other changes together and this is the second attempt. Initially I have merged @ssd71 Mongo changes into this but we have decided to change approach and removed the changes from the branch initially.
We will PR against it with all new changes as this contains the new approach for the graphback
Verification
Create some notes and attach some comments (using existing mutation resolver format).
Next, perform some filtering on the note, like so:
query findNotes {
  findNotes(filter:{title:{contains:"title 1"}}) {
    items {
      id
      title
      description
      comments(filter:{description:{contains:"2"}, or:{description:{eq:"test"}}}) {
        id
        description
        text
      }
    }
  }
}

Tasks

[x] find a single record
[x] filter records with advanced querying
[x] filter relationships
[x] add to runtime
[ ] client documents
[ ] unit tests

Review
Schema
Focus on schema related elements only
Questions

We are generating helpers for each specific objects.
Ho we will handle scalars. For example I want to issue query for date between some range?

Create Input still accepts id as parameter. Is that intentional?

Create is missing relationship ID. I cannot create object with relationship

Nexcursor seems to be very strongly related to the specifics of the databases that supports stuff. I assumed that we did not wanted to implement this and simply investigate that at some point later. Is pagination working?

Querying

Pagination never returns cursor or anyvalue? Seems to be that we are mixing cursor based pagination with pages (skip, limit). Limit seems to be working for both but returns no cursor

Made couple edits on the comment above. Please ignore email and check github instead

Plan to release this

address rough corners
build set of integration tests
update docs

Let's collaborate on this

Schema Questions

We are generating helpers for each specific scalar objects.
How we will handle scalars. For example, I want to issue query for date between some range?

We still need to add a filter object for DateTime. Before that we need to decide on a DateTime scalar we should include as part of Graphback. This is still a todo for now. When we use a DateTime scalar like graphql-iso-date it would be easier to work with and calculate ranges etc.

Create Input still accepts id as a parameter. Is that intentional?

Our docs describe how to specify a custom primary key such as email. For this reason it is still left in, but you are right we should remove any id: ID field from the create input.
This is actually really confusing for a developer. If they specify a custom primary key such as email they will not want to also add id: ID as it seems counter intuitive. Perhaps we should not make it required but automatically add it to each model in the schema crud plugin? This way it is effectively an invisible primary key.

Create is missing relationship ID. I cannot create object with relationship

Needs to be done.

Nexcursor seems to be very strongly related to the specifics of the databases that supports stuff. I assumed that we did not wanted to implement this and simply investigate that at some point later. Is pagination working?

Yeah this is simply not implemented and will be removed. I believe the existing pagination still works, but we need to add page information to the result type, in place of nextCursor.

I do not see support for between from the schema.
Is that in progress?

Yep https://github.com/aerogear/graphback/pull/1248

Querying

Does pagination never return cursor or anyvalue? Seems to be that we are mixing cursor based pagination with pages (skip, limit). Limit seems to be working for both but returns no cursor

We decided not to use cursor based pagination, field should be removed.

We still need to add a filter object for DateTime. Before that we need to decide on a DateTime scalar we should include as part of Graphback. This is still a todo for now. When we use a DateTime scalar like graphql-iso-date it would be easier to work with and calculate ranges etc.

But how about any other scalar. It could be nice to detect scalars and automatically match them into string type of filter. For some use cases (like JSON) this will not make sense but it will allow using any scalar out of the box (like date)

As there is 5060 combinations of filter we need to agree on what kind of filters make sense for testing and integration.

@craicoverflow
Quick question on fetching a single item.
We have a discrepancy between code API and Schema.
Schema has:
getComment(id: ID!): Comment
but code allows specifying multiple fields from the object.

@craicoverflow
1)
Quick question on fetching a single item.
We have a discrepancy between code API and Schema.
Schema has:
getComment(id: ID!): Comment
but code allows specifying multiple fields from the object.

The main reason for this was to leave the interface flexible. Although our default CRUD findOne fetches by a single key, if someone required a slightly different methopd like getNote(id: ID!, version, Int!) this would mean they don't have to create a new special CRUD service just for it.
That is a special case though, I am happy to adapt the code to always get by the single ID argument.

I'm not convinced about multiple input types.

AFAIK each input type is slightly different?

We are using the same input types for creation and subscriptions (subscriptions might not work here)

I haven't touched subscriptions yet, as this was the way it used to work I just left it the same

But how about any other scalar. It could be nice to detect scalars and automatically match them into string type of filter.

That seems sensible and easy to do.


Upgrade to time 0.3

Continuation of #1444
Still left to do:

[x] Fix a solution for https://github.com/time-rs/time/discussions/356
[x] Update documentation

Closes #1277

It doesn't look like macros like it when time is renamed https://github.com/time-rs/time/blob/d700977ce9bc34013ee9841e122edbc807f410e4/time-macros/src/datetime.rs#L47

Can we get around using the macros?

I am not familiar with this issue and am not sure the circumstances are the same, but is the method used by the postgres-types crate possible? It looks like they also rename the time crate.

@paolobarbolini sounds like a solution wasn't forthcoming there. I dunno how feasible it is to try to get time to add a crate parameter to its macros, sounds like it might get stuck in bikeshedding.
Can we just inline the output of the macros here? It seems like it should be relatively stable as the code that format_description!() outputs doesn't appear to use any hidden types or fields.

I suggested it but they don't seem too convinced about it https://github.com/time-rs/time/discussions/356#discussioncomment-1451826
I'll try inlining the macro output.

I am not familiar with this issue and am not sure the circumstances are the same, but is the method used by the postgres-types crate possible? It looks like they also rename the time crate.

That's what we're doing too

@paolobarbolini sorry, I didn't link to the correct spot. I meant with how they declare time as an extern crate.
Doing something similar, I was able to get run cargo check --manifest-path sqlx-core/Cargo.toml --no-default-features --features offline,all-databases,all-types,migrate,runtime-async-std-native-tls without errors.
The specific changes I made can be viewed here: https://github.com/kyle-mccarthy/sqlx/commit/005d9229b01918b8773fdddd49cd473fbb6afa0f

@paolobarbolini sorry, I didn't link to the correct spot. I meant with how they declare time as an extern crate.
Doing something similar, I was able to run cargo check --manifest-path sqlx-core/Cargo.toml --no-default-features --features offline,all-databases,all-types,migrate,runtime-async-std-native-tls without errors.
The specific changes I made can be viewed here: kyle-mccarthy@005d922

Interesting, I didn't know extern crate had the power to rename a crate like that.

I cherry-picked your commit @kyle-mccarthy. I got a warning that the #[macro_use] wasn't necessary, so I tried removing it.

I am absolutely ecstatic that this just works! This is a backwards-compatible change too, isn't it? So we could release this with 0.5.10 instead of 0.6.0

@paolobarbolini do you think you'll be able to finish this soon?

@paolobarbolini do you think you'll be able to finish this soon?

Yes, I'll look into it next week.

it looks like the existing type tests for time 0.2 were repurposed to test the types from time 0.3 which leaves the former with no type tests, can we make sure to cover both?

Ah right. I'll look into it

I'm trying to do point 2 but we're again running into the same problem we had before with both time 0.2 and time 0.3 macros importing time as ::time, which doesn't work because we can have only one version imported with the name time.

It seems to me like these macro issues are going to come up again when time 0.4 comes out. Just to get an idea I looked at the downloads for the latest 0.2 ^1 and 0.3 ^2 versions and between the two time 0.3 only makes ~30% of the downloads :disappointed:. I kinda wished everybody updated so we didn't have to do this.

Also I just realized the sqlx-macros optional feature suggestion system should be updated to support both versions :sweat_smile:

@paolobarbolini should we just bite the bullet and upgrade to time 0.3 wholesale in 0.6? Might push people to upgrade.

@paolobarbolini should we just bite the bullet and upgrade to time 0.3 wholesale in 0.6? Might push people to upgrade.

:+1: I removed all of my changes and rebased the original author's changes on top of master

It might be worth to update the time version from 0.3.2 to 0.3.5, that would change MSRV 1.48 -> 1.51.

Officially, we only support the latest stable version of Rust. I try to avoid using language or library features that are too new but MSRV just isn't something we keep track of on this project. Should probably add a disclaimer somewhere visible for that.

It might be worth to update the time version from 0.3.2 to 0.3.5, that would change MSRV 1.48 -> 1.51.

This is a lib (hence no Cargo.lock) so unless we pin it with =0.3.2 in the manifest, the upgrade from 0.3.2 to 0.3.5 will transparently happen in the consumer binary.

very interested in this!
It would make the move from chrono to time, much simpler.
Another potential addition, would it make sense to add the time feature serde-human-readable by default?
Without this, all the time structs are not serializable and deserializable
here is the reference https://github.com/time-rs/time/blob/main/Cargo.toml#L36
Or perhaps this should be put behind the crate's serde feature flag

Another potential addition, would it make sense to add the time feature serde-human-readable by default? Without this, all the time structs are not serializable and deserializable here is the reference https://github.com/time-rs/time/blob/main/Cargo.toml#L36 Or perhaps this should be put behind the crate's serde feature flag

The time crate docs say Libraries should never enable this feature, as the decision of what format to use should be up to the user
https://docs.rs/time/0.3.7/time/index.html#feature-flags

Even if we wanted to enable the feature by default, which we don't for the reason @paolobarbolini stated, I have to question time's choice for their human-readable serialization format, which appears to be:
<year>-<month>-<day> <hours>:<minutes>:<seconds>.<seconds-fraction> <offset>

Which is ever so close to being ISO-8601/RFC 3339 compliant but I believe the space separator for the offset breaks it.

Indeed, it produces dates like
2022-02-16 20:30:08.33839334 +00:00:00

which are rejected by Javascript's Date.parse(), something we use a lot on the frontend. It's perhaps accepted by more permissive parsers like https://dencode.com/en/date/iso8601 which interpreted the above date just fine somehow, but not stricter ones. It's similarly rejected by Dart's DateTime.parse(), which we use in our Flutter-based mobile app projects.
You can enable RFC-3339 serialization, but you have to mark every time::OffsetDateTime field with #[serde(with = "time::serde::rfc3339")], which uses the serde-well-known feature, not the serde-human-readable feature.
The reasoning for the choice is explained here: https://github.com/time-rs/time/issues/248#issuecomment-792570479
I don't see why RFC 3339 couldn't have been the default since it's generally more useful for most of the places you'd actually use time with the custom extended-range format being enabled via #[serde(with)], but it's a closed matter anyway.

Thanks for the comments and the correct way to serialize with serde (it all makes sense now).
Looking forward to 0.6!


two selections available for the autocomplete

Bug, feature request, or proposal:
Only one selected item from the autocomplete result list
What is the expected behavior?
when selecting a value or hover over the item only one from the list should be highlighted
What is the current behavior?
two item can be highlighted concurrently, one with the mouse hover and one with the keyboard
What are the steps to reproduce?
Providing a StackBlitz reproduction is the best way to share your issue.
StackBlitz starter: https://goo.gl/wwnhMV
What is the use-case or motivation for changing an existing behavior?
Which versions of Angular, Material, OS, TypeScript, browsers are affected?
Is there anything else we should know?

Closing as both elements should highlight as one is active and one is hovered.