Does this still work with Windows 11?

Hello, I am using Windows 11 stable build, and I do not know if this module still works. Can someone tell me?

Yes, it does.

I have the same problem now and it has not been solved yet

Hey, I am using 22622.436 and it still nothing happened. It works well in previous versions.

Hi There,
I am using Microsoft Windows 11 Home Single Language and it works fine for me.


Jenkins run fails to open SSH connection to Google Cloud compute instance

On each Jenkins run as of commit b1296d219feeae824ece9046b5d394c33f7e674c, the compute instance is started successfully:
08:57:17  started instance
08:57:18  status: RUNNING

but appears to fail to propagate SSH keys to it:
08:57:22  + gcloud compute ssh gpgpgpuwhereareyou --zone us-central1-a --ssh-flag=-tt --command= whoami
08:57:22  + cat
08:57:23  WARNING: The private SSH key file for gcloud does not exist.
08:57:23  WARNING: The public SSH key file for gcloud does not exist.
08:57:23  WARNING: You do not have an SSH key for gcloud.
08:57:23  WARNING: SSH keygen will be executed to generate a key.
08:57:23  This tool needs to create the directory [/home/jenkinsuser/.ssh] before being
08:57:23  able to generate SSH keys.
08:57:23
08:57:23  Do you want to continue (Y/n)?  Generating public/private rsa key pair.
08:57:23  Your identification has been saved in /home/jenkinsuser/.ssh/google_compute_engine
08:57:23  Your public key has been saved in /home/jenkinsuser/.ssh/google_compute_engine.pub
...
08:57:35  Updating project ssh metadata...
08:57:35  ..................................................Updated [https://www.googleapis.com/compute/v1/projects/test-project-covid-19-277821].
08:57:35  .done.
08:57:35  Waiting for SSH key to propagate.
08:59:56  ssh: connect to host <IP_ADDRESS> port 22: Connection timed out
08:59:56  ERROR: (gcloud.compute.ssh) Could not SSH into the instance.  It is possible that your SSH key has not propagated to the instance yet. Try running this command again.  If you still cannot connect, verify that the firewall and instance are set to accept ssh traffic.

All subsequent SSH connections also time out.
The 'Network interface details' page for the compute instance on GCP says that tcp:22 is open to incoming traffic.
Running a connectivity test between the IP for the build server and that of the compute instance states that it is able to deliver packets.
~So this looks like something specific to jenkinsuser.~ Now I can't SSH into the instance either - suspect its firewall (ufw) is conflicting with GCP network settings.

That appeared to work.


Clarify Uppercase Gate Name Intent

It is unclear from the specification why, in this case-sensitive (language/index) language some gate names are uppercase and user-defined gates are uniformly illustrated as lowercase.
My interpretation is that the built-in gates will be uppercased and the user can choose case for all user-defined gates, as long as the names chosen do not conflict with built-ins.
Somewhere the intent, whatever the understanding is, should be expressed.

The intent is that a universal gateset can be constructed from three built-in operations, ctrl, gphase and u/U which is a three-parameter single-qubit unitary. There is some ongoing internal discussion of whether u/U should be lower or upper case. All other gates will be constructed from these keywords in the standard library or by the user.

The arguments for upper case U are consistency with Openqasm 2.0, and that having a reserved single character keyword is bad, an upper case keyword is slightly better
The arguments for lower case U are consistency with all other keywords being lower case.

U being Unique there's no problem with it being uppercase, but other than that I have no opinion.  I just was ready to throw a sentence or two in the edits to clarify. Obviously we'll hold off on that.

For that matter, CX is also capitalized everywhere.

@taalexander we also require CX for a universal two qubit gate set, right?

The above reference to the PR is a mistake ... the PR addresses #165


Add an Automatic-Module-Name in the jar MANIFEST

Note: After some more testing, I am able to use the library from a module in intellij. A Gradle configuration was the source of the problem.
Describe the feature
Currently there is not Automatic-Module-Name defined in the jar manifest. This value allows jar to not fall under the unnamed module which is not well supported by Intellij. eg.
Manifest-Version: 1.0
...
Bundle-SymbolicName: slf4j.api
Bundle-Name: slf4j-api
Bundle-Vendor: SLF4J.ORG
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Automatic-Module-Name: org.slf4j
...

Describe the target audience
This value would allow Intellij developers working on Java 9 modules to import and use lombok from their modules.
Additional context
This article describes how to add the value: Automatic-Module-Name: Calling All Java Library Maintainers.

I just checked the current release and there is an Automatic-Module-Name in the MANIFEST.MF and there also is a module-info.class.

It's working on my side anyway, but that's not what I saw...
Here is the screenshot from my External Libraries:

Oh, you are right, it was added in 1.18.18.


fire KeyPress events on fields

I'm looking to test a series of autocompleters, specifically I want to be able to fire keyPress events on a field and monitor that an html-control is being populated with a list of html results.
I looked into the zombiejs browse and eventloop code.  I'm new to this code, but I see the lines 230 in browser.coffee
type = if name in MOUSE_EVENT_NAMES then "MouseEvents" else "HTMLEvents"
event = @window.document.createEvent(type)
event.initEvent name, true, true

So assuming the DOM Level 3 events for KeyboardEvent needed added?

I need event.initMouseEvent. I wonder how easy this would be to patch in against 2.5.1.


bug:

if the obj is tuple, this will raise a error:
https://github.com/Prodesire/pydu/blob/b1693db3821960d007e20d972fa69851b39bcf22/pydu/dict.py#L133-L136

Thanks for pointing out the bug.


Support for SamAutomaticMaskGenerator

Hi,
Would you consider adding SamAutomaticMaskGenerator support? If so, what would be the best way to add it?
I think this would be a really nice addition, since it could then be incorporated into the QuPath SAM extension.
Ideally, the QuPath extension could use SamAutomaticMaskGenerator both interactively and from a script because it doesn't inherently require user interaction, and it would be good if the various kwargs could be supported as well.
From the QuPath side, I imagine that a user might call a script that looks like this:
SAMUtils.segmentEverything("vit-l", ['points_per_side': 32, 'pred_iou_thresh': 0.86])

which would operate on the current image, or even current annotation selected within an image if required.
With the help of QuPath's 'Run for project', it would be possible to generate an initial segmentation across large numbers of images quickly... and, from Groovy, filter out segmented objects with specific characteristics if needed (e.g. very high or low mean intensity values).

Hi @petebankhead , thank you for the suggestion.
I have written a prototype of it. https://github.com/ksugar/samapi/commit/294a23372eee3e16869cd6774eba661f40a072b3

Currently, the server just takes a base64-encoded image, leaving the choice of an input image to the client side.
Does this achieve what you have in mind?
It is a good idea to cache the image data as you did here.
https://github.com/petebankhead/samapi/blob/d08d255bbe3283df18d6bb3efeac803fb64ab576/src/samapi/main.py#L104-L109
The client will be adapted to the latest commit: https://github.com/ksugar/qupath-extension-sam/pull/3.

Hi @ksugar looks good! Yes, that's pretty much what I was thinking. If caching the image, I think you will need to retain the predictor since  the SamPredictor constructor calls reset_image here.
Within the client, one possible way to make the functionality available would be via providing a different SAMOutputType, although it would probably be better to use a separate dialog.

It's released with v0.3.0.
@petebankhead I have made some modifications to SamAutomaticMaskGenerator to enable the cache of the encoder outputs.
Please see the details in the following commit.
https://github.com/ksugar/MobileSAM/commit/c6a2bab8e168f7745763f7704d44449156142d9d


what‘s wrong with zsh: command not found: ipa

I has installation shenzhen，but i use ipa， it tell me
zsh: command not found: ipa
what‘s wrong

see #316

@yanlj did you reload the console? did you have the gem installed in the same ruby that runs zsh?


add unit testing via node

I'm submitting an enhancement request

Aurelia Skeleton Version
skeleton-esnext@lastest

This PR is targeted to give users the option to run tests outside the context of a browser if they choose.
A use case, and maybe the only one in relation to Aurelia, for this would be testing the integrity of api endpoints that your app uses:
https://github.com/lmj0011/sae-spa-skeleton/blob/1e59969320df457b674ae1b4e1a22f8cd5dc9d09/skeleton-esnext/test/unit/node/src/api.spec.js
the example in the link above could be done with Karma running, but in some dev environments, api endpoints may be locally hosted via nginx on port 80. I wasn't able to configure the karma settings to make karma emulate sending HTTP requests as if they were coming from my app. (ie. changing localhost:9876 to myappdomain:80)
which explains the reason for this PR
https://github.com/aurelia/skeleton-navigation/pull/766/files

Ah, I guess I should have read this before I asked for the justification. Let's have some discussion on if we should merge this.

Unit testing via node (using jest) has now landed in master in both webpack skeletons. If you'd like to copy the support to other skeletons, we're accepting PRs.

Can be closed


⚠ Bofrost.at has degraded performance

In c9c50a2, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1712 ms

Resolved: Bofrost.at performance has improved in b3e79ad after 20 minutes.


Performance problem with multiple Includes and an OrderBy.

The order of the Include calls is overwritten by an OrderBy clause. The default behavior (just Includes) seems to reverse the order in the code. However, when I append an OrderBy clause at the end, the related table will always be the last one to be joined. This hurts the performance of the query. For example: when I try the SQL query EF Core generated on my database, the query takes ~1300ms. If I make the LEFT JOIN statement of the table that is used while ordering the first one, the query time goes down to ~140ms.
I have written a simple reproducable case below. It gives the same output both on SQL Server and SQLite.
Steps to reproduce
public class MainModel
{
    public int Id { get; set; }

    public Detail1 Detail1 { get; set; }
    public Detail2 Detail2 { get; set; }
    public Detail3 Detail3 { get; set; }
    public Detail4 Detail4 { get; set; }
    public Detail5 Detail5 { get; set; }
}

public class Detail1
{
    public int Id { get; set; }
    public string Value { get; set; }
}

public class Detail2
{
    public int Id { get; set; }
    public string Value { get; set; }
}

public class Detail3
{
    public int Id { get; set; }
    public string Value { get; set; }
}

public class Detail4
{
    public int Id { get; set; }
    public string Value { get; set; }
}

public class Detail5
{
    public int Id { get; set; }
    public string Value { get; set; }
}

public class TestContext : DbContext
{
    public DbSet<MainModel> MainModels { get; set; }
    public DbSet<Detail1> Detail1s { get; set; }
    public DbSet<Detail2> Detail2s { get; set; }
    public DbSet<Detail3> Detail3s { get; set; }
    public DbSet<Detail4> Detail4s { get; set; }
    public DbSet<Detail5> Detail5s { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlServer(@"Server=<IP_ADDRESS>;Database=EfCoreTest;Trusted_Connection=True;");
        base.OnConfiguring(optionsBuilder);
    }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<MainModel>().HasOne<Detail1>();
        modelBuilder.Entity<MainModel>().HasOne<Detail2>();
        modelBuilder.Entity<MainModel>().HasOne<Detail3>();
        modelBuilder.Entity<MainModel>().HasOne<Detail4>();
        modelBuilder.Entity<MainModel>().HasOne<Detail5>();

        base.OnModelCreating(modelBuilder);
    }
}

