Sequential semantics of async DisposeResources

const d = new AsyncDisposableStack();
d.defer(async () => console.log(44));
d.defer(async () => console.log(43));
d.defer(() => new Promise(resolve => setTimeout(() => {
  console.log(42);
  resolve();
}, 1e4)));
await d.disposeAsync();
// only after 10 seconds: 42, 43, 44

That looks strange - why are some resources that can be disposed immediately should wait for something if it can be done in parallel? In case of errors, the tree can be built in the end. However, yes, here is stack in the name...

I've been thinking about some related challenges in efficiently acquiring and disposing of resources that do and do not have inter-dependencies. Basically, in performance-sensitive code, the sequential disposal can be in conflict with performance objectives if the serialization of promises isn't necessary.
This can easily be the case in acquiring and then disposing of acquired resources.
At first, I was thinking that a user-space solution might be able to address this through something like the following.
{
  // I acknowledge that this example is a bit of nonsense. The idea is that there might be a
  // mix of resources having inter-dependencies and those without.
  // The `acquireWithDependencies` function is a user-space utility to attempt to acquire
  // resources with maximum concurrency where waterfall behaviour might otherwise be unavoidable.
  await using stack = acquireWithDependencies({
    job: [async () => takeJob()],
    jobPrerequisites: ['job', async (job) => lockPrerequisiteJobs(job.id)],
    machine: [async () => acquireMachineForJob()],
  });

  const { job, jobPrerequisites, machine } = stack.acquired;

  // Do stuff with the acquired resources

  // ...

  // The `machine` resource is disposed in parallel to the `jobPrerequisites` resource. The
  // `job` will only be freed once the `jobPrerequisites` have been freed but won't wait for
  // `machine`. The block will only complete once all have been disposed.
}

While I can intuit that the above can be built using the new language feature, I wonder if the primitives are sufficient to avoid the sorts of RAII pitfalls @rbuckton described for the sync proposal.
One area where this becomes murky, IMHO is if the acquisition of machine fails after the job has been acquired and the attempt to acquire the jobPrerequisites is in flight. Perhaps AbortSignal can be used to smooth this nuance over but I'm struggling to wrap my head around the edges.


Unknown CompletionItemKinds are not handled properly

Bug:
As it stands now, this LSP client specifies which CompletionItemKinds it supports in TextDocumentClientCapabilities . According to the spec, if InitializeParams.capabilities.textDocument.completion.completionItemKind.valueSet is set, the client also guarantees that any value outside of valueSet will be handled gracefully and fall back to a default value:
completionItemKind?: {
	/**
	 * The completion item kind values the client supports. When this
	 * property exists the client also guarantees that it will
	 * handle values outside its set gracefully and falls back
	 * to a default value when unknown.
	 *
	 * If this property is not present the client only supports
	 * the completion items kinds from `Text` to `Reference` as defined in
	 * the initial version of the protocol.
	 */
	valueSet?: CompletionItemKind[];
},

However, this is not the case here, the client emits an error instead of handling the unknown value:
Error handling server payload
Traceback (most recent call last):
  File "C:\Users\laure\AppData\Roaming\Sublime Text 3\Installed Packages\LSP.sublime-package\plugin/core/rpc.py", line 322, in receive_payload
    self.response_handler(payload)
  File "C:\Users\laure\AppData\Roaming\Sublime Text 3\Installed Packages\LSP.sublime-package\plugin/core/rpc.py", line 341, in response_handler
    self._response_handlers[handler_id](result)
  File "C:\Users\laure\AppData\Roaming\Sublime Text 3\Installed Packages\LSP.sublime-package\plugin/completion.py", line 261, in handle_response
    self.completions = list(self.format_completion(item) for item in items)
  File "C:\Users\laure\AppData\Roaming\Sublime Text 3\Installed Packages\LSP.sublime-package\plugin/completion.py", line 261, in <genexpr>
    self.completions = list(self.format_completion(item) for item in items)
  File "C:\Users\laure\AppData\Roaming\Sublime Text 3\Installed Packages\LSP.sublime-package\plugin/completion.py", line 237, in format_completion
    hint = completion_item_kind_names[kind]
KeyError: 19

This fallback behavior is also mandatory for InitializeParams.capabilities.workspace.symbol.symbolKind.valueSet and InitializeParams.capabilities.textDocument.documentSymbol.symbolKind.valueSet, although I haven't tested them in this client yet, so I don't know if they are affected as well.

@tomv564 once upon a time my python was strong.. I could have a look and see what I can do if you give me some hints what needs to be done? I'm eager to get it working with Ruby/Rails ;D


Get Random Valid Respawn Point from AISpawnerController on Respawn

References #215
I will add the ability to find a random, valid (no enemy runners nearby) spawn point for the player when they need to respawn. In the event that no points are valid, it will just pick a random one since they are all equally bad and the player must respawn. A pointer to the spawner object will be returned.

I wrote a new method in AISpawnerController that will get the current valid respawn points based on proximity to other runners. If there are no valid respawn points, it will just return all the spawn points so that respawning will happen regardless.


Starting missions from ROS bridge

Hi everyone,
I recently opened a similar issue, but i thought this can also be of interest independently from the other one. Feel free to delete it if you see fit.
I was wondering if there was a way to modify the mission queue of the MiR via ROS, selecting which missions to add/remove from the queue and then signaling the robot to start its mission (equivalent to pushing the "Play" button via the web API).
Right now, we can only move the robot using /cmd_vel or /move_base/goal, which is fine for research purpose. Since from REST API one can easily start the mission and model the mission queue, I was wondering if that would also be possible via ROS, or else if it's easy to implement.

