Extra brackets when using copilots completion

How to avoid extra brackets when accept suggestion from copilot-cmp? It is not constantly but sometimes quite annoying.
my config:
		-- {
		-- 	"github/copilot.vim"
		-- },
		{ "zbirenbaum/copilot.lua",
			event = "VimEnter",
			config = function()
				vim.defer_fn(function()
					require("copilot").setup()
				end, 100)
			end,
		},

		{ "zbirenbaum/copilot-cmp",
			after = { "copilot.lua" },
			config = function()
				require("copilot_cmp").setup()
			end
		},

Got something like this when accepting suggestions:

This shouldn't occur if cmp is set up properly. Take a look at the snippets in the readme, and make sure something like this one is in your config:
    ["<CR>"] = cmp.mapping.confirm({
      behavior = cmp.ConfirmBehavior.Replace,
      select = false,
    }),

If that still doesn't work, you can try the snippet in the readme related to format.remove_existing, but I find it causes more problems than it fixes if you set up cmp properly and don't recommend it.

I am getting this too, but sometimes it's parens, brackets, quotes, etc. I suspect it might have to do with nvim-autopairs? There are some notes on setup with cmp that I didn't have, but doesn't seem to help.
local lsp = require("lsp-zero")
local cmp = require("cmp")

-- ...

local cmp_mappings = lsp.defaults.cmp_mappings({
  ["<CR>"] = cmp.mapping.confirm({
          behavior = cmp.ConfirmBehavior.Replace,
           select = false,
  }),
})

lsp.setup_nvim_cmp({
  mappings = cmp_mappings,
})

lsp.setup()

-- for cmp + autopairs: https://github.com/windwp/nvim-autopairs#mapping-cr
-- and it needs to come after lsp-zero is configured: https://github.com/VonHeikemen/lsp-zero.nvim/discussions/119
local cmp_autopairs = require('nvim-autopairs.completion.cmp')
cmp.event:on(
  'confirm_done',
  cmp_autopairs.on_confirm_done()
)

So maybe a duplicate of https://github.com/zbirenbaum/copilot-cmp/issues/31?

Since there hasn't been any update for a while and a solution was provided I'm going to close this.

Hello, seems the issue still exists. My configration:
    local cmp = require('cmp')
    local compare = require('cmp.config.compare')
    local lspkind = require('lspkind')
    local luasnip = require 'luasnip'
    require("copilot").setup({
        suggestion = { enabled = false },
        panel = { enabled = false },
    })
    require("copilot_cmp").setup()
...

    cmp.setup({
        completion = {
            completeopt = 'menu,menuone,noinsert',
        },
        window = {
            completion = {
                border = border,
                scrollbar = '║',
            },
            documentation = {
                border = 'rounded'
            }
        },
        snippet = {
            expand = function(args)
                require('luasnip').lsp_expand(args.body)
            end,
        },
        formatting = {
            format = lspkind.cmp_format({
                mode = 'symbol_text',
                maxwidth = 50,
                symbol_map = { Copilot = "" }
            }),
        },
        mapping = {
            ['<CR>'] = cmp.mapping.confirm({
                behavior = cmp.ConfirmBehavior.Replace,
                select = false
            }),
            ['<Down>'] = cmp.mapping(function(fallback)
                if cmp.visible() then
                    cmp.select_next_item()
                else
                    fallback()
                end
            end, { 'i', 's' }),
            ['<Up>'] = cmp.mapping(function(fallback)
                if cmp.visible() then
                    cmp.select_prev_item()
                else
                    fallback()
                end
            end, { 'i', 's' }),
        },
        sources = cmp.config.sources({
            { name = 'nvim_lsp' },
            { name = 'luasnip' },
            { name = 'copilot' },
        }, {
            { name = 'buffer' },
        }),
        sorting = {
            priority_weight = 1.0,
            comparators = {
                require("copilot_cmp.comparators").prioritize,
                compare.offset,
                compare.exact,
                -- compare.scopes,
                compare.score,
                compare.recently_used,
                compare.locality,
                compare.kind,
                compare.sort_text,
                compare.length,
                compare.order,
            },
        }
    })

    local cmp_autopairs = require('nvim-autopairs.completion.cmp')
    cmp.event:on(
        'confirm_done',
        cmp_autopairs.on_confirm_done()
    )

... (lsp configuration)

the when I try to insert suggestions from copilot, like:

I press  key:

and press :

The extra brackets still exists.

