Stepper motor parameter units are unknown in the Output Config Display tab.

Is your feature request related to a problem? Please describe.
The Output Config Display tab for stepper motor configuration is unclear about what are the units of the three parameters required to configure the stepper motor.  Namely: Full revolution, Speed and Acceleration.
Describe the solution you'd like
Clear definition of the units in the window labels.  Without units, how can a user set the speed of the stepper to exactly 100 rpm.  Trial and error seems to be the only way currently.
Describe alternatives you've considered
Nothing is currently specified, so saying speed of 800 with acceleration of 1200 is meaningless.
Additional context
None

Yes, they are mapped 1:1.

Says here that speed up to 4000 steps per second can reliably be obtained with the Accelstepper library
https://www.airspayce.com/mikem/arduino/AccelStepper/classAccelStepper.html
Is that an error then?


Add type coercion for UDFs in logical plan

Which issue does this PR close?

Closes # TBD
Follows on from https://github.com/apache/arrow-datafusion/pull/3222 and https://github.com/apache/arrow-datafusion/pull/3250
Rationale for this change

We currently perform type coercion for UDFs in the physical planner/optimizer. I would like to have this logic in the logical plan so that other projects (such as Dask SQL) can benefit from this.
What changes are included in this PR?

Update the TypeCoercion rule to support Scalar UDFs

Are there any user-facing changes?

Yes, logical plans will be different in some cases.

Codecov Report

Merging #3254 (e6b4df3) into master (bdc56ca) will increase coverage by 0.08%.
The diff coverage is 97.45%.

@@            Coverage Diff             @@
##           master    #3254      +/-   ##
==========================================
+ Coverage   85.84%   85.93%   +0.08%
==========================================
  Files         293      294       +1
  Lines       53246    53419     +173
==========================================
+ Hits        45710    45905     +195
+ Misses       7536     7514      -22

Impacted Files
Coverage Δ

datafusion/core/tests/parquet_pruning.rs
99.43% <ø> (ø)

datafusion/core/tests/sql/aggregates.rs
99.37% <ø> (ø)

datafusion/core/tests/sql/decimal.rs
100.00% <ø> (ø)

datafusion/core/tests/sql/expr.rs
99.85% <ø> (+<0.01%)
:arrow_up:

datafusion/core/tests/sql/joins.rs
99.33% <ø> (ø)

datafusion/core/tests/sql/predicates.rs
100.00% <ø> (ø)

datafusion/core/tests/sql/subqueries.rs
94.24% <ø> (-0.09%)
:arrow_down:

datafusion/core/tests/sql/timestamp.rs
99.65% <ø> (ø)

datafusion/core/src/datasource/view.rs
86.54% <86.95%> (-0.03%)
:arrow_down:

datafusion/optimizer/src/type_coercion.rs
99.02% <99.02%> (ø)

... and 23 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

@alamb Here is another type coercion rule that we can now add

@andygrove @alamb Can we give a plan for the migration of type coercion?

👍 looks great @andygrove
This will likely conflict with #3379
For what it is worth, I would love to move all type coercion rules out of physical planning and into this phase (aka consolidate all coercion)

we can do this after migrating the type coercion from the physical phase to logical phase.

I will review it tomorrow, it's too later for me today

After the refactor of the type coercion, do we need to forbid to creation of physical expr directly

After the refactor of the type coercion, do we need to forbid to creation of physical expr directly？

I would personally prefer allow creating PhysicalExprs but not providing automatic coercion (leaving it up to the user to use the proper types)

After the refactor of the type coercion, do we need to forbid to creation of physical expr directly？

I would personally prefer allow creating PhysicalExprs but not providing automatic coercion (leaving it up to the user to use the proper types)

A+B will get the common data type C in the logical phase, but it will also affected in the physical phase.
C+C will convert the D data type, but I can't find this changes after this https://github.com/apache/arrow-datafusion/pull/3222 merged.
I want to find out why

After the refactor of the type coercion, do we need to forbid to creation of physical expr directly？

I would personally prefer allow creating PhysicalExprs but not providing automatic coercion (leaving it up to the user to use the proper types)

A+B will get the common data type C in the logical phase, but it will also affected in the physical phase. C+C will convert the D data type, but I can't find this changes after this #3222 merged. I want to find out why

I think I find a bug https://github.com/apache/arrow-datafusion/blob/c359018baa8bbb0a227e83df948c903cde4d701f/datafusion/expr/src/binary_rule.rs#L293 for the type coercion in arithmetic op.
@andygrove  @alamb
If we move the type coercion to the logical phase, the type coercion will apply the binary op twice.
For the arithmetic operation, the decimal128(10,0) + decimal128(10,0) will get decimal128(11,0).
If the rule was applied to the op twice, the result type should be decimal(12,0);

After the refactor of the type coercion, do we need to forbid to creation of physical expr directly？

I would personally prefer allow creating PhysicalExprs but not providing automatic coercion (leaving it up to the user to use the proper types)

A+B will get the common data type C in the logical phase, but it will also affected in the physical phase. C+C will convert the D data type, but I can't find this changes after this #3222 merged. I want to find out why

I think I find a bug https://github.com/apache/arrow-datafusion/blob/c359018baa8bbb0a227e83df948c903cde4d701f/datafusion/expr/src/binary_rule.rs#L293 for the type coercion in arithmetic op.
@andygrove  @alamb
If we move the type coercion to the logical phase, the type coercion will apply the binary op twice.
For the arithmetic operation, the decimal128(10,0) + decimal128(10,0) will get decimal128(11,0).
If the rule was applied to the op twice, the result type should be decimal(12,0);


Share to SNS

share to Twitter
share to Facebook

https://github.com/nygardk/react-share

Done


No indicator for skipped test cases on 2.2.0 reporter

Describe the bug

2.1.5 https://stackblitz.com/edit/vitest-dev-vitest-fuycoy?file=test%2Fbasic.test.ts

 DEV  v2.1.5 /home/projects/vitest-dev-vitest-fuycoy
      UI started at http://localhost:51204/__vitest__/

 ✓ test/basic.test.ts (3)
   ✓ Math.sqrt()
   ↓ Squared [skipped]
   ✓ JSON

2.2.0-beta.2 https://stackblitz.com/edit/vitest-dev-vitest-nfatqs?file=test%2Fbasic.test.ts

 DEV  v2.2.0-beta.2 /home/projects/vitest-dev-vitest-fuycoy
      UI started at http://localhost:51204/__vitest__/

 ✓ test/basic.test.ts (3 tests | 1 skipped) 2ms
   ✓ Math.sqrt()
   ✓ Squared
   ✓ JSON

Reproduction
https://stackblitz.com/edit/vitest-dev-vitest-nfatqs?file=test%2Fbasic.test.ts
System Info
System:
    OS: Linux 5.0 undefined
    CPU: (8) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
    Memory: 0 Bytes / 0 Bytes
    Shell: 1.0 - /bin/jsh
  Binaries:
    Node: 18.20.3 - /usr/local/bin/node
    Yarn: 1.22.19 - /usr/local/bin/yarn
    npm: 10.2.3 - /usr/local/bin/npm
    pnpm: 8.15.6 - /usr/local/bin/pnpm
  npmPackages:
    @vitest/ui: 2.2.0-beta.2 => 2.2.0-beta.2
    vite: latest => 5.4.11
    vitest: 2.2.0-beta.2 => 2.2.0-beta.2

Used Package Manager
npm
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

Does latest main fix this? https://pkg.pr.new/vitest@main

https://github.com/vitest-dev/vitest/pull/6932/commits/d562da0b5402cf460d28c6d3dd816c9e56a52efe

Ah, I didn't see the commit there. I was testing on top of main but just one commit before that PR.
It's looking good after rebase :+1:
 DEV  v2.2.0-beta.2 /home/hiroshi/code/others/vitest/test/attest/fixtures

⏳ Waiting for TypeScript to check your project (this may take a while)...
 ✓ test/snapshot.test.ts (4 tests | 3 skipped) 13ms
   ✓ inline snapshot
   ↓ file snapshot
   ↓ type error
   ↓ completions


TnReservation.create: JAXBException occurred

JAXBException occurred : unexpected element (uri:"", local:"TnReservation"). Expected elements are <{}Reservation>

var request = client.createPostRequest(client.concatAccountPath(TN_RESERVATION_PATH), {TnReservation: item});

