Fatal: cannot assign requested address

Hi guys,
I someone could help me with running the service.
System: Fedora 37 amd64
User : mox
X.X.X.X - My External IP (Dynamic DNS), IP could change.
mymail.com - My domain
The command: ./mox serve gives me the following response:
l=debug m="autotls setting allowed hostnames" pkg=autotls hostnames=[mymail.com;mta-sts.mymail.com] publicips=[X.X.X.X]
l=print m="starting as root, initializing network listeners" pkg=serve version=v0.0.6 pid=9219 moxconf=/home/mox/config/mox.conf domainsconf=/home/mox/config/domains.conf
l=print m="listening for smtp" pkg=smtpserver listener=public address=X.X.X.X:50465 protocol=submissions
l=fatal m="smtp: listen for smtp" err="listen tcp4 X.X.X.X:50465: bind: cannot assign requested address" pkg=smtpserver protocol=submissions listener=public

I also have the following ports forwarded on my router:

My mox.conf as follows:

# Directory where all data is stored, e.g. queue, accounts and messages, ACME TLS
# certs/keys. If this is a relative path, it is relative to the directory of
# mox.conf.
DataDir: ../data

# Default log level, one of: error, info, debug, trace, traceauth, tracedata.
# Trace logs SMTP and IMAP protocol transcripts, with traceauth also messages with
# passwords, and tracedata on top of that also the full data exchanges (full
# messages), which can be a large amount of data.
LogLevel: debug

# User to switch to after binding to all sockets as root. Default: mox. If the
# value is not a known user, it is parsed as integer and used as uid and gid.
# (optional)
User: mox

# Full hostname of system, e.g. mail.<domain>
# Hostname: localhost.localdomain
Hostname: mymail.com

# If enabled, a single DNS TXT lookup of _updates.xmox.nl is done every 24h to
# check for a new release. Each time a new release is found, a changelog is
# fetched from https://updates.xmox.nl and delivered to the postmaster mailbox.
# (optional)
#
# RECOMMENDED: please enable to stay up to date
#
#CheckUpdates: true

# Automatic TLS configuration with ACME, e.g. through Let's Encrypt. The key is a
# name referenced in TLS configs, e.g. letsencrypt. (optional)
ACME:
	letsencrypt:

		# For letsencrypt, use https://acme-v02.api.letsencrypt.org/directory.
		DirectoryURL: https://acme-v02.api.letsencrypt.org/directory

		# Email address to register at ACME provider. The provider can email you when
		# certificates are about to expire. If you configure an address for which email is
		# delivered by this server, keep in mind that TLS misconfigurations could result
		# in such notification emails not arriving.
		ContactEmail<EMAIL_ADDRESS>
# File containing hash of admin password, for authentication in the web admin
# pages (if enabled). (optional)
AdminPasswordFile: adminpasswd

# Listeners are groups of IP addresses and services enabled on those IP addresses,
# such as SMTP/IMAP or internal endpoints for administration or Prometheus
# metrics. All listeners with SMTP/IMAP services enabled will serve all configured
# domains. If the listener is named 'public', it will get a few helpful additional
# configuration checks, for acme automatic tls certificates and monitoring of ips
# in dnsbls if those are configured.
Listeners:
	internal:

		# Use <IP_ADDRESS> to listen on all IPv4 and/or :: to listen on all IPv6 addresses, but
		# it is better to explicitly specify the IPs you want to use for email, as mox
		# will make sure outgoing connections will only be made from one of those IPs.
		IPs:
			- <IP_ADDRESS>
			- ::1
			- <IP_ADDRESS>
			- fd25:e2db:a5bc::263
			- fd25:e2db:a5bc:0:2e3:5cff:fe68:818a

		# If empty, the config global Hostname is used. (optional)
		Hostname: localhost

		# Account web interface, for email users wanting to change their accounts, e.g.
		# set new password, set new delivery rulesets. Served at /. (optional)
		AccountHTTP:
			Enabled: true

		# Admin web interface, for managing domains, accounts, etc. Served at /admin/.
		# Preferrably only enable on non-public IPs. Hint: use 'ssh -L 8080:localhost:80
		# you@yourmachine' and open http://localhost:8080/admin/, or set up a tunnel (e.g.
		# WireGuard) and add its IP to the mox 'internal' listener. (optional)
		AdminHTTP:
			Enabled: true

		# Serve prometheus metrics, for monitoring. You should not enable this on a public
		# IP. (optional)
		MetricsHTTP:
			Enabled: true
	public:

		# Use <IP_ADDRESS> to listen on all IPv4 and/or :: to listen on all IPv6 addresses, but
		# it is better to explicitly specify the IPs you want to use for email, as mox
		# will make sure outgoing connections will only be made from one of those IPs.
		IPs:
			- X.X.X.X

		# For SMTP/IMAP STARTTLS, direct TLS and HTTPS connections. (optional)
		TLS:

			# Name of provider from top-level configuration to use for ACME, e.g. letsencrypt.
			# (optional)
			ACME: letsencrypt

		# (optional)
		SMTP:
			Enabled: false

			# Addresses of DNS block lists for incoming messages. Block lists are only
			# consulted for connections/messages without enough reputation to make an
			# accept/reject decision. This prevents sending IPs of all communications to the
			# block list provider. If any of the listed DNSBLs contains a requested IP
			# address, the message is rejected as spam. The DNSBLs are checked for healthiness
			# before use, at most once per 4 hours. Example DNSBLs: sbl.spamhaus.org,
			# bl.spamcop.net (optional)
			#DNSBLs:
				#- sbl.spamhaus.org
				#- bl.spamcop.net

		# SMTP over TLS for submitting email, by email applications. Requires a TLS
		# config. (optional)
		Submissions:
			Enabled: true
			Port: 50465

		# IMAP over TLS for reading email, by email applications. Requires a TLS config.
		# (optional)
		IMAPS:
			Enabled: true

		# Serve autoconfiguration/autodiscovery to simplify configuring email
		# applications, will use port 443. Requires a TLS config. (optional)
		AutoconfigHTTPS:
			Enabled: false

		# Serve MTA-STS policies describing SMTP TLS requirements. Requires a TLS config.
		# (optional)
		MTASTSHTTPS:
			Enabled: true

		# All configured WebHandlers will serve on an enabled listener. (optional)
		WebserverHTTP:
			Enabled: true

		# All configured WebHandlers will serve on an enabled listener. Either ACME must
		# be configured, or for each WebHandler domain a TLS certificate must be
		# configured. (optional)
		WebserverHTTPS:
			Enabled: true

# Destination for emails delivered to postmaster address.
Postmaster:
	Account: mox

	# E.g. Postmaster or Inbox.
	Mailbox: Postmaster

My domains.conf as follows:

# Domains for which email is accepted. For internationalized domains, use their
# IDNA names in UTF-8.
Domains:
	mymail.com:

		# If not empty, only the string before the separator is used to for email delivery
		# decisions. For example, if set to "+"<EMAIL_ADDRESS>will be
		# delivered to<EMAIL_ADDRESS>(optional)
		LocalpartCatchallSeparator: +

		# With DKIM signing, a domain is taking responsibility for (content of) emails it
		# sends, letting receiving mail servers build up a (hopefully positive) reputation
		# of the domain, which can help with mail delivery. (optional)
		DKIM:

			# Emails can be DKIM signed. Config parameters are per selector. A DNS record must
			# be created for each selector. Add the name to Sign to use the selector for
			# signing messages.
			Selectors:
				2023a:

					# Period a signature is valid after signing, as duration, e.g. 72h. The period
					# should be enough for delivery at the final destination, potentially with several
					# hops/relays. In the order of days at least. (optional)
					Expiration: 72h

					# Either an RSA or ed25519 private key file in PKCS8 PEM form.
					PrivateKeyFile: dkim/2023a._domainkey.mymail.com.20230510T232710.ed25519key.pkcs8.pem
				2023b:

					# Period a signature is valid after signing, as duration, e.g. 72h. The period
					# should be enough for delivery at the final destination, potentially with several
					# hops/relays. In the order of days at least. (optional)
					Expiration: 72h

					# Either an RSA or ed25519 private key file in PKCS8 PEM form.
					PrivateKeyFile: dkim/2023b._domainkey.mymail.com.20230510T232710.rsakey.pkcs8.pem
				2023c:

					# Period a signature is valid after signing, as duration, e.g. 72h. The period
					# should be enough for delivery at the final destination, potentially with several
					# hops/relays. In the order of days at least. (optional)
					Expiration: 72h

					# Either an RSA or ed25519 private key file in PKCS8 PEM form.
					PrivateKeyFile: dkim/2023c._domainkey.mymail.com.20230510T232710.ed25519key.pkcs8.pem
				2023d:

					# Period a signature is valid after signing, as duration, e.g. 72h. The period
					# should be enough for delivery at the final destination, potentially with several
					# hops/relays. In the order of days at least. (optional)
					Expiration: 72h

					# Either an RSA or ed25519 private key file in PKCS8 PEM form.
					PrivateKeyFile: dkim/2023d._domainkey.mymail.com.20230510T232710.rsakey.pkcs8.pem

			# List of selectors that emails will be signed with. (optional)
			Sign:
				- 2023a
				- 2023b

		# With DMARC, a domain publishes, in DNS, a policy on how other mail servers
		# should handle incoming messages with the From-header matching this domain and/or
		# subdomain (depending on the configured alignment). Receiving mail servers use
		# this to build up a reputation of this domain, which can help with mail delivery.
		# A domain can also publish an email address to which reports about DMARC
		# verification results can be sent by verifying mail servers, useful for
		# monitoring. Incoming DMARC reports are automatically parsed, validated, added to
		# metrics and stored in the reporting database for later display in the admin web
		# pages. (optional)
		DMARC:

			# Address-part before the @ that accepts DMARC reports. Must be
			# non-internationalized. Recommended value: dmarc-reports.
			Localpart: dmarc-reports

			# Account to deliver to.
			Account: mox

			# Mailbox to deliver to, e.g. DMARC.
			Mailbox: DMARC

		# With MTA-STS a domain publishes, in DNS, presence of a policy for
		# using/requiring TLS for SMTP connections. The policy is served over HTTPS.
		# (optional)
		MTASTS:

			# Policies are versioned. The version must be specified in the DNS record. If you
			# change a policy, first change it in mox, then update the DNS record.
			PolicyID: 20230510T222710

			# testing, enforce or none. If set to enforce, a remote SMTP server will not
			# deliver email to us if it cannot make a TLS connection.
			Mode: enforce

			# How long a remote mail server is allowed to cache a policy. Typically 1 or
			# several weeks.
			MaxAge: 24h0m0s

			# List of server names allowed for SMTP. If empty, the configured hostname is set.
			# Host names can contain a wildcard (*) as a leading label (matching a single
			# label, e.g. *.example matches host.example, not sub.host.example). (optional)
			MX:
				- localhost.localdomain

		# With TLSRPT a domain specifies in DNS where reports about encountered SMTP TLS
		# behaviour should be sent. Useful for monitoring. Incoming TLS reports are
		# automatically parsed, validated, added to metrics and stored in the reporting
		# database for later display in the admin web pages. (optional)
		TLSRPT:

			# Address-part before the @ that accepts TLSRPT reports. Recommended value:
			# tls-reports.
			Localpart: tls-reports

			# Account to deliver to.
			Account: mox

			# Mailbox to deliver to, e.g. TLSRPT.
			Mailbox: TLSRPT

