Question: how can a client connect to the server?

I was just playing with it, and I can execute queries from the dashboard. Awesome work!
Question: How can a client connect to the server and run queries?
Or just access the db file directly at ~/.hiqlite/data/state_machine/db/hiqlite.db or need to embed it in my own application like this sqlite-only example?

Thanks!
You should absolutely never access the DB file directly. The problem with this is that it would bring all nodes out of sync. All actions other than reading data must go through the Raft for consistency across all nodes.
I would highly suggest to embed it into your application like in the examples, yes. In this scenario, you would benefit the most from running SQLite in comparison to a traditional database like Postgres. When you start the node, you will get a hiqlite::Client back. This client handles everything automatically like making sure executes are always running on the leader, switching leaders if necessary, handling network issues and re-connects and it opens a connection pool behind the scenes as well. You will also get many functions to work with the database with the least amount of overhead in comparison to existing solutions like simple async wrappers for rusqlite for instance.
The other way of connecting would be using hiqlite::Client::remote() like shown in the bench example. This client can connect to a cluster that is running standalone or embedded into another application. You should only use this for good reason though, because a remote clients loses the ability to do super fast local reads, which is one of the biggest advantages of this system.

Thanks a lot for your quick response and detailed answer!
Embedding it into an application makes sense to me. What about these use cases?

If two (or more) different applications (e.g., app1 and app2) need to access the same database, either on the same host or different hosts, what is the best way to handle this? For example, app1 reads/writes to the database, while app2 only reads from it. Is it better for app2 to use hiqlite::Client::remote(), or should app2 be part of the cluster if it's on a different host?
How can I achieve one database per tenant?
Is it possible to use ORM frameworks like Diesel?

Either run a standalone server, which would make sense if you want to save on resources compared to a classic Postgres setup, or embed the Hiqlite instance in the app that is most probably doing the most amount of writes. Write throughput is usually the bottleneck for Raft applications, and you could later on automatically route all write traffic to your leader instance via a reverse proxy to get rid of a few network rount-trips.
If you want multiple databases, just execute another hiqlite::start_node(). This will also create a new network / server for you which you could route over different physical wires, as Hiqlite can saturate a 1GBit/s connection if your machine is fast enough.
No. Hiqlite is a complete system. You should never use an ORM in the first place imho, but that's another topic.

Thanks for your answers.
2. hiqlite::start_node() will create its own network per server, which doesn't seem very scalable, especially if there are thousands of databases.
3. Yes, it's another topic, but it's normally the first thing I would think about when using a database. I understand that ORM is not supported by Hiqlite, but I don't see a reason to avoid using ORM. It would make life much easier (the pros and cons are obvious), unless there is a performance issue that cannot be resolved when using ORM.

hiqlite::start_node() will create its own network per server, which doesn't seem very scalable

Actually, the opposite is true. Hiqlite can saturate a 1GBit/s network connection with only database traffic. These are cheap, 10G and up are not. So you could just add multiple smaller networks without losing throughput.

(..)  especially if there are thousands of databases.

If you want thousands of databases on the same host, SQLite is not the one for you imho, at least not in this configuration. Turso does something like this, or lets you do this, but you would not have nearly the same level of consistency and the reason you typically create multiple DB's with SQLite is to overcome the single writer issue. This is not such an issue with Hiqlite becuase of the internal design.
In tests it can easily reach over 30k write TPS. Let's assume you are inserting rather small datasets with just a few columns with 56 bytes per row (the TPS don't really go down even if you write 10 times this data with each query), then you would end up writing ~5.7 GB per hour into your database. If you do things like that, you absolutely should consider running a big, dedicated Postgres cluster or something like that.
If you would write time series data for instance (which you should use a proper DB for), and you can write data in batches, Hiqlite lets you easily write more than 50GB per hour.
If you want to "scale" beyond that, a small footprint and saving resources is not your primary goal, run a proper, dedicated Postgres cluster imho. You should run a DB pool with hundreds of clients while each connection uses 10MB memory on the DB. If you have a pool of 500 connections it would need 5GB just for handling the connections, but at the same time you are writing very high amounts of data.
Hiqlite makes it easy to get rid of a central, big database server all applications rely on. If you run multiple services, each of them could just embed their own Hiqlite database. A SELECT using Hiqlite is ~10 times faster than it is on a Postgres in a fast network (or any other network database) even on the same host, because you won't have the network in between. That's its strength, not scaling to thousands of databases on the same host.
But even if you would do that, thousands of networks on the same host are not bad, it would just mean ~2000 connected ports, which is a rather small number for a server. It is so efficient, that even if you would spin up 1000 x hiqlite::start_node(), it would use less ressources than a Postgres DB with 1000 client connections. The other thing you must not forget is, that you could start each of these instances using another SSD under the hood.

I don't see a reason to avoid using ORM

I think ORMs are a super bad idea.

They add an unnecessary layer of abstraction that needs ressources and increases latency.
For each ORM in each language, you need to learn its own DSL. This means if you learn for instance Hibernate with Java, you won't automatically be able to use any other orm, like Diesel, not even one for the same language.
ORMs typically update their DSL between bigger releases, which means you need to learn the new DSL again.
ORMs try to make simple things simple, like for instance fetch a row and map it to a struct. The thing is, that is simple with an ORM (after you learned the DSL), but it is simple with just SQL as well.
With an ORM, you typically over-fetch data. Meaning you have your structs which map to rows or tables, but you often don't need all values each time. Since you are using an ORM, you would go the easy way and fetch the whole row instead of just SELECTing the parts you really need, which leads to wasted ressources and bandwidth again.
An even worse situation would be, that you for instance need just 2 values from 2 different tables. With an ORM again, you typically fetch both full rows instead of just fetching these 2 tiny values.
Since easy things are easy in both ORM and SQL, we are left with more complex stuff. If the ORM is good, it can do this (after, again, you learned the DSL), but they always have limits, which you don't have if you would just use SQL.
You only need to learn SQL once and it works everywhere, in every language, in every shell you may log in for debugging, and so on. You also can easily jump into another project and understand everything right away, which would not be possible if it would be using another ORM. SQL is actually pretty easy because there is only so much you can do.
The worst thing is, we forget stuff if we don't use it. Meaning even though I wrote an insane amount of code using Java + Hibernate back then, I would now need to learn Hibernate again. Simply because I did not use it in a very long time and it has its own DSL. I even used Diesel quite a lot in the beginning of my Rust journey, but even this I would need to learn again. SQL will always be there, you always use it, so you will never forget and need to learn stuff again.

Wow, interesting discussion, thanks for your insights!
It seems that you're more focused on performance and throughput. One of the key advantages of SQLite is its simplicity—it's just a file, which makes maintenance and deployment straightforward and cost-effective. So, I think maintainability and ease of use are also important factors.
With one database per tenant, we can fully isolate each tenant's data, making it easier to scale as needed (e.g., if only some tenants have large data volumes). This approach also simplifies tasks like exporting, migrating, and deleting data etc. without affecting other tenants.  However, if we need to manage thousands of configurations per application, it will add unnecessary complexity.  For example: imagine trying to test a 3-node cluster on a laptop with thousands of databases—port conflicts could easily arise; and opening an SSL connection for each network seems like unnecessary overhead, and having so many open ports could be a security risk,  troubleshooting could become more difficult if something goes wrong with the network/raft layer or even some wrong configurations. I'm aware of Turso database has a namespace feature, which allows multiple databases on the same server while reusing the network. So my question will be: why can't hiqlite reuse the same network, and what are the concerns/trade-offs?
Regarding ORM, I've never encountered significant performance issues, and it's unlikely to be the bottleneck in most cases. ORM doesn't mean we need to learn new things if we dont want try new features. For example, we have JPA standard in Java which is backward-compatible(frameworks like spring-data is even more simple), it eliminates most of boilerplate code and should suffice for most use cases. It also makes query portable across different databases (e.g., if we want to switch to another db in some cases), and it also allows selective field retrieval which avoid fetching the entire records. Raw SQL requires different dialects for different databases (with variations in syntax, data types, etc.), and also have more boilerplate code and more error-prone. With regard to sqlite, I think the performance impact caused by the ORM abstraction layer is negligible especially when working with local read/write operations. While I'm not looking to debate ORM further, it's clear that both approaches come with their own trade-offs.

One issue with dashboard.
Both succeeded
create table test (id int)
insert into test values(1)

Failed
select * from test;

2024-09-04T02:14:52.685322Z  INFO post_query: hiqlite::dashboard::query: dashboard query:
select * from test;
thread 'tokio-runtime-worker' panicked at hiqlite/src/query/rows.rs:128:23:
internal error: entered unreachable code: unreachable column type: INT

https://github.com/sebadob/hiqlite/blob/c0b43364b08201e17eb4c26eef4d91742f10e45d/hiqlite/src/query/rows.rs#L128
Query directly from db file, the record is there
sqlite> .open hiqlite.db
sqlite> select * from test;
1
sqlite>

It seems that you're more focused on performance and throughput.

Yes, always. After I migrated a big Java project at my old job to Rust and was able to reduce the operational cost by ~95%, I am always focussed and being as efficient as possible. I also often write code for IoT projects, which have very limited resources, so I even have to.

One of the key advantages of SQLite is its simplicity—it's just a file, which makes maintenance and deployment straightforward and cost-effective.

That's true, but unfortunately not anymore with Hiqlite or when using a Raft. I mean, it has other advantages like high availability and even more consistency, but you need more than 1 file now. Compared to other solutions you will have a way lower footprint though which keeps it very cost-effective.

So my question will be: why can't hiqlite reuse the same network, and what are the concerns/trade-offs?

You are right and I get your point. And it would be technically pretty easy to do. For instance, I did this for the cache layer. You could take a look at the cache example. It is using an enum to differentiate between different caches. This could be done with a String of course, but an enum is, again, a lot more efficient. It makes it possible to use a simple Vec<_> for the caches under the hood and select by index, instead of hashing a String to get a value out of a HashMap with each single request.
I could do the same for databases, yes. The tradeoffs would be:

A bit less throughput and higher latency because of additional computations in the most critical path.
If done like for caches, it would be static and the decision how many databases you start will be done at compile time, not at runtime, for better speed and efficiency.
If it would allow a dynamic creation, it would mean less throughput, higher latency, and a bit more complex code.
The worst thing though is, that all database operations would get more complex when using the hiqlite::Client, because you would always need to specify the target database in each single function. In probably almost all situation where you would use Hiqlite, a single databases is more than enough. This means in in all these situations, you would need to write more code, have less throughput and higher latency.