This is not implemented yet, but it would be a very welcome addition! I believe this is the best way to implement the "docking" action (see #69, #72) as well as others.
I don't think it would be very hard to implement. The REST API is stable and well-documented by the MiR people. If you'd like to do this, I'd be more than happy to review and merge PRs! If you have any specific questions during this process, feel free to open issues to discuss it.

I need to handle cart missions soon'ish. I've found this library that might help with the REST API interaction:

https://github.com/osrf/mir100-client

Currently I'm thinking about whether and how this should be integrated into the driver. Maybe one could expose the most relevant endpoints of this API via ROS services. Not sure if it's worth to generate all of them automatically and advertise them all the time. Perhaps a library would be useful that defines and builds auto-generated srv files and provides some kind of factory that can advertise any combination of method+endpoints as a ROS service. Then we could implement the required client code to create and enqueue missions via those services.
Any non-trivial task will probably involve running a sequence of several calls to the REST API. Maybe a custom higher-level API based on specific use cases would be more useful, that would then be exposed via ROS services instead of or in addition to the above described low-level API.
Not sure if this is still within the scope of what this repo is intended to deliver.
I'm open for any input or suggestions!

I need to handle cart missions soon'ish. I've found this library that might help with the REST API interaction:

https://github.com/osrf/mir100-client

Currently I'm thinking about whether and how this should be integrated into the driver. Maybe one could expose the most relevant endpoints of this API via ROS services. Not sure if it's worth to generate all of them automatically and advertise them all the time. Perhaps a library would be useful that defines and builds auto-generated srv files and provides some kind of factory that can advertise any combination of method+endpoints as a ROS service. Then we could implement the required client code to create and enqueue missions via those services.
Any non-trivial task will probably involve running a sequence of several calls to the REST API. Maybe a custom higher-level API based on specific use cases would be more useful, that would then be exposed via ROS services instead of or in addition to the above described low-level API.
Not sure if this is still within the scope of what this repo is intended to deliver.
I'm open for any input or suggestions!

That library looks very useful. I agree that we shouldn't replicate all of the REST API over ROS services - at that point you could just use the REST API directly. So perhaps start with your use case in mind.

That library looks very useful. I agree that we shouldn't replicate all of the REST API over ROS services - at that point you could just use the REST API directly. So perhaps start with your use case in mind.

Hello !
In the file MirMoveBase.action, there is an argument,: move_task.
For this argument there is many possibility including :
int16 DOCKING_MOVE = 4
int16 DOCKING_GLOBAL_MOVE = 5
I've read the topics #74 and #72  but I don't understand what is the purpose of those params ?
Can we use them to send the robot to the dock or is it just for futures implementations ?
Thank for your time


Reduce the size of Device_info payload.

Purpose

Reduce the size of the device info payload by removing unchanged information comparing with the previously sent data.

Approach

From the IOT server side, Maintain a map similar to the Android device side and persist that in the database as a blob after serializing into a byte stream.
Compare payloads and replace the values in the payload and store in the database.

 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.


bad fast5 = total reads

I am new to nanopolish and here is a question I can't find an answer.
After running "nanopolish variants --consensus", I ended up with an unchanged consensus sequence and this summary: [post-run summary] total reads: 382, unparseable: 0, qc fail: 0, could not calibrate: 0, no alignment: 0, bad fast5: 382
Does this mean none of the mapped reads has a good fast5 ?
Thanks for your help!

That is correct, nanopolish does not support 1d^2 reads. You'll have to treat the reads as an unrelated pair of 1d reads.

Hello,
I am having a path problem I do not know how to fix with bad fast5, indexing, etc., probably simple fix.
Background: I can get indexing all the way to event calls to work on my local [ a Mac OSx]. Test run looks like:

nanopolish index -d path.to.fast5 0-1.fastq
[readdb] indexing path.to.fast5
[readdb] num reads: 1900357, num reads with path to fast5: 1900357

graphmap align -r ../../../../../reference_genomes/SAFR032/NC_009848.4.fasta -d 0-1.fastq -o test_whee.sam

~/src/samtools/samtools view -bS test_whee.sam | ~/src/samtools/samtools sort -T test_whee.sorted -o test_whee.sorted.bam

~/src/samtools/samtools index test_whee.sorted.bam

nanopolish eventalign -t 1 --scale-events -n -r 0-1.fastq -b test_whee.sorted.bam -g ../../../../../reference_genomes/SAFR032/NC_009848.4.fasta > test_whee.eventalign.tsv

head -n 5 test_whee.eventalign.tsv
contig	position	reference_kmer	read_name	strand	event_index	event_level_mean	event_stdv	event_length	model_kmer	model_mean	model_stdv	standardized_level
NC_009848.4	0	ATGGAA	81636499-3f40-4de0-9d1a-2f6448891da9	t	1788	87.61	2.274	0.00175	ATGGAA	89.70	3.23	-0.60
NC_009848.4	1	TGGAAA	81636499-3f40-4de0-9d1a-2f6448891da9	t	1789	74.17	2.564	0.00150	TGGAAA	73.55	1.83	0.31
NC_009848.4	1	TGGAAA	81636499-3f40-4de0-9d1a-2f6448891da9	t	1790	70.97	0.823	0.00075	TGGAAA	73.55	1.83	-1.31
NC_009848.4	2	GGAAAA	81636499-3f40-4de0-9d1a-2f6448891da9	t	1791	74.57	1.154	0.00175	GGAAAA	76.43	1.68	-1.03

head -n 5 0-1.fastq.index.readdb
0000012c-8c3b-4503-96b8-e93aead9b057	/Volumes/theBigBad/RESEARCH/MinION_Sequencing/RUNS/190516-DS1-firstDNArun/DS1_DNA/20190516_2256_MN29361_FAK40688_abf3d95c/fast5/FAK40688_c72d21a84b6f30ff65ff144448b26d8fa2640600_309.fast5
000006ed-9596-40d6-8e62-77726e9976b2	/Volumes/theBigBad/RESEARCH/MinION_Sequencing/RUNS/190516-DS1-firstDNArun/DS1_DNA/20190516_2256_MN29361_FAK40688_abf3d95c/fast5/FAK40688_c72d21a84b6f30ff65ff144448b26d8fa2640600_179.fast5
00003489-1e14-4c53-8d7a-2baef11a5aac	/Volumes/theBigBad/RESEARCH/MinION_Sequencing/RUNS/190516-DS1-firstDNArun/DS1_DNA/20190516_2256_MN29361_FAK40688_abf3d95c/fast5/FAK40688_c72d21a84b6f30ff65ff144448b26d8fa2640600_17.fast5
000035eb-7245-40cc-8007-4dbc26a937d7	/Volumes/theBigBad/RESEARCH/MinION_Sequencing/RUNS/190516-DS1-firstDNArun/DS1_DNA/20190516_2256_MN29361_FAK40688_abf3d95c/fast5/FAK40688_c72d21a84b6f30ff65ff144448b26d8fa2640600_340.fast5
0000528e-b09c-437c-b1f2-9f7d8ac5b922	/Volumes/theBigBad/RESEARCH/MinION_Sequencing/RUNS/190516-DS1-firstDNArun/DS1_DNA/20190516_2256_MN29361_FAK40688_abf3d95c/fast5/FAK40688_c72d21a84b6f30ff65ff144448b26d8fa2640600_249.fast5

Yay, it worked. But I have a lot of data and need to run this on the cluster available to me, so Unix system, and now I have rinsed and repeated with all the variations of paths to the fast5 directory and it still is not finding them, bad fast5 style.
That looks like:

nanopolish index -d /nobackupp13/smwaters/test_mcaller/small_fast5 0-1.fastq
[readdb] indexing /nobackupp13/smwaters/test_mcaller/small_fast5
[readdb] num reads: 16000, num reads with path to fast5: 8000

Right there, it is doubling the number of reads. No, these aren't 2d, they are 1d.  And I continue:

graphmap align -r NC_009848.4.fasta -d 0-1.fastq -o test_small.sam

samtools view -bS test_small.sam | samtools sort -T test_small.sorted -o test_small.sorted.bam

samtools index test_small.sorted.bam

nanopolish eventalign --scale-events -n -r 0-1.fastq -b test_small.sorted.bam -g NC_009848.4.fasta > test_small.eventalign.tsv
[fai_load] build FASTA index.
[post-run summary] total reads: 7361, unparseable: 0, qc fail: 0, could not calibrate: 0, no alignment: 0, bad fast5: 7361

woot, there it is.

head -n 2 0-1.fastq.index.readdb
000b3a98-1e28-4071-b124-5dc5dcb0899b	/nobackupp13/smwaters/test_mcaller/small_fast5/FAK40688_c72d21a84b6f30ff65ff144448b26d8fa2640600_0.fast5
0014e97f-873e-4089-b96e-0fe06b6cb48d	/nobackupp13/smwaters/test_mcaller/small_fast5/FAK40688_c72d21a84b6f30ff65ff144448b26d8fa2640600_1.fast5

I have tried all the flavors of path to fast5, and even tried all of the hundreds of fast5 files, which returns some interesting stuff:

nanopolish index -d ./fast5 0-1.fastq
[readdb] indexing ./fast5
[readdb] num reads: 900000, num reads with path to fast5: 892000

That is the mostly full fast5 directory with all the data, huge. My test run only has 8000 reads, and I am noticing here that the difference between those two numbers is 8000. Why!?

nanopolish index -d fast5 0-1.fastq
[readdb] indexing fast5
[readdb] num reads: 900000, num reads with path to fast5: 892000

Does the same thing.
And then I try with the full path to the mostly full fast5 directory:

nanopolish index -d /nobackupp13/smwaters/test_mcaller/fast5 0-1.fastq
[readdb] indexing /nobackupp13/smwaters/test_mcaller/fast5
[readdb] num reads: 900000, num reads with path to fast5: 892000

again it is exactly 8000 sequences off.
Please help. I feel I have exhausted my sanity with this.
Thank you.
-sam

How many fast5 files are in your fast5 directory?
I suspect there is a mismatch between the read names in 0-1.fastq (which contains 8000 reads?) and the reads embedded within the fast5s. Can you check the read names look ok?
Jared

There are ~200 files, I am still uploading all of them.
Yes, the test fastq file has 8000 reads. The reads names look like:
head -n 5 0-1.fastq.index.readdb
0000012c-8c3b-4503-96b8-e93aead9b057	/Volumes/theBigBad/RESEARCH/MinION_Sequencing/RUNS/190516-DS1-firstDNArun/DS1_DNA/20190516_2256_MN29361_FAK40688_abf3d95c/fast5/FAK40688_c72d21a84b6f30ff65ff144448b26d8fa2640600_309.fast5
000006ed-9596-40d6-8e62-77726e9976b2	/Volumes/theBigBad/RESEARCH/MinION_Sequencing/RUNS/190516-DS1-firstDNArun/DS1_DNA/20190516_2256_MN29361_FAK40688_abf3d95c/fast5/FAK40688_c72d21a84b6f30ff65ff144448b26d8fa2640600_179.fast5
00003489-1e14-4c53-8d7a-2baef11a5aac	/Volumes/theBigBad/RESEARCH/MinION_Sequencing/RUNS/190516-DS1-firstDNArun/DS1_DNA/20190516_2256_MN29361_FAK40688_abf3d95c/fast5/FAK40688_c72d21a84b6f30ff65ff144448b26d8fa2640600_17.fast5
000035eb-7245-40cc-8007-4dbc26a937d7	/Volumes/theBigBad/RESEARCH/MinION_Sequencing/RUNS/190516-DS1-firstDNArun/DS1_DNA/20190516_2256_MN29361_FAK40688_abf3d95c/fast5/FAK40688_c72d21a84b6f30ff65ff144448b26d8fa2640600_340.fast5
0000528e-b09c-437c-b1f2-9f7d8ac5b922	/Volumes/theBigBad/RESEARCH/MinION_Sequencing/RUNS/190516-DS1-firstDNArun/DS1_DNA/20190516_2256_MN29361_FAK40688_abf3d95c/fast5/FAK40688_c72d21a84b6f30ff65ff144448b26d8fa2640600_249.fast5

oh sorry, wrong term tab:
head -n 5 0-1.fastq.index.readdb
000006ed-9596-40d6-8e62-77726e9976b2	/nobackupp13/smwaters/test_mcaller/fast5/FAK40688_c72d21a84b6f30ff65ff144448b26d8fa2640600_179.fast5
00003489-1e14-4c53-8d7a-2baef11a5aac	/nobackupp13/smwaters/test_mcaller/fast5/FAK40688_c72d21a84b6f30ff65ff144448b26d8fa2640600_17.fast5
0000528e-b09c-437c-b1f2-9f7d8ac5b922	/nobackupp13/smwaters/test_mcaller/fast5/FAK40688_c72d21a84b6f30ff65ff144448b26d8fa2640600_249.fast5
00005ae3-810c-423f-a1d4-cb03256d72d6	/nobackupp13/smwaters/test_mcaller/fast5/FAK40688_c72d21a84b6f30ff65ff144448b26d8fa2640600_286.fast5
00007ce9-817c-4e6b-98f4-7a90722e46d0	/nobackupp13/smwaters/test_mcaller/fast5/FAK40688_c72d21a84b6f30ff65ff144448b26d8fa2640600_245.fast5

Based on the file names, I assume 0-1.fastq are just the reads for *_0.fast5 and *_1.fast5? If so, I would use h5dump to see if the read names in the fast5 are the same as the fastq.

yes, they are. I used the exact same file on the Mac and there isn't a problem though. It is only occurring in the unix system.
What is h5dump and what would be the command for that check?

h5dump is a tool that prints the contents of an hdf5 file. Its part of the usual hdf5 library.
Is it possible 0.fast5 and 1.fast5 haven't been uploaded yet? (therefore not indexed)

No, not possible.
The index file is matching the read identifiers to the correct fast5, as indicated in the .readdb file from my mac and on the unix cluster.
I renamed the fastq file from the first two guppy based called files that were cat'ed together. The file name is not causing the issue.
What else can I try to look for here?

00003489-1e14-4c53-8d7a-2baef11a5aac	/nobackupp13/smwaters/test_mcaller/fast5/FAK40688_c72d21a84b6f30ff65ff144448b26d8fa2640600_17.fast5
from the cluster and then the readdb file on the mac:
00003489-1e14-4c53-8d7a-2baef11a5aac	/Volumes/theBigBad/RESEARCH/MinION_Sequencing/RUNS/190516-DS1-firstDNArun/DS1_DNA/20190516_2256_MN29361_FAK40688_abf3d95c/fast5/FAK40688_c72d21a84b6f30ff65ff144448b26d8fa2640600_17.fast5

they are matching the reads with the fast5 files on both systems, there is something else going on in the unix environment and i can't figure it out.

Also, the eventalign can see that there are > 7k reads matched, but still throwing out the bad fast5 for all the reads.
I don't know which step is causing the problem. I am assuming it is the index step at the beginning because of the off numbers that I posted.

Let me give you some background on how the index is built, to help you figure this out (I will be offline soon). First, the fastq files are read and gzipped. At the same time, the read names are inserted into a hash table, with the value being the path to the fast5 file (empty for all the reads at this point). Then the fast5s are parsed one by one, and for every read we see we update the hash table to associate the path to the current fast5 with its reads. So the number of reads it sees is the union between the read IDs in the fastq, and the fast5s (this is num reads: 900000).
The fact that exactly 8000 paths are missing, which is the same as the number of reads in your fastq file, leads me to believe there is a mismatch in the read names between your fastq and fast5 files.

But why would that mismatch only be happening on the unix sytem? And why would the .readdb show the correct matching of the reads with the correct fast5 like when run on the mac?
could this be an environmental issue? in which case, that is above my pay grade, I am a biologist who just runs these things when possible.
any advice or help, even if it comes tomorrow would be greatly appreciated.
thank you.

Was this ever resolved?


WIP - Fix bad usage of ErrBucketNotExist

ErrBucketNotExist is never of type
"google.golang.org/api/googleapi".Error
Removed an unused piece code as well.

/retest

/retest

/retest

/retest

@dmage PTAL

/lgtm
You need a BZ for that.

/bugzilla refresh

/bugzilla refresh


failed to add clicked link event to database: record not found

Hi, I must commend you for the good work you are doing , modifying the existing Gophish structure with evilginx2. I have used evilgophish in the past on 2 different servers and all worked well. I decided to try a new phishlet(o365) with a server that i had used before and got results, however, after setting this up creating the lure, when I copy the link and try to access the phishing link from an incognito browser with cleared cache, I get this error on my evilginx terminal "failed to add clicked link event to database: record not found". The browser loads the phishing page just fine, but evilginx is not saving the clicked events as it usually does, where it says "tokens intercepted" et al. What could be the problem? i look forward to a favorable response.

The RId record is not in the database. Could be a phishing link from a previous campaign that was deleted, your browser still has cookies from a previous session, or you restarted GoPhish while evilginx2 still had an open handle to the GoPhish database. I don't have time to debug with people every time their tracking is not working and I'm not providing this kind of support. Tracking works without failure if you have setup correctly.

Thanks for the swift response


Module '"@remix-pwa/dev"' has no exported member 'WorkerDataFunctionArgs'.

This happens in getting started https://remix-pwa.run/docs/main/default-fetch-handler#using-the-default-fetch-handler

Weird because I see it here https://github.com/remix-pwa/monorepo/blob/dda9d68b1c69642679d6ff17658f21fe24c668d6/packages/dev/worker-build.ts#L18

Could you attempt re-installing? This seems like a TS error

Yeah this happens with a fresh project

Super weird. Looks like a TS server error to me, but definitely not a Remix PWA bug
I've encountered this kind of error a few times, sometimes relating to the entire file not being found in tsconfig.json 🤷

Could you attempt to import from the sw package?

Ah ok I see it's in the sw package https://github.com/remix-pwa/monorepo/blob/dda9d68b1c69642679d6ff17658f21fe24c668d6/packages/sw/src/types.ts#L21
I ran pnpm install -D @remix-pwa/sw and restarted TS server. This seemed to work

Should this installation step be added to this page
https://remix-pwa.run/docs/main/default-fetch-handler
and of course update the import?

Yes, I should. I'm heavily working on the docs nowadays.


Update information on Ungit

Ungit switched back from Faircode to MIT License. See https://github.com/FredrikNoren/ungit/issues/997.
I thought, this is worth to be still noticed as "case study" and thus, I changed the link text and the link.

Thanks @koppor! I agree, that post-mortem is still very useful. Thanks for updating the link ❤


Introduce Not for GraphNameMatcher and TermMatcher

It was often found handy to exclude certain terms or graph names during a filter:
let my_graph_name: SimpleTerm<'static> =
    default_namespace.get_unchecked("#my_graph").into_term();
let ds_without_my_graph: Vec<Spog<SimpleTerm>> = dataset
    .quads_matching(Any, Any, Any, Not(Some(my_graph_name)))
    .collect_quads()
    .unwrap();

that's great; thanks


[Feature] Auto capture MAC from VIN (via calculate BLE LNAME)

See https://github.com/raphmur/tesla-local-control-addon/pull/30#issuecomment-2183554269
Please see branch cal-ble-mac https://github.com/raphmur/tesla-local-control-addon/tree/cal-ble-mac
Not committed to main yet pending more testing.
@baylanger?
The new code adds steps: 1/ at container init, 2/ every 3 min (in main loop)
What it does: 1/ calculates LNAME from VIN, 2/ Try and find MAC as per https://github.com/iainbullock/tesla_ble_mqtt_docker/issues/10#issuecomment-2180018678 , 3/ If found, export the variable to be accessible in main loop for the listen_to_ble function
/!\ it is not stored in HA config due to 1/ I don't know if this makes sense, 2/ I don't know how to do it.

PR #32

Please rename "calculate ble name/discover ble mac"

See https://github.com/tesla-local-control/tesla_ble_mqtt_core/pull/12. Quite a big PR, which includes a major rework by @baylanger on the BLE presence scanning.

Still opened. As of today, we still need to manually provide the vin

Still opened. As of today, we still need to manually provide the vin

With release v0.2.0 later today, the BLE Mac addr isn't a requirement anymore.
The VIN is still required but it's true the logic could use the known BLE Local Name format "S..........C" and automatically use that. There's many approaches we could use to make this easier for the end user... writing whatever pops in my mind, I hope I don't repeat myself :)

By default, the logic scans for anything that matches a Tesla car "S.....C" :

if only 1 car is detected, automatically setup the device using the BLE LN instead of the VIN***
if more than 1 car detected, setup a device in HA for each of them -> if the end-user ain't the owner of a detected car, he can manually delete those devices. Here the end user needs to figure out his car(s) BLE Local Name to delete the bad entries.

By default, the logic scans for anything that matches a Tesla car "S.....C" :

If only 1 car is detected, automatically setup the device using the BLE LN instead of the VIN***
If more than 1 car is detected, pick the first one on the list and automatically setup the device. In the device's HA panel "Configuration" card , there could be a "Not owner" button that would add this car in a blocklist and prevent the logic to pick this car in the future. Restarting the add-on would trigger another scan but not pick anything from the blocklist. Here, again, the end user needs to know the BLE LN of his car.

If the end-user owns only 1 car and no other Tesla is in the area, setup the device automatically***

If the end-user owns only 1 car but more are detected, fail to configure and force the end-user to input a VIN***

If the end-user owns 2+ cars, fail to configure and force the end-user to input a VIN***

It is a bit sad Tesla doesn't allow to read the car's name over BLE, the name could be used to setup the device's name instead of -currently- using the VIN - *** if the owner owns 1 car, the name could be set in the config. If own more than 1 car OR if more than 1 car are in the area VIN would be required.... if we want to use the car's name, VIN_LIST could be renamed and allow the following format:

single car name (1 car owner, 1 car detected)
car name+vin list aka "car_name_one=vin1; car_name_two=vin2" (2+ cars owner, 2+ car detected)

If multiple cars are in the area, the RSSI value could be part of the logic.
This was longer to write than I first thought but a good exercise.


Switch to sms() Client, improved GSM-7 Handling

This PR is a redone version of the previously merged #61, which was reverted because v4.0 of the Vonage Core SDK was not being pulled in. Subsequently, messages were defaulted to Unicode for encoding, resulting in more SMS deliveries to end devices.
This PR now pulls in 4.0.2 of the SDK which does the following:

Uses the sms() client instead of the legacy message() client.
Defaults your message type to text which is GSM-7 encoded
Still enables the user to use the Laravel unicode() method to switch if needs be
If you send a GSM-7-compatible text as unicode, it will trigger an E_USER_WARNING but no exception, advising you to use the preferred encoding type
If you send a GSM-7 message that needs to be Unicode, it will trigger an E_USER_WARNING advising you that the end device is likely to have scrambled characters due to not using the preferred encoding type.

For users, if you are not sure of the encoding type for your Notification message, a static helper method is now available for you to check before sending the notification through the channel.
\Vonage\SMS\Message\SMS::isGsm7($message);
Vonage are committed to users and to Laravel itself to make the best developer experience possible. If there are questions or concerns, hit me up.

Lgtm. @potsky @ankurk91 @Brenneisen would any of you be able to try this one out before we merge it?

Sure, tomorrow, my morning 👍

Version bump done.

Working fine for me.

Sorry I'm coming after the war but it's good for me too.
@SecondeJK just a feedback : I have no PHP warning if I add the char ç in the message text and ç is not in the default GSM charset.
The message sent with the text type is only in one part and the ç is replace by ? in the received SMS message which is really ok for me.


Fix unmatched html tags

Can one of the admins verify this patch?

@dsmilkov: let me know if this LGTY and I can merge

LGTM

Merged

Thank you, @vrv .


release: v1.3.1

[v1.3.1] (Mar 8 2024)
Fix:

Hide unused button icons
Removed inherited margin and background-color from global CSS in the form
Fixed a scroll issue in safari browser
Added z-index to mobile container

/bot create ticket

[Creating Ticket] 🔖 Done https://sendbird.atlassian.net/browse/SDKRLSD-1164


[Feature Request] Export to RomFS

A TKCL can be installed by itself and then you can get a full mod folder setup, but I'd like to request maybe an option under developer tools where you can just select an installed already mod or a new tkcl file and have it spit out a zip of the full mod without having to make a new profile, I'm basically requesting the "BNP TO STANDALONE" feature that was in BCML, and if possible an upgraded version where you can where you can pick out a random installed mod and either have it make a zip of the full mod or new tkcl file.

For the record, installed mod to TKCL is under Mod > Export


avoid crash in name resolution

KLASS gives 404 if a requested code does not have a version in the language we request.
I have made it so that if we ask KLASS for a code in a language that does not exist, we simply do not create an entry for its name in the "name" array of the code as stored in the subset version.
The question is if this might create problems down the line, where some other code expects all languages to be present, even if it's just an empty languageText. On the other hand, including an empty languageText "" might cause some system down the line to think that there is a name in that language when there is not. Some testing should be done here.

I got my LDS local stack to work again, and at least the old junit tests don't break with this new code.


added 'project' module integration test

@Alex-Izquierdo can you review for merge to api-module branch -- idea is @sarathbrp would incrementally add coverage for each module, then we can figure out where to run these tests.

Adding QE staff as reviewers as this is of their interest.

@Alex-Izquierdo  I have added other modules as well, please go through it and let me know your comments.


Add soroban-dev configuration for local smart contract development

Adding a new image configuration :soroban-dev which introduces a new network option --futuernet to be used for smart contract development and enables the network to be used with soroban-rpc(--enable-soroban-rpc) and horizon within the image. Refer to  Soraban Dev in README.md for additional details Soroban RPC is published at http://<container_host>:8000/soroban/rpc
this depends on to complete, to provide hosted futurenet settings:
https://github.com/stellar/ops/issues/1832
Closes: https://github.com/stellar/go/issues/4559
Closes #368

@leighmcculloch , pr is now updated with latest versions of soroban enabled core,horizon, soroban-rpc.

@leighmcculloch , I think PR is now ready for merge, the remotefuturenet deployment needs to updated to latest core/horizon versions also - https://github.com/stellar/ops/issues/1832#issuecomment-1267594116, can initiate that separately, so, the futurenet tests here are disabled until that deployment gets updated.


BDArmoryContinued

This will need a "provides" and "conflicts" for "BDArmory", or it will be largely useless.  I'm sure people will be very pleased to see it back!

Given that this is replacing BDArmory, would it make sense to change the ID to BDArmory and elete the old file?

BahamutoD could always come back and take up where he left off. This is how we handle functional replacement forks.

Understood.  Will get to it later this evening

closes #4467

Do we need the repository and homepages lines? They should get scraped from SpaceDock.

Ah, the Spacedock entry has been updated. No, we don't need it, but it won't hurt. This looks like it will do the job, now, and people have been waiting on BDArmory for 1.1.3 a long time. Merging with many thanks!


🗃 Use watcher instead of Deno

More information on the updated readme for BetterFileWatching.jl and at JuliaPluto/watcher.
Todos:

[ ] Crashes on windows :thinking:
[ ] Options(ignores = Set([".git/"])) has no effect

cc @tlienart


Setup todo-issue for the repo

Addresses on https://github.com/SonuBardai/lockbox/issues/18

Codecov Report

Merging #19 (77b7e47) into main (b898dbd) will not change coverage.
The diff coverage is n/a.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@           Coverage Diff           @@
##             main      #19   +/-   ##
=======================================
  Coverage   54.19%   54.19%
=======================================
  Files           7        7
  Lines         548      548
=======================================
  Hits          297      297
  Misses        251      251


Huge GPU utilization

Describe the bug
Huge GPU utilization for no reason.
Screenshots
Task Manager
Additional context
It's on integrated graphics on a laptop, but, as you see, my browser is taking less while playing YouTube.
I don't know if is it possible to do anything regarding UI performance optimization on PowerShell, but here is the fact. :D

Is that a spike when launching, loading the interface or downloading?
Or is it persistant, it stays like that while the interface is open?

What is your integrated GPU called.
It's probably not on the whitelist of optimization script

Is that a spike when launching, loading the interface or downloading? Or is it persistant, it stays like that while the interface is open?

persistant

What is your integrated GPU called. It's probably not on the whitelist of optimization script
Yes, we use list of integrated GPU to launch into optimized mode (X

It's an integrated GPU into AMD Ryzen 5 5600H

@monoterne
Could you please run the following Command in a Powershell Window and post the output so the appropriate mapping can be added :)
(Get-CimInstance Win32_VideoController).Name

@monoterne Could you please run the following Command in a Powershell Window and post the output so the appropriate mapping can be added :) (Get-CimInstance Win32_VideoController).Name