# Accounts to which email can be delivered. An account can accept email for
# multiple domains, for multiple localparts, and deliver to multiple mailboxes.
Accounts:
	mox:

		# Default domain for addresses specified in Destinations. An address can specify a
		# domain override.
		Domain: mymail.com

		# Destinations, specified as (encoded) localpart for Domain, or a full address
		# including domain override.
		Destinations:
<EMAIL_ADDRESS>nil
#			If you receive email from mailing lists, you probably want to configure them like the example below.
#<EMAIL_ADDRESS>#
#				# Mailbox to deliver to if none of Rulesets match. Default: Inbox. (optional)
#				Mailbox:
#
#				# Delivery rules based on message and SMTP transaction. You may want to match each
#				# mailing list by SMTP MailFrom address, VerifiedDomain and/or List-ID header
#				# (typically <listname.example.org> if the list address is listname@example.org),
#				# delivering them to their own mailbox. (optional)
#				Rulesets:
#					-
#
#						# Matches if this regular expression matches (a substring of) the SMTP MAIL FROM
#						# address (not the message From-header). E.g<EMAIL_ADDRESS>(optional)
#						SMTPMailFromRegexp:
#
#						# Matches if this domain matches an SPF- and/or DKIM-verified (sub)domain.
#						# (optional)
#						VerifiedDomain: list.example.org
#
#						# Matches if these header field/value regular expressions all match (substrings
#						# of) the message headers. Header fields and valuees are converted to lower case
#						# before matching. Whitespace is trimmed from the value before matching. A header
#						# field can occur multiple times in a message, only one instance has to match. For
#						# mailing lists, you could match on ^list-id$ with the value typically the mailing
#						# list address in angled brackets with @ replaced with a dot, e.g.
#						# <name\.lists\.example\.org>. (optional)
#						HeadersRegexp:
#							^list-id$: <name\.list\.example\.org>
#
#						# Influence the spam filtering, this does not change whether this ruleset applies
#						# to a message. If this domain matches an SPF- and/or DKIM-verified (sub)domain,
#						# the message is accepted without further spam checks, such as a junk filter or
#						# DMARC reject evaluation. DMARC rejects should not apply for mailing lists that
#						# are not configured to rewrite the From-header of messages that don't have a
#						# passing DKIM signature of the From-domain. Otherwise, by rejecting messages, you
#						# may be automatically unsubscribed from the mailing list. The assumption is that
#						# mailing lists do their own spam filtering/moderation. (optional)
#						ListAllowDomain: list.example.org
#
#						# Mailbox to deliver to if this ruleset matches.
#						Mailbox: Lists/Example
#

		# If configured, messages classified as weakly spam are rejected with instructions
		# to retry delivery, but this time with a signed token added to the subject.
		# During the next delivery attempt, the signed token will bypass the spam filter.
		# Messages with a clear spam signal, such as a known bad reputation, are
		# rejected/delayed without a signed token. (optional)
		SubjectPass:

			# How long unique values are accepted after generating, e.g. 12h.
			Period: 12h0m0s

		# Mail that looks like spam will be rejected, but a copy can be stored temporarily
		# in a mailbox, e.g. Rejects. If mail isn't coming in when you expect, you can
		# look there. The mail still isn't accepted, so the remote mail server may retry
		# (hopefully, if legitimate), or give up (hopefully, if indeed a spammer).
		# Messages are automatically removed from this mailbox, so do not set it to a
		# mailbox that has messages you want to keep. (optional)
		RejectsMailbox: Rejects

		# Automatically set $Junk and $NotJunk flags based on mailbox messages are
		# delivered/moved/copied to. Email clients typically have too limited
		# functionality to conveniently set these flags, especially $NonJunk, but they can
		# all move messages to a different mailbox, so this helps them. (optional)
		AutomaticJunkFlags:

			# If enabled, flags will be set automatically if they match a regular expression
			# below. When two of the three mailbox regular expressions are set, the remaining
			# one will match all unmatched messages. Messages are matched in the order
			# specified and the search stops on the first match. Mailboxes are lowercased
			# before matching.
			Enabled: true

			# Example: ^(junk|spam). (optional)
			JunkMailboxRegexp: ^(junk|spam)

			# Example: ^(inbox|neutral|postmaster|dmarc|tlsrpt|rejects), and you may wish to
			# add trash depending on how you use it, or leave this empty. (optional)
			NeutralMailboxRegexp: ^(inbox|neutral|postmaster|dmarc|tlsrpt|rejects)

		# Content-based filtering, using the junk-status of individual messages to rank
		# words in such messages as spam or ham. It is recommended you always set the
		# applicable (non)-junk status on messages, and that you do not empty your Trash
		# because those messages contain valuable ham/spam training information.
		# (optional)
		JunkFilter:

			# Approximate spaminess score between 0 and 1 above which emails are rejected as
			# spam. Each delivery attempt adds a little noise to make it slightly harder for
			# spammers to identify words that strongly indicate non-spaminess and use it to
			# bypass the filter. E.g. 0.95.
			Threshold: 0.950000
			Params:

				# Track ham/spam ranking for single words. (optional)
				Onegrams: true

				# Maximum power a word (combination) can have. If spaminess is 0.99, and max power
				# is 0.1, spaminess of the word will be set to 0.9. Similar for ham words.
				MaxPower: 0.010000

				# Number of most spammy/hammy words to use for calculating probability. E.g. 10.
				TopWords: 10

				# Ignore words that are this much away from 0.5 haminess/spaminess. E.g. 0.1,
				# causing word (combinations) of 0.4 to 0.6 to be ignored. (optional)
				IgnoreWords: 0.100000

				# Occurrences in word database until a word is considered rare and its influence
				# in calculating probability reduced. E.g. 1 or 2. (optional)
				RareWords: 2

Not sure what I am doing wrong. The error does not mean anything.

Could it be your external IP ("x.x.x.x") is not configured on a network interface on this fedora machine, but on a (nat) router? I would think so, given the screenshot of port forwards. The error says it cannot bind to the requested IP, so that would make sense in case of NAT. If that's the case, you could specify the 192.... address in the "public" Listener (and remove it from the "internal" Listener), and configure your external IP address in the public listener under "NATIPs".
Keep in mind that you will run into deliverability issues when you external/public IP address changes. Once you get further, you'll set DNS records (e.g. SPF) that tie your domain in with your external IP. I'm also guessing you cannot set up reverse DNS for your external IP, which is used by some mail servers to increase the "looks like spam score". Receiving email should be OK, but it's not great if your IP changes and someone else temporarily has the IP for your MX record...

I had a similar issue and as mjl said, mox expects addresses listed under IPs to be bind()able from the local machine. You can use NATIPs to indicate the routable IP, and specify the address for the local interface under IPs.
However, a bigger issue will be running an SMTP server behind a dynamic IP address; at the very least that IP range will likely be present on multiple DNSBL lists. Do you not have access to a static IP address you could use instead?

I hope this has been resolved by now, or is no longer an issue? Given the lack of activity. I'll close this issue for now, feel free to reopen if help is still needed.


connected-react-router completely eliminates component local state?

is it by design that class and functional components can't hold local state upon navigation?
If somebody can confirm it I can do a pull request on the docs, or let me know if I'm missing something and component local state can be hold between Link router navigation.
Thanks

i've been having similar problems
add a console.log to your componentWillUnmount() on the component u think will reset its state
pretty sure its just ur component being unmounted and then remounted

check if u use a anonymous function in your render method

Not having the problem now. Will check if I have it again. Thanks


Autocomplete existing sessions names on save

Closes Zeeker/sublime-SessionManager#10

Just to give you an update: I've acknowledged your PR but I haven't had the time to look at it more closely. Will do soon, you okay with that? :)


Set the baseline of a box to that of a specific line

Some text some text Some text some text Some text some text
Some text some text Some text some text Some text some text
#box[One\ Two\ Three]
Some text some text Some text some text Some text some text
Some text some text Some text some text

Typst sets the baseline of a box to the bottom text line. But I could not change it to the top text line (like \vtop in TeX).

We'll add configuration for that in the future.

Relatedly, it might be interesting to have functionality like the LaTeX xcoffins project (which gives access to both first and last baseline of box content, and allows arranging boxes based on various handles).


Devtools panel

Hello! Apologies for the delay here. I have made a few changes to add the devtools panel to tanstack query. The diff has more files than I have changed because your branch is a month old. You should first rebase from the TanStack query upstream repo before taking a look at this PR. These changes makes a few things better

Disables PIP mode in panel view
The panel can now take in a style prop that allows resizing the panel dynamically from user land
Adds an onClose callback function that can be used to hide the panel from userland
Better breakpoint handling for some sizes

Your solution is much simpler than mine, but I haven't been able to test it locally because the example I put in my pull request is missing.
Could you make a rebase of my PR as yours so that I can test that it gives the same result?

Yes! I'll work on it right now! Will update the example in an hour or two

@toofff Added examples and fixed the API guide on the docs page too. I fixed the snake_case typos too

@ardeora Nice, I'll be testing this in the next few hours

Thanks @toofff Feel free to merge it in your branch and then I can merge your branch into main!

Perfect, I'll take care of it tonight without fail.

@ardeora to merge your PR I had to do a rebase and push on your repo but I didn't have the rights.
I simply retrieved your PR locally, squshed your 3 commits into 1 and cherry-picked that commit to put me in my branch. I sorted out all the conflicts and pushed.
I simply close your pull request, all is here


throttled autosaveOnKeyup; #513

It would be nice to add an option to set the throttle time, but I'm not sure where to pull that option from the way I'm creating the throttled autosave function.

