[WIP] Use golang 1.9 on CI

Signed-off-by: Kenfe-Mickael Laventure<EMAIL_ADDRESS>--
Closes #1215

For AppVeyor, I'm installing manually since I don't know when they'll update their env.
For Travis, it won't work until https://github.com/travis-ci/travis-build/pull/1148/ is merged

@mlaventure that travis PR is merged

@crosbymichael doesn't look like it was deployed yet though

@mlaventure rerunning now, it looks like travis is fixed for go 1.9

Codecov Report

Merging #1428 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff           @@
##           master   #1428   +/-   ##
======================================
  Coverage    40.8%   40.8%
======================================
  Files          23      23
  Lines        2924    2924
======================================
  Hits         1193    1193
  Misses       1453    1453
  Partials      278     278

Continue to review full report at Codecov.

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

:green_heart:

LGTM


Prior data color indicator not resetting on data refresh

Start-Monitor lets you flip between the current data set and the penultimate data set for simple comparison purposes. When you switch to the prior data set (Ctrl+D), the row count indicator box changes color to give a visual indicator. However, when the data refreshes (either automatically or manually) the displayed data set is now current but the row count indicator erroneously remains highlighted.

Fixed in version 1.0.02.


style: disable chat widget badge (the red unread bubble)

Brief Information
This pull request is in the type of (more info about types):

[ ] build
[ ] ci
[ ] docs
[ ] feat
[ ] fix
[ ] perf
[ ] refactor
[ ] test
[x] style

Related issues (all available keywords):

resolve #611

Details

disable the unread badge:

https://user-images.githubusercontent.com/32434520/225508733-f1400824-8d90-410c-a14a-deed9da1ad82.mov
Checklist

[x] I have read the CONTRIBUTING doc
[x] I have signed the CLA

Others

N.A.