Alright. The problem is it detected the 3050 Ti and decided to launch in the Matrix Mode.


Extension of threestudio

Hi @sherwinbahmani ,
I'm working on implementing 4D-fy as an extension of threestudio in this repository and have invited you as a collaborator. You're welcome to join the project if interested.

I find an interesting thing. The spatial-temporal encoding process directly handles a 4-dimensional input to obtain its encoding. However, I remember that the input for TCNN should be either 2 or 3 dimensions.

Hi,
https://github.com/NVlabs/tiny-cuda-nn/blob/212104156403bd87616c1a4f73a1c5f2c2e172a9/include/tiny-cuda-nn/encodings/grid.h#L1177
It does support up to 4D inputs. There are more efficient ways to do this point and time encoding of course

No, I don't get an error. But does TCNN actually implement a huge O(n^4) hash grid to represent NeRF-T? That's amazing.

Yeah, I saw some recent reconstruction methods using 4D hash grids as well, like this NeurIPS work: https://arxiv.org/pdf/2310.17527.pdf
It is computationally heavy though. It might make sense to use a better representation for this, e.g., 4D planes or deformation based. The best thing would be nerfplayer, as it can represent deformations and newness content (like the fire, water from the firehydrant, etc.), which deformations alone can not handle.


Channels on JioTV are streaming in Standard Definition (SD)