I created the autosaveOnKeyup option to differentiate from the existing autosave option. It's quite likely that some applications will want the current behavior of autosave while others may want autosaveOnKeyup.

In the change form event, I think it should also autosave when autosaveOnKeyup is true, as a safety. I recall issues in the past where keyup doesn't necessary have the final correct value, so best to save it on change, too.
Also can you change the two instances of the word "thrown" to "emitted" in the readme text?
Otherwise looks mergeable. Thanks for doing it.

Done and done :smile: No problem man, thanks for all you work on this package!

Should probably recommend trimStrings=false option in conjunction with autosaveOnKeyup, otherwise spaces may be deleted while typing.

Good point re trimStrings. I'll add that to the readme.


Added Margin property, updated example

I've added the Margin property to be able to specify different margins
Example is also updated:

Do we really need this? ClassContent="ma-4" is already pretty simple 🙂

When I use ClassContext="ma-6", the margin is, of course, applied to the content
but this is not what I prefer,
By specifying the Margin on the splitter, I can push "away" the left- and right content, which is different.

My splitter contains two MudTables,
in the left splitter content I need to use: <MudTable Class="mr-3" ... />
and in the right splitter content I need to use: <MudTable Class="ml-3" ... />
This way the splitter gets the exact amount of margin.
I can't use <MudSplitter ClassContent="m???-3" ... /> because the margin is different for both contents.

Understand, so let's think general. We can have start content class, end content class and common class. Because after the margin, users may want padding etc again. If a user don't need seperate classes, they just set common class for both contents

I'll think about it, play around with the docs. I'll get back to you.

Do we still need this after the your merged splitter PR?

Hi, I have no need for this at the moment, so I'll close it for now.


Weights to u64 + Balances Weights

This PR begins the updates to Weights in Substrate FRAME.
polkadot companion: https://github.com/paritytech/polkadot/pull/994

Use u64 for Weights

Requires creation of Fixed128 type https://github.com/paritytech/substrate/pull/5446/files
Requires update of many type definitions, tests, etc...

Set FRAME standard that 1_000_000_000_000 weight represents 1 second of compute and is 1:1 with gas in Contracts.

So 1 ns of compute is 1_000 weight

Set MaximumBlockWeight for Node and Node Template to 2_000_000_000_000 for 2 seconds of compute out of an average 6 second block time.
Introduce DbWeight type configuration in the System pallet, allowing you to define the weight of DB operations in your runtime for your selected database.
Introduce RuntimeDbWeight weight struct which easily integrates into existing Weight syntax to allow you to extend your weight definition.
Introduce weights to all extrinsics in Balances.
Increase all weights of all functions by 1_000 to keep their weight on the system mostly the same (I did allow a double of the max weight in a block, but this should be okay).
Reduced weight to fee coefficient to 1 to keep the fees of all existing pallets the same.

High level overview
Ignoring the bullet points above, the high level goal of this PR is to start to standardize the Substrate Runtime Weight system and give practical weights to extrinsics in the runtime.
Standard Weight System
Substrate has the goal to create an open and fluid Pallet ecosystem, where many developers can design and publish their pallets, and other developers can use those pallets in a clean and simple way. From a technical standpoint, we are already there, but from a financial standpoint, the Weight system has not been standardized such that different pallets from different developers would all work on the same runtime and be economically secure.
To fix this, we establish a standard definition of the FRAME Weight unit.

Weight is a u64 value
1_000 weight represents 1 nanosecond of computation on the following device specifications:

Digital Ocean: ubuntu-s-2vcpu-4gb-ams3-01
2x Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz
4GB RAM
Ubuntu 19.10 (GNU/Linux 5.3.0-18-generic x86_64)
rustc 1.42.0 (b8cedc004 2020-03-09)

Full Details
root@ubuntu-s-2vcpu-4gb-ams3-01:~# cat /proc/cpuinfo
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 79
model name	: Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz
stepping	: 1
microcode	: 0x1
cpu MHz		: 2199.998
cache size	: 4096 KB
physical id	: 0
siblings	: 1
core id		: 0
cpu cores	: 1
apicid		: 0
initial apicid	: 0
fpu		: yes
fpu_exception	: yes
cpuid level	: 13
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl cpuid tsc_known_freq pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti ssbd ibrs ibpb tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap xsaveopt md_clear
bugs		: cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs
bogomips	: 4399.99
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:
processor	: 1
vendor_id	: GenuineIntel
cpu family	: 6
model		: 79
model name	: Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz
stepping	: 1
microcode	: 0x1
cpu MHz		: 2199.998
cache size	: 4096 KB
physical id	: 1
siblings	: 1
core id		: 0
cpu cores	: 1
apicid		: 1
initial apicid	: 1
fpu		: yes
fpu_exception	: yes
cpuid level	: 13
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl cpuid tsc_known_freq pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti ssbd ibrs ibpb tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap xsaveopt md_clear
bugs		: cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs
bogomips	: 4399.99
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:
root@ubuntu-s-2vcpu-4gb-ams3-01:~# fio --randrepeat=1 --ioengine=posixaio --direct=1 --gtod_reduce=1 --name=test --filename=test --bs=4k --iodepth=64 --size=4G --readwrite=randrw --rwmixread=75
test: (g=0): rw=randrw, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=posixaio, iodepth=64
fio-3.12
Starting 1 process
test: Laying out IO file (1 file / 4096MiB)
Jobs: 1 (f=1): [m(1)][100.0%][r=12.5MiB/s,w=4388KiB/s][r=3191,w=1097 IOPS][eta 00m:00s]
test: (groupid=0, jobs=1): err= 0: pid=9576: Wed Apr  1 22:03:41 2020
read: IOPS=3304, BW=12.9MiB/s (13.5MB/s)(3070MiB/237807msec)
bw (  KiB/s): min= 2248, max=17040, per=100.00%, avg=13221.27, stdev=2214.00, samples=475
iops        : min=  562, max= 4260, avg=3305.31, stdev=553.50, samples=475
write: IOPS=1104, BW=4418KiB/s (4524kB/s)(1026MiB/237807msec); 0 zone resets
bw (  KiB/s): min=  824, max= 6000, per=100.00%, avg=4418.67, stdev=754.61, samples=475
iops        : min=  206, max= 1500, avg=1104.66, stdev=188.65, samples=475
cpu          : usr=1.03%, sys=0.14%, ctx=203171, majf=0, minf=38
IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=9.4%, 16=25.0%, 32=53.1%, >=64=12.5%
submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete  : 0=0.0%, 4=98.6%, 8=0.1%, 16=0.0%, 32=0.0%, 64=1.4%, >=64=0.0%
issued rwts: total=785920,262656,0,0 short=0,0,0,0 dropped=0,0,0,0
latency   : target=0, window=0, percentile=100.00%, depth=64
Run status group 0 (all jobs):
READ: bw=12.9MiB/s (13.5MB/s), 12.9MiB/s-12.9MiB/s (13.5MB/s-13.5MB/s), io=3070MiB (3219MB), run=237807-237807msec
WRITE: bw=4418KiB/s (4524kB/s), 4418KiB/s-4418KiB/s (4524kB/s-4524kB/s), io=1026MiB (1076MB), run=237807-237807msec
Disk stats (read/write):
vda: ios=785372/262750, merge=0/86, ticks=178704/44878, in_queue=15464, util=95.25%

With this definition, we give the default Substrate runtime 2 seconds of total block compute time (2_000_000_000_000 Maximum Block Weight), which is 1/3 of the 6 second total block time of the default substrate node. This allows for delay caused by network propagation, etc...
DbWeight Usage
With this definition of Runtime Weight, we now need to define the different weights of the different extrinsics in the runtime.
We have found that the underlying DB has a significant impact on the overall performance of the runtime. Since Substrate is a fully modular framework, we should expect that different chains may choose to use a different DB layer. As such we have integrated DB performance directly into the weight calculation of extrinsics.
An extrinsic weight should be calculated as:
extrinsic_weight =
    computation_and_memory_weight +
    num_unique_db_reads * db_read_weight_factor +
    num_unique_db_writes * db_write_weight_factor

Here we separate out any general computation and memory usage from the raw read/write db operations that an extrinsic can invoke.
Measurement of the read/write operations of an extrinsic can be measured empirically by creating benchmarks and using trace logging from the benchmarking and database layers.
--log state-trace=trace,benchmark=trace

NOTE: We only count unique read/write operations for that block as part of the extrinsic weight. Things like the sender nonce, block number, event storage, etc... are assumed to be updated every block, and does not need to be included as a unique read/write operation for that extrinsic.
Since they are already accessed once per block (at least), we can treat them as part of the Runtime Storage Overlay, which is included as part of the computation/memory usage weight.

Then the runtime developer can define a single global DbWeight configuration trait in FRAME System to define the cost of reads and writes for their respective database.
// In this example each read operation an extrinsic performs adds 100 weight, while
// each write operation adds 1000.
parameter_types! {
	pub const DbWeight: RuntimeDbWeight = RuntimeDbWeight {
		read: 100,
		write: 1000,
	};
}

Computation and memory weight can be calculated using the same benchmarking framework, but using the in-memory DB, isolating the computation + memory weight from any effect that the DB may have.
Using these two pieces of information, a user can then define the weight of their extrinsic like so:
// Transfer has (1 read, 1 write) to the underlying runtime DB, and takes 200 microseconds
// to execute with an in-memory db.
#[weight = T::DbWeight::get() * (1, 1) + 200_000_000]
pub fn transfer(
	origin,
	dest: <T::Lookup as StaticLookup>::Source,
	#[compact] value: T::Balance
) {
	let transactor = ensure_signed(origin)?;
	let dest = T::Lookup::lookup(dest)?;
	<Self as Currency<_>>::transfer(&transactor, &dest, value, ExistenceRequirement::AllowDeath)?;
}

Where a tuple of (read, write) can simply be multiplied by the pre-defined T::DbWeight, and added to any base computation and memory weight.
By default, this weight as assumed to have DispatchClass::Normal and PaysFee = true. Any more complex weight definition can use more verbose syntax such as FunctionOf.
Balances Weights
We have created and ran benchmarks on all pallets as described above. The results can be found here: https://www.shawntabrizi.com/substrate-graph-benchmarks/
Extracting the data for just the Balances pallet we have the following:

Reads
Writes
Computation
Notes

transfer
1
1
~200 µs
Assumed that sender is already in overlay and updated for the block, so only recipient storage item gets read and written to.

