Integrate latentscope into Vector-io

Hi @enjalot,
I'm working on a project called Vector-io https://github.com/AI-Northstar-Tech/vector-io, which allows people to port over their vector datasets across various vector DBs and store snapshots on disk in a simple format called VDF (parquet files and a metadata json file).
I would love to integrate latentscope as a way to visualize the vectors that people have stored in their dataset.
I'm linking to the issue I have in my repo for the integration: https://github.com/AI-Northstar-Tech/vector-io/issues/61.
I wanted to start by asking for help on a bug that I faced while using the web UI to load data from a parquet file in an example dataset I have: https://huggingface.co/datasets/aintech/vdf_20240125_130746_ac5a6_medium_articles/blob/main/medium_articles/medium_articles_2.parquet
I was able to complete the embedding step (though I plan to integrate into the new functionality you're planning for allowing people to use existing vectors), but for the clustering step I got this error:
Loading environment variables from: /Users/dhruvanand/Code/vector-io/.env
loading embeddings
RUNNING: umap-001
loading umap None
Traceback (most recent call last):
File "/Users/dhruvanand/miniforge3/bin/ls-umap", line 8, in <module>
sys.exit(main())
File "/Users/dhruvanand/miniforge3/lib/python3.10/site-packages/latentscope/scripts/umapper.py", line 29, in main
umapper(args.dataset_id, args.embedding_id, args.neighbors, args.min_dist, save=args.save, init=args.init, align=args.align)
File "/Users/dhruvanand/miniforge3/lib/python3.10/site-packages/latentscope/scripts/umapper.py", line 153, in umapper
initial_df = pd.read_parquet(os.path.join(umap_dir, f"{init}.parquet"))
File "/Users/dhruvanand/miniforge3/lib/python3.10/site-packages/pandas/io/parquet.py", line 670, in read_parquet
return impl.read(
File "/Users/dhruvanand/miniforge3/lib/python3.10/site-packages/pandas/io/parquet.py", line 265, in read
path_or_handle, handles, filesystem = _get_path_or_handle(
File "/Users/dhruvanand/miniforge3/lib/python3.10/site-packages/pandas/io/parquet.py", line 139, in _get_path_or_handle
handles = get_handle(
File "/Users/dhruvanand/miniforge3/lib/python3.10/site-packages/pandas/io/common.py", line 872, in get_handle
handle = open(handle, ioargs.mode)
FileNotFoundError: [Errno 2] No such file or directory: './medium_articles_2/umaps/None.parquet'

Oh no, I think I know what the issue is here. Could you go to the Job History page on the setup for your medium_articls_2 dataset? You should see the umap command that errored. it would be helpful to know the full command it tried to execute.

info_map job 577ae365-c579-4fe7-bacf-11f0db68fa4c
error
Running umap
ls-umap info_map undefined 25 0.1 --init=None
Loading environment variables from: /Users/dhruvanand/Code/vector-io/.env
loading embeddings
Traceback (most recent call last):
File "/Users/dhruvanand/miniforge3/bin/ls-umap", line 8, in <module>
sys.exit(main())
File "/Users/dhruvanand/miniforge3/lib/python3.10/site-packages/latentscope/scripts/umapper.py", line 29, in main
umapper(args.dataset_id, args.embedding_id, args.neighbors, args.min_dist, save=args.save, init=args.init, align=args.align)
File "/Users/dhruvanand/miniforge3/lib/python3.10/site-packages/latentscope/scripts/umapper.py", line 49, in umapper
with h5py.File(embedding_path, 'r') as f:
File "/Users/dhruvanand/miniforge3/lib/python3.10/site-packages/h5py/_hl/files.py", line 562, in __init__
fid = make_fid(name, mode, userblock_size, fapl, fcpl, swmr=swmr)
File "/Users/dhruvanand/miniforge3/lib/python3.10/site-packages/h5py/_hl/files.py", line 235, in make_fid
fid = h5f.open(name, flags, fapl=fapl)
File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper
File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper
File "h5py/h5f.pyx", line 102, in h5py.h5f.open
FileNotFoundError: [Errno 2] Unable to open file (unable to open file: name = './info_map/embeddings/undefined.h5', errno = 2, error message = 'No such file or directory', flags = 0, o_flags = 0)
🔁 Rerun
8838 seconds since last update

ah thank you, I see the issue. I'm working on a fix and will release a patch shortly

As a first step towards supporting a more direct integration I made a function in embed.py that allows you to create a latentscope embedding from a numpy array. I used your dataset as an example in this notebook:
https://github.com/enjalot/latent-scope/blob/main/notebooks/medium-articles.ipynb
it looks like the VDF file format would have all the parameters you'd need to call this function too

I'm getting:
AttributeError                            Traceback (most recent call last)
Cell In[15], [line 1](vscode-notebook-cell:?execution_count=15&line=1)
----> [1](vscode-notebook-cell:?execution_count=15&line=1) ls.import_embeddings("medium_articles", embeddings, text_column="title", model_id="openai-text-embedding-3-small")

AttributeError: module 'latentscope' has no attribute 'import_embeddings'

even after updating to 0.1.2

When I re-run via UI, I run into https://github.com/enjalot/latent-scope/issues/30 again

Sorry, I didn't include the import_embeddings in v0.1.2 so I just pushed v0.1.3 which should add the function.

There is some confusion on my setup, since I have imported files with the same name multiple times, and it seems to open the same scope for them. Would be good to create a new scope for each new parquet file loaded in via UI

I'm going to close this issue as I've captured the new ideas in #34 and vector-io compatibility in #32 and we fixed the original bugs you ran into. thank you!


Tag a new version?

There were some pretty important fixes for Android merged into master on November 30th, but the last tagged version was alpha.17, tagged November 20th. Is there a plan to tag a new version with this change? Would be a huge help for me!

Released


Extend normalize axes helpers to support dynamic shapes

Why not taking https://github.com/NervanaSystems/ngraph/blob/8b9cdbb9a693731c103bd6f8d92fe59cf72e0a67/src/ngraph/validation_util.cpp#L851 std::int64_t tensor_rank this argument as for example: std::uint32_t or std::uint64_t type? IMHO this would be more safe.

TESTNOW_DLDT_E2E

TESTNOW_DLDT_E2E


Implement pos = 'center' option

[x] Implement pos = 'center' option.

You had this as a TODO.
I had to rearrange a few things, as I needed access to width and height before setting line and col.
The centering logic is ripped from Telescope; You ever heard of Telescope?
Example usage...local win_id, win = popup.create(bufnr, {
    minwidth = config.width or 60,
    minheight = config.height or 10,
    pos = 'center',
    -- ...
})

If you fix conflicts, I will merge. Sorry for the delay


Development make hive signer account a configured variable

It works in my tests.  One caveat is the need to set base to the URL of the site in src/common/constants/defaults.json when setting a new HIVESIGNER_ID (CLIENT_ID) and HIVESIGNER_SECRET and also set USE_PRIVATE=0.  I've renamed the env CLIENT_ID to HIVESIGNER_ID, as it is related to HiveSigner.

I am confident that these lines of code would save anyone who uses this
feature headaches, but if it is a deal breaker, I'll remove it.
On Fri, Nov 18, 2022 at 11:56 AM Feruz M @.***> wrote:

Assigned #1088 https://github.com/ecency/ecency-vision/pull/1088 to
@shawnpringle https://github.com/shawnpringle.
—
Reply to this email directly, view it on GitHub
https://github.com/ecency/ecency-vision/pull/1088#event-7844637148, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAUVO5IAESS5O4HUCNZ5J4LWI6KLJANCNFSM6AAAAAARTOO27A
.
You are receiving this because you were assigned.Message ID:
@.***>

@shawnpringle one last thing, in readme could you replace Hive Signer with Hivesigner? Thanks


Module '"@prisma/client"' has no exported member

Just after installing this Package, I've been experiencing this error and i don't know how to fix it. Module '"@prisma/client"' has no exported member, Help if anyone ever encountered it

@prisma/client seems to be missing in the dev dependencies. try installing it

closing due to inactivity


hey nepcore

Hey nepcore, my summerhost is very sh*tty and illegal but i got a present for you
We have nulled your website to get this back up contact ovh or apologize 👍
Have a very sh*tty illegal summerhost  nepcore.
pv: you love my summerhost? http://summerhost.biz/ ?

Did you just DDoS an open source project because they hurt your feelings :skull: This is really, REALLY lame. ngl you should be ashamed of yourself.


feat(composer): add key events to transform controls

Overview
Users should be able to transform elements on screen using keyboard, as lack of keyboard control was flagged as a concern by our a11y auditor.
This PR allows users to manipulate nodes with the arrow keys. When a user focuses the canvas, left/right arrows adjust x axis, up/down arrows adjust y axis, and shift + up/down adjusts z.
Demo:
https://github.com/awslabs/iot-app-kit/assets/73560269/28437578-0b91-4f3c-a89c-fe016df660a8
Verifying Changes
Scene Composer
For scene-composer package changes specifically, you can preview the component in the published storybook artifact. To do this, wait for the Publish Storybook action to complete below.

Click on the workflow details
Select the Summary item on the left
Download the zip file

To run the storybook build locally, you need a local static web server:
npm install -g httpserver
cd <Extracted Zip Directory>
httpserver

Then open the website http://localhost:8080 to run the doc site.
Legal
This project is available under the Apache 2.0 License.

Really nice work John, this is pretty cool😎

Closing this PR as it overlaps with keyboard events from this PR: https://github.com/awslabs/iot-app-kit/pull/1898.
A11y concerns should be mitigated by being able to manipulate nodes in the Inspector panel.
If our a11y auditor wants more refined keyboard control of orbit controls, we can re-consider this (or similar) implementation.


Swap fail with standard tolerance 0.5% on https://swap.l3test.taiko.xyz/#/swap

Describe the bug
I tried to swap 2 times on https://swap.l3test.taiko.xyz/#/swap and it failed. I tried to swap from Eth -> BLL and Eth -> TTKOoe
After slippage increase to 10% I was able to frontrun and swap.
Steps to reproduce
Steps to reproduce here.
Additional context
Additional context here.

Most likely there is low liquidity in the pools :) Try swapping a lower amount


Unlatch?

Hello,
is there no option to unlatch?
This is by far the most important feature. Otherwise you are dependend from Nuki App to get it.

Yes, there is. I also use Nuki lock with unlatch function.
Unfortunately, lovelace UI doesn't show the "Open/unlatch" button in UI, but you can call lock.open service to unlatch.

	Thank you very much. I found it

Von: Konstantin @.***>Gesendet: Montag, Dezember 6, 2021 9:06 AMAn: kvj/hass_nuki_ngCc: Fidaninho; State changeBetreff: Re: [kvj/hass_nuki_ng] Unlatch? (Issue #8)
Yes, there is. I also use Nuki lock with unlatch function.
Unfortunately, lovelace UI doesn't show the "Open/unlatch" button in UI, but you can call lock.open service to unlatch.
—You are receiving this because you modified the open/close state.Reply to this email directly, view it on GitHub, or unsubscribe.Triage notifications on the go with GitHub Mobile for iOS or Android.


IGListSectionController background view API

Random thought I had today working on a tutorial for IGListKit.
What if we had an API to give IGListSectionControllers a backgroundView property sort of like UICollectionView has? This would make putting background/border views around a section pretty easy.
As for how it'd work, we could put the views in the IGListCollectionView itself and manage positions.

Also I'm open to hearing how to provide better section-border support natively too.

What's the current way to set the section background?

@ishabazz there isn't one 😄
I'm not sure how valuable this would be, and it could be pretty complicated keeping up w/ UICollectionView changes, so this might not be worth it.

@rnystrom IMHO the standard way of adding backgrounds to UICollectionView is through Decoration View.

@rnystrom
Any updates on this?
Problem : Wanting to divide a big cell into smaller chunks using a binding controller, but can't quite round corner & shadow'fy the UI. Consider multiple cells inside 1 rounded corner section with shadow.
Apologies if this has been discussed already, to describe the situation i'm in right now :
I tried using the decoration view, since it is a supplementary view behind the UICollectionCellView, my ASCellNode(using texture as well) is placed over the decoration view, since it is not a child of the decoration view, it doesn't get rounded off the corners, so it's like having a flat view placed over a rounded view, looks very weird.
Secondly, even the decoration view(by subclassing the UICollectionViewFlowLayout), seemed to be only wrapping each cell & not the whole section.


Integrate Snyc for Vulnerability Tests

Description of changes

snyk documentation
tldr
A vulnerability scanner for dependencies in node and ruby apps!
Issue Resolved

Fixes #496
Need to look into tests... Feel free to jump in!

This needs an API key for running the script at build time. It's free, you just have to sign up. I can do it for my own fork, but I thought I would make you aware of this. Thanks!

@hollomancer
I just sent you an invite to get the api key from snyk. Let me know if you have any questions. :smile:

I'd like @rickr or @hpjaj to weigh in on this, because I believe many Ruby developers have gems that do this exact task.
As for Node vulnerabiltiies? If we're keeping React updated, they'll do a much better job of handling security issues than snyk or we will ever do.
Essentially, if there's already a gem in place, this PR is unnecessary and so is #496

@sethbergman CI failed on this one. I'm going to close it.


Create better demo environment

The current Wagtail demo environment is based on a nightly releases of Wagtail, injected into bakerydemo. Instead, we should have a more stable, reliable, production-grade deployment of bakerydemo which people can use to get a better feel for Wagtail.
Much of this configuration is duplicated from https://github.com/wagtail/guide/pull/47
This is currently deployed to https://demo.wagtail.org/, but I'll setup automated deployment once this is merged.

Login

Wagtail Admin

Basic auth error page
This exists mostly to cover the old demo site.

I know this isn't a 4.0/4.1 upgrade but I've done a few 😄 and spotted some bits and pieces that could be updated.

Live Preview Links in the base.html
FieldPanel Customisations classname="full" can be removed.
In README.md there are some updates needed for the fixtures command. wagtailcore.pagerevision -> wagtailcore.revision

@nickmoreton I don't think any of those fixes are specific to the demo environment - feel free to open a new issue or PR for those!

@nickmoreton I don't think any of those fixes are specific to the demo environment - feel free to open a new issue or PR for those!

@gasman OK will do 👍

Have just tested bringing up the updated code as both a standalone local instance and through https://github.com/wagtail/vagrant-wagtail-develop, and can confirm that both work fine (and the only immediately visible change is the default login credential message on the login screen).


New version: Tensorial v0.4.0

Registering package: Tensorial
Repository: https://github.com/KeitaNakamura/Tensorial.jl
Created by: @KeitaNakamura
Version: v0.4.0
Commit: dd3ccfd9b5a27d979a462650297c061202e08578
Reviewed by: @KeitaNakamura
Reference: https://github.com/KeitaNakamura/Tensorial.jl/commit/dd3ccfd9b5a27d979a462650297c061202e08578#commitcomment-46768826

@KeitaNakamura ☝
[noblock]


Merge 6.x -> main; Modifications for HDP-161

I dropped all the changes to the terminus in the initial mergeup, then reapplied them as their own commit after doing the rework. Lemme know if something looks off about that.


Doc omission for legacyPortMapping property

legacyPortMapping doesn't exist anymore.

@dev-gaur : Could you please port it to Jkube?


[Validation] attributes do not work for page model properties or page handler parameters

For example, a page handler such as
public IActionResult OnGet([FromHeader, Required] string hosta)
{
    if (!ModelState.IsValid)
    {
        return BadRequest(ModelState);
    }

    // ...
    return Page();
}

should always return a BadRequestResult because the hosta header doesn't exist. Instead, the ModelState is valid and everything proceeds.
Notes: [Validation] attributes do work as expected for action parameters. The above problem applies to all [Validation] attributes, not just [Required]. And, the [Validation] attributes are ignored with or without additional attributes; [FromHeader] doesn't matter.

I assume this is just a feature gam, where Razor Pages don't follow the same model. @danroth27 , is this something we should build up to work similar to mvc actions?

I would think so, yes.

@NTaylorMullen, can you please confirm that we indeed don't have this area covered and that this is not a bug.

Updating title because validation also produces no errors when binding a page model like the following and nothing is submitted:
public class IndexModel : PageModel
{
    [BindProperty]
    [Required]
    public string Required { get; set; }
}

I've tried a couple of [Validation] attributes and property types. The results are the same.

Investigated and talked with folks. Here's what I found:

It's an oversight that public IActionResult OnGet([FromHeader, Required] string hosta) does not change ModelState.IsValid when not provided.
It's a bug that

[BindProperty(SupportsGet = true), Required]
public string Anything { get; set; } // On the page model

doesn't result in ModelState.IsValid being false when not provided.
@pranavkm mentioned that he's going to start working on a fix for the bug.

Hi,
Which release will include these fixes?

@sven5 the fix will be included in 2.1.0 Preview 2.

Hi,
I'm currently testing my Validation issue with preview 2.
It seems that MinLengthAttribute doesn't work.
My property is defined like this:
[BindProperty]
[Required]
[MinLength(1, ErrorMessage = "MinLengthAttribute_ValidationError")]
public int[] SelectedStores { get; set; }

It doesn't result in ModelState.IsValid being false when SelectedStores.Count() == 0
Did I miss something?
Regards
Sven

@sven5 - did you set the compatibility version to 2.1? https://github.com/aspnet/Mvc/blob/dev/samples/MvcSandbox/Startup.cs#L17
New features like this one in particular introduce lots of subtle behavior changes.

@rynowak
I missed that. Now it's working. Thank you.
There still is something strange:
The ModelState.Values Enumerable now contains my invalid property but the Key and SubKey are empty. I suspect that the consequence of this is that validation error for the field is not showing with

The validation error is displayed only in validation summary.
Regards
Sven

@sven5 what exactly is in the request when the error ends up with an empty ModelState key?
@rynowak maybe.

I'm reactivating this since there is something to figure out :)

Hi folks,
I figured it out now. It was a mistake on my side. Sorry for false alarm.
I had an issue with an array of hidden fields. The ModelState Value entry has been empty because the field was missing on post back.
Regards
Sven

Ok, great thanks for lettings know. Closing this


Allow calling OPENSSL_INIT_free() with NULL argument

This pull request is ready to merge

Merged to all the active branches. Thank you for the reviews.


[Test Stability] Retry e2e test consistently

Travis tests have been flaky recently:
https://travis-ci.org/facebook/react-native/builds
Clicking through the last 10 failures, 8 of them are caused by the npm install flakiness in the ./e2e-test.sh --packager. This test works in a very similar way to the iOS e2e test which we retry (see line 18). Let's be consistent.
All the random errors are 404s during npm install through Sinopia:

JS tests are more stable (saw 1 random failure but likely the test can be fixed), let's not retry them just yet:

Test plan (required)
Travis tests on this pull request.

@facebook-github-bot shipit


Provide release notes

Please, provide release notes for each release so we know what is fixed, which new feature is added, and most importantly, whether it has any breaking changes.

This, because with 0.1.27 i have no idea what has changed/improved.
Thanks

I have 0.1.17. Almost every release does not have notes... Dont know whether has breaking changes

I have to agree on this, and also need to automate it. BTW, there are no breaking changes since the first release, only small additions done every now and them.
Will keep this open to track automating the change log and release notes


[HOLD] [Wave Control] [QBD] [Advanced] Invoice account select page

Will be worked on by an external contributor (see https://expensify.slack.com/archives/C03SLTAEULW/p1726876645021139).
Design doc link: https://docs.google.com/document/d/1LQNlTBlHjFqRdru_4UkqVr0QRseNNDq2IhFFpXcgfwY/edit#bookmark=id.5ai9183a0pa1

Putting this on hold as this will be done later on as a next step, since the backend code needs to be done and requires a bit more planification.

Still on hold for this reason.

@kadiealexander should we close this and wait for a v2 of QBD for NewDot?

@lakchote yeah I think so, it turns out invoices aren't really supported in QBD!


Update security disclosure email address.

Signed-off-by: Mike Ng<EMAIL_ADDRESS>

/approve
/lgtm


[glbinding] Update to 3.1.0

Need to update to 3.1.0 to fix Visual Studio 2019 compile, more info here.

The changes has merged, close this issue now.


Fix which callback

Succeeding also when you fail is bad and confusing.

 Who thought that would be a good idea?

Will Release as 5.0.1 once I get at my Laptop

done!

Cheers, if only I could say this was the first time I made such a mistake. Or 2nd, 3rd, 4th, ....

It's just broken by design

I have the same issue with any async primitives I think. Like constructing promises, I guess anything with continuations. Confuse the intention of calling the callback ("return a value") with the actual current control flow.


Slack link broken

Hey all. The community slack link is no longer working - it redirects to a generic Heroku page saying "There's nothing here, yet": https://slack.mjml.io/
I'm guessing this coincides with the heroku billing changes for free dynos, but that was a little while back so it might be something else. Or it's possible the Slack is closed to new users :sweat_smile: in which case it probably needs removing from the readme :slightly_smiling_face:

Oh... Thanks for finding this we'll try to patch this is out asap !

Well the tool we've used is now deprecated here's the link until we update the website https://join.slack.com/t/mjml/shared_invite/zt-gqmwfwmr-kPBnfuuB7wof5httaTcXxg

Hey we did it 😬
Let's hope slack won't remove it this time 👍


Dependencies inventarisation and clean up

[ ] Create list of all dependencies which are used and where they are used.
[ ] Identify which ones are unused and/or could be removed.

Closed due to capacity shortage


OpenCV without X11 libs, auto versioning

OpenCV Python bindings unfortunately require deciding whether you want to depend on X11 libs or not (see here). Therefore AFAICS the dependency should be opencv-python-headless here.
Also proposing to switch to the newer packaging style, which also allows for painless single-sourced versioning (from git tags).

Thank you so much for the work, @bertsky


allow underscores in hostname due to docker link

see #104

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.

Thanks @tonicbupt - LGTM - merging.


BUG: invalid directory separator

In GetFontDetails and GetFontBytes, the font is being loaded by this code:
jsonFile, err := all.ReadFile(filepath.Join("all", normalizedFamilyName+".json"))
The problem here is that the all is an embed.FS which has hardcoded forward slash as directory separator. But filepath.Join will use the os.PathSeparator which will be backward slash on windows and that will result in file not found error.
Due to this fact, this library does not work on Windows OS. The solution here is to simply use:
jsonFile, err := all.ReadFile("all/" + normalizedFamilyName+".json")

Ref: https://github.com/stephenafamo/goldmark-pdf/issues/3

Should be fixed in the latest version.


Can't view created pages

I'm running Django 1.9 and Django CMS 3.2.1. When I create a new page, I can't navigate to it, I just get a 404. I can't access it in "Admin mode" either. I was able to create the root page at /, and that works fine
My url_patterns looks like:
urlpatterns = [
    url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')),
    url(r'^admin/', include(admin.site.urls)),
    url(r'^filer/', include('filer.urls')),
    url(r'^taggit_autosuggest/', include('taggit_autosuggest.urls')),
    url(r'^api/', include(router.urls, namespace="api")),
    url(r'^', include('cms.urls'))
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

I am not sure how compatible 3.2.1 is with Django 1.9. Does this also occur if you use the develop branch?

Oh, I was under the impression 3.2.1 was the first compatible release for Django 1.9, I'm not sure why I was under that impression. I'll revert to 1.8.9 and see what happens

I discovered this is actually do to DjangoCMS blog, so I opened a ticket there.
https://github.com/nephila/djangocms-blog/issues/214


please update readme

Hello,
please update your readme with something like you can find an example config file at workspace/config.json and server_address should contain ...
thank you in advance.

hello, that helped, partially, so do I need chrome or chromium browser? anyhow slither.io does not work for me on either of those browsers

also, the browser script refers to port 1337 on localhost which isn't open. is that a bug? do I need to start one more service? if so how?

When sync_api is started, port 1337 is available.

can you please point me towards an RTFM detailing how to start sync_api?
Also, what is the format of proxies.txt? is it proto://host:port/ or just host:port? what sort of proxies are supported? http? https? socks4? socks5?

After installing the package

which package?

just run start.bat

I'm on ubuntu linux

The npm install will automatically install the necessary packages, so all you have to do is run index.js using node after installation.

We may update the ReadMe to be based on this in due course. Thanks for your help!


Fixes odo watch when delay is set to 0

What type of PR is this?
/kind bug
What does does this PR do / why we need it:
Which issue(s) this PR fixes:
Fixes #?
PR acceptance criteria:

[ ] Unit test

[x] Integration test

[ ] Documentation

How to test changes / Special notes to the reviewer:

Execute odo watch --delay 0 on a odo component.

@mik-dass fixes https://github.com/openshift/odo/issues/3439

@mik-dass fixes #3439

I missed it. Updated the description.

When I set --delay=0, it pushes even when I have only opened some file in vim (made no changes whatsoever). I'm guessing it's considered as a change to the repo because opening a file in vim creates a .swp file.
Should this behaviour be addressed at some point (post v2, maybe?) to ignore .swp file by default?

I'm guessing it's considered as a change to the repo because opening a file in vim creates a .swp file.

Yes this is the due to the .swp files created by vim.

Should this behaviour be addressed at some point (post v2, maybe?) to ignore .swp file by default?

We already have the capabilities of detecting files to be ignored from the .odoignore/.gitignore file. There is even a flag in watch to filter out these files.

/hold
The integration test for --delay 0 is failing on the CI though locally and even on a slow network it is passing.

[odo]  ✗  Get https://raw.githubusercontent.com/odo-devfiles/registry/master/devfiles/nodejs/devfile.yaml: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

/retest

/retest


How to add jpegenc (to generate snapshot) and splitmuxsink (to generate video) together in a single pipeline?

@nnshah1
How to add jpegenc (to generate snapshot) and splitmuxsink (to generate video) together in a single pipeline?
I am able to add jpegenc or splitmuxsink separately in pipeline and its running properly. But if I add both together in a single pipeline Its generate snapshot only and video with 0 byte in size.
I have tried multiple combination for this issue. But not able to solve.
 I don't want to save each frames that's why I have used ImageCapture class in pipeline to save the particular snapshots only. What you have suggested will capture the image every frame is not required in my case.

There seems to be an interaction between the x264enc and the queue that stalls the pipeline (in my local experiments). Using vaapi elements I was able to get the output correctly. You may try putting a queue after the second t branch. The other thing to note is if you name the splitmuxsink element as splitmuxsink - pipeline server will set the location automatically to include the timestamp for the recording.
attaching the pipeline.json file and save_jpeg.py file for reference.
{
	"type": "GStreamer",
    "template": ["{auto_source} ! decodebin",
                  		" ! tee name=t ! queue",
				" ! gvadetect model={models[object_detection][person_vehicle_bike][network]} name=detection",
				" ! gvametaconvert name=metaconvert ! jpegenc ! gvapython module=/home/pipeline-server/save_jpeg.py",
		                " ! appsink name=appsink",
		                " t. ! queue ! vaapipostproc ! vaapih264enc ! splitmuxsink name=splitmuxsink muxer=avimux max-size-time=30000"
			],
	"description": "Person Vehicle Bike Detection based on person-vehicle-bike-detection-crossroad-0078",
	"parameters": {
		"type": "object",
		"properties": {
			"detection-properties": {
				"element": {
					"name": "detection",
					"format": "element-properties"
				}
			},
			"detection-device": {
				"element": {
					"name": "detection",
					"property": "device"
				},
				"type": "string",
				"default": "{env[DETECTION_DEVICE]}"
			},
			"detection-model-instance-id": {
				"element": {
					"name": "detection",
					"property": "model-instance-id"
				},
				"type": "string"
			},
			"inference-interval": {
				"element": "detection",
				"type": "integer"
			},
			"threshold": {
				"element": "detection",
				"type": "number"
			},
   		    "recording_prefix": {
			"type":"string",
			"default": "/home/pipeline-server"
		    }
		}
	}
}

from gstgva.util import gst_buffer_data
import gi
gi.require_version("Gst", "1.0")
# pylint: disable=wrong-import-position

from gi.repository import Gst

count = 0
def process_frame(frame):
    global count
    count +=1
    buffer = frame._VideoFrame__buffer
    with gst_buffer_data(buffer,Gst.MapFlags.READ) as data:
        filename = "frame-{}.jpeg".format(count%10)
        with open(filename,"wb",0) as output:
            output.write(data)
    return True


migrate/postgres: skip advisory lock for cockroachdb

This PR skips the use of pg_advisory_lock in impl Migrate for PgConnection if the string returned by SELECT version() includes the substring "CockroachDB".
This is necessary because the folks at CockroachDB haven't implemented it yet.
I actually don't know if this PR is the right approach (seems like it would be better for CockroachDB to do its best to implement support). Though for that matter, reading the postgres docs on advisory locks leaves me feeling a little confused because of the following:

PostgreSQL provides a means for creating locks that have application-defined meanings. These are called advisory locks, because the system does not enforce their use — it is up to the application to use them correctly.

Does this mean that locks held by the sqlx migration may not hold meaning or be honored by application(s) using the DB?
Anyway, it seems like this PR or something like it would be necessary for sqlx to run migrations against cockroach db instances older than whatever version finally supports pg_advisory_lock.
Also, for what it's worth this is the error I get without this PR:
Error: SQLXMigrateError(Execute(Database(PgDatabaseError { severity: Error, code: "42883", message: "unknown function: pg_advisory_lock()", detail: None, hint: None, position: None, where: None, schema: None, table: None, column: None, data_type: None, constraint: None, file: Some("name_resolution.go"), line: Some(205), routine: Some("ResolveFunction") })))

Oh yeah, I forgot to include in the description -- there is precedence in other projects for taking this approach: https://github.com/prisma/prisma-engines/pull/2635
Which doesn't necessarily mean it's the right approach here of course.

@mehcode wrote most of the migration machinery so I'd like him to chime in when it's convenient.
But from what I understand, the point of taking a lock is so that multiple instances of the application starting at the same time (for example, when deploying a new image to a Kubernetes cluster with >1 replicas) don't try to execute the same migrations at the same time, which could cause errors or data loss.
Advisory locks are one way to do this, but we could also just acquire an exclusive lock on the _sqlx_migrations table itself: https://www.postgresql.org/docs/current/explicit-locking.html#LOCKING-TABLES
lock table _sqlx_migrations in exclusive mode

exclusive mode blocks everything but concurrent reads.
I think a little bit of refactoring would be necessary as we'd have to create the _sqlx_migrations table outside of the exclusive lock in order to acquire one on it, but that's easy enough with create table if not exists.

@abonander is correct.
I'd be opposed to dropping locks for cockroachdb and would rather switch to an exclusive table lock for cockroachdb. That should maintain the same invariant.
@abonander Do you think there is any purpose in keeping the advisory lock here and downgrading to table lock or just doing only table lock?

Welp, unfortunately it looks like the LOCK statement isn't supported either, as it's not listed here: https://www.cockroachlabs.com/docs/stable/sql-statements.html
However, I think instead of trying to special-case for CockroachDB, we should maybe just have a no_lock flag on Migrator so it can work for other databases that talk the Postgres protocol but don't support manual locking.

But from what I understand, the point of taking a lock is so that multiple instances of the application starting at the same time (for example, when deploying a new image to a Kubernetes cluster with >1 replicas) don't try to execute the same migrations at the same time, which could cause errors or data loss.

Okay, this makes sense. I hadn't been thinking of the >1 replica situation and agree with you that it's probably not a good idea to enable that for CockroachDB until they implement some kind of appropriate locking mechanism. Would a transaction around the migration operations on _sqlx_migrations be sufficient?
Anyway, I hadn't thought to try it yesterday but today I see that sqlx migrate run works fine -- it's just the migrate! macro that doesn't work. So I actually don't need this PR or anything else fixed.

However, I think instead of trying to special-case for CockroachDB, we should maybe just have a no_lock flag on Migrator so it can work for other databases that talk the Postgres protocol but don't support manual locking.

I like the default being to keep the locking behavior and to opt in to disabling it -- if migrate! hadn't failed for me the way it did then i might have ended up dealing with some kind of funky data race during some random future migration. I do worry though, that allowing users to opt in to disabling it could be problematic for people who don't really understand the implications. I started hacking on support for this in the Migrator and added a comment to describe why it should be considered unsafe.

I started hacking on support for this in the Migrator and added a comment to describe why it should be considered unsafe.

@waynr were you going to add that here or in a new PR?

Closing due to inactivity. If you want to reopen, please follow up on my previous comment.

Hey @abonander my intuition is that it's best not to make it possible for migrations to be run in application without the advisory lock or something similar so I decided not to open a PR with my changes.


TRTorch with CUDA 10.0

Hi,
I tried installing TRTorch on my Ubuntu 16.04, PyTorch 1.5 compiled from source, CUDA 10.0, CUDNN 7.6.
I am getting a symbol error in all configurations I tried. I am grateful for any help.
seh2bp@trtorch:/workspace$ python -c "import torch; import trtorch" Traceback (most recent call last):   File "<string>", line 1, in <module>   File "/opt/conda/lib/python3.7/site-packages/torch/__init__.py", line 165, in <module>     from torch._C import * ImportError: /opt/conda/lib/python3.7/site-packages/torch/lib/libshm.so: undefined symbol: _Z8_THErrorPKciS0_z
ldd output is here:
seh2bp@trtorch:/workspace$ ldd /opt/conda/lib/python3.7/site-packages/trtorch/lib/libtrtorch.so         linux-vdso.so.1 (0x00007ffdff3c7000)         libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f338cc4d000)         libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f338c8af000)         libnvinfer.so.7 => /opt/tensorrt/TensorRT-<IP_ADDRESS>/lib/libnvinfer.so.7 (0x00007f337ec34000)         libcublas.so.10.0 => /usr/local/cuda-10.0/targets/x86_64-linux/lib/libcublas.so.10.0 (0x00007f337a69e000)         libcudnn.so.7 => /usr/lib/x86_64-linux-gnu/libcudnn.so.7 (0x00007f3362e8d000)         libtorch.so => /workspace/scer-docker/trtorch/files/libtorch/lib/libtorch.so (0x00007f3362c8b000)         libtorch_cuda.so => /workspace/scer-docker/trtorch/files/libtorch/lib/libtorch_cuda.so (0x00007f33211cc000)         libtorch_cpu.so => /workspace/scer-docker/trtorch/files/libtorch/lib/libtorch_cpu.so (0x00007f3311fae000)         libtorch_global_deps.so => /workspace/scer-docker/trtorch/files/libtorch/lib/libtorch_global_deps.so (0x00007f3311da9000)         libc10_cuda.so => /workspace/scer-docker/trtorch/files/libtorch/lib/libc10_cuda.so (0x00007f3311b73000)         libc10.so => /workspace/scer-docker/trtorch/files/libtorch/lib/libc10.so (0x00007f3311923000)         libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f331170b000)         libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f331131a000)         /lib64/ld-linux-x86-64.so.2 (0x00007f338cfd6000)         libcudart.so.10.0 => /usr/local/cuda-10.0/targets/x86_64-linux/lib/libcudart.so.10.0 (0x00007f33110a0000)         libmyelin.so.1 => /opt/tensorrt/TensorRT-<IP_ADDRESS>/lib/libmyelin.so.1 (0x00007f331088f000)         libnvrtc.so.10.0 => /usr/local/cuda-10.0/targets/x86_64-linux/lib/libnvrtc.so.10.0 (0x00007f330f273000)         libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f330f06f000)         libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f330ee50000)         librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f330ec48000)         libcudart-80664282.so.10.2 => /workspace/scer-docker/trtorch/files/libtorch/lib/libcudart-80664282.so.10.2 (0x00007f330e9c7000)         libnvToolsExt-3965bdd0.so.1 => /workspace/scer-docker/trtorch/files/libtorch/lib/libnvToolsExt-3965bdd0.so.1 (0x00007f330e7bd000)         libgomp-75eea7e8.so.1 => /workspace/scer-docker/trtorch/files/libtorch/lib/libgomp-75eea7e8.so.1 (0x00007f330e598000)
I tried different configurations:

use the downloaded libtorch built for cuda 10.2, I get the same error as above
use the installed libtorch (for a reason I don't understand I have 2 versions on in
.../site-packages/torch and one in .../site-packages/torch-1.5.0-py3.7-linux-x86_64.egg/torch. Build with .../site-packages/torch fails because it is missing optimizer.h. I will not give further detail as I believe it will just complicate the issue unnecessarily. Any help is welcome.

Are you able to import your custom built PyTorch on its own? It seems like the actual error has to do with missing symbols in PyTorch.

For building TRTorch with CUDA 10 a couple modifications need to be made. I would advise using the local repository dependency path (https://nvidia.github.io/TRTorch/tutorials/installation.html#building-using-locally-installed-cudnn-tensorrt)
I would do the same for your locally built LibTorch, you can actually use the site packages directory as the source (This will only work for the Pre-CXX11-ABI compilation path)
Replace this section:
https://github.com/NVIDIA/TRTorch/blob/29a4dbfb64848dae1d535f13df52185c794e5668/WORKSPACE#L35
With
new_local_repository(
    name = "libtorch_pre_cxx11_abi",
    path = ".../site-packages/torch",
    build_file = "@//third_party/libtorch:BUILD",
)

And if you are compiling for C++ build with the bazel build //:libtrtorch --config pre_cxx11_abi. For Python this is done for you.
You also need to make the following line changes
https://github.com/NVIDIA/TRTorch/blob/29a4dbfb64848dae1d535f13df52185c794e5668/WORKSPACE#L31
This line needs to point to your CUDA 10.0 directory,
https://github.com/NVIDIA/TRTorch/blob/29a4dbfb64848dae1d535f13df52185c794e5668/third_party/cuda/BUILD#L6
and this line needs to point to cudart.so.10.0

Thanks!
You were right the problem was with installing Pytorch for CUDA 10.0 with GLIBCXX_USE_CXX11_ABI=0.
Issue description here: https://github.com/pytorch/pytorch/issues/31943


Shaka player not working only on android emulator and android app

Shaka player with mpd dash not working on android app but its working on android chrome browser.
The media player issue like that
resetDrmState:  mDrmInfo=null mDrmProvisioningThread=null mPrepareDrmInProgress=false mActiveDrmScheme=false
cleanDrmObj: mDrmObj=null mDrmSessionId=null

Here is an article that explains how to use DRM in a webview within an app: https://amokranechentir.hashnode.dev/android-play-drm-protected-content-inside-a-webview


Remove author tag

What is this PR for?
Remove author tag from java doc since Zeppelin doesn't encourage to use it
What type of PR is it?
Documentation
Is there a relevant Jira issue?
N
Questions:

Does the licenses files need update? N
Is there breaking changes for older versions? N
Does this needs documentation? N

+1 (non-binding)

LGTM

LGTM

@minahlee , could the class comment created by be used instead of @author tag in zeppelin sources?

@dlukyanov The reason I removed the author is not @author tag itself but because of ownership of the code. All code contributed to this repository is owned by Zeppelin community not by specific author.
I found one jira issue from Apache Taverna community which listed out discussion around it. Hope this help you to understand why we don't leave footprint in the code.


Add tooltip and change background color of subscription icon

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/35618
PROPOSAL: https://github.com/Expensify/App/issues/35618#issuecomment-1922653726
Tests

Hover over the workspace switch button
Verify that the tooltip appears with the text is Choose a workspace
Verify that the background color of subscription is changed

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

Offline tests

Same as above
QA Steps

Hover over the workspace switch button
Verify that the tooltip appears with the text is Choose a workspace
Verify that the background color of subscription is changed

[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: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb 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 the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[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 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(theme.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 the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label so the design team can review the changes.

[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.

Screenshots/Videos

Android: Native

Android: mWeb Chrome
https://github.com/Expensify/App/assets/129500732/e0720182-161b-4063-bfc6-431b8915c663

iOS: Native

iOS: mWeb Safari
https://github.com/Expensify/App/assets/129500732/3f73bb5d-580f-4c74-85e5-422a882eede7

MacOS: Chrome / Safari
https://github.com/Expensify/App/assets/129500732/19534ad0-4dc5-4aa4-b2d3-466f69b288ac

MacOS: Desktop
https://github.com/Expensify/App/assets/129500732/a1356e4c-2144-45bc-8b89-4ce3734d6284

I am a bit confused here, what is the subscription icon?
In your video though, why are you changing the border color of the small button over the workspace icon?
Think of the small circular button that is on top of the workspace avatar as just a button. A default button. We want to use the same existing styles of default buttons here, so that means just changing the background color on hover as well as a pressed state.

Also, it looks like something changed with the border color too? The button should have a border around it like this:

Yup @GandalfGwaihir that indeed looks like what we expect the behavior to be here, thanks for the video!

cc @mountiny for thoughts here - I think we picked an incorrect proposal and it looks like @GandalfGwaihir's proposal was actually what we were looking for.

cc @hayata-suenaga seems like is assigned, I was not involved so do not have context behind picked proposal

SubscriptAvatar - This is a component that we used to display the avatar like workspace switcher button.

@mountiny @kosmydel any context why we named it this way? This really has nothing to do with your subscription... internally we've always referenced this as the WorkspaceSwitcher too.
Either way, yes, the small button inside of the workspace switcher is just a button and it should have :hover and :press functionality like all of our other buttons. Hopefully that helps clear things up, curious what you think the next steps are from here.

Ah, got it. Wow... that still feels like quite the stretch of a name? Why not name it something more friendly like AvatatarWithArrowButton or something? I guess that's a different conversation for a different day...

Ah, got it. Wow... that still feels like quite the stretch of a name? Why not name it something more friendly like AvatatarWithArrowButton or something? I guess that's a different conversation for a different day...

This component was created two years ago. Probably we just reused it (I wasn't author of this change).

Cool, I don't feel too strongly from a technical perspective - definitely curious what the C+/engineers think about for that.

As noted it was around for a while. I agree that AvatarWithSubscript would be cleaner.

I don't think we need additional component just to add the hover effect. Let's stick with the chosen proposal and add an extra prop.

building ad hoc build so that Shawn can check the final design

I think that looks good to me! Thanks!

: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/hayata-suenaga in version: 1.4.40-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
failure ❌

🚀 Deployed to production by https://github.com/mountiny in version: 1.4.40-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
failure ❌


Attempt to invoke virtual method 'java.lang.Object android.content.Context.getSystemService(java.lang.String)' on a null object reference

@eggli @pushy Firebase crashlytics has detected this crash on android. Every user is facing this crash. I am using following versions:
"pushy-react-native": "^1.0.29",
"react-native": "0.70.5",

Hi @faisalur-rehman,
Thanks for your patience and for your response.
This issue has now been fixed in the latest version of the Pushy React Native Android SDK.
Please import version 1.0.19 of the Pushy React Native Android SDK by updating the following dependency in your android/app/build.gradle, within the dependencies {} declaration:
// Pushy SDK for React Native Android
implementation 'me.pushy:sdk-react-native:1.0.19'

Then, re-build and re-run your app, and the issue will be resolved. We apologize for any inconvenience caused by this issue.


Keyword for retrieving Browser console logs

Selenium offers the possibility to fetch its browser console logs in a following way :
    def get_browser_logs(self):         seleniumlib = BuiltIn().get_library_instance('SeleniumLibrary')         browser_logs = seleniumlib.driver.get_log('browser')
For the new browser library approach, there is no such thing available yet, although that playwright itself offers some classes which might do the trick ( consoleMessage ).
Request : provide keyword so that in an easy way the console logs of a session can be captured, and used for post-UI-run processing.

Experimented with this for a while. This PoC somewhat works but it is not yet enduser ready solution.
I'll anyway show it here for now for further work.
extension.js
async function pipeLogToRF(page) {
   let messages = [];
   page.on('console', message => {
       console.log(message);
       messages.push(message.text());
   });
   await new Promise((resolve) => {
    setTimeout(() => resolve(), 5000)
    });
   return messages;
}

exports.__esModule = true;
exports.pipeLogToRF = pipeLogToRF;

*** Settings ***
Library   Browser  jsextension=${CURDIR}/extension.js

*** Test Cases ***
Example Test
   Open Browser  https://www.reaktor.com
   ${p}=  Promise To  pipeLogToRF
   Click  a[data-title="Work"]
   Sleep  1
   Take Screenshot
   Go to  https://www.hs.fi
   wait until network is idle
   ${data}=  wait for  ${p}

Closing because  #745 is done. Please tell us if something is missing from the new feature implemented in  #745


Add support for C++20 Compilation

Couple of notes on C++20

LEMON 1.3.1 has an issue that needs to be resolved related to allocators. (Included a patch from https://lemon.cs.elte.hu/trac/lemon/ticket/631#no1)
fmt in versions greater than 8 added the ability to constexpr compile format lines. The downside is runtime strings need to be wrapped in fmt::runtime. Added FMT_RUNTIME macro to support both version. The current version of spd_log is on version 7 of FMT
template ids on constructors and destructors has been removed. Removed usage in abk libs.

Introduced a github action to build openroad on c++20. Should prevent any usage of non-supported c++20 features, but this does not mean the project is moving to c++20 yet.
OpenROAD will stay on C++17

ABK required a format see https://github.com/The-OpenROAD-Project/OpenROAD/pull/2785/commits/196ce1dad35a6985e9a23ea469f844b68db8675b#diff-f5e647735a7b1efd76bcb1f5f3a12f573e699220fa7bfbc3e68a1e9f339aa6d1
for C++20 changes only

@vvbandeira please comment on the action & build changes.

@vvbandeira I updated the spdlog version in the Dependency Installer script to v1.10.0. @maliberty signed off.
Letting you know so you can update the docker images in Jenkins.

@vvbandeira we'll need to update the CI images for the spdlog update

@maliberty This is ready to go on my side let me know if you need any more changes.

lgtm but I'll leave it to @vvbandeira to approve and coordinate the spdlog upgrade.

Just noting I was looking to use std::span which I believe is available as of C++20, in case the motivation is helpful. :-)

@vvbandeira Any objections to merging?

@cdleary std::span (gcc10) appears to not be supported by gcc8 on centos7. Which we need to continue to support. boost::span appears to be the next best option.

@cdleary we are only saying you can compile OR with c++, not that we are moving to c++20.  Any c++20 or later features should not be used in OR.

@vvbandeira gentle ping on CI update for the C++20 patch. I think it's ready to go.

@QuantamHD, apologies for the delay. I have started to generate the new CI image, but since I am travelling today, it will be best to do the switch tomorrow when I have a more stable connection to address any issues.

No rush just wanted to make sure it was on your radar. Thanks for taking a look


Consider only checking for persistency once?

Hi, I've just started trying out MSW recently, and it's mostly going great.  But I do have one small annoyance.  In one of my tests I'm checking for calls to a local storage mock, and I am seeing roughly 90 checks from MSW for MSW_COOKIE_STORE_test.  I wonder if instead of checking for supportsLocalStorage() in every hydrate() and persist() (which I guess can happen a lot?), maybe it can be done once (maybe in the constructor) and the result cached?  I'm not very familiar with the architecture here so maybe that's a bad suggestion, but I thought I'd at least bring it up.
Thanks!

Hi, @IanVS 👋 I think that's a fantastic idea. I'm not sure why we are checking it on each hydrate/persist. The availability of the storage isn't expected to change between those calls.
We are better off checking it on the root of store.ts (once you import the module) as the store availability is dictated by the environment where you import the module from.
Please, would you be interested in opening a pull request to help us fix this?

Released: v1.1.1 🎉
This has been released in v1.1.1!

📄 Release notes
📦 npm package

Make sure to always update to the latest version (npm i @mswjs/cookies@latest) to get the newest features and bug fixes.

Predictable release automation by @ossjs/release.


macOS: Implement ODB Editor Suite

Some apps that I use (like nvAlt) offer the possiblity to edit text in an external editor if it supports the ODB protocol defined there: https://www.barebones.com/support/develop/odbsuite.html
Do you think it is possible to use the Apple Event Manager from an electron app?

/cc @alexandrudima


Rename --output and --file flags for better understanding

What would you like to be added:

--output -> --format
--file -> --output

Formats: syft-json cyclonedx-xml cyclonedx-json github github-json spdx-tag-value spdx-json table text
Output: file to write the default report output to

Why is this needed:
It's a bit hard to distinguish both of --output and --file flags in the first place. output seems like "i want to write output to a file name arg0"; file is really hard to understand what it is for.
Additional context:
-
cc @developer-guy

Thanks @Dentrax! I suspect this is related to the conversations we're having here?
https://github.com/anchore/syft/issues/1061
I'm a little hesitant to make this kind of breaking change even though we're pre v1.0 since it's a large shift from what we currently have as far as the CLI surface area and its interfaces. I do admit that I have my own biases about the current state of the flags
since I've been working on the tool a while.
cc @anchore/ci-tools-project if anyone wants to weigh in here since I don't have a great answer on 👍 or 👎 for this request.

I think there's some misunderstanding about what the --output flag currently does, which may be confusing and we may want to revisit... but --output allows you to specify multiple instances of both an output format AND an output file, for example --output spdx-json=/path/to/file.spdx.json. If this is renamed to format in its current state, it would not be as correct. Now that there is a syft convert command, I would propose removing the multiple output option, so --output <format>[=file] would just go away, and at that point, --output could easily be renamed to --format, as far as I'm concerned. As for --file, I would agree with this being renamed to what seems to be more commonly referred to in CLIs as --output. I would not make these changes together, as @joshbressers noted: deprecate --output, transition to --format while removing the file option, and subsequently deprecate --file with a transition to --output. Just my 2c here.

I think first steps here is getting a readme update that clearly explains what Keith mentioned above. That will take away some of the confusion.
We keep --output and deprecate file since --output has all the same functionality grouped together.

Hey all, after some discussion we decided to try improving the --output help text and docs, and deprecate --file. You can of course still use shell redirection, too. Please see the related issues for Syft and Grype and if you have further comments, go ahead and put them there. Thanks!


alt+shift toggles window.menuBarVisibility even when the menu bar is disabled

I'd like to completely disable the menu bar - both hide it & have 0 keybindings to activate/toggle it.
I am unable to do this because the key combination alt + shift still activates the menu bar (see "Steps to Reproduce").
$ vscodium --version
1.40.0
86405ea23e3937316009fc27c9361deee66ffbf5
x64

$ uname -a
Linux arch-usb 5.3.11-arch1-1 #1 SMP PREEMPT Tue, 12 Nov 2019 22:19:48 +0000 x86_64 GNU/Linux

Steps to Reproduce:

Set the following settings @ settings.json:

	"window.customMenuBarAltFocus": false,
	"window.enableMenuBarMnemonics": false,
	"window.menuBarVisibility": "hidden"

Make sure the menu bar is hidden

(if you toggle it via F1, the setting window.menuBarVisibility will get changed to default and then to toggle - double-check yourself that it's set to hidden after hiding it)

alt now does NOT open the menu bar. Great. Now try with alt + shift... The menu bar comes back 😒

Reproduces without extensions: Yes
See also:
https://github.com/microsoft/vscode/issues/66116
https://github.com/Microsoft/vscode/issues/63325
the solution from these issues is to set the window.enableMenuBarMnemonics to false, but it does not help in my case.

From the keyboard shortcuts menu, the command workbench.action.toggleMenuBar does not have any key bindings assigned to it, and I'm unable to unbind it (though the first 2 options from step 1 should get rid of the binding anyway).

P.S.
I'd love to set the "window.menuBarVisibility" to compact, but, as mentioned in the Default Settings, it's ignored when window.titleBarStyle is native.
(//  - compact: Menu is displayed as a compact button in the sidebar. This value is ignored when 'window.titleBarStyle' is 'native'.)
is there a specific reason for this?
Couldn't one fit the compact button for the menu bar inside the Activity Bar, just like the Explorer, Search, Source Control & custom bars for extensions, without requiring the window.titleBarStyle to be custom instead of native?
This would also allow the user to re-order it etc.
And I highly prefer the compact version of the menu bar - it's great!

For me on arch linux + i3gaps, the custom instead of native mode sucks - it takes up way more space rather than the menu bar would itself:

Thank you very much - lemme know if I can help with anything else.

Here maybe possible workaround https://github.com/electron/electron/issues/11106#issuecomment-441350115

Also downgrading from 1.40 to 1.39 helps too. What is changed on 1.40 release for menu implementation?

@deepak1556 this is not only upstream-issue-linked, this is regression of VS Code, because on  1.39 all works well. Can you please lookup what is changed with menu implementation in 1.40?

Thanks very much for all the great work on VSCode, which I love.
I'm finding this regression highly vexatious because it happens a high fraction of the times I do a multi-cursor operation (which I do very frequently) and causes focus to be lost, requiring me to alt-tab to another window and back. This substantially interrupts my flow.
A fix would be very much appreciated. Thanks. In the meantime, I think I'll downgrade to 1.39.

Can anybody post download links to VS Code 1.39 version packages?

Previous versions are available on, eg, https://code.visualstudio.com/updates/v1_39.
I used https://update.code.visualstudio.com/1.39.2/linux-deb-x64/stable. I prevent it from updating to latest again with sudo apt-mark hold code.

After investigating I see that workaround, described in https://github.com/electron/electron/issues/11106#issuecomment-441350115 is not work, so Electron 6.0 release produce new regression,  and I post separate issue about this: https://github.com/electron/electron/issues/22213
Hope that it will be fixed quicker in separate thread!

Ubuntu 18.04 + KDE not working even on 1.39.2. "Alt+Shift" still focus menu despite all recommendations :(

I've been on 1.39 for some time because of this issue. @mrkeuz's comment prompted me to upgrade to 1.47 and it seems that the issue I had is now fixed. That said, I can't speak for the OP.

Debian 10 + Gnome 3.30.2
tested on 1.39.2 - works properly as @MurzNN said.
tested on 1.47.3 - still a proplem
tested on 1.48.0 - still a problem
I would like to clarify the steps to reproduce. pressing alt then shit then releasing alt first will cause the issue, the issue does not occur when releasing shift first.
also experiencing this in Signal-Desktop https://github.com/signalapp/Signal-Desktop/issues/3621

Hello!
Thanks for your valuable comments! I would like to give you some extra information about the issue and how to reproduce. The system I tested is:
Operating System:

Distributor ID: Linuxmint
Description: Linux Mint 20.1
Release: 20.1
Codename: ulyssa
Desktop Environment: MATE

Visual Studio Code:

Version: 1.55.2
Commit: 3c4e3df9e89829dce27b7b5c24508306b151f30d
Date: 2021-04-13T09:37:02.931Z
Electron: 11.3.0
Chrome: 87.0.4280.141
Node.js: 12.18.3
V8: <IP_ADDRESS>-electron.0
OS: Linux x64 5.4.0-72-generic

As a requirement, I want to have my menu bar visible. I have followed the steps mentioned by @mrkeuz and I have found the following in my system:
Finding 1
When I set:
"window.titleBarStyle": "custom"

the Alt + Shift combination works correctly both in Text Editor and Command Palette.
Finding 2
When I set:
"window.titleBarStyle": "native"

the Alt + Shift combination changes the language but enables the focus on the Menu. Therefore the focus is lost from the Text Editor. If used in the Command Palette, then the Palette is closed.
However, the combination Shift + Alt (note the Shift first) works without any issue.
Finding 3
The same issue occurs in my installation of Skype for Linux (Skype version <IP_ADDRESS>) so I tend to believe that it might be an Electron issue after all.
I hope it helps in the debugging.
Best regards,
Christos

Here https://github.com/electron/electron/issues/28088 is fresh Electron issue about this problem.

Hooray! Electron issue https://github.com/electron/electron/issues/28088 is fixed! Can we import this patch without waiting for next Election release?

Latest insiders https://code.visualstudio.com/insiders/ contains the upstream fix. Can anyone verify, thanks!

I tested it on KDE 5.22.0 (KDE Frameworks Version: 5.82.0, Ubuntu 21.04 Linux) - it fixed now, great thanks for fixing!


bug: modal doesn't dismiss when backdrop is clicked on IOS

Bug Report
Ionic version:

[x] 5.x
Current behavior:

On IOS, ion-modal does not dismiss when backdrop is clicked even though backdropDismiss is set to true.
Expected behavior:

ion-modal should dismiss when backdropDismiss is set to true.
Steps to reproduce:

Open a modal which has backdropDismiss set to true and click the backdrop.
Related code:

Template
    const modal = await this.modalController.create({
      component: ItemModalPage,
      cssClass: 'item-modal',
      backdropDismiss: true,
      showBackdrop: true,
      animated: true,
      componentProps: {
        item: item,
      },
    });

CSS
.item-modal .modal-wrapper {
  top: 40%;
  bottom: 0;
  left: 0;
  right: 0;
  position: fixed;
  display: block;
  border-radius: 2px;
  min-width: 100%;

}
Other information:

As mentioned above, this only seems to happen on IOS
Ionic info:

Ionic:

   Ionic CLI                     : 5.4.13 (/Users/chris/.nvm/versions/node/v12.9.0/lib/node_modules/ionic)
   Ionic Framework               : @ionic/angular 5.1.0
   @angular-devkit/build-angular : 0.1000.0-next.3
   @angular-devkit/schematics    : 10.0.0-next.3
   @angular/cli                  : 9.1.4
   @ionic/angular-toolkit        : 2.0.0

Cordova:

   Cordova CLI       : 9.0.0<EMAIL_ADDRESS>   Cordova Platforms : android 8.1.0
   Cordova Plugins   : cordova-plugin-ionic-keyboard 2.2.0, cordova-plugin-ionic-webview 4.1.3, (and 7 other plugins)

Utility:

   cordova-res : not installed
   native-run  : 1.0.0

System:

   Android SDK Tools : 26.1.1 (/Users/chris/Library/Android/sdk/)
   NodeJS            : v12.9.0 (/Users/chris/.nvm/versions/node/v12.9.0/bin/node)
   npm               : 6.14.4
   OS                : macOS Catalina

Reproduction

Thanks for the issue. I am going to close this as this is not a bug in Ionic Framework.
I noticed you are applying custom styles to the modal wrapper. There is a .modal-shadow div that you need move as well in addition to doing top: 40% on .modal-wrapper. Moving the modal shadow fixes the issue.

Sorry for that and thanks very much for the solution!


change analytics, preparing it to be used by foundation endpoint

removed: installation_id, session_id
added: analytics_id (random. once per run. like a session)
removed: external ip
missing: monitoring other calls to see what else to change.
should analytics_id be session based or installation based? if installation based, save a file like installation id?

we need to rethink how to do anon analytics


Filter

Pull request template
Checklist

[ ] I have read the CONTRIBUTING guide
[ ] branch rebased on master
[ ] styleguide check npm run validate
[ ] good naming
[ ] keep simple
[ ] video or screenshot attached
[ ] testing instruction attached
[ ] check your PR once again

Description

Video or screenshot

What and how to test

To test it locally run git fetch origin refs/pull/2590/merge:pr2590 && git checkout pr2590 where 2590 is number of this pull request

https://github.com/swaponline/MultiCurrencyWallet/issues/2684


skip_bugsnag is not functioning

Describe the bug
The description in the official documentation states that even when using the "skip_bugsnag" configuration, notifications to Bugsnag are not stopping.
Has the bug in this issue not been resolved?
https://github.com/bugsnag/bugsnag-ruby/issues/470
Steps to reproduce
sample code↓
    begin
      raise StandardError
    rescue StandardError => exception

      Bugsnag.notify(exception)
      exception.instance_eval { def skip_bugsnag; true; end }

      raise ActionController::RoutingError, 'not_found'
    end

Environment

ruby3.1.4
raills6.1
gem bugsnag6.26.0

Hey, @jibiking
skip_bugsnag works on the specific instance of the exception you apply it to. In your example you're applying it to exception but raising a RoutingError afterwards. That means that the RoutingError doesn't have skip_bugsnag applied to it, which results in it being reported to Bugsnag
To make it work you'd need to apply skip_bugsnag to the RoutingError before raising it, like this:
begin
  raise StandardError
rescue StandardError => exception
  Bugsnag.notify(exception)

  routing_error = ActionController::RoutingError.new('not_found')
  routing_error.instance_eval { def skip_bugsnag; true; end }

  raise routing_error
end

If you want to ignore all RoutingError exceptions, take a look at the discard_classes configuration option
Hope that helps!


Misplaced Crafting Recipe When Using Integrated Dynamics Storage Terminal

I'm currently playing ATM VolcanoBlock (which is a 1.19.2 Forge modpack) and added EMI to it.
When I tried to craft using the Storage Terminal from Integrated Dynamics the recipe is like shifted by one slot, for example the following recipe should be the chest surrounded by the planks.

And here is what should be a crafting table:

The issue happens in singleplayer and multiplayer. I haven't tried an isolated instance with only Integrated Dynamics and EMI yet.

A bit more of info, the fill feature works as correctly if I only use JEI instead of adding EMI

I seem to be having this issue as well on a custom built modpack for 1.19.2. Some items seem to be voided entirely if it goes off the crafting table while moving a recipe into the crafting table!

I'm also having this issue in my pack, and it seems to void the top left item in the 3x3 table, and I'm having similar issues with RFTools Storage's storage scanner, and Simple Storage Network's storage request table

Sorry for the delay on this one, it's been resolved in 1.0.20


No javascript framework version

This is almost the same file but with pure javascript.

Awesome!

do unit tests still pass ?

Tests completed in 78 milliseconds.
40 tests of 40 passed, 0 failed.
api definition (0, 4, 4)Rerun
add/has methods (0, 6, 6)Rerun
get method (0, 25, 25)Rerun
guesser (0, 5, 5)Rerun

Tested with Firefox, IE, Chrome

Thanks!

Don't forget to change the Prerequisite :D

Oh, I forget one thing :
var ExposeTranslation = new function...

I forget the var word. Can you add it, please.

done :)


Overhaul of macro_magic using decl macro callbacks

This represents a major overhaul of macro_magic using a new trick I found involving decl-macro-based callbacks. This will allow us to completely remove indirect imports and supplement that entire feature with this approach which is much more powerful and doesn't rely on writing files in the OUT_DIR.

As of latest commit, 100% works in principle, and we are able to write custom attribute macros that import tokens, without any sketchy IO stuff.
The main trick the new stuff relies on is the fact that decl macros are capable of passing around callbacks to each other, so if we set up #[export_tokens] to crete a hidden decl macro at that level which takes in a callback and passes the item's tokens to the callback, we can chain this with other proc macros to eventually give us a situation where we have a normal proc macro function signature and we magically have the tokens of some exported item in addition to the item our macro is attached to.

The proc macro example now works. Just need to clean up, add a few more tests, and this should be good to go. 0.1.2 is on the horizon!

Note that the import_tokens_attr_outer_quote method only exists because of https://github.com/dtolnay/quote/issues/249


[JS and C#][Templating Functionatity] [IsMatch AEL is not parsing RegEx properly]

Platform

[ ] JavaScript
[ ] .Net

Author or host
We are using JS Renderer to render adaptive cards into Web application as well as we are sending Adaptive Cards to Outlook as well.
Version of SDK
Adaptive Cards Templating Version 1.1.0
Details
We are using isMatch AEL function. We tried to provide below regex to that and realize that we are not reaching to expected results.
E.g.

[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])
[0-9]{2}[-|/]{1}[0-9]{2}[-|/]{1}[0-9]{4}
/\d{4}-\d{2}-\d{2}/
^(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])-[0-9]{4}$

Also we have observed that isMatch is working if we utilize with $When condition however same is not working when we embed inside If Condition
E.g. :

${if(isMatch(propertyValue, '[-+]?[0-9]*\.?[0-9]+'), formatNumber(float(propertyValue), 2), propertyValue)}

@dclaux is this on your radar for 20.11 for JS? @RebeccaAnne I may need you to pitch in to help fix this for .NET in AEL

This looks like a dupe of this: https://github.com/microsoft/AdaptiveCards/issues/5033
Can we close this? I added comments to the other issue. I am not able to repro in JS (haven't tested .NET templating/AEL though).

Closing this as it is duplicate of #5033


Allow girder IO mode to use memory targets

Before, we only supported filepath targets. For backward compatibility,
they remain the default, but one can now specify target="memory" for
fetching and pushing.

So I had a mental error and totally forgot about #161, which was actually an attempt to do this same thing. However, this version of the change supports both filepath and memory targets, so I think we should go ahead and use this one and close the other PR.

@zachmullen if this supersedes https://github.com/Kitware/romanesco/pull/161 feel free to close it.  Fixing that PR got put on the backburner and I never got back around to them.

@jeffbaumes fixed that issue, and I tried to explain the odd syntax in that last commit message.

After docs clarification LGTM.


Gem updates and factory_bot breaking change fix

This is the result of bundle update which I normally do not like to do but I wanted to see what would happen since internally someone had a stdlib/ruby compat issue.
There's a breaking change on a patch level semver bump on factory_bot ❔that is surprising but is fixed in this PR.  In case we need to move up a version for other reasons, this might be a useful PR and did not want to just throw this away.
Here is the summary from bundle update, skipping things that did not change:
Using public_suffix 4.0.7 (was 4.0.6)
Using simplecov_json_formatter 0.1.4 (was 0.1.3)
Fetching parallel 1.22.1 (was 1.21.0)
Fetching regexp_parser 2.3.1 (was 2.2.0)
Using i18n 1.10.0 (was 1.9.1)
Using sidekiq 6.4.2 (was 6.4.1)
Fetching nokogiri 1.13.5 (x86_64-darwin) (was 1.13.4)
Fetching parser <IP_ADDRESS> (was <IP_ADDRESS>)
Using pry 0.14.1 (was 0.13.1)
Using pry-byebug 3.8.0 (was 3.9.0)
Fetching activesupport <IP_ADDRESS> (was <IP_ADDRESS>)
Fetching database_cleaner-sequel 2.0.2 (was 2.0.0)
Fetching rspec-mocks 3.11.1 (was 3.11.0)
Installing parallel 1.22.1 (was 1.21.0)
Installing database_cleaner-sequel 2.0.2 (was 2.0.0)
Installing regexp_parser 2.3.1 (was 2.2.0)
Installing rspec-mocks 3.11.1 (was 3.11.0)
Installing activesupport <IP_ADDRESS> (was <IP_ADDRESS>)
Fetching factory_bot 6.2.1 (was 6.2.0)
Installing parser <IP_ADDRESS> (was <IP_ADDRESS>)
Installing factory_bot 6.2.1 (was 6.2.0)
Fetching rubocop-ast 1.17.0 (was 1.15.1)
Installing rubocop-ast 1.17.0 (was 1.15.1)
Fetching rubocop 1.29.0 (was 1.25.1)
Installing nokogiri 1.13.5 (x86_64-darwin) (was 1.13.4)
Installing rubocop 1.29.0 (was 1.25.1)
Fetching rubocop-rspec 2.10.0 (was 2.8.0)
Installing rubocop-rspec 2.10.0 (was 2.8.0)

Tests pass.

Codecov Report

Merging #185 (711ac2d) into main (68abf76) will increase coverage by 17.53%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##             main     #185       +/-   ##
===========================================
+ Coverage   76.34%   93.88%   +17.53%
===========================================
  Files         172      110       -62
  Lines        3936     2797     -1139
  Branches      363        0      -363
===========================================
- Hits         3005     2626      -379
+ Misses        929      171      -758
+ Partials        2        0        -2

Impacted Files
Coverage Δ

.../src/components/RequestDetailModal/HeaderTable.tsx

...components/TestSuite/TestRunProgressBar/styles.tsx

...nts/TestSuite/TestSuiteDetails/TestSuiteReport.tsx

client/src/components/Header/Header.tsx

client/src/styles/theme.tsx

...ponents/TestSuite/ConfigMessagesDetails/styles.tsx

client/src/components/InputsModal/InputsModal.tsx

client/src/api/RequestsApi.ts

...ite/TestSuiteDetails/TestListItem/TestListItem.tsx

client/src/components/_common/TreeItem.tsx

... and 52 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 68abf76...711ac2d. Read the comment docs.

Feel free to catch this up to master however is most convenient in this case and merge @chris-at-work


Order issue when setState changes vnode type in Fragment

This PR adds a test to showcase the ordering issue after setState when I was implementing #1593
As I don't have time to find a fix now I'll just open the PR with the test showcasing the bug. If nobody is faster than me I'll look into this tomorrow.

Coverage remained the same at 100.0% when pulling 5f45c3bcfb1a412a24d8a9531652cf65d6924e59 on sventschui:bug/fragment-reordering-issue into d7abd4e0a2b7a6739882245e483d2f0e69348a34 on developit:master.

This is an awesome test :+1: The error is caused by forceUpdate always appending new elements. It's not aware of any siblings yet :S
https://github.com/developit/preact/blob/d7abd4e0a2b7a6739882245e483d2f0e69348a34/src/component.js#L76
Will look into it later.

Closing as the fix will land with #1605

Let's keep this open until we land it, helps keep a clear overview. Great you're following up on things though :D


Use u64 for change ticks

Objective
Allows detecting arbitrary old changes
Simplifies a lot of code along the way
Would play nice with query that detects changes since arbitrary tick that I'll implement next.
Solution
Replace u32 with u64 for tick values.
Maintenance code to guard against overflow is simply removed.
Downside - requires AtomicU64.
A workaround should be implemented for when AtomicU64 is not available on target platform.

Changelog
Changed
Type of values that represent ticks are changed from u32 to u64.
World's change_tick is AtomicU64 now.
Migration Guide
Some trait methods became obsolete and were removed.
Many users would need to change nothing as said traits are rarely used directly.

I would very much like #4972 merged before we attempt to merge this. This doubles the memory footprint of change detection, which will double the cache miss rate on all change detection filters and any query with mutative access. This potential regression should be weighed against the periodic cost of running check_change_ticks, as well as further optimizations like splitting ComponentTicks.

Unfortunately I can't see how to implement changed_since(tick) query when ticks can wrap around. Argument tick can be from previous lap and incorrectly assumed "later" than last_change_tick.
Opt-out change tracking would help with memory cost.

Imagine following situation.
component.last_change_tick = 42; // after one wrap around
world.current_tick = 100; // after one wrap around
query.last_change_tick = 43 // before wrap around

What should happen?
Current logic takes system.last_change_tick and bumps it to certain value

Imagine following situation.
component.last_change_tick = 42; // after one wrap around
world.current_tick = 100; // after one wrap around
query.last_change_tick = 43 // before wrap around

What should happen?
Current logic uses method check_change_tick to modify system.last_change_tick - bumps it to world.change_tick.wrapping_sub(MAX_CHANGE_AGE).
In case of changed_since(tick) query the tick value is under user's control.
Possibly we can make only world.change_tick: u64 and keep it as u32 for components.
It'll probably work with the same downside as current code does - loosing about old changes.

This potential regression should be weighed against the periodic cost of running check_change_ticks, as well as further optimizations like splitting ComponentTicks.

I agree.
Using u64 is simpler and means changes wouldn't expire, but it doubles the memory use. Just need to see the pros and cons.
#3956 goes over the reasoning behind the current value of MAX_CHANGE_AGE. I wanted to make it much larger (~99% of u32 range), but that would increase the check_change_tick scan frequency and we still haven't benchmarked it.
Was also keeping an eye out for applications that want to include change ticks in packets.

What kinds of apps do you expect to run long enough to have such old changes?

u32 may overflow in days. A game server can run that long and more.

I don't think change ticks being u32 blocks your proposed query. It would just be limited to MAX_CHANGE_AGE.

That would require changing at least World's current_tick type to u64

A game server can run that long and more.

I think I asked the wrong question. Can you give a usage example where an app would be querying for an extremely old change?
I'm looking for reasons that would motivate doing this sooner, but atm it seems very niche. Normally, game sessions don't persist for days and even when they do, systems don't run that infrequently.

Systems do not run this infrequently. The scenario I have in my head concerns changed_since(tick) queries. Where tick can be pretty old. For example a system may query for all changes that occurred since some in-game event. Not yielding really old changes may cause errors in game logic. It would require to add workarounds, like yielding everything ignoring change ticks if tick is too old.
It's true that only long enough game sessions can be affected. Most games nowadays are short play-session based. But not all of them.

Yes but, even with thousands of systems, over the course of days you wouldn't easily run into this. Detecting a change this old is borderline cronjob (i.e. weekly maintenance) level operations, for which this seems like a very poor approach to handling.

Yes but, even with thousands of systems, over the course of days you wouldn't easily run into this. Detecting a change this old is borderline cronjob (i.e. weekly maintenance) level operations, for which this seems like a very poor approach to handling.
EDIT: May have miscalculated. A 2,000 system game running at 60 TPS  runs over the max change age every 7 hours. I still think this is a rather atypical use case, but I can see this happening regularly on a MMO or any other persistent game server.

this happening regularly on a MMO or any other persistent game server.

And there are lots of simpler games with persistent game server. And single player games can be running for days too.
I agree that benchmarks should be used to see if this change hurts performance too much.
Before that opt-out from changing tracking for components should be implemented.
And at this point component may even choose to track changes using u32 that may wrap-around with some downsides or u64 without them. Or u16, why not?
Together with u64 in World and in changed_since(tick) API to not confuse too old tick value (user owned, can't bump automatically as in systems) with newer one this can actually work pretty well.

If we merge #6547, this change will likely be perf neutral with the current status quo other than the 2x memory usage for change detection. I'll run microbenchmarks for this PR if/when that one is merged.

I've prepared another PR with the same idea but that keeps using u32 for tick values of components.
Going to submit it and close this one.
Not sure what would be better. To add changed_since(tick) feature and opt-out from change tracking into the same PR or make them separate?

Separate would be easier. The larger (and more controversial) it becomes, the harder it becomes to review and convince others that it's the right direction.

Backlog cleanup: closing this and alternate approach #6651 due to inactivity, and no clear consensus.

@richchurcher can you open an issue for this one? This is something @maniwani has wanted for years and it's a reasonable idea. Blocked on configurable change detection though.

@richchurcher can you open an issue for this one? This is something @maniwani has wanted for years and it's a reasonable idea. Blocked on configurable change detection though.

100%, and please tell me if you see any others flow past your notifications that need one too! Been trying to ask the various _dev channels but I will definitely miss a few from lack of historical context.

Tracked in #15683.


Modify the handling of optional parameters for Ruby/NodeJS.

Previous: setting the default value unconditionally
Now: setting the value only when specified

Here you are: basically this skips setting optional values when unspecified, then we don't have to care about the default values anymore.

Just to confirm: given proto3 defaults, this is a style change, not a behavior change, right?

Right, as long as I know (everything is optional in proto3, right?)
I just want to stop caring about the default values anymore. Sometimes it's a bit tricky and I made mistakes (like using nil for a Hash field in Ruby). Probably this is the universal solution.

LGTM.
Probably we should do this in Python, too: #307


gif files not converted correctly

Convert is able to target gif files, however it does not pack all of the frames in the gif into the vtf to create an animated vtf. Since '--start-frame' is a parameter I assume this is intended to be supported, however it does not work in the current state. Built the most recent version from source to confirm and it still does not work.
If this is an incorrect usage of convert, or there is some other way to put multiple frames into a vtf, I would suggest adding it into the documentation.

Thanks for reporting this! I never finished the GIF implementation (or even began it, really). It's intended to be a feature eventually.

I think STB's animated GIF support is shaky at best anyway... See https://github.com/nothings/stb/pull/1025
That said, +1 on both fronts for proper support pls


Add phoron as a reagent, make phoron bars grindable

About the PR

Made phoron bars grindable into its own reagent.
Why / Balance

Made phoron bars grindable into its own reagent due to some chemical recipes for medicine requiring it.
Media

https://github.com/RMC-14/RMC-14/assets/75623951/6e28688a-ba97-4c7d-b806-74776cc9bac2

[x] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Changelog

:cl:

tweak: Made phoron bars grindable.
add: Added phoron as a reagent.

accidentally removed the branch lol, my bad


Add jsoncpp and zlib dependencies

Linked Case: SKETCH-2205
Primary Reviewer: @ricrogz

Description
Added zlib and jsoncpp dependencies
Testing Done
Added example usage of jsoncpp; macOS runner succeeds

As we commented in standup, our current jsoncpp version is old, and, if I have to trust the benchmarks I've seen, it's bulky and slow. We can try using boost.json, which we either have for free from boost, or at least we can add it with little effort.

Ok I'm gonna discard this review.


DOC-3003

Harness Developer Pull Request
Thanks for helping us make the Developer Hub better. The PR will be looked at
by the maintainers.
What Type of PR is This?

[ ] Issue
[ ] Feature
[ ] Maintenance/Chore

If tied to an Issue, list the Issue(s) here:

https://harness.atlassian.net/browse/DOC-3003

House Keeping
Some items to keep track of. Screen shots of changes are optional but would help the maintainers review quicker.

[ ] Tested Locally
[ ] Optional Screen Shoot.

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app


This expression is not constructable. Type 'typeof import(...) has no construct signatures.

Started a new project and created index.ts with this inside:
import Bao from "baojs";

const app = new Bao();

But the new Bao() is underlined with the following error:
This expression is not constructable.
  Type 'typeof import("/path/to/project/node_modules/baojs/dist/index")' has no construct signatures.

I'm using version 0.2.1.

Running into this issue as well.

I'll try to reproduce, what version of Bun are you running?

0.5.1

I am running into this issue as well.

I installed Bao
I run bun init
I run  bun add baojs
I pasted this into index.ts

import Bao from "baojs";
const app = new Bao();

I got exactly the same error. Using Bun v0.5.8 and Bao 0.2.1. I tried on intel macbook and m1 macbook.


Add config.toml.template to streamline configuration setup (fixes #2361)

What is the problem that this fixes or functionality that this introduces? Does it fix any open issues?
This pull request introduces a config.toml.template file to the root of the workspace. It provides a structured and commented configuration template that users can easily customize to set up their environment. This PR fixes issue #2361.
Give a brief summary of what the PR does, explaining any non-trivial design decisions
The config.toml.template file includes various configuration settings for core, sandbox, LLM providers, agent, and environment variables. All settings are initially commented out, allowing users to uncomment and configure the necessary sections according to their needs. The [core] section is placed at the top for better visibility, and the enable_auto_lint option has been removed as it is not intended for normal users. This template helps streamline the setup process for new users and ensures consistency in configuration across different environments.
Other references
N/A

I'm wondering if this would be even better as an extended help page, where each entry has its actual description (purpose, maybe even value ranges, default/optional).
That would go a long way to help new and existing users as a "go to" page to look stuff up.
The bare, minimum config file the user is supposed to generate via make setup-config anyways.
Maybe there are others, who'd like to chime in here and collaborate in this effort.

This looks a bit confusing to me. I feel that beginners might miss the main points.
I agree with @tobitege opinion to use make setup-config for minimal configuration. For more custom options, maybe we should put them in the documentation.

Okay so should we close this?

Okay so should we close this?

No, not necessarily, depending on if you'd like to take up the idea of e.g. adding a new documentation file (just add to docs/modules/usage a markdown file with ".md" extention).
You could use the content of your template file as a start and add to it, also you can edit your PR's title to reflect the new purpose.
Right now I'm not sure a template file alone in this length helps avoiding problems/questions.

@PierrunoYT will you be taking up the task suggested by tobi or should we close this PR?

@mamoodi No sorry but I'm trying to contribute on other ways.


Attempt to fix locales

@AmauryD are you able to get locales to work? I noticed they were not working when changing them in the docs. Can you take a look?

Using locales as strings seems a bit tricky now with embroider.
It seems to look like a race condition to me.
The code to import a locale looks like this :
const fp =
  typeof window !== "undefined" && window.flatpickr !== undefined
    ? window.flatpickr
    : ({
        l10ns: {},
      } as FlatpickrFn);

The locale is registered to the flatpickr.l10ns object and then usable as string.
The problem is, at import time. The window.flatpickr instance does not seems to exists. So the locale is read but no locale is registered globally.
Creating an initializer that initializes the window.flatpickr instance solves the problem.
Or just and import in router.js with this code:
import flatpickr from 'flatpickr';

window.flatpickr = flatpickr;

@AmauryD If we made an initializer, wouldn't that mean flatpickr would always be included and we would lose the benefits of tree shaking and such?

I don't think so, the main entrypoint of flatpickr does not import the locales. So the locales are not imported and "tree-shaked" away. I will verify this statement later using a bundle analyzer.

FWIW, I also tried importing specific locales, not using the strings, and it was still saying like [object Object] not a valid locale or whatever for those.

Importing the locale this way works :
import Controller from '@ember/controller';
import { action } from '@ember/object';
import { tracked } from '@glimmer/tracking';
import { next } from '@ember/runloop';
import de from 'flatpickr/dist/l10n/de';
import fr from 'flatpickr/dist/l10n/fr';
import ru from 'flatpickr/dist/l10n/ru';
import uk from 'flatpickr/dist/l10n/uk';

export default class EmberFlatpickr extends Controller {
...

  get locales() {
    return ['default', fr.fr, de.de, ru.ru, uk.uk];
  }
  ...
}

I do think the whole point of an addon is to make things as easy as possible for the users of the addon, so if that means we need an initializer, maybe that is the best option.

I agree on this.

I will take care of the Issue today if you want.

Testing something in #2047


Add a type class to calculate orders

This PR adds Data.Group.Order module as one method to fix (#15), replacing the existing Data.Group.order function.
The last commit e2c9f8f changes the public API of this package in backward-incompatible way.

Thanks @viercc!


Proposal: A section listing common transphobic propaganda

The examples that immediately spring to mind are:

Adult Human Female, 2022: a documentary from the UK

a screening of this was successfully stopped at the University of Edinburgh late last year
two days ago it was announced that Ed Academics for Academic Freedom (at the University of Edinburgh) plan to screen it later this month

What is a Woman?, 2022: an online film by Matt Walsh

Perhaps also a section on propaganda aimed at children; I've seen a lot more children' books in this vein lately—like every single one in the Sean Spicer 'take back storytime tour'.
(I'd be happy to help with this in whatever way works best.)

I've created the /library/propaganda/ section with ahf.md and wiaw.md representing those two titles: feel free to dump content in there and issue a pull request. If you have any questions let me know!

Or, if you prefer, write it in any kind of document like Google Drive or MS Word, or even as a comment here, and I can paste it right in.

No, markdown is perfect! I've just had deadlines.

@bethylamine Do you have a standardised set of terminology for referring to transphobic individuals that should be used in the project? Like, when referring to the individuals interviewed in AHF in this project, what do you want to go in the blank here: 'prominent UK ________'?

That is something I've been debating myself. "Gender criticals" is informally fine, "anti-trans actors" is too formal (and may seem like it implies some kind of roleplaying.) Transphobes is a catch-all, but can be pejorative when trying to write in neutral tone.
PACE frames it more around the anti-trans/gender-critical movement/campaign rather than the individuals supporting that movement, I suppose. You could say prominent UK figureheads of the gender-critical movements.