All the rows of a table are dropped automatically

Hi,
I created a table with a model  but after a certain time  all  data of this table  are  dropped doing nothing .
my models.js file :
"
module.exports.models = {
// Your app's default connection.
// i.e. the name of one of your app's connections (see config/connections.js)
//
// (defaults to localDiskDb)
connection: 'memory',
migrate: 'alter'
};
"
What must i do to not have data dropped automatically ?.
Thanks

You're using the memory adapter. You should use a real database if you want your data to stay around.

No,  I don't use 'memory' for this table wich is dropped. I use an adapter mysql in the connection.js file :
mysqljj: {
    adapter: 'sails-mysql',
    host: 'localhost',
    port: 3306,
    database: 'xxxx',
    user: 'xxxxx',
    password: 'xxx'

  },

Perhaps must i comment  " connection: 'memory', " ?

Your connection is set to memory:

connection: 'memory',

If you want to use that mysql connection, set connection: 'mysqljj

I associate the connection 'mysqljj' directly in the model file of the table.  So, i don' t use the default connection in the models.js file.

Post a link to your project and specify which models/rows are being dropped.

models.js set like this:
migrate: 'safe',
//migrate: 'alter',
//migrate: 'drop',
dont's use 'alter' or 'drop',it will delete you data if you modify your models.

http://stackoverflow.com/questions/29997983/best-way-to-migrate-table-changes-to-production-sailsjs-tables/29998429#29998429
https://github.com/balderdashy/sails/issues/2901

I had this problem today. I have 'migrate: alter' and my table user was truncated.
+1 to fix it!


[ROCKETMQ-336] Wrong format System.out.printf used in mqadmin

What is the purpose of the change
When using mqadmin command printmsg to print retry topic msgs,it throw an exception like this:
com.alibaba.rocketmq.client.exception.MQClientException: Can not find Message Queue for this
topic, %%RETRY%%CID_MERSS_CONSUOUP_UAT
See http://rocketmq.apache.org/docs/faq/ for further details.
  at com.alibaba.rocketmq.client.impl.MQAdminImpl.fetchSubscribeMessageQueues(MQAdminImpl.java:161)
  at com.alibaba.rocketmq.client.impl.consumer.DefaultMQPullConsumerImpl.fetchSubscribeMessageQueues(DefaultMQPullConsumerImpl.java:136)
  at com.alibaba.rocketmq.client.consumer.DefaultMQPullConsumer.fetchSubscribeMessageQueues(DefaultMQPullConsumer.java:225)
  at com.alibaba.rocketmq.tools.command.message.PrintMessageSubCommand.execute(PrintMessageSubCommand.java:120)
  at com.alibaba.rocketmq.tools.command.MQAdminStartup.main0(MQAdminStartup.java:128)
,. JIRA: https://issues.apache.org/jira/browse/ROCKETMQ-278.

This problem has been fixed in https://github.com/apache/rocketmq/pull/168,but it din't fix all.
Brief changelog
fix all system.out.prinf using in rocketmq.
Verifying this change

This change is a trivial rework / code cleanup with unitout test coverage.
execute mqadmin printmsg -t %RETRY%CID_MERSS_CONSUOUP_UAT.

Follow this checklist to help us incorporate your contribution quickly and easily:

[x] Make sure there is a JIRA issue filed for the change (usually before you start working on it). Trivial changes like typos do not require a JIRA issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[x] Format the pull request title like [ROCKETMQ-XXX] Fix UnknownException when host config not exist. Each commit in the pull request should have a meaningful subject line and body.
[x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[ ] Write necessary unit-test to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add integration-test in test module.
[x] Run mvn -B clean apache-rat:check findbugs:findbugs checkstyle:checkstyle to make sure basic checks pass. Run mvn clean install -DskipITs to make sure unit-test pass. Run mvn clean test-compile failsafe:integration-test  to make sure integration-test pass.
[x] If this contribution is large, please file an Apache Individual Contributor License Agreement.

Coverage decreased (-0.08%) to 39.962% when pulling 2b0b8766fad23ca17ce06d5a3b8709f58ec1ddb2 on lindzh:fix_print_new into 69043c0d28707c2ef2d95535c5be6036765ab4e0 on apache:develop.

@shroman I guess it is an old version bug before we donated it to apache :-)

We are using rocketmq 3.5 in product, nearly I'm thinking about upgrade to apache 4.x and do some test case for comparion.And we found this bug in 3.5, but it is still there on latest apache 4.x.


myipaddress not updating

For some reason, if the connected network is changed, the CaptureDevice's ip address doesn't update without quitting the application first.

Adding capturedevicelist.Refresh(); after retrieving an instance of CaptureDeviceList in GetClientList.cs seemed to do it. Didn't know such method existed. Thx to https://sourceforge.net/p/sharppcap/bugs/46/


Epic roadmap to the new AsyncAPI community section

After a long discussion with @derberg, we've decided to have a community section located on the Asyncapi website at the following path /community.
This new addition to the community website is going to hold everything related to the community from the Ambassador program to the community docs and every other area community/contributor related.
This overarching goal here is that we want users to have a community experience when using the website
Herer's a link to the current pull request #902
The following list is categorized into 3 sections.
Design

[ ] Help with the enhancement of the current landing page design
[ ] Design banner illustration for every subpage
[x] Designs/art direction for pages like [ambassador program, event&meetups, community members]
[x] Community member card design

Engineering

[x] Implementation of  the enhancement made by designers for the community landing page
[x] Implementation of the subpages required in the community section as designed by designers
[x] implementation of the events&meetups page, which will include all events/meetups both past & upcoming with filter functionality.
[ ] Contributors ranking based on the most active (not sure if this is a good idea yet)
[ ] A well-implemented page for community wiki

Documentations

[ ] Configuring release pipeline for NodeJS
[ ] Configuring release pipeline for non NodeJS
[ ] We tweet out all RCs and Major/Minor releases
[ ] How can I tweet from the official account
[ ] How can I post on official LinkedIn account
[ ] How to create new repository
[ ] How to donate a project
[x] How changes in spec are introduced
[ ] How do we care about old issues
[ ] How CI works (what can be added and what not)
[ ] How can I introduce changes in GH workflows
[x] How to become a TSC member
[ ] How to become a codeowner
[ ] /rtm/ /dnm/ and /help
[ ] dependabot
[ ] autobumps
[ ] slack rules
[ ] toast in slack
[ ] add contributor guide
[ ] add maintainer guilde - https://github.com/asyncapi/community/issues/11

hey @AceTheCreator
Let's say I want to document configuring the release pipeline for Nodejs, I'm confused about where and how to start.

@AceTheCreator Hope this is not a dumb question but I want to document the "Configuring release pipeline for NodeJS
Configuring release pipeline for non NodeJS" but confuse on how to start.
If I'm correct the docs will be residing in the asyncapi/community path?
It is also expected I create a folder name it docs and in  that holds all the files you listed?
Some clarity and guide will help, thanks 🙏

@Dule-mart @AceTheCreator I recommend not depending on each other too much. So write the docs, even if new community section is not there yet. Just work on the doc in community repo, maybe introduce docs folder. Then, once all is ready, we can integrate easily. Always work with as small PRs as possible, and not depend on each other. This is especially critical in the open source world, where things are slower than usual, and people come and go without any memo quite often.

Let me know if you need my help in the docs, I'm happy to help out!
This sounds like a really great new project ✨✨✨

Hey @AceTheCreator ,Awesome Stuffs are mentioned here I am ready to contribute .😀

Hey 👋 @alequetzalli
It would be nice to work alongside you in achieving this, I have created a folder named docs, and created a file to document the “configuring release pipeline for Nodejs” but it is empty for now.

Hey @derberg, why not we temporarily make a community branch on website repo and merge the present changes of @AceTheCreator. So that whosoever wants to work on the issue, can fork this repo only and merge the changes on community branch instead of forking the forked @AceTheCreator  website repo?

Thanks for the share @derberg

@akshatnema I do not see any technical problem/difference between branching form a branch in upstream, or forking a fork and contributing to it.

I think you didn't get it. I want to say why to create forks of a forked branch. @AceTheCreator branch is already having a PR and if someone wants to contribute to it, have to fork Ace repository, not this one. In this case, we will encounter lots of problems:

CODEOWNERS have to review the PRs on Ace's repository
Since they are working on the PR made by Ace, the updates or PRs made by other contributors won't be reflected in this repo. Hence, it will be a difficult task for CODEOWNERS to give reviews on the PRs.

CI/CD won't be applied on Ace's repository
All the PRs made on that repo will not be tested in terms of all the workflows and CI/CD of Netlify. So, we then have to manually test all PRs by cloning them in the local system.

These are some of the concerns I think we will face in the long run. After looking on the list of tasks we have to implement, I don't think we will be able to manage with your scenario.
What my plan:
We will make a community branch in this repo in which we will merge the present @AceTheCreator PR and other contributors will now be able contribute to community branch by making PR to it. This way everyone will able to track and review new PRs.

@derberg I actually think the @akshatnema approach will save a lot of headaches 😊
@akshatnema it's best I update the current PR and get it to merge with the new community branch in this repo. Then we all can work from the community branch from the main repo.
@derberg what do you think?

@derberg @AceTheCreator Adding to my above point, the community section is a completely new implementation and creation of new pages which I don't think will conflict with existing page changes. So, if we even merge the community branch with master manually and weekly, I don't think we will encounter major conflicts inside the community branch when we will go for the final merging.

@akshatnema does this mean I don't have to fork the asyncapi/community repo?
What will happen if the community repo is forked and PRs are made into that repo?

Can you folks clarify, maybe provide examples of PRs that someone would open against @AceTheCreator fork and his community branch. Why would anyone like to do it and what would it be, except for community-related documentation

@derberg Look at the screenshots and links provided below.
PR link - https://github.com/AceTheCreator/website-1/pull/1
The repo which is forked from @AceTheCreator repo - https://github.com/The-Code-Of-Duty/website
See this image, any contributor has to do the contributions to community section in this way by creating PRs on Ace's repo, not in AsyncAPI. So, this will make confusion on where to make a PR for certain changes and also difficult for maintainers to keep track of the new PRs.

@akshatnema I understand technically that people would have to open a PR against the fork, this is clear 😉
I just do not understand why anyone would have to do it. Why would you consider opening a PR to his fork, except for the docs that we clarified can be done separately?

to not run this discussion for too long,
there are 2 top items for the new community section:

UI
Docs

UI is also divided into additional 2 items:

minimal UI (with some stuff that might be hidden as not completed or left out but inactive with proper tool tip info like tbd)
additional features -> like implementation of the events&meetups page

For Docs I'm firmly opinionated that they should be done in a separate PR, each document separately, in community repo.