set_balance
1
1
~100 µs

force_transfer
2
2
~200 µs
Exactly the same as transfer but sender is not assumed to be in overlay.

transfer_keep_alive
1
1
~150 µs
Computation is slightly less than transfer because the sender account is never killed.

The weights of the Balances pallet has been updated to reflect this.

Set FRAME standard that 1_000_000_000 weight represents 1 second of compute

This is fine, but we should be clear that this only holds in the impossibly specific circumstances we have now:

with the current rustc,
and libraries like wasmtime, rocksdb, libc, ...,
on a specific piece of hardware,
running a particular OS with specific updates.

In general, it will not hold and we will need to rebalance the weights over time, likely with every major version update. However the idea that 1 unit of weight === 1 ns is, I think, very useful since it allows many different chains with their own blocktimes to make use of the same underlying weights easily.

However the idea that 1 unit of weight === 1 ns is, I think, very useful since it allows many different chains with their own blocktimes to make use of the same underlying weights easily.

I really like the idea. However, for the contract modules it would be very helpful to scale up the resolution. In my opinion it would be ideal to unify the concept of gas and weight. That means we describe the costs of the individual wasm instructions in weight.
Having the smallest unit be 1ns is to coarse. We can assume that most CPUs are > 1GHZ (1ns per cycle) that have an effective instruction count per cycle that is > 1.
One 1 weight ==  1 picosecond would be better. Of course we can work with a scaling factor but that would make things more complicated than just using bigger numbers.

@athei @pepyakin I have added an extra 1_000 to all weights, so 1 ns = 1_000 weight

FWIW I'd like to make (the distinction between) reads and writes more explict. I don't know about others, but I'd be worried about mixing up the order or being confused upon reading it.
Not sure what the "perfect" syntax would be, but what about something in the direction of:
#[weight = T::DbWeight::reads(1) + T::DbWeight::writes(2) + 200_000_000]
or
#[weight = T::DbWeight::reads_writes(1, 2) + 200_000_000]

FWIW I'd like to make (the distinction between) reads and writes more explict. I don't know about others, but I'd be worried about mixing up the order or being confused upon reading it.
Not sure what the "perfect" syntax would be, but what about something in the direction of:
#[weight = T::DbWeight::reads(1) + T::DbWeight::writes(2) + 200_000_000]
or
#[weight = T::DbWeight::reads_writes(1, 2) + 200_000_000]

We can rename it to T::DbWeightReadWrite but tbh I think it is fair to expect this to be looked up and omit it in favour of brevity.

#[weight = T::DbWeight::reads(1) + T::DbWeight::writes(2) + 200_000_000]

This api looks pretty good to me actually, let me try.

@apopiak best I can do is something like:
#[weight = T::DbWeight::get().reads(3) + T::DbWeight::get().writes(2) + 10_000]
fn f2(_origin) { unimplemented!(); }

#[weight = T::DbWeight::get().reads_writes(6, 5) + 40_000]
fn f21(_origin) { unimplemented!(); }

with:
/// The weight of database operations that the runtime can invoke.
#[derive(Clone, Copy, Eq, PartialEq, Default, RuntimeDebug, Encode, Decode)]
pub struct RuntimeDbWeight {
	pub read: Weight,
	pub write: Weight,
}

impl RuntimeDbWeight {
	fn reads(self, r: Weight) -> Weight {
		self.read.saturating_mul(r)
	}

	fn writes(self, w: Weight) -> Weight {
		self.write.saturating_mul(w)
	}

	fn reads_writes(self, r: Weight, w: Weight) -> Weight {
		let read_weight = self.read.saturating_mul(r);
		let write_weight = self.write.saturating_mul(w);
		read_weight.saturating_add(write_weight)
	}
}

I agree this API is probably better overall.

LGTM (besides being slightly verbose), cool!

Just throwing out some ideas.
Instead of #[weight = T::DbWeight::get().reads_writes(1, 1) + 200_000_000]
How about
#[weight = T::DbWeight::add_reads_writes(1, 1).add(200_000_000)]
or
#[weight = T::DbWeight::add_reads(1).add_writes(1).add(200_000_000)]
or
#[weight = T::Weight::add_db_reads(1).add_db_writes(1).add_ns(200_000)]
or
#[weight = Weight::add_db_reads(1).add_db_writes(1).add_compute(200_000)]
or
#[weight = db_reads(1)  + db_writes(1) + compute(200_000)]
and for later two syntax, pallet-system convert this struct Weight { read, write, compute } to actual weight number using System::DbWeight & System::ComputeWeight

@xlc happy to make any changes to the syntax (I actually expect that things will be a bit more complicated anyway as we put weights on non-constant functions), but can you provide some context to what is gained for you with the change?

@xlc happy to make any changes to the syntax (I actually expect that things will evolve anyway as we put weights on non-constant functions), but can you provide some context to what is gained for you with the change?

Lets take any feedback though about this syntax into a new PR. Need to keep moving forward here.


SnapDropZone highlighter falls to floor if object with joints are used as highlighter object

Environment
VRTK 3.3.0 alpha
Unity 5.6.3
Steps to reproduce

Create an interactible object that has some kind of joint setup
Assign that as the highlighter object for a snap drop zone.
Since it has joints, it will fail at removing the RigidBody because the Joint depends on it.
This will result in a Highlighter object with a RigidBody on it that will fall to the floor when playing the game.

One solution would be to first make sure to get rid of all the joints before getting rid of the Components.

Fixed with https://github.com/thestonefox/VRTK/pull/1518


Missing link to sample project

[Enter feedback here]
There is no link to the sample project

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

ID: fbf41872-597e-d846-0e54-e6e84f00ac72
Version Independent ID: 19da55b4-6887-cb39-a87e-bb71c433de8b
Content: Getting Started with EF Core and Xamarin - EF Core
Content Source: entity-framework/core/get-started/xamarin.md
Product: entity-framework
Technology: entity-framework-core
GitHub Login: @codemillmatt
Microsoft Alias: masoucou

Please ignore. I found the link in the docs.


kubectl get es (doesn't work)

Hello gentelmen,
After switching to External-Secret-Operator the shortcut
kubectl get es
doesn't work and we need to each time write
kubectl get externalsecrets.external-secrets.io
which is very annoying and we want to come back to the previous solution k get es.
Do you know any solution to this case. I've seen that "shortcut: - es" is set in the ESO CRD yaml so it should work but unfortunately does not.
Best regards,
karr1gan

Hey @karr1gan that's probably due to having multiple resources installed that have es shortname.
Can you quickly run the following command? That should just print the following:
$ kubectl api-resources | grep " es "

externalsecrets                   es           external-secrets.io/v1beta1             true         ExternalSecret

Hej, the output of this command might be found below:

You have two crds installed that both claim the es short name (i guess youre migrating from KES?), thats why you have to specify the full name.

We have already migrated and deleted all the staff associated with KES so it should be only one entry ESO. How may I delete this resource?

We have already migrated and deleted all the staff associated with KES so it should be only one entry ESO. How may I delete this resource?

you can do this with kubectl delete crd externalsecrets.kubernetes-client.io

thanx mate! 🍺

I'm closing this issue now! Feel free to reopen it, though!


Pingdom - Synthetic checks

Tasks
Need to get Pingdom alerting enabled for the report services.

[x] Configure QA checks
[x] Configure Prod checks

Outcome
We will receive notifications and potential pages if the report services fail.

If QA fails we want notifications to hit the #eng-monitoring channel
If production fails we want notifications + a Pager Duty incident

Done. Checks have been created for QA and Prod.


How to handle authentication with react-static?

Thanks @tannerlinsley for open-sourcing your work, I just watched your talk :) You explain how static sites are super performant and aren't really limited to data that never changes, as any data change can trigger auto-redeploys and you can also query live data client-side (e.g with Apollo GraphQL).
However even if dynamic data isn't an issue, in the absence of an origin server, could you say what is your advice regarding pages which require user access control, like most web apps do?
Thanks!

React-Static behaves like a usual react app. Which is just front end. If content is private, there needs to be some Auth checking. We for example, use Firebase Hosting for the static part and the Firebase JS SDK for everything regarding non public with authentification. Just like a normal client side app.
https://firebase.google.com/docs/hosting/

And regarding live data, static content is for SEO and initial page load. If your content updates so quickly, you can have your CI build your website and deploy it every half an hour. As soon users access the site, they contact (normal react app) the same endpoint with the real-time data. React would automatically update the page based of the static pre-load. And that only happens really ones, since all the js is cached for recurring users and a single page for users who interact.
So it’s rather a question if you need to provide static content in real time to google or people without JavaScript. If that is the case, than you might just run a node.js Server with Express that serves HTML on a request basis.

My content doesn’t update quickly, but I do have various pages which are subscription-only. So I wonder what to do for those. I’d much rather avoid having a server if I can avoid it.
I don’t plan to use Firebase but instead a GraphQL backend where needed, probably the newly open sourced Graphcool framework.
Anyway I guess the only solution is to load any private data in componentDidMount instead of pre rendering it, meaning that I lose the performance benefit of static rendering for those pages.
Considering that @tannerlinsley insisted so much in performance in his talk I thought he might have some precise ideas to solve this dilemma.
Another idea could be CloudFlare service workers which would allow to check auth at the CDN edge. Or Netlify also has access control but it’s just super expensive.

So IMO, I think you won't be able to static render auth-only pages without considering some other things/questions:

If you statically render an auth-only page, it will be publicly available, since it's just an HTML.
Does google really need to know about these pages? If it's subscription only, it's likely you could simpy render a placeholder that describes the content for SEO and for your users, then require a login.
If the content is small enough, and not changing that often, you could easily embed the full content in your app, but choose not to display it until runtime, AFTER a user has authed (you could use some serverless auth like firebase or https://auth0.com/)

Okay thanks. Basically I wanted to check my logic and see whether the fact that I have subscription-only pages meant that I should avoid a static rendering system and go for something like Next.js instead.
But looks like I can stop worrying about the matter so much and just load the data after having done client-side auth. As you mentioned I don’t care much right now about SEO for those pages.
Thanks a lot for your time :)


0.12.0 - r.client.List does not compile due to dependency problem in go.sum

Bug Report
What did you do?
Created an fresh operator with
operator-sdk new foo --repo github.ibm.com/bar/foo
What did you expect to see?

go.sum containing sigs.k8s.io/controller-runtime v0.3.0 only
r.client.List should be callable with new signature expected with controller-runtime v0.3.0
operator sdk build should succeed with a operator caling r.client.List