Your Environment

Add-on name: [e.g. Jiotv]
Add-on version: [e.g. 2.0.0]
Kodi version: Kodi 19.1
Operating system version/name: Amazon FireTV Stick
Using from country: India

Describe the bug
Channels on JioTV are streaming in Standard Definition (SD). How to fetch HD streams?
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See an error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.
Debug log

The debug log can be found from this link:

Same here... I want to adjust the resolution...

Use the below backup file to configure your KODI to perform efficiently.
https://github.com/vivin-neelankavil/Kodi-JioTv


Upgrade Poetry to 1.1.0

We've upgraded to 1.1.1 in #2603 as we had to fix up some failing tests, but thanks @ulgens

Hey @jurre, that's ok, thanks for informing me. One question though, is it possible to opt-in the repo for hacktoberfest?


iptables: de-duplicate code for forward chain rules

Move the installation of the forward chain rules into a separate
function which is called from (*IptablesManager).TransientRulesStart and
(*IptablesManager).InstallRules.
De-duplicate code in (*IptablesManager).ciliumNoTrackXfrmRules.

This change is

test-me-please

Coverage decreased (-0.02%) to 45.544% when pulling c03fae17fbe79d595e249f49ea811248e56e8cb9 on pr/tklauser/datapath-iptables-deduplicate-code into 0688f4265413d33f6a7565026130424c64104862 on master.

test-me-please

test-me-please

test-me-please

test-me-please


Statically link to vcruntime

What problem does the new feature solve?
For some reasons the vcruntime140.dll or releated library files are missing on some Windows machines. When running GreptimeDB on these machines, the program crashes because it cannot find vcruntime140.dll.
The error prompt would be: "The code execution cannot proceed because VCRUNTIME140.dll was not found. Reinstalling the program may fix this problem."

But just as all the other futile Microsoft error messages, reinstallation does not help.
What does the feature do?
Statically links greptime binary to vcruntime libraries to avoid such crash.
There're two approaches:

Add crt-static feature when building with MSVC toolchain, only need to change .cargo/config.toml, but it links the whole crt
Use static_vcruntime, this only links to vcruntime, but requires a build script.

Implementation challenges
No response

It seems the Visual C++ library is corrupted. Can you reinstall it?
See also:
https://answers.microsoft.com/en-us/windows/forum/all/vcruntime140dll-was-not-found/f43d5afd-9239-4913-8f32-20e44a959e13

It seems the Visual C++ library is corrupted. Can you reinstall it? See also: https://answers.microsoft.com/en-us/windows/forum/all/vcruntime140dll-was-not-found/f43d5afd-9239-4913-8f32-20e44a959e13

Sorry, I just read

But just as all the other futile Microsoft error messages, reinstallation does not help.

To check, did you reboot the PC? 🥹

It seems the Visual C++ library is corrupted. Can you reinstall it? See also: https://answers.microsoft.com/en-us/windows/forum/all/vcruntime140dll-was-not-found/f43d5afd-9239-4913-8f32-20e44a959e13

Sorry, I just read

But just as all the other futile Microsoft error messages, reinstallation does not help.

To check, did you reboot the PC? 🥹

Reinstalling vc_redis.exe should fix this. But this prompt can easily mislead people into reinstalling greptime binary instead of vc_redis.exe. Also for those machines running Windows, most of them are not connected to Internet.


Potential Bug: new credentials are not assigned to resolved

Hi, the implementation contains a bug I believe. If the value is expired, coalesceProvider() gets called without updating the resolved value. So even if new data is fetched, it won't get returned because resolved remains the same. This could potentially return expired or stale data.
https://github.com/awslabs/smithy-typescript/blob/main/packages/property-provider/src/memoize.ts#L93
I believe it should be
if (isExpired(resolved)) {
  resolved = await coalesceProvider();
  return resolved;
}

So, by calling coalesceProvider() without assigning its return value to resolved, we're essentially performing an operation but not using its result. That's why it's important to assign the result of await coalesceProvider() to resolved.

The value of resolved is reassigned in the coalesceProvider function.


fix(sensors): do not truncate negative values for gyro

Previously, negative values from sensors were truncated to zero. This happened because Float.MIN_VALUE in Java is the smallest positive value that a float can have. It is therefore necessary to use -Float.MAX_VALUE as a lower bound to disable limiting.
Reproducer can be created from the provided unit test. I've checked that without the fix, the provided unit test fails and succeeds when the change is applied.
Fixes: https://github.com/ev3dev-lang-java/ev3dev-lang-java/issues/693

Thanks for the review, @CubixSystem! However the project is set up so that also @jabrena has to approve all pull requests.

@JakubVanek I was a little confused why github suggest me add review as I'm obviously not a maintainer

After discussion with @jabrena, we have decided that the bounds change should apply only to the gyro sensor in order to prevent accidental regressions in other parts of the library.

Hi @CubixSystem, next week, we will release a small snapshot.
Could you test next week if the solution fix your local issue with the sensor?
Juan Antonio

Hi @jabrena
I have my EV3 kit nearby and could test any of changes you will provide with that new snapshot

Verified locally:
package test;

import ev3dev.sensors.ev3.EV3GyroSensor;
import lejos.hardware.port.SensorPort;
import lejos.robotics.SampleProvider;
import lombok.extern.slf4j.Slf4j;

@Slf4j
public class Test693 {
    public static void main(String[] args) throws Exception {
        EV3GyroSensor m = new EV3GyroSensor(SensorPort.S3);
        m.reset();
        SampleProvider prov = m.getAngleMode();
        float[] data = new float[prov.sampleSize()];
        for (int i = 0; i < 10; i++) {
            prov.fetchSample(data, 0);
            LOGGER.info(String.format("Gyro #%d: %f", i, data[0]));
            Thread.sleep(1000);
        }
    }
}

The program did return negative values when I rotated the robot.

Merging now.


Put modules of examples in separate files

Fixes #321

you need to rebase your branch on top of master git pull origin master --rebase & then git push origin examples -f. Also always prefix your branches with your pseudo/name to avoid any collisions in the future.

you need to rebase your branch on top of master

As far as I can tell, I am already rebased on top of master

Also always prefix your branches with your pseudo/name to avoid any collisions in the future.

Sound like a good system, will give my best to think of it for my next PRs :)

Looks good to me otherwise, thanks!

Should be fine now

Btw, another example got merged recently, would be nice if you could rebase on top of master & update that one as well so that all the examples are consistent

Thanks for the cleanup :)

Btw, another example got merged recently, would be nice if you could rebase on top of master & update that one as well so that all the examples are consistent

Done

Thanks Julian :)


Update Composer dependencies (2022-03-04-00-13)

Visual regression test passed!
View the visual regression test report


the description is wrong about rule AC_AWS_0459 "Enable AWS EBS Snapshot Encryption"

terrascan version: v1.15.2
Operating System: Mac

Description
i think the description is wrong about rule AC_AWS_0459 "Enable AWS EBS Snapshot Encryption"
https://github.com/tenable/terrascan/blob/v1.15.2/pkg/policies/opa/rego/aws/aws_ebs_volume/AWS.EBS.EKM.Medium.0682.json#L11
it supposed to be "Enable AWS EBS Snapshot"

We see the same thing, though I'm not sure if that's right according to the TF Resource Definition
https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ebs_volume


RTF Borders outside

RTF borders = "outside" messed up.

Need header to be more than 1 line.  Add spanning headers and you can see it.


Warp speed Data Transfer (WDT)

Library name: Warp speed Data Transfer (WDT)
Library description: Warp speed Data Transfer (WDT) is an embeddedable library (and command line tool) aiming to transfer data between 2 systems as fast as possible over multiple TCP paths
Source repository URL: https://github.com/facebook/wdt
Project homepage (if different from the source repository): https://en-gb.facebook.com/WdtOpenSource/
Anything else that is useful to know when adding (such as optional features the library may have that should be included): thanks for considering this!

If you wish to add this port in the future, you can reopen this issue, but we're closing it for now.


Support linux usb hid discovery

This PR contains 2 commits. The first by @bmon  basically migrates this project to Go Modules. I chose to start with a fork that already included that change because I was planning to do that myself anyway, and thought I could use the work already done by @bmon. I've only appended github.com/ to the module directive to set the full path and added back the vendor directory, this time with the results of "go mod vendor".
The second commit, and the reason for my changes, includes the fixes mentioned above and should also fix https://github.com/marshallbrekka/go-u2fhost/issues/1
The details are in the commit message, but it is basically a change of hid libraries, replacing karalabe/hid with bearsh/hid.
The main difference is that bearsh/hid has updated libusb and hidapi with upstream libusb/libusb and libusb/hidapi which, among other things, incorporate the changes in libusb/hidapi to support Usage Page and Usage on Linux with hidraw. The fork also implemented modules and worked around some issues with vendoring C files etc.
To maintain compatibility with this project, I submitted a fix to bearsh/hid to revert a change in behavior introduced in the updates to karalabe/hid, which was causing a race conditions when calling device Read() multiple times. With that, bearsh/hid should offer a drop-in replacement for karalabe/hid, and while I did not test on Windows or Mac, it does work in Linux, fixing #1 when built with "-tags=hidraw", while maintaining the old behavior when built without it. (Tested with the cmd package)
For a current diff between the 2 projects (karalabe master vs the mod required bearsh commit), see https://github.com/karalabe/hid/compare/master...bearsh:v1.3.0
Asked whether the changes would be submitted to karalabe/hid, the bearsh/hid owner expressed doubts on karalabe/hid maintenance status, though also the intention to maintain the fork, at least for as long they continue with their current employment.

@marshallbrekka If you have a moment I'd appreciate your comments on this PR to know whether this is something you'd be interested in and if so if you have questions, doubts, suggestions. Thanks.

@marshallbrekka If you have a moment I'd appreciate your comments on this PR to know whether this is something you'd be interested in and if so if you have questions, doubts, suggestions. Thanks.

@ocraviotto sorry I missed this, really happy you made this happen! I’ll spend some time over the weekend to review and give thoughts.

@ocraviotto sorry I missed this, really happy you made this happen! I’ll spend some time over the weekend to review and give thoughts.

@ocraviotto this lgtm, only request (now that its using go modules) is to remove the vendor dir.
I also tested this on Mac and confirmed it didn't break anything.

@ocraviotto this lgtm, only request (now that its using go modules) is to remove the vendor dir.
I also tested this on Mac and confirmed it didn't break anything.


Dev: shadow sub not removed when original sub is

Suppose there is 2 accounts, A that exports foo and B that imports foo.
If a client from B creates a subscription on foo, the server will create a shadow subscription in account A to allow messages published on A's foo to be routed to B's foo.
However, when B's foo subscription is removed, that shadow subscription is not.

You mean when B's subscription is unsubscribed the shadow subscription in A is not removed, correct?

Correct, I edited the initial comment.


Add a link in Host Details for more information on host

Look good to me, thanks! r+

@jinruh it would be great if we can also render the content natively in Teletraan, along with the link ( so people could follow the link to CMDB)

if this is not trivial, forget about it, this is good enough! Thanks!

Thanks baogang, I would think to check in this first, and we can add more stuff later.
r+


error!

Games made with this program give error 80010009 on Original PS3 + HEN.
Also, the game icon cannot be changed in the program.

Games made with this program give error 80010009 on Original PS3 + HEN.

Also, the game icon cannot be changed in the program.

I tried on HFW superslim and CFW compatible slim. The HFW doesn't support the games aI believe it doesn't have license file/configuration. It works flawlessly on CFW though. I am personally looking into conversion of license type/ game format. Hopefully it will work on HFW too someday

someone got it to work, https://www.youtube.com/watch?v=aJeq1EV-TGA

the issue seems to be the gamemaker runner is a devkit fself file, which HEN does not seem to enable the use of ...


First Review

Bugs:
Environment: Virtual Env in WSL 2

While installing: pyproject.toml file format issue.
While launching .py script: ModuleNotFoundError: No module named 'requests'
While launching .py script: Unable to access localhost:5789 from browser

Operations Performed:

Removing duplicates
Formatting columns value that was suggested
Custom code implementation - typecast values in certain columns using regex

Scope of Improvements:

Option to edit custom code selected from New Actions
Error info displaying in the UI is not redirecting to the root-cause. Was able to figure out from logs.
Info icon which on hover can explain some terminology like category_high_cardinality
Similar info icon or hyperlink that redirects to what certain outliers means when selecting, specially how auto is performed
Option to download the processed data in CSV/Excel format, currently only JSON format

Thank you @Tamoghna-Saha so much for the feedback!

@Tamoghna-Saha will definitely review and incorporate the feedback in the tool.
In the meantime, would you please join our online Slack community so we can keep you up to date? https://www.mage.ai/chat
Thank you!

@Tamoghna-Saha for the 3 Bugs:

While installing: pyproject.toml file format issue.
While launching .py script: ModuleNotFoundError: No module named 'requests'
While launching .py script: Unable to access localhost:5789 from browser

Was this caused by running pip install mage-ai?

Initially, I was trying to create venv using the toml but it wasn't working.
The next thing happened after I was trying pip install mage-ai in a clean venv.


New flags

Thanks for pointing me this repository, I updated two of the flags I found missing : Réunion and Sint Maarten

Hi, sorry for the slow response on this - will get this merged shortly


Never ran...

This never even started for me in Azure Government.  Job showed as failed but no useful information

Have you tried to pass 'AzureUSGovernment' to the AzureEnvironment parameter?


[Synchronous mode] Pause and Resume state of world

Hi,
How to implement Pause and Resume mechanism on world.on_tick() with CARLA 0.9.2
Pause : Freezing current state of vehicle,world
Resume : Vehicle,world will start from its previous freezed state
This required to synchronize between 2 carla clients (To give data to model and taking back the control)

We plan to add this functionality in 0.9.4 by the end of February.

Since there wasn't an issue tracking this I'm reusing this one :wink:


Don't trigger dataUpdated event when 0 sized delta applied.

I store a state in my application. I want to update it only when the data changes. My initial intention was to use HollowUpdateListener and its dataUpdated event. Then update the state only when the event is triggered but it turns out that the event doesn't depend on data content itself and gets triggered all the time. I would expect that when Hollow applies 0 size delta (doesn't change anything) when it won't trigger it. Any other ways how to know that delta doesn't change data?

Hi Alexandr,
In your HollowUpdateListener, you can call updatedLastCycle() on the HollowReadStateEngine.  This returns a boolean indicating whether or not the last delta actually changed anything.
If you find that you are producing a lot of empty deltas, it's perhaps better if you check on the producer whether or not anything actually changed before publishing and announcing the new state.  This can be accomplished using the hasChangedSinceLastCycle() call on the HollowWriteStateEngine, which also returns a boolean.  If this returns false, then instead of publishing and announcing you can call writeEngine.resetToLastPrepareForNextCycle(), which will revert the state engine to the beginning of the current cycle.  In this way, you can avoid ever producing an empty delta.
Thanks,
Drew.

@dkoszewnik Great! Thank you! Now it makes sense :) Might be worth documenting it .
In case anyone ends up here then this simple code works fine:
class DataChangedListener extends HollowUpdateListener {
  private[this] var hasNewData = false

  override def hasNewDataSinceMarked: Boolean = hasNewData
  override def markAsProcessed(): Unit = hasNewData = false

  override def refreshFailed(beforeVersion: Long, afterVersion: Long, requestedVersion: Long, failureCause: Throwable): Unit = {}
  override def refreshCompleted(beforeVersion: Long, afterVersion: Long, requestedVersion: Long): Unit = {}
  override def staleReferenceUsageDetected(count: Int): Unit = {}
  override def refreshStarted(currentVersion: Long, requestedVersion: Long): Unit = {}
  override def staleReferenceExistenceDetected(count: Int): Unit = {}
  override def transitionApplied(transition: HollowBlob): Unit = {}

  override def dataUpdated(api: HollowAPI, stateEngine: HollowReadStateEngine, version: Long): Unit = {
    if (stateEngine.updatedLastCycle()) {
      hasNewData = true
    }
  }

  override def dataInitialized(api: HollowAPI, stateEngine: HollowReadStateEngine, version: Long): Unit = {
    hasNewData = true
  }

}


Bump abseil-py dep and min Bazel version

This makes builds not fail with --incompatible_remove_old_python_version_api enabled, which will become the default in Bazel 0.25. Fixes #26616.

@gunan is a better person to review this. He is also already in the conversation in https://github.com/tensorflow/tensorflow/issues/26616.

Rebased to include ed297347fdba844f636d980c3a5e0729b043cc65.

Let me double check how bazel version is picked in the CI.
I will try to get back to this PR tomorrow.

FYI I'll flip the flag in Bazel on Thursday, at which point it may break CI for building Tensorflow with Bazel-at-head. (Though I think that's already broken due to the hardcoded version check.)


Using test script defaults terminal to MAILORDER SALE

Hi,
I've been trying several different python based telium manager scripts, and they all have the same issue.
Not sure where else to ask which is why i've raised an issue (sorry!)
The device shows up under /dev/ttyUSB0 when I use a Serial --> USB A adapter from the 'magic box'.
I run the test script, and this pops up on the terminal:
MAILORDER SALE
Key Card No.

If I continue and put in fake card details and postcode etc, the payment is rejected (expected) and a receipt is printed showing the same value which was sent to it by the test script.
My question is, why is it going to a mailorder sale, and not displaying the value of the transaction on the terminal itself?
I would assume it is something to do with config of some sort on the device itself, however I've run over it several times and cannot find anything regarding it.

Hi,
I think that this is related to your device provider, they probably have added a plugin, like a security challenge or something like that. In any case, I think that you'll need extra config with magnetic card for example.
I encountered this situation with a device later this year, I asked for remote (init) configuration with our bank technicians.
This is way out of my competence, I'm sorry. I don't think this is a issue regarding the code.

Thanks for your opinion.
Just as an update, in case anybody else reaches this problem.
For some context, I am using the odoo module hw_telium_payment_manager, but is very similar to this library
The constructed message had a couple of incorrect values:
The answer flag (after transaction amount), in my case, was 0 and should have been 1
The payment mode (after answer flag), in my case was 1, and should have been 0
The delay (toward the end of the message), in my case was A011, and should have been A010
The checksum (last character in the message) (lrc) was xoring the entire message, but should have been xoring the transaction values, then xoring the hex code \x0C.
This is probably only going to be applicable to myself, or maybe one or two others, and unsure if it will even be possible to tweak as a user of this module (have not tested) but just thought i'd drop an update, incase anybody else had a similar problem.
Now the terminal is showing up with the expected customer present sale, showing transaction value and working with pinpad iPP350.


Add freebsd10 to known platforms

Short Description:
Add freebsd10 to known platforms in update_live_stats._update_title to prevent crash.
Also removed exception on unknown platform. Replaced with logger.warn message.
Fixes/Resolves/Closes (please use correct syntax):

Fixes #5202

Note: I have not confirmed this works on freebsd10 as I don't have it and I'm not going to install it just to test this. Change based entirely on feedback from @madzul in #5202.

Confirmed correct by @madzul. Merging.


limit memory usage of prometheus & exporter

Pull Request Test Coverage Report for Build 624

0 of 0 (NaN%) changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-21.4%) to 42.94%

Totals

Change from base Build 611:
-21.4%

Covered Lines:
1937

Relevant Lines:
4609

💛  - Coveralls

Pull Request Test Coverage Report for Build 624

0 of 0 (NaN%) changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-21.4%) to 42.94%

Totals

Change from base Build 611:
-21.4%

Covered Lines:
1937

Relevant Lines:
4609

💛  - Coveralls

  - image: google/cadvisor:v0.29.0

please merge with the previous PR and send a new iteration.

Refers to: service-deployment/bootstrap/prometheus/node-exporter-ds.yaml.template:74 in e0a9b7c. [](commit_id = e0a9b7c5da2cac53310d9c2fd121374c017df10d, deletion_comment = False)


feat: enable support hdfs and avro stroage

fix #119
fix #122

[] build & test on macos
[] test Iceberg function
[] test hdfs function


Limit number of simultaneous results on frontend

Currently the number of results for https://registry.prove.email/?domain=... is unlimited, which, depending on the query can generate very slow and big results.
Option 1: Add pagination
If pagination is used, the best option is probably cursor-based pagination and infinite scrolling, for performance and simplicity of implementation.
Option 2: Limit the possible queries. At the moment, the user can search for "com" which returns all .com domains. Could require the query to contain a second level domain (example.com).

solved by 97f999613a0691f6c7ef0fb856581c8c7a2d069f

reverted as per request
https://github.com/foolo/dkim-lookup/commit/b0df5386d519a0af017010666a638fa87c32f1e5


test: chainstate write test for periodic chainstate flush

Trying to validate https://github.com/bitcoin/bitcoin/pull/30611#issuecomment-2525270023

lol, the benchmark is too fast


fix: EMR job alarm when missing data

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license
Summary
(describe what this merge request does)
Implementation highlights
(describe how the merge request does for feature changes, share the RFC link if it has)
Test checklist

[x] add new test cases
[ ] all code changes are covered by unit tests
[ ] end-to-end tests

[ ] deploy web console with CloudFront + S3 + API gateway
[ ] deploy web console within VPC
[ ] deploy ingestion server

[ ] with MSK sink
[ ] with KDS sink
[ ] with S3 sink

[ ] deploy data processing
[ ] deploy data modeling

[ ] new Redshift Serverless
[ ] provisioned Redshift
[ ] Athena

[ ] deploy with reporting
[ ] streaming ingestion

[ ] with Redshift Serverless
[ ] with provisioned Redshift

Is it a breaking change

[ ] add parameters without default value in stack
[ ] introduce new service permission in stack
[ ] introduce new top level stack module

Miscellaneous

[ ] introduce new symbol link source file(s) to be shared among infra code, web console frontend, and web console backend

SonarQube Quality Gate Result

Result: :white_check_mark: OK
Triggered by @amliuyong on pull_request

Metric
Status
Value
Error Threshold

Reliability rating
:white_check_mark: OK
1
> 1

Security rating
:white_check_mark: OK
1
> 1

Sqale rating
:white_check_mark: OK
1
> 1

Coverage
:white_check_mark: OK
83.80
< 80

Duplicated lines density
:white_check_mark: OK
5.10
> 30

Blocker violations
:white_check_mark: OK
0
> 0

Bugs
:white_check_mark: OK
0
> 0

Code smells
:white_check_mark: OK
8
> 40

Critical violations
:white_check_mark: OK
0
> 0

Major violations
:white_check_mark: OK
0
> 0

Vulnerabilities
:white_check_mark: OK
0
> 0

View on SonarQube
updated: 6/19/2024, 04:14:29 (UTC+0)

SonarQube Code Analytics
Quality Gate passed

Additional information
The following metrics might not affect the Quality Gate status but improving them will improve your project code quality.
Issues
 0 Bugs
 0 Vulnerabilities
 0 Code Smells
Coverage and Duplications
No data Coverage
No data Duplication

SonarQube Quality Gate Result

Result: :white_check_mark: OK
Triggered by @amliuyong on pull_request

Metric
Status
Value
Error Threshold

Reliability rating
:white_check_mark: OK
1
> 1

Security rating
:white_check_mark: OK
1
> 1

Sqale rating
:white_check_mark: OK
1
> 1

Coverage
:white_check_mark: OK
83.70
< 80

Duplicated lines density
:white_check_mark: OK
5.10
> 30

Blocker violations
:white_check_mark: OK
0
> 0

Bugs
:white_check_mark: OK
0
> 0

Code smells
:white_check_mark: OK
8
> 40

Critical violations
:white_check_mark: OK
0
> 0

Major violations
:white_check_mark: OK
0
> 0

Vulnerabilities
:white_check_mark: OK
0
> 0

View on SonarQube
updated: 6/19/2024, 07:07:43 (UTC+0)

SonarQube Quality Gate Result

Result: :white_check_mark: OK
Triggered by @amliuyong on pull_request

Metric
Status
Value
Error Threshold

Reliability rating
:white_check_mark: OK
1
> 1

Security rating
:white_check_mark: OK
1
> 1

Sqale rating
:white_check_mark: OK
1
> 1

Coverage
:white_check_mark: OK
83.70
< 80

Duplicated lines density
:white_check_mark: OK
5.10
> 30

Blocker violations
:white_check_mark: OK
0
> 0

Bugs
:white_check_mark: OK
0
> 0

Code smells
:white_check_mark: OK
8
> 40

Critical violations
:white_check_mark: OK
0
> 0

Major violations
:white_check_mark: OK
0
> 0

Vulnerabilities
:white_check_mark: OK
0
> 0

View on SonarQube
updated: 6/19/2024, 07:08:41 (UTC+0)

SonarQube Quality Gate Result

Result: :white_check_mark: OK
Triggered by @amliuyong on pull_request

Metric
Status
Value
Error Threshold

Reliability rating
:white_check_mark: OK
1
> 1

Security rating
:white_check_mark: OK
1
> 1

Sqale rating
:white_check_mark: OK
1
> 1

Coverage
:white_check_mark: OK
83.70
< 80

Duplicated lines density
:white_check_mark: OK
5.10
> 30

Blocker violations
:white_check_mark: OK
0
> 0

Bugs
:white_check_mark: OK
0
> 0

Code smells
:white_check_mark: OK
8
> 40

Critical violations
:white_check_mark: OK
0
> 0

Major violations
:white_check_mark: OK
0
> 0

Vulnerabilities
:white_check_mark: OK
0
> 0

View on SonarQube
updated: 6/19/2024, 07:11:46 (UTC+0)

SonarQube Quality Gate Result

Result: :white_check_mark: OK
Triggered by @amliuyong on pull_request

Metric
Status
Value
Error Threshold

Reliability rating
:white_check_mark: OK
1
> 1

Security rating
:white_check_mark: OK
1
> 1

Sqale rating
:white_check_mark: OK
1
> 1

Coverage
:white_check_mark: OK
83.80
< 80

Duplicated lines density
:white_check_mark: OK
5.10
> 30

Blocker violations
:white_check_mark: OK
0
> 0

Bugs
:white_check_mark: OK
0
> 0

Code smells
:white_check_mark: OK
8
> 40

Critical violations
:white_check_mark: OK
0
> 0

Major violations
:white_check_mark: OK
0
> 0

Vulnerabilities
:white_check_mark: OK
0
> 0

View on SonarQube
updated: 6/19/2024, 07:12:48 (UTC+0)

SonarQube Quality Gate Result

Result: :white_check_mark: OK
Triggered by @amliuyong on pull_request

Metric
Status
Value
Error Threshold

Reliability rating
:white_check_mark: OK
1
> 1

Security rating
:white_check_mark: OK
1
> 1

Sqale rating
:white_check_mark: OK
1
> 1

Coverage
:white_check_mark: OK
83.80
< 80

Duplicated lines density
:white_check_mark: OK
5.10
> 30

Blocker violations
:white_check_mark: OK
0
> 0

Bugs
:white_check_mark: OK
0
> 0

Code smells
:white_check_mark: OK
8
> 40

Critical violations
:white_check_mark: OK
0
> 0

Major violations
:white_check_mark: OK
0
> 0

Vulnerabilities
:white_check_mark: OK
0
> 0

View on SonarQube
updated: 6/19/2024, 08:45:38 (UTC+0)

SonarQube Quality Gate Result

Result: :white_check_mark: OK
Triggered by @amliuyong on pull_request

Metric
Status
Value
Error Threshold

Reliability rating
:white_check_mark: OK
1
> 1

Security rating
:white_check_mark: OK
1
> 1

Sqale rating
:white_check_mark: OK
1
> 1

Coverage
:white_check_mark: OK
83.70
< 80

Duplicated lines density
:white_check_mark: OK
5.10
> 30

Blocker violations
:white_check_mark: OK
0
> 0

Bugs
:white_check_mark: OK
0
> 0

Code smells
:white_check_mark: OK
8
> 40

Critical violations
:white_check_mark: OK
0
> 0

Major violations
:white_check_mark: OK
0
> 0

Vulnerabilities
:white_check_mark: OK
0
> 0

View on SonarQube
updated: 6/21/2024, 02:28:38 (UTC+0)

SonarQube Quality Gate Result

Result: :white_check_mark: OK
Triggered by @zxkane on pull_request

Metric
Status
Value
Error Threshold

Reliability rating
:white_check_mark: OK
1
> 1

Security rating
:white_check_mark: OK
1
> 1

Sqale rating
:white_check_mark: OK
1
> 1

Coverage
:white_check_mark: OK
83.70
< 80

Duplicated lines density
:white_check_mark: OK
5.10
> 30

Blocker violations
:white_check_mark: OK
0
> 0

Bugs
:white_check_mark: OK
0
> 0

Code smells
:white_check_mark: OK
8
> 40

Critical violations
:white_check_mark: OK
0
> 0

Major violations
:white_check_mark: OK
0
> 0

Vulnerabilities
:white_check_mark: OK
0
> 0

View on SonarQube
updated: 6/21/2024, 02:58:21 (UTC+0)

SonarQube Quality Gate Result

Result: :white_check_mark: OK
Triggered by @amliuyong on pull_request

Metric
Status
Value
Error Threshold

Reliability rating
:white_check_mark: OK
1
> 1

Security rating
:white_check_mark: OK
1
> 1

Sqale rating
:white_check_mark: OK
1
> 1

Coverage
:white_check_mark: OK
83.70
< 80

Duplicated lines density
:white_check_mark: OK
5.10
> 30

Blocker violations
:white_check_mark: OK
0
> 0

Bugs
:white_check_mark: OK
0
> 0

Code smells
:white_check_mark: OK
8
> 40

Critical violations
:white_check_mark: OK
0
> 0

Major violations
:white_check_mark: OK
0
> 0

Vulnerabilities
:white_check_mark: OK
0
> 0

View on SonarQube
updated: 6/21/2024, 06:25:49 (UTC+0)

SonarQube Quality Gate Result

Result: :white_check_mark: OK
Triggered by @amliuyong on pull_request

Metric
Status
Value
Error Threshold

Reliability rating
:white_check_mark: OK
1
> 1

Security rating
:white_check_mark: OK
1
> 1

Sqale rating
:white_check_mark: OK
1
> 1

Coverage
:white_check_mark: OK
83.80
< 80

Duplicated lines density
:white_check_mark: OK
5.20
> 30

Blocker violations
:white_check_mark: OK
0
> 0

Bugs
:white_check_mark: OK
0
> 0

Code smells
:white_check_mark: OK
8
> 40

Critical violations
:white_check_mark: OK
0
> 0

Major violations
:white_check_mark: OK
0
> 0

Vulnerabilities
:white_check_mark: OK
0
> 0

View on SonarQube
updated: 6/21/2024, 07:55:53 (UTC+0)


[ENHANCEMENT] Support VSCode variables like ${workspaceFolder} in robotcode settings

try to investigate if it is possible to use variables like ${workspaceFolder} in settings or how to use launch configurations for setting up robotframework

this is not needed anymore, because we have now a robot.toml


[17.06] Fix concurrent map access on read

This makes a copy of the jsonlog attributes.
This is required since log reads are always async and maps are passed by
reference.

LGTM but isn't a simpler fix to set attr to nil in JSONLog.Reset() ?

Yep, that'll work nicer.

Updated.

Still LGTM

@cpuguy83 when you get the chance, can we also get this one-liner upstream to moby?

Master is all good.

Closing this PR because the docker-ce 17.06 code-line is EoL.


UI/UX: Redesign the company representative page like the content moderator

Closing this as it has been fixed in #149


Feature request "Fit to content"

Hi folks,

I think we need an additional button here that responsibility is to adjust the zoom level and position to fit all content like Zoom to fit in Figma

It already has that functionality. You can press shift + 1. This should zoom to fit.
Is this what you are looking for?

@prancoding Yes, thanks a lot 🙏🏻 so I will close this issue


"Discourse" section on the dashboard needs to be a lot shorter

Is your feature request related to a problem? Please describe.
 section, which is the most important section on the page.
Why do users have to scroll to be able to read the challenge text in that tiny-ass window, while the random comments on random katas (not even the katas they engaged with) take up more than half of the page? It doesn't make sense .
Describe the solution you'd like
Shorten the "Discourse" section and make "Your Next Challenge" section a little bit taller so that users can read most challenges without having to scroll.
Describe alternatives you've considered
I don't see any other alternative, it is really that simple.