LGTM
/approve


]f ]F [f [F with mini.ai?

Contributing guidelines

[X] I have read CONTRIBUTING.md
[X] I have read CODE_OF_CONDUCT.md

Module(s)
mini.ai
Description
Hi!
Firts of all, I love what you're doing with mini.
I'm just starting to convert my nvim-treesitter-textobjects config to use mini.ai.
The custom_textobjects work great, but I'm a bit stuck on implementing the move comands.
Secifically, the ones below:
      move = {
        enable = false,
        set_jumps = true, -- whether to set jumps in the jumplist
        goto_next_start = { ["]f"] =<EMAIL_ADDRESS>["]c"] =<EMAIL_ADDRESS>},
        goto_next_end = { ["]F"] =<EMAIL_ADDRESS>["]C"] =<EMAIL_ADDRESS>},
        goto_previous_start = { ["[f"] =<EMAIL_ADDRESS>["[c"] =<EMAIL_ADDRESS>},
        goto_previous_end = { ["[F"] =<EMAIL_ADDRESS>["[C"] =<EMAIL_ADDRESS>},
      },

g[f moves to the next function end, but how do I change it to go to the next function start instead?

I'm probably missing something obvious here :)

Thanks, Folke! That's a high praise coming from you :)
To be honest, moving cursor was mostly a tangential extra feature that required a relatively small addition to a codebase. So it is far from perfect and can't be a full replacement of 'nvim-treesitter-textobjects'.
The way default g[/g] work is essentially this: find corresponding whole a textobject using search direction from config and then move to its left/right edge. There is a slight difference when cursor is already on the edge of correct textobject: then it will find next one (with count bigger by one).
So g[f should find af textobject and move to its left edge. I am not sure why it is moving to function end instead. If it is indeed the case, I would be curious to see the config and text.

Sorry, I meant g]f instead.
I'll stick for that functionality to treesitter objects for now :)
Thanks!

Although, if you don't mind some custom mapping code and lack of dot-repeat support in Operator-pending mode, you can make custom mappings with MiniAi.move_cursor(). Like this:
local mini_ai = require('mini.ai')
mini_ai.setup({
  custom_textobjects = {
    F = mini_ai.gen_spec.treesitter({ a =<EMAIL_ADDRESS>i =<EMAIL_ADDRESS>}),
  },
})

local map_previous = function(lhs, side, textobj_id)
  for _, mode in ipairs({ 'n', 'x', 'o' }) do
    vim.keymap.set(mode, lhs, function() MiniAi.move_cursor(side, 'a', textobj_id, { search_method = 'prev' }) end)
  end
end

local map_next = function(lhs, side, textobj_id)
  for _, mode in ipairs({ 'n', 'x', 'o' }) do
    vim.keymap.set(mode, lhs, function() MiniAi.move_cursor(side, 'a', textobj_id, { search_method = 'next' }) end)
  end
end

map_previous('[f', 'left', 'F')
map_previous('[F', 'right', 'F')
map_next(']f', 'left', 'F')
map_next(']F', 'right', 'F')

That's exactly what I was looking for. Great!!


Can it differentiate response by header body for post call in Rest API

Hi Team,
I am playing around Castle mock and found it very easy to use. This is more of a guidance.
I have a requirement for POST call.
Ex: /addEmployee
Header Body:
1.
{
"sex":"M",
"address":"US"
}

{
"sex":"M",
"address":"IN"
}
I don't want to add anything as header/path/query parameter.
I mean to say nothing like this
addEmployee/1
addEmployee?id=1
Can I differentiate response based on address?

Hi @ranjankumar87.
Glad to hear that you find it easy to use.
I'm not completely certain what you mean with "Header Body"? It seems to me that you a looking to match based on the request JSON body. This can be achieved by using the JSON Path response strategy. You can find more information about it on our wiki: https://github.com/castlemock/castlemock/wiki/Use-Case:-REST#json-path
I hope you find this helpful.
Best regards,
Karl Dahlgren

Yes. You are right. I wanted match based on the request JSON body.
It worked for me and thank you very much for the quick reply and guidance.


HRNet vs. VGG-16

Thanks for your work and sharing the code. It seems like for all your experiments you're using the HRNet architecture, which is a much more advanced model compared to VGG-16 that is used in most other works. From my perspective it's hard to judge how much improvement comes from the loss function you introduce and how much comes from the backbone alone.
What are your thoughts on this? Did you also run experiments with a VGG-16 backbone?
Thanks,
Paul

Yes, please see the latest version


Prepend libra to mempool packages

Motivation
To publish to crates.io, all packages need to have unique names. Prepending libra to the names of all packages provides unique names for all packages. This PR prepends libra to the mempool and mempool-shared-proto packages. Depends on #1226
Have you read the Contributing Guidelines on pull requests?
Yes
Test Plan
Only cosmetic changes, existing tests should suffice.
Related PRs
#1226

:umbrella: The latest upstream changes (presumably 89323bf9cc762b03579be91a41eb6f45230c0e03) made this pull request unmergeable. Please resolve the merge conflicts.

@bors-libra r+

:pushpin: Commit f06471f has been approved by bmwill

:hourglass: Testing commit f06471f354613c512f5d2135d53d49dc81ad9d67 with merge f6247ad4fe7e8dc3510193d04ce4ac32ec3495ba...

:sunny: Test successful - checks-circle_commit_workflow
Approved by: bmwill
Pushing f6247ad4fe7e8dc3510193d04ce4ac32ec3495ba to master...


Create a cleaner UI Editor class

Need to break out UI Renderer in case people want to use it in their own game

This has been completed


Add Russian translation

This pull request adds a Russian translation for the project

Released on 0.2.5 version at GitHub and PyPi


[Enhancement] Method stores return result in local before immediately returning it [RegistryRequest]

Search before asking

[X] I had searched in the issues and found no similar issues.

Enhancement Request

located at:
eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/catalog/protos/RegistryRequest.java line 394
analysis and explanation:
This method stores the return result in a local variable, and then immediately returns the local variable. It would be simpler just to return the value that is assigned to the local variable.
Describe the solution you'd like
Returns the value of a local variable directly.
Are you willing to submit PR?

[x] Yes I am willing to submit a PR!

I want to fix it .


Make the default flashing frequency target specific

I've implemented the third solution proposed by @maxwase in #375:

Add flash_freq to Esp32Params so we can define a default flashing frequency per target.
Specify the default flashing frequency for all the targets.

I've browsed the changes on my phone and I can't really understand your
suggestion, do you mind elaborating? I'm any casi, tomorrow morning I will
have a better look at it!
Thanks for the feedback!
On Mon, Apr 17, 2023, 20:32 Max Wase @.***> wrote:

@.**** commented on this pull request.
Personally, I think FlashFrequency::default() usage is better (as in
esp8266 module) and more future-proof (if this code will ever be refactored
to use ..Esp32Params::default()), but it's up to decide :)
—
Reply to this email directly, view it on GitHub
https://github.com/esp-rs/espflash/pull/389#pullrequestreview-1388729801,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADCTYYK4VCNOW6RCMHGZON3XBWED3ANCNFSM6AAAAAAXBBB32E
.
You are receiving this because you authored the thread.Message ID:
@.***>

Oh, sorry for unclarity 😄, I mean replacing of FlashFrequency::_40Mhz with FlashFrequency::default() as it is a default frequency

Oh, sorry for unclarity smile, I mean replacing of FlashFrequency::_40Mhz with FlashFrequency::default() as it is a default frequency

Ahh! I've tried this yesterday, but since PARAMS is a const, it fails:
`~const std::default::Default` is not implemented for `FlashFrequency`

And I don't know/couldn't find any easy solution to this

Oh, sorry for unclarity smile, I mean replacing of FlashFrequency::_40Mhz with FlashFrequency::default() as it is a default frequency

Ahh! I've tried this yesterday, but since PARAMS is a const, it fails:
`~const std::default::Default` is not implemented for `FlashFrequency`

And I don't know/couldn't find any easy solution to this

Oh, didn't spot that, hope we will get it someday! Other than that, LGTM


[help request] virtual/bootloader

Hi @graugans , @drewmoseley  i hope all is okay for you (since the time) !
i need your help about a layer that i made for the secoA62 card. I'm trying to build an image on rocko branch but i have an error with virtual/bootloader that i can't resolve for the moment. You can find my layer here : https://github.com/modjo756/meta-seco/tree/rocko.
For the moment i use the seco u-boot/kernel (like this i can dialog with seco support).
The problem is when i want to build u-boot :
$ bitbake virtual/bootloader
i have this error :
### Nothing PROVIDES 'virtual/bootloader'
u-boot-compulab PROVIDES virtual/bootloader but was skipped: incompatible with machine secosbca62 (not in COMPATIBLE_MACHINE)
u-boot-variscite PROVIDES virtual/bootloader but was skipped: You cannot use UBOOT_MACHINE and UBOOT_CONFIG at the same time.
u-boot-gateworks-imx PROVIDES virtual/bootloader but was skipped: incompatible with machine secosbca62 (not in COMPATIBLE_MACHINE) ...
In my layer conf i added machine conf that define
### PREFERRED_PROVIDER_u-boot ??= "u-boot-seco"
PREFERRED_PROVIDER_virtual/bootloader ??="u-boot-seco"
PREFERRED_VERSION_u-boot-seco = "2015.04"
I can build the kernel with virtual/kernel but not u-boot ! Do you have an idea how to resolve this please ?

Does the u-boot-seco recipe have 'PROVIDES = "virtual/bootloader""?

You are right, i added this on u-boot-seco, but now i have this error :
u-boot-seco PROVIDES virtual/bootloader but was skipped: You cannot use UBOOT_MACHINE and UBOOT_CONFIG at the same time.
I need to look what is this variables ...

@drewmoseley , thanks for your tip now i can build u-boot but i have another error :
ERROR: Nothing RPROVIDES 'virtual/bootloader' (but /media/mls/data/seco/yocto-rocko/sources/poky/meta/recipes-core/packagegroups/packagegroup-base.bb RDEPENDS on or otherwise requires it)
NOTE: Runtime target 'virtual/bootloader' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['virtual/bootloader']
NOTE: Runtime target 'packagegroup-distro-base' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['packagegroup-distro-base', 'virtual/bootloader']
NOTE: Runtime target 'packagegroup-base-wifi' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['packagegroup-base-wifi', 'virtual/bootloader']
NOTE: Runtime target 'packagegroup-base-alsa' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['packagegroup-base-alsa', 'virtual/bootloader']
NOTE: Runtime target 'packagegroup-base-usbgadget' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['packagegroup-base-usbgadget', 'virtual/bootloader']
NOTE: Runtime target 'packagegroup-base-nfc' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['packagegroup-base-nfc', 'virtual/bootloader']
NOTE: Runtime target 'packagegroup-base-nfs' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['packagegroup-base-nfs', 'virtual/bootloader']
NOTE: Runtime target 'packagegroup-base-3g' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['packagegroup-base-3g', 'virtual/bootloader']
NOTE: Runtime target 'packagegroup-base-usbhost' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['packagegroup-base-usbhost', 'virtual/bootloader']
ERROR: Required build target 'seco-image-qt5' has no buildable providers.
Missing or unbuildable dependency chain was: ['seco-image-qt5', 'packagegroup-base-usbhost', 'virtual/bootloader']
It's look like a problem with the bblayers.conf but i didn't find the error, see under my file :
_LCONF_VERSION = "7"
BBPATH = "${TOPDIR}"
BSPDIR := "${@os.path.abspath(os.path.dirname(d.getVar('FILE', True)) + '/../..')}"
BBFILES ?= ""
BBLAYERS = "
${BSPDIR}/sources/poky/meta
${BSPDIR}/sources/poky/meta-poky

${BSPDIR}/sources/meta-openembedded/meta-oe
${BSPDIR}/sources/meta-openembedded/meta-multimedia
${BSPDIR}/sources/meta-openembedded/meta-python
${BSPDIR}/sources/meta-openembedded/meta-networking
${BSPDIR}/sources/meta-openembedded/meta-webserver

${BSPDIR}/sources/meta-freescale
${BSPDIR}/sources/meta-freescale-3rdparty
${BSPDIR}/sources/meta-freescale-distro

${BSPDIR}/sources/meta-qt5
${BSPDIR}/sources/meta-seco

"_
An idea ?

Problem solved, remove virtual/bootloader from MACHINE_EXTRA_RRECOMMENDS ...


[Awake] Turn on awake automatically when connected to an external display

Description of the new feature / enhancement
Keep Awake would automatically turn on when connecting to an external display
Scenario when this would be used?
Would be useful for making sure your monitor doesn't disconnect when you don't use your laptop for a while. Also any way to add customisation is a plus.
Supporting information
No response

Thank you for the feedback, @PesBandi. At this time, this would overly complexity what the tool is intended to do (be a simple "keep computer awake" utility).


Migrations for auth fails on Django 3.1: KeyError: 'deferrable'

I started a fresh project with Django 3.1. and the latest django-mssql-backend. Running python manage.py migrate auth fails on the "0008" migration:
  Applying auth.0008_alter_user_username_max_length...Traceback (most recent call last):                           File "manage.py", line 22, in <module>
    main()
  File "manage.py", line 18, in main                                                                                execute_from_command_line(sys.argv)
...
  File "/.../lib/python3.6/site-packages/django/db/backends/base/schema.py", line 572, in alter_field
    old_db_params, new_db_params, strict)
  File "/.../lib/python3.6/site-packages/sql_server/pyodbc/schema.py", line 479, in _alter_field
    self.execute(self._create_unique_sql(model, columns=[old_field.column]))
  File "/.../lib/python3.6/site-packages/sql_server/pyodbc/schema.py", line 863, in execute
    sql = str(sql)
  File "/.../venv/lib/python3.6/site-packages/django/db/backends/ddl_references.py", line 200, in __str__
    return self.template % self.parts
KeyError: 'deferrable'

While experimenting a little, downgrading to Django 2.2 fixed the issue with the problematic migrations, and after upgrading back to 3.1 I was able to run the remaining migrations (those that are new in Django 3). Digging into the code base the problem seems quite straightforward: the django.db.backends.ddl_references.Statement seems indeed to expect a deferrable keyword argument, and after hacking the source code so that an empty string was given as deferrable, the migrations worked just fine. Unfortunately I'm not familiar with mssql or this library, and can't simply attempt a pull request for this.

I have the same issue with Django 3.1.
Migrations work fine with Django 3.0.
I also found this on stackoverflow:
https://stackoverflow.com/questions/63282351/django-and-azure-sql-key-error-deferrable-when-start-migrate-command

I had the same problem in Django 3.1 with a custom user model, when I executed the migration I got the following error:
  Applying contenttypes.0001_initial... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0001_initial... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying auth.0010_alter_group_name_max_length...Traceback (most recent call last):
  File "./manage.py", line 22, in <module>
    main()
  File "./manage.py", line 18, in main
    execute_from_command_line(sys.argv)
  File "/home/cristian/.virtualenvs/SIM2/lib/python3.8/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
    utility.execute()
  File "/home/cristian/.virtualenvs/SIM2/lib/python3.8/site-packages/django/core/management/__init__.py", line 395, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/cristian/.virtualenvs/SIM2/lib/python3.8/site-packages/django/core/management/base.py", line 330, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/home/cristian/.virtualenvs/SIM2/lib/python3.8/site-packages/django/core/management/base.py", line 371, in execute
    output = self.handle(*args, **options)
  File "/home/cristian/.virtualenvs/SIM2/lib/python3.8/site-packages/django/core/management/base.py", line 85, in wrapped
    res = handle_func(*args, **kwargs)
  File "/home/cristian/.virtualenvs/SIM2/lib/python3.8/site-packages/django/core/management/commands/migrate.py", line 243, in handle
    post_migrate_state = executor.migrate(
  File "/home/cristian/.virtualenvs/SIM2/lib/python3.8/site-packages/django/db/migrations/executor.py", line 117, in migrate
    state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, fake_initial=fake_initial)
  File "/home/cristian/.virtualenvs/SIM2/lib/python3.8/site-packages/django/db/migrations/executor.py", line 147, in _migrate_all_forwards
    state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_initial)
  File "/home/cristian/.virtualenvs/SIM2/lib/python3.8/site-packages/django/db/migrations/executor.py", line 227, in apply_migration
    state = migration.apply(state, schema_editor)
  File "/home/cristian/.virtualenvs/SIM2/lib/python3.8/site-packages/django/db/migrations/migration.py", line 124, in apply
    operation.database_forwards(self.app_label, schema_editor, old_state, project_state)
  File "/home/cristian/.virtualenvs/SIM2/lib/python3.8/site-packages/django/db/migrations/operations/fields.py", line 236, in database_forwards
    schema_editor.alter_field(from_model, from_field, to_field)
  File "/home/cristian/.virtualenvs/SIM2/lib/python3.8/site-packages/django/db/backends/base/schema.py", line 571, in alter_field
    self._alter_field(model, old_field, new_field, old_type, new_type,
  File "/home/cristian/.virtualenvs/SIM2/lib/python3.8/site-packages/sql_server/pyodbc/schema.py", line 479, in _alter_field
    self.execute(self._create_unique_sql(model, columns=[old_field.column]))
  File "/home/cristian/.virtualenvs/SIM2/lib/python3.8/site-packages/sql_server/pyodbc/schema.py", line 861, in execute
    sql = str(sql)
  File "/home/cristian/.virtualenvs/SIM2/lib/python3.8/site-packages/django/db/backends/ddl_references.py", line 200, in __str__
    return self.template % self.parts
KeyError: 'deferrable'

Downgrading to Django 3.0.x made the migration work properly.

Any solution? I need to use Django 3.1, I can't downgrade

Got the same error on Django 3.1.1.

I confirm downgrading to Django 3.0.10 fixes the issue.

I have also come across this issue with Django 3.1.  I hope a fix can come soon.

I also see this issue.

Bumping this issue up, I would love to use Django 3.1 with this.  Thanks!

Same problem for me on Django 3.1.4

Same problem for me on Django 3.1.4
Is their any solution to this, I was downgraded to 3.0.6 also but not solved.
Any body knows about this error ,please give solution

Same problem for me on Django 3.1.4

If you solved this error, please give a solution to me

Any solution? I need to use Django 3.1, I can't downgrade

If you solved this error, please give a solution to me

Same problem on my site but, only when I use django-mssql-backend

Same problem on my site but, only when I use django-mssql-backend

I'm using django-mssql-backend and ran in to this issue on two separate occasions. Downgrading fixed the issue the first time around, but here's what I did to work around it the second time:
I found that removing unique=True from the migration file on one of the fields I was modifying allowed the migration to proceed without downgrading Django.

I'm using django-mssql-backend and ran in to this issue on two separate occasions. Downgrading fixed the issue the first time around, but here's what I did to work around it the second time:
I found that removing unique=True from the migration file on one of the fields I was modifying allowed the migration to proceed without downgrading Django.

Closed in #86

Closed in #86

Issue still persists in Django 3.2


[feature] Use KStore for caching API results

https://github.com/xxfast/KStore

Replace the current in-memory API lookup cache with KStore
Add a flush cache button + function

Or SQLDelight - both options are viable.


Average preview

So far added:

Average Preview component showing current single, average/mean (if the current event is not MBLD or an event with Bo1), current times and if first 4 solves are done show BPA/WPA (but only for event with format Ao5, because BPA/WPA for BoX/MoX does not make sense)
little modal which shows up on when saving results (either with Save button, by pressing Enter in Manual mode or stopping the timer in Timer mode), the modal includes current position in the event in the competition and your final single/average

TODO:

[ ] add PB/NR/CR/WR text to Results Modal (i.e. from 9.58 single to 9.58 NR Single), if the single/average is PB/NR/CR/WR, color with the same colors as in Profile Results History
[ ] show a little confetti when the average is (on Save, when the user is finished competing (has done all 5 solves)) a record of any kind (PB/NR/CR/WR)


bug: ion-fab is behind header only on IPhone

Bug Report
Ionic version:

[x] 5.0.5
Current behavior:
Ion-fab hides behind header on IPhone but on IPad works just fine.
-- IPhone Horizontal

-- IPhone Vertical

Expected behavior:
Consistency between IPad and IPhone. Ion-fab not hiding behind objects.
-- IPad

Steps to reproduce:
Header and Ion-Fab on IPad and IPhone.
Related code:
-->
<ion-fab class="custom-fab" [class.active]="initialized" vertical="top" horizontal="end" slot="fixed">
  <ion-fab-button [color]="isFilterActive ? 'primary' : 'light' " (click)="openFilter()">

  </ion-fab-button>
</ion-fab>

Other information:
Both devices run latest IOS 13.3.1.
This does not fix the issue.
ion-content {
  contain: size style;
}

When ion-header is outside of ion-content -> Bug.
When ion-header is inside of ion-content -> No Bug.
Ionic info:
Ionic:

   Ionic CLI                     : 5.4.16
   Ionic Framework               : @ionic/angular 5.0.5
   @angular-devkit/build-angular : 0.801.3
   @angular-devkit/schematics    : 8.1.3
   @angular/cli                  : 8.1.3
   @ionic/angular-toolkit        : 2.2.0

Capacitor:

   Capacitor CLI   : 1.5.0
   @capacitor/core : 1.5.0

Cordova:

   Cordova CLI       : 9.0.0<EMAIL_ADDRESS>   Cordova Platforms : ios 5.1.1
   Cordova Plugins   : no whitelisted plugins (8 plugins total)

Utility:

   cordova-res (update available: 0.10.0) : 0.9.0
   native-run                             : 0.3.0

System:

   NodeJS : v12.14.1 (/Users/graholskise/.nvm/versions/node/v12.14.1/bin/node)
   npm    : 6.13.4
   OS     : macOS Catalina
   Xcode  : Xcode 11.3.1 Build version 11C504

Seems to be an issue with ion-content because it causes another fixed element (footer) to visually glitch out. (ion-fab in the issue is not a visual glitch because it is behind the content).

Thanks for the issue. Can you provide a repo with the code required to reproduce this issue? I am unable to reproduce this issue using the code snippet provided.

Hi. I already restructured the code to mitigate the issue. The thing was that my Header had fixed position applied. However, that does not change the issue. I encountered a lot of visual bugs (with fixed elements) when switching from IPad to an IPhone. Why isnt there consistency between platforms? (the screen size is irrelevant in this case).

There should not be any inconsistencies between platforms. If you could provide a code reproduction that would be very useful in helping us resolve this issue.


Do I need to recompile the file after adding new detector?

I wrote new detector like Develop new components in https://github.com/open-mmlab/mmdetection/blob/master/GETTING_STARTED.md, but adding the detector to https://github.com/open-mmlab/mmdetection/blob/master/mmdet/models/detectors/init.py seems not work, it says the detector is not registered, the error is  :
File "tools/train.py", line 98, in
main()
File "tools/train.py", line 76, in main
cfg.model, train_cfg=cfg.train_cfg, test_cfg=cfg.test_cfg)
File "/workdir/code/mmdetection/mmdet/models/builder.py", line 43, in build_detector
return build(cfg, DETECTORS, dict(train_cfg=train_cfg, test_cfg=test_cfg))
File "/workdir/code/mmdetection/mmdet/models/builder.py", line 15, in build
return build_from_cfg(cfg, registry, default_args)
File "/workdir/code/mmdetection/mmdet/utils/registry.py", line 69, in build_from_cfg
obj_type, registry.name))
KeyError: 'None is not in the detector registry'
Do I need to recompile it?