For UI
For additional features, I'm firmly opinionated they should be done separately, later, after initial work. Separate PRs to master branch.
For minimal UI, Im ok with whatever solution you prefer. If @AceTheCreator requires help and commits from maintainers, and prefers these through PR (normally this is not needed) then create communitybranch if you need folks. Especially that @akshatnema wants to help also supports this approach. My only huge request: **please remember to keep the work with MVP approach, so final review betweencommunity->master` is not a hell for other maintainers.
Also hint for you if you go ☝🏼 direction: right after creating community branch with changes from @AceTheCreator, open a PR between community and master so we can on regular basis see how it looks thanks to generated previews. Also it will enable our automated merging of changes in master (as long as they are not breaking changes).

Heyy @AceTheCreator @derberg 😃, I would like to contribute in this, specially Design and Engineering categories.
@AceTheCreator is there any urgent need for some task?, so that I can start with that task and continue with other things. So can you suggest me the first task I should start with?
Thank you 😁

@Harish-b-03 thanks for your interest, I don't know what your design skills are like, can you help do some designs for this section "Designs/art direction for pages like [ambassador program, event&meetups, community members]"?
I'd be glad to working with you on this :) What do you think?

Hey @AceTheCreator, I'm back!!. So I see that Lukasz merged your PR in another branch community in the repo, but I think we are still missing a PR that should be initialized from the community branch to master  branch to track the changes. Should I do that for you?

@AceTheCreator I am not that much good at design, that too from the scratch🥲.
Can you please suggest me some tasks in the Engineering? I think I can work on that and parallely try to design.
Heyy @mcturco😁, hope you are doing great!. Can you please help me in this? We got to design some pages or layouts (even I don't have any idea about this, I hope @AceTheCreator can help us 😃)
Thank you

@Harish-b-03 I would really love to hop on a call with you so that we can brainstorm together and come up with something.
@mcturco has a lot on her plate atm. Lets put something together, then she can help us review it :)
What do you think @Harish-b-03?

I would really love to hop on a call with you so that we can brainstorm together and come up with something.

Ofcourse, I will catch you on slack😉

@mcturco has a lot on her plate atm. Lets put something together, then she can help us review it :)

Ohh ok fine👍🏻😁

Yeah as @AceTheCreator mentioned, I have some other tasks that I am focused on at the moment, but I will be available for feedback. I just posted the issue in the design channel on slack, so hopefully someone is interested in helping with design guidance!

Hello @AceTheCreator I will like to create this "add contributor guide"
Any guide on what to do
@derberg

@Dule-martins this one is hard one for me as I have no idea where to start. Many folks point to https://docs.djangoproject.com/en/dev/internals/contributing/ as good example. And I'm thinking if we should write our own or actually research few, link in one document and just mention some asyncapi-specific things that others do not write about.
I think best is if you start with creating an issue in https://github.com/asyncapi/community and share it in Slack, in #how-to-contribute channel and ask people for input, what contributors need

Is it ok to name the issue contributors guide?

I guess so, in the end it will be like current https://github.com/asyncapi/.github/blob/master/CONTRIBUTING.md but on steroids 😏

Hey @AceTheCreator I would like to work on the Design and Engineering part. Is this issue still active?

@AceTheCreator yo, have a look at last comment from @Asmit2952

Hello @AceTheCreator @derberg @akshatnema
I can see a list of options from design, engineering, and documentation.
How can we understand which of them are yet to be covered and can be worked upon (specifically for engineering and documentation section)?

@BhaswatiRoy in case of documentation, those that are not addressed/completed are not selected/ticked on the list

The community section on the website has a slack option that redirects to the slack invite link
maybe a separate page can be added instead of the invite link which will contain slack rules + invite link + all other slack related info?

@BhaswatiRoy I don't think that's necessary

Hey @AceTheCreator I would like to work on the Design and Engineering part. Is this issue still active?

Hi, @Asmit2952. We have some design tasks you might find interesting. check out this discussion https://github.com/orgs/asyncapi/discussions/593

@BhaswatiRoy what we definitely need is that once we are enabled to publish community docs in website, we definitely needs Slack related guides there

Reopen on @AceTheCreator request

@AceTheCreator I think we can close this issue


Preloading gdscript with builtin range() crashes on Android (Godot 3.1 alpha4)

Possibly related to "Iterating over a range() on android has weird behaviour  #23579"?
Godot version:
3.1 alpha4
OS/device including version:
Android 8.1.0
Samsung Galaxy J5
Issue description:
I've been having crash issues when exporting to Android. I feel like I've ironed it down to using the builtin range function. Whenever I use the range function within a gdscript I am preloading, I get an application crash. Its not obvious from the following error, but if I remove the range(b, n) call from the Special.gd script, everything runs fine.
When preloading a gdscript with a range function, it crashes with a message similar to:
12-31 00:28:45.479 13676 13715 E godot   : **SCRIPT ERROR**: Parse Error: Too many arguments for 'inst2dict()' call. Expected at most 1.
12-31 00:28:45.480 13676 13715 E godot   :    At: res://Special.gdc:5:GDScript::load_byte_code() - Parse Error: Too many arguments for 'inst2dict()' call. Expected at most 1.
12-31 00:28:45.480 13676 13715 E godot   : **ERROR**: Method/Function Failed, returning: ERR_PARSE_ERROR
12-31 00:28:45.480 13676 13715 E godot   :    At: modules/gdscript/gdscript.cpp:768:load_byte_code() - Method/Function Failed, returning: ERR_PARSE_ERROR
12-31 00:28:45.480 13676 13715 E godot   : **ERROR**: Condition ' err != OK ' is true. returned: RES()
12-31 00:28:45.480 13676 13715 E godot   :    At: modules/gdscript/gdscript.cpp:2120:load() - Condition ' err != OK ' is true. returned: RES()
12-31 00:28:45.480 13676 13715 E godot   : **ERROR**: Failed loading resource: res://Special.gdc
12-31 00:28:45.480 13676 13715 E godot   :    At: core/io/resource_loader.cpp:192:_load() - Method/Function Failed, returning: RES()
12-31 00:28:45.480 13676 13715 E godot   : **SCRIPT ERROR**: Parse Error: Can't preload resource at path: res://Special.gd
12-31 00:28:45.480 13676 13715 E godot   :    At: res://Scene1.gdc:4:GDScript::load_byte_code() - Parse Error: Can't preload resource at path: res://Special.gd
12-31 00:28:45.480 13676 13715 E godot   : **ERROR**: Method/Function Failed, returning: ERR_PARSE_ERROR
12-31 00:28:45.480 13676 13715 E godot   :    At: modules/gdscript/gdscript.cpp:768:load_byte_code() - Method/Function Failed, returning: ERR_PARSE_ERROR
12-31 00:28:45.480 13676 13715 E godot   : **ERROR**: Condition ' err != OK ' is true. returned: RES()
12-31 00:28:45.480 13676 13715 E godot   :    At: modules/gdscript/gdscript.cpp:2120:load() - Condition ' err != OK ' is true. returned: RES()
12-31 00:28:45.480 13676 13715 E godot   : **ERROR**: Failed loading resource: res://Scene1.gdc
12-31 00:28:45.480 13676 13715 E godot   :    At: core/io/resource_loader.cpp:192:_load() - Method/Function Failed, returning: RES()
12-31 00:28:45.480 13676 13715 E godot   : **ERROR**: res://Scene1.tscn:3 - Parse Error: [ext_resource] referenced nonexistent resource at: res://Scene1.gd
12-31 00:28:45.480 13676 13715 E godot   :    At: scene/resources/scene_format_text.cpp:439:poll() - res://Scene1.tscn:3 - Parse Error: [ext_resource] referenced nonexistent resource at: res://Scene1.gd
12-31 00:28:45.480 13676 13715 E godot   : **ERROR**: Condition ' err != OK ' is true. returned: RES()
12-31 00:28:45.480 13676 13715 E godot   :    At: core/io/resource_loader.cpp:155:load() - Condition ' err != OK ' is true. returned: RES() 12-31 00:28:45.480 13676 13715 E godot   : **ERROR**: Failed loading resource: res://Scene1.tscn
12-31 00:28:45.480 13676 13715 E godot   :    At: core/io/resource_loader.cpp:192:_load() - Method/Function Failed, returning: RES()
12-31 00:28:45.480 13676 13715 E godot   : **ERROR**: Failed loading scene: res://Scene1.tscn
12-31 00:28:45.480 13676 13715 E godot   :    At: main/main.cpp:1719:start() - Condition ' !scene ' is true. returned: false

Steps to reproduce:

Create a script (Special.gd) with a range function.

extends Node

func _init():
    for i in range(0, 7):
        print("%d" % i)

Create a second script (Scene.gd) that preloads Special.gd.

extends Node2D

const Special = preload("res://Special.gd")

Create project with a single scene (Scene.tscn) and attach the Scene.gd script.
Export and Run on Android.
You can see the application crash on Android or the error thrown in adb logcat.

Minimal reproduction project:
range_crash.zip

did you update android templates matched to editor version?

I just did the "Re-Download" from inside the client, but is there a more definitive way to know I am up to date. The version just says 'alpha'.... be nice if I could compare it to a git commit or alpha#.

Well, it looks like that worked.... thanks @volzhs. Wishing there was some version enforcement on the export templates. (Maybe this issue is just a pre-release versioning thing? Godot would be in good company with pip in that case. :) )

This is only an issue with prerelease snapshots, actual releases can only be used with templates built from the same commit (e.g. 3.1-stable).


glXMakeCurrent failed on Nvidia Hardware.

NOT SANDBOXED
[fresh 21466] not implemented: PPB_OpenGLES2VertexArrayObject;1.0
[fresh 21466] not implemented: PPB_OpenGLES2DrawBuffers(Dev);1.0
[fresh 21466] [PPB] {zilch} ppb_network_monitor_update_network_list
[fresh 21466] [PPB] {zilch} ppb_flash_set_instance_always_on_top instance=11, on_top=1
[fresh 21466] [PPB] {zilch} ppb_network_monitor_update_network_list
[fresh] [error] [NP] caught Xlib error 8
[fresh] [error] [NP] caught Xlib error 8
[fresh] [error] [NP] caught Xlib error 171
[fresh] [error] [NP] caught Xlib error 171
[fresh] [error] ppb_graphics3d_create, glXMakeCurrent failed
[fresh] [error] ppb_graphics3d_create, glXMakeCurrent failed

Acquiring GLES2 context doesn't work for some reason. You could try to use GLES2 emulator by adding -DWITH_GLES2=0 to cmake parameters:
$ cmake -DWITH_GLES2=0 ..
$ make

I've switched to GLES2 emulation by default in 69825502c631b252571b02f214b242c3ee135a3f. Hence path for GLES2 over GLX is now avoided, and that error should not trigger anymore.


Failed to load module for Taiko on Raspberry Pi 4

Expected behavior
Installation of Taiko
Actual behavior
I receive a module error when trying to specify the chromium-browser ENV path during installation.
TAIKO_BROWSER_PATH=$(/usr/bin/chromium-browser) npm install -g taiko
Gtk-Message: 20:21:52.302: Failed to load module "canberra-gtk-module"
Gtk-Message: 20:21:52.305: Failed to load module "canberra-gtk-module"
[17273:17273:0116/202153.078498:ERROR:sandbox_linux.cc(372)] InitializeSandbox() called with multiple threads in process gpu-process.
[17304:7:0116/202153.831615:ERROR:command_buffer_proxy_impl.cc(124)] ContextResult::kTransientFailure: Failed to send GpuChannelMsg_CreateCommandBuffer.
[17304:1:0116/202154.631772:ERROR:child_process_sandbox_support_impl_linux.cc(79)] FontService unique font name matching request did not receive a response.
[17304:1:0116/202154.633083:ERROR:child_process_sandbox_support_impl_linux.cc(79)] FontService unique font name matching request did not receive a response.
[17032:17267:0116/202157.585984:ERROR:udev_watcher.cc(94)] Failed to begin udev enumeration.
Steps to reproduce

Attempted specifying the path to Chromium browser in both 32 and 64 bit Ubuntu versions. the error was the same on both versions.
Attempted standard install, npm install -g taiko (This was anticipated to not work as Chrome is not supported). No errors during installation.

Versions

Taiko version 1.0.3
Node version 13.6.0

@dabruce84 - were you able to get this working?

Closing this, feel free to comment if this is still an issue.


Managed OpenSearch

Hey,
I can't see any managed OpenSearch instance config in the go package, is it possible to create one?
Thanks

Hi @ainsleyclark. Thanks for opening an issue.
The only OpenSearch related resource I could find currently for the provider is https://www.pulumi.com/registry/packages/digitalocean/api-docs/databaseopensearchconfig/.
If that's not what you are looking for, then you will need to file an issue in the upstream provider here (pulumi-digitalocean is generated from digitalocean/terraform-provider-digitalocean, so we have exactly the same set of resources that they do).

Nice one thank you, I think this is what I'm looking for.


data: imaaquibali

Changes proposed

Added profile

Check List (Check all the applicable boxes)

[x] My code follows the code style of this project.
[ ] My change requires changes to the documentation.
[ ] I have updated the documentation accordingly.
[x] All new and existing tests passed.
[x] This PR does not contain plagiarized content.
[x] The title of my pull request is a short description of the requested changes.

Screenshots

Note to reviewers

Add this profile as soon as possible

Hey @imaaquibali please put your file in data folder

Done. Can you please check it know.

looks good


Implement Coinbase Advanced REST Input Plugin

The CoinbasePro API has now been retired. The current input plugin needs to be deleted and a new Coinbase Advanced Plugin needs to be written. The Python library can be used or it can leverage the CCXT plugin infastructure.

[ ] Remove CoinbasePro Plugin and accompanying documentation
[ ] Add Coinbase Advanced Data Loader Plugin

both Coinbase and pro get removed, right? Both are in table of contents in config file doc but pro has a dead link


Sometimes it looks like Matrix message reception just stops

Outbound messages still work, though.

Hasn't happened for a long while.


chore: Upgrade dependencies

@obitech If this is good to merge, could you release this patch version? Thank you!

sorry for the nitpicking, but does this bump make any actual difference here? It doesn't look like there were any changes to the API we use? (unless I'm overlooking something, of course)

sorry for the nitpicking, but does this bump make any actual difference here? It doesn't look like there were any changes to the API we use? (unless I'm overlooking something, of course)

Hi @costela
It does not make much difference. The only detail, I believe, is that, somebody using latest pgx would not see 5.0.1 in the tree of indirect dependencies. But no changing behavior (hence patch version upgrade).


Headers are not found by objc_library on Bazel 4.0.0

Running
bazel build Example --verbose_failures --spawn_strategy=sandboxed --incompatible_run_shell_command_string=false --incompatible_objc_provider_remove_compile_info=false

Note --incompatible_objc_provider_remove_compile_info=false due to https://github.com/pinterest/PodToBUILD/issues/170
WORKSPACE
    ### PodToBUILD
    http_archive(
        name = "rules_pods",
        urls = ["https://github.com/pinterest/PodToBUILD/releases/download/3.4.1-ea20598f/PodToBUILD.zip"],
    )

    ### Apple
    http_archive(
        name = "build_bazel_rules_apple",
        sha256 = "a41a75c291c69676b9974458ceee09aea60cee0e1ee282e27cdc90b679dfd30f",
        url = "https://github.com/bazelbuild/rules_apple/releases/download/0.21.2/rules_apple.0.21.2.tar.gz",
    )

    http_archive(
        name = "build_bazel_apple_support",
        sha256 = "02ac04ff0a0de1e891a1fa8839cc6a5957e3c4a80856545aa35a786d15aad108",
        url = "https://github.com/bazelbuild/apple_support/releases/download/0.9.1/apple_support.0.9.1.tar.gz",
    )

    http_archive(
        name = "build_bazel_rules_swift",
        sha256 = "d0e5f888b2ccce42c92e6d4686b5507b4230462627f965f9d39862e11ae9fb35",
        url = "https://github.com/bazelbuild/rules_swift/releases/download/0.18.0/rules_swift.0.18.0.tar.gz",
    )

BUILD.bazel
objc_library(
    name = "Example",
    srcs = [
        "ios/Example/main.m",
    ],
    hdrs = glob(["ios/Example/*.h"]),
    deps = [
        "//Vendor/Folly",
    ],
)

Pods.WORKSPACE
new_pod_repository(
    name = "Folly",
    generate_header_map = True,
    podspec_url = "node_modules/react-native/third-party-podspecs/Folly.podspec",
    url = "https://github.com/facebook/folly/archive/v2<IP_ADDRESS>.zip",
)

I get result
Vendor/Folly/folly/net/NetOps.cpp:17:10: fatal error: 'folly/net/NetOps.h' file not found
#include <folly/net/NetOps.h>

or
Vendor/Folly/folly/container/detail/F14Table.cpp:17:10: fatal error: 'folly/container/detail/F14Table.h' file not found
#include <folly/container/detail/F14Table.h>

or any number of other errors due to some header file not being found.

Not just Folly, but all pods that would require header mapping now seem to fail in this way.
Using the Folly podspec shipping with React Native:
# Copyright (c) Facebook, Inc. and its affiliates.
#
# This source code is licensed under the MIT license found in the
# LICENSE file in the root directory of this source tree.

Pod::Spec.new do |spec|
  spec.name = 'Folly'
  spec.version = '2<IP_ADDRESS>'
  spec.license = { :type => 'Apache License, Version 2.0' }
  spec.homepage = 'https://github.com/facebook/folly'
  spec.summary = 'An open-source C++ library developed and used at Facebook.'
  spec.authors = 'Facebook'
  spec.source = { :git => 'https://github.com/facebook/folly.git',
                  :tag => "v#{spec.version}" }
  spec.module_name = 'folly'
  spec.dependency 'boost-for-react-native'
  spec.dependency 'DoubleConversion'
  spec.dependency 'glog'
  spec.compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -DFOLLY_HAVE_PTHREAD=1 -Wno-comma -Wno-shorten-64-to-32 -Wno-documentation'
  spec.source_files = 'folly/String.cpp',
                      'folly/Conv.cpp',
                      'folly/Demangle.cpp',
                      'folly/FileUtil.cpp',
                      'folly/Format.cpp',
                      'folly/lang/SafeAssert.cpp',
                      'folly/ScopeGuard.cpp',
                      'folly/Unicode.cpp',
                      'folly/dynamic.cpp',
                      'folly/json.cpp',
                      'folly/json_pointer.cpp',
                      'folly/container/detail/F14Table.cpp',
                      'folly/detail/Demangle.cpp',
                      'folly/detail/UniqueInstance.cpp',
                      'folly/hash/SpookyHashV2.cpp',
                      'folly/lang/Assume.cpp',
                      'folly/lang/CString.cpp',
                      'folly/memory/detail/MallocImpl.cpp',
                      'folly/net/NetOps.cpp',
                      'folly/portability/SysUio.cpp'

  # workaround for https://github.com/facebook/react-native/issues/14326
  spec.preserve_paths = 'folly/*.h',
                        'folly/container/*.h',
                        'folly/container/detail/*.h',
                        'folly/detail/*.h',
                        'folly/functional/*.h',
                        'folly/hash/*.h',
                        'folly/lang/*.h',
                        'folly/memory/*.h',
                        'folly/memory/detail/*.h',
                        'folly/net/*.h',
                        'folly/net/detail/*.h',
                        'folly/portability/*.h'
  spec.libraries           = "stdc++"
  spec.pod_target_xcconfig = { "USE_HEADERMAP" => "NO",
                               "CLANG_CXX_LANGUAGE_STANDARD" => "c++14",
                               "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)\" \"$(PODS_ROOT)/boost-for-react-native\" \"$(PODS_ROOT)/DoubleConversion\"" }

  spec.default_subspec = 'Default'

  spec.subspec 'Default' do
    # no-op
  end

  spec.subspec 'Fabric' do |fabric|
    fabric.source_files = 'folly/SharedMutex.cpp',
                          'folly/concurrency/CacheLocality.cpp',
                          'folly/detail/Futex.cpp',
                          'folly/synchronization/ParkingLot.cpp',
                          'folly/portability/Malloc.cpp'
    fabric.preserve_paths = 'folly/concurrency/CacheLocality.h',
                            'folly/synchronization/ParkingLot.h',
                            'folly/synchronization/SanitizeThread.h',
                            'folly/system/ThreadId.h'
  end

  # Pinning to the same version as React.podspec.
  spec.platforms = { :ios => "10.0", :tvos => "10.0" }
end

I've also tried https://raw.githubusercontent.com/facebook/react-native/master/third-party-podspecs/RCT-Folly.podspec -- no change.
@jerrymarino I read your comment on https://github.com/bazelbuild/bazel/issues/12131#issuecomment-696446794, saying that PodToBUILD should take care of this. Maybe it's broken in Bazel 4.0.0?
I wonder if any of the breaking changes affect this? https://github.com/bazelbuild/bazel/issues?q=label%3Abreaking-change-4.0+is%3Aclosed
Just downgraded and it does seem to find Folly's headers on Bazel 3.7.2 without generate_header_maps:
# This works on Bazel 3.7.2
new_pod_repository(
    name = "Folly",
    install_script = """
        __INIT_REPO__
        # __has_include erroneously returns true for damangle.h, which later causes an link error
        sed -i '' 's/__has_include(<demangle.h>)/false/g' folly/detail/Demangle.h
        rm -rf pod_support/Headers/Public/*
    """,
    podspec_url = "third_party/podspecs/Folly.podspec",
    url = "https://github.com/facebook/folly/archive/v2<IP_ADDRESS>.zip",
)

I am facing the same issue, can anybody help out with this please?

Resolved by #174


Setting duration to 0 should disable animation

It would be useful if when a progress bar has a duration = 0, then animation would be disabled.
I understand that it may be possible to address this with .set() vs .animate() - but unfortunately, my use case doesn't allow for this...

I'm actually using EmberJS, so I use an add-on which wraps progress.js (https://github.com/patience-tema-baron/ember-progress-bar).
This wrapper doesn't expose a way to set or animate. I could request that maintainer adds it as a feature to the wrapper, but it seems it would make for a cleaner API to your upstream project if it were added here...
Seems that .set() vs .animate() is an implementation detail anyway and presence (or absence) of duration is a better indication of whether to animate the progress bar...

Ok thanks for the explanation. In this case I think duration 0 could indeed disable the animation as you explained.
In general, ProgressBar.js exposes a simple imperative API by design. Wrappers (e.g. for React or Ember) should be wrap this to a more native API in their worlds.


Error on security-hardened systems

Hi!
I'm running isso (which depends on misaka) in dreamhost. Since a couple of months my isso CGI stopped working:
$ ~/mardy.it/cgi-bin/isso.fcgi
Traceback (most recent call last):
  File "/home/mardy/mardy.it/cgi-bin/isso.fcgi", line 7, in <module>
    from isso import make_app
  File "/home/mardy/isso/lib/python3.6/site-packages/isso/__init__.py", line 72, in <module>
    from isso.utils import http, JSONRequest, html, hash
  File "/home/mardy/isso/lib/python3.6/site-packages/isso/utils/html.py", line 6, in <module>
    import misaka
  File "/home/mardy/isso/lib/python3.6/site-packages/misaka/__init__.py", line 3, in <module>
    from .api import *
  File "/home/mardy/isso/lib/python3.6/site-packages/misaka/api.py", line 10, in <module>
    from .callbacks import python_callbacks, to_string
  File "/home/mardy/isso/lib/python3.6/site-packages/misaka/callbacks.py", line 8, in <module>
    @ffi.callback('void(hoedown_buffer *ob, const hoedown_buffer *text, '
MemoryError: Cannot allocate write+execute memory for ffi.callback(). You might be running on a system that prevents this. For more information, see https://cffi.readthedocs.io/en/latest/using.html#callbacks

I understand that this will be eventually solved by #69, but I wonder if you are aware of a quicker workaround to get things working?

Hi, thanks for the report! Do you have more details about the system you're running? Then I can reproduce the issue and see what I can do.
----- Original message -----
From: Alberto Mardegan<EMAIL_ADDRESS>To: FSX/misaka<EMAIL_ADDRESS>Cc: Subscribed<EMAIL_ADDRESS>Subject: [FSX/misaka] Error on security-hardened systems (#72)
Date: Friday, September 06, 2019 16:51
Hi!
I'm running isso (which depends on misaka) in dreamhost. Since a couple of months my isso CGI stopped working:
$ ~/mardy.it/cgi-bin/isso.fcgi  Traceback (most recent call last):   File "/home/mardy/mardy.it/cgi-bin/isso.fcgi", line 7, in <module>     from isso import make_app   File "/home/mardy/isso/lib/python3.6/site-packages/isso/__init__.py", line 72, in <module>     from isso.utils import http, JSONRequest, html, hash   File "/home/mardy/isso/lib/python3.6/site-packages/isso/utils/html.py", line 6, in <module>     import misaka   File "/home/mardy/isso/lib/python3.6/site-packages/misaka/__init__.py", line 3, in <module>     from .api import *   File "/home/mardy/isso/lib/python3.6/site-packages/misaka/api.py", line 10, in <module>     from .callbacks import python_callbacks, to_string   File "/home/mardy/isso/lib/python3.6/site-packages/misaka/callbacks.py", line 8, in <module>     @ffi.callback('void(hoedown_buffer *ob, const hoedown_buffer *text, ' MemoryError: Cannot allocate write+execute memory for ffi.callback(). You might be running on a system that prevents this. For more information, see https://cffi.readthedocs.io/en/latest/using.html#callbacks
I understand that this will be eventually solved by #69 https://github.com/FSX/misaka/issues/69, but I wonder if you are aware of a quicker workaround to get things working?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub https://github.com/FSX/misaka/issues/72?email_source=notifications&email_token=AAAPWEPYX4YMDEOSGLAMP5LQIJU7HA5CNFSM4IUJ4ML2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HJ2OVUQ, or mute the thread https://github.com/notifications/unsubscribe-auth/AAAPWEPN3V2TQH6BTIF2VMLQIJU7HANCNFSM4IUJ4MLQ.

Hi, thanks for the report! Do you have more details about the system you're running? Then I can reproduce the issue and see what I can do.

Not really, but the page linked in the error message has some informative recommendation:

To fix the issue once and for all on the affected platforms, you need to refactor the involved code so that it no longer uses ffi.callback().

For the time being, I've "fixed" the issue by making isso use mark3 instead of misaka, just on my own hosting.

Alright. I'll take a look at it once I get home. 👍
----- Original message -----
From: Alberto Mardegan<EMAIL_ADDRESS>To: FSX/misaka<EMAIL_ADDRESS>Cc: Frank<EMAIL_ADDRESS>Comment<EMAIL_ADDRESS>Subject: Re: [FSX/misaka] Error on security-hardened systems (#72)
Date: Friday, September 06, 2019 17:13

Hi, thanks for the report! Do you have more details about the system you're running? Then I can reproduce the issue and see what I can do.

Not really, but the page https://cffi.readthedocs.io/en/latest/using.html#callbacks linked in the error message has some informative recommendation:

To fix the issue once and for all on the affected platforms, you need to refactor the involved code so that it no longer uses ffi.callback().

For the time being, I've "fixed" the issue by making isso use mark3 instead of misaka, just on my own hosting.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/FSX/misaka/issues/72?email_source=notifications&email_token=AAAPWEMTEHPWOQXXGJNWNNLQIJXQHA5CNFSM4IUJ4ML2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD6DEWLQ#issuecomment-528894766, or mute the thread https://github.com/notifications/unsubscribe-auth/AAAPWEOB4EJLP4BEJVLXJU3QIJXQHANCNFSM4IUJ4MLQ.

@mardy Can you give this branch https://github.com/FSX/misaka/tree/cffi-new-style-callbacks a try?

Wow, that was fast! Works like a charm :-)

Good. I'll make a release shortly (and then close this issue).

#72e.g.R&D...
My Bad ...
Solve Error to collateral damage respond...l
communication dispose
contingent action over this matter effective
...immediately
recourse ricin to ...
whisky-data-alpha
On Sat, Sep 7, 2019, 9:06 AM Frank<EMAIL_ADDRESS>wrote:

Good. I'll make a release shortly (and then close this issue).
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/FSX/misaka/issues/72?email_source=notifications&email_token=AAVHD2GJKPMCDL3WWLDEED3QIPGSHA5CNFSM4IUJ4ML2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD6E37PY#issuecomment-529121215,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAVHD2C6NLWBQ5ZB3OGWUHLQIPGSHANCNFSM4IUJ4MLQ
.


[21st][GUI] - Add retailer name to displayed version

It would be "Liana vX.Y.Z - 21st Capital".
This is the version displayed at the top of the GUI and on the Settings > About page.

Completed in #5.


redox: correct EPOLL constants

Reference: https://gitlab.redox-os.org/redox-os/relibc/-/commit/0f5e6a5649dba7979f5b78965a68268c1f8ff894

Could you rebase to make CI green?

@jackpot51 gentle nudge, as mentioned above this just needs a rebase
@rustbot author

Sorry for the delay, I have rebased it now.

Oh, looks like no backport is needed since these were already in 0.2 from https://github.com/rust-lang/libc/pull/3686.


Sheepo

New Port for Sheepo
Game Information

Title: Sheepo
URL:  https://store.steampowered.com/app/1281790/SHEEPO/

Submission Requirements
CFW Tests
Ensure your game has been tested on all major CFWs:

[X] AmberELEC
[X] ArkOS
[X] ROCKNIX
[X] muOS

Resolution Tests
Test all major resolutions:

[X] 480x320
[X] 640x480
[X] 720x720 (RGB30)
[X] Higher resolutions (e.g., 1280x720)

File Structure

Your port should have the following structure:

portname/

port.json
README.md
screenshot.jpg
cover.jpg
gameinfo.xml
Port Name.sh
portname/

Additional Resources
For an in-depth guide on creating a pull request, refer to: PortMaster Game Packaging Guide

Thank you @cdeletre and @Cebion for the reviews!


Slides in swiper are not detecting link clicks when using events.

So i can't click on links if i use an event like touchEnd, it's only when swiper is rerendered that i'm able to click the link inside of the slide.
Video showing the issue: Youtube Video
  const params = {
    spaceBetween: 0,
    grabCursor: true,
    loop: true,
    preventClicks: false,
    preventClicksPropagation: false,
    initialSlide: global.projectIndex,
    on: {
      touchEnd: (e) => {
        if (global.showProjectSwiperTips === true) {
          setGlobal({ ...global, showProjectSwiperTips: false });
        }
      },
    },
  };

I get a similar behavior. When clicking on div inside the swiper-slide, sometimes the event propagates and sometimes not.


Is there any chance to load plot with exactly scale by time? (auto scale by time)

I want to load my line series with auto scale feature by time: from time1 (at the left side of the window) and to time2 (at the right side).
Something like timeframe (one month, one week) but I want to scale it to the whole window size automatically.
Is it possible?

You can use setVisibleRange method https://github.com/tradingview/lightweight-charts/blob/master/docs/time-scale.md#setvisiblerange to change visible range.


Add Commsec

Similar to their netbank passwords, except they don't allow ` and ~, however they will allow '