public class Program
{
    public static void Main(string[] args)
    {
        using (TestContext context = new TestContext())
        {
            List<MainModel> result = context.MainModels
                .Include(x => x.Detail5)
                .Include(x => x.Detail3)
                .Include(x => x.Detail2)
                .Include(x => x.Detail4)
                .Include(x => x.Detail1)
                .OrderBy(x => x.Detail1.Value)
                .ToList();
        }
    }
}

The generated SQL code:
SELECT [x].[Id], [x].[Detail1Id], [x].[Detail1Id1], [x].[Detail2Id], [x].[Detail2Id1], [x].[Detail3Id], [x].[Detail3Id1], [x].[Detail4Id], [x].[Detail4Id1], [x].[Detail5Id], [x].[Detail5Id1], [x.Detail4].[Id], [x.Detail4].[Value], [x.Detail2].[Id], [x.Detail2].[Value], [x.Detail3].[Id], [x.Detail3].[Value], [x.Detail5].[Id], [x.Detail5].[Value], [x.Detail1].[Id], [x.Detail1].[Value]
FROM [MainModels] AS [x]
LEFT JOIN [Detail4s] AS [x.Detail4] ON [x].[Detail4Id] = [x.Detail4].[Id]
LEFT JOIN [Detail2s] AS [x.Detail2] ON [x].[Detail2Id] = [x.Detail2].[Id]
LEFT JOIN [Detail3s] AS [x.Detail3] ON [x].[Detail3Id] = [x.Detail3].[Id]
LEFT JOIN [Detail5s] AS [x.Detail5] ON [x].[Detail5Id] = [x.Detail5].[Id]
LEFT JOIN [Detail1s] AS [x.Detail1] ON [x].[Detail1Id] = [x.Detail1].[Id]
ORDER BY [x.Detail1].[Value]

Further technical details
EF Core version: 2.1.4
Database Provider: Microsoft.EntityFrameworkCore.SqlServer
Operating system: Windows 10 1803
IDE: Visual Studio 2017 15.8.1

@smitpatel to follow up

The default behavior (just Includes) seems to reverse the order in the code.

This is an undocumented behaviour. In other words, it happens to be that way but the code neither does that explicitly nor guarantee that it will remain that way. It may have ended up like that based on current implementation.
There are mainly 2 issues around deterministic order like the way you want

We process Include as a tree of navigation to load starting from the query root. Once you create tree, the order in which Includes were called is lost. We generate tree in order to remove redundant Include calls. They appear very easily when you have to include multiple navigation more than a level away using ThenInclude. You need to specify Include with same navigation multiple times just to get ThenInclude type checking. If we don't flatten out, do you expect to see same navigation joined multiple times? If not, what would you expect the ordering of joins to be in case of repeated include calls for same navigation?
The another issue on larger scale is your example. Include & order by both are bringing in a join. Should we again repeat joins? If not what should be the ordering? What if there are where clause and join clause which also produces more join. It is very difficult to arrive at a good ordering due to multiple factor coming into play.

Hence, we don't guarantee any ordering.
For, slow running query, the ordering of join should not matter. SqlServer should be able to optimize the query plan to do the joins in efficient way. Perhaps file an issue with them. Also check out query plan if it is join ordering only which is the cause or ordering is getting applied in different order too,


Use hlgroups compatible with light theme pls.

I'm a light theme user (I'm very sorry) and the recent changes to the hlgroups cause these to be indistinct from the background for me in the tooltips. Hopefully this is a good compromise.

😆 So I think I'll leave it at this for now, but we definitely want to eventually add an easy way to configure these hlgroups, as there's no way we'll be able to please everyone...


Do you support Light Sensor ?

I need a library that include light sensor component for iOS and Android. Can you give me a hand for this issue ?

We don't support it but we would gladly accept a PR

I searched in this topic. As a result , "I/O Kit is a low-level framework communicating with hardware or kernel services. Although it is a public framework, Apple discourages developers from using it, and any apps using it will be rejected from App Store.". Therefore Lightsensor is not necessary.

@ozsirma Thanks for sharing the insight 👍


Fixed the casing of the definition of auth0

Consider the following steps:
One installs auth0 via npm: npm install auth0
Note that npm install Auth0 doesn't work, it needs to be lowercase.
On disk it will be stored in node_modules\auth0.
So to import it in code one does import Auth0 = require("auth0");
This doesn't work with this definition, since it is case sensitive.
And we can't do import Auth0 = require("Auth0"); since node doesn't touch the case, it respects the filesystem, meaning problems on Linux/Mac (where enabled).
Which is why I'm proposing this change, it is the best 'marriage' between the case-sensitive and case-insensitive world.

+1

@CSharpFan thanks mate!


Build error in latest preview

the index.cshtml when generated to server_index.cshtml won't compile because the Html, MobileApp, RenderMode does not have the namespace
Severity	Code	Description	Project	File	Line	Suppression State
Error	CS0115	'Template.ExecuteAsync()': no suitable method found to override	SRMobile.Blazor	M:\FacialRecognition\SRMobile\SRMobile.Blazor\server_index.cshtml	1	Active
Error	CS0006	Metadata file 'M:\FacialRecognition\SRMobile\SRMobile.Blazor\bin\Debug\netstandard2.1\SRMobile.Blazor.dll' could not be found	SRMobile.Blazor.Server	M:\FacialRecognition\SRMobile\SRMobile.Blazor.Server\CSC	1	Active
Error	CS0006	Metadata file 'M:\FacialRecognition\SRMobile\SRMobile.Blazor\bin\Debug\netstandard2.1\SRMobile.Blazor.dll' could not be found	SRMobile.Desktop	M:\FacialRecognition\SRMobile\SRMobile.Desktop\CSC	1	Active
Error	CS0103	The name 'page' does not exist in the current context	SRMobile.Blazor	M:\FacialRecognition\SRMobile\SRMobile.Blazor\server_index.cshtml	1	Active
Error	CS0103	The name 'Html' does not exist in the current context	SRMobile.Blazor	M:\FacialRecognition\SRMobile\SRMobile.Blazor\server_index.cshtml	17	Active
Error	CS0246	The type or namespace name 'MobileApp' could not be found (are you missing a using directive or an assembly reference?)	SRMobile.Blazor	M:\FacialRecognition\SRMobile\SRMobile.Blazor\server_index.cshtml	17	Active
Error	CS0103	The name 'RenderMode' does not exist in the current context	SRMobile.Blazor	M:\FacialRecognition\SRMobile\SRMobile.Blazor\server_index.cshtml	17	Active
Warning		Two processes may be building this project at once. Lock file exists at path: M:\FacialRecognition\SRMobile\SRMobile.Android\obj\Debug\90.__lock	SRMobile.Android
Warning	NU1603	Xamarin.Android.GeckoView 0.1.1 depends on Xamarin.Android.Support.v7.Palette (>= 27.0.0) but Xamarin.Android.Support.v7.Palette 27.0.0 was not found. An approximate best match of Xamarin.Android.Support.v7.Palette 27.0.2 was resolved.	SRMobile.Android	M:\FacialRecognition\SRMobile\SRMobile.Android\SRMobile.Android.csproj	1
Error		server_index.cshtml "Build actions" property is not set to 'None' in your Blazor WebAssembly project and may cause build failure. The "Build actions" property must be set to 'Content' only from an item link reference from a Blazor server-side project, if any.	SRMobile.Blazor	M:\FacialRecognition\SRMobile\SRMobile.Blazor\EXEC	1
Error	MSB3073	The command "dotnet "C:\Users\70720820.nuget\packages\blazormobile.build\3.2.4-preview2.20160.5\tools\netcoreapp3.1/BlazorMobile.Build.dll" client-to-server-blazor-index --input "M:\FacialRecognition\SRMobile\SRMobile.Blazor" --project-file "M:\FacialRecognition\SRMobile\SRMobile.Blazor\SRMobile.Blazor.csproj"" exited with code -1.	SRMobile.Blazor	C:\Users\70720820.nuget\packages\blazormobile.build\3.2.4-preview2.20160.5\tools\GenerateBlazorMobileBuild.targets	35

