[WIP] Python 3.5 support

Coverage decreased (-0.9%) to 88.715% when pulling 5481e7d26b5a8f6b9720f37088eaffecf793fe0c on kwmsmith:feature/py35 into e601b98b1e1c6d1d3fbd3e7483e3bb598a33acef on blaze:master.

Coverage decreased (-0.8%) to 88.746% when pulling cb54e390a479bd08950f6f8da6b9867cae82741c on kwmsmith:feature/py35 into e601b98b1e1c6d1d3fbd3e7483e3bb598a33acef on blaze:master.

Coverage decreased (-1.7%) to 87.858% when pulling 4892b3de60f722bdd36bff5b59e86ffed79feafd on kwmsmith:feature/py35 into e601b98b1e1c6d1d3fbd3e7483e3bb598a33acef on blaze:master.

Coverage decreased (-1.7%) to 87.86% when pulling 79862f97c6273007e94779c4723b887b0449e175 on kwmsmith:feature/py35 into e601b98b1e1c6d1d3fbd3e7483e3bb598a33acef on blaze:master.

Coverage decreased (-1.9%) to 87.734% when pulling 5973c092012bf87ba7b6ed82218b3fcc08fd8f59 on kwmsmith:feature/py35 into e601b98b1e1c6d1d3fbd3e7483e3bb598a33acef on blaze:master.

Coverage decreased (-1.1%) to 88.492% when pulling f731f1f32b0308359ff92294247cbfbd7cdfe325 on kwmsmith:feature/py35 into e601b98b1e1c6d1d3fbd3e7483e3bb598a33acef on blaze:master.

Coverage decreased (-1.9%) to 87.734% when pulling 9862e92b86b23ff574f6a9c144c3ef66550811e5 on kwmsmith:feature/py35 into e601b98b1e1c6d1d3fbd3e7483e3bb598a33acef on blaze:master.

Coverage decreased (-0.2%) to 89.389% when pulling a85eb5c98d8afbaa81307241d807640de9643286 on kwmsmith:feature/py35 into e601b98b1e1c6d1d3fbd3e7483e3bb598a33acef on blaze:master.

@llllllllll this is ready for you to review.

I removed the blaze/expr/parse.py since no one is using exprify() and its tests were failing under py 3.5.
There is no pymongo==2.8 package for Py35 in anaconda, so this PR bumps the pymongo version to 3.0.  The testsuite did not have to change to support this.

Coverage decreased (-1.0%) to 88.631% when pulling 77f217a809d2bdda0fee1475143b4f2765986cdb on kwmsmith:feature/py35 into e601b98b1e1c6d1d3fbd3e7483e3bb598a33acef on blaze:master.

Coverage decreased (-1.0%) to 88.631% when pulling 0ca45e92a92e71d080af6e2104f4f625e31559f0 on kwmsmith:feature/py35 into e601b98b1e1c6d1d3fbd3e7483e3bb598a33acef on blaze:master.

Coverage decreased (-0.2%) to 89.389% when pulling 9ef3122dbbded051cc11ccf417bfa4c30bc0709d on kwmsmith:feature/py35 into e601b98b1e1c6d1d3fbd3e7483e3bb598a33acef on blaze:master.

Coverage decreased (-0.2%) to 89.389% when pulling 3358a47d6cec8d4906e7c89b7c3138708d8f032b on kwmsmith:feature/py35 into e601b98b1e1c6d1d3fbd3e7483e3bb598a33acef on blaze:master.

Looks like solid cleanup, thanks for adding the 3.5 support. I left a few small comments but other than that it lgtm

Coverage decreased (-0.2%) to 89.543% when pulling 57837a7fdb5747c8cb16b4fe6ae21af9fcadf7d4 on kwmsmith:feature/py35 into c3681d6b288f65f08d5356df225f88aacd9aafb6 on blaze:master.

Coverage decreased (-0.2%) to 89.543% when pulling 57837a7fdb5747c8cb16b4fe6ae21af9fcadf7d4 on kwmsmith:feature/py35 into c3681d6b288f65f08d5356df225f88aacd9aafb6 on blaze:master.


-k prevents use of config

Describe the bug
Using -k results in the config file not being used for other specifications like output
Steps to reproduce the behavior:

Use -k option
Have a config file where output is specified
You should see downloads are not saved in the specified path

Expected behavior
When cookie option is given, other settings should be used from the config.
Ideally, cookie could be specified in the config, and if so, it would take precedence over username
Python Environment:
OS Platform: MacOS 10.14.6
Python Version: 2.7.17

@teamcrisis will implement reading config file along with -k switch but cookies will not be added to config file or else it's ruing the purpose -k switch so you should always specify cookies in a separate file then config, config was only meant to be used for logging in using user/pass,filepath,quality.


Added postionBy directive options to tooltip and popovers

Is this a bug fix or enhancement?
Enhancement
Is there a related issue?
https://github.com/uiv-lib/uiv/issues?q=is%3Aissue+is%3Aclosed
Any Breaking changes?
None

Thanks.

Thanks.


New users must install xcode to install ideviceinstaller to use flutter start

Looks like new users must install Xcode related utilities to use Flutter. We should make it optional, if some developers only want to test on Android (or, don't want to install Xcode right away)
device_id not found. To work with iOS devices, please install ideviceinstaller. If you use homebrew, you can install it with "$ brew install ideviceinstaller".

Not sure if the above is actually stopping the workflow, because we encounter another error right after this.

Let's try to make Xcode and related tools (like ideviceinstaller) optional unless the developer explicitly opts into the iOS flow
If that's not possible, we need to reorder the Getting Started guide.

cc @mrasz

I've just run into this trying to take Flutter out for a spin. The repair instructions don't appear to work:
the first time I do a brew install ideviceinstaller I get a lot of errors during the installation. The second I get
Lukes-MacBook-Pro-2:my_app lukechurch$ flutter start
idevice_id not found. To work with iOS devices, please install ideviceinstaller.
If you use homebrew, you can install it with "$ brew install ideviceinstaller".
Android SDK not found. The ANDROID_HOME variable must be set.
Failure building APK. Unable to find components.
Starting lib/main.dart on Nexus 6...
"build/app.apk" does not exist.

Lukes-MacBook-Pro-2:my_app lukechurch$ brew install ideviceinstaller
Warning: ideviceinstaller-1.1.0_1 already installed

Thanks. The error message is also a bit confusing. I'm seeing two messages, one for iOS and one for Android.

If this flow is required (install all xcode tools before you can even use Flutter), then we need to reorder the https://flutter.io/getting-started/ page, because it has the flow of:

install flutter
install enough android tools
see flutter run on your android phone
install xcode
see flutter running in your ios simulator

Hmm, so to clarify this one, we should only warn about missing bits of the Android toolchain if they're trying to use android devices, and only warn about missing bits of the ios one if they're trying to use ios devices.

@devoncarew That sounds right to me.

 Obviously xcode is a bit of a wildcard there, being >4GB and having its own non-CLI install flow.

I think this is addressed. Closing now, and we can open more issues as we encounter them.


Add optional qubit_set property to cirq.Device

Make 'validate_operation' optional to implement
qubit_set falls back to looking for qubit/_qubit fields/methods, otherwise returns None

This makes devices easier to consume (because a common task is to want to view the qubits, knowing that the device is not the unconstrained device) and easier to make (because when prototyping you don't care about validating operations yet).
The shortest interesting device class now looks like this:
class CustomDevice:
    def qubits(self):
        return cirq.LineQubit.range(6)

or this:
class CustomDevice:
    def __init__(self, qubits):
        self.qubits = qubits

echoing others' comments about long-term-plan. "Qubits" are inexorably linked to gate sets.
Is set the right data structure here?

introduces asymmetry between the constructor and the property. You give a list but duplicates and order is "erased"
Confusion around the order of the returned thing and/or you can't index in

I might want to write:
qubits = Sycamore.qubits
cirq.Circuit(cirq.CNOT(qubits[0], qubits[1]))

but that's not possible, so I might write
qubits = list(Sycamore.qubits)
....

and then wonder why my program is different after python changes set ordering / we change how qubits are fed into the device constructor / who knows what

and then wonder why my program is different after python changes set ordering / we change how qubits are fed into the device constructor / who knows what

Sets preserve order in python 3, so you shouldn't see the order change like that.

Automerge cancelled: A status check is failing.

I have discovered that sets do not preserve order in python 3, only dictionaries.

Automerge cancelled: There are merge conflicts.

Automerge cancelled: A status check is failing.

I have discovered that sets do not preserve order in python 3, only dictionaries.

See my concerns above. I think it will be more helpful to have ordered qubits in a device


Update home.html

Button Added to clear options below the time table

@Manvi07 Well for one the button should do something when it's clicked.
It should:

Be on the same row as the "Click on a slot..." text.
Be stylized using bootstrap classes with an icon (e.g from Font Awesome).
Most importantly, it should clear the timetable. The version included in the PR does nothing.


Yet another custom character costume fix

You might have to also add wristbands and elbow pads to the lists, because at indexes 29 and 32 it uses the negative numbers for wristbands in elbow pad slots & at indexes 30 and 33 it uses them for elbow pads in wristband slots.

Merging this PR won't be needed anymore since I fixed the costume issues during the rewrite.


fix(console): use post instead of put for updating stripe customer

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


Refactor coordinates, frames, bodies, everything!!1!

Since we introduced the bodies with static methods I always found them ugly. Finally I took the opportunity to move all the rotation information and the ugliness to poliastro.frames. There is some ugliness we can't escape because astropy frames require some magic to initialize (I have some ideas about how to improve that, but I need more time).
I am not 100 % happy with this pull request though, because I dropped some features along the way, I broke one test, and I didn't check the notebooks. A bit more work is needed, but I'm glad I finally laid down my idea for poliastro.bodies.

Missing:

[ ] Write down all the features and functions I dropped
[ ] Check atmosphere - that code uses some custom constants attached to Earth (I think) and will probably break.
[ ] Think of alternative for bodies with custom properties

Adding a dictionary breaks the frame mapping, because we are using the bodies as keys

[ ] Add at least some smoke tests for the fixed frames

Even if the https://github.com/poliastro/validation/ machinery is not ready, we could do a test with GMAT and copy-paste the values
Alternatively, we could at least write a test copy-pasting the result from our current implementation, to notice when we change anything

Old constant values were used in atmosphere for each one of the atmospheric models, so no dependency on bodies has been stablished. This is the reason why tests_atmosphere were passing.
However the plotting.porkchop failed, so I will investigate why :confused:

One doctest failing:
_______________ src/poliastro/tests/tests_plotting/test_core.py ________________
142: error: "None" has no attribute "template"

I opened a pull request to @Juanlu001 branch to solve those minor errors in test_perturbations :+1:

We will have to apply changes similar to https://github.com/poliastro/poliastro/pull/763/commits/d72bdabf9ef55b6d42f7f6e8bbcbccfd66aa038e to the notebooks as well.

Should rebase after https://github.com/poliastro/poliastro/pull/785 is merged.

Well well well, the coverage check is failing but this is long overdue. The sooner we land this refactor and start testing it ourselves and feeling comfortable with the new code, the better. We can adjust later.
Merging!


Use custom templates for "systemd" and "sysvinit" service providers

Add custom template for "sysvinit" service provider. Purposes are the same as in https://github.com/johnbellone/consul-cookbook/pull/266
Add custom template for "systemd" service provider. Purposes are the same as in https://github.com/johnbellone/consul-cookbook/commit/66bf9389c81011abca23b65898e82e9e783c1508
Don't force "sysvinit" to be a service provider for all platforms.
There is no any reference to the reason why the provider has been hard-coded here. Probably, it was just a typo in https://github.com/johnbellone/vault-cookbook/commit/093f198e5ed73baeb308d4a5cae7e30f40794f65#diff-224e63197dffc5bf0dae729286b58f64R92. Please, correct if it is not so.

👍

@legal90 Can you rebase?

@johnbellone Sure! Done.


how can i know that payment is success or failure .

means using which flag i know that it's successfull.

if it throws exception then its a failure
      EasyUpiPaymentModel(
          payeeVpa: 'gaurav.jajoo@upi',
          payeeName: 'Gaurav Jajoo',
          amount: 10.0,
          description: 'Testing payment',
        ),
      );
      // TODO: add your success logic here
      print(res);
    } on EasyUpiPaymentException {
      // TODO: add your exception logic here
    }