16 maximum characters just makes me mad.

@duffn  especially for a share trading platform where such a short password gives you access to lots of money.


Create a tag for the picture element + support for responsive image sets

The picture element which allows different sizes of image for different screen resolutions is becoming the widely accepted standard for responsive images, especially as polyfills are now available for it.
Given that wagtail allows resizing of images on the fly by the server it would be nice to see it supporting the picture element by providing a tag for it.

Any updates here?

Merging in notes from related issue #3573
Link: https://blog.ycombinator.com/how-to-use-responsive-images/
Comment

As far as I can tell,  is used for "simple" responsive image.  is for a more of an art direction approach (e.g. show a landscape version under certain conditions, portrait under others).
Why can't Wagtail support both? Start with srcset then expand to picture?

Also worth reading for best practice: https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images

Supporting srcset with 2x 3x 4x would be a great start
https://webkit.org/demos/srcset/
Support seems good
https://www.keycdn.com/blog/responsive-images/

A manual approach I tried that works in firefox, looked like this -
{% image settings.invest.Branding.logo width-176 as logo %}
{% image settings.invest.Branding.logo width-352 as logo_2x %}

Well, the manual aproach is quite painful when you combine picture for art direction and srcset for different device-pixel-ratios. For this use case I'm just building 2 (3?) src and one img tag within the picture, each having three (two?) resolutions via srcset. That's 8 or 9 image vars to declare,
quite a lot of DRY there.
I'm currently looking into modifying the responsive image tag someone posted to also generate src-tags, that could be a first step for my current needs.