Hello @sorainnosia
A specific Blazor version is written at the beginning of the BlazorMobile documentation. This mean that this specific version has been tested and compiled with BlazorMobile.
As the Blazor project is still under development at Microsoft, namespace, methods and others may be subject to change, that's why things can break if not tested or compiled against the right Blazor version.
An update will come soon.
Your compilation break because the namespace for the server_index.cshtml (intended for synchronizing your Server and WASM projects index's) has changed for the component renderer (i guess).
In the meantime: Just fallback to the previous Blazor version.

Forward this issue for the next release.

Well actually, your project error is not really a bug, everything was mentionned by BlazorMobile in your build.
Please read again your logs:

Error server_index.cshtml "Build actions" property is not set to 'None' in your Blazor WebAssembly project and may cause build failure. The "Build actions" property must be set to 'Content' only from an item link reference from a Blazor server-side project, if any

Closing.


Refactor class-*.php files as shared library files where applicable

As part of the work to implement chart displays for slog ( admin ) and wp-top12 ( front end using pompey-chart or similar ) we need to refactor the class-*.php files as shared libraries.
Requirements

slog and wp-top12 to use the same logic to display charts
some functionality moved from wp-top12 to slog
some functionality and the working directory forked from wp-top12 to a new repository - wp-top12-bloat

File
Converted?

class-csv-merger.php
downloads, merger, vt-stats, vt-top12

class-group-summary.php
vt-top12

class-IP-to-host.php
not used?

class-object-grouper.php
downloads, vt-stats, vt-top12

class-object-sorter-natural.php
not used?

class-object-sorter.php
downloads, vt-stats, vt-top12

class-object.php
downloads, vt-stats, vt-top12

class-plugin-extractor.php
scrape-blocks - Don't change?

class-vt-row-basic.php
vt-stats

class-vt-row.php
vt-top12

class-vt-stats-top12.php
vt-top12

class-vt-stats.php
vt-stats vt-top12

class-wp-org-downloads.php
downloads, myplugins

class-wp-org-plugins.php
wp-top12 - Don't change

class-wp-org-v12-downloads.php
blocker & wp-top12 - Don't change

Solution

[x] Some of the files may not need to be converted to shared files.
[x] A number of the routines will have to be updated to reflect this change.
[ ] I don't think it's necessary to add deprecation logic
[x] Initially change the logic to load the files from the libs folder
[ ] Then use oik_require_lib() to load the shared libraries regardless of the plugin.
[x] Test changed routines by running them.

I also need to refactor

the class-narrator.php file,
used by scrape-blocks, vt-stats and Slog_Reporter
is also used by oik-i18n ( 3 routines )
and by some local routines in the private bw repository.

I also need to refactor

the class-narrator.php file,
used by scrape-blocks, vt-stats and Slog_Reporter
is also used by oik-i18n ( 3 routines )
and by some local routines in the private bw repository.


new find db for 4.3 staging

find db generated using:
http://compute-artifactory.amd.com/artifactory/rocm-osdb-deb/compute-rocm-rel-4.3-16/
MIOpen branch release/rocm-rel-4.3-staging
900_56 906_60 908_120 1030_36

:cyclone: Manual performance testing in progress...


awesome-go and code complexity issues

Hello, library maintainers.
I was trying to include this fantastic library on awesome-go, but I'm running in some problems there with some code quibbles that could be easily changed.
Would you please take a look at https://github.com/avelino/awesome-go/pull/1363 good eyes and no prejudices?

Hi @fiatjaf,
Thanks for requesting to have gjson added to awesome-go. I just updated the gjson_test.go file to reduce some complexity and this bumped the gocyclo to 50%. Do you think that that's good enough? I would think an overall grade of A+ should suffice.

Thanks, @tidwall!
I don't know. Let's hope so.

@fiatjaf @tidwall a little more test coverage to meet the 90% test coverage requirements for data related packages and it should be good to Go!
https://github.com/avelino/awesome-go/pull/1363#issuecomment-293267146

Thanks @fiatjaf! I just pushed an update that brings the coverage above 90%. Let me know if there's anything else.


Invisible setting on default in playmode

Wondering if this is a bug or possible, I'd love to be able to have the shader off by default and then toggled on ingame but it seems by default even if it's turned off via the Base Setting in unity, the shader will auto turn on in playmode. The way around this I guess would be to turn it off via an animation but ideally I'd prefer it to be off by default. Any reponce would be amazing.

Thanks for letting me know.
There are two possible causes for this problem.

The object has an Animator. And the animation that sets _Invisible to 0 is played in it.
Some scripts will set _Invisible to 0.

Confusingly, a material becomes visible when _Invisible is 0, and invisible when it is 1.
Create an object in the new scene that does not have a script, and if the problem still occurs, it may be a bug.
It would be great if you could tell me the details of the Unity version and the object.


leaflet 1.0 compatibility?

Just wondering if this is on your to do list.

+1
http://leafletjs.com/2015/07/15/leaflet-1.0-beta1-released.html

The release sports a number of minor breaking API changes, and some of the plugins will have to be updated. To make the upgrade less painful, we’re doing a short beta cycle before the final 1.0 to allow users and plugin developers to catch up to the changes while we find and fix remaining issues.

:-)

Yes, Leaflet 1.0 must be supported.
However the European project supporting this plug-in has ended last month. I will probably look into it during my spare time but I can't promise anything.
I used Leaflet's development branch with PruneCluster in the beginning of the year and it was working. I hope they recent changes will not break it :-)

Perhaps you could ask around at https://groups.google.com/forum/#!forum/leaflet-js or https://gitter.im/Leaflet/Leaflet if someone would be willing to help maintain this together.
This plugin is just too awesome to let fade away. :-)

I am running a test on it right now, and it appears to be working fine with:
"leaflet": "~1.0.0-beta.1"
"PruneCluster": "SINTEF-9012/PruneCluster#~1.1.0"

But I guess there should probably be some rigorous testing.

I searched the codebase quickly for 1.0-beta1 breaking changes https://github.com/Leaflet/Leaflet/blob/master/CHANGELOG.md#other-breaking-api-changes
And I can see only DomUtil off being used, which has breaking changes (dunno if this affects PruneCluster though):

Changed DomUtil off to require context attribute if you remove a listener that was previously added with a particular context.

This plugin is just too awesome to let it fade away. :-)

I hope we will get a new project using this plugin so we can improve it :-) I don't want to let it fade away but I also do a lot of development at work these days and I just want to relax during my spare time.
I will test a bit Leaflet 1.0, but it's good to see that it already works :-)
Moreover after watching Vladimir's talk about the simplicity in leaflet (https://www.youtube.com/watch?v=NLbyHffKQuU), I think PruneCluster's API is not simple enough and doesn't fit well with Leaflet. I will first make PruneCluster compatible with Leaflet 1.0, but this major release is maybe a good opportunity to develop the new API.

Cool. BTW we're using this here; https://www.trustroots.org / https://github.com/trustroots/trustroots
It's coupled with https://github.com/tombatossals/angular-leaflet-directive and the controller running that map is to get much more complex in the future, so I will probably work more on getting this tight closer into Angular-Leaflet if possible.

@simison → I tried out tombatossals directive, but as soon as I had hundreds of markers I needed to switch to prunecluster instead of  native markercluster - for glaringly obvious performance reasons, Unfortunately, as hard as I tried I couldn't integrate prunecluster with the angular-leaflet-directive - so I began rolling my own...
FWIW, this was as far as I got before I switched:
https://github.com/tombatossals/angular-leaflet-directive/issues/320

@denjello:
@Remigr somehow got PruneCluster working with Angular-Leaflet, here. But he's a ninja...
Not sure though if he remembers what at PruneCluster's API would've made it easier for this to actually be useful for now. (note to self; always document findings while hacking away...)

Not to derail this issue into a debate about the health of the project, but:

I hope we will get a new project using this plugin so we can improve it :-) I don't want to let it fade away

One way to secure the life of a project is to welcome multiple contributors. I am able to contribute in both my spare time and work time. But to be honest; that this module is written in TypeScript is holding me back from doing so. If this module was written in JavaScript I would contribute. I think this might be restraining other people which would like to contribute also.
Have you ever considered moving the source away from TypeScript?

@trygve-lie I created a specific issue (#79) for discussing about this :-)

Any progress on this?
I would like to use Leaflet 1.0 on my project, but this plugin keeps me away.

How is this coming by? Beta 2 is out since this.
https://github.com/Leaflet/Leaflet/blob/master/CHANGELOG.md

I have not progressed on this issue, but hopefully I should get some dedicated time in January.
Meanwhile, I will think about checking the example folder with the beta 2.

The fractional zoom being fixed, leaflet 1.0.0 should work fine :)

Thanks! Great news.

Congrats - and thanks for finding the time!

I'll use this plugin in favour of the default marker cluster plugin. This here outperforms every other cluster plugin. Especially on mobile devices.
Thanks for making it compatible with 1.0

While most functionality works fine I have some issues with leaflet-draw, which does not seem to work with PruneCluster. Any ideas?

I'm looking into using PruneCluster, and wanted to know whether it is Leaflet 1.0 compatible. From this issue, I understand it is.
Is it worth mentioning that on the Readme and closing this issue?

@c-martinez I'm using PruneCluster at Trustroots.org without issues. I'm not using popups or tooltips though — I've seen people reporting some issues around those but it's probably possible to go around those problems.


[AKS]: add new version 0.2.2 for aks-preview

This checklist is used to make sure that common guidelines for a pull request are followed.

For new extensions:

[X] My extension description/summary conforms to the Extension Summary Guidelines.

Thanks @zqingqing1!


Cloudbuild

Reviewer:
Estimate:

Ticket
Fixes: JIRA_TICKET_LINK
Description
Goal
Deploy AAQ using Cloud Build, where

We build 1 docker image that runs docker compose on startup
Docker compose builds the latest images and runs the containers

Changes

New Dockerfile at project root to run docker compose

Future Tasks (optional)
How has this been tested?
To-do before merge (optional)
Checklist
Fill with x for completed.

[ ] My code follows the style guidelines of this project
[ ] I have reviewed my own code to ensure good quality
[ ] I have tested the functionality of my code to ensure it works as intended
[ ] I have resolved merge conflicts

(Delete any items below that are not relevant)

[ ] I have updated the automated tests
[ ] I have updated the scripts in scripts/
[ ] I have updated the requirements
[ ] I have updated the README file
[ ] I have updated affected documentation
[ ] I have added a blogpost in Latest Updates
[ ] I have updated the CI/CD scripts in .github/workflows/
[ ] I have updated the Terraform code

Taking a different route!


certificate expired..

https://git.heroku.com/
😆

I can't deploy because of that
fatal: unable to access '...': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none

@stoffern @SanderMander I am sorry that you are unable to deploy, I am following the status of the fix and will update when it should be working again.  If you want to, you can watch https://twitter.com/herokustatus for when it is fixed (as https://status.heroku.com/ appears to be affected as well)

@stoffern The website has been fixed, thanks for letting us know about this
@SanderMander you may be able to deploy now, there were multiple sites affected and the incident is not fully resolved yet, but go ahead and try again.  The status site is available again at https://status.heroku.com/ and I will update once everything is fully working again.

@SanderMander if you have not already tried yet, could you please retry your deploy?  Everything should be back to normal now.

@ransombriggs working like a charm..


Strapi deployment on AWS Fargate (Serverless)-Aurora MySQL (Serverless)

Hello All,
I am trying to deploy the Strapi on AWS Fargate serverless environment through GitlabCI. Using AWS MySQL Aurora database for the DB integration. The database is up and running properly. When my CICD is trying to deploy it on Fargate, somehow it is not able to get connected with my DB. I am injecting env variables in Task Definition through Secret manager.
I am getting this error "getaddrinfo ENOTFOUND" in cloudwatch logs. Not sure what to do as everything is going on through CICD only. I can think of, Do we need to mention anything in database.js file or server.js file regarding my database or in Dockerfile? Or in GitlabCI configuration?
I know this is a very specific process but still if any one would be able to help me out.
Thanks,
Tushar

Resolved it with some modifications in the solution.


Update DEVELOPMENT.md

fixed minor typo

@mkbhanda can you please add a SoB line in your commit. This will make the CI happy :-)
eg
Signed-off-by:  Name <email>

@mkbhanda I didn't realise this is still open and fixed the typo while updating the development guide with more details based on latest testing.
I'm closing this PR for now.


How use dev

How i change master to dev ?

Git checkout dev

@MrCarlosJr please close this issue... use the slack for help if you need it.

Thanks @Lunik


ansible: add condition for open stat port for firewalld, and iptables

Hi,
For haproxy task, I think the following condition should be added for firewalld :
 when: (ansible_facts['os_family'] == "RedHat" or ansible_facts['os_family'] == 'CentOS')  and ansible_facts.services["firewalld.service"]['state'] == "running"

and maybe also this one for iptables :
when: ansible_facts['os_family'] == 'Debian' or ansible_facts['os_family'] == 'Ubuntu'

The task result appears in red in haproxy-wi even though haproxy is installed on Debian 10.
ok=19 changed=3 unreachable=0 failed=0 skipped=8 rescued=0 ignored=1

The ignored one is :
'TASK [haproxy : Open stat port for firewalld] **********************************', 'fatal: [<IP_ADDRESS>]: FAILED! => {"censored": "the output has been hidden due to the fact that \'no_log: true\' was specified for this result"}', '...ignoring'

Thanks,
Laurent

Thank you. I will

Added


When I run demo.py to visualize:python demo.py --config-file configs/sparse_inst_r50_giam.yaml --input datasets/coco/val2017/000000000139.jpg --output results --opt MODEL.WEIGHTS models/sparse_inst_r50_giam_aug_2b7d68.pth INPUT.MIN_SIZE_TEST 512

[04/15 12:48:11 detectron2]: Arguments: Namespace(confidence_threshold=0.5, config_file='configs/sparse_inst_r50_giam.yaml', input=['datasets/coco/val2017/000000000139.jpg'], opts=['MODEL.WEIGHTS', 'models/sparse_inst_r50_giam_aug_2b7d68.pth', 'INPUT.MIN_SIZE_TEST', '512'], output='results', video_input=None, webcam=False)
[04/15 12:48:13 fvcore.common.checkpoint]: [Checkpointer] Loading from models/sparse_inst_r50_giam_aug_2b7d68.pth ...
0%|                                                                                | 0/1 [00:00<?, ?it/s]/home/zhou/anaconda3/envs/sc_depth_env/lib/python3.6/site-packages/torch/functional.py:445: UserWarning: torch.meshgrid: in an upcoming release, it will be required to pass the indexing argument. (Triggered internally at  /opt/conda/conda-bld/pytorch_1640811805959/work/aten/src/ATen/native/TensorShape.cpp:2157.)
return _VF.meshgrid(tensors, **kwargs)  # type: ignore[attr-defined]
0%|                                                                                | 0/1 [00:00<?, ?it/s]
Traceback (most recent call last):
File "demo.py", line 96, in
img, args.confidence_threshold)
File "/home/zhou/program/SparseInst-main/sparseinst/d2_predictor.py", line 68, in run_on_image
vis_output = visualizer.draw_instance_predictions(predictions=instances)
File "/home/zhou/anaconda3/envs/sc_depth_env/lib/python3.6/site-packages/detectron2-0.6-py3.6-linux-x86_64.egg/detectron2/utils/visualizer.py", line 402, in draw_instance_predictions
masks = np.asarray(predictions.pred_masks)
File "/home/zhou/anaconda3/envs/sc_depth_env/lib/python3.6/site-packages/numpy/core/_asarray.py", line 83, in asarray
return array(a, dtype, copy=False, order=order)
RuntimeError: Boolean value of Tensor with more than one value is ambiguous
What is the cause of this problem？

Hi, @zhouzhou-github1, thanks for your interest in SparseInst.
This problem is due to the difference in versions. In dectron2 v0.3, it uses BitMasks.tensor to store the mask tensor. You can change the /home/zhou/anaconda3/envs/sc_depth_env/lib/python3.6/site-packages/detectron2-0.6-py3.6-linux-x86_64.egg/detectron2/utils/visualizer.py L402 by appending tensor to pred_masks, that is, np.asarray(predictions.pred_masks.tensor).

You can refer to #10.

Thank you!

This issue will be closed, you can open a new issue if you have other problems or reopen it. Thanks for your interest in SparseInst 😊 . If you find it useful in your work or research, could you give us a star 🌟 or help us recommend SparseInst to your friends.


[$500] HIGH: Add Avatar > About > Troubleshooting section

Strategy:
A billion users means a billion problems.  To diagnose and solve them at scale, we capture client-side logs and upload centrally.
Problem:
Some problems can't be diagnosed cleanly after the fact from the logs, for a few reasons:

External contributors don't have access to production logs.
Internal engineers do have production access, but they're often cumbersome to access.
The logs are often ambiguous, such as if you have multiple devices connected and tabs open at the same time -- reverse engineering what happened for a particular client is confusing and time consuming.
Observing logs in realtime is cumbersome or sometimes impossible, which slows down and complicates testing.
Even if you have all the access you need, when talking with a user sometimes it's difficult to find the logs specific to them.

Solution:
Let's expand our ability to remotely diagnose production devices with better dev tools built into the app itself.  Specifically:

Add a Troubleshooting section to the Avatar > About page, just above Report a bug

This will always be available, both on staging and production builds

Move the following Test preferences settings into this new menu:

Use staging server
Force offline
Simulate failing network requests
Authentication status: Invalidate
Device credentials: Destroy