ohh thanks ,
but sometime i don't find any exception just get res as null that's why i am asking is there any issue ?

u can add null check condition for that

Okay Thank You !


Refactor discount/utils.py

Split discount.utils.py file into:

order.py with order calculations
checkout.py with checkout calculations
voucher.py with voucher related calculations
promotions.py with promotion related calculations
shared.py with shared methods
Add common method create_discount_objects_for_order_promotions that is shared between checkout and order

Impact

[ ] New migrations
[ ] New/Updated API fields or mutations
[ ] Deprecated API fields or mutations
[ ] Removed API types, fields, or mutations

Docs

[ ] Link to documentation:

Pull Request Checklist

[ ] Privileged queries and mutations are either absent or guarded by proper permission checks
[ ] Database queries are optimized and the number of queries is constant
[ ] Database migrations are either absent or optimized for zero downtime
[ ] The changes are covered by test cases
[ ] All new fields/inputs/mutations have proper labels added (ADDED_IN_X, PREVIEW_FEATURE, etc.)
[ ] All migrations have proper dependencies
[ ] All indexes are added concurrently in migrations
[ ] All RunSql and RunPython migrations have revert option defined

Closing in favor of https://github.com/saleor/saleor/pull/16239


Adgear dev optics

Add optics metric gathering

Just a note that this branch should not be merged. Instead it should continue to live in its own branch.


Invalid URI: The hostname could not be parsed.

From https://github.com/dotnet/vscode-csharp/issues/6179#issuecomment-1685314271
[Error - 11:20:29 AM] Request textDocument/inlayHint failed.
  Message: Invalid URI: The hostname could not be parsed.
  Code: -32000
[object Object]
[Error - 11:20:29 AM] Request textDocument/codeAction failed.
  Message: Invalid URI: The hostname could not be parsed.
  Code: -32000
[object Object]
[Error - 11:20:29 AM] Request textDocument/semanticTokens/range failed.
  Message: Invalid URI: The hostname could not be parsed.
  Code: -32000
[object Object]
[Error - 11:20:29 AM] Request textDocument/codeAction failed.
  Message: Invalid URI: The hostname could not be parsed.
  Code: -32000
[object Object]
[Error - 11:20:30 AM] Request textDocument/foldingRange failed.
  Message: Invalid URI: The hostname could not be parsed.
  Code: -32000
[object Object]
[Error - 11:20:30 AM] Request textDocument/codeLens failed.
  Message: Invalid URI: The hostname could not be parsed.
  Code: -32000
[object Object]

I expect this is fallout from the URI parsing change a week or two ago.  Need the LSP trace logs to see exactly what the URI is.

Closing this issue as there is not enough info to resolve.  We've added more logging to hopefully be able to track down some of these URI issues.


Please add the required version of BBC Basic to the repo

Thank you for creating this emulator! I'm loving it!
It can be quite confusing to get the correct version of BBC Basic from other repos...
Pleas add the version working with the current state of the emulator as you did for MOS.bin

Yes, I like it convenient, too. I just did skip it, because it did not work, yet.


Handling requests for unknown hostname with single cert

Looks like the problem with ProxyDroid and other transparent forwarders in front of pokemon-go-mitm is it can only impersonate one HTTPS host. pokemon-go-mitm/node-http-mitm-proxy will always send the same SSL/TLS certificate to the client because ProxyDroid doesn't know the requested hostname (a classic constraint of SSL/TLS without SNI). This certificate can't be used in most cases because the common name (CN) in the cert doesn't match the domain name the client is expecting.
@joshie demonstrated that generating a proxy certificate with all the CNs necessary (sso.pokemon.com, android.clients.google.com, etc.) will make auth work again. Should probably insert them in all certificates we generate.
This is necessary for Google auth if you use a modified APK, since the proxy is used to alter the app signing key in the login request.

Just a note this goes beyond auth. When using the android proxy (since android has control over the stack when apps use them, ie most), it adds sni. When using an alternate method (ie redirecting traffic), there is no sni, it is normal ssl, so the certs are being generated for the resolved ips instead.
To be clear, if I just proxy my whole wifi, auth works fine, since sni.
I have a phone that doesn't allow me to set proxy info on cellular networks, so I use proxydroid instead, and only on the pgo app. So I use a cert that has every ssl domain the app needs to hit.

I made a module for the /etc/hosts method. This is probably superior to using proxydroid as far as cleanness goes.
https://github.com/joshie/pokemon-go-mitm-with-https
https://www.npmjs.com/package/pokemon-go-mitm-with-https
feedback welcome

Thanks for the fork and all the work on it!
Actually thought this would have been handled by the lib already. Current implementation:

resolve the IPs of all configured endpoints on startup
whenever a client connects, handleProxyConnect checks if the non-SNI IP-hostname is in the list of resolved IPs
if its the case, the corresponding hostname gets injected into the request - and used for certificate generation

So this should actually work already if all endpoints are configured - maybe its bugged that i won't?
Cheers and happy weekend!

I think the problem only occurs if the host in the CONNECT request is totally wrong, which shouldn't happen unless it's also some /etc/hosts weirdness going on.
Shouldn't be necessary now that we have a direct endpoint, might want to revisit this for HTTPS on the endpoint.


This should fix Travis' procedure

Attempt to make Travis work again.
And it did @did (pun intended) can you please merge this?

thanks @RobertDober!


No way to reset the timer?

I thought that if I do timer.stop() it might reset the timer back to 0. But it does not.
Is this expected? If so, how can I reset the timer back to 0 seconds?

@martin-wiseweb  stop should actually stop the timer. Have you found the solution to your problem?

Yeah sorry I was not paying attention it works as intended!


References represented inside of link block using JSONAPI implementation

Hi guys,
I've trying create association links using Roar::JSON::JSONAPI but I can't reference represented method inside of the has_one block.
For instance:
class RequesterRepresenter < Roar::Decorator
  include Roar::JSON::JSONAPI

  type :requester

  has_one :residence_address do
    type :address

    link :self do
      # I need way to get requester id here.
      "http://example.com/requester/#{requester.id}/relationships/residence_address"
    end
  end

  property :id
  # ... other properties
end

How I described, I would need some way to get requester.id inside of has_one. Anyway to do it?

Does represented work for you? That's the official API!

I can't use represented as requester inside of has_one block, because when I used it, the represented is the instance of residence_address like example above.

That is correct behaviour.
The represented method refers to the currently rendered object, which is a residence_address in your case.
You can do represented.requester if that's what your data model allows. Alternatively, you can pass the requester as a :user_options to the block. Representable/Roar does not support accessing parent decorators right now. Let me think about that!

As this might be a common problem in JSON API, we could introduce a :parent_represented option, which'd work as follows.
link :self do |options|
  options[:parent_represented].id
end

This issue was moved to trailblazer/roar-jsonapi#14


Don't use 'embedurl' in function or file name #148 #149

Stylus 0.54.0 introduces new embedurl() bif
So, we need to avoid same-named function in our code (renamed to 'data-uri')
Also, don't use 'embedurl' in any dir/file name or object key (renamed to 'urlfunc')

Yay!

That was a very unexpected mind-breaker for me :-D But finally, the puzzle is solved


Issue with FGDC metadata, step 2

I have noticed an issue with the FGDC metadata, step 2 tool. All database elements are identified as non-spatial tables in the output xml files. The feature dataset and feature class elements are not being correctly identified (examples below). Any assistance with this issue will be greatly appreciated.

Sorry, the example text from the xml file did not retain its formatting in the previous post.

Thanks for logging this, Carlos. I can't say for sure when I can take a closer look, but it is in the queue.

Thanks, Evan! No rush, take your time. I appreciate the help, as always.

I just posted a new version with a fix. It was the result of a simple typo.
I ran it and got the expected results, but please let us know if this solves the problem for you.

Thanks for the update, Evan. The tool is now working as expected. I really appreciate the fix!


docs: Make @alfrunes art great again

Maybe it's more efficient to discuss with all parties over email, though there are two things that I conceptually can see being a bit confusing:

Mender Gateway looks like a desktop computer with a user interface, while this isn't the case. I would simply use the same icon as the "device" (looks like CPU to me), or maybe a bit more powerful one somehow (like a wifi router or the like).

Mender Artifact store - should we simply remove that? If it is significant to keep it, e.g. to future proof once we get caching, I would create some square around Mender Artifact storage and potentially other services and call that Mender server. At least to me, the Artifact store is an essential part of the Mender server. If it's not needed then just remove it and keep the Mender server cloud icon.

Hi Eystein,
thanks for the feedback! Will improve the image then :)
Best,
Valeria
On Wed, Mar 2, 2022 at 12:47 AM Eystein Måløy Stenberg <
@.***> wrote:

Maybe it's more efficient to discuss with all parties over email, though
there are two things that I conceptually can see being a bit confusing:

Mender Gateway looks like a desktop computer with a user interface,
while this isn't the case. I would simply use the same icon as the "device"
(looks like CPU to me), or maybe a bit more powerful one somehow (like a
wifi router or the like).
Mender Artifact store - should we simply remove that? If it is
significant to keep it, e.g. to future proof once we get caching, I would
create some square around Mender Artifact storage and potentially other
services and call that Mender server. At least to me, the Artifact store is
an essential part of the Mender server. If it's not needed then just remove
it and keep the Mender server cloud icon.
—
Reply to this email directly, view it on GitHub
https://github.com/mendersoftware/mender-docs/pull/1699#issuecomment-1055981183,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AQJXLDIYMRJDMHHGYAG4LI3U52UA3ANCNFSM5PTUVIQA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you authored the thread.Message ID:
@.***>

--
Valeria Ceselli | Social Media and Community Manager | (+47) 957 62 152 |
https://mender.io
Northern.tech AS https://northern.tech/ | @northerntechHQ
https://twitter.com/northerntechhq

😂
On Thu, Mar 17, 2022 at 4:49 PM oleorhagen @.***> wrote:

@.**** requested changes on this pull request.
I think that the great again part should be removed, as it is
misleading.
This was never great.
Make @alfrunes https://github.com/alfrunes art great, is way more
descriptive imo
—
Reply to this email directly, view it on GitHub
https://github.com/mendersoftware/mender-docs/pull/1699#pullrequestreview-913271938,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AQJXLDKE2FKKAWYNEETQRG3VANIBPANCNFSM5PTUVIQA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you authored the thread.Message ID:
@.***>

--
Valeria Ceselli | Social Media and Community Manager | (+47) 957 62 152 |
https://mender.io
Northern.tech AS https://northern.tech/ | @northerntechHQ
https://twitter.com/northerntechhq


file-upload example fails with FileStreamDisconnectUploadError

Steps to reproduce:
When using curl on the file-upload server,
$ curl http://localhost:4000/ -F 'operations={"query":"mutation uploadAFile($file:Uplle:$file){\n\t\tid\n  }\n}","variables":{"file":null}}'   -F 'map={"file":["variables.file"]}'   -F file=@<filename>

