mzieg-spi

Hi Trent,
I tried to make this a minimal diff.  The only key change was adding an enableSPI bool to WasatchNET.Driver, defaulting to false.  That's because if the FTDI drivers are NOT installed, FTD2XX_NET.dll pops up not one, but two on-screen dialogs warning me that the FTDI drivers aren't found / loaded.  That would be very annoying for the vast majority of Wasatch.NET users who aren't interested in SPI, so this way that functionality is only enabled if they explicitly enable it before calling Driver.openAllSpectrometers().  I also added a checkbox in WinFormDemo supporting this.
Otherwise:

I deleted a bit of dead code
I removed the "SPISpectrometer.excitationWavelengthNM = 0" initialization in the SPISpectrometer constructor.  It had only been working because you overrode that property's settor to { }, as the default setter would write the value to the Spectrometer's EEPROM object, and the EEPROM isn't currently instantiated until open().  However, I didn't like that the old solution literally disabled the ability to set a new excitationWavelengthNM, as that is potentially important when customers want to fine-tune the wavenumber calculation when they happen to know a precise excitation wavelength for their laser (especially with customers who provide their own lasers).  (*Edit: and zero should be the default anyway...?)
I split out README_CHANGELOG.md to match other projects, as I've found that convenient.
I added a unit to integTimeMS_, because I've been burned by unitless variables before.

I did not add FTD2XX.dll (or a reference thereto) to the project, as I don't have that file.  Please do so when you have the chance.

"openAllSpectrometers" should open all spectrometers regardless of type

I don't disagree, and if we can package the FTDI drivers such that the on-screen alerts go away, then we can remove enableSPI (or default it to true).  But we can't have our public .NET driver suddenly start flashing dialog boxes atop customer applications, so until we can resolve those, we need to do something to squelch them by default.

So the try wrapper doesn't prevent attempts to call the functions?

I forgot to answer this.  Yes, the try-catch does prevent the code from moving forward and crashing in the event that FTDI driver load fails, so it resolves the previous segfault condition.  However, it does not prevent the on-screen pop-ups from appearing.  Googling for "Attempting to load FTD2XX.DLL" suggests a lot of people have encountered this.  Hopefully adding the appropriate file will solve, but we'll need to test on both 32 and 64-bit.


arrays.indexOf

The indexOf() method returns the first index at which a given element can be found in the array, or -1 if it is not present.
Checklist

[x] implemented
[x] documented
[x] tested
[x] linted

Details
var beasts = ['ant', 'bison', 'camel', 'duck', 'bison'];

console.log(beasts.indexOf('bison'));
// expected output: 1

// start from index 2
console.log(beasts.indexOf('bison', 2));
// expected output: 4

console.log(beasts.indexOf('giraffe'));
// expected output: -1

References

Array.prototype.indexOf - MDN

Heya, tried my hand at this method. I think I followed the spirit, but let me know about using if statements before the reduce. All the best.a

If statements to exit early on edge cases are acceptable.
Would you mind removing the builds (ie .cjs/.esm) and generated doc (ie .md). As of the update early today, all build steps (ie doc, bundles, docs, typings) are automatically applied when a new version is published. I still need to update CONTRIBUTING.md to reflect this.
Otherwise LGTM

Almost forgot. Great job on this, for the first person (other than me) to implement a new operator you managed to cover all the bases. I'm impressed.

Thank you for your contribution :+1:
If you'd like your name added to the contributors in package.json, feel free to add it in another PR.
Here's an example
  "contributors": [
    {
      "name": "Evan Plaice",
      "email"<EMAIL_ADDRESS>      "url": "http://evanplaice.com"
    }
  ],

The email and url fields are optional.
Otherwise, just close this issue again.

Added in 0.20

Removed in 0.74.3


HNC: Finalize the initial list of HNC-controlled objects

Currently, the HNC will propagate Roles, RoleBindings and Secrets. I'd like to propose the following additional Kinds that get propagated in HNC 0.1:

ConfigMap
NetworkPolicy
PodSecurityPolicy
ResourceQuota
LimitRange

That is, all the common policy objects that an admin might want to set and then forbid subadmins from modifying.
In HNC 0.2 (aka Phase 2 in the design doc), we can look at making this set configurable.

/assign @adrianludwin

/good-first-issue
/unassign
Let's go with the list shown above. This should be an easy PR for someone.

I'd like to take this on, I studied the problem during my downtime recently and think I have a good idea of how to solve it, or at least the questions I need to ask.
/assign @entro-pi

Here's a question, should I close this issue? (if I can)?

Yup! If you can't, I will.

Fixed by #116

Looks like I can't, would you mind?


[Suggestion] Make text and glyphs selectable

I'm not positive this is default behavior for Polyglot and not being caused by another mod, but sometime in the last month or so, anything being translated by Polyglot shows up as unselectable text, which means neither the glyphs for the "original" language nor the text for the translated version can be selected or copied.  Perhaps this is true only if "display translated box" is selected?
It would be nice if this text, in particular the translated version, could be selected, for pasting into journal entries or other uses.

I'm not positive this is default behavior for Polyglot and not being caused by another mod...
Perhaps this is true only if "display translated box" is selected?
It would be nice if this text, in particular the translated version, could be selected, for pasting into journal entries or other uses.

Yes, it's the default behavior of the text in the translated box, without it, the text is selectable as normal, I'll change it to be selectable on the next update.


Restart syncing after crash

Hi,
We are syncing two mongodb replicaset. But probably due to our workload, sometimes it crash in midldle with this error:
transporter: ERROR: mongodb error (read tcp <IP_ADDRESS>:27017: i/o timeout)

It doesn't leave any stack trace in stdout and continue to run with repeated errors output in stderr.
I'm wondering if I restart it again, will it pickup correctly? or Do I have to manually set some oplog timestamp?

transporter doensn't currently support the ability to resume a sync after being stopped but some work is already in place to support it with more planned for the near future.
feel free to follow https://github.com/compose/transporter/issues/33 for updates


Fix lazy Assessment of Iterates, fixes #110

Codecov Report
All modified lines are covered by tests :white_check_mark:

Comparison is base (5d25096) 97.01% compared to head (43a0ef9) 97.04%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@             Coverage Diff              @@
##               main     #111      +/-   ##
============================================
+ Coverage     97.01%   97.04%   +0.02%
- Complexity      628      632       +4
============================================
  Files           163      164       +1
  Lines          1374     1387      +13
  Branches         47       47
============================================
+ Hits           1333     1346      +13
  Misses           35       35
  Partials          6        6

Files
Coverage Δ

...notobugs/confidence/quality/iterable/Iterates.java
100.00% <100.00%> (ø)

...ynotobugs/confidence/quality/trivial/Anything.java
100.00% <ø> (ø)

...bugs/confidence/rxjava3/rxexpectation/IsAlive.java
100.00% <ø> (ø)

...ugs/confidence/test.quality/PassesPostMutated.java
100.00% <100.00%> (ø)

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


Provide a simple way to get access to all your environment contexts from within the Portainer UI

Placeholder.

I have something for you :)

I think this might be the same suggestion as what I just asked in #6030

This one is actually different. It's about having multiple Kubernetes environments, where you'd want to download all the kubeconfig files in one go, rather than doing that one environment at a time.


Reorganize documentation

Summary
This change updates our documentation and creates a script that accepts example JAR files as an argument.
Description
Updated the functional-tests README to include the new connector version, sandbox-clientenv.sh script, and guide to running against S3. In addition, added required Scala version to connector README, removed run-example.sh scripts from each individual example directory and added a general script that accepts a parameter for the target JAR. As a result, examples README updated to show how to run application using 'sbt run' and 'spark-submit'.
Related Issue
http://jira.verticacorp.com:8080/jira/browse/VER-77623
http://jira.verticacorp.com:8080/jira/browse/VER-77627
Additional Reviewers
@alexr-bq
@jonathanl-bq

Build is failing

Build is failing

Had to do with Artima's servers. It's fixed now.


Another go with fly.io

I've been playing around with the idea of running a mail server on fly.io for a while and had some time this weekend to look into it. Similar to your sentiment on #14, it's been a good reason to learn more about fly.io at the same time. The same issues with sending mail that were mentioned in #14 still apply, but I was curious to see if there were any updates or new learnings since then, so I decided to give it a shot and document my findings here.
There's something really cool about a mail server that can spin down to 0 machines and quickly re-hydrate it self when a message comes in. It's an interesting twist on how we might get to a place where we (as individuals) run more of our own services again.
Steps
Anyway, here's what I did:

Modifed the Dockerfile in main

To use the prebuilt image instead of building mox (this was just to simplify but the Dockerfile as-is should work fine too).

Ran docker build -t mox .

This built the image locally so I could run the mox quickstart command to generate the initial configuration. This was a notable shortcut that avoided dealing with fly volumes but has its obvious drawbacks: (1) the IP detection and other heuristics obviously don't match the fly.io environment and (2) the generated passwords, keys, and certs end up in the deployed image which is not ideal for security reasons (although I have a solution for that which I'll mention at the end).

Created an initial fly.toml.

