Support Jekyll 3.3

Depends on https://github.com/devcontainers/images/issues/866

[x] Open a PR
[x] Create a release
[x] Update templates (if necessary)

Closing as the jekyll image now target ruby 3.3 🎉


Remove OVMS AI extension

OVMS AI extension module is no longer needed as Microsoft stopped supporting their Azure Video Analyzer product.

@dkalinowski @atobiszei could you please approve module deletion?


commands: Add TLS/HTTPS support to hugo server

The "auto cert" handling in this PR is backed by mkcert (see link below).
To get this up and running on a new PC, you can:
hugo server trust
hugo server --certAuto

When --certAuto (or --certFile and --keyFile) is set and no --baseURL is provided as a flag, the server is started with
TLS and https as the protocol.
Note that you only need to run hugo server trust once per PC.
If you already have the key and the cert file (e.g. by using mkcert directly), you can do:
hugo server --certFile mycert.pem --keyFile mykey.pem

See https://github.com/FiloSottile/mkcert
Fixes https://github.com/gohugoio/hugo/issues/11064

So, this works for the advanced user, but we (I) need to figure out a way to simplify this. What I've been doing to test this is:

Install https://github.com/FiloSottile/mkcert
mkcert -install
mkcert localhost
hugo server --cert localhost.pem --key localhost-key.pem

The above will assume https if not --baseURL is set.
The above is simple enough (for me at least) I guess, but we need to find way to avoid having to use the flags every time you open a server (maybe some env vars).
Note that having a certificate generated and self signed by Hugo would be perfecto, but unfortunately browsers these days have trust issues.
/cc @istr @jmooring

@bep Thanks for /cc ing me. :heart:
See https://github.com/gohugoio/hugo/issues/11064#issuecomment-1574043486 for some additional thoughts on "make it simple".

FYI. On a mostly virgin Ubuntu system:
$ mkcert -install localhost
Sudo password:
The local CA is now installed in the system trust store! ⚡
Warning: "certutil" is not available, so the CA can't be automatically installed in Firefox and/or Chrome/Chromium! ⚠
Install "certutil" with "apt install libnss3-tools" and re-run "mkcert -install" 👈

This works:
sudo apt install libnss3-tools
mkcert -install localhost

# restart browser

hugo server --cert localhost.pem --key localhost-key.pem

# visit https://localhost:1313/

I think CLI flags with the ability to override via env vars is sufficient for now. Looking back at some issues and forum topics, it seems like the primary uses cases were:

Using hugo server in production, which in my view is not a valid use case.

Serving the site over a local network for internal testing (co-workers testing the site, testing from a mobile device, etc). With the mkcert approach, all visitors will need to install the cert in their browser and restart the browser. I'm not sure how to do this on a mobile device.

@jmooring yea, I hadn't thought about the mobile "thing" ... Thanks for testing.

@jmooring Re. mobile I followed this guide for my iPhone, and then this construct gets me HTTP on both desktop and phone:
hugo server --cert <IP_ADDRESS>.pem --key <IP_ADDRESS>-key.pem --bind <IP_ADDRESS> --baseURL https://<IP_ADDRESS>:1313/ --port 1313

Admittingly too much typing even for me, but with a little more thinking, I think this could have potential -- for the expert user, that is.

I have added an experimental ´hugo server trust` command (which actually works pretty good) + automatic certificate generation, so now you can actually do:
hugo server trust
hugo server

The first is only needed once.

Current status:
hugo server trust
hugo server --mkcert

Will give you an https server, which I'm pretty happy with. Still a little rough around the edges...

@jmooring any thoughts on the flag names?

--certFile and --keyFile --certAuto.

With --certAuto both cert and key will be generated -- and if any of these are set, we assume https protocol in the baseURL unless the --baseURL flag is set. I have investigated a fair amount of time today investigating alternative approaches to this, and all of them are much higher on the complexity scale. My current approach compiles in mkcert, so it should work out of the box on many platforms (at least MacOs, Linux and Windows).

I have added an experimental ´hugo server trust` command (which actually works pretty good) + automatic certificate generation, so now you can actually do:
hugo server trust
hugo server

The first is only needed once.

It's really impressive how much traction you're providing right now. A whole bunch of features that are a huge improvement in such a short time: Tailwind 3 support, the large config rewrite and now HTTPS on top of that. Kudos.

OK, I ended up with these flags for hugo server:
--tlsAuto                     generate and use locally-trusted certificates.
--tlsCertFile string     path to TLS certificate file
--tlsKeyFile string      path to TLS key file

I have tested this OK on MacOS and Windows.

FYI (Linux). We probably can't do anything about this...
$ hugo server trust

The local CA is now installed in the system trust store! ⚡
Warning: "certutil" is not available, so the CA can't be automatically installed in Firefox and/or Chrome/Chromium! ⚠
Install "certutil" with "apt install libnss3-tools" and re-run "mkcert -install" 👈

$ sudo apt install libnss3-tools

$ mkcert -install

Command 'mkcert' not found, but can be installed with:
sudo apt install mkcert

It would be nice if we could change:
and re-run "mkcert -install"

to
and re-run "hugo server trust"

Maybe someone can also convince upstream to never use emjoi and exclamation marks in console output.

FYI (Linux). We probably can't do anything about this...

We can ... I'll see if I get the time and motivation to do so ... And I agree about the emojis.

I have pushed an updated with improved log messages.

Maybe someone can also convince upstream to never use emjoi and exclamation marks in console output.

This discussion will probably be as refreshing, simple and short as the discussions about doing without ASCII art banners in CLIs/console I head some years back with other upstream maintainers... :sweat_smile:

Another FYI. Hugo's snap package is strictly confined. I built the snap against this PR, and as expected, was restricted from installing the CA. We'll either need to (a) document the restriction, or (b) open an interface (plug) to the needed directories, or (c) convert to classic confinement (we already have permission to do so). Option (b) is preferred.
Regardless of approach, we'll handle this as a separate issue---there are other ways to install Hugo on Linux for those who need SSL for local testing.

@jmooring yes, also this does not work on netbsd, either,  etc. Using http (the default) is good enough for 99% of Hugo use, but there are some situations that requires it, and having to do the "debug by deployment to Netlify" can be a real time/motivation killer. So, I have "always" wanted this feature, and I suspect I'm not alone. But it's not something I need daily.


Cant fing 'Start a Voice Call'

Issue Type: Bug
I installed the Live Share extension on VS code but cant find the voice call option in it so that i can start a voice call
Extension version: 1.0.2478
VS Code version: Code 1.47.2 (17299e413d5590b14ab0340ea477cdd86ff13daf, 2020-07-15T18:22:06.216Z)
OS version: Windows_NT x64 10.0.18363

System Info

Item
Value

CPUs
Intel(R) Core(TM) m3-7Y30 CPU @ 1.00GHz (4 x 1608)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: disabled_offprotected_video_decode: enabledrasterization: enabledskia_renderer: disabled_off_okvideo_decode: enabledviz_display_compositor: enabled_onviz_hit_test_surface_layer: disabled_off_okwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
7.92GB (2.78GB free)

Process Argv

Screen Reader
no

VM
0%

Hey! In order to have the audio call support, you need to install the Live Share Audio along with the Live Share extension. Let us know if you’re still running into issues after doing that. Thanks!


[FancyZones] Cycle Windows across Zones (not Focus) Round Robin on hotkey

Summary of the new feature/enhancement
When the user presses a HotKey, FZ should shift Windows one place left or right.
In a Scenario like "Priority Grid". User can cycle and bring into the center focus one of the 3 Windows. Of course, an alternative is to Use Win+Arrow, but that leaves a spot open.
Please note, I'm requesting that the Window shift from their original grid positions, not merely shifting the focus (#358 #175 )
That said, I have not thought about how to deal with overlapping windows.

i understand the concept,
can you give a direct scenario so we can understand your workflow and how you'd expect your applications to react?
questions that come to mind:

what happens to the app that was in focus and no longer is in that main zone?
What happens if there are multiple apps in that focus zone
is this more of a toggle between two zones?

Say I have VS in the main zone, Teams or a Browser in the smaller zones. I hit compile or Run tests. I then tend to switch focus to a browser or Teams. I'll usually pull it and shift-snap it to the main grid (overlapping VS). I would prefer if it swaps places so I can still see VS and see if it is done while I'm browsing or on Teams.

It should resize to the smaller zone.

I don't have an opinion. I guess it should remain in the same zone but still in the background.

I'd be happy if it worked between 2 zones aswell.

for smaller zone, which smaller zone?  the zone that the app it would flip with?  I run 5 zones typically for my 4k's each.
What about multiple monitors as well.  Does it only focus on the monitor where that window (note not application) has focus on?

For just a lot of those 'how do you make this predictable', I feel like it has to be more of a swap the app into the zone you deemed the 'priority'.
Even then, I'm still uncertain if every app that was snapped in the priority zone during a toggle would be shifted to the other zone.  I'm inclined to say they wouldn't.

Tracked in https://github.com/microsoft/PowerToys/issues/6611

Normally, they wouldn't shift. But when you press a new different hotkey while shifting, and move a window to another zone where there is already a window, they both shift places. In priority grid there is 3 zones, left and right are the smaller ones and middle is bigger one. Holding shift (which opens up zone drag) with another "shift window" hotkey, it'll flip the two window's placements. Not only can this "shift window" hotkey be used with zone dragging, but also with changing zones shortcut!! lets say ctrl is the shift window, and one of the zones shortcut was win + numpad1. You would press CTRL + Win + Numpad1, if there is already a window placed in zone 1 it'll change places with the window your moving there. Idk about you, but this would be awesome. Even more awesome if the zone shortcuts went through all your layouts, so your also able to shift through everything and not the currently selected layout. Just some ideas.

@st0le - This is exactly what I've been looking for. Have you found a way to achieve this workflow? Perhaps something using AutoHotKey?

Nope. Nothing yet. I'm dragging windows around like a peasant.

Definitely this function exists in the tiling windows manager in Pop!_OS, and Amethyst for macOS. I hope to see this in FancZones. Very useful.

The current workflow is pretty finicky and slow IMO --
Goal: "Prioritize" window 1 = move window from zone 1 (left section) to zone 2 (priority section) in Priority Grid layout.

Click on taskbar of window 1 and drag it near zone 3.
Shift-click taskbar of window 2 and place it in zone 1.
Shift-click taskbar of window 1 and place it in zone 2.

So, users need to take several actions (kinda like swapping the values of 2 variables), which can definitely be streamlined.
@Jay-o-Way Is there a way to customize the zone numbering across layouts? If so, then one solution for the Priority Grid would be to add 3 layouts (with zone numbering 1-2-3, 3-1-2, and 2-3-1) and cycle between them.

Is there a way to customize the zone numbering across layouts?

Unfortunately not


String Enum concatenation

Hi,
It would be great to be able to concat string enum type like
type ActionTypes<Name> = {
    fetch: 'FETCH_' + Name
}
typeof ActionTypes<'MY_NAME'> // { fetch: 'FETCH_MY_NAME' }

type Types = ActionTypes<'MY_NAME'>;
typeof $PropertyType<Types, 'fetch'>; // 'FETCH_MY_NAME'

Is it conceivable ?
My use case is to be able to generate redux action creators and keep strong typing and type refinement in the reducer.

Hello! How to type actions and action creators is definitely a challenge!
The specific way you propose to do it isn't something Flow can achieve. Flow is a static type system that works in terms of what it can figure out by analyzing the text of your program. It doesn't actually run the code, and it can't do anything when the code is running. As a result, things like this, where you ant to run some code and have it generate types, isn't possible.
Instead, you can learn to take advantage of declaring things statically to get safety. It may mean some more boilerplate, like declaring all action types in advance, but that can be helpful. For example, I tend to write an action type like this:
type Action =
    {type: "create-name", name: string},
  | {type: "create-id", id: number};

Now I can use refinements in the reducer and get type safety:
function reduce(state: State, action: Action) {
  switch (action.type) {
    case "create-name":
      return state; // do something, action.name is known to be a string.
    case "create-id":
      return state; // do something, where action.id is known to be a number.
  }
}

Now, this doesn't automate the creation of action creators. But, one of the main reasons for having action creator functions is to create indirection so you can change the shape of action objects without having to find all the places an action is triggered. By using Flow types for the action, you can now use the type system to accomplish that, so you may not need action creators at all for simple actions like this.