What did you see instead? Under which circumstances?

go.sum does contain
sigs.k8s.io/controller-runtime v0.1.10/go.mod as first entry for controller-runtime

...
sigs.k8s.io/controller-runtime v0.1.10/go.mod h1:HFAYoOh6XMV+jKF1UjFwrknPbowfyHEHHRdJMf2jMX8=
sigs.k8s.io/controller-runtime v0.3.0 h1:ZtdgqJXVHsIytjdmDuk0QjagnzyLq9FjojXRqIp+dU4=
sigs.k8s.io/controller-runtime v0.3.0/go.mod h1:Cw6PkEg0Sa7dAYovGT4R0tRkGhHXpYijwNxYhAnAZZk=
...

r.client.List still expects "old" signature
operator-sdk build fails

Environment

operator-sdk version:
0.12.0 (brew)

go version:
go1.13.4 darwin/amd64

Kubernetes version information:
Does not matter

Kubernetes cluster kind:
Does not matter

Are you writing your operator in ansible, helm, or go?
go

Possible Solution
Add replacement clause
sigs.k8s.io/controller-runtime => sigs.k8s.io/controller-runtime v0.3.0 to go.mod
Additional context
go mod graph
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>

HI @mhenke1,
Thank you for raise it. You raised here 3 concerns/issues. Following the details and some questions.

NOTE: I try to check them in the master branch. After your answers, I will check the 0.12 as well.

[X] go.sum containing sigs.k8s.io/controller-runtime v0.3.0 only
This one I could reproduce/check it. OK

[ ] r.client.List should be callable with new signature expected with controller-runtime v0.3.0

I created a new project + API + controller and could do it as follows. Is it that you are trying to do? Could you provide your code impl?
	// Update the Memcached status with the pod names
	// List the pods for this memcached's deployment
	podList := &corev1.PodList{}
	listOpts := []client.ListOption{
		client.InNamespace(found.Namespace),
		client.MatchingLabels(labels),
	}
	err = r.client.List(context.TODO(), podList, listOpts...)
	if err != nil {
		reqLogger.Error(err, "Failed to list pods.", "Memcached.Namespace", found.Namespace, "Memcached.Name", found.Name)
		return reconcile.Result{}, err
	}

[ ] operator sdk build should succeed with an operator calling r.client.List
I could build it successfully. Could you provide the steps that are you following to reproduce some issue as the issue that you are facing?

@mhenke1 The require block in go.mod declares the minimum acceptable version of each of the listed dependencies for the module defined by that go.mod. So in this case, since controller-runtime v0.3.0 is listed in your project's go.mod file, you are guaranteed that the resolved version will be at least v0.3.0 and you are guaranteed that it will be less than v1.0.0 since semver dictates that v1 is not backwards compatible with v0.
This section of the Go wiki describes how this works: https://github.com/golang/go/wiki/Modules#version-selection
I also tried to reproduce the issue and was unable to.

I am closing this one as not reproducible.
However, please feel free to re-open if you think that is required.


Error when breaking leaves

This error is printed in the console when I break a leaves block.
http://pastebin.com/FeqNJB5a
Also happends with no mods installed (only spongeforge)
EDIT: This seems to only happen when I run a test server in intellij

I can no longer reproduce this on my server, so I guess it got fixed.


shutdown error.

I'm getting the following error when I try to shutdown boxupp
./shutdown.sh: line 17: $'\r': command not found

Hi
Sorry For the late. I need some information regarding to your query. I need to know which environment you are using like Mac. Linux etc.  And please share your script file with me.

I'm on ubuntu 14.04 Linux mint.

I don't see your e-mail address. How do you want me to send you a link to the file you requested

Thanks for the reply. Could you please send the 'shutdown.sh' script over
mail at<EMAIL_ADDRESS>On May 10, 2015 8:14 AM, "etuitiveapps"<EMAIL_ADDRESS>wrote:

I don't see your e-mail address. How do you want me to send you a link to
the file you requested
—
Reply to this email directly or view it on GitHub
https://github.com/BoxUpp/boxupp/issues/13#issuecomment-100574646.

Just finished sending it.


display error in depedency

Great project!
but...
It would be nice to see more than: please install depedency.
It takes me time to find this error:
can't activate net-ssh (~> 2.1.4, runtime) for ["fog-1.0.0"], already activated net-ssh-2.2.1 for ["net-scp-1.0.4", "fog-1.0.0"]
Thanks

it's a "canonical" error spewed by bundler. running with bundle exec [command] makes it go away, usually ;)


initial doc for variables

Nice! We've definitely hit the Build.* vs. Release.* issue with the packaging-related tasks, so I'm excited to get to a common variable future :).

@TingluoHuang

Not yet mentioned: new "Pipeline.ArtifactsDirectory", "Pipeline.DefaultSourcesDirectory", and a few others in my head. TODO.

Not mentioned yet: putting some values into expression context and letting customers opt into them.


Refactor and convert project to a Maven multimodule project and sync with Spring Petclinic Rest project

This PR introduces a major rework of the Spring PetClinic ReactJS version, converting the project into a multimodule Maven setup, with two distinct subprojects: spring-petclinic-reactjs-client and spring-petclinic-rest. The spring-petclinic-rest subproject is integrated as a Git submodule, allowing for smoother backend updates without duplicating code, and maintaining stability by locking specific versions when needed.
My main focus is on the ReactJS client, which has been significantly enhanced with modern technologies such as React v18, React Admin, Typescript, and Vite.js. While some CRUD functionalities are not yet fully implemented due to pending issues in the spring-petclinic-rest repository, this structure lays the groundwork for a scalable and maintainable application. Once the REST project issues are resolved, the corresponding client-side updates will be added.
This PR should be related to #26.
Also, I'd like to thank @michaelisvy for their early collaboration. Im open to discuss about any aspect of this new form. I hope you'll like it.

While some CRUD functionalities are not yet fully implemented due to pending issues in the spring-petclinic-rest repository, this structure lays the groundwork for a scalable and maintainable application.

Hi @firasrg could you please reference or create in the spring-petclinic-rest project  the issues you are talking about?

Hi @arey ! Ive mentioned one of them in README file, the issue ive created  by myself :

(like fetching Pets of a specific Owner. Currently, there is an opened issue about this), these will be addressed as soon as the backend fixes are made (by community), ensuring that the client-side work can proceed smoothly.

Hi @firasrg the issue https://github.com/spring-petclinic/spring-petclinic-rest/issues/145 has been fixed
In this PR, see some conflicts taht must be resolved.

Hello @arey ! Good news, so I'm going to update the spring-petclinic-rest submodule and check related scenarios. As for the conflicts, as I'm changing the full repository into something else 100% uncompatible with the original, im going to accept my changes only

Hello again @arey ! ive made some new updates, would you like to take a look please? It's worth noting that it's crucial for repository owners or maintainers understand the whole approach applied. I'd invite @nilshartmann to join.

Hi @firasrg the github actions CI failed. Thus we focus on the spring-petclinic-reactjs-client  module I propose to replace the maven build by a npm one.
I don't have any React skills so I can't really give you any feedback. Thus I let @michaelisvy and @nilshartmann have a look.