Add Reset and refresh, which wipes Onyx clean except for the minimum needed to call OpenApp (so you don't need to reauthenticate)
Add View console which opens a simple console:

This would first open up and initialize with all locally stored logs, so you can scroll back and see what happened
It would also append new logs in realtime
There would also be a Save button that just copies all available logs into a text file that is saved on the device
Add a Share button that brings up a Search selector and just posts the logs into the selected room (and then leaves the user navigated there, so they can talk about them).  I'm imagining this would be useful for chatting with a real world user and asking them to do something and send you the logs.
At the bottom is a command line that works similar to the Chrome console, where you can execute arbitrary JavaScript, with the results output to the console

This is blocking https://github.com/Expensify/App/issues/33040.
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01c2a08b8b8ae90e21
Upwork Job ID:<PHONE_NUMBER>047897600
Last Price Increase: 2024-01-15
Automatic offers:

fedirjh | Reviewer | 28115102

I would like to work on this feature

Can I directly work on this without a proposal?

Proposal
Please re-state the problem that we are trying to solve in this issue.
Some problems can't be diagnosed cleanly after the fact from the logs, for a few reasons
What is the root cause of that problem?
The settings page is not optimal for diagnosing.
What changes do you think we should make in order to solve the problem?

Add a new page in settings called Test preferences.
Then move the necessary components to the new page.
Create a menu item on the settings menu for the page.
Then add another item in Test preferences page called Reset and refresh. This option will clear the onyx collection except for the auth data. Finally, it will refresh the page.

Please submit proposals, especially for how you intend to do the console
feature. The more detail you provide, the greater likelihood we select your
proposal.
On Sun, Jan 7, 2024, 7:57 PM Antony Kithinzi @.***>
wrote:

Proposal Please re-state the problem that we are trying to solve in this
issue.
Some problems can't be diagnosed cleanly after the fact from the logs, for
a few reasons
What is the root cause of that problem?
The settings page is not optimal for diagnosing.
What changes do you think we should make in order to solve the problem?
Add a new page in settings called Test preferences.
Then move the necessary components to the new page.
Create a menu item on the settings menu for the page.
Then add another item in Test preferences page called Reset and refresh.
This option will clear the onyx collection except for the auth data.
Finally, it will refresh the page.
—
Reply to this email directly, view it on GitHub
https://github.com/Expensify/App/issues/34082#issuecomment-1880353158,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAEMNUQ4EYCWKZ7HZ4VAK63YNNVEDAVCNFSM6AAAAABBQ2U4NSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOBQGM2TGMJVHA
.
You are receiving this because you authored the thread.Message ID:
@.***>

This is a thoughtful and comprehensive proposal that tackles the challenge that's encountered in diagnosing and solving issues at scale. I appreciate the clarity in the suggested changes, especially the addition of the Troubleshooting section and the integration of better dev tools within the app.
The proposed enhancements, such as the Console View, Reset and Refresh option, and the ability to Share Logs, would significantly improve the ability to remotely diagnose production devices. I particularly like the idea of having a command line for executing JavaScript, resembling the Chrome console.
I'm eager to contribute to the implementation of these features. Before diving in, is there any specific technical considerations or preferences regarding the implementation? Additionally, if there are any specific testing scenarios or edge cases to keep in mind, please provide guidance.
Looking forward to collaborating on this improvement

@quinthar I have a couple of questions about the expected result.

Should the View console page be full screen due to the fact wide lines of code will be displayed and the console input component be wide enough to type in scripts?

Should we have a separate output log component to differentiate the output from the user-performed scripts? Another option is to color or tag it differently from the rest of the application's console log.

What action will the Troubleshoot button take?

Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: https://www.upwork.com/freelancers/~018e78ebb343f52495

Have already submitted my details

Proposal
Problem:
Diagnosing and solving issues at scale is challenging due to limitations in accessing production logs, especially for external contributors. The logs are often cumbersome to access, ambiguous, and observing them in real-time can be complicated. This hinders effective testing and troubleshooting, impacting the reliability of the application.
Root Cause:
The current lack of robust dev tools within the app itself prevents efficient diagnosis of production devices, leading to difficulties in identifying and resolving issues.
Solution:
To address these challenges, the proposed solution involves expanding the app's ability to remotely diagnose production devices by integrating better dev tools. The key features of the proposed solution are:

Troubleshooting Section:

Add a Troubleshooting section to the Avatar > About page, just above Report a bug.
Available on both staging and production builds for accessibility.

Test Preferences Settings:

Move existing Test preferences settings (e.g., Use staging server, Force offline) into the Troubleshooting menu.

Reset and Refresh:

Introduce a Reset and refresh option that wipes Onyx clean except for the minimum needed to call OpenApp, facilitating a quick reset without reauthentication.

View Console:

Implement a simple console feature accessible from the Troubleshooting menu.
The console initializes with locally stored logs, allowing users to scroll back and review past events.
Real-time appending of new logs for immediate observation.
Save button to copy all available logs into a text file saved on the device.

Share Logs:

Add a Share button that brings up a Search selector, enabling users to post logs into a selected room.
Enhances communication with users for issue resolution.

Command Line:

Include a command line at the bottom, functioning similarly to the Chrome console.
Allows execution of arbitrary JavaScript for advanced debugging.

Implementation Considerations:

Ensuring seamless integration with the existing app UI and user experience.
Compatibility with different network conditions.
Comprehensive testing scenarios to cover all use cases.
Clear documentation for users and contributors.

I look forward to collaborating on the implementation of these features. If there are specific technical considerations or testing scenarios, please provide guidance. Your feedback and insights will be invaluable in enhancing the app's diagnostic capabilities.

Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: https://www.upwork.com/freelancers/~017087736e94a4f9b8

Proposal
Please re-state the problem that we are trying to solve in this issue.
HIGH: Add Avatar > About > Troubleshooting section
What is the root cause of that problem?
NA - Feature request.
What changes do you think we should make in order to solve the problem?

Creating a new Menu i.e TroubleShooting.

We already have About page in which we show multiple menu's under it, we should use MenuItem component to render the new TroubleShoot item.
Once user clicks on it, use Navigation to navigate to the troubleshoot page.

Moving Test Preferences to TroubleShoot page, since this Troubleshoot will be a new page, we need to move MenuItem's from the Preferences page.

Reset and Refresh, we only need to wipe the onyx keys which doesn't require the user to be login again, this means we need to remove the data inside onyx that are not needed.

The majority of data we store are related to reports, transactions, reportActions, policy, reportDraftComment, network.
To Simply say we should be having onyx data related to following keys account, session, credentials, loginList, user, after clearing the keys we should do refresh i.e window.location.reload in browser and some native code for native devices to restart the app. Maybe using react-native-restart.

View console

Since console might contain a big chunk of lines i.e in real scenario people can be using the application for days where logs can be in 1000s of lines. We have logs stored in Log.logLines which we can use to render logs.

How, rendering well the logs are large list, which can block the low-end browsers to hang and doesn't give good UX. We should be using some virtualized list to render the logs, I prefer react-virtual for web and react-native-fast-list for native devices or we can simply use the SectionList that we're using to render the reportActions.

Realtime logs rendering, well at the current code we cannot do with the current implementation, to resolve it we should be having some realtime i.e a variable that causes re-render with the code.

Saving, we should be generating a blob with type text/plain and download it using native tools, i.e for web we should be using url.createObjectURL and same implementation or react-native-fs to create the file.

Sharing, when we click on Share we should snapshot the current logs (not new logs, because we're thinking about the current logs) and use the basic logic to share the logs.

Implementation specifics / issues
Realtime rendering is the main issue here which will require some observable implementation.
Why? we're not saving logLines in the react specific code which doesn't let us use some react specific sections i.e useState or so. While figuring out the solution, I found the following package https://jotai.org/docs/guides/react-native which doesn't need any react specific code to create observable and can also be used with react that gives the ability to cause re-renders. So we should be creating a atom that stores the logs and should be exported and used in App codebase.
We have a limit of 10000 characters inside composer, but we don't know that logLines does contain the 10000 characters which will block the implementation of Share feature. Maybe we can wrap the logs in a file and share it with the selected chat. @quinthar you're view on this?

What alternative solutions did you explore? (Optional)
NA

Hello Expensify Team
Your comprehensive plan demonstrates a deep understanding of the challenges at hand and offers a thoughtful and well-structured solution. I particularly appreciate the attention to detail in addressing each aspect of the problem. The proposed Troubleshooting section, along with the seamless integration of Test Preferences and the Reset and Refresh feature, reflects a strategic approach to streamline user support and enhance debugging processes.
The innovative use of observable atoms from the jotai package for real-time log rendering showcases a keen problem-solving mindset. Your consideration of potential issues, such as the character limit for sharing logs, reveals a thorough analysis of the implementation specifics.
This proposal not only tackles the immediate problem but also reflects a commitment to ensuring a robust, user-friendly application. I'm impressed by the holistic approach, covering everything from the user interface to the technical intricacies of real-time rendering.
I am ready and eager to collaborate on implementing these enhancements. Your feedback and guidance will be invaluable as we work together to create a more efficient and reliable workflow.

What's the next step?  Who is doing it and when will it be done?

According to guidelines, All the proposals are reviewed by the Core Team from which one gets selected and then needs to do some follow up steps.
After that the contributor starts the work.
I haven't contributed to this project before so I would love to work on it.

Bump @fedirjh for proposal review

Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: https://www.upwork.com/freelancers/~018e78ebb343f52495

bump @fedirjh

Bump, what's the next step here?  I think @TMisiukiewicz has already volunteered.  Who are we waiting on?  What's the next step, and when will it happen?

As discussed with @muttmuure in #33040 , I want to take this over and start working on a solution. Can I get assigned to this issue?

@TMisiukiewicz sounds great, go for it!

Quick update from my side:

created Troubleshooting page and linked it with routing
created "Reset and refresh" and "View console" menu items
moved "Test preferences" section to "Troubleshooting" screen
created basic implementation for "Reset and refresh", it works most of the times but I'm still figuring out what exact Onyx keys should be preserved from cleanining.

Do we have any design for the new page? If we want to follow the design of other pages, what i need to know is:

icon to use with "Troubleshooting" menu item
lottie illustration to use in the page header
icon for "Reset and refresh" menu item
icon for "View console" menu item
design for console view (?)

Unsure exactly what the console view looks like, but here's my take on how we could design the page. cc @Expensify/design

I love that! I think that's a great illustration choice, and I actually think we have an animated version of it where the planet in the background rotates and the screen flashes: https://www.dropbox.com/scl/fi/k6n1k21839t4gs6m8s3x5/ED-workspaces-1-030323-kjs-4.gif?rlkey=f4iqy7paop13448l4dylrc92h&dl=0
Small nitpick, but I think the top page header would stay with a blue background even as content on the page scrolls. Check the existing examples in product to see how that works.

Thanks for the design! For those kind of illustrations we use Lottie in the app - is there any way to get it as a .lottie file?

Unsure exactly what the console view looks like

I think it could be something similar to the console in the browser, just matching the mobile view and some other requirements mentioned above
https://github.com/Expensify/App/assets/13985840/9aedd9e1-579b-4111-bbdc-450486990aef

@TMisiukiewicz try this for the animation: https://www.dropbox.com/scl/fi/s1r6oty2q20fyydl148e6/ED-workspaces-1-030323-kjs-4.json?rlkey=f3hwuv9i5xcjlzuhynp0dwsrb&dl=0

Works nicely, thank you! 👍

I also need Spanish translations for the following phrases:

Troubleshoot
Reset and refresh
View console
Use the tools below to help troubleshoot the Expensify experience. If you encounter any issues, please submit a bug

For wiping the Onyx state, I preserve the Onyx keys that seem to be static or relevant to user account: account, currency_list, device_id, isFirstTimeNewExpensifyUser, isLoadingApp, isSidebarLoaded, loginList, nvp_priorityMode, preferredLocale, preferredTheme, session, tryFocusMode, user, userWallet. Can someone who is more experienced with Onyx take a look and verify if I can safely remove something from this list, or if there are any missing keys I need to add?
Can we split work on this issue into 2 PRs? First would introduce the Troubleshooting page and "Reset and refresh" feature and second one would contain the console. The console feature will probably take some time, so this way we could ship the "Reset and refresh" feature faster

cc @cead22 @pecanoro

@muttmuure Please, follow this if you need some translations! https://stackoverflowteams.com/c/expensify/questions/10316/10317

Oops, sorry!

Small nitpick, but I think the top page header would stay with a blue background even as content on the page scrolls. Check the existing examples in product to see how that works.

My bad on the explanation. It was actually a variation with and without an illustration. Not meant to be a scrolled version 😅 But yeah we should do what you said

Ah got it, all good and sounds good to me!

For this screenshot here though, looks like it doesn't quite match your mockup @dubielzyk-expensify - I think you are using blue600 or blue700 as the BG?

@shawnborton Good catch, thanks!
Additionally, what icon should I use for Troubleshoot menu item? The one you see on the screenshot below is a placeholder for now

Hmm good question. Curious what the @Expensify/design thinks but perhaps a lightbulb or the "!" (exclamation) icon could work?

I like the lightbulb or the "!" icon. I lean toward the "!" but I want to make sure it doesn't feel too alarming haha.

I think both of those icons are in the repo already, so perhaps @TMisiukiewicz can try each of those quickly and we can see which one we prefer? I could go either way... I do like that the lightbulb has a more positive connotation to it though!

@shawnborton @dannymcclain I couldn't find the lightbulb in the repo, here's the example view with Exlamation icon

I don't hate that, but I'm still curious to see the lightbulb icon.
Weirdly, I found the lightbulb here: assets/images/emojiCategoryIcons/light-bulb.svg
Not sure why it's not in the main images directory with all the other icons as well though. Does that help at all?

Thanks for finding it, here's a version with a lightbulb:

Big fan of that! Let's see what @dannymcclain and @dubielzyk-expensify think though!

Yeah I like the lightbulb way better! Much less anxiety producing haha.

Yeah. Lightbulb is cute. Dig it!

Do we need any message to display after pressing "Reset and refresh"? This might be confirmation modal (e.g. "Are you sure you want to wipe the data?"), or alert/toast saying the data was wiped. If so, what message should be there?

Opened up a Draft PR! While going through the checklist, noticed new copies have to be approved by marketing team. Can someone take a look on the copies suggested in the design above?

Reset and refresh
View console
Use the tools below to help troubleshoot the Expensify experience. If you encounter any issues, please submit a bug

Once they are approved, I'll ask for Spanish translations

I'm also about to start working on a Console, it's not blocking me in any way for now but is there any update regarding the design for it?

I'm also about to start working on a Console, it's not blocking me in any way for now but is there any update regarding the design for it?

What does this mean exactly?

@shawnborton wiping the data basically means clearing all the Onyx data except those keys that are needed to run the app as a freshly logged-in user. There are some keys that could affect the user account, e.g. any draft messages would be gone.
You can see the currently implemented behavior on both web and mobile here:
https://github.com/Expensify/App/assets/13985840/f8996dc9-4d05-414a-9f55-e3b806a18de8
https://github.com/Expensify/App/assets/13985840/f02f6655-6a8b-44c1-8863-96cfc0e46748
As you can see, currently there is no full page spinner/splash screen after pressing it. Should we approach it differently?

I'm also about to start working on a Console, it's not blocking me in any way for now but is there any update regarding the design for it?

What does this mean exactly?

I'm talking about "View console" feature mentioned in the first post of this issue. I assume it would look and work pretty similar to the console known from web browsers e.g. Chrome. Would be great if we could figure out how to implement this view in the app

wiping the data basically means clearing all the Onyx data except those keys that are needed to run the app as a freshly logged-in user. There are some keys that could affect the user account, e.g. any draft messages would be gone.

Got it, thanks for clarifying. I could see where a small alert dialog would work in that case, which exists as an existing pattern (for instance, try to delete an outstanding money request and you will see the confirmation modal). Curious if @quinthar agrees though!

You can see the currently implemented behavior on both web and mobile here:

Got it. I think this is fine, especially if we have the confirmation modal.

I'm talking about "View console" feature mentioned in the https://github.com/Expensify/App/issues/34082#issue-2069570061. I assume it would look and work pretty similar to the console known from web browsers e.g. Chrome. Would be great if we could figure out how to implement this view in the app

I'm not entirely sure what the intention is behind this feature, so would love for @quinthar to chime in on this one too. Are you thinking we would display our own custom view of a console, or just launch the existing browser console, or something else?

I was able to create a basic implementation of in-app console that executes the arbitrary code, here is the demo:
https://github.com/Expensify/App/assets/13985840/2226aa3a-3798-43f3-90e4-51b8364eefe0
Next thing coming is connecting it with existing logs. Still waiting for any guidelines regarding the design.
@muttmuure could you help me get an approval for new copies listed in this comment? This would speed up opening the first PR with Troubleshoot page 🙏

Hiya! Added a few clarifying questions below for the first two bullets just so we can possibly make those more specific.
cc @muttmuure @TMisiukiewicz

Reset and refresh -- For this one, @TMisiukiewicz, I had the same questions as @shawnborton when reviewing this copy. can you tell me what exactly is being reset when someone clicks this? I'm thinking we should a tiny bit more detail so someone knows what exactly they're doing when they click this. Possibly something like "Reset Onyx data and refresh" Or something like this?
View console -- For this one, what is the console for? Can we add a descriptor so someone knows what they'd be opening exactly when clicking on this?
I think the 3rd bullet is fine as is but we should add a period at the end of "please submit a bug."

My two cents:

Reset and refresh stashed data

View debug console

Are more specific and help indicate what these new features do

I'd be down for those, @muttmuure. I think just adding a little more context helps in this case. So we'd have:
Use the tools below to help troubleshoot the Expensify experience. If you encounter any issues, please submit a bug.

Reset and refresh stashed data
View debug console

I'm thinking we should a tiny bit more detail so someone knows what exactly they're doing when they click this.

Agree on that one, however we might give a detailed description in a confirmation modal after pressing it

Possibly something like "Reset Onyx data and refresh" Or something like this?

Users probably don't know what Onyx is, so I think "Reset and refresh stashed data" proposed by @muttmuure should be fine and we can think about a little bit detailed description in a confirmation modal as I mentioned above

Ok cool, so let's move forward with this for the copy if you agree, @TMisiukiewicz?

sounds great to me @LLPeckham 👍 Thank you!

Since copies are approved, I sent the draft PR #35306 for our internal review, I'll open it once I have an approval from CK side.
Today I was also moving forward with the console. I've already integrated existing logs with it and added functionality of saving it on a device. Tomorrow I'll be working on displaying real-time logs as well
https://github.com/Expensify/App/assets/13985840/540e555e-4a70-494c-a986-215ce34459d6

We can help provide better designs for this page:

But to get you started, we should open up a new page in the RHP dedicated to this entire thing. So the page/view would be called Console.

@dubielzyk-expensify given that you worked on the original design for this, let us know if you want to take a stab at the console page design too.
Looks like the brief for that one is:

Add View console which opens a simple console:

This would first open up and initialize with all locally stored logs, so you can scroll back and see what happened
It would also append new logs in realtime
There would also be a Save button that just copies all available logs into a text file that is saved on the device
Add a Share button that brings up a Search selector and just posts the logs into the selected room (and then leaves the user navigated there, so they can talk about them). I'm imagining this would be useful for chatting with a real world user and asking them to do something and send you the logs.
At the bottom is a command line that works similar to the Chrome console, where you can execute arbitrary JavaScript, with the results output to the console

Looks great to me! Nice job on this.

The design looks great! 👍 I already started slowly implementing it today.
I have more technical problem now. Today I started working on adding real-time logs, that's why i thought switching my implementation to Onyx would be good. My idea was simply merging new logs when they appear in the logger, however that generates a problem of infinite loop, since we are getting merge() called... log endlessly in this scenario. So a few questions from my side:

what logs should appear in the console? Basically each log that is currently printed in browser console in development mode?
if Onyx logs are required, is there a built-in way to determine what logs should be ignored so we could avoid merge() called for key logs messages?

100% with you on Mono font. I thought about it but was unsure if we even had access to it in the app. So glad you brought this up <3 Updated mocks with mono font:

I thought about it but was unsure if we even had access to it in the app.

We totally have access to it already! Just try using ticks for inline code or three ticks for a code block!

Small update, I connected logs with Onyx and created a list of logs that should be ignored, so I can avoid infinite loop when merging new items. Now items are displayed in real-time when console is open, however now it does not display previously collected logs, so I have to figure out how to correctly collect them in the background.
I also started working on a design implementation:

Looking good so far. For the buttons, why isn't the button text center-aligned?

Today I connected logs with Onyx and made it possible to display historical logs together with real-time logs. I feel like storing all the Onyx logs might be inefficient at some point, after some tests my file to download already had 100mbs. I think it'd be helpful to decide what exact logs should be stored there, eventually we should think of building some kind of mechanism that would flush old logs from the console. cc @quinthar
Here's the demo showing historical logs, adding real-time logs and executing commands
https://github.com/Expensify/App/assets/13985840/9d82ab13-01e5-471e-9a46-bed7e3a0bf44

Looking good so far. For the buttons, why isn't the button text center-aligned?

@shawnborton I was looking at the code responsible for displaying icon and text in the button and turns out when the left or right icon is displayed, the text is automatically aligned to the left 🤔 should it work different way?

It should always be center-aligned as far as I know... cc @Expensify/design for additional thoughts though.

It should always be center-aligned as far as I know... cc @Expensify/design for additional thoughts though.

Definitely. Those buttons should look like Jon's mock.

Yep, what Shawn and Danny said. Also worth mentioning that the logs area is the only area that should scale:

Okay so according to https://github.com/Expensify/App/issues/34082#issuecomment-1923783535 this needs to be Internal instead, so I've adjusted it accordingly.
@techievivek you were assigned by the C+ review - do you want to take this, or should we make it a Hot Pick and call it out in the update? cc @quinthar

Wow, this is all amazing!  Just to confirm, the logs aren't saved to Onyx until you open this troubleshooting dialog, right?  We don't want to do anything that will affect the 99.99% of users who won't open this dialog.    Where are the logs normally stored, prior to this change?

@quinthar right now it's all stored in the Onyx from the beginning since we want to see historical logs or actions that happened when the app is backgrounded. I agree that is not the optimal solution as it would affect all the users. We can easily change it to collect logs only if user opens up a troubleshooting page, however once it is done, there would be no way to disable it other than logging out/flushing Onyx data, which may lead to uncontrolled amounts of data stored in Onyx . As an alternative, I'd suggest making logs collector as an opt-in, so they would be stored in Onyx only if the user specifically enables it with toggle (pretty much the same way the "Developer options" on Android works). This way those who want to track their actions might enable or disable it whenever they need. Disabling would automatically clear all the logs stored in Onyx. If the toggle is off, "View debug console" should not be visible. WDYT?

button styles updated ✅ once we have it merged this style will apply globally

Looks great, thanks!

Today's update:

applied styles for buttons to center the label and icon
applied styles to scale the console window (comment)
created new screen to select a chat to share the log

Tomorrow I have a plan to implement sending log for selected report
https://github.com/Expensify/App/assets/13985840/621f359b-7dd0-4c3d-9be2-18922e292430

hi @quinthar  today I’ve been working on sharing the logs. I was investigating how logged data grows on a mobile and how could we effectively collect it. So right now I have ~2300 logs which is around 2,1mb. My first idea was to send it as formatted message, however composer accepts maximum 10000 characters. So sending this as a txt file seems more efficient, as it gives a possibility to send a file up to 24mbs. We could automatically remove logs older than e.g. 3 days to keep it as lean as possible and avoid building files that exceeds this limit. What do you think about this solution?
Additionally, do we want to display all logs that are going through logger, or do we want to collect only some of them? Second solution would definitely have a positive impact on a size of the file
I also posted an idea to make collecting logs an opt-in here. Wondering what are your thoughts about this, since as you mentioned, we don’t want to affect 99% of the users who won’t open the debug console.

@greg-schroeder

I guess I see @TMisiukiewicz working on part of it, so is the internal engineer working on a separate PR or just doing the review stages alongside C+? Sorry, just a bit confusing here

We don't need any backend changes for this, we will be just helping doing the reviews along with C+

@TMisiukiewicz

right now it's all stored in the Onyx from the beginning since we want to see historical logs or actions that happened when the app is backgrounded. I agree that is not the optimal solution as it would affect all the users. We can easily change it to collect logs only if user opens up a troubleshooting page, however once it is done, there would be no way to disable it other than logging out/flushing Onyx data, which may lead to uncontrolled amounts of data stored in Onyx

Can we not have a job in the background that could wipe the logs at regular intervals?

As an alternative, I'd suggest making logs collector as an opt-in, so they would be stored in Onyx only if the user specifically enables it with toggle

In the worst case, we would still face the same issue where the onyx will be flooded with the log data, so I think we will need to look into a solution that is scalable for everyone.

@techievivek

Can we not have a job in the background that could wipe the logs at regular intervals?

Discussed it lately here, however it's hard to decide what interval should we take here. My main concern is: the longer interval, the bigger possibility we could excess the 24 mb limit of the attachment file.
Recently I discovered logs are being sent to the server (via Logger from expensify-common package) and I am wondering if we could access those logs so we could avoid keeping the historic data on the device.

Today I was able to implement sharing txt file with users on iOS:
https://github.com/Expensify/App/assets/13985840/6ee12393-46be-4132-a2c0-0b9e62e99b61
I still have to do some debugging on Android, as i am getting "Unexpected error" when trying to upload a file. Still need to work on Web/desktop implementation as I cannot use a filesystem there, trying to figure out how to achieve the same result with Blob
I have also added a flag in Onyx that determines if the logs should be collected. By default it's false, and it's set to true when user opens up the Debug console for the first time. Happy to discuss more improvements in this area, as we have to make sure the file does not exceed 24mbs.

@shawnborton @dubielzyk-expensify could you help me with the design for this comment? Discussed it with @quinthar here

While waiting for a proper design, I already implemented the switch to build a proof-of-concept how it could possibly work, here are the results containing:

enabling client side logging
saving file on the device
sharing the logs as an attachment in a report

https://github.com/Expensify/App/assets/13985840/bf9fc5e7-ec98-4c9e-9b73-8f78ec17bf34
https://github.com/Expensify/App/assets/13985840/3efa5a2e-0d56-4545-96ae-606bd9f6395f
Sharing logs now works cross-platform, so we have full-working feature. On Monday I'll verify if zipping the .txt would help reduce the filesize (cc @muttmuure), and I'll do some cleanup on the branch. Still waiting for the proper design for switch and decisions regarding flushing the old logs. Additionally the console feature is blocked by #35306. I hope we'll figure this out quickly and we'll be able to create a draft PR on Monday 🤞

Wow this looks so great!

I am really looking forward to using this

While waiting for a proper design

Can you break down exactly what you need here? I looked at your most recent POC and it looks really great!

Agree with @shawnborton . What you have looks awesome. Happy to provide anything you need though

@fedirjh

cc @quinthar What is the expected behavior for this feature in offline mode? Wiping the data may result in the app becoming unusable in offline mode. Should we consider enabling this option exclusively for online users, or is logging out the user in offline mode a more suitable approach?

Given that the app will become unusable, I think we can enable this option only for online users. Otherwise, if they are on a bad connection, we might end up making the App unusable for them.

@shawnborton @dubielzyk-expensify thanks, I'm gonna follow the @quinthar's suggestions from here, no need for additional work from your side  👍
@techievivek

I think we can benchmark it and agree on an interval that should be safe in the worst scenario. I don't think that would be something difficult, no?

I think it's difficult to benchmark it since logs may vary depending on an actions performed by user and the amount of data on user account (e.g. merge personalDetails log). Maybe let's just check the size of the blob when pressing "Share log",   and if it exceeds 24mb, just cut e.g. 1000 oldest logs and then move to another screen?

Yes, we send the logs to the backend, which then gets stored for ~30 days in Elasticsearch, and we then look at them in Logsearch or Kibana. We can create a command that queries and returns logs, but we need a wider discussion for this. Let me know if you would want me to bring up a discussion on this.

Discussed potential sharing the logs with @muttmuure here. I think we could stay with the currently implemented solution that stores logs on the client side

@fedirjh

cc @quinthar What is the expected behavior for this feature in offline mode? Wiping the data may result in the app becoming unusable in offline mode. Should we consider enabling this option exclusively for online users, or is logging out the user in offline mode a more suitable approach?

Given that the app will become unusable, I think we can enable this option only for online users. Otherwise, if they are on a bad connection, we might end up making the App unusable for them.

Can we discuss the detailed implementation for this? Should the button just be disabled when in offline mode? Or maybe should it display an alert with a message?

Opened up draft PR #36337, once we have #35306 merged and implement flushing old logs, it should be ready for review

Displaying an alert seems friendlier.

I agree! And that follows our standard form practices as well. (We try not to disable buttons as much as possible and instead opt to throw errors.)

Both Troubleshooting page and Debug console page are merged now 🎉 However they are currently displayed in an RHP, wondering if they should follow the new design and be displayed in full screen navigator? Could we get an input from someone from design team?
cc @fedirjh @techievivek

CC @shawnborton @dannymcclain for your thoughts on above comment. 🙏

Heya! Seeing I'm assigned here but not seeing any tags or reasons of why - was I accidentally added to this GH? @techievivek @muttmuure

@LLPeckham Looks like you helped with some copy https://github.com/Expensify/App/issues/34082#issuecomment-1919076811

Ahh yes. How quickly I forget. Thanks 😂

Hmm good question. I think technically Troubleshoot should only get the full card treatment if we make it its own standalone section in the LHN and pull it out of About. I don't think that's a bad idea... we might want to put it just below About in the Settings LHN? cc @muttmuure @Expensify/design for thoughts on that. But I think this one could quite easily be converted to that wider card style that other sections are using.

I think technically Troubleshoot should only get the full card treatment if we make it its own standalone section in the LHN and pull it out of About. I don't think that's a bad idea... we might want to put it just below About in the Settings LHN?

I honestly don't feel super strongly either way. I agree that it could easily become it's own standalone page (and I like your suggestion of putting it underneath the About nav item).

Hi @TMisiukiewicz! We got an alert in the backend that we're receiving a massive message log from NewDot, and it seems it's coming from this PR that was deployed recently. This is an example of the message:
LogAPI - Massive log message given ~~ 0: '[info] [Onyx] merge() called for key: logs properties:<PHONE_NUMBER>372,1708058686377,1708058696327,1708058730961,1708058732236,1708058732237,1708058734681,1708058734923,1708058734924,1708058734925,1708058734926,1708058734934,1708058734983,1708058734984,1708058734985,1708058734986,1708058735023,1708058735064,1708058735083,1708058735101,1708058735102,1708058735106,1708058735138,1708058735153,1708058735167,1708058735302,1708058735331,1708058735446,1708058735453,1708058735459,1708058735465,1708058735572,1708058735586,1708058735588,1708058735771,1708058735787,1708058735859,1708058735877,1708058735886,1708058735887,1708058735992,1708058735993,1708058736070,1708058736119,1708058736120,1708058737117,1708058737118,1708058737128,1708058737139,1708058741789,1708058741809,1708058741810,1708058741811,1708058741812,1708058741966,1708058741967,1708058741976,1708058742114,1708058748941,1708058749061,1708058749062,1708058749070,1708058749209,1708058749218,1708058749219,1708058749233,1708058749235,1708058749272,1708058749573,170'

We are already trimming the message in the backend using this logic:
if (strlen($log['message']) > 1024 * 1024) {
    self::alert('Massive log message given', substr($log['message'], 0, 1024));
}

And I was wondering if we do the same in the frontend also to avoid sending large amounts of data for the logs, thoughts?

Hi @marcochavezf! That's weird because there is a condition to not attach logs with pattern [Onyx] merge() called for key: logs because otherwise it would create an infinite loop and end up with tons of huge log messages (since new log is attached to logs, which triggers logging a message that merge was called for key logs... and so on). Is this happening frequently? My only idea for now is someone did some changes in the codebase locally and removed this condition

Oh interesting, I happened several times yesterday, and according to the logs it wasn't coming from a local environment. I will report again if the alert pops up again, thanks!

Reviewing

Paid!
@fedirjh can you create a regression test for this new feature? Thanks!

Nice, regression tests look good to me. 👍 CC @greg-schroeder

LGTM! Filing!


trillium on io-uring

I'm investigating utilizing io-uring runtimes for http servers. Trillium is my favorite so far. trillium-http has no runtime dependencies, so I think it won't be a big problem adding support for io-uring runtimes like monoio and glommio

I love this idea but as I develop exclusively on MacOS, I don't have a convenient way to write this myself. I'm excited to see what other people come up with, though.


Fix over-hasty find and replace on strings

Too quick again!

haha, thanks for these PRs!
Tagging new versions of Reactive and Interact right now.

Great, thanks!


chore: bump webpack, webpack-cli and webpack5 versions

Codecov Report

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

@@            Coverage Diff            @@
##            master      #376   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           15        15
  Lines          266       266
  Branches        23        23
=========================================
  Hits           266       266

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 e659a0a...947d108. Read the comment docs.


DKIM etc headers for cucumber.community

Emails are ending up in people's spam.

For the devs@ email address, I've enabled SRS rewriting on the forwarded emails.
See https://www.fastmail.help/hc/en-us/articles/360058753434-Email-forwarding
Maybe that will help? Can someone do a test?

I just sent a test, let's see how the deliverability is now.

Got it. :partying_face:

Got it 👍

No email arrived for me, either in spam or otherwise :(

Oops, that's because you weren't included in the distribution list @luke-hill! Sorry. See changes in #2166 for a resolution hopefully.


When copy and pasting a file to Ubuntu file system root directory in Windows Subsystem for Linux using File Explorer, Not able to see the same on the Ubuntu terminal.

I copied and pasted a file inside Ubuntu file system root directory in Windows Subsystem for Linux "C:\Users<username>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home
" using File Explorer. I'm able to see the file on the File Explorer but not able to see using the Ubuntu terminal. If I am creating a file using the Ubuntu terminal, the same I can see on the File Explorer. This is really weird, not sure whether it is a bug or something else.

Accessing that directory is not supported ref #1740 and FAQ.


Relevance of query user under Windows 7

I seem to be completely unable to find a reference that this command also works under Windows 7.
Dows Anyone know where this would be documented, i.e. as a Windows 7 Professional user, I am looking for a manual which includes documentation about the query commands.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 176cda2b-dbd5-a4cd-c6e8-da0d067827be
Version Independent ID: 2c7dacd2-709f-ae87-cb10-cc687e28852e
Content: query user
Content Source: WindowsServerDocs/administration/windows-commands/query-user.md
Product: windows-server-threshold
Technology: manage-windows-commands
GitHub Login: @coreyp-at-msft
Microsoft Alias: coreyp

I'm not sure about a manual, but yes it works.


Windows-illegal characters in folder names

There's a folder named test-*-option at test/fixtures/js/regression. * is an illegal character in Windows filenames. This means that Babylon can't be installed or the repo cloned on Windows machines.
There's actually a top post on Hacker News right now about a project, Prettier, that depends on Babylon and cannot be installed on Windows for this reason. I tried a version of Babylon with that folder renamed and that was all it took to work, so I thought I'd bring it up.

This is because of https://github.com/jlongster/prettier/blob/6d6d53f6df5069765ce0a08a4a1ee9ebe38f4b83/package.json#L10 - we can just publish a new version with his fix and can use npm

Basically just have to rename the folder ^ to be test-star-option!

Well that was fast fixed :)


feat(Data/Fintype/Units): Fintype (ZMod n)ˣ

From EulerProducts. This is helpful for eventually proving the orthogonality relations for Dirichlet characters.

Turns out this is not a good idea and better done locally where needed.


Error when players join/disconnect

Version: <IP_ADDRESS>
Build: Latest (#942)
Problem: Everytime a new player joins, the following error is dumped into the console:

Could be an error from something else, but I am not sure. It started happening ever since the <IP_ADDRESS> version of rocket came out. (For me at least)

looks to me like you need to update rocket

@sharkbound The problem is that rocket ALREADY is updated (LATEST AVAILABLE BUILD: 942, BUILD USED IN SERVER: 942), which is WHY I have posted this ISSUE.

oh i see. well hopefully it will get fixed then

but sometimes reseting the placed stuff fixes this. well it did for me at one point a least

It's most likely an outdated plugin that is causing that, the last few updates to rocket required that nearly all the plugins be recompiled against the newer rocket lib's.

@cartman-2000 Every single plugin that is currently used in the server is up to date in it's latest version. Any outdated plugins were completely removed from the server. However... I STILL get the error when a player joins. Also, ( @sharkbound ) the error is happening in an ARENA server, so removing placed stuff is impossible, because there is nothing that can be and will be placed. I will try a full re-install of the server now, and see if that fixes the problem, or if it's the API of Rocket that is bugged.

How do you know if the plugins you use are outdated? The developers need to update their plugins. So of they where not changed in the last few days then the devs need to do that.

Any plugins that have not been touched/updated on the site since like three daya ago are "outdated".

@persiafighter that error is happening because you have a plugin that is trying to load a type that no longer exists in the latest rocket. Aka an outdated plugin...


Extension fail without notifying the user when meson command it not found

My project was setup in a way the extension was not able to find the meson executable.
The project tree was showing only the project name, but nothing under. There was no error messages in the output window.
A exception occurred when calling getMesonVersion from the getMesonTargets function, preventing the extension to finish building the project tree.

Thanks for the bug report. Not sure when I will get to it!

Duplicate/related: #95


Allow requiring fields only on input or only on output

Say we have an object like this:
person:
  required:
    - name
  properties:
    name:
      type: string

These objects are sent to the API via POSTs and read via GETs. We have many many client devices out there all reading and writing these objects, so when we put out a breaking change in a new version of the API, we have to support the old ones, at least temporarily. Now we add a new field, say age. We want this to be a required property, so we need a new API version. At /v1 we'll have the old API and at /v2 we'll have the new one. But now there's a problem. Say a v1 client POSTs a person object. Now a v2 client attempts to fetch this data with a GET. The age data isn't available. The API cannot construct a person object that fits the v2 spec. So do we make the age field optional in the v2 spec? No, because then we're not validating client input. Our v2 client code might be failing to include the age property in some cases, and it'll just fail silently, and we might not catch the bug before the code goes out into production.
The correct solution, as I see it, is for age to be required on input, but not on output. v2 clients should always include this new information, but since the API itself is having to relay information from v1 clients, it simply can't always do that. My ideal syntax would be this (in the v2 spec):
person:
  required:
    always:
      - name
    write:
      - age
  properties:
    name:
      type: string
    age:
      type: number

There would similarly be a required.read property. If it's not possible to implement this syntax in a backwards-compatible way, maybe something like required, requiredOnRead, requiredOnWrite.

(Warning: rambling ahead. Optional reading)
Just to provide further rationale: to me this isn't a niche use-case, I think this is basically the tool which solves all of your API versioning woes. When we're dealing with symmetrical APIs (clients read and write more or less the same type of data), basically when you break an API, you do it in one of three ways:

You add a field (new clients will be sending more data).
You remove a field (new clients will be sending less data).
You change the data type of a field (new clients will be sending different data).

The way you handle these changes is in each case to create a new v2 spec and put the APIs on /v1 and /v2 (at least this is one way of handling it), in which case we can handle them in these ways:

New clients are sending and expecting the age field, but old ones aren't. The problems that can arise and the way to handle this with input-only required properties is detailed above.
New clients are no longer sending the age field, but old clients expect it. This is going to break the solution no matter what. Old clients making a GET request to /person?id=12 are expecting to get an age, but the information isn't available. Assuming age was a required property in the v1 spec (if it isn't there's no problem), there's just no way around it: something's going to break. No clever new OpenAPI feature can fix this, so we can forget about this case.
Field F has changed from data type A to data type B. If it is not possible to translate type B into type A in a reasonable fashion (like if maybe the fields only got renamed) then we're in case (2), above: information that old clients want is no longer available from new clients, we can't do anything about it, and we forget this case. If it is not possible to translate type A into type B in a reasonable fashion, this means new clients are looking for information which old clients aren't providing. This is the same as case (1), above: the solution is to make the field optional on output and required on input.

To be honest, I haven't yet thought of a use case requiring making a field required on input but not on output, but for the same of symmetry it should probably be included.

@geajack can you review the readOnly and writeOnly properties of the schema object and see if they satisfy your requirements?

@MikeRalphson Unfortunately not. Unless I'm misunderstanding the docs, those fields allow you to make a property either present or absent, rather than required or not required. If we take the case of adding an age field in the next version of an API, we want it to be allowed on both input and output, but only required on input. If I were to set it to be a writeOnly property, the API now can't output objects with the age property, even though it should be able to do so.

@geajack, I think this is one of many cases where you'd need to define separate request and response schemas for each version, in order to fully define the data contract as you've described it.
Summarizing the combinations describe in the Schema Object specification:

Read/Write Keyword
Required
Property in Request
Property in Response

none (default)
false
optional
optional

none (default)
true
required
required

readOnly
false
disallowed
optional

readOnly
true
disallowed
required

writeOnly
false
optional
disallowed

writeOnly
true
required
disallowed

You're looking for options that would make a property:

required in the request and optional in the response; or
optional in the request and required in the response

OpenAPI doesn't provide a way to specify those semantics within a single schema.

@tedepstein The trouble is with nested objects. If a company contains an employee which contains a pet which contains an age, and we want to make the pet's age required/optional on input/output, we need an InputPet and OutputPet, InputEmployee and OutputEmployee, and InputCompany and OutputCompany.

@geajack , Yes, though there might be a way around it.  (See below.)
The specific limitation you've described is part of a more general design challenge: How to allow adapt data models for use in a specific context, without duplicating or losing the identity of the original data model.  OpenAPI's Schema Object gives you only so much flexibility to do this.  In general, I'm agreeing with you that this is an area where OpenAPI could be improved.
Still, working with what we have today, we could try prototyping the scenario you just described using allOf. You might find that you don't need six separate schemas.
    Company:
      type: object
      properties:
        companyID:
          type: string
        companyName:
          type: string
        employees:
          type: array
          items:
            $ref: "#/components/schemas/Employee"

    Employee:
      type: object
      properties:
        firstName:
          type: string
        lastName:
          type: string
        pet:
          $ref: "#/components/schemas/Pet"

    Pet:
      type: object
      properties:
        name:
          type: string
        age:
          type: integer

    InputCompany:
      allOf:
      - $ref: "#/components/schemas/Company"
      properties:
        employees:
          items:
            allOf:
            - $ref: "#/components/schemas/Employee"
            properties:
              pet:
                allOf:
                - $ref: "#/components/schemas/Pet"
                required:
                - name
                - age

The request body could reference InputCompany as its schema, and the response could be Company. That would make the Pet's name and age properties required in the request, but optional in the response.

It's been more than six months since the last answer with no further discussions so I'm going to close this.  Please re-open if needed.


Refining interfaces page

Note: code coverage went down only because the TF 1.X tests failed on Travis (looks like the container lost internet connection). Restarted the job, that should fix it.


auto-commit v0.1.5 fails with 'Couldn't complete prompt' error on macOS

Summary:
Auto Commit 0.1.5 encounters a runtime error when analyzing a codebase on macOS (Darwin-aarch64). The error message suggests that the required model 'code-davinci-002' does not exist.
Installed version:
Auto Commit 0.1.5 (Darwin-aarch64)
Installation method:
Installed using the following command:
curl -fsSL https://raw.githubusercontent.com/m1guelpf/auto-commit/main/install.sh | sh -

Error Message
Loading Data...
▐   ⠈    ▌ Analyzing Codebase...thread 'main' panicked at 'Couldn't complete prompt.: Api(ErrorMessage { message: "The model: `code-davinci-002` does not exist", error_type: "invalid_request_error" })', src/main.rs:137:10
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
▐    ⠂   ▌ Analyzing Codebase...

Steps to reproduce:

Install Auto Commit 0.1.5 on macOS (Darwin-aarch64) using the provided installation command.
Run auto-commit in a terminal.
Observe the error message displayed during the "Analyzing Codebase" step.

Expected behavior:
Auto Commit should analyze the codebase without encountering any errors.
Actual behavior:
Auto Commit fails with a 'Couldn't complete prompt' error related to a missing model 'code-davinci-002'.

Should be fixed in the latest release! 😄


Reportback items endpoint

Fixes https://github.com/DoSomething/api/issues/7
What's this PR do?
Adds a user's first_name, last_name, country, and photo to the reportback-items endpoint. Makes the request from phoenix to ns to grab user data and caches this data for 24 hours.
Where should the reviewer start?
phoenix -> northstar call is made in lines 132-148 of ReportbackController.
How should this be manually tested?
Comment in line 137 of ReportbackController.php to get a specific user's information.
User endpoint dev.dosomething.org:8888/api/v1/reportback-items.json
To test caching is working correctly: http://drupal.stackexchange.com/questions/87184/how-to-check-that-cache-is-working-on-current-page
What are the relevant tickets?
Will this conflict @aaronschachter?
https://github.com/DoSomething/LetsDoThis-iOS/issues/286

@uy @weerd ready to be looked at whenever either of you get a chance!

@chloealee No need to worry about https://github.com/DoSomething/LetsDoThis-iOS/issues/286 for this PR, thanks for checking!

I'm also worried about the cache actually working - is there a way to test this on staging?

@chloealee as far as cache testing, you can see that in the cache tables in sql pro. I can help ya with that if you want :smile:
also... since this is a new cache, I think you actually have to make the table with an install hook like this

:+1: :ship: :wine_glass:

Nice work @chloealee :dancer:

thanks @weerd and for everyone's help on it - this was fun!


Feature request: allow having overlay layers on by default in challenge

Right now, the user can can toggle on extra layers like OSM Data, Mapillary, and OpenStreetCam.
It would be very helpful when setting up the challenge to make it so these layers are automatically available. In this case the user could have satellite basemap, OSM data, overlay, and if they are looking for tasks where they can add a shop name for example, they would be able to know immediately if Mapillary/OSC imagery is available to help them, or if it's too hard/can't see because of no street imagery.
I would suggest a simple dropdown with check boxes in the same challenge setup area where the basemap can be chosen.

@cbeddow Duplicate of #844 (unless you mean opening with certain layers in an editor)
If this is a duplicate, you should change the title of the original issue to reflect that it is about any overlay.

yep closing as duplicate, thanks @danieldegroot2


fixes redirection external links  Closes #6763

Fixes Issue

Changes proposed

Check List (Check all the applicable boxes)

[X] My code follows the code style of this project.
[ ] My change requires changes to the documentation.
[ ] I have updated the documentation accordingly.
[ ] All new and existing tests passed.
[X] This PR does not contain plagiarized content.
[X] The title of my pull request is a short description of the requested changes.

Screenshots

Note to reviewers

Thank you for your contribution, but @rhithesh this has already been dealt with at: https://github.com/EddieHubCommunity/LinkFree/issues/6763 by the assignee on this issue.
In future so that you do not spend time on work which will not be used and also to follow this projects guidelines, please take a look at your Contributing Guide: https://github.com/EddieHubCommunity/LinkFree/blob/main/CONTRIBUTING.md
I will be closing this PR.