maybe solve it like this? https://github.com/jcdickinson/codeium.nvim/pull/55

maybe solve it like this? https://github.com/jcdickinson/codeium.nvim/pull/55

Copilot-cmp already replaces full range unfortunately. Any existing bugs are in spite of that fix.


subscriptions: object or array?

I'm noticing in the choo docs subscriptions is referred to as an array:
  subscriptions: [
    (send, done) => {
      setInterval(() => {
        send('app:print', { payload: 'dog?', myOtherValue: 1000 }, (err) => {
          if (err) return done(err)
        })
      }, 1000)
    }
  ]

https://github.com/yoshuawuyts/choo#subscriptions

But in the barracks docs it's a plain object with named keys:
  subscriptions: {
    emitWoofs: (send, done) => {
      // emit a woof every second
      setInterval(() =>  send('printWoofs', { woof: 'meow?' }, done), 1000)
    }
  }

https://github.com/yoshuawuyts/barracks#subscriptions

I've seen it referred to both ways -- so which should it be?
Bonus question: if subscriptions is an object, do key names have any bearing on other aspects (reducers, effects, actions)?

So it used to be an array, but became an object in v3. This was done for consistency and making sure the names showed up correctly in debug output. PRs to fix this welcome! :sparkles:

wow, that's weird, i'm using an array and it still works 😨

Yep I am using an array as well and thought that was the only way

lol, javascript

think this is resolved - closing!

needs to be fixed in template-basic 😄

