[Doubt] Heroes of Might and Magic III

Hello...
cnc-ddraw works with GOG Complete version 4.0? According to PCGamingWiki HOMM III uses DirectX 7 but I've read that it also uses DirectDraw and OpenGL. Anyway, I'm not sure if it works and which backend version of GOG uses.
Thanks!

It worked like a charm!!! cnc-ddraw is the solution for 99% of broken games that don't work as they should. Those involved should be contracted by GOG!
Thank you very much... Thank you from the heart!

Let everyone know that the "dxcfg" extracted from Heroes of Might and Magic IV - Complete (update - 3.0 win11 2022-09-06) works like a charm in Heroes of Might and Magic III - Complete (4.0). =D
See the attachment...
dxcfg (Win11).zip
Here's a tip!


Fix allUniqueChars function

There is currently a method called allUniqueChars that lives in /lib/allUniqueChars.js.
It is incomplete and needs to be fixed!

allUniqueChars takes a string, and returns true if the string contains only unique characters, false if it contains duplicates, and throws an error on invalid/unexpected input.
Acceptance Criteria:

Running yarn test allUniqueChars results in tests passing.
You have written a skeleton method for someone else to work on.
You have written tests surrounding your skeleton method.
Running yarn lint does not print any errors to the console!
Optional: write one or two more tests surrounding the method you are solving to account for potential edge cases.

Please include the skeleton of a new method + an accompanying test for someone else to work on at the time of creating a pull request! A pull request will most likely be denied if it does not contain a skeleton method for someone else to work on! For more information, please read the Contributing Guide.
Thank you so much for your contribution!

Requires #617 to be merged first.

Hi I'd like do this one, thanks!


Pass build tests, add support for success state (+ DMN)

Needed to make use of the API, so I tried to continue where you left off.
Not having used Omnipay before was a little bit of a struggle to figure out how things were supposed to work (apparently notifications can only really work via the completePurchase()/completeAuthorize() methods), so apologies if anything's off in that regard.
The pull request doesn't really focus on anything too specific, but I:

fixed the initial test failing because of the incorrect variable name.
fixed PHP 5.3 builds (was just the new PHP 5.4 array syntax).
added support for the custom site name to be supplied by the gateway config. I'm not 100% sure if this is how it should work being that it's only technically used by PurchaseRequests, but it makes sense to me to be able to define that generically with the rest of the gateway config.
added support for success responses, and consequently DMN notifications (since they're handled the same way).

Other than cursory testing, and build tests (which I, regretfully, haven't yet added to), I haven't been able to more thoroughly test the full payment process, but according to Gate2Shop's documentation it should be fine. It's definitely still in an experimental state.
The main concerns I have with this are:

dealing with the request data directly (it seems simpler to do this, but breaks class encapsulation. Not doing this means introducing a great deal of setters for no real reason -- unless I'm missing something -- and then still having to workaround edge cases that the code style requirement doesn't like). This doesn't seem to be a problem with cases like 2Checkout, though it uses the POST request data. I haven't seen any use the GET request data, as in this case. The entire thing just seems unwarranted, but I have no idea how you'd pull in parameters dynamically (like item_name_X -- you'd need setters for each of them anyway to use them as with everything else).
in addition to the above, my horribly placed utility method for validating the existence of these GET parameters... it really shouldn't be in the scope of that class, but even its (presently required) existence is worrisome.

Again, I'm not really familiar with the Omnipay, so hopefully there's better ways to address these concerns.

This looks good! Thanks for contributing :+1:. Please let me know if you are using all of this successfully in production!

It's not being used in production yet, but on staging I have it running through the general payment process fine via their sandbox.
On a side-note, I later found that they have docs (https://www.gate2shop.com/references/) in addition to their PDFs, which documents additional functionality not mentioned at all in the PDFs (which are linked on the main page).
In particular, they support input parameters for return URLs, which should really be handled in the driver as well, as I've seen other drivers do. I'll probably commit those later, once I've confirmed the parameter name for the 'back URL'  (which I assume is just back_url), as the parameter name provided in the documentation is clearly not correct.
But aside from additional test coverage, and better exposure to some of those previously-unmentioned input parameters, I don't see a whole lot more that needs to be done with it.

Hi @twostars and sorry for answering so late.
From my experience integrating Gate2Shop in a legacy system (Opengateway), there is unfortunately no way to set the return URLs yourself. I actually never tried the hidden parameter you are talking about but I can tell you that when we migrated our servers and changed domain name we had to talk to their tech support (which fucked up updating some of the URLs) to get the payments working properly again. That said if you can confirm there is a way to customize the return URLs that would be awesome news in order to avoid such a mess in the future.
Please let me know when you have a chance to test it in production so I can safely release the package on packagist!
I would test myself but we did not start integration with G2S in the new platform yet and I will probably be busy integrating SafeCharge Gateway in the coming days (and making an Omnipay driver for it).


feat(build): deploy artifacts to maven central

feat(build): deploy artifacts to maven central

mvn compile results

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


Check VAT number using a specified country code.

How do I check if a specific VAT number is valid on the country "NL"?

I should clarify that I understand that you can specify English country names, but there is no way to specify country code. That really seems like an oversight, any non-English application will have to resort to using a switch that converts country codes to english country names just to work with this library.

@rlenders Sorry, I'm not sure if I catch the problem.
Can you please provide an example?
I mean it would be better if you'll provide it like "What we have now: ..., What I want to see: ..."

Usually if I have a NL's VAT, like NL010000446B01, an output will be like {"value":"NL010000446B01","isValid":true,"country":"netherlands"}.
E.g. If I want to allow only Netherland's VAT I can check result's field "country" to be equal to netherlands.
Basically
function checkVAT(vat){
var result = jsvat.checkVAT(vat)
if (result.isValid && result.country === 'netherlands') return true
return false
}

checkVAT('NL010000446B01')

If your VATs have no country code prefixes... well I'm not sure if it will be possible to recognise for which country this VAT is belongs.
Perhaps you can try just to provide country prefix:
const countries = {
  netherlands: 'NL',
  russia: 'RU'
  //...
}

function checkVAT(vat, prefix){
var result = jsvat.checkVAT(prefix + vat)
if (result.isValid && result.country === 'netherlands') return true
return false
}

checkVAT('010000446B01',  countries.netherlands)

As an example, say my application requires a user to select their country from a localized dropdown, and enter their VAT number, which will be validated if the country is supported by your library. It is not allowed to use a VAT number from a different country than the one selected.
To achieve this using this library, I will have to provide a mapping between my dropdown's ISO-standard country codes and this library's non-standard country names. I can't simply .toLowerCase() my country names because netherlands could be written as "The Netherlands", "Holland", "Nederland" or any other localized version.
I feel like this should not be necessary. The list of supported countries is not too long, but if each developer has to supply their own mapping, mistakes will be made. Also, if this library is updated tomorrow and a new country is added, the mapping I wrote will be incomplete. If maintainers update my application to use the latest version of this library, there's a possibility they don't realize some custom mapping requires to be updated as well.
This hurdle can easily be eliminated by supporting or even using country codes internally, like so:
jsvat.countryCodes = ['BE', 'DE', 'LU', 'NL']
Furthermore, this would be nice to have too: if (jsvat.isCountryCodeSupported(cc)) { ... }

@rlenders Got it. Work in progress

@rlenders You can use iso codes for comparison right now.
So first take a look at updated readme.
You can block several countries
jsvat.blocked = ['BE', 'Russia', 'GRC', '203'] //You can provide country's name, or one of iso codes

Also you can block ALL countries except listed:
You can block several countries
jsvat.allowed = ['BE', 'Russia', 'GRC', '203']

End I've changed signature of checkVAT()'s result:
{
  value: 'BG131134023', // VAT without extra characters (like '-' and spaces)
  isValid: true,
  country: { // VAT's couuntry (null if not found)
      name: country.name, //Name of the country
      isoCode: { //Country ISO codes
        short: 'BE',
        long: 'BEL,
        numeric: '056' //String, because of forwarding zero
      }
    }
  }

@rlenders is it okay for you?

@rlenders Cool than, feel free to ping me in case of anything

sorry to reopen this, but I'm not quit sure if I understand this correctly:
If I have a user-entered VAT and also a preselected country (with ISO code),
I need to set the jsvat.allowed = ['myIsoCode']; prior of calling jsvat.checkVat("userEnteredVat"); ?
Wouldn't it be an easy thing to simply provide an overload for checkVat which accepts an iso code / iso code array as 2nd parameter?
Some pseudocode:
function checkVat(vat: string, isoCode: string) {
    const country = GetCountryByIsoCode(isoCode);
    return this.checkVat(vat, [country]);
}


fix(select): make select icon and label clickable, full width for dro…

…pdown #555
Closes #
{{short description}}
Changelog
New

{{new thing}}

Changed

{{change thing}}

Removed

{{removed thing}}

:rocket: Welcome to Baloise ChatOps based GitOps Bot :tada:
- If you want to enable preview environments for this PullRequest, comment with `/preview`.
- If you want to disable the preview environment for this PR, comment with `/undeploy`.
- If you need help or want to see the docs, comment with `/help`.

Make sure to refresh this page after submitting a command.
Preview environments can be redeployed automatically if you enable the webhook for updates to the source branch. :new:

Have fun building awesome apps! :hammer:  :whale2:  :truck:  :ship:

already done


danger ghost icon Button is too wide

For some reason, the icon inside an icon-only "danger-ghost" button has an extra margin-left: 0.5rem.
Here's a primary button beside a (hovered) danger-ghost:

Fixed in v0.70.5


autogenerated

@zikalino can you remove the files for batch application ? Then I will merge the PR

Thanks for the deletion.


Erratic behaviour in Sketch 70.4

Don't know how to describe this, other than sometimes it works and sometimes it doesn't (no window - nothing happens).

@ColinLondon sorry for any troubles with the plugin. As you can probably tell, my development on the plugin has slowed due to competing priorities. It's not for lack of interest though, rest assured. I have just published a fix that should improve responsiveness, result accuracy, and better darkmode support. Also includes a fix for Sketch 72. Do you guys mind giving it a shot?

Worked a treat! Brilliant plugin. Many thanks.


macOS builds fail due to compile errors in core-foundation

The macOS build failure on master is a known issue related to mismatched releases of core-foundation-sys and core-foundation.

The recently-released core-foundation-sys build has been yanked.


Dghazi/sponsors thank you

Completed the "Thank You" section in the Sponsors page (last section). There is some white space on the right side when switching to the mobile screen. I believe that is coming from the "Call for sponsors" section (my mistake, I didn't catch it the first time). I will create a card for that and fix later so please just disregard that for now.

@dghazi12 deploy failes

@dghazi12 deploy failes

@BBoutet1 I believe it should be good now. Thanks!


[FEATURE] Cosmos | Connection endpoint rediscovery (connection state listener)

TODO

[x] Feature description
[x] Read latency benchmarks
Collected and analyzed numbers from our prod-03 environment
See read latency benchmark results
[X ] Socket utilization numbers
Collected numbers from our prod-03 environment (As part of read latency benchmark run)
See read latency benchmark results
[ ] Memory utilization numbers
Collected numbers from our prod-03 environment (As part of read latency benchmark run)
Next up: Analyze results
[x] Thought experiment that builds confidence that this feature corrects other read latency issues we've been seeing
Reviewed with @xinlian12, @kushagraThapar, @moderakh
[ ] Upgrade test results with evidence that this feature functions as expected without performance or reliability issues.
Collecting data from our test-33 environment
Next up: Analyze results

This PR will be ready for merge when we're convinced that the feature is functionally correct and does not introduce performance or reliability issues.
Purpose
The connection endpoint rediscovery feature is designed to reduce and spread-out high latency spikes that are likely to occur:

During rolling upgrades of a Cosmos instance or
When a backend node is being decommissioned or restarted (e.g., to restart or remove an unhealthy replica)

Our expectation is that this PR will improve reliability without effecting performance under normal circumstances when there is no rolling upgrade taking place and no servers being decommissioned or restarted.
Implementation
The GlobalAddressResolver now implements AddressResolverExtension. This new interface extends IAddressResolver and adds methods to support the RntbdConnectionStateListener. The RntbdTransportClient now uses the RntbdConnectionStateListener to
build a reverse lookup table that maps physical endpoint addresses to sets of PartitionKeyRangeIdentity instances. New endpoint addresses are added each time that RntbdTransportClient::invokeStoreAsync is called.
When we detect that a server may be down or going down, we remove the effected PartitionKeyRangeIdentity instances from the physical address cache and close the effected RntbdEndpoint. The physical addresses that service an effected PartitionKeyRangeIdentity will then be updated on the next request as if it were the first request targeting the PartitionKeyRangeIdentity. Here are the conditions that RntbdTransportClient::invokeStoreAsync detects:

A graceful shutdown is occurring.
This is indicated by a GoneException with sub-status code zero (SubStatusCodes.UNKOWN).

The service is down.
This is indicated by a GoneException with non-null cause. We expect an IOException as the cause. Common causes of type IOException are:

ConnectTimeoutException
Indicates that an attempt to connect to a remote host timed out.

ConnectException
Indicates that the server can't be reached.

ClosedChannelException
Indicates a connection dropped.

IOException
Indicates a connection was reset by the remote host.

Endpoint closure is aggressive. We close an endpoint (all channels) at the time that a connection issue is detected on any channel. We will consider less aggressive strategies based on what we find in test. We are cognizant of the fact that unnecessary RntbdEndpoint evictions could cause a flood of retries. We will adapt to what we find in test.
This feature is hidden behind a new feature flag: DirectConnectionConfig::enableConnectionEndpointRediscovery (default: false). When we're satisfied with the implementation, we'll change the default to true.
Read Latency Benchmark results
All benchmark results were produced in the prod-03 test environment:

Cosmos DB instance:
cosmos-sdk-core-3

Virtual machine:
Linux (ubuntu 18.04)
Standard F16s_v2 (16 vcpus, 32 GiB memory)

Here is the raw data and a Jupyter notebook for further analysis.
Charts

P95, Document count: 1

P95, Document count: 100,000

P99, Document count: 1

P99, Document count: 100,000

P99.9, Document count: 1

P99.9, Document count: 100,000

Throughput, Document count: 1

Throughput, Document count: 100,000

Socket utilization, Document count: 1

This chart shows socket counts by concurrency level with documentCount 1. Socket counts are summed over the set of observations taken at the end of each of five one minute periods in the benchmark. Socket counts were collected using ss. Divide the socket count by five to get the average count at the end of each period.

Socket utilization, Document count: 100,000

This chart shows socket counts by concurrency level with documentCount 100,000. Socket counts are summed over the set of observations taken at the end of each of five one minute periods in the benchmark. Socket counts were collected using ss. Divide the socket count by five to get the average count at the end of each period.

Later: In a follow-on PR

Distinguish between requests that fail because of a connection issue:

Writes (aka, sends) that do not reach the server
Writes (aka, sends) that reach the server (i.e., confirmed by TCP ACK)

Rationale: enables retries for create/delete/update operations that are known not to reach the server. TransportException was developed with this in mind. This info can be extracted from the RequestTimeline and stored into the exception.

Ensure that Cosmos client never instantiates GoneException with sub-status code zero.
Consider whether the client should instantiate any CosmosException using a sub-status code that may be returned in a response from the server.

/azp run java - cosmos - tests

This PR has been split into three PRs:
https://github.com/Azure/azure-sdk-for-java/pull/16204
https://github.com/Azure/azure-sdk-for-java/pull/16197
https://github.com/Azure/azure-sdk-for-java/pull/15991


Remarks should be allowed to be empty for Liability and Assets

@bharathcs @sheehui how do u guys want to do this again. Rmb yall were talking about it. Should we accept null or smth

I'm scared of nulls honestly. What if we just auto fill in "" if append is called without a remark prefix?

So the same way notes is done? I think that should be the way as well @sheehui ?

making remarks optional will be considered a new feature, thus this issue will not be pursued further.
Damith's words


chore: docker release ci should also update latest tag

done:
https://hub.docker.com/r/lnbits/lnbits/tags


 Background player still exists after destroying track-player

Configuration
react-native-track-player version: 2.0.0-rc13
Issue
I use track player to render a recording.
It works really fine, But after I'm destroying the player on iOS,
After locking the device the audio stream indeed stopped, but I still see the notification.
Code
    const leavePlayer = async () => {
        await TrackPlayer.stop();
        await TrackPlayer.destroy();
    }

After executing this function the player destroys, But after locking the screen - this is the result.

Do you have any idea why does it happen? Thanks.

Does this happen only if you are viewing the lock screen when your leavePlayer function is called?
Does it happen if you are in the app when the function is called, and then press power button twice to view lock screen?

Related:
https://github.com/react-native-kit/react-native-track-player/issues/825
https://github.com/jorgenhenrichsen/SwiftAudio/issues/83

I can confirm this bug.
Destroying the player doesn't destroy the external notification player.

Calling TrackPlayer.reset() before destroying fixes the issue. At least it's a workaround for now.

@marioot If you are viewing the lock screen when calling reset() and destroy(), does the notification go away?

@marioot calling reset before destroy does not work for me, @curiousdustin Any update on this?

Experiencing the same issue here. In the return statement for the useEffect (the unmount) I've tried the following to no avail, the notification still persists on iOS. Android works as expected.
TrackPlayer.remove(trackId)
TrackPlayer.reset()
TrackPlayer.destroy()

Experiencing the same issue here. In the return statement for the useEffect (the unmount) I've tried the following to no avail, the notification still persists on iOS. Android works as expected.
TrackPlayer.remove(trackId)
TrackPlayer.reset()
TrackPlayer.destroy()


Shot visibility issue

With Require viewers to be logged in option unflagged you get a 500 server error as anonymous user.
Noticed with release 1.9.0 (latest seems to be "ouf of order" in my use cases, see #49), browser independent.

Wrong reporting, sorry.


Return results of the inference in case of an error

I open this issue as a starting milestone toward "robustness."
At the moment, if an error occurs during inference, then RxInfer does not return you the intermediate result which was acquired before the error occurred. The error can be caused by different things: numerical instabilities, inadequate data stream, user interruption during inference, etc.
As a suggestion, we may want to add an optional argument to the inference function:
inference(..., allow_failure = true, )

@bvdmitri, perhaps that requires a separate issue, but I wonder if we'd like to support the user's "interruptions" such that the inference dumps/saves the current results but continues. I imagine that the inference will be running all the time for the actual agent, so supporting this "dump" might be a thing.


Rock Paper Scissors

Describe the project
A game of Rock Paper Scissors between you v/s the Computer based on Math.random .
Issue Type:

[ ] New Project

Additional context

Add any other context or screenshots about the project here.
Screenshots

If applicable, add screenshots to help explain your problem.
Need for a good UI for it.

Hello @pancham1305  I can build game of Rock Paper Scissors between you v/s the Computer using  Math.random . Can you please assign me this issue...
Please assign this to me under @SSOC23

I can improve the UI if you  want more good then these
My Github repo:  https://panjyar.github.io/stone-paper-scissors/

Hello @pancham1305 I have already built a game like this using math.random between user and computer and have updated the score respectively. Please assign it to me.
My GitHub repo: https://tusharjoshi1703.github.io/rockpaperscissor/

@TusharKesarwani I can improve the UI of this project. please assign it to me

@TusharKesarwani I can contribute to this project. Can you please assign it to me?

@TusharKesarwani, I would like to contribute to this project by focusing on good coding practices and a good User Interface. Can you please assign it to me?

@SwapnilGanguly games are not allowed


Implement async arrow functions

As mentioned in #977 we do not yet support async arrow functions.

what is the status on this? can we use async arrow functions?

I closed it because it was fixed.
http://google.github.io/traceur-compiler/demo/repl.html#%2F%2F Options%3A --async-functions

let f %3D async () %3D> {
  await 42%3B
}%3B

let g %3D async x %3D> {
  await 42%3B
}%3B


forward specialized BytesMut methods on {Encode,Decode}Buf

Forwards more Buf/BufMut methods on EncodeBuf and DecodeBuf to take advantage of specialized implementations on BytesMut, where available.
Motivation
BytesMut has some optimized variants of Buf and BufMut methods that users of EncodeBuf and DecodeBuf currently miss out on. In particular, an O(1) zero-copy variant of Buf::copy_to_bytes and variants of BufMut::put and BufMut::put_slice that elide checking remaining_mut/advance_mut.
Solution
Provide specialized implementations of Buf::copy_to_bytes on DecodeBuf as well as ButMut::put and BufMut::put_slice on EncodeBuf which forward these calls onto the underlying BytesMut implementations.

Thanks. Seems to be addressed at #1695.


Google colab demo problem

Using unmodified Googlecolab I got this error:
model = create_model(opt)
model.setup_to_test('coco_finetuned_mask_256_ffs')
initialize network with normal
initialize network with normal
initialize network with normal
model [FusionModel] was created
load Fusion model from checkpoints/coco_finetuned_mask_256_ffs/latest_net_GF.pth
FileNotFoundError                         Traceback (most recent call last)
 in ()
1 model = create_model(opt)
----> 2 model.setup_to_test('coco_finetuned_mask_256_ffs')
3 frames
/usr/local/lib/python3.6/dist-packages/torch/serialization.py in init(self, name, mode)
213 class _open_file(_opener):
214     def init(self, name, mode):
--> 215         super(_open_file, self).init(open(name, mode))
216
217     def exit(self, *args):
FileNotFoundError: [Errno 2] No such file or directory: 'checkpoints/coco_finetuned_mask_256_ffs/latest_net_GF.pth'

Yeah the checkpoint zip fails

Do you run the section 4 for downloading the model?
!sh scripts/download_model.sh
I've just checked the notebook, and still not found any problem.

I did it but if you say so i try again! Thank you! I’ll let you know soon
Sent from my iPhone

On 9 Nov 2020, at 07:13, ericsujw<EMAIL_ADDRESS>wrote:

Do you run the section 4 for downloading the model?
!sh scripts/download_model.sh
I've just checked the notebook, and still not found any problem.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

now I found the model pretrained, but I have problems in colorizing my
dataset with the colab. In particular, I uploaded my images in example
folder, and I create the dataloaded dataset but when I run the  "Start to
colorize every images in dataset_loader."
/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:2:
TqdmDeprecationWarning: This function will be removed in tqdm==5.0.0
Please use tqdm.notebook.tqdm instead of tqdm.tqdm_notebook
0%
0/217 [00:00<?, ?it/s]
torch.Size([1, 1, 2, 256, 256])

IndexError                                Traceback (most recent call last)
 https://localhost:8080/# in
()     10         print(data_raw['full_img'].shape)     11
#cropped_data =
util.get_colorization_data(data_raw['cropped_img'], opt, ab_thresh=0,
p=opt.sample_p)
---> 12         full_img_data =
util.get_colorization_data(data_raw['full_img'], opt, ab_thresh=0,
p=opt.sample_p)     13         model.set_input(full_img_data)     14
model.set_fusion_input(full_img_data, [box_info, box_info_2x,
box_info_4x, box_info_8x])

2 frames
/content/InstColorization/util/util.py https://localhost:8080/# in
rgb2xyz(rgb)     86     rgb = (((rgb+.055)/1.055)**2.4)mask +
rgb/12.92(1-mask)     87
---> 88     x =
.412453rgb[:,0,:,:]+.357580rgb[:,1,:,:]+.180423rgb[:,2,:,:]     89
y = .212671rgb[:,0,:,:]+.715160rgb[:,1,:,:]+.072169rgb[:,2,:,:]
90     z = .019334rgb[:,0,:,:]+.119193rgb[:,1,:,:]+.950227*rgb[:,2,:,:]
IndexError: index 2 is out of bounds for dimension 1 with size 2
            **Rita Pucci** ~ https://ritapucci.wordpress.com/

<EMAIL_ADDRESS>||<EMAIL_ADDRESS>||<EMAIL_ADDRESS>||
<EMAIL_ADDRESS>Il giorno lun 9 nov 2020 alle ore 09:05 Rita Pucci<EMAIL_ADDRESS>ha scritto:

I did it but if you say so i try again! Thank you! I’ll let you know soon
Sent from my iPhone
On 9 Nov 2020, at 07:13, ericsujw<EMAIL_ADDRESS>wrote:

Do you run the section 4 for downloading the model?
!sh scripts/download_model.sh
I've just checked the notebook, and still not found any problem.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ericsujw/InstColorization/issues/21#issuecomment-723783884,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALGLSM5C3E562WW3AVFKYXLSO6B77ANCNFSM4TOKVWFA
.

I managed to get it working
https://colab.research.google.com/drive/10bz3OhNOJ-Ojbse0H6UM1a4VUAxKEe47?usp=sharing


Kitematic Windows:  (HTTP code 404) unexpected - {"message":"manifest for USERNAME/myrepository:latest not found"}

Expected behavior
open repository in Windows Kitematic (alpha) and edit it; after successfully creating it on Docker Hub website
Actual behavior
error message in Windows Kitematic (alpha)
(HTTP code 404) unexpected - {"message":"manifest for USERNAME/myrepository:latest not found"}
Information about the Issue
Steps to reproduce the behavior
create new Docker Hub account
create new empty repository (private) on Docker Hub
open Kitematic (alpha) on Windows 10
sign in
select the repository
click on "create"

...
...

Go to https://hub.docker.com/r/USERNAME/myrepository/tags/
Observe no latest tags were created for that image
Select a different tag in Kitematic
🎉  enjoy container running.

Ideally you open an issue with the repo owner to let them know how frustrating it is that they don't have a latest image tagged


[ui] Support for more output types

We currently have a single output node, which is text. However, it would be good to support images, text, audio, and physical device outputs, too.

 Displaying nice legible JSON as output feels important


#235 First draft of v3.1

I do like the new resultset methods 👍
but I am not really sure what the benefit of the select query mocking is...
Maybe its just my usecase but I dont use seeders or any of the old fixture system to create a initial DB state for my tests anymore thanks to this awesome plugin.
Therefore what is the difference between just persiting entities via the factory so a normal e.g. ->get() call inside an integration test fetches it from the DB instead of (basically) mocking the model? just so that the DB layer is extracted and not called? is this so much faster?


Web Api using integrated windows authentication

My visual studio solution contains 2 projects ( web site, web api). both are set to use windows authentication.
When calling my Web Api on Client Side with the following code Ajax call
contentType: "application/json; charset=utf-8",
                        url: "http://localhost:5001/api/financialtargets/GetAllFinancialTargets",
                        type: "GET",
                        dataType: "json",
                        xhrFields: {
                            withCredentials: true
                        },

                        beforeSend: function (req) {
                            req.setRequestHeader('Access-Control-Allow-Origin', '*');
                            req.setRequestHeader('Access-Control-Allow-Methods', 'GET,POST,PATCH,PUT,DELETE,OPTIONS');
                        }

I am getting the following exception:
fail: Microsoft.AspNetCore.Server.Kestrel[13]
      Connection id "0HKTM48QA0B54": An unhandled exception was thrown by the application.
System.InvalidOperationException: No authentication handler is configured to handle the scheme: Automatic  at Microsoft.AspNetCore.Http.Authentication.Internal.DefaultAuthenticationManager.<ChallengeAsync>d__12.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Mvc.ChallengeResult.<ExecuteResultAsync>d__14.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeResultAsync>d__32.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.<InvokeAsync>d__18.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Builder.RouterMiddleware.<Invoke>d__4.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Cors.Infrastructure.CorsMiddleware.<Invoke>d__7.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Hosting.Internal.RequestServicesContainerMiddleware.Invoke>d__3.MoveNext
()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)  at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame`1.RequestProcessingAsync>d__2.MoveNext()

My Web Api project.json:
"dependencies": {
    "Microsoft.AspNetCore.Authentication": "1.0.0",
    "Microsoft.AspNetCore.Authorization": "1.0.0",
    "Microsoft.AspNetCore.Authentication.Cookies": "1.0.0",
    "Microsoft.AspNetCore.Diagnostics": "1.0.0",
    "Microsoft.AspNetCore.Hosting": "1.0.0",
    "Microsoft.AspNetCore.Mvc.Core": "1.0.0",
    "Microsoft.AspNetCore.Cors": "1.0.0",
    "Microsoft.AspNetCore.Mvc.Cors": "1.0.0",
    "Microsoft.AspNetCore.Mvc.WebApiCompatShim": "1.0.0",
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
    "Microsoft.AspNetCore.Server.WebListener": "0.1.0",
    "Microsoft.AspNetCore.StaticFiles": "1.0.0",
    "Microsoft.Extensions.Configuration": "1.0.0",
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
    "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0",
    "Microsoft.Extensions.Configuration.Json": "1.0.0",
    "Microsoft.Extensions.FileProviders.Physical": "1.0.0",
    "Microsoft.Extensions.Logging": "1.0.0",
    "Microsoft.Extensions.Logging.Console": "1.0.0",
    "Microsoft.Extensions.Logging.Debug": "1.0.0",
    "Microsoft.NETCore.App": {
      "version": "1.0.0",
      "type": "platform"
    },
    "Newtonsoft.Json": "9.0.1",
    "PHMG.ProspX.BusinessLogic": "1.0.0-*",
    "PHMG.ProspX.Data": "1.0.0-*",
    "PHMG.ProspX.Security": "1.0.0-*"
  },

  "tools": {
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final"
  },

  "frameworks": {
    "netcoreapp1.0": {
      "imports": [
        "dotnet5.6",
        "dnxcore50",
        "portable-net45+win8"
      ]
    }
  },

  "commands": {
    "web": "Microsoft.AspNet.Server.Kestrel --server.urls=http://localhost:5001"
  },

web api startup.cs:
public class Startup
    {
        public Startup(IHostingEnvironment env)
        {
            var builder = new ConfigurationBuilder()
                .SetBasePath(env.ContentRootPath)
                .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
                .AddEnvironmentVariables();
            Configuration = builder.Build();
        }

        public IConfigurationRoot Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {

            services.AddBusinessLogic();
            services.AddData();
            services.AddCors(options => options.AddPolicy("AllowAll", p => p.AllowAnyOrigin()
                                                                    .AllowAnyMethod()
                                                                     .AllowAnyHeader()
                                                                     .AllowCredentials()));
            // Add MVC services to the services container.
            services.AddMvc(
            // Only allow authenticated users.
            setup =>
            {
                setup.Filters.Add(
                    new AuthorizeFilter(
                        new AuthorizationPolicyBuilder()
                            .RequireAuthenticatedUser()
                            .Build()));

            }).AddJsonOptions(a => a.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver());
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
        {
            loggerFactory.AddConsole(Configuration.GetSection("Logging"));
            loggerFactory.AddDebug();
            app.UseStaticFiles();

            // Add MVC to the request pipeline.
            app.UseCors("AllowAll");

            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "api/{controller}/{action}"
                    );
            });

        }
    }

and web Api program.cs
public static void Main(string[] args)
        {
                var host = new WebHostBuilder()
                .UseUrls("http://localhost:5001")
                .UseKestrel()
                .UseIISIntegration()
                .UseContentRoot(Directory.GetCurrentDirectory())
                .UseStartup<Startup>()
                .Build();
            host.Run();
        }

It looks like you're running Kestrel directly, correct? Kestrel does not support windows auth, you need to use IIS/Express.

Hi Chris,
yes, I am using kestrel because iisexpress does not worked with [cors]. I am using postman to check the headers passed to the web service, with kestrel: the web service accept and recognized windows auth token (cookie) and 'Access-Control-Allow-Origin', where as iisexperss does not recognized the headers Access-Control-Allow-Origin and the windows Auth token and reject the call.
Is there a way to use middleware authentication with ntlm or cookie handler with kestrel (sample).
or if iisexpress, how can I resolve my cors issue...

There is no middleware available for NTLM. Focus on your CORS issue. This looks related: https://github.com/aspnet/CORS/issues/81

sorry but the CORS issue is not related at all, look at my code
services.AddCors(options => options.AddPolicy("AllowAll", p => p.AllowAnyOrigin()
.AllowAnyMethod().AllowAnyHeader().AllowCredentials()));
iisexperss cors handler does not recognized the headers Access-Control-Allow-Origin, the windows Auth token and reject the call. It is not an opaque call or domain issue.
if the Web service and web site are in the same project using Kestrel.
My programs main has got the weblistner configured has followed:
.UseWebListener(
webOpts => { webOpts.Listener.AuthenticationManager.AuthenticationSchemes = AuthenticationSchemes.NTLM; }
)
NTLM works fine the token is passed through the back end. My web site is configured with kestrel / webpack / Aurelia. So is there an option to use NTLM listener in the web service  instead of a middleware?

We'll take another look at this, thanks for the extra info.

@kichalla can you take a look and see if maybe there's an issue in CORS?

@vinny-Jo : You seem to be adding Access-Control-Allow-Origin and Access-Control-Allow-Methods headers to the request. They are response headers sent by the server.
You should not be needing to add the following request headers yourself as the browser does it automatically.
The HTTP request headers:

Origin
Access-Control-Request-Method
Access-Control-Request-Headers

Closing this issue now. You can take a look at my above comment and try again. If you still see an issue, feel free to re-open this issue with more details.


Zenika dev javi

Coverage increased (+0.03%) to 42.612% when pulling 5378df4fee1105b472ff0e0b443ac146772d0f57 on zenika-dev-javi into 6830b3a27f22294527bb24c0911cf421961c5f95 on zenika-dev.


Prepares release 4.6.0-vfinal.

Could you please also add the changelog for scala-refactoring? You can just run the changelog script on the scala-refactoring repo.

done


describe "Add. Fee Calculation Types" in Reminder Levels

Descriptions and an example for "Add. Fee Calculation Types" in Reminder Levels are missing.
I suggest to describe the different "Add. Fee Calculation Types" in Reminder Levels and to add an example, like

you have one invoice with an amount of 1.100 to appear with level = 1 on a new reminder
you have Additional Fee Setup for level 1 of

Threshold Remaining Amount = 500, Add. Fee per Line = 5, Add. Fee per Line % = 2,00
Threshold Remaining Amount = 1000, Add. Fee per Line = 10, Add. Fee per Line % = 5,00

If you use Add. Fee Calculation Type = "Single Dynamic" you get an additional fee calculated with the amount = 65,00.
If you use Add. Fee Calculation Type = "Accumulated Dynamic" you get an additional fee calculated with the amount = 30,00.
… please explain how we these amounts are calculated

Closing as internal.


Rename asset family to asset group

Fixes #142.
The first commit is the manual renaming, and the other two are for generated files. The 'fam' abbrevation was renamed to 'groupPub' where possible, which felt clearer than 'grp'.
AFAICT, the remaining strings containing 'fam' are all related to key derivation, i.e key family and index.

Nice work on catching the more subtle required changes!
The code still makes use of the word family in a few places. Do those instances need to be renamed?

I don't think so - I've been checking for usage with git grep -ni 'fam' and looking at the surrounding lines. As it stands I think all the remaining references are for key derivation, where key_family is the correct naming.

Should I do so as part of testing this PR?

I think for a refactor/rename PR like this our unit and integration tests should be sufficient in catching obvious problems.

I think you should consider squashing the commits

I agree but in interest of unblocking others and since we don't have the same per-commit checks set up in this repo, I'm going to merge this without squashing.


2nd time point release

Hey, I was wondering about the ETA of the 2nd timepoint (full 2yr follow-up) release?
Thanks for your insight,
Nick

Hi Nick! Thanks for your question. Unfortunately, we need to wait until the raw data QC is updated for all of the data so the soonest would be the fall.


[Bug] [Flink] stop flink job error

Search before asking

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

What happened
When I stopped the Flink task on the page, the worker node log reported an error and failed to send the kill signal
What you expected to happen

How to reproduce
Run a task for a Flink component node and then stop through the page.
Anything else
No response
Version
3.2.x
Are you willing to submit PR?

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

Code of Conduct

[X] I agree to follow this project's Code of Conduct

help

For a Flink run task, it's not common to have so many subprocesses. You can analyze what each of these processes is doing.
As for Dolphin, this error is likely due to the process having already exited automatically. Perhaps we can ignore errors like 'No such process'?

Could you please tell me more details, such as the version of flink, whether the flink task was submitted to standlone or yarn, the corresponding tenant and so on, which will help us to reproduce the bug
您能告诉我更多的细节吗，比如flink的版本，flink任务是被提交到了standlone 还是yarn，对应的租户等等信息，这有助于我们复现bug


Can you please make cancel and replace documentaion public?

Can you please make documentation public?
Salesforce CPQ - Cancel and Replace
Documentation Link: https://salesforce.quip.com/KXBRArvmUQcG

@gvpatel - the documentation is public. (I am able to access it via chrome incognito). Perhaps something on your side?

@rjhalvorson could you make the documentation public again? ☺
Tested in 2 browser in incognito mode and gets redirected to okta auth portal for Salesforce.

Could you please make documentation public https://salesforce.quip.com/KXBRArvmUQcG. I have tried to access in incognito but still asking credentials?

@VedikaEdulachanti @ehsky - unfortunately I am no longer at Salesforce and do not have access to the document anymore.


msalAuthenticationService, not msalAuthenticationServiceProvider

I'm submitting a...

[ ] Regression (a behavior that used to work and stopped working in a new release)
[ ] Bug report
[ ] Performance issue
[ ] Feature request
[x] Documentation issue or request
[ ] Other... Please describe:

Browser:

[x] Chrome version XX
[ ] Firefox version XX
[ ] IE version XX
[ ] Edge version XX
[ ] Safari version XX

Library version
Library version: 0.1.1

Current behavior

The documentation indicates that the provider is called msalAuthenticationServiceProvider, but is appears to be actually exported as msalAuthenticationService.
Expected behavior

Minimal reproduction of the problem with instructions

The service provider is different than the service it provides.  It appears that msalAuthenticationServiceProvider is a magic string that gets generated (by Angular?) instead of existing in the code like msalAuthenticationService.


Feature/op 1178 validator plugins fine control

Description
Add more validation control

Task linked: OP-1178 Validator plugins fine control

closing this for lack of interest, and actually it adding option on a validator that doesn't have corresponding creator. I guess there's some value in pointing that out 😅. We'll need to get rid of that, or implement it properly.


[Benchmark] guided decoding

Initial benchmark code for guided decoding to trace performance differences.
See also slack thread
tldr:
Setup
vllm version: 0.6.3.dev236+g48138a84
GPU: A100 80GB
args: --async-engine --model meta-llama/Llama-3.2-3B-Instruct --output-len [2048|4096] [--guided-decoding] [--warmup]

The below is ran with 100 prompts versus 95 prompts with 5 warmup. It seems that current implementation shows around 24% degradation in TPS when outlines is being used.

Reference:

https://github.com/vllm-project/vllm/pull/5006
https://github.com/vllm-project/vllm/issues/5423
https://github.com/vllm-project/vllm/blob/246598a6b1e22616630b7f1bf11bd9bcb31dc860/vllm/model_executor/layers/logits_processor.py#L112

 PR Checklist (Click to Expand)
Thank you for your contribution to vLLM! Before submitting the pull request, please ensure the PR meets the following criteria. This helps vLLM maintain the code quality and improve the efficiency of the review process.
PR Title and Classification
Only specific types of PRs will be reviewed. The PR title is prefixed appropriately to indicate the type of change. Please use one of the following:

[Bugfix] for bug fixes.
[CI/Build] for build or continuous integration improvements.
[Doc] for documentation fixes and improvements.
[Model] for adding a new model or improving an existing model. Model name should appear in the title.
[Frontend] For changes on the vLLM frontend (e.g., OpenAI API server, LLM class, etc.)
[Kernel] for changes affecting CUDA kernels or other compute kernels.
[Core] for changes in the core vLLM logic (e.g., LLMEngine, AsyncLLMEngine, Scheduler, etc.)
[Hardware][Vendor] for hardware-specific changes. Vendor name should appear in the prefix (e.g., [Hardware][AMD]).
[Misc] for PRs that do not fit the above categories. Please use this sparingly.

Note: If the PR spans more than one category, please include all relevant prefixes.
Code Quality
The PR need to meet the following code quality standards:

We adhere to Google Python style guide and Google C++ style guide.
Pass all linter checks. Please use format.sh to format your code.
The code need to be well-documented to ensure future contributors can easily understand the code.
Include sufficient tests to ensure the project to stay correct and robust. This includes both unit tests and integration tests.
Please add documentation to docs/source/ if the PR modifies the user-facing behaviors of vLLM. It helps vLLM user understand and utilize the new features or changes.

Adding or changing kernels
Each custom kernel needs a schema and one or more implementations to be registered with PyTorch.

Make sure custom ops are registered following PyTorch guidelines: Custom C++ and CUDA Operators and The Custom Operators Manual
Custom operations that return Tensors require meta-functions. Meta-functions should be implemented and registered in python so that dynamic dims can be handled automatically. See above documents for a description of meta-functions.
Use torch.libary.opcheck() to test the function registration and meta-function for any registered ops.  See tests/kernels for examples.
When changing the C++ signature of an existing op, the schema must be updated to reflect the changes.
If a new custom type is needed, see the following document: Custom Class Support in PT2.

Notes for Large Changes
Please keep the changes as concise as possible. For major architectural changes (>500 LOC excluding kernel/data/config/test), we would expect a GitHub issue (RFC) discussing the technical design and justification. Otherwise, we will tag it with rfc-required and might not go through the PR.
What to Expect for the Reviews
The goal of the vLLM team is to be a transparent reviewing machine. We would like to make the review process transparent and efficient and make sure no contributor feel confused or frustrated. However, the vLLM team is small, so we need to prioritize some PRs over others. Here is what you can expect from the review process:

 After the PR is submitted, the PR will be assigned to a reviewer. Every reviewer will pick up the PRs based on their expertise and availability.
 After the PR is assigned, the reviewer will provide status update every 2-3 days. If the PR is not reviewed within 7 days, please feel free to ping the reviewer or the vLLM team.
 After the review, the reviewer will put an  action-required label on the PR if there are changes required. The contributor should address the comments and ping the reviewer to re-review the PR.
 Please respond to all comments within a reasonable time frame. If a comment isn't clear or you disagree with a suggestion, feel free to ask for clarification or discuss the suggestion.

Thank You
 Finally, thank you for taking the time to read these guidelines and for your interest in contributing to vLLM. Your contributions make vLLM a great tool for everyone!

Here is my suggested version. It allows for you to specify the backend on the CLI too, through --guided-decoding-backend outlines
"""Benchmark guided decoding throughput."""
import argparse
import json
import random
import time
from typing import List

import uvloop
from transformers import AutoTokenizer

from vllm.engine.arg_utils import AsyncEngineArgs, EngineArgs
from vllm.entrypoints.openai.api_server import (
    build_async_engine_client_from_engine_args)
from vllm.sampling_params import GuidedDecodingParams
from vllm.utils import FlexibleArgumentParser, merge_async_iterators

SCHEMA = {
    "$schema":
    "https://json-schema.org/draft/2020-12/schema",
    "title":
    "User Profile",
    "type":
    "object",
    "properties": {
        "userId": {
            "type": "string",
            "description": "Unique identifier for the user."
        },
        "personalInfo": {
            "type": "object",
            "properties": {
                "firstName": {
                    "type": "string",
                    "description": "The user's first name."
                },
                "lastName": {
                    "type": "string",
                    "description": "The user's last name."
                },
                "age": {
                    "type": "integer",
                    "minimum": 0,
                    "description": "The user's age."
                },
                "phoneNumbers": {
                    "type":
                    "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "type": {
                                "type": "string",
                                "enum": ["home", "work", "mobile"],
                                "description": "Type of phone number."
                            },
                            "number": {
                                "type": "string",
                                "pattern": "^\\+?[1-9]\\d{1,14}$",
                                "description": "Phone number in E.164 format."
                            }
                        },
                        "required": ["type", "number"]
                    },
                    "description":
                    "List of phone numbers associated with the user."
                }
            },
            "required": ["firstName", "lastName"]
        },
        "address": {
            "type": "object",
            "properties": {
                "street": {
                    "type": "string",
                    "description": "Street address."
                },
                "city": {
                    "type": "string",
                    "description": "City name."
                },
                "state": {
                    "type": "string",
                    "description": "State or province."
                },
                "postalCode": {
                    "type": "string",
                    "pattern": "^\\d{5}(-\\d{4})?$",
                    "description": "Postal code."
                },
                "country": {
                    "type": "string",
                    "description": "Country name."
                }
            },
            "required": ["street", "city", "state", "postalCode", "country"]
        },
        "preferences": {
            "type": "object",
            "properties": {
                "newsletterSubscribed": {
                    "type":
                    "boolean",
                    "description":
                    "Indicates if the user is subscribed to the newsletter."
                },
                "favoriteCategories": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "List of user's favorite categories."
                }
            },
            "required": ["newsletterSubscribed"]
        },
        "accountStatus": {
            "type": "string",
            "enum": ["active", "inactive", "suspended"],
            "description": "Current status of the user's account."
        },
        "registrationDate": {
            "type": "string",
            "format": "date-time",
            "description": "ISO 8601 formatted date-time of user registration."
        }
    },
    "required":
    ["userId", "personalInfo", "address", "accountStatus", "registrationDate"]
}

def run_vllm(
    requests: List[tuple[str, int, int]],
    engine_args: EngineArgs,
    n: int,
    guided_decoding: bool = False,
    warmup: bool = False,
) -> float:
    from vllm import LLM, SamplingParams
    llm = LLM(**vars(engine_args))

    # Add the requests to the engine.
    prompts: List[str] = []
    sampling_params: List[SamplingParams] = []
    for prompt, _, output_len in requests:
        prompts.append(prompt)
        sampling_params.append(
            SamplingParams(
                n=n,
                temperature=1.0,
                top_p=1.0,
                ignore_eos=True,
                max_tokens=output_len,
                guided_decoding=GuidedDecodingParams(
                    json=SCHEMA) if guided_decoding else None,
            ))

    start = time.perf_counter()
    llm.generate(prompts, sampling_params, use_tqdm=True)
    end = time.perf_counter()
    return end - start

async def run_vllm_async(
    requests: List[tuple[str, int, int]],
    engine_args: AsyncEngineArgs,
    n: int,
    guided_decoding: bool = False,
    warmup: bool = False,
    disable_frontend_multiprocessing: bool = False,
) -> float:
    from vllm import SamplingParams

    async with build_async_engine_client_from_engine_args(
            engine_args, disable_frontend_multiprocessing) as llm:

        # Add the requests to the engine.
        prompts: List[str] = []
        sampling_params: List[SamplingParams] = []
        if warmup:
            print("Running warmup prompt, for the first 5")
            # We setup the first 5 requests to warmup FSM
            warmup_requests = requests[:5]
            requests = requests[5:]
            for prompt, _, output_len in warmup_requests:
                prompts.append(prompt)
                sampling_params.append(
                    SamplingParams(
                        n=n,
                        temperature=1.0,
                        top_p=1.0,
                        ignore_eos=True,
                        max_tokens=output_len,
                        guided_decoding=GuidedDecodingParams(
                            json=SCHEMA) if guided_decoding else None,
                    ))
            generators = []
            for i, (prompt, sp) in enumerate(zip(prompts, sampling_params)):
                generator = llm.generate(prompt, sp, request_id=f"test{i}")
                generators.append(generator)
            all_gens = merge_async_iterators(*generators)
            async for i, res in all_gens:
                pass

        prompts = []
        sampling_params = []
        for prompt, _, output_len in requests:
            prompts.append(prompt)
            sampling_params.append(
                SamplingParams(
                    n=n,
                    temperature=1.0,
                    top_p=1.0,
                    ignore_eos=True,
                    max_tokens=output_len,
                    guided_decoding=GuidedDecodingParams(
                        json=SCHEMA) if guided_decoding else None,
                ))

        generators = []
        start = time.perf_counter()
        for i, (prompt, sp) in enumerate(zip(prompts, sampling_params)):
            generator = llm.generate(prompt, sp, request_id=f"test{i}")
            generators.append(generator)
        all_gens = merge_async_iterators(*generators)
        async for i, res in all_gens:
            pass
        end = time.perf_counter()
        return end - start

def main(args: argparse.Namespace):
    print(args)
    random.seed(args.seed)

    # Synthesize a prompt with the given input length.
    tokenizer = AutoTokenizer.from_pretrained(
        args.tokenizer, trust_remote_code=args.trust_remote_code)
    prompt = f"Generate an example of a user profile given the following schema: {json.dumps(SCHEMA)}"
    input_len = len(tokenizer(prompt).input_ids)
    print(f"Input length of the prompt: {input_len} tokens")
    requests = [(prompt, input_len, args.output_len)
                for _ in range(args.num_prompts)]

    if args.async_engine:
        engine_args = AsyncEngineArgs.from_cli_args(args)
        elapsed_time = uvloop.run(
            run_vllm_async(
                requests,
                engine_args,
                args.n,
                args.guided_decoding,
                args.warmup,
                args.disable_frontend_multiprocessing,
            ))
    else:
        engine_args = EngineArgs.from_cli_args(args)
        elapsed_time = run_vllm(
            requests,
            engine_args,
            args.n,
            args.guided_decoding,
            args.warmup,
        )

    total_num_tokens = sum(prompt_len + output_len
                           for _, prompt_len, output_len in requests)
    print(f"Throughput: {len(requests) / elapsed_time:.2f} requests/s, "
          f"{total_num_tokens / elapsed_time:.2f} tokens/s")
    total_num_tokens = sum(prompt_len + output_len
                           for _, prompt_len, output_len in requests)
    total_output_tokens = sum(output_len
                              for _, _, output_len in requests)
    print(f"Throughput: {len(requests) / elapsed_time:.2f} requests/s, "
          f"{total_num_tokens / elapsed_time:.2f} total tokens/s, "
          f"{total_output_tokens / elapsed_time:.2f} output tokens/s")

    # Output JSON results if specified
    if args.output_json:
        results = {
            "elapsed_time": elapsed_time,
            "num_requests": len(requests),
            "total_num_tokens": total_num_tokens,
            "requests_per_second": len(requests) / elapsed_time,
            "tokens_per_second": total_num_tokens / elapsed_time,
        }
        with open(args.output_json, "w") as f:
            json.dump(results, f, indent=4)

if __name__ == "__main__":
    parser = FlexibleArgumentParser(description="Benchmark guided decoding.")
    parser = AsyncEngineArgs.add_cli_args(parser)

    parser.add_argument("--output-len",
                        type=int,
                        help="Output length for each request. Overrides the "
                        "output length from the dataset.")
    parser.add_argument("--n",
                        type=int,
                        default=1,
                        help="Number of generated sequences per prompt.")
    parser.add_argument("--num-prompts",
                        type=int,
                        default=10,
                        help="Number of prompts to process.")
    parser.add_argument('--output-json',
                        type=str,
                        default=None,
                        help='Path to save the throughput results in JSON format.')
    parser.add_argument("--async-engine",
                        action='store_true',
                        default=False,
                        help="Use vLLM async engine rather than LLM class.")
    parser.add_argument("--guided-decoding",
                        action='store_true',
                        default=False,
                        help="Whether to enable JSON decoding or not.")
    parser.add_argument("--disable-frontend-multiprocessing",
                        action='store_true',
                        default=False,
                        help="Disable decoupled async engine frontend.")
    parser.add_argument("--warmup",
                        action="store_true",
                        default=False,
                        help="Run warmup prompts before benchmark.")
    args = parser.parse_args()
    if args.tokenizer is None:
        args.tokenizer = args.model
    main(args)

@simon-mo I started to continue work on this PR: https://github.com/vllm-project/vllm/pull/10557/commits

Superceded by #10557


Contribution guidelines

Hey @MathMagique, what are the contribution guidelines for this project? Any in particular? Would like to get involved.

Hi! Basically, do not write code for which you do not write tests and keep your code clean. More information can be found in the contribution section of the turbodbc documentation.


[125] Fix identifier issue

Resolves #125.

Strips return type from FQN (note: I do not know if this is something that should be done? Help me out.)
Handles quoted functions

So the following identifier: a.b."c(x varchar):varchar(12345)" returns a.b."c" as the scoped name and x varchar as the arg types, and handles quotes properly and also strips the return type.
However, a limitation of this is that it does not support colons in double quoted identifiers, e.g.
create view foo ("weird:column": varchar) as ... will fail here.

FWIW, this error:

ValueError: 'int' is not callable

Is caused by the most recent version of pytest-profiling: https://github.com/man-group/pytest-plugins/issues/242 I am updating the setup.py to be !=1.8.0

Also, tested the code changes on my own Snowflake deployment.
It works in the sense that it avoids a parsing error, but I do not know enough about the library to know whether this method of parsing is "good." I also don't want to have to deal with the problem of handling quoted identifiers that use weird characters (colons specifically), to be honest...

Integration tests are being flaky, I ran them myself and it was all green. LGTM


Error when sending email

[ERROR] TypeError: send_email() takes 2 positional arguments but 4 were givenTraceback (most recent call last):  File "/var/task/handler.py", line 836, in main    describe_events(health_client)  File "/var/task/handler.py", line 686, in describe_events    update_ddb(event_arn, str_update, status_code, event_details, affected_accounts, affected_entities)  File "/var/task/handler.py", line 484, in update_ddb    send_alert(event_details, affected_accounts_details, affected_entities, event_type="create")  File "/var/task/handler.py", line 95, in send_alert    send_email(event_details, event_type, affected_accounts, affected_entities)
[ERROR] TypeError: send_email() takes 2 positional arguments but 4 were given Traceback (most recent call last):   File "/var/task/handler.py", line 836, in main     describe_events(health_client)   File "/var/task/handler.py", line 686, in describe_events     update_ddb(event_arn, str_update, status_code, event_details, affected_accounts, affected_entities)   File "/var/task/handler.py", line 484, in update_ddb     send_alert(event_details, affected_accounts_details, affected_entities, event_type="create")   File "/var/task/handler.py", line 95, in send_alert     send_email(event_details, event_type, affected_accounts, affected_entities)

To fix:
change send_email function
def send_email(event_details, eventType):
to match similar send_org_email
def send_email(event_details, eventType, affected_accounts, affected_entities):
also need to update get_message_for_email(event_details, eventType, affected_accounts, affected_entities):
@gmridula I would create a fork but hope you can just fix from this

@gmridula just wondering:
How does this help if the health issue is in the region this is deployed in and related to either lambda or other api calls?

This is fixed now


Project Status

Is this project is in active development? I don't see any pull request being merged or discussion on issues.
I am wondering if it's ok to start a new project using this boilerplate code?

Did you start?

Not yet!

Id like to know if its under dev as well... Doesn't seem to be so.


This has been in production for a while!

Coverage decreased (-0.002%) to 85.646% when pulling 3405f37664fc44c96aa3e6b0a451e2209d6d056e on bug/remove-status-warning into 63dac78ab7f64b309c5931ee393fe6f94f25383d on develop.


No source package on PyPi for 3.4.2 and 3.4.3

Since 3.4.2 there is only a binary package instead of a source package available on PyPi. Source packages are required when doing pip download --no-binary for installation on a machine without internet access.

Hm, we indeed upload a wheel package (as preferred by PyPi / pip), but as I understand this is just another packaging format, you can install it using pip on any machine without internet access. I usually prefer downloaded wheel packages for deployment myself.
Maybe I don't understand the use case - can you elaborate please?

For background - we did change the format with the new PyPi deployment site, where wheel deployment is the recommended option.

With a project containing multiple dependencies it is useful to simply use pip download -r requirements.txt --no-binary :all: to download the source for all packages so that it later can be transferred for compilation to machines of different platforms with no internet access. Now we have to make an exception for pyfakefs: pip download -r requirements.txt --no-binary :all: --only-binary pyfakefs.
It isn't the end of the world but it could be simpler :) Packages like lxml and django has both wheels and source which is the optimal solution in my opinion.

Ok, I updated the release procedure, next release will be both source and binary package.

Source package of 3.4.3 works great! 👍

Glad to here that!


pub get, upgrade fail: Secure Sockets unsupported on this platform

dart version: 1.13.0-dev.2.0+google3-v1.13.0.dev.2.0 (google3) on "linux_x64"
pub version: 1.13.0-dev.2.0
I ran pub get and ended up with a failure: (pub upgrade is similar)
Resolving dependencies...
Invalid argument(s): Secure Sockets unsupported on this platform
package:pub/src/solver/version_solver.dart 246  PubspecCache.getVersions.<async>
dart:async                                      _Completer.completeError
package:pub/src/source/hosted.dart 64           HostedSource.getVersions.<async>
dart:async                                      _Completer.completeError
package:pub/src/http.dart 110                   _PubHttpClient.send.<async>
This is an unexpected error. Please run

    pub --trace get

and include the results in a bug report on http://dartbug.com/new.

I did pub --trace get and got:
Resolving dependencies...

FINE: HTTP GET https://pub.dartlang.org/api/packages/test
    | Accept: application/vnd.pub.v2+json
    | user-agent: Dart pub 1.13.0-dev.2.0
SLVR: Could not get versions for test from hosted:
    | Invalid argument(s): Secure Sockets unsupported on this platform
    |
    | package:pub/src/source/hosted.dart 216               HostedSource._throwFriendlyError
    | package:pub/src/source/hosted.dart 51                HostedSource.getVersions.<async>
    | dart:async                                           _Completer.completeError
    | package:pub/src/http.dart 110                        _PubHttpClient.send.<async>
    | ===== asynchronous gap ===========================
    | dart:async                                           _Completer.completeError
    | package:pub/src/source/hosted.dart 64                HostedSource.getVersions.<async>
    | dart:async                                           _Completer.completeError
    | package:pub/src/http.dart 110                        _PubHttpClient.send.<async>
    | ===== asynchronous gap ===========================
    | dart:async                                           _asyncErrorWrapperHelper
    | package:pub/src/source/hosted.dart                   HostedSource.getVersions
    | package:pub/src/solver/version_solver.dart 238       PubspecCache.getVersions.<async>
    | ===== asynchronous gap ===========================
    | dart:async                                           Future.Future.microtask
    | package:pub/src/solver/version_solver.dart           PubspecCache.getVersions
    | package:pub/src/solver/backtracking_solver.dart 349  BacktrackingSolver._getAllowedVersions.<async>
    | ===== asynchronous gap ===========================
    | dart:async                                           Future.Future.microtask
    | package:pub/src/solver/backtracking_solver.dart      BacktrackingSolver._getAllowedVersions
    | package:pub/src/solver/backtracking_solver.dart 337  BacktrackingSolver._versionQueueFor.<async>.<fn>
    | package:pub/src/solver/version_queue.dart 102        VersionQueue._calculateAllowed.<async>
    | ===== asynchronous gap ===========================
    | dart:async                                           Future.Future.microtask
    | package:pub/src/solver/version_queue.dart            VersionQueue._calculateAllowed
    | package:pub/src/solver/version_queue.dart 83         VersionQueue.advance.<async>
    | ===== asynchronous gap ===========================
    | dart:async                                           Future.Future.microtask
    | package:pub/src/solver/version_queue.dart            VersionQueue.advance
    | package:pub/src/solver/backtracking_solver.dart 438  BacktrackingSolver._findValidVersion.<fn>.<async>
    | dart:async                                           _Completer.completeError
    | package:pub/src/solver/backtracking_solver.dart 561  BacktrackingSolver._checkVersion.<async>
    | ===== asynchronous gap ===========================
    | dart:async                                           _asyncErrorWrapperHelper
    | package:pub/src/solver/backtracking_solver.dart      BacktrackingSolver._findValidVersion.<fn>
    | dart:async                                           Future.doWhile
    | package:pub/src/solver/backtracking_solver.dart 432  BacktrackingSolver._findValidVersion
    | package:pub/src/solver/backtracking_solver.dart 339  BacktrackingSolver._versionQueueFor.<async>
    | ===== asynchronous gap ===========================
    | dart:async                                           Future.doWhile
    | package:pub/src/solver/backtracking_solver.dart 432  BacktrackingSolver._findValidVersion
    | package:pub/src/solver/backtracking_solver.dart 339  BacktrackingSolver._versionQueueFor.<async>
    | ===== asynchronous gap ===========================
    | dart:async                                           _asyncThenWrapperHelper
    | package:pub/src/solver/backtracking_solver.dart      BacktrackingSolver._versionQueueFor
    | package:pub/src/solver/backtracking_solver.dart 289  BacktrackingSolver._solve.<async>.<fn>.<async>
    | ===== asynchronous gap ===========================
    | dart:async                                           Future.doWhile
    | package:pub/src/solver/backtracking_solver.dart 278  BacktrackingSolver._solve.<async>
    | ===== asynchronous gap ===========================
    | dart:async                                           Future.Future.microtask
    | package:pub/src/solver/backtracking_solver.dart      BacktrackingSolver._solve
    | package:pub/src/solver/backtracking_solver.dart 161  BacktrackingSolver.solve.<async>
    | ===== asynchronous gap ===========================
    | dart:async                                           _asyncThenWrapperHelper
    | package:pub/src/solver/backtracking_solver.dart      BacktrackingSolver.solve
    | package:pub/src/solver/version_solver.dart 40        resolveVersions.<fn>
    | package:pub/src/log.dart 393                         progress
    | package:pub/src/solver/version_solver.dart 38        resolveVersions
    | package:pub/src/entrypoint.dart 151                  Entrypoint.acquireDependencies.<async>
    | ===== asynchronous gap ===========================
    | dart:async                                           Future.Future.microtask
    | package:pub/src/entrypoint.dart                      Entrypoint.acquireDependencies
    | package:pub/src/command/get.dart 30                  GetCommand.run
    | package:args/command_runner.dart 178                 CommandRunner.runCommand.<fn>
    | dart:async                                           Future.Future.sync
    | package:args/command_runner.dart 131                 CommandRunner.runCommand
    | package:pub/src/command_runner.dart 130              PubCommandRunner.runCommand.<async>.<fn>
    | dart:async                                           Future.Future.sync
    | package:pub/src/utils.dart 103                       captureErrors.<fn>
    | package:stack_trace                                  Chain.capture
    | package:pub/src/utils.dart 117                       captureErrors
    | package:pub/src/command_runner.dart 130              PubCommandRunner.runCommand.<async>
SLVR: BacktrackingSolver took 0:00:00.432510 seconds.
    | - Requested 1 version lists
    | - Looked up 0 cached version lists
    | - Requested 30 pubspecs
    | - Looked up 59 cached pubspecs
    |
FINE: Resolving dependencies finished (0.4s).
ERR : Invalid argument(s): Secure Sockets unsupported on this platform
FINE: Exception type: ArgumentError
ERR : package:pub/src/solver/version_solver.dart 246       PubspecCache.getVersions.<async>
    | dart:async                                           _Completer.completeError
    | package:pub/src/source/hosted.dart 64                HostedSource.getVersions.<async>
    | dart:async                                           _Completer.completeError
    | package:pub/src/http.dart 110                        _PubHttpClient.send.<async>
    | ===== asynchronous gap ===========================
    | dart:async                                           _Completer.completeError
    | package:pub/src/solver/version_solver.dart 268       PubspecCache.getVersions.<async>
    | dart:async                                           _Completer.completeError
    | package:pub/src/source/hosted.dart 64                HostedSource.getVersions.<async>
    | dart:async                                           _Completer.completeError
    | package:pub/src/http.dart 110                        _PubHttpClient.send.<async>
    | ===== asynchronous gap ===========================
    | dart:async                                           _asyncErrorWrapperHelper
    | package:pub/src/solver/version_solver.dart           PubspecCache.getVersions
    | package:pub/src/solver/backtracking_solver.dart 349  BacktrackingSolver._getAllowedVersions.<async>
    | ===== asynchronous gap ===========================
    | dart:async                                           Future.Future.microtask
    | package:pub/src/solver/backtracking_solver.dart      BacktrackingSolver._getAllowedVersions
    | package:pub/src/solver/backtracking_solver.dart 337  BacktrackingSolver._versionQueueFor.<async>.<fn>
    | package:pub/src/solver/version_queue.dart 102        VersionQueue._calculateAllowed.<async>
    | ===== asynchronous gap ===========================
    | dart:async                                           Future.Future.microtask
    | package:pub/src/solver/version_queue.dart            VersionQueue._calculateAllowed
    | package:pub/src/solver/version_queue.dart 83         VersionQueue.advance.<async>
    | ===== asynchronous gap ===========================
    | dart:async                                           Future.Future.microtask
    | package:pub/src/solver/version_queue.dart            VersionQueue.advance
    | package:pub/src/solver/backtracking_solver.dart 438  BacktrackingSolver._findValidVersion.<fn>.<async>
    | dart:async                                           _Completer.completeError
    | package:pub/src/solver/backtracking_solver.dart 561  BacktrackingSolver._checkVersion.<async>
    | ===== asynchronous gap ===========================
    | dart:async                                           _asyncErrorWrapperHelper
    | package:pub/src/solver/backtracking_solver.dart      BacktrackingSolver._findValidVersion.<fn>
    | dart:async                                           Future.doWhile
    | package:pub/src/solver/backtracking_solver.dart 432  BacktrackingSolver._findValidVersion
    | package:pub/src/solver/backtracking_solver.dart 339  BacktrackingSolver._versionQueueFor.<async>
    | ===== asynchronous gap ===========================
    | dart:async                                           Future.doWhile
    | package:pub/src/solver/backtracking_solver.dart 432  BacktrackingSolver._findValidVersion
    | package:pub/src/solver/backtracking_solver.dart 339  BacktrackingSolver._versionQueueFor.<async>
    | ===== asynchronous gap ===========================
    | dart:async                                           _asyncThenWrapperHelper
    | package:pub/src/solver/backtracking_solver.dart      BacktrackingSolver._versionQueueFor
    | package:pub/src/solver/backtracking_solver.dart 289  BacktrackingSolver._solve.<async>.<fn>.<async>
    | ===== asynchronous gap ===========================
    | dart:async                                           Future.doWhile
    | package:pub/src/solver/backtracking_solver.dart 278  BacktrackingSolver._solve.<async>
    | ===== asynchronous gap ===========================
    | dart:async                                           Future.Future.microtask
    | package:pub/src/solver/backtracking_solver.dart      BacktrackingSolver._solve
    | package:pub/src/solver/backtracking_solver.dart 161  BacktrackingSolver.solve.<async>
    | ===== asynchronous gap ===========================
    | dart:async                                           _asyncThenWrapperHelper
    | package:pub/src/solver/backtracking_solver.dart      BacktrackingSolver.solve
    | package:pub/src/solver/version_solver.dart 40        resolveVersions.<fn>
    | package:pub/src/log.dart 393                         progress
    | package:pub/src/solver/version_solver.dart 38        resolveVersions
    | package:pub/src/entrypoint.dart 151                  Entrypoint.acquireDependencies.<async>
    | ===== asynchronous gap ===========================
    | dart:async                                           Future.Future.microtask
    | package:pub/src/entrypoint.dart                      Entrypoint.acquireDependencies
    | package:pub/src/command/get.dart 30                  GetCommand.run
    | package:args/command_runner.dart 178                 CommandRunner.runCommand.<fn>
    | dart:async                                           Future.Future.sync
    | package:args/command_runner.dart 131                 CommandRunner.runCommand
    | package:pub/src/command_runner.dart 130              PubCommandRunner.runCommand.<async>.<fn>
    | dart:async                                           Future.Future.sync
    | package:pub/src/utils.dart 103                       captureErrors.<fn>
    | package:stack_trace                                  Chain.capture
    | package:pub/src/utils.dart 117                       captureErrors
    | package:pub/src/command_runner.dart 130              PubCommandRunner.runCommand.<async>
---- End log transcript ----

This issue was moved to dart-lang/pub#1333


[helm] prometheus-operator v0.17.0 & bump all images

CI is failing, could you fix it?

Thanks for the changes, Giancarlo; it looks like Frederic has already upgraded the core images and released 0.17 in 6a5c1204610e8c55ae59a7fda297d41f45c539f6. I'm closing this PR.

Actually it’s not the same changes, that was only to kube-Prometheus. It’s still required to update the helm charts, do you want to work on it?

The reason the CI is failing is because one of the pods is not starting, specifically exporter-kube-state. Taking a deeper look running it locally the failing container is not exporter-kube-state itself but exporter-kube-state-addon-resizer that as I understand is using this: https://github.com/kubernetes/autoscaler/tree/master/addon-resizer
Printing the logs for that container shows:
ERROR: logging before flag.Parse: I0227 11:15:46.927747       1 pod_nanny.go:76] Watching namespace: default, pod: latest-exporter-kube-state-exporter-kube-state-686f584c55-2hdbj, container: exporter-kube-state.
ERROR: logging before flag.Parse: I0227 11:15:46.928392       1 pod_nanny.go:77] storage: MISSING, extra_storage: 0Gi
ERROR: logging before flag.Parse: I0227 11:15:47.018352       1 pod_nanny.go:162] Failed to read data from config file "MISSING/NannyConfiguration": open MISSING/NannyConfiguration: no such file or directory, using default parameters
ERROR: logging before flag.Parse: I0227 11:15:47.018391       1 pod_nanny.go:166]
ERROR: logging before flag.Parse: I0227 11:15:47.018425       1 pod_nanny.go:101] cpu: , extra_cpu: , memory: , extra_memory:
panic: cannot parse '': quantities must match the regular expression '^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$'

goroutine 1 [running]:
k8s.io/autoscaler/addon-resizer/vendor/k8s.io/apimachinery/pkg/api/resource.MustParse(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
	/usr/local/google/home/kawych/go-tools/src/k8s.io/autoscaler/addon-resizer/vendor/k8s.io/apimachinery/pkg/api/resource/quantity.go:136 +0x253
main.main()
	/usr/local/google/home/kawych/go-tools/src/k8s.io/autoscaler/addon-resizer/nanny/main/pod_nanny.go:108 +0x6d5```

So at first sight it appears that the new version 1.8 requires a config file and/or parameters to work. I'm not familiar to how it works, still researching, but wanted to leave this here if anyone comes with a solution quicker.

In version 1.8.0 they completely remove the cpu and memory parameters to use the config file instead. This is the error that I'm getting in 1.8.0:
ERROR: logging before flag.Parse: I0227 11:32:35.021835       1 pod_nanny.go:59] Invoked by [/pod_nanny --container=exporter-kube-state --cpu=100m --extra-cpu=1m --memory=100Mi --extra-memory=2Mi --threshold=5 --deployment=exporter-kube-state-18-exporter-kube-state]
unknown flag: --cpu
Usage of /pod_nanny:
      --config-dir string      Path of configuration containing base resource requirements. (default "MISSING")
      --container string       The name of the container to watch. This defaults to the nanny itself. (default "pod-nanny")
      --deployment string      The name of the deployment being monitored. This is required.
      --estimator string       The estimator to use. Currently supported: linear, exponential (default "linear")
      --extra-storage string   The amount of storage to add per node. (default "0Gi")
      --namespace string       The namespace of the ward. This defaults to the nanny pod's own namespace. (default "default")
      --pod string             The name of the pod to watch. This defaults to the nanny's own pod. (default "exporter-kube-state-18-exporter-kube-state-7b54c99db-cjtlc")
      --poll-period int        The time, in milliseconds, to poll the dependent container. (default 10000)
      --storage string         The base storage resource requirement. (default "MISSING")
      --threshold int          A number between 0-100. The dependent's resources are rewritten when they deviate from expected by more than threshold.

And in version 1.8.1 (the one the update is proposing), they reintroduce the cpu and memory parameters, but as we can see in the first posted error log, the cpu, extra_cpu, memory and extra_memory are empty at the end of the parsing.

For now using version "1.7" of addon-resizer works, so maybe will be better to update to that version first and create a new issue for the update to v1.8.1

Given that the prometheus-operator and almost all other helm Charts are updated in master already, I rebased this PR on that and only applied the update to exporter-kube-state. Rephrasing the PR as the last commit message will better reflect this.

@gianrubio sorry for the late reply, you beat me to the punch here. I adapted this PR with Ricardo's help, can you let me know if it's good to go or needs any more changes?

Please rebase it and we are ready to merge!

Rebased

I can't see why is failing, in this case is a timeout but I don't know why it happens

for some reason minikube didn't start, I saw some errors on travis or google network   0     0    0     0    0     0      0      0 --:--:--  0:02:06 --:--:--     0curl: (7) Failed to connect to storage.googleapis.com port 443: Connection timed out
Please re run the test

How can I re-run the test? I can't see a way to do it on the Travis UI

I'll re-open the PR to trigger a rebuild.


error while loading shared libraries: libhsa-runtime64.so.1: cannot open shared object file: No such file or directory

I follow the guide in README, and get this...which confuse me a lot

I have the same problem. Is there any workaround?

You can try to set LD_LIBRARY_PATH to /opt/rocm/lib explicitly.
Which version of rocm are you using?

You can try to set LD_LIBRARY_PATH to /opt/rocm/lib explicitly. Which version of rocm are you using?

I found libhsa-runtime64.so.1 under /opt/rocm/hsa/lib, and setting LD_LIBRARY_PATH to that location fixed the issue for me.

Hi @shana34, apologies for the delay in response. Were you able to resolve your issue following @kikimych and @kahmed10's suggestions? You can also instruct the system linker on where to find .so files for ROCm by following the steps outlined at Post-install instructions.

@shana34, I will close this ticket out for now. Please open a new ticket if you are experiencing similar errors with ROCm 6.2.1.


Improve sigh error message

Yo @reyner, thanks 👍

Going to merge this because I'm doing a sigh release

Thanks @asfalcone


There was an error sending your trade offer.  Please try again later. (15)

Login  success , I tried trading and returned an error

@ha-mark Which case do you have problem? Send offer or accept?

All tests passed. Steam API didn't change.


Addition of new CURL icon

Addition of CURL programming language icon.

I think you will need to create both dark theme and light theme with correct icon format instead..

As per the readme, we do not accept pull requests for icons. Additionally, your added icon(s) don't match the formats of the current iconset. I appreciate your effort to have these icons added, but you'll have to open an issue to request them.


Allow leading underscores in idents

Summary
_ is not a member of XID_Start because some languages don't consider it a valid leading character (certain SQL dialects for example). In practice, leading _'s are accepted by most languages and even have a special role in many modern languages where they indicate intentionally ignored variables. Accepting them in ident() should make it more useful and less surprising.
References

https://www.unicode.org/reports/tr31/
https://www.unicode.org/reports/tr31/#NFKC_Modifications

Thanks again!


No Launchie!

Ok, I have set up 4 gas mining ships and none of them will launch. I have everything set up correctly.

Is there collision with the lip of the station in the front?  F3+B I think will display bounding boxes

Figured it out! Limit on Size.


CYLON_PARQUET flag

add cmake flag CYLON_PARQUET to build parquet related files (default OFF)

We need to add this flag and enable parquet in the travis build. Look at the .travis.yaml file in the root folder.

We need to add this flag and enable parquet in the travis build. Look at the .travis.yaml file in the root folder.

Ah, okay. Should I add that to the current cpp build directly, create a separate flag and add to the build or create a separate build entirely?

How about we add a flag to build.sh that can specify any number of CMAKE flags? ./build.sh --cmake_flags "-D" ?


For operation getNextRowSet method, with operation lock required

Why are the changes needed?

For the operation getNextRowSet method, we shall add lock for it.
For example, for spark operation, the result iterator is not thread-safe, it might throw exception(if the jdbc client to kyuubi server connection socket timeout).

How was this patch tested?

[ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible

[ ] Add screenshots for manual tests if appropriate

[x] Run test locally before make a pull request

Codecov Report

Merging #4949 (8f18f32) into master (f040d7c) will not change coverage.
The diff coverage is 0.00%.

@@           Coverage Diff           @@
##           master   #4949    +/-   ##
=======================================
  Coverage    0.00%   0.00%
=======================================
  Files         557     563     +6
  Lines       30718   30933   +215
  Branches     4005    4032    +27
=======================================
- Misses      30718   30933   +215

Impacted Files
Coverage Δ

...kyuubi/engine/spark/operation/SparkOperation.scala
0.00% <ø> (ø)

...rg/apache/kyuubi/operation/AbstractOperation.scala
0.00% <0.00%> (ø)

.../apache/kyuubi/operation/ExecutedCommandExec.scala
0.00% <ø> (ø)

.../kyuubi/operation/KyuubiApplicationOperation.scala
0.00% <ø> (ø)

.../org/apache/kyuubi/operation/KyuubiOperation.scala
0.00% <ø> (ø)

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

... it might throw exception(if the jdbc client to kyuubi server connection socket timeout).

The change makes sense to me, but I don't get your point. JDBC is the single thread model, why connection socket timeout could cause NPE?

why connection socket timeout could cause NPE?

For incremental collect mode, the fetchResult might trigger a spark task to collect the incremental result.
The jdbc client to kyuubi gateway timeout, but the fetchResult request has been sent to engine.
Then the jdbc client re-send the fetchResult request.
And the getNextResultSet in spark engine side concurrent execute.

thanks, merged to 1.7.2


Anvil GUI Lore Support

Please Support It with 3.3.2 support,
If you need, I'll leave Pull request.

I've updated CHExodius to support 3.3.2
Working on adding lore support right now

Updated! You can find the new release here


Error handlers are synchronous

Describe the bug
The documentation says that error handlers can be asynchronous.
However, asynchronous error handlers do not seem to be supported everywhere.
Code snippet
@app.exception(Exception)
async def handle_base_exception(_request: Request, exception: Exception):
    return response.json("too bad")

Expected behavior
Then, for example when I exceed the REQUEST_MAX_SIZE limit, I would expect to receive "too bad" as a response.
Unfortunately, sanic contains code like https://github.com/huge-success/sanic/blob/91f6abaa81248189fbcbdf685e8bdcbb7846609f/sanic/server.py#L577-L579
which expects the error handler to be synchronous.
Actual behavior
Here are the (verbose) logs of the actual results:
2020-02-17 19:03:15,514:INFO:
[2020-02-17 19:03:24 +0100] [37783] [ERROR] Transport closed @ ('<IP_ADDRESS>', 58698) and exception experienced during error handling
[2020-02-17 19:03:24 +0100] - (sanic.access)[INFO][UNKNOWN]: nil  0 -1
2020-02-17 19:03:24,145:ERROR:Transport closed @ ('<IP_ADDRESS>', 58698) and exception experienced during error handling
2020-02-17 19:03:24,145:INFO:
.../venv/lib/python3.7/site-packages/sanic/server.py:297: RuntimeWarning: coroutine 'handle_base_exception' was never awaited
  self.write_error(PayloadTooLarge("Payload Too Large"))
RuntimeWarning: Enable tracemalloc to get the object allocation traceback

This one seems to be hard to fix because of how asyncio protocols work. The server.write_error function is non-async and thus cannot await on the response, and the function is also called from non-async callbacks that cannot be made async because of how asyncio is built.
I suppose this could be worked around by using asyncio.create_task(...) but doing so might introduce some unexpected effects and since the protocol code is in any case quite convoluted, I am not quite confident enough to just go changing it.
Anyone willing to weigh in, or should I just modify the code and see if tests break?

I've confirmed that this is now fixed in the streaming branch.

This should probably not be closed  until the fix is merged

+1

No, this issue is not stale, it still hasn't been fixed


exit collect when we get EOF

- What I did
Since when we get EOF, we stop collecting the container stats and exit this goroutine. So, we should also exit the collecter when we get EOF. Otherwise, we will keep the collecter running, even if we have already stop collecting the container stats.

Signed-off-by: Xianglin Gao<EMAIL_ADDRESS>

Can you clarify how to test this PR?
It would be even better if you can add UT.
Also, I wonder it can be written as like this to reduce variables
 		case err := <-u:
 			s.SetError(err)
 			if err != nil  && err != io.EOF {
 				continue
 			}
 			// if this is the first stat you get, release WaitGroup
 			if !getFirst {
  				getFirst = true
  				waitFirst.Done()
  			}

@AkihiroSuda
I  think maybe this function can help us test this pr. But I don't have a good idea on how to write a UT about this pr.
In order to exiting the collecter, we should break the for{} when we get EOF.
So I update this pr based on your suggestion.

Code like this line in stats.go will run a goroutine to start a collecter.
And we will not exit this gorountine until we interrupt the command docker stats. This behavior wastes resources, so we should also exit the collecter when we get EOF.

@thaJeztah @vdemeester PTAL

@xlgao-zju Do you have a dump demonstrating that these are being leaked? Typically, io.EOF should not be propagated as an error.

@stevvooe I don't have a dump demonstrating actually, since I find this leak by analysing the code of docker stats(like I said before). And we can handle io.EOF in another way, maybe add another channel to handle io.EOF.

@xlgao-zju I think we need stronger evidence of a leak, like a goroutine dump. The problem with this PR is that it exposes the io.EOF which wasn't exposed before. This may cause code which exited gracefully to report an error on standard exit.

ping @xlgao-zju

I think we need stronger evidence of a leak, like a goroutine dump.

To be honest, I don't have stronger evidence. Do you have any good idea on how to get the goroutine dump?

The problem with this PR is that it exposes the io.EOF which wasn't exposed before. This may cause code which exited gracefully to report an error on standard exit.

Yes, io.EOF should not cause an error. But we do need to expose the io.EOF to shut down the goroutine. Maybe we should figure out how to handle io.EOF gracefully and how to shut down the goroutine.

io.EOF is used in goroutine above. I think it's real leak and this is a proper solution for now.

@LK4D4 Thank you for your patient review. You really understand what I mean.


Ensure prop-types transform works with object pattern in arg

The prop-types transform assumes nodes of type ObjectPattern have a parent node with an init property.  This is not the case when an ObjectPattern is used in function params or call expression arguments (e.g. function foo({bar}) {} or foo({bar})).
It looks like this is meant to be working with a VariableDeclarator parent.  I've added a test that demonstrates the existing problem and updated the transform so the test passes.

It looks like #115 is trying to fix the same issue.  I'm happy to update this if you'd prefer to check node.init rather than node.type.

Sorry mate. Didn't see this. Already merged a similar fix (PR #127).
Going to close this as a dup but I really appreciate the effort!


Fix example in request docs

Thanks to Michelle for bringing this to my attention.

Current coverage is 94.36%

Merging #317 into master will change coverage by 0% by 3e2ed8b

Powered by Codecov

Nice catch!