iris.TnReservation.create(client, {"reservedTn": number}, function(err, reservation) {
  if (err) {
    return done(err);
  }
  if (!reservation || !reservation.reservationId) {
    return done('Phone number is not reserver!');
  }
}

This is the example in the Dashboard API docs:
<Reservation>
    <ReservedTn>4354770625</ReservedTn>
</Reservation>

And this is what Node SDK is sending:
<TnReservation>
  <ReservedTn>5202315011</ReservedTn>
</TnReservation>

This is how I am making the request:
iris.TnReservation.create(
    {reservedTn: '5202315011'},
    next
);

Fixed


Incompatibility Between Docker and Microsoft Home

People on Windows Home may have compatibility issues with Docker. This is because you can only download Docker Toolkit and not Docker 1.12.0 or later which you need for this codelab. However, you can still run Cloud Datalab notebooks on Google Cloud Platform.
If you are having issues running this with Docker would suggest you to do the following:

Enable Billing and ensure you have APIs enabled for Google Cloud Platform as well as Compute Engine API .

Make sure you download the Google Cloud SDK.

Login to Google on the Google Cloud SDK Shell with command: $ gcloud auth login

Make sure you set your project ID:   $ gcloud config set project PROJECT_ID

Follow the rest of the steps here (but some of the g Cloud SDK Shell commands are not intuitive):
https://cloud.google.com/datalab/docs/quickstarts/quickstart-gcp-frontend

Thanks. The local Docker version of Datalab will be deprecated soon, so I changed the preparation instruction to use "datalab create" command.


SSL Internal Error

While attempting to pull a new SSL cert from Let's Encrypt I get an internal error message.  Both via SSL and adding a New Host. The NGP image is of course container, and on a Debian 10 machine. I'm a bit new to this so please let me know what other information you might need.

Morning. Port shows as not reachable but both my router settings and the use of the proxy manager is present over port 80.  If I use the IP:80 I go directly to where I set redirect to.

Rolled back to V2.2.1. Certs and everything were working beautifully yesterday. As of today unable to create new certs and I get an internal error. Able to ping "acme-v02.api.letsencrypt.org" and both port 80 and 443 are accessible and confirmed via port checker.

What the logs are saying ?

Oddly enough it just started working as I was going to open one up to push the log. I'll find an older log with the error and post it up.

https://pastebin.com/eW3YuMBV

Look at the last line of the log: there was an issue with DNS... Maybe a glitch on your side or with DuckDNS ?


Tantivy index

Agreed.
I just want to spend a little bit of time identifying why some of the entities we're not matching are missing - if they're dropping out because they're not coming up as candidates, or some bug somewhere. But definitely want to make better use of the tokenisation available in tantivy


Feature/encryption

End-to-End Encryption implemented and documented.
Todo:

[x] Review
[x] Fix Merge Conflict @TKussel
[ ] Merge Wed 7th 15:00

Ready for merge Wed 7th 15:00


Login and registration page setup using device

Pull Request: Login and Registration Page Setup
Description
This pull request implements the setup of the login and registration pages in our Ruby on Rails application using Devise for authentication.
Changes Made

Created the Devise user model to handle user authentication.
Set up the user registration view and controller actions.
Implemented the login view and controller actions.
Configured routes for user registration and login.
Added necessary views, templates, and forms for user registration and login.
Integrated device views for login and registration.

Checklist

[x] User registration page is functional.
[x] User login page is functional.
[x] User authentication is working as expected.

Additional Notes
Please review and provide feedback on the implemented login and registration pages. Any suggestions or improvements are welcome.
Thank you!

nice UI implementations


Maybe add an explanation of default value to the docs

Hello Javier!
Since I recently recieved and e-mail about setting default display values, it might be worth adding an explanation of how you can set default value when it is to be voted upon by seting a value for the input:

I hope you are well,
-John

Hi - How do I set the default display values?
Thanks!

Hi, just for others reference this is how i managed to set default values:
<input type="number" name="rating" class="rating" value="3" />

But for some reason it didn't render the stars until one of the stars was hovered, so I added the following line to on DOM ready:
$(".rating-input i:first-child").trigger('mouseleave');

Cheers,
Viktor

Thanks Viktor.  That fixed it.

I have added a section to the readme explaining how to set a defailt value https://github.com/javiertoledo/bootstrap-rating-input#can-i-set-a-default-value
@Ahtenus the bug you're describing here is fixed on version 0.3.1, thanks for reporting it ;-)


Debian Linux PARISC (hppa) 5.14.0 - src/unix/fs.c:971: warning: passing argument 4 of ‘uv__fs_copy_file_range’ from incompatible pointer type [-Wincompatible-pointer-types]

Version: 1.40 but the code present also on master
Platform: Linux 5.14.0-3-parisc SMP Debian 5.14.12-1 (2021-10-16) parisc GNU/Linux

[34/1726] Compiling C object subprojects/libuv-v1.40.0/libuv.a.p/src_unix_fs.c.o
../subprojects/libuv-v1.40.0/src/unix/fs.c: In function ‘uv__fs_sendfile’:
../subprojects/libuv-v1.40.0/src/unix/fs.c:909:57: warning: passing argument 4 of ‘uv__fs_copy_file_range’ from incompatible pointer type [-Wincompatible-pointer-types]
  909 |         r = uv__fs_copy_file_range(in_fd, NULL, out_fd, &off, req->bufsml[0].len, 0);
      |                                                         ^~~~
      |                                                         |
      |                                                         off_t * {aka long long int *}
In file included from ../subprojects/libuv-v1.40.0/src/unix/internal.h:41,
                 from ../subprojects/libuv-v1.40.0/src/unix/fs.c:30:
../subprojects/libuv-v1.40.0/src/unix/linux-syscalls.h:71:33: note: expected ‘ssize_t *’ {aka ‘int *’} but argument is of type ‘off_t *’ {aka ‘long long int *’}
   71 |                        ssize_t* off_out,
      |                        ~~~~~~~~~^~~~~~~

This was probably fixed by: https://github.com/libuv/libuv/pull/3058 and published in v1.41.0


Bower references incorrect bootstrap version

If you don't have bootstrap already loaded via custom bower.json, then bower downloads latest bootstrap that satisfies ">= 4.0.0-alpha.3" which is currently 4.0.0-alpha.6. Since Alpha 6 was rewritten a lot it breaks website. To be safe you have to load correct version manually. Why even build library on alpha version of another library?

you're correct, that's a mistake in the bower file.
I don't understand your question regarding an alpha version.
Feel free to open a pr fixing the bower file

I'll probably send a PR over the weekend.
The comment regarding an alpha version is that IMHO building library with dependency on library still in alpha is not right.

great 👍
you can use BS3 if you prefer, it is backwards compatible

I hava a problem use BS3.3: Uncaught TypeError: modal.handleUpdate is not a function


Move histone (de)acetylase activity under transcription coregulator activity

(this needs to be completed with the help @sylvainpoux and Colin, and anyone else who would like to provide input)

Proposal:
GO:0004402: histone acetyltransferase activity: move under coactivator activity
GO:0004407: histone deacetylase activity: move under corepressor activity

"Acetylation, which occurs normally in a cell, neutralizes the positive charges on the histone by changing amines into amides and decreases the ability of the histones to bind to DNA. This decreased binding allows chromatin expansion, permitting genetic transcription to take place. Histone deacetylases remove those acetyl groups, increasing the positive charge of histone tails and encouraging high-affinity binding between the histones and DNA backbone. The increased DNA binding condenses DNA structure, preventing transcription."
https://en.wikipedia.org/wiki/Histone_deacetylase

Wait, this proposed change makes me uncomfortable.. if we do this, then won’t we be saying that histine acetylation and deacetylation only occurs in the context of transcription?  Histone acetylases and deacetylases only work for regulating transcription? What about DNA repair, etc?

I agree with @srengel that these histone modification enzymes should not be made specific to transcription. My understanding is that these chromatin enzymes also affect DNA replication and repair.

A complex question: chromatin modifiers generally affect a range of processes, such as Transcription regulation, DNA repair and replication etc. Linking chromatin modifications to other processes is therefore unsafe.
The specificity of histone acetylation/deacetylation is that we know that histone acetylation is associated with transcription activation while deacetylation is associated with transcription repression, regardless of positions of modifications. Other modifications have different effects on transcription depending on sites that are modified (H3K4me is associated with gene activation and H3K9me is associated with repression).

So, perhaps the solution would be to create sub-types of transcription coregulators histone acetylase+deacetylase activity. To think about.
Low priority.

I know you've already closed this, but for future, it might be tricky to create subtypes of histone acetylase/deacetylase activities with respect to processes like trancription, DNA repair and replication, etc. as I'm under the impression that these chromatin modification enzymes are rather general, i.e. not very specific to any of the downstream processes like transcription or replication.

Thanks for the comment @krchristie
If we decide to do this this will be useful.
Pascale


ARM64: Run Images

Meta Issue: #1028
PyTest
This issue covers the validation of running ARM64 based Garden Linux images.
Tests
Within this issue the following components will be validated and tested:

Run Images

Image Booting (regular)
Image Booting (secure boot)

Regular image: OK
Secureboot image: OK, but key enrollment doesn't work. (Issue: #1045 https://github.com/gardenlinux/gardenlinux/issues/1045)

While the key enrollment for fixed in #1045 and we can enroll them in general, we still encounter issues on cloud platforms which'll be investigated in #1073.

This could be fixed by using a non metal type.


fix!: Search API functions how take query as a parameter

The query to call the APIs with is a very dynamic (as in it changes a lot) value, as opposed to most of the other options which are more static. This change allows callers to call the function with the query as string, separate from the other options. It also allows for cleaner typing in consuming libraries with ProductSearchOptions as opposed to Omit<ProductSearchOptions, 'q'> when the query comes form some usually user generated state.
BREAKING CHANGE: productSearch, bestseller, contentSearch, categorySearch and autoSuggest parameters have changed.

:tada: This PR is included in version 2.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Frends.SMTP.SendEmail not in task portal?

It seems that the SMTP is lacking the Frends task metadata JSON


Appstudio update test-component-pac-oeru

Pipelines as Code configuration proposal

Pipelines as Code CI/test-component-pac-oeru-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
6 seconds
init

✅ Succeeded
14 seconds
clone-repository

✅ Succeeded
26 seconds
build-container

✅ Succeeded
16 seconds
deprecated-base-image-check

✅ Succeeded
17 seconds
inspect-image

✅ Succeeded
9 seconds
clair-scan

✅ Succeeded
35 seconds
clamav-scan

✅ Succeeded
9 seconds
sbom-json-check

✅ Succeeded
17 seconds
optional-label-check

✅ Succeeded
17 seconds
label-check

✅ Succeeded
6 seconds
show-summary


How to delete vulkan?

How to remove the full impact of vulkan?
I have deleted all the files, but the full screen of B&S still does not appear.

Delete the d3d9.dll


Add a module for finagle bijections.

As suggested in https://github.com/twitter/finagle/pull/341, implemented Bijections and Injections for finagle-mysql datatypes.
/cc @mosesn @fwbrasil @williamboxhall
> bijection-finagle/console
[info] Starting scala interpreter...
[info]
Welcome to Scala version 2.10.4 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_20).
Type in expressions to have them evaluated.
Type :help for more information.

scala> import com.twitter.finagle.exp.mysql._
import com.twitter.finagle.exp.mysql._

scala> import com.twitter.bijection.Conversion.asMethod
import com.twitter.bijection.Conversion.asMethod

scala> import com.twitter.bijection.twitter_finagle.MySqlConversions._
import com.twitter.bijection.twitter_finagle.MySqlConversions._

scala> NullValue.as[Option[String]]
res1: Option[String] = None

scala> StringValue("Hej").as[String]
res2: String = Hej

scala> IntValue(10).as[Option[Int]]
res3: Option[Int] = Some(10)

@johnynek @folone is this the right place to put this?  I was thinking that it would be OK to just make finagle-mysql take a dependency on bijections, but I don't have really strong opinions about this.  Although it might make more sense to make this a bijection-finagle-mysql lib than bijection-finagle.

This looks great, aside from a few minor suggestions. Thanks so much for doing this!

Addressed the review in 55b7e8b.

LGTM

one minor issue.

Thanks!

Thanks!

@folone your tests are failing. Instead of extending PropertyChecks can you extend CheckProperties from https://github.com/twitter/bijection/pull/198 and rerun your tests?
[info] Compiling 1 Scala source to bijection/bijection-finagle-mysql/target/scala-2.10/test-classes...
[info] MySqlConversionLaws:
[info] - Byte
[info] - Short
[info] - Int
[info] - Long
[info] - Float
[info] - Double
[info] - String
[info] - Boolean *** FAILED ***
[info]   GeneratorDrivenPropertyCheckFailedException was thrown during property evaluation.
[info]    (CheckProperties.scala:12)
[info]     Falsified after 0 successful property evaluations.
[info]     Location: (CheckProperties.scala:12)
[info]     Occurred when passed generated values (
[info]       arg0 = ByteValue(127)
[info]     )
[info] - Timestamp *** FAILED ***
[info]   GeneratorDrivenPropertyCheckFailedException was thrown during property evaluation.
[info]    (CheckProperties.scala:12)
[info]     Falsified after 0 successful property evaluations.
[info]     Location: (CheckProperties.scala:12)
[info]     Occurred when passed generated values (
[info]       arg0 = 24501659-11-03 14:26:24.675
[info]     )
[info] - Empty *** FAILED ***
[info]   GeneratorDrivenPropertyCheckFailedException was thrown during property evaluation.
[info]    (CheckProperties.scala:12)
[info]     Falsified after 0 successful property evaluations.
[info]     Location: (CheckProperties.scala:12)
[info]     Occurred when passed generated values (
[info]       arg0 = EmptyValue
[info]     )
[info] - Null *** FAILED ***
[info]   GeneratorDrivenPropertyCheckFailedException was thrown during property evaluation.
[info]    (CheckProperties.scala:12)
[info]     Falsified after 0 successful property evaluations.
[info]     Location: (CheckProperties.scala:12)
[info]     Occurred when passed generated values (
[info]       arg0 = NullValue
[info]     )
[info] ScalaTest
[info] Run completed in 635 milliseconds.
[info] Total number of tests run: 11
[info] Suites: completed 1, aborted 0
[info] Tests: succeeded 7, failed 4, canceled 0, ignored 0, pending 0
[info] *** 4 TESTS FAILED ***

