When archive download fails, only first puppet agent run fails

Example:
[root@netdot tmp]# puppet agent -t -v
Info: Using configured environment 'development'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Loading facts
Info: Caching catalog for netdot.example.com
Info: Applying configuration version 'fa03611fb58d7b4c0465bc74b60da9177dab75a8'
Notice: /Stage[main]/Vmwaretools::Install/File[/tmp/vmwaretools]/ensure: created
Notice: /Stage[main]/Vmwaretools::Install::Archive/File[/tmp/vmwaretools/download.sh]/ensure: defined content as '{md5}4f98bdc7ccbf32e4f427a2cf17fe7bdd'
Info: /Stage[main]/Vmwaretools::Install::Archive/File[/tmp/vmwaretools/download.sh]: Scheduling refresh of Exec[download_vmwaretools]
Notice: /Stage[main]/Vmwaretools::Install::Exec/Exec[download_vmwaretools]/returns: Checksum mismatch. Got e6276447e1b29813443e2a3214cc42fd, should have been 370c21913c7f21bd9900bb91563feeaf -- removing downloaded archive.
Error: /Stage[main]/Vmwaretools::Install::Exec/Exec[download_vmwaretools]: Failed to call refresh: /tmp/vmwaretools/download.sh returned 1 instead of one of [0]
Error: /Stage[main]/Vmwaretools::Install::Exec/Exec[download_vmwaretools]: /tmp/vmwaretools/download.sh returned 1 instead of one of [0]
Notice: /Stage[main]/Nrpe/Service[nrpe_service]/ensure: ensure changed 'stopped' to 'running'
Info: /Stage[main]/Nrpe/Service[nrpe_service]: Unscheduling refresh on Service[nrpe_service]
Notice: Applied catalog in 2.36 seconds
Next time we run the agent we get:
[root@netdot tmp]# puppet agent -t -v
Info: Using configured environment 'development'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Loading facts
Info: Caching catalog for netdot.example.com
Info: Applying configuration version 'fa03611fb58d7b4c0465bc74b60da9177dab75a8'
Notice: /Stage[main]/Nrpe/Service[nrpe_service]/ensure: ensure changed 'stopped' to 'running'
Info: /Stage[main]/Nrpe/Service[nrpe_service]: Unscheduling refresh on Service[nrpe_service]
Notice: Applied catalog in 2.22 seconds
[root@netdot tmp]#
When we remove /tmp/vmwaretools the error returns
Running the download script results in:
[root@netdot tmp]# /tmp/vmwaretools/download.sh
Checksum mismatch. Got e6276447e1b29813443e2a3214cc42fd, should have been 370c21913c7f21bd9900bb91563feeaf -- removing downloaded archive.
[root@netdot tmp]# wget http://files.example.com/vmware/VMwareTools-10.0.5-3227872.tar.gz
--2016-04-07 13:19:19--  http://files.example.com/vmware/VMwareTools-10.0.5-3227872.tar.gz
Resolving proxy.example.com (proxy.example.com)... X.X.X.X, XXX:XXX:X:XXX:XXXX::XX
Connecting to proxy.example.com (proxy.example.com)|<IP_ADDRESS>|:8080... connected.
Proxy request sent, awaiting response... 403 Forbidden
2016-04-07 13:19:19 ERROR 403: Forbidden.
The problem was caused by a missing firewall rule, but I would expect that every agent run fails, and not only the first one
The code we use in our module:
if $is_virtual {
if $::manufacturer =~ /(?i:^vmware)/ {
class { 'vmwaretools':
version        => '10.0.5-3227872',
force_install  =>  true,
archive_url    => 'http://files.example.com/vmware',
archive_md5    => '370c21913c7f21bd9900bb91563feeaf',
}

Thanks for reporting this - it's unfortunately a chicken/egg problem as the exec to cleanup the directory is only triggered after a successful install.
I do have an idea on how to remove the directory after a failed download, but I'm away at the moment so unable to test - will let you know.

Thanks for your reply. I will test your fix as soon as possible, but I'm not in a hurry, just wanted to report this so it gets fixed one day :-)

Hi,
Huge apologies for the delay in looking at this - I have just added a new parameter to the module to force the download script to remove bad downloads, so now you can set clean_failed_download to true :)
Thanks,
Craig

No problem, thanks for the fix, I will give it a try
Kristof Van Doorsselaere
hoofdmedewerker server- en netwerkbeheer
Hogeschool Gent
Directie Financiën en ICT
Valentin Vaerwijckweg 1
BE-9000 Gent
T +32 9 243 35 20
HoGent.be
From: Craig Watson<EMAIL_ADDRESS>Reply-To: craigwatson/puppet-vmwaretools<EMAIL_ADDRESS>Date: Tuesday 21 June 2016 at 01:15
To: craigwatson/puppet-vmwaretools<EMAIL_ADDRESS>Cc: Kristof Van Doorsselaere<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [craigwatson/puppet-vmwaretools] When archive download fails, only first puppet agent run fails (#80)
Hi,
Huge apologies for the delay in looking at this - I have just added a new parameter to the module to force the download script to remove bad downloads, so now you can set clean_failed_download to true :)
Thanks,
Craig
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.


How to build flexx app to .exe?

Simple Code:
from flexx import flx

class Example(flx.Widget):
    def init(self):
        flx.Button(text = "hello")
        flx.Button(text = "world")
        flx.Button(text="!")

app = flx.App(Example)
app.launch()
flx.run()

It run ok in IDE.
Then I try to compile it to exe through PyInstaller: PyInstaller Example.py
And then run that exe, but it show up below error.
Traceback (most recent call last):
  File "site-packages\pscript\functions.py", line 77, in py2js_
  File "inspect.py", line 955, in getsourcelines
  File "inspect.py", line 786, in findsource
OSError: could not get source code

Help Needed:

How to successful build the exe and run?
I already setup venv, but the dist size still huge, anyway to thrink the size?

Thanks.

According https://flexx.readthedocs.io/en/stable/freeze.html
At last I can build the app to .exe, and can run successfully.
However, it seems need copy the flexx source folder and mywidgets source file to that dist.
Anyway to hide or mix the widgets python source file?   Thanks.

Sorry, I don't understand that last question :)  You need to make sure that your source files are in the /source directory of the binary that you build with PyInstaller. Flexx has a convenience to copy modules there (flexx.freeze.copy_module), but you can copy your modules any way you like (including manually).

But I don't want end user to so easily watch my source (exclude FlexxUI).  Anyway to compile the source to byte code?  Instead of the "human easy read text".py  thanks.

The thing is that flexx itself needs the source code so it can compile it to JS. What you could do is split the code for flexx widgets from the server side stuff, and only add that to the source dir. This is will also help keep the code nicely separated, so it may help keep the code maintainable too ;)

Thanks for feedback.  But this is desktop app. Not server/client app.


Fix for verbose logging of newly introduced types

lol, you shouldn't have reminded me! one last thing: can you add a unit test for this function? We're obviously no where near this, but I'd like to get us to a point where new/updated unit tests are an anticipated part of PRs. don't hesitate to remind me to add tests too if I get lazy


Expose summarizer API to be able to be called directly from JS / other plugins

ref: https://forum.obsidian.md/t/inter-plugin-communication-expose-api-to-other-plugins/23618
Right now the only way to use this plugin is via the command palette.
It would be nice if we could expose the API so that we can call it from elsewhere.
E.g. I have a Templater snippet where I get youtube video information and at the end, I want to invoke the summarizer.
<%*
let url = await tp.system.clipboard();
var ys = app.plugins.plugins['youtube-summarizer'];
console.log("youtube-summarizer-plugin", ys)
const summary = ys.api.summarize(url)
%>
### Summary
<% summary %>

Aside from my example, this would open up more usage opportunities across other plugins.

Did you make it working? How?


Streaming Sensor Data

How can i stream the sensor data directly to python so i can process the data? I've tried using WebRTC but the documentation is outdated. I was able to stream the RGB camera using the API provided by Microsoft but i would also like to stream the depth cameras.

I read about this but i did not tried yet but you maybe could give it a shot.
https://github.com/cgsaxner/HoloLens2-Unity-ResearchModeStreamer


Endpoint /tokens/zone missing in the HTTP API reference

What happened?
Seems like endpoints are not updated correctly because we can still see token/zone-ingress which was removed lately, and we misstokens/zone https://kuma.io/docs/2.7.x/reference/http-api/

As bad as this is I would argue for not fixing this by any other way than openAPI spec being published


feature: option to unset the value during plugin spec merging

Did you check the docs?

[X] I have read all the lazy.nvim docs

Is your feature request related to a problem? Please describe.
Currently, there is no documented way to unset the plugin spec option during merging. Specifically, the string? type options are problematic.
Right now, AstroNvim pins the nvim-cmp version because of an issue with cmdheight=0. They use the commit option in the plugin spec. I do not use cmdheight=0 and want to move fast and break things, so I want the latest version of nvim-cmp. But, there is no way to unset the option.
I can technically achieve this by setting the commit = false in my config, but this only works because of if plugin.commit then ... in lazy.nvim. But I found this solution in the source, this is not documented. This is a band-aid solution that works for this exact option.
Because of how lua works, setting commit = nil in my overrides will do nothing. Setting commit = "" will break the spec, as "" is considered a truthy value, and having an empty commit is not the intention (did not try what will happen, though). And, as far as I can tell, not all plugin spec options check for a truthy value before taking action.
Describe the solution you'd like
lazy.nvim can provide a "sentinel" value that can be used in place of all or some plugin spec options. Using such a value in a plugin spec will signal to the merging algorithm that the value should be unset (value = nil in the resulting table).
For example, in my nvim-cmp spec I would like to be able to write commit = require("lazy").unset, and be sure that I will not be pinned to the concrete commit.
Describe alternatives you've considered
Alternatively, a new option can be added to the plugin spec - unset: string[]?, where I can list the options that I want to be upset.
For example, unset = { "commit" }.
Additional context
No response

Commit=false.
Please next time use the GitHub discussions for user related questions


Reuse the same RoundedCornerShape for NewsResourceCardExpanded and NewsResourceHeaderImage

Fixes #15

Before
After
Diff

thanks for spotting the bug and putting in a fix! added a question


Shared/Saved Custom Queries

Hi friends!
We're doing some initial exploring of BHC. I happened to notice that a "Saved Custom Queries" menu appears to be missing. Below is a screenshot roughly where I'd expect it to be.

It'd be awesome if this exists and could be shared across multiple users as well so our whole team could have access to relevant queries. Would it be possible to get this road mapped? Let me know in case it already exists and if I'm missing something super obvious!
Thank you and keep up the good work <3

We currently have saved custom queries on our list of follow up features. I don't know that we've considered the ability to share custom queries among users, but it's certainly some thing we can discuss. Thanks for the feedback!