curl responds with:
{"data":null,"errors":[{"message":"Cannot read property 'generate' of undefined","locations":[{"line":2,"column":3}],"path":["singleUpload"]}]}

Server shuts down with:
TypeError: Cannot read property 'generate' of undefined
    at Object.<anonymous> (/Users/ashvala/Projects/graphql-yoga/examples/file-upload/index.ts:18:22)
    at step (/Users/ashvala/Projects/graphql-yoga/examples/file-upload/index.ts:32:23)
    at Object.next (/Users/ashvala/Projects/graphql-yoga/examples/file-upload/index.ts:13:53)
    at /Users/ashvala/Projects/graphql-yoga/examples/file-upload/index.ts:7:71
    at new Promise (<anonymous>)
    at __awaiter (/Users/ashvala/Projects/graphql-yoga/examples/file-upload/index.ts:3:12)
    at storeUpload (/Users/ashvala/Projects/graphql-yoga/examples/file-upload/index.ts:53:12)
    at Object.<anonymous> (/Users/ashvala/Projects/graphql-yoga/examples/file-upload/index.ts:38:30)
    at step (/Users/ashvala/Projects/graphql-yoga/examples/file-upload/index.ts:32:23)
    at Object.next (/Users/ashvala/Projects/graphql-yoga/examples/file-upload/index.ts:13:53)