Hi @firasrg ,
thanks for your effort and "sorry" for beeing so late with commenting.
I like the git submodule idea to include the "original" spring-petclinic-rest example.
Actually I'm not sure if using react-admin as base is a good approach. While I think react-admin has its benefits, I'm not sure, how many people would actually use it in a "real" application. I think using a stack with React Router and TanStack Query would be more mainstrean and more realistic for real applications nowadays.
To answer this question, we might discuss what the overall idea of this project is (a question that also belongs to "my" original version of the "React Petclinic"): from a Spring perspective the only thing relevant is the (REST) API. Consuming this api is not related to spring, but specific to React, Angular, whatever framework. My idea was to provide an example for people that are more or less new to frontend developement with React (and also to build a "competitor" to the angular example 😉) providing them with best practices, a base for getting started with own projects etc. That's the reason why I think, React Router/TS Query would be a better fit for this project. Using React Router/TS Query we could also show some newer React features like Suspense, advanced caching and pre-fetching with TS Query and someday maybe even some serverside features using React Router v7 (ex Remix). Beside of that I wonder if it would make sense to add spring security to the example, for example with Spring Auth Server or Keycloak. That would make the example even more realistic and could help people understand how to implement such a cruictial feature.
What do you think?
(btw. in a new code base I wouldn't use TypeScript enum anymore, but go with different approaches. See here for example: https://www.totaltypescript.com/why-i-dont-like-typescript-enums. But that's not a big deal, if you prefer enum, there's no need to remove it, I think)

Thank you for your feedback! I appreciate the suggestion to use only and natively React Router and TanStack query. While I agree that both are sufficient tools for handling the app, I chose React Admin for this rework for several important reasons:

Full Feature Set: It provides builtin support for CRUD operations, form handling (using React Hook Form internally), layout management, and internationalization—all of which are important for Spring Petclinic project (i guess). Using React Router and TanStack Query alone would require additional libraries and custom code, leading to complexity and redundancy.

Customization: Like Spring Boot, React Admin allows extensive customization. We aren’t limited to its out-of-the-box features. Custom routes, forms, or data providers can be integrated smoothly, ensuring we maintain flexibility where needed without sacrificing the benefits of a well-structured app!

👉 React Admin offers the same rapid development experience for the frontend as Spring Boot does for the backend—balancing speed and flexibility. I believe this approach will keep the project scalable and maintainable, while still allowing for custom configurations when necessary.
TBH I was expecting you to be happy for using this framework @nilshartmann. If you still feel not ok with this approach even after reading this message, then just tell me so I cancel this PR.

Hi @firasrg the github actions CI failed. Thus we focus on the spring-petclinic-reactjs-client  module I propose to replace the maven build by a npm one.

@arey I don't see a reason to replace maven build by npm. Knowing that the npm build is managed within maven. I wanted to keep the project with Maven as it's the original build tool as as there is another Maven subproject (which is the git submodule). Ive checked the error, it seems that the problems is not related to the client module, but to the submodule:
Error: Child module /home/runner/work/spring-petclinic-reactjs/spring-petclinic-reactjs/spring-petclinic-rest/pom.xml of /home/runner/work/spring-petclinic-reactjs/spring-petclinic-reactjs/pom.xml does not exist

@firasrg I'm not very familiar with git sub-modules. Like @nilshartmann I think it's a good idea. Could you split this Pull Request in order to merge the submodule part?
I'm ok to keep the maven build. I wasn't aware that the java backend would still need to be built.

@firasrg maybe you need to explicitly need to tell the github checkout action to also checkout the submodule? https://stackoverflow.com/a/65091631/6134498

maybe you need to explicitly need to tell the github checkout action to also checkout the submodule

@nilshartmann done ! It seems that such change requires an apporval from repository maintainers. As for the work done, I'd like t know your final decision about using React Admin please

@arey I just noticed that build has failed, it seeems that the config i added isn't useful, so im going to do a second update now, it could work.

@firasrg  for my point of view, the aim of this demo application is to explain to junior React developers how to build a React application using best practices and without a structuring overlay like React Admin.
It's a bit like saying that the Angular fork is based on PrimeNG. This could be a dedicated repository (or branch).

@arey thank you for your feedback. I think that Spring PetClinic is also meant to help various levels of developers, especially those coming from other tech stacks.
Additionally, when I read the introduction of this project, I find that it's designed to show good practices:

The Spring PetClinic is a sample application designed to show how the Spring stack can be used to build simple, but powerful database-oriented applications.

What's the definitiong of "simple but powerful" here please ?
As I mentioned before, React Admin doesn't add complexity, it streamlines the React dev by reducing redundancy, time-consumming configurations and boilerplate. It's a well-organized opiniated framework that applies the principal Convention over Configuration. It's doing same as what Spring Boot does for the backend, serving as an entry point for juniors (or newcomers) to Spring ecosystem. So, why we apply this practice only in backend ?

Spring Boot provides a quick (and opinionated) way to create a production-ready Spring-based application. It is based on the Spring Framework, favors convention over configuration, and is designed to get you up and running as quickly as possible.

It's important to consider that the React ecosystem has significantly evolved these recent years. It's no longer just about creating some components and see magic UI interactions. Today, React involves multiple tools, typed languages, high practices, and new syntax, which can make React dev more complex without some bootstrap. React Admin also offer a flexible and extensible solution, simplifying maintenance, and keeping the project easy to read, scalable, and open to all levels

@firasrg for my point of view, the aim of this demo application is to explain to junior React developers how to build a React application using best practices and without a structuring overlay like React Admin. It's a bit like saying that the Angular fork is based on PrimeNG. This could be a dedicated repository (or branch).

I tend to agree here. While React Admin for sure is a valid option when building React applications it's far from being mainstream (have a look at the npm download stats). Again: that does not say anything about the quality or the pros and cons of RA.
On the other hand, libs like React Router or TanStack Query are quite popular an can be considered something like a "de-facto" standard for new React applications (they are even mentioned in the official React docs). To some extend I think this is also true for react-hook-form and zod. And I think as an example application here, we should follow a mainstream path being as unopionated as possible.
Having said that, I really appreciate your efforts here and wonder if @arey idea ("This could be a dedicated repository (or branch)." would be an option.
What do you think?

@nilshartmann What if I tell you that React docs itself recommends to use a React framework for a new project ?

You can definitely use React without a framework—that’s how you’d use React for a part of your page. However, if you’re building a new app or a site fully with React, we recommend using a framework.

FWIW, I've worked with ReactJS for years and have been in touch with developers from many levels, just to say that I know what I'm doing. However, if you still don't agree on using a framework like this one after all the details and questions I've given you, I'll have no choice but to refactor the client app, removing the framework and re-founding it to a traditional React app

@firasrg The term "framework" there refers to a framework like Next.js, Remix or Gatsby. In other contexts those frameworks are also called "meta frameworks" because they're providing build tools, bundling, serverside routing and rendering and more. (I think somehow very carefully comparable in the way we call Spring Boot a "framework").
And again: this not about React Admin itself. I just want to raise the general question if we want to go with a more "mainstream" or "opinionated" way here.

The term "framework" there refers to a framework like Next.js, Remix or Gatsby

RA is very similar to Gatsby and Remix.

I think somehow very carefully comparable in the way we call Spring Boot a "framework"

It's the defacto today.

I just want to raise the general question if we want to go with a more "mainstream" or "opinionated" way here.

And no problem, as I said previously, im going to have to refactor stuff, uninstall RA and try to release a basic React app with some known tools including TQuert and ReactRouter, is that ok ? @nilshartmann

@firasrg

I just want to raise the general question if we want to go with a more "mainstream" or "opinionated" way here.

And no problem, as I said previously, im going to have to refactor stuff, uninstall RA and try to release a basic React app with some known tools including TQuery and ReactRouter, is that ok ? @nilshartmann

Sure! Please let me know if I can help.


Support long press button in screenshots generation

Description
The goal is to support long press button in screenshots generation
Changes include

[ ] Bugfix (non-breaking change that solves an issue)
[*] New feature (non-breaking change that adds functionality)
[ ] Breaking change (change that is not backwards-compatible and/or changes current functionality)
[ ] Tests
[ ] Documentation
[ ] Other (for changes that might not fit in any category)

Codecov Report
Attention: 3 lines in your changes are missing coverage. Please review.

Comparison is base (5402367) 69.33% compared to head (3562e5d) 69.09%.
Report is 4 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #453      +/-   ##
==========================================
- Coverage   69.33%   69.09%   -0.24%
==========================================
  Files          11       11
  Lines         874      877       +3
==========================================
  Hits          606      606
- Misses        268      271       +3

Flag
Coverage Δ

unittests
69.09% <0.00%> (-0.24%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Files
Coverage Δ

lib_nbgl/src/nbgl_obj_pool.c
36.70% <0.00%> (-1.45%)
:arrow_down:

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


BelowIntrinsicValue exception for Deep in the money put

Hi,
I am using your package to calculate all the greeks and also the IV for deribit btc usd options. but I am facing issues with evaulating deep in the money puts or out of the money calls.
I am getting the exception : BelowIntrinsicValue. kindly help me how can I overcome this exception which is coming from the code lets_be_rational.py
Regards
Shubha

First of all, it is always a good idea to read Peter Jaeckel's paper "Lets Be Rational," as this can clear up some misunderstandings.  Next, please note that lets_be_rational is only for European style expiration.  If you are dealing with American options, you will often encounter prices that simply don't make sense in the European context.
There are prices which simply don't make sense, and for which no implied volatility can be calculated.  Having said that, such prices do occur in the wild, and we often just have to deal with them.  How the exceptions are handled vary from one data vendor to another.  Many will simply set the IV to zero.  The alternative is to sanitize the prices using your model of choice.  (I often use SVI due to its ease of calibration).  Hope this helps.
Larry


build_docker_xxx fails

A number of build_docker_xxx jobs failed in Jenkins:
https://grpc-testing.appspot.com/job/gRPC_interop_pull_requests/12851/console
FAILED: build_docker_go [ret=1, pid=31428]
FAILED: build_docker_http2 [ret=1, pid=25143]
FAILED: build_docker_java [ret=1, pid=25145]
FAILED: build_docker_python [ret=1, pid=25229]
FAILED: build_docker_http2 [ret=1, pid=25231]

build_docker_python still failing in master:
https://grpc-testing.appspot.com/job/gRPC_interop_master/12938/console
@adelez could you help triage? 😃

@adelez actually never mind as it is for python...

This seems to be behind the failures of gRPC_interop_master #13313 through #13331. It is almost certainly a test infrastructure issue; it is definitely not a gRPC Python issue.


Validate documentation site consumption of library in tests

User story:

Problem: Contributor does not list component in package.json. Contributes are seeing docs.json.

Mimic components-doc.json's build:docs behavior and build site consumable doc at test and npm script

Problem: Contributors miss adding entry in site stories array

move example links to docs.json and centralize doc relationship there
Test if they exists

Make website URL slugs singular and add plurals to re-direct table. See routes.js in site repo: <Redirect from="breadcrumbs" to="breadcrumbs/" />
Problem: Variables work in Storybook, but are undefined in site examples since the site examples only have access to components/index.js exports

Scan docs.json examples and compare to what's in index.js. I'm unsure about this one.

Possible issues:

Currently site-stories import raw Node/CommonJS imports: require('raw-loader!@salesforce/design-system-react/components/slider/__examples__/base.jsx'),

New docs.json
{
	"component": "setup-assistant",
	"status": "prototype",
	"display-name": "Setup Assistant",
	"SLDS-component-path": "/components/setup-assistant",
	"dependencies": [
		{
			"component": "step"
		}
	],
	"url-slug": "setup-assistant",
	"site-stories": [
		{
			"name": "Base",
			"file-path": "__examples__/base.jsx"
		}
	]
}

Discussed finalized solutions for these problems:

Renname all docs.json files to component.json
Remove components from package.json
Remove components/site-stories.js & storybook-stories.js files
Site stories and storybook stories will instead be listed in individual component.json files
Have a "priority" key that prioritizes certain components over others when running tests that can be changed from false to true to aid development
Make website URL slugs singular and add plurals to re-direct table. See routes.js in site repo:
Automatically add components to components/index.js. Will need additional keys for this in component.json

How to pull in all stories based on file name into Storybook
https://github.com/storybookjs/storybook/issues/3847#event-1767083868

Removing storybook-stories.js is not a priority. I think the best way to approach for this is that config for a component needs to happen in one file, no matter how complicated that file is. If the config is one file then contributors will look at other components and figure out the config, therefore the source is self-documenting.


open.lbry.com > lbry.tv "open in app" option

Allow users to open lbry:// links in desktop/android app if accessed from open.lbry.com
param: ?src=open

Also, see replacement rules in https://github.com/lbryio/open.lbry.com/blob/master/web/redirect.html#L167 that should be duplicated - mainly the # to : conversion. Also, the =& hackaround was for the rewards link, which comes in as: https://lbry.tv/?rewards=&utm_medium=email&utm_source=next-day?src=open (internal apis bug)
but right now lbry.tv/?rewards isn't working, so we will want to redirect that to lbry.tv/$/rewards (same for any other ? links).


Moving from autograd to jax

The next generation autograd is now called jax, and is built by the same guys who built autograd + more, with a somewhat nicer API. One other attractive feature is the ability to JIT compile functions to CPU, GPU and TPU!
As such, I'd like to propose switching over from autograd to jax in requirements.txt. Naturally, this is just a suggestion; I simply thought I'd check out the repo having seen @mattjj star it.
cc: @mattjj, @dougalm

Thank you @ericmjl for your recommendation! I have begun digging deeper into jax and I see it would be beneficial to switch at this initial development stage of MiraPy. 😄 It seems easy to switch from autograd so why not?!


Improve log format and add message module

Coverage remained the same at 30.428% when pulling 162a0ecdf1ea49e0785e448a7d412611cfa0b2a6 on dev into 1e1ac7deaf8c29fefc5fa9f83dedbc2cfd83ca48 on master.


Fix back button in dev's document viewer

Has related PR in cudl-viewer

Closing PR as it contains commit history I'd rather not bring into the dev branch.


Add confirmation

Releasing is an important process that you don't do all the time, so there could be a confirmation like Changing version 1.2.4 -> 1.3.0? [y/n].

I was thinking that I want the configuration to be --dry-run is the default, and it requires a switch to really do it.

Confirmation is added to latest beta :-)


Conflicting versions of React, package.json suggestions

Hi there,
I am using React 0.13 beta on a small project and when I tried to pull react-hammer in, I had conflicting problems since I am using CommonJS with browserify and this allowed react-hammer to still use React 0.12 although my project is in 0.13. The end result is a mess of warnings and weird exceptions.
As far as I know, the best way to solve this is to move react on package.json from dependencies to peerDependencies and also making sure the supported versions are correct. So far, react-hammer is 100% compatible with react 0.13 as far as I tested.
If anyone else is having this problem, one workaround is to require the dist version directly. Here is how I am requiring react-hammer right now:
var Hammer = require('react-hammerjs/dist/react-hammerjs');

The drawback for this workaround is this will only work when React is global, which works for me since I already have  --insert-global-vars React on my browserify configuration.

Hi, and apologies for the delayed response.
I've implemented an alternative solution to this, see #7
I've also published it as a new version v0.1.4, please let me know if that solves the problem for you.


Get match times from TBA API

Pull match timing data from TBA API in fetchCompetitionSchedule
Store in Redis cache for 60 seconds
Send out to users as desired

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

30 of 34 (88.24%)  changed or added relevant lines in 3 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.6%) to 63.884%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/db-handlers/fetchCompetitionSchedule.ts
13
17
76.47%

Totals

Change from base Build<PHONE_NUMBER>:
0.6%

Covered Lines:
640

Relevant Lines:
957

💛  - Coveralls


forced option for bookcut list abruptly ends with no downloads

When using
$ bookcut list --forced -f path/to/txt -d path/to/destination
the program will just end with no error or further information or output

Thanks for the report.
Issue solved. Just an indent error I made!
Please update to version 1.2.3 with pip.


Section B.3.1.5, FCS_TLSC_EXT.1.8 (and others)

FCS_TLSC_EXT.1.8 (and others) prohibits use of out-of-band provisioned pre-shared keys while FCS_IPSEC_EXT.1.13 still allows use of such pre-shared keys. Please explain why the low entropy concerns described in the application note are only applicable to one use case.
Selectively prohibiting PSK but only with (D)TLS would favor vendors that traditionally implemented secure channels with IPSec over vendors that rely on (D)TLS.
Recommend against selectively disallowing the use of PSK with (D)TLS as impact of such change on ability to claim TLS with various technology-specific modules (e.g., WLAN) should be further considered.
Suggested change:
One possible solution is adapting FIA_PSK_EXT.1 Pre-Shared Key Composition from WLAN modules. See Section B.2 in:
https://www.niap-ccevs.org/MMO/PP/MOD_WLAN_AS_v1.0.pdf

TLSWG sees TLSv1.3 as a new feature and did not add legacy selections to the SFRs. This comment is on hold for future discussion.

The ND iTC TLS working goup is working in conjunction with NIAP's TLS TC so that the next version of the NDcPP can point out to NIAP's FP's for TLS and X509.


Docs: Monolithic architecture and its challenges

linter is failing on files outside of this PR, will fix in the appropriate branches


Add currentVersion() step

Any chance that I can use this plugin to easily determine the current version?  Something like the following would be very helpful and would allow me to remove a lot of annoying code in my pipelines.
def CURRENT_VERSION=currentVersion()

Hi @henryborchers, not at the moment, but that would be a great addition.  Do you fancy submitting a PR?

I would if I knew enough Java. I've touched Java code once since 2006.

@henryborchers I can take it if you prefer and you'll test it once it's done ?

I'd be very happy to test it!!

@henryborchers the next released version will have the fix (0.10.0).
Sorry for the delay but I waited to merge another PR before merge the fix and there is fewer people who participate to this project


[extractor/vevo] Fix extractor

Before submitting a pull request make sure you have:

[x] At least skimmed through contributing guidelines including yt-dlp coding conventions
[x] Searched the bugtracker for similar pull requests
[x] Checked the code with flake8 and ran relevant tests

In order to be accepted and merged into yt-dlp each piece of code must be in public domain or released under Unlicense. Check one of the following options:

[x] I am the original author of this code and I am willing to release it under Unlicense
[ ] I am not the original author of this code but it is in public domain or released under Unlicense (provide reliable evidence)

What is the purpose of your pull request?

[x] Fix or improvement to an extractor (Make sure to add/update tests)
[ ] New extractor (Piracy websites will not be accepted)
[ ] Core bug fix/improvement
[ ] New feature (It is strongly recommended to open an issue first)

Description of your pull request and other information
Closes #3809
Closes #3919

pre-table output part
$ ./yt-dlp.sh -vF vevo:US0450100550
[debug] Command-line config: ['-vF', 'vevo:US0450100550']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version 2022.05.18 [b14d52355] (source)
[debug] Lazy loading extractors is disabled
[debug] Plugins: ['SamplePluginIE', 'SamplePluginPP']
[debug] Git HEAD: 1cd6cba30
[debug] Python version 3.10.4 (CPython 64bit) - Linux-5.15.0-30-generic-x86_64-with-glibc2.35
[debug] Checking exe version: ffmpeg -bsfs
[debug] Checking exe version: ffprobe -bsfs
[debug] exe versions: ffmpeg 4.4.1 (setts), ffprobe 4.4.1, rtmpdump 2.4
[debug] Optional libraries: Cryptodome-3.11.0, brotli-1.0.9, certifi-2020.06.20, mutagen-1.45.1, pyxattr-0.7.2, secretstorage-3.3.1, sqlite3-2.6.0, websockets-9.1
[debug] Proxy map: {}
[debug] [Vevo] Extracting URL: vevo:US0450100550
[Vevo] Retrieving oauth token
[Vevo] US0450100550: Downloading api video info
[Vevo] US0450100550: Downloading video versions info
[Vevo] US0450100550: Downloading level3 m3u8 information
[Vevo] US0450100550: Downloading level3 MPD information
[debug] Formats sorted by: hasvid, ie_pref, lang, quality, res, fps, hdr:12(7), vcodec:vp9.2(10), acodec, filesize, fs_approx, tbr, vbr, abr, asr, proto, vext, aext, hasaud, source, id

[info] Available formats for US0450100550:
ID               EXT RESOLUTION FPS │  FILESIZE   TBR PROTO  │ VCODEC        VBR ACODEC      ABR MORE INFO
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
http-level3-low  mp4 256x144        │ ~11.09MiB  328k http   │ h264         200k aac        128k
dash-level3-v1   mp4 416x234     25 │ ~ 1.90MiB   56k http   │ avc1.4D401F   56k video only      DASH video, mp4_dash
dash-level3-v2   mp4 416x234     25 │ ~ 5.80MiB  171k http   │ avc1.4D401F  171k video only      DASH video, mp4_dash
hls-level3-219   mp4 416x234     25 │ ~ 7.42MiB  219k m3u8_n │ avc1.4d001f  219k mp4a.40.2    0k
hls-level3-363   mp4 416x234     25 │ ~12.28MiB  363k m3u8_n │ avc1.4d001f  363k mp4a.40.2    0k
dash-level3-v3   mp4 480x270     25 │ ~11.54MiB  341k http   │ avc1.4D401F  341k video only      DASH video, mp4_dash
hls-level3-551   mp4 480x270     25 │ ~18.66MiB  551k m3u8_n │ avc1.4d001f  551k mp4a.40.2    0k
http-level3-None mp4 640x360        │ ~24.62MiB  728k http   │ h264         600k aac        128k
dash-level3-v4   mp4 640x360     25 │ ~14.40MiB  425k http   │ avc1.4D401F  425k video only      DASH video, mp4_dash
dash-level3-v5   mp4 640x360     25 │ ~22.95MiB  678k http   │ avc1.4D401F  678k video only      DASH video, mp4_dash
hls-level3-742   mp4 640x360     25 │ ~25.12MiB  742k m3u8_n │ avc1.4d001f  742k mp4a.40.2    0k
hls-level3-944   mp4 768x432     25 │ ~31.95MiB  944k m3u8_n │ avc1.4d001f  944k mp4a.40.2    0k
http-level3-high mp4 1280x720       │ ~71.96MiB 2128k http   │ h264        2000k aac        128k

Maybe:

[x] Support URL formats like https://tv.vevo.com/watch/artist/janet-jackson/US0450100550
[ ] Copy tests from youtube-dl

@pukkandan Do you think tests should be brought back to yt-dlp?
They aren't currently in yt-dlp's vevo.py
https://github.com/ytdl-org/youtube-dl/blame/master/youtube_dl/extractor/vevo.py#L41-L151


contrib/helm/clair  not up to date with 2.0+ config.yaml

The way the PostgreSQL connection string is store in the config.yaml has changed with 2.0 release.
The template/configmap.yaml is still pre 2.0
source: "postgres://{{ .Values.postgresql.postgresUser }}:{{ .Values.postgresql.postgresPassword }}@{{ template "postgresql.fullname" . }}:5432/{{ .Values.postgresql.postgresDatabase }}?sslmode=disable"

Either of these formats should work. The documentation just specifies the key value pair because it's easier to read/write and we had users making mistakes with the URI format.


[Player] Integrate new OfflineStorage layer into OfflineEngine and PlaybackEngine

This PR replaces the previous JSON-backed storage layer for the new OfflineStorage using SQL.
It initializes it in the bootstrap process,  and integrates it into both OfflineEngine and PlaybackEngine.
It also gets rid of the previous Storage and StorageItem classes
What's next
I want to abstract the details of GRDB like DatabaseQueue out of the Player class. We might want to rename some of the newly created classes to have more consistency.
I will also look into adding unit tests for the OfflineEngine / Downloader classes.

I've added some minor comments.
On a separate note but since we are touching it, I'll write it here. It might be a good idea to review if we agree it makes sense. The offline delegate could improve some of the naming since it could affect understanding of what is done when the funcs are called. 😅 I think the usage of gerund would read better:
func offliningStarted(for mediaProduct: MediaProduct)
func offliningProgress(for mediaProduct: MediaProduct, percentage: Double)
func offliningCompleted(for mediaProduct: MediaProduct)
func offliningFailed(for mediaProduct: MediaProduct)
func offliningDeleted(for mediaProduct: MediaProduct)
func allOfflinedItemsDeleted() / OR func allOfflinedMediaProductsDeleted() / OR similar

here some main points:

Clarity of Action: Gerunds indicate that an action is taking place or has taken place, which can be more descriptive and clear. For example, offliningStarted clearly indicates that the process of offlining has begun, whereas offlineStarted might be slightly less clear.
Distinguishing Actions from States: Gerunds can help distinguish between actions and states. For example, offliningCompleted clearly indicates the completion of an action, whereas offlineDone might be interpreted as a state rather than the result of an action.

I know this is small and minor, but IMO it can improve the clarity of the code.

I agree on the better naming, this was mostly following the current spec.
But the delegate spec is a bit less strict I would say, because it is declared as a bus of messages (each platform implements a bus with different patters, in our case, as a a delegate)
The names of the messages are: OfflineStartedMessage, OfflineProgressMessage, OfflineDoneMessage, OfflineDeletedMessage, AllOfflinesDeletedMessage
But I think it is ok for us to rename the delegate names because a) they are still clear, b) we are doing it also to better follow platform conventions.