Plugin generators

Provide a series of source generators to make working with Indigo and it's assets easier. This PR includes:

Config: Generates a Scala module with a GameConfig instance that is synchronised with your build settings (view port and background colour).
Asset listing: Generates a Scala moduke listing all your assets, respects folder structure, and provides helpers like sets of assets to load and accompanying simple materials etc.
Embed text: ...from any text file into a Scala module.
Embed GLSL shader pairs: Takes a vertex and fragment shader pair and embeds them into a Scala module
Data: Embed's (for instance) CSV or Markdown tables as either Enum's or Maps

I think this is there now, I'm going to test it on the Roguelike to double check it works as expected.

This has been tested and extensively expanded / improved through the process of using it on the roguelike in this PR: https://github.com/davesmith00000/roguelike/pull/30


Transaction data is still decoded even if sent to an EOA account

Describe the bug
If you encode transaction data for a function we know (approve, transfer, safeTransferFrom, etc.) and send it to an EOA address, we still decode the transaction data
To Reproduce
Steps to reproduce the behavior:

Post a transaction to the backend with the ERC20 transfer function as tx data and EOA as a recipient
Then make a GET request for the safeTxHash

Expected behavior
Open for discussion, but maybe don't decode such transactions
Environment (please complete the following information):

Staging or production? production
Which chain? the user reported on polygon, but I think it applies to all chains

For example tx please message me privately

This is currently expected behavior. Checking if there is a contract at a specific address before decoding adds an additional overhead. Also even if there is not contracts the decoded data is technically bot wrongly decoded. Therefore we decided to keep it as is.
Note: we discussed this as part of the malicious multisend decoding.

This is currently expected behavior. Checking if there is a contract at a specific address before decoding adds an additional overhead. Also even if there is not contracts the decoded data is technically bot wrongly decoded. Therefore we decided to keep it as is.
Note: we discussed this as part of the malicious multisend decoding.

Should we add a warning on the client-side instead, maybe?

Should we add a warning on the client-side instead, maybe?

In what flow would this occur, when the user did not manually trigger this?

In what flow would this occur, when the user did not manually trigger this?

The user who reported this created such a transaction with tx builder, which makes me think we could also improve it on tx builder level (makes sense given we expect to move the contract interactions there).
I think it could be a minor feature that could potentially save money for some users

The user who reported this created such a transaction with tx builder, which makes me think we could also improve it on tx builder level (makes sense given we expect to move the contract interactions there).
I think it could be a minor feature that could potentially save money for some users

Sure, might make sense there. But this means the user manually added the abi (as it would not auto load this abi for an address). This is a quite advanced action. But the transaction builder will be reworked anyways, so to might make sense to consider it as part of this.

Sure, might make sense there. But this means the user manually added the abi (as it would not auto load this abi for an address). This is a quite advanced action. But the transaction builder will be reworked anyways, so to might make sense to consider it as part of this.


Non-deterministic CSS generation

iterdir yields the elements of a directory in an arbitrary order. That means that the SCSS here can end up with the imports in different orders on different machines.
https://github.com/lemonsaurus/django-simple-bulma/blob/f26264f2155bc30f8afc5153e9245937193c33da/django_simple_bulma/finders.py#L116-L122
This means the resultant CSS can vary in order which can affect the way pages are styled.
This shouldn't be too hard to fix, but what should the order be fixed to? Is there a correct order, or should we just fix it to e.g. alphabetical, or try to work out if there's an order that's most common currently?
It may also be worth looking for other similar code that might have the same issue.

For some context, I noticed this on https://www.pythondiscord.com/resources/, as there the titles are in bold

but locally for me they weren't.


How to update tokens after adding nodes to cluster