/Users/ashvala/Projects/graphql-yoga/examples/file-upload/node_modules/apollo-upload-server/lib/middleware.js:151
              new _errors.FileStreamDisconnectUploadError(
              ^
FileStreamDisconnectUploadError: Request disconnected during file upload stream parsing.
    at IncomingMessage.request.on (/Users/ashvala/Projects/graphql-yoga/examples/file-upload/node_modules/apollo-upload-server/lib/middleware.js:151:15)
    at IncomingMessage.emit (events.js:182:13)
    at IncomingMessage.EventEmitter.emit (domain.js:442:20)
    at resOnFinish (_http_server.js:564:7)
    at ServerResponse.emit (events.js:182:13)
    at ServerResponse.EventEmitter.emit (domain.js:442:20)
    at onFinish (_http_outgoing.js:683:10)
    at process._tickCallback (internal/process/next_tick.js:61:11)

I haven't looked at the example closely to see if anything is incorrect, but here are some thoughts on the error.

Certain errors when processing uploads used to crash the server, now fixed in newer graphql-upload versions (see https://github.com/prisma/graphql-yoga/issues/356#issuecomment-422767650).
A disconnect error is usually because something async in the resolvers is not being awaited. If you don't wait for the upload to be completely received by the server before returning the resolver, the server will send a response before the request is complete, causing a disconnect.


Failure on enterprise runners

node20 isn't a valid option for GHES runners, should node20 update be a major version change instead of a minor ?
Download action repository 'eloquent/github-release-action@v4' (SHA:0044263213a080ca6606423a93f91f34f82fe913)
Error: System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. (Parameter ''using: node20' is not supported, use 'docker', 'node12' or 'node16' instead.')
   at GitHub.Runner.Worker.ActionManifestManager.ConvertRuns(IExecutionContext executionContext, TemplateContext templateContext, TemplateToken inputsToken, String fileRelativePath, MappingToken outputs)
   at GitHub.Runner.Worker.ActionManifestManager.Load(IExecutionContext executionContext, String manifestFile)
Error: Fail to load eloquent/github-release-action/v4/action.yml

Hmm, that's a tricky one.
I'll consider rolling back v4, but Node.js 16.x is reaching EOL very soon and it just sucks that GitHub has even put us in this situation where we're stuck between supporting an EOL Node.js version and offering Enterprise support. In the meantime you could pin the action to v4.0.1 to get by.

I'm going to roll out v4.2.0 running on node16, and then immediately release v5.0.0 with node20. So if you can wait 30 minutes or so, hopefully everything will be back to working as normal.

v4 is back to using node16, and v5 is ready to go when you're able to make the switch to node20. Feel free to re-open if you run into any further issues.


Mosek returns "UNKNOWN_RESULT_STATUS" after very few iterations

I am solving a SDP problem with Mosek's default settings. I got "UNKNOWN_RESULT_STATUS" after 29 iterations and about 16 sec. Here is the log:
MOSEK warning 52: A numerically large lower bound value  2.6e+08 is specified for constraint '' (35).
MOSEK warning 53: A numerically large upper bound value  2.6e+08 is specified for constraint '' (35).
MOSEK warning 52: A numerically large lower bound value  2.0e+08 is specified for constraint '' (36).
MOSEK warning 53: A numerically large upper bound value  2.0e+08 is specified for constraint '' (36).
MOSEK warning 52: A numerically large lower bound value  1.6e+08 is specified for constraint '' (37).
MOSEK warning 53: A numerically large upper bound value  1.6e+08 is specified for constraint '' (37).
MOSEK warning 52: A numerically large lower bound value  1.4e+08 is specified for constraint '' (38).
MOSEK warning 53: A numerically large upper bound value  1.4e+08 is specified for constraint '' (38).
Problem
  Name                   :
  Objective sense        : min
  Type                   : CONIC (conic optimization problem)
  Constraints            : 3685
  Cones                  : 0
  Scalar variables       : 0
  Matrix variables       : 1
  Integer variables      : 0

Optimizer started.
Presolve started.
Linear dependency checker started.
Linear dependency checker terminated.
Eliminator started.
Freed constraints in eliminator : 0
Eliminator terminated.
Eliminator - tries                  : 1                 time                   : 0.00
Lin. dep.  - tries                  : 1                 time                   : 0.00
Lin. dep.  - number                 : 0
Presolve terminated. Time: 0.00
Problem
  Name                   :
  Objective sense        : min
  Type                   : CONIC (conic optimization problem)
  Constraints            : 3685
  Cones                  : 0
  Scalar variables       : 0
  Matrix variables       : 1
  Integer variables      : 0

Optimizer  - threads                : 4
Optimizer  - solved problem         : the primal
Optimizer  - Constraints            : 3685
Optimizer  - Cones                  : 0
Optimizer  - Scalar variables       : 3600              conic                  : 0
Optimizer  - Semi-definite variables: 1                 scalarized             : 1830
Factor     - setup time             : 0.73              dense det. time        : 0.00
Factor     - ML order time          : 0.48              GP order time          : 0.00
Factor     - nonzeros before factor : 6.79e+06          after factor           : 6.79e+06
Factor     - dense dim.             : 0                 flops                  : 1.67e+10
ITE PFEAS    DFEAS    GFEAS    PRSTATUS   POBJ              DOBJ              MU       TIME
0   2.6e+08  1.0e+00  1.0e+00  0.00e+00   3.158279953e-03   0.000000000e+00   1.0e+00  0.73
1   1.8e+08  7.0e-01  7.7e-01  -1.00e+00  3.066692134e-02   5.420588349e-01   7.0e-01  1.29
2   1.1e+08  4.2e-01  6.3e-01  -1.00e+00  5.568211894e-02   1.468461190e+00   4.2e-01  1.79
3   9.0e+07  3.5e-01  5.6e-01  -1.00e+00  6.366940618e-02   1.958246124e+00   3.5e-01  2.27
4   7.4e+07  2.9e-01  5.4e-01  -1.00e+00  8.624179595e-02   2.547283217e+00   2.9e-01  2.73
5   4.6e+07  1.8e-01  4.3e-01  -1.00e+00  1.531939943e-01   4.644791184e+00   1.8e-01  3.20
6   2.7e+07  1.0e-01  2.8e-01  -1.00e+00  3.375460063e-01   9.012248256e+00   1.0e-01  3.67
7   2.2e+07  8.6e-02  2.3e-01  -1.00e+00  3.835511691e-01   1.126437528e+01   8.6e-02  4.14
8   1.3e+07  5.2e-02  2.6e-01  -1.00e+00  6.191194974e-01   1.861132387e+01   5.2e-02  4.62
9   1.0e+07  3.9e-02  3.5e-01  -1.00e+00  8.084095382e-01   2.461863513e+01   3.9e-02  5.10
10  6.2e+06  2.4e-02  1.7e-01  -1.00e+00  1.227082779e+00   4.142518553e+01   2.4e-02  5.58
11  2.9e+06  1.1e-02  1.4e-01  -1.00e+00  2.377412913e+00   9.031100900e+01   1.1e-02  6.19
12  1.4e+06  5.4e-03  5.0e-03  -1.00e+00  3.026733044e+00   1.867710864e+02   5.4e-03  6.74
13  6.2e+05  2.4e-03  2.3e-03  -1.00e+00  2.524428198e+00   4.120670476e+02   2.4e-03  7.33
14  2.8e+05  1.1e-03  5.6e-02  -1.00e+00  2.583309857e+00   9.206827850e+02   1.1e-03  7.80
15  2.6e+05  1.0e-03  4.4e-02  -1.00e+00  2.592518176e+00   9.703725262e+02   1.0e-03  8.32
16  2.6e+05  1.0e-03  4.3e-02  -1.00e+00  2.593581647e+00   9.798465321e+02   1.0e-03  8.84
17  2.6e+05  1.0e-03  4.3e-02  -1.00e+00  2.593581647e+00   9.798465321e+02   1.0e-03  9.42
18  2.6e+05  1.0e-03  6.9e-02  -1.00e+00  2.593594464e+00   9.807679685e+02   1.0e-03  9.91
19  2.5e+05  1.0e-03  3.9e-02  -1.00e+00  2.596969965e+00   1.005571743e+03   1.0e-03  10.91
20  2.5e+05  9.7e-04  5.9e-02  -1.00e+00  2.600361709e+00   1.034473602e+03   9.7e-04  11.55
21  2.5e+05  9.7e-04  5.9e-02  -1.00e+00  2.600361709e+00   1.034473602e+03   9.7e-04  12.08
22  2.4e+05  9.5e-04  1.3e-02  -1.00e+00  2.602267260e+00   1.058084658e+03   9.5e-04  12.55
23  2.4e+05  9.5e-04  7.8e-02  -1.00e+00  2.602492191e+00   1.062866668e+03   9.5e-04  13.03
24  2.4e+05  9.5e-04  7.8e-02  -1.00e+00  2.602492191e+00   1.062866668e+03   9.5e-04  13.52
25  2.4e+05  9.4e-04  2.3e-02  -1.00e+00  2.601870491e+00   1.071753769e+03   9.4e-04  14.01
26  2.2e+05  8.6e-04  6.7e-02  -1.00e+00  2.596581741e+00   1.161675485e+03   8.6e-04  14.46
27  2.2e+05  8.4e-04  4.7e-02  -1.00e+00  2.595514730e+00   1.186290741e+03   8.4e-04  14.93
28  2.2e+05  8.4e-04  6.1e-02  -1.00e+00  2.595507147e+00   1.185999695e+03   8.4e-04  15.39
29  2.2e+05  8.4e-04  6.1e-02  -1.00e+00  2.595507147e+00   1.185999695e+03   8.4e-04  15.85
Optimizer terminated. Time: 16.35

Solution status: UNKNOWN_RESULT_STATUS

On the other hand, SCS is able to get better bounds after 10k iterations.
I am aware of issues #73 and #100. However, in my case the absolute value of PRSTATUS is 1, which should mean the problem is nice (https://github.com/JuliaOpt/Mosek.jl/issues/73#issuecomment-206934792).
I also tried to set the solver parameters to MSK_IPAR_INTPNT_MAX_ITERATIONS = 10000, MSK_DPAR_OPTIMIZER_MAX_TIME = 60, MSK_DPAR_MIO_TOL_REL_GAP = 1e-08, MSK_IPAR_BI_IGNORE_MAX_ITER = 1. But Mosek still terminates within 29 iterations.

Changing the number iterations is almost always waste of time in a case like this.
Btw when PRSTATUS converge to -1 your problem is most likely either primal or dual infeasible but Mosek cannot compute a valid certificate. My guess is that the problem is primal infeasible.
Here are some things to try:

Remove the objective and resolve. Does it have a feasible solution? Some times it is easier to get a certificate with a 0 objective.
Reduce the size of the bounds or alternatively make them infinite. See the Mosek warnings.
Dump the problem to disk and email it to Mosek support. See

https://docs.mosek.com/9.1/faq/faq.html
for how dump the problem to disk.
How it helps.

Thank you for this fast reply. I have tried to remove the objective, but Mosek still returns UNKNOWN_RESULT_STATUS after 20 seconds. I will try to scale my problem next, and probably dump the problem to Mosek.
I'll close this issue as it does not seem a problem in the JuMP side.


Fix bug where ephemeral logs were not getting cleared

Hello, thanks for the package. Great work. So much easier to drop in a database queue if possible rather than setup a whole other service just to queue jobs.
I had a problem where the ephemeral logs were not getting cleared in my database. Over time, it generated over 1MM records in the log. I noticed a number of issues with both the code designed to purge ephemeral logs and in the test for the same. I think, due to some interactions and by sheer coincidence, the test passed in spite of these issues. In creating this PR, I got the tests broken, then got them passing again with these changes.
Details are in the commit message. What do you think?  Possible to release these soon?

Thanks!  Looks great.


(packaging) Add rake tasks for building nightly gem

The nightly gem's version (aka extended_dot_version) is generated from git describe as the last tag, plus some number of commits and abbreviated git ref:
4.7.0-36-g2ab655b

Additionally, if there are changes in the worktree, then we add 'dirty' to the version.
4.7.0-36-g2ab655b-dirty

The "extended_dot_version" is added to a temporary gemspec that's used to build the gem. That version determines the resulting filename, e.g.
facter-4.7.0-36-g2ab655b.gem

Neither the packaging repo nor this commit update the version in version.rb, so running facter --version may return the "version to be released in the future".

$ bundle exec bx rake pl_ci:nightly_gem_build
Gem::Specification.new do |s|
  s.name = "facter"
  s.version = Gem::Version.new("<IP_ADDRESS>.gb956cd2")
  s.installed_by_version = Gem::Version.new("0")
  s.authors = ["Puppet"]
  s.date = Time.utc(2024, 5, 24)
  s.dependencies = [Gem::Dependency.new("ffi",
    Gem::Requirement.new([">= 1.15.5",
      "< 1.17.0",
      "!= 1.16.0",
      "!= 1.16.1",
      "!= 1.16.2"]),
    :development),
   Gem::Dependency.new("rake",
    Gem::Requirement.new(["~> 13.0", ">= 13.0.6"]),
    :development),
   Gem::Dependency.new("rspec",
    Gem::Requirement.new(["~> 3.0"]),
    :development),
   Gem::Dependency.new("rubocop",
    Gem::Requirement.new(["~> 1.28"]),
    :development),
   Gem::Dependency.new("rubocop-performance",
    Gem::Requirement.new(["~> 1.5.2"]),
    :development),
   Gem::Dependency.new("rubocop-rspec",
    Gem::Requirement.new(["~> 2.10"]),
    :development),
   Gem::Dependency.new("simplecov",
    Gem::Requirement.new(["~> 0.17.1"]),
    :development),
   Gem::Dependency.new("sys-filesystem",
    Gem::Requirement.new(["~> 1.4"]),
    :development),
   Gem::Dependency.new("webmock",
    Gem::Requirement.new(["~> 3.12"]),
    :development),
   Gem::Dependency.new("yard", Gem::Requirement.new(["~> 0.9"]), :development),
   Gem::Dependency.new("hocon", Gem::Requirement.new(["~> 1.3"]), :runtime),
   Gem::Dependency.new("thor",
    Gem::Requirement.new([">= 1.0.1", "< 1.3"]),
    :runtime)]
  s.description = "You can prove anything with facts!"
  s.email =<EMAIL_ADDRESS>  s.executables = ["facter"]
  s.files = ["LICENSE",
   "bin/facter",
   "lib/docs/generate.rb",
   "lib/docs/generate_cli.rb",
   "lib/docs/template.erb",
   "lib/facter.rb",
   "lib/facter/config.rb",
   "lib/facter/custom_facts/core/aggregate.rb",
   "lib/facter/custom_facts/core/directed_graph.rb",
   "lib/facter/custom_facts/core/execution.rb",
   "lib/facter/custom_facts/core/execution/base.rb",
   "lib/facter/custom_facts/core/execution/popen3.rb",
...
SNIP
...
   "lib/facter/util/utils.rb",
   "lib/facter/util/windows/win32ole.rb",
   "lib/facter/version.rb"]
  s.homepage = "https://github.com/puppetlabs/facter"
  s.licenses = ["Apache-2.0"]
  s.require_paths = ["lib"]
  s.required_ruby_version = Gem::Requirement.new([">= 2.5", "< 4.0"])
  s.required_rubygems_version = Gem::Requirement.new(["> 1.3.1"])
  s.rubygems_version = "3.4.10"
  s.specification_version = 4
  s.summary = "Facter, a system inventory tool"
  end
  Successfully built RubyGem
  Name: facter
  Version: <IP_ADDRESS>.gb956cd2
  File: facter-<IP_ADDRESS>.gb956cd2.gem


test minifying the code of supporting function

I'd like to see if extra whitespace/comments impact performance on large recursive CF's.

didn't seem to have any effect


I want to build and watch the changes on the same time! Also want to reduce the build time

React Boilerplate
Issue Type (Question)
Description
How to reduce the time of Build task, as I have only 4-page application and its taking 10s+ to compile and create build folder?
Secondly, I want to run the build task and watch the changes, if is there any change made by developer, it should build it again. Is it possible?

=> https://github.com/react-boilerplate/react-boilerplate#quick-start everything is explained to get what you're asking.


Fixes some transposed configuration settings. e was setting re, f was…

… setting rf and vice-versa.

Wow. Now that was a major brain fart on my part. Thanks for finding that. My tests don't actually test that since I use the default. Yikes! I'll add tests


A weighbridge module

Could you create weighbridge component for blueseer . The company I work in receives input material in weight using a truck scale. It would be great if your erp can connect with weighbridges and capture weights.

This would be more of a customization effort...and not a generic enhancement.    It would be highly dependent on the weighbridge vendor and api offerings...where I assume they are all different.    If the weighbridge does have legitimate apis ...you could theoretically contract a developer to integrate the weighscale apis into the Receiver class of BlueSeer (or simply inventory movement...depending on the objective).   But this would be a customization instance/effort by the enduser...and not a good fit for a generic enhancement of the BlueSeer app in general.   I do not know that much about the use case scenarios of weighbridges...so if anyone sees a generic enhancement opportunity...i.e....the apis are standard across the weighbridge vendor products....then I would be willing to reconsider.

Thanks a lot Mr Vaughn. I have another question : where the data is saved and how to keep it when upgrading from one version to another ?

if you're using the sqlite version...the data is stored in c:\blueseer\data\bsdb.db.    This is a simple file type database....you can copy this over to another folder or drive or USB stick any time you feel a need to back it up.      For upgrades, you can simply copy this file to a temp and restore after the upgrade...(assuming the upgrade doesn't have database schema changes).    There is a utility for getting the latest patch for any version that you're own however.   See System Control.   Most patches are embedded in the bluseer.jar file that can be downloaded and copied over c:\blueseer\dist\blueseer.jar.   If you have further questions or concerns on this....send an email to support listed on the blueseer.com contact page.

closing this...too custom a request for generic enhancement.


How to print "HTTP Body" in multipart request

Hello,
I want to print "HTTP Body" in the multipart request
Right now I am using this code for request and this is working fine, but what should I code for multipart request?
print("HTTP Body : " + String(decoding: response.request?.httpBody ?? Data(), as: UTF8.self))
I am also trying with this code but HTTP Body does not print (blank string print)
print("\n\n\nResponse Debugdescription = \(response.debugDescription)\n\n\n")
I want to print "HTTP Body" in the multipart request
What did you do?
ℹ print("HTTP Body : " + String(decoding: response.request?.httpBody ?? Data(), as: UTF8.self))
What did you expect to happen?
I want to print HTTP Body like this.
ℹ  HTTP body: foo=bar&baz[]=a&baz[]=1&qux[x]=1&qux[y]=2&qux[z]=3.
What happened instead?
Print blank string instead of "HTTP body: foo=bar&baz[]=a&baz[]=1&qux[x]=1&qux[y]=2&qux[z]=3"
ℹ HTTP body:.
Alamofire Environment
Alamofire version:5.0
Xcode version:10.2 :
Swift version:4.2
Platform(s) running Alamofire:iOS
macOS version running Xcode:10.14.5
Demo Project
ℹ Please link to or upload a project we can download that reproduces the issue.
Thank you.

Please fill out the issue template and provide the requested information and we can help you investigate. We can reopen the issue once that's been done.

Please fill out the issue template and provide the requested information and we can help you investigate. We can reopen the issue once that's been done.

Please check the updated question with a template. Please check again and solve this question asap.
I think this is a very simple question.
Thank you.

Without a code sample for more context I can't be sure, but if your multipart data exceeds the in-memory limit (by default 10,000,000 bytes), then it won't be printed, as it will be streamed from disk rather than attached to the URLRequest used for the upload. In that case an EventMonitor implementing request(_ request: UploadRequest, didCreateUploadable uploadable: UploadRequest.Uploadable) should give you the opportunity to inspect what's being uploaded.
As an aside, make sure you're running the latest Alamofire 5 beta, as there have been enhancements to *Response's debugDescription to include both the request and response body.

Closing for now, feel free to update if further investigation has yielded anything useful.


[llvm] Build error

Host Environment

OS: macOS 11.6.1
Compiler:

clang --version
Apple clang version 12.0.5 (clang-1<IP_ADDRESS>)
Target: x86_64-apple-darwin20.6.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

To Reproduce
Steps to reproduce the behavior:
./vcpkg install llvm
Failure logs
./vcpkg install llvm
Computing installation plan...
The following packages will be built and installed:
    llvm[clang,compiler-rt,core,default-options,default-targets,disable-assertions,disable-clang-static-analyzer,enable-bindings,enable-terminfo,enable-threads,enable-zlib,lld,target-spirv,target-x86,tools]:x64-osx -> 14.0.4
Detecting compiler hash for triplet "x64-osx"...
Restored 0 packages from /Users/bel/.cache/vcpkg/archives in 58.98 us. Use --debug to see more details.
Installing 1/1 llvm:x64-osx...
Building llvm[clang,compiler-rt,core,default-options,default-targets,disable-assertions,disable-clang-static-analyzer,enable-bindings,enable-terminfo,enable-threads,enable-zlib,lld,target-spirv,target-x86,tools]:x64-osx...
-- Using cached llvm-llvm-project-llvmorg-14.0.4.tar.gz.
-- Cleaning sources at /Users/bel/vcpkg/buildtrees/llvm/src/org-14.0.4-df58f01928.clean. Use --editable to skip cleaning for the packages you specify.
-- Extracting source /Users/bel/vcpkg/downloads/llvm-llvm-project-llvmorg-14.0.4.tar.gz
-- Applying patch 0002-fix-install-paths.patch
-- Applying patch 0004-fix-dr-1734.patch
-- Applying patch 0005-fix-tools-path.patch
-- Applying patch 0007-fix-compiler-rt-install-path.patch
-- Applying patch 0009-fix-tools-install-path.patch
-- Applying patch 0010-fix-libffi.patch
-- Applying patch 0011-fix-install-bolt.patch
-- Using source at /Users/bel/vcpkg/buildtrees/llvm/src/org-14.0.4-df58f01928.clean
-- Found external ninja('1.11.0').
-- Getting CMake variables for x64-osx-dbg
-- Getting CMake variables for x64-osx-rel
-- Configuring x64-osx-dbg
-- Configuring x64-osx-rel
-- Building x64-osx-dbg
CMake Error at scripts/cmake/vcpkg_execute_build_process.cmake:129 (message):
    Command failed: /usr/local/Cellar/cmake/3.23.2/bin/cmake --build . --config Debug --target install -- -v -j5
    Working Directory: /Users/bel/vcpkg/buildtrees/llvm/x64-osx-dbg
    See logs for more information:
      /Users/bel/vcpkg/buildtrees/llvm/install-x64-osx-dbg-out.log

Call Stack (most recent call first):
  installed/x64-osx/share/vcpkg-cmake/vcpkg_cmake_build.cmake:74 (vcpkg_execute_build_process)
  installed/x64-osx/share/vcpkg-cmake/vcpkg_cmake_install.cmake:16 (vcpkg_cmake_build)
  ports/llvm/portfile.cmake:254 (vcpkg_cmake_install)
  scripts/ports.cmake:146 (include)

error: building llvm:x64-osx failed with: BUILD_FAILED
Please ensure you're using the latest port files with `git pull` and `vcpkg update`.
Then check for known issues at:
    https://github.com/microsoft/vcpkg/issues?q=is%3Aissue+is%3Aopen+in%3Atitle+llvm
You can submit a new issue at:
    https://github.com/microsoft/vcpkg/issues/new?template=report-package-build-failure.md&title=[llvm]+Build+error
Include '[llvm] Build error' in your bug report title, the following version information in your bug description, and attach any relevant failure logs from above.
    vcpkg-tool version: 2022-06-17-9268e366206712e38102b28dbd1617697a99ff2e
    vcpkg-scripts version: 019027ada 2022-06-21 (3 hours ago)

You can also use the prefilled template from /Users/mvs/vcpkg/installed/vcpkg/issue_body.md.

Additional context
install-x64-osx-dbg-out.log

clang: error: unable to execute command: Segmentation fault: 11

Your compiler segfaults so probably unrelated to vcpkg. You are probably running out of memory from what i found about that error within 2 minutes of web search.

It doesn't matter how much time it would take to diagnose when you know what to search for.
I guess it's too easy for you to submit a patch now? :)


[Feat] HitDie Consumer

Add a hit-dice consumer that can consume hit dice.

Released as part of 0.10.10.


Use device_set_uncaptured_error_callback for error handling

Hi, I have been recently working on my own set of bindings for webgpu, but stumbled upon these bindings recently and really like the way the external API is handled. However, after looking at the internals, I have a few issues with it. This is one of the first ones.
This just changes the error handling to use device_set_uncaptured_error_callback instead of the push and pop error scope procedures, reducing boiler plate and removing the need to reference the device in most cases. I may extend this a little further by replacing the printing in the error callback with a user callback system which hijacks the existing wrapped device_set_uncaptured_error_callback procedure and possibly removing the error scope procedures from the wrapper as the error return values should achieve the same aim in most use cases.
But I thought I'd better inform you of my existence and get some feedback before I continue.
P.S Sorry if I come off a little harsh (it's clear from the code that you're quite new to odin), I just figured since we're both working on the same thing at the same time and your version is a little further along it would be easier for me to help out here.

Also sorry about the pointless merge, i did it on accident and I'm not sure how to fanangle git to revert it.

Hi, thanks for your contribution. I didn't share this repo in the Odin community because I want to test more, now you can help me. Yes, I’m new to both Odin and WGPU, but I tried to make things simple with the wrapper version, and I get some references from the python and go bindings.
About the changes:

map_async is synchronous because the data is returned immediately from map_read. We could hide the procs get_mapped_range, map_async and unmap from the user?

Removing the error scope, how we can get errors for every operation in the same context? For example, a error when get a suboptimal surface texture we can skip a frame, like in this example.

When you say "removing the need to reference the device in most cases" is this related to push and pop scope? It's not mandatory for reference counting?

With map_async, I think since it is intended to be used asyncronously we shouldn't enforce syncronosity, what if the person using the library needs that behaviour?
If we're handling every error, using the error scope is unnessasary. we can just use the uncaptured error callback like in this PR. also by using the error scope in the wrapper we restrict the user from being able to use it themselves like in the example you gave.
Because of the usage of error scopes for error handling, the device pointer had to be passed down to everything that had methods that could throw errors. By using the uncaptured error callback we can just pass down a pointer to the callback's user data as that gives us all we'll need for the idiomatic error handling.

Looking closer at the example you linked, with the recent changes I just made to the branch, the behavior could be achieved by checking the returned error and getting the error message using device_get_error_message removing the need to use an error scope at all.

Just took a look at map_read, why not just put the code to make it synchronous in that procedure instead? then you get both the ability to have a synchronous read procedure with map_read, with the async one also working for those who need it.

About the reference, you removed wgpu.device_reference, for some objects creation is not necessary?
Yes, we can make map_read and map_write synchronous and not enforce in the async.

For most objects the device was only being referenced so it could be used with push_error_scope and pop_error_scope, since this change replaces that, the device no longer needs to be referenced in most cases. Also I think one of the objects referenced the device without using it at all, so I removed that too.

Also I'm happy with this patch for now, the possible issues error scopes stuff can be easily addressed serparately. Just note that, It doesn't break anything per say but it does require the user to now handle the display of device error messages themselves, either automatically via the modified device_set_uncaptured_error_callback procedure or on a case by case basis using device_get_error_message.


Fix broken / update ign links in tutorials (Harmonic)

🦟 Bug fix
Fix broken links in tutorial rendered here https://gazebosim.org/api/sim/8/terminology.html
This is targeting Harmonic directly instead of waiting for forward-port because the tutorial party is happening right now.
To test
Compile, then in a browser, navigate to build/gz-sim8/doxygen/html/tutorials.html
Checklist

[x] Signed all commits for DCO
[ ] Added tests
[x] Updated documentation (as needed)
[ ] Updated migration guide (as needed)
[ ] Consider updating Python bindings (if the library has them)
[ ] codecheck passed (See contributing)
[ ] All tests passed (See test coverage)
[ ] While waiting for a review on your PR, please help review another open pull request to support the maintainers

Note to maintainers: Remember to use Squash-Merge and edit the commit message to match the pull request summary while retaining Signed-off-by messages.

This needs to target gz-sim8.

Re title of migration tutorials - good catch!
The migration tutorials did the titles a bit differently from other tutorials - I had wondered about that, the migration titles were always much bigger than other tutorials.
Fixed in bfe664b20

it just shows Gazebo Sim: $title

Mine looks a bit different. Before the fix:

After the fix, it now looks consistent with the other tutorials:

Are you using Doxygen 1.9.2 (see https://github.com/gazebosim/docs/pull/388#event-10372995879)?
Either way, it should look right now.

This PR now dependent on https://github.com/gazebosim/gz-gui/pull/571
It's just for the ref link of gz::gui::plugins in 8c97df5
I can separate it into a new PR if we want to do that.

The migration tutorials did the titles a bit differently from other tutorials - I had wondered about that, the migration titles were always much bigger than other tutorials.

Oh I meant in the browser's title bar, but its working now after the fix!


this is another test...

last issue (10) was created OK via web, will create this via gitkraken, and it will be ODD. will create another after this one.

ignore


chore(api): update ci run condition

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


⚠ Bofrost.fr has degraded performance

In e5cfbf3, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 942 ms

Resolved: Bofrost.fr performance has improved in 780f830 after 6 minutes.


Issue: Keyboard connection error

Hardware: RaspberrryPI 4B 8GB
OS: RaspberryOS 64bit
Display work flawlessly. installation script never installs the files to setup the hid, if installed manually get keyboard connection error message. Generates a Error -71 on a Linux host the tinypilot is connected to.

Thanks for reporting this, @KuroSaru and sorry for the issues. Would you be able to share a gist with the output when you run the install command?
curl -sSL https://raw.githubusercontent.com/mtlynch/tinypilot/master/quick-install | bash -

So i fixed my issues manually.  But i will run script to get output still as now i know my issue.

CORS was blocking sending inputs
Had to manually insatll the usb-gadget service no idea why it wasn't created.

Output:
`
pi@frank:/opt $ curl -sSL https://raw.githubusercontent.com/mtlynch/tinypilot/master/quick-install | bash -

set -e

set -u

'[' -f /etc/nginx/sites-enabled/KVMPi.conf ']'
++ mktemp -d

pushd /tmp/tmp.IYXuNiY6bZ
/tmp/tmp.IYXuNiY6bZ /opt

sudo apt-get install -y python3-venv
Reading package lists... Done
Building dependency tree
Reading state information... Done
python3-venv is already the newest version (3.7.3-1).
The following package was automatically installed and is no longer required:
rpi-eeprom-images
Use 'sudo apt autoremove' to remove it.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

python3 -m venv venv

. venv/bin/activate
++ deactivate nondestructive
++ '[' -n '' ']'
++ '[' -n '' ']'
++ '[' -n /bin/bash -o -n '' ']'
++ hash -r
++ '[' -n '' ']'
++ unset VIRTUAL_ENV
++ '[' '!' nondestructive = nondestructive ']'
++ VIRTUAL_ENV=/tmp/tmp.IYXuNiY6bZ/venv
++ export VIRTUAL_ENV
++ _OLD_VIRTUAL_PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games
++ PATH=/tmp/tmp.IYXuNiY6bZ/venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games
++ export PATH
++ '[' -n '' ']'
++ '[' -z '' ']'
++ _OLD_VIRTUAL_PS1=
++ '[' 'x(venv) ' '!=' x ']'
++ PS1='(venv) '
++ export PS1
++ '[' -n /bin/bash -o -n '' ']'
++ hash -r

pip install ansible==2.9.10
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting ansible==2.9.10
Using cached https://files.pythonhosted.org/packages/03/4f/cccab1ec2e0ecb05120184088e00404b38854809cf35aa76889406fbcbad/ansible-2.9.10.tar.gz
Collecting PyYAML (from ansible==2.9.10)
Using cached https://files.pythonhosted.org/packages/64/c2/b80047c7ac2478f9501676c988a5411ed5572f35d1beff9cae07d321512c/PyYAML-5.3.1.tar.gz
Collecting cryptography (from ansible==2.9.10)
Collecting jinja2 (from ansible==2.9.10)
Using cached https://files.pythonhosted.org/packages/30/9e/f663a2aa66a09d838042ae1a2c5659828bb9b41ea3a6efa20a20fd92b121/Jinja2-2.11.2-py2.py3-none-any.whl
Collecting six>=1.4.1 (from cryptography->ansible==2.9.10)
Using cached https://files.pythonhosted.org/packages/ee/ff/48bde5c0f013094d729fe4b0316ba2a24774b3ff1c52d924a8a4cb04078a/six-1.15.0-py2.py3-none-any.whl
Collecting cffi!=1.11.3,>=1.8 (from cryptography->ansible==2.9.10)
Using cached https://files.pythonhosted.org/packages/05/54/3324b0c46340c31b909fcec598696aaec7ddc8c18a63f2db352562d3354c/cffi-1.14.0.tar.gz
Collecting MarkupSafe>=0.23 (from jinja2->ansible==2.9.10)
Using cached https://files.pythonhosted.org/packages/b9/2e/64db92e53b86efccfaea71321f597fa2e1b2bd3853d8ce658568f7a13094/MarkupSafe-1.1.1.tar.gz
Collecting pycparser (from cffi!=1.11.3,>=1.8->cryptography->ansible==2.9.10)
Using cached https://files.pythonhosted.org/packages/ae/e7/d9c3a176ca4b02024debf82342dab36efadfc5776f9c8db077e8f6e71821/pycparser-2.20-py2.py3-none-any.whl
Building wheels for collected packages: ansible, PyYAML, cffi, MarkupSafe
Running setup.py bdist_wheel for ansible ... error
Complete output from command /tmp/tmp.IYXuNiY6bZ/venv/bin/python3 -u -c "import setuptools, tokenize;file='/tmp/pip-install-y_li2r_p/ansible/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" bdist_wheel -d /tmp/pip-wheel-xdizewp_ --python-tag cp37:
usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
or: -c --help [cmd1 cmd2 ...]
or: -c --help-commands
or: -c cmd --help
error: invalid command 'bdist_wheel'

Failed building wheel for ansible
Running setup.py clean for ansible
Running setup.py bdist_wheel for PyYAML ... error
Complete output from command /tmp/tmp.IYXuNiY6bZ/venv/bin/python3 -u -c "import setuptools, tokenize;file='/tmp/pip-install-y_li2r_p/PyYAML/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" bdist_wheel -d /tmp/pip-wheel-o2cug9pg --python-tag cp37:
usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
or: -c --help [cmd1 cmd2 ...]
or: -c --help-commands
or: -c cmd --help
error: invalid command 'bdist_wheel'

Failed building wheel for PyYAML
Running setup.py clean for PyYAML
Running setup.py bdist_wheel for cffi ... error
Complete output from command /tmp/tmp.IYXuNiY6bZ/venv/bin/python3 -u -c "import setuptools, tokenize;file='/tmp/pip-install-y_li2r_p/cffi/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" bdist_wheel -d /tmp/pip-wheel-it0oc90j --python-tag cp37:
usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
or: -c --help [cmd1 cmd2 ...]
or: -c --help-commands
or: -c cmd --help
error: invalid command 'bdist_wheel'

Failed building wheel for cffi
Running setup.py clean for cffi
Running setup.py bdist_wheel for MarkupSafe ... error
Complete output from command /tmp/tmp.IYXuNiY6bZ/venv/bin/python3 -u -c "import setuptools, tokenize;file='/tmp/pip-install-y_li2r_p/MarkupSafe/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" bdist_wheel -d /tmp/pip-wheel-qf47vwiv --python-tag cp37:
usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
or: -c --help [cmd1 cmd2 ...]
or: -c --help-commands
or: -c cmd --help
error: invalid command 'bdist_wheel'

Failed building wheel for MarkupSafe
Running setup.py clean for MarkupSafe
Failed to build ansible PyYAML cffi MarkupSafe
Installing collected packages: PyYAML, six, pycparser, cffi, cryptography, MarkupSafe, jinja2, ansible
Running setup.py install for PyYAML ... done
Running setup.py install for cffi ... done
Running setup.py install for MarkupSafe ... done
Running setup.py install for ansible ... done
Successfully installed MarkupSafe-1.1.1 PyYAML-5.3.1 ansible-2.9.10 cffi-1.14.0 cryptography-3.0 jinja2-2.11.2 pycparser-2.20 six-1.15.0

echo '[defaults]
roles_path = /tmp/tmp.IYXuNiY6bZ
'

ansible-galaxy install mtlynch.tinypilot

downloading role 'tinypilot', owned by mtlynch
downloading role from https://github.com/mtlynch/ansible-role-tinypilot/archive/master.tar.gz
extracting mtlynch.tinypilot to /tmp/tmp.IYXuNiY6bZ/mtlynch.tinypilot
mtlynch.tinypilot (master) was installed successfully
adding dependency: mtlynch.ustreamer
adding dependency: geerlingguy.nginx
downloading role 'ustreamer', owned by mtlynch
downloading role from https://github.com/mtlynch/ansible-role-ustreamer/archive/master.tar.gz
extracting mtlynch.ustreamer to /tmp/tmp.IYXuNiY6bZ/mtlynch.ustreamer
mtlynch.ustreamer (master) was installed successfully
downloading role 'nginx', owned by geerlingguy
downloading role from https://github.com/geerlingguy/ansible-role-nginx/archive/2.8.0.tar.gz
extracting geerlingguy.nginx to /tmp/tmp.IYXuNiY6bZ/geerlingguy.nginx
geerlingguy.nginx (2.8.0) was installed successfully

echo '- hosts: localhost
connection: local
become: true
become_method: sudo
roles:

role: mtlynch.tinypilot'

ansible-playbook -i localhost, install.yml

PLAY [localhost] ***************************************************************
TASK [Gathering Facts] *********************************************************
[WARNING]: Platform linux on host localhost is using the discovered Python
interpreter at /usr/bin/python, but future installation of another Python
interpreter could change this. See https://docs.ansible.com/ansible/2.9/referen
ce_appendices/interpreter_discovery.html for more information.
ok: [localhost]
TASK [mtlynch.ustreamer : collect universal required apt packages] *************
ok: [localhost]
TASK [mtlynch.ustreamer : collect Raspberry Pi OS specific required apt packages] ***
skipping: [localhost]
TASK [mtlynch.ustreamer : collect Debian-specific required apt packages] *******
ok: [localhost]
TASK [mtlynch.ustreamer : collect Ubuntu-specific required apt packages] *******
skipping: [localhost]
TASK [mtlynch.ustreamer : install uStreamer pre-requisite packages] ************
ok: [localhost]
TASK [mtlynch.ustreamer : create ustreamer group] ******************************
ok: [localhost]
TASK [mtlynch.ustreamer : create ustreamer user] *******************************
ok: [localhost]
TASK [mtlynch.ustreamer : create uStreamer folder] *****************************
ok: [localhost]
TASK [mtlynch.ustreamer : get uStreamer repo] **********************************
ok: [localhost]
TASK [mtlynch.ustreamer : clean repository if needed] **************************
skipping: [localhost]
TASK [mtlynch.ustreamer : enable OpenMax IL acceleration on Pi OS] *************
ok: [localhost]
TASK [mtlynch.ustreamer : build uStreamer] *************************************
ok: [localhost]
TASK [mtlynch.ustreamer : fix uStreamer folder permissions] ********************
ok: [localhost]
TASK [mtlynch.ustreamer : install uStreamer as a service] **********************
ok: [localhost]
TASK [mtlynch.ustreamer : enable systemd uStreamer service file] ***************
ok: [localhost]
TASK [geerlingguy.nginx : Include OS-specific variables.] **********************
ok: [localhost]
TASK [geerlingguy.nginx : Define nginx_user.] **********************************
ok: [localhost]
TASK [geerlingguy.nginx : include_tasks] ***************************************
skipping: [localhost]
TASK [geerlingguy.nginx : include_tasks] ***************************************
skipping: [localhost]
TASK [geerlingguy.nginx : include_tasks] ***************************************
included: /tmp/tmp.IYXuNiY6bZ/geerlingguy.nginx/tasks/setup-Debian.yml for localhost
TASK [geerlingguy.nginx : Update apt cache.] ***********************************
ok: [localhost]
TASK [geerlingguy.nginx : Ensure nginx is installed.] **************************
ok: [localhost]
TASK [geerlingguy.nginx : include_tasks] ***************************************
skipping: [localhost]
TASK [geerlingguy.nginx : include_tasks] ***************************************
skipping: [localhost]
TASK [geerlingguy.nginx : include_tasks] ***************************************
skipping: [localhost]
TASK [geerlingguy.nginx : Remove default nginx vhost config file (if configured).] ***
ok: [localhost]
TASK [geerlingguy.nginx : Ensure nginx_vhost_path exists.] *********************
ok: [localhost]
TASK [geerlingguy.nginx : Add managed vhost config files.] *********************
ok: [localhost] => (item={'listen': '80 default_server', 'server_name': 'tinypilot', 'root': '/opt/tinypilot', 'index': 'index.html', 'extra_parameters': 'proxy_set_header Host $host;\nproxy_set_header X-Forwarded-For $remote_addr;\nproxy_http_version 1.1;\n\nlocation /socket.io {\n  proxy_pass http://localhost:8000;\n  proxy_set_header Upgrade $http_upgrade;\n  proxy_set_header Connection "Upgrade";\n}\nlocation /state {\n  proxy_pass http://localhost:8001;\n}\nlocation /stream {\n  proxy_pass http://localhost:8001;\n}\nlocation / {\n  proxy_pass http://localhost:8000;\n}\nlocation ~* ^/.+\.(html|js|js.map|css|jpeg|png|ico)$ {\n  root "/opt/tinypilot/app/static";\n}\n'})
TASK [geerlingguy.nginx : Remove managed vhost config files.] ******************
skipping: [localhost] => (item={'listen': '80 default_server', 'server_name': 'tinypilot', 'root': '/opt/tinypilot', 'index': 'index.html', 'extra_parameters': 'proxy_set_header Host $host;\nproxy_set_header X-Forwarded-For $remote_addr;\nproxy_http_version 1.1;\n\nlocation /socket.io {\n  proxy_pass http://localhost:8000;\n  proxy_set_header Upgrade $http_upgrade;\n  proxy_set_header Connection "Upgrade";\n}\nlocation /state {\n  proxy_pass http://localhost:8001;\n}\nlocation /stream {\n  proxy_pass http://localhost:8001;\n}\nlocation / {\n  proxy_pass http://localhost:8000;\n}\nlocation ~* ^/.+\.(html|js|js.map|css|jpeg|png|ico)$ {\n  root "/opt/tinypilot/app/static";\n}\n'})
TASK [geerlingguy.nginx : Remove legacy vhosts.conf file.] *********************
ok: [localhost]
TASK [geerlingguy.nginx : Copy nginx configuration in place.] ******************
ok: [localhost]
TASK [geerlingguy.nginx : Ensure nginx service is running as configured.] ******
ok: [localhost]
TASK [mtlynch.tinypilot : enable dwc2 driver in boot config] *******************
skipping: [localhost]
TASK [mtlynch.tinypilot : enable dwc2 driver in modules] ***********************
skipping: [localhost]
TASK [mtlynch.tinypilot : copy HID initializer script] *************************
skipping: [localhost]
TASK [mtlynch.tinypilot : install HID initializer as a service] ****************
skipping: [localhost]
TASK [mtlynch.tinypilot : enable systemd HID initializer service file] *********
skipping: [localhost]
TASK [mtlynch.tinypilot : install TinyPilot pre-requisite packages] ************
ok: [localhost]
TASK [mtlynch.tinypilot : create tinypilot group] ******************************
ok: [localhost]
TASK [mtlynch.tinypilot : create tinypilot user] *******************************
ok: [localhost]
TASK [mtlynch.tinypilot : enable passwordless sudo for shutdown command] *******
ok: [localhost]
TASK [mtlynch.tinypilot : create TinyPilot folder] *****************************
changed: [localhost]
TASK [mtlynch.tinypilot : get TinyPilot repo] **********************************
changed: [localhost]
TASK [mtlynch.tinypilot : create TinyPilot virtualenv] *************************
changed: [localhost]
TASK [mtlynch.tinypilot : fix TinyPilot folder permissions] ********************
ok: [localhost]
TASK [mtlynch.tinypilot : install TinyPilot as a service] **********************
changed: [localhost]
TASK [mtlynch.tinypilot : enable systemd TinyPilot service file] ***************
ok: [localhost]
RUNNING HANDLER [mtlynch.tinypilot : reload TinyPilot systemd config] **********
ok: [localhost]
RUNNING HANDLER [mtlynch.tinypilot : restart TinyPilot service] ****************
changed: [localhost]
PLAY RECAP *********************************************************************
localhost                  : ok=36   changed=5    unreachable=0    failed=0    skipped=14   rescued=0    ignored=0
`

CORS was blocking sending inputs

Ah, right! It assumes the hostname is tinypilot. I'll fix that.

Had to manually insatll the usb-gadget service no idea why it wasn't created.

Oh, that's strange. Did the install script report any errors the first time you ran it?

Had to manually insatll the usb-gadget service no idea why it wasn't created.

Oh, that's strange. Did the install script report any errors the first time you ran it?
Sadly it did not. only thing it said as shown above skipping. I checked for /opt/enable-rpi-hid and /lib/systemd/system/usb-gadget.service neither were created.  Might be because im using the raspberrypi OS 64bit beta? and scripts didn't detect it correctly.

Might be because im using the raspberrypi OS 64bit beta? and scripts didn't detect it correctly.

Oh, that's likely it. I haven't tested on 64-bit yet, so I think you're the first to do this!
But given that you got it by installing manually, I should be able to get it working with some small adjustments to the Ansible script to correct for whatever it's missing.
My guess is that the Ansible architecture shows up as something that doesn't start with armv on Pi 64. Is it aarch64?
https://github.com/mtlynch/ansible-role-tinypilot/blob/5329a9b5fd18c7254f2b654c462ac9026c831204/tasks/main.yml#L4

Yeah it is aarch64.
Sidenote: also had to manually run
sudo apt-get install libffi-dev

Ah, thanks for the note. I created a separate bug to track 64-bit compatibility:
https://github.com/mtlynch/ansible-role-tinypilot/issues/19

Yeah it is aarch64.
Sidenote: also had to manually run
sudo apt-get install libffi-dev

I am having the same problem that you are. In addition to the libffi-dev install, what exactly did you have to enable to get the usb-gadget working? I am seeing inypilot enable-rpi-hid[795]: /opt/enable-rpi-hid: line 30: echo: write error: Device or resource busy.

Yeah it is aarch64.
Sidenote: also had to manually run
sudo apt-get install libffi-dev

I am having the same problem that you are. In addition to the libffi-dev install, what exactly did you have to enable to get the usb-gadget working? I am seeing inypilot enable-rpi-hid[795]: /opt/enable-rpi-hid: line 30: echo: write error: Device or resource busy.

You have to install the usb-gadget manually. Generally was adding the service manually. I think the author has a patch for that now or is working on it. As the deploy script for the usb-gadget never triggered on arm64 builds.


docs-bug(MapMarkerClusterer): The example doesn't work

Documentation Feedback
I tried to follow the same example in the README and nothing works, no errors happens. Could you please check and update with a working example ? The docs is also referring to Google Map Marker Cluster which is a version using Typescript or Javascript. I am not sure which example that I need to follow to make the code work.
Another issue is when loading the library, it still required to import the old script to make it work. It happens when I use Angular 18.
<script<EMAIL_ADDRESS>Affected documentation page
https://github.com/angular/components/blob/main/src/google-maps/map-marker-clusterer/README.md

If you're on v18, but looking at the doc from the main branch, you're looking at v19 documentation. In v19 we'll replace the clusterer so that it doesn't depend on a deprecated clustering library. The old clusterer docs are still available in these places:

https://github.com/angular/components/blob/main/src/google-maps/deprecated-map-marker-clusterer/README.md
https://github.com/angular/components/blob/18.2.x/src/google-maps/map-marker-clusterer/README.md

The initial issue doesn't have any example of what you're trying to do so it's hard to say why you aren't seeing anything. Off the top of my head, the example has markerPositions as an empty array why means that there aren't any markers on the map so there's nothing to cluster.

I tried to follow the example in my project and have a lot of markers. Wrapping these markers with the new map-marker-clusterer doesn't work, should I need to use deprecated-map-marker-clusterer? I am also using MapAdvancedMarker instead of the deprecated version.

The current map-marker-clusterer in v18 doesn't support advanced markers which was the other reason why we deprecated it. You'll have to either use the map-marker instead of the advanced one, or update to v19 to use the new clusterer.

Thank you a lot for your reactive! So I need to upgrade Angular, and Angular Components to v19 to make it work ? It looks like a force update, for now I think I will stick to MapMarker and DeprecatedMapMarkerClusterer. Can you update the docs please? Because I didn't see any mention about MapAdvancedMarker can't be used. Is there any differences that I need to notice when updating to the new version ?

It's not really a forced update since the deprecated clusterer never supported the advanced markers. It was abandoned by the Maps team before advanced markers event existed.
The differences you should watch out when updating are:

You need to load a different clustering library. It's mentioned in the readme.
The new clusterer has a different set of APIs so some of the inputs from the old one aren't supported anymore.

I see, thank you a lot for your clarification. For the inputs of Clusterer, I just need to check the library, is it right ?

We're still trying to figure out where to expose the API docs for the Google Maps package, but you can find the inputs here:

New clusterer: https://github.com/angular/components/blob/main/src/google-maps/map-marker-clusterer/map-marker-clusterer.ts
Old clusterer: https://github.com/angular/components/blob/main/src/google-maps/deprecated-map-marker-clusterer/deprecated-map-marker-clusterer.ts

Many thanks! There is not too much Input for the new version and you already put a JSDoc so I think it would be fine. Otherwise, the old version is not well documented, should I just need to follow the reference to Deprecated Google Map Clusterer ?


Change libmetal to build non-recursively.

This is a partial fix for #7673.

Codecov Report

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

@@           Coverage Diff           @@
##           master    #7762   +/-   ##
=======================================
  Coverage   55.01%   55.01%
=======================================
  Files         483      483
  Lines       53949    53949
  Branches    10494    10494
=======================================
  Hits        29680    29680
  Misses      19983    19983
  Partials     4286     4286

Continue to review full report at Codecov.

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


Update MD file on new branch 2017-11-10_14-26-12

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

split/content1.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


It's not possible to have two GattServiceProviders in the same application

Only the first one advertised can be connected to.
I create two different GattServiceProviders, with several characteristics each, and calls StartAdvertising for both.
Using LightBlue on my phone I can see both services, and their characteristics (even though only the first characteristic will show the "User Description" I have specified for it, so another bug there). Only the service published first can be connected to. I tried this by just reversing the order they are advertised.
This is on a Win10 machine, Intel NUC Skull Canyon.

This appears to be an issue with your own program, not with the sample program in this repo. You can open a support case with our Developer Support team who can further help with the specific problem you are experiencing. Please use these steps below for further help:

Visit http://aka.ms/storesupport and sign-in with your Microsoft account
Under the “App Development” section choose "Windows 10 universal app development", then choose the appropriate problem type and category to get engaged through a formal support channel.


Exam Mode: Evaluating quizzes an assessing unsubmitted exams trigger loading animation for both buttons

Describe the bug
When, as an instructor, you either trigger the evaluation of quizzes or the assessment of resubmitted exams on the exam assessment dashboard, the loading animation is shown for both buttons
To Reproduce
Prerequisites:
Instructor
Exam

Go to the assessment dashboard of an exam
Click on either "Evaluate Quizzes" or "Assess unsubmitted Exams"
See that loading animation is shown for both buttons

Expected behavior
Only the loading animation for the given button is shown
Screenshots

What browsers are you seeing the problem on?
Chrome
Additional context
Chrome Version 97.0.4692.71 (Offizieller Build) (64-Bit)
Windows 10 Pro 64Bit
Relevant log output
No response

The same error happens when pressing on "Enable second correction:


Integrate download & unzip of jsdocs-toolkit

Fixed issue #7

Looks great to me, but I think we should do this in the configuration script. How about if we create a jake configure task and call it at the end of the script?

This branch needs to be updated to the latest version of master

Could you also update the README accordingly

This is what I have so far.
Running jake after jake configure sometimes result in the following error
Invalid or corrupt jarfile /home/adrilee/Desktop/git/webplatform-framework/dependencies/jsdoc_toolkit-2.4.0/jsdoc-toolkit/jsrun.jar

Not sure why but I will look into it.

Should we run npm install or ./configure in jake confgure task?
Should we clean the DEPENDENCIES or DEPENDENCIES_JSDOC directory at the beginning of jake configure?

The configure script already runs npm install. Ideally it would then download and unzip jsdocs (through the jake configure task)?
We should not touch the DEPENDENCIES_JSDOC directory if it exists as it could mean they're using custom plugins and templates. Only install if its not there.
Additionally it may make sense to clean up afterwards by deleting the zip

It seems that the module we use or the method we use to extract the .zip is causing problems and throwing the following error:
Invalid or corrupt jarfile /home/adrilee/Desktop/git/webplatform-framework/dependencies/jsdoc_toolkit-2.4.0/jsdoc-toolkit/jsrun.jar
If I manually extract the .zip, the docs will build without error. Maybe the .jar files are not written in the right binary mode? Looking into it...


DG updates

TO-DO:

Model diagrams with explanations
Logic diagram (possibly)
Individual implementations finalization
Other adoc (not sure, hope not)

Nice! thanks!


Report JUnit test results for all TVM Python tests

This change enables JUnitXML output from pytest for all TVM python testing. The goal is to enable us to better understand which TVM tests are slow, how a change might impact them, and the runtime variance we see in the TVM CI.
See the example test report produced from the staging run on this PR.
Note that a previous staging run did timeout in the frontend tests, but by a long shot, so I think there's a chance it was unrelated to this PR.
For discussion

The JUnit plugin supports longitudinal test time tracking (click the right arrow > button on the graph) at both the test level and at the test group level.
Right now, some tests are represented twice: once for cython and once for ctypes. Because these don't appear in the test class path, test time at the group level can lump in both. pytest can be configured to add a prefix per-run, so we could fix this easily right now. On the other hand, adding the prefix could clutter the test output and make it harder to scan.
Do you prefer to prefix the test case names e.g. cython-tests.python.unittest.test_arith_canonical_simplify.test_split_index_simplify?

@tqchen @junrushao1994 @tkonolige @jroesch @zhiics @comaniac @u99127 @manupa-arm @leandron

@leandron yeah that was enabled in #7407

I had thought I pushed 6a77cdd to ci-docker-staging on friday, but looks like not. let's do that now and wait to merge til we see the result

ok this is ready to merge. I tested with the prefix option, the output is here.
I made one final change (remove the - in the prefix to make it look like a python namespace). I don't think we need to run the one-character change in 205871e through staging CI, but we can if that's policy.

@leandron please explicitly approve if you're ok w/ this.


gobuster not usable against TLS 1.0

If using gobuster version 3.2 and higher, gobuster quits with the following error if used against a target with TLS 1.0, even if using -k:
Error: error on running gobuster: unable to connect to https://<target.ip>/: Get "https://<target.ip>/": tls: server selected unsupported protocol version 301

This error seems to more likely be related to the migration to Go 1.19, then by a change in the source code of gobuster.
Should gobuster be usable against targets with TLS 1.0 or is it now out of scope of gobuster?

Thanks for the hint I enabled TLS1.0 and TLS1.1 on the dev branch here https://github.com/OJ/gobuster/commit/c3897042188cbbdb45d29adce57a1965dd9e6947
You can try it with go install github.com/OJ/gobuster/v3@dev until a new version is released


Export PDF

Hello,
With my angular loop
<div id="contentOneBarCode" ng-repeat="n in [].constructor(16) track by $index" class="wp90 {{classOneBarCode}}">
    <angular-barcode ng-model="myBarCode" bc-options="bc" bc-class="barcode" bc-type="canvas" class="wp25 left"></angular-barcode>
</div>

Have you trying to export PDF, width pdfMake and html2canvas for example like this :
`
html2canvas(document.getElementById('contentOneBarCode'), {
                    onrendered: function (canvas) {
                        var data = canvas.toDataURL();
                        var docDefinition = {
                            content: [{
                                image: data,
                                width: 500,
                            }]
                        };
                        pdfMake.createPdf(docDefinition).download("Score_Details.pdf");
                    }
                });

`
I have this message :
Uncaught invalid image, images dictionary should contain dataURL entries (or local file paths in node.js)

I'm sorry but I don't think this is related to this project. This is only a wrapper. Please check out JsBarcode.


Let's tag these issues! 🫡

Is your feature request related to a problem? Please describe:

I'd like to help establish some issue labels for this repo in order to triage and route bugs, enhancements, etc.
Describe the solution you'd like:

Labels! for Issues!
Describe alternatives you've considered:

Not organizing the issues at all. That is low energy, sad. 🤣
Additional context:

Action item out of this issue that could close it would be to quickly agree on common labels to use and when, if anyone has a go-to strategy there I'd be happy to start tagging. Just got pulled away but I'll suggest a set later if need be.

Similarly, we need a project roadmap (document) where features can b prioritized, and possibly an alternate forum like a discord server where trivial issues like onboarding can be addressed rather than having github issues being opened for howto related problems.


HWY-160: Protect against fork spam

(Removing myself as a reviewer, because we pair programmed.)

@goral09 @afck I've made changes as per your suggestions. Closing in favor of #521


Question: fire and forget

Is it possible to use request to run a POST, but not want to worry about the response?
In particular, I have a CLI that's posting a beacon/analytics to a server, so it's important the request has been sent, but waiting for the response is not required - and currently waiting is adding a minor latency to the CLI's exit time (which I'm looking to reduce).
Is this possible with request?

The core http module allows you to .abort() a request, basically closing everything on your end. Most server-side configurations finish whatever program is creating the response, as killing that program is too risky as that program may be reading/writing files. However, you may want to test this thoroughly.
AFAIK, request doesn’t allow you to abort requests, but you can set a timeout to achieve something similar, but it’s not pretty.
A third options is to wait for a response, but skip reading it, which will save you some overhead. Request reads the response internally, so I’m not sure if you can skip that. With the core http module, you certainly can.
const request = http.request(options, function(res) {
    request.abort();
});

and currently waiting is adding a minor latency to the CLI's exit time (which I'm looking to reduce).