This article raises a point worth considering:  it advocates only using the <picture> tag in the art direction use case and says that srcset used on the  tag is a better choice because it allows the browser to choose which image to use based upon user preferences.

I have achieved srcset in images inside articles by this code:
# image_formats.py
from wagtail.images.formats import Format, register_image_format, unregister_image_format, get_rendition_or_not_found
from django.utils.html import escape

class SrcsetFormat(Format):
    def __init__(self, name, label, classnames, filter_spec, alternative_filter_specs):
        self.name = name
        self.label = label
        self.classnames = classnames
        self.filter_spec = filter_spec
        self.alternative_filter_specs = alternative_filter_specs

    def image_to_html(self, image, alt_text, extra_attributes=''):
        rendition = get_rendition_or_not_found(image, self.filter_spec)

        rendition_srcset = []
        for alternative_filter_spec in self.alternative_filter_specs:
            rendition_srcset.append(get_rendition_or_not_found(image, alternative_filter_spec))

        if self.classnames:
            class_attr = 'class="%s" ' % escape(self.classnames)
        else:
            class_attr = ''

        return '' % (
            extra_attributes, class_attr,
            escape(rendition.url), alt_text,
            ", ".join("%s %sw" % (escape(r.url), r.width) for r in rendition_srcset),
        )