It should be an object (:
On Sun, Jan 15, 2017 at 12:09 AM Haroen Viaene<EMAIL_ADDRESS>wrote:

needs to be fixed in template-basic 😄
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/yoshuawuyts/choo/issues/217#issuecomment-272660216,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACWler8wGyvT1iljwWu7PBCK2imR7P4Kks5rSVWrgaJpZM4Jfs7X
.


Improved testing using a new glob macro

This PR sets up a new glob attribute macro, intended to be used in tests.  This helps split each of the larger snapshot tests up into smaller functions, allowing for parallelism between the snapshotted files when running cargo nextest run or cargo test.
There wasn't an existing crate that I could use that had glob at macro level, and to introduce a new proc macro, we need to set up a separate crate; this is set up as a crate within the same workspace.  In the future, if I find this useful for other use cases too, I might split it off as a separate crate entirely, but for now, it can sit in this workspace.
It is easiest to see the impact of this change by looking at the output of cargo nextest run (or ~equivalently, cargo test).  Before this PR, the entirety of verus-snapshot/**/*.rs ran within a single test function, but after this, each file gets its own function.

One minor concern is that I don't know how the release process will be affected. I don't actually expect the release process to be affected, since this is added only as a dev-dependency, but if it is impacted, then I might need to spin off the crate sooner instead.

The release, after introducing this as a dev-dependency worked perfectly fine. I was mostly concerned about the push to crates.io; the pre-builts had no reason to be affected, but I didn't know if the crates.io release would work out of the box---it did! https://crates.io/crates/verusfmt/0.4.2


Sizing of display to match monitor size

Get rid of the scrollbar to fit the monitor's size completely.

Just pushed the changes, and they're also live on the demo page. It should look good for all but the tiniest monitor sizes now, let me know if it's good.

On the landing page there is going to be more information about the project and the app below the title component, so there's no need to fix the scrollbar.

The scrollbar now appears duplicated on my display; one scrollbar is inactivated, while the other is scrollable.
Monitor resolution: 1366 x 768, Windows 10

Ok, just added a max image width so it shouldn't overflow anymore. I don't have a Windows machine to test on, but on MacOS Brave (Chromium) using the device viewport emulator at 1366x768 there is no scrollbar.

I've gotten the duplicate scrollbar issue to resolve, but the title screen is still improperly sized on my end. However, I think it's enough of a non-issue that I would consider this resolved.


Updated for NYTimes best sellers list

NYTimes best sellers list API updated and sent for approval

Coverage remained the same at 98.913% when pulling c3b979abd8d87a990d65fd512c126d936668c127 on muthukumarsm:patch-4 into<PHONE_NUMBER>c1030d640366a505cbf51d50fb94ae on tableau:master.


Leverage alpine build and runtime image for condensed image sizes

➡ The main goal is to stop exceeding the free tier artifactory license

to get the cache from conan cd $(conan config get storage.path)

to get the cache from conan cd $(conan config get storage.path)

CCI does not support musl...
https://github.com/conan-io/conan/issues/3972

CCI does not support musl...
https://github.com/conan-io/conan/issues/3972


Azure_Pojects_Repo

az-400 projects
AB#3877

If this is the beginning of any issue, provide more info.
Thanks,


Broken: Driver does not work with the latest metabase release (0.46.3)

Describe the issue
The driver fails to sync the database after upgrading the metabase to 0.46.3
Steps to reproduce

Upgrade metabase to 0.46.3
Add Clickhouse database

Expected behaviour
Syncing should be successful
Error log
java.lang.IllegalStateException: Attempting to call unbound fn: #'metabase.util/snake-key
Configuration
Environment

metabase-clickhouse-driver version: 1.1.4
Metabase version: 0.46.3

False alarm. The issue is with the master branch. So may have to fix it later when it gets released.

Testing the latest driver (1.1.7) with 1.47.0-RC1 returns this error and the DB does not sync correctly

@paoliniluis, IIUC, for 0.47, we need to merge https://github.com/ClickHouse/metabase-clickhouse-driver/pull/160 first.


Speech command eval

Top-1 error evaluation on test ground truth labels and random frame-wise predictions.

OOf didn't mean to accept this :\ not sure how to undo that

@turian -- ya this needs to be updated to handle scene predictions

Implemented in #143


[TRACKER] 4.x OpenGL Compatibility renderer issues

This issue tracks issues specific to the OpenGL renderer in Godot 4. Godot 3 issues are not tracked here.
See also https://github.com/godotengine/godot/issues/55871, which is specific to Vulkan Mobile-only issues.
### Bugs
- [ ] https://github.com/godotengine/godot/issues/58927
- [ ] https://github.com/godotengine/godot/issues/65702
- [x] https://github.com/godotengine/godot/issues/65977
- [ ] https://github.com/godotengine/godot/issues/66456
- [x] https://github.com/godotengine/godot/issues/66459
- [x] https://github.com/godotengine/godot/issues/66462
- [x] https://github.com/godotengine/godot/issues/66463
- [x] https://github.com/godotengine/godot/issues/66464
- [ ] https://github.com/godotengine/godot/issues/68464
- [x] https://github.com/godotengine/godot/issues/71799
- [x] https://github.com/godotengine/godot/issues/72488
- [ ] https://github.com/godotengine/godot/issues/72602
- [ ] https://github.com/godotengine/godot/issues/72873
- [x] https://github.com/godotengine/godot/issues/72882
- [x] https://github.com/godotengine/godot/issues/73826
- [ ] https://github.com/godotengine/godot/issues/74111
- [ ] https://github.com/godotengine/godot/issues/76334
- [ ] https://github.com/godotengine/godot/issues/76802
- [ ] https://github.com/godotengine/godot/issues/79567
- [ ] https://github.com/godotengine/godot/issues/79581
- [ ] https://github.com/godotengine/godot/issues/82485
- [ ] https://github.com/godotengine/godot/issues/82503
- [ ] https://github.com/godotengine/godot/issues/82505
- [ ] https://github.com/godotengine/godot/issues/83292

### Missing features compared to `3.x` GLES3
- [ ] https://github.com/godotengine/godot/issues/66455
- [ ] https://github.com/godotengine/godot/issues/66457
- [ ] https://github.com/godotengine/godot/issues/66596
- [ ] https://github.com/godotengine/godot/issues/69462
- [ ] https://github.com/godotengine/godot/issues/69463
- [ ] https://github.com/godotengine/godot/issues/72823
- [ ] https://github.com/godotengine/godot/issues/71029

### Enhancements
- [ ] https://github.com/godotengine/godot/issues/82504

### Pull requests
- [ ] https://github.com/godotengine/godot/pull/66465

Missing issue #71799.

Says Projectors, Reflection Probes and Lightmaps are not supported but planned in warnings but not here

also https://github.com/godotengine/godot/issues/83313

How about adding the standard OpenGLES integer texture formats, since they are supported by hardware, the RenderingDevice, and shaders? Since we don't have buffers, textures are the only options, and floats are cumbersome and wasteful to work with when you want bit-packed integer based data blocks or control maps without texture filtering or float conversion.

@Calinou could you please include reflection probes in missing features. Thanks in advance! :)
https://github.com/godotengine/godot/issues/86318

@Lasuch69 I've fixed it (not sure why tags are not rendered).

New issue to add - Compatibility Positional Shadows assigning wrong Shadow maps - https://github.com/godotengine/godot/issues/92486


Enable checkpointing at the beginning of an epoch