By this, do you mean latency added by waiting for the response callback to fire?
If so, I don't think anything can be done about it as http.request always fires the response event even when there are no listeners. So, all that event emitter code is run even though there are no callbacks registered for response and that latency currently cannot be gotten rid of from what I know of http.request in node.

This goes even lower level, it's inherent to the TCP protocol. UDP is designed as a fire and forget protocol.

Thanks all - useful responses. I need to think about whether I want to switch to UDP or maybe launch my TCP request earlier to hide the latency in other work.
Cheers!


Unable to print QRCode.

I am using TSC TTP-244 Pro to print QRCode. I have a .prn file which was generated with software. I have used that .prn file's programming code for printing the QRCore code.
If I am printing that using BarTender then My printer printing proper QRCodes. But, If I am using printer.printText(text); // text : Programming codes were in .prn file with some dynamic data
I am replacing data as per my requirement for printing different data in QRCodes. But, Printer always printing that codes directly instead of QRCodes.
Printer is always printing the text directly. I have tried the same code from Windows machine (Writing file using QNavigator) and it is printing QRCode as needed

Do you have a repository or code sample ?


PROD-1396 Fix typeerror when tcf vendors have no dataDeclaration

Closes https://ethyca.atlassian.net/browse/PROD-1396
Description Of Changes
Fix type errors when tcf vendors have no dataDeclaration. This PR fixes 2 possible errors that could arise in this case. I've also added e2e tests to confirm this is fixed.
Code Changes

[ ] Fix typeerrors
[ ] Set up e2e test to confirm this is fixed

Steps to Confirm

[ ] Run e2e tests

Pre-Merge Checklist

[x] All CI Pipelines Succeeded
Documentation:

[ ] documentation complete, PR opened in fidesdocs
[ ] documentation issue created in fidesdocs

[x] Issue Requirements are Met
[ ] Relevant Follow-Up Issues Created
[x] Update CHANGELOG.md
[ ] For API changes, the Postman collection has been updated

UAT tested and looks good to me! ✅ (would like some extra confirmation that my testing steps below are valid 😄)

[x] running a fidesplus BE with TCF enabled (slim/dev)
[x] checked out this OSS branch
[x] ran turbo run dev from ./clients/admin-ui
[x] went to admin UI - localhost:3000 in my browser - and added all compass vendors via bulk vendor add UI
[x] stopped admin UI client, then ran turbo run dev from ./clients/privacy-center
[x] went to http://localhost:3000/fides-js-demo.html?geolocation=fr in my browser:

[x] although things took a while to load (~20s - this is expected, due to the BE taking a while to load the TCF overlay, which is covered in another ticket), everything loaded well, including the TCF overlay with 1600+ vendors
[x] confirmed no errors in JS console


Rendering of docstrings inside VSCode is incorrect