In the end, everything is possible, if you are okay with the tradeoffs.
It would also be possible to implement the State Machine logic twice, so you could do both - use it with a single DB or allow a dynamic creation and decision at runtime. This is quite a bit of work to implement properly though.

However, if we need to manage thousands of configurations per application (...)

True. But would also make the whole deployment more secure by having real separation for database traffic. For such an approach, I would design the whole system in a different way. I would never run all of these from a single application or backend, but instead start a separate container for each one, when you want separation anyway. This would make resource usage and handling a lot easier. You could have limits on each instance and make sure that one database (customer) is not using all your memory, and so on.

For example: imagine trying to test a 3-node cluster on a laptop with thousands of databases—port conflicts could easily arise

Actually, I don't see it. Sure they could arise, but you have ~64.000 ports you can chose from. When you just run it inside docker, you can also fully encapsulate it from your host.

having so many open ports could be a security risk

Not at all. It would be the exact same risk as if you would have one port open, because the application using it is the same anyway. It does not increase your attack surface in this case. It is even a benefit (as well for debugging), because you can take action very specifically if something bad is happening.

One issue with dashboard.

Oh that's bad. It seems that SQLite is not normalizing the column types. I will open an issue about it later and check for other types.
If you just specify INTEGER instead of INT, I guess it should be fine. Unfortunately, the column type under the hood cannot be extracted type safe and must  be parsed from a String. I will add additional type checks there.

reduce the operational cost by ~95%

Congrats 🎉, that's a big deal! I'm doing something similar by porting some Java projects to Rust.

If done like for caches, it would be static and the decision how many databases you start will be done at compile time, not at runtime, for better speed and efficiency.

This can be useful. For example, we may want have one DB to store some data for internal components and another for customer data.  It's certainly more performant than the dynamic approach.

If it would allow a dynamic creation, it would mean less throughput, higher latency, and a bit more complex code.

I guess it shouldn't have too much impact on performance. But this could be a useful feature. Is it possible to define some features like multi-static-db, multi-dynamic-db?  So users can enable the features they need without affecting single database usage. But, of course, this would add complexity to the hiqlite implementation and require more effort.

I would never run all of these from a single application or backend, but instead start a separate container for each one, when you want separation anyway. This would make resource usage and handling a lot easier. You could have limits on each instance and make sure that one database (customer) is not using all your memory, and so on.

One container per customer could work, but it seems overkill for me. It consumes unnecessary system resources, increases costs, and also increase the complexity of traffic routing and also more complex to maintain. Separate storage is more ideal for my needs since all the nodes in the cluster are identical, making it easier to manage.
Two follow-up questions

Is there a way, provided out of box to know if the automatic backup in S3 succeeded or not, because it's critical to make sure we have latest backup for disaster recovery.  Maybe need some metrics?
Currently, there don’t seem to be any metrics emitted. How can we know if the cluster/server is working properly or is this supposed to be done at application level?

I guess it shouldn't have too much impact on performance. But this could be a useful feature. Is it possible to define some features like multi-static-db, multi-dynamic-db? So users can enable the features they need without affecting single database usage. But, of course, this would add complexity to the hiqlite implementation and require more effort.

That would be one solution, yes. The only other thing that came to my mind you must consider is, that when you run multiple DB's using the same Raft group, you would not be able to have independent backups. This is super critical. All DB's, even though split into multiple files and folders, must be treated as one big database in that case. All of them must be included in Raft Snapshots, because they all share the same Raft Logs. This also means, that it would be impossible to apply only a single backup to one of the DB's while leaving the others unaffacted. You can then either apply a backup to all DBs at once or to none at all.
That's just how Raft works by design. To make it super short and leave out a lot of important stuff to keep it simple:

A write to the State Machine (which is SQLite in this case) will be sent from the leader to all Cluster members
When a quorum of leaders has answered this new log entry, it will be considered "added" to the Raft. This first step will store the raw write query into the Logs store, which is rocksdb currently for Hiqlite.
Then only after a quorum of nodes has stored the Raft Logs successfully, the leader will send out a message that it can actually be applied to the State Machine, which will happen in a 2nd step.

The problem is, that you can't write Logs until end of time, you need to purge and clean up at some point. To achieve this, Raft will create snapshots of the data together with the information about what the latest applied Raft log ID is. When all nodes (!) have created this snapshot, the lowest common latest applied log ID will be the one up until all members can clean up their Logs storage.
But, if multiple State Machines share the same Raft Logs storage (and therefore same network, which is created at the same time), they must all be included in these snapshots. This means they would not be treated as individual, but as one big database.
I considered something like this just in case you end up with a performance bottleneck and you are limited by disk I/O, but then quickly forgot about it because it makes every part more complex and error prone. Additionally, while the Raft is creating a snapshot, you will be able to read from the State Machine, but writes will be paused until it finished (which is usually very quick).
I did not have the time to write more docs about tuning and so on, but you can control the amount of snapshots being created via NodeConfig.raft_config.max_in_snapshot_log_to_keep. There is a shortcut using NodeConfig::default_raft_config(10_000) which accepts this number as the only argument. The default value is 10_000 right now, meaning every 10.000 logs, Hiqlite will trigger a new snapshot creation and purge logs up until this point.
So I guess this makes the whole idea of sharing all "customer" databases a really bad idea anyway. It's just how Raft works.

Is there a way, provided out of box to know if the automatic backup in S3 succeeded or not (..)

There is no alerting or metrics yet, no. The upload process will run in a separate async task on the side. It will retry a few times but give up if it fails multiple times. You would see it in the logs, but not in any metrics so far. This needs to be added in the future.

I'm expecting it will automatically download the latest backup and restore it. But nothing is restored from S3, and new backups are pushed to S3.

That's not how it works. It would not even be able to detect this automatically, because, how should it know that you deleted something and it should pull a backup? If you have for instance a 3 node cluster, kill one of them, delete the whole volume and restart it, then it will fetch all missing data from the other running nodes. That's exactly what the above mentioned snapshots are for.
S3 backups are really for disaster recovery only. If just a volume is corrupted, it will not even bother reaching out to S3 and sync from the current leader node.

Currently, there don’t seem to be any metrics emitted. How can we know if the cluster/server is working properly or is this supposed to be done at application level?