Are you sure flow can't achieve this ? The + operator I propose works on types like | and &. In the example, there is no code to run, only types.
I know the solution you gave me. I used it on my last projects. But at the end, I finished with tons of 'FETCH_MY_ENTITY', 'FETCH_MY_ENTITY_SUCCESS',  'FETCH_MY_ENTITY_FAILURE',  'EDIT_MY_ENTITY'... with similar reducer and selectors. With methods like the one in the stackoverflow link, we succeeded to save a lot of time and code line on new api request.

The part I don't understand is this. Even if Flow could do this, and generate the string types via concatenation, you'd still have different action payloads. FETCH_MY_ENTITY actions would have a payload: MyEntity, whereas FETCH_SOMETHING_ELSE actions would have a payload: SomethingElse. So to make code that uses those actions and payloads type-safe, you'd still need to define a type for each possible one to say what types it expects in the payload, right?

It's look like too generic to me.
The reducers are similar but not identical. For example, sometime I have pagination, sometimes not. I would like to be able to watch actions for specific entities just using the type.
For example, I prefer :
case 'FETCH_PAGINATED_ENTITY_SUCCESS':
  return {
    ...state,
    currentPage: action.payload.currentPage,
  }

From :
case 'FETCH_SUCCESS':
  if (action.meta.entityName !== 'paginated_entity') {
      return state;
   }
  return {
    ...state,
    currentPage: action.payload.currentPage,
  }

But I guess it is possible.

I have a similar request (I think). I want to be able to define subtypes of string that have constant parts. Specifically, export type ContentType = "text/" + string | "image/" + string | "video/" + string; etc. So the type would be a subtype of string in the same way that type Foo = "foo"; is, only less specific, but not as general as string.


[Friend V2] Onboard Memory Part 1 ($1250)

Is your feature request related to a problem? Please describe.
I want my Friend to be able to store my recordings even when the device is disconnected.
Describe the solution you'd like

Create a characteristic that stores the audio files to the sd card while the device is disconnected.
Create another characteristic that lists all the audio files available in the sd card + their size and estimated length.
Create another characteristic that starts streaming those audio files 1 by 1.

This ticket should be mainly on the firmware side, but ideally you create in capture/page.dart a button to view the list of of offline recording files available + an option to start receiving them and print them in the console.

Is there already code that allows us to interact with the sd card or do we have to write it ourselves?

I will like to take this one today to start working on storage as discussed :)

@josancamon19 can you review #590 , i will be splitting the PRs

Done by @kevvz


After updating the version of hubpress can we see in the GUI it has been updated.

A hubpress version would be nice, on the menu bar.
"Hubpress 0.5.1"

Tangentially related: can the Changelog get an update to show what's important in v0.5.x?

@peter-lawrey i agree, it will in the next version
@alxndr my bad, i made the release too fast and i totally omit the Changelog. I'll update it tomorrow.
Most of the changes are here : http://blog.hubpress.io/2016/06/20/Update-Whats-New-in-Version-051.html

@alxndr CHANGELOG is up-to-date now 😄

with the 0.6.0, the version is now displayed in the menu bar ;)


improved automatic testing and fixed but in get_connection

automatic tests using travis+dockerdb are still not stable (docker db seems to have problems when running in this restricted environments).


[docs] Migration guide from v4 to next should mention the color difference of Paper and related components in the dark mode

In Material-UI next, Paper surface color becomes brighter in the dark mode by default (cf. https://next.material-ui.com/components/paper/#elevation, #18309, and note that the default value of elevation is 1). This also affects other components based on Paper such as Drawer. It is better if these changes are documented in the migration guide (https://next.material-ui.com/guides/migration-v4/).

[x] The issue is present in the latest release.
[x] I have searched the issues of this repository and believe that this is not a duplicate.

Current Behavior 😯
I do not think that https://next.material-ui.com/guides/migration-v4/ mentions the color difference of Paper or Drawer (or any other components that are based on Paper) in the dark mode.
Expected Behavior 🤔
https://next.material-ui.com/guides/migration-v4/ should mention the color difference of Paper and Drawer (and other components that are based on Paper) in the dark mode.

It was recently added, not released yet: https://next--material-ui.netlify.app/guides/migration-v4/#paper.


[Android] Card image is cropped below when using cardScale prop

I'm using cardScale property and on Android only the image is cropped, see the screenshot attacched:

Will be fixed by PR #103 when it gets merged

This library seems abandoned, I'm going to close this issue.


TestReduceOnNeighborMethods is failing

The 3 last cases in TestReduceOnNeighborMethods fail ontestJobWithObjectReuse.
Was there any recent change that might have triggered this? The test was passing until yesterday.

I assume you are using the latest master.
Can you post the type of the failure?
There were a few commits today that may have effects:
[FLINK-1245] introduced the type hints (I will send a separate mail about those, they will make you life much easier) and it could be that we introduced a bug.
Possible is also  [FLINK-1285] (from yesterday), where now objects are not reused any more. I you had that assumption in the code, it may cause your code to behave differently.

Latest master, yes.
The failure is the following:
Failed tests:   testJobWithObjectReuse[3](flink.graphs.TestReduceOnNeighborMethods): arrays first differed at element [2]; expected:<[3,9]> but was:<[4,5]>
  testJobWithObjectReuse[4](flink.graphs.TestReduceOnNeighborMethods): arrays first differed at element [2]; expected:<[3,59]> but was:<[4,102]>
  testJobWithObjectReuse[5](flink.graphs.TestReduceOnNeighborMethods): arrays first differed at element [2]; expected:<[3,12]> but was:<[4,8]>

It seems that it has to do with FLINK-1285 indeed. When/how is object reuse enabled and how can I make the code aware of this?
Thanks :)

Hi,
object reuse is enabled/disabled using ExecutionEnvironment.getConfig().enableObjectReuse()/disableObjectReuse().
I can look into the error in a bit. (When I get to the office.)

Thanks a lot guys ^^
I guess reuse is disabled by default?

Yes it is deactivated by default. It is actually the simpler and safer way will fewer implicit assumptions.


Bug 1779990: fix(packageserver): cache packagemanifests

Description of the change:
Generate and maintain a running cache of PackageManifests. Serve get/list requests directly from this cache.
Motivation for the change:
Packageserver queries catalog gRPC APIs and constructs PackageManifest resources, on the fly, per request. When dealing with large catalogs containing icon images, this can cause requests to be very slow. Poor response times from packageserver can impact the OperatorHub UI's load time and cause its tests to timeout.
Reviewer Checklist

[ ] Implementation matches the proposed design, or proposal is updated to match implementation
[ ] Sufficient unit test coverage
[ ] Sufficient end-to-end test coverage
[ ] Docs updated or added to /docs
[ ] Commit messages sensible and descriptive

Playing around with this on minikube w/ community-operators (87 packages total) reveals some pretty promising results running kubectl get packagemanifests --all-namespaces
Before:
GET /apis/packages.operators.coreos.com/v1/packagemanifests?limit=500: (3.84524649s) 200 [kubectl/v1.16.3 (darwin/amd64) kubernetes/b3cbbae <IP_ADDRESS>:49110]
After:
GET /apis/packages.operators.coreos.com/v1/packagemanifests?limit=500: (3.679124ms) 200 [kubectl/v1.16.3 (darwin/amd64) kubernetes/b3cbbae <IP_ADDRESS>:44272]
~1000x  faster 😅
The OperatorHub UI loads almost instantly too.

/retest

/retest

/retry

/cherry-pick release-4.3

/retest
Flakes look related to OAuth.

/retest

/retest
One of the flakes this time was this marketplace one https://bugzilla.redhat.com/show_bug.cgi?id=1780143.

/retest

/retest

/retest
/lgtm
I did see one comment that might be worth addressing in a follow up. But let's try and get this in today.

/retest

/retest

/retest

/lgtm

/retest


[Schema Registry Avro] Fix min/max testing

Packages impacted by this PR
@azure/schema-registry-avro's tests
Issues associated with this PR
N/A
Describe the problem that is addressed by this PR
Min max tests are failing because SchemaProperties interface has evolved and it now contains more things but older versions of @azure/schema-registry do not have the new properties so the mocked schema registry being used in tests does not type-check correctly with those versions.
What are the possible designs available to address the problem? If there are more than one possible design, why was the one in this PR chosen?
I am casting objects of that interface to any for now to not bother with typechecking in tests between older and new versions.
Are there test cases added in this PR? (If not, why?)
Provide a list of related PRs (if any)
Command used to generate this PR:**(Applicable only to SDK release request PRs)
Checklists

[ ] Added impacted package name to the issue description
[ ] Does this PR needs any fixes in the SDK Generator?** (If so, create an Issue in the Autorest/typescript repository and link it here)
[ ] Added a changelog (if necessary)

API change check for @azure/schema-registry-avro
API changes are not detected in this pull request for @azure/schema-registry-avro

Since this is a mocked registry, that is only used for recorded mode, we are ok with this change. But we need to ensure that real customer scenarios where they use a schema-registry client with the service for both versions 1.0.1 and 1.1.0 should not be broken. We can add tests for that scenario @deyaaeldeen


publish artifact to bintray after successful build