unregister_image_format('fullwidth')
register_image_format(
    SrcsetFormat(
        'fullwidth',
        'Full width',
        'richtext-image full_width',
        'max-640x360',
        ['max-640x360', 'max-768x432', 'max-1024x576', 'max-1600x900', 'max-1920x1080'],
    ),
)

Fell free to reuse it or include in Wagtail code.

Wagtail is a really great CMS and I would love to use it. But since I don't like blurry images so much I've implemented a srcset_image tag which sets the srcset attribute automatically when a width resize rule was given (the other rules like fill, max etc are still to be done). But since I only use width, it works for me now:
wagtail-srcset

I wanted to leave a comment for future people trying to get high-DPI images from the built-in Draftail editor. I tested and can confirm that PetrDlouhy's code above works fine on Wagtail 2.9 to allow content made with the rich text editor to display as high-DPI / retina / srcset images. You just cut and paste the code into the /sitename/image_formats.py file - no further edits are necessary.
Note that by default it only works for full width images, not left- or right-aligned. To include left/right-aligned images, you need to add:
`unregister_image_format('left')
register_image_format(
SrcsetFormat(
"left",
"Left-aligned",
"richtext-image left",
"max-640x360",
[
"max-640x360",
"max-768x432",
"max-1024x576",
"max-1600x900",
"max-1920x1080",
],
),
)
unregister_image_format('right')
register_image_format(
SrcsetFormat(
"right",
"Right-aligned",
"richtext-image right",
"max-640x360",
[
"max-640x360",
"max-768x432",
"max-1024x576",
"max-1600x900",
"max-1920x1080",
],
),
)`

Recently discussed this on Slack (cc @mikemonteith @vsalvino @fabienheureux), summary for future reference,

This is feeling more relevant than ever due to Safari 14 coming with WebP support in September to November 2020
Can either be done at the Wagtail level, or with a reverse proxy that automagically does this, nginx or Apache https://www.modpagespeed.com/, Cloudflare Polish https://support.cloudflare.com/hc/en-us/articles/360000607372-Using-Cloudflare-Polish-to-compress-images
For Wagtail implementations and WebP support, may need to check needed system dependencies (for example optimized Docker images)
Could be a good opportunity for Wagtail to provide a first- or third-party opinionated, optimized image / picture implementation, so sites can benefit from optimisations without reinventing the wheel.

Sample React implementation from Fabien:
        <picture>
          <source
            type="image/webp"
            sizes="(max-width: 600px) 480px, 920px"
            srcSet={`
                ${image.webp.src} 480w,
                ${image.webp2.src} 920w
              `}
          />

        </picture>

Sample Django templates from Mike:
{% with sizes="(min-width: 1000px) 420px, (min-width: 768px) 40vw, 100vw" %}
  {% get_images_by_sizes value.image sizes aspect_ratio as images %}

{% endwith %}

Tagging this as "Needs design decision" because I think it’d be worth deciding first whether any of this should happen in Wagtail core, or whether we’d rather encourage third-party implementations as done so far.

My opinionated design would be one of two things:

Keep webp support as-is, and let the developer determine how they should handle it.

The wagtail {% image %} tag could intelligently decide to produce a webp or fallback to a jpg by reading the HTTP Accept header on the request. If it contains image/webp then produce webp, as this means the browser supports it. It if does not contain that value, then produce a jpg. The {% image %} tag could take an argument webp-fallback which would produce this behavior, regular webp argument would always produce a webp. This behavior could be further extended to new image formats in the future.

Option 2 above has the advantage of continuing to work, even in ancient browsers, as it adheres to older HTML standards (e.g. HTML 4 / XHTML) The problem with a <picture> tag is that older browsers do not reliably support it (especially those of us who still need to support IE).
See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Content_negotiation/List_of_default_Accept_values

I like the idea of using the Accept header, but we'd have to be careful about what it means for caching - if there's no clever way to tell front-end caches to store one webp and one non-webp version, the best we could do is tell them to vary on the Accept header, which means saving one copy for each distinct Accept header sent by any browser.

I like the simplicity of being able to keep the {% image %} tag as-is, but to me it’s more appealing to consider support for picture (or srcset) so this can be taken further. Sticking with a single img tag means only being able to serve a different image based on the request headers , while picture or srcset let the user agent be in control, based on file formats they support, and device width, and pixel density.
@vsalvino there is no browser support problem with <picture>, browsers that don’t support it would just load the  inside it as usual, with the fallback JPG or PNG image. Same with srcset on the img tag, the src attribute still is mandatory and used as a fallback. I just tried http://responsiveimages.org/demos/basic-implementation/index.html in IE6 to confirm, working as expected.

If we were to keep using the {% image %} tag we need to resolve the fact that you can't currently remove the width and height attributes, which should not be included when using srcset and sizes - see https://github.com/wagtail/wagtail/issues/5289.

@thibaudcolas good to hear about the picture tag. Seems to be the way to go then!

Thanks to @PetrDlouhy for his code above. Here is modification that allows richtext images to use a picture tag with webp support.
# image_formats.py
from wagtail.images.formats import Format, register_image_format, unregister_image_format, get_rendition_or_not_found
from django.utils.html import escape

register_image_format(Format('thumbnail', 'Thumbnail', 'richtext-image thumbnail', 'max-120x120'))

class SrcsetFormat(Format):
    def __init__(self, name, label, classnames, filter_spec, alternative_filter_specs, media_filter):
        self.name = name
        self.label = label
        self.classnames = classnames
        self.filter_spec = filter_spec
        self.alternative_filter_specs = alternative_filter_specs
        self.media_filter = media_filter

    def image_to_html(self, image, alt_text, extra_attributes=''):
        default_rendition = get_rendition_or_not_found(image, self.filter_spec)

        rendition_srcset = []
        for alternative_filter_spec in self.alternative_filter_specs:
            rendition_srcset.append(get_rendition_or_not_found(image, alternative_filter_spec))

        if self.classnames:
            class_attr = 'class="%s" ' % escape(self.classnames)
        else:
            class_attr = ''

        html_str = '<picture>'
        for idx, rendition in enumerate(rendition_srcset):
            file_type = ''
            if rendition.file.name.lower()[-5:] == '.webp':
                file_type = 'type="image/webp"'

            html_str += f'<source srcset="{rendition.url}" {file_type} media="{self.media_filter[idx]}">'

        html_str += f''
        html_str += '</picture>'

        return html_str

# An image format that uses a picture tag along with webp and media queries to optimize image size/format
unregister_image_format('fullwidth')
register_image_format(
    SrcsetFormat(
        'fullwidth',
        'Full width',
        'richtext-image full_width',
        'max-1920x1080',
        ['max-640x360|format-webp', 'max-640x360', 'max-768x432|format-webp', 'max-768x432', 'max-1024x576|format-webp', 'max-1024x576', 'max-1600x900|format-webp', 'max-1600x900', 'max-1920x1080|format-webp', 'max-1920x1080'],
        ['(max-width: 640px)', '(max-width: 640px)', '(max-width: 768px)', '(max-width: 768px)', '(max-width: 1024px)', '(max-width: 1024px)', '(max-width: 1600px)', '(max-width: 1600px)', '(min-width: 1601px)', '(min-width: 1601px)'],
    ),
)

This is being implemented via https://github.com/wagtail/rfcs/pull/71. And we will hopefully get a PR in the coming months

For anyone interested in this, we’ve implemented {% picture %} and {% srcset_image %} in #10781, for release in Wagtail 5.2.

The picture tag supports multiple image formats and/or multiple image sizes
The srcset_image tag supports multiple sizes only
Both tags allow retrieving image renditions in bulk within a template, so you can generate your own <picture> or srcset image if there is a need.