Update the KDE bandwidths

The prior sample has now been more or less completed based on the entire Yu et al. sample.
The KDE bandwidths should probably updated with this new sample.

I'm doing this now ...


Request to add Software License

Adding Software License makes the project usable by others for their own works.
It also protects your works from being used in unjust manner. It is an important part of developing opensource projects.
This source might help in choosing one : https://choosealicense.com/

LICENSE added. now you can use this project.


Ianbucad/state key check

What does this PR do?
Checks if key 'state' exists in conn before using it as a key in connection_states.
Motivation
Cases wherein 'state' does not exists results in KeyError
Versioning

[ x] Bumped the version check in manifest.json
[ x] Updated CHANGELOG.md

Additional Notes
Performance-wise "if key in dict" is better that "if dict.get(key)" though not by much.
Other options:
dict.has_key(key) but is deprecated
try/except KeyError/pass relatively more expensive.
https://stackoverflow.com/questions/28859095/most-efficient-method-to-check-if-dictionary-key-exists-and-process-its-value-if#comment71373760_28860508

@hush-hush I was not able to reproduce this myself due to limited RabbitMQ knowledge. See card https://trello.com/c/HyAz32si/282-new-connection-states-check-throws-an-error for actual logs and actual data resulting to the error.


luci-app-attendedsysupgrade: LuCIfy codebase

