wait for job result before emitting complete.

Fixes #8
This would be a breaking change
Currently, if you call table.createWriteStream(), the stream will emit "complete" with a Job object. You can then use that Job object to assign event handlers, as usual with an LRO. Judging from #8, I'm not sure this pattern is clear to the users. And aside from that, I'm not sure what we're doing is ideal, either.
Ideally, we would not emit "complete" until the Job finished, instead of making the user do it manually. This PR shows how easy it would be for us to implement.
I'm leaving this open for discussion on how we should handle this. Please share your thoughts!

I'm not sure what the official rules are for making breaking changes are now that we're 1.x.x. But we're definitely going to want a lower level equivalent that returns the job. If making a breaking change is too cumbersome, you could just create a new method with a different name that abstracts the job away.

We could add an option, e.g. waitForJobCompletion, which would be false by default.

We could add an option, e.g. waitForJobCompletion, which would be false by default.

The BigQuery team has previously requested that we provide both a high and low level method for all methods that create a job. Aside from that using an option to change the signature of a callback has generally been frowned upon in the past. Not to mention this behavior might be found confusing since no other job related methods follow this pattern.

API team feedback is welcome. We wouldn't change the signature-- we can still emit "complete" with the job. IMO, we'd be making the behavior of the method more logical.

Not to mention this behavior might be found confusing since no other job related methods follow this pattern.

Do we have stream methods that follow that pattern?

We wouldn't change the signature-- we can still emit "complete" with the job.

But the Job itself would be in a different state, hence why this is a breaking change. IMO that is a signature change.
I'll go with whatever the group decides, but my vote would be for a new higher level method instead of using an option.

I think there's room for multiple interpretations of breaking-- to me, the contestants for considering this a breaking change are:

Waiting for a job to complete takes longer than before (code doesn't change, though)
We could emit an error where we didn't before (code doesn't change, but where there wasn't an error before, there now would be)

The candidates for this to be a bug fix to me are:

As discovered in the issue, it's not clear to users they have to assign further event handlers to the Job object (frankly, I didn't know, either)
Users could be getting the "complete" event and proceeding as if all operations succeeded, when in fact, there were errors

If we decide a breaking change, that's fine. When considering how to solve, I'll just mention that createWriteStream is a bit different than a regular method named after an upstream one, in that this uses the de facto writable-stream language with "createWriteStream" (e.g. fs.createWriteStream). I would prefer to solve with an option, so we can retain the logical name.

@stephenplusplus what's the status on this one?

I'm going to be honest - I'm not deep enough with this module to make an informed decision on what we should do :) We have a semver major bump coming up very soon, so if we're going to make a breaking change, now's the time.
I would trust the opinion @tswast here.

I've definitely found it confusing that complete is emitted before the job actually finishes. I'm in favor of this change.

The BigQuery team has previously requested that we provide both a high and low level method for all methods that create a job. Aside from that using an option to change the signature of a callback has generally been frowned upon in the past. Not to mention this behavior might be found confusing since no other job related methods follow this pattern.

We actually somewhat ignored this advice in the Python client because it made a whole lot more sense to make a flexible method for creating a job (well, technically we have a method for each job type) and provide multiple ways to wait for it to finish (blocking + asynchronously). I think the same logic applies to Node.js: we should use the the built-in ways to wait for things.
I'm happy so long as the following are satisfied:

The initial function call to create the job is non-blocking,
You can pass in a full job configuration to customize the job.
The initial function call returns the initial job state (so that the job ID can be serialized / shared with the user before waiting),
It's easy to wait for the job to complete.

👍
I made the change. Here's the old and new:
Before
table.createWriteStream(...)
  .on('complete', job => {
    job
      .on('error', err => {
        // Job failed.
      })
      .on('complete', () => {
        // Job completed successfully.
      });
  });

After
table.createWriteStream(...)
  .on('error', err => {
    // Job failed.
  })
  .on('job', job => {
    // `job` is a Job object.
  })
  .on('finish', () => {
    // Job completed successfully.
  });

And, complete still works to combine those. I added the "finish" event, because that's the natural writable stream closing event.
table.createWriteStream(...)
  .on('error', err => {
    // Job failed.
  })
  .on('complete', job => {
    // `job` is a Job object.
    // Job completed successfully.
  });


Update guidance for Portable PDB in 4.7.1

@rpetrusha @vivmishra @tmat - PTAL

Thanks to you both!
I've updated the PR with most of the feedback but I did have an outstanding question for Ron on "must". Ron if my explanation above makes sense I'm happy to have you apply whatever adjustment seems appropriate.
On consultation with Tomas I removed the workaround for using the converter and we'll put it back once he has documentation in better shape.

"Must" is out of there : )

I don't have permission to merge though.


for containers that are running, stream their logs to stdOut

a nice to have but not a must is the ability to listen to signals(ctrl+C) and then maybe stop all running and then exit cleanly

closes; https://github.com/komuW/meli/pull/32


refac: actor repository to use EF

Description
Refactor actor creating to happen within the same transactional scope as handling the integration event for when a new actor is activated.
Tasks:

[ ] Refac ActorRepository to use EF for writes operations

Next PRs:

Rename our integration event subscription from sbtsub-edi-balance-fixing-completed
Ensure we correctly use actor

References
https://app.zenhub.com/workspaces/mosaic-60a6105157304f00119be86e/issues/gh/energinet-datahub/team-phoenix/86

Codecov Report

Merging #583 (f936521) into main (21978a1) will decrease coverage by 67.18%.
Report is 251 commits behind head on main.
The diff coverage is 20.67%.

:exclamation: Current head f936521 differs from pull request most recent head 4b5db2f. Consider uploading reports for the commit 4b5db2f to get more accurate results

@@             Coverage Diff             @@
##             main     #583       +/-   ##
===========================================
- Coverage   83.07%   15.90%   -67.18%
===========================================
  Files         456      290      -166
  Lines       10418     5250     -5168
===========================================
- Hits         8655      835     -7820
- Misses       1438     4403     +2965
+ Partials      325       12      -313

Files
Coverage Δ

...ivedMessages/ArchivedMessageGetDocumentListener.cs
0.00% <ø> (ø)

source/Api/Common/HttpHeadersExtensions.cs
0.00% <ø> (ø)

...iddleware/Authentication/ActorForAuthentication.cs
0.00% <ø> (ø)

...ntication/Bearer/BearerAuthenticationMiddleware.cs
0.00% <ø> (ø)

...MarketActors/MarketActorAuthenticatorMiddleware.cs
0.00% <ø> (ø)

...ation/Middleware/Correlation/CorrelationContext.cs
66.66% <ø> (ø)

.../Middleware/Correlation/CorrelationIdMiddleware.cs
0.00% <ø> (ø)

...iguration/Middleware/Correlation/UserProperties.cs
0.00% <ø> (ø)

...figuration/Middleware/FunctionContextExtensions.cs
0.00% <ø> (ø)

...rce/Api/Configuration/ServiceBusMessageMetadata.cs
0.00% <ø> (ø)

... and 69 more

... and 435 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Add alert message about ios fix, fix qr reader skeleton size

 2.0 FE Bug: Multibox scan tab on iPhone forwards to single box details (behavior of single box scan)

 BUG: No iPhone camera access in QR scanner even after giving permissions

code and functional review passed

@HaGuesto @fhenrich33 one small edit - can you make the alert closeable?

@HaGuesto @fhenrich33 one small edit - can you make the alert closeable?

Will do


Denial of Service Bug with Malformed Names

Steps to Reproduce