We have a bit more docs to write still (see #11068), but the implementation is all there, largely as per RFC 71.


build: bump python core to 3.19.2

:tada: This PR is included in version 0.51.2 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


GitHub Service Hook

Travis CI has a custom GitHub Service hook, which allows it to do this:

Is this feature coming to Drone.io? (or is it there and I can't find it?)

@bradrydzewski Any updates on this?
http://beta.drone.io/ doesn't seem to be quite right...

beta.drone.io service was shutdown. Now using test.drone.io. Looks like digital ocean re-allocated the IP address so I need to revoke the DNS entry :)  Good catch!

but there are no updates because, as far as I know, there are no issues. You can see examples of this working her with the latest pull request we received: https://github.com/drone/drone/pull/963


emacs: vc: browse-at-remote: bump to 771a3079e2

It now defaults to adding the line number. Controlled by this variable.

The purpose of these commands was to do the equivalent of browse-at-remote-add-line-number-if-no-region-selected = nil. a25dea9 does this and bump the package. Thanks for bringing it to my attention.


feat : test code (server side)

The way I'm building the project in issue #6 also runs the tests. I could add a flag that skips running the tests if we want the building and testing separated

Closed by #6


(PDB-4512) Allow include_facts_expiration everywhere

This will need to be rebased on top of #3143 once it's merged -- it contains all of those changes, plus the few drop-joins related changes that were relevant to 6.3 (e.g. include_facts_expiration).

CLA signed by all contributors.


Create prerequisites for lifecycle-controller docs

In this issue before setting up the local setup first we have some prerequisites which need to be considered, I collected the following and wanted to know if that missed something or if it's ok to move to the next step.
Prerequisites:

A Kubernetes cluster >= Kubernetes 1.24
If you don’t have one, we recommend Kubernetes-in-Docker(KinD) to set up your local development environment
kubectl installed on your system
See (https://kubernetes.io/docs/tasks/tools/) for more information
Adding the Golang extension configuration file in VSCode
GoLand / IntelliJ Plugins should be installed

Did I miss something as a prerequisite?
Issue related to #212
@StackScribe @thisthat @bradmccoydev

Hi @Amishakumari544, thanks for working on this one! I would probably specify also Docker since it is needed to build a new version of the containers.
The CI pipeline checks for linted code, it can be useful to install golang-ci lint  to run the autofix eg.
golangci-lint run --fix --disable=typecheck --path-prefix=scheduler/ --config ../.golangci.yml -v
maybe also list some of the useful plugins ?  In my intellij I can see:

Conventional Commit
Cloud Code
Kubernetes

an other thing we plan to get rid of customize installation from our makefile so also kustomize should be mentioned to be able to generate manifests

Thanks for adding @RealAnna I will add make as  a note for windows user do we need more things or it's done?

Thanks for adding @RealAnna I will add make as a note for windows user do we need more things or it's done?

nothing else comes to mind...


unshare err (path): no matches found!

I am still having issues with 'unshare', perhaps it's related to https://github.com/odeke-em/drive/issues/747 or another issue.
When I try

drive unshare -id some_id -emails<EMAIL_ADDRESS>
I get

Addressees:

Anyone with the link
...
unshare err (path): no matches found!

Presumably addressees should be<EMAIL_ADDRESS>In any case, the file is not unshared.
Thanks!

I don't know if Google allows case insensitive emails so please confirm that that's the right email.
Maybe Gmail might accept it, but I don't think that would be in the scope for drive which just forwards along emails assuming the user entered them correctly.

I confirm that Gmail doesn't allow uppercase letters in usernames.
I already tried to create such an address and uppercase letters are automatically converted to lowercase while creating the account.
Gmail automatically forwards emails:

with case "issues"
with dots randomly addded between letters (this doesn't work for Google Apps accounts)
with +something (or even +something+somthingelse) added at the end

But, I second @odeke-em, I don't think that should be handled in drive.

Cool, thank you @chevillet for the research!
Yeah, and also there is another thing, if their email provider allows lower case and
upper case distinct emails, trying to send to both by normalizing to one case would create
privacy and security holes in which someone can phish for emails if files are successfully
sent but also accidentally share with the wrong person their files.
I'll close this issue. If there is something else we can do, please feel free to raise it here and we
can reopen the issue.

Hi all,
really sorry for the confusion - it was just a typo on my part. I can confirm that I'm using the emails in lower case, and exactly as they are on drive.
I am still having issues with 'unshare', perhaps it's related to https://github.com/odeke-em/drive/issues/747 or another issue.
When I try

drive unshare -id some_id -emails<EMAIL_ADDRESS>
I get

Addressees:

Anyone with the link
...
unshare err (path): no matches found!

And the last point was then very subtle - not "presumably adressES should be<EMAIL_ADDRESS>ie lowercase" but "presumably addressEES should be<EMAIL_ADDRESS>(rather than "anyone with the link")?
In any case, the file is not unshared. Sorry again for that - any thoughts?
Thanks!

My bad, I admit I never use this feature and I was just giving details about how Gmail and Google Apps handle email addresses because I already spent time testing almost everything I could think of (I wasted almost an hour before figuring out that the dot trick wasn't working on Google Apps).
I'll let @odeke-em give you an answer about the actual issue.

No worries @chevillet, your clarification helped me too and gave me a hunch on a suspicion I had about outside Gmail addresses.
@bjohas thanks for the update. Okay, so can you verify the email of the person that you want unshared from the file, then try to unshare it? If that fails, please report your drive version.

I've figured this out:

drive unshare -id some_id -emails<EMAIL_ADDRESS>
does NOT work, but

drive unshare -emails<EMAIL_ADDRESS>-id some_id

DOES work. It would be good to fix this, so that the order of the arguments doesn't matter!

Okay the confusion here is the key --id is just a switch, irrespective of where you put it, it is just a boolean value
$ drive unshare --id --emails<EMAIL_ADDRESS>id1 id2 id3

instead of sharing by path
$ drive unshare --emails<EMAIL_ADDRESS>pathWithid1 pathWithid2 pathWithid3

There is an example in the README https://github.com/odeke-em/drive#unsharing

AHA! OK, many thanks!!


[consensus] Make consensus data cryptographically agile

What this does:
This PR offers a binding discipline for using cryptographic types in a pseudo-generic way in the consensus crate, without propagating generic parameters. Instead of making consensus structures parametric in their cryptographic type (as in #522), we make consensus data structures depend on instantiations of generic structs.

those instantiations are all aliased in one central place, allwoing an easy change of the cryptographic scheme.
they are defined in terms of a generic struct, which, by virtue of genericity ensures encapsulation.

This PR also introduces a newtype pattern (SignatureWrapper) for the signature type sued in BlockSource, VoteMsg, TimeOutMsg, etc ... and aliases it. It is built as an alternative to #522 that offers a better readability through lack of generic type parameters.
This relies on practices that will have to be enforced by convention in the consensus crate:

nobody uses cryptographic schemes directly.
when defining a struct that must use cryptographic types, define it in the form of a polymorphic container struct that works for any impl of some crypto::traits type, then alias that struct type in consensus::chained_bft::consensus_types

Why this is better:

Contains less generic parameters than #522,
the SignatureWrapper trait is pretty restrictive.

Why this is worse:

Breaking any one of the (1, 2) practices above will lose cryptographic agility or encapsulation,
This does not reflect the Send + Sync constraints enforced on the Signature type  (though most reasonable trait implementations will comply with those),

Test

existing unit tests,

Closes #522

Thanks! structs.rs seems very general, can we rename it to sth like crypto_struct.rs?

Done!

I think types might be a good place for the type alias too


I cant use sms authentication after turn on app check and play integrity

I cant user sms authentication after turn on app check and play integrity
everything was working well, but after turn it on alwayes give me error of missing client identifier.
i had added sha1 & 256 from play console to firebase and
problem still exist.
please i need help because app is already published

also i tried to enable saftey net and get this error , although i am the owner of project !

@snosey
Can you provide complete error log in properly formatted text ? Please avoid posting screenshots.
Also, which device are you seeing this error on ? Does it have Google play services enabled ?
From the above screenshot, have you enabled SafetyNet instead of Play integrity ?

i cant enable safteyNet , keep telling me you are not the owner ￼
and thats is error which show for the user
￼
altough i have enabled play integrity and put SHA1 & 256 in firebase console from google play
￼
￼
i cant solve the problem :( please help me

On 16 Feb 2023, at 1:11 PM, darshankawar @.***> wrote:
@snosey https://github.com/snosey
Can you provide complete error log in properly formatted text ? Please avoid posting screenshots.
Also, which device are you seeing this error on ? Does it have Google play services enabled ?
From the above screenshot, have you enabled SafetyNet instead of Play integrity ?
—
Reply to this email directly, view it on GitHub https://github.com/firebase/flutterfire/issues/10467#issuecomment-1432922110, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACZVL2GQFQYQLHKCVHWVQSTWXYDPBANCNFSM6AAAAAAU555NXQ.
You are receiving this because you were mentioned.

sorry about screenshot, but to understand the problem because i cant solve it for 48 hours. and users cant signup

Can you provide complete error log in properly formatted text ?
Also, which device are you seeing this error on ? Does it have Google play services enabled ?

Please provide these details.

Error is:[firebase_auth/missing-client-identifier] This request is missing a valid app identifier,
meaning that neither SafetyNet checks nor reCAPTCHA checks succeeded.
Please try again, or check the logcat for more details.
although they have
Google play services enabled

I have the same problem: I cant enable safteyNet, Firebase keep telling me I'm not the owner

I am going ahead and labeling this for team's attention for expected behavior. A similar issue that was reported earlier: https://github.com/firebase/flutterfire/issues/10174
/cc @Lyokone for thoughts.

Same. There's no way to avoid reCAPTCHA in new firebase project.

SafetyNet migration deadline was June 2023 https://developer.android.com/training/safetynet/deprecation-timeline Is it related with this ?

Error is:[firebase_auth/missing-client-identifier] This request is missing a valid app identifier, meaning that neither SafetyNet checks nor reCAPTCHA checks succeeded. Please try again, or check the logcat for more details.
although they have Google play services enabled

Please add your play console SHA1 and SHA256 in Project Setting and in Play Integrity

both added, still same for me

Same for me tried each and every solution enabling Play App check Google Play Integrity API adding SHA256 and SHA1 keys to firebase console but still seeing reCAPTCHA screen Please help we have a release ahead.

Hey @snosey, are you sure you've added the SHA-1 & SHA-256 key for debug and release mode to the app in your Firebase console? That would be the first port of call.
 If not, please enable, and re-download your android service file, replace the existing one, run flutter clean & rebuild app.

I hava the same error
com.google.firebase.auth.FirebaseAuthException: This request is missing a valid app identifier, meaning that neither SafetyNet checks nor reCAPTCHA checks succeeded. Please try again, or check the logcat for more details.
at com.google.android.gms.internal.firebase-auth-api.zzxc.zza(com.google.firebase:firebase-auth@@21.1.0:28)
at com.google.android.gms.internal.firebase-auth-api.zzxw.zza(com.google.firebase:firebase-auth@@21.1.0:1)
at com.google.android.gms.internal.firebase-auth-api.zzxx.run(com.google.firebase:firebase-auth@@21.1.0:3)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7870)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)

@russellwheatley there is no any "Android Device Verification" API service in GCP, it is removed. Also adding SHA-1 & SHA-256 not working as well

@OziTFA

It is deprecated, not removed. See documentation
Quote:

In the Google Cloud Console, enable the Android Device Verification (DEPRECATED) API for your project. The default Firebase API Key will be used, and needs to be allowed to access the DeviceCheck API.

@russellwheatley

Firebase sms authentication not working ( no otp sending)  as device verification api is deprecated . What's the solution to this?

any idea regarding this? same for me too

I have enabled the play integrity and added SHA-1 and SHA-256. But I am getting the following error on android device. [Error: [auth/missing-client-identifier] This request is missing a valid app identifier, meaning that neither SafetyNet checks nor reCAPTCHA checks succeeded.

Can you check with the latest version of firebase_core 2.9.0. It contains fixes on the Android Native side that could fix this.

still not working

I'm integrating Play Integrity into my firebase app. And facing "This request is missing a valid app identifier, meaning that Play Integrity checks, SafetyNet checks, and reCAPTCHA checks were unsuccessful"
please help.

I'm integrating Play Integrity into my firebase app. And facing "This request is missing a valid app identifier, meaning that Play Integrity checks, SafetyNet checks, and reCAPTCHA checks were unsuccessful"
please help.

My app is using SMS phone to verify login

I have enabled the play integrity and added SHA-1 and SHA-256. But I am getting the following error on android device. [Error: [auth/missing-client-identifier] This request is missing a valid app identifier, meaning that neither SafetyNet checks nor reCAPTCHA checks succeeded.

any idea regarding this?

My app was working perfectly until a few days ago (we havent made any changes to it) the phone auth stopped working and im getting a "Vertification failed: (missing-client-identifier): This request is missing a valid app identifier, meaning that Play Integrity checks, and reCAPTCHA checks were unsuccessful. Please try again, or check the logcat for more details." message.
I have everything updated, all flutter firebase packages are updated to the latest versions (i have seen some dependencies have been updated like firebase_auth_platform_interface)
All my debug, release SHA-1 & SHA-2 from my local machine and from Google Play are added to my project settings for that specific app + App Check
The phone auth works well when debugging on an emulator, but as soon as i debug on a physical device or use a release version, it doesnt work.
Any solution to this now ? and how can this suddenly occur if there were no changes made to the app ? are there some breaking changes on Firebase side ?

I am getting recaptcha on Android and iOS since I enabled appcheck (not enforced) and migrated to Play Integrity and Identity Platform

Facing the same issue for phone auth. The following error appears on console when trying to log in via emulator. This request is missing a valid app identifier, meaning that Play Integrity checks, and reCAPTCHA checks were unsuccessful. Added SHA-1 and SHA-256 keys from Google Play Console and appSigning to firebase but error still occurs. Any one knows how to get around it?

@imanamirshah i'm facing the same issue, did you manage to solve it?

@andberto find any solution?

@ishitgami no, no clue how to solve this issue

Also getting this, bump

This is happening to me as well, on a new project.
My old project, which still has the "Android Device Verification" enabled, is working fine.

I was able to get around this issue by unprotecting my API key, which everybody knows is not advisable. 🤷♂

I am facing similar issue but my scenario is different. Everything works fine for me when user downloads app from playstore and logs in (I am using phone auth. Play integrity API and app check is enabled). But when user logs out and tries to login again,

This request is missing a valid app identifier, meaning that Play Integrity checks, and reCAPTCHA checks were unsuccessful.

this error occurs. Uses has to uninstall app and install again from play store to login again. Please help
I am calling FirebaseAuth.instance.signOut() on log out button.

snosey
I had missing-client-identifier when I setted
FirebaseAuth.instance           ..setSettings(             appVerificationDisabledForTesting: true,           ),

still facing the same issue
this request is missing a valid app identifier, meaning that play safetynet checks

check if you are Enable reCAPTCHA Enterprise API

Same problem

I/PlayCore(27490): UID: [14368]  PID: [27490] IntegrityService : requestIntegrityToken(IntegrityTokenRequest{nonce=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx, cloudProjectNumber=xxxxxxxxxxxxx})
I/PlayCore(27490): UID: [14368]  PID: [27490] IntegrityService : Initiate binding to the service.
I/PlayCore(27490): UID: [14368]  PID: [27490] IntegrityService : ServiceConnectionImpl.onServiceConnected(ComponentInfo{com.android.vending/com.google.android.finsky.integrityservice.IntegrityService})
I/PlayCore(27490): UID: [14368]  PID: [27490] IntegrityService : linkToDeath
I/PlayCore(27490): UID: [14368]  PID: [27490] OnRequestIntegrityTokenCallback : onRequestIntegrityToken
I/PlayCore(27490): UID: [14368]  PID: [27490] IntegrityService : Unbind from service.
W/System  (27490): Ignoring header X-Firebase-Locale because its value was null.
2
I/System.out(27490): (HTTPLog)-Static: isSBSettingEnabled false
**E/FirebaseAuth(27490): [SmsRetrieverHelper] SMS verification code request failed: unknown status code: 18002 Invalid PlayIntegrity token; app not Recognized by Play Store.
D/FirebaseAuth(27490): Re-triggering phone verification with Recaptcha flow forced for phone number +967xxxxxxxxx**
I/zzf     (27490): ForceRecaptchaFlow from phoneAuthOptions = true, ForceRecaptchaFlow from firebaseSettings = false
W/JavaBinder(27490): BinderProxy is being destroyed but the application did not call unlinkToDeath to unlink all of its death recipients beforehand.  Releasing leaked death recipient: com.google.android.play.integrity.internal.n
I/zygote64(27490): Do full code cache collection, code=247KB, data=174KB
I/zygote64(27490): After code cache collection, code=238KB, data=144KB
W/System  (27490): Ignoring header X-Firebase-Locale because its value was null.
D/ViewRootImpl@756c5f5RecaptchaActivity: setView = DecorView@c11f8a[RecaptchaActivity] TM=true MM=false
D/ViewRootImpl@756c5f5RecaptchaActivity: dispatchAttachedToWindow
E/FirebaseAuth(27490): [SmsRetrieverHelper] SMS verification code request failed: unknown status code: 17499 Error code:39
I/flutter (27490): [firebase_auth/unknown] An internal error has occurred. [ Error code:39 ]

Got the same problem here
E/FirebaseAuth( 2349): [SmsRetrieverHelper] SMS verification code request failed: unknown status code: 17093 null
[log] [firebase_auth/missing-client-identifier] This request is missing a valid app identifier, meaning that Play Integrity checks, and reCAPTCHA checks were unsuccessful. Please try again, or check the logcat for more details.
Need help :(

Same problem. Encountered this issue

This request is missing a valid app identifier, meaning that Play Integrity checks, and reCAPTCHA checks were unsuccessful. Please try again, or check the logcat for more details.
need help

I'm getting the same error, did anyone manage to find a solution for this?

I just created this new project and Authentication is by default integrated with the Identity Platform.
I have my app on Play Store but users are unable to authenticate with their phone number.
I have done all the required steps.

I have added SHA keys from Play Console to my project.
I have added my system SHA keys to my project.
I have added implementation 'com.google.android.play:integrity:1.1.0' in build.gradle file
I have enabled the Play Integrity API on Google Cloud Console.

I am getting the error:
This request is missing a valid app identifier, meaning that neither safetyNet checks nor reCAPTCHA checks succeeded

I've been experiencing this error during a long time of development of my application and now I'm able to tell how I resolved it 🎉.
First of all, I got the error in following conditions:

Application is not released anywhere. It's just in development stage
I have my backend deployed on Google Cloud Project corresponding to Firebase Project
Firebase Project is set up with my Android app using FlutterFire CLI
SHA256 fingerprint of debug key is set for both Play Integrity and SafetyNet
Authentication is set for SMS
Test phone numbers are added
Versions of Flutter Firebase packages are:

  firebase_core: ^2.16.0
  firebase_auth: ^4.10.0
  firebase_messaging: ^14.6.8

Authentication worked properly only with test phone numbers. Trying to send an SMS to real phone numbers cause the mentioned error "This request is missing a valid app identifier".
After some investigation, I'm done with these steps:

Create release keystore by the official Flutter guide and sign an Android release flavor with it.
Migrate Firebase Authentication to Google Identity Platform.

And after these steps I've managed to use real phone numbers to send SMS OTPs. The only issue with that is popping up browser window telling "Verifying you're not a robot". I'm also trying to avoid it with integrating App Check to Flutter App and reinforcing Authentication with it. But this, I would say, not a topic of the issue.
I don't really know is issue related to usage of debug keystore or Firebase Authentication wasn't migrated to identity platform, so you can try do it yourself.

Hi, I am getting this error when trying to verify phone number with OTP.
Here is what I did to solve this:

Added both release and debug SHA 1 key to Firebase App Settings
Added SHA 1 to Google API Key and made that unrestricted
Registered Play Integrity in FIrebase

Here are some of my code snippets:
void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  await FirebaseAppCheck.instance.activate(
      androidProvider: AndroidProvider.playIntegrity,
      appleProvider: AppleProvider.debug
  );
  runApp(MainApp());
}

await FirebaseAuth.instance.verifyPhoneNumber(
    phoneNumber: 'XXXXXXXXXXX',
    verificationCompleted: (PhoneAuthCredential credential) {},
    verificationFailed: (FirebaseAuthException e) {},
    codeSent: (String verificationId, int? resendToken) {},
    codeAutoRetrievalTimeout: (String verificationId) {},
  );

after that it tried to load captcha, but it returns from browser with verifying and show this error:
[firebase_auth/missing-client-identifier] This request is missing a valid app identifier, meaning that Play Integrity checks, and reCAPTCHA checks were unsuccessful. Please try again, or check the logcat for more details
Here are the dependencies I used:

firebase_core: ^2.8.0
firebase_messaging: ^14.3.0
firebase_crashlytics: ^3.0.17
firebase_auth: ^4.3.0
firebase_app_check: ^0.1.3

And Flutter Version is:
Flutter version 3.7.12
I am stuck in at app production. Can you please help me with this?

Facing the same issue

Facing the same issue too :(

I have been facing the same issue.
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  await FirebaseAppCheck.instance.activate(
      webProvider: ReCaptchaV3Provider('recaptcha-v3-site-key'),
      androidProvider: AndroidProvider.playIntegrity,
      appleProvider: AppleProvider.debug
  );
  runApp(MainApp());
}

// build.gradle
dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'com.android.support:multidex:1.0.3'
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation(platform("com.google.firebase:firebase-bom:32.6.0"))
    implementation 'com.google.firebase:firebase-auth-ktx'
    implementation 'com.google.android.play:integrity:1.3.0'
    implementation 'androidx.browser:browser:1.3.0'
}

// Otp Screen
sendOtp() async{
    await firebaseAuth.verifyPhoneNumber(
      phoneNumber: widget.userPhoneNumber!,
      verificationCompleted: (PhoneAuthCredential credential) async {
        pinController.setText(credential.smsCode!);
      },

      verificationFailed: (FirebaseAuthException e) {
        debugPrint("Error ${e.toString()}");
        debugPrint("Error ${e.message}");
        if (e.code == 'invalid-phone-number') {
          debugPrint('The provided phone number is not valid.');
        }

      },

      codeSent: (String verificationId, int? resendToken) {
        verifyId = verificationId;
        resendTokenForOtp = resendToken ?? 0;
      },

      timeout: const Duration(seconds: 25),
      forceResendingToken: resendTokenForOtp,

      codeAutoRetrievalTimeout: (String verificationId) {},
    );
  }

We have this open since Feb... No official resolution yet?

I have not been able to reproduce the OPs issue I'm afraid. Just to clarify:
Error is:[firebase_auth/missing-client-identifier] This request is missing a valid app identifier

This exception is being reported when verifying telephone number in conjunction with App Check enforcement. If you are still seeing this exception, please provide a reproduction. Thanks.

I have not been able to reproduce the OPs issue I'm afraid. Just to clarify:
Error is:[firebase_auth/missing-client-identifier] This request is missing a valid app identifier

This exception is being reported when verifying telephone number in conjunction with App Check enforcement. If you are still seeing this exception, please provide a reproduction. Thanks.

Error Logs:
E/FirebaseAuth( 8493): [SmsRetrieverHelper] SMS verification code request failed: unknown status code: 17093 null
D/FirebaseAuth( 8493): Invoking original failure callbacks after phone verification failure for +8801715799289, error - This request is missing a valid app identifier, meaning that Play Integrity checks, and reCAPTCHA checks were unsuccessful. Please try again, or check the logcat for more details.
I/flutter ( 8493): Error [firebase_auth/missing-client-identifier] This request is missing a valid app identifier, meaning that Play Integrity checks, and reCAPTCHA checks were unsuccessful. Please try again, or check the logcat for more details.
I/flutter ( 8493): Error This request is missing a valid app identifier, meaning that Play Integrity checks, and reCAPTCHA checks were unsuccessful. Please try again, or check the logcat for more details.
void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  await FirebaseAppCheck.instance.activate(
    webProvider: ReCaptchaV3Provider('recaptcha-v3-site-key'),
    androidProvider: AndroidProvider.playIntegrity,
    appleProvider: AppleProvider.appAttest,
  );
}

// Will send otp at start
  sendOtp() async{
    await firebaseAuth.verifyPhoneNumber(
      phoneNumber: widget.userPhoneNumber!,
      verificationCompleted: (PhoneAuthCredential credential) async {
        pinController.setText(credential.smsCode!);
      },

      verificationFailed: (FirebaseAuthException e) {
        debugPrint("Error ${e.toString()}");
        debugPrint("Error ${e.message}");
        if (e.code == 'invalid-phone-number') {
          debugPrint('The provided phone number is not valid.');
        }

      },

      codeSent: (String verificationId, int? resendToken) {
        verifyId = verificationId;
        resendTokenForOtp = resendToken ?? 0;
      },

      timeout: const Duration(seconds: 25),
      forceResendingToken: resendTokenForOtp,

      codeAutoRetrievalTimeout: (String verificationId) {},
    );
  }

  // Will be executed when user inputs 6 digits otp
  loginUser() async {
   showDialog(
        context: context,
        barrierDismissible: false,
        builder: (BuildContext context){
          return ProgressDialog(message: "Validating User...");
        }
    );

    try{
      PhoneAuthCredential credential = PhoneAuthProvider.credential(verificationId: verifyId, smsCode: code);
      final User? firebaseUser = (
          // Sign the user in (or link) with the credential
          await firebaseAuth.signInWithCredential(credential
          ).catchError((message){
            Navigator.pop(context);
            Fluttertoast.showToast(msg: "Error" + message);
          })
      ).user;

      if(firebaseUser != null){
        SharedPreferences prefs = await SharedPreferences.getInstance();
        DatabaseReference reference = FirebaseDatabase.instance.ref().child(userType!);
        reference.child(firebaseAuth.currentUser!.uid).once().then((userKey) async {
          final snapshot = userKey.snapshot;
          // If doctor is registered
          if (snapshot.exists && loggedInUser == "Doctor") {
            prefs.setString('loggedInUser', loggedInUser!);
            Navigator.push(context, MaterialPageRoute(builder: (context) => const SplashScreen()));
          }

          // New Doctor
          else if(!snapshot.exists && loggedInUser == "Doctor") {
            doctorProcess();
          }

          // If user is patient or consultant and registered
          else if (snapshot.exists && (loggedInUser == "Patient" || loggedInUser == "Consultant")) {
            prefs.setString('loggedInUser', loggedInUser!);
            Navigator.push(context, MaterialPageRoute(builder: (context) => const SplashScreen()));
          }

          // If user is patient
          else if (!snapshot.exists && loggedInUser == "Patient") {
            patientProcess(firebaseUser,prefs);
          }

        });
      }

    }

    catch(e){
      Navigator.pop(context);
      Fluttertoast.showToast(msg: "Wrong Credentials! Try Again",toastLength: Toast.LENGTH_LONG);
    }

  }

// build.gradle
dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'com.android.support:multidex:1.0.3'
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation(platform("com.google.firebase:firebase-bom:32.6.0"))
    implementation 'com.google.firebase:firebase-auth-ktx'
    implementation 'com.google.android.play:integrity:1.3.0'
    implementation 'androidx.browser:browser:1.3.0'
}

Unfortunately, I receive this error when the sendOTP() is executed.

I can't reproduce. I would recreate the app SHA-1 key from keystore for auth and double check the SHA-256 app signing key  required for app check (typically received from the Google Play console). Also follow the instructions carefully here: https://firebase.google.com/docs/auth/android/phone-auth

I can't reproduce. I would recreate the app SHA-1 key from keystore for auth and double check the SHA-256 app signing key required for app check (typically received from the Google Play console). Also follow the instructions carefully here: https://firebase.google.com/docs/auth/android/phone-auth

There was a key restriction on android api key from google play console.
I have removed the restriction in the following way

For now that error has been removed but I am facing new error.
W/LocalRequestInterceptor(11202): Error getting App Check token; using placeholder token instead. Error: com.google.firebase.FirebaseException: Error returned from API. code: 403 body: App attestation failed.
E/FirebaseAuth(11202): [SmsRetrieverHelper] SMS verification code request failed: unknown status code: 17499 Error code:39

Looking at the Enabled APIs and Services dashboard in GCP, you can see that Firebase App Check API requests have 100% error rate

Inspecting logcat:

I've added SHA256 and SHA1 for both debug and release certificates to firebase and gcp apis and services

Facing the same issue here 😟

Using @Shahir1730623 solution fixed the issue
It turns out that PlayIntegrity works only when the app is on play store, if it is not published on Play Store reCaptcha flow is triggered which uses the same API key as the primary Android key created by firebase, which has to be unrestricted so that reCaptcha flow succeeds
So this should be a workaround because now I can't restrict my Android API key to only android apps because of recaptcha flow sharing the same API key with android app

I tested it after publishing on the Play Store, and indeed, it worked now! I'm not sure if it made a difference, but I also removed this line (I think it could have been interfering with the reCAPTCHA verification):
FirebaseAuth.getInstance().firebaseAuthSettings.forceRecaptchaFlowForTesting(true)
I hope this tip can be helpful to someone! 🥳

Hi, I am getting this error when trying to verify phone number with OTP.
Here is what I did to solve this:
1Added both release and debug SHA 1 && SHA 256 key to Firebase App Settings
2Added SHA 1 && SHA 256 to Google API Key and made that unrestricted
3Registered Play Integrity in FIrebase
4 add SHA1 && SHA 256 in play integrity on app check firebase
com.google.firebase.auth.FirebaseAuthException: This request is missing a valid app identifier, meaning that Play Integrity checks, and reCAPTCHA checks were unsuccessful. Please try again, or check the logcat for more details.
2024-01-23 07:45:49.693  7435-7435  System.err       	at com.google.android.gms.internal.firebase-auth-api.zzach.zza(com.google.firebase:firebase-auth@@22.3.1:39)
2024-01-23 07:45:49.693  7435-7435  System.err    	at com.google.android.gms.internal.firebase-auth-api.zzadb.zza(com.google.firebase:firebase-auth@@22.3.1:3)
2024-01-23 07:45:49.693  7435-7435  System.err              	at com.google.android.gms.internal.firebase-auth-api.zzade.run(com.google.firebase:firebase-auth@@22.3.1:4)
2024-01-23 07:45:49.693  7435-7435  System.err        	at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:211)
at android.os.Looper.loop(Looper.java:300)
at android.app.ActivityThread.main(ActivityThread.java:8410)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:559)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:954)