Using VSCode: 1.39.2, and installing the GA versions of the Azure-storage-blob and azure-keyvault-key libraries, and then hovering over various items in the editor to get doc strings shows that there are missing snippets and some of the markup is still present.
class BlobServiceClient(account_url, credential=None, **kwargs, base_headers=None, **kwargs, **kwargs, initial_backoff=15, increment_base=3, retry_total=3, retry_to_secondary=False, random_jitter_range=3, **kwargs, logging_enable=False, **kwargs, proxies=None, **kwargs, **kwargs, **kwargs, **kwargs, **kwargs, **kwargs, **kwargs, logger=None, **kwargs)
A client to interact with the Blob Service at the account level.
This client provides operations to retrieve and configure the account properties as well as list, create and delete containers within the account. For operations relating to a specific container or blob, clients for those entities can also be retrieved using the get_client functions.
:param str account_url:
The URL to the blob storage account. Any other entities included
in the URL path (e.g. container or blob) will be discarded. This URL can be optionally
authenticated with a SAS token.

:param credential:
The credentials with which to authenticate. This is optional if the
account URL already has a SAS token. The value can be a SAS token string, an account
shared access key, or an instance of a TokenCredentials class from azure.identity.
If the URL already has a SAS token, specifying an explicit credential will take priority.