That depends on the way you installed mmdetection. To be short, if you installed it with pip install -e . or python setup.py develop, then you do not need to reinstall it, otherwise you need to reinstall it after any modifications.

That depends on the way you installed mmdetection. To be short, if you installed it with pip install -e . or python setup.py develop, then you do not need to reinstall it, otherwise you need to reinstall it after any modifications.

I recompiled it then everything works fine, thank you very much!

That depends on the way you installed mmdetection. To be short, if you installed it with pip install -e . or python setup.py develop, then you do not need to reinstall it, otherwise you need to reinstall it after any modifications.

I recompiled it then everything works fine, thank you very much!

Hi, could you please share the method how to recompile it? Thx!


Suggestions for Rev-2 Hardware

As development moves forward, I'll 'open the floor' to suggestions from every/anyone.
The following are on my list:

Button footprints for displays without buttons
Connections for I2C 7-seg display and switches, to assemble as Digi-Slate
Battery holder, connector footprint and diode footprint
Diode footprints for 'Bias-Power' (from camera audio input).

(I'll update list as suggestions come in).

First of all, I would like to congratulate you for the development you are doing.
The device you are developing is designed to be used in cameras/recorders that have two audio channels (for example the right one for the microphone audio and the left one for the LTC).
I would like to propose you to include the possibility of including the necessary hardware so that it can be used in single channel devices without the need to disconnect the device and connect the microphone. In a single channel I suppose it would be possible to use the LTC at the beginning of the audio (x seconds) and then the normal audio. I don't know how this could be solved at the hardware level, but something that would change the output of the ltc to a direct connection to an input jack.
Once again I would like to congratulate you for the work you are doing.

Pass-though audio is supported now, if assembled in the construction with two 3.5mm connector. LTC output is on Tip/Left, Ring/Right is connected through to input connector (ie Mic).
I was tinkering with audio levels today and grabbed this screen shot (running in the 'Mic' output level, with Rode Video Mic attached to input).

I am not 100% sure what 'Bias' levels various camera/recorders output. My Sony cameras seem to out 2.7V on Ring (or TRS), my Tascam audio recorder output 2.2V on Ring.
Are there really devices which can't cope with stereo audio (even if external Mic is only mono)? Seems to me that switching would be a pain, and likely screwed up by operator on set.
As to electronically switching output between Mic and LTC; this might be possible if MCP6S93 was used, but it is a little bit more expensive ($2.21 vs $1.79).

Although I don't think may would use the feature, the request above is for a toggle button that switches between mono pass through and LTC at the click of a button, so the user could start a clip with 10 seconds of timecode, then hit the button and use their mic without having to disconnect the LTC device from the signal chain.
I don't think many people will need this feature though, I've never seen a camera (at the level where someone is considering using a timecode workflow) with mono input only.


[BUG] Owner HUD does not show up correctly

(I tested this on a server with just ulib and ulx installed)
The owner HUD will randomly appear and disappear. It also seems to freeze until the prop is deleted.
 Will make workaround soon.

@ickycoolboy Also it is better to notify me about bugs in discord https://discord.gg/HG9eS79 (open bug on gitlab/github bug tracker and notify me in discord about bug)

https://github.com/Facepunch/garrysmod-issues/issues/2516

Fixed


Unexpected behavior on event validation with Profiles

If you try to validate a event via the route /api/validate with one that implements the User profile you get the following error
Sent (other fields omitted):
{
    "profiles": ["User"],
    "user": {
       "uid": "<SID goes here>"
    }
}

Error:
{
    "user": {
        "error": "Undefined attribute name",
        "value": {
            "uid": "<SID goes here>"
        }
    }
}

Changing User to user causes the event to validate successfully. I would consider making the profile lookup case insensitive to prevent issues like this as the Schema uses the caption vs the name

Try user all lower case. The profile names are all lower case.
{
"profiles": ["user"],
"user": {
"uid": ""
}
}

Not an issue -- works as expected.

@rroupski Yes, using a lowercase user fixed it (I noted that), but unless you go look at profiles/user.json you wouldn't know to use user vs User. Instinctively, folks are going to use User as that's the Profile name shown throughout the Schema UI


move verbose log from INFO to DEBUG

Kept rdd and latency logging as INFO.

LGTM

Current coverage is 76.46%

Merging #255 into master will not affect coverage as of 5ea81c3

@@            master    #255   diff @@
======================================
  Files           40      40
  Stmts         3930    3930
  Branches       340     340
  Methods
======================================
  Hit           3005    3005
  Partial        142     142
  Missed         783     783

Review entire Coverage Diff as of 5ea81c3

Powered by Codecov. Updated on successful CI builds.

LGTM


ROCm changed name of library and removed the old one in ROCm 3.7 release.

Thanks for contributing to TVM!   Please refer to guideline https://tvm.apache.org/docs/contribute/ for useful information and tips. After the pull request is submitted, please request code reviews from Reviewers by @ them in the pull request thread.

Does this change make rocm 3.7 requirement for TVM? This is only for confirmation, I'm +1 for tracking the latest release.
cc @t-vi

The new library name was introduced in ROCm 3.5.  The old library name was deleted in ROCm 3.7.
So this change makes ROCm 3.5 or later a requirement for mainline TVM, and fixes a break with ROCm 3.7 when the old name was deleted.

Seems good to me. If we are giving up on pre-3.3 compat, I should also remove the code object v3 workaround I introduced in the spring in favour of 3.5+. (I'll send a PR.)


Persistent "Read Fields from Related" Setting

I attempt to disable the "Read Fields from Related" option within navigation item settings. After saving the changes, I reopen the navigation item setting. I unexpectedly find the "Read Fields from Related" option enabled again (Always set to True).
$ yarn strapi version
yarn run v1.22.19
$ strapi version
4.20.0
Done in 0.91s.
$ yarn list strapi-plugin-navigation
yarn list v1.22.19
warning Filtering by arguments is deprecated. Please use the pattern option instead.
└─<EMAIL_ADDRESS>Done in 0.38s.

I upgraded to the latest release<EMAIL_ADDRESS>and retested the issue, I still observe the same behaviour.

Confirm in #432

This issues is addressed by related pull request. Have a look, please.


Calendars include invalid holiday

japandas.JapaneseHolidayCalendar and japandas.TSEHolidayCalendar treat following INVALID date as holiday.

1993-09-05

It is treated as "Respect for the Aged Day", but "Respect for the Aged Day" in 1993 is Sep. 15th.

2020-08-12

It is treated as "Holiday in lieu", but  Aug, 12th in 2020 is not holiday.

Both wrong date came from invalid holiday data in holidays.yml on k1LoW/holiday_jp.
I have already sent a pull request to k1LoW.
Please regenerate pkl files based on the new holidays.yml that my pull request includes.
New holidays.yml is here

Thx, will do.


draft Add BufWriter

This pull request will resolve #83 when merged.
It includes asynchronous BufWriter and LineWriter with tests.
Currently I'm having problems with implementing poll_write for BufWriter, because trying to call
self.buf().write(buf).poll(cx). I assume that's because WriteFuture has trait bounds on ?Sized but I'm not sure how to get around that.

r? @skade


[Crosswalk-20][usecase-cordova] Update DefaultCrosswalkVersion to latest stable version

Impacted tests(approved): new 0, update 1, delete 0
Unit test platform: Crosswalk for Android 19.49.514.4
Unit test result summary: pass 1, fail 0, block 0
https://crosswalk-project.org/jira/browse/CTS-1798

LGTM


My Nimbus cannot be detected

Hi. I've managed to connect my Nimbus via a Bluetooth adapter with my Win10 desktop. But the Feeder application cannot detect my gamepad. I found that Nimbus was listed in the Bluetooth list in Device Manager while not the HIDevices list, is that a problem? Thank you in advance.

same problem for me.

Same here.

If it helps:
I'm running:
bootcamp,
Windows 10 Pro 64bit (up to date)
on a spec'ed out MacBook pro 2016.
Nimbus has v<IP_ADDRESS> firmware

I'm having the same problem as swhallo on a Windows 10 laptop, trying to connect to a Nimbus.  Drivers are same version as swhallo.  The Nimbus is connecting both as a HID device and Bluetooth device in Device Manager, but it does not show up in MFI Gamepad Feeder.  Have tried both 64-bit and 32-bit download.
Should this be working?  Are there any log files or similar you would like to see?

Same here no gamepad appears in the feeder window.

请仔细阅读使用步骤，一定要先勾选右边的激活按钮，才可以选择已连接的手柄。该工具不是自己检测自动配置的。
Please read installation carefully, you should click "Active" checkbox on the right next to the first row, then select your controller. This tool cannot detect controllers then put them in the list automatically.
正确步骤：蓝牙连接手柄，然后打开该工具，勾选第一行的激活，第一列选择“Serial Number”不为空的选项，第三列选择唯一的配置文件，点击开始按钮，系统弹出“Xbox 手柄已成功配置”通知即可使用。
Right step: pair Nimbus via Bluetooth, open this tool, click "Active" checkbox in first line, choose an item whose "Serial Number" is not null at first column, choose the only default config file of Nimbus at third column, chick "Start" button, it will work when Windows push a notification that "Xbox 360 Controller for Windows has been installed".

蓝牙连接 / pair via Bluetooth

选择手柄 / choose Nimbus

选择配置文件 / choose config file

Holy crap.  BlueSky-07 Thanks.  I was trying to click activate but it wouldn't let me.  Click stop, then tick active on first row, then start then pick!

I always get
Xbox bus not installed (NoSuchDevice)
Any assistance would be appreciated.


Method of changing background is outdated in demos?

The demos on http://brm.io/matter-js-demo/ use:

engine.render.options.background = "somecolor"

From what I can tell from the documentation, the current method that's supposed to be used is:

engine.render.setBackground( engine.render, "somecolor" );

Of course, right now I can't get either of those to work, but I'm sure that's a user error and is a totally different issue.

Ah, it's a little confusing!
There seems to be a bug in Render.setBackground, as it doesn't actually set the renderer's background option, it only applies the given background to the canvas. I'll add a fix for this soon.
But the real issue here is that if you are using wireframe rendering, there is a separate property to set instead:
engine.render.options.wireframeBackground = "color"

Where color is a CSS color value e.g. '#ffffff'.

Those sound like great fixes. I don't really know what wireframe rendering is and I'm not sure how I would or wouldn't do it. It was actually the background of the canvas that I was trying to set.
In the demo it looked like render.options.background was changing the background of the canvas, but perhaps I didn't read it carefully enough and it was changing the background of the elements.

Wireframe rendering is just the default mode, it's what you see when you run the demos. It's basic but useful for debugging and testing.
Unless you have set render.options.wireframes to false in your code, then you will be seeing wireframe rendering.
I think you should probably set render.options.wireframes to false in your code and then set render.options.background to set your background.

Thanks for the tip on the wireframes. Was wondering how I could change that. I actually want to try to use three.js to render the objects.
I'm not sure if it helps, but _render.controller.setBackground( _render, 'green' ); seemed to work to change the background.

Thanks for the tip on the wireframes. Was wondering how I could change that.

Yeah I need to document this better. Also maybe make the default mode solid rendering... hmm.

I actually want to try to use three.js to render the objects.

It might be a good idea then to look at Matter.RenderPixi, since it has code for handling the scene graph?

I'm actually pretty new to this, so I'm not sure how to use the scene graph, but I'll look into it. Using _engine.render.options.background and .wireframeBackground doesn't seem to get me any results. I don't get errors, but nothing happens.
I've been trying a lot of things and getting, as it is with these things, weird results. Right now, despite setting the render property to Matter.RenderPixi, the context of the canvas is 2D. Here's the code for that: http://pastebin.com/tRXhLwq5
Sometime in the past I got it to be 3D, but I think I had to use var foo = Matter.RenderPixi.create(...) which ended up making two canvases. Also, I couldn't see the three.js stuff under the matter.js stuff. Maybe this all belongs in a different issue, though, or on stackoverflow or something.

Closed because Matter.RenderPixi is now deprecated so support is limited.


Support for subgraph

Subgraph example: http://www.graphviz.org/content/cluster
digraph G {

	subgraph cluster_0 {
		style=filled;
		color=lightgrey;
		node [style=filled,color=white];
		a0 -> a1 -> a2 -> a3;
		label = "process #1";
	}

	subgraph cluster_1 {
		node [style=filled];
		b0 -> b1 -> b2 -> b3;
		label = "process #2";
		color=blue
	}
	start -> a0;
	start -> b0;
	a1 -> b3;
	b2 -> a3;
	a3 -> a0;
	a3 -> end;
	b3 -> end;

	start [shape=Mdiamond];
	end [shape=Msquare];
}

This functionality is not already in the library.  You may submit a pull request adding a new SubgraphStatement if you want.


collection.iterator created with return_properties fails when using properties with object[] dataType

Description
This issue was found in the Haystack integration. Corresponding Haystack issue: https://github.com/deepset-ai/haystack-core-integrations/issues/1172
weaviate-client==4.9.0
When a property with object[] dataType is present,
we get an error when iterating on a collection.iterator created with return_properties.
If we create a similar iterator but without passing return_properties, all works correctly.
Reproducible code example
import weaviate

# I'm running a Docker instance of Weaviate (1.24.5; same behavior with 1.27.2)

client = weaviate.WeaviateClient(
   connection_params=(weaviate.connect.base.ConnectionParams.from_url(url="http://localhost:8080", grpc_port=50051))
)

client.connect()

DOCUMENT_COLLECTION_PROPERTIES = [
   {"name": "_original_id", "dataType": ["text"]},
   {"name": "content", "dataType": ["text"]},
   {"name": "dataframe", "dataType": ["text"]},
   {"name": "blob_data", "dataType": ["blob"]},
   {"name": "blob_mime_type", "dataType": ["text"]},
   {"name": "score", "dataType": ["number"]},
   # the following properties can be present or not. Weaviate shows the same behavior:
   # documents are correctly written but not correctly returned
   # {
   #         'name': 'mylistofobjects', 'dataType': ['object[]'],
   #         'nestedProperties': [
   #             {'dataType': ['text'], 'name': 'doc_id'},
   #             {'dataType': ['number[]'], 'name': 'range'}],
   # }
]

collection_settings = {
   "class": "Default",
   "invertedIndexConfig": {"indexNullState": True},
   "properties": DOCUMENT_COLLECTION_PROPERTIES,
}

collection = client.collections.create_from_dict(collection_settings)

properties = {
   'content': 'This is a test document',
   'dataframe': None,
   'score': None,
   'mylistofobjects': [{'doc_id': '1', 'range': [1, 2]}],
   '_original_id': '3972bbfa2c09af05a7118ed4233124582a138dd83e3de1db3ff742f810df4c41',
}

collection.data.insert(
   properties=properties,
   vector=[0.1] * 300,
)

# this works and returns all properties except byte
# (in this case byte properties are not present, but they are not returned even if present)
it = collection.iterator(include_vector=True)
for i in it:
   print(i)

# this fails
it = collection.iterator(include_vector=True, return_properties=["content", "mylistofobjects"])
for i in it:
   print(i)

Error:
  File "/home/anakin87/apps/haystack-core-integrations/integrations/weaviate/.hatch/weaviate-haystack/lib/python3.10/site-packages/weaviate/collections/grpc/query.py", line 798, in __call
    res = await self._connection.grpc_stub.Search(
  File "/home/anakin87/apps/haystack-core-integrations/integrations/weaviate/.hatch/weaviate-haystack/lib/python3.10/site-packages/grpc/aio/_call.py", line 327, in __await__
    raise _create_rpc_error(
grpc.aio._call.AioRpcError: <AioRpcError of RPC that terminated with:
        status = StatusCode.UNKNOWN
        details = "creating primitive value for mylistofobjects: proto: invalid type: []interface {}"
        debug_error_string = "UNKNOWN:Error received from peer  {created_time:"2024-11-11T17:27:11.360212037+01:00", grpc_status:2, grpc_message:"creating primitive value for mylistofobjects: proto: invalid type: []interface {}"}"
>

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/anakin87/apps/haystack-core-integrations/integrations/weaviate/newtryweaviate.py", line 55, in <module>
    for i in it:
  File "/home/anakin87/apps/haystack-core-integrations/integrations/weaviate/.hatch/weaviate-haystack/lib/python3.10/site-packages/weaviate/collections/iterator.py", line 59, in __next__
    res = self.__query.fetch_objects(
  File "/home/anakin87/apps/haystack-core-integrations/integrations/weaviate/.hatch/weaviate-haystack/lib/python3.10/site-packages/weaviate/syncify.py", line 23, in sync_method
    return _EventLoopSingleton.get_instance().run_until_complete(
  File "/home/anakin87/apps/haystack-core-integrations/integrations/weaviate/.hatch/weaviate-haystack/lib/python3.10/site-packages/weaviate/event_loop.py", line 40, in run_until_complete
    return fut.result()
  File "/home/anakin87/.pyenv/versions/3.10.13/lib/python3.10/concurrent/futures/_base.py", line 458, in result
    return self.__get_result()
  File "/home/anakin87/.pyenv/versions/3.10.13/lib/python3.10/concurrent/futures/_base.py", line 403, in __get_result
    raise self._exception
  File "/home/anakin87/apps/haystack-core-integrations/integrations/weaviate/.hatch/weaviate-haystack/lib/python3.10/site-packages/weaviate/collections/queries/fetch_objects/query.py", line 65, in fetch_objects
    res = await self._query.get(
  File "/home/anakin87/apps/haystack-core-integrations/integrations/weaviate/.hatch/weaviate-haystack/lib/python3.10/site-packages/weaviate/collections/grpc/query.py", line 805, in __call
    raise WeaviateQueryError(str(e), "GRPC search")  # pyright: ignore
weaviate.exceptions.WeaviateQueryError: Query call with protocol GRPC search failed with message <AioRpcError of RPC that terminated with:
        status = StatusCode.UNKNOWN
        details = "creating primitive value for mylistofobjects: proto: invalid type: []interface {}"
        debug_error_string = "UNKNOWN:Error received from peer  {created_time:"2024-11-11T17:27:11.360212037+01:00", grpc_status:2, grpc_message:"creating primitive value for mylistofobjects: proto: invalid type: []interface {}"}"
>.```

Hi @anakin87, thanks for raising this one! The exact syntax that you're attempting here actually isn't supported but I think it should be, it seems an oversight that it was missed.
In short, if you specify the object or object[] property that you want returned then you also have to specify the exact nested properties that you want back. However, the use-case you show with the Python client appears natural so it is certainly a surprise that it fails with such a cryptic error! I will look into how we can support this in the gRPC API on the server. If we can do it easily, we'll be able to release a patch version to all currently supported minors including the fix 😁


[RFC/WIP] Refs #????? -- Switched to logical properties in CSS.

Over the past few months there have been a lot of regressions and subsequent fixes for various issues with RTL CSS.
For example: #17561, #17558, #17556, https://github.com/django/django/pull/17516#issuecomment-1824560923, #17514, #16685, #16684, #16675... And that's just this year alone.
I'm wondering if it's just time to switch as much as possible of this over from physical to logical properties?
Support is generally pretty good now. We're probably just waiting a few months for the support percentage to creep up for Chrome/Edge for float, clear and some others which were unflagged in v118, but I think it's worth discussing now. We can also make use of @supports if necessary -- which is widely supported -- to check for some cases and fall back to physical properties for a period of time. A notable exception is lack of support for logical background-position, but we could perhaps be clever with use of CSS variables for this (which I haven't investigated here).
I've knocked up a script that can generate a bunch of commits so that we can easily re-run it. There will likely be a few manual things to tweak also, e.g. related to splitting shorthand properties that don't support logical dimensions. We'd also need to ensure that the documentation is updated to require use of logical properties (and perhaps add a linting check to avoid them creeping in).
Anyway... Is this a good idea worth pursuing? Pinging @knyghty and @felixxm for their input as they've fixed most of these issues.

This is great :)
The need for this is pretty clear-cut to me, it’s just not productive to maintain separate RTL styles when logical properties and values are possible, but there are enough specific implementation details that need careful consideration so I’d recommend proceeding with a DEP so there’s room for people to validate specific details of the implementation plan.
I’d like to see specifically:

Whether the browser support is good enough for use in Django (Chrome/Edge since October/November 2023 for logical float: inline-start and inline-end, Safari 15 in September 2021 for border radius properties, Safari 14.1 from 2021 for lots of stuff)
Whether we really do need to use logical properties and values for both the horizontal and vertical axis, or whether we could do horizontal only (so LTR <-> RTL mirroring).
A plan for linting. I don’t see usage of logical properties and values being enforced without linting. We’ve just started discussing linting for CSS on the forum, but only in passing. I’ve already written Stylelint configs to enforce usage of logical properties and values if it helps, but we’d need to agree to use Stylelint first.
A plan for contributor docs. This stuff is simple once you know it but if you don’t it’s really surprising.
A plan for background-position and similar CSS transforms that only have physical values, with a CSS variable reversing the direction ideally rather than :dir or [dir] style overrides

If possible – I don’t think Django does this well currently but I’d also like to see:

An assessment of how much JS and Python code would need adapting for RTL languages (hopefully not too much)
Some ideas about how to rework Django’s icons so they’re mirrored.
How we will engage with people who actually use right-to-left languages to work on this and QA the work.

And ideally as "stretch goals":

A plan for code cleanup / moving more things to Flexbox or Grid.
A QA plan involving a visual regression testing setup, as this will be a case where for LTR languages there should be no changes at all. So this would be very simple to test with visual regression tools.

I wouldn’t recommend the cleanup being a pre-condition for this work. There’s plenty enough benefits to switching even unused code to logical properties and values :)

...but there are enough specific implementation details that need careful consideration so I’d recommend proceeding with a DEP so there’s room for people to validate specific details of the implementation plan.

Ok. Not sure there is all that much that it would require a DEP, but I guess we can look into doing one... Has the when to DEP or not thing been worked out yet - I know there was some discussion recently? It's never really been clear, and I'm concerned I'd spend time on something that nobody will engage with.

Whether the browser support is good enough for use in Django (Chrome/Edge since October/November 2023 for logical float: inline-start and inline-end, Safari 15 in September 2021 for border radius properties, Safari 14.1 from 2021 for lots of stuff)

So currently it looks like we're at 82.92% for the logical float/clear stuff. Am sure this has jumped up since last week. Based on our browser support, there is some leeway with this, but I expect we wouldn't be looking at landing something like this for a few months yet, but we can still plan.

Whether we really do need to use logical properties and values for both the horizontal and vertical axis, or whether we could do horizontal only (so LTR <-> RTL mirroring). I’d have thought the horizontal axis would be enough, as I can’t imagine anyone wanting to use Django in a TTB+RTL layout.

The point is that the vertical stuff should largely come for free (except for the background-position situation). We may not explicitly choose to support it, but if the writing mode is changed to be vertical and we're using logical properties/values, etc. it should all just flow as expected. The idea is that we shouldn't need to think about different directions as distinct things.

A plan for linting. I don’t see usage of logical properties and values being enforced without linting. We’ve just started discussing linting for CSS on the forum, but only in passing. I’ve already written Stylelint configs to enforce usage of logical properties and values if it helps, but we’d need to agree to use Stylelint first.

For sure. We'd want to make sure we don't regress. This is quite trivial, but we definitely will need something in place. Have seen the discussions and it seems positive, which is great.

A plan for contributor docs. This stuff is simple once you know it but if you don’t it’s really surprising.

This will be the biggest thing. Linting will help highlight stuff, but we effectively need to define our policy on this so that it's clear what the expectation is when contributing. Alas, visibility of this always seems to be the challenge - people will always contribute without reading the guidelines 🤷🏻
When we do this, we'll likely call it out in the top section of the release notes that the admin has changed to using logical properties with a link to the details in the conributing guide. The good news is that, where people have overridden stuff using physical properties, they've probably largely only considered LTR anyway, and things should mostly continue to work as before in those situations with no backward compatibility issues. Even where people have overridden for RTL with physical properties should work in general, but there may be small issues here and there.

A plan for background-position and similar CSS transforms that only have physical values, with a CSS variable reversing the direction ideally rather than :dir or [dir] style overrides

This is what I want to investigate next. We'll need one of those overrides at the top level to define the variable(s), but the idea is that everything else flows from that.

An assessment of how much JS and Python code would need adapting for RTL languages (hopefully not too much)

A good shout. I don't think there is much, but this reminds me that we should also look at the various error pages, etc. I've mainly focused on the admin at this point.

Some ideas about how to rework Django’s icons so they’re mirrored.

Also interesting. Some of this is handled by using multiple icons, but are there situations where we can flip and/or rotate instead? 🤔

How we will engage with people who actually use right-to-left languages to work on this and QA the work.

Another excellent point. I have an idea of a few people we could ask, but it'd be good to put out a call on the forum, perhaps when we have progressed with an initial DEP or such...

A plan for code cleanup / moving more things to Flexbox or Grid.

While I'm all for this, I think we should keep this firmly as a separate goal. I don't see that switching properties from physical to logical would be an impediment to this in any way - in fact, I think it may even simplify the task. It's likely that we can even delete some of the logical styles when migrating things to flex or grid as those layout models take flow directions into consideration by design.

A QA plan involving a visual regression testing setup, as this will be a case where for LTR languages there should be no changes at all. So this would be very simple to test with visual regression tools.

We've added the capability to take screenshots, but there isn't support for easy comparison yet. I guess we could look into something like percy.io or equivalent - maybe some generous company will donate it as a freebie? 🤞🏻

I wouldn’t recommend the cleanup being a pre-condition for this work. There’s plenty enough benefits to switching even unused code to logical properties and values :)

Agreed. Clean up is good irrespective of when it comes. If some things come before, that's just a bonus of smaller diffs for review.

@ngnpope if you’re hesitant to start the DEP I’d happily volunteer to do that, at least a first draft which you can add to at a later date? @knyghty what do you think, does this "require a DEP"?
As far as engaging with it once opened – there are a lot of glaring issues with Django’s RTL support currently, and @django/accessibility has been struggling a lot with the state of Django’s CSS, which this work would help in improving quite a bit. So personally I’d suspect this will be smooth-sailing to take through.

Re browser support – sounds good to me!

The point is that the vertical stuff should largely come for free (except for the background-position situation). We may not explicitly choose to support it, but if the writing mode is changed to be vertical and we're using logical properties/values, etc. it should all just flow as expected. The idea is that we shouldn't need to think about different directions as distinct things.

It’s not really for free though, as it means people who write code will need to think of left-right mirroring and of the "vertical" axis direction. Personally I doubt anyone wants to see the Django admin in a TTB-RTL layout, so I’d rather we skipped this entirely.

Some ideas about how to rework Django’s icons so they’re mirrored.

Also interesting. Some of this is handled by using multiple icons, but are there situations where we can flip and/or rotate instead? 🤔

I would recommend it’d be better for maintenance if we had a policy to only use icons in the UI that are either non-directional, or that can safely be mirrored. That way you don’t have to write so many overrides on "which icon to use in which variant of the admin" – you just write individual icon definitions with the LTR perspective, and then have some way to define which icons are and aren’t mirrored as a "global".
A note on icons mirroring – I think this should also be in the "separate goal" / "not MVP" area, because Django’s icon definitions are currently really hard to work with for other reasons, and I think it’d be better to fix this tech debt before changing the code for RTL support.

A plan for code cleanup / moving more things to Flexbox or Grid.

While I'm all for this, I think we should keep this firmly as a separate goal.

Same. I think it’d be nice to cover this in the DEP nonetheless, but not as something that must happen as part of this switch to logical properties.

We've added the capability to take screenshots, but there isn't support for easy comparison yet. I guess we could look into something like percy.io or equivalent - maybe some generous company will donate it as a freebie? 🤞🏻

Yeah Percy would be great. It does have a free tier, but I’m not sure the free tier would be enough for what we’d need here.
I can recommend BackstopJS for one-off efforts like this, as something we’d run locally. I’ve used it extensively so happy to expand further on what this would look like.

There’s overwhelming support for setting up Prettier for CSS in the forum discussion about Adding a formatter for CSS & JS. Based on discussions here and on that forum thread, do people think we should start a forum discussion about linting CSS already? Or wait for more to happen with either the auto-formatting or this logical properties and values refactoring?

I think it's worth starting the discussion. Things can be done in phases - just having something in place to begin with would be great and then adapting the rules for logical properties later would be best.

Regarding the DEP - sounds fine if there is enough interest in it. Happy to put something together if we want to take that path. I just wasn't sure whether this was big enough a change to warrant it.

I can recommend BackstopJS for one-off efforts like this, as something we’d run locally.

Nice. I'm also currently working on overhauling django-docker-box to make it easier to work with and resolve many longstanding issues. One thing will be making it easy to work with linting and coverage and get the output/reports. This could be something we wire in to that too to reduce the barrier to contribution.

@knyghty what do you think, does this "require a DEP"?

I think it's easier to start with a forum post and then move to a DEP if there's no clear consensus, personally. But it's also unclear on what requires one or not.

👍 thanks! Main reason I suggested a DEP over a forum post is there there are a lot of aspects to this that I think it’d be easier to validate by reviewing a documented implementation plan, where there can be multiple drafts, rather than a long thread of replies. But if others think it’s not needed, happy to follow suite!

Hi @ngnpope, happy new year :) I thought I’d check in and ask what your plans are to move this along?
I see right-to-left support as a great way to get new people involved with core development, as there are lots of obvious gaps. I’m aware of a few development sprints coming up in the first half of 2024, as well as programs dedicated to new contributors – where this work would make for lovely contributions.
What are your plans? Do you still intend to publish a forum post about this?

Hi @thibaudcolas. I haven't really had a chance to look into this yet. Might do later in the month.

I think there's no need to rush here anyway... I get that it'd be a nice clean up prior to flex stuff, but if you want to focus on that, then I think that should happen independently.

So currently it looks like we're at 82.92% for the logical float/clear stuff.

This is now 85.57% with Chrome < 118 at 5.28% being the biggest detriment. In a few months time I expect we'll be > 90% and it'll mostly be mobile browsers, e.g. Samsung Internet, that affect this.
This will be one of the things that I want to consider - do we need to go down the @supports route or do we just hold on a little longer? Also - do we care about mobile browsers like Samsung Internet and Opera Mobile, or not, if they haven't gained support for these rules?

What are your plans? Do you still intend to publish a forum post about this?

I think I'll do a forum post, but I'd like to consider some more things first, e.g. an approach to handling background images and icons.

👍 thanks :)
Samsung Internet is a Chromium derivative, I don’t know how many versions behind Google Chrome they’re at but we could do the math and I wouldn’t be surprised if they did land support by the time this work would be released for Django.
For Opera Mobile, be worth double checking Django’s exact browser support rules but I wouldn’t expect it’s one we want to support.

@sakhawy and I have solved the browser support issue for django CMS by adding a "hardcoded" RTL css document similar to django admin's rtl.css that contains physical styles ("patch") for the insufficiently supported logical styles, like :dir() or float: inline-start.
The idea is to transition the main styles to logical ones and separating out support for legacy browsers, which then hopefully can be removed soon as browser support improves.
I'd be happy to contribute some sort of compatibility layer here.

@fsbraun I think the current proposal is to first add stylelint, and then do this, with a stylelint config to enforce them. But I think adding stylelint to the project without specific configuration for this is probably the first step. Separately, I'm also working on using prettier (or so) for formatting of JS and CSS, but I don't think there should be much overlap here.

I have used stylelint-use-logical-spec in my projects and liked how it works. It will update every relevant CSS property, which will be tricky to check. I also do not know how it plays with third-party CSS using old-style properties.
I haven't read the previous comments in detail, but trust that the comments are correct.
PS. We might tag Moe, who has started talk about RTL support for Django, but I don't know his GitHub handle (will send him this thread in Discord)


how disable line break on Beautify  Visual studio ?

How in JS files disable line break ?
screen https://i.postimg.cc/L5tcq2w9/Screenshot-2021-03-10-12-22-34.png

Change your code to:
render() { return "
TEXT
" }

Change your code to:
render() { return "
TEXT
" }
?


Empty secret or public key

When secret or key fails to load or is not provided, verify can throw error even with callback.
Added check for null and undefined

Thank you very much, published as v5.0.4.


Create postmanbot.py

Added the postman bot, see description in readme.md

Hey, @agermanidis , could you give a look to this bot ? :smile:

how can i get it,,can you help me ,,i need this very argent,,i need more bot to sell this and shear benefit,,with devloper,,,,
🤝Knock Us
Skype : romeosagor01
Telegram : romeosagor01
Whatsapp: +8801790257131


selenide issue #974 fix commit

Proposed changes
the issue author has wrong used the Html and misunderstand the selenide usage.

@ChrisZcu Sorry, I don't understand how this commit fixes the issue #974 ?
It modifies only tests, not production code.

 Yes there are only test codes, because I cannot reproduce this bug and something wrong found in the issue author's code, so I only modify the tests in the pull request. What's more, there is no reply from the issue author, and another one has the same question to the issue author.
------------------ 原始邮件 ------------------
发件人: "Andrei<EMAIL_ADDRESS>发送时间: 2020年6月1日(星期一) 晚上8:20
收件人<EMAIL_ADDRESS>抄送: "1164806828"<1164806828<EMAIL_ADDRESS>主题: Re: [selenide/selenide] selenide issue #974 fix commit (#1182)
@ChrisZcu Sorry, I don't understand how this commit fixes the issue #974 ?
It modifies only tests, not production code.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

closing due to inactivity. Feel free to reopen it in case of any updates.


Reorganize towncrier

Summary of Changes
Reorganize towncrier to match previous changelogs
Related Issues
Please reference here any issue #'s that are relevant to this PR, or simply enter "N/A" if this PR does not relate to any existing issues.
Pull Request Checklist
This is just a reminder about the most common mistakes.  Please make sure that you tick all appropriate boxes.  But please read our contribution guide at least once; it will save you a few review cycles!
If an item doesn't apply to your pull request, check it anyway to make it apparent that there's nothing to do.

[ ] Added tests for changed code.
[ ] Prefixed code comments with GitHub nick and an appropriate prefix.
[ ] Coding style is consistent with the rest of the framework.
[ ] Updated documentation for changed code.

[ ] Added docstrings for any new classes, functions, or modules.
[ ] Updated docstrings for any modifications to existing code.
[ ] Added references to new classes, functions, or modules to the relevant RST file under docs/.
[ ] Updated all relevant supporting documentation files under docs/.
[ ] A copyright notice is included at the top of any new modules (using your own name or the name of your organization).
[ ] Changed/added classes/methods/functions have appropriate versionadded, versionchanged, or deprecated directives.

[ ] Changes (and possible deprecations) have towncrier news fragments under docs/_newsfragments/. (Run towncrier --draft to ensure it renders correctly.)

If you have any questions to any of the points above, just submit and ask! This checklist is here to help you, not to deter you from contributing!
PR template inspired by the attrs project.

@vytas7 Draft PR for what we discussed about towncrier. This is on top of my other PR #1603, so only the last few commits are relevant. (Probably I should have just put the PR on my own fork. I forgot that I wouldn't be able to base it against my other branch.)

Looking again at the comments on #1603, I guess I should make two fragments for that one in this new setup.

Hi sorry I haven't gotten back to this yet. Looking at it now

This is what the full output looks like as of https://github.com/falconry/falcon/pull/1621/commits/37aab610ce1e4adf7fdd5f169de8a5fb8493ac29
Changelog for Falcon 3.0.0
==========================

Changes to Supported Platforms
------------------------------

- Python 3.8 is now fully supported.
- Python 3.6+ is only required when using the new ASGI interface. WSGI is still
  supported on Python 3.5+.
- Python 3.5 support is deprecated and may be removed in the next major release.
- Python 3.4 is no longer supported.
- The Falcon 2.x series was the last to support Python language version 2. As a
  result, support for CPython 2.7 and PyPy2.7 was removed in Falcon 3.0.

.. towncrier release notes start

Breaking Changes
----------------

- Exceptions are now handled by the registered handler for the most specific matching exception class, rather than in reverse order of registration. "Specificity" is determined by the method resolution order of the raised exception type. (See :meth:`~.App.add_error_handler` for more details.) (1603-smart-exception-handler-precedence)
- The deprecated ``stream_len`` property was removed from the ``Response`` class.
  Please use ``Response.set_stream()`` or ``Response.content_length`` instead. (stream_len)

New & Improved
--------------

- A new kwarg, ``cors_enable``, was added to the :class:`falcon.API` initializer.
  ``cors_enable`` can be used to enable a simple blanket CORS policy for all
  responses. (See also: :ref:`cors`.) (1194-cors)
- Falcon now supports all WebDAV methods (RFC 2518 and RFC 4918), such as COPY, LOCK, MKCOL, MOVE, PROPFIND, PROPPATCH and UNLOCK. (1426-webdav)
- The :meth:`~.Response.set_cookie` method now supports setting the
  `SameSite` cookie attribute. (1557-cookie-samesite)
- The :meth:`~.Response.add_link` method now supports setting the `crossorigin`
  link CORS settings attribute. (1574-add-link-crossorigin)
- :class:`falcon.media.URLEncodedFormHandler` was added for handling URL-encoded forms (of content
  type ``application/x-www-form-urlencoded``) as ``Request.media``. The :attr:`~.RequestOptions.auto_parse_form_urlencoded` option is now
  deprecated in favor of :class:`falcon.media.URLEncodedFormHandler`.
  (See also: :ref:`access_urlencoded_form`). (1580-auto-parse-form-urlencoded)
- The :meth:`~.Response.set_headers` method now accepts an instance of any dict-like
  object that implements an ``items()`` method. (1630-set-response)
- The ``falcon.API`` class was renamed to ``falcon.App``. The old ``API`` class
  remains available as an alias for backwards-compatibility, but it is now
  considered deprecated and will be removed in a future release. (api_class)
- When no route matches a request, the framework will now raise a
  specialized subclass of :class:`~.falcon.HTTPNotFound`
  (:class:`~.falcon.HTTPRouteNotFound`) so that
  a custom error handler can distinguish that specific case if desired. (default-404-responder-specialized-error)
- :meth:`falcon.testing.simulate_request` now accepts a
  `content_type` keyword argument. This provides a more convenient way to set
  this common header vs. the `headers` argument. (simulate-request-content-type)
- :meth:`~.Request.get_param_as_bool` now supports the use of ``'t'`` and ``'y'``
  values for ``True``, as well as ``'f'`` and ``'n'`` for ``False``. (support-additional-truthy-param-values)

Fixed
-----

- The ``uri.parse_query_string()`` utility function is now correctly parsing an
  empty string as ``{}``. (1600-parse-empty-query-string)
- Header-related methods of the ``falcon.Response`` class no longer coerce the
  passed header name to a string via ``str()``. (response-header-coercion)

Misc
----

- 1561-use-towncrier

Contributors to this Release
----------------------------

Many thanks to all of our talented and stylish contributors for this release!

- `screamingskulls <https://github.com/screamingskulls>`_

Per my comment here, I realized after I pushed this that I'd misunderstood @vytas7's request. So, I can change it back to including the prose content. Do you want me to go through and put issue numbers on all of the fragment names? If so, should it be the PR number or the original issue number?

This is what the full output looks like as of https://github.com/falconry/falcon/pull/1621/commits/37aab610ce1e4adf7fdd5f169de8a5fb8493ac29
Changelog for Falcon 3.0.0
==========================

Changes to Supported Platforms
------------------------------

- Python 3.8 is now fully supported.
- Python 3.6+ is only required when using the new ASGI interface. WSGI is still
  supported on Python 3.5+.
- Python 3.5 support is deprecated and may be removed in the next major release.
- Python 3.4 is no longer supported.
- The Falcon 2.x series was the last to support Python language version 2. As a
  result, support for CPython 2.7 and PyPy2.7 was removed in Falcon 3.0.

.. towncrier release notes start

Breaking Changes
----------------

- Exceptions are now handled by the registered handler for the most specific matching exception class, rather than in reverse order of registration. "Specificity" is determined by the method resolution order of the raised exception type. (See :meth:`~.App.add_error_handler` for more details.) (1603-smart-exception-handler-precedence)
- The deprecated ``stream_len`` property was removed from the ``Response`` class.
  Please use ``Response.set_stream()`` or ``Response.content_length`` instead. (stream_len)

New & Improved
--------------

- A new kwarg, ``cors_enable``, was added to the :class:`falcon.API` initializer.
  ``cors_enable`` can be used to enable a simple blanket CORS policy for all
  responses. (See also: :ref:`cors`.) (1194-cors)
- Falcon now supports all WebDAV methods (RFC 2518 and RFC 4918), such as COPY, LOCK, MKCOL, MOVE, PROPFIND, PROPPATCH and UNLOCK. (1426-webdav)
- The :meth:`~.Response.set_cookie` method now supports setting the
  `SameSite` cookie attribute. (1557-cookie-samesite)
- The :meth:`~.Response.add_link` method now supports setting the `crossorigin`
  link CORS settings attribute. (1574-add-link-crossorigin)
- :class:`falcon.media.URLEncodedFormHandler` was added for handling URL-encoded forms (of content
  type ``application/x-www-form-urlencoded``) as ``Request.media``. The :attr:`~.RequestOptions.auto_parse_form_urlencoded` option is now
  deprecated in favor of :class:`falcon.media.URLEncodedFormHandler`.
  (See also: :ref:`access_urlencoded_form`). (1580-auto-parse-form-urlencoded)
- The :meth:`~.Response.set_headers` method now accepts an instance of any dict-like
  object that implements an ``items()`` method. (1630-set-response)
- The ``falcon.API`` class was renamed to ``falcon.App``. The old ``API`` class
  remains available as an alias for backwards-compatibility, but it is now
  considered deprecated and will be removed in a future release. (api_class)
- When no route matches a request, the framework will now raise a
  specialized subclass of :class:`~.falcon.HTTPNotFound`
  (:class:`~.falcon.HTTPRouteNotFound`) so that
  a custom error handler can distinguish that specific case if desired. (default-404-responder-specialized-error)
- :meth:`falcon.testing.simulate_request` now accepts a
  `content_type` keyword argument. This provides a more convenient way to set
  this common header vs. the `headers` argument. (simulate-request-content-type)
- :meth:`~.Request.get_param_as_bool` now supports the use of ``'t'`` and ``'y'``
  values for ``True``, as well as ``'f'`` and ``'n'`` for ``False``. (support-additional-truthy-param-values)

Fixed
-----

- The ``uri.parse_query_string()`` utility function is now correctly parsing an
  empty string as ``{}``. (1600-parse-empty-query-string)
- Header-related methods of the ``falcon.Response`` class no longer coerce the
  passed header name to a string via ``str()``. (response-header-coercion)

Misc
----

- 1561-use-towncrier

Contributors to this Release
----------------------------

Many thanks to all of our talented and stylish contributors for this release!

- `screamingskulls <https://github.com/screamingskulls>`_

Also, the build appears to be failing due to an inability to download a 3.8 archive? I don't know what to do about that

Re the inability to download archives, that unfortunately happens from time to time on Travis.
I've now restarted the relevant job, let's see if we are any luckier this time :crossed_fingers:

@csojinb did you see my reply on gitter?

I did not, I will check in when I get home from work
On Tue, Feb 4, 2020 at 12:32 PM Kurt Griffiths<EMAIL_ADDRESS>wrote:

@csojinb https://github.com/csojinb did you see my reply on gitter?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/falconry/falcon/pull/1621?email_source=notifications&email_token=ABRVDS3UVITTBPUQIMTIUULRBGRCJA5CNFSM4J3CU57KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEKYP7OY#issuecomment-582025147,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABRVDSYH2LXD6PMEP4V6W4LRBGRCJANCNFSM4J3CU57A
.

[copied from gitter]

I would suggest using the original issue number, if there is an issue, otherwise fall back to the PR #. But maybe it's too complicated?
@kgriffs @nZac @jmvrbanac any preferences?

@csojinb @vytas7 This sounds reasonable. Mainly I'd just like to ensure the fragment naming schema is consistent. We also need to talk about this in CONTRIBUTING and/or mention the desired format in the PR checklist template.

Dammit, I hit the wrong emoji and now it won’t let me unselect it.
@kgriffs I’m in favor of that suggestion. My personal computer has been having some troubles, so I’ve been a bit delayed in coming back to this, but I’ll try to get everything loaded up on my work machine and finish this up soon

Perhaps this belongs in a followup PR, but there is also the issue highlighted here:
https://github.com/falconry/falcon/pull/1655#pullrequestreview-355578674
I.e., it would be nice to be able to output links to the issue or PR at the end of the news fragment, but I haven't experimented enough with towncrier to know if it is possible to do this even when additional (hyphenated) descriptions are appended to the number. Outside of towncrier I suppose we could run a post-processing step to fix up things the way we want them.
Anyway, we should have some plan about how/if we want to address this, since it informs the naming scheme.

I’ve been a bit delayed

No worries; thanks for your help!

Any chance we could get this over the finish line by this weekend?

I think I've managed to rename everything correctly. Here's the draft output again:
Breaking Changes
----------------

- The class :class:`~.falcon.http_error.NoRepresentation` was removed since
  all :class:`~.falcon.HTTPError` have optional representation. (`#777 <https://github.com/falconry/falcon/issues/777>`_)
- Header-related methods of the ``falcon.Response`` class no longer coerce the
  passed header name to a string via ``str()``. (`#1497 <https://github.com/falconry/falcon/issues/1497>`_)
- Exceptions are now handled by the registered handler for the most specific matching exception class, rather than in reverse order of registration. "Specificity" is determined by the method resolution order of the raised exception type. (See :meth:`~.App.add_error_handler` for more details.) (`#1514 <https://github.com/falconry/falcon/issues/1514>`_)
- The deprecated ``stream_len`` property was removed from the ``Response`` class.
  Please use ``Response.set_stream()`` or ``Response.content_length`` instead. (`#1517 <https://github.com/falconry/falcon/issues/1517>`_)

New & Improved
--------------

- The error classes in ``falcon.errors`` were updated to have the ``title`` and
  ``description`` keyword arguments and to correctly handle headers passed as
  list of tuples (`#777 <https://github.com/falconry/falcon/issues/777>`_)
- ``MultipartFormHandler`` was added for handling multipart forms (of content
  type ``multipart/form-data``) as ``Request.media``. (`#953 <https://github.com/falconry/falcon/issues/953>`_)
- A new kwarg, ``cors_enable``, was added to the :class:`falcon.API` initializer.
  ``cors_enable`` can be used to enable a simple blanket CORS policy for all
  responses. (See also: :ref:`cors`.) (`#1194 <https://github.com/falconry/falcon/issues/1194>`_)
- The :meth:`~.Response.add_link` method now supports setting the `crossorigin`
  link CORS settings attribute. (`#1410 <https://github.com/falconry/falcon/issues/1410>`_)
- Falcon now supports all WebDAV methods (RFC 2518 and RFC 4918), such as COPY, LOCK, MKCOL, MOVE, PROPFIND, PROPPATCH and UNLOCK. (`#1426 <https://github.com/falconry/falcon/issues/1426>`_)
- The :meth:`~.Response.set_headers` method now accepts an instance of any dict-like
  object that implements an ``items()`` method. (`#1546 <https://github.com/falconry/falcon/issues/1546>`_)
- Change :class:`falcon.routing.CompiledRouter` to compile the routes
  only when the first request is routed. This can be changed by
  passing ``compile=True`` to :meth:`falcon.routing.CompiledRouter.add_route`. (`#1550 <https://github.com/falconry/falcon/issues/1550>`_)
- The :meth:`~.Response.set_cookie` method now supports setting the
  `SameSite` cookie attribute. (`#1556 <https://github.com/falconry/falcon/issues/1556>`_)
- The ``falcon.API`` class was renamed to ``falcon.App``. The old ``API`` class
  remains available as an alias for backwards-compatibility, but it is now
  considered deprecated and will be removed in a future release. (`#1579 <https://github.com/falconry/falcon/issues/1579>`_)
- :class:`falcon.media.URLEncodedFormHandler` was added for handling URL-encoded forms (of content
  type ``application/x-www-form-urlencoded``) as ``Request.media``. The :attr:`~.RequestOptions.auto_parse_form_urlencoded` option is now
  deprecated in favor of :class:`falcon.media.URLEncodedFormHandler`.
  (See also: :ref:`access_urlencoded_form`). (`#1580 <https://github.com/falconry/falcon/issues/1580>`_)
- :meth:`~.Request.get_param_as_bool` now supports the use of ``'t'`` and ``'y'``
  values for ``True``, as well as ``'f'`` and ``'n'`` for ``False``. (`#1606 <https://github.com/falconry/falcon/issues/1606>`_)
- :meth:`falcon.testing.simulate_request` now accepts a
  `content_type` keyword argument. This provides a more convenient way to set
  this common header vs. the `headers` argument. (`#1646 <https://github.com/falconry/falcon/issues/1646>`_)
- When no route matches a request, the framework will now raise a
  specialized subclass of :class:`~.falcon.HTTPNotFound`
  (:class:`~.falcon.HTTPRouteNotFound`) so that
  a custom error handler can distinguish that specific case if desired. (`#1647 <https://github.com/falconry/falcon/issues/1647>`_)

Fixed
-----

- The ``uri.parse_query_string()`` utility function is now correctly parsing an
  empty string as ``{}``. (`#1600 <https://github.com/falconry/falcon/issues/1600>`_)
- :attr:`falcon.Request.forwarded_host` now contains the port when proxy headers
  are not set, to make it possible to correctly reconstruct the URL when the
  application is not behind a proxy. (`#1678 <https://github.com/falconry/falcon/issues/1678>`_)

Misc
----

- Deprecate the use of positional arguments for the optional kw args of
  the HTTPError subclasses (`#777 <https://github.com/falconry/falcon/issues/777>`_)
- Setup towncrier to make CHANGES reporting much easier. (`#1561 <https://github.com/falconry/falcon/issues/1561>`_)
- Fix test errors on Windows (`#1656 <https://github.com/falconry/falcon/issues/1656>`_)

I'm testing out the docs now and making sure that the links all work properly in the GH markdown files, then I'll clean up the git history and I think this should be g2g

[ ] Rename all newsfragments to follow the decided naming scheme.
[ ] Update CONTRIBUTING.md explaining this scheme.
[ ] Check if .github/PULL_REQUEST_TEMPLATE.md needs an update.

@vytas7 @kgriffs I think this should be ready now

@vytas7 thanks for fixing the issue number! is there anything else that you need from me here, or can I just leave it to y'all to get merged?

The only thing I'd like to get before merging is @kgriffs seal of approval :rofl:


update search and observability plugins

update search and observability plugins for 1.2
Signed-off-by: Anirudha Jadhav<EMAIL_ADDRESS>Description
[Describe what this change achieves]
Issues Resolved
[List any issues this PR will resolve]
Check List

[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

The DCO check failed, needs a -s amend.

branch is in this repo I can't amend, i'll open another PR

@anirudha Please make branches off your fork.


Improve template

Mostly a few tweaks
Added editorconfig
Added eslint
Upgraded all dependencies to latest version
Made aws-sdk a dev dependency

I made them all individual commits. So it should be easy to select only those that should go in.

Making aws-sdk a dev dependency will prevent any client of the library from specifying the version they want.  Can we leave that change out and possibly tackle a different way further down the line?

Wait it should have aws-sdk as optional, but it seem in here is in the direct dependencies... stratge

Oh its the template package json.  Then my only feedback is that the openapi-json might be better left as "^4.3"

one small thing on the library versions in the package.json, other than that.  It's good and I will merge after that.


Refactor in turbo module TypeScript codegen: process (T), T|U, T|undefined and related stuff in a central place

Summary
TSParenthesizedType, TSUnionType, TSNullKeyword, TSUndefinedKeyword, TSVoidKeyword etc are repeatly processed in so many places. In this change I put them in a new file parseTopLevelType.js, and everyone call that file, all repeat implementation are deleted.
The parseTopLevelType function will look into a type consisted by the above types in any possible combination (but still very easy to do), and tell you if a type is nullable, or if there is a default value, and what is the real type with all noises removed.
Array types and union types are processed in component twice, for property of array, and property of nested arrays (componentsUtils.js). They are extracted into single functions.
Changelog
[General] [Changed] - Refactor in turbo module TypeScript codegen: process (T), T|U, T|undefined and related stuff in a central place
Test Plan
yarn jest react-native-codegen passed

/rebase


Geocode blank rows at data.json generation time

This PR doesn't include any mechanism to cache the geocode result, so we should take care to check that it won't burn through our maps API quota too fast.

Possibly addresses https://github.com/r-pop/findthemasks/issues/144

@krithin @awong-dev @alex @susanashlock - I'm not comfortable reviewing this one properly. Can someone (or multiple) sign up to go through this in detail?

@krithin @awong-dev @alex @susanashlock - I'm not comfortable reviewing this one properly. Can someone (or multiple) sign up to go through this in detail?

Careful review is especially appreciated because we were working with a different file in local development (to avoid all the firebase auth stuff) and then I merged the changes into index.js by hand and haven't been able to run it locally to verify that the result of that merge works.

This PR doesn't include any mechanism to cache the geocode result, so we should take care to check that it won't burn through our maps API quota too fast.

I think that's important before this is accepted. Unclear how often the data.json is generated, and how many entries get re-geocoded on average.

@drwestco yes. Agreed. The data.json is triggered by a manual process so it's frequently, but not machine-slamming frequent.
I'm working on a write-back solution currently which should solve this.

Oh...I just realized we put the geocode in the wrong spot.  But let's merge this and I can fix.


publish to supermarket?

Hello, would you be able to publish this cookbook to the supermarket please?
Ideally also with a link from the README :)

looks like that's been done @glenjamin

Hurrah!


Remove wrong install instructions

Getting errors using gem install xcversion.
➜  ~  gem install xcversion
ERROR:  Could not find a valid gem 'xcversion' (>= 0) in any repository
ERROR:  Possible alternatives: aversion, version, pgversion, inversion, diversion

Also the install instructions are duplicated in line 11.

Install and update your Xcodes automatically.
$ gem install xcode-install
$ xcversion install 6.3

Thanks, but the instructions got fixed in 30ab54fc2e2f6435d8a5859fd7e6f1aadb80f9dd :)
I don't see the instructions as a duplicate, but rather as a short vs. long version. Having an "Installation" section also makes it possible to do a direct link.


UDF Code Review 1

Currently we support parsing of C and PGSQL UDFs.
This PR adds parsing support for PGSQL and C UDFs. The code currently handles conversion of PostgreSQL's parse tree into Peloton's parse tree.
Newly added Files:

/peloton/src/include/parser/create_function_statement.h : This file defines the CreateFunctionStatement struct which defines the structure in which we capture PostgreSQL's parse tree.

Modified Files:

/peloton/src/parser/postgresparser.cpp : Added a case in the switch statement inside NodeTransform() to handle CreateFunctionStmt. Added CreateFunctionTransform() to actually do the conversion of PostgreSQL's parse tree object(CreateFunctionStmt) to Peloton's parse tree object(CreateFunctionstatement).
peloton/test/parser/postgresparser_test.cpp  : Added 2 tests to check the validity of the parsed object for C UDF as well as PGSQL UDF.
Prashasthi • 16 mins

This PR adds parsing support for PGSQL and C UDFs. The code currently handles conversion of PostgreSQL's parse tree into Peloton's parse tree.
Newly added Files:

/peloton/src/include/parser/create_function_statement.h : This file defines the CreateFunctionStatement struct which defines the structure in which we capture PostgreSQL's parse tree.

Modified Files:

/peloton/src/parser/postgresparser.cpp : Added a case in the switch statement inside NodeTransform() to handle CreateFunctionStmt. Added CreateFunctionTransform() to actually do the conversion of PostgreSQL's parse tree object(CreateFunctionStmt) to Peloton's parse tree object(CreateFunctionstatement).
peloton/test/parser/postgresparser.cpp  : Added 2 tests to check the validity of the parsed object for C UDF as well as PGSQL UDF.

Coverage decreased (-0.4%) to 67.474% when pulling 3aea1a6eb64a131ade77004637643d7ddfcbb9ca on prashasthip:master into b191a335c0f02798ccfa324731546eb90277c6a0 on cmu-db:master.

Coverage decreased (-0.05%) to 67.185% when pulling 8eb81a77760cb4c72890b903fc86de2c208a6257 on prashasthip:master into a05b5c134802a522ff00e135350cb44838546dff on cmu-db:master.

Coverage decreased (-0.7%) to 66.767% when pulling 49770fb95e3aab9f7e22094b05631e17871dcdeb on prashasthip:master into 73fa9dec33f54a798006e01829a679c6b8e944eb on cmu-db:master.

Coverage decreased (-0.7%) to 66.774% when pulling b48c069a698908ca8351fea0b87b705311eac98a on prashasthip:master into 73fa9dec33f54a798006e01829a679c6b8e944eb on cmu-db:master.

Coverage decreased (-0.7%) to 66.784% when pulling 96713d1e6d36c67490b38c50cb706a609d2fdc5e on prashasthip:master into 73fa9dec33f54a798006e01829a679c6b8e944eb on cmu-db:master.

Coverage decreased (-1.5%) to 65.909% when pulling a921e00e8356a6e8d9e360bb161cb9fff0cfe19f on prashasthip:master into 73fa9dec33f54a798006e01829a679c6b8e944eb on cmu-db:master.

Coverage decreased (-67.4%) to 0.0% when pulling 97ee310758d40610367c361f7b0d66e52d39815f on prashasthip:master into 73fa9dec33f54a798006e01829a679c6b8e944eb on cmu-db:master.

Coverage decreased (-67.4%) to 0.0% when pulling 97ee310758d40610367c361f7b0d66e52d39815f on prashasthip:master into 73fa9dec33f54a798006e01829a679c6b8e944eb on cmu-db:master.

Coverage decreased (-67.4%) to 0.0% when pulling ab9c47ce204960523dd5c730dbe66c9aaf52d462 on prashasthip:master into 73fa9dec33f54a798006e01829a679c6b8e944eb on cmu-db:master.

Coverage decreased (-67.4%) to 0.0% when pulling 1d39163bf3e4a924358b207e61aa48ed67995498 on prashasthip:master into 73fa9dec33f54a798006e01829a679c6b8e944eb on cmu-db:master.

Coverage decreased (-67.4%) to 0.0% when pulling 1d39163bf3e4a924358b207e61aa48ed67995498 on prashasthip:master into 73fa9dec33f54a798006e01829a679c6b8e944eb on cmu-db:master.

Coverage decreased (-67.4%) to 0.0% when pulling 4bcddabdc346769163d13b3ec0e2c177a8bc2fee on prashasthip:master into 73fa9dec33f54a798006e01829a679c6b8e944eb on cmu-db:master.

Coverage decreased (-67.4%) to 0.0% when pulling 4bcddabdc346769163d13b3ec0e2c177a8bc2fee on prashasthip:master into 73fa9dec33f54a798006e01829a679c6b8e944eb on cmu-db:master.

Coverage decreased (-67.4%) to 0.0% when pulling 748c1873cfb89f0f05f3f6a05e67bc516ba7a3d1 on prashasthip:master into 73fa9dec33f54a798006e01829a679c6b8e944eb on cmu-db:master.

Coverage decreased (-67.4%) to 0.0% when pulling 5a46ba61fbc03aa67328e0beded1c872ea337454 on prashasthip:master into 73fa9dec33f54a798006e01829a679c6b8e944eb on cmu-db:master.


Feature request SqsListener: Support multiple queues configured by placeholder

I would like to configure multiple queues by property placeholder. E.g. having a property like this
com.myproject.queues=queueOne,queueTwo
and use it in SqsListener like that:
@SqsListener(value = "#{'${com.myproject.queues}'.split(',')}"
Currently QueueMessageHandler iterates through all constant expressions of SqsListener.value() and adds them one by one - by invoking the toString after resolve. The array gets resolved fine, but the queue name then of course looks like [Ljava.lang.String;@4e25154f.
I think this could be easily supported by checking if the resolved result is an array or list, and if it is, add all to the Set of queues. E.g.
private Set<String> resolveDestinationNames(String[] destinationNames) {
        Set<String> result = new HashSet<>(destinationNames.length);

        for (String destinationName : destinationNames) {
            result.addAll(resolveName(destinationName)); // addAll instead of simple add
        }

        return result;
    }

    private Collection<String> resolveName(String name) { // return collection instead of string
        if (!(getApplicationContext() instanceof ConfigurableApplicationContext)) {
            return name;
        }

        ConfigurableApplicationContext applicationContext = (ConfigurableApplicationContext) getApplicationContext();
        ConfigurableBeanFactory configurableBeanFactory = applicationContext.getBeanFactory();

        String placeholdersResolved = configurableBeanFactory.resolveEmbeddedValue(name);
        BeanExpressionResolver exprResolver = configurableBeanFactory.getBeanExpressionResolver();
        if (exprResolver == null) {
            return name;
        }
        Object result = exprResolver.evaluate(placeholdersResolved, new BeanExpressionContext(configurableBeanFactory, null));
        if (result != null) {
            // check for array or collection and return accordingly
            ...
        } else {
            return Arrays.asList(name);
        }
    }

HI @msparer,
Thanks for reporting this. I added this feature for the next minor release (1.1.1.RELEASE), see d06cf9cdf595ce4f96eaad96af38c859d9afc75e.

I'm running some tests on this, with two queues, but somehow messages are not ending at the listener. Did someone see multiple queues working?
When I only use one queue in the "com.myproject.queues" value messages are coming through.
Using breakpoints in QueueMessageHandler indicate that resolveDestinationNames do give a set with my two queues.

I had a use case where we wanted to listen to queues in different region. It will make sense to have the placeholder value to accommodate  multi region queues also instead of just queue name.


send external results to sensu-api

That below works in Sensu Enterprise Dashboard but not Uchiwa to post check directly to sensu server
curl -H "Content-Type: application/json" -X POST -d '{"name":"clientname","source":"targetname","status":2,"output":"results information"}' http://localhost:4567/results
Should I see it in Uchiwa under a client with the name set in source ? I think it is very important, it can also include the handler(s) in a "handlers" parameter ("handlers": ["handler1","handler2"])

@irom77 thank you for submitting this issue. We're not sure if we understand what the issue is here and/or if this would be an issue w/ Sensu or Uchiwa. Please let us know if you still need any help.
In the interim, please refer to the Sensu Results API documentation, here: https://sensuapp.org/docs/latest/api-results#results-post

I'm closing this issue since we didn't received any responses.
If you are still facing this problem, please let us know with a comment and we'll be happy to reopen the issue.
Thanks!


[Do Not Merge] => chore(proxy): Delete all MP proxy code

The type of this PR is: Chore
This PR solves DIA-833
⚠ Lets wait to merge this for a couple of days to give folks a change to close old tabs
Description
Now that we have CloudFlare edge caching in place, we can remove this v1 cache proxy code!
Follow-up:

[ ] Remove ENABLE_GRAPHQL_PROXY env var
[ ] Remove ENABLE_GRAPHQL_CACHE env var

cc @artsy/diamond-devs

Trying this locally, and it seems like the app always attempts to connect to the cache, even when caching is disabled and no connection string is configured. This presents a problem for retiring the redis cluster previously used for Force's cache.

👋 what's the status of this PR?

Excellent question. There continues to be some requests (1-2k/hr) to the old ``/api/metaphysics` proxying endpoint, but I think it's been long enough that we can comfortably remove it and "break" those clients. @damassi want to rebase and resolve conflicts?

Will do 👍


Git-town error code for unknown command

@charlierudolph @allewun
Implements #357

all comments addressed

Happy to wait with this until #363 is merged

#363 is going to take a while. I need to add a lot of new error checking. We aren't verifying the error that shows when a command hits a conflict. Therefore I'm fine with this as is.

Catching up on all the old PRs. I think #363 is now around the corner, so I'm still waiting with this one.

#363 is in. Removing the blocking label (also shouldn't the label have been blocked, and #363 marked as blocking)

:ship: