/releases?ftime=null throws internal server error

DEBUG in queries [/root/orlo/orlo/queries.py:145]:
Filtering: Release.ftime == null
[2016-06-17 05:29:38 +0000] [3303] [ERROR] Error handling request /releases?ftime=null
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/gunicorn-19.6.0-py2.7.egg/gunicorn/workers/sync.py", line 135, in handle
self.handle_request(listener, req, client, addr)
File "/usr/local/lib/python2.7/dist-packages/gunicorn-19.6.0-py2.7.egg/gunicorn/workers/sync.py", line 181, in handle_request
for item in respiter:
File "/usr/local/lib/python2.7/dist-packages/Werkzeug-0.11.10-py2.7.egg/werkzeug/wsgi.py", line 703, in next
return self._next()
File "/usr/local/lib/python2.7/dist-packages/Werkzeug-0.11.10-py2.7.egg/werkzeug/wrappers.py", line 81, in _iter_encoded
for item in iterable:
File "/root/orlo/orlo/util.py", line 161, in stream_json_list
iterator = iterator.iter()
File "build/bdist.linux-x86_64/egg/sqlalchemy/orm/query.py", line 2761, in iter
return self._execute_and_instances(context)
File "build/bdist.linux-x86_64/egg/sqlalchemy/orm/query.py", line 2776, in _execute_and_instances
result = conn.execute(querycontext.statement, self._params)
File "build/bdist.linux-x86_64/egg/sqlalchemy/engine/base.py", line 914, in execute
return meth(self, multiparams, params)
File "build/bdist.linux-x86_64/egg/sqlalchemy/sql/elements.py", line 323, in _execute_on_connection
return connection._execute_clauseelement(self, multiparams, params)
File "build/bdist.linux-x86_64/egg/sqlalchemy/engine/base.py", line 1010, in _execute_clauseelement
compiled_sql, distilled_params
File "build/bdist.linux-x86_64/egg/sqlalchemy/engine/base.py", line 1078, in _execute_context
None, None)
File "build/bdist.linux-x86_64/egg/sqlalchemy/engine/base.py", line 1341, in _handle_dbapi_exception
exc_info
File "build/bdist.linux-x86_64/egg/sqlalchemy/util/compat.py", line 202, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb, cause=cause)
File "build/bdist.linux-x86_64/egg/sqlalchemy/engine/base.py", line 1073, in _execute_context
context = constructor(dialect, self, conn, *args)
File "build/bdist.linux-x86_64/egg/sqlalchemy/engine/default.py", line 600, in _init_compiled
for key in compiled_params
File "build/bdist.linux-x86_64/egg/sqlalchemy/engine/default.py", line 600, in
for key in compiled_params
File "build/bdist.linux-x86_64/egg/sqlalchemy/sql/type_api.py", line 982, in process
return process_param(value, dialect)
File "/usr/local/lib/python2.7/dist-packages/SQLAlchemy_Utils-0.32.7-py2.7.egg/sqlalchemy_utils/types/arrow.py", line 69, in process_bind_param
utc_val = self._coerce(value).to('UTC')
File "/usr/local/lib/python2.7/dist-packages/SQLAlchemy_Utils-0.32.7-py2.7.egg/sqlalchemy_utils/types/arrow.py", line 85, in _coerce
value = arrow.get(value)
File "/usr/local/lib/python2.7/dist-packages/arrow-0.8.0-py2.7.egg/arrow/api.py", line 23, in get
return _factory.get(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/arrow-0.8.0-py2.7.egg/arrow/factory.py", line 164, in get
dt = parser.DateTimeParser(locale).parse_iso(arg)
File "/usr/local/lib/python2.7/dist-packages/arrow-0.8.0-py2.7.egg/arrow/parser.py", line 119, in parse_iso
return self._parse_multiformat(string, formats)
File "/usr/local/lib/python2.7/dist-packages/arrow-0.8.0-py2.7.egg/arrow/parser.py", line 270, in _parse_multiformat
raise ParserError('Could not match input to any of {0} on '{1}''.format(formats, string))
StatementError: (arrow.parser.ParserError) Could not match input to any of [u'YYYY-MM-DD', u'YYYY/MM/DD', u'YYYY.MM.DD', u'YYYY-MM', u'YYYY/MM', u'YYYY.MM', u'YYYY', u'YYYY', u'YYYY'] on 'null' [SQL: u'SELECT release.id AS release_id, release."references" AS release_references, release.stime AS release_stime, release.ftime AS release_ftime, release.duration AS release_duration, release."user" AS release_user, release.team AS release_team \nFROM release \nWHERE release.ftime = %(ftime_1)s ORDER BY release.stime ASC'] [parameters: [immutabledict({})]]

Thanks for the report, will fix this ASAP


MuiModal-hidden being applied to all modals

For some reason the css class MuiModal-hidden is being applied to all my modals/popovers and as such my selects as well as popovers are not appearing unless i override the MuiModal-hidden visibility to visible.

[x] I have searched the issues of this repository and believe that this is not a duplicate.

Expected Behavior
Should open normally when clicked
Current Behavior
Not appearing as the visibility: hidden css change is added to modals.
Steps to Reproduce (for bugs)

Open modal

Context
Unable to use any selects or popover menus unless i set an override on the MuiModal-Hidden css style.
Image below shows the muiModal Hidden class being added. Do note that at this point there is already the override
MuiModal:{
hidden:{
visibility: 'visible'
}
}
added.

Your Environment

Tech
Version

Material-UI
1.0.0-rc.1

React
16.2.0

browser
Chrome

etc
-

I had the same problem. Updating react-dom to 16.3.x fixed it for me (this is the required React version now).

Solved for me as well. Would be good if this was added in the release notes, unless i missed it XD

Nice :)
It's in the breaking changes of rc.0

I hit the same issue until I updated react-dom to 16.3.2. I'm not seeing it in the notes under Breaking Changes.

Thanks @oliviertassinari, support for React 16 is welcome.


Add numerical test for onnx.Scan op

Add numerical test for onnx.Scan op
Currently the execution results and reference answers do not match when the batch size != 2.
We need confirm the reference answers are correct with another way.
TODOs.

[x] Currently the execution results and reference answers do not match, and need confirm the reference answers are correct.
[x] Fix the reference answer or the onnx-mlir implementation to match the outputs and the reference answers.

@AlexandreEichenberger Yes. This PR is ready for review. Thank you.

@jenkins-droid test this please

@jenkins-droid test this please

@jenkins-droid test this please

@jenkins-droid test this please

@jenkins-droid test this please

@jenkins-droid test this please

Jenkins Linux amd64 Build #6785 [push] Add numerical test for o... started at 03:44

Jenkins Linux ppc64le Build #5897 [push] Add numerical test for o... started at 04:45

Jenkins Linux s390x Build #6800 [push] Add numerical test for o... started at 04:44

Jenkins Linux amd64 Build #6785 [push] Add numerical test for o... passed after 1 hr 3 min

Jenkins Linux s390x Build #6800 [push] Add numerical test for o... passed after 1 hr 36 min

Jenkins Linux ppc64le Build #5897 [push] Add numerical test for o... passed after 1 hr 38 min


macOS Server v5.7 no longer supports APSP Mail etc. Certificates

The dependency on Server.app to generate APNS certificates for Mail, Calendar, and Contacts will not work with Server version 5.7 and Mojave.
However, I believe it may be possible to create APNS certificates without Server.app for OpenBSD mail servers at https://identity.apple.com/pushcert/.
I haven’t worked the details yet, but if you have a running server patched to handle APNS, it’s a quick test to generate a signing certificate in Keychain Access’s Certificate Assistant, then generate a certificate signing request, post it to https://identity.apple.com/pushcert/, and use the resulting cert in the mail server’s configuration. There is no Apple documentation on how to create APNS certificates for the open source Mail/Contacts/Calendar alternatives.
It appears that going forward it may be possible to replicate APNS certificate creation by hand (once per year) using Keychain Access to generate the correctly configured certificates and a CSR that can be uploaded to https://identity.apple.com/pushcert/ for signing.
These certificates could then be used in the configuration of a self-hosted mail and calendar server that is patched to support APNS.
Does anyone know how to create a correctly formatted APNS certificate from Keychain Access that can be signed by Apple? My own certificates at https://identity.apple.com/pushcert/ look like this. If this approach works, I expect that one would need to generate APNS certificates for apns:com.apple.calendar, apns:com.apple.contact, and apns:com.apple.mail. This would be easy to script once the details are determined.
server.domain.tld - apns:com.apple.calendar
server.domain.tld - apns:com.apple.contact
server.domain.tld - apns:com.apple.mail
server.domain.tld - apns:com.apple.mgmt
server.domain.tld - apns:com.apple.alerts

What are your thoughts on this moving forward without a functioning Server.app in Mojave?
Are you aware of comparable push notification patches for Calendar and Contact servers?
Replicating what I see on my server, the APNS certificate configuration details are (with a random Version 1 UUID generated here):

Field
Value

User ID
com.apple.mail.XServer.674783d8-cbd0-11e8-a8d5-f2801f1b9fd1

Common Name
APSP:674783d8-cbd0-11e8-a8d5-f2801f1b9fd1

Key Usage
Encrypt, Verify, Derive

Extension>Key Usage>Critical
NO

Extension>Key Usage>Digital Signature
Digital Signature

Extension>Extended Key Usage>Critical
NO

Extension> Extended Key Usage>Purpose #1
Client Authentication

There is an "identity preference" in the Keychain named apns:com.apple.mail (with same "Where" field) with "Preferred Certificate" APSP:674783d8-cbd0-11e8-a8d5-f2801f1b9fd1 , also in the Keychain.
I presume the other fields are added or modified by the signing authority. I do not see how or where the specific domain information server.domain.tld - apns:com.apple.mail is added, or whether this is necessary.
Related issues:

https://github.com/matthewpowell/pushnotify/issues/1
https://github.com/cullum/dank-selfhosted/issues/1

It's not possible to issue certificates for the bundles

com.apple.mail
com.apple.calendar
com.apple.contact

via https://identity.apple.com/pushcert/.
See also this comment from an Apple employee: https://github.com/apple/ccs-calendarserver/issues/508#issuecomment-362223227
FastMail and Yahoo have a license for Apple Mail Push which is stated by the FastMail devs here: https://github.com/cyrusimap/cyrus-imapd/tree/master/docsrc/imap/reference/admin/eventsource.rst#apple-push-service

@freswa Thank you.
Just to be clear, I read @dreness’s (answer)[
https://github.com/apple/ccs-calendarserver/issues/508#issuecomment-362223227] as:

It is possible to use https://identity.apple.com/pushcert to generate APNS certs for dovecot-based IMAP Mail servers.

“Apple’s developer portal can vend APNS certs, and those should work with this server and third party clients that support APNS”

It is not possible to generate bundled APNS for Contacts and Calendar servers.

“Apple’s calendar and contacts apps only support APNS when used with push certs issued to a bundle ID that can only be used by Apple (and only by Server.app)”

Write https://bugreport.apple.com/ to ask for a policy change to address number 2.

Is this correct?
If number 1 is correct, it would be helpful to test the possibility of using https://identity.apple.com/pushcert/ to generate a working Mail push certificate for IMAP.

Apple’s developer portal can vend APNS certs

It is in general possible to generate APNS certs via the pushcert portal. But the portal is actually made for MDM certificates. The request for such an MDM certificate has to be signed by the MDM software vendor though.

and those should work with this server and third party clients that support APNS

In general MDM and normal apps use the same APNS. So you can issue APN with any certificate.
BUT the push notifications you send to apples server are limited to the app with the bundle id of the certificate. Which means that spotify developers are not able to send push notifications to any other app but their own.

Apple’s calendar and contacts apps only support APNS when used with push certs issued to a bundle ID that can only be used by Apple (and only by Server.app)

This is actually not a policy but a technical requirement. The certificates determines the app to deliver the PN to. There is no mention of a bundle id in the payload. So Apple would have to create a whole new APNS which won't happen.
What could happen is that Apple opens up the mechnism they are issuing the certificates for server.app with as that wouldn't require any technically changes in their APNS.

@freswa Thanks again.
That’s too bad. APNS is therefore dead along with Server.app for open source mail servers.
It looks like the only reasonable approach left is to file a report at https://bugreport.apple.com/ and request that Server.app version 5.7 and beyond provide support to generate bundled Mail/Calander/Contacts APNS certificates that can be exported and used to configure open source servers.

Just for the record, I spend 2 hours trying to make it work with https://identity.apple.com/pushcert and could not manage to get a APNS certificate for com.apple.mail.
I ended up using an old version of xcode server on an outdated OS. Let's hope they maintain this as long a possible, and provide a way to sign certificates for 3rd-party mail servers.

That's exactly what I'm doing too: I have an old macos server version installed in a parallel desktop VM I use once a year to regenerate push mail certificates...

Thank you all for the updated information. Would you please comment on the specific DNS, and other configuration steps you used to get this working?
It appears that a medium–longish term solution will be to keep around a bootable High Sierra system with Server.app 5.7 running, then use it to refresh carts once a year.
I haven’t dug very deep down into the way that Server.app generates APNS certificates, or the APNS certs themselves, and would appreciate knowing these configuration details in preparation to migrating to upgraded server hardware:

Must the FQDN on old Server.app v. 5.7 (the one used to generate APNS certs) be the exact same FQDN of the new server?
Must Open Directory on the old Server.app v. 5.7 be configured as a Directory Master for working APNS certs? Or is LDAP configuration irrelevant for this process?
How is APNS configured to know the FQDN of the server?

I’m guessing that the FQDN must be the same from the old server and the new server, which sets up a bit of a PITA for DNS name collision on the LAN while migrating and using this workaround.
All advice would be appreciated.

@essandess

no, FQDN isn’t relevant to APNS.
no, LDAP config isn’t relevant to APNS.
see point 1 :)

APNS certs are used only in the context of client CERT authentication to authenticate your server when it connects to the push servers. If your server presents a APNS cert trusted by the APNS servers (based on who signed it), that’s all that is needed to interact with APNS.

Ran into this problem as well and used Vagrant to quickly pull up a virtual High Sierra macOS VM. Here the steps, in case it's helpful for someone:

Install Vagrant
In your project folder add a Vagrantfile with this content:

Vagrant.configure("2") do |config|
  config.vm.box = "monsenso/macos-10.13"
end

Start VM

$ vagrant up

Then disable USB ports, start the machine and install macOS Server from the app store. After exporting the files from the keychain copy them to the local machine:

$ vagrant plugin install vagrant-scp
$ vagrant scp default:/Users/vagrant/Documents/PushEmail.p12 .

Stop or destroy the virtual machine when done

$ vagrant halt

I'm building mail server on a macOS box with a postfix+dovecot+rspamd+solr stack. From the parts I have so far, I see that this will be a much better mail server than the old one Apple configured in Server.app.
I hadn’t considered running Server.app v.5.7 in a VM to get the APNS certs.
Anyone have thoughts or experience on the choice of one of the open source VM options to run macOS 10.13? VMware? Is this easy? Or is it easier to keep an old box around?

I’ve set up a VirtualBox VM for this purpose. It’s a little tricky at first, because you need to convert the macOS install image for VBox, but after that it works flawlessly and easy. There are a couple of guides on the web covering the installation process.

Hi all,
Just wanted to say thanks for all the good tips & tricks here.
I also wanted to report that in my case (OSX 13.3, server.app 5.3.x), exporting the com.apple.servermgrd.apns.mail key was not enough : as the name implies, it contained only a key, and therefore the openssl tool wasn't able to extract any certificate from it (it returned a zero size file).
Using intuition and trial and error I was able to find the right certificate by opening the identity entry and finding the corresponding "preferred" certificate :

Then I exported the certificate in .pem format and used it to perform the  openssl s_client test which ran successfully.

@pagaille and All,
Thanks for the report. If you could make a gist of your steps, that would help immensely.
I'm done building my mail server and now on the final stretch migrating to apple/ccs-calendarserver. I've found that apple/ccs-calendarserver no longer builds out-of-the-box because of new openssl and dependency versions. Nevertheless, it's pretty straightforward to get a build going that uses MacPorts library dependencies, which is in any way more secure than building with app-specific libraries within an app that is updated less frequently. My WIP notes and working fork/branch:

https://gist.github.com/essandess/4c9b5d906896ff4aef6170fc18f2c293
https://github.com/essandess/ccs-calendarserver/tree/essandess_specific

I'm hoping that APNS will also work with the new CalendarServer too, though I haven't figured out how to configure this yet.
I'm at the stage of wrapping CalendarServer within a secured reverse proxy, the way it comes on Server.app v5.7, though without Server.app's web services.

@dreness Thank you for your comments.
I've made a couple of related PRs over at apple/ccs-calendarserver that address the issues I observe trying to build its latest:

https://github.com/apple/ccs-calendarserver/pull/536
https://github.com/apple/ccs-twistedextensions/pull/20

Also, if you would be able to provide guidance on the issue of Python 2.7 EOL-ing on 1 January 2020, that would be appreciated:

https://github.com/apple/ccs-calendarserver/issues/537

I imagine (hope) that there's a frenzy of activity behind the scenes to migrate any macOS dependencies on Python2 to Python3, and also hope that the lessons learned from that exercise can be applied to bring apple/ccs-calendarserver up-to-date with a clear path for dependency security patches.
Going through this process, I've appreciated anew the solid code base that CalendarServer is built with, and hope that it can be maintained because as I see it, CalendarServer is really the best open source option for serving calDAV and cardDAV.

In case any of you have your own apple/ccs-calendarserver instances running and have Server.app APNS certs, it should be very easy to test APNS for both apns:com.apple.calendar and apns:com.apple.contact. Here's the relevant code blocks and an example .plist configuration.
It appears that this should be straightforward for all Mail/Calendar/Contact services:
https://github.com/apple/ccs-calendarserver/blob/fbd0e11675cc0f64a425581b5c8398cc1e09cb6a/twistedcaldav/stdconfig.py#L861-L893
https://github.com/apple/ccs-calendarserver/blob/a5b19e00a25f16ff2d56f899228bc6432b8b8828/twistedcaldav/test/test_config.py#L88-L118

Thanks @essandess
I don't really see the added value of a gist here ? But I'm not really used to it.
For anybody interested : here are the binaries for CentOS 7.6 : https://nextcloud.gaillet.be/index.php/s/8zXcSsgrTWCjkAY
By the way I use Nethserver to replace OSX Server. Close to perfect, great distro actively developed, great community, good support, subscription support available.

All, I have a mail-server MacPorts submission that’s basically a combination of the now-defunct macOS Server.app Mail service with a lot of newer capabilities: solr fts, Rspamd milter, DKIM, improved spam training workflow, and more. Any comments or corrections would be appreciated:
https://github.com/macports/macports-ports/pull/4914
I haven’t gotten around to APNS yet, but plan to do so after writing a ccs-calendarserver port.

Anyone recently managed to create/renew the APSP mail certificates (using an old version of Server)? I'm trying to renew my certificated and all I get is an "unexpected error". Very strange.

ATM I get the following raw response:
<key>Response</key>
    <dict>
        <key>Status</key>
        <dict>
            <key>ErrorDescription</key>
            <string>Something went wrong. Please retry after sometime. :: </string>
            <key>ErrorMessage</key>
            <string>Internal Server Error :: </string>
            <key>ErrorCode</key>
            <integer>-80001</integer>
        </dict>
    </dict>

@ahvlima Maybe try again tomorrow?

That's what I'm getting (-80001). Frist 2 attempts I got the description. All later attempts only the error number.
Trying again tomorrow was my first idea. I just hope it's still possible to renew. I have a Sierra VMWare instance that I've been using for 3 years (renewed 2 times already).

@ahvlima API works again.

Man, you are faster than I am. I was waiting for the 9AM@Cupertino to give it a try.
Thanks ! Got it.
We must take good care of this VMs…
Arnaldo.

On Aug 5, 2019, at 10:10 AM, frederik<EMAIL_ADDRESS>wrote:
@ahvlima https://github.com/ahvlima API works again.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/st3fan/dovecot-xaps-daemon/issues/46?email_source=notifications&email_token=ABYFGKL7C3PGULMOSONIHCDQDARF3A5CNFSM4F2XL7G2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD3RYPKQ#issuecomment-518227882, or mute the thread https://github.com/notifications/unsubscribe-auth/ABYFGKNPRRIAMEFOIKPQWZ3QDARF3ANCNFSM4F2XL7GQ.

Working here too - phew 👍

Back to my deprecation analysis, I'm considering moving to a High Sierra VM, if Apple also decide to phase out by OS version.  And I don't think you can only renew once a year, so I will give it a try in a few months. I do not see light at the end of the tunnel, unless Apple decides to change the rules of the game.

I have a working APNS plugin with the latest version of dovecot core <IP_ADDRESS> and have submitted a PR to add this capability to MacPorts dovecot. See https://github.com/macports/macports-ports/pull/5482 and specifically the patch file.
I’ve also created a fork apns of the dovecot core repo, https://github.com/essandess/core/tree/apns, which will make it easier to create patch files from the upstream repo. This also has a patch file https://github.com/essandess/core/blob/apns/dovecot-core-pushnotify.patch.
I’ve confirmed that APNS works on a macOS 10.14 server and iOS 13 Mail clients.

@ahvlima

We must take good care of these VMs.

Would you please post the steps and tack you’re using to create a working VM?

I have a working APNS service on a mail server and would like to configure a working ccs-calendarserver for APNS.
I have all the valid APNS certificates and keys—both in my System Keychain and as pkcs12 and PEM files—but haven’t been able to figure out the right calendarserver configuration to get APNS up and running on ccs-calendarserver. I also have the full TLS chain of trust from https://www.apple.com/certificateauthority/ and have verified that all certs are valid.
It’s not clear what the APNS settings should point to: PEM files? System Keychain items?
For example, when I use PEM files in the configuration as shown immediately below, I get this error when I launch calendar server:

Cannot retrieve CalDAV APNS passphrase from keychain

calendarserver.plist (just showing CalDAV section):
            <key>APNS</key>
            <dict>
                <key>Enabled</key>
                <true/>
                <key>CalDAV</key>
                <dict>
                    <key>CertificatePath</key>
                    <string> /var/calendarserver/Library/CalendarServer/etc/apns/com.apple.calendar.cert.pem </string>
                    <key>PrivateKeyPath</key>
                    <string> /var/calendarserver/Library/CalendarServer/etc/apns/com.apple.calendar.key.pem </string>
                    <key>AuthorityChainPath</key>
                    <string> /var/calendarserver/Library/CalendarServer/etc/apns/com.apple.calendar.chain.pem  </string>
                </dict>

What should the settings for CertificatePath, PrivateKeyPath, and AuthorityChainPath point to? Also, I see the settings Passphrase, KeychainIdentity, and Topic in https://github.com/apple/ccs-calendarserver/blob/master/conf/caldavd-stdconfig.plist . Should these be set as well? To what settings?
I should be very having working APNS on calendarserver, but don’t see any documentation for the configuration and am unsure what the correct magic incantation is.
When I get this up and running, I’ll amend the MacPorts PR for ccs-calendarserver to include APNS.
Relevant PRs:

https://github.com/macports/macports-ports/pull/4978
https://github.com/macports/macports-ports/pull/5482

Thank you everyone for this thread... I've had Dovecot with APNS for years until Apple removed the feature. Does anyone have a working manual how to reissue the certificate?
@m3nu , I tried to follow your way but ran into few things - the VM Vagrant is importing is a clean installation of High Sierra. Whenever I go to App Store and try to install MacOS Server I am getting the message that I will need to upgrade MacOS to new versions to use Server... AM I doing something wrong?

The easiest is to just copy /Applications/Server.app from an existing backup into a new High Sierra VM.
If you don't have a backup, try these steps: https://support.apple.com/en-us/HT201377

You can also find old versions to most Apple software in your developer account. I didn't check if Apple Server is there, but it should.

Thanks a lot everyone! I managed to make it working fine.
For those who are interested, I've made a full walkthrough how to set up certificate/key, service and plugin here: https://shorturl.at/lmnMR. Credits for this walkthrough go to @m3nu , @essandess, @pagaille  and of course @st3fan  - without your helpful comments and commits it wouldn't be that easy.

Thanks for the walkthrough ! Unfortunately your link goes to nowhere. Maybe you could put it here or as a gist ?
Matthieu G.  (en mode mobile)

Le 27 nov. 2019 à 05:48, lsergei<EMAIL_ADDRESS>a écrit :

Thanks a lot everyone! I managed to make it working fine.
For those who are interested, I've made a full walkthrough how to set up certificate/key, service and plugin here: https://shorturl.at/lmnMR. Credits for this walkthrough go to @m3nu , @essandess, @pagaille and of course @st3fan - without your helpful comments and commits it wouldn't be that easy.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

@pagaille apologies - for some strange reason the previous link worked in one browser and didn't work in another.
It's quite long, not really format for the issue comment :) If maintainer would be okay I can format it and put on GitHub.

Also, APNS also works in MacPorts Calendar and Contacts Server. See https://github.com/macports/macports-ports/pull/4978.

I tried activating APNS today using the existing apns variant of MacPorts dovecot2. Turning the daemon on with launchctl reliably (that is: tested twice with hard reboot in between, that was enough on a production system) hosed my macOS Mojave + Server +  MacPorts dovecot2/postfix/etc. A safe reboot and removing APNS was required to get the system stable again. It is not clear at all if the apns daemon is the actual culprit or that it triggers a bug in another part on my specific system, or the it is a conflict between different elements of my setup, but it did trigger it reliably. I am thus interested in the 'modified dovecot' approach which may not trigger this problem.

there must be some script/code that does the certificate renewal and i'm wondering if that is part of the dovecot software or keychain or server.app, would be nice to kinda grab that functionality so this process could run without macos

there must be some script/code that does the certificate renewal and i'm wondering if that is part of the dovecot software or keychain or server.app, would be nice to kinda grab that functionality so this process could run without macos

That's the very point of this ticket, IMO that's what we should focus on here, rather than discussing alternatives to XAPS-daemon which are unfortunately out of scope...
To date the situation is still the same, issuing a valid APNS certificate for apns:com.apple.mail (only option working with iOS mail client) is still only possible via old pre-5.7 MacOS Server.

I have been using this variant reliably for a while, and before it was merged into MacPorts.
To the best of my knowledge, there’s nothing in the modified dovecot that would cause the issues you describe, and I have never experienced them.
HOWEVER, I received another report of apns squirliness from a MacPorts user. I’ve asked them to compare to your description.
Please provide basic setup notes: macOS and dovecot versions, etc. I’m on macOS 10.15.3 and dovecot <IP_ADDRESS>.
I do not wish to hijack this thread with issues from the parallel approach, but it is possibly relevant in providing impetus to do the work to adopt dovecot-xaps-daemon. And if possible it’s good to keep two working approaches around.

I tried activating APNS today using the existing apns variant of MacPorts dovecot2. Turning the daemon on with launchctl reliably (that is: tested twice with hard reboot in between, that was enough on a production system) hosed my macOS Mojave + Server + MacPorts dovecot2/postfix/etc. A safe reboot and removing APNS was required to get the system stable again. It is not clear at all if the apns daemon is the actual culprit or that it triggers a bug in another part on my specific system, or the it is a conflict between different elements of my setup, but it did trigger it reliably. I am thus interested in the 'modified dovecot' approach which may not trigger this problem.

discussing alternatives to XAPS-daemon which are unfortunately out of scope

Yes, please post the MacPorts issues to https://trac.macports.org/

One year as almost passed since we started discussing this issue. Apple kindly sent me a mail reminding to renew the APNS certificates. Here is the procedure for the record:

Use the server manager, go to the Mail category and click "Edit Notifications" then "Renew"

Use the keychain to export both the apns.mail key (p12 extension) and the associated certificate (cer extension).

Issue the following commands to convert the exported certificate and the key to pem format

openssl x509 -inform der -in certificate.cer -out certificate.pem openssl pkcs12 -in com.apple.servermgrd.apns.mail.p12 -nocerts -nodes -out key.pem

You might want to test the connection using that command :

openssl s_client -connect gateway.push.apple.com:2195 -cert certificate.pem -key key.pem

Finally copy those two files to your mail server and restart the xapsd service.

lets hope it stay's this way at apple's part so we can keep enjoying push

It's July 5 and it's still signing! So far, so good. Just renewed and this time I had no problems.

I've hacked together a solution for getting certificates that works on Catalina with the help of files from macOS Server 5.10. (Caveat: I haven't actually tested my certificates yet, but I'll update here if they don't work for some reason.) It's also worked, with adjustments, on other combinations of OS/Server versions; open an issue in my repo if you need some help.
It's here. A lot of the request uses standard CSRs, so I implemented it using openssl commands. The remaining part is an unusual signature, and I found that the code for it still exists in Server 5.10 binaries and wrote a wrapper to access it. My solution doesn't use the keychain, so it's probably easier when you're going to feed the cert to another server.
cc https://github.com/apple/ccs-calendarserver/issues/508 https://github.com/lionheart/openradar-mirror/issues/19283

I've hacked together a solution for getting certificates that works on Catalina with the help of files from macOS Server 5.10. (Caveat: I haven't actually tested my certificates yet, but I'll update here if they don't work for some reason.) It's also worked, with adjustments, on other combinations of OS/Server versions; open an issue in my repo if you need some help.
It's here. A lot of the request uses standard CSRs, so I implemented it using openssl commands. The remaining part is an unusual signature, and I found that the code for it still exists in Server 5.10 binaries and wrote a wrapper to access it. My solution doesn't use the keychain (just files in the working directory), so it also eases the exporting and converting steps.
Hoping Apple continues signing certs and ideally makes it easier!
cc apple/ccs-calendarserver#508 lionheart/openradar-mirror#19283 matthewpowell/pushnotify#1

That sounds really nice, i'm going to give it a try soon because my cert will expire in september
how did you find out about this? can you tell a bit about what you did to find out? i'm curious.
tcpdumping the old method ?  tell us :)

Hoping Apple continues signing certs and ideally makes it easier!

The 'legacy' APNS certificate portal should keep working until November 2020, according to https://developer.apple.com/news/?id=11042019a, which states:

If you send push notifications with the legacy binary protocol, we recommend updating to the HTTP/2-based APNs provider API as soon as possible. You’ll be able to take advantage of great modern features, such as authentication with a JSON Web Token, improved error messaging, and per-notification feedback.
The Apple Push Notification service (APNs) will no longer support the legacy binary protocol as of November 2020.

I would guess that after November 20, it will no longer be possible to acquire APNS certs that can push Mail.app, regardless of the macOS Server version. Sorry for the bummer news, but I'd rather be a bummer than see people get blindsided...

@dreness Admittedly I am new to this stuff, but I don't see the connection. Why would deprecation of the binary protocol mean deprecation of that portal? Also, a similar project https://github.com/matthewpowell/pushnotify has a commit that says it updated to HTTP/2, so apparently they are able to push Mail.app without the legacy protocol. In any case, thanks for the warning that the binary protocol will be shut down. Am I missing something about the certificate portal aspect though? Thanks.

@dreness Your link points to a text, which is related to the APNS protocol, not the certificate portal. I think we can easily support the HTTP/2-base APNs since it allows also the usage of certificates as authentication. So why would the support of the certificate creation and renewal API be affected here?

I've hacked together a solution for getting certificates that works on Catalina with the help of files from macOS Server 5.10. (Caveat: I haven't actually tested my certificates yet, but I'll update here if they don't work for some reason.) It's also worked, with adjustments, on other combinations of OS/Server versions; open an issue in my repo if you need some help.
It's here. A lot of the request uses standard CSRs, so I implemented it using openssl commands. The remaining part is an unusual signature, and I found that the code for it still exists in Server 5.10 binaries and wrote a wrapper to access it. My solution doesn't use the keychain (just files in the working directory), so it also eases the exporting and converting steps.
Hoping Apple continues signing certs and ideally makes it easier!
cc apple/ccs-calendarserver#508 lionheart/openradar-mirror#19283 matthewpowell/pushnotify#1

could we also run this in like a linux host instead of a macOS host?

@Zjemm Until it's full reversed, it depends on a Mach-O binary which you may try to run with Darling

@Zjemm Linux support is coming and basically done, it just needs more polishing. You can try the linux branch. You need Docker, and you need to take servermgr_certs from macOS Server.app 5.10, and put it in the directory with hashy.c. Currently you need to separately compile https://github.com/shinh/maloader in the path ~/tmp/maloader.

https://github.com/shinh/maloader

@scintill cool, let me know if i can test things for you

@Zjemm and others: The master branch now supports Linux (and only Linux1), still requiring the binary from Server.app and now requiring Docker. It also supports taking the binary from any version of Server.app now. Please let me know your test results. If you don't need a certificate, just cd test; ./run will do a local-only test to see that it can reproduce an expected output.
[1]: I think Linux support will hit a greater percentage of people, and I don't want the overhead of supporting two platforms. When it's fully reversed, there will be much less code, so macOS support could be added.

first of all, great work
unfortunately i'm not a docker fan myself (i'll stick with lxc/lxd containers :) ) so i can't run any test with this version.
wouldn't it not be much cleaner to put it in a chroot ? then there is less dependancies

Can someone explain to me the use of spending time in getting push working again (hasn’t worked for me since the move to open source dovecot and the one time I set it up it crashed my server (really) so I have become cautious) if the certificates will not work after Nov 2020 and thus I won’t be able to send a notifcation to the devices.
G

On 14 Jul 2020, at 09:15, Zjemm<EMAIL_ADDRESS>wrote:
first of all, great work
unfortunately i'm not a docker fan myself (i'll stick with lxc/lxd containers :) ) so i can't run any test with this version.
wouldn't it not be much cleaner to put it in a chroot ? then there is less dependancies
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/st3fan/dovecot-xaps-daemon/issues/46#issuecomment-658013399, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAGAUMLWUUHIO63ZS7PBAPDR3QAZLANCNFSM4F2XL7GQ.

@dreness Your link points to a text, which is related to the APNS protocol, not the certificate portal. I think we can easily support the HTTP/2-base APNs since it also allows authentication via certificates. So why would the support of the certificate creation and renewal API be affected here?

Apparently I had assumed that cert-based auth was going away along with the binary push protocol, which looks like an error on my part. I don't see any deprecation notices when going through the motions of requesting a new APNS cert via the developer portal, and the docs do say that cert auth is supported for the new push service, so perhaps you are not yet doomed :)