:keyword str secondary_hostname:
The hostname of the secondary endpoint.

:keyword int max_block_size: The maximum chunk size for uploading a block blob in chunks.
Defaults to 4*1024*1024, or 4MB.

:keyword int max_single_put_size: If the blob size is less than max_single_put_size, then the blob will be
uploaded with only one http PUT request. If the blob size is larger than max_single_put_size,
the blob will be uploaded in chunks. Defaults to 64*1024*1024, or 64MB.

:keyword int min_large_block_upload_threshold: The minimum chunk size required to use the memory efficient
algorithm when uploading a block blob. Defaults to 4*1024*1024+1.

:keyword bool use_byte_buffer: Use a byte buffer for block blob uploads. Defaults to False. :keyword int max_page_size: The maximum chunk size for uploading a page blob. Defaults to 410241024, or 4MB. :keyword int max_single_get_size: The maximum size for a blob to be downloaded in a single call,
the exceeded part will be downloaded in chunks (could be parallel). Defaults to 32*1024*1024, or 32MB.

:keyword int max_chunk_get_size: The maximum chunk size used for downloading a blob. Defaults to 410241024,
or 4MB.

    :start-after: [START create_blob_service_client]
    :end-before: [END create_blob_service_client]
    :language: python
    :dedent: 8
    :caption: Creating the BlobServiceClient with account url and credential.

    :start-after: [START create_blob_service_client_oauth]
    :end-before: [END create_blob_service_client_oauth]
    :language: python
    :dedent: 8
    :caption: Creating the BlobServiceClient with Azure Identity credentials.

That's a VSCode Python behavior:
https://github.com/microsoft/vscode-python/issues/38
Especially @loarabia did you try PyCharm?
But maybe @brettcannon or @DonJayamanne have some recommendation for us?

Adding an actual screenshot

You can all upvote https://github.com/microsoft/vscode-python/issues/38. 😄 Otherwise don't ask my opinion as it will be "keep your docstrings simple and ditch the :param stuff".

Coming back to this one year later, this is still the same thing:

I'm closing this issue on favor of up-vote in the VSCode one, as Brett mentioned.


Email stats don't work with Mailgun EU domain

Issue Summary
Email stats are updated only for the first fetched page of stats from Mailgun due to a missing EU domain in the code.
This is resolved in https://github.com/TryGhost/Publishing/pull/73
Opening a ticket here just in case the PR gets missed.
Steps to Reproduce

Send a lot of emails through EU Mailgun account
Wait until email stats are updated

They will be updated only partially - only the first 300 events are fetched.
Ghost Version
4.46.0
Node.js Version
14
How did you install Ghost?
cli
Database type
MySQL 5.7
Browser & OS version
No response
Relevant log / error output
[2022-05-02 11:13:01] INFO Worker for job "email-analytics-fetch-latest" online
2022-05-02T11:13:01.652Z ghost:jobs:email-analytics:fetch-latest Starting email analytics fetch of latest events
2022-05-02T11:13:01.664Z ghost:services:email-analytics getLastSeenEventTimestamp: finished in 8ms
2022-05-02T11:13:01.664Z @tryghost/email-analytics-service:services:email-analytics fetchLatest: starting
2022-05-02T11:13:01.665Z @tryghost/email-analytics-provider-mailgun:email-analytics-provider-mailgun _fetchPages: starting fetching first events page
2022-05-02T11:13:01.928Z @tryghost/email-analytics-provider-mailgun:email-analytics-provider-mailgun _fetchPages: finished fetching first page with 300 events
2022-05-02T11:13:03.503Z @tryghost/email-analytics-provider-mailgun:email-analytics-provider-mailgun _fetchPages: starting fetching next page https://api.eu.mailgun.net/v3/example.com/events/xxxxxxx
2022-05-02T11:13:03.553Z @tryghost/email-analytics-provider-mailgun:email-analytics-provider-mailgun _fetchPages: finished fetching next page with 0 events
2022-05-02T11:13:03.553Z @tryghost/email-analytics-service:services:email-analytics fetchLatest: finished in 1889ms. Fetched 300 events
2022-05-02T11:13:03.553Z ghost:jobs:email-analytics:fetch-latest Finished fetching 300 analytics events in 1901ms
2022-05-02T11:13:03.553Z ghost:jobs:email-analytics:fetch-latest Starting email analytics aggregation for 1 emails
2022-05-02T11:13:04.847Z ghost:jobs:email-analytics:fetch-latest Finished aggregating email analytics in 1294ms
[2022-05-02 11:13:04] INFO Worker for job email-analytics-fetch-latest sent a message: Fetched 300 events and aggregated stats for 1 emails in 3195ms
[2022-05-02 11:13:04] INFO Worker for job email-analytics-fetch-latest sent a message: done

### Code of Conduct

- [X] I agree to be friendly and polite to people in this repository

Hey @ceecko nice catch, thanks for the great bug report and PR - I've dropped a review there.

@ErisDS should be resolved in the PR

@ErisDS when do you expect this could get into a release?

Hey @ceecko 👋🏼 This is now bumped in main and the 4.x branch, so it'll go out in 5.0 when it's released as well as the next 4.x release. Thanks!


[DOCFIX] Mark class MountInfoTest as final

Can one of the admins verify this patch?

this PR is target the wrong branch ... it should target master ... please close this one and open a new one targeting master