[Augmentation] Use EXTRACT to perform species and infectiousAgent NER

The PubTator raw text annotation API would likely provide better results than the EXTRACT API, however, the PubTator raw text annotation API is subject to frequent outages which impacts our ability to move things forward in a timely fashion.
Rather than attempt to push names and descriptions of ~2.8 million or so records through the PubTator raw text annotation endpoint to identify species and health conditions, we will use the EXTRACT API from the Jensen lab in conjunction with Text2Term as low scoring matches from the latter will be helpful for reducing errors introduced by the former.
Pulling data from EXTRACT:
https://github.com/gtsueng/nde_misc/blob/main/EXTRACT_check/JensenExtractTest.ipynb
Inspecting the quality of the results:
https://github.com/gtsueng/nde_misc/blob/main/text2term_test/Text2Term Test.ipynb
Heuristics for improving accuracy based on the results of the EXTRACT text mapping

EXTRACT has high sensitivity but low precision for extracting terms with less than 5 characters due to the abundance of abbreviations
For 5 letter terms

At a score of >0.95, the number of true positives is 91/127
Of those 91 true positive terms, about 41 are terms which are part of a taxonomic phrase (i.e. - either only the genus part of a taxonomy or a species part

This means that only about 41 of these terms would be missed with the number of letters threshhold for EXTRACT were >5, the remaining true positives would likely be captured with the whole term

Text2Term is also weaker at mapping terms formatted as g. species, as it can score higher mapping to the correct species term but incorrect genus. To address this:

Identify such terms using regex (r"\b[A-Z].\s[^\s]+\b")

For these terms, only take the result if the genus letter matches the first letter of the mapped result (i.e. split on '.', take first)
There will be plenty of exceptions, but this should address the majority of problematic matches

@hartwickma, @rshabman, @lisa-mml, @sudvenk
We are in the process of updating the Staging builds with the EXTRACT-augmented metadata for the species, infectiousAgent, and healthCondition fields. We are starting with the smaller repositories and moving up towards the larger repositories.
So far, the repositories with EXTRACT-augmented fields in staging include:

qiita (example: unaugmented | augmented)
immport (example: unaugmented | augmented)
reframedb (example: unaugmented | augmented)
vdj server (example: unaugmented | augmented)
dryad (example: unaugmented | augmented)

The Ask: Please let us know if the augmented fields for these repositories can be pushed to production. If you would prefer to wait for us to augment all the repositories on Staging and then seek approval to move to Production, we can do that as well -- just let us know.

Hi @gtsueng, please clarify if there is an issue to consider that would warrant not moving to production at this time. If there is no concern, please move to production.

Thanks @hartwickma, we will move these to production along with the topicCategories

Note there was a slight delay in this as the record IDs had changed to be more url-safe after the pipeline was run. The record-IDs stored in the EXTRACT database are now matched and the process of adding the augmented metadata to Production can begin.

I am marking this issue as pending close out and will close it after a week, if there are no additional modifications to be made to the EXTRACT pipeline.


Injecting angular

I have succesfully configured my app with $stateProvider routing for loading controllers on each route state.
Now I want to remove my app dependency from main module and inject them in the same way I do for controllers, is this possible??
an example of my working route:
    $stateProvider.state("users", {
        url: "/admin/users",
        templateUrl: '/admin/users',
        resolve: {
            loadMyCtrl: ['$ocLazyLoad', function ($ocLazyLoad) {
                return $ocLazyLoad.load({
                    files: ['/app/controllers/admin/usersController.js', '/app/services/admin/usersService.js']
                });
            }]
        }
    });

I use the textAngular component succesfully if I define it as dependency of my module including scripts in main template:
var app = angular.module('OrsoApp', ['ui.router', 'ngResource', 'ui.bootstrap', 'toaster', 'textAngular',
    'oc.lazyLoad']);

But if I remove it from there and try to load it into loadMyCtrl, I have an 'Unknown provider: taRegisterToolProvider' error.
best regards

Angular will register the modules defined at bootstrap as dependencies of your main module.
If you include the file with the module textAngular in your page when you load your app, but you don't define it as a dependency for your app, then Angular will never register it.
ocLazyLoad will only register modules if you:

load them with the load function
call inject explicitly with the module name

Otherwise it will try to get the module from Angular, and in this case Angular never registered textAngular since it was not required by your app.
I could make this work, but right now it's not by default.
In the mean time, you can call inject like this (assuming you're using ocLazyLoad 1.x):
    $stateProvider.state("users", {
        url: "/admin/users",
        templateUrl: '/admin/users',
        resolve: {
            loadTextAngular: ['$ocLazyLoad', function ($ocLazyLoad) {
                return $ocLazyLoad.inject('textAngular');
            }],
            loadMyCtrl: ['$ocLazyLoad', 'loadTextAngular', function ($ocLazyLoad, loadTextAngular) {
                return $ocLazyLoad.load({
                    files: ['/app/controllers/admin/usersController.js', '/app/services/admin/usersService.js']
                });
            }]
        }
    });

Thanks ocombe, I understand.
But if I want to use the inject method as you suggest, how can I setup the textAngular module?
if I define it into $ocLazyLoadProvider.config as
    $ocLazyLoadProvider.config({
        debug: true,
        modules: [{
            name: 'textAngular',
            files: ['/content/plugins/textangular/textAngular.css', '/content/plugins/textangular/textAngular-rangy.min.js', '/content/plugins/textangular/textAngular-sanitize.min.js', '/content/plugins/textangular/textAngular.min.js']
        }]
    });

I have this error: 'The module ""textAngular"" that you are trying to load does not exist. [$injector:nomod] Module 'textAngular' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.'
thanks for support!

if you use inject it only works if the module is already available. You could use load if you did setup your module in the config:
    $stateProvider.state("users", {
        url: "/admin/users",
        templateUrl: '/admin/users',
        resolve: {
            loadTextAngular: ['$ocLazyLoad', function ($ocLazyLoad) {
                return $ocLazyLoad.load('textAngular');
            }],
            loadMyCtrl: ['$ocLazyLoad', 'loadTextAngular', function ($ocLazyLoad, loadTextAngular) {
                return $ocLazyLoad.load({
                    files: ['/app/controllers/admin/usersController.js', '/app/services/admin/usersService.js']
                });
            }]
        }
    });

but if I use load method I have an 'Unknown provider: taRegisterToolProvider <- taRegisterTool' error.

I had exactly the same problem recently with textAngular. I just gave up and I am including TA in the main scripts bundle for the time being.
I think the problem might be related to separate Angular modules used in textAngular.js and textAngularSetup.js. Just haven't had time to investigate it further.
/sub

If you load multiple files that depend on each other, you might have to use the parameter "serie: true" to make sure that they are loaded in the order that you define (load the file that define the module first, and then the files that use that module).
Or you could concatenate the files in one so that you'd only have to load one file, and everything should work with no problem.
If that's not the reason, could you make me a plunkr with the issue so that I can take a better look at it ?

I have tried with the serie:true flag, and defining textAngular script as described in the related doc, but I have an 'Unknown Provider' error.
I have setup a plunker, I use angular 1.3.14, ui-router 0.2.13 and TA 1.3.0.

Thanks, I'll take a look at this but not until tomorrow night (I'm really busy today). It should be easy to fix with the plunkr

Ok, here is the fixed version: http://plnkr.co/edit/ZlzUEEL0HArGac3Fjcig?p=preview
2 problems in your plunkr:

don't reference files by "/url" but just "url" (relative path) in plunkr
you just needed to make sure that the first resolve (the lib textAngular) was resolved before the controller, to do that you define the first resolve as a dependency for the second resolve. It was in the code that I gave you 2 days ago but you probably missed it because I didn't explained :)

thanks ocombe, now I understand the right use of dependency in resolver!
but that something stange in your plnkr: in the first call of preview in console log an error after textAngular load, then go straight to controller load and it works, but on page refresh it hangs on first provider error.
in my application this route is not the 'otherwise' one, and it stuck always on provider error. why?
best regards

Ok I found the issue:
in the file textAngular.js, they bundle 2 modules: textAngularSetup & textAngular
The module textAngularSetup is defined first in the file, and uses a constant named taRegisterTool. This constant is defined in the module textAngular, BUT the module textAngularSetup does not declare the other module textAngular as a dependency.
So, the error is in textAngular, and it is clearly a bug that they should fix.

Thank you ocombe for this analyse. We can merge textAngularSetup & textAngular for resolve the problem :
Add
textAngular.constant('taRegisterTool', registerTextAngularTool);
textAngular.value('taOptions',  {
...
Remove textAngularSetup form :
var textAngular = angular.module("textAngular", ['ngSanitize',  'textAngular.factories', 'textAngular.DOM', 'textAngular.validators', 'textAngular.taBind']);


⚠ Bofrost.lu has degraded performance

In c21de49, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1509 ms

Resolved: Bofrost.lu performance has improved in 901e55b after 20 minutes.


[Removal]: Blunt Cedar Caterpillar

Hotspot Name
Blunt Cedar Caterpillar
Hotspot b58 Address
112J2Bc563K5VcVhU7Ebj2tFF3beTaLZoKdCLpznALTDZmfKcu2x
Discord Handle
Marco-polo#0495
Hotspot Manufacturer
Bobcat
Removal Reason
shared wallet, emrit type, all hotspots in denylist
Modifications
No
Extra forwarders
No
Extra antennas
Yes
Additional Information
External 6 dbi omni, 12m telecom tower, 40m building, 60m hillsite
All telecom towers with good earning did end up the denylist.
So i have todo this 50+ times ?
More info via PM, discord.
Regards
A 500+ telecom tower owner.

We have taken into account this removal request in the next iteration of the denylist. It may take some time before it's processed. This is an automated comment due to the volume of addition and removal requests. A future tool is in the works to provide more insight into the analysis approach made by the Helium team and community members that maintain this list.


Task5: create kafka event source

A build or simulation of a Kafka event source for the text corpus

completed


Terrain.load can't be used from server side nodejs simulation

Describe the bug
Terrain.load is dependent on the DOM
const img = document.createElement("img");
so it won't work when running a server side model without a web browser.
To Reproduce
Steps to reproduce the behavior:

run the model headless in a nodejs app
create a terrain and attempt to load a local image using the path, as described in function comments
get error as document object not found

Expected behavior
need example on how to use this from nodjs rather than browser.  I'm using a terrain image to model a complex environment for an ABM
Desktop (please complete the following information):
node v14.15.1
flocc v0.15.19
great project! thanks for all the work on this.

workaround: when the model is server side, use  https://github.com/lukeapage/pngjs to load the PNG as data and copy the data to the terrain in the terrain init
var fs = require('fs'),
PNG = require('pngjs').PNG;

then the main.  call back is necessary as the png io needs to finish before initializing the model
// Loads map resource from object in serial event async nodejs style
fs.createReadStream(model_params.map)
  .pipe(new PNG({filterType: 4}))
  .on("parsed", function () {
      //save the terrain image data into globalThis scope
      globalThis.terrainImage = this;

      // now start the simulation
      model.setup();
      run();
  });

then in the setup
  // load the terrain image to the Terrain object
  // works differently for browser vs nodejs
  if(globalThis.isBrowser) {
    modelStuff.terrain.load(model_params.map);
  } else {
    modelStuff.terrain.init((x,y) => {
      var idx = ((width * y) + x) << 2;
      var rv = globalThis.terrainImage.data[idx];
      var gv = globalThis.terrainImage.data[idx + 1];
      var bv = globalThis.terrainImage.data[idx + 2];
      modelStuff.terrain.set(x,y,{r:rv,g:gv,b:bv,a:255});
    });
  }

Hi @derickson pardon my slow reply. While Flocc does attempt to be equally useful in both server and browser contexts, the visualization components really are more browser-focused. It seems like your workaround using pngjs works nicely! One goal of Flocc is to be dependency-free, so I'd want to do a little more work on the Node side to remove that as a dependency, but it seems like that approach would work well.

no worries on slow reply, just trying to be a good open source community member.  we are in the middle our our hackathon powered by flocc right now.  really appreciate you making this project available.


Reverted workaround in spotless.gradle.

Resolves #681

I combined all the lines. Should be up to date now and ready for merge :)


[Feature Request] Add Bloom to the Auto Policy

Add Bloom to the Auto Policy
It would be great to see the recent bloom model from bigscience can be added to the auto policy. The Bloom model is another auto-regressive large language model thus the policy might be inherited from existing policies.
Expected behavior
from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained("bigscience/bloom-2b5")
tokenizer = AutoTokenizer.from_pretrained("bigscience/bloom-2b5")

from parallelformers import parallelize
parallelize(model, num_gpus=2, fp16=True, verbose='detail')

inputs = tokenizer("Parallelformers is", return_tensors="pt")

outputs = model.generate(
    **inputs,
    num_beams=5,
    no_repeat_ngram_size=4,
    max_length=15,
)

print(f"Output: {tokenizer.batch_decode(outputs)[0]}")

+1!!!

This is greate.


Bug: v4 Folder note breaking for non-MD files in directories

Describe the bug
When using BC folder notes, breadcrumb graph generation sometimes stalls out, likely due to processing files that either don't exist or aren't md files.
To Reproduce
Steps to reproduce the behavior:

Add a non md file to a folder.
Include BC-folder-note-field: down for a note in that folder.
Rebuild graph.
See error in console.

Expected behavior
Folder notes should work on all the markdown files in the folder, regardless of other folders or files present.
Screenshots

Desktop (please complete the following information):

OS: Mac 13.4.1
Version: Breadcrumbs 4.0.68-beta

Thanks for the detailed issue! Makes sense, should be simple to fix


Sampler on Auto webui backend

Currently can't pick sampler for auto webui backend, please add a support to this thank you

Auto WebUI backend hasn't gotten enough love, been focused on Comfy.
Added an auto-webui Sampler param.
Long term plan is to have a single generic sampler param that automatically translates name format to be compatible with any backend (that'll require some planning on how to handle cases where some backends don't have some samplers though).


Add Felt-like CI workflows.

https://github.com/felt/ultimate-elixir-ci/
The above Felt resource has some great recommendations for splitting the CI work of a modern Elixir app across multiple workflows to help speed up feedback. We should do this too.
Other Related Links
https://elixirforum.com/t/best-ci-cd-for-phoenix-framework/50676
https://fly.io/phoenix-files/github-actions-for-elixir-ci/
https://semaphoreci.com/blog/elixir-code-security
https://nathanwillson.com/blog/posts/2022-11-11-partitioned_tests/

It would be nice if a workflow was canceled if a new commit on the branch is push while the previous commit is still being verified.

Closing as most Felt CI things we added with PR: #162


[DOC] Building modules

Documentation issue
I've recently encountered issues building the CORE module, which I am modifying in a medusaJS store I will be launching.

user@instance:~/refinedev/store/node_modules/@refinedev/core$ pnpm build --scope @refinedev/core --scope core

><EMAIL_ADDRESS>build /home/ubuntu/refinedev/store/node_modules/@refinedev/core
> tsup && node ../shared/generate-declarations.js "--scope" "@refinedev/core" "--scope" "core"

No input files, try "tsup <your-file>" instead
 ELIFECYCLE  Command failed with exit code 1.

it's constantly giving me this error, and I do not have this shared folder, neither the generate-declarations.js file thing. I didn't find in the doc's where they are, or how to generate them.
The issue is that I simply need to edit the banner you have on top.
Describe the thing to improve
Find an EASY way to edit the refine banner on top.
Describe the solution (optional)
Easy way to edit some simple html/css, just like in the good ol' PHP scriptkiddie days

Hey @spacewalkingninja I'm not sure why you are trying to build refine inside node modules. If you want to remove the banned, you can search for <GitHubBanner /> and remove it.
https://refine.dev/docs/guides-concepts/faq/#how-can-i-remove-github-banner


Possible data loss following node restart

Let me preface this with: my test could be wrong. I may be misunderstanding Disque's persistence guarantees, or misusing the API, or maybe the test code is wrong somehow... but I think I've ruled out the most obvious mistakes at this point, so I'd like y'all's feedback!
Config file: https://github.com/aphyr/jepsen/blob/efa09187d710e6937bf4b494bc114b9093c42d93/disque/resources/disque.conf
Test code: https://github.com/aphyr/jepsen/blob/9a164a18aec97a56012cb1464a6438bcec327634/disque/src/jepsen/disque.clj
This test runs on a five-node disque cluster: inter-node latency is effectively zero, and the network is perfectly reliable. There are no partitions in this test. I've lowered the cluster node timeout to 100ms to speed up cluster convergence.
In this test, five clients perform a mix of enqueues and dequeues (GETJOB followed by ACKJOB) with unique integers as payloads. Clients use a 100-millisecond timeout for all operations, a retry interval of 1 second, and replication factor 3. They perform a random mixture of enqueues and dequeues for 30 seconds, while we restart a single node at a time--with 10 seconds of downtime and 10 seconds of uptime in between. After those failures, we bring every node up, give them 5 seconds to heal and proceed with normal operations, then drain the queues by issuing dequeues on every node until no more jobs come.
I've enabled AOF and set appendfsync to everysec; regardless, this test only kills two nodes, so a replication factor of three should allow every job to remain resident in RAM.
This test appears to lose enqueued jobs.
{:valid? false,
 :queue {:valid? true, :final-queue {:pending #{13 25 35 19}}},
 :total-queue
 {:valid? false,
  :lost #{13 19},
  :unexpected #{},
  :recovered #{},
  :ok-frac 35/37,
  :unexpected-frac 0,
  :lost-frac 1/37,
  :recovered-frac 0},
 :latency {:valid? true, :file "report//latency.png"}}

As you can see in the  full history, job 13 is successfully enqueued but never appears in any dequeue.

The latency plot shows a few enqueue/dequeue crashes during the first node's downtime, and a couple after the second, but since at least three nodes were online continuously through this full test, and all clocks are synchronized, and the retry interval is only 100ms, I expect that every enqueued job should arrive.
You can replicate this by cloning Jepsen 9a164a18aec97a56012cb1464a6438bcec327634 and running lein test in the disque directory.
Any idea what might be going on here?

Hello @aphyr. Let me preface this: thank you a lot for testing Disque. It is the best thing we can get at this stage, since there is time to fix stuff. We can catch logical and implementation errors at this point where they do no harm to actual users, in order to ship something more battle tested than the usual first release.
That said, before to dig further, reading the test code I believe you may be facing the lame defaults that I never actually fixed, and I would like to have some hint from you about this. So here are our defaults:

Replication default is 3 nodes if there are 3 or more nodes. However if there are 2 or 1 nodes, it will try to replicate to all the nodes. (this default should be sane).
TTL is arbitrarily fixed to 1 day if not specified. Probably NOT a sane default. Better to be more conservative?
And finally, the RETRY time which may be the cause of this bug, is set by default if not specified to TTL/10. It means that failed deliveries (and restarting a node is equivalent to failed deliveries, so the messages will be enqueued again later) will be retried again in 2.4 hours by default. So the test needs to run forever... in order for the eventual property of message successful delivery to materialize.

I think those are silly default but I want to get some feedback from messaging system users about what are sane ones. Probably the RETRY value should not be bound to TTL but just some fixed smaller time, and TTL should be ways larger, to have a safer default.
If this is not the case and actually your code already uses a small retry time, I'll investigate further the next possible cause. Otherwise you may try a RETRY small enough for Jepsen to wait at least N times the retry time set before to sense a message as lost forever.
Thanks!
Moreover, there are (probably unrelated issues to this problem you signaled) bugs that are fixed in pending PRs, I'll fix them in the next hours so that maybe in the next test you can already use less buggy code.

Hi again @aphyr, in the previous hours I merged the fix for an unrelated bug, and added a new test in unit 07 which is very similar to the test you reported in this issue. The test is introduced by commit f00dd07 but the gist of it is:

Add a job with replication 3.
Mass restart all the nodes (with AOF one-sec enabled).
Check that the job is still delivered.

Note that even if AOF has a weak fsync policy, in the test only the processes are crashed, not the whole computer, so the AOF must be able to guarantee that all the data is there, since it only issues the write on the file before sending a positive reply to the client. However for semantical simplicity we will publicize that AOF retains all data only when fsync is set to always, and there are otherwise windows for data loss. But for the test I prefer to use everysec in order to test that writes are always performed before re-entering the event loop and sending replies to clients (that are otherwise just kept in the buffers).

Replication default is 3 nodes if there are 3 or more nodes. However if there are 2 or 1 nodes, it will try to replicate to all the nodes. (this default should be sane).

I agree--probably best to return an error if someone requests a replication factor greater than the cluster size.

TTL is arbitrarily fixed to 1 day if not specified. Probably NOT a sane default. Better to be more conservative?

Yeah, I'd probably default to infinite TTL. I chose a finite one for Riemann and have been kinda regretting it ever since.

And finally, the RETRY time which may be the cause of this bug, is set by default if not specified to TTL/10. It means that failed deliveries (and restarting a node is equivalent to failed deliveries, so the messages will be enqueued again later) will be retried again in 2.4 hours by default. So the test needs to run forever... in order for the eventual property of message successful delivery to materialize.

So I set RETRY to 1 second: https://github.com/aphyr/jepsen/blob/master/disque/src/jepsen/disque.clj#L256, but the Jedisque client could be broken. I'll pull out wireshark and look at the actual packets when I get home tonight.

Thanks for the reply, given that you already set it to 1 and the obvious issue is probably ruled out, I'll try to reproduce with Jepsen so that I can help in trying to figure out where is the bug. For sure it is in some place, and given that Disque is the biggest amount of code it may be in the server itself very likely. I'll post new updates tonight (my TZ) once I run the test.

While trying to setup Jepsen and reproduce, replying to your prev message in a better way:

I agree--probably best to return an error if someone requests a replication factor greater than the cluster size.

Yes this is what happens. Actually it is stricter than that: even if failure detection in this kind of system is not strictly needed, Disque nodes perform failure detection in order to make more interesting choices during synchronous replication (if a node is not available, don't try to replicate to it, in order to minimize latency). So when an ADDJOB command is received with a given replication level, if there are apparently less nodes sensed as available compared to the requested replication level, an error is issued.

Yeah, I'd probably default to infinite TTL. I chose a finite one for Riemann and have been kinda regretting it ever since.

Yes... looks like a good idea. There is no concept of infinity in Disque but at least I can get as far as a 32bit time_t allows me to get, which is, year 2036.
Thanks for the feedbacks.

Hey @aphyr, thanks to the Docker support I was able to get Jepsen up and running on a Linux box in a small amount of time, however the Disque test starts correctly but fails as soon as it enters the drain stage with [https://gist.github.com/antirez/7c7d39cbec69cea1e56a](this stack trace).
I tried to add a few info calls in order to debug the issue, and apparently for some reason dequeue! which usually gets as op argument just a map, during the failure gets instead a list of maps, so assoc fails with an error because of type mismatch. Please take this with a grain of salt since my Clojure is fragile, just reminiscences of my past Scheme experiences.
So I was not able to investigate further since I can't fix this problem. Any help would be appreciated, thanks.

UPDATE for readers from the future, about the stack trace when trying to run the test: we solved this via Twitter. I needed to upgrade the Jepsen core since the Disque test relayed on changes on the Jepsen core. So when installing Jepsen and upgrading it, it is a good idea to run:
cd jepsen/jepsen; lein install

So now I can finally run the Jepsen test and I get the same failure :tada:. Tonight I'll investigate the cause of this issue. Updates ASAP.

Hello @aphyr, finally some news. I found a few things with the test, however even after fixing them, I can't get a clean run for some reason.
So the problems with the test are:

Retry is set to 1000, but this is supposed to be in seconds, so it's 1000 seconds. Just set it to 1.
The drain stage assumes that as soon as GETJOB returns NULL, the queue is empty, this is not the case since the queue may be empty at T1 but the job could be active, and scheduled again for delivery at T2. The fix for this is just to wait at least RETRY*SOME_CONSTANT during drain.

However issue 2 happens rarely in practice (but I verified that some failed runs are actually up to that) after fixing 1.
But, even after fixing that, I still get error reports like this:
:valid? false,
 :queue {:valid? false, :error "can't dequeue 16"},
 :total-queue
 {:valid? false,
  :lost #{},
  :unexpected #{69 69 75 32 22 22 66 82 78 16 16 18 37},
  :recovered #{},
  :ok-frac 120/127,
  :unexpected-frac 13/127,
  :lost-frac 0,
  :recovered-frac 0},
 :latency {:valid? true, :file "report//latency.png"}}

Even if in the history I see things like this:
 {:value 16, :time<PHONE_NUMBER>9, :process 4, :type :ok, :f :dequeue}

However the jobs are no longer listed in the lost list, but in the unexpected which I'm not sure what it means. Maybe that a successive delivery of the same job happened?
However I hope that the above provides some clue for you, in order to better understand what happens. I appreciate the help you provided during this days, I used extensively the tips you provided me to Twitter, and the ability to put a "wait any key" pause into the test code was very useful.

Oh, right! Thanks for catching that milliseconds thing. I'll see about introducing a longer waiting period. The unexpected list is just telling us about duplicate deliveries: it thought 13 had already been delivered and so it didn't expect to see it again.

[duplicate delivery is totally normal behavior in this case; I'll adjust the test to allow it]

Looks solid for single-node restarts. :)

Great, thank you @aphyr. Let's see what happens with delays and partitions... :-)


Application Command Types

This is a simple question to know if you plan to handle ohers Application Command Types ?
For example, like user commands and message commands ?
Thanks

I start to make some changes, I will submit a pull request once evrything is ready.
Do you have any contributing guide with specificities for your repo ?
How should I deal with documentation ?

I don't have any specific contributor guide at the moment. I'd say, generally, try to follow PEP8, but as long as everything's readable enough, it's fine.
The documentation lives in the /docs directory. The project uses Sphinx, so the docs are written in reStructuredText. If you're familiar with the syntax (or willing to learn), feel free to give this a try. Otherwise, I'm fine with writing the docs myself.


Keyboard layout refactor

Refactors the keyboard layout -> key shortcut stuff into something that's at least slightly more extensible going forward (RE: #150). It might make more sense to move the mappings themselves to a plist or something, but this is at least a step in the right direction for right now.
Adds support for a weird variant of the Dvorak - Qwerty ⌘ layout that's floating around the intertubes.
Adds documentation for the TISPropertyInputSourceIDs that we're currently matching against to make it easier to sanity check future additions.

It's cool. Thanks very much for it!


How to download subtitles?

Can anyone tell me how to download the subtitles using this plugin? I'd like to download both the auto and human subtitles. Thanks in advance.

I don't think you can do it


Table 77 "Report Selections" - Field 1 "Usage" - Option to Enum (Extensible)

Hi,
I saw that in the MASTER database you started to convert Option fields to Enum, and all were extensible. That's very good news.
In addition to issues #260 and #2011 ,
Can you give us more information about a possible release of these requests ? (No/Yes, When ...)
Thanks.

This is work in progress and should be completed in November.


preserve executable bit during installation

This is essentially the rust-installer version of https://github.com/rust-lang-nursery/rustup.rs/pull/1141.
Fixes https://github.com/rust-lang/rust/issues/44594.

Thanks!


Asylum - Caves Teeth Do Not Always Register

Some of the Teeth (specifically Caves, Pressure Control Junction Left Box) do not register on this save file. The issue is present in the original tracker as well.

Fixed in https://github.com/ShikenNuggets/ArkhamRouteTracker/commit/c8b9b0fdb046b66f80c23e47b7cfcc75b21eae73


v1.2.0 File not found index.js

Hi, thanks for the great action, it seems that there is an error in v1.2.0:
Error: File not found: '/home/runner/work/_actions/wdzeng/edge-addon/v1.2.0/index.js'
do you forget some dist files?

The Microsoft API server is responding weird access token. Check if this will be fixed.

Maybe I'll just have to verify again on the next release, I manually switched to v1.1.0 and it worked fine.
I will re-test v1.2.0 next time I release it, thank you!

still not work.

I still received invalid access token today. I am trying to fix this.

Thank you!
I tried v1.1 again, and it didn’t seem to work anymore, and it prompted jwt token invalid. I also tested 2 other actions of the same type, and they had similar problems, so there should be some changes on Microsoft’s side. Just have to wait, thanks again for a great job

I found https://github.com/microsoft/MicrosoftEdge-Extensions/issues/107. Let's wait for it to be fixed.

It seems that now the API returns normal and I can release normally with V1.1.0

Released v1.2.1. Thanks for your help!


Fixing mismatched quotes in blog posts

What are the next steps to have this merged?

Looks good, thanks for the fix!


Getting always a timeout

I've just try to test snmp-native, but I always got a timeout executing a simple "get" (SNMP agent running on 173 under <IP_ADDRESS> with community "public"). Do you have any hints?

does it work with snmpget from the commandline or a different client? can you show us your code?

It was my fault. I've tried to request an agent which supports only SNMP v1.


Memory usage increases during subsequent evaluations of cellpose model

Hi there, and thanks for your support.
While working on a different project, with @mfranzon and @jluethi we noticed an unexpected increase of RAM usage during subsequent runs of cellpose segmentation with the nuclei model. I'll report here an example which is as self-contained as possible, but other pieces of information are scattered in our original issues.
The question is whether this behavior looks expected/normal, or whether we could try to mitigate it. Also we are wondering if it comes from cellpose or from torch.
Context
Our goal is to perform segmentation of 3D images with cellpose pre-trained nuclei model. We need to segment a certain number of arrays (say 20 of them), and each array may have shape like (30, 2160, 2560) and type uint16. The processing of different arrays (AKA the different cellpose calls) takes place sequentially, on a node which has 64G of memory and access to a GPU. The GPU memory is under control throughout the entire run (around 4 GiB out of 16 are used), while this issue concerns the standard RAM usage (which we monitor via mprof).
Code and results
As a minimal-working example, we load a single array of shape (30,2160,2560) and repeatedly compute the corresponding labels several times. If needed, we can find the best way to share the image folder - or use other data which are already easily available for testing.
The code looks like
import sys
import time

from skimage.io import imread
import numpy as np
from cellpose import core
from cellpose import models

def run_cellpose(img, model):
    t_start = time.perf_counter()
    print(f"START | shape: {img.shape}")
    sys.stdout.flush()
    mask, flows, styles, diams = model.eval(
        img,
        do_3D=True,
        channels=[0, 0],
        net_avg=False,
        augment=False,
        diameter=80.0,
        anisotropy=6.0,
        cellprob_threshold=0.0,
    )
    t_end = time.perf_counter()
    print(f"END  | num_labels={np.max(mask)}, elapsed_time={t_end-t_start:.3f}")
    sys.stdout.flush()
    return mask

# Read 3D stack of images (42 Z planes available)
num_z = 30
stack = np.empty((num_z, 2160, 2560), dtype=np.uint16)
for z in range(num_z):
    stack[z, :, :] = imread(f"images_v1/20200812-CardiomyocyteDifferentiation14-Cycle1_B05_T0001F002L01A01Z{z+1:02d}C01.png")

# Initialize cellpose
use_gpu = core.use_gpu()
model = models.Cellpose(gpu=use_gpu, model_type="nuclei")
print(f"End of initialization: num_z={num_z}, use_gpu={use_gpu}")

nruns = 10

for run in range(nruns):
    print(run)
    run_cellpose(stack, model)

This code runs through, and it takes approximately 320 seconds for each segmentation (finding around 3k labels). The memory trace during the first few iterations of the loop is shown below, and we notice that subsequent runs have a larger and larger memory usage - until this saturates after a few iterations. If we look at the plateau regions in the memory trace, for instance, their values (in GiB) are: 12, 13.8, 14.1, 14.1, .. Also the memory-usage peaks at the end of each cellpose calls are shifting up by a similar amount, accumulating about 2 GiB during the first 2-3 iterations.
The simplest explanation would be that cellpose or torch are caching something, but we couldn't identify what is being cached. Is this actually happening? If so, is there a way to deactivate this caching mechanism?

Expected behavior and why it matters
We would expect that subsequent runs on the same exact input require a very similar amount of memory - unless some caching is in-place. The relevance of this issue (for us) is that even if the memory accumulation seems mild (that's only 2 GiB more than expected), in more complex/heavy use cases (including additional parallelism) it may lead to memory errors (as we found in https://github.com/fractal-analytics-platform/fractal/issues/109#issuecomment-1198916009). For this reason we'd really like to keep it under control, possibly by deactivating caching options (if any).
Environment
The python code above is submitted to a SLURM queue, and it runs on a node with a GPU available.
Relevant details on the python environment:
sys.version='3.8.13 (default, Mar 28 2022, 11:38:47) \n[GCC 7.5.0]'
numpy.__version__='1.23.1'
torch.__version__='1.12.0+cu102'

I have no idea, have you tried any garbage collecting? you could call cellpose as a process and then it will clean up (all those options are available on the CLI) but then you have to re-read in the saved masks

Thanks for your comment.
I confirm that adding gc.collect() here and there (both within run_cellpose function, and especially right after each call to this function within the loop) does not lead to any relevant change in the memory trace.
At the moment we cannot go for the CLI path, since this labeling task is part of a more complex platform to process bio-images (https://github.com/fractal-analytics-platform/fractal), where tasks need to be python functions.
For now we'll just keep this issue in mind, and apply mitigation strategies (e.g. working at a lower resolution) if/when needed.

I have the same issue. It'll run and then eventually eat all the available RAM. I have to mark where it left off and restart the Kernel. gc.collect() did not help.


[SPARK-48558][CORE] Improve accumulator V2 error message

What changes were proposed in this pull request?
Improves the error message for when an accumulator V2 is used before registering.
Why are the changes needed?
More user friendly. The change makes it easier to identify the accumulator that caused the problem.
Does this PR introduce any user-facing change?
Yes the error message is more informative.
How was this patch tested?
Existing tests
Was this patch authored or co-authored using generative AI tooling?
NO

Trying to understand the change a bit more - if it is registered, we wont hit this code path; when not registered, the name wont be defined and so we wont have a name emit.
So when does this PR help ?

@mridulm I tried but cannot reproduce this in a unit test. FWIW, the original problem occurred because I added a SQLMetric here. The lambda is serialized to the executors and during object serialization, I hit this error.
Trying to  do the same in a unit test I hit a serialization exception before the AccumulatorV2 code is called so I'm just not able to recreate the original problem.
Closing this PR.


Updates for timing and HRD descriptors

Consistently handled MPEG defined timing and HRD descriptors for AVC, HEVC, EVC and VVC.
In the descriptor definitions in ISO/IEC 13818-1, the 90kHz_flag indicates indicates that the frequency of the time base is 90 kHz. The N and K values are used to define the time scale for other frequencies.

Much more clear. Thank you.


Fields in a select get cut off on iPad

As it says. Thanks.

Unsure what you're referring to... the select element is cut off or something else? Screenshot?

after the 10th field content in a select gets cut off on iPad.

Austria
Belgium
Czech Rep.
Denmark
Finland
France
Germany
Ireland
Italy
Liechtenstein
Luxembourg
Malta
Monaco
Netherlands
Norway
Poland
Spain
Sweden
Switzerland
United Kingdom
Vatican City

Screenshot to demo the issue:
http://thomaswinterstetter.com/select-on-ipad.png

Don't have an iPad to take a real-issue screenshot.

Sorry, Mark. I made a mistake. Everything is good. There is no issue. Thanks!


Two fixes for recently-added HnswGraphBuilder.connectComponents:

properly set frozen flag to avoid re-duplicative work
don't try to join a node to itself

addresses #13640
with this fix the failing test seed on that issue succeeded. I re-ran the test with tests.iters=1000 and didn't get any fails


¨rtl markdown¨ cannot be active!

When I run "Active RTL Markdown" I run to the above-mentioned error.
vscode version: 1.63.2
rtl markdown version: 0.0.8

Please try updating to the latest version 0.0.9 and if it still does not work, please follow these steps:

Toggle developer tools Menu Bar > Help > Toggle Developer Tools
Switch to Console tab
Filter logs by rtl-markdown
Copy all logs and put them here

I updated to 0.0.9, but the problem persisted.

Nixos may not support kdesudo or pkexec which sudo-prompt requires.
node_modules/sudo-prompt/index.js
function LinuxBinary(instance, end) {
  var index = 0;
  // We used to prefer gksudo over pkexec since it enabled a better prompt.
  // However, gksudo cannot run multiple commands concurrently.
  var paths = ['/usr/bin/kdesudo', '/usr/bin/pkexec'];
  function test() {
    if (index === paths.length) {
      return end(new Error('Unable to find pkexec or kdesudo.'));
    }
    var path = paths[index++];
    Node.fs.stat(path,
      function(error) {
        if (error) {
          if (error.code === 'ENOTDIR') return test();
          if (error.code === 'ENOENT') return test();
          end(error);
        } else {
          end(undefined, path);
        }
      }
    );
  }
  test();
}

I will continue to look for solutions.

I added new option to activate without sudo-prompt, so please

Upgrade to version 0.0.10
Run vscode as root
Use regular button to activation


renderdoc: 1.18 -> 1.19 +

Description of changes

https://github.com/baldurk/renderdoc/releases/tag/v1.19
Finally figured out where to place the PySide stuff so CMake finds it at build time so plugins should now work fully.
Unfortunately Wayland is not really supported nor are some Vulkan extensions that have been critical for me for a long time now, and upstream has explicitly said they aren't planning to work on either so for the time being renderdoc is unusable for me and this'll be the last update I do for it.
@Ralith wanna take over the package? AFAIK you have more use for this than I do these days and lately the updates have been pretty trivial so r-ryantm should get them anyway.
Things done

Tried tried capturing vkcube (X11-only application) via CLI and running the GUI with QT_QPA_PLATFORM=xcb to inspect the capture, both worked without a hitch. Tried out the "where is my draw" example plugin to verify that python stuff works. No problems with that either.

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

@Ralith wanna take over the package? AFAIK you have more use for this than I do these days and lately the updates have been pretty trivial so r-ryantm should get them anyway.

Sure, I won't be closely tracking releases but I am indeed a regular user still.

Please rebase

Closing as obsolete - nixpkgs already has version 1.21

The version in master still doesn't seem to have pyside to wired up. Would be nice to get that in; I don't have any idea how it works myself.

I'm not sure if I ever figured out how to actually verify that it works at run time, but IIRC the change here made CMake pick up the fact that pyside is available.

So, should this be reopened (and rebased) to get that in?

Looks like github does not allow reopening PRs if there have been changes to the branch in between. Rebased & reopened as #191978

Thanks!


[bug]: flutterfire configure does not generate GoogleService-Info.plist

Is there an existing issue for this?

[X] I have searched the existing issues.

CLI Version
1.0.0
Firebase Tools version
13.15.4
Flutter Doctor Output
[√] Flutter (Channel stable, 3.24.1, on Microsoft Windows [Version 10.0.19045.4780], locale hu-HU)
• Flutter version 3.24.1 on channel stable at C:\flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision 5874a72aa4 (7 days ago), 2024-08-20 16:46:00 -0500
• Engine revision c9b9d5780d
• Dart version 3.5.1
• DevTools version 2.37.2
[√] Windows Version (Installed version of Windows is version 10 or higher)
[√] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
• Android SDK at C:\Users\maRci002\AppData\Local\Android\Sdk
• Platform android-34, build-tools 34.0.0
• ANDROID_HOME = C:\Users\maRci002\AppData\Local\Android\Sdk
• ANDROID_SDK_ROOT = C:\Users\maRci002\AppData\Local\Android\Sdk
• Java binary at: C:\Program Files\Android\Android Studio\jbr\bin\java
• Java version OpenJDK Runtime Environment (build 17.0.11+0--11852314)
• All Android licenses accepted.
[√] Chrome - develop for the web
• Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe
[√] Visual Studio - develop Windows apps (Visual Studio Community 2022 17.7.0)
• Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community
• Visual Studio Community 2022 version 17.7.34003.232
• Windows 10 SDK version 10.0.22621.0
[√] Android Studio (version 2024.1)
• Android Studio at C:\Program Files\Android\Android Studio
• Flutter plugin can be installed from:
https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 17.0.11+0--11852314)
[√] VS Code (version 1.92.2)
• VS Code at C:\Users\maRci002\AppData\Local\Programs\Microsoft VS Code
• Flutter extension can be installed from:
https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
[√] Connected device (3 available)
• Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version 10.0.19045.4780]
• Chrome (web)      • chrome  • web-javascript • Google Chrome 127.0.6533.122
• Edge (web)        • edge    • web-javascript • Microsoft Edge 128.0.2739.42
[√] Network resources
• All expected network resources are available.
• No issues found!
Description
GoogleService-Info.plist file isn't generated
Steps to reproduce
Running this command neither generates the GoogleService-Info.plist file nor throws an error.
flutterfire configure ^
--project xxx-app-a128a128 ^
--out lib/app/firebase_options/prod/firebase_options.dart ^
-i com.example.xxxApp ^
--ios-out ios/firebase_config/prod ^
--platforms ios

Expected behavior
GoogleService-Info.plist file is generated
Screenshots
No response
Additional context and comments
No response

@maRci002 - Have you tried the latest dev version?
dart pub global activate flutterfire_cli 1.0.1-dev.4

@maRci002 - Have you tried the latest dev version?
dart pub global activate flutterfire_cli 1.0.1-dev.4

@russellwheatley neither --ios-out ios/firebase_config/dev neither --ios-out ios/firebase_config/dev/GoogleService-Info.plist worked for me. The firebase_app_id_file.json also stopped generating. However firebase.json is generated at the root of the project and to be honest idk what is that file.

Same story here. All files are created or modified. Except for IOS... 😢


Feature/dhcp disconnect

Add a host network module with a gRPC client allowing access to host networking options
Enable access to host network gRPC from test containers
Implement connection.dhcp.disconnect test

Tested and working on a regular Ubuntu laptop. Just want to try it on gLinux again. Only small issue I see is when the disconnect test occurs, an error from scapy/tcpdump is shown because the interface is no longer available. Would it be possible to pause the packet capture for this test?

Only small issue I see is when the disconnect test occurs, an error from scapy/tcpdump is shown because the interface is no longer available. Would it be possible to pause the packet capture for this test?

Are you referring to this?
WARNING: Socket <scapy.arch.linux.L2ListenSocket object at 0x7fabca1baaf0> failed with '[Errno 100] Network is down'. It was closed.
Seems this is only a warning and I checked all network captures after this log event and they all appear to continue as expected.  I think it's just an indication that the physical connection is down but the capture is still active.  Stopping and restarting captures during this shouldn't be necessary since it appears to continue on without interruption as expected.


Dynamic configuration

[ ] Regression (a behavior that used to work and stopped working in a new release)
[ ] Bug report
[ ] Performance issue
[ x] Feature request
[ ] Documentation issue or request
[ ] Other... Please describe:

Current behavior
The only option to set a configuration is when defining the MsalModule.forRoot(...).
If the configuration is loaded dynamically (e.g. from an API), it is not possible to set it at a later stage.
Expected behavior
Add an option to set the configuration dynamically, similar to adal-angular4 where the adal service provides an init function:
adalService.init(adalConfig);

I am assuming that this is in regards to msal-angular?
Currently core can only be configured on instantiation, however requests can take overriding params like authority.
We will begin angular work soon, to bring it to parity with 1.0.0 msal-core and will keep this in mind as a feature request.
Closing for now since this is not an issue , but an improvement
@negoe  to track for feature requests


Tree shaking doesn't work

Hey! Thank you so much for the library I love it, it very helpful!
I updated my jsx-dom dependency 6.4.13 to 6.4.17 And I see my bundle up to little bit heavy. I searched to<EMAIL_ADDRESS>and see the size change
I'm don't use the SVG but in my build has SVG code. I use the Parcel bundler and I add the alias to package.json
"alias": {
    "jsx-dom": "./node_modules/jsx-dom/lib/min.js"
}

And this way I have a bundle is smaller. Before 78.02 KB and with the alias, it is 76.09 KB
Is it possible to set up tree shaking as it was in 6.4.13 version?

Yes, if you import from jsx-dom/min instead of jsx-dom.


cover shenanigans supposedly interfere with GTCE recipes

Issue description:
cover compliance detector is producing weird serverside crashes. I was able to suppress it on the gtce side for a while but now it's completely broken no matter what I try
What happens:
when performing any crafting action with "pipelike" gtce blocks, RS is preventing them from being crafted, sometimes producing fatal crashes. this ONLY happens serverside. all pipelike gtce blocks have "clientside-only" renderer checks added.
this DOES NOT happen without refined storage present.
Steps to reproduce:

get gtce and rs
put them on a server
try to craft a gtce fluid pipe or cable
...

Version (make sure you are on the latest version before reporting):

Minecraft: 1.12.2
Forge: 2757
Refined Storage: built from https://github.com/raoulvdberge/refinedstorage/commit/21973ad4c19aa12a447da7b6fe5eb8540ba2ab48

Does this issue occur on a server? [yes/no]
serverside-only
what usually happens: https://pastebin.com/j3TSxA8H
what happens on a fatal crash: https://pastebin.com/KqD4eTa1

Please take note that you should NEVER, NEVER try to call clientside-only methods on server side. It breaks variety of mods that use CCL which adds additional BlockRenderType values as example. If you try to do such kind of things and it is necessary, just use try/catch and don't except that client-side things will magically work on server side without any errors.

Report to Gregtech. Not a RS issue.

I wonder why this didn't break earlier/before.

IMO, It's a shortcoming of CCL that it doesn't give you an easy way to add those additional BlockRenderType values on the server side, since the code path leading to adding the values is all client-only code.

Then the question is whether RS should fix CCL's shortcomings.
I don't believe so.

If you can't understand the fact that method that returns render-related information shouldn't work flawlessly on dedicated server, it's not my issue.
Neither it is my issue it isn't flagged as client-side only. As long as it is direct correlation with rendering purpose, it should not be used on server-side.
Still, i don't get what prevents you from at least try-catching that kind of code? Heightened self-esteem compared to other mods?

The issue here is not with CCL or RS, it is that GregTech is storing their custom BlockRenderType in a class that implements client interfaces. The simple solution would be to store the BlockRenderType elsewhere, so that referencing it does not load client code.


array filter/find has inconsistent results and incorrect constraint specifications

🔎 Search Terms
type predicate error 2677
union of arrays type predicate
array filter result
One error noted in this bug report (2345 on the rhs of a1 in the code) is a known problem with design-limitation status, I believe.  That is incidental and not the main focus of this bug report.
🕗 Version & Regression Information

5.2.2 / 5.3.2
I was unable to compare the result on prior versions because there were other worse problems in prior versions

⏯ Playground Link
playground
💻 Code
interface Fizz {
    id: number;
    fizz: string;
}

interface Buzz {
    id: number;
    buzz: string;
}

declare function isFizz(x: unknown): x is Fizz;
const x1 = ([] as Fizz[]|Buzz[]).find(isFizz);
//    ?^  x1: Fizz | undefined
const x2 = ([] as Buzz[]).find(isFizz);
//    ?^  x2: Buzz | undefined

const y1 = ([] as Fizz[]|Buzz[]).filter(isFizz);
//   ?^  y1: Fizz[]
const y2 = ([] as Buzz[]).filter(isFizz);
//   ?^  y2: Buzz[]

// Different results obtained for this non library version
declare function filter2<T,S extends T>(predicate:(t:T)=>t is S, arr:T[]): S[] ;
declare function filter2<T>(predicate:(t:T)=>unknown, arr:T[]): T[] ;

const z1 = filter2(isFizz, ([] as Fizz[]|Buzz[]));
//   ?^  z1: Fizz[]
const z2 = filter2(isFizz, ([] as Buzz[]));
//   ?^  z2: Fizz[]

// Related: If the constraint "S extends T" is ommitted, an error occurs.
declare function filter3<T,S>(predicate:(t:T)=>t is S, arr:T[]): (T&S)[];
//                                                  ~ Type 'S' is not assignable to type 'T'. 2677

// Assuming the object type T is open (i.e., could have other keys, which is the TS default assumption)
// then the filter result should be (T&S)[], so try defining that result explicitly (without an overload, to avoid confusion).
// This should work:
declare function typePredicateFilter4<D, T extends D,S extends D>(predicate:(t:D)=>t is S, arr:T[]): (T&S)[];

const a1 = typePredicateFilter4(isFizz, ([] as Fizz[]|Buzz[])); // error
//   ?^  z1: Fizz[] (invalidated by error)
const a2 = typePredicateFilter4(isFizz, ([] as Buzz[]));
//   ?^  z2: (Buzz & Fizz)[]

🙁 Actual behavior

The types of  y2 (Buzz[]) and z2 (Fizz) differ.

As shown in function3, omitting the constraint S extends T results in error 2677.

The result a2 is (Fizz & Buzz)[] as desired (good), but the result of a1 invalidated because of the error occurring on Fizz[]|Buzz[].  So typePredicateFilter4 is not currently usable in the general case.

🙂 Expected behavior

The types of  y2 and z2 match.

Want to be able to omit the that constraint S extends T which triggers the error.
2.1. One reason we want to omit it is because S extends T triggers the inference logic we don't need if (T&S) is explicitly provided as the return type.
2.2. The other reason is that S extends T unnecessarily constrains the domain of the predicate type function.  See typePredicateFilter4  for the correct constraints - D is the domain of the predicate function, and both T and S independently extends D.

typePredicateFilter4 should not produce an error when Fizz[]|Buzz[] is the array argument type.  This is an already known issue.  1 and 2 can be solved without solving this problem #3.

Additional information about the issue
Some special type inference logic to calculate the return type is triggered by the presence of the type predicate function arg is S as an argument, and that logic uses the constraint S extends T to infer the return type.  If the requirement of having a constraint is dropped, and return type was specified explicitly (as in function filter3 and typePredicateFilter4, then that logic would not be required.
Would such a change be good?  If (T & S) is what is actually expected to pass the type predicate function, then I think yes.
Moreover, the entire result signature output of typePredicateFilter4is "linear" with respect to it type inputs.  This allows faster resolution.

@RyanCavanaugh -
There might have been overlap between your comment and the very last edit I made, which is this:
declare function typePredicateFilter4<D, T extends D,S extends D>(predicate:(t:D)=>t is S, arr:T[]): (T&S)[];

in which D is the type of the domain (a.k.a. input range) of the type predicate function.
The constraints on S and T are well defined:

T extends D
S extends D
and these are absolutely necessary.

In contrast, it is not at all necessary to declare anything about the relation between S and T (such as S extends T).
That's good, because (at least in the case of Array.filter) it should not be an error if S does not extend T, because an error would bump us to the next overload, which is not we want.
You could say - even if the present declaration <T, S extends T>(predicate:(t:T)=>t is S, arr:T[]): T[] constraints S more than it needs to be, it doesn't matter because the inference code will calculate the correct return type anyway.
In answer to that, I would say using the inference to calculate the intersection is overthinking it and introducing excess complexity, when the minimalist correct return type is simply (T&S)[].  Excess complexity leads to unpredictable behavior, such as is pointed  out in item 1, where x2 is Buzz[] while y2 is Fizz[].  Both are (widely speaking) correct but both are wider than the straightforward minimalist correct return type (Fizz & Buzz)[].
And to repeat my final point in the original post -

Moreover, the entire result signature output of typePredicateFilter4is "linear" with respect to it type inputs. This allows faster resolution.

So it's not just crossing t's.

Want to be able to omit the that constraint S extends T which triggers the error.

Not really on the table IMO - the subtype invariant on user-defined type predicates is well-justified. If things you have to do to satisfy that cause problems elsewhere, we should address those consequences on their own terms.

Let me revise my poor choice of words. They should be I want replace the constraint S extends T.
Specifically, by replacing
    filter<S extends T>(predicate: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[];

with
    filter<D, T extends D, S extends D>(predicate: (value: D, index: number, array: T[]) => value is S, thisArg?: any): (T&S)[];

the constraint S extends T
is replaced with two constraints:

T extends D

this confirms the domain of the predicate is valid, i.e., the user is not trying to feed predicate bad inputs.

S extends D

this is just a obvious consequence of predicate partitioning its input.  If this were not true, the definition of predicate would be nonsense.

Why do I say S extends T is wrong?  After all, in the context of the filter function S extends T  implies both T extends D and S extends D, which is good!
However, S extends T also implies something else - that every element of S must be an element of T.
Consider this -
declare function predicate(d:1|2|3): d is 1;
declare const arr: (2|3)[];
const x = arr.filter(predicate);

Here S does not extend T.   Therefore,  the function
    filter<S extends T>(predicate: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[];

considered as a stand alone function (not part of an overload),  should fail, right?  Apparently not:
declare function filterStandAlone<T, S extends T>(predicate:(t:T)=>t is S, arr:T[]): S[];
const z = filterStandAlone(predicate,arr); // no error
//    ^? const z: 1[]

I believe what is happening is that the infer logic is using S extends T not as a hard constraint, but rather an instruction to infer the output type - but it doesn't finally calculate the minimal correct output never[].
Rather than analyzing why the infer logic doesn't calculate the minimal correct output never[], I want to assert that in this scenario with filter we should not be putting the onus on the infer logic to to calculate the return type.  It is overthinking the problem, resulting in over complexity.  (As well as altering the meaning of S extends T from a hard constraint to something else).
If instead we use the typePredicateFilter4 defined in the OP -
const y = typePredicateFilter4(predicate,arr);
//      ?^  const y = never[]

The minimalist answer is produced without any contribution from the infer logic at all.  So easy!


Added combining several OSM XML files into one.

Double in source data are not currently checked.

Everything looks good after the merge function refactoring, merging--->


Problem with sections

Hello, perhaps I'm doing something wrong but the following code does not seem to work. I can't find what it is.
<mjml>
  <mj-head>

  </mj-head>
  <mj-body>
    <!-- COMPANY HEADER -->
    <mj-section padding-bottom="0" background-color="#00bcd4">
      <mj-column width="100%">
        <mj-image src="http://www.hsdtaxlaw.com/wp-content/uploads/2016/05/logo_placeholder.png" title="Company Logo" align="center" width="1000px" padding-bottom="2px" />
        <mj-text padding-top="0px" align="center" font-size="20" color="white" font-family="Quicksand" font-weight="400">
          Company title
        </mj-text>
        <mj-divider
          padding-top="20px"
          padding-bottom="0"
          padding-left="0"
          padding-right="0"
          border-width="1px"
          border-color="#ffffff"/>
      </mj-column>
    </mj-section>
    <!-- TITLE OF EMAIL -->
    <mj-section background-color="gray">
      <mj-column width="100%">
        <mj-text>
          Ohey
        </mj-text>
      </mj-column>
    </mj-section>
    <!-- SHORT DESCRIPTION -->
    <mj-section background-color="red">
      <mj-column>
        <mj-text>
          Hey
        </mj-text>
      </mj-column>
    </mj-section>
    <!-- ACTIVATION BUTTONS -->
    <mj-section>

    </mj-section>
    <!-- MANUAL SEARCH SECTION -->
    <mj-section>

    </mj-section>
    <!-- PRICING SECTION -->
    <mj-section>

    </mj-section>
    <!-- SOCIAL BUTTONS -->
    <mj-section>

    </mj-section>
    <!-- COMPANY FOOTER -->
    <mj-section>

    </mj-section>
  </mj-body>
</mjml>

This is the output:

A blank page. But it should show a bigger logo, a section with gray background color, with the words "Ohey"; and another section with red background color, with the words "Hey".
What am I doing wrong? Thanks for any help. If this is not the place please guide in the right direction.
Mac OSX 10.12.5 - Using MJML App v2.5.0 and MJML v3.3.0. This is the output HTML: https://gist.github.com/fillipvt/564f4c5310da89f85bfcb4c913a13ff2
Cheers

My bad! I completely missed a  tag after the body tags. Sorry!


README suggestions

Codecov Report

Merging #83 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #83   +/-   ##
=======================================
  Coverage   74.97%   74.97%
=======================================
  Files          20       20
  Lines         839      839
=======================================
  Hits          629      629
  Misses        159      159
  Partials       51       51

Continue to review full report at Codecov.

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

Codecov Report

Merging #83 into master will increase coverage by 3.48%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master      #83      +/-   ##
==========================================
+ Coverage   74.97%   78.45%   +3.48%
==========================================
  Files          20       24       +4
  Lines         839     1425     +586
==========================================
+ Hits          629     1118     +489
- Misses        159      227      +68
- Partials       51       80      +29

Impacted Files
Coverage Δ

internal/resource/manage/batch/batch.go
53.84% <0.00%> (-7.70%)
:arrow_down:

internal/resource/manage/kubectl/kubectl.go
81.57% <0.00%> (-6.74%)
:arrow_down:

internal/kubernetes/yaml.go
84.61% <0.00%> (-2.49%)
:arrow_down:

internal/plan/plan.go
100.00% <0.00%> (ø)

internal/configuration/v1.go
100.00% <0.00%> (ø)

internal/resource/manage/kubectl/helpers.go
0.00% <0.00%> (ø)

internal/resource/manage/kubectl/options.go
100.00% <0.00%> (ø)

internal/storage/json/json.go
84.61% <0.00%> (ø)

internal/resource/manage/wait/wait.go
72.09% <0.00%> (ø)

internal/resource/manage/kubectl/ns.go
82.14% <0.00%> (ø)

... and 7 more

Continue to review full report at Codecov.

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

@slok I just included your suggestions, maybe you want to merge this one.

Conflicts solved to be able to merge! thanks, @jesusvazquez :tada:


[ai] tests: Add assets.json for azure-ai-projects

Description
This pull requests adds an assets.json for azure-ai-projects, that points to recordings for the connections tests. Remaining recordings will be added as a follow up.
All SDK Contribution checklist:

[ ] The pull request does not introduce [breaking changes]
[ ] CHANGELOG is updated for new features, bug fixes or other significant changes.
[ ] I have read the contribution guidelines.

General Guidelines and Best Practices

[ ] Title of the pull request is clear and informative.
[ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[ ] Pull request includes test coverage for the included changes.

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-ai-projects

Thank you @kdestin for looking into it, please close this PR, no need to merge. We need to push all recordings (from all API surfaces) together to the assets repo. I'm already working on making sure I can run tests for .inference, .connections and .telemetry from recordings. I looked at your changes here and may incorporate them in my PR and/or follow up with you offline to discuss these changes.


Default the minimal to true

In order for it to look like the screenshot that's sold on the homepage,

I think we should default the hidden minimal setting to true
Kinda looked for it for 30 minutes.

A big thanks for this - For helping me find about it https://github.com/defringe/verminal/issues/19


Allow own changelog instances instead of newInstance

Currently unable to control the creation of the ChangeLog objects. It would be nice to use custom ones I can pass to the builder so I can add fields based on application configuration, or even use other mongo driver wrappers like Morphia (without relying on set method parameters)
I've tried on core and it seems not doable unless I'm missing something, I imagine this is easier with the spring version.

Hi @MatthewStrickland , I don't fully understand your issue.

What do you mean with "unable to control the creation of the ChangeLog objects"?

Custom ones what?

I can guess you want to inject your own dependencies, but not sure.
Anyway, which framework are you using?

Hi @dieppa
Ideally I was hoping to do something like this:
@ChangeLog
@AllArgsConstructor
@NoArgsConstructor
public class DatabaseChangeLog {

        private Datastore datastore;  // morphia
        private EnvConfig config;     // application properties

        @ChangeSet(order = "001", id = "createInitialDatabase", author = "Matt")
        public void initial() {
           ...
        }

I'm using Picocontainer (and dropwizard) which could inject these if it managed the ChangeLog itself. Morphia isn't necessarily needed but I'd like to put in specific application properties based on environments. If there's another way then I'd be happy to try it.

Hi @MatthewStrickland
no, right now there is nothing for that, but it could be done. But please notice that the lock mechanism is based on proxing the database access, so the datasource should be injected via builder. Free injection of database access is not the approach to go.

So, I suggest to use our templates to either create an issue
or an enhance
Then feel free to pick it yourself and raise a PR(if so, please make a comment in the ticket itself letting the rest know of us you're picking it) or someone in our team will do it


Merge multiple ingresses with the same name from different includes

What should we add or change to make your life better?
If we include multiple tye files from 1 main tye file, we cannot easily add ingresses on the same port atm.
Take this as an example:
main tye.yaml:
name: myenv
services:
- name: myauthservice
  include: .\myauthserice\tye.yaml
- name: blazorappweb
  include: .\blazorappweb\tye.yaml

.\myauthserice\tye.yaml:
name: myenv

ingress:
  - name: ingress
    bindings:
      - port: 80
        ip: "*"
        protocol: http
    rules:
      - host: login.mydomain.local
        service: Authentication

services:
- name: Authentication
  project: source\Authentication\Authentication.csproj
  env_file:
    - ../.env

\blazorappweb\tye.yaml:
name: myenv

ingress:
  - name: ingress
    bindings:
      - port: 80
        ip: "*"
        protocol: http
    rules:
      - host: app.mydomain.local
        service: BlazorApp

services:
- name: BlazorApp
  project: source\BlazorApp\BlazorApp.csproj
  env_file:
    - ../.env

Now if you try to startup the main tye file, you'll get an exception that 'ingress' is already added to the services dictionary in ApplicationBuilderExtensions.ToHostingApplication
If you give them a unique name, tye tries to startup 2 webhosts with the same binding, resulting in a port is already in use exception.
Specifying 1 ingress in the main file is also not possible, since the validator checks if the ingress points to an existing service in the same file, but the actual service where it should point to isn't in the same file
But having the ingress defined in the own tye files seems better to me anyway, so the can also run standalone.
Why is this important to you?
To have tye list on 1 port and and ip and serve all loaded services from that port based on domain-name

I see, you want to do a config merge. I'm not sure this should just work, maybe this needs to be declared "partial" in order to allow the merge. We need to be able to distinguish the error case from the merge case.

@davidfowl what happens without this PR, is that it throws an exception for the second ingress it finds:
An unhandled exception has occurred, how unseemly:
System.ArgumentException: An item with the same key has already been added. Key: ingress

and if you give them a unique name:
An unhandled exception has occurred, how unseemly:
System.IO.IOException: Failed to bind to address http://[::]:80: address already in use.

Your suggestion is to keep throwing these exception (or another one) unless you explicitly say they can be merged?
So perhaps the main tye should have the ingress with bindings but without any rule and a 'allowIncludeRules' like so?
name: myenv
ingress:
  - name: ingress
    allowIncludeRules: true
    bindings:
      - port: 80
        ip: "*"
        protocol: http

services:
- name: myauthservice
  include: .\myauthserice\tye.yaml
- name: blazorappweb
  include: .\blazorappweb\tye.yaml

I don't think much harm could be done by adding rules to the same ingress though.  Or are you more concerned about overwring the bindings?
We could also throw an exception if the name matches but the bindings don't -> InvalidConfigurationException: "A conflict between the ingresses in myauthservice and blazorappweb has been found. The name of the ingresses are the same, but the bindings are not"

one for overlapping rules' hostnames and path: InvalidConfigurationException: "blazorappweb has an ingress rule for app.mydomain.local/myapp, but the same rule was already specified by  'otherwebapp'"

So we have a scenario 1: add extra property to ingress to allow 'sub-rules'
Scenario 2: only throw an exception if there are conflicts after a merge (where you'd get an exception in the current version always)

I added exceptions for the conflict situations and added unittests for non-conflict and conflict situation


Automatically load `lightline'

:Tmuxline lighttline works OK. Is there a way to autoload this on vim startup, just like airline does?

I couldn't figure out a way to do this. I ended up using the following workaround:

Run commands to set up the tmux line the way you like it (e.g.:  :Tmuxline vim_statusline_3 full)
Export the settings: :TmuxlineSnapshot ~/.config/nvim/lua/core/plugin_config/tmuxline.vim
Edit your tmux configuration: vim ~/.tmux.conf
Source the file in your tmux config: source ~/.config/nvim/lua/core/plugin_config/tmuxline.vim


Feature request: eframe demo with continuous delivery workflow

Hi, I've been trying to set up continuous delivery workflow for my eframe project using rust-build.action, but the Linux builds don't seem to work. I tried to debug it (bit more details), but I just don't seem to have the knowledge of both projects to make it work, or even tell where exactly the issue is. Would it be possible for you to set up a demo with continuous delivery workflow, so that it's clear it's not an issue with egui/eframe?

This repository deploys a new web demo each merge to main using https://github.com/emilk/egui/blob/master/.github/workflows/deploy_web_demo.yml
eframe_template too, trunk: https://github.com/emilk/eframe_template

Hi, thanks for the reply, but I'm personally not really interested in web version, rather the executables. I know in theory everyone should be able to build it the project with cargo run, but in practice I don't think I should expect everyone to know how to do it.


Error when merging two checkpoints in Paperspace Stable Diffusion

Hello, I need to merge checkpoints, but whenever I try to do this, this error happens, any solution for this?

Check you models, one of them seems corrupt

Check you models, one of them seems corrupt

we have the same problem also with:

supermerger
native merger
model tool.

I've try a lot of models
I- 've try a lot of version of A1111 (1.8.0, 1.9.3, 1.9.4)

but this issue is still here.
Here there is the topic:
https://github.com/TheLastBen/fast-stable-diffusion/issues/2830


Macro: Editing grid disappears but editing mode is on

Steps to Reproduce

Switch to Macro mode
Right-click and start new sequence
Add some letters
Delete all letters by pressing 'Backspace' or 'Delete'

Actual behavior
Editing grid disappears but editing mode is on
Expected behavior
The editing grid remains empty. Editing mode is enabled. The user can enter new letters that he needs.
Outclick and 'Esc' stops the text-editing mode.

https://github.com/epam/ketcher/issues/3650

Screenshots
https://github.com/epam/ketcher/assets/62464241/51677fda-5b44-456a-9199-4ed663049a21
Desktop (please complete the following information):

OS: Windows 11
Browser Chrome
Version 112.0.5615.138 (Official Build) (64-bit)

Ketcher version
[Version 2.20.0-rc.1]

Tested on build 2.20.0-rc.2 Bug is fixed.


feat(client): adapt openAPI "getDiffSegments"

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

1 of 5 (20.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.05%) to 82.845%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

tensorbay/client/dataset.py
1
5
20.0%

Totals

Change from base Build<PHONE_NUMBER>:
-0.05%

Covered Lines:
5341

Relevant Lines:
6447

💛  - Coveralls


Any plans to allow for running pg_activity remotely with superuser privileges?

We are migrating to Google CloudSQL and you don't get full superuser privileges.  I will miss this tool!
Password:
Traceback (most recent call last):
File "/usr/bin/pg_activity", line 254, in main
service=os.environ.get('PGSERVICE'))
File "/usr/bin/pg_activity", line 416, in pg_connect
service=service,
File "/usr/lib/python3.6/site-packages/pgactivity/Data.py", line 163, in pg_connect
raise Exception("Must be run with database superuser privileges.")
Exception: Must be run with database superuser privileges.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/bin/pg_activity", line 439, in
main()
File "/usr/bin/pg_activity", line 394, in main
if debug is True:
UnboundLocalError: local variable 'debug' referenced before assignment

hi, Are you using the latest version ?

It works (some info are not displayed as stated by the messages):
(.venv) [benoit@benoit-dalibo pg_activity]$ psql -c "\du notsuper"
           List of roles
 Role name | Attributes | Member of
-----------+------------+-----------
 notsuper  |            | {}

(.venv) [benoit@benoit-dalibo pg_activity]$ pg_activity --version
pg_activity 3.4.2
(.venv) [benoit@benoit-dalibo pg_activity]$ pg_activity -U notsuper
INFO - Insufficient privilege to show data_directory. System counters are disabled.
INFO - Insufficient privilege to fetch the tempfile data. The feature was disabled. Please use --no-tempfiles or a platform specific setting (eg. --rds).


Short solution needed: "How to change background color" (python-matplotlib)

Please help us write most modern and shortest code solution for this issue:
How to change background color (technology: python-matplotlib)
Fast way
Just write the code solution in the comments.
Prefered way

Create pull request with a new code file inside inbox folder.
Don't forget to use comments explain solution.
Link to this issue in comments of pull request.

How to change plot background color


[x] Verify that no errors appear in the JS console

Offline tests
Same as Tests.

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots

Web

https://github.com/Expensify/App/assets/16502320/fc8d71f9-3529-4e83-a10f-e276acaf5a55
Mobile Web - Chrome

https://github.com/Expensify/App/assets/16502320/697a92b8-3ae2-477c-ad92-9403d9658743
Mobile Web - Safari

https://github.com/Expensify/App/assets/16502320/7a514a1f-3669-4354-bcd1-fc033eb78bcd
Desktop

https://github.com/Expensify/App/assets/16502320/49a869cd-23d8-4e35-9df3-be9514350c33
iOS

https://github.com/Expensify/App/assets/16502320/b72b2fd5-5965-4cfe-b21d-1a4e22d197bb
Android

https://github.com/Expensify/App/assets/16502320/a843ef67-ce3c-409a-9d6b-e4321e5b5775

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/francoisl in version: 1.3.33-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


fix: tweak border radius of oak-inline banner

Description
Music year: 2016

Change border radius of oak-inline-banner inside <Alert /> component to border-radius-m2 so that it comes out as 8px and is consistent with the design.

Issue(s)
Fixes #CUR-841
How to test
Locally:

Enable SWIMMING_HACK and ENABLE_CYCLE_2
Check that blue info box has the correct border radius.

Storybook:

Go to https://deploy-preview-2818--owa-storybook.netlify.thenational.academy/?path=/story/components-curriculumcomponents-oakcomponentskitchen-alert--alert
Check border radius of alert components.

Screenshots
How it used to look (delete if n/a):

How it should now look:

Checklist

[ ] Added or updated tests where appropriate
[ ] Manually tested across browsers / devices
[ ] Considered impact on accessibility
[ ] Design sign-off
[ ] Approved by product owner
[ ] Does this PR update a package with a breaking change

:tada: This PR is included in version 1.561.2 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


examples/recogonize.py does not work out of the box.

Minimum size of dataset is 4, I have the following hack in produce_by_path that works.
# minimum size is 4
dataset = {
    'd3mIndex': [0,1,2,3],
    'video': [video_name,video_name,video_name,video_name],
    'label': [0,0,0,0]
}

hey, even after trying this i'm getting the same error

what did you try? You need to hack the library code for this to work

AttributeError: 'PipelineRun' object has no attribute 'previous_pipeline_run_id'
Run Command
Running the command below
python -m examples.recognize --load_path fitted_pipeline --video_path demo.avi

Error
produces the error:
Exception has occurred: AttributeError
'PipelineRun' object has no attribute 'previous_pipeline_run_id'
  File "/autovideo/autovideo/utils/axolotl_utils.py", line 80, in produce
    pipeline_result = backend.produce_pipeline(_id, [test_dataset])
  File "/autovideo/autovideo/utils/axolotl_utils.py", line 106, in produce_by_path
    predictions = produce(test_dataset=dataset,
  File "/autovideo/examples/recognize.py", line 49, in run
    predictions = produce_by_path(fitted_pipeline, args.video_path)
  File "/autovideo/examples/recognize.py", line 69, in <module>
    run(args)
AttributeError: 'PipelineRun' object has no attribute 'previous_pipeline_run_id'

the error is due to mismatch of  data classes used for training(fitted_pipeline), and the inference data.

I have the same issue. Here are the relevant details.
Environment
torch==1.9.0 torchvision==0.10.0 numpy==1.21.2 opencv-python==<IP_ADDRESS> -e git+https://github.com/datamllab/autovideo.git@1fa896a5d481fea7db58975f1ed13e636cfeefc7#egg=autovideo
Line I Ran
python3 examples/recogonize.py --video_path videos/demo.avi --log_path logs/Oct31_log.txt --load_path weights/fitted_pipeline
Error Stack Trace
Traceback (most recent call last):   File "/Users/jaygopal/Documents/GitHub/autovideo/examples/recogonize.py", line 60, in <module>     run(args)   File "/Users/jaygopal/Documents/GitHub/autovideo/examples/recogonize.py", line 28, in run     fitted_pipeline = torch.load(args.load_path, map_location="cpu")   File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/torch/serialization.py", line 608, in load     return _legacy_load(opened_file, map_location, pickle_module, **pickle_load_args)   File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/torch/serialization.py", line 787, in _legacy_load     result = unpickler.load()   File "/Users/jaygopal/Documents/GitHub/autovideo/autovideo/common/denormalize.py", line 70, in <module>     class DenormalizePrimitive(transformer.TransformerPrimitiveBase[Inputs, Outputs, Hyperparams]):   File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/d3m/primitive_interfaces/base.py", line 117, in __new__     cls.metadata.contribute_to_class(cls)   File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/d3m/metadata/base.py", line 2987, in contribute_to_class     self._generate_and_update()   File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/d3m/metadata/base.py", line 3125, in _generate_and_update     generated_metadata = self._generate_metadata_for_primitive()   File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/d3m/metadata/base.py", line 3211, in _generate_metadata_for_primitive     arguments, instance_methods = self._get_arguments_and_methods(hyperparams_class, type_arguments)   File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/d3m/metadata/base.py", line 3494, in _get_arguments_and_methods     raise exceptions.InvalidPrimitiveCodeError( d3m.exceptions.InvalidPrimitiveCodeError: Method 'fit_multi_produce' has an argument 'produce_methods' with type 'collections.abc.Sequence[str]' and not an expected type: typing.Sequence[str]


minor metadata bugs

I noticed this typo where Sentinel-1 should change to Sentinel-2.
Also I noticed that when we open a dataset with gdal, we are not specifying that the data is open in read mode. I think by default the dataset is opened in update mode (GA_Update). Whenever we open the dataset for read only purpose, we may clarify that by specifying GA_ReadOnly. For example this may change to:
layer_gdal_dataset = gdal.Open(filename, gdal.GA_ReadOnly)

Thank you, @hfattahi . I'll update the code, but the "bug" has no effect at all. This happens because HLS Sentinel files have the attribute PLATFORM_NAME so, the processing of S30 products would enter in the first if statement here and will not (or should not) enter in the else if statement here, that includes the path to the line of code that you pointed out.
That else if statement is written to HLS Landsat products that do not have the attribute PLATFORM_NAME. These products have the attribute SENSOR instead.
In spite of that, I'll update the code to fix the typo.

I'll also add gdal.GA_ReadOnly to gdal.Open() following your suggestion. Thanks!

Thank you again for opening this issue, @hfattahi . Your comments (S1/S2 typo and opening files in read mode) were fully addressed in the mid-May point release:
https://github.com/opera-adt/PROTEUS/releases/tag/v0.3 .


Units in derived quantities title

Proposed changes
With this change, users can opt to have units in the titles of the derived quantities file. They can do this with a new argument within the DerivedQuantities class like so:
my_derived_quantities = F.DerivedQuantities(
    [
        F.TotalVolume("solute", volume=1),
        F.AverageVolume("solute", volume=1),
        F.MaximumVolume("solute", volume=1),
        F.MinimumVolume("solute", volume=1),
        F.SurfaceFlux("solute", surface=2),
    ],
    filename="derived_quantities.csv",
    show_units=True,
)

The unit is then added to the derived quantity's title, accounting for the mesh's dimension. For example, should a user call for a TotalVolume of the solute field in a 1D mesh case with units, the title will be Total solute volume 1 (H m-2) , whereas in the same case but in 2D, the title will be' Total solute volume 1 (H m-1) `.
The original format of the titles is left unchanged so as not to introduce breaking changes; however, it could be up for debate to change them to make them more consistent.
I have also taken the liberty to add doc strings to all of the derived quantities
Types of changes
What types of changes does your code introduce to FESTIM?

[ ] Bugfix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[x] Code refactoring
[ ] Documentation Update (if none of the other choices apply)
[x] New tests

Checklist

[x] Black formatted
[x] Unit tests pass locally with my changes
[x] I have added tests that prove my fix is effective or that my feature works
[x] I have added necessary documentation (if appropriate)

Further comments
If this is a relatively large or complex change, kick off the discussion by explaining why you chose the solution you did and what alternatives you considered, etc...

@jhdark can you push a dummy commit like add a comment somewhere to reopen this?

Starting new PR as branch is not recoverable


change page Indicator Image [SMPageControl] / EAIntroView in swift

http://stackoverflow.com/q/36965228/4837354

Good catch. Try looking for custom page controls that are subclasses of UIPageControl.
I'll update demo when I have time.

After looking through this - there is no ability to effectively subclass UIPageControl so we need to ultimately choose some particular custom PageControl that will suit all our customization needs.
Since there is no good open-source solution (SMPageControl is not maintained) - I will return to choosing/creating dependency when rewriting EAIntroView in Swift.
For obj-c SMPageControl hack is ok but I don't recommend it for Swift. I won't add SMPageControl as dependency now as I don't think that it is needed for most of users and others can use current workaround.


dependencies on bintray / jCenter

jFrog has announced that bintray and jCenter are going to shut down and after that it will become impossible to resolve jar/aar dependencies from there.
https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/
It has huge impacts among Android developers, and that would impact XamarinComponents too. At least there are handful of build.gradle files as well as C# classes such as Maven.csx that are being affected.

Thanks a lot @atsushieno
Will see what we can do.


Add Merchant: Capsul.org

What's the name of your business?
Capsul
What's the URL of the website?
https://capsul.org
Write a brief description of your business/service (max 50 characters)
Simple, Fast, Private Virtual Machines
Enter the URL where a Monero mention can be found

https://capsul.org/payment
How do you accept Monero? (choose only one option)

[ ] Monero integrations (github.com/monero-integrations)
[ ] Globee
[ ] Native wallet
[x ] Other payment gateaway (BTCPay Server)

How would you categorize your business? (choose only one option)

[ ] Exchange
[ ] Block Explorer
[ ] Payment Gateway
[ ] Library and Helper
[ ] Tool
[x ] Service
[ ] Goods
[ ] Entertainment

Comment
A service of https://cyberia.club

Looks legit.

Looks legit.

We are Very Legit.