We need an updated documentation, clear steps

Any update on this issue @darshankawar

Hi, I am getting this error when trying to verify phone number with OTP.
Here is what I did to solve this:
1Added both release and debug SHA 1 && SHA 256 key to Firebase App Settings 2Added SHA 1 && SHA 256 to Google API Key and made that unrestricted 3Registered Play Integrity in FIrebase 4 add SHA1 && SHA 256 in play integrity on app check firebase com.google.firebase.auth.FirebaseAuthException: This request is missing a valid app identifier, meaning that Play Integrity checks, and reCAPTCHA checks were unsuccessful. Please try again, or check the logcat for more details. 2024-01-23 07:45:49.693 7435-7435 System.err at com.google.android.gms.internal.firebase-auth-api.zzach.zza(com.google.firebase:firebase-auth@@22.3.1:39) 2024-01-23 07:45:49.693 7435-7435 System.err at com.google.android.gms.internal.firebase-auth-api.zzadb.zza(com.google.firebase:firebase-auth@@22.3.1:3) 2024-01-23 07:45:49.693 7435-7435 System.err at com.google.android.gms.internal.firebase-auth-api.zzade.run(com.google.firebase:firebase-auth@@22.3.1:4) 2024-01-23 07:45:49.693 7435-7435 System.err at android.os.Handler.handleCallback(Handler.java:942) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:211) at android.os.Looper.loop(Looper.java:300) at android.app.ActivityThread.main(ActivityThread.java:8410) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:559) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:954)