My code is now fully open-source! It runs on Linux with minimal dependencies (no docker).
If someone wants to make a nicer implementation, it looks like there is some overlap with how MDM vendor certs work, so you could start from an existing codebase that does that, and randomly select one of the certs from vendorcerts/ (I don't know why, but the original code chooses randomly.) You can compare your output against test/expected/request-body.

nice, and much cleaner like this.
first test looks good.
i'll try to renew my real certs soon to see if the certs also work correctly

I would like to repeat my question as nobody answered. Why are you spending so much time on getting this to work if it all stops working in November? Or isn’t it? Am I missing something?
Thanks,
G

On 20 Jul 2020, at 16:07, Zjemm<EMAIL_ADDRESS>wrote:
nice, and much cleaner like this.
first test looks good.
i'll try to renew my real certs soon to see if the certs also work correctly
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/st3fan/dovecot-xaps-daemon/issues/46#issuecomment-661061773, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAGAUMMMNINZV3RH7SWKUGLR4RFQNANCNFSM4F2XL7GQ.

This is getting off topic...


Missing metrics #784

@thezackm My PR  #784 was recently merged. It included 3 metrics from the CISCO-AUTH-FRAMEWORK-MIB. Ref - https://github.com/kentik/snmp-profiles/blob/c19a259debbe8a5f314dc5470e5eda1fc540cd0b/profiles/kentik_snmp/cisco/cisco-all-devices.yml#L1151
However, I don't find these metrics in New Relic. I've verified that our docker image is v2.2.28 which is the latest image. On checking the commit history it looks like the one of the checks failed while pushing the code. Can you please try to again push the code?

this was fixed in PR #788 as there were some YAML issues with the original merge. The current version of the container and RPM package have this fix already so if you're seeing issues you need to open a support case for further investigation.

@thezackm I need to open a support case with New Relic for further investigation?

That's our monitoring platform.

Correct. They'll be able to help dig into the details and troubleshoot the issue with you further. That's not something that can be done here in GitHub and the support case will be the fastest path to resolution for you.

This appears to be an issue with new profile submitted in PR #784.
These are working:

<IP_ADDRESS>.<IP_ADDRESS>.6<IP_ADDRESS>.1.6 (kentik.snmp.cafPortReauthEnabled)
<IP_ADDRESS>.<IP_ADDRESS>.6<IP_ADDRESS>.1.7 (kentik.snmp.cafPortReauthInterval)

But this one is not:

<IP_ADDRESS>.<IP_ADDRESS>.6<IP_ADDRESS>.1.15 (kentik.snmp.cafSessionTimeout)

Customer SNMPWalk (link) seems to show the data should be available. This is running against a Cisco L3 switch Catalyst 9300 running Version 17.9.3 OS.
It appears the YAML formatting for this OID is off. I'm going to attempt to fix it in a new PR shortly.


Disable shadow

how to remove black shadow around the heatmap area?

can you post a screenshot of what you mean? I don't see a black shadow

which of the plugins are you using to create your heatmap?
The shadow is definitely not added by heatmap.js (or any of the plugins)

This version:
https://github.com/pa7/heatmap.js/blob/develop/plugins/leaflet-heatmap/leaflet-heatmap.js

Sorry does anyone have any clue where to look to make that shadow disappear?

Maybe part of your defined gradient has a dark and transparent color near the edge?


Nimbus deadlock

It's possible for Nimbus to deadlock in 0.6.1. This is due to a subtle problem with how the timer locks the timer lock while calling the task function. If the task function locks another lock, this can cause a deadlock if another part of the codebase locks that lock when trying to schedule something on the timer.

Fixed for 0.6.2. The fix was to not hold the timer lock while executing the task function.


Is there any similar feature to SliverAppBar's snap?

I am trying to build the AppBar like this. Any possible way to do that?
https://github.com/netglade/sliver_app_bar_builder/assets/40331144/bb90f0de-110d-46a0-8327-ca4753dbb09c

Hey @giva9712, it seems I can play the video neither on a desktop nor mobile. Could you please check you uploaded the correct thing?

I see now. Hmm, I think something similar should be possible, since you can build anything based on values provided through the builder. Maybe you could also add floating to that, so it works even when scrolling down a lot.
Try a lot of different options in here https://netglade.github.io/sliver_app_bar_builder

@tenhobi,
I like SliverAppBarBuilder than SliverAppBar because it saves more boilerplate for animating.
But I need to collapse the SliverAppBarBuilder height to the given barHeight if the parent SingleChildScrollView scroll position is greater than some X value. If less than X,  expand the SliverBarBuilder to the given contentHeight.
Put simply, any similar feature like SliverAppBar's snap: true?

Not at the moment. :/
I did some research and I have found this which has some gifs showing the difference. https://api.flutter.dev/flutter/material/SliverAppBar/snap.html
Wince we use SliverPersistentHeaderDelegate underhood, which has something called "snap configuration" there https://api.flutter.dev/flutter/widgets/SliverPersistentHeaderDelegate/snapConfiguration.html, couldn't that be the thing to play around with to make such an effect?
Would you want to try and create a pull request for that? (I know for sure I will not have a time for trying to create that this year for sure.)


Please put old docs back, as too much is missing in the new ones

Documentation Related To Component:
Several ones
Please check those that apply

[ ] typo
[x] documentation doesn't exist
[ ] documentation needs clarification
[ ] error(s) in example
[ ] needs example

Description Of The Issue
Several components are missing documentation, like switchAll. + There is no possibility to see the old docs from it, which makes it hard to check them out. That's why the old docs should still be accessible!!!

So basically the old docs are still available -> http://reactivex.io/rxjs/manual/index.html
You just can't go to the home page, there you will be redirected to the new docs. But besides that, could you maybe elaborate what else is missing. SwitchAll is poorly documented absolutely right. But if you help me with that kind of feedback, I can improve the new docs, to make them more useful for everyone.

I wish have new docs for rxjs 6 above 🙏

But why redirect when the new docs aren't complete yet? Better to give the option then, no?

Do we know when the new docs will be available? I'm pretty excited about rxjs6, but it might as well be DOA for me without docs..

@ahahn95 you can find the new docs for version 6 at http://reactivex.io/rxjs. Each day more and more of the docs are getting updated. If there is any documentation you find missing that would help you, please share in this thread.

Sure, I'm specifically looking for the ajax docs. (importing ajax from 'rxjs/ajax' etc etc)

@ahahn95 the docs are being built from JSDocs from each of the files. I am not sure why this is not added, and I am in the process of finding out. In the meantime, you can take a look at the file and see the JSDocs for the ajax.ts file: https://github.com/ReactiveX/rxjs/blob/master/src/internal/observable/dom/ajax.ts
Will find out about this for you in regards to showing in the actual docs.

@pertrai1 Regarding the ajax docs inclusion in the build, see this recent PR: https://github.com/ReactiveX/rxjs/pull/3984

"It creates an observable for an Ajax request with either a request object with url, headers..."
So I assume it would look like
ajax({
    url: 'http://myurl.com',
    headers: {
        ...
    }
})

The fact that the docs redirect to the new incomplete version has been quite painful for me too, and added extra barriers in teaching people how to use RxJS as well. It would be extremely beneficial if you let the docs url point to the old docs, perhaps make a banner that draws attention to the fact that they are old, and add an option to view the new docs from there. I understand that you are willing to listen to all the complaints here and use them to decide what to focus on in the docs, but I think its safe to say that everything will need to be documented.
I would get a lot of value from the old docs because:

The descriptions and syntax definitions were quite good, and I frequently want to make reference to them when I know what I want to do but can't remember exactly what the function is called or in what order it takes its arguments
It is an invaluable resource when explaining to someone the benefits of rxjs and showing them how to adopt it. The old docs had examples and explanations for every function, whereas if I were to wait for doc updates every time I want to explain something to someone, it becomes quite discouraging for both parties. Consider how scary it is for someone who has just been introduced to this thing called observables, they've been told that it will make their code better but don't quite understand how to use it yet, only to find out the docs for it are incomplete.

It is also important to consider that since the new docs are in development there will be some bugs frequently, creating yet another barrier to getting the information we need. I'm certain many people would be glad to help test out the new docs and share information on bugs when I find them, but when people need to get things done quickly they tend to require a complete reliable and quick reference source. I currently almost always end up digging up the old docs to find the information I need, with the most recent example being Observable.create.

I do propose that we keep all people in mind when it comes to the docs. With that said, I would like to see the v5 docs be the main starting point with a banner that lets people know how to get to the v6+ docs. If the older docs are helpful in any way to people, there should be an obvious way to get to them. My vote is to have either the old docs as they starting point with a banner for v6 docs, or a page that has 2 buttons that would point to either the v5 or v6 docs.

Yes, I tried the new docs this week, and there is too much missing, even the diagram pictures are missing, which are needed to understand what's happening quickly.

New to rxjs and I basically have to jump back and forth to understand what is going on.
The new documentation provides only the bare minimum which, for a beginner, is by far not enough.

Hi @IgnusG I can totally understand that, and I'm really sorry for that. But I would really prefer improving the new docs rather than improving the old and the new one. I would be really interested in what is missing for you? We just started migrating the content of the old docs but I like to get feedback of what is really needed by the community. Thank you very much!

@JWO719 , marble diagrams, descriptions, examples, ….. A LOT of methods only have their typings documented, with no way to click through to what some typings mean.....

As @dietergeerts summed up. (Sorry for the long rant - trying to cover everything)
I'm missing an organized structure like in the old docs where you can quickly find your way around. In the new ones you have to guess pretty much what is called what to find it using the search bar.

VS

I'm missing marble diagrams (amazing tool to glance and understand how an operator works btw. - awesome work on that in the old docs).
The new docs are also harder for me to follow:

The signature is bigger than the top description (I rarely look at the signature - you can do that with a smart enough IDE or source code of typings)
Parameters table is missing the type (you have to look up to the signature to find out the type)
Why would "See Also" be in the middle? I wanted to look at the method, not check other ones. It can safely be at the bottom of the doc page like in the old one.

2 images for comparison of the pluck method:

Maybe its just me, but I can really navigate the old ones better than the new ones. I usually look at the old ones and then check the new ones to see if there have been any differences between versions.

Thanks for this input. That is really valuable.
Regarding your points:
missing structure: I think you are mostly talking about the static content describing all the stuff. We currently try to migrate this, just for your information.
missing marble diagrams: this is a current bug in the deployed version of the docs. Normally there are the same marble diagramms and they will be again soon.
api docs: regarding the order of the elements you got some valid points. I'll think about it.
Thanks for this valuable input.

@JWO719 Any update on the missing marble diagrams? They are super useful!

We hope that we fixed it finally but its not deployed yet.

@JWO719 thanks, but is there no process to accelerate the deployment of the docs? This has been a problem for a long time, and I’m sure is especially frustrating to those who are trying to learn the library.

Just created a doc (article) about queue vs null scheduler difference. Do we have some documentation issue where i can post it? (https://medium.com/@alexanderposhtaruk/so-how-does-rx-js-queuescheduler-actually-work-188c1b46526e)

I will close this issue for now, as there is not much traffic and for now there is no plan to continue mainting the old versions of the docs. If there are any new concers, feel free to reopen or create a new issue


Reduce the size by stripping debug symbols

Update the ldflags option in the GoReleaser configuration to strip
the symbol table and DWARF information:
ldflags = -s -w

Some examples of the size changes:
- artifact-cas: 43971790 -> 31674368
- control-plane: 74688180 -> 53272576
- cli_linux_amd64_v1: 83740805 -> 59338752
- cli_darwin_amd64_v1: 83179680 -> 66472096
- cli_darwin_arm64: 82637730 -> 66488994

We may look into extracting debug symbols in the future:

https://github.com/kubernetes-sigs/external-dns/issues/2646
https://github.com/kubernetes/kubernetes/issues/73986


Try It: Request Sample with File Uploads

It seems like httpsnippet can handle file uploads through multipart forms, so we should be able to get our Sample Request component showing sample code to users that will handle file uploads for them.
The only reference I have spotted was https://github.com/Kong/httpsnippet/issues/111 and https://github.com/Kong/httpsnippet/pull/173 which fixes it. See if their tests are of any help in figuring out how it works.
This work was split off of https://github.com/stoplightio/elements/issues/648 for the sake of initial launch as this is a bit of an edge case anyhow.

@mpodlasin @domagojk @wmhilton @paulatulis @mmiask Hey team! Can you please add your planning poker estimates with ZenHub


After using swr to render the page in nitro, some variable values failed to update.

Environment

Operating System: Windows_NT
Node Version:     v16.19.1
Nuxt Version:     3.8.0
CLI Version:      3.9.1
Nitro Version:    2.7.1
Package Manager<EMAIL_ADDRESS>Builder:          -
User Config:      modules, ssr, runtimeConfig, devServer, experimental, css, routeRules, nitro, app, pwa, devtools, site, sitemap, gtm, device
Runtime Modules<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>Build Modules:    -

Reproduction
https://stackblitz.com/edit/nuxt-starter-j4gwru?file=nuxt.config.ts
Describe the bug
After I use swr rendering rules for some routes, some variables in the routes cannot follow the changes of the device even if they are modified. I use<EMAIL_ADDRESS>to determine the current device.
Additional context
How to test:
With swr open, change the device type through chrome's device toobar and observe the variable values printed on the homepage. You can observe that: on the mobile phone, 'Desktop' will be displayed for the first time, and then immediately changed to 'Mobile'
Logs
None

Anything that should be specific to the individual request (like a device size) should not have swr enabled, as this is a form of caching that shares responses between requests.

But caching is necessary for me, and there are also requirements for different devices to display different layouts (styles). How should I implement it reasonably?

Instead, you should make sure to load consistent HTML no matter the user's device. And use CSS to control what is shown on different devices (or update the layout after the app is mounted).


check if we have internet connection before executing setup

if a company does not allow exgress internet connection.
we don't want to run the setup script and wait for it to timeout

the gpg key command timeout because the firewall will block the requests
we can however check in the setup script if https://get.rvm.io is available instead?

→  nc -v -z keyserver.ubuntu.com 80
Connection to keyserver.ubuntu.com port 80 [tcp/http] succeeded!

works for me.  If the port is closed, and the remote host (or intervening firewall) is sending an RST to the SYN, it's almost immediate.  Chances are, however, that any intervening firewall is actually going to silently drop the packet, which means you have to set a timeout on nc via -G:
→  nc -v -z -G 3 jameshunt.us 81
nc: connectx to jameshunt.us port 81 (tcp) failed: Operation timed out

(that takes about 3s to timeout, since jameshunt.us:81 just drops the packet without an RST)
You'll want to drop the -v in the script...


7.0.2 Broken, had to go back to 7.0.1

Version of the custom_component 7.0.2

Configuration
This error originated from a custom integration.

Logger: custom_components.multiscrape.coordinator
Source: custom_components/multiscrape/coordinator.py:80
integration: Multiscrape scraping component (documentation, issues)
First occurred: 9:46:45 AM (6 occurrences)
Last logged: 10:03:31 AM

Scraper_noname_1 # Exception in form-submit feature. Will continue trying to scrape target page. [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for '#REDACTED#domain'. (_ssl.c:1000)
Scraper_noname_0 # Exception in form-submit feature. Will continue trying to scrape target page. [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for '#REDACTED#domain'. (_ssl.c:1000)

Integration config:

Click to expand YAML
multiscrape:
  - resource: 'https://mocreo_hub.reverse_proxy.com/sensors'
    scan_interval: 300
    verify_ssl: false
    form_submit:
      resource: 'https://mocreo_hub.reverse_proxy.com/login'
      select: 'body > div > div > div > div > div.card-body > form'
      input:
        passwd: !secret mocreo_password
    sensor:
      - unique_id: mocreo_sensor_1_serial
        name: Mocreo sensor_1_serial
        device_class: temperature
        state_class: measurement
        unit_of_measurement: '°F'
        select_list: 'div:has(>.card-header):-soup-contains("sensor_1_serial")>div>div>div'
        value_template: '{{ value.split(",")[2].split("°")[0] | trim | float }}'
        attributes:
          - name: model
            select_list: 'div:has(>.card-header):-soup-contains("sensor_1_serial")>div>div>div'
            value_template: '{{ value.split(",")[0] | trim }}'
          - name: serialnumber
            select_list: 'div:has(>.card-header):-soup-contains("sensor_1_serial")>div>div>div'
            value_template: '{{ value.split(",")[1].split(":")[1] | trim }}'
          - name: temperature
            select_list: 'div:has(>.card-header):-soup-contains("sensor_1_serial")>div>div>div'
            value_template: '{{ value.split(",")[2].split("°")[0] | trim }}'
          - name: unit_of_measurement
            select_list: 'div:has(>.card-header):-soup-contains("sensor_1_serial")>div>div>div'
            value_template: '°{{ value.split(",")[2].split("°")[1] | trim}}'

  - resource: 'https://mocreo_hub.reverse_proxy.com/nodes'
    scan_interval: 1000
    verify_ssl: false
    form_submit:
      resource: 'https://mocreo_hub.reverse_proxy.com/login'
      select: 'body > div > div > div > div > div.card-body > form'
      input:
        passwd: !secret mocreo_password
    sensor:
      - unique_id: mocreo_sensor_1_serial_battery
        name: Mocreo sensor_1_serial battery
        device_class: battery
        state_class: measurement
        unit_of_measurement: '%'
        select_list: 'tr:-soup-contains("sensor_1_serial")>td'
        value_template: '{{ value.split(",")[3].split("%")[0] | trim | float }}'
        attributes:
          - name: type
            select_list: 'tr:-soup-contains("sensor_1_serial")>td'
            value_template: '{{ value.split(",")[0] | trim }}'
          - name: serialnumber
            select_list: 'tr:-soup-contains("sensor_1_serial")>td'
            value_template: '{{ value.split(",")[1] | trim }}'
          - name: battery
            select_list: 'tr:-soup-contains("sensor_1_serial")>td'
            value_template: '{{ value.split(",")[3] | trim }}'
          - name: signal
            select_list: 'tr:-soup-contains("sensor_1_serial")>td'
            value_template: '{{ value.split(",")[4] | trim }}'
          - name: online
            select_list: 'tr:-soup-contains("sensor_1_serial")>td>span.text-success'
            value_template: '{{ iif("" in value,"Online","Offline") }}'
          - name: last_seen
            select_list: 'tr:-soup-contains("sensor_1_serial")>td'
            value_template: '{{ value.split(",")[6] | trim }}'
          - name: version
            select_list: 'tr:-soup-contains("sensor_1_serial")>td'
            value_template: '{{ value.split(",")[7] | trim }}'
          - name: model
            select_list: 'tr:-soup-contains("sensor_1_serial")>td'
            value_template: '{{ value.split(",")[8] | trim }}'

Describe the bug
7.0.2 Broken, had to go back to 7.0.1
With 7.0.2, I'm not getting past the login page, the logged response says I didn't provide a valid password.

Hub Portal

        <form action='/login' method='POST'>

            User Name
            <input name="user" id="un" class="form-control" value="admin" disabled>
            <input name="path" id="pa" class="form-control" value="/sensors" hidden>

            Password
            <input type="password" name="passwd" id="passwd" class="form-control" placeholder="Enter a password here" value="">

          <button type="submit" class="btn btn-primary">Login</button>

          Tips: The password you entered is not your login password for MOCREO Portal.

Debug log

2024-04-06 09:51:51.793 DEBUG (MainThread) [custom_components.multiscrape.coordinator] Scraper_noname_0 # New run: start (re)loading data from resource
2024-04-06 09:51:51.794 DEBUG (MainThread) [custom_components.multiscrape.coordinator] Scraper_noname_0 # Deleting logging files from previous run
2024-04-06 09:51:51.796 DEBUG (MainThread) [custom_components.multiscrape.form] Scraper_noname_0 # Starting with form-submit
2024-04-06 09:51:51.797 DEBUG (MainThread) [custom_components.multiscrape.form] Scraper_noname_0 # Requesting page with form from: https://redacted_domain/login
2024-04-06 09:51:51.797 DEBUG (MainThread) [custom_components.multiscrape.http] Scraper_noname_0 # Executing form_page-request with a GET to url: https://redacted_domain/login with headers: {}.
2024-04-06 09:51:51.800 DEBUG (MainThread) [custom_components.multiscrape.http] Scraper_noname_0 # request_headers written to file: form_page_request_headers.txt
2024-04-06 09:51:51.802 DEBUG (MainThread) [custom_components.multiscrape.http] Scraper_noname_0 # request_body written to file: form_page_request_body.txt
2024-04-06 09:51:51.814 DEBUG (MainThread) [custom_components.multiscrape.http] Scraper_noname_0 # Error executing GET request to url: https://redacted_domain/login.
 Error message:
 SSLCertVerificationError(1, "[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'redacted_domain'. (_ssl.c:1000)")
2024-04-06 09:51:51.815 DEBUG (MainThread) [custom_components.multiscrape.http] Scraper_noname_0 # Unable to write headers and body to files during handling of exception.
 Error message:
 AttributeError("'NoneType' object has no attribute 'headers'")
2024-04-06 09:51:51.815 ERROR (MainThread) [custom_components.multiscrape.coordinator] Scraper_noname_0 # Exception in form-submit feature. Will continue trying to scrape target page.
[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'redacted_domain'. (_ssl.c:1000)
2024-04-06 09:51:51.815 DEBUG (MainThread) [custom_components.multiscrape.http] Scraper_noname_0 # Executing page-request with a GET to url: https://redacted_domain/sensors with headers: {}.
2024-04-06 09:51:51.819 DEBUG (MainThread) [custom_components.multiscrape.http] Scraper_noname_0 # request_headers written to file: page_request_headers.txt
2024-04-06 09:51:51.821 DEBUG (MainThread) [custom_components.multiscrape.http] Scraper_noname_0 # request_body written to file: page_request_body.txt
2024-04-06 09:51:53.992 DEBUG (MainThread) [custom_components.multiscrape.http] Scraper_noname_0 # Response status code received: 200
2024-04-06 09:51:53.995 DEBUG (MainThread) [custom_components.multiscrape.http] Scraper_noname_0 # response_headers written to file: page_response_headers.txt
2024-04-06 09:51:53.997 DEBUG (MainThread) [custom_components.multiscrape.http] Scraper_noname_0 # response_body written to file: page_response_body.txt
2024-04-06 09:51:53.997 DEBUG (MainThread) [custom_components.multiscrape.scraper] Scraper_noname_0 # Loading the content in BeautifulSoup.
2024-04-06 09:51:54.004 DEBUG (MainThread) [custom_components.multiscrape.scraper] Scraper_noname_0 # page_soup written to file: page_soup.txt
2024-04-06 09:51:54.004 DEBUG (MainThread) [custom_components.multiscrape.coordinator] Scraper_noname_0 # Data successfully refreshed. Sensors will now start scraping to update.
2024-04-06 09:51:54.004 DEBUG (MainThread) [custom_components.multiscrape.coordinator] Finished fetching multiscrape data in 2.210 seconds (success: True)
2024-04-06 09:51:54.004 DEBUG (MainThread) [custom_components.multiscrape.sensor] Scraper_noname_0 # Mocreo 0030AEA4005AD000 # Start scraping to update sensor
2024-04-06 09:51:54.005 DEBUG (MainThread) [custom_components.multiscrape.scraper] Scraper_noname_0 # Mocreo 0030AEA4005AD000 # List selector selected tags: []
2024-04-06 09:51:54.005 DEBUG (MainThread) [custom_components.multiscrape.scraper] Scraper_noname_0 # Mocreo 0030AEA4005AD000 # List selector csv:
2024-04-06 09:51:54.005 DEBUG (MainThread) [custom_components.multiscrape.scraper] Scraper_noname_0 # Mocreo 0030AEA4005AD000 # Applying value_template on selector result
2024-04-06 09:51:54.005 ERROR (MainThread) [homeassistant.helpers.template] Template variable error: list object has no element 2 when rendering '{{ value.split(",")[2].split("°")[0] | trim | float }}'
2024-04-06 09:51:54.005 DEBUG (MainThread) [custom_components.multiscrape.form] Scraper_noname_0 # Exception occurred while scraping, will try to resubmit the form next interval.
2024-04-06 09:51:54.005 ERROR (MainThread) [custom_components.multiscrape.sensor] Scraper_noname_0 # Mocreo 0030AEA4005AD000 # Unable to scrape data: UndefinedError: list object has no element 2
Consider using debug logging and log_response for further investigation.
2024-04-06 09:51:54.005 DEBUG (MainThread) [custom_components.multiscrape.sensor] Scraper_noname_0 # Mocreo 0030AEA4005AD000 # On-error, set value to None
2024-04-06 09:51:54.005 DEBUG (MainThread) [custom_components.multiscrape.entity] Scraper_noname_0 # Mocreo 0030AEA4005AD000 # Start scraping attributes
2024-04-06 09:51:54.006 DEBUG (MainThread) [custom_components.multiscrape.scraper] Scraper_noname_0 # Mocreo 0030AEA4005AD000# json # List selector selected tags: []
2024-04-06 09:51:54.006 DEBUG (MainThread) [custom_components.multiscrape.scraper] Scraper_noname_0 # Mocreo 0030AEA4005AD000# json # List selector csv:
2024-04-06 09:51:54.006 DEBUG (MainThread) [custom_components.multiscrape.scraper] Scraper_noname_0 # Mocreo 0030AEA4005AD000# json # Applying value_template on selector result
2024-04-06 09:51:54.006 ERROR (MainThread) [homeassistant.helpers.template] Template variable error: list object has no element 1 when rendering '{"serialnumber":"{{ value.split(',')[1].split(':')[1] | trim }}", "model":"{{ value.split(',')[0] | trim }}", "temperature":"{{ value.split(',')[2].split('°')[0] | trim }}", "unit_of_measurement":"°{{ value.split(',')[2].split('°')[1] | trim}}"}'
2024-04-06 09:51:54.006 DEBUG (MainThread) [custom_components.multiscrape.entity] Scraper_noname_0 # Mocreo 0030AEA4005AD000 # json # Exception selecting attribute data: UndefinedError: list object has no element 1
2024-04-06 09:51:54.006 ERROR (MainThread) [custom_components.multiscrape.entity] Scraper_noname_0 # Mocreo 0030AEA4005AD000 # json # Unable to extract data from HTML
2024-04-06 09:51:54.006 DEBUG (MainThread) [custom_components.multiscrape.entity] Scraper_noname_0 # Mocreo 0030AEA4005AD000 # json # On-error, set value to None
2024-04-06 09:51:54.007 DEBUG (MainThread) [custom_components.multiscrape.scraper] Scraper_noname_0 # Mocreo 0030AEA4005AD000# model # List selector selected tags: []
2024-04-06 09:51:54.007 DEBUG (MainThread) [custom_components.multiscrape.scraper] Scraper_noname_0 # Mocreo 0030AEA4005AD000# model # List selector csv:

Actually, after spending time filling the bug and reading through the debug logs, I figured a workaround:
to include verify_ssl: false inside the form_submit block
multiscrape:
  - resource: 'https://host/sensors'
    scan_interval: 300
    verify_ssl: false
    form_submit:
      verify_ssl: false

nonetheless, that was a breaking change, and it's also undocumented on the readme page

You are right, that should have been mentioned and documented. I updated the release notes for those that still need to upgrade and will update the README accordingly.
So your workaround is actually is a solution.


Add better suppport for nested collections in persistent structs

Hey, I've found that nested collections are not supported the same way I expected so I've made some changes to make it little bit better.
Main problem was that when you save persistent struct twice it saves inserts objects in nested collection twice. So it ends up by having collection with twice more values than you expected :D

Thanks! Great change. Really awesome. I'll release an update soon, so it is really cool that I can include this change. Cheers.


Bump syntex constraint

Resolves #260  and #263

Looks like this has been handled in master.

Forever bumping syntex!

Sorry, I missed this!


content: Support Zulip content outside messages (even outside per-account contexts)

The web app supports Zulip Markdown rendering in contexts other than just message content:
See for example realm_description from the server settings on CZO, shown on the login page:

And see rendered_description on stream objects in the /register response, shown in stream settings:

This kind of thing would be easy to support in our app, except that some of the widgets in lib/widgets/content.dart have grown dependencies on data that won't be available in these other contexts. For example, MessageImage uses RealmContentNetworkImage, which requires a PerAccountStoreWidget ancestor. It also links to the lightbox, which is also per-account and additionally pulls data about the message's sender.
Currently, the following single line of code (atop #281) actually succeeds in visually reproducing CZO's realm description:
BlockContentList(nodes: parseContent(widget.serverSettings.realmDescription).nodes)

But the links don't work; an error prints to the console when I tap one of them.

So, we need the content widgets to work even when their message- and account-data dependencies are absent. Ideally, we would have a way to enforce that such strict dependencies aren't reintroduced.

I noticed that this repo's a-content label has this description: "Parsing and rendering message contents"
Should we generalize that to something like "Parsing and rendering Zulip content, like in messages"?

Should we generalize that

Sure, done: "Parsing and rendering Zulip HTML content, notably message contents".

However we end up presenting stream description, we'll probably want to show descriptions for views the same way as well. Web app issue: https://github.com/zulip/zulip/issues/29769.


tailwindcss: 3.3.2 -> 3.3.3

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for tailwindcss is: Command-line tool for the CSS framework with composable CSS classes, standalone CLI
meta.homepage for tailwindcss is: https://tailwindcss.com/blog/standalone-cli
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 3.3.3 with grep in /nix/store/nzybhz5sm6kzmpapd87dmb7q2gc7k8b7-tailwindcss-3.3.3
found 3.3.3 in filename of file in /nix/store/nzybhz5sm6kzmpapd87dmb7q2gc7k8b7-tailwindcss-3.3.3

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
tailwindcss

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/nzybhz5sm6kzmpapd87dmb7q2gc7k8b7-tailwindcss-3.3.3 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A tailwindcss https://github.com/r-ryantm/nixpkgs/archive/0d0283a6fab39fa6f4cf983d3595ecb35ca49251.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/nzybhz5sm6kzmpapd87dmb7q2gc7k8b7-tailwindcss-3.3.3
ls -la /nix/store/nzybhz5sm6kzmpapd87dmb7q2gc7k8b7-tailwindcss-3.3.3/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

tailwindcss

Maintainer pings
cc @adamcstephens for testing.

Result of nixpkgs-review pr 244086 run on aarch64-darwin 1

1 package built:

tailwindcss


refactor(modeling): linear runtime toOutlines

The toEdges function inside geom2.toOutlines includes a quadratic runtime loop to find unique vertices. I re-wrote the function to use a map so that it can run in linear time.
For a circle with 100 segments this reduces runtime from 0.9ms to 0.4ms (2x speedup).
For a circle with 1000 segments this reduces runtime from 12ms to 2ms (6x speedup).
For a circle with 10000 segments this reduces runtime from 150ms to 16ms (9x speedup).
For a circle with 50000 segments this reduces runtime from 4400ms to 90ms (50x speedup).
For a circle with 100000 segments this reduces runtime from 16000ms to 160ms (100x speedup).
This helps performance more as the complexity of the design increases. But it is also still faster on small geometry.
Performance test code:
const jscad = require('@jscad/modeling')

const { toOutlines } = jscad.geometries.geom2
const { circle } = jscad.primitives

const main = () => {
  const geometry2 = circle({ radius: 5, segments: 10000 })
  const start = performance.now()
  const outlines = toOutlines(geometry2)
  console.log(`Outline generated ${performance.now() - start} ms`)
  return geometry2
}

module.exports = { main }

All Submissions:

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same update/change?
[x] Does your submission pass tests?

wow, nice catch. and nice fix :)

someone went deep down inside geom2.toOutlines
:)

it's interesting that the creation of a string plus hashmap lookups can be faster then tight loops. javascript is a strange beast.

O(N) will always be faster than O(N^2) for large enough N, and for small N, the difference doesn't matter much anyway.


[FX] Create Issue when CI sees a known #TAG in code

Make sure that the code does not create multiple issues for a given tag.
Tags could be:

# BUG - #BUG -> Tag issue with bug
# HACK - #HACK -> Tag issue with Dept
# FIXME - #FIXME -> Tag issue with Dept
# TODO - #TODO -> Tag issue with Feature?
# DEBUG - #DEBUG -> Tag issue with Dept?

Closed here and moved to an idea discussion: https://github.com/orgs/PSModule/discussions/6


Instadapp Integration

So far:

we have dsa contracts where connext is enabled
target contracts for instadapp are deployed
https://github.com/Instadapp/dsa-periphery-contract

Next steps

test out the flow of target addresses, with dsa contracts
create an integration test to check the flow and write next steps required for sdk

Need next steps clearly mapped out (testing, adding to instadapp docs, marketing campaign)
Options for implementation
1-click deposits
crosschain lending

close but we need to align on next /final steps


API to add custom ActionTypes

Description of new idea or improvement on existing one
With ActionType being an enum, it's currently not possible to create custom ActionTypes via an external plugin. It would break the current API, but I think allowing this would mean a great deal. I went to do this for a PR, but it basically requires a full re-write.
Detailed information what should do
Add a class or interface that you can extend or implement to allow for custom ActionTypes. In the example below, I show my idea to make this possible:
public interface CustomActionType {
    /**
     * Place to register your Listener.
     */
    void start();

    /**
     * Place to disable your Listener.
     */
    void stop();
    // Reason I ask for start() and stop() is in case the event type is not from Bukkit.

    /**
     * Gets the name of the ActionType for use in the config.
     * @return The custom ActionType name.
     */
    String getName();

    /**
     * Checks if the action is valid based on the Jobs config.
     * @param player The causing player.
     * @param world The world the action happened in.
     * @return If the action is valid.
     */
    default boolean isValidAction(Player player, World world) {
    if (!Jobs.getGCManager().canPerformActionInWorld(world)) return false;
    if (!Jobs.getPermissionHandler().hasWorldPermission(player)) return false;
    return !Jobs.getGCManager().disablePaymentIfRiding || !player.isInsideVehicle();
    }
}

public abstract class CustomActionInfo {
    private final String type;

    public CustomActionInfo(CustomActionType customActionType) {
        // This allows for using the same CustomActionInfo for multiple CustomActionTypes.
        this.type = customActionType.getName();
    }

    /**
     * Passes the instruction string in use so you can check it against how you'd like to validate it.
     * @param instruction The action string used in the job config.
     * @return Whether or not the action fits the instruction.
     */
    public boolean validate(String instruction) {
    return false;
    }
}

Usage and Config Example:
public class MyCustomAction implements CustomActionType, Listener {
    public void start() {
    Bukkit.getPluginManager().registerEvents(this, MyCustomPlugin.getInstance());
    }

    public void stop() {
    HandlerList.unregisterAll(this);
    }

    @Override
    public String getName() {
    return "MyCustomAction";
    }

    @EventHandler
    public void onEvent(SomeEvent event) {
    Player player = event.getPlayer();
    if(!this.isValidAction(player, player.getWorld())) return;
    MyCustomActionInfo info = new MyCustomActionInfo(this);
    info.setObject(event.getObject);
    Jobs.action(Jobs.getPlayerManager().getJobsPlayer(player.getUUID()), info);
    }
}

public interface MyCustomActionInfo extends CustomActionInfo {
    private Object obj;

    public MyCustomActionInfo(CustomActionType customActionType) {
    super(customActionType);
    }

    public void setObject(Object obj) {
    this.obj = obj;
    }

    @Override
    public boolean validate(String instruction) {
    return obj instanceof String && ((String)obj).equals(instruction);
    // In my example config below, param instruction would be "Hello" and/or "Please", and would progress if the object matches.
    }
}

  Quests:
    '1':
      Objectives:
      - MyCustomAction;Hello;5
  MyCustomAction:
    Please:
      income: 0.25
      points: 0.25
      experience: 0.5

This would definitely require quite big change in core payment handling if we would change Enum action types to basic Strings. Having Enums simplify things and prevents from mistakes happening. If we could work out solution which would allow for both systems to be a thing, that would be best way to go. Additionally, things like block place and break actions need to go over block protection mechanic, so something like this needs to be accounted in API too.


Fixing the validation of the received parameter

Hello!

Type: bug fix
Link to issue: https://github.com/phalcon/phalcon/issues/220

In raising this pull request, I confirm the following:

[x] I have read and understood the Contributing Guidelines
[x] I have checked that another pull request for this purpose does not exist
[ ] I wrote some tests for this PR
[ ] I have updated the relevant CHANGELOG
[ ] I have created a PR for the documentation about this change

Small description of change:
The received parameter is not being validated before storing it.
Thanks

Rockstar! Thank you @jeijei4

Rockstar! Thank you @jeijei4

You're welcome!


Fix tests because this is a cool library 🚀

@travisjeffery or @vkarpov15 could you review, if this project is still somewhat active? Looks like the TravisCI hooks need to be updated, but the tests passed for me running on node v5.10 :)

Seems reasonable to me but I don't have push access to this repo :(

LGTM, thanks!

The tests pass for me running v5.9.1. When don't they pass for you?

@travisjeffery
$ node --version
v5.10.1

Also, chai's expect gives much nicer stack traces.

In any case, re-enabling the Travis hooks would be for the best.

Closing in favour of #132.


optimize SecurityUtility code flow

Motivation
Move the illegal condition forward, make code more Readable
Documentation
Need to update docs?

[ ] no-need-doc
Just a simple optimize

@Shoothzj:Thanks for your contribution. For this PR, do we need to update docs?
(The PR template contains info about doc, which helps others know more about the changes. Can you provide doc-related info in this and future PR descriptions? Thanks)

@Shoothzj:Thanks for your contribution. For this PR, do we need to update docs? (The PR template contains info about doc, which helps others know more about the changes. Can you provide doc-related info in this and future PR descriptions? Thanks)

No need to update doc. Just a simple optmization.


add SEAL link prediction example

Hi, following the discussion in https://github.com/rusty1s/pytorch_geometric/issues/634, I added an example implementation of SEAL for link prediction, introduced by "Zhang, Muhan, and Yixin Chen. Link prediction based on graph neural networks. Advances in Neural Information Processing Systems. 2018." On Cora, it achieved 0.9332 +/- 0.0016 AUC, compared to the 0.9104 +/- 0.0036 AUC of GAE in "link_pred.py". Please let me know whether it can be added to PyG's examples or any additional tests/modifications need to be added.

Thanks, this is super cool! I made a pass through the PR and made some changes. For example, the pre-processing now takes place inside the SEALDataset. Otherwise, I mostly cleaned it up a little bit.
Really cool to have an example of it, thank you very much!

Cool! Thank you very much for cleaning!

Hi, I read through the paper and I notice we can pass node embedding and node features, can you advise in the example which code is for adding node embedding and node features? Thanks a lot

Hi, I read through the paper and I notice we can pass node embedding and node features, can you advise in the example which code is for adding node embedding and node features? Thanks a lot

Change this line to something like:
z = F.one_hot(data.z, self.__max_z__ + 1).to(torch.float)
data.x = torch.cat([z, data.x], 1)

in order to include node attribute features. You may also train and include node embeddings there. But they do not often improve the performance over using purely subgraph structures.

Thanks! I will try!

Hi, muhanzhang, I am wondering if I can change GCN to SageConv?
Have you tried using SageConv?Will it improve performance?

Hi, muhanzhang, I am wondering if I can change GCN to SageConv?
Have you tried using SageConv?Will it improve performance?

No, I haven't. The GNN architecture in SEAL is flexible. I have tried GIN but saw worse performance. You may have a try of SageConv.

Hi, muhanzhang, I am wondering if I can change GCN to SageConv?
Have you tried using SageConv?Will it improve performance?

No, I haven't. The GNN architecture in SEAL is flexible. I have tried GIN but saw worse performance. You may have a try of SageConv.

Thank you !!

Hi, I read through the paper and I notice we can pass node embedding and node features, can you advise in the example which code is for adding node embedding and node features? Thanks a lot

Change this line to something like:
z = F.one_hot(data.z, self.__max_z__ + 1).to(torch.float)
data.x = torch.cat([z, data.x], 1)

in order to include node attribute features. You may also train and include node embeddings there. But they do not often improve the performance over using purely subgraph structures.

I am lit bit confused about node embedding, in the example, you use cora dataset, so the node already has node embedding right? 2708*1433?

No, the 2708 * 1433 are node attribute features. They are bag of words features describing the documents (nodes) in Cora. Node embedding needs running network embedding algorithms (such as DeepWalk, node2vec, LINE, etc.) to get.

No, the 2708 * 1433 are node attribute features. They are bag of words features describing the documents (nodes) in Cora. Node embedding needs running network embedding algorithms (such as DeepWalk, node2vec, LINE, etc.) to get.

Got it, Thanks!

Hi @muhanzhang , thanks for this fantastic example.
I noticed that in the dataset every pair of nodes has an undirected edge [(0,1), (1,0), (2,1), (1,2)] etc.. which results in a duplication of the subgraphs in the data loaders, as computing subgraphs for [1,2] or [2,1] gives the same output. For a bigger dataset this might lead to memory problems when saving the dataset with torch.save().
Now i am wondering if i am missing something or it is fine to remove those duplicates?
Thanks in advance!

@MLAlex1 Hi! Your point makes sense. If the training data contain edges of both directions, then the current implementation does not remove duplicates and samples subgraphs for both. I believe you can remove the duplicates at the stage of sampling training edges, like commenting out this line. We don't need duplicate edges for undirected graphs.

Thanks, that's exactly what I did!


[AutoPR cost-management/resource-manager] Enum updates to support Hourly reports

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/4827

Conflict, will start from scratch


[Storage Account]: deployment script to an ARM template

Resource Type
Microsoft.Storage/storageAccounts
Api Version
2023-01-01
Issue Type
Other
Other Notes
New-AzResourceGroupDeployment : 6:24:52 AM - The deployment 'deploymentscript-05-05-2024' failed with error(s). Showing 1 out of 1 error(s).
Status Message: Public access is not permitted on this storage account.
RequestId:4d433e2e-201e-0056-12ac-9e9b11000000
Time:2024-05-05T05:24:47.4542070Z (Code:PublicAccessNotPermitted)
Bicep Repro
resource storageAccount 'Microsoft.Storage/storageAccounts@2023-01-01' = {
name: storageAccountName
tags: {
displayName: storageAccountName
}
location: location
kind: 'StorageV2'
sku: {
name: 'Standard_LRS'
tier: 'Standard'
}
properties: {
encryption: {
services: {
blob: {
enabled: true
}
}
keySource: 'Microsoft.Storage'
}
supportsHttpsTrafficOnly: true
}
resource blobService 'blobServices' existing = {
name: 'default'
}
}
Confirm

[X] I have read the troubleshooting guide and looked for duplicates.

Added  **allowBlobPublicAccess: true** on properties, the problem got fixed. please refer below.
resource storageAccount 'Microsoft.Storage/storageAccounts@2023-01-01' = {
name: storageAccountName
tags: {
displayName: storageAccountName
}
location: location
kind: 'StorageV2'
sku: {
name: 'Standard_LRS'
tier: 'Standard'
}
properties: {
encryption: {
services: {
blob: {
enabled: true
}
}
keySource: 'Microsoft.Storage'
}
allowBlobPublicAccess: true
supportsHttpsTrafficOnly: true
}
resource blobService 'blobServices' existing = {
name: 'default'
}
}


Add support for node-sass >= 3.0.0-beta.7

This PR adds support for node-sass >= 3.0.0-beta.7.
I admit to not being familiar with gulp plugins, so this may need some review.
All the tests pass.
Fixes https://github.com/dlmanning/gulp-sass/issues/210.

The next version is on the 2.x branch, I'll do a PR on it later today to update

I'm going to close this because, as @Keats, said, our current branch is 2.x


Use an implemented interface's types on class members implicitly

🔍 Search Terms
"interface member types in classes", "re-use interface types in classes "
✅ Viability Checklist

[X] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[X] This wouldn't change the runtime behavior of existing JavaScript code
[X] This could be implemented without emitting different JS based on the types of the expressions
[X] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
[X] This feature would agree with the rest of our Design Goals: https://github.com/Microsoft/TypeScript/wiki/TypeScript-Design-Goals

⭐ Suggestion
In class members that implement an interface's members, when no types are explicitly defined TS should implicitly use the types defined in the interface.
This is line with the following design goal of Typescript:

Produce a language that is composable and easy to reason about.

📃 Motivating Example
I've always wondered why an interface's types aren't implicitly used in classes that implement them, e.g.
interface IFoo { foo(args: { value: Date }): string }

class Foo implements IFoo {
  foo(args) { // <-- method argument type is 'any'
    throw new Error('Method not implemented.');
  }
}

Instead, classes require us to re-declare the types for class members, causing unnecessary duplication.
The role of an interface is to define a contract for behaviour, so it seems reasonable to assume that, unless explicitly defined otherwise, the members a class implements from an interface should implicitly be those that are defined already in the interface.
💻 Use Cases

What do you want to use this for?

Eliminate the need to duplicate an interface's types when implementing them in a class
Allow interfaces be the single source of truth / documentation for an interface's types, unless explicitly narrowed / widened by the class.

What shortcomings exist with current approaches?

When refactoring, changing an interface's type signature may not be immediately reflected in classes that implement it, because each implementation must explicitly declare their own type signatures. Because of this, the material changes required by the refactoring aren't surfaced until each implementing class' type defs are updated. It's just more work that probably doesn't need to exist.

What workarounds are you using in the meantime?

I use the Parameters and ReturnType types to annotate class methods with the types from an Interface and modify them as necessary. Here's a naive example:

interface IFoo { foo(args: { value: Date }): string }

class Foo implements IFoo {
  foo(...args: Parameters<IFoo['foo']>): ReturnType<IFoo['foo']> { // <-- method argument type is 'any'
    throw new Error('Method not implemented.');
  }
}

This is nice, because changing the type signature in the interface immediately surfaces problems in the method's implementation, but it's very wordy and repetitive.

Duplicate of #32082.

Closing in favour of: https://github.com/microsoft/TypeScript/issues/32082.


Install an app via command line + auto update

Describe the solution you'd like
Install an app via command line and have the app auto-update afterwards (on Android).
When we adb install an apk, the app will not auto-update, even if the release/distribution is public. I would like to have this functionality.
I implemented auto-updating, but it currently only works when downloading the app from the App Center installation url by clicking the download button. We would like the feature when installing via command line.
Describe alternatives you've considered
Creating our own (in-app) update service using the public (App Center) API's. Downloading the new version APK in the app itself and replacing 'myself' on updates. Drawback: dodgy implementation. When update fails, there is no state/app left to return to.
Additional context
Found this in the docs: "At this time, there are some limitations to In-App Updates: In-app updates only work for public distribution groups if testers have downloaded the app from their default browser with cookies enabled" - https://docs.microsoft.com/en-us/appcenter/sdk/distribute/android

In-app updates only work in conjunction with our distribution service because of how the SDK polls for a
newer version. And as App Center is a cloud solution with no immediate intention of creating on-premises software, I don't think this feature will be implemented any time soon.
Thank you for your contribution, if you reach out to us through the blue bubble I hope we can find a working solution together.


Extract the origin sub-type from the top-level Source model

 Implement curator service CRUD API for automated source scraping runs


[SPARK-20051][SS] Fix StreamSuite flaky test - recover from v2.1 checkpoint

What changes were proposed in this pull request?
Test fails with IOException, a delete command fails. Fixing to queue up deletion at shutdown using shutdown hooks util.
How was this patch tested?

Unit test

repeated 300 runs with no failure

Test build #75014 has started for PR 17382 at commit 8c0fcb1.

LGTM. Will merge when tests pass.

Scala tests have passed. I am merging this to unblock other PRs.

Test build #75014 has finished for PR 17382 at commit 8c0fcb1.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/75014/
Test PASSed.

@tdas all tests passed.


Add Note Column to IP Address

In many environments, multiple people at multiple locations may need to manage the installation/upgrade of extensions.  It would be useful to have a required [Note] (or another more useful name) column added so that everyone knows the context of the given IP address in the table.
It would also be useful to see this information in the front-end view as well.
This is especially true today since more and more people are working remotely and they may not have a static IP address.

In Azure this is typically simply "Rule Name" or "Name" for a firewall rule which is essentially what this is for.

Resolved in release 0.9.3


Generation from .NET Core OData gives issues

What are the steps to reproduce this issue?
We are using the approach that is described here.
When I want to generate the services  I get an issue.
What happens?
In my service I get this error:
Code:
 queryxxx<TData = xxxModelDto>(
    params?: QueryxxxParams, options?: HttpClientOptions
  ): Observable<TData>  {
    return this.http.get<TData>(
      `/queryxxx`,{
    ...options,
        params: {...params, ...options?.params},}
    );
  }

Error pointing to line params: {...params, ...options?.params},}

Type 'xxxResponseModelODataQueryOptionsDto' is not assignable to type 'string | number | boolean | readonly (string | number | boolean)[]'

…
What were you expecting to happen?
A correct mapping?
When I use another generator, the file is generated correctly:
openapi-generator-cli generate -i libs/xxx/shared/api/src/lib/api-xxx.yaml -g typescript-angular -o libs/xxx/shared/api/src/lib/generated
…
Any logs, error output, etc?

Type 'xxxResponseModelODataQueryOptionsDto' is not assignable to type 'string | number | boolean | readonly (string | number | boolean)[]'
…

Any other comments?
…
What versions are you using?
Operating System: Windows
Package Version: 6.10.3
Browser Version: Google Chrome

Can you try 6.24.0 please and report back?


Updated to work with Godot 4

Updates plugin to work with Godot 4.

You might want to merge this into a separate branch, since it won't be compatible with Godot 3.

Thanks! I created a 3.x branch which could potentially get fixes backported. The master branch is now for Godot version 4.


doc: Update example and doc to show table scan api.

0.3 release focuses on table scan,  we should update doc to demonstrate its usage as part of this release.

We introduced the memory catalog #412
It will be great if there is a in-memory example in doc to do a quick demo to users.

Let me take this one.


Posting Privileges