This Fly.io community thread about receiving email / inbound smtp from 2021 was helpful in getting started. (They're using Haraka and the person that started the thread mentioned they are (or were) running it on fly.io for noreply.zone). I say initial b/c running the launch command modifies it in place.

Ran fly launch.

Answered y to copying the existing config.
Answered y to adding public 1pv4 and ipv6 addresses.

Updated the Listeners config in mox.conf

Left internal IPs as <IP_ADDRESS>
Set public IPs to <IP_ADDRESS> and ::0.
Set public NATIPs to the fly ipv4 and ipv6 addresses (since they are only available after lanuch -- same as #14).

Ran fly deploy to re-reploy the app with the updated config.

This got things running but I ran into a few issues:

I'd a hard time getting the fly proxy HTTP/service checks to pass. I'm going to open a thread on this in the Fly forum as well, but part of the challenge was understanding how mox services were meant to run on <IP_ADDRESS> vs public IPs (and NATs). Not a critisism of either, just a lot of complexity that I haven't got to the bottom of yet.
Receiving mail on ports 465 and 587 worked, but not on port 25 (smtp). Probably related to the first point (e.g. the failing checks affect how/if the fly proxy routes traffic).
Sending mail I didn't check. It wasn't the focus and even

tl;dr
$ docker build -t mox .
$ docker run --rm -v $(pwd)/mox_data:/home/mox mox-mta /bin/mox quickstart -skipdial -hostname mail.example.com<EMAIL_ADDRESS>mox
$ fly launch [-o orgname -r region]
$ fly ips list
$ fly status

# After manually updating the fly.toml, mox.conf
$ fly deploy
$ fly ssh console -s

Future improvements

Using fly certs to "prime" the TLS before the web services start. It wouldn't replace it since you want SMTP to be able to negotiate with its own certs but it would be nice to have a more robust TLS story.
Using fly launch args --file-literal, --file-local, and --file-secret to inject config and data into the container at build time. This
Looking into the fly.toml [deploy] setting called release_command. e.g. for running release_command = "mox quickstart".

Note that volumes are not available at build time so the files would still be written to the ephemeral storage.

Sorting out the aforementioned issues with the Fly proxy service checks.

Files
fly.toml
Details

app = 'mox'
primary_region = 'ams'

[build]
  dockerfile = 'Dockerfile'

[deploy]
  wait_timeout = '3m0s'

[http_service]
  internal_port = 80
  force_https = false
  auto_stop_machines = true
  auto_start_machines = true
  min_machines_running = 0
  processes = ['app']

[[services]]
  protocol = 'tcp'
  internal_port = 25

  [[services.ports]]
    port = 25

  [[services.ports]]
    port = 465
    handlers = ['tls']

  [[services.ports]]
    port = 587

  [[services.ports]]
    port = 80
    handlers = ['http']

  [[services.ports]]
    port = 443
    handlers = ['http', 'tls']

  [[services.ports]]
    port = 993
    handlers = ['tls']

  [[services.ports]]
    port = 143

  [[services.ports]]
    port = 8010

[[restart]]
  policy = 'never'
  retries = 1
  processes = ['app']

[[vm]]
  memory = '1gb'
  cpu_kind = 'shared'
  cpus = 1

Dockerfile
Details

ARG GO_VERSION=1
FROM golang:${GO_VERSION}-bookworm as builder

# Create mox user and homedir (or pick another name or homedir):
RUN useradd -m -d /home/mox mox

WORKDIR /home/mox

# Download and install mox:
RUN apt-get update && \
    apt-get install -y curl ca-certificates gnupg2 tzdata vim \
                       iputils-ping dnsutils iproute2 nmap netcat-openbsd

# Find the latest release: https://beta.gobuilds.org/github.com/mjl-/mox@latest/linux-amd64-latest/
RUN curl -v -O -L<EMAIL_ADDRESS>
RUN gunzip mox-v0.0.11-go1.22.5.gz
RUN mv mox-v0.0.11-go1.22.5 mox
RUN chmod +x mox
RUN mv mox /bin/

# When setting up a new system, don't run the mox quickstart in this
# Dockerfile. Instead we build and then run the container with a volume
# for the config and data, overriding the CMD. The config files generated
# are then made for linux (so they include the mox.service) and then
# when the image runs the first time all those files are inplace.

COPY mox_data /home/mox
RUN chown -R 1000:0 /home/mox/config
RUN chown -R 1000:0 /home/mox/data

# SMTP for incoming message delivery.
EXPOSE 25/tcp

# SMTP/submission with TLS.
EXPOSE 465/tcp

# SMTP/submission without initial TLS.
EXPOSE 587/tcp

# HTTP for internal account and admin pages.
EXPOSE 80/tcp

# HTTPS for ACME (Let's Encrypt), MTA-STS and autoconfig.
EXPOSE 443/tcp

# IMAP with TLS.
EXPOSE 993/tcp

# IMAP without initial TLS.
EXPOSE 143/tcp

# Prometheus metrics.
EXPOSE 8010/tcp

#CMD pwd && ls -lha
CMD ["/bin/mox", "serve"]

mox.conf
Details

# NOTE: This config file is in 'sconf' format. Indent with tabs. Comments must be
# on their own line, they don't end a line. Do not escape or quote strings.
# Details: https://pkg.go.dev/github.com/mjl-/sconf.

# https://www.xmox.nl/config/

# 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: mail.example.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/changelog 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>
		# If set, used for suggested CAA DNS records, for restricting TLS certificate
		# issuance to a Certificate Authority. If empty and DirectyURL is for Let's
		# Encrypt, this value is set automatically to letsencrypt.org. (optional)
		IssuerDomainName: letsencrypt.org

# 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. If
		# both outgoing IPv4 and IPv6 connectivity is possible, and only one family has
		# explicitly configured addresses, both address families are still used for
		# outgoing connections. Use the "direct" transport to limit address families for
		# outgoing connections.
		IPs:
			- <IP_ADDRESS>

		# If empty, the config global Hostname is used. (optional)
		Hostname: mail.example.com

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

		# Admin web interface, for managing domains, accounts, etc. Default path is
		# /admin/. Preferably 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

		# Webmail client, for reading email. Default path is /webmail/. (optional)
		WebmailHTTP:
			Enabled: true

		# Like WebAPIHTTP, but with plain HTTP, without TLS. (optional)
		WebAPIHTTP:
			Enabled: true

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

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

	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. If
		# both outgoing IPv4 and IPv6 connectivity is possible, and only one family has
		# explicitly configured addresses, both address families are still used for
		# outgoing connections. Use the "direct" transport to limit address families for
		# outgoing connections.
		IPs:
			- <IP_ADDRESS>
			- ::

		# If set, the mail server is configured behind a NAT and field IPs are internal
		# instead of the public IPs, while NATIPs lists the public IPs. Used during
		# IP-related DNS self-checks, such as for iprev, mx, spf, autoconfig,
		# autodiscover, and for autotls. (optional)
		NATIPs:
			- <IP_ADDRESS>
			- 0a01:01ff:2::5a:e11b:0

		# 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

			# Private keys used for ACME certificates. Specified explicitly so DANE TLSA DNS
			# records can be generated, even before the certificates are requested. DANE is a
			# mechanism to authenticate remote TLS certificates based on a public key or
			# certificate specified in DNS, protected with DNSSEC. DANE is opportunistic and
			# attempted when delivering SMTP with STARTTLS. The private key files must be in
			# PEM format. PKCS8 is recommended, but PKCS1 and EC private keys are recognized
			# as well. Only RSA 2048 bit and ECDSA P-256 keys are currently used. The first of
			# each is used when requesting new certificates through ACME. (optional)
			HostPrivateKeyFiles:
				- hostkeys/mail.example.com.20240706T223117.rsa2048.privatekey.pkcs8.pem
				- hostkeys/mail.example.com.20240706T223117.ecdsap256.privatekey.pkcs8.pem

		# (optional)
		SMTP:
			Enabled: true

			# 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. IPs we can send from are periodically
			# checked for being in the configured DNSBLs. See MonitorDNSBLs in domains.conf to
			# only monitor IPs we send from, without using those DNSBLs for incoming messages.
			# Example DNSBLs: sbl.spamhaus.org, bl.spamcop.net. See
			# https://www.spamhaus.org/sbl/ and https://www.spamcop.net/ for more information
			# and terms of use. (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

		# 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: true

		# 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. 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 addresses: a plain 'postmaster'
# without domain, 'postmaster@<hostname>' (also for each listener with SMTP
# enabled), and as fallback for each domain without explicitly configured
# postmaster destination.
Postmaster:
	Account: d

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

# Destination for per-host TLS reports (TLSRPT). TLS reports can be per recipient
# domain (for MTA-STS), or per MX host (for DANE). The per-domain TLS reporting
# configuration is in domains.conf. This is the TLS reporting configuration for
# this host. If absent, no host-based TLSRPT address is configured, and no host
# TLSRPT DNS record is suggested. (optional)
HostTLSRPT:

	# Account to deliver TLS reports to. Typically same account as for postmaster.
	Account: d

	# Mailbox to deliver TLS reports to. Recommended value: TLSRPT.
	Mailbox: TLSRPT

	# Localpart at hostname to accept TLS reports at. Recommended value: tls-reports.
	Localpart: tls-reports

.gitignore
Details

This kept all of the most sensitive files out of the git repo, and also kept things like mox binary from being committed.
mox
**/mox
adminpasswd
accounts/
acme/
queue/
*.key
*.crt
*.db

Hi @delano, thanks for the writeup, that's good progress and looks like you're going to get mox running on fly.io at least for incoming email.
At the time of issue #14, mox wasn't able to deliver outgoing messages through other services, but that is an option now. Either with SMTP  (unauthenticated relay, or authenticated submission), or by making connections using socks. So you would still need another service/machine to send email from, but at least it wouldn't be the place where the incoming emails are stored.
Is fly.io routing/forwarding connections to port 443 on the TCP-level? Or is it doing HTTPS-proxying? If it's possible to get it to just forward tcp connections, mox should be able to use ACME (Let's Encrypt or others) to do all TLS.
The public IPs are static right? That is, once you found them by starting the app. If so, and traffic can be delivered as TCP (not reverse proxied with HTTP(s)), couldn't you set those public IPs directly in the public listener's "IPs" field again instead of in "NATIPs"? Keep in mind that for junk filtering based on IP address (for messages from first-time senders, i.e. most spam messages), it is important that mox sees the original remote IP address, not an internal load balancer IP address.
If I can help with anything, let me know.

TLS Termination

Is fly.io routing/forwarding connections to port 443 on the TCP-level? Or is it doing HTTPS-proxying? If it's possible to get it to just forward tcp connections, mox should be able to use ACME (Let's Encrypt or others) to do all TLS.

Yeah, they support both. By default their proxy offers TLS termination for web apps using their own managed certs, but they can also forward TCP through directly.
fly.toml:

  # With TLS termination, fly.io managed certs
  [[services.ports]]
    port = 443
    handlers = ['http', 'tls']

  # Forwarding directly to mox, mox-managed certs
  [[services.ports]]
    port = 443
    handlers = ['http']

Public IP addresses

The public IPs are static right?

Yeah, Fly.io's public IPs are static once assigned to an app. But they're a bit tricky:

They are the entry points for incoming internet traffic to the Fly.io network.
They aren't directly associated with the machine(s) running Mox.
They differ from the IP addresses that other systems see when Mox makes outgoing connections (e.g., to another SMTP relay).
Currently, they don't support PTR records.

Altogether, it obvious complicates email delivery and authentication processes, especially for relays that rely on IP-based verification.

If I can help with anything, let me know.

Thank you. I will do!
Fly.io
As an aside, Fly.io's design choices are very cool. They necessarily challenge some of the older assumptions in network design, which can create friction with an older protocol like SMTP.

fyi, it seems there is now an option to get a static ip for outgoing traffic at fly.io, https://community.fly.io/t/static-egress-ips-for-machines/22004. does cost a bit...


Org API: Add support for contract type

➜  uber-direct-sdk git:(feature/contract_type) npm run test src/__tests__/organizations/create-organization.test.ts

><EMAIL_ADDRESS>test
> jest --coverage src/__tests__/organizations/create-organization.test.ts

 PASS  src/__tests__/organizations/create-organization.test.ts
  createOrganization
    ✓ calls fetchData with the correct arguments - centralized org (2 ms)
    ✓ calls fetchData with the correct arguments - decentralized org
    ✓ calls fetchData with the correct arguments - decentralized org with parent contract type (1 ms)
    ✎ todo throws an error if the request fails

Jest: "global" coverage threshold for statements (100%) not met: 80.51%
Jest: "global" coverage threshold for branches (100%) not met: 76.47%
Jest: "global" coverage threshold for lines (100%) not met: 78.87%
Jest: "global" coverage threshold for functions (100%) not met: 64.28%
Test Suites: 1 passed, 1 total
Tests:       1 todo, 3 passed, 4 total
Snapshots:   0 total
Time:        0.806 s, estimated 1 s

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


hwi.py: error: argument command: invalid choice: 'IOService

While the  enumerate command works, neither inserting the fingerprint, nor the path, you can obtain anything functioning.
The message reports the path as an " invalid argument command" citing the path as it was a command.
./hwi.py enumerate
[{"type": "ledger", "path": "IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/EHC1@1D,7/EHC1@fd000000/PRT1@fd100000/IOUSBHostDevice@fd100000/AppleUSB20InternalHub@fd100000/AppleUSB20HubPort@fd140000/Nano S@fd140000/Nano S@0/IOUSBHostHIDDevice@fd140000,0", "fingerprint": "xxxxxxxx"}]

./hwi.py --path "IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/EHC1@1D,7/EHC1@fd000000/PRT1@fd100000/IOUSBHostDevice@fd100000/AppleUSB20InternalHub@fd100000/AppleUSB20HubPort@fd140000/Nano S@fd140000/Nano S@0/IOUSBHostHIDDevice@fd140000,0" getmasterxpub
usage: hwi.py [-h] [--device-path DEVICE_PATH] [--device-type DEVICE_TYPE]
              [--password PASSWORD] [--stdinpass] [--testnet] [--debug]
              [--fingerprint FINGERPRINT] [--version] [--stdin]
              [--interactive]
              {enumerate,getmasterxpub,signtx,getxpub,signmessage,getkeypool,displayaddress,setup,wipe,restore,backup,promptpin,sendpin}
              ...
hwi.py: error: argument command: invalid choice: 'IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/EHC1@1D,7/EHC1@fd000000/PRT1@fd100000/IOUSBHostDevice@fd100000/AppleUSB20InternalHub@fd100000/AppleUSB20HubPort@fd140000/Nano S@fd140000/Nano S@0/IOUSBHostHIDDevice@fd140000,0' (choose from 'enumerate', 'getmasterxpub', 'signtx', 'getxpub', 'signmessage', 'getkeypool', 'displayaddress', 'setup', 'wipe', 'restore', 'backup', 'promptpin', 'sendpin')

Also "--device-path" (suggested in the usage:) seems to be an unsupported option.

The correct option should be --device-path of -d. What error do you get when using --device-path? Can you try using -d?

Right! Sorry about that I didn't interpret rightly the error message. I had also to specify the device type but then I had the right response.
I can close the ticket.


issue conecting

whenever I try to connect my laptop to the server it refuses to connect saying Error connecting <IP_ADDRESS>,8080

just open server.py

<IP_ADDRESS>:8080 is a local ip adress, so unless the server is on your laptop it won't work, you need to put the ip adress of the server in the client

<IP_ADDRESS> means localhost, which is only available on your device and can't be accessed from the outside.
Either connect to your servers local IP address (192.168.x.x or 10.x.x.x or whatever), or if you need to access it from over the internet you'll need to open a port (and port forward, incase the server is behind a router)


feat(propIncludes): introduce propIncludes

Add a relation function (propIncludes) that can be used to determine whether an object has a property which is found in a list.
This is the includes version of propEq
// Before
pipe(filter(  (product) => includes(product?.id, productIds))  )

// After
pipe(filter(  propIncludes("id", productIds ))  )

This really is a well-written PR and I particularly like the efforts that went into the test cases but I have to say that I share @CrossEye observation:
filter (propSatisfies (includes (__, ['a', 'd']), 'category')) (xs)

Seems like what you're after. I think this should be an addition to the cookbook instead.

Thanks for the review, guys.
I'll go ahead and close this PR

@jaxtisapia:
Again, thank you for participating, and please do add this function to the Cookbook


Proposal - User settings should override works space settings

It would be more intuitive if in the example below the effective config was this, ie user settings are merged over workspace settings.
{
"a": "value1"
"b": "value2"
"c": "value4"
}

====== Previous discussion =======
Object values are not replaced completely, Instead they are merged while overriding. For eg:

User value

{
 "a" : "value1"
"b": "value2"
}

Workspace value

{
"b": "value3"
"c": "value4"
}

Effective value is as follows
{
"a": "value1"
"b": "value3"
"c": "value4"
}

Originally posted by @sandy081 in https://github.com/microsoft/vscode/issues/80243#issuecomment-533439583

cc @sandy081 could you please help me understand the rationale why "workspace settings" are preferred over "user settings", I probably don't understand the design.

Here's the documented settings precedence order
https://code.visualstudio.com/docs/getstarted/settings#_settings-precedence
By specifying workspace settings, repository maintainers can specify specific settings they'd like others opening the workspace to follow. For example, here's the VS Code repository's workspace settings file.

We closed this issue because we don't plan to address it in the foreseeable future. If you disagree and feel that this issue is crucial: we are happy to listen and to reconsider.
If you wonder what we are up to, please see our roadmap and issue reporting guidelines.
Thanks for your understanding, and happy coding!


release/0.16 branch is pulling torch==2.0.1+cu118 for linux GPU jobs

This is very likely the cause of the failures in https://github.com/pytorch/vision/actions/runs/6037283607/job/16384281192 and in https://hud.pytorch.org/pr/pytorch/vision/7921
CC @atalman

@pmeier looks like this related to following install command:
ltt install --progress-bar=off --pytorch-computation-backend=cuda11.8 --pytorch-channel=test torch

executing correct installation works correctly:
pip3 install torch torchvision --index-url https://download.pytorch.org/whl/test/cu118
WARNING: Ignoring invalid distribution -orch (/data/home/atalman/aug29_pypi/lib/python3.10/site-packages)
Looking in indexes: https://download.pytorch.org/whl/test/cu118
Collecting torch
  Using cached https://download.pytorch.org/whl/test/cu118/torch-2.1.0%2Bcu118-cp310-cp310-linux_x86_64.whl (2325.9 MB)
Collecting torchvision
  Using cached https://download.pytorch.org/whl/test/cu118/torchvision-0.16.0%2Bcu118-cp310-cp310-linux_x86_64.whl (6.2 MB)
Requirement already satisfied: filelock in ./aug29_pypi/lib/python3.10/site-packages (from torch) (3.12.3)
Requirement already satisfied: typing-extensions in ./aug29_pypi/lib/python3.10/site-packages (from torch) (4.7.1)
Requirement already satisfied: sympy in ./aug29_pypi/lib/python3.10/site-packages (from torch) (1.12)
Requirement already satisfied: networkx in ./aug29_pypi/lib/python3.10/site-packages (from torch) (3.1)
Requirement already satisfied: jinja2 in ./aug29_pypi/lib/python3.10/site-packages (from torch) (3.1.2)
Requirement already satisfied: fsspec in ./aug29_pypi/lib/python3.10/site-packages (from torch) (2023.6.0)
Collecting pytorch-triton==2.1.0+e6216047b8 (from torch)
  Downloading https://download.pytorch.org/whl/test/pytorch_triton-2.1.0%2Be6216047b8-cp310-cp310-linux_x86_64.whl (96.4 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 96.4/96.4 MB 19.2 MB/s eta 0:00:00
Requirement already satisfied: numpy in ./aug29_pypi/lib/python3.10/site-packages (from torchvision) (1.25.2)
Requirement already satisfied: requests in ./aug29_pypi/lib/python3.10/site-packages (from torchvision) (2.28.1)
Requirement already satisfied: pillow!=8.3.*,>=5.3.0 in ./aug29_pypi/lib/python3.10/site-packages (from torchvision) (9.3.0)
Requirement already satisfied: MarkupSafe>=2.0 in ./aug29_pypi/lib/python3.10/site-packages (from jinja2->torch) (2.1.3)
Requirement already satisfied: charset-normalizer<3,>=2 in ./aug29_pypi/lib/python3.10/site-packages (from requests->torchvision) (2.1.1)
Requirement already satisfied: idna<4,>=2.5 in ./aug29_pypi/lib/python3.10/site-packages (from requests->torchvision) (3.4)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in ./aug29_pypi/lib/python3.10/site-packages (from requests->torchvision) (1.26.13)
Requirement already satisfied: certifi>=2017.4.17 in ./aug29_pypi/lib/python3.10/site-packages (from requests->torchvision) (2022.12.7)
Requirement already satisfied: mpmath>=0.19 in ./aug29_pypi/lib/python3.10/site-packages (from sympy->torch) (1.3.0)
WARNING: Ignoring invalid distribution -orch (/data/home/atalman/aug29_pypi/lib/python3.10/site-packages)
Installing collected packages: pytorch-triton, torch, torchvision
Successfully installed pytorch-triton-2.1.0+e6216047b8 torch-2.1.0+cu118 torchvision-0.16.0+cu118

Fixed in #7924.


Include number of 'clear' pixels in dashboard

I had a meeting with a stakeholder yesterday who really wanted to know how many clear observations are available within each scene (not just what scenes are available).
It would be a useful feature enhancement to add this information to this dashboard.

Implementing this exactly as requested would require the 'clear' pixel count to be recorded as metadata against each dataset, which isn't something that is done, and isn't even meaningful in a lot of cases.
Digital Earth Australia's recent ARD products do include a cloud cover percentage for each scene, which is possible to view and search for using Explorer.

Ref: https://explorer.sandbox.dea.ga.gov.au/products/ga_ls8c_ard_3/datasets/4b1c218e-47a8-4e23-865f-5b6d6d648327


Error for Host registration does not go away

version - master jan 14th
Steps:

Create a new build
Try to add a host for the first time
In Host Registration URL click on Something else radio button but don't put anything in it.
Click on Save (this will bring up Please provide a DNS name or IP address
Click on cancel.
Now try to add a host again or go to the setting page

Results:
The error is still there.  This happens in settings page as well.
Expected:
Error should clear once you leave the page.

I think this is gone now with @westlywright converting them to components.

Version - master 3/8
Verified fixed


usql: 0.11.12 -> 0.12.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/xo/usql/releases.
meta.description for usql is: "Universal command-line interface for SQL databases"
meta.homepage for usql is: "https://github.com/xo/usql"
meta.changelog for usql is: ""
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.12.0 with grep in /nix/store/ci2i3a6n0agqv8ix9pld2ry98rdj44iv-usql-0.12.0
found 0.12.0 in filename of file in /nix/store/ci2i3a6n0agqv8ix9pld2ry98rdj44iv-usql-0.12.0

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

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
usql

Instructions to test this update (click to expand)

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

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

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

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

1 package built:

usql

Maintainer pings
cc @georgyo for testing.

Result of nixpkgs-review pr 185279 run on x86_64-linux 1

1 package built:

usql


Moved debug messages into Logger

Needed a way to control the debug output, so I put all the System.out.println lines into a Logger. I wasn't sure of the status of XhrTransport, so I didn't touch the debug output there.
Also includes a couple build.xml changes to let me build the jar to be contained in another project.

Thanks for the patch :D

XHR is currently WIP. As you state, leaving System.out.println() calls in XhrTransport.java is ok.


How is this different from scrolloff

What's the advantage of using this plugin over just using the built-in scrolloff option in vim?

it isn't
local scrolloff=3
vim.o.scrolloff=scrolloff
vim.keymap.set("n","<leader>R",function()
    vim.o.scrolloff=vim.o.scrolloff=3 and 999 or 3
end)
vim.api.nvim_create_user_command("ReaderMode", function()
    vim.o.scrolloff=vim.o.scrolloff=3 and 999 or 3
end)

should do the job
haven't tested though

There isn't really a ton of difference. The only reason I use this over something like max suggested is that scrolloff doesn't work once the bottom of the file is on the screen.
At some point, maybe I'll throw a little side-by-side gif in the readme showcasing the difference.


Fix for duplicate events in the error panel

Ref https://github.com/TypeStrong/atom-typescript/issues/681 and in general fix for problem when atom is opening around 20-30 tabs when you click on the error message (in TS panel only).

Cheers :rose:

Release with 7.7.1 https://github.com/TypeStrong/atom-typescript/releases/tag/v7.7.1 :rose:

:+1: nice


jsQR not working for images that I am attaching here. jsQR() is returning null in image code.

This is a tricky one. ZXing also isn't able to decode it, but my iPhone is. Thanks for the report I'll keep you posted as I track down the error.


amplify mock: Failed to fetch

Describe the bug
This seems closely related to another bug report, but I'm going to include more details that I think are interesting.
https://github.com/aws-amplify/amplify-cli/issues/4240
To support a big refactor, I wanted to leverage the local server abilities of amplify mock. I attempted to run my code that works in the cloud, locally, and noticed I had some problems locally.
When running my GraphQL API locally using amplify mock with Lambda responsible for the response, GraphiQL hangs and eventually I see this response:
{
  "message": "Failed to fetch",
  "stack": "TypeError: Failed to fetch"
}

My schema looks like this (omitting unnecessary details):
type TitleTalentRoleInfo {
  creditSequence: Int
  character: String
  role: String
}

type TitleTalent {
  label: String
  talentData: [TitleTalentRoleInfo!]
}

type LivesearchTitle {
  title: String
  type: String
  talent: [TitleTalent!]
}

type LocalizedTitleSet {
  title: LivesearchTitle!
}

type Query {
  searchTitle(phrase: String!): [LocalizedTitleSet!]! @function(name: "l12nAPI-${env}")
}

The problem is not in my lambda. I am using console.log to see the Lambda behaves as expected by reading what is printed by my lambda in the amplify mock terminal.
In some cases, I have been able to avoid the problem by changing my Lambda to redundantly recreate the response data using Array.map. Perhaps something about nested arrays is the problem. I'm guessing some of my data attributes are undefined or null and that makes problems for the local server. Maybe using Array.map ensures a response that fits with the schema? Again, the original implementation without the Array.map workaround has been working well in the cloud.
For example, this use of talent in my lambda response makes the local server hang, with the eventual undesired response,
  return shape.map(s => (
    {
      title: {
        title: s.title.title,
        type: s.title.type,
        talent: (s.title.talent || []).map(t => t),
      }
    }
  ))

While this use of talent in my lambda response allows the local server to succeed:
  return shape.map(s => (
    {
      title: {
        title: s.title.title,
        type: s.title.type,
        talent: (s.title.talent || []).map(t => ({
          label: t.label,
          talentData: (t.talentData || []).map(td => ({
            creditSequence: td.creditSequence,
            character: td.character,
            role: td.role,
          }))
        })),

I use this request in GraphiQL to test the code above:
query SearchTitles($phrase:String!) {
  searchTitle(phrase:$phrase) {
    title {
      title
      type
      talent {
        label
      }
    }
  }
}

Amplify CLI Version
4.21.0
To Reproduce

run amplify api add
run amplify function add
modify schema.graphql Query field to use a function returning arrays of objects with nested arrays.
print the lambda response in your function to be sure the lambda is working.
run amplify mock
make a request in GraphiQL

Expected behavior
I expect my lambda returning this payload, including talent, to work...
  return shape.map(s => (
    {
      title: {
        title: s.title.title,
        type: s.title.type,
        talent: (s.title.talent || []).map(t => t),
      }
    }
  ))

Well, I expect this lambda implementation to work also!
    return shape

...with this request (including talent):
query SearchTitles($phrase:String!) {
  searchTitle(phrase:$phrase) {
    title {
      title
      type
      talent {
        label
      }
    }
  }
}

Desktop (please complete the following information):

OS: Mac High Sierra
Node Version: v12.16.2

Additional context
My schema is much more elaborate but I wanted to keep the size of this post smallish.

Hi @cyrfer
Thanks for reporting this.Could you provide your lambda function so that we can try reproduce this issue?

I submitted the code sample and schema via aws support.

Hi @cyrfer
I have reproduced the bug. It seems there is a limit on sending large data in mock.

Yes, in my attempts to recreate the result object, I must have been filtering out some amount of data, going below the (undocumented) limit threshold.
The sample provided through aws support was just large enough to show the problem. Simply reducing the payload size avoids the limit threshold.

Hi cryfer
I have changed the logic to avoid the limit on the payload size and will submit a PR for this fix.

@akshbhu what is the PR?

The fix is included in amplify-cli version 4.26.0. Let me know if you anymore issues , comment on this and I will open the issue again.


Encodec support

Lets us use pre-trained Encodec as a replacement for SoundStream. Works for 24kHz specifically
Tested that it works using my demo script
Usage:
encodec = EncodecWrapper()
# now insert it anywhere you'd insert soundstream = soundstream

this is amazing! thank you! 🙏💯 will definitely review it tomorrow or Saturday

merged, thank you again!


Added support for dotnet nunit

Added support for NUnit 3.0 result xml, which is what Unity Tes Runner produces.

Since it has nested test suites I added identation level to TestSuiteResult so it can be formated nicely.
Moved sorting of test suites to each parser, since sorting didnt make sense when having nested suites

Any feedback is appreciated!

Closing this Because test were not successful.

The failure of the check seems to be unrelated to tests not being successful?
The output shows: "Tests:       25 passed, 25 total"
"Error: HttpError: Resource not accessible by integration"
Never seen that error before,

Thanks @simensan for the PR. You are right. This is the same situation as we have in #208. One of the check run fails due to permission issues. This happens when PR is from forked repo. I have to rework the workflow.
Anyway I see there are some other modification apart from the new NUnit parser. I will review it in the evening after my work day.

Hi @dorny , I experienced the same message here https://github.com/kubernetes/ingress-nginx/actions/runs/3610316594/jobs/6084083732
Any comments if they are related and a issue pending resolution or if I have a problem in my config
...
Run dorny/test-reporter@v1
  with:
    name: JEST Tests
    path: test/junitreports/*.xml
    reporter: jest-junit
    path-replace-backslashes: false
    list-suites: all
    list-tests: all
    max-annotations: 10
    fail-on-error: true
    only-summary: false
    token: ***
...

I don't have a "artifact" field because my attempts to specify a regex pattern are failing for the "artifact" field. Example I tried /*.xml/

@simensan gj! @dorny will you have the chance to review this PR any time soon? The workaround using the xslt transformer (from nunit to junit) doesnt produce good results.

Or @dharmendrasha

Sorry guys, I was again quite busy recently and forgot about it. I hope I will make it tomorrow or over the weekend.

So I've finally looked into this. It will need some adjustments but I'm definitely for adding NUnit support.
Issues I would like to address before we merge it:

There are two suites with the same name "MockTestFixture". In the XML there is also fullname attribute, but this is currently not visible in the report. In the report, you don't know which suite it is until you check individual tests inside.
All suites in the table show NaNms time
JUnit report seems to be broken due to a change in the sorting.
Can there be more than one top level suite? Currently there is the mock-assembly.dll and everything is nested there. So I'm not sure if it's good to have all intended in this case.

If the #225 does not address the concerns reported here, we can build upon it in the next release.


[Feature Request] Import GraphQL schema as collection

It would be awesome if there was the possibility to generate a collection of requests from a GraphQL schema if introspection is enabled.
Something like this: https://github.com/oshosanya/graphql-export/blob/master/src/exporters/insomnia/insomnia.ts

Wow, that is awesome! It may be possible to do something similar via an Insomnia plugin in the near future!

Postman support this one but in a so bad model and because of that I switched to Insomnia and I saw you don't support it!
It's really simple just user select a file and u make the requests based on the GraphQL Schema and also he should have an ability to refresh the collection and the app add new requests based on that

Is this feature a possibility at all? It's the only thing stop me from switching from Postman. I'd ideally be able to generate queries and mutations with all the variables just like in Postman. And also be able to version each collection, as the API evolves.

Comment to keep alive, still very interested in this.

This would be epic

Yes please! It would be good it it could work something like importing a rest API from the openAPI spec.

Is this out?

If this is still alive, bump please. Especially after Postman's recent enforcement of cloud sync'd collections


Find host in local network by clients

Hi guys
I want in local network connection , one of the players create host and other clients connect that!
My problem is that , i want clients find host automatically , without entering the Host-IP.
Can anyone help me?

You need to perform discovery. This depends on your transport. In Ruffles there is a prewritten example for this: https://github.com/MidLevel/Ruffles/blob/master/Ruffles.Example/DiscoveryExample.cs

@TwoTenPvP Tanks a lot

@TwoTenPvP  Tanks a lot
I'm using Unet transport , can i solved this by that example?

I solved this problem.

I have an implementation for Networkdiscovery ready to use. Planning to commit it into contrib or MLAPI repository.

hi, im struggling with the ruffles example code for discovery. Could you tell me if the commit is already done, or when you do it, please, thanks in advance


Delayed/Trigger messages

Similar to the greeting module, it could be neat to register a message with Hal such that on an event, (time delay, log on, log off, etc) that message is sent.

Hmm... this would probably require implementing handlers to pass through other presence information to the registered modules. Possibly consider bucketing modules such that only those registered to receive certain information do, rather that try to send it to all of them?


Vec in SeaORM Entity Model Causes Compilation Error

Description
I am encountering an error when trying to use Vec<RoleEnum> with sea-orm's DeriveEntityModel macro. The error message indicates that the method into_value exists for ActiveValue<Vec<RoleEnum>>, but its trait bounds were not satisfied.
Steps to Reproduce

Use the CLI command to generate the entity:
sea-orm-cli generate entity -u postgres://postgres:postgres@db:5432/postgres -o entity/src -l --with-serde both --serde-skip-deserializing-primary-key
Use Vec<RoleEnum> as a field in a struct that derives DeriveEntityModel.
Run the build command:
cargo build --manifest-path crates/entity/Cargo.toml

Expected Behavior
The Vec<RoleEnum> should be correctly converted to sea_orm::Value and work seamlessly with DeriveEntityModel, but sea-orm-cli does not generate the necessary trait implementations.
Actual Behavior
The compiler throws an error indicating that sea_orm::Value: From<Vec> is not satisfied, and thus Vec cannot be converted into sea_orm::Value.
Additional Information
//! `SeaORM` Entity, @generated by sea-orm-codegen 1.0.0

use sea_orm::entity::prelude::*;
use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, PartialEq, Eq, EnumIter, DeriveActiveEnum, Serialize, Deserialize)]
#[sea_orm(rs_type = "String", db_type = "Enum", enum_name = "role_enum")]
pub enum RoleEnum {
    #[sea_orm(string_value = "admin")]
    Admin,
    #[sea_orm(string_value = "user")]
    User,
}

//! `SeaORM` Entity, @generated by sea-orm-codegen 1.0.0

use super::sea_orm_active_enums::RoleEnum;
use sea_orm::entity::prelude::*;
use serde::{Deserialize, Serialize};

#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, Serialize, Deserialize)]
#[sea_orm(table_name = "user")]
pub struct Model {
    #[sea_orm(primary_key, auto_increment = false)]
    #[serde(skip_deserializing)]
    pub id: Uuid,
    #[sea_orm(unique)]
    pub email: String,
    #[sea_orm(unique)]
    pub username: String,
    pub password: String,
    pub roles: Vec<RoleEnum>,
    pub status: i32,
}

#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)]
pub enum Relation {
    #[sea_orm(has_many = "super::worker::Entity")]
    Worker,
}

impl Related<super::worker::Entity> for Entity {
    fn to() -> RelationDef {
        Relation::Worker.def()
    }
}

impl ActiveModelBehavior for ActiveModel {}

dev ➜ /workspaces/workerd-manager (master) $ cargo build --manifest-path crates/entity/Cargo.toml
   Compiling entity v0.1.0 (/workspaces/workerd-manager/crates/entity)
error[E0277]: the trait bound `sea_orm::Value: From<Vec<RoleEnum>>` is not satisfied
  --> crates/entity/src/user.rs:7:35
   |
7  | #[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, Serialize, Deserialize)]
   |                                   ^^^^^^^^^^^^^^^^^ the trait `From<Vec<RoleEnum>>` is not implemented for `sea_orm::Value`, which is required by `Vec<RoleEnum>: Into<sea_orm::Value>`
   |
   = help: the following other types implement trait `From<T>`:
             <sea_orm::Value as From<&[u8]>>
             <sea_orm::Value as From<&std::string::String>>
             <sea_orm::Value as From<&str>>
             <sea_orm::Value as From<Cow<'_, str>>>
             <sea_orm::Value as From<JsonValue>>
             <sea_orm::Value as From<Vec<u8>>>
             <sea_orm::Value as From<bool>>
             <sea_orm::Value as From<char>>
           and 29 others
   = note: required for `Vec<RoleEnum>` to implement `Into<sea_orm::Value>`
note: required by a bound in `ActiveValue`
  --> /usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/sea-orm-1.0.0/src/entity/active_model.rs:42:8
   |
40 | pub enum ActiveValue<V>
   |          ----------- required by a bound in this enum
41 | where
42 |     V: Into<Value>,
   |        ^^^^^^^^^^^ required by this bound in `ActiveValue`
   = note: this error originates in the derive macro `DeriveEntityModel` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0277]: the trait bound `Vec<RoleEnum>: ValueType` is not satisfied
  --> crates/entity/src/user.rs:18:5
   |
18 |     pub roles: Vec<RoleEnum>,
   |     ^^^ the trait `ValueType` is not implemented for `Vec<RoleEnum>`
   |
   = help: the trait `ValueType` is implemented for `Vec<u8>`

error[E0277]: the trait bound `Vec<RoleEnum>: TryGetable` is not satisfied
  --> crates/entity/src/user.rs:7:35
   |
7  | #[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, Serialize, Deserialize)]
   |                                   ^^^^^^^^^^^^^^^^^ the trait `TryGetable` is not implemented for `Vec<RoleEnum>`
   |
   = help: the following other types implement trait `TryGetable`:
             Vec<T>
             Vec<u8>
note: required by a bound in `QueryResult::try_get`
  --> /usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/sea-orm-1.0.0/src/executor/query.rs:93:12
   |
91 |     pub fn try_get<T>(&self, pre: &str, col: &str) -> Result<T, DbErr>
   |            ------- required by a bound in this associated function
92 |     where
93 |         T: TryGetable,
   |            ^^^^^^^^^^ required by this bound in `QueryResult::try_get`
   = note: this error originates in the derive macro `DeriveEntityModel` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0277]: the trait bound `sea_orm::Value: From<Vec<RoleEnum>>` is not satisfied
 --> crates/entity/src/user.rs:7:35
  |
7 | #[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, Serialize, Deserialize)]
  |                                   ^^^^^^^^^^^^^^^^^ the trait `From<Vec<RoleEnum>>` is not implemented for `sea_orm::Value`, which is required by `Vec<RoleEnum>: Into<_>`
  |
  = help: the following other types implement trait `From<T>`:
            <sea_orm::Value as From<&[u8]>>
            <sea_orm::Value as From<&std::string::String>>
            <sea_orm::Value as From<&str>>
            <sea_orm::Value as From<Cow<'_, str>>>
            <sea_orm::Value as From<JsonValue>>
            <sea_orm::Value as From<Vec<u8>>>
            <sea_orm::Value as From<bool>>
            <sea_orm::Value as From<char>>
          and 29 others
  = note: required for `Vec<RoleEnum>` to implement `Into<sea_orm::Value>`
  = note: this error originates in the derive macro `DeriveEntityModel` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0277]: the trait bound `Vec<RoleEnum>: ValueType` is not satisfied
   --> crates/entity/src/user.rs:7:35
    |
7   | #[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, Serialize, Deserialize)]
    |                                   ^^^^^^^^^^^^^^^^^ the trait `ValueType` is not implemented for `Vec<RoleEnum>`
    |
    = help: the trait `ValueType` is implemented for `Vec<u8>`
note: required by a bound in `sea_orm::Value::unwrap`
   --> /usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/sea-query-0.31.0/src/value.rs:310:12
    |
308 |     pub fn unwrap<T>(self) -> T
    |            ------ required by a bound in this associated function
309 |     where
310 |         T: ValueType,
    |            ^^^^^^^^^ required by this bound in `Value::unwrap`
    = note: this error originates in the derive macro `DeriveEntityModel` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0277]: the trait bound `sea_orm::Value: From<Vec<RoleEnum>>` is not satisfied
 --> crates/entity/src/user.rs:7:35
  |
7 | #[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, Serialize, Deserialize)]
  |                                   ^^^^^^^^^^^^^^^^^ the trait `From<Vec<RoleEnum>>` is not implemented for `sea_orm::Value`, which is required by `ActiveValue<Vec<RoleEnum>>: Clone`
  |
  = help: the following other types implement trait `From<T>`:
            <sea_orm::Value as From<&[u8]>>
            <sea_orm::Value as From<&std::string::String>>
            <sea_orm::Value as From<&str>>
            <sea_orm::Value as From<Cow<'_, str>>>
            <sea_orm::Value as From<JsonValue>>
            <sea_orm::Value as From<Vec<u8>>>
            <sea_orm::Value as From<bool>>
            <sea_orm::Value as From<char>>
          and 29 others
  = note: required for `Vec<RoleEnum>` to implement `Into<sea_orm::Value>`
  = note: required for `ActiveValue<Vec<RoleEnum>>` to implement `Clone`
  = note: this error originates in the derive macro `Clone` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0277]: the trait bound `sea_orm::Value: From<Vec<RoleEnum>>` is not satisfied
 --> crates/entity/src/user.rs:7:35
  |
7 | #[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, Serialize, Deserialize)]
  |                                   ^^^^^^^^^^^^^^^^^ the trait `From<Vec<RoleEnum>>` is not implemented for `sea_orm::Value`, which is required by `ActiveValue<Vec<RoleEnum>>: Debug`
  |
  = help: the following other types implement trait `From<T>`:
            <sea_orm::Value as From<&[u8]>>
            <sea_orm::Value as From<&std::string::String>>
            <sea_orm::Value as From<&str>>
            <sea_orm::Value as From<Cow<'_, str>>>
            <sea_orm::Value as From<JsonValue>>
            <sea_orm::Value as From<Vec<u8>>>
            <sea_orm::Value as From<bool>>
            <sea_orm::Value as From<char>>
          and 29 others
  = note: required for `Vec<RoleEnum>` to implement `Into<sea_orm::Value>`
  = note: required for `ActiveValue<Vec<RoleEnum>>` to implement `Debug`
  = note: required for the cast from `&ActiveValue<Vec<RoleEnum>>` to `&dyn Debug`
  = note: this error originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0369]: binary operation `==` cannot be applied to type `ActiveValue<Vec<RoleEnum>>`
 --> crates/entity/src/user.rs:7:35
  |
7 | #[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, Serialize, Deserialize)]
  |                                   ^^^^^^^^^^^^^^^^^
  |
  = note: this error originates in the derive macro `PartialEq` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0277]: the trait bound `sea_orm::Value: From<Vec<RoleEnum>>` is not satisfied
   --> crates/entity/src/user.rs:7:35
    |
7   | #[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, Serialize, Deserialize)]
    |                                   ^^^^^^^^^^^^^^^^^ the trait `From<Vec<RoleEnum>>` is not implemented for `sea_orm::Value`, which is required by `Vec<RoleEnum>: Into<sea_orm::Value>`
    |
    = help: the following other types implement trait `From<T>`:
              <sea_orm::Value as From<&[u8]>>
              <sea_orm::Value as From<&std::string::String>>
              <sea_orm::Value as From<&str>>
              <sea_orm::Value as From<Cow<'_, str>>>
              <sea_orm::Value as From<JsonValue>>
              <sea_orm::Value as From<Vec<u8>>>
              <sea_orm::Value as From<bool>>
              <sea_orm::Value as From<char>>
            and 29 others
    = note: required for `Vec<RoleEnum>` to implement `Into<sea_orm::Value>`
note: required by a bound in `ActiveValue::<V>::unchanged`
   --> /usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/sea-orm-1.0.0/src/entity/active_model.rs:775:8
    |
775 |     V: Into<Value>,
    |        ^^^^^^^^^^^ required by this bound in `ActiveValue::<V>::unchanged`
...
788 |     pub fn unchanged(value: V) -> Self {
    |            --------- required by a bound in this associated function
    = note: this error originates in the derive macro `DeriveEntityModel` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0599]: the method `into_wrapped_value` exists for enum `ActiveValue<Vec<RoleEnum>>`, but its trait bounds were not satisfied
   --> crates/entity/src/user.rs:7:35
    |
7   | #[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, Serialize, Deserialize)]
    |                                   ^^^^^^^^^^^^^^^^^ method cannot be called on `ActiveValue<Vec<RoleEnum>>` due to unsatisfied trait bounds
    |
   ::: /usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/sea-query-0.31.0/src/value.rs:132:1
    |
132 | pub enum Value {
    | -------------- doesn't satisfy `sea_orm::Value: From<Vec<RoleEnum>>`
    |
   ::: /usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:398:1
    |
398 | pub struct Vec<T, #[unstable(feature = "allocator_api", issue = "32838")] A: Allocator = Global> {
    | ------------------------------------------------------------------------------------------------ doesn't satisfy `Vec<RoleEnum>: Into<sea_orm::Value>`
    |
    = note: the following trait bounds were not satisfied:
            `sea_orm::Value: From<Vec<RoleEnum>>`
            which is required by `Vec<RoleEnum>: Into<sea_orm::Value>`
    = note: this error originates in the derive macro `DeriveEntityModel` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0599]: the method `clone` exists for enum `ActiveValue<Vec<RoleEnum>>`, but its trait bounds were not satisfied
   --> crates/entity/src/user.rs:7:35
    |
7   | #[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, Serialize, Deserialize)]
    |                                   ^^^^^^^^^^^^^^^^^ method cannot be called on `ActiveValue<Vec<RoleEnum>>` due to unsatisfied trait bounds
    |
   ::: /usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/sea-orm-1.0.0/src/entity/active_model.rs:40:1
    |
40  | pub enum ActiveValue<V>
    | ----------------------- doesn't satisfy `ActiveValue<Vec<RoleEnum>>: Clone`
    |
   ::: /usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:398:1
    |
398 | pub struct Vec<T, #[unstable(feature = "allocator_api", issue = "32838")] A: Allocator = Global> {
    | ------------------------------------------------------------------------------------------------ doesn't satisfy `Vec<RoleEnum>: Into<sea_orm::Value>`
    |
    = note: the following trait bounds were not satisfied:
            `Vec<RoleEnum>: Into<sea_orm::Value>`
            which is required by `ActiveValue<Vec<RoleEnum>>: Clone`
    = note: this error originates in the derive macro `DeriveEntityModel` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0277]: the trait bound `sea_orm::Value: From<Vec<RoleEnum>>` is not satisfied
   --> crates/entity/src/user.rs:7:35
    |
7   | #[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, Serialize, Deserialize)]
    |                                   ^^^^^^^^^^^^^^^^^ the trait `From<Vec<RoleEnum>>` is not implemented for `sea_orm::Value`, which is required by `Vec<RoleEnum>: Into<sea_orm::Value>`
    |
    = help: the following other types implement trait `From<T>`:
              <sea_orm::Value as From<&[u8]>>
              <sea_orm::Value as From<&std::string::String>>
              <sea_orm::Value as From<&str>>
              <sea_orm::Value as From<Cow<'_, str>>>
              <sea_orm::Value as From<JsonValue>>
              <sea_orm::Value as From<Vec<u8>>>
              <sea_orm::Value as From<bool>>
              <sea_orm::Value as From<char>>
            and 29 others
    = note: required for `Vec<RoleEnum>` to implement `Into<sea_orm::Value>`
note: required by a bound in `ActiveValue::<V>::set`
   --> /usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/sea-orm-1.0.0/src/entity/active_model.rs:775:8
    |
775 |     V: Into<Value>,
    |        ^^^^^^^^^^^ required by this bound in `ActiveValue::<V>::set`
...
778 |     pub fn set(value: V) -> Self {
    |            --- required by a bound in this associated function
    = note: this error originates in the derive macro `DeriveEntityModel` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0277]: the trait bound `sea_orm::Value: From<Vec<RoleEnum>>` is not satisfied
   --> crates/entity/src/user.rs:7:35
    |
7   | #[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, Serialize, Deserialize)]
    |                                   ^^^^^^^^^^^^^^^^^ the trait `From<Vec<RoleEnum>>` is not implemented for `sea_orm::Value`, which is required by `Vec<RoleEnum>: Into<sea_orm::Value>`
    |
    = help: the following other types implement trait `From<T>`:
              <sea_orm::Value as From<&[u8]>>
              <sea_orm::Value as From<&std::string::String>>
              <sea_orm::Value as From<&str>>
              <sea_orm::Value as From<Cow<'_, str>>>
              <sea_orm::Value as From<JsonValue>>
              <sea_orm::Value as From<Vec<u8>>>
              <sea_orm::Value as From<bool>>
              <sea_orm::Value as From<char>>
            and 29 others
    = note: required for `Vec<RoleEnum>` to implement `Into<sea_orm::Value>`
note: required by a bound in `ActiveValue::<V>::not_set`
   --> /usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/sea-orm-1.0.0/src/entity/active_model.rs:775:8
    |
775 |     V: Into<Value>,
    |        ^^^^^^^^^^^ required by this bound in `ActiveValue::<V>::not_set`
...
798 |     pub fn not_set() -> Self {
    |            ------- required by a bound in this associated function
    = note: this error originates in the derive macro `DeriveEntityModel` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0599]: the method `is_not_set` exists for enum `ActiveValue<Vec<RoleEnum>>`, but its trait bounds were not satisfied
   --> crates/entity/src/user.rs:7:35
    |
7   | #[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, Serialize, Deserialize)]
    |                                   ^^^^^^^^^^^^^^^^^ method cannot be called on `ActiveValue<Vec<RoleEnum>>` due to unsatisfied trait bounds
    |
   ::: /usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/sea-query-0.31.0/src/value.rs:132:1
    |
132 | pub enum Value {
    | -------------- doesn't satisfy `sea_orm::Value: From<Vec<RoleEnum>>`
    |
   ::: /usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:398:1
    |
398 | pub struct Vec<T, #[unstable(feature = "allocator_api", issue = "32838")] A: Allocator = Global> {
    | ------------------------------------------------------------------------------------------------ doesn't satisfy `Vec<RoleEnum>: Into<sea_orm::Value>`
    |
    = note: the following trait bounds were not satisfied:
            `sea_orm::Value: From<Vec<RoleEnum>>`
            which is required by `Vec<RoleEnum>: Into<sea_orm::Value>`
    = note: this error originates in the derive macro `DeriveEntityModel` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0599]: the method `reset` exists for enum `ActiveValue<Vec<RoleEnum>>`, but its trait bounds were not satisfied
   --> crates/entity/src/user.rs:7:35
    |
7   | #[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, Serialize, Deserialize)]
    |                                   ^^^^^^^^^^^^^^^^^ method cannot be called on `ActiveValue<Vec<RoleEnum>>` due to unsatisfied trait bounds
    |
   ::: /usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/sea-query-0.31.0/src/value.rs:132:1
    |
132 | pub enum Value {
    | -------------- doesn't satisfy `sea_orm::Value: From<Vec<RoleEnum>>`
    |
   ::: /usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:398:1
    |
398 | pub struct Vec<T, #[unstable(feature = "allocator_api", issue = "32838")] A: Allocator = Global> {
    | ------------------------------------------------------------------------------------------------ doesn't satisfy `Vec<RoleEnum>: Into<sea_orm::Value>`
    |
    = note: the following trait bounds were not satisfied:
            `sea_orm::Value: From<Vec<RoleEnum>>`
            which is required by `Vec<RoleEnum>: Into<sea_orm::Value>`
    = note: this error originates in the derive macro `DeriveEntityModel` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0277]: the trait bound `sea_orm::Value: From<Vec<RoleEnum>>` is not satisfied
  --> crates/entity/src/user.rs:7:35
   |
7  | #[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, Serialize, Deserialize)]
   |                                   ^^^^^^^^^^^^^^^^^ the trait `From<Vec<RoleEnum>>` is not implemented for `sea_orm::Value`, which is required by `Vec<RoleEnum>: Into<sea_orm::Value>`
   |
   = help: the following other types implement trait `From<T>`:
             <sea_orm::Value as From<&[u8]>>
             <sea_orm::Value as From<&std::string::String>>
             <sea_orm::Value as From<&str>>
             <sea_orm::Value as From<Cow<'_, str>>>
             <sea_orm::Value as From<JsonValue>>
             <sea_orm::Value as From<Vec<u8>>>
             <sea_orm::Value as From<bool>>
             <sea_orm::Value as From<char>>
           and 29 others
   = note: required for `Vec<RoleEnum>` to implement `Into<sea_orm::Value>`
note: required by a bound in `NotSet`
  --> /usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/sea-orm-1.0.0/src/entity/active_model.rs:42:8
   |
42 |     V: Into<Value>,
   |        ^^^^^^^^^^^ required by this bound in `NotSet`
...
49 |     NotSet,
   |     ------ required by a bound in this unit variant
   = note: this error originates in the derive macro `DeriveEntityModel` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0599]: the method `into_value` exists for enum `ActiveValue<Vec<RoleEnum>>`, but its trait bounds were not satisfied
   --> crates/entity/src/user.rs:7:35
    |
7   | #[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, Serialize, Deserialize)]
    |                                   ^^^^^^^^^^^^^^^^^ method cannot be called on `ActiveValue<Vec<RoleEnum>>` due to unsatisfied trait bounds
    |
   ::: /usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/sea-query-0.31.0/src/value.rs:132:1
    |
132 | pub enum Value {
    | -------------- doesn't satisfy `sea_orm::Value: From<Vec<RoleEnum>>`
    |
   ::: /usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:398:1
    |
398 | pub struct Vec<T, #[unstable(feature = "allocator_api", issue = "32838")] A: Allocator = Global> {
    | ------------------------------------------------------------------------------------------------ doesn't satisfy `Vec<RoleEnum>: Into<sea_orm::Value>`
    |
    = note: the following trait bounds were not satisfied:
            `sea_orm::Value: From<Vec<RoleEnum>>`
            which is required by `Vec<RoleEnum>: Into<sea_orm::Value>`
    = note: this error originates in the derive macro `DeriveEntityModel` (in Nightly builds, run with -Z macro-backtrace for more info)

Some errors have detailed explanations: E0277, E0369, E0599.
For more information about an error, try `rustc --explain E0277`.
error: could not compile `entity` (lib) due to 20 previous errors

Versions
$ cargo tree | grep sea-
    │   ├── sea-orm v1.0.0
    │   │   ├── sea-orm-macros v1.0.0 (proc-macro)
    │   │   │   ├── sea-bae v0.2.0 (proc-macro)
    │   │   ├── sea-query v0.31.0
    │   │   │   ├── sea-query-derive v0.4.1 (proc-macro)
    │   │   ├── sea-query-binder v0.6.0
    │   │   │   ├── sea-query v0.31.0 (*)
    │   └── sea-orm-migration v1.0.0
    │       ├── sea-orm v1.0.0 (*)
    │       ├── sea-orm-cli v1.0.0
    │       │   ├── sea-schema v0.15.0
    │       │   │   ├── sea-query v0.31.0 (*)
    │       │   │   └── sea-schema-derive v0.3.0 (proc-macro)
    │       ├── sea-schema v0.15.0 (*)
    │   └── sea-orm v1.0.0 (*)

Fix by add features "postgres-array". PR https://github.com/SeaQL/sea-orm/pull/1210


Zez/2023 01 25 prefer hanging trailing commas

Closed in favour of https://github.com/dprint/dprint-plugin-typescript/pull/482


CSUB-114: Test weights update. Don't merge!

DON'T MERGE!

Codecov Report

Merging #198 (1b22375) into testnet (5569ce8) will increase coverage by 10.58%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##           testnet     #198       +/-   ##
============================================
+ Coverage    56.73%   67.32%   +10.58%
============================================
  Files           33       34        +1
  Lines         5485     6779     +1294
============================================
+ Hits          3112     4564     +1452
+ Misses        2373     2215      -158

Impacted Files
Coverage Δ

node/rpc/src/friendly.rs
0.00% <ø> (ø)

node/src/service.rs
0.00% <ø> (ø)

pallets/creditcoin/src/helpers.rs
92.68% <ø> (+1.32%)
:arrow_up:

pallets/creditcoin/src/helpers/external_address.rs
98.07% <ø> (-1.93%)
:arrow_down:

pallets/creditcoin/src/lib.rs
87.82% <ø> (+0.90%)
:arrow_up:

pallets/creditcoin/src/migrations/mod.rs
0.00% <ø> (ø)

pallets/creditcoin/src/migrations/v1.rs
97.22% <ø> (+97.22%)
:arrow_up:

pallets/creditcoin/src/migrations/v2.rs
97.81% <ø> (+97.81%)
:arrow_up:

pallets/creditcoin/src/migrations/v3.rs
100.00% <ø> (ø)

pallets/creditcoin/src/mock.rs
93.75% <ø> (+0.64%)
:arrow_up:

... and 24 more

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more

Done testing. Closing.


In android is moved text

Hi, I'm using your library, thanks for the contribution, trying to adapt in android looks a bit fuzzy.

It looks like the "overflow: hidden" prop  does't work without borders on Android and the "up" and "down" lists of items are not clipped. When I specified borders (by setting borderStyle or borderColor) for their views, it works well. But it is rather a hack. Maybe there is a beter solution.

I fellow borderColor solution, thanks.


Display link to note when using LIST WITHOUT ID

Is your feature request related to a problem? Please describe.
I would like to use the "LIST WITHOUT ID" query but I need to be able to navigate to the displayed notes
Describe the solution you'd like
Being able to specify that even while I'm showing a field which is not the note id, I want it to be generated with a link to the note
Describe alternatives you've considered
Additional context

Can you include your query? You can manually create links using the link(path, [displayname]) function.

Also, you can reference file links via file.link, which will render as a link.


Add AstroSlay app

Hey there. Wondering if you could email me at<EMAIL_ADDRESS>Want to chat about PWA's and your app.


Updated 'Connection draining' section

Connection draining works as per connections, not as per requests. If a connection is still available, subsequent requests can still go to a de-registering backend server.

@sevelho : Thanks for your contribution! The author(s) have been notified to review your proposed change.


Remove collection conformances to Equatable and Hashable

Implementing Equatable (and especially Hashable) correctly isn't straightforward for some of the non-trivial collection wrappers in this package, if we consider collections to be equal if they produce the same elements. Here are some examples of comparisons that should evaluate to true, despite the collections having unequal base collections:
[1, 3, 5].striding(by: 1)         == [1, 2, 3, 4, 5].striding(by: 2)
[1, 2].windows(ofCount: 10)       == [1, 2, 3].windows(ofCount: 100)
product([1, 2], "")               == product([1, 2, 3], "")
chain([1, 2], 3..<6)              == chain([1, 2, 3], 4..<6)
[1, 2].combinations(ofCount: 0)   == [1, 2, 3].combinations(ofCount: 0)
[1, 1, 1, 2].uniquePermutations() == [1, 2].uniquePermutations()
[1, 1, 1].cycled(times: 2)        == [1, 1].cycled(times: 3)

Implementing Hashable is often even harder because equal values should produce equal hash values, and therefore every collection needs to hash in the exact same way as all other collections equal to it.
For the moment we're removing all conformances of the sequence and collection types to Equatable and Hashable to avoid any ambiguity on this front, which is consistent with sequence and collection adaptors in the standard library. Most of the time s1.elementsEqual(s2) should be preferred anyway, because it lets you compare sequences that aren't instances of the same type.
Checklist

[ ] I've added at least one test that validates that my change is working, if appropriate
[x] I've followed the code style of the rest of the project
[x] I've read the Contribution Guidelines
[x] I've updated the documentation if necessary

@swift-ci please test

@swift-ci Please test


increase cpu request

increase cpu request to 30m

@bitscuit seems base image quay.io/operator-framework/helm-operator@sha256:f71445df3da4bd393ac1c07b469051686c71497bfd00817520a720b7b18f47ed doesn't exist


Molten fusion fuels missing for 2.9c

Using 2.9c on FTB Revelation 1.4. Updated manually from 2.9 and still cannot see any Lithium or Boron variants in the Melter. Was this feature added? How is one supposed to make the molten fuels for the Fusion reactor.
Thanks in advance. Love the mod....

Hi there - to get the molten lithium and boron you need to melt the individual isotopes, which you get from processing lithium/boron in the isotope separator.

Understood but they won't go into the melter either. There doesn't appear to be a pattern for it. I can get the isotopes from the seperator but no luck with those on the melter.

Ah, my mistake - somehow I managed to break the lithium and boron melting recipes - will get a fix out shortly!

Fixed in version 2.9d - https://minecraft.curseforge.com/projects/nuclearcraft-mod/files/2526922


Upgrade Spark to latest version 2.1.0

Upgrade Spark to latest version 2.1.0

You don't need the revision.md anymore. Can you get rid of that commit, no one is depending on this PR so you can force push to remove it.

Current coverage is 65.41% (diff: 100%)

Merging #1870 into master will increase coverage by 0.02%

@@             master      #1870   diff @@
==========================================
  Files           367        367
  Lines         17871      17871
  Methods       17517      17517
  Messages          0          0
  Branches        217        217
==========================================
+ Hits          11686      11691     +5
+ Misses         6185       6180     -5
  Partials          0          0

Powered by Codecov. Last update 7c8eb6f...ee63b51

@jedesah this PR was merged with latest master, I think we can upgrade Spark

Why does it say there are no changes?

Also, don't forget to update this version to be in sync with Spark

We don't want to upgrade anymore?

@jedesah I'm running sbt compile right now on fresh branch. Will close this PR with link to the new one

Duplicated by https://github.com/quasar-analytics/quasar/pull/1908


Move development only types into top level types/ folder.

This makes it much easier to understand that these are effectively vendored types (aka not types for our consumers, but types for our internals).

Definitely 👍 here although typescript seems not to like the tsconfig


Add proc macros for Hint and edge

See also #61

To comment on a5e1249: I'm not sure why it suddenly stopped compiling.
What I did was delete the Cargo.lock and let cargo recreate it, which fixed the issue (apart from a slight oversight I fixed with 2f84dd1.)

How hard would it be to write some tests?
I unfortunately won't be able to fully review this until tuesday, but I'll try adding some first comments tomorrow

How hard would it be to write some tests?

I'm not sure. Tests have to compare the output of functions with a predetermined result, which could turn out tricky with token streams. Doing it with quote should work reasonably well but there may be issues popping up regarding spans.
So if that fails, maybe a to_string comparison could work but I'm also not sure on that.
Long story short: I'm not sure and I'll try to write some tests tomorrow and see how it goes


Support test-id filtering

When I want to rerun failed tests only I need to provide their IDs to test framework somehow. This approach does not always work for some frameworks like unittest: (you can't combile discover (used to run tests in file) with test ids).
It would be nice to use same arguments to run tests first time and to rerun failed but provide list of "tests to ignore" (or, even better, "tests to include") to prevent green tests from start,

BTW, I already reported https://github.com/JetBrains/teamcity-messages/issues/124
Not sure if we it duplicates request or not

oh:(
https://youtrack.jetbrains.com/issue/PY-23416

https://youtrack.jetbrains.com/issue/PY-20457


Process for adding to documentation....

Not an issue, but what is the state of documentation.  I gather DocFX is now dead.  What is/are the main Ziti sites now?  How can I help with doco (if at all).  Maybe have a “how to add to our documentation” page.  I still like the “Big Book of Ziti” idea which is a full manual.

Correct, we switched https://openziti.github.io/ from DocFX to Docusaurus for static page generation. This is the main Ziti site. There's also the blog site.
Now the Markdown source is all under the "docusaurus" folder in https://github.com/openziti/ziti-doc/tree/main/docusaurus. The main README for this repo attempts to give you what you need to contribute to docs. If it falls short, then our first improvement should be there!
Generally speaking, docs input is warmly welcomed. Remember to use GitHub verified commits. This is typically accomplished by GPG signing commits with git. Edits made in the web browser are verified too. If you're considering a major change it's best to start a conversation first by opening a GH issue in this repo detailing the goal you have in mind, or problem you'd like to solve.

Thanks.  As a comment, which may need to be pulled out to a separate issue, but it relates to the README.  I think the README needs to have some definition about destination of documents.
So...
There are a number of sections that are split out - that being Docs
APIs
Guides
Glossary
Ops
What determines if some documentation belongs in the Doc section, or if it is an Ops section document?   I wonder if the Ops section should just fall under Docs?
Consolidation
There is also technical documentation split out across the documentation.  For example, if I want to understand about controller configuration, there are currently two places to find information:

https://openziti.github.io/operations/configuration/controller
https://openziti.github.io/operations/controller.

Should we consolidate all controller documentation in the one place under the heading of Controller?  This would be the same for other components.
Say I want to find out about Posture Checks.  I want to implement it for instance.  I would think that this documentation would exist as an Ops type documentation.  But no, I need to perform a search, and then find it under Core Concepts > Security > Authorization > Posture Checks.  Totally not where I would expect.  What I would expect is most of that page content would be under Ops.  The Core concept would explain what it is, what it can do, but the actual implementation is under Ops.
Also, wanting some definition around what is a Guide and what is a Blog.  Reason for this, looking at the blog site, there are articles such as this: https://blog.openziti.io/setting-up-oracle-cloud-to-host-openziti.  Most of this article is actually a guide on how to do it.  So, should this be moved to the guide section?

This is such a difficult area and everyone ends up having an opinion. Sometimes there's total agreement, lately there's been a lot of disagreement over this particular topic.  It seems like the Ops section is destined to be removed. We have a weekly meeting around doc on monday. I'll bring this up then. I expect there will be changes made to this organization very soon, if not next week. It's also an ever-green area for improvements, so your feedback is useful.
In general, many of the ideas presented in this video resonate with me https://www.youtube.com/watch?v=t4vKPhjcMZg. It's worth a watch. I think most people who review that video come away with the same general idea.
Here's my general thoughts on the matter. I have "learning" sketched out locally but haven't pushed it yet.

Guides/How-Tos - these don't explain. they get right to the point and tell: "do this, do that, look you did it"
Blogs - hey we did this, it was neat, check it out, here's the bumps, here's how I did it, here's why. Longer form content.
Reference Doc - details. lots of details. often very technical with low amount of explanation
Learning/Tutorials - explain in depth. what each step does, what it is, what it represents. much longer content, gets you to the same place as a guide/how-to but explains much more

FOLLOWING IS JUST THOUGHTS...
So I found myself thinking about this, for reasons unknown.  I looked at the video.  I think this concept is fine if what you are developing is developer focused.  Which then got me to thinking.  OpenZiti is a project of two halves.
The first half is developer focused: SDKs.  Maybe documentation layout as per the video is fine for the developers.  Guides would be like the 'hello world' example.  Reference Doc would be Doxygen output (Classes / Methods etc), Howto is about doing different aspects, ie MFA (no idea just spit-balling)...
The second half is end user focused: Ziti Overlay.  This may (probably) be a different documentation style from the developer documentation.
An example of the difference would be: Reference documentation
Developer: Class constructors/destructors/methods/properties documentation - pulled from source code (yah for Doxygen)
End User: Topic (ie MFA) with description and configuration example.
I read a lot of CakePHP documentation and they have a theme that runs through all the documentation.  They start with the My first application tutorial which is a web based Book catalogue.  Then, all through the document, any examples are referenced to that tutorial.  For instance, when you look up how to do database finds using the framework, the examples given are finding book, authors or combination of both - just food for thought.
So, just thought that different documentation styles might be an idea.?
In regards to your types...
"Blogs - hey we did this, it was neat, check it out, here's the bumps, here's how I did it, here's why. Longer form content." - the concern I have is with the here's how I did it as this is a guides document.  I wonder if it would be "Blogs - hey we did this, it was neat, check it out, here's the bumps, here's why, here's a link to the guide. Longer form content.".

To your point @gooseleggs, my hope is this reorganization serves both types of reader: developer and operator, by structuring the documentation around the progressive learning experience: introduction, then reference, then guides.
What do you think about the new outline, at least the rough high-level organization and nav? I'm actively incorporating some additional feedback that will further refine the presentation and navigability.