Hi, I'm encountering the  same error . Did you figured any workaround?

I finally solved my issue by doing the same old traditional process.
You just want to ensure that the correct SHA keys are included in the firebase console.
In my case, I had added the SHA keys but those were generated by a keystore or a jks file .
But the sha keys you want to generate should be correct ones which would be generated by running the
./gradlew SigningReport  for a flutter application.
After running the above command. You will get the correct SHA keys which are the Release keys as well as the Debug keys .
These are the only keys you have to put in the firebase console and nothing else.

Using @Shahir1730623 solution fixed the issue
It turns out that PlayIntegrity works only when the app is on play store, if it is not published on Play Store reCaptcha flow is triggered which uses the same API key as the primary Android key created by firebase, which has to be unrestricted so that reCaptcha flow succeeds
So this should be a workaround because now I can't restrict my Android API key to only android apps because of recaptcha flow sharing the same API key with android app

By published on play store you mean also in testing?

I didn't try, so I don't know

any update on this? I also keep getting this error. It's weird that it works on some devices and it does not on some. I'm testing on a release apk. Here's a screen shot from Firebase App Check API of google cloud console. The error % is 100 or close to a 100 on those methods.. this doesn't seem right

I solved this issue by deleting the Firebase project and creating a completely new one.

Closing out as it cannot be reproduced, it is clear that it is a setup issue rather than a bug. If you have a reproduction, I will reopen the issue. Thanks.

https://github.com/firebase/flutterfire/issues/10467#issuecomment-1648090820
This comment works fine for me. reCAPTCHA will launch after removing this option.
A few months ago, I added this option to make SMS auth work on development environment, but for now, it seems better without this. I hope this helps someone.

I'm not sure, but I solved this problem by going to GCP -> selecting project -> APIs & Services -> Credentials -> Delete Android key (auto created by Firebase) and create a new key. Then return to Firebase Console and reload the google-services.json file.

In my case, this was caused because I was using a different account on Firebase. It should be the same account in your google could, firebase and google play console. I thought the apps were linked internally via the package name but it wasn't

I'm not sure, but I solved this problem by going to GCP -> select project -> APIs & Services -> Credentials -> Delete Android key (auto created by Firebase) and create a new key with the same name delete. Then return to Firebase Console and redownload the google-services.json file.

I had to update the new key manually in google-services.json file and had to clean (Build -> Clean Project) the project.


Allow adding to the dictionary of the spelling suggestion

I'm using the suggest function from pattern.en, and I realize it will suggest corrections to some common words such as "sensor". Is it possible to add to the underlying dictionary that suggest function uses, in order to improve its performance?

I checked for the Spelling class (responsible for suggestions) in pattern/pattern/text/init.py, and found that it accesses spelling.txt. You could either reroute the file target (to some file other than spelling.txt), or you can append to spelling.txt (which may be a slow process).


Fixed Messaging to be more structured

THIS SOFTWARE IS CONTRIBUTED SUBJECT TO THE TERMS OF THE FINOS Corporate Contributor License Agreement.
  THIS SOFTWARE MAY BE REDISTRIBUTED TO OTHERS ONLY BY EFFECTIVELY USING THIS OR ANOTHER EQUIVALENT DISCLAIMER IN ADDITION TO ANY OTHER REQUIRED LICENSE TERMS.
Original hackday messaging was a single blob of JSON. This better structures envelope vs domain objects. This is a drop-in temporary solution until something more robust is used like GPB over kafka, etc.

Note: This is a breaking change.  Merging this will require all interactions with the message feed to pull the  objects out of a payload field in the incoming published message.

Will be combining this with corpfix branch