@MansurAshraf I believe @johnynek already merged this PR though. Should I send another one against your branch?

@folone yes thats fine. Thank you!

@MansurAshraf I just tried extending CheckProperties, same errors. Here's the diff:
Compiling garden.css...
diff --git a/bijection-finagle-mysql/src/test/scala/com/twitter/bijection/finagle_mysql/MySqlConversionLaws.scala b/bijection-finagle-mysql/src/test/scala/com/twitter/bijection/finagle_mysql/MySqlConversionLaws.scala
index 7328abd..ffc64f7 100644
--- a/bijection-finagle-mysql/src/test/scala/com/twitter/bijection/finagle_mysql/MySqlConversionLaws.scala
+++ b/bijection-finagle-mysql/src/test/scala/com/twitter/bijection/finagle_mysql/MySqlConversionLaws.scala
@@ -18,8 +18,6 @@ package com.twitter.bijection.finagle_mysql

 import com.twitter.bijection.{ CheckProperties, BaseProperties, Bijection }
 import org.scalacheck.Arbitrary
-import org.scalatest.{ PropSpec, MustMatchers }
-import org.scalatest.prop.PropertyChecks
 import com.twitter.finagle.exp.mysql._
 import java.sql.Timestamp
 import java.util.Date
@@ -29,7 +27,7 @@ import org.scalacheck.Gen
 import org.scalacheck.Arbitrary
 import org.scalacheck.Arbitrary.arbitrary