Hi,
Trying to find an answer in the archives, but only got an issue with "doubling the cluster" in wiki is empty.
Currently, we're evaluating Priam for our C* clusters in Xively and I'm wondering what's the easiest way of adding new nodes to a running cluster and especially how to do this properly in a multi-hundred-node cluster.
Working with manual token assignment (not using vnodes, because Priam doesn't support it), after adding a new node, I've to calculate new tokens and move nodes one-by-one. The quickest way looks like is that calling Priam's /move endpoint on each node and do the same with /cleanup as well.
Is there a better way implemented in Priam doing the same?
Question B is still: how to double the cluster size with Priam, because in that case token assignment is a bit easier?
Thanks,
Andor

Hi Andor,  will engage my colleagues at Netflix and get back to you.
Regards

Hi Vinh,
Do you have an answer for this?

I believe InstanceIdentity should be updated with the new token in SimpleDB by the /move endpoint, but according to the latest sources this is not the case.

Hi Vinh,
Do you have an update on this thread?
Thanks,
Andor

Hi Andy, sorry for the delay.  I will try to spend time to research and
answer your questions.
-Vinh
On Tue, Aug 30, 2016 at 4:26 AM Andor Molnár<EMAIL_ADDRESS>wrote:

Hi Vinh,
Do you have an update on this thread?
Thanks,
Andor
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/Netflix/Priam/issues/493#issuecomment-243410038, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ADNEbZXZnJcXRCDk2NaopmdXQ-3cTy7Tks5qlBN6gaJpZM4I4A8F
.

Any luck on this? Currently we have to update SimpleDB manually.

Hi BlueDragonX,
Yes that's still the case. The idea is that you should always double the cluster with Priam rather than adding nodes one-by-one.
Andor

That seems like a poor reason to cripple this feature. Why have a move endpoint at all, then, if that's the thinking?

Just to provide more context.
Why not add node instead of doubling?  Doubling the cluster ensures balance of data.
Why not use v-nodes?  v-nodes have its advantages but for Netflix, it has one critical flaw, token range offline.  Specifically, there is a possibility of replication residing in same zones.  Hence losing the zone will result in token range offline.

I know why doubling is better. That doesn't address the issue of move bot behaving the way it should. Either implement it correctly or remove it.
That aside, in my experience using the double ring endpoint does not result in a balanced cluster. As a result I have to move nodes. I thought this was by design, but based on this discussion that doesn't seem to be the case.

No, double-ring endpoint works properly for us (Xively), so you might have misconfigured something or you have a wrong ASG setup.
/move endpoint however should be extended with an update in SimpleDb, because currently it only forwards the request to nodetool.
It would be nice if someone could create PR on that.


Remove "Choose a Session" from Group Participant mode after initial screen

Fixed: https://github.com/jss367/calibration_trivia/pull/21


Automatically fix any code style issues

This moves the code style tests into a separate GitHub workflow, where it will automatically fix any correctable issues and commit and push them, and then re-run the code style tests to see if there are any remaining issues.

Hmm, this seems to commit all the gems within a vendor/ folder. Need to avoid that...


fix release notes for version updates

The previous tag was not being set correctly when comparing between the previous tag and latest tag to form release notes.

(see here and here... overlap between pr history)


Adding react router

React router and backbone abstraction
Description

[x] define what's common between backbone and react router
[x] add an abstraction to it

Code

@GuenoleK , can you take my comment into account and maybe discuss with me on the PR.
cc @Ephrame

@GuenoleK can you add sample code in the PR.
Thanks for your work.

@GuenoleK Also , don't forget to rebase

@pierr
The actual code works good for react-router.
Concerning backbone, i got now some problems on the navigation
With Backbone working good i got this :

But with the actual changes, the History.started dosen't stay at true :

@pierr it actually was a context problem. In fact we have to see this global variables problem together.
Actualy, with this latest version the function :

 back() in history back works properly. It's it the global variables and do the job it has to

navigate() got a big context problem. It works on a menu when you give the route path in the route button props. But as a link juste using, for example : navigate('#", true) to go at the home page, it has the wrong context. So it doesn't do anything and we got what i showed you in the previous screenshots. History.started is false because the this is the Window. It should be Backbone.History or, at least, window.Backbone.History

@GuenoleK Thanks for the feedback.
It look that you have two copies of Backbone. It seems the router are linked to a wrong copie of Backbone.
Try to look into Backbone.history.handlers
Maybe you can try to have all the function set from the same backbone instance.
setRouterFunction(window.Backbone)
setNavigate(window.Backbone.navigate)


Update @patternfly/react-core for menu fixes

Closes RHOAIENG-11967
Closes RHOAIENG-11118
Description
Update version of @patternfly/react-core to pickup fixes for dropdown and select to prevent inadvertent scrolling when the menu is opened.
How Has This Been Tested?
Tested locally
Enable connection types
Edit a connection type with enough fields to make the list scroll so that some items are not seen at the top of the page.
Scroll down to the initially non-visible fields.
Open the kebab menu for the fields, verify the menu opens and is visible.
Add a drop down field as one of the fields that are not visible initially.
Open the connection type preview pane.
Scroll down and open the dropdown from the dropdown field.
Verify the menu opens and is visible
Test Impact
None, this is a small change to the timing of the opening of the menu.
Request review criteria:
Self checklist (all need to be checked):

[x] The developer has manually tested the changes and verified that the changes work
[x] Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
[x] The developer has added tests or explained why testing cannot be added (unit or cypress tests for related changes)

/lgtm
/approve


Update smoke-tests with new call for playwright

Now that we know that we can install just the dependencies for chromium to speed up the process, I would suggest that we optimize our smoke-test workflow to use the faster chromium install options (instead of installing all the options)

reverting this change


Working with turbolinks

I wonder if theres a way to get this to play nice. In my rails 5 app on first load - shows the editor - but navigation away and back to the same page - the editor is no longer visible. Turning off turbolinks fixes this issue.
Any thoughts welcome.

I'm having a similar issue. On first load the editor is not visible, but when once I reload the page it becomes visible.

Same issue here.. First load invisible, then visible after reload. Did you fix the issue?

I used a workaround (described in readme): to add data: { turbolinks: false } html option to all external links to the page with editor.
If someone makes a proper fix, please feel free to create a PR.

I used a workaround (described in readme): to add data: { turbolinks: false } html option to all external links to the page with editor.

This is not an optimal solution as you are then disabling Turbolinks for the whole page.

Sean, your statement is not entirely correct. The parameter disables use of Turbolinks to follow the link, however they remain enabled on both linked and linking pages.
That said, I entirely agree that it is not a good solution and will welcome a PR.

@paul-at really, OK that's news to me. I had thought the whole page would be inactivated, but happy t be corrected.
The docs are not super-clear here.


issue on Edge browser

I try to implement eager-image-loader with angularjs + requirejs, but IE or Edge not working. (It works in both chrome and firefox)
<img src="https://media.giphy.com/media/3oEjI6SIIHBdRxXI40/giphy.gif" ng-click="vm.showImages($event, x + 1)" data-src=" {{vm.getCaseImageId(x)}}" onerror="src='/Content/images/photo-not-avalable.jpg'" >
at angularjs
  define(['angularAMD',  'eagerImageLoader'], function(angularAMD){         angularAMD.controller(controllerId,  function() {              var vm = this;         vm.getCaseImageId = function(){               do something after return src                => return src = http://www.xxxx.com/api/media/...        } }

Hi @huannguyenfit, thank you for the report.
So, what does the "not working" mean? An error occurred, just that doesn't start, etc.

Hi. It doesn't start, just  show loading image only

Both IE and Edge worked fine in my environment.
Try this example:
https://jsfiddle.net/q5j6yszL/

Or, open this page via IE and Edge.
https://anseki.github.io/eager-image-loader/

No reply came, and I close this issue.


Blueprint vars should use theme defined vars

Closed via https://github.com/QardsJs/qards/commit/8b365f089f40ffc8ce220e9ab3375fc2d1ffedd6


Multiline string rules

This could be either a single, configurable rule, or a series of rules, that performs checks on the contents of multiline strings.
Expected Behavior of the rule

Check for consistent indentation type (could be done in one of two ways - either check where a mix of indentation is used so it's not a mix of tabs & spaces, or have a rule that enforces either tabs or spaces)
Check for trailing whitespace on each line
When using trimIndent() or trimMargin() check that the left-most indentation is indented x characters from the enclosing element
Check that every multiline string uses either trimMargin() or trimIndent() - Kotlin Coding Conventions doc says "To maintain indentation in multiline strings, use trimIndent when the resulting string does not require any internal indentation, or trimMargin when internal indentation is required"

We could also have a rule that checks for use of \n in a regular string literal and recommend converting to a multiline string, as the Kotlin Coding Conventions says "Prefer multiline strings to embedding \n escape sequences into regular string literals."
Context
The above rules would identify inconsistencies in use of multiline strings, and were inspired by the current use of multiline strings in detekt's test sources.
I'll also note that KtLint won't address any of the above, as they have said in https://github.com/pinterest/ktlint/pull/1052 that they do not want to change the content of any strings in their rules, so this is not in their scope.

Yup this sounds like a valid rule to add to me 👍

@BraisGabin  I want to work on this
Would love to contribute

Assigned to you @gunishmatta 👍

Personal preference, but I think these should be individual rules, rather than a single rule with multiple config options.
Anyone else have an opinion on this?

Personal preference, but I think these should be individual rules, rather than a single rule with multiple config options.
Anyone else have an opinion on this?

+1 on this. Let's make them separate as it's easier to test/review/maintain

@gunishmatta did you get any progress?

And I have a question which should be the correct way to indent a multiline string:
"""
    hello!
""".trimIndent()

or
"""
hello!
""".trimIndent()

If we go with the first one we need a configuration for the indentation size.

Reading the Coding Conventions, I interpret it to be the regular 4 space indent to the previous expression such as:
val a = """
    hello
    """.trimIndent()
// or
val a =
    """
    hello
    """.trimIndent()

// and
val b = a.let {
    it + """
        hello
        """.trimIndent()
}

Unfortuately the trimMargin example seems to follow a slightly different rule.

I'm working on:

When using trimIndent() or trimMargin() check that the left-most indentation is indented x characters from the enclosing element

But I have an idea for other rule. Forbid this type of things:
val a = """Hello World!
    How are you?
""".trimIndent()

and
val a = """
    Hello World!
    How are you?""".trimIndent()

It should be:
val a = """
    Hello World!
    How are you?
""".trimIndent()

In words: if the raw string is not a single line:

After openingn """ there should be a \n
Before the closing """ the line should only contain spaces ( ).

What do you think about a raw-string rule-set? I think that I can implement 5 or 6 rules related with raw-stings based just on this issue.

Pro: This will group all the rules related with this topic and a user could disable all at once.
Pro: less rules to "detekt-style"
Con: We add a new rule set for a single language feature.

Hi @BraisGabin, is there any un-implemented rule from this issue? To me it seems all have been implement

Yes I feel this is done. If something is missing I think that a new issue will help to understand what should be done.


admin: ActionRolesView actions addition

Adds actions dropdown to the ActionRoles admin view.

Signed-off-by: Javier Martin Montull<EMAIL_ADDRESS>

LGTM :+1:

Merged via #113


Differences between client.compute and dask.compute

Describe the issue:
Currently I am seeing discrepancies between blocking and sync compute calls (only in Jupyter environments). Specifically:
dask.compute(my_delayed_function, client=dask_client)

runs fine; however
dask_client.compute(my_delayed_function)

leads to serialization issues (TypeError: cannot pickle '_asyncio.Task' object). I realize that client.compute runs async but it is odd to see one able to serialize my graph and not the other. I see this consistently across different types of local clients all within Jupyter/ipython environments, but cannot replicate in normal python runtimes.
Minimal Complete Verifiable Example:
I am still working on an isolated MRE, but Martin Durant encouraged me to open the issue while I am working on one.
Anything else we need to know?:
I have a suspicion that my particular serialization issues are due to https://github.com/pydantic/pydantic/issues/8232 and not Dask; however, the different handling between compute calls is still odd. I am also a little outdated and will try to upgrade all of my relevant deps.
Environment: Jupyter

Dask version: 2024.6.2
Python version: 3.11.9
Operating System: Ubuntu 22.04.5 LTS
Install method (conda, pip, source): poetry

name = "dask"
version = "2024.6.2"

name = "jupyter-client"
version = "8.6.2"

name = "jupyter-core"
version = "5.7.2"

name = "ipython"
version = "8.28.0"

name = "cloudpickle"
version = "2.2.1"

For what it's worth, upgrading to:
cloudpickle = "^3.1.0"
dask = "2024.10.0"
pydantic = "^2.9.2"

Fixes the serialization issue

Hi @andonimichael -  Are you still working on a reproducer?
Side note: If this indeed a dask issue, the fix will probably need to be in https://github.com/dask/distributed

Closing tis for now, please ping to reopen if you have a reproducer


Contributing.MD should be more descriptive.

It should have steps to setup the project, run pods, and also explain the example and tests.
First timers face issues while building the project and a detailed step-by-step guide can be really helpful.

I though about the exact same thing, after seeing you struggling a bit. So you want to write down the things that were most important to you and then we figure how we want to add them to the Contributing?


Extension loading ignores extensionHomePath

From @Tyriar
I did notice that my normal extensions were being loaded in from the default directory with both of these:
code-insiders --user-data-dir ~/test-data-dir --extensionHomePath ~/test-extension-path .
code-insiders --user-data-dir ~/test-data-dir --extensionHomePath=~/test-extension-path .

@joaomoreno I cannot reproduce this anymore. However I see it when you have a window already open, you cannot bring up another window with the extensions from that folder.

Yes this seems to work fine for me too...

Likely the root cause for this: https://github.com/Microsoft/vscode/pull/15448


How to convert the screen coordinate to pdf page coordinates ?

I want to implement text selection, the key step is:

the user touch the screen, and i get the screen coordinates;
convert screen coordinates to page coordinates
get text from current page with coordinates

But i can't get the right page coordinates, so that i get the correct text. Anyone can share some workaround ?

@hehonghui hi, I have the same demand with you, can you tell me, how do you solve it?


strict mode error when implementing interface method overloads

I'm trying to implement IPromise:
public class FakePromise : IPromise
{
	public void Then(Delegate fulfilledHandler)
	{
	}

	public void Then(Delegate fulfilledHandler, Delegate errorHandler)
	{
	}

	public void Then(Delegate fulfilledHandler, Delegate errorHandler, Delegate progressHandler)
	{
	}
}

but I get a browser error: unallowed multiple properties definition in strict mode
I think it's because it gets transpiled to:
ss.initClass($FakePromise, $asm, {
		then: function(fulfilledHandler) {
		},
		then: function(fulfilledHandler, errorHandler) {
		},
		then: function(fulfilledHandler, errorHandler, progressHandler) {
		}
	});

That's an unintended consequence.
I think that if you use the roslyn branch, things will work better in this case (because there is only one Then method, which is possible due to improved optional arguments support)

You might get away with specifying [NonScriptable] on some of the methods in your implementing class.

yes, that fixes it.


Adding a Python version

I have made a Python version. Can we add that in this project as well? Perhaps make two separate folders for Ruby and Python projects :question:

Closed by #5


role is not idempotent for CentOS7

task
- name: restart tmpfiles service
  command: systemd-tmpfiles --create
  when: ansible_distribution_major_version == '7'

reports "changed" every ansible run

added the creates option to check if folder is already there


Introduce code names for releases

Currently we are thinking of naming releases after Marvel comic characters: http://marvel.com/comics/characters since we like the Avengers :)
I personally would like to reserve Avenger names for major releases.
I propose the following code names

1.0.6 - Yellow Claw
1.1.0 - Loki
1.2.0 - Ink

When building the criteria builder factory, we will log the code name and the version as info message.


Update introduction.md

Clean up the /mex url

🚀 Deployed on https://659edb70c903200b5aa5ac83--cozy-fox-0defec.netlify.app


Wrong Xcode version being selected

Context:
On GitHub Actions, the following Xcode versions are available:
https://github.com/actions/runner-images/blob/main/images/macos/macos-12-Readme.md#xcode

Version
Build
Path

14.1 (beta)
14B5024h
/Applications/Xcode_14.1.app

14.0.1
14A400
/Applications/Xcode_14.0.1.app

14.0
14A309
/Applications/Xcode_14.0.app

Setting the workflow file to the following:
    steps:
      - name: Setup Xcode version
        uses<EMAIL_ADDRESS>        with:
          xcode-version: 14.0

Results in the following:

I noticed the version used is 2 years behind, will update to the latest to verify.

The latest tagged version select Xcode 14.0.1 instead of 14.0 (as defined in the workflow file).

After reading the documentation the workflow file was adjusted to wrap the version in single quotes:
steps:
      - name: Setup Xcode version
        uses<EMAIL_ADDRESS>        with:
          xcode-version: '14.0'

Which produces the following results:

i updated x-code version as 14.0 on Github action but this version didn't work for me.
Error: Could not find Xcode version that satisfied version spec: '14.0.1'

i updated x-code version as 14.0 on Github action but this version didn't work for me. Error: Could not find Xcode version that satisfied version spec: '14.0.1'

https://github.com/actions/runner-images#available-images
macos-latest  sets the image to macOS 11, which does not support Xcode 14.

Hey @atrinh0 ,
I think the latest version of action (v1 tag) works as expected:

xcode-version: 14 -> 14.0.1 (latest 14.x version)
xcode-version: 14.0 -> 14.0.1 (latest 14.x version)
xcode-version: 14.0.0 -> 14.0.0 (exact version)
xcode-version: 14-beta -> 14.1.0 (add beta postfix to input if you would like to include beta)

You might be confusing the fact that 14.0 input selects 14.0.1 instead of 14.0 (14.0.0). But it is expected because this action provides semver notation for versions and 14.0 means 14.0.x. So 14.0.1 is selected instead of 14.0.0.
I think you want to specify xcode-version: 14.0.0 for your use-case
@BurakEmreGundes, you have a different problem. Looks like you use macos-latest image label that still points to macos-11. You should use runs-on: macos-12 to use the image with latest Xcode versions.

Thank you kindly for the information and prompt reply.


script setup: ref imported from a .vue file doesn't work after build

Version
3.0.4
Reproduction link
https://github.com/stephanedemotte/_issue-vue3-script-setup
Steps to reproduce
Create a fresh vitejs app
helloworld.vue
<template>

    HelloWorld [{{ isActiveTpl }}]

</template>

app.vue
<template>

    App [{{ isActive }}]

</template>

What is expected?
the value should be: true / false
What is actually happening?
After build the ref variable output a weird value
If i try to do isActive = !isActive on app.vue, i've got no error on dev, but got Error: Illegal reassignment to import 'isActive' when i try to build

Builded link
http://test-vue-export.gaidaandsteph.com/

Duplicate of #2699 and already fixed by 085bbd5fe07c52056e9f7151fbaed8f6a2e442b3 (not released yet)

But wasn't 085bbd5fe07c52056e9f7151fbaed8f6a2e442b3 included in v3.0.4?
The problem here only appears after bundling for prod

Yep, i've tested after the "fix"

Yep, i've tested after the fix

It work fine for me after the fix whether it's dev or build...

@CHOYSEN if you build my repo you didn't get that ?

@CHOYSEN if you build my repo you didn't get that ?
Yes, i clone your repo and build it, then start a server with koa, it work fine for me

@CHOYSEN if you build my repo you didn't get that ?

Yes, i clone your repo and build it, then start a server with koa, it work fine for me

@CHOYSEN  It's crazy you don't have
{ "_rawValue": false, "_shallow": false, "__v_isRef": true, "_value": false }

After the build ?
I cannot believe it :/ Can you share a screen ?

@stephanedemotte
I find it, you should remove your yarn.lock and node_modules, then run yarn again

@stephanedemotte
There are some vue3.0.3 information in the file, which should be caused by this

@CHOYSEN thanks a lot, and very sorry for the noise :)


Failing to discard a Potion crashes the bot

===============ISSUE SECTION===============
The bot tried to discard a potion and the message "[ItemRecycler] [INFO] Failed to discard Potion" appeared, but the bot crashed right after. It happened quite a few times, it almost seems like Niantic is trying to filter bot behavior...
Expected Behavior
The bot should not crash.
Actual Behavior
The bot crashes.
Output when issue occurred
Traceback (most recent call last):   File "pokecli.py", line 803, in <module>     main()   File "pokecli.py", line 161, in main     bot.tick()   File "/Users/KTachyon/Development/Independent/PoGoBot/PokemonGo-Bot/pokemongo_bot/__init__.py", line 685, in tick     if worker.work() == WorkerResult.RUNNING:   File "/Users/KTachyon/Development/Independent/PoGoBot/PokemonGo-Bot/pokemongo_bot/cell_workers/recycle_items.py", line 170, in work     this_worker_result =  self.recycle_excess_category_max(self.max_potions_keep, [101,102,103,104])   File "/Users/KTachyon/Development/Independent/PoGoBot/PokemonGo-Bot/pokemongo_bot/cell_workers/recycle_items.py", line 210, in recycle_excess_category_max     if inventory.items().get(item[0]).recycle(item[1]) == WorkerResult.ERROR:   File "/Users/KTachyon/Development/Independent/PoGoBot/PokemonGo-Bot/pokemongo_bot/inventory.py", line 219, in recycle     raise Exception('Tried to remove more {} than you have'.format(self.name)) Exception: Tried to remove more Potion than you have [2016-09-07 17:56:36] [MainThread] [sentry.errors] [ERROR] Sentry responded with an error: 'ascii' codec can't decode byte 0x9c in position 1: ordinal not in range(128) (url: https://app.getsentry.com/api/90254/store/) Traceback (most recent call last):   File "/usr/local/lib/python2.7/site-packages/raven/transport/threaded.py", line 174, in send_sync     super(ThreadedHTTPTransport, self).send(data, headers)   File "/usr/local/lib/python2.7/site-packages/raven/transport/http.py", line 47, in send     ca_certs=self.ca_certs,   File "/usr/local/lib/python2.7/site-packages/raven/utils/http.py", line 66, in urlopen     return opener.open(url, data, timeout)   File "/usr/local/lib/python2.7/site-packages/future/backports/urllib/request.py", line 494, in open     response = self._open(req, data)   File "/usr/local/lib/python2.7/site-packages/future/backports/urllib/request.py", line 512, in _open     '_open', req)   File "/usr/local/lib/python2.7/site-packages/future/backports/urllib/request.py", line 466, in _call_chain     result = func(*args)   File "/usr/local/lib/python2.7/site-packages/raven/utils/http.py", line 46, in https_open     return self.do_open(ValidHTTPSConnection, req)   File "/usr/local/lib/python2.7/site-packages/future/backports/urllib/request.py", line 1284, in do_open     h.request(req.get_method(), req.selector, req.data, headers)   File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 1053, in request     self._send_request(method, url, body, headers)   File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 1093, in _send_request     self.endheaders(body)   File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 1049, in endheaders     self._send_output(message_body)   File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 891, in _send_output     msg += message_body UnicodeDecodeError: 'ascii' codec can't decode byte 0x9c in position 1: ordinal not in range(128) [2016-09-07 17:56:36] [MainThread] [sentry.errors.uncaught] [ERROR] [u'Exception: Tried to remove more Potion than you have', u'  File "pokecli.py", line 803, in <module>', u'  File "pokecli.py", line 161, in main', u'  File "pokemongo_bot/__init__.py", line 685, in tick', u'  File "pokemongo_bot/cell_workers/recycle_items.py", line 170, in work', u'  File "pokemongo_bot/cell_workers/recycle_items.py", line 210, in recycle_excess_category_max', u'  File "pokemongo_bot/inventory.py", line 219, in recycle'] Wed Sep 7 17:56:36 WEST 2016 Pokebot  Stopped. Press any button or wait 20 seconds to continue.
Steps to Reproduce
You will have to wait for the bot to pick up a potion from a pokestop and fail to recycle it.
Other Information
OS:
OS X
Branch:
dev
Git Commit:
1b8cf13ffa183962df4c0ddfe92e6a9906da236b
Python Version:
Python 2.7.11

Change to pokecli.py line 801 should fix this:
def parse_unicode_str(string):
    try:
        return string.decode('utf8')
    except (UnicodeEncodeError,UnicodeDecodeError):
        return string
```

But more importantly... why is the bot failing to discard a potion?

PR #5312 submitted to fix crash, not underlying discard error.


phpstorm does not recognize facade, even with ide-helper

hi there. i installed the ide-helper and tried stuff like that:
https://stackoverflow.com/a/51849199/1092858
but i am not able to make phpstorm recognize commands like this:
DigitalOcean::droplet()->getAll()
"droplet" and all other commands are unknown.
any idea ?
thanks!

rename subject

I'm not sure. Maybe try taking this up with the IDE helper package?

Pardon, what do you mean with "try taking up" and what exactly is the "ide helper package" for you? Thanks

i installed the ide-helper

You said you'd tried the IDE helper package. Please report to them that it is not picking up the methods from the facades in this package.

@michabbb you can work around this by doing:
/** @var \DigitalOceanV2\DigitalOceanV2 $do */
$do = DigitalOcean::connection('main');

Now the intellisense on $do will work.

@CraigHarley thanks for your try to help, but your code has nothing to do with "recognizing facades", only with "recognizing what's behind a variable" 😏

Cool well feel free to create a PR to add the type hinting like this:
https://github.com/laravel/framework/blob/7.x/src/Illuminate/Support/Facades/DB.php#L6

@CraigHarley so what do you think is this: https://github.com/GrahamCampbell/Laravel-DigitalOcean/blob/master/src/Facades/DigitalOcean.php ???

There's no type hinting on that link.
An example is the line I linked to.

Like this:
@method static \Illuminate\Database\ConnectionInterface connection(string $name = null)


[deploy] added valid pypi token for auto-deployment from travis.

need to add credentials for pypi into travis.yaml. the detailed instructions can be found here:
https://docs.travis-ci.com/user/deployment/pypi/

Fixed 0af398f


[Performance]: use Python array to replace Python list for zero-copy tensor creation

Proposal to improve performance
For flexibility, lots of code in vLLM uses Python list.
The memory layout for a Python list of [1, 2, 3, 4, 5], is:
----
PyObject pointer --> PyLong(1)
----
PyObject pointer --> PyLong(2)
----
PyObject pointer --> PyLong(3)
----
PyObject pointer --> PyLong(4)
----
PyObject pointer --> PyLong(5)
----

This is because a Python list can hold arbitrary Python object.
When we use torch.tensor([1, 2, 3, 4, 5], dtype=torch.int, device="cuda"), there's two copy operation happening:

PyTorch has to collect all the data from scattered memory into a continuous memory area, i.e. a CPU memory segment holding 1, 2, 3, 4, 5 consecutively (40 bytes)
PyTorch launches an operation to copy the CPU memory to GPU memory, wraps it into a GPU tensor

There is a better alternative in Python, called array.array. It is very similar to vector type in C++, which can hold variable length data with the same type. Since the memory layout is already compact, we can directly create pytorch tensor from it, without copying, and then copy it to GPU. i.e., we can reduce the copy in step 1.
Here is some microbenchmark:
import array
import torch

# print header
print("N\tlist\tarray")

for N in [100, 1000, 10000, 100000, 1000000]:
    list_data = list(range(N))
    array_data = array.array('l', list_data)

    def create_from_list():
        tensor = torch.tensor(list_data, dtype=torch.int, device='cuda')
        torch.cuda.synchronize()
        return tensor

    def create_from_array():
        tensor = torch.frombuffer(array_data, dtype=torch.int).to('cuda')
        torch.cuda.synchronize()
        return tensor

    import time

    for _ in range(10):
        # warmup
        create_from_list()
    start = time.time()
    for _ in range(100):
        create_from_list()
    elapsed_list = (time.time() - start) / 100 * 1000 # ms

    for _ in range(10):
        create_from_array()
    start = time.time()
    for _ in range(100):
        create_from_array()
    elapsed_array = (time.time() - start) / 100 * 1000 # ms

    print(f"{N}\t{elapsed_list:.3f}\t{elapsed_array:.3f}")

The output is:

N
list to GPU (ms)
array to GPU (ms)

100
0.020
0.016

1000
0.046
0.017

10000
0.300
0.024

100000
2.793
0.071

1000000
27.219
0.512

As we can see, use array to copy to GPU is always faster. When the input is large, the difference is even larger.
However, how can we get an array object? If we do array_data = array.array('l', list_data) , it is another copy, and will not give us any benefit.
The answer is, we should try to start with array, and use array.append / array.extend to replace list.append / list.extend. Then, we should replace torch.tensor(data, dtype=torch.int, device="cuda") to torch.frombuffer(data, dtype=torch.int).to(device="cuda").
This will require rewrite lots of the code in prepare-input and block table preparation, one of the main performance bottleneck.
cc @comaniac for prepare input
cc @alexm-neuralmagic @cadedaniel  for block manager
Report of performance regression
No response
Misc discussion on performance
No response
Your current environment (if you think it is necessary)
The output of `python collect_env.py`

Thanks for the investigation! I'll be happy to refactor prepare input with array in recent days.

I'll be happy to refactor prepare input with array in recent days.

Thanks! Just a reminder, not all lists need to be replaced with array. Some lists can be removed actually. For example:
https://github.com/vllm-project/vllm/blob/3eeb148f467e3619e8890b1a5ebe86a173f91bc9/vllm/attention/backends/flash_attn.py#L208
this line does not need to be a list. It is used in only two places:
https://github.com/vllm-project/vllm/blob/3eeb148f467e3619e8890b1a5ebe86a173f91bc9/vllm/attention/backends/flash_attn.py#L248
https://github.com/vllm-project/vllm/blob/3eeb148f467e3619e8890b1a5ebe86a173f91bc9/vllm/attention/backends/flash_attn.py#L302
So we only need to keep track of self.max_decode_seq_len , and update it in every _add_seq_group .

Thank you for this write up, I would be happy to dig into this refactor.

I spent some time on this and found that we may need to be careful when using array. The key is array is a C++ wrapper, so it basically works as C++ vectors, including the complexity of their operators. Specifically, after replacing lists with arrays in prepare input, I didn't see any speedup, so I benchmarked the operators between list and array:

op
list
array
numpy

init
2.77 ms
10.79 ms
35.63 ms

pre-allocate
0.12 ms
0.37 ms
0.21 ms

append
4.19 ms
6.78 ms
3623.14 ms

extend
4.25 ms
374.62 ms
316.91 ms

slice
0.09 ms
0.09 ms
0.11 ms

assign
0.02 ms
0.03 ms
0.06 ms

to_torch
1210.37 ms
32.54 ms
32.77 ms

We can see that extend is super expensive for both array and numpy. This is mainly because the extended part is a Python object and it has to be initialized to array or np.array first. This operation is quite common in prepare input because of CUDA graph padding.
Here is the benchmark script for reference
import timeit

def run_op(name, list_cmd, array_cmd, np_cmd, setup_code=None):
    # Setup code
    if setup_code is None:
        setup_code = """
import array
import torch
import numpy as np
lst = list(range(10000))
lst2 = list(range(1000))
arr = array.array('l', range(10000))
arr2 = array.array('l', range(10000))
np_lst = np.zeros(10000)
np_lst2 = np.zeros(10000)
"""
    list_time = timeit.timeit(list_cmd, setup=setup_code, number=1000) * 1000
    array_time = timeit.timeit(array_cmd, setup=setup_code, number=1000) * 1000
    np_time = timeit.timeit(np_cmd, setup=setup_code, number=1000) * 1000
    print(f"{name}|{list_time:.2f} ms|{array_time:.2f} ms|{np_time:.2f} ms")

print("op|list|array|numpy")
print("--|--|--|--")
run_op(
    "init",
    "[[] for _ in range(100)]",
    "[array.array('l') for _ in range(100)]",
    "[np.array([], dtype=np.int64) for _ in range(100)]")

run_op(
    "pre-allocate",
    "a = [0] * 100",
    "a = array.array('l', [0]) * 100",
    "a = np.zeros(100, dtype=np.int64)")

run_op(
    "append",
    "[lst.append(10) for _ in range(100)]",
    "[arr.append(10) for _ in range(100)]",
    "[np.append(np_lst, 10) for _ in range(100)]")

run_op(
    "extend",
    "lst.extend(lst2)",
    "arr.extend(lst)",
    "np.append(np_lst, lst)")

run_op(
    "slice",
    "lst[10:50]",
    "arr[10:50]",
    "np_lst[10:50]")

run_op(
    "assign",
    "lst[555] = 10",
    "arr[555] = 10",
    "np_lst[555] = 10")

run_op(
    "to_torch",
    "torch.tensor(lst, device='cuda'); torch.cuda.synchronize()",
    "torch.frombuffer(arr, dtype=torch.long).to('cuda'); torch.cuda.synchronize()",
    "torch.as_tensor(np_lst, device='cuda'); torch.cuda.synchronize()")

Thanks for the investigation!

after replacing lists with arrays in prepare input

does array have any slowdown then? If not, we should still turn to array, because it allows much faster incremental prepare input and to torch tensor:
data = array("l")

# the following loop has constant time per iteration. Total time complexity is O(N)
for i in range(100):
    data.append(i)
    tensor = torch.frombuffer(data, dtype=torch.int)

data = []
# the following loop has increasing time per iteration. Total time complexity is O(N^2)
for i in range(100):
    data.append(i)
    tensor = torch.tensor(data, dtype=torch.int)

@cody when you index into array, it seems that it does "unboxing" (creates a new pythonic object) which also may slow down things. Did you happen to measure indexing?

@alexm-neuralmagic  the unboxing and boxing (conversion between an 8-bit int to a Python int object) can slow down things indeed. We need to turn to array-native ideally, use array as much as possible.
Do you know which part of code in vLLM will suffer from this? Maybe we can find alternative ways to make it more array-oriented to avoid the unboxing and boxing cost.

does array have any slowdown then? If not, we should still turn to array, because it allows much faster incremental prepare input and to torch tensor

It unfortunately does slow down things, but I'm still trying to see if I could remove it, as I believe the slowdown mainly comes from .extend.

@comaniac when you index into array, it seems that it does "unboxing" (creates a new pythonic object) which also may slow down things. Did you happen to measure indexing?

I didn't unbox arrays once created.

I don't think cudagraph padding plays an important role here. It just pad for several tokens.

Concatenate input tokens and other input data to batch requests

This might be significant. Let me see if we can find any solution.

For concatenation, if both objects are in the same type (i.e, array or np.array), then:

op
list
array
numpy

extend
4.32 ms
39.09 ms
5.98 ms

So using np.append(a, b) may be a way to go

Did an ablation study by only changing slot mapping to array because it is self-contained. The following is the accumulated time (in seconds) of each function call in my benchmark.

API
list (main)
array
diff

torch.tensor
0.172
0.158
-0.014

compute_slot_mapping
0.0214
0.0238
+0.0024

torch.frombuffer
0
0.00881
+0.00881

torch.cat
0
0.00637
+0.00637

Note 1: compute_slot_mapping now has array.array which initializes an array, so it brings some overheads.
Note 2: To avoid extend, we use torch.cat([torch.frombuffer(s) for s in slot_mappings]).
In short, we can see that although this approach reduces torch.tensor, other overheads eat the speedup, resulting the similar latency (+0.00358).

More performance micro benchmark, just for how to move a Python list to pytorch tensor:
import array
import torch

# print header
print("N\tlist\tlist_with_array\tarray")

for N in [100, 1000, 10000, 100000, 1000000]:
    list_data = list(range(N))
    array_data = array.array('l', list_data)

    def create_from_list():
        tensor = torch.tensor(list_data, dtype=torch.int64)
        return tensor

    def create_from_list_with_array():
        tensor = torch.frombuffer(array.array("l", list_data), dtype=torch.int64)
        return tensor

    def create_from_array():
        tensor = torch.frombuffer(array_data, dtype=torch.int64)
        return tensor

    import time

    for _ in range(10):
        # warmup
        create_from_list()
    start = time.time()
    for _ in range(100):
        create_from_list()
    elapsed_list = (time.time() - start) / 100 * 1000 # ms

    for _ in range(10):
        # warmup
        create_from_list_with_array()
    start = time.time()
    for _ in range(100):
        create_from_list_with_array()
    elapsed_list_with_array = (time.time() - start) / 100 * 1000 # ms

    for _ in range(10):
        create_from_array()
    start = time.time()
    for _ in range(100):
        create_from_array()
    elapsed_array = (time.time() - start) / 100 * 1000 # ms

    print(f"{N}\t{elapsed_list:.3f}\t{elapsed_list_with_array:.3f}\t{elapsed_array:.3f}")

N
torch.tensor(list)
torch. frombuffer(array(list))
torch.frombuffer(array)

100
0.005
0.002
0.001

1000
0.030
0.014
0.001

10000
0.278
0.137
0.001

100000
2.684
1.347
0.001

1000000
26.654
13.759
0.001

As we can see, torch.frombuffer(array) does zero-copy. But @comaniac find it is difficult for array to interact with other data types like Python list.
Surprisingly, torch. frombuffer(array(list)) is much faster than torch.tensor(list), almost reducing half of the time.

More performance micro benchmark, just for how to move a Python list to pytorch tensor:
import array
import torch

# print header
print("N\tlist\tlist_with_array\tarray")

for N in [100, 1000, 10000, 100000, 1000000]:
    list_data = list(range(N))
    array_data = array.array('q', list_data)

    def create_from_list():
        tensor = torch.tensor(list_data, dtype=torch.int64)
        return tensor

    def create_from_list_with_array():
        tensor = torch.frombuffer(array.array("q", list_data), dtype=torch.int64)
        return tensor

    def create_from_array():
        tensor = torch.frombuffer(array_data, dtype=torch.int64)
        return tensor

    import time

    for _ in range(10):
        # warmup
        create_from_list()
    start = time.time()
    for _ in range(100):
        create_from_list()
    elapsed_list = (time.time() - start) / 100 * 1000 # ms

    for _ in range(10):
        # warmup
        create_from_list_with_array()
    start = time.time()
    for _ in range(100):
        create_from_list_with_array()
    elapsed_list_with_array = (time.time() - start) / 100 * 1000 # ms

    for _ in range(10):
        create_from_array()
    start = time.time()
    for _ in range(100):
        create_from_array()
    elapsed_array = (time.time() - start) / 100 * 1000 # ms

    print(f"{N}\t{elapsed_list:.3f}\t{elapsed_list_with_array:.3f}\t{elapsed_array:.3f}")

N	torch.tensor(list)	torch. frombuffer(array(list))	torch.frombuffer(array)
100	0.005	0.002	0.001
1000	0.030	0.014	0.001
10000	0.278	0.137	0.001
100000	2.684	1.347	0.001
1000000	26.654	13.759	0.001
As we can see, torch.frombuffer(array) does zero-copy. But @comaniac find it is difficult for array to interact with other data types like Python list.
Surprisingly, torch.frombuffer(array(list)) is much faster than torch.tensor(list), almost reducing half of the time.

It's amazing.
import array
import torch

src_from_buffer = torch.frombuffer

def from_buffer(buffer, *, dtype, count=-1, offset=0, requires_grad=False):
    _map = {
        torch.bool: 'b',
        torch.int8: 'b',
        torch.uint8: 'B',
        torch.int16: 'h',
        torch.uint16: 'H',
        torch.int32: 'i',
        torch.uint32: 'I',
        torch.int64: 'q',
        torch.uint64: 'Q',
        torch.float32: 'f',
        torch.float64: 'd'
    }

    if isinstance(buffer, (list, tuple)):
        buffer = array.array(_map[dtype], buffer)
    return src_from_buffer(buffer=buffer, dtype=dtype, count=count, offset=offset, requires_grad=requires_grad)

torch.frombuffer = from_buffer

After hacking torch.from_buffer, the performance has doubled too:
N	list	list_with_array	array	array2
100	0.009	0.005	0.002	0.005
1000	0.055	0.027	0.002	0.027
10000	0.489	0.215	0.002	0.211
100000	3.738	1.546	0.002	1.520
1000000	33.328	15.310	0.002	16.863

Can we globally hack torch.from_buffer?

@triple-Mu  what's the difference between your array2 and list_with_array ?
@comaniac is considering using the list_with_array approach for all the possible cases. We can add a function for this. We don't need to hack torch.from_buffer . If you want to use it in your repo, you can feel free to use it.

@triple-Mu  what's the difference between your array2 and list_with_array ?
@comaniac is considering using the list_with_array approach for all the possible cases. We can add a function for this. We don't need to hack torch.from_buffer . If you want to use it in your repo, you can feel free to use it.

What I'm trying to say is that we don't need to add a new function to do this, we just need to modify the from_buffer at the beginning of vllm startup, and all from_buffer calls will get performance double.

@triple-Mu  what's the difference between your array2 and list_with_array ?
@comaniac is considering using the list_with_array approach for all the possible cases. We can add a function for this. We don't need to hack torch.from_buffer . If you want to use it in your repo, you can feel free to use it.

What I'm trying to say is that we don't need to add a new function to do this, we just need to modify the from_buffer at the beginning of vllm startup, and all from_buffer calls will get performance double.

So does torch.tensor.

hacking is not good for future maintenance. I would suggest being explicit. We don't need to sacrifice code quality for this.


How to replicate this from Which-Key

How to do this (from which-key) in wf?
wk.register({
 o = {
     name = "open",
     ["-"] = { ":Oil<CR>", "Oil" },
     p = { ":Neotree toggle<CR>", "Project sidebar" },
     t = { ":ToggleTerm<CR>", "Toggle terminal" }
   },
 }, { prefix = "<Leader>", silent = true })

Tried this:
vim.keymap.set(
  "n",
  "<Space>o",
  register(),
  { noremap = true, silent = true, desc = "[open]" }
)

map("n", "<Leader>o-", ":Oil<CR>", { silent = true, desc = "Oil" })

But when i open WF, it shows one above the other.

I want to press Leader, WF to show, and it only show [open] in the list, and only if i press "O", then it shows the keybinding associated with it.
Now showing the [open] and the "Oil" above from it. It doesn't make sense. Oil should be "inside" [open] since it starts with <Leader>o, and it is a register.

Hello @hrqmonteio,
Thank you for message. This is in a specification.
wf.nvim is designed to "clearly indicate to the user when it is executed by the next key".
This is to prevent the user from unintended behavior.
Sorry for the inconvenience.


NRT clarifications

Clarifies what "nullable reference types" refers to
Adds a table to compare contexts

Preview

This is a great set of enhancements @gewarren
I had one suggestion in addition to David's. I'm not sure if the extra column in the table helps, or adds confusion. Let me know what you think.

I like it - thanks.


Handle evaluating expressions

Hello there,
CodeLLDB throws the following error when evaluating expressions (eg, when using dapui.eval()):
[debug-adapter stderr] [ERROR codelldb::debug_session] Internal debugger error: Expected non-zero handle value

I'm pretty sure this is something specific with CodeLLDB, but it works just fine when using nvim-dap's builtin hover() from dap.ui.widgets. The error itself seems to be harmless, but it populates the repl quickly when watching expressions.

As you said this is a CodeLLDB issue, not a client issue so there's not much I can do to diagnose.
I can tell you though that this is not an issue in nvim-dap-ui vs nvim-dap. The reason you're not seeing the error with nvim-dap's hover widget is that it will check the variables it has stored in state for the expression before sending to the debugger and use it if found, so it's essentially caching. You can disable this caching by changing this line https://github.com/mfussenegger/nvim-dap/blob/master/lua/dap/ui/widgets.lua#L266 from if variable then to if false then.
You may actually see a different error because nvim-dap doesn't use the correct "context" argument when evaluating and it seems CodeLLDB is fussy about that.

As you said this is a CodeLLDB issue, not a client issue so there's not much I can do to diagnose.

I've opened a discussion on their repo. As always, thanks for the support!


white space in attribute is not stripped

i have some inline style in my div
<div style="margin: 0;
    overflow: hidden;
    width: 100%;
    height: 100%;
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
    background-position: 50% 50%;">
  </div>

But after minimize using gulp-minify-html the white spaces is still there (it could just make all the attribute values oneline).

This is actually the reason I am going to switch away from this minifier. Any hope of optionally allowing line breaks in attributes? For instance the value of an input.

As far as I'm aware this was fixed, if you have a example where it does not work please let me know. I'll make sure to fix that as well

The behavior before this bug was fixed is what I desire.
Likely the way to allow for this is to implement ignoring areas between a specified comment.

 I will try it out later and report back.
Thanks so much!

Any eta on 1.5?

1.5 should be out, not sure about the integration with the gulp plugin, but that is outside my control.
npm info minimize output
     '1.3.3': '2015-04-03T07:17:53.369Z',
     '1.4.0': '2015-04-25T23:30:40.919Z',
     '1.4.1': '2015-04-29T07:26:47.843Z',
     '1.5.0': '2015-07-01T07:37:17.260Z' },

I don't see any commits on this GitHub or any releases, which is why I'm asking.
https://github.com/Swaagie/minimize/commits/master
https://github.com/Swaagie/minimize/releases
Gulp is indeed something else and I plan to ask them as soon as I confirm that 1.5 is released. But if you say it is I'll open an issue there for them to use your latest.

O haha, my bad, I totally forgot to push and tag :( thanks for notifying.


iOS: version conflict with Firebase libs

The current version of this lib is conflicted with the latest version of Firebase libs, here's log:
[!] CocoaPods could not find compatible versions for pod "GTMSessionFetcher/Core":
  In Podfile:
    firebase_storage (from `.symlinks/plugins/firebase_storage/ios`) was resolved to 11.0.1, which depends on
      Firebase/Storage (= 10.0.0) was resolved to 10.0.0, which depends on
        FirebaseStorage (~> 10.0.0) was resolved to 10.0.0, which depends on
          GTMSessionFetcher/Core (~> 2.1)

    mobile_scanner (from `.symlinks/plugins/mobile_scanner/ios`) was resolved to 0.0.1, which depends on
      GoogleMLKit/BarcodeScanning (~> 2.6.0) was resolved to 2.6.0, which depends on
        MLKitBarcodeScanning (~> 1.7.0) was resolved to 1.7.0, which depends on
          MLKitVision (~> 3.0) was resolved to 3.0.0, which depends on
            GTMSessionFetcher/Core (~> 1.1)

pod repo update
pod update GTMSessionFetcher/Core

solved it for me.

pod repo update
pod update GTMSessionFetcher/Core

solved it for me. However, the problem for me was firebase_auth not firebase_storage.

If this does not work try:
rm -rf ios/Pods
rm ios/Pdofile.lock
flutter clean
pod repo update

Then try again.

From the pod output, the issue appears to be with the Podspec for MLKitVision. Even the latest version (4.2.0) is still locked to GTMSessionFetcher/Core 1.1. Since the ML Kit SDK appears to be closed source, I opened a ticket through Google's issue tracker: https://issuetracker.google.com/issues/254418199

Nice catch @bgetsug !

Is there any workaround on this?
I try both oerni74 & peukerjonathan solution, still no luck

Same issue here, tried @oerni74 and @peukerjonathan solutions but no luck.

1

The Google team has assigned the MLKit bug ticket https://issuetracker.google.com/issues/254418199 with a Priority level of P4.
P4 is the lowest priority they are working with, described as:

P4 | An issue that should be addressed eventually. Such an issue is not relevant to core organizational functions or the work of other teams, or else it relates only to the attractiveness or pleasantness of the system.

All of you who are experiencing this Google bug, could you please browse to the https://issuetracker.google.com/issues/254418199  issue, and click on the "+1" blue button on the top right to make Google aware that it is affecting people.
Thanks.

https://issuetracker.google.com/issues/254418199#comment22

Currently the next release is planned at the end of Q4.

Will we have to wait a few months for this issue...

Same issue here, any solution?

+1 Same here ...

I roll-backed firebase_storage version, and it works around

firebase_storage: ^11.0.3

firebase_storage: ^10.3.7

I'm almost done with a new update of this package which will introduce some new functions and update the dependencies as well. With these new dependencies, i did not encounter this error.

I'm almost done with a new update of this package which will introduce some new functions and update the dependencies as well. With these new dependencies, i did not encounter this error.

Thank you for the efffort! We are looking forward to the update

The Google team has assigned the MLKit bug ticket https://issuetracker.google.com/issues/254418199 with a Priority level of P4. P4 is the lowest priority they are working with, described as:

P4 | An issue that should be addressed eventually. Such an issue is not relevant to core organizational functions or the work of other teams, or else it relates only to the attractiveness or pleasantness of the system.

All of you who are experiencing this Google bug, could you please browse to the https://issuetracker.google.com/issues/254418199 issue, and click on the "+1" blue button on the top right to make Google aware that it is affecting people. Thanks.

@MagnusJohansson
I cannot access the IssueTracker. Why is that?

I don't know why, but Issue Tracker is now accessible.

Helle guys,
I would share with you a possible solution:

Create MLKitVision.podspec.json in ios folder taking content from https://github.com/CocoaPods/Specs/blob/master/Specs/8/1/e/MLKitVision/4.2.0/MLKitVision.podspec.json

Create MLKitCommon.podspec.json  in ios folder taking content from https://github.com/CocoaPods/Specs/blob/master/Specs/c/c/6/MLKitCommon/8.0.0/MLKitCommon.podspec.json

Modify in both files the GTMSessionFetcher/Core definition from 1.1 to version 2.1.

Inside your Podfile you have to search for "target 'Runner'" and inside it you have to add the following lines:

      pod 'MLKitVision', :podspec => 'MLKitVision.podspec.json'
      pod 'MLKitCommon', :podspec => 'MLKitCommon.podspec.json'

Run pod install

build the app

That solved my issue.
I hope the same to you.

I'm facing a similar problem, but between MobileScanner and GoogleMLKitTextRecognition.
[!] CocoaPods could not find compatible versions for pod "GoogleMLKit/MLKitCore":
  In Podfile:
    google_mlkit_text_recognition (from `.symlinks/plugins/google_mlkit_text_recognition/ios`) was resolved to 0.5.0, which depends on
      GoogleMLKit/TextRecognition (~> 3.2.0) was resolved to 3.2.0, which depends on
        GoogleMLKit/MLKitCore (= 3.2.0)

    mobile_scanner (from `.symlinks/plugins/mobile_scanner/ios`) was resolved to 0.0.1, which depends on
      GoogleMLKit/BarcodeScanning (~> 2.6.0) was resolved to 2.6.0, which depends on
        GoogleMLKit/MLKitCore (= 2.6.0)

@juliansteenbakker thank you for your effort, does the new version ready or its still in progress?

It's still in progress. I'm hoping i can release a new beta version this weekend. You can track the progress in #362

I have applied the above workaround and referred to the podfile shared here. It worked for me.
Thanks to those who shared their information.
  firebase_core: ^2.2.0
  firebase_auth: ^4.1.2
  cloud_firestore: ^4.0.5
  cloud_firestore_odm: ^1.0.0-dev.40
  firebase_storage: ^11.0.5
  firebase_crashlytics: ^3.0.5
  firebase_messaging: ^14.1.0

  mobile_scanner: ^3.0.0-beta.1

My Podfile here
# Override Firebase SDK Version
$FirebaseSDKVersion = '10.1.0'
# Uncomment this line to define a global platform for your project
platform :ios, '15.0'

# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'

project 'Runner', {
  'Debug' => :debug,
  'Profile' => :release,
  'Release' => :release,
}

def flutter_root
  generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
  unless File.exist?(generated_xcode_build_settings_path)
    raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
  end

  File.foreach(generated_xcode_build_settings_path) do |line|
    matches = line.match(/FLUTTER_ROOT\=(.*)/)
    return matches[1].strip if matches
  end
  raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
end

require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)

flutter_ios_podfile_setup

target 'Runner' do
  # see...
  #   https://github.com/juliansteenbakker/mobile_scanner/issues/335#issuecomment-1308829103
  #   https://issuetracker.google.com/issues/254418199#comment48
  pod 'MLKitVision', :podspec => 'MLKitVision.podspec.json'
  pod 'MLKitCommon', :podspec => 'MLKitCommon.podspec.json'

  use_frameworks!
  use_modular_headers!

  # see...
  #   https://github.com/firebase/flutterfire/issues/9761#issuecomment-1301997595
  pod 'FirebaseFirestore', :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git', :tag => $FirebaseSDKVersion

  flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
end

post_install do |installer|
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
  end
end

I#ve done the same but got this error then with Firebase 10.2.0:
[!] CocoaPods could not find compatible versions for pod "MLKitCommon":
In Podfile:
MLKitCommon (from MLKitCommon.podspec.json)
MLKitVision (from `MLKitVision.podspec.json`) was resolved to 4.2.0, which depends on
  MLKitCommon (~> 8.0)

mobile_scanner (from `.symlinks/plugins/mobile_scanner/ios`) was resolved to 0.0.1, which depends on
  GoogleMLKit/BarcodeScanning (~> 2.6.0) was resolved to 2.6.0, which depends on
    GoogleMLKit/MLKitCore (= 2.6.0) was resolved to 2.6.0, which depends on
      MLKitCommon (~> 5.0.0)

Besides updating the latest beta version, i've also fixed the current stable version with v2.1.0.
This version updates firebase on iOS to the latest version which fixes this issue.

Thanks for releasing v3.0.0-beta.2. I have worked with the following versions without problems.
  firebase_core: ^2.3.0
  firebase_auth: ^4.1.3
  cloud_firestore: ^4.1.0
  cloud_firestore_odm: ^1.0.0-dev.41
  firebase_storage: ^11.0.6
  firebase_crashlytics: ^3.0.6
  firebase_messaging: ^14.1.1
  google_sign_in: ^5.4.2

  mobile_scanner: ^3.0.0-beta.2

My Podfile (Firebase 10.2.0)
# Override Firebase SDK Version
$FirebaseSDKVersion = '10.2.0'
# Uncomment this line to define a global platform for your project
platform :ios, '15.0'

# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'

project 'Runner', {
  'Debug' => :debug,
  'Profile' => :release,
  'Release' => :release,
}

def flutter_root
  generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
  unless File.exist?(generated_xcode_build_settings_path)
    raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
  end

  File.foreach(generated_xcode_build_settings_path) do |line|
    matches = line.match(/FLUTTER_ROOT\=(.*)/)
    return matches[1].strip if matches
  end
  raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
end

require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)

flutter_ios_podfile_setup

target 'Runner' do
  # see...
  #   https://github.com/juliansteenbakker/mobile_scanner/issues/335#issuecomment-1308829103
  #   https://issuetracker.google.com/issues/254418199#comment48
  pod 'MLKitVision', :podspec => 'MLKitVision.podspec.json'
  pod 'MLKitCommon', :podspec => 'MLKitCommon.podspec.json'

  use_frameworks!
  use_modular_headers!

  # see...
  #   https://github.com/firebase/flutterfire/issues/9761#issuecomment-1301997595
  pod 'FirebaseFirestore', :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git', :tag => $FirebaseSDKVersion

  flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
end

post_install do |installer|
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
  end
end

However, removing this workaround will result in an error.
  # see...
  #   https://github.com/juliansteenbakker/mobile_scanner/issues/335#issuecomment-1308829103
  #   https://issuetracker.google.com/issues/254418199#comment48
  pod 'MLKitVision', :podspec => 'MLKitVision.podspec.json'
  pod 'MLKitCommon', :podspec => 'MLKitCommon.podspec.json'

[!] CocoaPods could not find compatible versions for pod "GTMSessionFetcher/Core":
  In Podfile:
    firebase_storage (from `.symlinks/plugins/firebase_storage/ios`) was resolved to 11.0.6, which depends on
      Firebase/Storage (= 10.2.0) was resolved to 10.2.0, which depends on
        FirebaseStorage (~> 10.2.0) was resolved to 10.2.0, which depends on
          GTMSessionFetcher/Core (< 4.0, >= 2.1)

    google_sign_in_ios (from `.symlinks/plugins/google_sign_in_ios/ios`) was resolved to 0.0.1, which depends on
      GoogleSignIn (~> 6.2) was resolved to 6.2.4, which depends on
        GTMSessionFetcher/Core (< 3.0, >= 1.1)

    mobile_scanner (from `.symlinks/plugins/mobile_scanner/ios`) was resolved to 3.0.0, which depends on
      GoogleMLKit/BarcodeScanning (~> 3.2.0) was resolved to 3.2.0, which depends on
        MLKitBarcodeScanning (~> 2.2.0) was resolved to 2.2.0, which depends on
          MLKitCommon (~> 8.0) was resolved to 8.0.0, which depends on
            GTMSessionFetcher/Core (~> 1.1)

I hope this helps.

Well in that case it really is a problem with firebase rather than this plugin.

Ultimately, I recognize that this is the fundamental problem.
https://issuetracker.google.com/issues/254418199

Ultimately, I recognize that this is the fundamental problem. https://issuetracker.google.com/issues/254418199

have you found any solution?

@steven230500
Workaround. https://github.com/juliansteenbakker/mobile_scanner/issues/335#issuecomment-1314796725

Can anyone confirm the workaround works with 10.2.0. Doesnt seem to work for me.

Please resolve this issue

After all these workarounds I get
`CocoaPods could not find compatible versions for pod "GTMSessionFetcher/Core":
In snapshot (Podfile.lock):
GTMSessionFetcher/Core (< 4.0, = 3.0.0, >= 2.1)
In Podfile:
MLKitCommon (from MLKitCommon.podspec.json) was resolved to 8.0.0, which depends on
GTMSessionFetcher/Core (~> 2.1)
Specs satisfying the GTMSessionFetcher/Core (< 4.0, = 3.0.0, >= 2.1), GTMSessionFetcher/Core (~> 2.1) dependency were found, but they required a higher minimum deployment target.`
Now, what is the minimum deployment target? I have set it to 15 for testing and it still doesn't work

  # see...
  #   https://github.com/juliansteenbakker/mobile_scanner/issues/335#issuecomment-1308829103
  #   https://issuetracker.google.com/issues/254418199#comment48
  pod 'MLKitVision', :podspec => 'MLKitVision.podspec.json'
  pod 'MLKitCommon', :podspec => 'MLKitCommon.podspec.json'

This works for me but that would be amazing to know when the fix will be apply so that we don't need to use this workaround

Any updates on this? I am stucked from releasing my app as it is now. I will try the fix above when I have some time over.
But I thought that I could wait until this is fixed properly. Have been waiting over two month now ...

I did this work-around but still getting the issue of No GoogleService-Info.plist found.
Looking for  in
    No GoogleService-Info.plist found. Please ensure it's in the proper directory.
    Command PhaseScriptExecution failed with a nonzero exit code
    note: Building targets in dependency order

After all these workarounds I get
CocoaPods could not find compatible versions for pod "GTMSessionFetcher/Core":
  In snapshot (Podfile.lock):
    GTMSessionFetcher/Core (< 4.0, = 3.0.0, >= 2.1)

  In Podfile:
    MLKitCommon (from `MLKitCommon.podspec.json`) was resolved to 8.0.0, which depends on
      GTMSessionFetcher/Core (~> 2.1)

Specs satisfying the `GTMSessionFetcher/Core (< 4.0, = 3.0.0, >= 2.1), GTMSessionFetcher/Core (~> 2.1)` dependency were found, but they required a higher minimum deployment target.

Now, what is the minimum deployment target? I have set it to 15 for testing and it still doesn't work

@wladosh I've got this exact issue in my project right now. How did you solve it?

@edkahara I didn't. I just used another scanner library

@wladosh Which one did you use?

@edkahara https://pub.dev/packages/barcode_scan2 this one works for me

I think this is now fixed in v3.0.0.

I think this is now fixed in v3.0.0.

Still facing the same issue with v3.0.0
cloud_firestore: Using Firebase SDK version '10.3.0' defined in 'firebase_core'
firebase_analytics: Using Firebase SDK version '10.3.0' defined in 'firebase_core'
firebase_auth: Using Firebase SDK version '10.3.0' defined in 'firebase_core'
firebase_core: Using Firebase SDK version '10.3.0' defined in 'firebase_core'
firebase_messaging: Using Firebase SDK version '10.3.0' defined in 'firebase_core'
firebase_remote_config: Using Firebase SDK version '10.3.0' defined in 'firebase_core'
firebase_storage: Using Firebase SDK version '10.3.0' defined in 'firebase_core'
[!] CocoaPods could not find compatible versions for pod "GTMSessionFetcher/Core":
  In Podfile:
    firebase_auth (from `.symlinks/plugins/firebase_auth/ios`) was resolved to 4.2.6, which depends on
      Firebase/Auth (= 10.3.0) was resolved to 10.3.0, which depends on
        FirebaseAuth (~> 10.3.0) was resolved to 10.3.0, which depends on
          GTMSessionFetcher/Core (< 4.0, >= 2.1)

    mobile_scanner (from `.symlinks/plugins/mobile_scanner/ios`) was resolved to 3.0.0, which depends on
      GoogleMLKit/BarcodeScanning (~> 3.2.0) was resolved to 3.2.0, which depends on
        MLKitBarcodeScanning (~> 2.2.0) was resolved to 2.2.0, which depends on
          MLKitVision (~> 4.2) was resolved to 4.2.0, which depends on
            GTMSessionFetcher/Core (~> 1.1)

controller.analyzeImage(image.path) fails when an image is chosen from gallery in IOS. Does any faced this using mobile_scanner

controller.analyzeImage(image.path) fails when an image is chosen from gallery in IOS. Does any faced this using mobile_scanner

This has been in PR  https://github.com/juliansteenbakker/mobile_scanner/pull/497 waiting for @juliansteenbakker  to merge it

Currently the best work around is https://github.com/juliansteenbakker/mobile_scanner/issues/335#issuecomment-1308829103
Google says that they are planning on fixing this issue somewhere mid march. https://issuetracker.google.com/issues/254418199#comment156

Please if you can merge PR #497 @juliansteenbakker.

Still facing the issue ..  I'm using the above highlighted solution  #335
[!] CocoaPods could not find compatible versions for pod "MLKitCommon":
In Podfile:
MLKitCommon (from MLKitCommon.podspec.json)
MLKitVision (from `MLKitVision.podspec.json`) was resolved to 4.2.0, which depends on
  MLKitCommon (~> 8.0)

google_ml_kit (from `.symlinks/plugins/google_ml_kit/ios`) was resolved to 0.6.0, which depends on
  GoogleMLKit/DigitalInkRecognition (~> 2.2.0) was resolved to 2.2.0, which depends on
    MLKitDigitalInkRecognition (~> 1.3.0) was resolved to 1.3.0, which depends on
      MLKitCommon (~> 3.0)

I am using these libraries .If I remove   this package "google_ml_kit"   then its working fine
        firebase_messaging: ^14.1.0
        firebase_core: ^2.2.0
        firebase_auth: ^4.1.2
        google_ml_kit: ^0.7.2

@juliansteenbakker I am using image picker also. The AnalyseImage method returns true. Can you please explain how to get the barcode values?

Those who are facing errors with other MLKit podspecs, i have added a comment here - https://issuetracker.google.com/issues/254418199#comment165

PLease if someone can help on how to retrieve barcode values from a picture in mobile scanner.

Those who are facing errors with other MLKit podspecs, i have added a comment here - https://issuetracker.google.com/issues/254418199#comment165

Hello. Any update on this? Following this link I see that FirebaseCore 10.7.0 should be now available, but in my case it does not seem to fix the pod install problem with Mobile Scanner.
Should I do some particular procedure to update it?
Thanks

Can we please update the dependency "GoogleMLKit/BarcodeScanning" to 4.0.0 in mobile_scanner.podspec as it solves the issue of resolving ios pod with latest firebase version @juliansteenbakker  !

Thanks for the headsup! Before publishing on pub.dev, can anyone verify that this will fix the issue?
I have updated the code on the master branch. Please try it out with:
  mobile_scanner:
    git:
      url: https://github.com/juliansteenbakker/mobile_scanner
      ref: master

The following things has changed in this release:
Improvements:
[iOS] Updated GoogleMLKit/BarcodeScanning to 4.0.0
[Android] Updated com.google.mlkit:barcode-scanning from 17.0.3 to 17.1.0
Bugs fixed:
Fixed onDetect not working with analyzeImage
[iOS] explicit returned type for compactMap

Thanks for testing! I have released v3.2.0.

Hum .. don't know if it is related by I now get
[!] CocoaPods could not find compatible versions for pod "MLKitVision":
In Podfile:
MLKitVision (from MLKitVision.podspec.json)
mobile_scanner (from `.symlinks/plugins/mobile_scanner/ios`) was resolved to 3.2.0, which depends on
  GoogleMLKit/BarcodeScanning (~> 4.0.0) was resolved to 4.0.0, which depends on
    MLKitBarcodeScanning (~> 3.0.0) was resolved to 3.0.0, which depends on
      MLKitVision (~> 5.0)

I've been facing a similar issue with pods and mobile_scanner (v3.3.0).
[!] CocoaPods could not find compatible versions for pod "mobile_scanner"
and also
[!] Automatically assigning platform iOSwith version9.0on targetRunner because no platform was specified
For context I'm working on Windows and using CodeMagic to build for Android and iOS, so no direct access to Xcode/etc.
The solution was to edit the following file:
(Project Root)/ios/Runner.xcodeproj/project.pbxproj
and set all instances of IPHONEOS_DEPLOYMENT_TARGET to match the version shown in:
(Flutter Plugins)/mobile_scanner-3.3.0/ios/mobile_scanner.podspec
which looks like
s.platform = :ios, '11.0'
Hope that helps someone!

I was using the old solution:
Hello everyone,
a temporary solution I found is the following:
1- Create MLKitVision.podspec.json in ios folder taking content from https://github.com/CocoaPods/Specs/blob/master/Specs/8/1/e/MLKitVision/4.2.0/MLKitVision.podspec.json
2- Create MLKitCommon.podspec.json  in ios folder taking content from https://github.com/CocoaPods/Specs/blob/master/Specs/c/c/6/MLKitCommon/8.0.0/MLKitCommon.podspec.json
3- Modify in both files the GTMSessionFetcher/Core definition from 1.1 to version 2.1.
4- Inside your Podfile you have to search for "target 'Runner'" and insite it you have to add the following lines:
pod 'MLKitVision', :podspec => 'MLKitVision.podspec.json'
pod 'MLKitCommon', :podspec => 'MLKitCommon.podspec.json'
5- Run pod install
6- build the app
//////////--------------------------//////////
But when I updated my mobile scanner to 3.4.1^ , it is showing the following errors:
CocoaPods could not find compatible versions for pod "MLKitCommon":
In Podfile:
MLKitCommon (from MLKitCommon.podspec.json)
MLKitVision (from `MLKitVision.podspec.json`) was resolved to 4.2.0, which depends on
  MLKitCommon (~> 8.0)

mobile_scanner (from `.symlinks/plugins/mobile_scanner/ios`) was resolved to 3.2.0, which depends on
  GoogleMLKit/BarcodeScanning (~> 4.0.0) was resolved to 4.0.0, which depends on
    GoogleMLKit/MLKitCore (= 4.0.0) was resolved to 4.0.0, which depends on
      MLKitCommon (~> 9.0.0)

Do i need to change something in old solution?

pod repo update
pod update GTMSessionFetcher/Core

solved it for me. However, the problem for me was firebase_auth not firebase_storage.

If this does not work try:
rm -rf ios/Pods
rm ios/Pdofile.lock
flutter clean
pod repo update

Then try again.

*rm ios/Pdofile.lock


fix: AttributeError: module 'numpy' has no attribute 'int'

Description
numpy.int was deprecated in NumPy 1.20 and was removed in NumPy 1.24.
https://stackoverflow.com/questions/74946845/attributeerror-module-numpy-has-no-attribute-int

Motivation and Context
Motivation is to run Applio on numpy 1.24+ environments and silence the warning on numpy 1.20 to 1.23
How has this been tested?
Tested on numpy 1.24 and 1.23
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)

Checklist:

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have added tests to cover my changes.
[x] All new and existing tests passed.

requirements.txt needs to be updated?

No, the requirements.txt file does not need to be updated. It is now using Python's built-in int, which does not depend on any external libraries.


Network Indexer Dev Tools Page

…pdate to instructions

Another thing that tutorial can talk about is default IPNI support as of Kubo b0.18.0.


Order not created after payment

Expected behavior
An order would be created in the Dashboard after the Mollie payment was completed.
Actual behavior
No order was created, even though the payment was completed and the webhook was called (according to Mollie payment history). The payment description remained "mol_...". The metadata included cart_id, order_reference and secure_key.
Steps to reproduce the behavior
I cannot yet reproduce the issue
Environment

PrestaShop version: <IP_ADDRESS>
Mollie module version: 4.4.1
PHP version: 7.2.34

I've updated the module, I'll let you know when it happens again.

@Saimis777 I just placed a test order with the mollie "Overboeking" (bank transfer) payment method, which mean I have 30 days to pay the order by bank. As a customer I get the email to make the payment, but as the payment is not yet completed, there is no order created in the backend. Shouldn't the order be created with the status "Waiting for payment" ?? Now the merchant does not know that a customer placed an order and stock is not updated.

Hey @wzzly ,
Good notice, there will be an update just for bank transfer, to create an order before the payment due to the waiting time.
We're planning to release it in the next release.
--
Best regards,
Invertus Support team

Hi,
Having the same issue with PayPal and iDEAL payments.

Hi @Maikel726,
Is it also for the 4.4.1 version or 4.4.2?
--
Best regards,
Invertus Support team

Hi @Saimis777
Version 4.4.2

Hi, @Saimis777
Is it possible to release the fix for this issue as soon as possible? I'm getting more and more complaints that people don't get their ordered stuff.

Hi @Maikel726 ,
We are doing our best, to keep on track with the new release.
Maybe you could send us your BO + FTP credentials so we could resolve the issue for you? To the email -<EMAIL_ADDRESS>--
Best regards,
Invertus Support team

Hey @Maikel726 ,
Due to inactivity for more than 5 days I will mark the issue as resolved.
Please let us know if you will need further help!
--
Best regards,
Invertus Support team

hi @Xesau , did you find a solution ?
I'm exactly in the same situation as you


ANN: hprose-workerman

Decided to let you know that my work of Workerman + hprose is public:
https://github.com/hprose/hprose-workerman
It currently provides my alternative to PHP-CGI and runs very stable! :)

Thank you very much in support of the workerman ： ）

Very welcome! =)