You can use hiqlite::Client::is_healthy_db() for a programmatic information. You can also use hiqlite::Client::metrics_db() to get full Raft metrics. The same functions exist with *_cache for the 2nd cache Raft network, if this feature is enabled.
Or you can use /health endpoints on both servers that Hiqlite starts to make sure everything is healthy, just like shown in the Kubernetes StatefulSet example definition for the liveness livenessProbe`.

Thanks for the detailed explanation!  Yeah, share same raft group will be a problem. It will need multi-raft group support which is not available in openraft I guess, but that makes the system even more complex.

If you have for instance a 3 node cluster, kill one of them, delete the whole volume and restart it, then it will fetch all missing data from the other running nodes.

This makes sense.  Could you please expand the backup section to include more details on how to recover if the cluster loses quorum or if the entire cluster is lost?

The section is updated. The whole process is really simple.


fix: repair breaking changes

This fixes minor breaking changes I found during the nodejs-compute upgrade.

Codecov Report

Merging #164 into master will increase coverage by 0.06%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #164      +/-   ##
==========================================
+ Coverage   97.67%   97.73%   +0.06%
==========================================
  Files          15       15
  Lines        2879     2873       -6
  Branches      176      177       +1
==========================================
- Hits         2812     2808       -4
+ Misses         41       39       -2
  Partials       26       26

Impacted Files
Coverage Δ

test/operation.ts
99.4% <100%> (+1.09%)
:arrow_up:

test/service-object.ts
97.31% <100%> (ø)
:arrow_up:

src/operation.ts
97.77% <100%> (+0.1%)
:arrow_up:

src/service-object.ts
97.54% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 7bf4b63...ca0fedd. Read the comment docs.


Question : Is it possible to get city, state, country etc from returned result?

Hi, in the demo example result returned is location name as String. Any methods to get City, State etc. from returned result? Thanks!

Hi,
The dialog only returns the name of the place in String. There is no such method to get City or State for now. Maybe, I'll try to add it in future versions.


Files are empty, please check.

src/main/java/hello

I need more context.

Sorry, I've got it now.


Separate URLs for admin and public site

Our site is a single page app and as such it has a separate domain name from Camaleon CMS admin. When I am in the admin site, all of the visit links point to the CMS admin domain and are as a result broken. If I change the site to point to the public domain internal Camaleon admin navigation ceases to work.
Desired behavior: ability to specify a URL/domain for the public site separately from URL/domain for the admin area.

Hi @p-decoraid
it is simple by overwriting this function:
https://github.com/owen2345/camaleon-cms/blob/master/app/helpers/camaleon_cms/site_helper.rb#L3
Regards,

We have a single site in camaleon's parlance, which has completely independent urls for the admin area and the public area (think https://admin.foo.com and https://www.foo.com). How is current_site relevant here?

It should not be necessary to change the current_site helper because for situations where you have a single site it is returning the first (Only if you have 1 site).
Check my test screenshot where I am accessing to my frontend with http://site1.owen.com:3001 and to my dashboard by http://localhost:3001/admin


error in the content of multer documentation

field name should be inside the brackets and before the comma

That content is populated from the readme of the package itself: https://github.com/expressjs/multer#arrayfieldname-maxcount


Allow named template parameters (to "skip" defaulted values)

I'd like to be able to specify the name of the template parameter I'm providing the value for to avoid having to repeat any defaulted parameters "before" the template parameter I want o override...
model Something<TA, TB={}, TC={}> {};

model SomethingElse {
    ... Something<{}, TC={ foo: string; }>;
}

need a sketch of how this would work in the compiler

Can't assign to @timotheeguerin but I think that he is in a better position to tell how the compiler will deal with this, so if he/someone who has permissions could, it would be appreciated.

I think I’m already assigned on this one

Template instantiation caching. We currently cache the template instance if the args are the same to reuse it. This actually a problem that we already have and don't do anything about with the defaults.
model Foo<T = string, K=string> {}

// In theory all type of p1, p2 and p3 should be the exact same but I think 3 different type are created here.
model Bar {
  p1: Foo<string, string>;
  p2: Foo<string>;
  p3: Foo;
}

Same problem comes from named parameter:
model Foo<T = string, K=string> {}

// In theory all type of p1, p2 and p3 should be the exact same also
model Bar {
  p1: Foo<string, string>;
  p2: Foo<K=string>;
  p3: Foo<T=string>;
}

I'm going to reopen this for one last round of reevaluation, as I strongly agree that it is a much cleaner syntax for Graph's operation templates than the yuckiness of option bags when what you want to specify is types.
Having something be templatable, but requiring the library author to switch from template parameters to a completely different scheme if they want to make them optional via naming is at best a kludge.


Add discard_if_empty attribute to yaml.

Description
Add the possibility to declare some columns as crucial by setting the discard_if_empty attribute to true.
Acceptance criteria

attribute is in yaml
rows with empty crucial columns will be discarded.

Done by @nicolasbandel


feat(docker): now it's possible to choose seed host in the container

Coverage remained the same at 83.871% when pulling ce40a34dc2a5f99a9c6dd1bc061cb8e665d02a05 on feature/docker-use-custom-seed into b5c6ecac059ca3d6a34e4aa04c01d99f09b92cb4 on development.

Coverage remained the same at 83.871% when pulling ce40a34dc2a5f99a9c6dd1bc061cb8e665d02a05 on feature/docker-use-custom-seed into b5c6ecac059ca3d6a34e4aa04c01d99f09b92cb4 on development.


Notice E0 - Shelf Readiness: Activity 2.2.3:  API endpoints that expose FHIR compliant pattern Healthcare Service, Operation Outcome, and Bundle

complete b/c using HAPI FHIR


autofade~ and autofade2~ choke the audio signal altogether and there's no way to get it back

hi, i'm having an interesting issue here:
when i load [autofade~] or [autofade2~] - and plug in a looper to it, or even just an oscillator, the audio going into that stops playing altogether. i've tried sending in gates etc, but i have no idea.
i'm using PD-0.53-2 and Version: 1.0-0 rc-7; Released march 1st 2023

i was hoping to incorporate this into my 16 loopers so that they would maximum play for 10 minutes before fading out, but looks like i haven't yet figured out how that would work
i've tried putting it after [hippers] (highpass+lowpass filter with sliders), after [biquad~] - but in both cases the audio going into them altogether stops.

i even tried copying the help signal which most definitely seems to works in the help - but when it is used inside an abstraction - it just dies. this weirds me up to no end.
in fact, when i plug audio into the 3 inlets in the help-file (see above screenshot), every connection just emits a loud click and that's it
clicking on gate and or fade message does nothing.
what am i missing here? my ideal solution is to use either [autofade~] or [autofade2~] or a mixture of [chrono] and those, to fade out after some loop has played for 5 minutes, and then when i record a new thing into the array, the chronometer is reset and i can have another 10 minutes of audio fadeout time.

all i need is a minimal patch so see if I can reproduce the issue


storage-file-datalake sets incorrect resource type when generating SAS with stored access policy

Package Name: @azure/storage-file-datalake
Package Version:  12.3.0

Describe the bug
When using a stored access policy to generate SAS using storage-file-datalake, the resource type is set to "c" instead of b/d.
To Reproduce
Steps to reproduce the behavior:
Call the generate SAS function with identifier and pathName. Look at the sr field in the generated SAS Token.
Expected behavior
sr=b
Additional context
There has already been a fix in the storage-blob package.
https://github.com/Azure/azure-sdk-for-js/pull/7397

Also need to fix it for storage-file-share.

Also need to fix it for storage-file-share.


Tiering WIP fixes

Explain the changes

Fixing issue with agent_block_reclaimer - wrong way of preparing the blocks
Fixing issue with deleted parts of chunks - returning parts with no start - fails on schema
limiting the number of retries on failed allocation
Fixing issue in UI - no parts for objects
fixing work with scale on agent_cli
some SensitiveString fixes
adding test_tiering_upload to unit_tests

Issues: Fixed #xxx / Gap #xxx

Testing Instructions:

Create new PR on 4.0 #5527. closing this one.


Document silent skipping of rows on failed type casting during INSERT

I think it is important to document this as other systems would return a warning or error message and will fail the whole INSERT as an atomic operation.

This looks like a bug, instead of documenting this wrong behaviour, we should fix it.


Change the default sorting on the members page: members go by number of applications

We set up the default sorting by rating. That will encourage members to ask for and to make reviews


Document how to debug Rush

Explain to do something like:
alias testrush="node ~/git/wbt/apps/rush-lib/lib/start.js"
Explain how to use the VS Code debugger.

This would be useful, also including the content in this wiki in the website would help, so community members could make pull requests: https://github.com/Microsoft/web-build-tools/wiki/Contributing-to-this-repo

Just had to debug it myself, so for those wondering, here are the steps I took:
This shows how to debug the rush update command:
# (Re-)build the version of rush you want to debug, e.g. 5.10.3
git clone https://github.com/microsoft/web-build-tools.git
cd web-build-tools
git checkout @microsoft/rush-lib_v5.10.3
rush install && rush build

# Run debug version of `rush update` in your project
cd /your_project
code .
node --inspect-brk ~/src/web-build-tools/apps/rush-lib/lib/start.js update

# Now, in VSCode
# - go to Debugger > Add Configuration > Pick "Node.JS: Attach to Process"
# - Start debugger (F5), choose the running rush-lib process
# - Place breakbpoints etc
# - Happy debugging

I use this, which avoids the need for node --inspect-brk:
apps/rush-lib/.vscode/launch.json
{
  // Use IntelliSense to learn about possible attributes.
  // Hover to view descriptions of existing attributes.
  // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "rush update",
      "program": "${workspaceFolder}/lib/start.js",
      "args": [ "update" ],
      "cwd": "(repo folder that you want to debug)"
    }
  ]
}

Then you can just press the "play" button in VS Code.
Hmm...  Maybe we should add this file to Git as we did for API Extractor.

Fixed in https://github.com/microsoft/rushjs.io-website/commit/df5a62b02f7e935f6dcbcc010a0fcbf9014e57e7

Where do we find this documentation?  Is it meant to be on https://rushstack.io/pages/contributing/get_started/ ?  Am I just not seeing it, or should this be perhaps reopened?


Add middle alignment

I would like to use toast as a warning message (centered), in this way it is more visible to the user (validation error, server error)
mobile example:

Please update the README with the new configuration when you're done.

done! thanks

Please update the data provider of the ToasterHubTest to include Alignment::Middle as well.
PS: Don't miss the change requests above 😉

done

done

You forgot to adjust the comment in the configuration file & README.

sorry! updated!

Thanks. I'll verify if the default animation looks good with the middle alignment.

Thanks for your contribution. Released as 1.2.0


Custom User-Agent

Can you add the feature to input a custom user-agent? Sometime the m3u provider needs a specific user-agent in order to play their playlist.

@yusrisahrul10 is it defined for each channel in your playlist, something like this?
#EXTINF:0,Channel 1
#EXTVLCOPT:http-user-agent=CustomStringHere
https://tes.com/channel-x-y-z

Or would it be enough to have just one user-agent for the whole playlist?

@4gray it would be more like each playlist can defined it's user-agent, if you have more than one playlist. For example, in televizo Android app you can edit the user-agent on your playlist, then my playlist can be played.

closed with https://github.com/4gray/iptvnator/commit/a8167c4b2ae625f9714c8bbe5cd6ffa3fcfa0140


JBoss: Loaders can't find templates

Pebble's default Loaders are unable to find my template files (I've tried {Delegating,Classpath,File}Loader). Loaders throw a "Could not find template..." exception, even if provided with the real path on the JBoss virtual filesystem (ServletContext.getRealPath()). I've checked that the files are there. Also, if I let my app itself find and read in the template contents, StringLoader works and the template is rendered/displayed. However, this way, I'm unable to use template inheritance because, e.g., Pebble in turn cannot find the appropriate base template.
Somewhat related: issue #2 (JBoss not exploding WAR in-place, but using VFS per deployment).
In general, I'm excited about Pebble because of its Django-like convenience. However, I'm pretty much bound to using JBoss and would be grateful if both worked together.
Are there any known workarounds/experiences with JBoss deployment? Otherwise, I suspect that implementing a "JBossVFSLoader" (adjusting paths under the hood) would be the way to remedy the situation?

Thanks for bringing this to my attention. Yeah task #2 is pretty much the identical problem but the code base for pebble has changed so dramatically since then that it was solved in a way that is no longer applicable to now.
This is a problem that definitely needs to be resolved; unfortunately I'm very unfamiliar with jboss. I'll have to do some research and in the meantime I'm open to suggestions.

I added a new ServletLoader which seems to work for me using Wildfly. The loader itself uses "servletContext#getResourceAsStream"


resize the base image

hi, I have one doubt - I've seen I can name and resize additional thumbnails:
'thumbnailSizes' => [ // Declare your thumbnails
'square' => [   // Define the prefix of your thumbnail
'w' => 200, // Width
'h' => 200, // Height
'crop' => true  // Crop will crop the image as well as resize it
'jpeg_quality'  => 100,
'png_compression_level' => 9
],
but is it possible to resize the original image without creating extra thumbnails? how to configure that?
thanks, dan

No, this is not possible.
There are a number of reasons for this.

The original image is still uploaded, so it can be referenced in markup as normal.
If you want to resize an image you make a thumbnail.


Network Properties stops neuron firings.

Describe the bug
Having the active network running at any speed, choosing File => Network Properties will halt any firing, but will keep the engine running. This may be related to #107, but I would hardly call it occasional, because the scenario it completely reliable.
Application: Brain Simulator, Neuron Engine
Module/Network: See attached network:
Hemispheres.zip
To Reproduce
Steps to reproduce the behavior:

Unzip and load attached hemispheres.xml.
Click 'Zoom All'
Notice the ten white neurons (continuous firing) in the center.
Click File => Properties, notice the random color blinking stops, but engine is still running fine.
Click cancel on the properties dialog.
Notice firing won't continue unless you fire the neuron indicated by the arrow in the screenshot (ID 675)

Expected behavior
If I have the engine running immediately before asking for network properties, I expect it to at least continue afterwards. And since rows and columns can be changed in this dialog, I even expect the engine to stop running before we attempt to process this changed rows and/or columns. Of course if it was running before, it should also be started again.
Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

OS: Windows 10 Pro  20H2
Version: 2021-04-26 master

Add any other context about the problem here.

I've added SuspendEngine() and ResumeEngine() calls around the ShowDialog() of the Properties dialog, but even then the number of firing neurons in the aforementioned network drops from around 20 to ZERO. Surely, Suspend and Resume should be seamless, and should keep their charges.

The engine loop is always running. If you suspend the engine, the loop continues to run but never calls any fire methods. The loop is still running, it just can’t do anything enginewise.
When the neuron display needs to update, it just sets a flag. The engine loop checks the flag and updates the display if necessary. That way, the display can only update between firing cycles because the engine firing is never actually running while the display updates. So the display is always a snapshot of the array.
The problem of the firedCount dropping will probably go away if the bigger progressDialog problem is fixed:
The progressDialog must run in the UI thread because all display objects must run in that thread. MutualSuppressesion (my test example) runs in that thread as well so it blocks the UI thread while it is running. But that blocking also prevents the ProgressDialog from updating. So there is the added  AllowUIToUpdate() which lets the progressBar update but also creates all the problems because then you can also start another mutual suppression while  the first mutual suppression is still running. This definitely lets the cat among the pixies.
You can’t make the ProgressDialog Modal because then it blocks the mutalSupression from completing too. I tried it.
A solution will emerge, I am sure.
I’m looking into the difficulty of setting a flag whenever the progressDialog is visible which keeps the rest of the commands from running. There might be an easy way to do that.
From: Andre Slabber @.>
Sent: Tuesday, April 27, 2021 1:24 AM
To: FutureAIGuru/BrainSimII @.>
Cc: Subscribed @.***>
Subject: Re: [FutureAIGuru/BrainSimII] Network Properties stops neuron firings. (#144)
I've added SuspendEngine() and ResumeEngine() calls around the ShowDialog() of the Properties dialog, but even then the number of firing neurons in the aforementioned network drops from around 20 to ZERO. Surely, Suspend and Resume should be seamless, and should keep their charges.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/FutureAIGuru/BrainSimII/issues/144#issuecomment-827417945, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ALP7S7WMN3ERJSDWVC5LEX3TKZYBTANCNFSM43SJHLJA.

The normal approach to any long-lived activity in a Windows program is to put it in a separate thread so the GUI thread is not unduly blocked, and the activity gets to complete without being block too. Problem remaining then is a communication between the two threads to report progress.

Hmm, today's state of the program does absolutely NO random synapses whatsoever. It very briefly flashes the progress bar on screen, but then leaves the selection on screen without any added synapses!

I found a problem a bit ago with the cancelbutton not being reset so was cancelling the file load right off the bat but I fixed it and checked it in.
Charlie
From: Andre Slabber @.>
Sent: Sunday, May 2, 2021 10:00 AM
To: FutureAIGuru/BrainSimII @.>
Cc: FutureAI @.>; Comment @.>
Subject: Re: [FutureAIGuru/BrainSimII] Network Properties stops neuron firings. (#144)
Hmm, today's state of the program does absolutely NO random synapses whatsoever. It very briefly flashes the progress bar on screen, but then leaves the selection on screen without any added synapses!
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/FutureAIGuru/BrainSimII/issues/144#issuecomment-830839053, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ALP7S7R6FDGO7KIJDVSJNDDTLWAIZANCNFSM43SJHLJA.

Currently the BasicNeurons network will suspend the network when properties are shown, and a firing neuron is shown in example #1. However, when properties is canceled or OK'ed, the next neuron in the loop won't fire.


the reference assemblies for .net framework version=v4.7 were not found

Godot version:
3.2.2 mono
OS/device including version:

Windows 10
Issue description:

Error when building a project:
the reference assemblies for .net framework version=v4.7 were not found
Steps to reproduce:
Windows 10 builds >= 1903 are delivered with .NET Framework 4.8.0, but Godot generates a .csproj-File with <TargetFrameworkVersion>v4.7</TargetFrameworkVersion>  .
Can we change the Target Framework to 4.8 or at least tell the people that .Net 4.7.* is required? I know about 5 people who had that problem and asked for help on the Godot Discord Server.

Godot 3.2.2 is supposed to download .NET Framework 4.7 automatically when it's missing. Seems like it's not working for everyone. @neikeq

I swear there was another issue about this from a few days ago, but I can't find it now.
I just realized yesterday that the Godot editor is actually not calling restore when building. Both on master and 3.2. I added the logic but forgot to add the actual argument to the MSBuild command. I'll be fixing this tonight.

@neikeq This one? https://github.com/godotengine/godot/issues/40482


rkt defaults and/or tutorial neglects outgoing connections, leaves beginners lost

This is about usability, documentation, and barrier of entry. Which, I feel, is currently unintuitive, mismatched, and too high for the beginner who already learned Docker. I suggest:

Have rkt configure more iptable rules by default. Especially given *filter \n :FORWARD DROP
And/or improve the documentation, especially the supplied tutorial. There is too much in it, but not enough to motivate 1–3 short examples.
Don't insist on --net=host for examples.

Environment
vanilla CoreOS 1235.0.0
rkt 1.18.0
What did you do?

install CoreOS
sudo su
rkt run --trust-keys-from-https quay.io/coreos/alpine-sh --exec /bin/ping -- -c 5 google.com
rkt run --dns=<IP_ADDRESS> quay.io/coreos/alpine-sh --exec /bin/ping -- -c 5 google.com
rkt run --net=default quay.io/coreos/alpine-sh --exec /bin/ping -- -c 5 google.com
ip -4 addr list gives me multiple <IP_ADDRESS> (!)
read trying-out-rkt.md
Guessing that your <IP_ADDRESS> might be mine <IP_ADDRESS>: ip route add <IP_ADDRESS>/24 via <IP_ADDRESS>
Error, give up.
(Run nginx as described in the tutorial. Go to 3. End in 9.)

If you don't like the supplied example, try:
rkt --insecure-options=image run \
  "blitznote.com/ubuntu:16.04" \
  --exec apt-get -- -q update

What did you expect to see?
"It works frictionless with Docker – why does it not work right away (step 3) with rkt?"
for 3–5:
# (wait ≤1 second)
PING google.com (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from xxx.1e100.net (<IP_ADDRESS>): icmp_seq=1 ttl=58 time=1.07 ms
64 bytes from xxx.1e100.net (<IP_ADDRESS>): icmp_seq=2 ttl=58 time=1.07 ms
64 bytes from xxx.1e100.net (<IP_ADDRESS>): icmp_seq=3 ttl=58 time=1.06 ms
64 bytes from xxx.1e100.net (<IP_ADDRESS>): icmp_seq=4 ttl=58 time=1.08 ms
64 bytes from xxx.1e100.net (<IP_ADDRESS>): icmp_seq=5 ttl=58 time=1.08 ms

What did you see instead?
for 3–5:
# (wait 20 seconds!)
[19919.257762] alpine-sh[5]: ping: bad address 'google.com'

for 8:
RTNETLINK answers: Network is unreachable

See also: #2018

Thanks for the report @wmark, we appreciate user feedback on docs!
This report is quite dense and I think it touches multiple topics, so I'll try to further split it below here.
Additional routing

read trying-out-rkt.md
Guessing that your <IP_ADDRESS> might be mine <IP_ADDRESS>: ip route add <IP_ADDRESS>/24 via <IP_ADDRESS>

You are following here a section called "Container networking on a Vagrant VM". Unless you are also trying this in a local VM (it doesn't look like) this won't apply to your case. Which is probably the reason: for

RTNETLINK answers: Network is unreachable

Explicit DNS

rkt run --dns=<IP_ADDRESS> quay.io/coreos/alpine-sh --exec /bin/ping -- -c 5 google.com

This should work. If not, that's a separate real bug to investigate.
Default PTP and DNS

rkt run --net=default quay.io/coreos/alpine-sh --exec /bin/ping -- -c 5 google.com

This follows what described in the doc regarding the default network. It looks like in this case CNI doesn't pass any DNS config to rkt. I think this is intentional, but cc'ing @squeed for more info.
Custom image

rkt --insecure-options=image run
"blitznote.com/ubuntu:16.04"
--exec apt-get -- -q update

This is a custom image which contains a pre-populated resolv.conf:
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver <IP_ADDRESS>
nameserver <IP_ADDRESS>

As explained in the DNS doc we won't touch it except if explicitly asked to.
L3 addressing

ip -4 add gives me multiple <IP_ADDRESS> (!)

This is fine, as they are private virtual networks. You are looking at the host end, and the gateway IP is by default the first one. If you are interested in the POD, you can use rkt list as shown in the tutorial:
$ rkt list
UUID        APP IMAGE NAME                  STATE   CREATED     STARTED     NETWORKS
0c3ab969    nginx   registry-1.docker.io/library/nginx:latest   running 2 minutes ago   2 minutes ago   default:ip4=<IP_ADDRESS>

Wishlist

Have rkt configure more iptable rules by default. Especially given *filter \n :FORWARD DROP

Can you please elaborate on this? It doesn't seem to be related to what you reported above.

And/or improve the documentation, especially the supplied tutorial. There is too much in it, but not enough to motivate 1–3 short examples.

I agree this could be simpler, we appreciate suggestions regarding how this should look like. Just as a note, we also have more specific getting started guide.

Don't insist on --net=host for examples.

The tutorial already cover host and default network modes. I think you got a bit a confused because the tutorial assumes running this in a vagrant VM, which then requires extra steps to allow routing between host <-> VM <-> pod.

For reference, the "Default PTP and DNS" task is being addressed in https://github.com/containernetworking/cni/pull/334. All the other comments/questions stay.

I'd like to close this in favour of several small tickets, for updates to the documentations.
One non-doc issue remains:

Have rkt configure more iptable rules by default. Especially given *filter \n :FORWARD DROP

Can you please elaborate on this? It doesn't seem to be related to what you reported above.

The silent assumption is a permissive local firewall:
# iptables-save | grep -F :FORWARD
:FORWARD ACCEPT [0:0]

I guess that any tests are run in such an environment. As soon as explicit forwarding is enforced (:FORWARD DROP), anything run by rkt with its default network cannot reach remote machines. Unlike with Docker, which sets the necessary rules.

Indeed, rkt assumes that firewall rules are configured correctly by the administrator. The only cases where rkt touches iptables is to setup port forwarding, and by CNI to set up IP masquerading as requested.
If forwarding is blocked for a given netblock, then that's the administrator's choice.
This might be a useful feature for CNI, though.

Coming from a Docker background, i real agree with :
Have rkt configure more iptable rules by default. Especially given *filter \n :FORWARD DROP

Having to search why i have no network connectivity on a simple container run following a basic tutorial is really frustrating.

Thanks to the CoreOS team for entertaining this issue. As it's more of a sentiment (and secondarily a laundry-list) it's hard to tell how to, and if it has been addressed completely. Therefore I'd like to close it in favour of a filing specific issues.
@gfyrag, if it is okay with you I'd like you to add to or ping on the ticket related to the :FORWARD DROP default firewall setting and missing rules.

@wmark Ok with me. Thks!


fix: e2e test image overrides using env vars

What this PR does / why we need it:
The e2e tests use helm to deploy the cluster. However, the tests were not respecting the environment variables passed in (via the Makefile). This PR uses the oras library to parse the image references passed in as environment variables, and sets the appropriate values during helm deployment.
To test locally, run the following in the project root:
ERASER_IMG=myregistry.io/eraser:v0.4.0
MANAGER_IMG=myregistry.io/eraser-manager:v0.4.0
COLLECTOR_IMG=myregistry.io/collector:v0.4.0
TRIVY_SCANNER_IMG=myregistry.io/eraser-trivy-scanner:v0.4.0

make \
     docker-build-eraser \
     docker-build-collector \
     docker-build-manager \
     docker-build-trivy-scanner \
     ERASER_IMG="$ERASER_IMG" \
     MANAGER_IMG="$MANAGER_IMG" \
     COLLECTOR_IMG="$COLLECTOR_IMG" \
     TRIVY_SCANNER_IMG="$TRIVY_SCANNER_IMG"

make e2e-test \
     ERASER_IMG="$ERASER_IMG" \
     MANAGER_IMG="$MANAGER_IMG" \
     COLLECTOR_IMG="$COLLECTOR_IMG" \
     TRIVY_SCANNER_IMG="$TRIVY_SCANNER_IMG"

Which issue(s) this PR fixes (optional, using fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when the PR gets merged):
Fixes #403
Special notes for your reviewer:

can we test it by changing our e2e to use a non-published image? eraser:e2e-test for example

can we test it by changing our e2e to use a non-published image? eraser:e2e-test for example

i think we need to change non-helm (manifest) test too?

i think we need to change non-helm (manifest) test too?
I missed that, I'll look into it. I saw that the env vars were being read in test/e2e/tests/collector_pipeline/main_test.go, but they're definitely not being injected into the manifest.

This raises a question: is there any good reason why that that test doesn't deploy using helm? All the other e2e tests use helm, and I think specifically so we could change images if necessary. Makes the most sense to me to switch that test to use helm, rather than mess around with kustomize within go.
pinging @ashnamehrotra , any reason we need the collector_pipeline test to be deployed via kubernetes manifest instead of helm?

@pmengelbert re: using manifest, because we wanted to test it specifically

Codecov Report

Merging #424 (a5a3f14) into main (f4c01ae) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #424   +/-   ##
=======================================
  Coverage   21.41%   21.41%
=======================================
  Files          10       10
  Lines         621      621
=======================================
  Hits          133      133
  Misses        476      476
  Partials       12       12

Flag
Coverage Δ

unittests
21.41% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

@pmengelbert re: using manifest, because we wanted to test it specifically (see #342, we can also change it to use make deploy?)

@sozercan I think using make deploy will work.

@pmengelbert re: using manifest, because we wanted to test it specifically (see #342, we can also change it to use make deploy?)

@sozercan pushed up some changes. I'm using make deploy with env var overrides. I ran it locally and verified that the images that were deployed were the ones specified.

can we test it by changing our e2e to use a non-published image? eraser:e2e-test for example

@pmengelbert  can we change our github actions to use non-published images in PR tests?

can we test it by changing our e2e to use a non-published image? eraser:e2e-test for example

@pmengelbert can we change our github actions to use non-published images in PR tests?

Yeah, do we want to do this for all e2e tests?

can we test it by changing our e2e to use a non-published image? eraser:e2e-test for example

@pmengelbert can we change our github actions to use non-published images in PR tests?

Yeah, do we want to do this for all e2e tests?

i think what you added covers all e2e, right?

i think what you added covers all e2e, right?

Yes


Assertion Failure in Cluster::set_tunnels_from_mmio_device() When Two WH_B0 Cards are Installed in Host System

Describe the bug
To improve development productivity, two WH_B0 cards were installed in the server so that two users can each use one WH_B0 card simultaneously for development.
However, when running a program on this system, an assertion failure occurs in the Cluster::set_tunnels_from_mmio_device() function within the tt-metal runtime. (This function was merged in #9515).
I would appreciate it if you could let me know if there are any settings I might have missed.
To Reproduce
Steps to reproduce the behavior:

Install two WH_B0 cards in the host.
Build the latest version of tt-metal.
Execute any test program.

Expected behavior

Users should be able to create and use devices corresponding to each card.

Screenshots

Logs of the program execution and screenshots of tt-smi are attached.

(python_env) dongjin@ttdev01:~/tt-metal$ ./build/test/tt_eager/ops/test_bmm_op
                 Device | INFO     | Opening user mode device driver
  Detecting chips (found 4)
2024-07-16 22:04:46.074 | INFO     | SiliconDriver   - Detected 2 PCI devices : [0, 1]
2024-07-16 22:04:46.158 | INFO     | SiliconDriver   - Software version 6.0.0, Ethernet FW version 6.9.0 (Device 0)
2024-07-16 22:04:46.165 | INFO     | SiliconDriver   - Detected 2 PCI devices : [0, 1]
2024-07-16 22:04:46.169 | WARNING  | SiliconDriver   - NumHostMemChannels: 2 used for device_id: 0x401e less than target: 3. Workload will fail if it exceeds NumHostMemChannels. Increase Number of Hugepages.
2024-07-16 22:04:46.197 | INFO     | SiliconDriver   - Software version 6.0.0, Ethernet FW version 6.9.0 (Device 1)
2024-07-16 22:04:46.198 | INFO     | SiliconDriver   - Software version 6.0.0, Ethernet FW version 6.9.0 (Device 2)
2024-07-16 22:04:46.199 | INFO     | SiliconDriver   - Software version 6.0.0, Ethernet FW version 6.9.0 (Device 3)
                 Always | FATAL    | Loop Exit Error.
libc++abi: terminating due to uncaught exception of type std::runtime_error: TT_ASSERT @ /home/dongjin/tt-metal/tt_metal/llrt/tt_cluster.cpp:656: tunneled_device_hit || (it == device_ids.end())
info:
Loop Exit Error.
backtrace:
 --- void tt::assert::tt_assert<char [17]>(char const*, int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, bool, char const*, char const (&) [17])
 --- tt::Cluster::set_tunnels_from_mmio_device()
 --- tt::Cluster::Cluster()
 --- tt::Cluster::instance()
 --- tt::DevicePool::DevicePool(std::__1::vector<int, std::__1::allocator<int>>, unsigned char, unsigned long, unsigned long, std::__1::vector<unsigned int, std::__1::allocator<unsigned int>> const&)
 --- /home/dongjin/tt-metal/build/tt_metal/libtt_metal.so(+0x449919) [0x7fa4c4baa919]
 --- tt::tt_metal::CreateDevice(int, unsigned char, unsigned long, unsigned long, std::__1::vector<unsigned int, std::__1::allocator<unsigned int>> const&)
 --- ./build/test/tt_eager/ops/test_bmm_op(main+0x5b) [0x5636fc9295db]
 --- /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3) [0x7fa4c3954083]
 --- ./build/test/tt_eager/ops/test_bmm_op(+0x1f4be) [0x5636fc9294be]

Aborted (core dumped)

(python_env) dongjin@ttdev01:~/tt-metal/build/test/tt_metal$ TT_METAL_SLOW_DISPATCH_MODE=1 ./unit_tests_frequent
Running main() from /home/dongjin/tt-metal/.cpmcache/googletest/96129d89f45386492ae46d6bb8c027bc3df5f949/googletest/src/gtest_main.cc
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from Common
[ RUN      ] Common.AllCoresRunManyTimes
                   Test | INFO     | Running iteration #0
                 Device | INFO     | Opening user mode device driver
  Detecting chips (found 4)
2024-07-16 22:05:43.962 | INFO     | SiliconDriver   - Detected 2 PCI devices : [0, 1]
2024-07-16 22:05:44.049 | INFO     | SiliconDriver   - Software version 6.0.0, Ethernet FW version 6.9.0 (Device 0)
2024-07-16 22:05:44.056 | INFO     | SiliconDriver   - Detected 2 PCI devices : [0, 1]
2024-07-16 22:05:44.060 | WARNING  | SiliconDriver   - NumHostMemChannels: 2 used for device_id: 0x401e less than target: 3. Workload will fail if it exceeds NumHostMemChannels. Increase Number of Hugepages.
2024-07-16 22:05:44.088 | INFO     | SiliconDriver   - Software version 6.0.0, Ethernet FW version 6.9.0 (Device 1)
2024-07-16 22:05:44.089 | INFO     | SiliconDriver   - Software version 6.0.0, Ethernet FW version 6.9.0 (Device 2)
2024-07-16 22:05:44.090 | INFO     | SiliconDriver   - Software version 6.0.0, Ethernet FW version 6.9.0 (Device 3)
                 Always | FATAL    | Loop Exit Error.
unknown file: Failure
C++ exception with description "TT_ASSERT @ /home/dongjin/tt-metal/tt_metal/llrt/tt_cluster.cpp:656: tunneled_device_hit || (it == device_ids.end())
info:
Loop Exit Error.
backtrace:
 --- void tt::assert::tt_assert<char [17]>(char const*, int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, bool, char const*, char const (&) [17])
 --- tt::Cluster::set_tunnels_from_mmio_device()
 --- tt::Cluster::Cluster()
 --- tt::Cluster::instance()
 --- tt::tt_metal::GetNumAvailableDevices()
 --- ./unit_tests_frequent(+0xbd44) [0x5589a093bd44]
 --- void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*)
 --- void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*)
 --- testing::Test::Run()
 --- testing::TestInfo::Run()
 --- testing::TestSuite::Run()
 --- testing::internal::UnitTestImpl::RunAllTests()
 --- bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*)
 --- bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*)
 --- testing::UnitTest::Run()
 --- RUN_ALL_TESTS()
 --- /home/dongjin/tt-metal/build/lib/libgtest_main.so.1.13.0(main+0x3d) [0x7fbc7018f18d]
 --- /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3) [0x7fbc6facb083]
 --- ./unit_tests_frequent(+0xaa5e) [0x5589a093aa5e]
" thrown in the test body.
[  FAILED  ] Common.AllCoresRunManyTimes (258 ms)
[----------] 1 test from Common (258 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test suite ran. (258 ms total)
[  PASSED  ] 0 tests.
[  FAILED  ] 1 test, listed below:
[  FAILED  ] Common.AllCoresRunManyTimes

 1 FAILED TEST

tt-smi

Please complete the following environment information:

OS: [e.g. Ubuntu 20.04] : Ubuntu 20.04
Version of software (eg. commit) :

commit 354761a4cad252a45335854fa9466ff7b73904dc (HEAD -> main, origin/main, origin/HEAD)
Author: Bharane AB<EMAIL_ADDRESS>Date:   Tue Jul 16 06:18:24 2024 +0000

    #9911: rebase to latest main

@pgkeller, thanks for the check.

We installed two disconnected cards on the main board.
We haven’t run tt-topology yet.

Would an Ethernet connection be necessary to properly configure the topology using tt-topology?

Ethernet connection should not be required, I was just checking to see how things are connected because the information from tt-smi didn't seem valid.  It looks like your issue will be fixed by running tt-topology and then we'll fix UMD to catch and report this problem with something useful.

@pgkeller,
Thank you for your reply. We’ll proceed with running tt-topology and check it. However, there is an issue with the mainboard, so we will check it once the repair is complete.

@joelsmithTT @broskoTT Checking in on the progress, do we have an ETA on the resolution for this issue?

@razorback3 thanks.
There are two different problems here though:

UMD won't work well if we try to open multiple unconnected cards. This is not a bug, but a feature request since this was never supported. If we implement this, it would allow tt_metal to use both cards from the single host process. Fixing this would include changes only in UMD.
If you want to support multiple host processes, each of them running only on a set of chips, that is supported in UMD, and a change in tt_metal is required to use this, around here: https://github.com/tenstorrent/tt-metal/blob/main/tt_metal/llrt/tt_cluster.cpp#L259.

It sounds like the request is to have two tt_metal runtimes, where each of them uses a single card? That is the second problem then, not the first one. UMD API already supports opening a subset of the cluster.
Even if UMD implemented the feature of supporting multiple unconnected cards, I don't think everything would work well if two tt_metal runtimes both open both cards. So this looks a change required in tt_metal. In this case, I agree with @joelsmithTT that it would save a lot of time if UMD could detect that the client (tt_metal) is trying to open multiple unconnected cards which is not supported currently, and throw error during initialization.
Not sure who should comment on this further from the metal side, @pgkeller ?

Our use-case falls in the second category.
Multiple users are running their own process and each trying to use only one unconnected card.

As a side question, do you guys have any plan to implement a feature similar to CUDA_VISIBLE_DEVICES environment variable?

UMD should be supporting multiple unconnected cards (not thoroughly tested) when this gets merged https://github.com/tenstorrent/tt-umd/pull/306. Such problems as investigated in this issue wouldn't be seen anymore.
I will be moving the issue to tt_metal, since there is still an item on their part to properly allow users to open only a part of the the available system, which should already be available through UMD's constructor: https://github.com/tenstorrent/tt-metal/blob/main/tt_metal/llrt/tt_cluster.cpp#L259

As a side question, do you guys have any plan to implement a feature similar to CUDA_VISIBLE_DEVICES environment variable?

I think this would be more of a question for tt_metal, and how would they implement selecting a subset of devices for the client.
The UMD currently supports selecting a subset through the API. If there is a request to also be able to select this from ENV variable, we could do that easily.


Conversation-Link to most recent Request

Feature: Conversation-Link to most recent Request
  As a journalist
  I want to be able to send direct messages to individual users
  e.g. in order to get consensus for quotes

Hint: It should be enough for now to add a link to the conversation of the most recent request. The link can be added on the user profile. If in fact the actual message is about a previous request (content-wise), this needs to be manually assigned by the journalist. Same problem as in #210 #235 #57

@drjakob: What are the aspects still up for discussion?

We think there is anozher solution sketched in figma. Isn't it?

I think the most straight-forward, short-term solution would be to simply adjust the link target of this button:


remainder.mlir test fails on real GPU hardware (Quadro P1000)

note that it's passing on swiftshader.
log:
117: ../iree/modules/check/native_module.cc:277: Failure
117: Failed
117: Expected equality of these values. Contents does not match.
117:   lhs:
117:     i32=16
117:   rhs:
117:     i32=2
117: [  FAILED  ] module.negative_den_int, where GetParam() = 13 (6 ms)
117: [ RUN      ] module.negative_num_int
117: ../iree/modules/check/native_module.cc:277: Failure
117: Failed
117: Expected equality of these values. Contents does not match.
117:   lhs:
117:     i32=2
117:   rhs:
117:     i32=-2
117: [  FAILED  ] module.negative_num_int, where GetParam() = 15 (7 ms)

Duplicate of #2500


Can you open source the training code

Hi, I am also a master's student working in this field. I'm honored to read this paper,  which is such an excellent study work. It's very intriguing about the implementation details, but the training code is not found. Would it be possible to open source the training code for learning purposes?
Thanks!

Our training is based on a trainer tool used inside the company. We will rewrite the training codes when we are free. And then, we will open source it.


Untrack System-Changes

Closes #93
Untracks and removes the System-Changes package from our repository.

I was wondering how this could possibly decrease the coverage, but I believe coveralls doesn't know about branches, so because the coverage increased in another branch, coveralls is like "wait a minute, I've seen better coverage for ChangesReloaded somewhere. Denied!"
So, I guess we should go ahead and merge this?

I was wondering how this could possibly decrease the coverage, but it seems like coveralls doesn't know about branches, so because the coverage increased in another branch, coveralls is like "wait a minute, I've seen better coverage for ChangesReloaded somewhere. Denied!"
So, I guess we should go ahead and merge this?

Sounds good to me


add purescript-generics as a dependency

It was missing.

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

We're using generics-rep, so this is obsolete by now.


In Team SSO not getting the id_token field as token response

Github issues for C# /JS / Java/ Python should be used for bugs and feature requests. Use Stack Overflow for general "how-to" questions.
Sample information

Sample type: samples
Sample language: dotnetcore
Sample name: Teams oauth SSO

Describe the bug
In Team bot implemented SSO using Active directory v2. in the sample once user click on Sign in, as response getting access token as response. But we have one requirement to get the id_token also. how to get this.
To Reproduce
Steps to reproduce the behavior:

Teams SSO, after click on Sigin in , the result which comes to next waterfall as only token , doesn't id_token.

Expected behavior
How to access the id_token from oauth response.

We don't currently return the full id_token; you would need to provide your own authentication flow implementation.

Please provide sample that authentication can be implemented in teams


add iterator to vector

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

18 of 18 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1391

Relevant Lines:
1391

💛  - Coveralls


CB-3724 Implement statusreason for UNHEALTHY status on 2.9

Will the API part come in a different PR?


Support configuring coveragePathIgnorePatterns

In some situations, it's much easier to create a "blacklist" than a "whitelist" so including coveragePathIgnorePatterns makes a lot of sense to me. I've made this change locally and it works as expected.

Thanks for the PR, @kentcdodds.
@mrmckeb you were recently working in this area for another PR yeah? It makes sense to me but wanted to double check.

Thanks!

Thank you!


Checkout needs sandbox even when run with --no--intergration

See original issue on GitLab
In GitLab by [Gitlab user @willsalmon] on Jul 7, 2020, 11:27
Summary
Checkout needs sandbox even when run with --no--intergration
This means that if a project was built in CI on a different arch or with RE and the RE bots are busy, artefacts can not be checked out even if they are just a tar/docker-image/single file.
We could do it with a approach like https://gitlab.com/BuildStream/buildstream/-/merge_requests/1983 or we tweak how the sandbox is invoked so that it dose not need a real sandbox.

In GitLab by [Gitlab user @cs-shadow] on Jul 14, 2020, 22:02
I'm not sure if I follow. This is already possible, and precisely the reason we have the dummy sandbox (SandboxDummy). This should be automatically get created when buildbox-run isn't available for whatever reason.
If this is not happening, this would be a bug in BuildStream. If so, please share more details about it, and how to reproduce it.

In GitLab by [Gitlab user @cs-shadow] on Jul 14, 2020, 22:02
I'm not sure if I follow. This is already possible, and precisely the reason we have the dummy sandbox (SandboxDummy). This should be automatically get created when buildbox-run isn't available for whatever reason.
If this is not happening, this would be a bug in BuildStream. If so, please share more details about it, and how to reproduce it.

In GitLab by [Gitlab user @willsalmon] on Jul 15, 2020, 10:51
For this case buildbox-run is available but dose not support the target arch.
The element was made by using remote exicution or CI with a different arch. by setting the sandbox arch you can get the right cache key and pull down the artefact. But when you try to check it out then the sandbox dose not create a dummy but complains that the arch is not supported for a full sandbox.
This makes seance when --no-intergration is not used but dose not make sense if --no-intergration is specified.

In GitLab by [Gitlab user @willsalmon] on Jul 15, 2020, 10:51
For this case buildbox-run is available but dose not support the target arch.
The element was made by using remote exicution or CI with a different arch. by setting the sandbox arch you can get the right cache key and pull down the artefact. But when you try to check it out then the sandbox dose not create a dummy but complains that the arch is not supported for a full sandbox.
This makes seance when --no-intergration is not used but dose not make sense if --no-intergration is specified.

In GitLab by [Gitlab user @cs-shadow] on Jul 15, 2020, 11:03
Thanks. I think the fix in that case should be to ensure that we do use the dummy sandbox in such code paths, rather than circumventing that in places other than the sandbox module. This keeps all related logic in one place and avoids unncessary forks in the code.

In GitLab by [Gitlab user @cs-shadow] on Jul 15, 2020, 11:03
Thanks. I think the fix in that case should be to ensure that we do use the dummy sandbox in such code paths, rather than circumventing that in places other than the sandbox module. This keeps all related logic in one place and avoids unncessary forks in the code.

In GitLab by [Gitlab user @cs-shadow] on Jul 15, 2020, 11:04
mentioned in merge request !1983

In GitLab by [Gitlab user @cs-shadow] on Jul 15, 2020, 11:04
mentioned in merge request !1983

In GitLab by [Gitlab user @willsalmon] on Jul 15, 2020, 13:49
The issue that i had was that AFAICT we pick which sandbox to use for the run really early, at the platform level so you lose the chance to fall back at the point were we actually invoke it. Im not sure if that's true but that's what it looked like when I looked. Duno if [Gitlab user @cs-shadow] or [Gitlab user @juergbi] can point me in the right direction for how to fix this sensibly.

In GitLab by [Gitlab user @willsalmon] on Jul 15, 2020, 13:49
The issue that i had was that AFAICT we pick which sandbox to use for the run really early, at the platform level so you lose the chance to fall back at the point were we actually invoke it. Im not sure if that's true but that's what it looked like when I looked. Duno if [Gitlab user @cs-shadow] or [Gitlab user @juergbi] can point me in the right direction for how to fix this sensibly.


Add test env to make Babel load presets

Fixes needed to have green tests

@feedingaliencat thank you very much!!

I tried to fetch the davezuko version and rebase this branch on that, but I can't reproduce the failure.


Vulnerability roundup 86: xawtv-3.106: 1 advisory [4.4]

search, files

[ ] CVE-2020-13696 CVSSv3=4.4 (nixos-20.03)

Scanned versions: nixos-20.03: 2b417708c28. May contain false positives.
Cc @domenkozar

20.03 is Frozen and EOL.
As such, issue is closed.


Improve .env variable detection

Right now if you create a template and then run immediately deploy the template might break. I think we can find ways to improve the experience here.

Building in configure-env should help here


GhprbTrigger: add ghprbCommentBody value

Closes #312.

I am having a hard time finding which version this is part of. I am using version 1.24.4 currently and do not see this environment variable available. Anyone know which version this was included in?

Anyone know which version this was included in?

First release this was in seems to have been 1.27

Thanks for the quick response @williamboman ! I'll see about bumping up to 1.27


https://issues.jboss.org/browse/WFCORE-858 CLI ends with NullPointerE…

…xception after 'ls' command and 'tab' key
Thanks,
Alexey

Windows Build 1822 is now running using a merge of<PHONE_NUMBER>4e1f9fc664b972d7cbdd2533389f26

Linux Build 2305 is now running using a merge of<PHONE_NUMBER>4e1f9fc664b972d7cbdd2533389f26

Core - Full Integration Build 1439 is now running using a merge of<PHONE_NUMBER>4e1f9fc664b972d7cbdd2533389f26

Windows Build 1822 outcome was FAILURE using a merge of<PHONE_NUMBER>4e1f9fc664b972d7cbdd2533389f26
Summary: Execution timeout (new); tests passed: 3006, ignored: 50; org.wildfly.core:wildfly-core-testsuite-domain Build time: 1:00:17
Build problems:
Execution timeout
Process exited with code 1

Linux Build 2305 outcome was FAILURE using a merge of<PHONE_NUMBER>4e1f9fc664b972d7cbdd2533389f26
Summary: Execution timeout (new); tests passed: 2958, ignored: 48; org.wildfly.core:wildfly-core-testsuite-domain Build time: 1:00:32
Build problems:
Execution timeout
Process exited with code 137

Core - Full Integration Build 1439 outcome was FAILURE using a merge of<PHONE_NUMBER>4e1f9fc664b972d7cbdd2533389f26
Summary: Execution timeout (new); tests passed: 3022, ignored: 367; org.wildfly:wildfly-testsuite-integration-domain Build time: 1:15:34
Build problems:
Execution timeout
Process exited with code 137

retest this please

Linux Build 2313 is now running using a merge of<PHONE_NUMBER>4e1f9fc664b972d7cbdd2533389f26

Windows Build 1830 is now running using a merge of<PHONE_NUMBER>4e1f9fc664b972d7cbdd2533389f26

Core - Full Integration Build 1449 is now running using a merge of<PHONE_NUMBER>4e1f9fc664b972d7cbdd2533389f26

Linux Build 2313 outcome was FAILURE using a merge of<PHONE_NUMBER>4e1f9fc664b972d7cbdd2533389f26
Summary: Execution timeout; tests passed: 2958, ignored: 48; org.wildfly.core:wildfly-core-testsuite-domain Build time: 1:00:03
Build problems:
Execution timeout
Process exited with code 137

Windows Build 1830 outcome was FAILURE using a merge of<PHONE_NUMBER>4e1f9fc664b972d7cbdd2533389f26
Summary: Execution timeout; tests passed: 3006, ignored: 50; org.wildfly.core:wildfly-core-testsuite-domain Build time: 1:00:06
Build problems:
Execution timeout
Process exited with code 1

This seems to producing a hang on the org.jboss.as.test.integration.domain.management.cli.CloneProfileTestCase.

Core - Full Integration Build 1449 outcome was FAILURE using a merge of<PHONE_NUMBER>4e1f9fc664b972d7cbdd2533389f26
Summary: Execution timeout; tests passed: 3022, ignored: 368; org.wildfly:wildfly-testsuite-integration-domain Build time: 1:15:46
Build problems:
Execution timeout
Process exited with code 137

Windows Build 1840 is now running using a merge of fefc7a886e371be2077d49584bc1cd2afd718255

Core - Full Integration Build 1460 is now running using a merge of fefc7a886e371be2077d49584bc1cd2afd718255

Linux Build 2323 is now running using a merge of fefc7a886e371be2077d49584bc1cd2afd718255

Windows Build 1840 outcome was SUCCESS using a merge of fefc7a886e371be2077d49584bc1cd2afd718255
Summary: Tests passed: 3424, ignored: 64 Build time: 0:36:19

Linux Build 2323 outcome was SUCCESS using a merge of fefc7a886e371be2077d49584bc1cd2afd718255
Summary: Tests passed: 3424, ignored: 64 Build time: 0:36:55

Core - Full Integration Build 1460 outcome was FAILURE using a merge of fefc7a886e371be2077d49584bc1cd2afd718255
Summary: Tests failed: 1 (1 new), passed: 3081, ignored: 368 Build time: 0:48:32
Build problems:
Failed tests detected
Failed tests
org.jboss.as.test.clustering.cluster.ejb.xpc.StatefulWithXPCFailoverTestCase(SYNC-tcp).testBasicXPC: <no details avaliable>


Some Items (map for example) are discombobulated when added to the ground loot.

Resolved as of build 6


training multi images per batch

hi ，there
I wonder whether we can add mutli images every batch size to finetune

Hi thanks for your interest and this valuable suggestion!
As our work is now focusing on one-shot learning, there is only one training image. We will further release the few-shot PerSAM with multiple images every batch to fine-tune. Thanks!

ok，thx


Cognito UserPoolDomain must be globally unique

currently, cognito-helper sets up a Cognito::UserPoolDomain with the domain ID of the ElasticSearch domain (when used with aws-lambda-elasticsearch-kibana). While the Elasticsearch domain does not have to be globally unique, the Cognito domain does.
Use Case
Using the aws-lambda-elasticsearch-kibana pattern, one must ensure that both the ES and Cognito UserPoolDomain are globally unique, otherwise must use addPropertyOverride on the UserPoolDomain to make it unique, such as by appending the AWS account Id
Proposed Solution
Allow the user to provide Cognito parameters (similar to ES) at the Solution Construct. Use the ES domain with the account Id appended as a reasonable default.
Other

[x] :wave: I may be able to implement this feature request
[ ] :warning: This feature might incur a breaking change

This is a :rocket: Feature Request

This has been fixed in v1.64.0


[230] Broken Link in MPC Smart Contract Section

Title:
Broken Link in MPC Smart Contract Section
Description:
MPC smart contract link (points to https://github.com/near/mpc-recovery/blob/develop/contract/src/lib.rs#L298) is 404 in section "3. Requesting the Signature"
Summary:
Customer is experiencing issues with a broken link in the MPC smart contract section. Please investigate and update the link.
Info
Reported by: Guest<EMAIL_ADDRESS>- Open in Gleap
Location: US
Type: 🚨 BUG
🔗 Open share link
🌍 Open ticket in Gleap
Metadata
browserName: Chrome(<IP_ADDRESS>)
userAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36
browser: Chrome
systemName: MacOS
sessionDuration: 874
devicePixelRatio: 2
screenWidth: 1920
screenHeight: 1080
innerWidth: 1920
innerHeight: 968
currentUrl: https://docs.near.org/build/chain-abstraction/chain-signatures#1-deriving-the-foreign-address
language: en-US
sdkVersion: 10.1.0
sdkType: javascript
environment: prod

Internal note 📝: Customer is experiencing issues with a broken link in the MPC smart contract section. Please investigate and update the link.


ci: Run all AppiumLocalServerLaunchingTest

List of changes
Please provide a briefly described change list that you are going to propose.
Types of changes
What types of changes are you proposing/introducing to the .NET client?
Put an x in the boxes that apply

[ ] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[x] New feature (non-breaking change which adds value to the project)
[ ] Breaking change (fix or feature that would cause existing functionality not to work as expected)

Documentation

[ ] Have you proposed a file change/ PR with appium to update documentation?

This can be done by navigating to the documentation section on http://appium.io selecting the appropriate command/endpoint and clicking the 'Edit this doc' link to update the C# example
Integration tests

[ ] Have you provided integration tests to pass against the beta version of appium? (for Bugfix or New feature)

Details
Please provide more details about changes if it is necessary. If there are new features you can provide code samples showing how they work and possible use cases. Also, you can create gists with pasted C# code samples or put them here using markdown.
About markdown please read Mastering markdown and Writing on GitHub

Looks like we are ready to go:
https://dev.azure.com/AppiumCI/dotnet-client/_build/results?buildId=28307&view=logs&j=12f1170f-54f2-53f3-20dd-22fc7dff55f9&t=b801fef0-4998-5417-6df0-af092da60315&l=39


IGAPP-1230: Map unscrollable

When many pois are placed at the same location and the user scrolls very close, react-maps-gl facing an rendering issue which is still not solved.
I think restricting maxZoom: 21 should be fine since no one needs to zoom closer

Looks reasonable though I couldn't reproduce the original issue :(

check the video in the jira ticket. At least i could reproduce that


Use paste instead of tagging tokens if it exists

ui-select has a paste option, where you provide your own function for pasting values. But, if you have custom tagging tokens, it won't use the paste function! This just give preference to the paste function if you have it.
@arkarkark this is part of some modifications I'd like to make to ui-select for our filter suggestions. I'm hoping to merge them here for our use and then potentially open a PR against ui-select later if I think these changes would be useful to others. Let me know what you think!

This makes sense to me.


Exit out QTs

Currently users can exit out a QT with no warning, which is leaving their QT stuck in the in progress state until the QT closes.
Can a warning be added when a user tries to close a tab or browser prompting them to submit and or complete their test first before exiting off the page.

See below for details of how to achieve this:
https://www.geeksforgeeks.org/how-to-detect-browser-or-tab-closing-in-javascript/


[Event Request] Application “Tests-Job” Codeunit 136360 "UT T Service Line Usage Link"

[Event Request]Application “Tests-Job”, 136360 "UT T Service Line Usage Link"
Could you please insert the OnTestInitialize Event at the beginning of procedure Setup. Or insert a new initialize procedure:

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.


Roll Flutter Engine from 7d4abb81ccd1 to 4117b88a12a8 (1 revision)

https://github.com/flutter/engine/compare/7d4abb81ccd1...4117b88a12a8
2023-06-20<EMAIL_ADDRESS>Roll Skia from 0b88d9031cd2 to 13d83a6912ce (4 revisions) (flutter/engine#43020)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC jsimmons@google.com,rmistry<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.


Fix the readme so that it has valuable information

I want to see a better title, description and maybe a roadmap.

Working on this now.

Included in pre-release version 0.0.1 alpha


shareViaWhatsApp(null, image.URI) open a modal with other apps and not open WhatsApp directly (iOS)

shareViaWhatsApp function doesn't open whatsapp directly with image parameter (this only happens with ios, in android works well), opens a modal with other apps to share, if I share only a message, plugin opens whatsapp directly in ios.
code
this.screenshot.URI(80).then(image =>{
                    this.socialSharing.shareViaWhatsApp(null, image.URI, null).then((response) => {
                      // Success!
                    }, error =>{
                      console.error('Whatsapp not installed');
                      this.toast.show(messageNotAppInstalled, '5000', 'center').subscribe(
                        toast => {}
                      );
                    }).catch((errorCatch) => {console.error(JSON.stringify(errorCatch));});
                  });

plugin version
cordova-plugin-x-socialsharing: 5.4.0
ios version
11.3.1
ionic info
ionic (Ionic CLI) : 3.20.0
cordova (Cordova CLI) : 7.1.0
cordova ios 4.5.4

Hi, I have the same problem too. That's annoying. Although I am sending a text... I don't get anything.

Having the same issue.
this.socialSharing.shareViaWhatsApp(null, base64, null)
shows the OS native share panel - and doesnt invoke WhatsApp sharing.
When selecting "WhatsApp" sharing from the panel - the image is displayed just fine.
plugin version
cordova-plugin-x-socialsharing: 5.4.0
cli packages: (/usr/local/lib/node_modules)
@ionic/cli-utils  : 1.19.2
ionic (Ionic CLI) : 3.20.0

global packages:
cordova (Cordova CLI) : 8.0.0

Same issue here

Hi,
I have the same problem.
Does Anyone have a solution?

the image need file:// in my case.

I'm trying sharing data uri (PDF) with Social Sharing  in Ionic 4... (using cordova-plugin-x-socialsharing and ionic-native/social-sharing ).
Bellow my installs:
ionic cordova plugin add cordova-plugin-x-socialsharing
npm install @ionic-native/social-sharing
ionic cordova platform add browser
ionic cordova platform add ios
ionic cordova platform add android

I've tried also
ionic cordova run browse
ionic cordova run android
ionic cordova run ios

instead of "ionic serve"
And I've had a lot of errors like "Cordova_not_avaliable" ( even in IOS device )... or "Error: exec proxy not found for :: SocialSharing :: shareViaWhatsApp"...
What could be wrong at my plugins instalations...? It seems the code is Ok (bellow needed change the real data uri string, but too long to put here as a question), follow the function shareViaWhatsApp:
shareViaWhatsApp() {
    // Image or URL works
    this.socialSharing.shareViaWhatsApp(null, "data:application/pdf;df:myOwnName.pdf;base64,JVEERi0.....etc etc etc",  '').then(() => {
    }).catch((e) => {
      alert(JSON.stringify(e));
    });
  }

Hi, has anyone figure out how to solve this issue?


Fix Memory Usage in Epilogue ARC Analysis

These two commits drastically improve the memory management in Epilogue ARC Analysis. The first commit is just a utility commit for the second that could be split off into its own patch. For more details on the "meat" in the second pass, below is the commit msg (which goes into detail). NOTE I am going to perform one more subsequent commit that reduces the size of the per block data to 8 bytes instead of 16 bytes using a PointerIntPair so the overall memory savings will increase even more.

[epilogue-arc-analysis] Be more efficient with memory usage.
This patch fixes a number of issues:
The analysis was using EpilogueARCContext as a temporary when computing. This is
an performance problem since EpilogueARCContext contains all of the memory used
in the analysis. So essentially, we were mallocing tons of memory every time we
missed the analyses cache. This patch changes the pass to instead have 1
EpilogueARCContext whose internal state is cleared in between invocations. Since
the data structures (see below) used after this patch do not shrink memory after
being cleared, this should cause us to have far less memory churn.
The analysis was managing its block state data structure by allocating the
individual block state structs using a BumpPtrAllocator/DenseMap stored in
EpilogueARCContext. The individual state structures were allocated from the
BumpPtrAllocator and the DenseMap then mapped a specific SILBasicBlock to its
State data structure. Ignoring that we were mallocing this memory every time we
computed rather than reusing global state, this pessimizes performance on small
functions significantly. This is because the BumpPtrAllocator by default heap
allocates initially a page and DenseMap initially mallocs a 64 entry hash
table. Thus for a 1 block function, we would be allocating a large amount of
memory that is just unneeded.
Instead this patch changes the analysis to use a std::vector in combination with
PostOrderFunctionInfo to manage the per block state. The way this works is that
PostOrderFunctionInfo already contains a map from a SILBasicBlock to its post
order number. So, when we are allocating memory for each block, we visit the CFG
in post order. Thus we know that each block's state will be stored in the vector
at vector[post order number].
This has a number of nice effects:

By eliminating the need for the DenseMap, in large test cases, we are
signficiantly reducing the memory overhead (by 24 bytes per basic block assuming
8 byte ptrs).
We will use far less memory when applying this analysis to small functions.

rdar://33841629

@swift-ci smoke test and merge

While reading over the code, I noticed I forgot to reset along the failure path. We do that now.

@swift-ci smoke test and merge

@swift-ci smoke test and merge

@swift-ci smoke test and merge

@swift-ci smoke test and merge

Nice! Did you see any compile time improvements?


Editable selection

From the elm discourse post.

Hi,
I’ve just played with the examples, and one issue I found was if the select is searchable you can’t edit the entry. So if there are multiple entries with similar spellings, you can’t move the cursor/carat to change the spelling, you can only clear the whole text box and re-type it all again.
For example, say I have the following options:
League 1, League 2, League 3, League 4
As a user, if I select League 1, and then want to look at content for League 4, I would expect to be able to tab into the select (where the cursor would then be at the end of entered text), and then delete the 1 and replace it with 4.
Otherwise appears to be all good :+1:

Theres no reason why the selection for a SIngle select searchable variant couldn't be editable, it does change the behaviour a lot from what is currently there so maybe it's something you can opt in to as as feature.
Investigation Investigation!


Prove a minimum spending condition for proposals

Description
When completed, this PR will address issue #359.
Checklist

[x] Commit sequence broadly makes sense and commits have useful messages
[x] Code is formatted according to CONTRIBUTING.md
[x] Self-reviewed the diff

Thanks for the comments @jmchapman.  I cleaned up the proof substantially, following the suggestion to make a top-level (in)equational reasoning proof, and in-lined some of the lemmas that were previously separate.  I'm really pleased with how much better and simpler it's looking... of course, more simplification/improvements are likely possible, with more time... but I think it's more important now to address Andre's concerns regarding assumptions.  After I address that I'll go back and do a final polishing.


eeprom: Add drivers for Cypress' FM24W256 and FM25W256

This PR adds drivers for Cypress' FM24W256 and FM25W256 FRAM modules
Also:

Add conditional variants for gpio instance macros
Add support the development shield for both modules

I am not sure I understand the ideas behind the GPIO handling.
The DTS bindings lists the GPIOs as optional, yet the driver code errors out at run-time if they are missing.
What puzzles me the most is, that the state of the pins is never toggled, just initialised? What are your thoughts behind these GPIOs?

I see. The driver does not support the GPIO functionality (yet) since the EEPROM API doesn't. The Idea is that if the pins are wired to a GPIO, the driver can make sure that the signal are correctly rendered inactive. Of course that is only needed if the pins are set (that piece of code is missing as I stated above). The error should only be thrown if a pin is set (and therefore assumed that the driver should take care of) and can't be configured.
I'll put more details into the pin description to make this more clear. Thanks!

Hi!
The build fails because of some seemingly unrelated clone issues.
ERROR: update failed for projects: hal_st, loramac-node, lvgl, mbedtls
Error: Process completed with exit code 1.

Maybe someone can just retrigger the build?

Maybe someone can just retrigger the build?

Rebase PR from main and force push.

Thanks for the input so far. I'll continue work on this next week since it's quite busy atm.

Sorry for the delay. WP is now implemented for both drivers.  HOLD got deleted completely.

The latest rebase broke something in one of the drivers. It will take a few days until I have time to address that fix.

The latest rebase broke something in one of the drivers. It will take a few days until I have time to address that fix.

Whatever the bug was, rebasing onto the latest main fixed it.

@henrikbrixandersen Regarding the discussion under https://github.com/zephyrproject-rtos/zephyr/pull/40213, shouldn't this be part of at24? The documentation https://www.cypress.com/file/136451/download states on the first page that the chip is direct replacement for eeprom, so I guess this is at24 compatible thing then.

@henrikbrixandersen Regarding the discussion under #40213, shouldn't this be part of at24? The documentation https://www.cypress.com/file/136451/download states ~on the first page~ Under the features that the chip is "Direct hardware replacement for serial (I2C) EEPROM", so I guess this is at24 compatible thing then.

Interesting. I somehow missed that during my review of this PR. @dp7hgh7 Did you check whether these parts work out of the box using the existing eeprom_at2x.c driver?

AT24C256 doc here: https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-8568-SEEPROM-AT24C256C-Datasheet.pdf, ops look similar to me; just look at single byte write op (FW pdf page 6 and AT pdf page 10).

Thanks.

Interesting. I somehow missed that during my review of this PR. @dp7hgh7 Did you check whether these parts work out of the box using the existing eeprom_at2x.c driver?

Haven't checked. Will do. Thanks.

@dp7hgh7 - were you able to check if the at24 driver works with this part?

@dp7hgh7 - were you able to check if the at24 driver works with this part?

Ah, damn! I was quite over the last week. I'll verify this by the end of the week. Sorry!

Looking at the code it should be compatible but for some reason it complains about the bus not being ready during initialization. I'll have a deeper look and see what's going on there.

Found it. By default the initialization priority for eeprom in set to 50 which is smaller that those for i2c (60) and spi (70) as well. At least on the nordic platform im have here, this make the initialization fail. I'm not sure if this is a bug or just unfortunate defaults. After increasing the eeprom init priority the driver seems to be compatible. How do you want to proceed from here?

Found it. By default the initialization priority for eeprom in set to 50 which is smaller that those for i2c (60) and spi (70) as well. At least on the nordic platform im have here, this make the initialization fail. I'm not sure if this is a bug or just unfortunate defaults.

Please report this as a separate issue.

After increasing the eeprom init priority the driver seems to be compatible. How do you want to proceed from here?

If the existing driver is compatible with these devices, I see no reason to introduce a custom driver for them. My apologies for missing this the first time around.

I am closing this PR since the devices work with the existing eeprom_at2x.c driver. Please open a separate issue for the initialization level issue, you encountered.