-class MySqlConversionLaws extends PropSpec with PropertyChecks with MustMatchers with BaseProperties {
+class MySqlConversionLaws extends CheckProperties with BaseProperties {
   import MySqlConversions._

   implicit val byteValueArb = Arbitrary(arbitrary[Byte].map(ByteValue.apply))

@folone are these valid test failures? Do you think you can fix them otherwise we will have to revert the change. @johnynek what do you think?

@MansurAshraf I'll have some time to look at it on Friday. I'm wondering how those tests were working before #198 though.

@folone they were not running. See https://github.com/twitter/algebird/pull/421 (its for algebird but same issue was happening in this project)

@MansurAshraf is right. I missed that in the review. We had a bug in some our tests after the migration to scalatest, and your code copied that pattern.

Here's the fix: https://github.com/twitter/bijection/pull/201


Avoid force-closing channels when HtlcInterceptor request is not acknowledged

Background
Setting up a HtlcInterceptor to listen and interactively reject and accept incoming and outgoing payments can be a tool to improve the security of a node by auditing the forwards for arbitrary security policies, but ideally it would not interfere with the normal operation of the node by failing cleanly off-chain instead of causing force closes when events are not acknowledged.
Problem
LND will accept a startup without an HtlcInterceptor attached which somewhat limits its utility for security auditing but the main issue with general usage is that if the HtlcInterceptor stream or listener is interrupted the default behavior for any HTLC in-flight is to force close the channel and allow the pending HTLCs to time-out on chain.
This means that if any networking issue or bug causes an interruption in the gRPC control stream while a forward is pending an acknowledgement a costly force close will be the result.
Solution
This force-close behavior was also previously mirrored in the invoices RPC where held HTLCs that went unacknowledged would lead to force closes of relevant channels. But in LND 0.13 the height based expiry watcher was added to prevent this scenario by canceling back these held HTLCs at the last minute.
To provide the same benefit to forwarding HTLCs, a height watcher can perform a similar action on pending forwards and prevent force-closes deriving from errors in the HtlcInterceptor
Ideally this last-minute behavior is documented so that external block timeout assumption business logic doesn't cut things too close, but leaving timing down to the wire would be an anti-pattern in any case due to uncertainty of confirmation timing, and from a security assumptions perspective this behavior would also be consistent with the pre-existing invoices watcher.
Workaround
The workaround to held HTLCs in invoices was to regularly audit open invoices for held HTLCs and cancel them at the last minute before they caused a force close
I haven't tested this explicitly but it seems like in a somewhat similar way to watching for held invoices a caller could potentially reverse engineer the CircuitKey of an in-flight HTLC using the output of the channels list and setup a similar watcher to prevent force closes.

Sounds like an improvement. As you say, if you let an htlc time out anyway, it better be off-chain.
Also this suggestion may alleviate the problem with networking issues.


new slime - Flux slime - synergy

What will this slime look like?

What kind of slime is it?

[x] Ranchable Slime - A slime that can be ranched
[ ] Utility Slime - A slime that provides some functionality to the ranch
[ ] Pet Slime - A slime that can follow you around and do some tasks

Diet & Favorite Food
<-- energy- force -->
Plort
<-- As a plort, it could also contort in and out and change between black and white like the slime -->
Favorite Toy
<-- if individual synergies have a favourite toy then maybe some sort of ball that shakes itself -->
Slime Technical Sheet
Type

[ ] Normal – Just your ordinay slime.
[ ] Mutation – Rare versions of other slimes, like the Albino which is a mutation of the Pink Slime.
[ ] Ancient – Slimes that have lived for a very long time, like the gold slime, it is an ancient being almost as old as the planet
[ ] Fossil – Slimes that can only be found as fossils (or in the case of the saber as descendants). It will be possible to use their DNA, from the fossils, to bring them back.
[ ] Godly – Slimes that have great power and can use some energy similar to magic. They are seen as gods by the other slimes as they keep the slime world alive with their energy.
[ ] Special – Slimes like the Tarr or Twinkle slime are seen as special cause they aren’t normal and don’t fit into any other category.
[x] Synergy – made through a synergy

Synergy of what slimes?
boom and meteor slimes, either (because the meteor slime cannot become a largo, you'd have to use the infuser) or (make the meteor slime have specific largo combinations)
Behavior

[ ] Passive – Does not damage the rancher in any way. The aggitation will not cause difference in behaviours.
[x] Neutral – Might damage the rancher indirectly. The aggitation might cause aggressive behaviour similar to the rolling of the rock slime.
[ ] Aggressive – Attacks the rancher directly.

Risk for the rancher? (If you choose something other than Passive above)
<-- when agitated sucks in anything nearby for about 2 or 3 seconds only to spit them back out in about 1 second -->
Activity Pattern

[ ] Diurnal – Only survives in the light / during the day
[ ] Nocturnal – Only survives in the dark / during the night
[ ] Metatunal – Survives in the Dark and Light
[x] Crepuscular – Is active only during Dusk and Dawn. Disappears during the inactive time.
[ ] Matitunal – Is active only during Dawn. Disappears during the inactive time.
[ ] Vespertine – Is active only during Dusk. Disappears during the inactive time.

Can become a largo?

[ ] Yes - This slime can become a largo with any slime that normally can.
[ ] Specific - This slime can only become a largo with specific slimes.
[ ] No - This slime cannot become a largo.

technically already is a largo
Location?
<-- not spawning -->
Condition to find?
<-- make the synergistic largo -->
Environment?

[x] Any Kind - Anywhere independent of the type of environment
[ ] Land – Anywhere on land, does not need a special condition for it
[ ] Water – Anywhere on water, does not need a special condition for it
[ ] Deep Water – On water, requires a place where the water pressure is higher (deep water)
[ ] Lava – On land, requires Lava or a region that contains lava to survive
[ ] Arid – On land, requires a arid/dry zone to survive
[ ] Other - Make a suggestion of a new environment

Temperature

[x] Cold – Requires cold temperatures (below 15°C/59°F)
[x] Hot – Requires hot temperatures (above 30°C/86°F)
[ ] Moderated – Requires moderated temperatures (between 10°C/50°F and 35°C/95°F)
[ ] Indifferent – It doesn’t matter the temperature

-can be either at cold temperatures or hot ones, but not in the middle
Vaccable?

[ ] Yes - Can be vacced normally
[ ] Upgrade - Requires an upgrade to be vacced
[ ] Conditional - Can only be vacced under certain conditions
[ ] No - This slime can't be vacced
if in vikdisk you can carry entire largos then yes but if not then no

Synergies
<-- This slime is a synergy -->
Possible names for the slime? (Optional)
<-- flux slime, i don't have any others -->
Additional context
<-- in the basic slime models mode, it'll probably have to just use a basic largo model and not shift in scale and the transition between white and black (and vice-versa) would probably have to be less smooth -->
Additional context
<-- the transition between black and white would have to be slow to stop it from being an eyesore -->

I think that this could be used in my drone mod suggestion using the plorts from this could be used as a new energy form in the drone by placing them into the drone charger and used in recipes :))


[Audio]: Bass 5

Check if this audio is already added to RetroStudio.

[X] The audio is not already in game.

Is this for the main-menu playlist?

[ ] Add to main-menu playlist.

Is this song from an old Roblox era or a sound effect?

[X] This song is from old Roblox or is a sound effect.

A link to the audio on Roblox
https://www.roblox.com/library/181644155/Bass-5
A link to the audio file to download.
https://cdn.discordapp.com/attachments/811050426622541824/1183599800055255100/181644155.mp3?ex=6588ec36&is=65767736&hm=eec2be19822e787c6709c4f3e1517725a655d845696481f9137315cb91f275af&
Notes
No response

rbxassetid://15750707229


Warm up specific models on load for faster model cold-boot

We need to support loading specific models on server init in order to avoid the initial model call overhead (esp. useful for known custom models that users want hosted).

Resolved in #495 and #494


Validation issues for nickname and bio in UserBase schema

Nicknames longer than 30 characters are not correctly rejected, despite the max_length=30 constraint.
Bios longer than 500 characters are not restricted, leading to potential data inconsistencies.

Completed by adding validation in both the fields

Didn't merge the branch into Main branch.


Student Confirms Consent to Share and Validate Income with CRA

As a (Student) I want (to consent to share and validate my Personal Income information with CRA ) So That *(I can accurately be assessed for Financial Aid)
Additional Context

CRA =Canada Revenue Agency
Persona Matt- Selects Yes
This Feild is Mandatory upon submit (separate user Story)

Figma Wireframe Link
Loan Application - Financial Information
Acceptance Criteria

[ ] Given (The student, When (wants to confirm that they consent to share their information with CRA for Validation, Then (they select Yes)
[ ] Given (The student, When (wants to confirm that they consent to share their information with CRA for Validation, Then (they select No)
[ ] Given (The student, When (is reading the consent to share summary Then (the student can select "read more" to expand the consent information field to include the remaining information)- See Figma
[ ] Given (The student, When (has expended the text to "read more and they want to see less text Then (the student can s select "read less)".- see Figma


Tuning results for 2.6

Solvers/networks tuned --> https://github.com/ROCmSoftwarePlatform/MIOpen/issues/270

Hmm... I do not think that anyone is really expects that I am able to review this 300k+ lines patch. What should I do?

@atamazov  @JehandadKhan since we didn't tune OCL this round, I removed these solvers ('ConvHipImplicitGemmV4R4Xdlops_1x1', 'ConvHipImplicitGemmV4R4FwdXdlops', 'ConvHipImplicitGemmV4_1x1', 'ConvHipImplicitGemmV4Fwd', 'ConvHipImplicitGemmV4WrW', 'ConvHipImplicitGemmV4R4WrWXdlops') manually with find and replace.
Im no expert at sed but I did a lot of testing and vimdiffs  to make sure i didn't remove extra characters or leave out any un-removed solvers. Please review this last commit diligently :)

Hmm... I do not think that anyone really expects that I am able to review this 300k+ lines patch. What should I do?

wait til u see my last commit :D

Im no expert at sed but I did a lot of testing and vimdiffs to make sure i didn't remove extra characters or leave out any un-removed solvers. Please review this last commit diligently :)

Its not realistic to verify this by reading the code. I will run the benchmarks to verify this works. I have the results for HIP / gfx906/60 which I would run again with the updated PR.

@alexandraBara @JehandadKhan Status update.

Here is a link to the comparative analysis for this PR


Make compatible with API 8

Bare minimum needed for FFXIV 6.3.

.NET7 runtime
updated dependencies for API 8

Tyvm !


cue: 0.1.1 -> 0.1.2

Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

I don't have cue files to test. This still built and ran for me, though.


add bot owner only commands

[x] only bot owner can execute them;
[ ] !help command displays that commands only to bot owner;

hold until #30 and #34 will be resolved

forgot to do !help command


Bitrate choice

What is the purpose of your issue?

[ ] Bug
[ x] Feature Request
[ ] Question
[ ] Other

Description

Allow the users to choose the bitrate of the songs downloaded
Log

+1 for this request. If a user has spotify premium they can stream at 320.

+1 for this request, downloaded song size too large!

+1 for this request too!

We aren't really downloading from spotify. Out download quality is limited by YouTube who encode audio at 198kbps across the board.


Azure Keyvault Certificate Readme Issue

Section link:

Suggestion:
Add  import { SecretClient } from "@azure/keyvault-secrets"
@lilyjma , @ramya-rao-a , @AlexGhiondea , @maorleger and @jongio for notification.

@maorleger Do you agree with the recommendation here? If so, @v-jiaodi can send a PR to fix this.

Yes, this makes sense. @v-jiaodi if you want to create a PR I am happy to review

Thank you @maorleger , I have sent a PR for it.


order of axes

Apologies, this is not really an issue but is there a way to set the order of axes on the object that is returned from nd2.ND2File. For example when you read an nd2 file then the object has the dimensions if the format TZCYX. Can I set this order to TCZYX please?

the axes will be ordered, by default, as they were acquired/specified in the NDAquisition tab.  But you can easily transpose them:

using the named dimensions in the xarray output:

import nd2

ary = nd2.imread('file.nd2', xarray=True).transpose('T', 'C', 'Z', ...)

Or, if you don't want to use xarray, you can do it manually

ary = nd2.imread('file.nd2').transpose(0,2,1,3,4)

... and if you're not certain that C is the second axis and Z is the first axis, then you can use sizes to know for sure:
with ND2File('file.nd2') as f:
    ary = f.asarray()
    order = tuple(list(f.sizes).index(i) for i in 'TCZYX')
    ary = ary.transpose(order)

Excellent! Thanks. Doing nd2.imread(img_path, dask=True).transpose(0,2,1,3,4) works fine. For some reason however it crashes for me when I try nd2.imread(img_path, dask=True).transpose('T','C','Z','Y','X'). I guess it is a long shot but the last few lines of the call stack are:
File ~/miniconda3/envs/decon-napari/lib/python3.9/site-packages/dask/array/routines.py:181, in <genexpr>(.0)
    179     if len(axes) != a.ndim:
    180         raise ValueError("axes don't match array")
--> 181     axes = tuple(d + a.ndim if d < 0 else d for d in axes)
    182 else:
    183     axes = tuple(range(a.ndim))[::-1]

TypeError: '<' not supported between instances of 'str' and 'int'

Have I got something wrong please?

using strings to transpose will only work if you use xarray=True, as in my first example (not dask=True, as you have there).  both dask and numpy expect integers to be passed to transpose... only the xarray output recognizes axes with string names

if you also want to use dask, you can with imread(..., xarray=True, dask=True), which will give you xarray that can be indexed with strings, but will also be backed by a delayed dask array

Thanks so much! That helps a lot. Re: the 'P', i need to check with the ppl who did the experiment I guess.

sure. let me know if i can help you find metadata.  the "main" metadata describing the dimensions that the user acquired will be held in ND2File.experiment ... the axes are summarized in the ND2File.sizes dict (it's an ordered dict, so they will also be in the same order as the array output).

Thanks again! I think I should be able to handle the metadata


rootless: fix restart when using fuse-overlayfs

With rootless containers we cannot really restart an existing container
as we would need to join the mount namespace as well to be able to reuse
the storage, so ensure the container is stopped first.
Closes: https://github.com/containers/libpod/issues/1965
Signed-off-by: Giuseppe Scrivano<EMAIL_ADDRESS>

/approve

LGTM assuming happy tests

/lgtm


Global exception/sigfault handler

I'd like to suggest adding global sigfault and uncaught exception handler.
It would be run just before main code in __crystal_sigfault_handler and __crystal_exception_handler respectively.
API similar to below would imho be flexible 'nuff:
previous_handler = exception_handler # we can chain the handlers
exception_handler do |klass, msg, backtrace|
  # ...
  previous_handler.try &.call(klass, msg, backtrace)
end

I could make a stab at PR if there's a consensus about feasibility of such feature.
Below as a reference, the same feature implementation in other languages:

Python: https://pymotw.com/2/sys/exceptions.html
Java: http://docs.oracle.com/javase/6/docs/api/java/lang/Thread.html#getUncaughtExceptionHandler()
C#: https://msdn.microsoft.com/en-us/library/system.appdomain.unhandledexception(v=vs.110).aspx

The C# and Java solutions only capture unhandled exceptions, which is a bit different to what there is here. In addition, I don't think there's actually a way to find out if an exception is meaningfully handled or not (all exceptions are handled, just in the stdlib).

You write:

The above solutions only capture unhandled exceptions, which is a bit different to what you propose.

First sentence of this issue states:

I'd like to suggest adding global sigfault and uncaught exception handler.

You write:

I don't think there's actually a way to find out if an exception is meaningfully handled or not in crystal (all exceptions are handled, just in the stdlib).

__crystal_sigfault_handler and __crystal_exception_handler could imo be the way to exactly achieve that.

@Sija What I meant was that simply adding a callback to __crystal_raise wouldn't work because it would trigger on all exceptions not just uncaught ones.
On further thought, adding a handler here and here would be enough.

What is the expected behaviour? May the handler prevent the process from exiting? This would be fine for unhandled exceptions, but maybe it would be a bad idea for the segfault handler.

@RX14 you're right, I somehow got confused between __crystal_sigfault_handler and __crystal_raise creating __crystal_exception_handler which seems sensible but unfortunately doesn't exists ;)
@ysbaddaden I'd think so, exception handler could for instance return false to abort exiting, while sigfault handler would run without ability to halt exit.

Looks like we need Fiber.on_unhandled_exception exception handler, but without resuming of fiber execution.
Some exceptions that corrupts process state should be not handled (out of memory, for example). May be by common parent class.

The exact use case scenario of this feature isn't clear to me. Some aspects might've changed since then, so not even sure this is still relevant. I'm closing this, can be-opened if necessary.


Add further deployment methods

For an even easier start with the gamification engine, we want to support further deployment methods for frequently used environments (next to dokku/heroku).
At the moment, I am thinking about Microsoft Azure, Docker (without dokku) and perhaps vagrant. Are there any other environments we should consider at the moment?

Docker would be really nice to have!

@feldi88 Do you think it's good to have this in this repository or create another one for each deployment configuration?
For future versions we have to work on the update mechanism, to provide automatic migrations that can be executed when e.g. docker containers are updated. I'll open another ticket for that.

Now we support the one-click deploy to Heroku. You can deploy your personal demo on Heroku with a button (free Heroku account required).
You find the button in the buildpack repository in the develop branch https://github.com/ActiDoo/gamification-engine-dokku/tree/develop
Alternatively, you can click on the following button:

[ ] Buildpacks (Heroku, Dokku, etc.): one-click deploy to heroku:
[ ] Dockerfile
[ ] Docker compose
[ ] Docker PWD: https://labs.play-with-docker.com/
[ ] Vagrant?
[ ] Azure, AWS, Google

@feldi-online So did you have any progress with Docker-only (w/o Dokku PaaS)?


"Forăști" is listed in the drop-down menu

Description:
"Forăști" is listed in the drop-down menu alongside its corresponding county according to the law
Precondition:
The website is up an running.

Step 1
Type "Forăști" in the search bar.

Expected results
The location is listed in the drop-down menu as "Comuna Forăști, SUCEAVA".


Release note fixes

Based on feedback from @tamird in https://github.com/cockroachdb/docs/pull/728

This change is

http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/5c88016b0ebcddc0dc11aeb4d04597a8c64ed1bb/

http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/6fe028d25a1916cf867ee832d9782161b6c1ceb8/


Update and rename Shivaansh.txt to Shivaansh.py

added some content
a program to print a table up 10 of any given number

Thank you for you contribution to the repo and the community


Add fast path lookupRuleResult query

Cache engine KeyID to DBKeyID mapping
When ID mapping is known, skip table join in lookupRuleResult
Cache ID mapping when reading out previously unknown rules

Yields a ~17% improvement in the testPseudoLLVMNullBuild test

@swift-ci please smoke test


add an event to check if neoline is defined/ready

Hello,
In the case when someone handle multiple dapi, we need to have a global event to listen when neoline is ready, as opposed to having it defined with var neoline = new NEOLine.Init()
What I would like is to be able to use something like this if possible:
        window.addEventListener('neoline.READY', function(ready) {

        })

dAPI updated, here is the relevant documentation:
https://neoline.cn/dapi/#addEventListener
https://neoline.cn/dapi/#READY
Hope it meets your needs.

Works perfectly now! :)


Xcode 14.1 error when building

Bug report
Describe the bug
When I compile in Xcode, it produces an error that says: "Failed to produce diagnostic for expression; please submit a bug report (https://swift.org/contributing/#reporting-bugs) and include the project"
To Reproduce
Steps to reproduce the behavior, please provide code snippets or a repository:

Add package in xcode with SPM looking for "postgrest-swift"
Try to build

Expected behavior
It builds successfully.
Screenshots

System information

OS: MacOS Ventura 13.5
Xcode: 14.1

I'm having the same issue

Same - makes using the supabase swift package unusable


Add processIndexes() and dropPrimaryKey() to Forge

Ref #4814 #4653
This PR adds functionality to create indexes, primary keys, and foreign keys on a table already created. It does this by calling the new function processIndexes() instead of createTable().
$forge->addKey(['category', 'name'])
      ->addPrimaryKey('id')
      ->addForeignKey('userid', 'user', 'id')
      ->processIndexes('actions');

Also a new method dropPrimaryKey() allows to drop the primary key.
There were some differences between DBMS of the naming of indexes. These have been consolidated so each platform follows the same convention.
Checklist:

[x] Securely signed commits
[x] Component(s) with PHPDoc blocks, only if necessary or adds value
[x] Unit testing, with >80% coverage
[ ] User guide updated
[x] Conforms to style guide

The commits are too big. Could you make small, atomic commits?
And please write good commit messages, not just Fix.
See https://en.wikipedia.org/wiki/Atomic_commit#Atomic_commit_convention

This PR fixes https://github.com/codeigniter4/CodeIgniter4/issues/6453

@sclubricants I appreciate your efforts.
I don't seem to have communicated well what the problem is.
Small PR
The most important thing is to make a PR small.
Small I mean is the count of diff lines +825, −248 is small.
In this case, abs(825) + abs(-248) = 1,073.
I hope it is less than 500.
To make a PR small, we can split a big thing into slices.
It seems this PR includes:

processIndexes()
dropPrimaryKey()
the naming of indexes consolidation

Atomic Commit
Next, atomic commit. This will help in understanding big PRs.
You put many comments on GitHub, but when you explain one thing, there should be only one commit.
But the first commit has too many your comments. It shows the commit is too big.
See https://github.com/codeigniter4/CodeIgniter4/blob/develop/contributing/workflow.md#committing

processIndexes()
dropPrimaryKey()
the naming of indexes consolidation

I work on this this weekend and break apart into seperate PRs.


Some architectures may be missing

Hello,
I downloaded the pickle files and tested them as shown below:
>>> [len(pickle.load(open(x,'rb'))) for x in os.listdir('./') if x.__contains__(".pickle")]
>>>[15284, 15261, 15252, 15284, 15261, 15284, 15261, 15252, 15284, 15284, 15284, 15284, 15284]

Why are there < 15625 architectures? Am I missing something?
Thanks!

There is a couple of reasons. The main one is that NB2 actually contains some architectures that do not make sense - in their codebase if a cell structure is, for example, a simple conv followed by none then: 1) conv is still executed, 2) none takes as input the output of conv, and simply ignores it by producing torch.zeros_like(x), 3) the rest of the network is executed normally and the network is trained even though it is effectively learning nonsense (as input does not flow to the output). For measuring latency we optimise models by removing unnecessary operations, which also means that we simply do not execute networks like that at all (as they are constant functions anyway, after training). From the top of my head, I would say that's the reason behind all the "15284" pickles. For the remaining ones, I would suspect the extra missing results to be models that failed to run on-device, despite our best effort - unfortunately I don't have much time now to take a close look at those. If you want to help me out a bit, I would appreciate if you could identify what archs are missing. Otherwise I will put it in my backlog and will take a look at them when the amount of other work decreases a bit. iirc, some models failed to run/convert with SNPE, although SNPE has been updated significantly since then so it might not be reproducible now. also edge-tpu had problems with at some some models - if these are in fact the files that are missing some models, that's most likely the reason.


Embedding merging

WIP FEAT: Dynamically load and merge multiple embedded models

The embedding_manager is now enhanced with ldm.invoke.concepts_lib, which handles dynamic downloading and caching of embedded models from the Hugging Face concepts library (https://huggingface.co/sd-concepts-library)

Downloading of a embedded model is triggered by the presence of one or more <concept> tags in the prompt, where "concept" corresponds to the name of the Hugging Face concept model (e.g. <poolroom>)

Once the embedded model is downloaded, its trigger phrase will be loaded into the embedding manager and the prompt's <concept> tag will be replaced with the <trigger_phrase>

The downloaded model stays on disk for fast loading later. It will be saved in the invokeai run directory under models.

The CLI autocomplete will complete partial <concept> tags for you. Type a< and hit tab to get all ~700 concepts.

API
The API is handled by the Concepts() object, defined in ldm.invoke.concepts_lib. The infamous Generate() object, creates a singleton at startup, and you can access this object with generate.concept_lib().
BUGS AND LIMITATIONS:

MODEL NAME VS TRIGGER PHRASE
You must use the name of the concept embed model from the SD  library, and not the trigger phrase itself.
Usually these are the same, but not always. For example, the model named "hoi4-leaders" corresponds to the
trigger <HOI4-Leader>
One reason for this design choice is that there is no apparent constraint on the uniqueness of the trigger
phrases in the Hugging Face library, and one trigger  phrase may map onto multiple models. So we use the
model name to maximize reproducibility.
The second reason is that there is no way I know of to search Hugging Face for models with certain trigger
phrases. So we'd have to download all 700 models to index the phrases.
The problem this presents is that this may confuse users, who will want to reuse prompts from distributions
that use the trigger phrase directly. Usually this will work, but not always.
It's also slightly confusing code because  are replaced with  in the prompt before it gets
sent to txt2img, and then the  are replaced with  before the metadata gets written out,
so that the prompts can be run through again and return the same results.

WON'T WORK ON A FIREWALLED SYSTEM
If the host running IAI has no internet connection, it can't
download the concept libraries. I will add a script that allows
users to preload a list of concept models.

BUG IN PROMPT REPLACEMENT WHEN MODEL NOT FOUND
There's a small bug that occurs when the user provides an invalid model name. The  gets replaced with  in the prompt.

Demo
invoke> wallpaper <fractal-flame>
>> Downloading sd-concepts-library/neon-pastel......4.84Kb
>> Current embedding manager terms: *, <moebius>, <garcon-the-cat>, <poolrooms>, <dark-forest>, <cancer_style>, <galaxy-explorer>, <fractal-flame>
etc

concept neon-pastel is not downloaded
>> Downloading sd-concepts-library/neon-pastel......4.84Kb
>> Current embedding manager terms: *, <moebius>, <garcon-the-cat>, <poolrooms>, <dark-forest>, <cancer_style>, <galaxy-explorer>, <fractal-flame>, <neon-pastel>
Generating:   0%|                                                                                | 0/1 [00:00<?, ?it/s]>> Ksampler using model noise schedule (steps >= 30)
etc

Multiple triggers in one prompt?
I am not convinced that adding multiple triggers to the same prompt does anything coherent. Sometimes it creates a coherent merging of the styles, and sometimes not. Combining a subject with a style, however, does seem to do the expected thing. For example my cat <garcon-the-cat> in the style <line-art>. Garcon is a little black cat with a white bib, and sure enough you get a line-art image of that cat (or at least one image - don't know who that gray cat is):

Lincoln, would you mind giving me the ELI5-level description of what this actually does? I'm lost! (ELI5 = explain like I'm 5 😁 )

Hah. That's what happens when I'm composing a PR late at night.
Hugging Face has created a library of Textual Inversions that have been contributed by the community: https://huggingface.co/sd-concepts-library
Each textual inversion adds a subject (like "my cat"), a style ("string art") or an artist ("picasso") to the standard stable diffusion model. Each one is a really small file, typically a few kB, and you can add multiple ones to the same base model at run time. Each textual inversion has a trigger phrase that invokes it, and by convention, they use the syntax <phrase>.

What I did is to write some code which scans the prompt for trigger phrases that look like <trigger_phrase>, then connect to Hugging Face to see if this is one of the 700-odd textual inversions. If it is, InvokeAI downloads the file, installs it, and merges it into the current Stable Diffusion model. It then generates the requested image. From then on, this trigger phrase will be available without re-downloading.
The confusing thing is that sometimes the name of the TI on Hugging Face is the same as the trigger phrase, and sometimes it is a bit different. For example, the TI model named hoi4-leaders is triggered by <HOI4-Leader>. Unfortunately I can't look up the trigger phrases for each of the 700 models without downloading them all and opening up 700 files. So the compromise is that you trigger with the name of the model (theodore roosevelt <hoi4-leaders>) rather than the true trigger phrase (theodore roosevelt <HOI4-Leader>). But usually they're the same and I think users will not mind?

@lstein the token phrases are in the dict object of the textual inversion model. If you look at the keys of the loaded model, you'll see the keys, so you avoid guessing them

The regexp is actually slightly different in two of those places. Note the
relative placing of the '<' and '(' symbols.
Will replace the inner part with [\w-]. Thanks for catching the security
hole.
On Mon, Nov 21, 2022 at 1:50 PM Damian Stewart @.***>
wrote:

@.**** commented on this pull request.
In ldm/invoke/concepts_lib.py
https://github.com/invoke-ai/InvokeAI/pull/1526#discussion_r1028412535:

   '''

   concept = self.concept_names.get(trigger,None)

   return f'<{concept}>' if concept else f'{trigger}'

def replace_triggers_with_concepts(self, prompt:str)->str:

   '''

   Given a prompt string that contains <trigger> tags, replace these

   tags with the concept name. The reason for this is so that the

   concept names get stored in the prompt metadata. There is no

   controlling of colliding triggers in the SD library, so it is

   better to store the concept name (unique) than the concept trigger

   (not necessarily unique!)

   '''

   def do_replace(match)->str:

       return self.trigger_to_concept(match.group(1)) or f'<{match.group(1)}>'

   return re.sub('(<[^>]+>)', do_replace, prompt)

duplication of this regex in four separate places over two python source
fails breaks both the DRY (Don't Repeat Yourself) principle in two
different ways at the same time
—
Reply to this email directly, view it on GitHub
https://github.com/invoke-ai/InvokeAI/pull/1526#pullrequestreview-1188789525,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAA3EVMP4R7TEOVPLJYVXHDWJO76DANCNFSM6AAAAAASGJVDZ4
.
You are receiving this because you were assigned.Message ID:
@.***>

--
Lincoln Stein
Head, Adaptive Oncology, OICR
Senior Principal Investigator, OICR
Professor, Department of Molecular Genetics, University of Toronto
Tel:<PHONE_NUMBER>
Cell:<PHONE_NUMBER>
@.***
E**xecutive Assistant
Michelle Xin
Tel:<PHONE_NUMBER>
@.*** @.**>
Ontario Institute for Cancer Research
MaRS Centre, 661 University Avenue, Suite 510, Toronto, Ontario, Canada M5G
0A3
@OICR_news
https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftwitter.com%2Foicr_news&data=04|01|Michelle.Xin%40oicr.on.ca|9fa8636ff38b4a60ff5a08d926dd2113|9df949f8a6eb419d9caa1f8c83db674f|0|0|637583553462287559|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=PS9KzggzFoecbbt%2BZQyhkWkQo9D0hHiiujsbP7Idv4s%3D&reserved=0
| www.oicr.on.ca
Collaborate. Translate. Change lives.
This message and any attachments may contain confidential and/or privileged
information for the sole use of the intended recipient. Any review or
distribution by anyone other than the person for whom it was originally
intended is strictly prohibited. If you have received this message in
error, please contact the sender and delete all copies. Opinions,
conclusions or other information contained in this message may not be that
of the organization.

Huggingface 'integration' seems to be less important for (pro) users than the ability to use >1 embed.
Aside from downloading from HF and merging, what would the commands/process be for a user to initialize with >1 embedding_path? (I didn't see this called out in the docs, and haven't looked at the code to answer my own question 🙃 )

@lstein the phrases are in the dict object of the textual inversion model. If you look at the keys of the loaded model, you'll see the phrase, so you avoid guessing them

I don't guess them. I get them out of the model, just as you suggest. The issue is that there are 800 models up on Hugging Face and to get all the phrases I would have to download them all and either load the model or read the token_identifier file. For this reason, the user enters <concept-name> and not <token-identifier>. They are usually the same, and this also avoids the problem of two unrelated concepts having chosen the same identifier.

@damian0815 I've finished what I wanted to for the time being. I still have to test on a machine that is not connected to the Internet and probably provide a concept download script for this scenario, but I think it's ready for a merge. I'm taking it out of draft state and will look for your final review.

pass the path to a directory, the directory will be scanned for .bin and .pt files and they'll each be loaded.

I would assume that this directory should be the same place that HF .bin and .py files are being downloaded to? Would it be simpler to just update to do the following:

Make embedding imports an opt-out
Have an embed folder (default, empty)
Users can download or put embed files there if they want them loaded
Users can exclude embeds when initializing

Random though at 11th hour, just something to think about for UX.

Make embedding imports an opt-out

i have added code that refuses to overwrite user-defined embeds (i.e. ones loaded via the --embeddings command line argument) with automagically loaded huggingface embeds, which probably makes this unnecessary.

Have an embed folder (default, empty)
Users can download or put embed files there if they want them loaded

agreed good feature, but should go in a new PR. also being able to drag and drop on to the web UI would be good (same with ckpt files)

Users can exclude embeds when initializing

oof can of worms, hah.

above comment is @hipsterusername

The regexp is actually slightly different in two of those places. Note the relative placing of the '<' and '(' symbols.

all the more reason to make it a constant. it's much easier to notice the difference between these two terms:
        self.match_trigger = re.compile('(<[\w\-]+>)')
        self.match_concept = re.compile('<([\w\-]+)>')

than between these two regexp:
        '(<[\w\-]+>)'
        '<([\w\-]+)>'

(see this is why a literary studies MA makes sense alongside a BSc in software engineering ;) )

pass the path to a directory, the directory will be scanned for .bin and .pt files and they'll each be loaded.

I would assume that this directory should be the same place that HF .bin and .py files are being downloaded to? Would it be simpler to just update to do the following:

Make embedding imports an opt-out
Have an embed folder (default, empty)
Users can download or put embed files there if they want them loaded
Users can exclude embeds when initializing

Random though at 11th hour, just something to think about for UX.

That sounds good. I'll implement an embed folder concept.

The regexp is actually slightly different in two of those places. Note the relative placing of the '<' and '(' symbols.

all the more reason to make it a constant. it's much easier to notice the difference between these two terms:
        match_trigger
        match_concept

than between these two regexp:
        '(<[\w\-]+>)'
        '<([\w\-]+)>'

and also note how the intention is clearer? i can read match_trigger and match_concept and know that you wrote it with the intention to match a trigger, vs matching a concept. whereas (<[\w\-]+>) is just babble.
(see this is why a literary studies MA makes sense alongside a BSc in software engineering ;) )

No arguments at all here!

I was asking for model interpolation, not Textual Inversion embeddings

Implemented.

pass the path to a directory, the directory will be scanned for .bin and .pt files and they'll each be loaded.

I would assume that this directory should be the same place that HF .bin and .py files are being downloaded to? Would it be simpler to just update to do the following:

Make embedding imports an opt-out
Have an embed folder (default, empty)
Users can download or put embed files there if they want them loaded
Users can exclude embeds when initializing

Random though at 11th hour, just something to think about for UX.

That sounds good. I'll implement an embed folder concept.

Done.

I have done a brief test - pretty cool feature.
Three changes:
When using an incorrect embedding trigger token (generation still proceeds): urllib.error.HTTPError: HTTP Error 404: Not Found
So I think a caught HTTPError should result in a warning message that the token wasn't found on HF but that we will generate anyways.
When no internet connection: urllib.error.URLError: <urlopen error [Errno 8] nodename nor servname provided, or not known>
Similarly, a caught URLError should result in a warning that there was a network connectivity issue, but we will generate anyways.

This is now done.

I think the autocomplete should show the trailing caret >:

This will happen when there is only one valid completion.

If I recall correctly, I didn't get the trailing caret ever on the autocomplete results.
This may be due to readline differences on macOS.
Only a potential issue because it gives the impression that leaving the trailing caret off is correct.

I've addressed the comments in the code review.

I had the same issues last night while working on an unrelated branch. It was due to the branch not being up to date with the recent changes to development. I have updated the PR with current development and everything seems to be working ok.
I've fixed the autocomplete so that the ending '>' is now displayed. @psychedelicious when you have a chance, please test again. I appreciate it.

I had issues getting invoke.py to run on this branch:

I get an alert saying I have misconfigured model files.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   You appear to have a missing or misconfigured model file(s).
   The script will now exit and run configure_invokeai.py to help fix the problem.
   After reconfiguration is done, please relaunch invoke.py.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

I continue the configure_invokeai.py script, just taking the default options (which appear to be correct) and it appears to be successful, but when I try again, it fails the same way.
I see my .invokeai file has no default root or output directory set:
❯ cat ~/.invokeai
# InvokeAI initialization file
# Put frequently-used startup commands here, one or more per line
# Examples:
# --web --host=<IP_ADDRESS>
# --steps 20
# -Ak_euler_a -C10.0

I tried deleting this and it recreate the same exact file again.
Looks like my root and outdir are not being written to the file. I manually added them and now it works.

URLError doesn't appear to be caught (or caught in the right place), invoke.py crashes when I disconnect my internet:
AttributeError: 'URLError' object has no attribute 'code'
The autocomplete list of valid values do not include the trailing caret still, which is kinda confusing. If you just manually type in what autocomplete shows you, instead of pressing tab, it won't work of course bc you are missing the trailing caret.

Here's what my autocomplete looks like:
invoke> <poo
<pool-test  <poolrooms
invoke> <pool
<pool-test  <poolrooms
invoke> <poolrooms> -s 5

Autocomplete carets are shown now :)

URLError still not caught when no internet connection; invoke.py crashes :(

Still the .invokeai file is not being created correctly - but I found the issue!

invoke.py calls ldm.invoke.CLI.main(), which immediately instantiates Args().
Args() checks if ~/.invokeai exists and if not, and if not, it makes one in Args._create_init_file(). *This function creates the file with the "old" style/content of .invokeai`.*
After Args() does its thing, flow goes back into ldm.invoke.CLI.main(), which sees the .invokeai file but doesn't see the root and outdir flags in it, recognizing it is incorrect. It then fires up configure_invokeai.py.
In that script, there is no facility to fix a broken or improperly configured .invokeai. E.g configure_invokeai.py L605, it conditionally creates the new file with the new format/content:     if not os.path.exists(init_file):
This of course doesn't happen bc I already have an .invokeai file. So basically unless your .invokeai file is not already correct, the script can never correct it.

Thanks for tracking down the issue with .invokeai. I was trying to reproduce the issue by removing the file and running configure_invokeai.py, but now I see you triggered it using a different path. One more try at this!!!!

@psychedelicious I've fixed both the problems -- I hope for real this time. Thank you for your help tracking them down.

No worries, happy to help. Not quite there yet but very close!:

If I run invoke.py with no network connection at all, I get a URLError. I had previously tested by getting to invoke> prompt with network connectivity and then disconnecting from network. This URLError is coming from patchmatch:

│ /Users/spencer/mambaforge/envs/invokeai/lib/python3.10/site-packages/patchmatch/patch_match.py:1 │
│ 04 in <module>                                                                                │
│                                                                                │
│   101 import platform                                                                            │
│   102                                                                                │
│   103 # Get release information from github                                                      │
│ ❱ 104 release_response = urlopen(release_url)                                                    │
│   105 release_json = json.loads(release_response.read())                                         │
│   106                                                                                │
│   107 # Filter to assets for platform                                                            │
│

I suppose the whole shebang may need to be wrapped with a try...

If I start with connectivity, then disconnect, and try to use an embedding which was not previously loaded, this is handled gracefully but I think there is a misplaced quote or something... note the str(e):

>> Downloading sd-concepts-library/amogus...str(e). This may reflect a network issue. Generation will continue without the concept.

No worries, happy to help. Not quite there yet but very close! I suppose this is difficult to test bc you cannot disconnect from the network due to your setup :/

If I run invoke.py with no network connection at all, I get a URLError. I had previously tested by getting to invoke> prompt with network connectivity and then disconnecting from network. This URLError is coming from patchmatch:

│ /Users/spencer/mambaforge/envs/invokeai/lib/python3.10/site-packages/patchmatch/patch_match.py:1 │
│ 04 in <module>                                                                                │
│                                                                                │
│   101 import platform                                                                            │
│   102                                                                                │
│   103 # Get release information from github                                                      │
│ ❱ 104 release_response = urlopen(release_url)                                                    │
│   105 release_json = json.loads(release_response.read())                                         │
│   106                                                                                │
│   107 # Filter to assets for platform                                                            │
│

I suppose the whole shebang may need to be wrapped with a try...

I'll fix this in a separate PR.

If I start with connectivity, then disconnect, and try to use an embedding which was not previously loaded, this is handled gracefully but I think there is a misplaced quote or something... note the str(e):

>> Downloading sd-concepts-library/amogus...str(e). This may reflect a network issue. Generation will continue without the concept.

The string formatting issue is now fixed.


Troubles with file type icons

I just have some troubles with file icons in sidebar, because they differ from your screens.

What could be the problem? Maybe some additional settings?
P.S. Operating System: Windows 10.
Sublime: Build 3114

Ah! Just install syntax files for those languages and restart Sublime Text.
E.g.
SCSS
LESS
Coffee
Due to new Sublime's syntax engine it's not possible to add such custom icons as Gulpfile, Gruntfile & etc. I left them for the future releases.

Interesting. Does that mean that the icons are mapped to the root scope?

oh, man, thanks! Really, you just saved a lot of my time :) Your theme are really cool :+1:

@michaelblyons Yep) More details:
Sidebar icons in themes
Syntax Conflict
Extending existing syntaxes


Permission denied running docker images as user

Bootstrap tries to run images as current user by default. This is to avoid docker creating folders and files in volumes as root which is not recommended.
In some environments, running the bootstrap images when creating certificates or nemgen fails with permission denied.
symbolplatform/symbol-server:tools-gcc-<IP_ADDRESS> bash -c cd /data && bash createCertificate.sh
    Error: Command failed: docker run --rm -u 1000:1000 -v /home/vagrant/target/config/api-node/resources/cert:/data:rw symbolplatform/symbol-server:tools-gcc-<IP_ADDRESS> "bash" "-c" "cd
    /data && bash createCertificate.sh"
    docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.40/containers/create: dial
    unix /var/run/docker.sock: connect: permission denied.
    See 'docker run --help'.
    Code: 126

In some cases, when running with sudo, some users get:
2020-09-20T11:49:57.391Z info [SYSTEM_LOG]     Running image using Exec: symbolplatform/symbol-server:tools-gcc-<IP_ADDRESS> bash -c cd /data && bash createCertificate.sh
    Error: Command failed: docker run --rm -u 0:0 -v /home/vagrant/target/config/api-node/resources/cert:/data:rw
    symbolplatform/symbol-server:tools-gcc-<IP_ADDRESS> "bash" "-c" "cd /data && bash createCertificate.sh"
    mkdir: cannot create directory 'new_certs': Permission denied
    touch: cannot touch 'index.txt.attr': Permission denied
    Code: 1

In this case: echo $(id -u):$(id -g) returns 0:0
Certificate and Nemgen creation has been improved in <IP_ADDRESS> branch . In that branch, not providing a user is possible but the files are created using root.
This task is to try to replicate the problem locally and to try a good combination of user:group that creates the files as the local user.
https://vsupalov.com/docker-shared-permissions/
Reported by @44uk

@44uk can I close this one?
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.40/containers/create: dial
unix /var/run/docker.sock: connect: permission denied.
Can be fixed by allowing docker to run without sudo. We have added the guide to fix this. Nothing else to do.

After updated latest version, I don't met these problems. It seems to be good. Thanks!


chore(docker-compose): use dev image for docker-compose-non-dev.yml

SUMMARY
Since https://github.com/apache/superset/pull/14267 added support for alerts/reports (and thumbnails) to the docker file it makes sense to use the dev image in docker-compose-non-dev.yml so that users can take advantage of the alerts/reports functionality. This PR also bumps redis to latest as it's already being used in the default docker compose file.
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

N/A
TEST PLAN

docker-compose -f docker-compose-non-dev.yml pull && docker-compose -f docker-compose-non-dev.yml up brings up a working version of superset at localhost:8088
ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

This works great!


[HUDI-3538] Support Compaction Command Based on Call Procedure Command for Spark SQL

Tips

Thank you very much for contributing to Apache Hudi.
Please review https://hudi.apache.org/contribute/how-to-contribute before opening a pull request.

What is the purpose of the pull request
Supporting compaction command for SparkSQL
Blocked By:  https://github.com/apache/hudi/pull/4901
Brief change log
(for example:)

Add RunCompactionProcedure and ShowCompactionProcedure
Add test case in TestCallProcedure

Verify this pull request
(Please pick either of the following options)
This pull request is a trivial rework / code cleanup without any test coverage.
(or)
This pull request is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:
(example:)

Added integration tests for end-to-end.
Added HoodieClientWriteTest to verify the change.
Manually verified the change by running a job locally.

Committer checklist

[ ] Has a corresponding JIRA in PR title & commit

[ ] Commit message is descriptive of the change

[ ] CI is green

[ ] Necessary doc changes done or have another open PR

[ ] For large changes, please consider breaking it into sub-tasks under an umbrella JIRA.

@hudi-bot run azure

LGTM， just a minor comment.  once addressed, we can merge it.

@huberylee Thank you for your contribution


[Feature] Add Functions to Async

[x]  vehicle.GetDoorStateAsync()
[x]  vehicle.SetDoorStateAsync(byte doorId, byte state)

Will be fixed in next release.


setupSecretsForUsers fails when only ssh_host_ed25519_key is provided through nixos-everywhere

I'm trying to provision a VM with nixos-everywhere.
The root password is set with sops-nix:
    sops.secrets.password-root.neededForUsers = true;

    users.users.root = {
      passwordFile = config.sops.secrets.password-root.path;
    };

and the sops key is derived from /etc/ssh/ssh_host_ed25519_key as an age key.
I know this setup works well because I already use this code on many machines.
To setup this new VM, I created a new  /etc/ssh/ssh_host_ed25519_key for the VM and added the corresponding age key to my .sops.yaml as usual.
Then I launched nixos-everywhere with this command:
nix run github:numtide/nixos-anywhere -- --flake .#nixos-testvm --extra-files /tmp/tmp.Ese7hBI2bl root@vm

The extrafiles:
tree /tmp/tmp.Ese7hBI2bl                                                                                 ✔  root@nixos-xps  14:14:33
/tmp/tmp.Ese7hBI2bl
└── etc
    └── ssh
        ├── ssh_host_ed25519_key
        └── ssh_host_ed25519_key.pub

Then, when first activating the new VM conf, setupSecretsForUsers fails because it tries to read /etc/ssh/ssh_host_rsa_key which doesn't exist.
### Copying extra files ###
Warning: Permanently added '[localhost]:2222' (ED25519) to the list of known hosts.
sending incremental file list
./
etc/
etc/ssh/
etc/ssh/ssh_host_ed25519_key
etc/ssh/ssh_host_ed25519_key.pub

sent 763 bytes  received 69 bytes  554.67 bytes/sec
total size is 507  speedup is 0.61
Warning: Permanently added '[localhost]:2222' (ED25519) to the list of known hosts.
### Installing NixOS ###
Warning: Permanently added '[localhost]:2222' (ED25519) to the list of known hosts.
installing the boot loader...
setting up secrets for users...
/nix/store/909bd2m8bxl57s2xiqyrxq08yasnbk1v-sops-install-secrets-0.0.1/bin/sops-install-secrets: Error setting up gpg keyring: Cannot read ssh key '/etc/ssh/ssh_host_rsa_key': open /etc/ssh/ssh_host_rsa_key: no such file or directory
Activation script snippet 'setupSecretsForUsers' failed (1)
warning: password file ‘/run/secrets-for-users/password-paulg’ does not exist
warning: password file ‘/run/secrets-for-users/password-root’ does not exist
setting up /etc...
setting up secrets...
/nix/store/909bd2m8bxl57s2xiqyrxq08yasnbk1v-sops-install-secrets-0.0.1/bin/sops-install-secrets: Error setting up gpg keyring: Cannot read ssh key '/etc/ssh/ssh_host_rsa_key': open /etc/ssh/ssh_host_rsa_key: no such file or directory
Activation script snippet 'setupSecrets' failed (1)

/etc/ssh/ssh_host_rsa_key  doesn't exist because the VM hasn't booted yet and so sshd didn't create it.
I don't see why it prevents sops from decrypting the secrets with the age key derived from  /etc/ssh/ssh_host_ed25519_key.
I am not sure I have the correct understanding of the situation though because I'm basically following this guide https://github.com/nix-community/nixos-anywhere/blob/main/docs/howtos/secrets.md and so I suppose it should be working in this use case.

after reading https://github.com/Mic92/sops-nix/blob/master/modules/sops/default.nix I set
sops.gnupg.sshKeyPaths = [];

Then sops-install-secrets doesn't fail and correctly installs the age key and the rest of the installation works flawlessly.
So, maybe it would make sense to change sops-install-secrets to process the age key and the gpg key independently in case one of them fails?

I don't know Go but I guess changing this line to just print a warning would solve the issue:
https://github.com/Mic92/sops-nix/blob/014e44d334a39481223a5d163530d4c4ca2e75cb/pkgs/sops-install-secrets/main.go#L944C34-L944C34

sops.gnupg.sshKeyPaths = [];

Worked for me as well. Also found out that disabling the openssh service allowed user passwords to be installed correctly. Not interesting in a lot of cases, but maybe relevant for the problem.


missing region in config

Not really obvious where to set up the region, since it doesn't use the environment variable AWS_DEFAULT_REGION from the CLI.  So, cim stack-up fails for vpc:
{ ConfigError: Missing region in config
at Request.VALIDATE_REGION (/usr/local/lib/node_modules/cim/node_modules/aws-sdk/lib/event_listeners.js:92:45)
at Request.callListeners (/usr/local/lib/node_modules/cim/node_modules/aws-sdk/lib/sequential_executor.js:106:20)
at callNextListener (/usr/local/lib/node_modules/cim/node_modules/aws-sdk/lib/sequential_executor.js:96:12)
at /usr/local/lib/node_modules/cim/node_modules/aws-sdk/lib/event_listeners.js:86:9
at finish (/usr/local/lib/node_modules/cim/node_modules/aws-sdk/lib/config.js:341:7)
at /usr/local/lib/node_modules/cim/node_modules/aws-sdk/lib/config.js:359:9
at EnvironmentCredentials.get (/usr/local/lib/node_modules/cim/node_modules/aws-sdk/lib/credentials.js:126:7)
at getAsyncCredentials (/usr/local/lib/node_modules/cim/node_modules/aws-sdk/lib/config.js:353:24)
at Config.getCredentials (/usr/local/lib/node_modules/cim/node_modules/aws-sdk/lib/config.js:373:9)
at Request.VALIDATE_CREDENTIALS (/usr/local/lib/node_modules/cim/node_modules/aws-sdk/lib/event_listeners.js:81:26)
message: 'Missing region in config',
code: 'ConfigError',
time: 2018-11-09T01:19:38.868Z }
Thoughts?
Luis

Solved by exporting the environment variable as AWS_REGION instead of AWS_DEFAULT_REGION
export AWS_REGION=us-west-2


When using Voyager as a dependency subchart, Helm will complain about non-existent voyager.appscode.com/v1beta1

I am using Voyager as a dependency subchart of a larger project. This means that Helm will

Put voyager in the same release as the larger project
Put the voyager operator and other resources in the release namespace

I am happy with this setup. However, when I do a fresh helm install I get:
Error: unable to recognize "": no matches for kind "Ingress" in version "voyager.appscode.com/v1beta1"

I think this is because Helm is trying to create my Ingress resource before it has actually created Voyager's apiregistration.k8s.io/v1beta1 APIService which actually defines voyager.appscode.com/v1beta1, so at the time of creation, no such api extension actually exists.
The simplest solution to this issue would to use Helm hooks (e.g. "helm.sh/hook": "pre-install") to make sure that Voyager's APIService is created before any other resources in the same release. The pre-install hook will have no impact on regular Voyager installations.
I will open a PR and link to it here. Hopefully this is a quick fix that will help everyone who wants to follow this pattern with Voyager.
Thanks for a great project!

After trying to use the pre-install hook I've realized that Kubernetes needs to actually provision the APIService and then finally the voyager-operator pod for the Ingress CRD to be created here:
https://github.com/appscode/voyager/blob/39cac5f3d26832fe3599c0a98b7dc9c4348f68b0/pkg/operator/operator.go#L106-L114
This means that even if Helm waits for the APIService to be created, the pod will still be spinning up and the CRDs will not exist yet at the time of validation.
A solution to this problem which would allow for the workflow of using Voyager as a dependency would be to keep the CRD resources statically in the Helm chart for Voyager and create them at Helm install-time.
This would allow us to use the crd-install Helm hook to be able to create an Ingress in the parent app while using the CRD from the voyager subchart. The history of the CRD issue and the crd-hook solution is described here
This is more work than simply adding a pre-install hook, but also seems to me to make more sense, however I haven't looked in detail at Voyager's architecture so I don't know if there's a specific reason not to do this.
However, it would be great to support the workflow of using Voyager as a subchart in a large Helm app.


Possible faulty account balance validation when tx.max_fee_per_blob_gas > block.blob_gas_price

Describe the bug
Test tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx performs a client validation verification for blocks that contain a transaction from an account that does not have enough upfront funds to pay for a blob transaction.
On cases where the transaction's max_fee_per_blob_gas is equal to the block's blob_gas_price, the validationError returned by reth is the correct expected cause of invalidation:
{
   "jsonrpc":"2.0",
   "result":{
      "status":"INVALID",
      "latestValidHash":"0x976f932c2841b02c75ce4f9b52c7d226847c9c16f0d09ee305a1d6bed5bd4e4f",
      "validationError":"EVM reported invalid transaction (0x95114b814da0d9573b15acec641e86e1992196b4afb3db3c73539c446b9a1db0): Transaction error: LackOfFundForMaxFee { fee: 21004, balance: 0x0000000000000000000000000000000000000000000000000000000000067ca8_U256 }"
   },
   "id":1
}

However on tests where max_fee_per_blob_gas is greater than the block's blob_gas_price, and the account does not have the funds to pay for the max_fee_per_blob_gas it specifies, the block should be invalid, but the rejection reason differs:
{
   "jsonrpc":"2.0",
   "result":{
      "status":"INVALID",
      "latestValidHash":"0x6d69e7ad225123fe7ec582b49e861224237fc24c62fcadadddf24ce90ed3afc7",
      "validationError":"block gas used mismatch: got 27204, expected 0; gas spent by each transaction: [(0, 27204)]"
   },
   "id":1
}

Reth rejected the block because of a block gas used mismatch, from which we can assume that reth executed and applied the transaction, which should have not happened and the block should have been discarded earlier.
From the EIP-4844, in the block validation procedure we can see that the tx.max_fee_per_blob_gas must be used to calculate the minimum balance:
        # modify the check for sufficient balance
        max_total_fee = tx.gas * tx.max_fee_per_gas
        if get_tx_type(tx) == BLOB_TX_TYPE:
            max_total_fee += get_total_blob_gas(tx) * tx.max_fee_per_blob_gas
        assert signer(tx).balance >= max_total_fee

But it seems that get_blob_gasprice(block.header) is being used instead, which could be the cause of the issue.
Steps to reproduce
Using branch https://github.com/marioevz/hive/tree/pyspec-check-tx-insertion-error, run:
./hive --client-file ./configs/cancun.yaml --client reth --sim ethereum/pyspec --sim.loglevel 5 --docker.nocache reth

Or to fill an example blockchain test using https://github.com/ethereum/execution-spec-tests, run:
fill --until=Cancun "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Cancun-blockchain_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_10000-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-access_list]" -m blockchain_test

Although blockchain test will pass because the block is still invalidated due to the block gas used.
Node logs
2024-01-15T21:49:07.761954Z  WARN consensus::engine: Error while processing payload error=InsertBlockError { error: Execution(Validation(BlockGasUsed { gas: GotExpected { got: 27204, expected: 0 }, gas_spent_by_tx: [(0, 27204)] })), hash: 0xe5790dc579725814fceccbfea542860ceb0094c45b679a0eac05420a612df397, number: 1, parent_hash: 0xf6c8b5b8b36d29b65c1b4bbed92e86a13a575ff69291a5521966b1c67f4b7f45, num_txs: 1, .. }
2024-01-15T21:49:07.761981Z  WARN consensus::engine: Invalid block error on new payload invalid_hash=0xe5790dc579725814fceccbfea542860ceb0094c45b679a0eac05420a612df397 invalid_number=1 error=Execution(Validation(BlockGasUsed { gas: GotExpected { got: 27204, expected: 0 }, gas_spent_by_tx: [(0, 27204)] }))
2024-01-15T21:49:07.761991Z  WARN consensus::engine: Bad block with hash hash=0xe5790dc579725814fceccbfea542860ceb0094c45b679a0eac05420a612df397 header=Header { parent_hash: 0xf6c8b5b8b36d29b65c1b4bbed92e86a13a575ff69291a5521966b1c67f4b7f45, ommers_hash: 0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347, beneficiary: 0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba, state_root: 0x0640d46b81dd7900aa4fc78f26ce9c6b877f469d32eb4ef021c5659aae1db82c, transactions_root: 0x04c3232b492c3a9e0dacfa2437a0838488c9732092b74b85475f64bb00d54467, receipts_root: 0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421, withdrawals_root: Some(0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421), logs_bloom: 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, difficulty: 0x0_U256, number: 1, gas_limit:<PHONE_NUMBER>00000000, gas_used: 0, timestamp: 1000, mix_hash: 0x0000000000000000000000000000000000000000000000000000000000000000, nonce: 0, base_fee_per_gas: Some(7), blob_gas_used: Some(131072), excess_blob_gas: Some(917504), parent_beacon_block_root: Some(0x0000000000000000000000000000000000000000000000000000000000000000), extra_data: 0x00 }

Platform(s)
Linux (x86)
What version/commit are you on?
9d65a4c
What database version are you on?
No response
What type of node are you running?
None
What prune config do you use, if any?
No response
If you've built Reth from source, provide the full command you used
cargo build --release
Code of Conduct

[X] I agree to follow the Code of Conduct

@marioevz good find! This is a consensus error

@marioevz good find! This is a consensus error

Thanks to you guys for the precise descriptions in the errors that reth returns (in the engine API response), we used them to catch this, please keep doing this!

This is now released, thanks Mario!


New version: ArrayNetworks.MotionPro version <IP_ADDRESS>5

- [X] Have you signed the Contributor License Agreement?

[ ] Have you checked that there aren't other open pull requests for the same manifest update/change?

[X] Does your manifest conform to the 1.5 schema?

Microsoft Reviewers: Open in CodeFlow

Hi @Trenly,

This PR's version number <IP_ADDRESS>5 has 4 parameters (sets of numbers between dots - major, minor, etc), which is greater than the current manifest's version 1.2.22, which has 3 parameters.

Is this intentional?
(Automated response - build 629)

Hi @Trenly,
This manifest adds Apps and Features entries that aren't present in previous PR versions. Should these entries also be added to the previous versions?
(Automated response - build 629.)

Hi @Trenly,
This manifest adds Apps and Features entries that aren't present in previous PR versions. Should these entries also be added to the previous versions?
(Automated response - build 629.)

PR Raised for removing older versions as they write duplicate ARP entries

Hi @Trenly,

This PR's version number <IP_ADDRESS>5 has 4 parameters (sets of numbers between dots - major, minor, etc), which is greater than the current manifest's version 1.2.22, which has 3 parameters.

Is this intentional?
(Automated response - build 629)
Edit: Is the current manifest really 8 major versions out of date?

No, the current manifest is only 3 versions out of date but has an incorrect version number - it should have been <IP_ADDRESS>6


lr: 1.3 -> 1.4

Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools.
This update was made based on information from https://repology.org/metapackage/lr/versions.
These checks were done:

built on NixOS
ran ‘/nix/store/cwrqw239bf9kd1d82ljq7506j4ri4p8i-lr-1.4/bin/lr -h’ got 0 exit code
directory tree listing: https://gist.github.com/7ffd474460d7e46863b9b0cf42f9c791

cc @globin for review

Success on x86_64-darwin (full log)
Attempted: lr
Partial log (click to expand)
mkdir -p /nix/store/mpw4b5wmfwvjjmfb2vjwl30qhbgnhxmw-lr-1.4/bin /nix/store/mpw4b5wmfwvjjmfb2vjwl30qhbgnhxmw-lr-1.4/share/man/man1 /nix/store/mpw4b5wmfwvjjmfb2vjwl30qhbgnhxmw-lr-1.4/share/zsh/site-functions
install -m0755 lr /nix/store/mpw4b5wmfwvjjmfb2vjwl30qhbgnhxmw-lr-1.4/bin
install -m0644 lr.1 /nix/store/mpw4b5wmfwvjjmfb2vjwl30qhbgnhxmw-lr-1.4/share/man/man1
install -m0644 _lr /nix/store/mpw4b5wmfwvjjmfb2vjwl30qhbgnhxmw-lr-1.4/share/zsh/site-functions
post-installation fixup
gzipping man pages under /nix/store/mpw4b5wmfwvjjmfb2vjwl30qhbgnhxmw-lr-1.4/share/man/
strip is /nix/store/kdff2gim6417493yha769kh00n63lnrw-cctools-binutils-darwin/bin/strip
stripping (with command strip and flags -S) in /nix/store/mpw4b5wmfwvjjmfb2vjwl30qhbgnhxmw-lr-1.4/bin
patching script interpreter paths in /nix/store/mpw4b5wmfwvjjmfb2vjwl30qhbgnhxmw-lr-1.4
/nix/store/mpw4b5wmfwvjjmfb2vjwl30qhbgnhxmw-lr-1.4

Success on x86_64-linux (full log)
Attempted: lr
Partial log (click to expand)
install -m0644 _lr /nix/store/cwrqw239bf9kd1d82ljq7506j4ri4p8i-lr-1.4/share/zsh/site-functions
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/cwrqw239bf9kd1d82ljq7506j4ri4p8i-lr-1.4
shrinking /nix/store/cwrqw239bf9kd1d82ljq7506j4ri4p8i-lr-1.4/bin/lr
gzipping man pages under /nix/store/cwrqw239bf9kd1d82ljq7506j4ri4p8i-lr-1.4/share/man/
strip is /nix/store/j75dgadrff2d1fyc4fczmcgqkid2imdx-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/cwrqw239bf9kd1d82ljq7506j4ri4p8i-lr-1.4/bin
patching script interpreter paths in /nix/store/cwrqw239bf9kd1d82ljq7506j4ri4p8i-lr-1.4
checking for references to /build in /nix/store/cwrqw239bf9kd1d82ljq7506j4ri4p8i-lr-1.4...
/nix/store/cwrqw239bf9kd1d82ljq7506j4ri4p8i-lr-1.4

Success on aarch64-linux (full log)
Attempted: lr
Partial log (click to expand)
install -m0644 _lr /nix/store/d1rqsnlx4r17pawfknvvs7cafqqzdz9d-lr-1.4/share/zsh/site-functions
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/d1rqsnlx4r17pawfknvvs7cafqqzdz9d-lr-1.4
shrinking /nix/store/d1rqsnlx4r17pawfknvvs7cafqqzdz9d-lr-1.4/bin/lr
gzipping man pages under /nix/store/d1rqsnlx4r17pawfknvvs7cafqqzdz9d-lr-1.4/share/man/
strip is /nix/store/gp7fylxwn18b7pl2c18ks89hsiaxyfvf-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/d1rqsnlx4r17pawfknvvs7cafqqzdz9d-lr-1.4/bin
patching script interpreter paths in /nix/store/d1rqsnlx4r17pawfknvvs7cafqqzdz9d-lr-1.4
checking for references to /build in /nix/store/d1rqsnlx4r17pawfknvvs7cafqqzdz9d-lr-1.4...
/nix/store/d1rqsnlx4r17pawfknvvs7cafqqzdz9d-lr-1.4


Change buttons that are nested in anchor tags

W3C states that:

The a element may be wrapped around entire paragraphs, lists, tables, and so forth, even entire sections, so long as there is no interactive content within (e.g. buttons or other links).

What is more, this causes double-focus problems (such as in #4894).
Several files make use of invalid HTML, with a button nested inside an a tag:

account-settings.handlebars
display-settings.handlebars
apps.html
compose.html
hello.html

I will be using an approach similar to this commit, replacing the anchor with a form element.

@zulipbot claim

@zulipbot claim

I would like to work on this issue, please guide on how to go about it. I already have the zulip development environment setup

@zulipbot abandon

@zulipbot claim

yes, still working on it!

@vaidap Why dont we just use onclick function of javascript under button tags instead of using form approach.

@zulipbot claim

@jumperskirt are u still working on this issue? Can I work upon this issue as you were assigned 2 months back on this?

@zulipbot abandon

@zulipbot claim

@zulipbot abandon

@vaidap do you want to take this one?

@timabbott I want to work on this. Can I claim this?

@abhigyank yes, but be sure to read the history of past attempts to make sure you do this correctly.

@zulipbot claim (unless @abhigyank finished/is still working on it)