You can click on the title to go to the kata page and read the full description there, you know?
The "Your next challenge..." section is uncomfortable to use, misleading for the new users as they may think that the CW content is limited to what they see in this tiny block, leads to bugs (#1664), and displays already completed katas if there're too few not completed ones. Personally, I don't see any benefit in this section being present, but who knows, maybe somebody is really using it as some sort of guide.
What would be a good idea IMO, is to rename it to something like "Suggested challenge" so that its intent is clearer.

@shakhbulatgaz : I disagree about the relative sizes of the "next challenges part" and "discourses" part: I totally don't care about the chaloenges and use the dashboard only to see the last posts in the discourses part. If someone want challenges, the kata search page seems more appropriate to me than the dashboard... ;)


Click and Open Tracking Not Working

Discussed in https://github.com/postalserver/postal/discussions/2446

Originally posted by vulnfind May  4, 2023
My postal server is on "mail.example1.com" and I have added another domain inside the postal server "example2.com". I have created a subdomain "click.example2.com" and pointed its CNAME record to "mail.example1.com" and added the header in the Caddyfile as follows

# Update this to match the hostname you wish to use for accessing the
# Postal web interface.
mail.example1.com {
  reverse_proxy <IP_ADDRESS>:5000
}

# If you use open/click tracking you may need to add additional hosts
# to this file using the format below.
#
click.example2.com {
  reverse_proxy <IP_ADDRESS>:5000 {
    header_up X-Postal-Track-Host "1"
  }
}

What else should I do??

not duplicate discussions into issues


Update Allocations "Teams Export" script so it no longer has the startDate in the file

We use the following instructions for our allocations process, which is approaching at the end of the month. We rely on the "script/exportTeams.sh" to get us the information our teams information. But the current script has extra information. We do not need the StartDate, so would like it removed.
We just need the email and team, at the time the report is run.
Below are the directions we input when we create an issue to pull the Teams data just for reference. Can you please the startDate from the script and let me know if you have any other questions?

Hey Engineering, we need to get the quarterly teams for allocations. If you’re assigned please perform the following steps:

Make sure your Salt and Web-Expensify repos are up to date and you are on the main branch in both repos

Please run script/exportTeams.sh

This will produce a employeeExport.csv file in the Expensidev directory

Attach that file to this GH

You’re done! Thanks!

Because this is time sensitive please do it ASAP. Please let me know if you have any issues or have any questions.

employeeExport.csv

employeeExport-2022-07-01.csv


[feature] Add support for appending a provenance attestation to an existing one

Is your feature request related to a problem? Please describe.
Python is different in that binary wheels sometimes require building artifacts "per Python version" (ie MarkupSafe-2.1.2-cp311-...whl is only for Python 3.11). This means that a package that wants to support new Python versions will need to build new wheels but don't necessarily want to make a brand new release because the source code hasn't changed. This saves users from needlessly incrementing versions/lockfiles.
In order to support this use-case, provenance files should be appendable with new attestations after the initial release and attestation is published. Since the provenance file is .jsonl I think they can be appended directly to the file.
The MarkupSafe project suggested implementing this via the workflow_dispatch GitHub Action trigger to allow building new wheels via cibuildwheel: https://github.com/pallets/markupsafe/blob/main/.github/workflows/publish.yaml
Describe the solution you'd like

Adding functionality for appending the new provenance attestation to an existing file.
Adding an option for performing the above operation to a GitHub release with an attached provenance attestation.

Describe alternatives you've considered

Making a brand new release even if source code hasn't changed.
Rebuilding all artifacts and replacing the provenance attestation in-place for the GitHub Release. This assumes that your build is reproducible.

Additional context
Related: https://github.com/slsa-framework/slsa-verifier/issues/454

Thanks @sethmlarson
From a user's perspective, will they need to have 2 workflows to release? One that works on new tags, and one that is called manually with a tag (workflow_dispatch input)?

@laurentsimon It could be one workflow that triggers on either tag or workflow_dispatch, that's how I initially imagined things since duplicate wheels aren't a problem and won't get published to Gh/PyPI.
If it could be different flows without a problem then that would be handy too!

Thanks. The reason I ask is for consistency of the tag release. In a workflow dispatch, it's manually provided; in a new tag trigger, it's provided by the GH context. This means verification could be different for the user.
Note for the implementation: appending to an existing provenance file incurs a risk of corruption / race condition if multiple workflows are running concurrently

Note for the implementation: appending to an existing provenance file incurs a risk of corruption / race condition if multiple workflows are running concurrently

Note that we kind of have this currently. i.e. if two runs of the same workflow at the same tag are running concurrently

Workflow run 1 uploads artifact to a release
Workflow run 2 uploads (and overwrites) artifact
Workflow run 2 uploads attestation (jsonl) the release
Workflow run 1 uploads (and overwrites) attestation

In this case, verification will fail if the artifacts aren't byte-for-byte the same (as it should).
So I don't think it's a huge deal different from what we have currently.

@sethmlarson did you need to append to an existing attestation or create a new attestation for an existing release?
If the former, the race condition is a problem.
If the latter, I think what @ianlewis works and you'd be in charge of creating an attestation with a name that does not collide with existing assets.
From the description, it looks like you would like both?

Right, I'm assuming what happens is a new release asset is created and a new provenance and attestation are created and we want to add that to an existing release. In that case we can add it to the existing jsonl file somehow or just add a new jsonl (with a name that makes it obvious what jsonl file pertains to which whl).

The original intent was to add the new attestation to an existing release with an existing .jsonl file so if the documentation describes a single multiple.intoto.jsonl to be used for verification users can continue downloading that same file.

SLSA 1.0 now says that one provenance file should be generated per artifact, like filename.intoto.jsonl per filename, rather than multiple.intoto.jsonl. Maybe instead of appending we need a provenance-per-filename setting instead. I can open an issue about that if it makes sense.

I've opened https://github.com/slsa-framework/slsa-github-generator/issues/2116.


iter_size parameter

For now only supports Horovod mode and accumulates gradients in fp32, instead of fp16 (since for that we would need to move MPOptimizer logic into optimize_loss function).

maybe rename "iter_size" to something along the lines of "virtual_batch_scale_factor"?


Unable to install

With the recent code changes seems like a lot of test cases are failing in different modules which eventually causes the install to fail. The installer does a mvn install which is inclusive of tests so if the testcases fail the installation also will fail
Reproduction Steps
Just run sh install.sh
What did you expect to happen?
Build and installation should successfully complete
What actually happened?
Got the following errors in different modules:
Error 1
2021-05-28 22:59:04 SaaSBoostInstall.printResults [INFO]
2021-05-28 22:59:04 SaaSBoostInstall.printResults [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ SystemRestApiClient ---
2021-05-28 22:59:04 SaaSBoostInstall.printResults [INFO] Using 'UTF-8' encoding to copy filtered resources.
2021-05-28 22:59:04 SaaSBoostInstall.printResults [INFO] skip non existing resourceDirectory /Users/harrajag/CodeBase/saas-boost/functions/system-rest-api-client/src/test/resources
2021-05-28 22:59:04 SaaSBoostInstall.printResults [INFO]
2021-05-28 22:59:04 SaaSBoostInstall.printResults [INFO] --- maven-compiler-plugin:3.6.0:testCompile (default-testCompile) @ SystemRestApiClient ---
2021-05-28 22:59:04 SaaSBoostInstall.printResults [INFO] Changes detected - recompiling the module!
2021-05-28 22:59:04 SaaSBoostInstall.printResults [INFO] Compiling 1 source file to /Users/harrajag/CodeBase/saas-boost/functions/system-rest-api-client/target/test-classes
2021-05-28 22:59:04 SaaSBoostInstall.printResults [INFO] -------------------------------------------------------------
2021-05-28 22:59:04 SaaSBoostInstall.printResults [ERROR] COMPILATION ERROR :
2021-05-28 22:59:04 SaaSBoostInstall.printResults [INFO] -------------------------------------------------------------
2021-05-28 22:59:04 SaaSBoostInstall.printResults [ERROR] /Users/harrajag/CodeBase/saas-boost/functions/system-rest-api-client/src/test/java/com/amazon/aws/partners/saasfactory/saasboost/SystemRestApiClientTest.java:[71,48] error: unreported exception IOException; must be caught or declared to be thrown

Error 2
[ERROR] testEventBridgeJson(com.amazon.aws.partners.saasfactory.saasboost.SystemRestApiClientTest)  Time elapsed: 0.111 s  <<< ERROR!
java.util.ServiceConfigurationError: com.fasterxml.jackson.databind.Module: com.fasterxml.jackson.datatype.jsr310.JavaTimeModule Unable to get public no-arg constructor

Error 3
at com.amazon.aws.partners.saasfactory.saasboost.SystemRestApiClientTest.testEventBridgeJson(SystemRestApiClientTest.java:71)
Caused by: java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/ser/std/ToStringSerializerBase

Environment

AWS Region  : us-east-1
AWS SaaS Boost Version : Master branch
Workload OS  (Linux or Windows) : Mac and Windows

This is :bug: Bug Report

I'm not sure we have the whole story here. I can not replicate these build errors. There's probably something else at play here. It may have to do with how your Maven install is or is not caching the availability of the Utils project from the layers directory.

Hi @brtrvn,
Things like SystemRestApiClientTest.java will throw an error as it's expecting a broader exception to be thrown rather than JsonProcessingException. Can you try it out with a fresh checkout from master branch, if you are still not able to recreate this problem I can remove these changes from the pull request so others can be merged. Let me know.
Thanks

Closing the issue


Move cookies away from the VM

currently the page loads the cookies using a BOS component... meaning we have to load the whole VM just for the user click on a button
We need to implement it natively

finished by #1337


Edge: Clarify that WebCrypography does not work in Web Workers or Service Workers

Per this issue here: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/7607496/
Edge does not support Web Crypto in Web Workers or Service Workers. I will submit a PR which adds a "note" to this effect in the Edge support.

With the PR merged, we can close this issue.


Real time communication / Web socket

Myself and @lostpebble have been discussing adding two way communication to Wildcard in #3.

@lostpebble

The only thing that might be confusing is having both of those things on the endpoints namespace.

Ok yea you're right. Maybe we could rename endpoints to server. And then add a new object called clients.

From the client perspective, it makes sense to have server.aFunctionDefinedInTheServer();. Maybe more than server.aFunctionDefinedInTheServer();.

@brillout yea I like that naming better - its more deliberate and readable. Could maybe do with a little extra to be more obvious too (such as serverEndpoints and clientEndpoints), but I know you would prefer to keep it as short as possible.

:+1:

I have some ideas about this. I believe we can pull this off in a neat way. If anyone is interested in this, please ping me here.

Hi @brillout, did you continue with web socket support ?  I am interested to try it out. Thx!

Hi @johnson544 :-)
No one needed bi-directional communication so far but I'd be up to implement that!
What's your use case?

Hi @brillout, I played around with a Trello clone in GraphQL using subscriptions. I feel it was way too much boilerplate for a simple CRUD actions and reordering of cards.
I feel something like graphql's  @defer and @stream option would be really cool.
Also I can think of a realtime endpoint that automatically watches for changes and appends, updates, or removes elements based on conditions. The condition handlers could be setup same as ORM's handle relations in its models.
I am also based in Germany. If you want to chat more about it we can schedule a call :-)
a side node: What I really like in graphql is fetching certain fields from a type. I feel a helper function that deals with pagination and over-fetching would be also very cool. something like https://github.com/spatie/laravel-query-builder

Hallo @johnson544,
(cc @lostpebble)
Okay so my idea for realtime bi-directional communication is to extend Wildcard to allow "passing" callback functions as arguments.
// Browser

const {endpoints} = require('@wildcard-api/client');

const {_connection} = endpoints.onHello(message => {
  console.log('Hello '+message+' !');
});

_connection.onClose(() => {
  // The connection to the server has been closed (or lost).
});

_connection.close();
assert(_connection.isClosed===true);

// Node.js server

const {endpoints} = require('@wildcard-api/server');

endpoints.onHello = async function(callback) {
  callback('@johnson544');
  await sleep(1);
  callback('@lostpebble');
};