Go to https://bsky.app/profile/partofthemath.bsky.social, you will see an internal server error
This is due to an extended name being entered for the user (see https://docs.google.com/document/d/1kbtSrHQErCEii88OnoWVDu_REQ8V2Hy0u9ow74c4HdM/edit?tab=t.0)
When this user comments on any other users post, that post becomes unavailable see https://bsky.app/profile/jessesingal.com/post/3ld3heymkfc2m

Attachments
No response
What platform(s) does this occur on?
iOS, Android, Web (Desktop), Web (Mobile)
Device Info
Verified in mobile and desktop browser, IOS and Android
What version of the app are you using?
Build version: 1.95.0; Bundle info: da56ef7 (prod); Bundle date: 24120823; Platform: web; Platform version: undefined
Additional Information
No response

I think this would be easily solved by limiting the number of characters a user name can have


Add poetry documentation

Summary

Use Cases

Checklist

[x] I have viewed, signed, and submitted the Contributor License Agreement.
[ ] I have linked issue(s) that this PR should close using keywords or the Github UI (See docs)
[ ] I have added an integration test, if necessary.
[x] I have reviewed the styleguide for guidance on my code quality.
[x] I'm happy with the commit history on this PR (I have rebased/squashed as needed).

@paketo-buildpacks/content-maintainers I can't assign you directly so please take a look at this PR!
The test failures seem to be pre-existing and independent of my changes.


Feat: provide machine readable deployments file

Providing a json file may be useful, as I am using this for an EIP
Perhaps using the chains canonical ChainId as an identifier would be more appropriate (as then you could use get_chainId from the contract to test against the address mapped to the chain_id prefix
e.g.:
[
  {
    "Network": "Address",
    "Mainnet": "0xcA11bde05977b3631167028862bE2a173976CA11",
    "Kovan": "0xcA11bde05977b3631167028862bE2a173976CA11",
    "Rinkeby": "0xcA11bde05977b3631167028862bE2a173976CA11",
    "Görli": "0xcA11bde05977b3631167028862bE2a173976CA11",
    "Ropsten": "0xcA11bde05977b3631167028862bE2a173976CA11",
    "Sepolia": "0xcA11bde05977b3631167028862bE2a173976CA11",
    "Optimism": "0xcA11bde05977b3631167028862bE2a173976CA11",
    "Optimism Kovan": "0xcA11bde05977b3631167028862bE2a173976CA11",
    "Arbitrum": "0xcA11bde05977b3631167028862bE2a173976CA11",
    "Arbitrum Rinkeby": "0xcA11bde05977b3631167028862bE2a173976CA11",
    "Polygon": "0xcA11bde05977b3631167028862bE2a173976CA11",
    "Mumbai": "0xcA11bde05977b3631167028862bE2a173976CA11",
    "Gnosis Chain (xDai)": "0xcA11bde05977b3631167028862bE2a173976CA11",
    "Avalanche": "0xcA11bde05977b3631167028862bE2a173976CA11",
    "Avalanche Fuji": "0xcA11bde05977b3631167028862bE2a173976CA11",
    "Fantom Testnet": "0xcA11bde05977b3631167028862bE2a173976CA11",
    "Fantom Opera": "0xcA11bde05977b3631167028862bE2a173976CA11",
    "BNB Smart Chain": "0xcA11bde05977b3631167028862bE2a173976CA11",
    "BNB Smart Chain Testnet": "0xcA11bde05977b3631167028862bE2a173976CA11",
    "Moonbeam": "0xcA11bde05977b3631167028862bE2a173976CA11",
    "Moonriver": "0xcA11bde05977b3631167028862bE2a173976CA11",
    "Moonbase Alpha Testnet": "0xcA11bde05977b3631167028862bE2a173976CA11",
    "Harmony": "0xcA11bde05977b3631167028862bE2a173976CA11",
    "Cronos": "0xcA11bde05977b3631167028862bE2a173976CA11",
    "Fuse": "0xcA11bde05977b3631167028862bE2a173976CA11",
    "Songbird Canary Network": "0xcA11bde05977b3631167028862bE2a173976CA11",
    "Coston Testnet": "0xcA11bde05977b3631167028862bE2a173976CA11",
    "Boba": "0xcA11bde05977b3631167028862bE2a173976CA11",
    "Aurora": "0xcA11bde05977b3631167028862bE2a173976CA11",
    "Astar": "0xcA11bde05977b3631167028862bE2a173976CA11",
    "OKC": "0xcA11bde05977b3631167028862bE2a173976CA11",
    "Heco Chain": "0xcA11bde05977b3631167028862bE2a173976CA11",
    "Metis": "0xcA11bde05977b3631167028862bE2a173976CA11",
    "RSK": "0xcA11bde05977b3631167028862bE2a173976CA11",
    "RSK Testnet": "0xcA11bde05977b3631167028862bE2a173976CA11",
    "Evmos": "0xcA11bde05977b3631167028862bE2a173976CA11",
    "Evmos Testnet": "0xcA11bde05977b3631167028862bE2a173976CA11",
    "Thundercore": "0xcA11bde05977b3631167028862bE2a173976CA11",
    "Thundercore Testnet": "0xcA11bde05977b3631167028862bE2a173976CA11",
    "Oasis": "0xcA11bde05977b3631167028862bE2a173976CA11",
    "Celo": "0xcA11bde05977b3631167028862bE2a173976CA11"
  }
]

Mainly wondering do we need a JSON file like that if the address is constant? Seems like maybe just an array of deployed chain IDs would be sufficient? Something like:
{
  "address": "0xcA11bde05977b3631167028862bE2a173976CA11",
  "chainIds": [1, 4, 5]
}

Would be helpful if you can share more about the use case/EIP!

Mainly wondering do we need a JSON file like that if the address is constant? Seems like maybe just an array of deployed chain IDs would be sufficient? Something like:

{

  "address": "0xcA11bde05977b3631167028862bE2a173976CA11",

  "chainIds": [1, 4, 5]

}

Would be helpful if you can share more about the use case/EIP!

I plan on using this for both verifying a new rpc provider is reporting correct data, and potentially as an option for verification of rpc provider response with the new RPC provider list EIP.
Also this overlaps alot with the issue #17 in that making this easier to consume is also a distribution problem.
Easily overlooked on my part, ofc that is a much better format :)

The new deployments.json file in the root of the repo should serve this purpose. It also includes unofficial deployments on chains that don't support deployment to the same address


Add func cyclomatic complexity checker

Coverage increased (+0.6%) to 59.599% when pulling e08a5f731fc185f05076976cb8f0df15620843c5 on func-cyclo-checker into c9e4c6243648fd56c383e85f3af25d907f4298cb on master.


Refactoring required by page Table extract

@psiroky this is related with errai test?

@ederign yes. I created https://github.com/errai/errai/pull/164 which fixes this. Just need someone to merge it :)

@ederign  Thanks for this - at least local builds work now.
+1

master: 0dec21aa5bc986e1381ee75c897ffc8be8e8659a


Fez [PCSE00404]

Game summary

Game name: Fez
Game serial: PCSE00404

Vita3K summary

Version: v466
Build number: 03ae8dc
Commit hash: https://github.com/vita3k/vita3k/commit/03ae8dc

Test environment summary

Tested by: waterflame
OS: Windows 7
CPU: Intel i7-2600
GPU: AMD Radeon HD 6700 Series
RAM: 8 GB

Issues

Nothing new, some umimp, a not found NID at the start, stops at loading data.arc
Screenshots

Log
vita3k.log
Recommended labels

softlock

Vita3K summary

Version: v0.1
Build number: 571-70599d3
Commit hash:  https://github.com/Vita3K/Vita3K/commit/70599d3

Nothing new, still stops at the arc file, but a fresher log would be nice with the log format changes and the sort.
Fez.log

Vita3K summary

Version: v0.1
Build number: 696
Commit hash: https://github.com/vita3k/vita3k/commit/b915fa1

Issue
Crash on load, DEADBEEF.
Log
Fez.log

Vita3K summary

Version: v0.1
Build number: 805
Commit hash: https://github.com/vita3k/vita3k/commit/4279f967

Issue
Back to stating data.arc and soft-locking.
Log
Fez.log

Vita3K summary

Version: v0.1
Build number: 984
Commit hash: fb0798e of pull/456 (I don't want to append every issue to the PR)

FEZ - [PCSE00404].log
Issue
statting file

Vita3K summary

Version: v0.1
Build number: 1315
Commit hash: https://github.com/vita3k/vita3k/commit/5b070aac

- Wooo, past that arc stat lock
- fails opening game game00.dat to ame13.dat IO SCE_ERROR_ERRNO_ENOENT
- Ton of init's called, kernelWaitEventFlag return wait timeout(0x80028005), ngs fun, sceKernelCallAbortHandler called... abort.

Vita3K v0.1.5 2603-8daf6c6f
stuck on the placeholder
vita3k.log

Vita3K summary

Version: v0.1.6
Build number: 2841
Commit hash: https://github.com/vita3k/vita3k/commit/0c75bbb5
CPU backend: Dynarmic

Test environment summary

Tested by: othmanead
OS: Windows 11
CPU: Intel i5-10300H
GPU: RTX 3060 mobile
RAM: 16 GB

Issue:
Game plays with no issues
Screenshots:

Log
vita3k.log
Recommended labels

Ingame+
Graphic bug

as of https://github.com/Vita3K/Vita3K/commit/1b0e65e66d17202b1ae9f155cfecea802dd58778, the game is the same, but if i climb up to the mailbox, it suddenly crashes from the NGS.
Screenshot

Log
vita3k.log
Recommended labels
ingame -
graphics bug
ngs crash


Multiple agents with 'runasautologon' feature

Have you tried trouble shooting?
Trouble shooting doc
Agent Version and Platform
Version of your agent? 2.129.0
OS of the machine running the agent? Windows Server 2012 R2
VSTS Type and Version
On-Prem TFS 2017 Update 3 RTM (15.117.27024.0)
What's not working?
On a single machine with a few agents installed as 'runAsAutoLogon' only one agent is brought online after machine restart. To enable remaining agents you need to manually logon to machine to create a windows session (RDP works too).

@dpksinghal for taking look at this issue related to autologon issue

@Virenta Multiple agents can be configured with multiple users. But autologon being a machine wide setting, can be applied to a single user only. This is the reason warning is shown while configuring multiple agents.
So, the behavior of bringing online only one agent is as designed.

@Virenta Sorry, but its not possible to enable autologon feature for multiple agents even if using different users/accounts.

@Virenta i am going to close this issue, let us know if you need more help.


Fix issues with web rendering and debugger

Same example:

AU tests fails on master as the examples was moved

They work(ed) locally

This PR contains a lot of changes which further brings the web client experience forwards and makes it more reliable, consistent and correct.
Some of the things worthwhile to mention:

For a full list of all the things I've made sure that the commit messages are relevant and some for larger/trickier bugs contain a longer description. Please have a look at the full log for a complete list.

The renderer contains many adjacent arrays which are both one dimensional, and multidimensional. This ensures that there arrays have their relationship being consistent and at all times well defined, without causing small buffer overwrites into another sub buffer etc.
Built out CPU side indirect draw command generation to exclude the culling and get a consistent CPU debugging of the draw commands, as well as removing the unpredictable order of the commands from run to run depending on the compute shaders. For future debugging or older machines it is accessible through our GPU settings (~/Library/Application Support/com.Ambient.Ambient/settings.toml)
Add a fallback direct rendering mode to diagnose indirect issues by using direct draw calls.
The buffer allocation on wgpu overcommits and is thus nicer to us and allows one or two elements to be written out of bounds before hitting an actual out of bounds error. This essentially hides many off by one errors, especially in the multi-buffer where you would overwrite another subbuffer.
Found a plethora of issues regarding buffer overreads, overwrites, as well as incorrect bounding ranges on both the CPU and GPU. Additionally, the length was in many places mixed up with capacity. This meant that the buffer was written and used with data that was more than its length, but within the capacity (or the capacity + wgpu's offset adjustements)
For the Typed buffer, the length/count was in places mixed up with the byte size. For example: doing read(..) did not read the whole buffer, but read "count" bytes instead of "count" items.
Another issue with the typed buffer is that it would be written to by the GPU, but the len never got updated to reflect this data, which caused the buffer to appear shorter than it actually was.
The read back of the culling results could (and did) arrive out of order which means that frame #3 culling data could arrive after frame #4 causing you to render data which is older than you already know. This became even worse during high tokio runtime load due to pre-emptive cooperative scheduling. This is normally not a larger problem than having an object flicker in and out out of nowhere as a frame from a few seconds ago arrived. However, if a material was removed during the time, or primitives where added and the layouts where consequently shift then the rendering will cause an out or bounds read.
A silent undocumented no-op occurs on the web if the indexed-first-instance feature is not supplied during device creation. This causes only the first global primitive to be rendered, while all others silently no-op without a warning or error in the console.
Overcommit in the compute shader caused primitive fighting which could be observed as occasional flickering even if no object left the viewport
In general, the reason for all these changes is that webgpu is a lot more strict and less permissive than wgpu, for example buffer usage and overwrites. There have also been a bunch of race conditions and fighting which violated GPU memory safety, which weren't always caught on native since our buffers were large enough

I've tested it on my windows laptop as well, so it works on all our supported platforms


Retry requests that fail with a timeout

This enables the default Farday retry middleware in order to retry
requests that time out: https://github.com/lostisland/faraday/blob/v0.9.2/lib/faraday/request/retry.rb
Requests are retried up to 2 times if they time out and are an
idempotent method ([:delete, :get, :head, :options, :put]).
This includes a monkey-patch of Faraday to ensure connection timeouts
are in fact interpreted as timeouts so they can be retried.

cc @fancyremarker

And.. Rubocop is broken with Rake 11, so the tests aren't passing: http://projects.theforeman.org/issues/14114
Should probably pin Rake to 10.x in aptible-tasks for now. I'll look into that now.

Fixed the rake issue in https://github.com/aptible/aptible-tasks/pull/21. This will break until we merge that in (and preferably update the version pin here), though.

OK, those tests passed now :)

Thanks!


Optimize Legacy Code for Improved Performance and Readability

There are several areas in the legacy codebase that can be optimized, both to improve the performance of the code and enhance its readability.
Pieces

[x] Refactor repetitive loops

[x] Convert appropriate loops to list comprehensions
[x] Reduce unnecessary iterations

[x] Simplify condition checks

[x] Break down nested conditions for better readability
[x] Remove redundant checks

Optimized all elementary pieces to have better checks, slightly improving efficiency.


Pricing for Audio Conferencing

This "Pricing for Audio Conferencing" link is useless. It takes you to a Marketing page with another link that says "See Plans & Pricing" and when you click THAT link, all you get is Office 365 plans and pricing - Nothing about audio conferencing.

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

ID: abae7324-861d-7ca7-7239-a5df8fd927d5
Version Independent ID: 8a30bd2f-9bc3-a0a8-8b31-d53836ead4d0
Content: Microsoft Teams add-on licensing - Microsoft Teams
Content Source: Teams/teams-add-on-licensing/microsoft-teams-add-on-licensing.md
Service: msteams
GitHub Login: @tonysmit
Microsoft Alias: tonysmit

@callit Thank you for submitting feedback and contributing to the docs. We are currently investigating this.

Hi @callit, thank you for your feedback.
In that link I can see the following information:
"Pricing for Audio Conferencing
If you have Office 365 E5, Audio Conferencing is included.
If you have Office 365 E1 or E3, Audio Conferencing is available for a $4.00/month add-on fee."

@callit Thank you for submitting feedback. We understand that this issue has been resolved.
Please feel free to re-open this issue if there is a specific area of the docs that we can improve or make better. Thank you.


Thread-safe, Channel-like, iteration of chunks

I find the following pattern to be useful:
using ChunkSplitters

ntasks = Threads.nthreads()

# Job producer
chunks = ChunkSplitters.chunks(itr; kwargs...)
chunk_channel = Channel{eltype(chunks)}(2 * ntasks; spawn = true) do ch
    for chunk in chunks
        put!(ch, chunk)
    end
end

# Job consumers
@sync for _ in 1:ntasks
    Threads.@spawn begin
        for chunk in chunk_channel
            for idx in chunk
                # Do work
            end
        end
    end
end

However, the job producer task, and the task switching between producer and
consumers is unnecessary because the jobs are already "produced" and the
Channel is only needed here as a way to iterate through the chunks in a
thread-safe manner.
To get around this, something like AtomicChunk (name suggestion?) can be
used (Inspired by @KnutAM's similar construct in https://github.com/KnutAM/FerriteAssembly.jl/blob/18fb1a541af37d6ea095cb111e39c3ac1fea8929/src/Multithreading/TaskChunks.jl#L1-L37):
mutable struct AtomicChunk{C <: Chunk}
    const chunk::C
    @atomic idx::Int
    function AtomicChunk(chunk::C) where {C <: Chunk}
        new{C}(chunk, 0)
    end
end

Base.length(a::AtomicChunk) = length(a.chunk)
Base.eltype(a::AtomicChunk) = eltype(a.chunk)

function Base.iterate(c::AtomicChunk, unused = nothing)
    this = @atomic c.idx += 1
    if this <= length(c.chunk)
        return (getchunk(c.chunk, this), nothing)
    else
        return nothing
    end
end

With this we can write the first code block as just a loop over the chunks:
using ChunkSplitters

ntasks = Threads.nthreads()

chunks = AtomicChunk(ChunkSplitters.chunks(itr; kwargs...))

# Job consumers
@sync for _ in 1:ntasks
    Threads.@spawn begin
        for chunk in chunks
            for idx in chunk
                # Do work
            end
        end
    end
end

Does such an iterator wrapper exist somewhere? Would something like this be useful to add to this package?

Some timings:
using ChunkSplitters, BenchmarkTools

function mc_parallel_producer_consumers(N; ntasks = Threads.nthreads(), chunk_size)
    chunks = ChunkSplitters.chunks(1:N; size = chunk_size)
    channel = Channel{eltype(chunks)}(2 * ntasks; spawn = true) do ch for chunk in chunks
            put!(ch, chunk)
        end
    end
    tasks = map(1:ntasks) do _
        Threads.@spawn begin
            local s = 0.0
            for chunk in channel
                for _ in chunk
                    s += rand()^2 + rand()^2 < 1.0
                end
            end
            s
        end
    end
    return sum(fetch, tasks)
end

function mc_parallel_consumers(N; ntasks = Threads.nthreads(), chunk_size)
    chunks = ChunkSplitters.AtomicChunk(ChunkSplitters.chunks(1:N; size = chunk_size))
    tasks = map(1:ntasks) do _
        Threads.@spawn begin
            local s = 0.0
            for chunk in chunks
                for _ in chunk
                    s += rand()^2 + rand()^2 < 1.0
                end
            end
            s
        end
    end
    return sum(fetch, tasks)
end

const N = 10_000_000

@btime mc_parallel_producer_consumers(N; chunk_size = 1)
@btime mc_parallel_consumers(N; chunk_size = 1)

@btime mc_parallel_producer_consumers(N; chunk_size = 256)
@btime mc_parallel_consumers(N; chunk_size = 256)

@btime mc_parallel_producer_consumers(N; chunk_size = 10_000)
@btime mc_parallel_consumers(N; chunk_size = 10_000)

which gives
  11.340 s (52 allocations: 4.73 KiB)
  392.088 ms (29 allocations: 2.17 KiB)
  27.058 ms (48 allocations: 4.30 KiB)
  9.128 ms (29 allocations: 2.17 KiB)
  8.719 ms (49 allocations: 4.41 KiB)
  8.615 ms (29 allocations: 2.17 KiB)

I wander if it makes sense to make the access to chunks and chunk indices always thread safe?
I guess that wouldn't affect the current applications.
Do you have any thoughts on this @carstenbauer ?

I think the iterator would need to be stateful then (like my cpde above and like Channel).

Do you want to propose a PR before we release 3.0? Probably it is a good time to introduce something new in the API.

I think we should add this as an option (not the default). Since this is a new feature, and thus non breaking, it doesn't have to go into 3.0 but can be added in any minor version.
The remaining question here is how we want to expose this feature. Should users wrap their chunks in a type of should this be a keyword option for chunks?

It can easily be generalized to any indexable thing, so perhaps it shouldn't live in this package at all. The main issue with exposing this by default is that you can not iterate over it twice:
X = AtomicChunk(ChunkSplitters.chunk(...))

for x in X
    # do something
end

for x in X
    # this will never be reached
end

so I think you really want to wrap the thing in this in a more local fashion where you know you are about to iterate over it twice, just like in #121.
Perhaps this can just be an internal thing in OhMyThreads for now?

Perhaps this can just be an internal thing in OhMyThreads for now?

Yeah, let's add this to OhMyThreads for now. (https://github.com/JuliaFolds2/OhMyThreads.jl/pull/121)


Testing with TestClient and a custom response_class calls constructor twice

When working with a custom response class the test_client calls the response class constructor, after the make_response already called the response class constructor
This causes a CustomResponse object to be passed to the constructor of the CustomResponse class.
A basic example of the problem
import json
from unittest import TestCase

from flask import Response, Flask
from hamcrest import has_entry
from hamcrest.core import assert_that
from hamcrest.core.core import is_

class TestMediaAppRestResponse(TestCase):

    def setUp(self):
        self.media_app = MyApp(__name__)
        self.client = self.media_app.test_client()

    def _test_client(self):
        return self.media_app.test_client()

    def test_rest_response__dict_register_response_class_before_test_client(self):
        return_value = {'dict_prop': 'dict_value'}
        self.media_app.route('/')(_make_handler_with_response(return_value))
        self.media_app.register_response_class()

        test_client = self._test_client()

        response = test_client.get('/')
        print ('will never get here')

    def test_rest_response__dict_register_response_class_after_test_client(self):
        return_value = {'dict_prop': 'dict_value'}

        test_client = self._test_client()

        self.media_app.register_response_class()
        self.media_app.route('/')(_make_handler_with_response(return_value))

        response = test_client.get('/')
        assert_that(response.get_json(), has_entry('payload', is_(return_value)))

def _make_handler_with_response(response):
    def wrapped_handler():
        return response
    return wrapped_handler

class MyApp(Flask):

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

    def register_response_class(self):
        self.response_class = MyResponse

    def make_response(self, response_value):
        if isinstance(response_value, self.response_class):
            return response_value
        return self.response_class(response_value, http_status=200, code=0, message='ok')

class MyResponse(Response):
    def __init__(self, payload=None, http_status: int = 200,
                 code: int = None,
                 message: str = '', *args, **kwargs):
        message = message
        code = code if code is not None else http_status
        payload = payload
        body_str = json.dumps({'code': code, 'message': message, 'payload': payload}, separators=(',', ':'))

        super().__init__(body_str, status=http_status, mimetype='application/json', *args, **kwargs)

Expected Behavior
The custom response class constructor should only be called by the make_response method
Actual Behavior
The constructor was called by the make_response method then by the test_client becuase the custom response class is passed to the client when it is created by the app.
Traceback (most recent call last):
  File "/usr/local/Cellar/python/3.7.1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 59, in testPartExecutor
    yield
  File "/usr/local/Cellar/python/3.7.1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 615, in run
    testMethod()
  File "/Users/elirans/projects/media-framework/tests/media_framework_test/http/flask/test_media_app_rest_response_multiple_calls.py", line 26, in test_rest_response__dict_register_response_class_before_test_client
    response = test_client.get('/')
  File "/Users/elirans/projects/media-framework/run/lib/python3.7/site-packages/werkzeug/test.py", line 830, in get
    return self.open(*args, **kw)
  File "/Users/elirans/projects/media-framework/run/lib/python3.7/site-packages/flask/testing.py", line 200, in open
    follow_redirects=follow_redirects
  File "/Users/elirans/projects/media-framework/run/lib/python3.7/site-packages/werkzeug/test.py", line 822, in open
    response = self.response_wrapper(*response)
  File "/Users/elirans/projects/media-framework/tests/media_framework_test/http/flask/test_media_app_rest_response_multiple_calls.py", line 72, in __init__
    body_str = json.dumps({'code': code, 'message': message, 'payload': payload}, separators=(',', ':'))
  File "/usr/local/Cellar/python/3.7.1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/json/__init__.py", line 238, in dumps
    **kw).encode(obj)
  File "/usr/local/Cellar/python/3.7.1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/json/encoder.py", line 199, in encode
    chunks = self.iterencode(o, _one_shot=True)
  File "/usr/local/Cellar/python/3.7.1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/json/encoder.py", line 257, in iterencode
    return _iterencode(o, 0)
  File "/usr/local/Cellar/python/3.7.1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/json/encoder.py", line 179, in default
    raise TypeError(f'Object of type {o.__class__.__name__} '
TypeError: Object of type Headers is not JSON serializable

Environment

Python version: 3.7.1
Flask version: 1.0.2
Werkzeug version: 0.14.1

There is way too much non-standard code going on in this example. Please reduce it to a minimal example demonstrating that this is an issue with Flask.

Here's a minimal example:
from flask import Flask, Response

app = Flask(__name__)

@app.route("/")
def index():
    return "Hello, World!"

class CustomResponse(Response):
    def __init__(self, *args, **kwargs):
        print("CustomResponse")
        super().__init__(*args, **kwargs)

app.response_class = CustomResponse
client = app.test_client()
rv = client.get("/")
print(rv.get_data(as_text=True))

Output:
CustomResponse
CustomResponse
Hello, World!

The arguments passed to Response.__init__ must still work the same as Werkzeug expects (duck typing), but you've changed that to pass arbitrary values then process them without checking what was passed first. The processing you're doing in CustomResponse.__init__ should be moved to MyApp.make_response. make_response should still construct the Response by passing it a string or iterable.
The reason why is that internal code besided your own expects response_class to have the same interface as the default. Flask will use response_class to generate the response from the value returned by the view. Werkzeug's Client runs the Flask app as if it were a WSGI server, the response it gets is the WSGI response that the response_class produces, a tuple of . Flask tells the client to wrap that raw response in its response class so that the return value is easier to work with.

First, thank you very much for the quick response. I want to make sure that I explained myself correctly
The problem is only in testing because of the behavior of the test client.
I will give this example: I want to return MyResponse object from the handler for some reason (headers for example)
import json
from flask import Flask, Response
app = Flask(__name__)

@app.route("/")
def index():
    return MyResponse("Hello, World!", headers={'x-some-header': 'header value'})

class MyResponse(Response):
    def __init__(self,response, *args, **kwargs):
        print("CustomResponse")
        response = '{"code":0,"payload":"' + json.dumps(response) + '"}'
        super().__init__(response,*args, **kwargs)

if __name__ == '__main__':
    # creating a client before registering the custom response - this works like an external client calling the server
    client = app.test_client()
    app.response_class = MyResponse
    rv = client.get("/")
    print('works like it would in production: ' + rv.get_data(as_text=True))

    # this client has the response wrapper.
    client = app.test_client()
    rv = client.get("/")
    print('will not get here' + rv.get_data(as_text=True))

This handler will work in production. This is just a test_client problem
This will happen regardless if I return a MyResponse object from the handler
As you mentioned - override the make_response to return an instance of MyResponse will still cause this bug.

I do not want to wrap my return value in the handlers. If I reuse this code in a project that has a different wrapper or does not have a wrapper for the response

Do you still think this is not a bug?

Hi @davidism
Can you please respond to my new comment?


Cost Report Time Period resets by error

Describe the bug
The Cost Report Time Period is reset when the CR is opened but the Summary is not.
To Reproduce
Steps to reproduce the behavior:

Go in cost report, change the time period to the previous month and submit
Close the Cost Report
Reopen the CR, the time period is back to the current month but the Summary displays le previous change (last month)

Expected behavior
The Time Period must stay aligned to the period used in the Summary otherwise it is misleading
Screenshots
If applicable, add screenshots to help explain your problem.
n/a
Browser (please complete the following information):
Firefox 91.0.1

Hi,
Thanks for raising this. We are investigating the issue.
Cheers,
Matt


reset() should not trigger validation errors

After submitting a form and receiving the response, I call reset(). It clears the input values as expected, but it also triggers all inputs to show their validation errors & shouldn't.
(I'm using DOM reporter, yup, & have required values for all inputs in my form as part of the yup validation.)
 if (res.status === 200) {
    reset();
 }

Thanks for the heads up! Fixed in<EMAIL_ADDRESS>


Sequences doesn't work with the standard MS driver

Setup connection to MS SQL Server with standard Microsoft driver.
Open any schema in the database.
In the data viewer select Properties tab and click at Sequences sub-tab.

Expected result: The list of Sequences is shown
Actual result: "SQL Error: The "variant" data type is not supported. The "variant" data type is not supported."

The problem is in default SQL Server driver (6.2.2 in DBever EE)
7.0+ works fine. We'll update default driver version in CE and EE.


Fix the bug when loading model from local path.

#21
Fix the bug when loading model from local path.
from snac import SNAC
snacmodel = SNAC.from_pretrained(Path("/root/XXX/model/snac_24khz")).eval().to(device)

Instead of wrapping the string path with a pathlib.Path object, we can just use os.path.isdir() to check the filesystem path.
This is also how huggingface handles it in hub_mixin.py
Would you mind updating the PR with this change?

Thank you very much, I will modify it immediately :)

Thank you so much,that's really a great learning opportunity for me.thank you!!

snacmodel = SNAC.from_pretrained("hubertsiuzdak/snac_24khz", local_dir="/root/mini-omni/snac_24khz",).eval().to(device)


Suggestion: Add allergens for specific individuals

I would like to know people's opinions on this.
I believe that adding allergens for individuals, and therefore showing who is safe to eat a product and who is not, would improve the user experience.

Yes. You mean turning the current allergen detector into a multiuser experience ?
Marianne: safe
Pierre: contains peanut ```

Exactly this. I wondered if it was too complicated to add this, however.

I'm wondering if the case with different allergens for the various children occurs that often.
So in terms of roadmap, not sure, in terms of storytelling ("selling the app"): it tells a great story, even to people who will never use the feature.

Well, in my case - my mum is allergic to nuts and white fish. I am allergic to both of those, but I am allergic to egg as well.

In that case, go ahead. One motivated dev makes a strong case ;-)

This issue would involve:

Storing allergens for individuals locally.
Creating the UI to represent this data.
Showing who should not consume the product in the Product pages.

I have created a Trello board for this now - https://trello.com/b/eP8zz1bg/open-food-facts-633

@ross-holloway94 Was wondering the status of this. Is there anything we can salvage from the branch for the future ?

@teolemon sorry for the late reply. I don't think I'll have time to work on this any more, sorry. The library is available on my profile still if anybody would to like to take it on.


CustomInventory->click has 2 source item parameters

Not really sure why no one's pointed this out yet but the click function has a sourceItem and a targetItem parameter but in EventListener:
https://github.com/tedo0627/InventoryUI/blob/5a531852c492be31eac9989bdd1650e0011c3fe0/src/tedo0627/inventoryui/EventListener.php#L35
It's just getSourceItem() twice

True, I hadn't noticed.


Port OGame Inifinity to 0.84

Try to port Inifinity to 0.84.
https://ogameinfinity.com/

https://github.com/ogame-infinity/web-extension


iOS not receiving push notifications

Android notifications work, but while iOS asks for permissions and receives the FCM token as well as APNS Token, but nothing happens when push notification is tested with Firebase Cloud Messaging test service in either foreground or background mode. No errors or other info on console.
Same settings (certificates etc.) work with the Capacitor Push Notification plugin on both operating systems.
Tested with iOS 13.4.1 and 12.4.6, plugin version 6.3.1.

Yes, this is an issue with the "Capacitor" implementation, which doesn't allow plugins to extend the implementation of AppDelegate on iOS. I'm studying how to create a capacitor-compatible version of this plugin.

Thanks for the information and for the good work. I got it working with using Cordova without Capacitor, so I will go with that for now.

same issue here..
fcm plugin version 6.0.1

@satyasaini, would you share your package.json?
},
"cordova-plugin-file-opener2": {
"ANDROID_SUPPORT_V4_VERSION": "27.+"
},
"cordova-plugin-inappbrowser": {},
"cordova-plugin-androidx": {},
"cordova-plugin-androidx-adapter": {},
"cordova-plugin-facebook4": {
"APP_ID": "2095005443363028492456",
"APP_NAME": "SLX",
"FACEBOOK_HYBRID_APP_EVENTS": "false",
"FACEBOOK_ANDROID_SDK_VERSION": "5.13.0"
},
"cordova-plugin-googleplus": {
"REVERSED_CLIENT_ID": "com.googleusercontent.apps.99081eredewddee4150301-crmle1fho0mmcut7frrfffga4667gk7c2i7n67",
"PLAY_SERVICES_VERSION": "15.0.1"
},
"cordova-plugin-fcm-with-dependecy-updated": {
"FCM_VERSION": "19.0.0",
"GRADLE_TOOLS_VERSION": "3.5.3",
"GOOGLE_SERVICES_VERSION": "4.3.3",
"SUPPORT_LIBRARY_VERSION": "28.0.0",
"ANDROID_DEFAULT_NOTIFICATION_ICON": "@mipmap/ic_launcher"
}
},
"platforms": [
"android",
"ios"
]
}
}

This is not a scenario I have seen before.
Would you  create a hello world app, of which can be shared here on github? Of which you experience the same issue? So I can properly debug.

The same issue! Also can`t get notification on iOS. And this is my package.json
{
  "name": "app.xxx",
  "version": "0.9.9911",
  "private": true,
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "test:unit": "vue-cli-service test:unit",
    "test:e2e": "vue-cli-service test:e2e",
    "lint": "vue-cli-service lint"
  },
  "dependencies": {
    "@intlify/vue-i18n-loader": "^1.0.0",
    "autosize": "^4.0.1",
    "axios": "^0.18.1",
    "chart.js": "^2.9.3",
    "chartjs-plugin-zoom": "^0.7.7",
    "cordova-android": "^8.1.0",
    "cordova-android-play-services-gradle-release": "^4.0.0",
    "cordova-android-support-gradle-release": "^3.0.1",
    "cordova-ios": "^5.1.1",
    "cordova-plugin-add-swift-support": "^2.0.2",
    "cordova-plugin-androidx": "^1.0.2",
    "cordova-plugin-androidx-adapter": "^1.1.1",
    "cordova-plugin-background-geolocation": "<EMAIL_ADDRESS>    "cordova-plugin-badge": "0.8.8",
    "cordova-plugin-calendar": "5.1.5",
    "cordova-plugin-camera": "^2.4.1",
    "cordova-plugin-compat": "^1.2.0",
    "cordova-plugin-contacts": "^3.0.1",
    "cordova-plugin-contacts-phone-numbers-emails"<EMAIL_ADDRESS>    "cordova-plugin-deeplinks": "1.1.1",
    "cordova-plugin-device": "^1.1.7",
    "cordova-plugin-device-orientation": "^1.0.7",
    "cordova-plugin-dialogs": "^1.3.4",
    "cordova-plugin-fcm-with-dependecy-updated": "^6.4.1",
    "cordova-plugin-file": "^4.3.3",
    "cordova-plugin-file-opener2": "3.0.0",
    "cordova-plugin-geolocation": "^2.4.3",
    "cordova-plugin-inappbrowser": "^3.2.0",
    "cordova-plugin-local-notification": "0.9.0-beta.2",
    "cordova-plugin-localization-strings": "^3.2.1",
    "cordova-plugin-media": "^3.0.1",
    "cordova-plugin-media-capture": "^1.4.3",
    "cordova-plugin-multidex": "^0.1.4",
    "cordova-plugin-qrscanner": "^3.0.1",
    "cordova-plugin-whitelist": "1.3.4",
    "cordova-plugin-wkwebview-engine": "^1.2.1",
    "core-js": "^3.6.5",
    "cpx": "^1.5.0",
    "dom-to-image": "^2.6.0",
    "ee-cordova-plugin-facebook4": "4.0.1",
    "gsap": "^3.2.6",
    "leaflet": "^1.6.0",
    "leaflet-geosearch": "^2.7.0",
    "leaflet.heat": "^0.2.0",
    "leaflet.markercluster": "^1.4.1",
    "lodash-es": "^4.17.15",
    "luxon": "^1.24.1",
    "phonegap-plugin-multidex": "^1.0.0",
    "platform": "^1.3.5",
    "portal-vue": "^1.5.1",
    "qrcanvas-vue": "^2.0.4",
    "swiper": "^5.4.1",
    "v-money": "^0.8.1",
    "vue": "^2.6.11",
    "vue-autosize": "^1.0.2",
    "vue-awesome-swiper": "^4.1.1",
    "vue-axios": "^2.1.5",
    "vue-chartjs": "^3.5.0",
    "vue-clamp": "^0.2.2",
    "vue-clipboard2": "^0.3.1",
    "vue-cordova": "^0.1.2",
    "vue-datetime": "^1.0.0-beta.13",
    "vue-directive-long-press": "^1.1.0",
    "vue-dom-portal": "^0.1.6",
    "vue-draggabilly": "^1.1.0",
    "vue-html2canvas": "0.0.4",
    "vue-i18n": "^8.18.0",
    "vue-offline": "^2.0.8",
    "vue-progressive-image": "^3.2.0",
    "vue-pull-to": "^0.1.8",
    "vue-qrcode-reader": "^1.4.2",
    "vue-router": "^3.2.0",
    "vue-router-back-button": "^1.2.3",
    "vue-social-sharing": "^2.4.7",
    "vue-the-mask": "^0.11.1",
    "vue2-leaflet": "^2.5.2",
    "vue2-leaflet-geosearch": "^1.0.6",
    "vue2-leaflet-markercluster": "^3.1.0",
    "vuex": "^3.4.0",
    "weekstart": "^1.0.1",
    "xlsx": "^0.15.6"
  },
  "devDependencies": {
    "@vue/cli-plugin-babel": "^4.4.1",
    "@vue/cli-plugin-e2e-nightwatch": "^4.4.1",
    "@vue/cli-plugin-eslint": "^4.4.1",
    "@vue/cli-plugin-unit-jest": "^4.4.1",
    "@vue/cli-service": "^4.4.1",
    "@vue/eslint-config-standard": "^5.1.2",
    "@vue/test-utils": "^1.0.3",
    "ajv": "^6.12.2",
    "babel-core": "7.0.0-bridge.0",
    "babel-eslint": "^10.1.0",
    "babel-jest": "^24.9.0",
    "eslint": "^6.8.0",
    "eslint-plugin-import": "^2.20.2",
    "eslint-plugin-node": "^11.1.0",
    "eslint-plugin-promise": "^4.2.1",
    "eslint-plugin-standard": "^4.0.1",
    "eslint-plugin-vue": "^6.2.2",
    "eslint-plugin-vue-libs": "^4.0.0",
    "lint-staged": "^7.2.2",
    "node-sass": "^4.14.1",
    "sass-loader": "^8.0.2",
    "vue-cli-plugin-axios": "0.0.4",
    "vue-cli-plugin-i18n": "^1.0.1",
    "vue-loader": "^15.9.2",
    "vue-template-compiler": "^2.6.11",
    "webpack-bundle-analyzer": "^3.8.0"
  },
  "eslintConfig": {
    "root": true,
    "env": {
      "node": true
    },
    "extends": [
      "plugin:vue/essential",
      "@vue/standard"
    ],
    "parserOptions": {
      "parser": "babel-eslint"
    },
    "rules": {
      "vue/no-unused-components": "warn"
    }
  },
  "postcss": {
    "plugins": {
      "autoprefixer": {}
    }
  },
  "browserslist": [
    "> 1%",
    "last 2 versions",
    "not ie <= 8"
  ],
  "jest": {
    "moduleFileExtensions": [
      "js",
      "jsx",
      "json",
      "vue"
    ],
    "transform": {
      "^.+\\.vue$": "vue-jest",
      ".+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$": "jest-transform-stub",
      "^.+\\.jsx?$": "babel-jest"
    },
    "moduleNameMapper": {
      "^@/(.*)$": "<rootDir>/src/$1"
    },
    "snapshotSerializers": [
      "jest-serializer-vue"
    ],
    "testMatch": [
      "**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)"
    ],
    "testURL": "http://localhost/"
  },
  "cordova": {
    "plugins": {
      "cordova-plugin-camera": {},
      "cordova-plugin-compat": {},
      "cordova-plugin-device": {},
      "cordova-plugin-device-orientation": {},
      "cordova-plugin-dialogs": {},
      "cordova-plugin-file": {},
      "cordova-plugin-geolocation": {},
      "cordova-plugin-media": {},
      "cordova-plugin-media-capture": {
        "CAMERA_USAGE_DESCRIPTION": "Access to the camera is needed to take a photo, then it will be used as an avatar.",
        "PHOTOLIBRARY_USAGE_DESCRIPTION": "Access to the library is required to upload the avatar."
      },
      "cordova-plugin-background-geolocation": {
        "GOOGLE_PLAY_SERVICES_VERSION": "11+",
        "ANDROID_SUPPORT_LIBRARY_VERSION": "26+",
        "ICON": "@mipmap/icon",
        "SMALL_ICON": "@mipmap/icon",
        "ACCOUNT_NAME": "@string/app_name",
        "ACCOUNT_LABEL": "@string/app_name",
        "ACCOUNT_TYPE": "$PACKAGE_NAME.account",
        "CONTENT_AUTHORITY": "$PACKAGE_NAME"
      },
      "cordova-plugin-contacts-phone-numbers-emails": {},
      "cordova-plugin-qrscanner": {},
      "cordova-android-play-services-gradle-release": {
        "PLAY-SERVICES-LOCATION": "17.0.0",
        "PLAY-SERVICES-ADS": "18.0.0",
        "PLAY-SERVICES-ADS-IDENTIFIER": "17.0.0",
        "PLAY-SERVICES-ADS-LITE": "18.0.0",
        "PLAY-SERVICES-AFS-NATIVE": "17.0.0",
        "PLAY-SERVICES-ANALYTICS": "17.0.0",
        "PLAY-SERVICES-ANALYTICS-IMPL": "17.0.0",
        "PLAY-SERVICES-APPINVITE": "18.0.0",
        "PLAY-SERVICES-AUDIENCE": "17.0.0",
        "PLAY-SERVICES-AUTH": "17.0.0",
        "PLAY-SERVICES-AUTH-API-PHONE": "17.0.0",
        "PLAY-SERVICES-AWARENESS": "17.0.0",
        "PLAY-SERVICES-BASE": "17.0.0",
        "PLAY-SERVICES-BASEMENT": "17.0.0",
        "PLAY-SERVICES-CAST": "17.0.0",
        "PLAY-SERVICES-CAST-FRAMEWORK": "17.0.0",
        "PLAY-SERVICES-CLEARCUT": "17.0.0",
        "PLAY-SERVICES-CRONET": "17.0.0",
        "PLAY-SERVICES-DRIVE": "17.0.0",
        "PLAY-SERVICES-FIDO": "18.0.0",
        "PLAY-SERVICES-FITNESS": "17.0.0",
        "PLAY-SERVICES-FLAGS": "17.0.0",
        "PLAY-SERVICES-GAMES": "18.0.0",
        "PLAY-SERVICES-GASS": "18.0.0",
        "PLAY-SERVICES-GCM": "17.0.0",
        "PLAY-SERVICES-IDENTITY": "17.0.0",
        "PLAY-SERVICES-IID": "17.0.0",
        "PLAY-SERVICES-INSTANTAPPS": "17.0.0",
        "PLAY-SERVICES-MAPS": "17.0.0",
        "PLAY-SERVICES-MEASUREMENT": "17.0.0",
        "PLAY-SERVICES-MEASUREMENT-API": "17.0.0",
        "PLAY-SERVICES-MEASUREMENT-IMPL": "17.0.0",
        "PLAY-SERVICES-MEASUREMENT-SDK": "17.0.0",
        "PLAY-SERVICES-MEASUREMENT-SDK-API": "17.0.0",
        "PLAY-SERVICES-NEARBY": "17.0.0",
        "PLAY-SERVICES-OSS-LICENSES": "17.0.0",
        "PLAY-SERVICES-PANORAMA": "17.0.0",
        "PLAY-SERVICES-PHENOTYPE": "17.0.0",
        "PLAY-SERVICES-PLACES": "17.0.0",
        "PLAY-SERVICES-PLACES-PLACEREPORT": "17.0.0",
        "PLAY-SERVICES-PLUS": "17.0.0",
        "PLAY-SERVICES-SAFETYNET": "17.0.0",
        "PLAY-SERVICES-STATS": "17.0.0",
        "PLAY-SERVICES-TAGMANAGER": "17.0.0",
        "PLAY-SERVICES-TAGMANAGER-API": "17.0.0",
        "PLAY-SERVICES-TAGMANAGER-V4-IMPL": "17.0.0",
        "PLAY-SERVICES-TASKS": "17.0.0",
        "PLAY-SERVICES-VISION": "18.0.0",
        "PLAY-SERVICES-VISION-COMMON": "18.0.0",
        "PLAY-SERVICES-VISION-IMAGE-LABEL": "18.0.0",
        "PLAY-SERVICES-WALLET": "17.0.0",
        "PLAY-SERVICES-WEARABLE": "17.0.0"
      },
      "cordova-plugin-inappbrowser": {},
      "cordova-plugin-file-opener2": {
        "ANDROID_SUPPORT_V4_VERSION": "27.+"
      },
      "cordova-plugin-deeplinks": {},
      "cordova-plugin-local-notification": {},
      "cordova-plugin-whitelist": {},
      "cordova-plugin-calendar": {
        "CALENDAR_USAGE_DESCRIPTION": "This app uses your calendar to add events in it"
      },
      "cordova-plugin-multidex": {},
      "cordova-android-support-gradle-release": {},
      "cordova-plugin-localization-strings": {
        "TRANSLATION_PATH": "translations/app/"
      },
      "cordova-plugin-androidx": {},
      "cordova-plugin-androidx-adapter": {},
      "cordova-plugin-wkwebview-engine": {},
      "ee-cordova-plugin-facebook4": {
        "APP_ID": "xxx",
        "APP_NAME": "xxx",
        "FACEBOOK_HYBRID_APP_EVENTS": "true",
        "APP_URL_SUFFIX": "xxx://"
      },
      "cordova-plugin-fcm-with-dependecy-updated": {
        "FCM_VERSION": "19.0.0",
        "GRADLE_TOOLS_VERSION": "3.5.3",
        "GOOGLE_SERVICES_VERSION": "4.3.3",
        "SUPPORT_LIBRARY_VERSION": "28.0.0",
        "ANDROID_DEFAULT_NOTIFICATION_ICON": "@mipmap/ic_launcher"
      }
    },
    "platforms": [
      "android",
      "ios"
    ]
  },
  "gitHooks": {
    "pre-commit": "lint-staged"
  },
  "lint-staged": {
    "*.js": [
      "vue-cli-service lint",
      "git add"
    ],
    "*.vue": [
      "vue-cli-service lint",
      "git add"
    ]
  }
}

@AbdullaevTimur Would you create a hello world app, of which can be shared here on github? Of which you experience the same issue? That would help me to properly debug.

During iOS debug in xCode, i see the next log messages:
2020-05-28 13:36:55.194836+0500 XXXX[4973:967851] Cordova view ready
2020-05-28 13:36:55.338021+0500 XXXX[4973:967851] get Token
2020-05-28 13:36:55.339183+0500 XXXX[4973:967851] view registered for notifications
2020-05-28 13:36:55.354185+0500 XXXX[4973:967851] FCMPlugin.js: is created
2020-05-28 13:36:55.354689+0500 XXXX[4973:967851] FCMPlugin Ready OK
2020-05-28 13:36:55.355177+0500 XXXX[4973:967851] ERROR: {"line":1,"column":36990,"sourceURL":"file:///var/containers/Bundle/Application/49FB9E66-A49E-4282-A0F1-9857BEE4DF6F/XXXX.app/www/js/app~748942c6.js"}
// (36900) -> window.FCMPlugin.onFirebaseDataNotificationIOS((function(t){t.wasTapped&&e.receiveFCMMessage(t)}),(function(e){console.log("Message received: "+e)}),(function(e){console.error(e)}))
2020-05-28 13:36:55.388682+0500 XXXX[4973:968076] has push permission: unknown
2020-05-28 13:36:55.441660+0500 XXXX[4973:967851] Message received: null
2020-05-28 13:36:55.455998+0500 XXXX[4973:967851] Permission is denied

The error appear when app start onFirebaseDataNotificationIOS function.  Not so long ago, I tried another plugin "cordova-plugin-firebasex". There reception of notifications works well, but I did not use it so it is very large and there is a lot of excess. It might be interesting to see how the code for getting notifications is written there?

I got this on iOS too +1

Is there any version which work on iOS right now ?

The funny thing is that there is no log output from the plugin that would start with Message received:. Which is looks like there is probably another plugin hijacking the push reception.
Another thing that is very difficult to believe is the following:
2020-05-28 19:38:27.595012+0500 XXX[5380:1030595] has push permission: true
2020-05-28 19:38:27.597292+0500 XXX[5380:1030595] has push permission: false
2020-05-28 19:38:27.598760+0500 XXX[5380:1030595] has push permission: unknown

That's something very strange happening. Would you kindly create the hello world app?

You can request permission using this
const w: any = window;
w.FCMPlugin.requestPushPermissionIOS(() => {
  console.log('push permissions success');
}, (e) => {
  console.log('push permissions fail', e);
});

Yes, until this PR (https://github.com/ionic-team/ionic-native/pull/3430) is merged, there is nothing I can do, as it is a ionic definition package I don't maintain.

Ok! I will try to make "Hello world" today or tomorrow.
Firstly, I thought that problem was in plugin with "background-geolocation", but then I try to debug without this one, and the result was the same.
Also I tried "cordova-plugin-firebasex" and it`s works, but the problem that it contain a lot of unnecessary google services.

Thank you for the debugging effort and I'll wait for the "Hello world" app.

I'm currently facing an issue where I can't retrieve the APNS token, therefore I am unable to receive push notifications. I didn't change much code wise, just added comments to the codes, then it stopped working

I'm having an issue where APNS token returns null after uninstalling and installing the app again

Can’t you use the token from fcm??? In my case the APNS token didnt show
until my App was available on TestFlight (But I could get notification from
topics and using fcm token).
El El jue, 4 jun. 2020 a la(s) 01:51, almiraputrisandy <
<EMAIL_ADDRESS>escribió:

I'm having an issue where APNS token returns null after uninstalling and
installing the app again
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/andrehtissot/cordova-plugin-fcm-with-dependecy-updated/issues/75#issuecomment-638600950,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AC2XSILW5L5VKOH52LMXFW3RU4R6RANCNFSM4ND6SNJQ
.

Me to I don’t need the apns token , I utilize same fcm token that android used to . Thanks to the plugin . Seems to work.
Sent from my iPhone

On 04 Jun 2020, at 16:35, Juan Fernandez Sosa<EMAIL_ADDRESS>wrote:

Can’t you use the token from fcm??? In my case the APNS token didnt show
until my App was available on TestFlight (But I could get notification from
topics and using fcm token).
El El jue, 4 jun. 2020 a la(s) 01:51, almiraputrisandy <
<EMAIL_ADDRESS>escribió:

I'm having an issue where APNS token returns null after uninstalling and
installing the app again
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/andrehtissot/cordova-plugin-fcm-with-dependecy-updated/issues/75#issuecomment-638600950,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AC2XSILW5L5VKOH52LMXFW3RU4R6RANCNFSM4ND6SNJQ
.

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

Thank you @almiraputrisandy for the log. I'll look into it.

Can’t you use the token from fcm??? In my case the APNS token didnt show until my App was available on TestFlight (But I could get notification from topics and using fcm token). El El jue, 4 jun. 2020 a la(s) 01:51, almiraputrisandy <<EMAIL_ADDRESS>escribió:
…
I'm having an issue where APNS token returns null after uninstalling and installing the app again — You are receiving this because you commented. Reply to this email directly, view it on GitHub <#75 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AC2XSILW5L5VKOH52LMXFW3RU4R6RANCNFSM4ND6SNJQ .

Hmm, not for me though. I can get the FCM token, but if APNS token is null, I can't send push notification, even to the FCM token itself

@almiraputrisandy How are you triggering push notifications on the server side?

@andrehtissot this is how I did it on the server side:
var FCMAdmin = require("firebase-admin");
var FCMServiceAccount = require("./service-account.json");
var topic = req.body.target;

var payloadWithTopic = {
    'notification': {
        'title': req.body.title,
        'body': req.body.message
    },
    topic: topic
};

FCMAdmin.messaging().send(payloadWithTopic)
        .then(function(response) {
            console.log("Topic message sent successfully");
        }).catch(function(err) {
            console.log(err);
        });

Did you call FCMPlugin.requestPushPermissionIOS()? Before, the push permission was requested at app start, now you can delay and request later. But without the user's permission, the feature is inactive on iOS.

Hi @andrehtissot ... In a similar situation, I receive null when requesting token... I recently migrated to capacitor. Everything was working fine with Cordova. Could anyone confirm if this is plugin related, I've double checked all my other configurations and they seem to all be fine.

This plugin is currently not compatible with capacitor.

Did you call FCMPlugin.requestPushPermissionIOS()? Before, the push permission was requested at app start, now you can delay and request later. But without the user's permission, the feature is inactive on iOS.

yes I did

but it's all good now, i think the APNS token is null because in development mode. after upload to Testflight I always receive push notification

Yeah, Apple does not trust its own simulators.

I cant make it works in ios device..
It's a cordova only project.. i use 2 plugins: this (cordova-plugin-fcm-with-dependecy-updated) and inappbrowser..
I get the FCM token, i can send to this token with curl but it's not showing in device..
I requestPermission, add callback to onNotification and not make it work.
My device is a iphone 6s plus with ios in version 13.3.1

So for iOS Cordova iOS version 6.2.0 and plugin version ^7.8.0
I had to add code to grant permission using manually.

FCM.requestPushPermission()

And it worked.

So for iOS Cordova iOS version 6.2.0 and plugin version ^7.8.0
I had to add code to grant permission using manually.

FCM.requestPushPermission()

And it worked.

Can you please share us the completed scenario to implement it. thanks


Fix race condition in BasicConnectionPool.

Summary
This PR fixes leakage of JDBC connections in WindGate JDBC direct mode.
Background, Problem or Goal of the patch
BasicConnectionPool has race condition between release() and close().

Time
release()
close()

t1
if (!poolClosed) ...

t2

poolClosed=true

t3

cached.*close()

t4
cached.add(connection)

Finally, connection will leak at t4.
Design of the fix, or a new feature
This fix just reverses checking poolClosed flag with cached.add(connection) in release(). Their cached connections will be closed if the connection pool was already closed.
Related Issue, Pull Request or Code

#41

Wanted reviewer
@shino

BUILD SUCCESS. <jenkins-prb-asakusafw-dag-48>

👍 for merge


H264 hardware decoding

Description
Has anyone been able to decode H264 video using the hardware decoder on the Coral dev mini? I'm trying to decode RTSP streams using the hardware decoder but ffmpeg doesn't seem to work with h264_v4l2m2m and produces the following output:
[h264_v4l2m2m @ 0x5591620870] driver 'mtk-mdp' on card '14001000.rdma'
[h264_v4l2m2m @ 0x5591620870] driver 'mtk-vcodec-dec' on card 'platform:mt8167'
[h264_v4l2m2m @ 0x5591620870] Could not find a valid device
[h264_v4l2m2m @ 0x5591620870] can't configure decoder

The specsheet mentions the hardware is capable of decoding 1280x720 30 fps H264 video but I can't find a way to utilize it. Any help with this would be appreciated.
Click to expand!
Issue Type
Support
Operating System
Mendel Linux
Coral Device
Dev Board Mini
Other Devices
No response
Programming Language
No response
Relevant Log Output
No response

@mostafaayesh You can take reference from https://github.com/google-coral/examples-camera/blob/master/gstreamer/gstreamer.py regarding how decodebin is being used.

@manoj7410 Thanks, I'll give that a try. But is it only possible with gstreamer and not ffmpeg?

@mostafaayesh Gstreamer is what we have tried with. Not really sure how to do this with ffmpeg. But if you get some other way then you can paste that here so that other users may get help from that.

Thank you @manoj7410. I'm thinking about modifying the project to support GStreamer. For ffmpeg, I think it needs low level support for it to work which is more complicated. Feel free to close this issue if there is no one else who has a comment on this.


Update scalafmt-core to 3.1.2

Updates org.scalameta:scalafmt-core from 3.1.1 to 3.1.2.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Files still referring to the old version number
The following files still refer to the old version number (3.1.1).
You might want to review and update them manually.
docs/website/package-lock.json

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scalameta", artifactId = "scalafmt-core" } ]

labels: library-update, early-semver-patch, semver-spec-patch, old-version-remains

Codecov Report

Merging #547 (83366a0) into release/next (22fb2bf) will decrease coverage by 0.06%.
The diff coverage is n/a.

@@               Coverage Diff                @@
##           release/next     #547      +/-   ##
================================================
- Coverage         57.45%   57.38%   -0.07%
================================================
  Files                66       66
  Lines              1469     1469
  Branches             53       53
================================================
- Hits                844      843       -1
- Misses              625      626       +1

Impacted Files
Coverage Δ

...ttp/src/main/scala/zhttp/service/HttpRuntime.scala
96.42% <0.00%> (-3.58%)
:arrow_down:

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 22fb2bf...83366a0. Read the comment docs.


Add .DS_Store to .gitignore

Fix for that pesky .DS_Store file that Finder on OS X generates.

IMHO the .DS_Store should be put into a global place, such as .gitignore_global.
The project-specific .gitignore should contain only project-generated temporary files.


Extension Doesn't Work

Description
I go to "Start Tree", then when I "Select File" and select any component React file, nothing happens
Reproduction
https://codesandbox.io/p/sandbox/39kxp4, I copied the main files over to a vite react swc js project.
System information
n/a
Additional information
No response
👨👧👦 Contributing

[ ] 🙋♂ Yes, I'd love to make a PR to fix this bug!

I have had the same issue for quite awhile.

Same problem here :/

I've had the same issue as well.

Doesn't seem like this extension is maintained. Last version release is the same date the extension dropped which was on 2/28/2023. No activity in Github since. Too bad, loved this extension.

same problem


Update _unhandled_key_input documentation

Godot version
v4.2-beta1
System information

Issue description
Currently, the documentation for _unhandled_key_input states that it will only receive InputEventKey events but there is no mention about InputEventShortcut which will be received by it as well.
At the end there is a mention about using _shortcut_input() instead for shortcut input events which would also benefit from some edits?

Steps to reproduce

Minimal reproduction project

Can you please provide a minimal reproduction project, where an InputEventShortcut is received by _unhandled_key_input?
The implementation suggests, that only an InputEventKey is sent to _unhandled_key_input:
https://github.com/godotengine/godot/blob/7f884b4e0017368e193d96f425aac6c2d8a86eb0/scene/main/viewport.cpp#L3233-L3237

CommandPalette activates shortcuts using InputEventShortcut. The method was originally changed in #49417, though some details might've changed.
In any case, this can pretty much happen only in the editor, unless a user manually sends such event.

Ive received opposite information before but it seems its been changed/fixed in 56695


Contain which file doesn't exist in the response

I recently had a trouble while debugging Spring Boot integration test.
The server responded with 404 so I thought the internal doc service wasn't bound to the server at all.
However, it turned out to be that the doc service (which is a file service) was bound, but the files are not added because noWeb property was used.
If the response contains more information such as the decodedMappedPath, I think it would be a lot easier to file the problem.

Hi @minwoox ! I have some question :)
It seems that if the file is not bound, it is entered as an any string, and if the file does not exist, it is entered as an INSTANCE object.
If what you think is correct, I would like to solve this problem.

Hi, @this-is-spear! Thanks for volunteering this issue! 😄
I updated the description to inform how I came to this issue.
I think we can create NonExistentHttpFile with the [decodedMappedPath](https://github.com/line/armeria/blob/43c63ea2b86e4fce48619eaf2912c7eb1cb28346/core/src/main/java/com/linecorp/armeria/server/file/FileService.java#L223-L225) that is used to find the file and returns it instead of returning NonExistentHttpFile.INSTANCE.
I think we can create the file in these places:

https://github.com/line/armeria/blob/43c63ea2b86e4fce48619eaf2912c7eb1cb28346/core/src/main/java/com/linecorp/armeria/server/file/FileService.java#L241
https://github.com/line/armeria/blob/43c63ea2b86e4fce48619eaf2912c7eb1cb28346/core/src/main/java/com/linecorp/armeria/server/file/FileService.java#L246
https://github.com/line/armeria/blob/43c63ea2b86e4fce48619eaf2912c7eb1cb28346/core/src/main/java/com/linecorp/armeria/server/file/FileService.java#L287

Please, let me know if you need further information. 😉

@minwoox Thank you for your kind answer :)
So, as I understand it, the situation is as follows.

the file does not exist in any of the encodings that are currently available, but it can be retrieved from the encoding set.
the file does not exist in any of the currently available encodings, nor in the Encoding Set.

How can you give the user a hint as to the difference between the first situation and the second situation?

@minwoox hi!
This is a thought I had while troubleshooting, I think the read(...) that returns the HttpResponse should be not null, I think I should modify it like below, what do you think?
AS-IS
@Nullable
private HttpResponse read(Executor fileReadExecutor, ByteBufAllocator alloc,
                              @Nullable HttpFileAttributes attrs) {
    final ResponseHeaders headers = readHeaders(attrs);
    if (headers == null) {
        return null;
    }
    // ...
}

TO-BE
private HttpResponse read(Executor fileReadExecutor, ByteBufAllocator alloc,
                              @Nullable HttpFileAttributes attrs) {
    final ResponseHeaders headers = readHeaders(attrs);
    if (headers == null) {
        return HttpResponse.of(HttpStatus.NOT_FOUND);
    }
    // ...
}


Random: Pulumi

@mkevenaar what is Pulumi?
Can't say I have ever heard of it before?

@AdmiringWorm said...
what is Pulumi?

It is an alternative to terraform.  It allows usage of a programming language, i.e. Python, Node, and Go, rather than using XML or HCL for describing the environments.


DAGCircuitError when if_test is called in for_loop scope.

Environment

Qiskit Terra version: 0.19.0
Python version: any
Operating system: any

What is happening?
Encounter DAGCircuitError when if_test is called in for_loop scope.
How can we reproduce the issue?
from qiskit import QuantumCircuit
from qiskit.circuit import QuantumRegister, ClassicalRegister

qreg = QuantumRegister(4)
creg = ClassicalRegister(1)
circ = QuantumCircuit(qreg, creg)

with circ.for_loop(range(10)) as a:
    circ.ry(a, 0)
    with circ.if_test((creg, 1)):
        circ.break_loop()

print(circ)
print(circ.data[0][0].params[2]) ## qiskit.dagcircuit.exceptions.DAGCircuitError: 'invalid creg in condition for if_else'

      ┌───────────┐
q0_0: ┤0          ├
      │           │
q0_1: ┤           ├
      │           │
q0_2: ┤  For_loop ├
      │           │
q0_3: ┤           ├
      │           │
  c0: ╡0          ╞
      └───────────┘
Traceback (most recent call last):
  File "nest_error.py", line 14, in <module>
    print(circ.data[0][0].params[2])
  File "site-packages/qiskit/circuit/quantumcircuit.py", line 364, in __str__
    return str(self.draw(output="text"))
  File "site-packages/qiskit/circuit/quantumcircuit.py", line 1865, in draw
    return circuit_drawer(
  File "site-packages/qiskit/visualization/circuit_visualization.py", line 242, in circuit_drawer
    return _text_circuit_drawer(
  File "site-packages/qiskit/visualization/circuit_visualization.py", line 360, in _text_circuit_drawer
    qubits, clbits, nodes = utils._get_layered_instructions(
  File "site-packages/qiskit/visualization/utils.py", line 343, in _get_layered_instructions
    dag = circuit_to_dag(circuit)
  File "site-packages/qiskit/converters/circuit_to_dag.py", line 62, in circuit_to_dag
    dagcircuit.apply_operation_back(instruction.copy(), qargs, cargs)
  File "site-packages/qiskit/dagcircuit/dagcircuit.py", line 541, in apply_operation_back
    self._check_condition(op.name, op.condition)
  File "site-packages/qiskit/dagcircuit/dagcircuit.py", line 431, in _check_condition
    raise DAGCircuitError("invalid creg in condition for %s" % name)
qiskit.dagcircuit.exceptions.DAGCircuitError: 'invalid creg in condition for if_else'

What should happen?
No error.
Any suggestions?
None

The issue here is that the control-flow builder blocks don't track the registers that are used, only the bits, so they don't define any necessary registers in their body blocks.  We need to add tracking of these to ControlFlowBuilderBlock, and add them when the circuits are created to fix this.
It's a DAGCircuitError because the drawer tries to convert the circuit into a DAG first to get the orderings, and that's when the issue gets detected.


Describe the use of ms_ methods if things like search are already defined

Probably super-common to already have Model#search defined, especially if you're looking to switch from another library.
Not sure about the title of the section added; open to suggestions.

Thanks for your involvement @JasonBarnabe I'll take a look as soon as possible! We are in the pre-release week so all of our efforts are related to it! :)

bors merge


Add support for indexing to "simple blueprint expressions"

Enable usage such $(instance.name[0]);
Replace ((...)) usages with $(...).

I did some testing with the snippet below. Everything is as I would expect.
My one area of concern is the last line: $(homefs.network_storage.nothing). In ideal world this would fail on create and inform the user they are making a bad reference. I assume that this is impossible to enforce as outputs do not have typing.
My concern is as follows:
Before this change we can validate all uses of $() references on create (except not for typing I guess but at least that they exist). Partially we do this by greatly limiting the allowed usage of $(). After this change, there are more cases where this will fail on terraform apply.
Personally my vote would be to accept this PR and extend the functionality with the risk is worth being about to make $(compute_1.name[0]) references but I don't think we should unilaterally decide this core functionality of the blueprint syntax.
@cboneti can you weight in?
  - id: homefs
    source: modules/file-system/pre-existing-network-storage
    settings:
      server_ip: <IP_ADDRESS>
      remote_mount: nfsshare
      local_mount: /home
      fs_type: nfs

  - id: startup
    source: modules/scripts/startup-script
    settings:
      runners:
        - $(homefs.client_install_runner) # work before and after

        - $(homefs.nothing) # fails before and after

        - $(homefs.network_storage.client_install_runner) # fails before works after

        - type: shell # fails before works after
          content: $(homefs.network_storage.client_install_runner.content)
          destination: $(homefs.network_storage.client_install_runner.destination)

        - $(homefs.network_storage.nothing) # fails before but passes after (although I would prefer if it failed)

@cboneti can you weight in?

I see the added risk here, as before, we had a "closed" environment (everything was guaranteed to be testable), and now, we do not.  Still, it seems to me that the benefits outweigh the additional risk.


Run tests from the main controller

@LuiseV Made changes.
Steven's commit is in here because without it, quilt logs doesn't work, and thus the spark test wouldn't work.


ad-handle-definition: 'ido-completing-read' got redefined

OS: ubuntu 16.04
Emacs: 24.5.1
While start with command emacs -nw got an error:
ad-handle-definition: 'ido-completing-read' got redefined,
remove .emacs.d directory and reinstall, i got the error again.

That's not an error, that's a warning, and you can ignore it. :-)


Install Go to hostedtoolcache directory on Windows image

Internal issue: #488
Moved Go location from C: to C:\hostedtoolcache\Go directory to work with setup-go action.
Example of path:
C:\hostedtoolcache\Go\1.14.2\x64

Also it uses 7z tool instead Expand-Archive to decrease expand archive time (about 20 min with Expand-Archive and 3 min with 7z).
Test build:
Windows-2019

/azp run windows2016, windows2019

Also it uses 7z tool instead Expand-Archive to decrease expand archive time (about 20 min with Expand-Archive and 3 min with 7z).

That sounds really good. Found that it is known PowerShell issue that is not fixed for a long time :(
Do we want to switch all Expand-Archive to 7zip for all tools (in scope of separate PR)? If it gives at least 1 hour of image-generation improvement, it can be good improvement. We can implement small helper function as a wrapper for 7z invocation.
cc: @alepauly , @AlenaSviridenko for any thoughts

@maxim-lobanov 7zip sound good to me, 1 hour of win in image generation is a good speed improvement, it will allow us to check PRs faster, for example.

/azp run windows2016, windows2019


Breakdown the sinteractive text to instructions

RCC recommends using sinteractive most of the time. To use a CPU, that takes the form of sinteractive -A kicpaa -p kicpaa but if kicpaa is your primary affiliation (rather than pinord) it might work without the flags.

what does "breakdown" mean in this instance?


Fail the pip source distribution package if downloading the helics tarball fails

The pip source distribution package build should fail if downloading and extracting the HELICS source tarball fails -- otherwise it "succeeds" but does not include the source code required to build the package from source.

Addressed in https://github.com/GMLC-TDC/helics-packaging/commit/b9f617370271dc209ecc20ef4a753b7da3bd62bd


fix: footer always at the bottom

issue #28
Footer always will be at the bottom, whether the contents are over the viewport height or less than the viewport height.
Here are the screenshots...

Any reply here ??


Passwords must not be stored in SCC

See https://learn.microsoft.com/en-us/aspnet/core/security/app-secrets?view=aspnetcore-7.0&tabs=windows for approaches.
Consider:

SQL Server LocalDB for development
Promotion uses environment variables

Use LocalDB: https://jakeydocs.readthedocs.io/en/latest/tutorials/first-mvc-app/working-with-sql.html
Sqlite does not supported stored procedures
https://learn.microsoft.com/en-us/aspnet/core/security/app-secrets?view=aspnetcore-7.0&tabs=windows
Got to 14


Unnecessary onStoreDocumentHooks call on last connection close (potential data loss)

Description
Currently onStoreDocument hooks are called using the debouncer logic in two cases:

On every changes applied to a document (if not coming from redis)
On the last connection close

The latter case clears previously scheduled onStoreDocument hooks by the debouncer, and enforces a new onStoreDocument hooks call even if there has not been any changes to the document since the last store. It appears that it is unnecessary to call onStoreDocument hooks if there is no debounced onStoreDocument hook scheduled to be executed. Because all the changes to the document have already been stored.
Even in the case when the last connection is closing and there is a debounced onStoreDocument waiting to be executed, isn't it better to run that instead of running a new onStoreDocument hooks chain?
This has made an issue in our use case where we have two types of connections; connections with write permission and read-only connections. Read-only connections are for the users with only read permissions and are not able to make any changes to the document. So our customized onStoreDocument logic should not be executed for this type of users/connections. But if a read-only user closes the last connection, onStoreDocument is called for this user, and our customized onStoreDocument fails (our downstream system rejects the update operation). This can cause data loss, as any previously debounced onStoreDocument by users with write permission are discarded.

Thanks for raising this, and more thanks for providing the pull request!
Will be released this week.


Replicating the bits / dim results in the original VQ-VAE paper

Hi,
thanks for your clean implementation ! I was wondering, have you ever tried to calculate the bits / dimension metric (as in the original paper) ? I've tried to do so using the provided code, and I'm still quite far from the results in the paper. I was hoping maybe you would have some insight to share as to why that is the case.
Thanks!
Lucas

@pclucas14 I haven't tried to do that but plan to... give me a few days to figure it out... I am trying to compile a table of bits/dim for MNIST/ Fashion-MNIST so I might as well start with this

great! let me know what you end up getting :)

Thanks! Here is where I am collecting the results: github.com/zalandoresearch/fashion-mnist#144

great! it's a very complete list, pretty cool :D

The best I got for VQ-VAE on CIFAR-10 was 5.00 BPD (using a unigram prior). This is still far from the results in the VQ-VAE paper. Hopefully you can manage to close the gap even more :)

Hi @kashif ,
could you provide the code you use to compute the bpd?
Thanks!

Wonder if there is code for proper bpd computation? If so, can you please share?


[Proposition] Rename security interface

Motivation
One element I missed in my previous PR was renaming top level interface.
I think we should:

define interface names more carefully
avoid using implementation specifics for interfaces
avoid using shorthands for names (prop => Property, Auth => Authorization)

Security interface
In this particular case Auth interface suggest that we may deal with Authentication or Authorization. Shorter name causing confusion etc. Our interface is doing both so best to find more top level name. My suggestion in changes.
Community voting
Vote 👍  👎
Comments for names.

:+1:

👍

+1

👍

Thanks to everyone for voting  :1st_place_medal:
We going to incorporate changes in separate PR

@wtrocki Actually, one small comment, should it be SecureEndpoint rather than EndpointSecurity?
To me, PassportAuth implements SecureEndpoint reads a bit better.


dependency ignoring (older) already installed version

Please note we will close your issue without comment if you delete, do not read or do not fill out the issue checklist below and provide ALL the requested information. If you repeatedly fail to use the issue template, we will block you from ever submitting issues to Homebrew again.
Please always follow these steps:

[X] Confirmed this is a problem with running a brew command and not brew installing or the post-install behaviour of one or more formulae? If it's a formulae-specific problem please file this issue at the relevant tap e.g. for Homebrew/homebrew-core https://github.com/Homebrew/homebrew-core/issues/new
[X] Ran brew update and retried your prior step?
[X] Ran brew doctor, fixed all issues and retried your prior step?
[X] Ran brew config and brew doctor and included their output with your issue?

$ brew config
HOMEBREW_VERSION: 1.3.1
ORIGIN: https://github.com/Homebrew/brew
HEAD: 69799d97b1e7314912b2ee234dec2c179c5fb969
Last commit: 3 weeks ago
Core tap ORIGIN: https://github.com/Homebrew/homebrew-core
Core tap HEAD: 793b4238aab2066d3d67cd8f9447a1e30074bc05
Core tap last commit: 3 hours ago
HOMEBREW_PREFIX: /usr/local
HOMEBREW_REPOSITORY: /usr/local/Homebrew
HOMEBREW_CELLAR: /usr/local/Cellar
HOMEBREW_BOTTLE_DOMAIN: https://homebrew.bintray.com
CPU: octa-core 64-bit skylake
Homebrew Ruby: 2.0.0-p648
Clang: 8.1 build 802
Git: 2.11.0 => /usr/local/bin/git
Perl: /usr/bin/perl
Python: /usr/local/bin/python => /usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/bin/python2.7
Ruby: /Users/cody/.rubies/ruby-2.4.1/bin/ruby
Java: 1.8.0_121
macOS: 10.12.6-x86_64
Xcode: 8.3.3
CLT: N/A
X11: 2.7.11 => /opt/X11

$ brew doctor
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry and just ignore them. Thanks!

Warning: Homebrew's sbin was not found in your PATH but you have installed
formulae that put executables in /usr/local/sbin.
Consider setting the PATH for example like so
  echo 'export PATH="/usr/local/sbin:$PATH"' >> ~/.bash_profile

I'm trying to install pex, which has a dependency on postgresql, of which I have<EMAIL_ADDRESS>installed, and brew info pex shows that the dependency is satisfied, but if I try to brew install pex, it starts downloading the latest postgresql anyway.
To repro:
brew install<EMAIL_ADDRESS>brew install pex

More details of the installed packages:
$ brew info<EMAIL_ADDRESS><EMAIL_ADDRESS>stable 9.5.8 (bottled) [keg-only]
Object-relational database system
https://www.postgresql.org/
<EMAIL_ADDRESS>(3,173 files, 35.3MB)
  Poured from bottle on 2017-08-29 at 10:23:40
From<EMAIL_ADDRESS>...

$ brew info pex
pex: stable 1.20140409 (bottled)
Package manager for PostgreSQL
https://github.com/petere/pex
Not installed
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/pex.rb
==> Requirements
Required: postgresql ✔
...

$ brew install pex
==> Installing dependencies for pex: postgresql
==> Installing pex dependency: postgresql
==> Downloading https://homebrew.bintray.com/bottles/postgresql-9.6.4.sierra.bottle.tar.gz
...

I'm trying to install pex, which has a dependency on postgresql, of which I have<EMAIL_ADDRESS>installed, and brew info pex shows that the dependency is satisfied, but if I try to brew install pex, it starts downloading the latest postgresql anyway.

Installing bottles means that the requirement's default_formula will always be used and installed. Either ignore the duplicated versioned installed or brew install pex --build-from-source to work around this behaviour.

yup, that works. it still would be nice if there was a warning when I installed pex along the lines of Ignoring versioned dependency<EMAIL_ADDRESS>due to bottle install. To force using this dependency, please use --build-from-source

Sigh. Same situation. Different package.
brew install postgis --build-from-source is still pouring postgresql 9.6.4 from bottle. It IS showing that postgresql dependency isn't satisfied though.
$ brew info postgis
brew info postgis
postgis: stable 2.3.2 (bottled), HEAD
Adds support for geographic objects to PostgreSQL
https://postgis.net/
Not installed
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/postgis.rb
==> Dependencies
Build: pkg-config ✔, gpp ✔
Required: postgresql ✘, proj ✘, geos ✘, json-c ✔, pcre ✘
Recommended: gdal ✘, sfcgal ✘

I think brew just really wants me to start using Postgres 9.6 ;)

brew install postgis --build-from-source is still pouring postgresql 9.6.4 from bottle.

Yes, postgisdoesn't support using arbritrary versions in Homebrew.

I think brew just really wants me to start using Postgres 9.6 ;)

It really wants you to have it installed, yep.


Fixed bug in dap.py - local call of function overwritten the input pa…

Hello,
I found bad hadling of now parameter in dap.py read_ap_multiple method.
Hope that this will be useful.

Hi @Gargy007 , did you see an issue caused by the original code? It was intentionally written that way so that the call to self.probe_read_ap_multiple() always returns a result callback, which then is always invoked in read_ap_multiple_cb(). The point is to a) simplify the number of code paths, b) ensure that the returned read callback is wrapped in the exception handler in read_ap_multiple_cb() when it is executed (so _handle_error() is called on an exception).


fix: transmit data from spring cloud config server controller to getEncryptor

attention point to methods
https://github.com/spring-cloud/spring-cloud-config/blob/main/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/encryption/EncryptionController.java#L93
https://github.com/spring-cloud/spring-cloud-config/blob/main/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/encryption/EncryptionController.java#L84
which always have same bug but could not be properly fixed due to missing data in Get request
Fixes gh-2252

Ping @RouxAntoine see feedback

Ping @RouxAntoine see feedback

hello, sorry for delay not so many time on my part I take a look

I just added two assert in a existing test. To check the key in encryptorLocator


v1.0.4 not available on bower

Version 1.0.4 is only available on npm.
We need this version, because 1.0.2 breaks if minified by uglify, could you please publish the latest version to bower?

+1

wow guys, I am so sorry - I did the version bump and created the tags, for the fixed version, and completely forgot to git push --tags! I've pushed them, so bower install should pull v1.0.4 now.


Text Extractor for foreign languages

Description of the new feature / enhancement
I want to know what Javanese text says but can't copy it with powertoys because powertoys only recognizes English letters
Scenario when this would be used?
When trying to translate foreign text to english
Supporting information
No response

you need to have that OCR engine installed.  https://learn.microsoft.com/en-us/windows/powertoys/text-extractor#adjust-while-trying-to-capture


File in use error after processing is finished

Hi Revan,
When you process a file, and the processing is finished, you can't delete the source file unless you
close staxrip.
Step To Reproduce the Problem

open a file for processing, use compressor x265 and qaac (or any)
Add job (only one job in the list), start job wait the job to finish
when finished  the job list is empty, the program window is empty also (no project)
try to delete the source file, Windows says you can not because the file is still
in use. So you need to close Staxrip program, although there is no project open.

Sorry for the double post with Stax76 issue#418, I thought you were still using Stax76 issue page.
And thank you very much.

That's due to dotnet 4.7.2, Windows 10 Security locks, You can just use Delete Temp Folder option, Which will remove the folder once it's done encoding.


Bugfix/slide in with existing remote

FIX: When origin/Y exists but not Y, sliding in Y under X creates Y of X's commit and not of origin/Y's commit
awaiting local branch with exponential timeout

presently experiencing an issue with
4:52 PM	The following branches defined by machete file do not belong to the local repository:: build-chain
appearing on the slide in with checkout & tracking branch setting
Fixed with an exponential timeout.

additional problem - compatibility problem appeared
shouldSetTracking (from GitNewBranchDialog) does not exist yet in 2020.1
assuming the following:

remote exists <=> set tracking
do not show the should set tracking checkbox

Issue #496 opened.

@mkondratek pls take a look at the following repo: scalapy-tensorflow.zip :thinking:
I've checked out develop and clicked Slide in below current; then inserted separate-examples as branch name.
Unfortunately, the new branch has been checked out from develop, not origin/separate-examples:

Plugin version 0.7.0-49-SNAPSHOT+git.45b6df3


Security alert that blocked my Apple ID

On my Mac on Sonoma, the SIP was already disabled.
I turn it off for my work as a developer.
I launched your application to remove this icon.
The result was not joking to me, I reactivated the icon with your application.
Everything worked well.
I restarted the system and my Apple account was disabled.
I had to call Apple to request a reactivation of my Apple ID within 24 hours.
According to them, there was a security alert that blocked my Apple ID coming from your app…
Has anyone ever had this?

In macOS Sonoma 14.4 or later, you can hide the recording indicator on external displays without using Recording Indicator Utility. Learn more ↗


Refactor menu, and a whole bunch more

Total rewrite for component:sl-menu
Use ember-stream addon for event bindings in component:sl-menu
Remove service:sl-modal
Refactor of component:sl-modal to use ember-stream instead of service:sl-modal
Add utility functions to aid in using enums

Resolves #3, #4, #5, #6, #28, #30, #247, #248, #249, #347, #359

This is ready for further review.

rxjs dependency needs to be included in the blueprint

When expanding the "Main One" menu in the demo app, there is > character displaying to the right off, and slightly below the last "Sub One | Two" menu item.

The Tab and Shift+Tab cycle order is opposite of expected direction in the demo app.

The "Show All" option, when displayed, is not cycled through via the (currently bound) Tab key?

The width of the menu items displayed when selecting "Main One > Sub One | Two" does not accommodate the length of the "Sub One | Two One" and "Sub One | Two Two" text, causing it to wrap.

If you hover over a menu item (noticed it when doing so with "Main Two") and then select the Tab key, it cycles forward, compared to having used the keyboard shortcut to select the same menu and selecting the Tab key moves in the opposite direction expected (somewhat related to previous comment)

Hovering over a menu option and using Tab or Shif+Tab creates inconsistent behavior

Related to code comment about removing reference to any notice that the demo app is wired up for keyboard shortcuts and that they can be used, I can click on the "Main One > Sub One | One" menu option and get a message in the console but there is no way to trigger the same via keyboard shortcuts - I can navigate to it but cannot select the menu option, via Enter for example.

Select either 1, 2, or 3, then select 4, 5, etc and error is thrown about index

Select either 1, 2, or 3.  Is it expected that the up arrow then works to navigate through the menus?

Selecting either 1, 2, or 3 allows for any of these other values to be selected, selecting each respective menu for as many times as selected.  Selecting 0 however no longer allows the selection of any other menus via either 1, 2, or 3.

Select 1.  Select the down arrow.  Select either 2 or 3.  The top level menu item indicated is selected but the first menu remains expanded and highlighted.
In addition, if the second menu, for example, also has menu items and you do the same, having selected 2, and then you try to navigate using the down arrow, the command will be directed to the first menu that has remained expanded and not the one that was most recently selected.

Issue https://github.com/softlayer/sl-ember-components/issues/3 is not resolved by this PR, as your comment indicates

Select either 1, 2, or 3, then use either left or right arrows to cycle through top menu selections until "Show All" is landed upon.  Can no longer navigate with the arrow keys, though the tab key will continue to work.  Perhaps because the arrow keys weren't intended to work to begin with at the top level?

Selecting the number 4 selects the 3rd menu option, just as is the number 3 had been selected.


add unit test using embedded Jetty to test real http call

Signed-off-by: olivier lamy<EMAIL_ADDRESS>

Nice.
In general, all comments (doc or inlined comments) should start with a capital letter and finish with a period.