Follow what aerosolve did to set up auto-deploy of tagged builds ( https://github.com/airbnb/aerosolve/commit/67280922b367aced4471894cd434ef540cff400b)

Update the build section of README.md to include more complete instructions for manually uploading to jfrog

cc @alexism

Updated build.gradle to remove the default value. TIL about this operator ?: with a groovy name  http://docs.groovy-lang.org/latest/html/documentation/#_elvis_operator

LGTM


Overloaded Union Return Types

Stupid question of the day, why does this not work:
class A {
	foo: string;
}

class B {
	bar: string;
}

class C {
	qat: string;
}

class D {
	baz: string;
}

function c(a: A): C;  /* Overloaded signature not compatible with function implementation */
function c(b: B): D;
function c(a: A|B): C|D {
	if (a instanceof A) {
		return new C();
	}
	else {
		return new D();
	}
}

Where as this is valid:
function c(a: A): C|D;
function c(b: B): C|D;
function c(a: A|B): C|D {
	if (a instanceof A) {
		return new C();
	}
	else {
		return new D();
	}
}

I am allowed to "delegate" the sorting out of the typing of my argument to my overloaded function implementation, but, I am not allowed to delegate the return type, though I am contracting to only return to return a certain type of return value (which is what I am doing with the handling arguments).  Is there a good reason I am missing?

It's a good question.  See #1805.  There's been talk of implementing a special case for this, but I haven't seen it yet.

It's actually not quite related to that @nycdotnet.
It's actually in the spec. From 6.1 Function Declarations:

If a function declaration includes overloads, [...] the function implementation signature must be assignable to that type.

C | D isn't assignable to either C or D; in fact, it's the reverse (C and D are each assignable to C | D).
This leaves me wondering whether there's a better way to do this or if we need to reconsider this rule in the spec.

Hmm... That does feel reversed. Obviously the use case is that having determined which override is being invoked, the implementation is contracting to return that type, thereby not requiring further type disambiguqtion by the consumer.

See #943

Yup, it is a duplicate of #943. I will take a look there.


remove unused ValueMismatch class - 2141

[Auto generated]
Number: [#2141]

openshift-python-wrapper[pull_request][8497-11ef-86c3-6044d0c8601d][PR 2141]: Closing issue for PR: remove unused ValueMismatch class.
PR was closed.


Switching tabs doesn't pick the first panel tab any more

When you first open dashboard, switch to the SQL Agent tab. The jobs tab from the component should be selected automatically, but doesn't any more. Screenshot -

Whats the commit this repros on?

@anthonydresser I tried it on master


[Bug] Amplify Gen2: AuthMode Type Mismatch ('userPool' vs 'userPools') Causes Authentication Failures

Environment information
## Environment
System:
  - OS: macOS 15.1.1
  - CPU: (10) arm64 Apple M1 Pro
  - Memory: 133.06 MB / 32.00 GB
  - Shell: /bin/zsh

Binaries:
  - Node: 20.9.0
  - npm: 10.1.0
  - pnpm: 8.10.5

NPM Packages:
  - aws-amplify: 6.10.0
  - @aws-amplify/backend: 1.8.0
  - @aws-amplify/backend-cli: 1.4.2
  - @aws-amplify/backend-data: 1.2.1
  - @aws-amplify/backend-auth: 1.4.1
  - aws-cdk-lib: 2.171.1
  - typescript: 5.7.2

Describe the bug
AuthMode Type Definition Mismatch in Amplify Gen2
Description
There is a type definition mismatch between the runtime implementation and TypeScript types for AuthMode in Amplify Generation 2. The runtime expects 'userPools' (plural) as a valid auth mode, but the TypeScript type definition only includes 'userPool' (singular). This leads to TypeScript errors and potential runtime authentication issues.
Current Behavior

TypeScript type AuthMode includes 'userPool' (singular)
Runtime implementation expects 'userPools' (plural)
This causes type errors when trying to use the correct runtime value
When using 'userPool' (as suggested by types), results in authentication errors

Error Details
When attempting to create an order with userPool (as suggested by types):
Error: NoValidAuthTokens: No federated jwt
    at headerBasedAuth (webpack-internal:///(action-browser)/./node_modules/@aws-amplify/api-graphql/dist/esm/internals/graphqlAuth.mjs:49:23)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async GraphQLAPIClass._graphql (webpack-internal:///(action-browser)/./node_modules/@aws-amplify/api-graphql/dist/esm/internals/InternalGraphQLAPI.mjs:150:29)
    at async eval (webpack-internal:///(action-browser)/./node_modules/@aws-amplify/data-schema/dist/esm/runtime/internals/operations/get.mjs:47:42)

Recovery Suggestion: "If you intended to make an authenticated API request, review if the current user is signed in."

Expected Behavior
The TypeScript type definition should match the runtime implementation by including 'userPools' as a valid value for AuthMode, preventing both type errors and runtime authentication issues.
Reproduction Steps

Create a new Amplify Gen2 project
Try to use userPools as the auth mode:

const order = await client.models.Order.create(
  orderData,
  {
    authMode: 'userPools', // Type error here
    authToken: token
  }
);

Observe the TypeScript error:

Type '"userPools"' is not assignable to type 'AuthMode | undefined'.

If using 'userPool' as suggested by types, observe the runtime error as well as the [docs]:(https://docs.amplify.aws/react/build-a-backend/data/customize-authz/per-user-per-owner-data-access/)

NoValidAuthTokens: No federated jwt

Current Workaround
Currently, developers need to use type assertions to work around this issue:
authMode: 'userPools' as any

Additional Context
The AuthMode type is currently defined as:
export type AuthMode = 'apiKey' | 'iam' | 'identityPool' | 'oidc' | 'userPool' | 'lambda' | 'none';

This type definition enforces using 'userPool' (singular), but the runtime implementation requires using 'userPools' (plural). When we use the working runtime value 'userPools', TypeScript shows a compilation error because it's not included in the AuthMode type.
This leads to a situation where using the correct runtime value ('userPools') works at runtime but fails TypeScript compilation, forcing developers to use type assertions as a workaround.
Impact
This type mismatch:

Forces developers to use type assertions
Creates confusion about the correct value to use
Reduces type safety by requiring workarounds
Can lead to runtime authentication failures when following the type definitions
Wastes development time debugging what appears to be an authentication issue but is actually a type definition mismatch

Reproduction steps
Reproduction Steps

Create a new Amplify Gen2 project
Try to use userPool as the auth mode within an NextJS action

//amplifyServerUtils.ts
import { createServerRunner } from '@aws-amplify/adapter-nextjs';
import config from<EMAIL_ADDRESS>import { cookies } from 'next/headers';
import { getCurrentUser, fetchUserAttributes, fetchAuthSession } from 'aws-amplify/auth/server';
import { AuthError, AuthUser } from 'aws-amplify/auth';

export const { runWithAmplifyServerContext } = createServerRunner({
  config,
});

export interface AuthResult {
  user: AuthUser | null;
  isAuthenticated: boolean;
  token?: string;
}

export async function getServerSideUser(): Promise<AuthResult> {
  try {
    const result = await runWithAmplifyServerContext({
      nextServerContext: { cookies },
      operation: async (contextSpec) => {
        const user = await getCurrentUser(contextSpec);
        const session = await fetchAuthSession(contextSpec);
        const token = session.tokens?.idToken?.toString();
        return { user, token };
      },
    });

    return {
      user: result?.user ?? null,
      isAuthenticated: true,
      token: result?.token,
    };
  } catch (error) {
    if (error instanceof AuthError) {
      return {
        user: null,
        isAuthenticated: false,
        token: undefined,
      };
    }

    console.error('Unexpected error in getServerSideUser:', error);
    return {
      user: null,
      isAuthenticated: false,
      token: undefined,
    };
  }
}

// actions.ts
'use server';
export async function submitOrder(orderData: OrderFormData) {
  try {
    const { user, token } = await getServerSideUser();

    const order = await client.models.Order.create(
      orderData,
      {
        authMode: 'userPools', // Type error: not assignable to type 'AuthMode'
        authToken: token
      }
    );
  } catch (error) {
    console.error('Error:', error);
  }
}

Hey,👋 thanks for raising this! I'm going to transfer this over to our API repository for better assistance 🙂


rbenv commands do nothing (e.g. install)

I've recently switched from an Intel to ARM64 MacBook and am having issues installing any version of ruby with rbenv.
I cleaned out my old homebrew installation, installed fresh, installed rbenv, ruby-build, readline (went through the steps here - https://posts.boy.sh/install-ruby-on-apple-silicon)
I had no installation errors. I'm using zsh and have added the eval "$(rbenv init -)" line to my .zshrc file.

rbenv-doctor output
Checking for `rbenv' in PATH: /opt/homebrew/bin/rbenv
Checking for rbenv shims in PATH: OK
Checking `rbenv install' support: /opt/homebrew/bin/rbenv-install (ruby-build 20230330)
Counting installed Ruby versions: none
  There aren't any Ruby versions installed under `/Users/domster83/.rbenv/versions'.
  You can install Ruby versions like so: rbenv install 3.2.2
Auditing installed plugins: OK

rbenv versions
* system

brew list
==> Formulae
autoconf	cffi		m4		openssl@3	<EMAIL_ADDRESS>ruby-build	starship
awscli		docutils	mpdecimal	pkg-config	rbenv		six		xz
ca-certificates	flyctl<EMAIL_ADDRESS>pycparser	readline	sqlite		zsh-completions

And when I run rbenv 3.1.2 --verbose there is absolutely no output in Terminal (Warp, but have checked in iTerm and Terminal).
I cleared out the .rbenv folder before reinstalling Homebrew too so it should have started fresh.
Currently unsure how to proceed as there's not even an error to go by.

@dombarnes From everything you've shared, the whole setup looks fine. I'm not sure what's going on.

And when I run rbenv 3.1.2 --verbose

I presume you were trying to run rbenv install 3.1.2, but even if the rbenv-install command wasn't available or was failing, there should be an error message. What happens if you run rbenv-install 3.1.2 manually?
And is there some additional output if you set RBENV_DEBUG=1 while executing rbenv commands?

(went through the steps here - https://posts.boy.sh/install-ruby-on-apple-silicon)

BTW, I would not add any of this to zshrc:
local READLINE_PATH=$(brew --prefix readline)
local OPENSSL_PATH=$(brew --prefix openssl)

export LDFLAGS="-L$READLINE_PATH/lib -L$OPENSSL_PATH/lib"
export CPPFLAGS="-I$READLINE_PATH/include -I$OPENSSL_PATH/include"
export PKG_CONFIG_PATH="$READLINE_PATH/lib/pkgconfig:$OPENSSL_PATH/lib/pkgconfig"

export RUBY_CONFIGURE_OPTS="--with-openssl-dir=$OPENSSL_PATH"

export PATH=$OPENSSL_PATH/bin:$PATH

export SDKROOT="$(xcrun --show-sdk-path)"

You're going to add these variables by default to each of your shell instances and then you're likely going to forget about it and it will circle back and bite you some time in the future.
Instead, just set RUBY_CONFIGURE_OPTS per-invocation of ruby-build with your preferred version of openssl:
RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl@3) --disable-install-doc" rbenv install 3.1.2

With this approach you've only set configuration that affects the Ruby compilation process, but it won't affect any other processes in the future. Furthermote, you don't need to configure anything for readline with ruby-build because we link to Homebrew's readline by default.

@mislav thanks for the feedback. Have removed the stuff from zshrc.
With RBENV_DEBUG:
+(/opt/homebrew/opt/rbenv/bin/rbenv:23): enable -f /opt/Homebrew/Cellar/rbenv/1.2.0/libexec/rbenv-realpath.dylib realpath
+(/opt/homebrew/opt/rbenv/bin/rbenv:54): '[' -z /opt/homebrew/opt/rbenv ']'
+(/opt/homebrew/opt/rbenv/bin/rbenv:57): RBENV_ROOT=/opt/homebrew/opt/rbenv
+(/opt/homebrew/opt/rbenv/bin/rbenv:59): export RBENV_ROOT
+(/opt/homebrew/opt/rbenv/bin/rbenv:61): '[' -z '' ']'
+(/opt/homebrew/opt/rbenv/bin/rbenv:62): RBENV_DIR=/Users/domster83/workprojects/OnlinePracticalExams/Trilby.Actuaries.Web
+(/opt/homebrew/opt/rbenv/bin/rbenv:69): export RBENV_DIR
+(/opt/homebrew/opt/rbenv/bin/rbenv:71): '[' -n '' ']'
+(/opt/homebrew/opt/rbenv/bin/rbenv:71): export 'RBENV_ORIG_PATH=/opt/homebrew/opt/rbenv/bin:/Users/domster83/.nvm/versions/node/v18.15.0/bin:/Users/domster83/.yarn/bin:/Users/domster83/.config/yarn/global/node_modules/.bin:/Users/domster83/.google-cloud-sdk/bin:/opt/homebrew/opt/openssl@3/bin:/Users/domster83/laptop/bin:/Users/domster83/.rbenv/shims:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/VMware Fusion.app/Contents/Public:/usr/local/MacGPG2/bin:/usr/local/share/dotnet:~/.dotnet/tools:/Library/Apple/usr/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Users/domster83/.cargo/bin:/Users/domster83/.fig/bin:/Users/domster83/.local/bin:/usr/local/opt/openssl@1.1/bin:/Library/Developer/Toolchains/swift-latest.xctoolchain/usr/bin:/usr/local/opt/curl/bin:/usr/local/heroku/bin:/usr/local/opt/node@14/bin:/usr/local/lib/node_modules:/usr/local/sbin:/Applications/Visual Studio Code.app/Contents/Resources/app/bin:/Users/domster83/.flutter/bin:/Users/domster83/workprojects/bin:/Users/domster83/.android/emulator:/Users/domster83/.android/platform-tools:/Users/domster83/.android/cmdline-tools/latest/bin:/Users/domster83/.android/cmdline-tools/tools/bin:/Users/domster83/.dotnet/tools:/Volumes/Dom'\''s T7/WebOS/webOS_Signage_SDK/CLI/bin:LG_WEBOS_SIGNAGE_SDK_HOME:/Users/domster83/.pub-cache/bin'
+(/opt/homebrew/opt/rbenv/bin/rbenv:71): RBENV_ORIG_PATH='/opt/homebrew/opt/rbenv/bin:/Users/domster83/.nvm/versions/node/v18.15.0/bin:/Users/domster83/.yarn/bin:/Users/domster83/.config/yarn/global/node_modules/.bin:/Users/domster83/.google-cloud-sdk/bin:/opt/homebrew/opt/openssl@3/bin:/Users/domster83/laptop/bin:/Users/domster83/.rbenv/shims:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/VMware Fusion.app/Contents/Public:/usr/local/MacGPG2/bin:/usr/local/share/dotnet:~/.dotnet/tools:/Library/Apple/usr/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Users/domster83/.cargo/bin:/Users/domster83/.fig/bin:/Users/domster83/.local/bin:/usr/local/opt/openssl@1.1/bin:/Library/Developer/Toolchains/swift-latest.xctoolchain/usr/bin:/usr/local/opt/curl/bin:/usr/local/heroku/bin:/usr/local/opt/node@14/bin:/usr/local/lib/node_modules:/usr/local/sbin:/Applications/Visual Studio Code.app/Contents/Resources/app/bin:/Users/domster83/.flutter/bin:/Users/domster83/workprojects/bin:/Users/domster83/.android/emulator:/Users/domster83/.android/platform-tools:/Users/domster83/.android/cmdline-tools/latest/bin:/Users/domster83/.android/cmdline-tools/tools/bin:/Users/domster83/.dotnet/tools:/Volumes/Dom'\''s T7/WebOS/webOS_Signage_SDK/CLI/bin:LG_WEBOS_SIGNAGE_SDK_HOME:/Users/domster83/.pub-cache/bin'
+(/opt/homebrew/opt/rbenv/bin/rbenv:73): shopt -s nullglob
++(/opt/homebrew/opt/rbenv/bin/rbenv:75): abs_dirname /opt/homebrew/opt/rbenv/bin/rbenv
++(/opt/homebrew/opt/rbenv/bin/rbenv:25): abs_dirname(): local path
+++(/opt/homebrew/opt/rbenv/bin/rbenv:26): abs_dirname(): realpath /opt/homebrew/opt/rbenv/bin/rbenv
++(/opt/homebrew/opt/rbenv/bin/rbenv:26): abs_dirname(): path=/opt/homebrew/Cellar/rbenv/1.2.0/libexec/rbenv
++(/opt/homebrew/opt/rbenv/bin/rbenv:27): abs_dirname(): echo /opt/homebrew/Cellar/rbenv/1.2.0/libexec
+(/opt/homebrew/opt/rbenv/bin/rbenv:75): bin_path=/opt/homebrew/Cellar/rbenv/1.2.0/libexec
+(/opt/homebrew/opt/rbenv/bin/rbenv:79): export 'PATH=/opt/homebrew/Cellar/rbenv/1.2.0/libexec:/opt/homebrew/opt/rbenv/bin:/Users/domster83/.nvm/versions/node/v18.15.0/bin:/Users/domster83/.yarn/bin:/Users/domster83/.config/yarn/global/node_modules/.bin:/Users/domster83/.google-cloud-sdk/bin:/opt/homebrew/opt/openssl@3/bin:/Users/domster83/laptop/bin:/Users/domster83/.rbenv/shims:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/VMware Fusion.app/Contents/Public:/usr/local/MacGPG2/bin:/usr/local/share/dotnet:~/.dotnet/tools:/Library/Apple/usr/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Users/domster83/.cargo/bin:/Users/domster83/.fig/bin:/Users/domster83/.local/bin:/usr/local/opt/openssl@1.1/bin:/Library/Developer/Toolchains/swift-latest.xctoolchain/usr/bin:/usr/local/opt/curl/bin:/usr/local/heroku/bin:/usr/local/opt/node@14/bin:/usr/local/lib/node_modules:/usr/local/sbin:/Applications/Visual Studio Code.app/Contents/Resources/app/bin:/Users/domster83/.flutter/bin:/Users/domster83/workprojects/bin:/Users/domster83/.android/emulator:/Users/domster83/.android/platform-tools:/Users/domster83/.android/cmdline-tools/latest/bin:/Users/domster83/.android/cmdline-tools/tools/bin:/Users/domster83/.dotnet/tools:/Volumes/Dom'\''s T7/WebOS/webOS_Signage_SDK/CLI/bin:LG_WEBOS_SIGNAGE_SDK_HOME:/Users/domster83/.pub-cache/bin'
+(/opt/homebrew/opt/rbenv/bin/rbenv:79): PATH='/opt/homebrew/Cellar/rbenv/1.2.0/libexec:/opt/homebrew/opt/rbenv/bin:/Users/domster83/.nvm/versions/node/v18.15.0/bin:/Users/domster83/.yarn/bin:/Users/domster83/.config/yarn/global/node_modules/.bin:/Users/domster83/.google-cloud-sdk/bin:/opt/homebrew/opt/openssl@3/bin:/Users/domster83/laptop/bin:/Users/domster83/.rbenv/shims:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/VMware Fusion.app/Contents/Public:/usr/local/MacGPG2/bin:/usr/local/share/dotnet:~/.dotnet/tools:/Library/Apple/usr/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Users/domster83/.cargo/bin:/Users/domster83/.fig/bin:/Users/domster83/.local/bin:/usr/local/opt/openssl@1.1/bin:/Library/Developer/Toolchains/swift-latest.xctoolchain/usr/bin:/usr/local/opt/curl/bin:/usr/local/heroku/bin:/usr/local/opt/node@14/bin:/usr/local/lib/node_modules:/usr/local/sbin:/Applications/Visual Studio Code.app/Contents/Resources/app/bin:/Users/domster83/.flutter/bin:/Users/domster83/workprojects/bin:/Users/domster83/.android/emulator:/Users/domster83/.android/platform-tools:/Users/domster83/.android/cmdline-tools/latest/bin:/Users/domster83/.android/cmdline-tools/tools/bin:/Users/domster83/.dotnet/tools:/Volumes/Dom'\''s T7/WebOS/webOS_Signage_SDK/CLI/bin:LG_WEBOS_SIGNAGE_SDK_HOME:/Users/domster83/.pub-cache/bin'
+(/opt/homebrew/opt/rbenv/bin/rbenv:81): RBENV_HOOK_PATH=:/opt/homebrew/opt/rbenv/rbenv.d
+(/opt/homebrew/opt/rbenv/bin/rbenv:82): '[' /opt/homebrew/Cellar/rbenv/1.2.0 '!=' /opt/homebrew/opt/rbenv ']'
+(/opt/homebrew/opt/rbenv/bin/rbenv:84): RBENV_HOOK_PATH=:/opt/homebrew/opt/rbenv/rbenv.d:/opt/homebrew/Cellar/rbenv/1.2.0/rbenv.d
+(/opt/homebrew/opt/rbenv/bin/rbenv:86): RBENV_HOOK_PATH=:/opt/homebrew/opt/rbenv/rbenv.d:/opt/homebrew/Cellar/rbenv/1.2.0/rbenv.d:/opt/Homebrew/etc/rbenv.d:/usr/local/etc/rbenv.d:/etc/rbenv.d:/usr/lib/rbenv/hooks
+(/opt/homebrew/opt/rbenv/bin/rbenv:90): RBENV_HOOK_PATH=/opt/homebrew/opt/rbenv/rbenv.d:/opt/homebrew/Cellar/rbenv/1.2.0/rbenv.d:/opt/Homebrew/etc/rbenv.d:/usr/local/etc/rbenv.d:/etc/rbenv.d:/usr/lib/rbenv/hooks
+(/opt/homebrew/opt/rbenv/bin/rbenv:91): export RBENV_HOOK_PATH
+(/opt/homebrew/opt/rbenv/bin/rbenv:93): shopt -u nullglob
+(/opt/homebrew/opt/rbenv/bin/rbenv:96): command=install
+(/opt/homebrew/opt/rbenv/bin/rbenv:97): case "$command" in
++(/opt/homebrew/opt/rbenv/bin/rbenv:110): command -v rbenv-install
+(/opt/homebrew/opt/rbenv/bin/rbenv:110): command_path=/opt/homebrew/bin/rbenv-install
+(/opt/homebrew/opt/rbenv/bin/rbenv:111): '[' -z /opt/homebrew/bin/rbenv-install ']'
+(/opt/homebrew/opt/rbenv/bin/rbenv:119): shift 1
+(/opt/homebrew/opt/rbenv/bin/rbenv:120): '[' 3.1.2 = --help ']'
+(/opt/homebrew/opt/rbenv/bin/rbenv:127): exec /opt/homebrew/bin/rbenv-install 3.1.2
+(/opt/homebrew/bin/rbenv-install:32): shopt -s nullglob
+(/opt/homebrew/bin/rbenv-install:36): export RUBY_BUILD_DEFINITIONS
+(/opt/homebrew/bin/rbenv-install:37): shopt -u nullglob
+(/opt/homebrew/bin/rbenv-install:40): '[' 3.1.2 = --complete ']'
++(/opt/homebrew/bin/rbenv-install:53): ruby-build --lib
+(/opt/homebrew/bin/rbenv-install:53): eval 'lib ()
{
   function parse_options ()
   {
       OPTIONS=();
       ARGUMENTS=();
       local arg option index;
       for arg in "$@";
       do
           if [ "${arg:0:1}" = "-" ]; then
               if [ "${arg:1:1}" = "-" ]; then
                   OPTIONS[${#OPTIONS[*]}]="${arg:2}";
               else
                   index=1;
                   while option="${arg:$index:1}"; do
                       [ -n "$option" ] || break;
                       OPTIONS[${#OPTIONS[*]}]="$option";
                       index=$(($index+1));
                   done;
               fi;
           else
               ARGUMENTS[${#ARGUMENTS[*]}]="$arg";
           fi;
       done
   };
   if [ "$1" == "--$FUNCNAME" ]; then
       declare -f "$FUNCNAME";
       echo "$FUNCNAME \"\$1\";";
       exit;
   fi
}
lib "$1";'
++(/opt/homebrew/bin/rbenv-install:84): lib 3.1.2
++(/opt/homebrew/bin/rbenv-install:78): lib(): '[' 3.1.2 == --lib ']'
+(/opt/homebrew/bin/rbenv-install:86): unset FORCE
+(/opt/homebrew/bin/rbenv-install:87): unset SKIP_EXISTING
+(/opt/homebrew/bin/rbenv-install:88): unset KEEP
+(/opt/homebrew/bin/rbenv-install:89): unset VERBOSE
+(/opt/homebrew/bin/rbenv-install:90): unset HAS_PATCH
+(/opt/homebrew/bin/rbenv-install:92): parse_options 3.1.2
+(/opt/homebrew/bin/rbenv-install:57): parse_options(): OPTIONS=()
+(/opt/homebrew/bin/rbenv-install:58): parse_options(): ARGUMENTS=()
+(/opt/homebrew/bin/rbenv-install:59): parse_options(): local arg option index
+(/opt/homebrew/bin/rbenv-install:60): parse_options(): for arg in '"$@"'
+(/opt/homebrew/bin/rbenv-install:62): parse_options(): '[' 3 = - ']'
+(/opt/homebrew/bin/rbenv-install:74): parse_options(): ARGUMENTS[${#ARGUMENTS[*]}]=3.1.2
+(/opt/homebrew/bin/rbenv-install:135): '[' 1 -le 1 ']'
+(/opt/homebrew/bin/rbenv-install:137): unset VERSION_NAME
+(/opt/homebrew/bin/rbenv-install:143): DEFINITION=3.1.2
+(/opt/homebrew/bin/rbenv-install:144): '[' -n 3.1.2 ']'
+(/opt/homebrew/bin/rbenv-install:145): '[' -n 3.1.2 ']'
+(/opt/homebrew/bin/rbenv-install:150): declare -a before_hooks after_hooks
+(/opt/homebrew/bin/rbenv-install:162): OLDIFS='
'
+(/opt/homebrew/bin/rbenv-install:163): IFS='
'
+(/opt/homebrew/bin/rbenv-install:163): scripts=(`rbenv-hooks install`)
++(/opt/homebrew/bin/rbenv-install:163): rbenv-hooks install
+(/opt/homebrew/Cellar/rbenv/1.2.0/libexec/rbenv-hooks:9): '[' install = --complete ']'
+(/opt/homebrew/Cellar/rbenv/1.2.0/libexec/rbenv-hooks:18): RBENV_COMMAND=install
+(/opt/homebrew/Cellar/rbenv/1.2.0/libexec/rbenv-hooks:19): '[' -z install ']'
+(/opt/homebrew/Cellar/rbenv/1.2.0/libexec/rbenv-hooks:24): enable -f /opt/homebrew/Cellar/rbenv/1.2.0/libexec/rbenv-realpath.dylib realpath
+(/opt/homebrew/Cellar/rbenv/1.2.0/libexec/rbenv-hooks:55): IFS=:
+(/opt/homebrew/Cellar/rbenv/1.2.0/libexec/rbenv-hooks:55): hook_paths=($RBENV_HOOK_PATH)
+(/opt/homebrew/Cellar/rbenv/1.2.0/libexec/rbenv-hooks:57): shopt -s nullglob
+(/opt/homebrew/Cellar/rbenv/1.2.0/libexec/rbenv-hooks:58): for path in '"${hook_paths[@]}"'
+(/opt/homebrew/Cellar/rbenv/1.2.0/libexec/rbenv-hooks:58): for path in '"${hook_paths[@]}"'
+(/opt/homebrew/Cellar/rbenv/1.2.0/libexec/rbenv-hooks:58): for path in '"${hook_paths[@]}"'
+(/opt/homebrew/Cellar/rbenv/1.2.0/libexec/rbenv-hooks:58): for path in '"${hook_paths[@]}"'
+(/opt/homebrew/Cellar/rbenv/1.2.0/libexec/rbenv-hooks:59): for script in '"$path/$RBENV_COMMAND"/*.bash'
+(/opt/homebrew/Cellar/rbenv/1.2.0/libexec/rbenv-hooks:60): realpath /usr/local/etc/rbenv.d/install/default-gems.bash

Mystery solved here I think. That last file (/usr/local/etc/rbenv.d/install/default-gems.bash) I think was transferred by Migration Assistant (or I installed it previously?) and that file is a symlink to something that doesn't exist (I guess ~/.rbenv/plugins but I also deleted that)
Removing that symlink has now meant the installer is proceeding.

Thanks for tracking that down! From the next release, rbenv won't be trying to resolve these symlinks anymore, so a broken symlink should not be able to crash rbenv in the same way. https://github.com/rbenv/rbenv/pull/1428


Allow to get value from Tick

What problem does this solve or what need does it fill?
We have a Tick struct that allow modifications of the internal value by using set_changed, but there is not method to get the value. It's inconvenient since once I construct the tick from u32 I can't use it in is_newer_than.
What solution would you like?
Make the field public.
What alternative(s) have you considered?
Add a getter. But we have a setter, so I would go with pub for the field.

Already done on master.


Set up network monitoring infrastructure

[ ] full node
[ ] prometheus
[ ] prometheus alert manager
[ ] grafana
[ ] security & access control!

Moving to backlog, we're going to look into a validator partnership for this. cc @rmiasnik


Update target-dependent lowering for LIR.

This requires very minimal changes: target-dependent lowering does not
do much manual editing of the IR. Most IR updates that take place during
lowering are rooted in MakeSrcContained, which will be changed as part
of target-independent lowering.

cc @BruceForstall


Use with live layout

Is it possible to use Surface components on the live.html.heex layout?
I've updated my application according to the recommended instructions here by updating all macros to use Surface modules.
But when I try to use a Surface component on the heex file I get a compilation error saying that I have an invalid tag. Note that using that component in another Surface live view works.

Also, using Surface.View according to the documentation here gives me the following error:
cannot make function __mix_recompile__?/0 overridable because it was not defined

Also, using Surface.View according to the documentation here gives me the following error:
cannot make function __mix_recompile__?/0 overridable because it was not defined

Did use Phoenix.View get removed on your view/0?
Both use Phoenix.View, [...] and use Surface.View, [...] need to be present, and use Phoenix.View needs to come first.

@guisehn I wonder if it wouldn't be better to make use Surface.View already inject the required use Phoenix.View. Is there any problem you foresee using this approach?

Did use Phoenix.View get removed on your view/0 on [your_app]_web.ex?

Yes, it did, let me try without it. Should the template option be on the Phoenix one or on the Surface one?
Also, for the other macros in [your_app]_web.ex I also just replaced it, would that approach be fine on the other places?
@msaraiva I think that would be great if possible since it would be more consistent with the other docs and uses.

I tested it, but while the compile error goes away, I still cannot use Surface components on the live view nor rename the files to sface.
My goal is to have a global template like you would normally have with Surface components like NavagationBar and others on it.

Hey there, I ran through this morning to figure out exactly how it works, here's the steps that work for me:

Add Surface.View to your view/0 macro in your web entrypoint. (Normally lib/yourapp_web.ex)

  def view do
    quote do
      use Phoenix.View,
        root: "lib/yourapp_web/templates",
        namespace: YourappWeb

      # Include shared imports and aliases for views
      unquote(view_helpers())

      use Surface.View,
        root: "lib/yourapp_web/templates"
    end
  end

Add your live layout (if you don't already have one) to live_view/0 macro in the web entrypoint.

def live_view do
  quote do
    use Surface.LiveView,
      layout: {YourappWeb.LayoutView, "live.html"}

    alias YourappWeb.Router.Helpers, as: Routes

    unquote(view_helpers())
  end
end

Create a new live.sface file in lib/yourapp_web/templates/layout/ and use fully qualified names to your components. I'm sure there's a way to shorten these, but I haven't figured that out yet!

<Yourapp.Components.Layout id="layout" some_prop={@some_global_var}>
    <Yourapp.Components.NavBar />

        {@inner_content}

</Yourapp.Components.Layout>

@clone1018 thank you so much for this, that worked.
Out of curiosity, why do you include the html here: layout: {YourappWeb.LayoutView, "live.html"} but on the file name that is not included? This is why a lot of the things I was trying were not working.
Personally, I think it is a little confusing that you name it with the html "extension" but the file does not include that.

@guisehn I wonder if it wouldn't be better to make use Surface.View already inject the required use Phoenix.View. Is there any problem you foresee using this approach?

I think we can do that.
One caveat is that Surface.View doesn't support additional options supported by Phoenix.View like namespace and others. We had an example of one user that had a custom namespace here.
I wonder if we change the API to require only use Surface.View, would users expect that it supports all the same options as Phoenix.View? In that case should we implement these options first?

Create a new live.sface file in lib/yourapp_web/templates/layout/ and use fully qualified names to your components. I'm sure there's a way to shorten these, but I haven't figured that out yet!

<Yourapp.Components.Layout id="layout" some_prop={@some_global_var}>
    <Yourapp.Components.NavBar />

        {@inner_content}

</Yourapp.Components.Layout>

@clone1018 since live.sface is rendered by YourappWeb.LayoutView, you can add the aliases you need to YourappWeb.LayoutView and they'll be applied on the template file, e.g.
defmodule YourappWeb.LayoutView do
  use YourappWeb, :view

  alias Yourapp.Components.Layout

  # ...
end

@clone1018 thank you so much for this, that worked.
Out of curiosity, why do you include the html here: layout: {YourappWeb.LayoutView, "live.html"} but on the file name that is not included? This is why a lot of the things I was trying were not working.
Personally, I think it is a little confusing that you name it with the html "extension" but the file does not include that.

I agree it's confusing.
This has to do with supporting render/1 on controllers. For example, if we have a page_controller.ex with:
defmodule YourAppWeb.PageController do
  use YourAppWeb, :controller

  def index(conn, _params) do
    render(conn)
  end
end

The render call on index/2 will dispatch a PageView.render("index.html", assigns) under the hood, so we need to generate a render("index.html", _) to render index.sface even though index.sface doesn't have html in its name.

@zoedsoupe what version are you on?  Looks pretty similar to my setup...
  def view do
    quote do
      use Phoenix.View,
        root: "lib/nocodo_io_web/templates",
        namespace: NocodoIoWeb

      use Surface.View,
        root: "lib/nocodo_io_web/templates"

      # Import convenience functions from controllers
      import Phoenix.Controller,
        only: [get_flash: 1, get_flash: 2, view_module: 1, view_template: 1]

      # Include shared imports and aliases for views
      unquote(view_helpers())
      import Surface
    end
  end

  def surface_live_view do
    quote do
      use Surface.LiveView

      unquote(view_helpers())
    end
  end


Can't seem to get inlay hints to show up

I've tried to google and search and figure this out but I can't seem to figure out what I'm doing wrong.
I have installed and configured this but don't seem to be getting any inlay hints. I've tried a few different languages (php, typescript, lua, go) and I'm not getting anything for any of them.
I have an nvchad-based neovim setup (https://nvchad.com/).
My full, custom config is here (https://github.com/nerdo/nvchad-customizations)
The setup code I have for inlayhints is this:
require('lsp-inlayhints').setup()

vim.api.nvim_create_augroup("LspAttach_inlayhints", {})
vim.api.nvim_create_autocmd("LspAttach", {
	group = "LspAttach_inlayhints",
	callback = function(args)
		if not (args.data and args.data.client_id) then
			return
		end

		local bufnr = args.buf
		local client = vim.lsp.get_client_by_id(args.data.client_id)
		require("lsp-inlayhints").on_attach(client, bufnr)
	end,
})

I pretty much copied and pasted from the lsp inlayhints page as far as a config for neovim 0.8+.
I've put in a debug print right before the on_attach call to ensure it's getting to that point, and it is.
But I don't seem to see any difference when this plugin is installed and running, even after toggling it with lua require('lsp-inlayhints').toggle().
Can someone point me in the right direction? What am I doing wrong?

Probably missing configuration for the server.
For lua, you need to set hint.enable to true: https://github.com/sumneko/lua-language-server/wiki/Settings#hintenable

Thanks! I don't know how I missed that in the docs 😬


bug: ValueError: The replication key modifiedOn is not of timestamp type for purchase_order_types stream

2024-08-23T07:07:57.441956Z > [info] 2024-08-23 07:07:57,440 | ERROR    | tap-service-titan.purchase_order_types | An unhandled error occurred while syncing 'purchase_order_types'
2024-08-23T07:07:57.442331Z > [info] Traceback (most recent call last):
2024-08-23T07:07:57.442685Z > [info]   File "/project/.meltano/extractors/tap-service-titan/venv/lib/python3.10/site-packages/singer_sdk/streams/core.py", line 1203, in sync
2024-08-23T07:07:57.443030Z > [info]     for _ in self._sync_records(context=context):
2024-08-23T07:07:57.443360Z > [info]   File "/project/.meltano/extractors/tap-service-titan/venv/lib/python3.10/site-packages/singer_sdk/streams/core.py", line 1097, in _sync_records
2024-08-23T07:07:57.443710Z > [info]     for idx, record_result in enumerate(self.get_records(current_context)):
2024-08-23T07:07:57.444039Z > [info]   File "/project/.meltano/extractors/tap-service-titan/venv/lib/python3.10/site-packages/singer_sdk/streams/rest.py", line 585, in get_records
2024-08-23T07:07:57.444376Z > [info]     for record in self.request_records(context):
2024-08-23T07:07:57.444710Z > [info]   File "/project/.meltano/extractors/tap-service-titan/venv/lib/python3.10/site-packages/singer_sdk/streams/rest.py", line 390, in request_records
2024-08-23T07:07:57.445019Z > [info]     prepared_request = self.prepare_request(
2024-08-23T07:07:57.445427Z > [info]   File "/project/.meltano/extractors/tap-service-titan/venv/lib/python3.10/site-packages/singer_sdk/streams/rest.py", line 359, in prepare_request
2024-08-23T07:07:57.445744Z > [info]     params: dict | str = self.get_url_params(context, next_page_token)
2024-08-23T07:07:57.446053Z > [info]   File "/project/.meltano/extractors/tap-service-titan/venv/lib/python3.10/site-packages/tap_service_titan/client.py", line 149, in get_url_params
2024-08-23T07:07:57.446380Z > [info]     starting_date = self.get_starting_timestamp(context)
2024-08-23T07:07:57.446742Z > [info]   File "/project/.meltano/extractors/tap-service-titan/venv/lib/python3.10/site-packages/singer_sdk/streams/core.py", line 301, in get_starting_timestamp
2024-08-23T07:07:57.447086Z > [info]     raise ValueError(msg)
2024-08-23T07:07:57.447425Z > [info] ValueError: The replication key modifiedOn is not of timestamp type
2024-08-23T07:07:57.447775Z > [info] Traceback (most recent call last):
2024-08-23T07:07:57.448094Z > [info]   File "/project/.meltano/extractors/tap-service-titan/venv/bin/tap-service-titan", line 8, in <module>
2024-08-23T07:07:57.448483Z > [info]     sys.exit(TapServiceTitan.cli())
2024-08-23T07:07:57.448829Z > [info]   File "/project/.meltano/extractors/tap-service-titan/venv/lib/python3.10/site-packages/click/core.py", line 1157, in __call__
2024-08-23T07:07:57.449235Z > [info]     return self.main(*args, **kwargs)
2024-08-23T07:07:57.527127Z > [info]   File "/project/.meltano/extractors/tap-service-titan/venv/lib/python3.10/site-packages/click/core.py", line 1078, in main
2024-08-23T07:07:57.527625Z > [info]     rv = self.invoke(ctx)
2024-08-23T07:07:57.528037Z > [info]   File "/project/.meltano/extractors/tap-service-titan/venv/lib/python3.10/site-packages/singer_sdk/plugin_base.py", line 80, in invoke
2024-08-23T07:07:57.528513Z > [info]     return super().invoke(ctx)
2024-08-23T07:07:57.528897Z > [info]   File "/project/.meltano/extractors/tap-service-titan/venv/lib/python3.10/site-packages/click/core.py", line 1434, in invoke
2024-08-23T07:07:57.529330Z > [info]     return ctx.invoke(self.callback, **ctx.params)
2024-08-23T07:07:57.529742Z > [info]   File "/project/.meltano/extractors/tap-service-titan/venv/lib/python3.10/site-packages/click/core.py", line 783, in invoke
2024-08-23T07:07:57.530182Z > [info]     return __callback(*args, **kwargs)
2024-08-23T07:07:57.530937Z > [info]   File "/project/.meltano/extractors/tap-service-titan/venv/lib/python3.10/site-packages/singer_sdk/tap_base.py", line 507, in invoke
2024-08-23T07:07:57.531731Z > [info]     tap.sync_all()
2024-08-23T07:07:57.532321Z > [info]   File "/project/.meltano/extractors/tap-service-titan/venv/lib/python3.10/site-packages/singer_sdk/tap_base.py", line 466, in sync_all
2024-08-23T07:07:57.532777Z > [info]     stream.sync()
2024-08-23T07:07:57.533107Z > [info]   File "/project/.meltano/extractors/tap-service-titan/venv/lib/python3.10/site-packages/singer_sdk/streams/core.py", line 1203, in sync
2024-08-23T07:07:57.533434Z > [info]     for _ in self._sync_records(context=context):
2024-08-23T07:07:57.533751Z > [info]   File "/project/.meltano/extractors/tap-service-titan/venv/lib/python3.10/site-packages/singer_sdk/streams/core.py", line 1097, in _sync_records
2024-08-23T07:07:57.534067Z > [info]     for idx, record_result in enumerate(self.get_records(current_context)):
2024-08-23T07:07:57.534369Z > [info]   File "/project/.meltano/extractors/tap-service-titan/venv/lib/python3.10/site-packages/singer_sdk/streams/rest.py", line 585, in get_records
2024-08-23T07:07:57.534683Z > [info]     for record in self.request_records(context):
2024-08-23T07:07:57.534988Z > [info]   File "/project/.meltano/extractors/tap-service-titan/venv/lib/python3.10/site-packages/singer_sdk/streams/rest.py", line 390, in request_records
2024-08-23T07:07:57.535302Z > [info]     prepared_request = self.prepare_request(
2024-08-23T07:07:57.535603Z > [info]   File "/project/.meltano/extractors/tap-service-titan/venv/lib/python3.10/site-packages/singer_sdk/streams/rest.py", line 359, in prepare_request
2024-08-23T07:07:57.535913Z > [info]     params: dict | str = self.get_url_params(context, next_page_token)
2024-08-23T07:07:57.536222Z > [info]   File "/project/.meltano/extractors/tap-service-titan/venv/lib/python3.10/site-packages/tap_service_titan/client.py", line 149, in get_url_params
2024-08-23T07:07:57.536520Z > [info]     starting_date = self.get_starting_timestamp(context)
2024-08-23T07:07:57.536841Z > [info]   File "/project/.meltano/extractors/tap-service-titan/venv/lib/python3.10/site-packages/singer_sdk/streams/core.py", line 301, in get_starting_timestamp
2024-08-23T07:07:57.537172Z > [info]     raise ValueError(msg)
2024-08-23T07:07:57.537497Z > [info] ValueError: The replication key modifiedOn is not of timestamp type

fixed with #25

Closed by https://github.com/archdotdev/tap-service-titan/pull/25


Don't remove function names during initialization

Wizer currently removes the names for all functions when initializing a .wasm module. Is it possible to change, either generally or optionally with a parameter?

Are you seeing the name custom section removed completely? We should copy all custom sections over.
I think maybe there might be an off-by-one because we remove the initialization function, which may make engines throw out the whole name custom section. I'll look into it a little more.

Are you seeing the name custom section removed completely? We should copy all custom sections over.
I think maybe there might be an off-by-one because we remove the initialization function, which may make engines throw out the whole name custom section. I'll look into it a little more.

Hm wait, no, we don't remove the wizer.initialize function, we just un-export it. Therefore there shouldn't be any off-by-ones in the name section.

Hm wait, no, we don't remove the wizer.initialize function, we just un-export it. Therefore there shouldn't be any off-by-ones in the name section.

Hm okay I can reproduce with the rust_regex test.

Hm okay I can reproduce with the rust_regex test.

Fix over in https://github.com/bytecodealliance/wasm-tools/pull/190; once that merges, I'll cut a release and then update the dep here.

Fix over in https://github.com/bytecodealliance/wasm-tools/pull/190; once that merges, I'll cut a release and then update the dep here.


Typoe Ch4 - Page 136

indices = np.argsort(importances[::-1])  # this causes the wrong order for plt.show() at the end of the code chunk (though the values are correct)
indices = importances.argsort()[::-1] # gives correct order
in the remote chance that this was a legit issue, It would be a privilege to be mentioned!

Thanks for the note! In my version, it's not
indices = np.argsort(importances[::-1])

but
indices = np.argsort(importances)[::-1]

which would be similar to what you suggested with indices = importances.argsort()[::-1]
When I remember correctly, Packt had briefly an unedited version online in ~2017 that contained that issue, but it should be fixed now.


Form sample with different types of inputs and error display

Is your feature request related to a problem? Please describe.
Form handling with getwidget. Currently there are some input widgets without complete solution for crafting forms
Describe the solution you'd like
Add different types of input controls like textfield, checkbox with label, radio button group, dropdown and so on with possibility to display errors

Yes we have plan for Form widget very soon.

Can I add different input controls in the textfield?

hi, @prajyotBhoir , sorry for late reply,
Can you please explain how you want to add your input controls.

any update on form usage sample?

Also looking forward to form usage sample 🙏🏽


AutoSwitchRoleIntegrationTest is still flaky

testChangeMaster(org.apache.rocketmq.test.autoswitchrole.AutoSwitchRoleIntegrationTest)  Time elapsed: 29.741 sec  <<< FAILURE!
java.lang.AssertionError: expected: but was:<OFFSET_OVERFLOW_ONE>
at org.apache.rocketmq.test.autoswitchrole.AutoSwitchRoleIntegrationTest.testChangeMaster(AutoSwitchRoleIntegrationTest.java:171)
For full error logs, see https://github.com/apache/rocketmq/actions/runs/3224766162/jobs/5276261376

@lizhimins Do you have the working bandwidth to investigate this issue?  The HA feature merged in 5.0.0 looks pretty buggy.

Reproduced in this pull request https://github.com/apache/rocketmq/pull/5271


Add support for Clear Region for Memcached

Memcached does not support namespacing so we have to implement it ourselves. CacheManager does it via regions, but the ClearRegion method for memcached is not supported.
A potential solution to this might be something suggested by memcached team themselves or this approach.

Creating this issue in case I work on it later.

Thanks @themakshter I will take a look at it soon :>

@themakshter hey, I finally had some time to look into this. I first didn't really liked the implementation as it leaves existing keys still in the cache and they might never be removed.
But hey, better than not having anything I guess ^^
I had to implement the solution slightly more complex than your approach and decided to do it from scratch instead of merging your PR, sorry about that. But thanks for pushing the idea 👍

@MichaCo , that's perfectly fine, the PR was just a very basic solution, not meant to be added into the code - I had done that to get your thoughts on it.
That doesn't matter much anyway, what matters is that you found and wrote a good solution to the problem :D
As for the items never being removed, that is unlikely to happen. Memcached uses LRU to determine what to remove from it, so if those keys are never used again, they will eventually get removed. Link to memcached internals page


Fallback template engine documentation error.

In the docs you say that the library has a "fallback ejs loader", but when I tries to use EJS' "new line slup" features it failed.
Internally it uses lodash.template. The syntax is almost the same, but lacks several features.
Edit: Or I might be mistaken and EJS is a standard with several implementations. The one I was mentioning is this one: https://github.com/mde/ejs

Hm we could change it to ejs/lodash loader or sth.. you can use this plugin with the https://github.com/bazilio91/ejs-compiled-loader if you need the line slurp feature.

I've read about it. Very cool this plugin supporting other loaders, but for me it's not worth adding a new dependency just to clean some whitespace.
Thanks.

Cool 👍


Add pane-closing functionality

Check for existing issues

[X] Completed

Is your feature request related to a problem?
We currently have

Close active item (close this file)
Close inactive items (close all files but this file)

These are operations that are performed on files.  It would be great if we had the same functionality for panes

Close active pane (close this pane)
Close inactive panes (close all panes but this pane)

If we were to implement this, we might want to change the names of the first 2 commands to be more specific to files / tabs.
Something to consider is, how does this look on the UI?  Is this something we surface to the user on the UI, or do we omit it to keep the UI from being too noisy, and only support triggering them from commands?
Describe the solution you'd like
Implement:

Close active pane (close this pane)
Close inactive panes (close all panes but this pane)

If applicable, add mockups / screenshots to help present your vision of the feature
No response

It would also be helpful to have commands like "Close other pane" that close the sibling pane without moving to that pane before closing.


Latency spikes at every hour due to connection refreshes

Context: We use on-premise datacenters to connect to Bigtable, with a connection count of 180 (default CPU multiplier), currently on "com.google.cloud.bigtable" % "bigtable-hbase-1.2" % "<IP_ADDRESS>", upgrading to latest soon ("bigtable-hbase-1.x" % "1.0.0-pre1")
At every hour, we see a big spike in latency, and we believe there's some kind of connection refresh that is happening

Can the client do this in the background so it doesn't impact request timings?

Short answer: It's not technically feasible to create a generic solution for this in the short term, but I can walk you through a solution.
Why you have this hourly issue: Connections shut down every hour, and that's something Cloud Bigtable team can't control.  gRPC, which is our underlying infrastructure, performs a reconnect.  The single connection from the client side initiates a serial set of new connections between components and requires a set of server-side caching.
The Cloud Bigtable client doesn't control the connection lifecycle, since grpc handles the reconnect a lot better than the Cloud Bigtable client could.  Back in the early days of Cloud Bigtable, we did the reconnect ourselves, but we ran into corner cases that we couldn't solve; those corner cases usually related to long running operations like scans or operations when the server-side was under load when may operations take longer than normal.  Once grpc provided an automatic reconnect, we gave up on our sometimes broken solution and used grpc's better implementation.
In your case (which has been discussed internally), the problem is much more pronounced given the physical distance between your client and your cluster.  This problem is negligible for GCE users in the same zone.
What a client can do to fix this: HBase connection has multiple grpc Channels under the covers.  Each grpc Channel needs to be primed with an RPC that's not part of a serving path, and then put into rotation for use.  The normal configuration is 2.5 Channels per connection, so on a 4 CPU machine, 10 request would be required per Connection to prime the Connection.
An infrastructure level change would require the client to have a generic RPC to prime a connection, but sadly that generic RPC does not exist yet, and given the difficulty in finding all of the corner cases, I don't see a near term fix in the core client.
That said, you can build something similar yourself.  You can create a new Connection ever 30-40 minutes, run a few exist() calls on that connection to prime the underlying gRPC channels, and then swap out the new Connection for your main operations.

Got it, thanks @sduskis for the explanation, the best yet I've gotten so far. Your proposed solution is something I've considered implementing, and that may very well be the case until we have the opportunity to move to GCE. I'm glad to hear it was discussed internally and that I have a more realistic prioritization. 👏

Seems like this is still a problem. Will there be some fix on this issue in the near feature? So the solution is still to create a new client every 30 to 40 minutes? @sduskis

We implemented a solution for this in https://github.com/googleapis/java-bigtable/pull/115.
We are currently in the process of migrating the hbase adapter to use java-bigtable instead of bigtable-client-core. So it will inherit this feature

Oh cool, that is good to know 👍 Thanks for the update

@igorbernstein2 Do you know for sure that this setting can solve this hourly issue? Or it only can reduce it in some degree? We tried to use it and it seems not really helping and we still see hourly latency peaks? 🤔


v122.0.6261.132 not remembering session cookies

System Details

OS: Windows 11
Thorium Version v122.0.6261.132

Problem
Just updated to the latest version and it's not remembering session cookies. Any website that I logged into previously are not logged out. If I log in to those websites again and restart the browser, I get the same issue. Rolling back to the previous version fixes this.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional Notes
Add any other context about the problem here.

@mopihu Doesn't seem to be happening for me on Ubuntu or Windows 10.

I'm using the portable version with --disable-encryption specified in the arguments.
"D:\5. Portable Apps\1. Browsers\Thorium\BIN\thorium.exe" --user-data-dir="D:\5. Portable Apps\1. Browsers\Thorium\USER_DATA" --allow-outdated-plugins --disable-logging --disable-breakpad --disable-encryption --disable-machine-id

@Alex313031 it seems to be a bug with the --disable-encryption patch, having it enabled (regardless of --disable-machine-id being enabled or not) causes the session cookies to break.

Thanks for tracking down the issue, I was wondering myself why session cookies are forgotten no matter the site settings I've tried...

Just updated to 123 and so far it's working, thank you Alex!

Hmm. I've been having issues with twitter not remembering me being logged in since i switched to thorium.

I'm facing the same issue on Windows 11 and fedora 40 with the latest M126.0.6478.231 version.

I have a similar issue with the latest BETA 2 Th24 build M126.0.6478.251. Every time I close the browser, all sites are logged out and sync in the browser also pauses until I log back into my Google account.
I've also seen the logins being lost once without even closing the browser, although I've yet to ascertain whether that happened after some time period (it was just slightly over 24 hours from my previous sign-in which feels non-coincidental) or whether it was caused by me closing everything except an incognito tab and the downloads tab.

I've also seen the logins being lost and sync feature paused once without even closing the browser, although I've yet to ascertain whether that happened after some time period (it was just slightly over 24 hours from my previous sign-in which feels non-coincidental) or whether it was caused by me closing everything except an incognito tab and the downloads tab.

I've definitely seen that with being logged out of a site without having restarted my browser.


feat: JSON Editor Widget

Description
The POC of JSON Editor based on jsoneditor
Fixes #3360
Type of change

New feature (non-breaking change which adds functionality)
This change requires a documentation update

How Has This Been Tested?

Test A
Test B

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes

Test coverage results :test_tube:
:white_circle: Total coverage has not changed
// Code coverage diff between base branch:release and head branch: feature/3360-json-editor

Status
File
% Stmts
% Branch
% Funcs
% Lines

:green_circle:
total
54.87 (0)
36.87 (-0.01)
34.25 (0.01)
55.4 (0)

:red_circle:
app/client/src/utils/validation/common.ts
22.03 (-0.38)
15.72 (-0.1)
33.33 (0)
20.69 (-0.36)

:sparkles: :new:
app/client/src/widgets/JsonEditorWidget/index.ts
100
100
100
100

:sparkles: :new:
app/client/src/widgets/JsonEditorWidget/component/index.tsx
33.33
33.33
0
33.33

:sparkles: :new:
app/client/src/widgets/JsonEditorWidget/widget/index.tsx
57.14
0
60
65.52

:green_circle:
app/client/src/workers/validations.ts
79.36 (0.24)
69.26 (-0.01)
74.07 (0.99)
81.4 (0.2)

@wmdev0808 Please look into the following

Cypress test which test whether the defaultText updates the JSON correctly.
Cypress test which test whether the user can edit the JSON in view mode

The following features are missing here:

onSave action trigger (Please see the original issue description) Without this feature, this doesn't seem useful at all.
allow copy property.
isDisabled property

Bug:

@riodeuno

Cypress test which test whether the user can edit the JSON in view mode

View mode here is deploy mode right? because there is view option in the json editor as well.

@momcilo-appsmith  This will need a design check as well.

Thats right @riodeuno, the feature is not inline to PRD, we need some design inputs here, I am not sure how much of the constrain is placed by the component used here. All features are not available as of now

Thats right @riodeuno, the feature is not inline to PRD, we need some design inputs here, I am not sure how much of the constrain is placed by the component used here. All features are not available as of now.
@wmdev0808 can you comment on that

@somangshu First, provide the design on desirable properties so I can just confirm if they are possible with the current underlying package.

moving this to needs more info until we have @momcilo-appsmith back with the base design


Failed to restart Homebridge

After editing the two files, I get this as an error:
Job for homebridge.service failed because the control process exited with error code.
See "systemctl status homebridge.service" and "journalctl -xe" for details.
Don't know what to do about it, any help would be apperated.

Just figured out that you don’t need to do any of that! Just do sudo homebridge and everything will work, no need for adjusting those files!

Just figured out that you don’t need to do any of that! Just do sudo homebridge and everything will work, no need for adjusting those files!

I just realized that homebridge service is required for the web interface to work which is necessary for normal use.

I just realized that homebridge service is required for the web interface to work which is necessary for normal use.

Can you provide some info about your environment:

Raspberry Pi version:
OS and version:
node.js version:
Homebridge version:

Also check that:
sudo cat /etc/systemd/system/homebridge.service gives:
[Unit]
Description=Homebridge
Wants=network-online.target
After=syslog.target network-online.target

[Service]
WorkingDirectory=/var/lib/homebridge
EnvironmentFile=/etc/default/homebridge
ExecStartPre=/bin/run-parts /etc/hb-service/homebridge/prestart.d
ExecStartPre=/usr/lib/node_modules/homebridge-config-ui-x/dist/bin/hb-service.js before-start $HOMEBRIDGE_OPTS
ExecStart=/usr/lib/node_modules/homebridge-config-ui-x/dist/bin/hb-service.js run $HOMEBRIDGE_OPTS
# Maybe better to use default KillMode=control-group? Then comment next line.
KillMode=process

[Install]
WantedBy=multi-user.target

And sudo cat /etc/default/homebridge gives:
HOMEBRIDGE_OPTS=-I -U "/var/lib/homebridge" --allow-root
UIX_STORAGE_PATH="/var/lib/homebridge"

# To enable web terminals via homebridge-config-ui-x uncomment the following line
HOMEBRIDGE_CONFIG_UI_TERMINAL=1

DISABLE_OPENCOLLECTIVE=true

Can you provide some info about your environment:

Raspberry Pi version:
OS and version:
node.js version:
Homebridge version:

Also check that:
sudo cat /etc/systemd/system/homebridge.service gives:
[Unit]
Description=Homebridge
Wants=network-online.target
After=syslog.target network-online.target

[Service]
WorkingDirectory=/var/lib/homebridge
EnvironmentFile=/etc/default/homebridge
ExecStartPre=/bin/run-parts /etc/hb-service/homebridge/prestart.d
ExecStartPre=/usr/lib/node_modules/homebridge-config-ui-x/dist/bin/hb-service.js before-start $HOMEBRIDGE_OPTS
ExecStart=/usr/lib/node_modules/homebridge-config-ui-x/dist/bin/hb-service.js run $HOMEBRIDGE_OPTS
# Maybe better to use default KillMode=control-group? Then comment next line.
KillMode=process

[Install]
WantedBy=multi-user.target

And sudo cat /etc/default/homebridge gives:
HOMEBRIDGE_OPTS=-I -U "/var/lib/homebridge" --allow-root
UIX_STORAGE_PATH="/var/lib/homebridge"

# To enable web terminals via homebridge-config-ui-x uncomment the following line
HOMEBRIDGE_CONFIG_UI_TERMINAL=1

DISABLE_OPENCOLLECTIVE=true

I don know what you mean by Raspberry PI version. but I am running the home bridge on raspberry pi image (https://github.com/homebridge/homebridge-raspbian-image)
OS: https://github.com/homebridge/homebridge-raspbian-image (v1.0.17) (Lastest)
Homebridge version: v1.0.17
Node.JS version:  v14.15.1
And yes, both those commands return thoses.

I don know what you mean by Raspberry PI version. but I am running the home bridge on raspberry pi image (https://github.com/homebridge/homebridge-raspbian-image)
OS: https://github.com/homebridge/homebridge-raspbian-image (v1.0.17) (Lastest)
Homebridge version: v1.0.17
Node.JS version:  v14.15.1
And yes, both those commands return thoses.

I am using sudo nano to edit the files in SSH.

I am using sudo nano to edit the files in SSH.

I am also running Node.js v14.15 and Homebridge v1.0.17, and used nano to edit the two files.
Which model of Raspberry are you using?

I am also running Node.js v14.15 and Homebridge v1.0.17, and used nano to edit the two files.
Which model of Raspberry are you using?

Raspberry Pi 3 Model B V1.2

Raspberry Pi 3 Model B V1.2

That is what happens on my Raspberry Pi 3 Model B V1.2

That is what happens on my Raspberry Pi 3 Model B V1.2

Same error for me after editing the 2 files using nano on my Pi4. I also use the official homebridge raspbian image.
Any ideas?

Same error for me after editing the 2 files using nano on my Pi4. I also use the official homebridge raspbian image.
Any ideas?

My systemctl error -
Jan 31 14:42:42 homebridge run-parts[696]: Reloading nginx... Jan 31 14:42:43 homebridge systemd[715]: homebridge.service: Failed to executJan 31 14:42:43 homebridge systemd[715]: homebridge.service: Failed at step EJan 31 14:42:43 homebridge systemd[1]: homebridge.service: Control process exJan 31 14:42:43 homebridge systemd[1]: homebridge.service: Failed with resultJan 31 14:42:43 homebridge systemd[1]: Failed to start Homebridge.

My systemctl error -
Jan 31 14:42:42 homebridge run-parts[696]: Reloading nginx... Jan 31 14:42:43 homebridge systemd[715]: homebridge.service: Failed to executJan 31 14:42:43 homebridge systemd[715]: homebridge.service: Failed at step EJan 31 14:42:43 homebridge systemd[1]: homebridge.service: Control process exJan 31 14:42:43 homebridge systemd[1]: homebridge.service: Failed with resultJan 31 14:42:43 homebridge systemd[1]: Failed to start Homebridge.

Systemctl errors -
homebridge.service:Failed to execute command: No such file or directory
homebridge.service: Failed at step EXEC spawning /usr/lib/node_modules/homebridge-config-ui-x/dist/bin/hb-service.

Systemctl errors -
homebridge.service:Failed to execute command: No such file or directory
homebridge.service: Failed at step EXEC spawning /usr/lib/node_modules/homebridge-config-ui-x/dist/bin/hb-service.

I did some tests on the latest official Homebridge Rasbian image (1.0.18) on a Raspberry Pi 4 B, and got it to work with the following modifications:
In the file /etc/systemd/system/homebridge.service, only delete those two lines:
User=pi

and
CapabilityBoundingSet=CAP_IPC_LOCK CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_RAW CAP_SETGID CAP_SETUID CAP_SYS_CHROOT CAP_CHOWN CAP_FOWNER CAP_DAC_OVERRIDE CAP_AUDIT_WRITE CAP_SYS_ADMIN
AmbientCapabilities=CAP_NET_RAW CAP_NET_BIND_SERVICE

So the final file should be:
[Unit]
Description=Homebridge
Wants=network-online.target
After=syslog.target network-online.target

[Service]
Type=simple
PermissionsStartOnly=true
WorkingDirectory=/var/lib/homebridge
EnvironmentFile=/etc/default/homebridge
ExecStartPre=-run-parts /etc/hb-service/homebridge/prestart.d
ExecStartPre=-/usr/local/lib/node_modules/homebridge-config-ui-x/dist/bin/hb-service.js before-start $HOMEBRIDGE_OPTS
ExecStart=/usr/local/lib/node_modules/homebridge-config-ui-x/dist/bin/hb-service.js run $HOMEBRIDGE_OPTS
Restart=always
RestartSec=3
KillMode=process

[Install]
WantedBy=multi-user.target

Then sudo systemctl daemon-reload and sudo hb-service restart.
Also, I got the error Can't lock /var/run/pigpio.pid, which was solved with the command sudo killall pigpiod. (pigpio cannot lock this resource from the Homebridge plugin if a pigpio daemon has already locked it previously, which was the case for me with the official Homebridge Raspbian image).

I did some tests on the latest official Homebridge Rasbian image (1.0.18) on a Raspberry Pi 4 B, and got it to work with the following modifications:
In the file /etc/systemd/system/homebridge.service, only delete those two lines:
User=pi

and
CapabilityBoundingSet=CAP_IPC_LOCK CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_RAW CAP_SETGID CAP_SETUID CAP_SYS_CHROOT CAP_CHOWN CAP_FOWNER CAP_DAC_OVERRIDE CAP_AUDIT_WRITE CAP_SYS_ADMIN
AmbientCapabilities=CAP_NET_RAW CAP_NET_BIND_SERVICE

So the final file should be:
[Unit]
Description=Homebridge
Wants=network-online.target
After=syslog.target network-online.target

[Service]
Type=simple
PermissionsStartOnly=true
WorkingDirectory=/var/lib/homebridge
EnvironmentFile=/etc/default/homebridge
ExecStartPre=-run-parts /etc/hb-service/homebridge/prestart.d
ExecStartPre=-/usr/local/lib/node_modules/homebridge-config-ui-x/dist/bin/hb-service.js before-start $HOMEBRIDGE_OPTS
ExecStart=/usr/local/lib/node_modules/homebridge-config-ui-x/dist/bin/hb-service.js run $HOMEBRIDGE_OPTS
Restart=always
RestartSec=3
KillMode=process

[Install]
WantedBy=multi-user.target

Then sudo systemctl daemon-reload and sudo hb-service restart.
Also, I got the error Can't lock /var/run/pigpio.pid, which was solved with the command sudo killall pigpiod. (pigpio cannot lock this resource from the Homebridge plugin if a pigpio daemon has already locked it previously, which was the case for me with the official Homebridge Raspbian image).

Yep that looks to have sorted it. 😊 many thanks!

Yep that looks to have sorted it. 😊 many thanks!

Thank you so much! This totally worked!


Add Thai language support.

Hi Serhioromano,
Thank you for your code and everybody from this community. After used it, I created new Thai language support for this Respo and think I need to share it back as well.
Thanks again,
Porrapat

Thank you Kap :)

:)


the issues of forced_alignment.py

Hi, guys:
when i run the script:  forced_alignment.py , i found the format of the lab files int the directory: "label_state_align" was error, which include two more time stamp columns int the lab files from the "label_no_align" directory.
the problem from the below code. In the line: 16, the variable "full_tab" is a raw line from the no align lab file, it was print to the last lab file directly in the line: 20.
Before print to the last lab files, may be should get rid of the two raw time stamp columns in the no align label files.

def _postprocess(self, mlf, lab_align_dir):
2     if not os.path.exists(lab_align_dir):
3        os.makedirs(lab_align_dir)
4     state_num = STATE_NUM
5    fid = open(mlf, 'r')
6     line = fid.readline()
7     while True:
8         line = fid.readline()
9         line = line.strip()
10         if len(line) < 1:
11              break
12        line = line.replace('"', '')
13          file_base = os.path.basename(line)
14          flab = open(os.path.join(self.lab_dir, file_base), 'r')
15          fw   = open(os.path.join(lab_align_dir, file_base), 'w')
16          for full_lab in flab.readlines():
17              full_lab = full_lab.strip()
18              for i in xrange(state_num):
19                  line = fid.readline()
20                  line = line.strip()
21                  tmp_list = line.split()
22                  print >> fw,'{0} {1} {2}[{3}]'.format(tmp_list[0], tmp_list[1], full_lab, i+2)
23
24          fw.close()
25          flab.close()
26          line = fid.readline()
27          line = line.strip()
28         if line != '.':
29              print 'The two files are not matched!\n'
30              sys.exit(1)
31      fid.close()

`

The input format for alignment itself excludes those two columns. May be you missed this step:
https://github.com/CSTR-Edinburgh/merlin/blob/master/misc/scripts/alignment/state_align/prepare_labels_from_txt.sh#L60-L66

I had run this script and check the L60-L66, but the format of the last lab files in the "label_state_align" dir just like below:
200000 250000 0 200000 x^x-pau+n=iy@1_0/A:0_0_0/B:0-0-0@1-0&1-1#1-1$1-1!0-0;0-0|0/C:0+0+0/D:0_0/E:0+0@1+0&1+0#0+0/F:0_0/G:0_0/H:0=0@1=2|0/I:0=0/J:10+10-2[2][6]
and the lab file from the slt_arctic_demo_data  is :
0 50000 x^x-sil+sil=ax@x_x/A:0_0_0/B:x-x-x@x-x&x-x#x-x$x-x!x-x;x-x|x/C:0+0+0/D:0_0/E:x+x@x+x&x+x#x+x/F:0_0/G:0_0/H:x=x@1=2|0/I:0=0/J:28+13-2[2]

Can you print first few lines in "label_no_align" dir?

these lines from "label_no_align" dir :
0 200000 x^x-pau+f=awng@1_0/A:0_0_0/B:0-0-0@1-0&1-1#1-1$1-1!0-0;0-0|0/C:0+0+0/D:0_0/E:0+0@1+0&1+0#0+0/F:0_0/G:0_0/H:0=0@1=1|0/I:0=0/J:6+6-1[2]
200000 400000 x^x-pau+f=awng@1_0/A:0_0_0/B:0-0-0@1-0&1-1#1-1$1-1!0-0;0-0|0/C:0+0+0/D:0_0/E:0+0@1+0&1+0#0+0/F:0_0/G:0_0/H:0=0@1=1|0/I:0=0/J:6+6-1[3]
400000 600000 x^x-pau+f=awng@1_0/A:0_0_0/B:0-0-0@1-0&1-1#1-1$1-1!0-0;0-0|0/C:0+0+0/D:0_0/E:0+0@1+0&1+0#0+0/F:0_0/G:0_0/H:0=0@1=1|0/I:0=0/J:6+6-1[4]
600000 800000 x^x-pau+f=awng@1_0/A:0_0_0/B:0-0-0@1-0&1-1#1-1$1-1!0-0;0-0|0/C:0+0+0/D:0_0/E:0+0@1+0&1+0#0+0/F:0_0/G:0_0/H:0=0@1=1|0/I:0=0/J:6+6-1[5]
800000 1100000 x^x-pau+f=awng@1_0/A:0_0_0/B:0-0-0@1-0&1-1#1-1$1-1!0-0;0-0|0/C:0+0+0/D:0_0/E:0+0@1+0&1+0#0+0/F:0_0/G:0_0/H:0=0@1=1|0/I:0=0/J:6+6-1[6]

yeah, it's incorrect format. The time-stamps shouldn't be there. And only one full-contextual line per phone is used as input. Something like this:
x^x-sil+ao=th@x_x/A:0_0_0/B:x-x-x@x-x&x-x#x-x$x-x!x-x;x-x|x/C:1+1+1/D:0_0/E:x+x@x+x&x+x#x+x/F:content_2/G:0_0/H:x=x@1=2|0/I:7=5/J:14+8-2
x^sil-ao+th=er@1_1/A:0_0_0/B:1-1-1@1-2&1-7#1-4$1-3!0-2;0-4|ao/C:0+0+2/D:0_0/E:content+2@1+5&1+2#0+3/F:in_1/G:0_0/H:7=5@1=2|L-L%/I:7=3/J:14+8-2
sil^ao-th+er=ah@1_2/A:1_1_1/B:0-0-2@2-1&2-6#1-4$1-3!1-1;1-3|er/C:1+0+2/D:0_0/E:content+2@1+5&1+2#0+3/F:in_1/G:0_0/H:7=5@1=2|L-L%/I:7=3/J:14+8-2
ao^th-er+ah=v@2_1/A:1_1_1/B:0-0-2@2-1&2-6#1-4$1-3!1-1;1-3|er/C:1+0+2/D:0_0/E:content+2@1+5&1+2#0+3/F:in_1/G:0_0/H:7=5@1=2|L-L%/I:7=3/J:14+8-2
th^er-ah+v=dh@1_2/A:0_0_2/B:1-0-2@1-1&3-5#1-3$1-3!2-2;2-2|ah/C:0+0+2/D:content_2/E:in+1@2+4&2+2#1+2/F:det_1/G:0_0/H:7=5@1=2|L-L%/I:7=3/J:14+8-2

i don't see any lab files is the format you described in my building dir, is it the bug of HTK labeling process or some steps incorrect in my building process?
if it's a bug, i will fix it. : )


common/assert: make KU_ASSERT an expression

This is compliant with the behaviour of std::assert, and avoids warnings about redundant semicolons and potentionally some about duplicate parantheses.

Close this as it is included in #2348.


Hi,

Hi, is there a way to change the PWM frequency? I would like to move it from 1 kHz to higher values.

... I am using a Daisy Seed.

The samplerate optional parameter controls the frequency of the software PWM.
You can set it by creating a new Led class, and initializing it with the desired frequency. You do have to call the Update function at that frequency for it to work as expected.
I am going to be reworking this soon to provide a background timer or something a bit easier. And certain pins are capable of hardware PWM where the frequency can be set explicitly, but this is not present in libdaisy yet.
In the future, questions like this may receive a faster answer on either the forum or in the libdaisy github issues (since this isn't directly related to the examples).


fix: Show println output before an error occurs in nargo execute

Description

Problem*
Running code that is known to fail will hit an early assert false check in acir which leads to a runtime error which will be issued before running the program and displaying any println output up to that point.
Resolves #3207
Summary*
I have removed the early error check mentioned above. The error message for the test program:
#[test]
fn main() {
    let foo = 5;
    let bar = 2;
    println("Blah blah");
    println(f"My foo is {foo} and my bar is {bar}");
    assert(foo == bar);
}

Now correctly shows the printlns before the failed assert error message:
"Blah blah"
My foo is 0x05 and my bar is 0x02
error: Failed constraint
  ┌─ /Users/../short/src/main.nr:9:12
  │
9 │     assert(foo == bar);
  │            ----------
  │
  = Call stack:
    1. /Users/../short/src/main.nr:9:12

Cannot satisfy constraint
exit 1

Re-running the program again however gives us a worse error message:
"Blah blah"
My foo is 0x05 and my bar is 0x02
Cannot satisfy constraint
exit 1

It seems after caching the program, the location for the error is lost.

Documentation

[ ] This PR requires documentation updates when merged.

[ ] I will submit a noir-lang/docs PR.

[ ] I will request for and support Dev Rel's help in documenting this PR.

Additional Context

PR Checklist*

[ ] I have tested the changes locally.
[ ] I have formatted the changes with Prettier and/or cargo fmt on default settings.

The error is nicer but would it be better if we just improve the output for early assert false check?

I think this particular check is just unneeded

Closing this PR, after some more investigation I think the worse error message may be related to caching the results of programs after recompiling nargo instead.

Reopening this as it is also the cause of #3207. Merging this will fix #3207 and show the output of the program up to the error. The different error format though was a separate issue that I think may be related to versioning/caching.

Reopening this as it is also the cause of https://github.com/noir-lang/noir/issues/3207. Merging this will fix https://github.com/noir-lang/noir/issues/3207 and show the output of the program up to the error. The different error format though was a separate issue that I think may be related to versioning/caching.

Reopening this as it is also the cause of https://github.com/noir-lang/noir/issues/3207. Merging this will fix https://github.com/noir-lang/noir/issues/3207 and show the output of the program up to the error. The different error format though was a separate issue that I think may be related to versioning/caching.

@TomAFrench any insights on the caching issue?

Confirmed that after merging master again, I'm still seeing the location on the error message being dropped:
~/noir/short> nargo execute
"Blah blah"
My foo is 0x05 and my bar is 0x02
error: Failed constraint
  ┌─ /../short/src/main.nr:9:12
  │
9 │     assert(foo == bar);
  │            ----------
  │
  = Call stack:
    1. /../noir/short/src/main.nr:9:12

Cannot satisfy constraint
exit 1

~/noir/short> nargo execute
"Blah blah"
My foo is 0x05 and my bar is 0x02
Cannot satisfy constraint
exit 1

This issue is fixed by https://github.com/noir-lang/noir/pull/3133

This PR is ready for review then since the error in question is unrelated

@vezenovm could you re-review?


runtime-sdk: Reject batches that overflow batch gas limit

I take it Error::Abort has some special handling?

Yes, it is tagged with #[sdk_error(abort)] which is handled by the dispatcher to cause a batch abort.


As a User I want to see other Users status in the User List, denoted by a red or green light, in order to know with whom I can play.

This issue was completed in Sprint 1 but removed and then added again in Sprint 2.


v1 fails with "ssh: Could not resolve hostname freebsd: nodename nor servname provided, or not known"

If you are migrating from the previous v0, please change the runs-on:  to runs-on: ubuntu-latest