function sleep(seconds) {
  return new Promise(resolve => setTimeout(resolve, seconds*1000));
}

The browser then prints:
'Hello @johnson544 !'
// And after 1 second:
'Hello @lostpebble !'

I call this feature callback arguments.
With callback arguments, your Trello clone would do something like this:
// Browser

const {endpoints} = require('@wildcard-api/client');

const cardsStore = {};

endpoints.onTrelloCardsChange(function(cards){
  cards.forEach(card => {
    cardsStore[card.id] = card;
  });

  renderWithReact(cardsStore);
});

// Node.js server

const {endpoints} = require('@wildcard-api/server');

endpoints.onTrelloCardsChange = function(callback) {
  rethinkdb
  .table('cards')
  // only return cards that the user has permission to read
  .filter({authorizedUserIds: this.user.id})
  .changes()
  .run(function(cards, databaseConnection) {
    // Wildcard sets `callback` to `null` when the browser connection is closed
    if( callback===null ) {
      databaseConnection.close();
    } else {
      // The `callback` function defined in the browser is called
      // every time there is a change in the cards list.
      callback(cards);
    }
  });
};

@defer & @stream
Today, something like @defer can be done with Wildcard by doing:
// Browser

const {endpoints} = require('@wildcard-api/client');

const highPrioData = await endpoints.getHighPrioData();

// We defer heavy and non-important data

const lowPrioData = await endpoints.getLowPrioData();

With callback arguments you'd be able to implement streaming and further defer optimizations:
// Browser

const {endpoints} = require('@wildcard-api/client');

const newsItemsStore = {};

// Streaming:
// (Can also be used to defer)

endpoints.getNewsItems(function(newsItems){
  newsItems.forEach(item => {
    newsItemsStore[item.id] = item;
  });

  renderWithReact(newsItemsStore);
});

The goal with callback arguments is to provide bi-directional communication in a simple, powerful, and JavaScript-idiomatic way.
What do you think?
@lostpebble: I'm curious, what do you think?

I am also based in Germany. If you want to chat more about it we can schedule a call :-)

Gerne :-) Write me on Twitter (https://twitter.com/brillout) or email me<EMAIL_ADDRESS>and I'll give you my WhatsApp number.

a side node: What I really like in graphql is fetching certain fields from a type. I feel a helper function that deals with pagination and over-fetching would be also very cool. something like https://github.com/spatie/laravel-query-builder

The idea with Wildcard is to directly use SQL/ORM queries; with Wildcard, you can simply use the pagination tools of your database.
There is no over-fetching problem with Wildcard as you can write your enpdoint functions to return only and exactly what your frontend needs. For example:
// Node.js server

const {endpoints} = require('@wildcard-api/server');

const Todo = require('./path/to/your/data/model/Todo');

// Get all (and only the needed) data for the landing page.
endpoints.getLandingPageData = async function() {
  const todos = await (
    Todo
    .select(['id', 'text'])
    .find({userId: this.user.id, completed: false})
  );

  return {
    user: {
      name: this.user.name,
    },
    todos,
  };
};

And please feel free to be very critical. I'm more than happy to hear very negative feedback and completely different approaches.
How would you design bi-directional communication with Wildcard?

cc @johnson544, @lostpebble
Okay so my idea for realtime bi-directional communication is to extend Wildcard to allow "passing" callback functions as arguments.
// Browser

const {endpoints, connection} = require('@wildcard-api/client');

endpoints.onHello(callback);

// The callback defined in the browser is "called" by our Node.js server.
function callback(message) {
  console.log('Hello '+message+' !');
}

connection.onClose(() => {
  // The connection to the server has been closed (or lost).
});

connection.close();
assert(connection.isClosed===true);

// Node.js server

const {endpoints} = require('@wildcard-api/server');

endpoints.onHello = async function(callback) {
  // We call the callback defined in the browser from within Node.js
  callback('@johnson544');
  await sleep(1);
  callback('@lostpebble');
};

function sleep(seconds) {
  return new Promise(resolve => setTimeout(resolve, seconds*1000));
}

The browser then prints:
'Hello @johnson544 !'
// And after 1 second:
'Hello @lostpebble !'

I call this feature callback arguments.
With callback arguments, your Trello clone could do something like this:
// Browser

const {endpoints} = require('@wildcard-api/client');

const cardsStore = {};

endpoints.onTrelloCardsChange(function(cards) {
  cards.forEach(card => {
    cardsStore[card.id] = card;
  });

  renderWithReact(cardsStore);
});

// Node.js server

const {endpoints} = require('@wildcard-api/server');

endpoints.onTrelloCardsChange = function(callback) {
  // Real-time Database with e.g. RethinkDB
  rethinkdb
  .table('cards')
  // only return cards that the user has permission to read
  .filter({authorizedUserIds: this.user.id})
  // Listen for changes
  .changes()
  .run(function(cards, databaseConnection) {
    // Wildcard sets `callback.isClosed` to `true`
    // when the browser connection is closed/lost
    if( callback.isClosed ) {
      databaseConnection.close();
    } else {
      // The `callback` function defined in the browser is called
      // every time there is a change in the cards list.
      callback(cards);
    }
  });
};

Cool, I can see callbacks perfectly working for defer. Really like it!
But how would it work with web sockets like socket.io ? So that new cards are broadcasted to all sessions?
For my Trello example I created below subscription for creating cards:
  Mutation: {
    createCard: authenticated(async (_, { input }, ctx) => {
      const card = await ctx.db(TABLE).create(input)
      ctx.pubsub.publish("cartCreated", { cartCreated: card })
      return card
    })
  },
  Subscription: {
    cartCreated: {
      subscribe: withFilter(
        (_, __, { pubsub }) => pubsub.asyncIterator("cartCreated"),
        async (payload, variables) => variables.boardId == payload.cartCreated.boardId
      )
    }
  }
}

Looks pretty cool so far @brillout . Sorry, I've been busy lately so haven't had time to really dig into it and think about it properly.
Just one thing that stands out to me at the moment is that it seems like this API is happening on the same objects as the current REST API stuff?
const {endpoints} = require('@wildcard-api/client');

My main concern would be this clashing with the current API, as currently it works completely differently (no room for callback as shown here, because we just send function arguments directly). So I would hope that this is on some kind of different wildcard endpoint altogether so its easier to separate the concepts.
Otherwise, I'll try take a closer look at everything soon and let you know my thoughts :)

@johnson544 I've given the callback arguments idea more thoughts and unfortunately the usability of callback arguments becomes complex around edge cases.
@lostpebble Yes I like the minimalism of the idea :-) but unfortunately the UX is less than ideal around edge cases. Thanks for chiming in and no worries about not replying :-)
I'll give real communication with Wildcard more thoughts and write down my conclusions here. Stay tuned :-).

Got a new idea, I'll let you know about it today / the next couple of days.

(I'm not forgetting about this:))

The new design is almost complete, I only have to flesh out couple of details.

I am excited about it!!
I just replaced all graphql subscriptions with socket.io because it annoyed me too much. I feel they haven't really thought them through.
Whatever you come up with,  please also consider connecting / disconnecting listeners for channels on the server. It's so helpful to clean up sessions:
io.on('connection', function(socket){
    console.log('a user connected: ' + socket.id);
    socket.on('disconnect', function(){
        console.log( socket.name + ' has disconnected from the chat.' + socket.id);
    });
    socket.on('join', function (name) {
        socket.name = name;
        console.log(socket.name + ' joined the chat.');
    });
});

Designing error handling to be simple for server->client communication turns out to be difficult.
But I'm making progress :-).
Stay tuned! :)

please also consider connecting / disconnecting listeners

I am ;-)

I've lowered the prio of this. But I'm still very much interested in implement this. If someone reading this needs it for a production app then let me know and I'll implement this.

Closing in favor of https://github.com/reframejs/wildcard-api/issues/61.
It's a design based on the callbacks idea described here, but with the addition of two _onClose lifecycle functions which should allow for simple lifecycle management.


Bug: Persist the App Status, Project, and Environment settings when the user changes tabs.

📜 Description
Issue: When switching from "helm" to "devtronApp," the environment filter does not persist, as shown in the screenshot below and it is same for Project and App Status filter also
👟 Reproduction steps
Initial Stage: When I apply the environment filter, the filter settings should be correctly reflected and applied to the current view.

Issue: When switching from "helm" to "devtronApp," the environment filter does not persist, as shown in the screenshot below and it is same for Project and App Status filter also

👍 Expected behavior
Expected Behavior: The environment filter and other filter should persist and be applied consistently across all sections and tabs.
👎 Actual Behavior
Actual Behavior: The environment filter and other filter does not persist and be applied consistently across all sections and tabs.
☸ Kubernetes version
EKS 1.28v
Cloud provider

         AZURE

🌍 Browser
Chrome
🧱 Your Environment
No response
✅ Proposed Solution
No response
👀 Have you spent some time to check if this issue has been raised before?

[X] I checked and didn't find any similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

Fixed with attached PR


test: update target commits of repos for e2e tests

User description
Main changes

After the corresponding improvements in smart-contract tests new commit hashes have been  provided for cloning the repositories that are involved in the e2e tests.
Patches for those repositories have been removed as they are no longer needed.

PR Type
Enhancement, Tests

Description

Updated commit hashes for several repositories in the contracts-clone.sh script to use the latest versions for e2e tests.
Removed all patch files for smart contract repositories involved in e2e tests, as they are no longer needed due to improvements in the smart contract tests.
The changes aim to streamline the e2e testing process by using up-to-date repository versions and eliminating the need for patches.

Changes walkthrough 📝
Relevant filesConfiguration changes

contracts-clone.shUpdate repository commit hashes for e2e tests

e2e/cloudwalk-contracts/contracts-clone.sh
Updated commit hashes for several repositories: brlc-token, brlc-yield-streamer, brlc-periphery, brlc-multisig, brlc-pix-cashier-v4, and brlc-periphery-v2

+6/-6

Tests

brlc-multisig.patchRemove brlc-multisig patch file

e2e/cloudwalk-contracts/patches/brlc-multisig.patch

Removed patch file completely

+0/-22

brlc-periphery-v2.patchRemove brlc-periphery-v2 patch file

e2e/cloudwalk-contracts/patches/brlc-periphery-v2.patch

Removed patch file completely

+0/-13

brlc-periphery.patchRemove brlc-periphery patch file

e2e/cloudwalk-contracts/patches/brlc-periphery.patch

Removed patch file completely

+0/-13

brlc-token.patchRemove brlc-token patch file

e2e/cloudwalk-contracts/patches/brlc-token.patch

Removed patch file completely

+0/-40

brlc-yield-streamer.patchRemove brlc-yield-streamer patch file

e2e/cloudwalk-contracts/patches/brlc-yield-streamer.patch

Removed patch file completely

+0/-135

💡 PR-Agent usage: Comment /help "your question" on any pull request to receive relevant information

Thank you very much, @EvgeniiZaitsevCW!
Can you also edit the name of the file test for pixv4? I believe it is now called CashierSharded or something similar.
https://github.com/cloudwalk/stratus/blob/fb7d2b6f834146e50d4c70a5d12f4256f4bf6c37/e2e/cloudwalk-contracts/contracts-test.sh#L149-L151

Final benchmark:
RPS Stats: Max: 942.00, Min: 769.00, Avg: 837.51, StdDev: 20.99
TPS Stats: Max: 942.00, Min: 768.00, Avg: 837.18, StdDev: 20.87
Plot: View Plot