Hello there folks... thank you for the feedback I was able to log in based on Matt advise yet it seems I don't have privileges to post content

Kindly advise
N
Thanks for reporting an issue, to help us file this efficiently we made this template. Feel free to ignore the template if you wish :)
If this is a bug or a problem with one of our websites or page on one of our sites, please put the URL or page address here:
Please tell us the steps to reproduce the problem, if needed:

Please tell us a little bit about how you're accessing the site or page, such as which web browser and which version of the browser:
(You can also vist https://aboutmybrowser.com/ which will give you a link you can share with us that'll tell us everything we need to know)
You can also attach a screenshot to this issue if you have a visual bug to report. That'll help us figure it out faster. http://www.take-a-screenshot.org/ has instructions on taking screenshots.
Finally, we're going to put someone's name here, so they get alerted to the new issue and can assign it to the right person. @mattl @little-wow

@NaeemaCC I reset your role.  Tell me if you're still having issues.

Still no access to write a blog post :(

Still the same

You're now listed as an author, so I don't know why it's not reflecting. Did you try clearing your cache?

I think I know what's up, one sec

You should be all set now.

It is <3 I posted one in English and now I'm going for an Arabic post
On Tue, Jul 12, 2016 at 7:56 PM, Matt Lee<EMAIL_ADDRESS>wrote:

You should be all set now.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/creativecommons/creativecommons.org/issues/342#issuecomment-232108950,
or mute the thread
https://github.com/notifications/unsubscribe/APlGTngPTMIUBomtYoU2Rwl8VfEdUjIVks5qU8dagaJpZM4JKWgZ
.

--
Naeema Zarif
Regional Coordinator | Arab World
Creative Commons
creativecommons.org
<EMAIL_ADDRESS>Skype: NaeemaZarif
Twitter: @naeema
Please support CC in shaping the future of sharing:
https://creativecommons.net/donate/

Thank you guys it worked perfectly :) 👍