Related to the stack of PR of #879 but this feature is simpler than arbitrary checkpointing.

Fixed by #1124


Added descriptive callback hell examples

I have added descriptive callback hell examples in the Callback Hell file.
@arkalsekar Please accept my pull request and merge into your repository under "hacktoberfest" and "hacktoberfest-accepted" labels.

@arkalsekar Please accept my pull request and merge into your repository under "hacktoberfest" and "hacktoberfest-accepted" labels.

@arkalsekar Please accept my pull request and merge into your repository under "hacktoberfest" and "hacktoberfest-accepted" labels.


Fixed the log prefix for connectionEventHandler function.

@aklira: It seems that the unit test ConnectionHandlerTest.TLSConnectionWrongServerCACertificate is resulting into a crash, which prevents the CI from completing.
As the latest change brought to the develop branch is only a log update that is unrelated to this test, could you please investigate why this is currently failing on develop/master?


Using a workspace over a private endpoint

[Enter feedback here]
I am looking for how to use a private endpoint in the development.
I followed all the instruction here https://docs.microsoft.com/en-us/azure/machine-learning/how-to-network-security-overview and links inside.
Now workspace with a private endpoint (vnet and subnets) is deployed and storage, container registry are also connected to private endpoints.
But my pipeline doesnot work with this configuration. The pipeline works  in the workspace that does not have vnet, private endpoints configured.
The setup is that Azure DevOps repo is used to manage codes and an Azure pipeline is created to check workspace and resource existence (using Service Connection), and run training steps.
It seems authentication with SP worked, (ServicePrincipalAuthentication(....); Workspace.get(....., auth=sp)).
But Experiment(....) step failed.
The error I was having is
`Operation returned an invalid status code 'Forbidden'. The possible reason could be:

You are not authorized to access this resource, or directory listing denied.
you may not login your azure service, or use other subscription, you can check your
default account by running azure cli commend:
'az account list -o table'.
You have multiple objects/login session opened, please close all session and try again.
Most likely it was related the first case, ie.,You are not authorized to access this resource, or directory listing denied.`

Could you provide instructions/documents of how to integrate Azure DevOps Pipeline with Azure Machine Learning services (workspace, storage, container registry, etc) that are deployed in a VNET?
Maybe also include instructions of how to use each private link to for example storage and training/inferring computes.

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

ID: 61234740-d92b-cda0-a897-e3c588316726
Version Independent ID: a8302644-fe87-51bc-be07-f33f62dab542
Content: Configure a private endpoint - Azure Machine Learning
Content Source: articles/machine-learning/how-to-configure-private-link.md
Service: machine-learning
Sub-service: core
GitHub Login: @aashishb
Microsoft Alias: aashishb

@chengyu-liu-cs
Thanks for the feedback! We are currently investigating and will update you shortly.

@chengyu-liu-cs thanks for reaching out. Since Azure DevOps hosted agents won't be running in your VNET, azureml will most likely reject requests made from the hosted pools agents. It's possible to allow requests from the hosted pools, but that will negate most of the security benefits.
@aashishb do you have any input or workaround?

Thanks @GiftA-MSFT
At this point, our customer requires a secure environment and all accesses should be done via private links rather than service endpoints.
We really need a solution/workaround for this ?

@chengyu-liu-cs I have shared this feedback with our product team and I'm not aware of any other workaround for integrating Azure DevOps with am via VNET at this time. Please review above response. Sorry for the inconvenience. Thanks.

Azure DevOps does not support Private Link. So, one way is creating a self-hosted agent which has the access to workspace VNet. You can create it on-premises, or on Azure. Please check this  doc.

There is spelling mistake in the Warning box.


Sourceforge Infinite Loop on Download Page.

Domain
https://sourceforge.net
Link
https://sourceforge.net/projects/xampp/files/XAMPP Windows/7.2.22/xampp-portable-windows-x64-7.2.22-0-VC15.zip/download
Version
0.0.0
What browsers are you seeing the problem on?
Firefox
What OS are you seeing the problem on?
Windows
Anything else?
the extension redirects (probably to the same page ? idk) resulting in a infinite loop , and the download doesn't start . The page just keeps refreshing several times every second ... until the server gives error "429 Too Many Requests" ...
the page works as intended if i disable the extension.

Seems to be fixed, at least for me i don't get any infinite loops.


Fix bug with Status command when running cmd on files with just Merge status

Usually, a merge from a different TFS branch will result in a "merge, edit" status, so the regex would catch it, but occasionally if one file in a set had an equivalent change on the branch you're merging in to, it results in a "merge" status only. Calling TFS Status is part of our build process, and we would encounter the following error in the above circumstance:
C:\[project path]\node_modules\tfs\lib\tfs\status.js:61
3>              fileName: lineStatus[1].trim(),
3>                                  ^
3>
3>  TypeError: Cannot read property '1' of null
3>      at newCallback (C:\[project path]\node_modules\tfs\lib\tfs\status.js:61:33)
3>      at ChildProcess.<anonymous> (C:\[project path]\node_modules\tfs\lib\utils\tf.js:59:7)
3>      at emitTwo (events.js:106:13)
3>      at ChildProcess.emit (events.js:191:7)
3>      at maybeClose (internal/child_process.js:852:16)
3>      at Socket.<anonymous> (internal/child_process.js:323:11)
3>      at emitOne (events.js:96:13)
3>      at Socket.emit (events.js:188:7)
3>      at Pipe._handle.close [as _onclose] (net.js:492:12)

This change fixes our error.

Thanks a lot :)


Rotate Apple Certificates

Same as last year (https://github.com/dotnet/dnceng/issues/4386), it's time for us to rotate the certificate associated with our Apple Developer account. Details on what needs to be done can be found at https://dev.azure.com/dnceng/internal/_wiki/wikis/DNCEng Services Wiki/862/Apple-(iOS-tvOS)-signing-certificates.
As each machine needs to have the new certificate applied to it we would like this work done during Prague business hours - when usage of these machines is low.
We have until 12/02 to complete this work.

Discussed with Ilya to close this issue. We'll get notified and open a new one when it's time


Fix pronouns is empty when we access by deep link after signing in

Details

We will display loading page until the data is loaded and display the correct pronouns of the user
Fixed Issues

$ https://github.com/Expensify/App/issues/27675
PROPOSAL: https://github.com/Expensify/App/issues/27675#issuecomment-1723458229
Tests

Go to Settings > Profile > Pronouns
Copy the URL
Sign out and sign in again with this URL
Verify that after the loading is complete the page appears with the correct pronouns

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

Offline tests

None
QA Steps

Go to Settings > Profile > Pronouns
Copy the URL
Sign out and sign in again with this URL
Verify that after the loading is complete the page appears with the correct pronouns

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

PR Author Checklist

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Screenshots/Videos

Web
https://github.com/Expensify/App/assets/129500732/bc5010c5-bf4e-43af-a3da-2f69b0c86c49

Mobile Web - Chrome
https://github.com/Expensify/App/assets/129500732/f0377ad2-da94-4d2a-8a35-3b404585edcd

Mobile Web - Safari
https://github.com/Expensify/App/assets/129500732/68dddc95-e008-4033-9297-79a0eec975c7

Desktop
https://github.com/Expensify/App/assets/129500732/e44ff847-4091-4017-9595-e6edbbf0ea60

iOS
https://github.com/Expensify/App/assets/129500732/263fd205-cf6b-4ed7-a966-326469b8ffa2

Android
https://github.com/Expensify/App/assets/129500732/6d94b458-f7c3-446a-975f-5bac273e5db9

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

🚀 Deployed to staging by https://github.com/amyevans in version: 1.3.78-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/Beamanator in version: 1.3.78-4 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to staging by https://github.com/amyevans in version: 1.3.79-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/jasperhuangg in version: 1.3.79-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
failure ❌

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/jasperhuangg in version: 1.3.79-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
cancelled 🔪

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/jasperhuangg in version: 1.3.79-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅


Format files to conform to PEP8

I also converted the methods in Helpers to classmethods

@retornam thanks for the contribution


Broken artifact generation

Build is broken:
https://github.com/berbyte/share/actions/runs/11606074019/job/32317523367

@dominis I see there are two newer releases since this job has been failing on the softprops dependency. Please let's spend some time on this issue from a dev process perspective, not the technical implementation issue itself -- I feel this could be a good example to start analysing dev processes.


Azure DevOps is removing older build images

The Windows Server Core 1803 image and Windows Server2012 R2 image are being removed on March 23, 2020. This repository is using both, and they must be removed or transition to another image as appropriate.
https://github.com/dsccommunity/xWebAdministration/blob/59e8dcc945b16c59fba3c408936599b42d8f9dcf/azure-pipelines.yml#L78
https://github.com/dsccommunity/xWebAdministration/blob/59e8dcc945b16c59fba3c408936599b42d8f9dcf/azure-pipelines.yml#L119

Partially addressed by #567.
The associated PR #568 removed the second line, but in what appears to be some kind of mistake, left one of the steps running the win1803 image. A new PR against the same issue will be up shortly to address that oversight.


Check when migration is empty

For now is still possible to run empty migrations, with no content on functions up and down and the migration is saved on SCHEMA_MIGRATION.
Runner (or Migrator) should avoid running empty migrations and raise an error
cc @Caciquez

@raigons @Caciquez as far as I know the default behaviour when we run migrations is not raise an error and it does save into schema_migrations even empty 🤔 or am I missing something?

@raigons @Caciquez as far as I know the default behaviour when we run migrations is not raise an error and it does save into schema_migrations even empty 🤔 or am I missing something?

Nice point @norbajunior i guess it's a default behaviour to run migrations even if they are empty.
I will be closing this issue then


Register map-machine at pypi

Is there any reason why you did not register map-machine at pypi yet? It is just very convenient to just type pip install map-machine

You're right.  I should do this.

Is there any reason why you did not register map-machine at pypi yet?

No, just trying to make it more stable before publishing.


Set font size for buttons to a reasonable size

This only applies to users with javascript disabled as the styling is otherwise overwritten by bootstrap.
200px size was introduced in 76ca40b044b7660f17a77ff82f7fcf14b51878a8 which mentions #2635 but the issue appears to be no longer available so I don't know what the point of the incredibly large size was.
For reference, this is how the demo looks with JS disabled:

Thanks @tribut.
There's a separate file where I fixed this issue.


Support extending a mixin application expression directly

@azakus has talked to some folks about this offline but I wanted to make an issue to link to / track.
Currently to support ES6 class mixin, one must do something like:

// declaration

/**
* @interface
*/
function TimedInterface(){}
/** @type {number} */
TimedInterface.prototype.time;

/**
 * @template T
 * @param {T} mixin ES6 class expression mixin to wrap
 */
function Timed(superclass) {
  return class extends superclass {
    constructor {
      /** @type {number} */
      this.time = 0;
    }
  }
};

// use

/**
 * @implements {TimedInterface}
 * @extends {Foo}
 */
const TimedFoo = Timed(Foo);

class Bar extends TimedFoo {};

There are two suboptimal parts to this. The first is that we need to manually duplicate the interface of the Timed class in TimedInterface. The second is that we can't write class Bar extends Timed(Foo) {} because extending an expression isn't supported.

There's already an issue for extending an expression, and that one is a pretty high priority fix for me.
The other affects the type system and is more involved.

There's https://github.com/google/closure-compiler/issues/2106 but if I'm reading that right, it was closed once closure compiler allowed unknown types in the @extends annotation, rather than in allowing expressions in the ES6 extends clause. Maybe worth reopening to track that part?

I may have been thinking of #2182. It's possible that one is fixed though.
I've definitely looked into this. The expression decomposer won't handle that case. Haven't had a chance to figure out why.

Is there an update or a timeline when this gets supported?
Currently, dealing with mixins in Polymer-based applications is a little awkward.

@shicks We talked about this last week. Any thoughts on how this might work?
I see two major cases:

The source of the mixin function is visible to the compiler and type inference can assist.
The source of the mixin function is hidden to the compiler (like an extern). We probably have to fall back to the manual interface for this case?


Using flask-user as authentication server for RESTful service?

Is it recommended to use flask-user as RESTful authentication/authorization API?
What kind of problem i would have if i'm using flask-user as RESTful authentication/authorization server?

Flask-User has not been designed to be used as a RESTful authentication/authorization server.
If you do decide to try using Flask-User, please let us know about your experience. Thanks!

not sure if there is any change that happened with this? .. i am planning to try to use flask-user as restful service and to use tokens.. changing endpoints as needed. If anyone has any experience with this then it be great if i could get feedback.

No change. I don't understand what you're looking for. Can you please elaborate? Are you looking to_use a service like Auth0 or StormPath? Or are you looking to provide such a service? I'm just uncertain on what role Flask-User is to play. Provide the authentication service? Provide the UI?
Also: have you looked at Flask-Security? They support "JSON/AJAX". Is that what you're looking for?
See https://pythonhosted.org/Flask-Security/features.html#json-ajax-support

I think he wants to do authentication via, for example, a token in the HTTP header, to protect a REST API.

Note that supporting oauth would get this, and conversely, adding token support would be work toward supporting oauth.