This should make the code a bit more readable and LuCI like instead of
using vanially JavaScript.
Signed-off-by: Paul Spooren<EMAIL_ADDRESS>

Okay


How to replay the flight from logs in jMAVSim and gazebo

Hi,
I'm using ubuntu18.04 to build the px4 code for gazebo and jmavsim. I'm stuck with the following issue:
1. How to replay the flight from logs in  jMAVSim and gazebo simulators.

Thank you

This is documented in the QGC documentation. Please ask support questions in the support forums, not in bug tracker.


Add option to hide event items, but show which days have them.

For our use case we actually didn't want the events themselves to show on the calendar, but to have a background color on the days themselves that had events and on clicking the day the events would be revealed in a list below the calendar. This adds that option using the boolean prop showEvents and the class hasEvent added to days that have a least one event.
If there is a better way to go about this I'd appreciate the feedback as I am still learning Vue.
I also updated the packages through an audit to fix any vulnerabilities.

Should hasEvent also be conditioned on if showEvents is false?

Hi, nice feature ! don't need it in my case but you should create your PR on the original repo

I would, but I actually need the part you added as well so my PR would end up including your changes which you already have a PR for.

My bad ! I didn't realize.
PR accepted ;)


Update rx_windows_user.h

change WM_USRE+1 to WM

Hi @freezestudio, I'm your friendly neighborhood Microsoft Open Technologies, Inc. Pull Request Bot (You can call me MSOTBOT). Thanks for your contribution!

This seems like a small (but important) contribution, so no Contribution License Agreement is required at this point. Real humans will now evaluate your PR.

TTYL, MSOTBOT;

Thank you for the PR!


Unavailable axis value reported by glfwGetGamepadState

Thanks for adding the gamepad feature.
Documentation of glfwGetGamepadState states:

Unavailable buttons and axes will always report GLFW_RELEASE and 1.0 respectively.

However, by looking at the source code, it seems that glfwGetGamepadState will actually report 0.0 for unavailable axes.
I am not sure which is the intended behavior, but in my opinion reporting 0.0 is better.

Thank you for spotting and reporting this! It has been fixed with 34d20b0f03df5926882611041354d558c0b364dd.


Update mysql-connector-java to 8.0.32

Updates mysql:mysql-connector-java from 8.0.29 to 8.0.32.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "mysql", artifactId = "mysql-connector-java" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "mysql", artifactId = "mysql-connector-java" }
}]

labels: test-library-update, early-semver-patch, semver-spec-patch, commit-count:1

Superseded by #262.


Yubikey code not requested if password not configured

Describe the bug
When using a Yubikey OATH account that's not configured with a password, assume returns early and doesn't proceed to request a code from the key.
System (please complete the following information):
Tested on  0.12.6 and main
To Reproduce
Steps to reproduce the behavior:

Setup a Yubikey, but do NOT run ykman oath access change to configure a password as the docs recommend
Run assume with a correctly configured --profile

Expected behavior
Prompt appears and vegas-credentials requests an OATH code from the key, therefore after touching the key, a Yubikey TOTP code is input.
Output
Log ends in:
DEBUG: 2022/05/09 17:01:42 setup.go:125 Yubikey: device is available
DEBUG: 2022/05/09 17:01:42 setup.go:132 Yubikey: OATH application is password protected

Additional context
Setting up a password, or building locally with yubikey.go#L91-L102 commented out fixes the issue.
It seems like y.GetPassword() returns a non-nil error Key not found, hence terminating the Code function.

I haven't dove deep enough into the error to figure out where exactly the Key not found is coming from (perhaps all the way from badger?). If you have some pointers on how this should be fixed, I'd be happy to make a PR for it :)

Hi, thanks for reporting the issue!
I'll try to take a look at this tomorrow.

Fixed in version 0.13.6.
Essentially the issue boiled down to me not having tested with non-password protected Yubikeys for some time 😅 Sorry about that!


Develop unit testing

Refactor build.sh so that it is broken up into functions. That way, the unit test can source build.sh and reference reusable blocks of code from the script for testing.

Develop unit test shell script that will specify default environment variables and call functions from build.sh to run for testing. This should be able to run locally and report results.

I recommend converting this to an Azure Terraform module in the public registry and investigate using the standard test tooling framework used for those modules.
i.e. The compute module

I recommend converting this to an Azure Terraform module in the public registry and investigate using the standard test tooling framework used for those modules.
i.e. The compute module

https://github.com/Azure/terraform-azurerm-compute#test
Will definitely look into this for future iterations. Thanks!

@dtzar I agree that we should be looking to use Terraform and Terratest where applicable. This issue is broadly name "Develop unit testing" but is specifically about one shell script. @yradsmikham can we change the name of this to reflect the specific task associated here? Moreover we should close this issue since it is marked as down.


Changing the font in nvim-pygtk3

Hi!
First, congratulations! Very nice app 👍
I'm wondering if it is possible to change the default font of this app.
Thanks,
Ronan

Hi, thanks for the comment! :+1:
f488f0d5c8ecd163123d5f0f1c8d4af02fc2fc27 should allow changing the font through Tweak Tool, gsettings, dconf etc.


OCPBUGS-19719: Use cgo net for name resolution

When using .local hostnames and mDNS the native golang resolver does not work properly as it only reads the /etc/resolv.conf The cgo based resolver calls the C library routines instead. See https://pkg.go.dev/net#hdr-Name_Resolution

Which issue(s) this PR addresses:

Closes #

/hold
Test pending

/hold cancel
/cc @pmtk @copejon @eslutsky

/cc @dhellmann

will this test work without any mdns configuration on the  node ?

will this test work without any mdns configuration on the node ?

Yes, this is entirely handled by microshift.

/lgtm

/lgtm

/cherry-pick release-4.14


Not working in stack views/tableview cells

Having issues with this when implementing in a stack view or tableview cell

Example app is using it in a table view cell.

If this issue is still valid for you please open pr with code that demonstrates the bug. You can use example application to build the UI.


DEM cleanups

Just a couple of clean-ups from https://github.com/georust/gdal/pull/456 (the easier ones :grimacing:).

TODO:

[ ] maybe roll back some of the Option<f64> to f64 changes
[ ] add missing getters
[ ] update getters to take Option<T>?
[ ] find a place for the module
[ ] check for missing docs / add #![deny(missing_docs)] on the module

r? @metasim do these make sense? Best reviewed commit by commit.


Some generated sprites are not centered

Hey!
I want to start off by giving props for such an awesome addon!
I've been messing with it and have noticed sometimes sprites are not centered or are bigger or smaller than expected. Even if Sprite Bit Size is set to 16, it sometimes generates sprites wider. Also since offset is an int, it can't offset by 8.5 to catch these cases.
I'm adding screenshots about some sprites that I've randomly generated.
Maybe I'm doing something wrong?
Thanks for any help!

Thanks for the bug report!
To answer your first question on the bigger sprite sizes I am guessing that the outline could be causing a larger sprite? I'd love an example of this. If this is a bug I don't think that's something I'd want to fix. I wanted to remain as compatible with the original web-based version as possible (because its useful)
As for the centred issue, I can push an update to allow for non-integer offsets if you'd find that helpful? Probably some sort of auto-centring feature would be useful.... Feel free to make a separate issue for that if you'd like.


Fix write documentation tuning parameter

The automatic reference patch will fix this, But thank you for the commit!

https://github.com/datastax/spark-cassandra-connector/pull/853


remove X-XSS-Protection headers from all applications

see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection
also output complains about it.

Fixed haproxy, any application I missed?


Bot Responds to Other Bots

This is a bad idea, and should never be allowed. Most user objects will have a bot or similar property

Weird, I guess I've never noticed this ticket here.
In any event, this is an interesting talking point.  Some people would argue that bots talking to each other can be pretty entertaining.  I suppose I agree that ignoring other bots is probably a safe decision to make and I'll look at adjusting the command router to do that.