feat: implement new Tasks BigData example for useVirtualList usage

This PR try to fix #296
So I add a new example where implemented virtualList based on vueuse core function.
I tried to use seperate package but it don't fit for table HTML at all because creating 2 div wrappers.
Please watch this video 👇 , or try by yourself, you will feel performance improvements at all
https://github.com/radix-vue/shadcn-vue/assets/82209198/50fa452d-a92a-4c6f-a950-963b27d77e38
@sadeghbarati need help with this, what will be the best Doc for this, because if we are porting only original package, there is no BigData example at all 🙂

Thanks, Man! @romanhrynevych
Will try to checkout to your branch for fully test it ❤

need help with this, what will be the best Doc for this, because if we are porting only original package, there is no BigData example at all

Can you explain more please 🙏

Don't think that this place on main page is great position for example, maybe you will move it to another place 😁❤

Don't think that this place on main page is great position for example, maybe you will move it to another place 😁❤

I think it's better to replace it with the Original Task page let see what is Zernonia's opinion is

Thanks for the PR @romanhrynevych . I don't think we need to duplicate a whole other component just to showcase large dataset. Most of the component/utilities are the same and can be reuse from examples/tasks.
And let's create another path (https://www.shadcn-vue.com/docs/guide/rendering-large-data.html), and write some guide/steps to help other dev to use the virtualisation package instead of another demo.
I believe this way it will be more clear, and more helpful.

Ok, I will update this PR to your advice soon ❤

Thanks Roman will check

@sadeghbarati just noticed than tanstack have him own virtualizer (noticed in this Radix-vue Issue your comment 😁 ) https://github.com/radix-vue/radix-vue/issues/696#issuecomment-1953807473, maybe here I will replace vueuse integration with tanstack table example?
Link: https://tanstack.com/virtual/latest/docs/framework/vue/examples/table

Feel free to switch to TanStack Virtual or add both?

Yes TanStack for the Win

I've found tanstack virtualized more difficult to use (and finnicky) than vue-use, but vue-use has less features
Coudln't really manage to make this work with a table without hitting display issues, so I ended up adding fixed-width to all cells and using a "list" with each row made of cells


More documentation for List

I see that your documentation site actually uses a List with sub items, and the documentation has something called "ListGroup" and "ListGroupSubheader". Can you elaborate more on these react components?

Oh those are just a couple of components I crappily three together. They’re not actually party of MDC. Feel free to dig through the docs code and pull them out.
Been trying to think of a way to start creating community packages separate from rmwc to include stuff like that.

Gotcha, I like the simplicity of the components. You're right in that others repos / react material components are very opinionated and have very special styling requirements just to get things working.
One thing I have not been able to figure out is how to use this in webpack. You're repo has a dependency on @@material, but I have yet to find a way to import the CSS properly. Have you had any experience with this?

Yeah, depends on how you are handling css in your project.

if you're using webpacks css loader or create-react-app, just import the CSS directly

import 'material-components-web/dist/material-components-web.css';

otherwise include it in your webpage

<link href="/node_modules/material-components-web/dist/material-components-web.css" />

I have that on the quickstart list on the docs but I have to call it out a bit better.

Did that response help?

Yes it did, thank you!


test-branch/execute-job/fork-branch/05abe590-235b-47b1-83cf-773302a14ae8

PR for testing f51b96ea592f5dda21a3e26393b5bab8e0890493

padding /canonical/self-hosted-runners/run-workflows f51b96ea592f5dda21a3e26393b5bab8e0890493 padding


Ids not found after update

Hi, it's me again.
Some Minutes ago I Updated the Plugin
Now I get and Error. "Id was not found yet"
Tags are online and work (i can change pictures on the tags) but HA cant!

Try giving HA a bit more time finding the tags, if the tags are still not found then we'll have to look into that issue more

Still nothing

Okay, weird, for the time being can you roll back to the previous version for the time being?

Downgrade works instantly 🤷♀

Same here, <IP_ADDRESS> makes the tags unavailable for hour (checking in fine in oepl AP). Reverting to <IP_ADDRESS> makes everything work instantly.

Same here.

Same here

my waste collection blueprint stopped working.
I reverted back to <IP_ADDRESS> and now it works as before

same here. how do I downgrade easy?

Via HACS. Choose redownload and select another version...

Same here, downgrade working so far

Same here, so glad I found this issue reported. Almost lost my mind over this...

Can confirm this occurs also for me.

Same here

I've done a pre release of the 1.0 version of the Integration, and this issue * should * be fixed as well as have many other improvements

Having the same issue. The latest pre release (<IP_ADDRESS>_dev) works fine :)


[Feature Request]  Horizontal Reading Mode

Is it possible to add horizontal reading mode option?  I kinda like it.

Duplicate of #29


Update Problem from 67.0.1 to 73.0.0

after update from version 67.0.1 to 73.0.0 I get the following error message when connecting from the client to the server:

Client Transport Error: InvalidReceive: KcpPeer: received unreliable message in state Connected. Disconnecting the connection.. This is fine.

I cannot update in between these steps, because the release tags in between these versions are missing the unity package attachment.
Does anyone have a hunch what the problem might be?

Please try 78.3 from the asset store - this should be fixed.

yes, this is fixed on latest Mirror & kcp already.
please reopen if you still get this in the future.


Light/Dark mode for comments

Context
Add a light/dark mode for comments section. Currently it only works in dark mode.
Here’s what it looks like in light mode:

Expected Behavior
We use Tailwind so we should enable this by having a default light mode and dark mode with the dark: prefix.
You can see how this is done here: https://tailwindcss.com/docs/dark-mode
Current Behavior
By default, we only use a dark theme.
Additional info
In light mode:

The background for light mode should be: bg-neutral-100
The user name or title text should be: text-neutral-900
The bio text should be: text-neutral-800

@NiallJoeMaher Can you assign me this issue?

@NiallJoeMaher do you want any button to switch from light to dark or vice versa?

We already have one. When you pull the code you'll see it (it's in the nav bar).

@NiallJoeMaher how to produce this issue?

When you create a comment on a post and toggle the light and dark mode you will see where the problem is.
Follow the README.md to get setup.
If you can't let me know and I'll release the issue and try to find some other issues you can jump on. 🦾

@NiallJoeMaher
When I setup the code locally and when I type npc prisms db push I am getting this error
Can't reach database server at <IP_ADDRESS>:5432
Please make sure your database server is running at <IP_ADDRESS>:5432.

@shakthi2003-ice do you have docker and the database running?
That usually means something isn't running where it's looking for it.
https://github.com/codu-code/codu#database_url

Closed with #530


IIS Web App Freezes for SQL server Network Error in Startup

I have app where Startup method must access SQL server to get param for Middleware and services.
If application is reloaded and Startup method has no no access to the SQL Server at this moment, it freezes Web app permanently.  Consecutive requests are not processed even if the SQL server become available later.
Error Handler Returns:
An error occurred while starting the application.
Win32Exception: No such host is known
Unknown location
SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 0 - No such host is known.)
System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, uint waitForMultipleObjectsTimeout, bool allowCreate, bool onlyOneCheckConnection, DbConnectionOptions userOptions, out DbConnectionInternal connection)
Website enabled log:
Application startup exception: System.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 0 - No such host is known.) ---> System.ComponentModel.Win32Exception (11001): No such host is known
at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling, String accessToken)
at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions)
at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)    at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource1 retry, DbConnectionOptions userOptions)    at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource1 retry, DbConnectionOptions userOptions)
at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource1 retry)    at System.Data.SqlClient.SqlConnection.Open()    at GtsCustomLogger.SqlLogger.WriteToSqlServer(String storageLocation, GtsLogger loggerData)  ...    at GtsCustomLogger.GtsLogger.LogData() in ...    at AuthServerJwt.Startup.LogMiddlewareOK() in ...    at AuthServerJwt.Startup.Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) in ... --- End of stack trace from previous location where exception was thrown ---    at Microsoft.AspNetCore.Hosting.ConventionBasedStartup.Configure(IApplicationBuilder app)    at Microsoft.AspNetCore.Mvc.Internal.MiddlewareFilterBuilderStartupFilter.<>c__DisplayClass0_0.<Configure>g__MiddlewareFilterBuilder|0(IApplicationBuilder builder)    at Microsoft.AspNetCore.Server.IISIntegration.IISSetupFilter.<>c__DisplayClass4_0.<Configure>b__0(IApplicationBuilder app)    at Microsoft.AspNetCore.HostFilteringStartupFilter.<>c__DisplayClass0_0.<Configure>b__0(IApplicationBuilder app)    at Microsoft.AspNetCore.Hosting.Internal.AutoRequestServicesStartupFilter.<>c__DisplayClass0_0.<Configure>b__0(IApplicationBuilder builder)    at Microsoft.AspNetCore.Hosting.Internal.WebHost.BuildApplication() ClientConnectionId:00000000-0000-0000-0000-000000000000 Error Number:11001,State:0,Class:20 crit: Microsoft.AspNetCore.Hosting.Internal.WebHost[6]       Application startup exception System.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 0 - No such host is known.) ---> System.ComponentModel.Win32Exception (11001): No such host is known    at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling, String accessToken)    at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)    at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions)    at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)    at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)    at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)    at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)    at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource1 retry, DbConnectionOptions userOptions)
at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource1 retry, DbConnectionOptions userOptions)    at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource1 retry)
at System.Data.SqlClient.SqlConnection.Open()
at GtsCustomLogger.SqlLogger.WriteToSqlServer(String storageLocation, GtsLogger loggerData)...
Simply test:

Have access to the SQL Server in Startup method.
Publish the App to IIS.
Request the page from the browser.
Disconnect SQL server
Restart Web app
Request the page from the browser. (Will get error)
Connect SQL server
Request the page from the browser. (Will get error)
Repeat  8. (Will get error)
Restart Application Pool manually
Request the page from the browser. (Works fine)

Can't restart Application Pool in code do to security errors.

@ZMoscipan
Although it's been a while, I'm hoping this issue to be resolved for you?
Kindly confirm. Thanks!

closing the issue due to inactivity. Feel free to reopen if the issue is still there.


QEMU/libvfio-user might use different VFIO headers

Discussion copied from Slack:

JJ pointed out that there can be seemingly unnoticed additions of members to structs, e.g. the addition of cap_offset to struct vfio_device_info (https://lore.kernel.org/qemu-devel/160390334070.12234.9773819269645372478.stgit@gimli.home/#Z30linux-headers:linux:vfio.h). IIUC this isn't accompanied by some VFIO version change. QEMU has it's own version of the VFIO headers, plus QEMU and libvfio-user can be compiled with different versions of VFIO headers anyway, so we need to figure out how to make sure they work in such cases.

maybe we should ship with our own copy too

maybe we should ship with our own copy too

Actually, such incompatibilities are expected and they're solved by the argsz field. In this particular case there's a bug in libvfio-user:
int
handle_device_get_info(vfu_ctx_t *vfu_ctx, uint32_t size,
                       struct vfio_device_info *dev_info)
{
    assert(vfu_ctx != NULL);
    assert(dev_info != NULL);

    if (size != sizeof *dev_info) {
        return -EINVAL;
    }

We should be checking argsz and use struct vfio_device_info accordingly (e.g. don't access fields of the strcut whose offset is past argsz).

Actually, such incompatibilities are expected and they're solved by the argsz field. In this particular case there's a bug in libvfio-user:
int
handle_device_get_info(vfu_ctx_t *vfu_ctx, uint32_t size,
                       struct vfio_device_info *dev_info)
{
    assert(vfu_ctx != NULL);
    assert(dev_info != NULL);

    if (size != sizeof *dev_info) {
        return -EINVAL;
    }

We should be checking argsz and use struct vfio_device_info accordingly (e.g. don't access fields of the strcut whose offset is past argsz).

https://github.com/nutanix/libvfio-user/pull/232 fixes this specific problem, however I realize that we have a bigger problem because of the way we use the VFIO headers: if we assume that some struct member exists in some VFIO struct (e.g. struct vfio_device_info.cap_offset but the VFIO headers installed in the system don't have this recently-added member, libvfio-user will fail to compile.

https://github.com/nutanix/libvfio-user/pull/232 fixes this specific problem, however I realize that we have a bigger problem because of the way we use the VFIO headers: if we assume that some struct member exists in some VFIO struct (e.g. struct vfio_device_info.cap_offset but the VFIO headers installed in the system don't have this recently-added member, libvfio-user will fail to compile.


Not able to use KEYS pattren in latest version 4.5.1

Node.js Version: 14.20
Node Redis Version: 4.5.1
Platform: Ubuntu 20
Hello all,
I've recently upgraded my redis package version in my project and i'm facing a issue.
I'm trying to use this.client.keys(pattren) to get a list of keys in my redis but it is showing keys does not exist on this version
I'm attaching my code snippet below. It used to work in old version 3.something but in 4.5.1 it is not working anymore
Note: commented code is of old version which used to work
async getKeyFromPattern(pattren: string): Promise<any> {
        const response = await this.client.keys(pattren)
        console.log(response)

        return response;
        // return new Promise((res, rej) => {
        //     this.client.keys(pattren, (err, reply) => {
        //         if (err) rej(err);
        //         else res(reply);
        //     });
        // });
    }

I tried to reproduce it in typescript playground in two ways, both seem to work.. Can you please provide a non working example?
BTW, if you have @types/redis installed make sure to remove it, as the package includes built-in types now

If it's still an issue feel free to reopen


StorageCluster: fix logging errors

The logger requires that arguments be passed as key-value pairs.

/assign @jarrpa

/cherrypick release-4.6


Dump Acls to Format

fixed by https://github.com/simplesteph/kafka-security-manager/commit/0baa827ccb9eccd8a945b0bf47db31809807d786


Feature request

Life Crystals and shards in loot chests.
Perhaps a full heart in buried treasures or bastions and shards as common as diamonds.

The newest version should have your requested feature.


x/crypto/sha3: add tests with assembly disabled

Both amd64 and s390x have assembly implementations of SHA-3. On amd64 the assembly is always used and the generic implementation is not tested at all. On s390x the generic implementation won't be tested if the SHA-3 CPU features are available. On both platforms we should add tests for the generic code to ensure it is properly tested.
Unfortunately due to the nature of the instructions involved they are implemented in different ways so this will take some thinking.

See https://golang.org/wiki/TargetSpecific.


Plugin spec modules compiled by hotpot.nvim are not detected

Describe the bug
This issue is a continuation of #52.
While setting up lazy.nvim with hotpot.nvim I found that when programming the plugin spec modules in Fennel lazy.nvim does not detect them.
See this plugin spec module...

fnl/conf/plugins/catppuccin.fnl
[{0 "catppuccin/nvim"
  :name "catppuccin"
  :config #(vim.cmd.colorscheme "catppuccin")}]

That file is compiled to:
local function _1_()
	return vim.cmd.colorscheme("catppuccin")
end
return { { [0] = "catppuccin/nvim", name = "catppuccin", config = _1_ } }

...by default it is not even being compiled, as hotpot.nvim only compiles modules if they are required. To work around that I used the following code snippet while configuring hotpot.nvim:
-- Compile plugin configurations
-- This is required because Lazy requires in some way those plugins and
-- hotpot doesn't detect that they have been required
for file in vim.fs.dir(vim.fn.stdpath("config") .. "/fnl/conf/plugins") do
	file = file:match("^(.*)%.fnl$")
	require("conf.plugins." .. file)
end

But even then lazy.nvim doesn't detect those files and therefore the plugins declared on them are not being installed.
Which version of Neovim are you using?
I am using nightly v0.9.0-dev-538+gf9c62ce34.
To Reproduce
I tried to use the Minimal init.lua to Reproduce an Issue template but could not get it to work, so I created this issue repository, which can reproduce the bug using Docker: https://github.com/datwaft/lazy-hotpot_issue.
Steps to reproduce the behavior:

Clone the repository
Execute docker build -t issue . && docker run -it issue to enter the Docker container.
Execute nvim to install all the plugins.
Execute nvim and :Lazy again to see if then it detects the plugins compiled by Fennel.
Execute cat ~/.cache/nvim/hotpot/root/.config/nvim/fnl/conf/plugins/catppuccin.lua to see that the plugin file is being compiled.

Expected Behavior
Lazy should detect the plugin spec modules compiled by hotpot.nvim and install them.
Screenshots
When executing nvim for the first time:

When executing nvim for the second time:

Log
The log only shows that the plugins were installed.

Fennel is not supported with lazy. I may add this at some point, but it won't work for now.
Best thing you can do is just use a table to set up lazy

😢
I can possibly simulate the feature of plugin spec modules by requiring every submodule of the module and merging those tables into one, but it would be ideal to not to have use a workaround like that.
In case someone also has the same problem and comes across this issue, I also tried the following workaround: https://github.com/datwaft/lazy-hotpot_issue/tree/failed-workaround-1
It consist of requiring Hotpot before Lazy, but Lazy makes it so plugins are not available until it is required, so Hotpot cannot be required.

In case someone comes upon this issue while trying to make Hotpot and Lazy work together, I just finished my migration to Lazy so you can use my dotfiles as a reference:
datwaft/nvim.conf#93fcc61
That solution was found in https://github.com/rktjmp/hotpot.nvim/issues/97.


force "incompatible" version

Sometimes pip(?) refuses to install a package whose version I specify in pyproject.toml creates a supposed incompatibility. Is there a way to override this? As a workaround I manually update the requirements*.txt while not specifying a version in pyproject.toml.

i too would like to this via pyproject.toml

We support this over in uv now. I wonder if Rye supports it if you use the uv overrides syntax in your pyproject.toml?

@zanieb i couldn't find any docs/notes on the overrides syntax in uv.  is it just
[project]
overrides= ['xxx']

Here's an example in our test suite https://github.com/astral-sh/uv/blob/b22ee82f0d3af607cc49d3f3870805769ea0b6e6/crates/uv/tests/pip_compile.rs#L3014-L3029
Basically:
[tool.uv]
override-dependencies = [
  ...
]

i tried it and still had problems, so perhaps there's something on rye side

[tool.uv]
override-dependencies = [
  "mosaic-widget>=0.9.0"
]

(askluna_py_agent_backend) ⚡➜ py-agent-backend (U feature/luna-257) rye sync
Reusing already existing virtualenv
Generating production lockfile: /Users//Documents/dev/project-dev/askluna-project/askluna/requirements.lock
  × No solution found when resolving dependencies:
  ╰─▶ Because mosaic-widget==0.9.0 depends on duckdb==0.10.2 and
      only mosaic-widget<=0.9.0 is available, we can conclude that
      mosaic-widget>=0.9.0 depends on duckdb==0.10.2.
      And because you require duckdb>=1.0.0 and
      mosaic-widget>=0.9.0, we can conclude that the requirements
      are unsatisfiable.
error: could not write production lockfile for workspace

Caused by:
    Failed to run uv compile /var/folders/4f/697ggy6x26q8kh9qb2js4xnc0000gn/T/.tmphuVL7I/requirements.txt. uv exited with status: exit status: 1

Sounds like the override was applied here though?

because you require duckdb>=1.0.0 and mosaic-widget>=0.9.0,

i apologize, i assumed the override would force installation of that version despite the requirements being unsatisfied

Nope the override allows you to change the required version of a package when it is specified by a dependency in your tree.

interesting developments but i'll still keep it open as what we're looking for is to force install.

Can you explain what the semantics of that would be?

I can explain the usecase i had @charliermarsh

duckdb upgraded to v1 major (there's no actual change for compatibility)
one of the libs i'm using mosaic had <=0.9 requirement
there's a ticket to update in mosaic.  in the mean time i wanted to just force a version of mosaic to install.

in pnpm its a bit like resolutions where certain versions are forced to install. not sure if there's a concept of that in python managers.


Apply to just navigation bar

On Android NavigationBar.setTransparency affects the StatusBar
i am using @capacitor/status-bar & @hugotomazi/capacitor-navigation-bar
StatusBar.setBackgroundColor({ color: 'blue' });
StatusBar.setStyle({ style: Style.Dark });
NavigationBar.setTransparency({ isTransparent: true });

This results in the NavigationBar acting as desired but the StatusBar is blue with the app content behind it.
Is is possible to only affect the NavigationBar?

Hello! Which API version are you testing?

Even if you don't use the StatusBar plugin at all, the NavigationBar affects the Statusbar.


Add configurable struct primitives

I ran into issues with ExAudit tracking only the parts of a Decimal that changed (#37) so I forked and made it treat Decimals as primitives. Then I figured that which structs one wants to consider as primitives might as well be configurable, so I added a new : primitive_structs config for that and made this branch not pull in Decimal as a dependency. I also added documentation to the README to explain how to use new config.

I think this PR doesn't compile on Elixir 1.9.2.
It crashes with:
== Compilation error in file lib/diff/diff.ex ==
** (CompileError) lib/diff/diff.ex:34: cannot find or invoke local is_struct/1 inside guard. Only macros can be invoked in a guard and they must be defined before their invocation. Called as: is_struct(a)
    (stdlib) lists.erl:1354: :lists.mapfoldl/3
    (elixir) expanding macro: Kernel.and/2
    lib/diff/diff.ex:34: ExAudit.Diff.diff/2

I think this PR doesn't compile on Elixir 1.9.2.
It crashes with:
== Compilation error in file lib/diff/diff.ex ==
** (CompileError) lib/diff/diff.ex:34: cannot find or invoke local is_struct/1 inside guard. Only macros can be invoked in a guard and they must be defined before their invocation. Called as: is_struct(a)
    (stdlib) lists.erl:1354: :lists.mapfoldl/3
    (elixir) expanding macro: Kernel.and/2
    lib/diff/diff.ex:34: ExAudit.Diff.diff/2

Ugh, thanks for pointing that out! I'll figure out how to make it work with older versions.

@wschella what do you think?

@wschella what do you think?

It compiles. Thanks man!
Btw I have no affiliation with this project, I just very coincidentally happened to need something similar just now and came across this PR.

That's great! Glad it helped!

Great idea!


Editor: Word Wrap doesn't work

Issue Type: Bug
Editor: Word Wrap is set to off by default but all files are still word wrapped upon opening. I tried changing it to on then back off, as well as adding "editor.wordWrap": "off" to settings.json, but neither one worked.
How do I fix this? I don't want to keep on pressing Alt+Z every time I open a new file. Thanks.
 Is it possible that "editor.wordWrap": "on" is set at the workspace level?

It is possible. How do I change that on a workspace level?

Settings screen has tabs:

The thing that is underlined is the one you're making the settings for.

Both seem to have "Editor: Word Wrap" set to "off".

@zangief2000

Does this reproduce when disabling all extensions?
Does this reproduce when you comment out your settings.json?
Does this reproduce in any folder or only in certain folders?
Does this reproduce with a specific file type or with any file types, including .txt files?


Proposal voter list

Adds #194

@5-mark @DarkNebula0 any news on this review?

there is a package for that included in polkadot-js packages

lgtm


IPC GUI Update Nr.12

This pull request will implement the following features aswell as the usual code improvements, optimizations and bugfixes.

[x] [Global] Move language button to navbar
[x] [Commands] Add i18n support for bootstrap-select elements
[x] [Global] Add bootstrap-toggle

I think I will stop this PR here since its a rather big update with lots of changes I want to be tested first.


Fixed requirements handling:

Moved dependencies on packages into setup.py and added version pins in
requirements.txt files.
Also re-ordered the way travis installs:
First we install using requirements.txt (and thus get the desired
versions) then we install using pip install -e . which should not
install any new packages.
See:
https://packaging.python.org/discussions/install-requires-vs-requirements/
for current best practises regarding dependency handling.

@venthur you're right. Thank you for the contribution.


PR: Handle loading data from NpzFile instances and add an override flag to the load

Description of Changes

[ ] Wrote at least one-line docstrings (for any new functions)
[ ] Added unit test(s) covering the changes (if testable)

[x] Included a screenshot or animation (if affecting the UI, see Licecap)

When loading from a NpzFile it needs to be convert to a proper dict.
Also, a message to ask for an override of the variables or to keep the old values (current behavior done by adding a suffix to any new variable i.e var -> var000 ) is added.
A preview:

Issue(s) Resolved

Fixes #11596
Affirmation
By submitting this Pull Request or typing my (user)name below,
I affirm the Developer Certificate of Origin
with respect to all commits and content included in this PR,
and understand I am releasing the same under Spyder's MIT (Expat) license.

I certify the above statement is true and correct: dalthviz

Let's add an underscore when the new variable is created
so val1000  -> val1_000

Hello @dalthviz! Thanks for updating this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file external-deps/spyder-kernels/spyder_kernels/utils/misc.py:

Line 24:9: E731 do not assign a lambda expression, use a def

A new preview with the underscore:

Awesome @dalthviz looks great. Let me take a look at the failing test to see what can be the issue, before we merge this one.

Hmmm the failing now seems to be another thing @dalthviz and @ccordoba12 ?

@goanpeca, the last failure is a segfault but the previous ones are related to test_conda_env_activation, so please take a look at that asap. Thanks!

@goanpeca as far as I can tell (at least in this particular PR) seems like the test_conda_env_activation fails the three times it can be run with an error indicating that the process running the kernel can't be found (I think maybe here the tear-down of the test is failing, or somehow the console is trying to be restarted but failing?) and then the test suit tries to run again and a bunch of threading errors appear (which also I think are related with the kernel).
Something I just saw is that there is a message regarding the fail to restart the kernel:
Restarting kernel...
2020-02-26T04:10:41.6894893Z
2020-02-26T04:10:41.6895315Z
2020-02-26T04:10:41.6895606Z
2020-02-26T04:10:41.6896692Z Kernel died, restarting
2020-02-26T04:10:41.6897214Z
2020-02-26T04:10:41.6897673Z
2020-02-26T04:10:41.6898000Z
2020-02-26T04:10:41.6898517Z info_page
2020-02-26T04:10:41.6899053Z
2020-02-26T04:10:41.6905006Z
2020-02-26T04:10:41.6905805Z <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2020-02-26T04:10:41.6906736Z   "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2020-02-26T04:10:41.6907418Z
2020-02-26T04:10:41.6908550Z
2020-02-26T04:10:41.6909090Z
2020-02-26T04:10:41.6909849Z
2020-02-26T04:10:41.6910810Z     <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
2020-02-26T04:10:41.6912774Z     <link rel="stylesheet" href="file:///D:\a\1\s\spyder\plugins\help\utils\static\css/default.css" type="text/css"/>
2020-02-26T04:10:41.6913819Z
2020-02-26T04:10:41.6914337Z
2020-02-26T04:10:41.6914839Z
2020-02-26T04:10:41.6915650Z

2020-02-26T04:10:41.6916526Z

2020-02-26T04:10:41.6917365Z
An error ocurred while starting the kernel

2020-02-26T04:10:41.6918213Z

2020-02-26T04:10:41.6918825Z

2020-02-26T04:10:41.6925293Z       <tt>Traceback (most recent call last):
  File "C:\Miniconda\envs\spytest&#8209ï¿½\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "C:\Miniconda\envs\spytest&#8209ï¿½\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "D:\a\1\s\external&#8209deps\spyder&#8209kernels\spyder_kernels\console\__main__.py", line 11, in <module>
    start.main()
  File "D:\a\1\s\external&#8209deps\spyder&#8209kernels\spyder_kernels\console\start.py", line 287, in main
    import_spydercustomize()
  File "D:\a\1\s\external&#8209deps\spyder&#8209kernels\spyder_kernels\console\start.py", line 39, in import_spydercustomize
    import spydercustomize
  File "D:\a\1\s\external&#8209deps\spyder&#8209kernels\spyder_kernels\customize\spydercustomize.py", line 29, in <module>
    from spyder_kernels.customize.spyderpdb import SpyderPdb
  File "D:\a\1\s\external&#8209deps\spyder&#8209kernels\spyder_kernels\customize\spyderpdb.py", line 23, in <module>
    from IPython.core.inputtransformer2 import TransformerManager
ModuleNotFoundError: No module named 'IPython.core.inputtransformer2'
</tt>
2020-02-26T04:10:41.6930783Z

2020-02-26T04:10:41.6931375Z

2020-02-26T04:10:41.6931758Z
2020-02-26T04:10:41.6932209Z
2020-02-26T04:10:41.6932858Z

And the traceback of that error indicates an error with IPython:
ModuleNotFoundError: No module named 'IPython.core.inputtransformer2'

Which was the one I had in spyder-ide/spyder-kernels#208 Maybe, somehow, the IPython version at the end of the installation of packages isn't 7.12.0 but 6.1.0 ?

@dalthviz, please resync the spyder-kernels subrepo with the HEAD of its 1.x branch.


cmd/go_get:  support to generate CUE attribute(s) with custom Go struct tag(s)

Is your feature request related to a problem? Please describe.
 For example, there has a Go struct:
type Person struct {
     Name string `json:"name" custom_tag:"name"`
     Age int `json:"age" custom_tag:"age"`
}

After executing cue get go person, a CUE file will be generated as:
// person_go_gen.cue
#Person: {
   name: string @go(Name)
   age: int64 @go(Age)
}

But, users want it looking like this:
// person_go_gen.cue
#Person: {
   name: string @go(Name) @custom_tag(name)
   age: int64 @go(Age) @custom_tag(age)
}

Describe the solution you'd like
A proposal is to add a new flag -t/--tags which is a comma-separated string of custom Go struct tags on sub-command go to let users specify which tags will be generated as CUE attributes, by default, it's empty. Regarding above example, execute command cue get go -t custom_tag person will generate CUE as:
// person_go_gen.cue
#Person: {
   name: string @go(Name) @custom_tag(name)
   age: int64 @go(Age) @custom_tag(age)
}

Describe alternatives you've considered
N/A
Additional context
N/A

The -t flag is already in use. Aside from that, my tendency is to avoid flags whenever possible and rather be more explicit in files. I can see several alternatives:
Do any of these designs work for you, or is the support for a flag of paramount importance?
Alternative 1
Include some meta info in the Go file, for instance:
//cue:attr custom_tag

Obviously, this would require some annotation for the reverse in CUE files.
Alternative 2
On the CUE side, this mapping could be represented, for instance, as
@go(tag=custom_tag)

This is mentioned as an alternative, as, theoretically, this notation could be used for indicating the conversion in both directions.
This obviously introduces some apparent cyclicality of needing a "destination schema" while generating that very schema. The CUE tooling already can handle this, though. Protobuf conversions, for instance, it is not possible to interpret the data separate from schema, which introduces similar kind of dependencies.
Alternative 3
The cue.mod directory could contain files with mappings for tags specified in CUE.
For instance
cue.mod/go/attrs.cue:
tags: custom_name: {}

or something like that.

It looks like Alternative 3 is more reasonable, it's configurable and extendable in the future. But whether places in such a CUE in cue.mod directory or other place we should consider more. Checked get_go.go, i found such code snippet:
binst := loadFromArgs(cmd, []string{"."}, nil)[0]

It traverses from working directory to find cue.mod, i'm thinking if we can let users place in a CUE file in the working directory where they issue cue get go command if they want to convert Go to CUE with custom tags, for example, go.cue, its content like:
// A list of tags that will be converted to CUE attributes
tags: ["tag1", "tag2"]
// extendable configurations also can be supported for converting Go to CUE
// ... ...

After executing above code snippet, we can extract all configurations that we want, here is tag list, and configure that into extractor.

we must pre-define the CUE file name and its content schema

To use this way, where the CUE file would be placed is fully user behavior, except the CUE file content must be matched we defined, CUE doesn't care the location of CUE file, and doesn't break cue.mod's hierarchy. If we place in the CUE file for Go under cue.mod, in the future, there could have Java, Python, etc, lots of such CUE files under cue.mod, i don't think that's good.


Support single player games in h3viewer

Verify and test that single player games can be correctly read and visualized in h3viewer.

Tested working.


texlive: Fix 'match-parens' ruby dependency

Motivation for this change
This fixes the ruby dependency for texlive match-parens. This was obviously a copy-paste error.
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[ ] NixOS
[ ] macOS
[x] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

Hmm, unnoticed for years.


[CXF-8371]:initial/experimental jakarta ee9 support with eclipse transformer

@jimma thank you, regarding your questions:

Another thing I am not sure is : to transform cxf artifacts, should we have some subset of cxf artifacts to transform first instead of transforming all the things ?

Definitely, I believe Romain also suggested that on the mailing list, we could try JAX-RS first fe, and I could take care of TCK part, since we did it for Java EE, it should be pretty straightforward for Jakarta EE (same repo but another branch).

I actually didn't think of OSGI manifest. Can you please point me the code how does CXF generate OSGI manifest now? Or some quick transformation example of OSGI for me to understand what we need to do ?

It is done by the plugin, maven-bundle-plugin, see please https://github.com/apache/cxf/blob/master/parent/pom.xml#L630, the typical MANIFEST.MF entry looks like:
Import-Package: javax.wsdl;resolution:=optional,javax.wsdl.extensions;
 resolution:=optional,javax.wsdl.extensions.http;resolution:=optional,
 javax.xml.bind;version="[0,3)",javax.xml.bind.annotation;version="[0,
 3)", ...

It will also impact the Karaf features, https://github.com/apache/cxf/blob/master/osgi/karaf/features/src/main/resources/features.xml, but we could fix that later.
Thank you.

Hi @jimma , @reta ,
As my comment in the dev mailling list(Jakarta namespace and OSGI), I think this PR can skip OSGi support for now.
Best Regards
Freeman

Hi @reta , @jimma ,
Surprisingly,  I noticed that in the jakarta jar after transform, the OSGi headers by and large are also taken care by the eclipse transformer plugin(some magic must happen somewhere that we don't know).
For example, in the cxf-rt-frontend-jaxws-3.5.0-jakarta-SNAPSHOT.jar , the Import-Package part is
{code}
Import-Package: jakarta.activation;version="[2.0,3)",jakarta.annotatio
n;version="[2.0,3)",javax.imageio,javax.imageio.stream,jakarta.jws;ve
rsion="[0,3)",jakarta.jws.soap;version="[0,3)",jakarta.servlet;resolu
tion:=optional;version="[5.0,6)",jakarta.servlet.http;resolution:=opt
ional;version="[5.0,6)",javax.wsdl,javax.wsdl.extensions,javax.wsdl.e
xtensions.http,javax.wsdl.extensions.soap,javax.wsdl.extensions.soap1
2,jakarta.xml.bind;version="[3.0,4)",jakarta.xml.bind.annotation;vers
ion="[3.0,4)",jakarta.xml.bind.annotation.adapters;version="[3.0,4)",
javax.xml.namespace,jakarta.xml.soap;version="[1.4,2)",javax.xml.stre
am,javax.xml.transform,javax.xml.transform.dom,javax.xml.transform.sa
x,javax.xml.transform.stream,javax.xml.validation,jakarta.xml.ws;vers
ion="[0,3)",jakarta.xml.ws.handler;version="[0,3)",jakarta.xml.ws.han
dler.soap;version="[0,3)",jakarta.xml.ws.http;version="[0,3)",jakarta
.xml.ws.soap;version="[0,3)",jakarta.xml.ws.spi;version="[0,3)",jakar
ta.xml.ws.spi.http;resolution:=optional;version="[0,3)",jakarta.xml.w
s.wsaddressing;version="[0,3)",org.apache.aries.blueprint;resolution:
=optional;version="[1.0,2)",org.apache.aries.blueprint.mutable;resolu
tion:=optional;version="[1.0,2)",org.apache.cxf;version="[3.5,4)",org
.apache.cxf.annotations;version="[3.5,4)",org.apache.cxf.attachment;v
ersion="[3.5,4)",org.apache.cxf.binding;version="[3.5,4)",org.apache.
cxf.binding.soap;version="[3.5,4)",org.apache.cxf.binding.soap.interc
eptor;version="[3.5,4)",org.apache.cxf.binding.soap.model;version="[3
.5,4)",org.apache.cxf.binding.soap.saaj;version="[3.5,4)",org.apache.
cxf.binding.soap.wsdl.extensions;version="[3.5,4)",org.apache.cxf.bin
ding.xml;version="[3.5,4)",org.apache.cxf.bus.blueprint;version="[3.5
,4)",org.apache.cxf.bus.spring;version="[3.5,4)",org.apache.cxf.commo
n.classloader;version="[3.5,4)",org.apache.cxf.common.i18n;version="[
3.5,4)",org.apache.cxf.common.injection;version="[3.5,4)",org.apache.
.....
{code}
Please notice the jakarta. Import-Package. So I think this eclipse transformer plugin has been OSGi friendly already.
@jimma
Just one minor issue I found with the GAV pattern after trasform. For exmaple, I have
/Users/ffang/.m2/repository/org/apache/cxf/cxf-rt-frontend-jaxws-3.5.0-jakarta/SNAPSHOT/cxf-rt-frontend-jaxws-3.5.0-jakarta-SNAPSHOT.jar

The jakarta classfier get inserted between 3.5.0 and SNAPSHOT, IMO, the expected path should be like
/Users/ffang/.m2/repository/org/apache/cxf/cxf-rt-frontend-jaxws/3.5.0-SNAPSHOT/cxf-rt-frontend-jaxws-3.5.0-SNAPSHOT-jakarta.jar

Could you please fix it?
Thanks!
Freeman

@ffang this is just piece of great news, thank you for helping @jimma !

Close this as it's outdated.


Improve Function constructor argument handling.

For the Function constructor it is possible to pass the
name of the function arguments in one or more strings, and
each argument name should be separated with a comma.
JerryScript-DCO-1.0-Signed-off-by: Peter Gal<EMAIL_ADDRESS>

After fixing https://github.com/Samsung/jerryscript/pull/368#discussion-diff-34453293, the changes would look good to me.

PR updated.

PR updated.

Looks good to me

make push

LGTM

Merged as c8a16f2107f7b47b768a9da8e949a16c707f4e03


Add commands to show individual pots/accounts

e.g. show pot my super pot

[x] show account
[ ] show pot

show account is technically done, but I'd like to format the account's creation date/time (currently ISO-formatted) in a friendlier way.

show pot done in https://github.com/babolivier/matrix-monzo/commit/9b899bcf4e0fc9f84e165ee679fe61c743b05738


Dialogs rework

I don't quite like how our dialogs work. Right now we are showing a window that grabs all events and disallows interaction with other windows basically. That's not how other toolkits work and that's not how window systems work.
There is a concept of "transient" windows. In Win32 API it's represented by GWL_HWNDPARENT, in X11 it's WM_TRANSIENT_FOR hint. Effectively those make sure that a window stays on top of a particular window parent.
Our dialog API is async, so ShowDialog should return immediately. So there is no point of having a parentless dialog window.
I propose to make ShowDialog to have a parent window. Same thing for file dialogs, since we have issues with them not showing properly because of that.
I'm not sure that it makes sense to have non-dialog transient windows.
This was somewhat discussed in #1542
Another question is if we should block non-parent windows when showing a dialog. In multi-window applications (e. g. some kind of a document editor) that makes sense for some global settings dialog, but doesn't make sense for a print dialog that's associated with a particular document. I'm not sure if we can make this behavior application controlled though.

I don't like using OS (modal) dialogs at all. See my reasoning here: https://arbel.net/2014/04/23/the-misbehaving-dialog/
Perhaps something to consider as an alternate dialog API :)

I believe most browsers do not use OS-based dialogs for these reason.

Firefox and Chrome are opening an OS file dialog when I press Ctrl+O.
We could introduce Show method for OS file dialogs.
I'm also currently developing a managed file dialog which could be used as a control in the future.


Can't change name

Ever since the last version (the one that fixed the respawning) it won't let me change the name.
When I load the page it almost instantly jumps into the game. Even when I seem to be fast enough to paste a name in, it still won't change.
Also, the bot seems to behave kinda wonky sometimes. Sometimes when escaping from a slightly bigger cell it goes back and forth and ends up going into the cell seemingly on intent. Sometimes it seems to target stuff that is way out of the render range instead of the particles or cells around you.

To change the name, make sure you press the Play button after you typed your name in. If you don't have enough time to type it in, just press ESC, type it in, then go die.
Right now it acts wonky because I didn't work on the bot for the past 2 - 3 weeks. I'm settled in my new house now so I should be able to resume work on this. (Still got a few things to do, but otherwise the big stuff is done.)

Doesn't work for me. The menu shows up, I enter name and press play, but the bots just keeps going in the background. And when it dies and respawns it still got the default name


Use node v6.1 and v7.0 in travis

Node 7 has arrived!
https://nodejs.org/en/blog/release/v7.0.0/

Might be better to always test over the latest LTS version (6.9.1)

I'm not really opposed to this, but does going from 6 -> 7 do anything for the test runner?

Does going from 6 -> 7 do anything specific for the test runner?

Yes. On Node 7.0.0, running the ./run_def_tests.sh script is emitting UnhandledPromiseRejectionWarning and DeprecationWarning while on the last line node dist/cli.js run-tests "$@"
Extract:
(node:4618) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: ENOENT: no such file or directory, rmdir '/home/travis/build/flowtype/flow-typed/cli/.flow-bins-cache/TMP-flow-v0.33.0/flow'
(node:4618) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Reproduced on Travis
Following [7.0.0 node changelog]
(https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V7.md#7.0.0) I guess that there is just an error emitted during the clean up process in fileUtils.js#L46-L56)
In the diff below, I kind of fix it but I'm not convince by this solution.... :-1:
export async function recursiveRmdir(dirPath: string): Promise<void> {
  // [...]
  await P.all(dirItems.map(async (itemName, idx) => {
    const itemStat = dirItemStats[idx];
    const itemPath = path.join(dirPath, itemName);
    if (itemStat.isFile()) {
      await fs.unlink(itemPath);
    } else {
      await recursiveRmdir(itemPath);
-      fs.rmdir(itemPath);
+      await fs.rmdir(itemPath).catch(() => {
+        // ignore already removed itemPath errors
+      });
    }
  }));
  return fs.rmdir(dirPath);
}

Ohhh, nice catch! Let's fix this before we bump to node7, then.
On your diff, is it possible to discriminate ENOENT errors? Seems we'd only want to catch and ignore those (if I'm reading your fix right?).

hum... K.

I'm pushing something here. Wait for it :)

done @jeffmo. What you think ?

Isn't it strange that the file we want to remove is already removed at that moment BTW ?

Isn't it strange that the file we want to remove is already removed at that moment BTW ?

That's a great point -- and in fact that second rmdir appears to be unnecessary!
It's redundant with the rmdir on the last line of recursiveRmdir.

If we merge this I would like to use LTS instead of 6.1
Basically we should always test against LTS and newest.
That would be 6.9.1 and 7.0 for now.

:+1:
Sorry guys I didn't took the time to it


neonvm/controller: Update runner pod labels/annotations when VM's change

Fixes #275.

@sharnoff this PR is quite old, should we re-look it?

should we revisit it?

Probably yes, I think. I've just rebased to fix after #256, so it should still be good.
I'm not 100% sure that this is a good idea. Here are my thoughts:

I think this would generally be useful for logs and metrics, especially with the compute pools stuff.
In order to implement this properly, we have to propagate label deletion (and the only way to do that correctly is to compare the sets of labels on the VM vs pod).

For (2), I've listed some annotations that we shouldn't delete even if they're on the pod but not the VM:
https://github.com/neondatabase/autoscaling/blob/f8dac9cb8a10b4a285e9935f0514f438fb15d1dc/neonvm/controllers/virtualmachine_controller.go#L689-L694
However, with this approach (and AFAICT, with any approach that handles label/annotation deletion), we're always going to run the risk of accidentally deleting labels that are supposed to be there, so I don't know.
Anyways, what do you think?

Looks good, but I want you to pay attention to kubectl.kubernetes.io/last-applied-configuration annotation. When I create vm (kubectl apply -f vm.yaml) I see such annotation in VM (kubectl get neonvm vm -oyaml) and the same annotation in the runner pod. I think this annotation should not pass to the pod level.
Example:
vm
k get neonvm vm -ojsonpath='{.metadata.annotations.kubectl\.kubernetes\.io/last-applied-configuration}'

{"apiVersion":"vm.neon.tech/v1","kind":"VirtualMachine","metadata":{"annotations":{},"name":"vm","namespace":"default"},"spec":{"extraNetwork":{"enable":true},"guest":{"args":["nginx","-g","daemon off;"],"cpus":{"min":1},"memorySlotSize":"1Gi","memorySlots":{"min":1},"ports":[{"name":"http","port":80}],"rootDisk":{"image":"andreyneon/vm-nginx:alpine","imagePullPolicy":"Always"}},"terminationGracePeriodSeconds":1}}

pod
k get pod vm-r8t56 -ojsonpath='{.metadata.annotations.kubectl\.kubernetes\.io/last-applied-configuration}'

{"apiVersion":"vm.neon.tech/v1","kind":"VirtualMachine","metadata":{"annotations":{},"name":"vm","namespace":"default"},"spec":{"extraNetwork":{"enable":true},"guest":{"args":["nginx","-g","daemon off;"],"cpus":{"min":1},"memorySlotSize":"1Gi","memorySlots":{"min":1},"ports":[{"name":"http","port":80}],"rootDisk":{"image":"andreyneon/vm-nginx:alpine","imagePullPolicy":"Always"}},"terminationGracePeriodSeconds":1}}


Result stack empty

@johnnyontheweb reported a InvalidOperationException due to an empty stack in AstBuilder (#41). Since the issue mixes two independent topics, this is a separate issue for the analysis of the empty stack.

Previous frame:

@johnnyontheweb, can you please provide the expression you're using when this happens?

Here you are:
min(min(b,h)*if(CD==1.0,1/3,1/2),min(if(CD==1.0,125,175)/mmfact,dBL*if(CD==1.0,6,8)))
thanks for your help.

Yes, it works perfectly.
I just want to ask if there's other potential issues when coming from Jace (I remember that max and min in Jace were accepting a variable number of arguments) just to know how to conduct tests and how in deep.
thanks in advance

Great, I've just published a new release including the fix :)

I just want to ask if there's other potential issues when coming from Jace (I remember that max and min in Jace were accepting a variable number of arguments) just to know how to conduct tests and how in deep.
thanks in advance

This is the same for sonic. max and min are dynamic functions which will take a variable number of arguments. This is also true for avg, median and sum. All other default functions are static functions which will always take the same number of arguments.
Take a look at [Evaluator:RegisterDefaultFunctions()](https://github.com/adletec/sonic/blob/c186a2945a0d97c755c9030bf22060409d9a9bb1/Adletec.Sonic/Evaluator.cs#L182) for details.
Merry Christmas 🎄

@vlow thanks a lot, and Merry Christmas !


Integrate octocost

Integrate Octocost from (https://github.com/badguy99/octocost)

Initial integration merged into master.


Some advice about dataset

I believe the assumptions here are overly simplistic. TOT is one of the solutions, but what is truly important is RL's exploration in unknown domains. Please refer to this article published by OpenAI: Weak to Strong Generalization. When we supervise GPT-4 with a GPT-2-level model using this method on NLP tasks, the resulting model typically performs somewhere between GPT-3 and GPT-3.5. This is how they can extend their solutions infinitely. They transform a single model into a logical reasoning enhancer, allowing the knowledge from a smaller model to enhance the capabilities of a larger model. You can imagine that this model is no longer just a text transformer but a transformer for all problem formulas and strategies. As the model extends outward with new capabilities, it will no longer be possible to encapsulate all formulas within a single model. This will lead to an expansion of the model size, embedding all newly discovered formulas and strategies into the new model. Therefore, this approach can be infinitely scalable, although the computational demands will be extremely high. To summarize, the new model's chain of thought (COT) is trained through RL. When your COT is effective, it can solve problems correctly, but the strategy for breaking down problems is derived from RL training.

This is not an appropriate use of issues. Furthermore, it's not even clear what your feedback is. Move to discussions.


refactor: remove ticker using time.After(X)

Remove defer from ticker.Stop() inside the loop.
Manually call ticker.Stop() at necessary points in the loop to ensure tickers are stopped correctly after each iteration.

curious: how'd you identify this?

This code doesn't make sense in general. We create a ticker, that is something that produces ticks every X time. But we only use it once. The right solution here would to use time.After(X), which has some performance/GC issues...

The right solution here would to use time.After(X)

@hoanguyenkh would you mind rewriting the code to use time.After(s.retryTimeout)?

The right solution here would to use time.After(X)

@hoanguyenkh would you mind rewriting the code to use time.After(s.retryTimeout)?

thanks @melekes, @cason i rewrite this code


Ability to change dead letter topic name in DeadLetterPublishingRecoverer

🎁 Enhancement Request
Hello, I'm seeing source code of DeadLetterPublishingRecoverer.
In there, the dead letter topic name is hardcoded as topic + .DLT.
Kafka shows warning when creating topic with _ or .
WARNING: Due to limitations in metric names, topics with a period ('.') or underscore ('_') could collide. To avoid issues it is best to use either, but not both.
So in this case, if I have topic t_something, the dead letter will be t_something.DLT which is what kafka warns.
Can you add ability to change suffix of dead letter topic?
Thanks

Please don't use GitHub issues to ask questions - they are for reporting bugs or asking for new features.
Use Stack Overflow (tagged with spring-kafka) to ask questions.
See the second constructor, where you can provide a destination resolver function...
	/**
	 * Create an instance with the provided template and destination resolving function,
	 * that receives the failed consumer record and the exception and returns a
	 * {@link TopicPartition}. If the partition in the {@link TopicPartition} is less than
	 * 0, no partition is set when publishing to the topic.
	 * @param template the {@link KafkaTemplate} to use for publishing.
	 * @param destinationResolver the resolving function.
	 */
	public DeadLetterPublishingRecoverer(KafkaTemplate<? extends Object, ? extends Object> template,
			BiFunction<ConsumerRecord<?, ?>, Exception, TopicPartition> destinationResolver) {
		this(Collections.singletonMap(Object.class, template), destinationResolver);
	}

For example:
		@Bean
		public DeadLetterPublishingRecoverer recoverer() {
			return new DeadLetterPublishingRecoverer(template(),
					(record, ex) -> new TopicPartition("t_something_DLT", -1));
		}

This is explained in the documentation.

OK, sorry @garyrussell
I've missed that parts
Thanks for explanation


Add document to help getting started with development

What this PR does / why we need it:
This PR outlines basic requirements for setting up a development environment for cloud-provider-openstack
Special notes for your reviewer:
Advice on making this more widely usable, based on your own experiences, are welcome.
Release note:

NONE

/assign @dims

/hold

/test cloud-provider-openstack-acceptance-test-e2e-conformance-stable-branch-v1.10

/hold cancel


With plugin-nested-docs, I cannot save the page when editing a locale other than the default.

alpha 55, postgres
I can edit my default locale's page fine, with @payloadcms/plugin-nested-docs and save it.
If I switch locales to a locale other than my default, I get an error in the parent field, saying that it is invalid.

Reselecting the parent document doesn't do anything.
It simply makes it impossible to use different locales.

Fixed in #5778
Will backport to 2.x if needed


[Fix] Functions without parameters

Hey @Stevenic, hope all is well! Was on a trip so it took me a while to work on this. I thought I was going to have more time to code while traveling, hehe.
The problem is that AlphaWave would attempt to repair the response after JSONResponseValidator returns a false negative after parsing the parameters due to this check parsed.length == 0, because parsed is an empty array if the parameters property is an empty object.
The most notable changes are the following:

Changed the type of ChatCompletionFunction in packages/alphawave/src/types.ts.
I decided to make the parameters property required based on the documentation of the function's parameters. Since the only PromptCompletionModel so far is the OpenAIModel I decided to go ahead, but it could backfire later.
If the arguments are an empty object string '{}', the FunctionResponseValidator sets the content as null.
If the message content is null in the JSONResponseValidator, then I'm returning a valid validation result to avoid looping during the response repair flow until the max attempts are reached.
null was the most straightforward way to think of something that would make sense and be backward compatible, but there might be better solutions!

Let me know what you think.

Referencing #11

Sorry for the @rmolinamir I've been out of town as well and then I got Covid. Starting to feel better so just now diving into this.
It's interesting that the docs show parameters as being required. I was going off the code in their node library which had it marked as optional. Makes sense to follow the docs though. Let me look through your PR. Again, sorry for the delay.


Make staff users invitable

Similar to https://github.com/DFE-Digital/apply-for-qualified-teacher-status/pull/143
Depends on https://github.com/DFE-Digital/find-a-lost-trn/pull/318
This makes staff users invitable.
Trello card

Looks great. Approving. However noticed there were no model specs, is this intentional?

Yep; we're not really using much custom code in our models, just devise calls. I don't think testing them is particularly valuable, they're pretty battle tested already.


Command suggestion with invalid .tool-versions format can cause panic

If you have an invalid .tool-versions file like this:
ruby: 3.0.5

and you run this:
rtx install

then you get this:
[WARN] plugin ruby: is not installed. Install it with `rtx plugin add ruby:`

Running that command (with the trailing :) causes a panic:
rtx plugin add ruby:
Downloading ruby-build...
The application panicked (crashed).
Message:  called `Option::unwrap()` on a `None` value
Location: src/cli/plugins/install.rs:74

Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.
Abort trap: 6
❌ exit code: 134

My bad for not having read the documentation better, but it might be nice to have some
validation warning for invalid .tool-versions file formats? Or maybe a nicer error message when an invalid
language (e.g. ruby:) is specified?
Not a big deal of course :)

thanks for this, these are the kinds of rough edges I expect but are hard for me to find on my own since I wouldn't have thought to test for this case. Currently rtx is likely going to be pretty unforgiving since I haven't tried small misconfigurations like this.
Keep these coming as you see them, expect a lot initially.


[feature] Upgrade input & form

Please make sure these boxes are checked before submitting your PR, thank you!

[ ] Make sure you follow Element's contributing guide (中文 | English).
[ ] Make sure you are merging your commits to dev branch.
[ ] Add some descriptions and refer relative issues for you PR.

form item support success validate status
input support suffix & preffix slot

缺英文翻译

测试挂了


Conditional formatting

Conditional formatting is useful for quickly conveying status information about certain rows or cells through color or other visual cues. Grist can do some of this (see https://community.getgrist.com/t/colour-code-table-cells/58) but systematic support for conditional formatting would be valuable.

Instead of complicating the interface (non-tech-savvy people - i.e. vast majority - already gets overwhelmed by the simple invoicing example).
Maybe it'd be enough if this was just an advanced widget served from your servers (as proposed in https://github.com/gristlabs/grist-core/issues/38#issuecomment-1046794975 )?

Conditional formatting is here! 🎉 Learn more in our help center: https://support.getgrist.com/conditional-formatting/


Voxblox and Long Term Mapping

Hello,
I've been working with Voxblox for a while now and I just want to thank you for sharing this amazing project.
I have a question regarding Voxblox and its' ability for long term mapping.
After experimenting with large maps, the algorithm, as expected, slows down at a certain map size and also fills up my RAM.
Have you thought about long term mapping in a sense that parts of the map would be kept on a hard drive and would be loaded again as a robot revisits the previously mapped area?
Do you have a plan of implementing something like that and do you think it is feasible or maybe have the advice of how would someone go about doing it (especially the part of loading TSDF and "stitching" it to the local map)?
Thank you in advance and keep up the good work!

Hey! Yes we've thought about this a lot in the design. You should actually be able to do this largely with components that are already there, though there might be some elbow grease required with implementing some features in the serialization/deserialization, and definitely in the bookkeeping.
The nice property of block-hashing is that all blocks are treated independently in memory. This means that you can arbitrarily drop blocks from memory whenever you like. You can take a look at how the "remove_distant_blocks" is implemented at the Layer level: https://github.com/ethz-asl/voxblox/blob/master/voxblox/include/voxblox/core/layer.h#L169
I think the general idea would be to, instead of deleting the blocks, just selectively serialize them. You'd then have to keep track of what block hash-ids are serialized, and then before "allocating" them again in the layer level, pull them from harddrive instead.
If you get this up and running, we'd love to have a pull request for this feature! :) I think it'd help a lot of people.
Also for a consistent voxbloxing framework in the presence of loop-closures etc, check out c-blox: https://github.com/ethz-asl/c-blox and its corresponding paper: https://arxiv.org/abs/1710.07242
As a preview, we'll have an extension of that work with its own pose-graph back-end and optimization coming in the next few months.

In addition to the above most of the runtime of the TSDF part of voxblox is
independent of the map size. The only exceptions are some of the outputs,
such as outputting the map as a pointcloud and the getAllUpdatedVoxels
function that loops through all map blocks, however it would be a simple
change to push blocks onto a queue when they are updated, it's just that
when we profiled the code this was never a bottleneck.
Meshing is also independent of the map size, but displaying it isn't and so
RViz tends to become the bottleneck and start crashing at a few million
triangles.
On Thu, May 16, 2019, 12:03 PM Helen Oleynikova<EMAIL_ADDRESS>wrote:

Hey! Yes we've thought about this a lot in the design. You should actually
be able to do this largely with components that are already there, though
there might be some elbow grease required with implementing some features
in the serialization/deserialization, and definitely in the bookkeeping.
The nice property of block-hashing is that all blocks are treated
independently in memory. This means that you can arbitrarily drop blocks
from memory whenever you like. You can take a look at how the
"remove_distant_blocks" is implemented at the Layer level:
https://github.com/ethz-asl/voxblox/blob/master/voxblox/include/voxblox/core/layer.h#L169
I think the general idea would be to, instead of deleting the blocks, just
selectively serialize them. You'd then have to keep track of what block
hash-ids are serialized, and then before "allocating" them again in the
layer level, pull them from harddrive instead.
If you get this up and running, we'd love to have a pull request for this
feature! :) I think it'd help a lot of people.
Also for a consistent voxbloxing framework in the presence of
loop-closures etc, check out c-blox: https://github.com/ethz-asl/c-blox
and its corresponding paper: https://arxiv.org/abs/1710.07242
As a preview, we'll have an extension of that work with its own pose-graph
back-end and optimization coming in the next few months.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/ethz-asl/voxblox/issues/262?email_source=notifications&email_token=AAFSMOELFOPLBV6VAPQHRR3PVUWK7A5CNFSM4HNKBK2KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODVRKKFQ#issuecomment-493004054,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAFSMOAZ3WJDWPOYLC64KPTPVUWK7ANCNFSM4HNKBK2A
.

Thank you both very much!
Closing the issue...


Remove Base API

Base api no longer exists. If you click the link you will see it directs you no where

[x] My submission is formatted according to the guidelines in the contributing guide
[x] My addition is ordered alphabetically
[x] My submission has a useful description
[x] The description does not have more than 100 characters
[x] The description does not end with punctuation
[x] Each table column is padded with one space on either side
[x] I have searched the repository for any relevant issues or pull requests
[x] Any category I am creating has the minimum requirement of 3 items
[x] All changes have been squashed into a single commit

Hi @mkeleti
Thanks for your contribution ;)
We have some problems with Public APIs, so we won't be able to review/add this improvement right now.
Read this issue for more information, please: https://github.com/public-apis/public-apis/issues/3104


Neither Tools/Users nor Tools/API Keys brings up expected tab

New docker stack downloaded from https://github.com/gchq/stroom-resources/releases/download/stroom-stacks-v7.0-beta.68-2/get_stroom.sh and run on a VMWare VM.
Start stroom and neither of the mentioned Tools works.  No unexpected log entries generated.  This happens for at least two different (physical) users.

This is working fine.  The issue was caused by the browser auto-completing the url to localhost/stroom rather then using localhost.
There is an argument that the nginx config should be changed so that /stroom is denied to prevent this sort of confusion for other migrating from 6 to 7.  Maybe adding a deny rule for /stroom($|/$/ui) would achieve this without breaking things for the servlets under /stroom


ability to build in buildkite

Just to connect the dots: this is currently being triggered manually by this buildkite pipeline, which is defined as:
env:
  FORCE_COLOR: 1
  GIT_TERMINAL_PROMPT: 0

steps:
  - label: "Build chromium"
    plugins:
      - thedyrt/skip-checkout#v0.1.1: ~
    command: "PATH=/var/lib/buildkite-agent/depot_tools:$$PATH && goma_ctl restart && cd /var/lib/buildkite-agent/chromium/src && node buildLinux.js"
    env:
      GOMA_SERVER_HOST: simpsonite.goma.engflow.com
      GOMACTL_USE_PROXY: false
    agents:
      - "runtimeType=build"
      - "os=linux"

@klochek I saw a no-op build take about 2 minutes https://buildkite.com/replay/chromium-build/builds/43

We shouldn't lose any incrementality because we are using goma distributed builds/build caching via engflow


Query selectors

Hey, props for nailing the flow of things down the render tree - I'm about to give a talk on something similar tomorrow at a React event at Facebook and it looks like you ended up with very similar conclusions w.r.t binding to RxJS as I have (only you did it first) so first of all major props.
Second - I think the flow of data here is nice but the event handling upwards is still problematic. Querying the JSX for a className feels really ugly here. Wouldn't it be much nicer if you could get an interface that gives sugar over what you have with event callbacks?
Currently:
// jsx
<button className="inc">++</button>

// event code
const inc$ = Observable.fromEvent(events(".inc"), "click")
    .map(() => +1)

Wanted:
<button clicked={events.clicked} />
const inc$ = events.clicked.map(() => +1);

I think this can be accomplished with a getter.

Hi @benjamingr!
Thanks for the feedback! Also one notable thing in this project is that it isn't bound to any specific library (although examples are written with rx, you could easily mix whatever observable library you want) e.g.
import React from "react"
import R from "react.reactive"
import {render} from "react-dom"
import {Observable} from "rx"
import Kefir from "kefir"

const $app =
  document.getElementById("app")

const counter =
  Kefir.interval(100).scan(c => c + 1, 0)

const time =
  Observable.interval(1000)
    .startWith(null)
    .map(() => new Date().toTimeString())

const App = () =>
  <div>
    <R.h1>Hello Kefir {counter}!</R.h1>
    <R.p>
      Time is now {time}
    </R.p>
  </div>

render(<App  />, $app)

About the data flow - I've thought the very same questions many times but not managed find the optimal solution yet. You have good points, but the syntax and terms are crucial in this: onClick, onChange etc. handlers have a strong imperative smell, thus using them leads easily to non-declarative and unmaintainable code.
Do you have more details about your approach? I'd gladly hear more about it.


Fix go regression in json.Number unmarshalling

This PR fixes regression in unmarshalling of json.Number in Go 1.14 as noted at [1]. In short, the value "auto" that used to be unmarshalled properly for json.Number is now considered an error.
I went through the other places where we use json.Number and it doesn't seem they're affected.
[1] https://golang.org/doc/go1.14#encoding/json

Thanks for the reviews, merging.


Better Python integration

I'm not too familiar with the ecosystem, it seems a little confusing to get it installing deps in the CWD without creating issues elsewhere. Need to research what the idiomatic approach is and adjust the default hooks accordingly—these may also vary for python2.7 and python3, I'm not positive.
Seems like homebrew's installation is also non-standard, which makes it more confusing :D

Most of this stuff works very similar to how node deps works, you just need to run pipenv first to setup a "virtual python environment" using a specified Python version. Heroku handles this by checking for a runtime.txt which contains python version .e.g 3.7
A very basic way to get this to work better is to also support pipenv, which is nowadays the best practice in python-land.
E.g.
pipenv --python 3.7
pipenv install

Just like now its checking for requirements.txt and running pip, it could check for Pipfile.lock and run the commands above
https://docs.pipenv.org/en/latest/basics/

For example, I prefer to use poetry instead of pipenv. Someone may say conda. I think there are two options:

Use pip to install dependencies from requirements.txt and force user to update this file before deploy their code. pip is available in all versions of Python out of box. pipenv and poetry has a command to export dependencies to requirements.txt.
Give an option to user to specify package management tool they use in the project. So the up will discover   appropriate command to run to install dependencies.

Just verifying an assumption -- I've got an app written in python that's using python 3.6 features. It appears that the node10 Lambda runtimes appear to no longer ship with any python interpreter (I get "message": "sh: python: command not found" when attempting to invoke it after deploying with up) and the AWS node8 runtime appears to have an older python (3.4, maybe?) included.
Given that, I'm assuming that at this moment, there's not a good path for me deploying with up, and I should bide my time or try another framework?  (I still have a couple of lambdas deployed with apex, still... ;)
Consider the above a scenario for which I'd love to use up someday, regardless.

@adamehirsch yea that's correct unfortunately, they removed the binaries. If they ever make Lambda Layers more flexible, then I could easily add support for the other languages, but as-is they're not.
Even something similar like exposing the existing runtimes they support as Layer ARNs, I mentioned this stuff to them a year or so ago, but they don't seem interested.


Missing example for UseStaticWebAssets()

There is no example in this document for how to enable UseStaticWebAssets() in the .NET 6 hosting model.

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

ID: 20acee3e-8b6e-b3fb-8271-661e1a287bdd
Version Independent ID: 20acee3e-8b6e-b3fb-8271-661e1a287bdd
Content: Code samples migrated to the new minimal hosting model in 6.0
Content Source: aspnetcore/migration/50-to-60-samples.md
Product: aspnet-core
Technology: aspnetcore-migration
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

That will be addressed in #24053


Number-Of-Good-Pairs

NUMBER OF GOOD PAIRS

Given an array of integers nums, return the number of good pairs.
A pair (i, j) is called good if nums[i] == nums[j] and i < j.
Example 1:
Input: nums = [1,2,3,1,1,3]
Output: 4
Explanation: There are 4 good pairs (0,3), (0,4), (3,4), (2,5) 0-indexed.
Example 2:
Input: nums = [1,1,1,1]
Output: 6
Explanation: Each pair in the array are good.
Example 3:
Input: nums = [1,2,3]
Output: 0
Constraints:
1 <= nums.length <= 100
1 <= nums[i] <= 100
I WANT TO CONTRIBUTE THE SOLUTION OF THIS ABOVE MENTIONED QUESTION SO PLEASE ASSIGN ME THIS WITH HACKTOBERFEST TAG ON IT.

Please assign me Hacktoberfest tag

please provide Hacktoberfest tag to my issue


Add option to retain the API Gateway stage in the URL passed to fastify

On my team we have an API Gateway with a stage that we want to include in the URL passed to fastify. E.g. we have the stage stage with a resource my-resource, we would have this route in fastify:
app.get("/stage/my-resource", ...);

Currently the "stage" part is stripped from the URL:
    let url = event.path || event.rawPath || '/' // seen rawPath for HTTP-API
    // NOTE: if used directly via API Gateway domain and /stage
    if (event.requestContext && event.requestContext.stage && event.requestContext.resourcePath &&
        (url).indexOf(`/${event.requestContext.stage}/`) === 0 &&
        event.requestContext.resourcePath.indexOf(`/${event.requestContext.stage}/`) !== 0) {
      url = url.substring(event.requestContext.stage.length + 1)
    }

This PR adds a new option called retainStage that will make sure to retain the stage part of the URL.
This extends the public API! I have documented the change in README.md and updated the TS definition. The change is non-breaking.
Checklist

[x] run npm run test and npm run benchmark
[x] tests and/or benchmarks are included
[x] documentation is changed or added
[x] commit message and code follows the Developer's Certification of Origin
and the Code of conduct

npm run test

...
Suites:   3 passed, 3 of 3 completed
Asserts:  222 passed, of 222

npm run performance

aws-serverless-express x 10,951 ops/sec ±11.14% (75 runs sampled)
(node:31068) [FSTDEP011] FastifyDeprecation: Variadic listen method is deprecated. Please use ".listen(optionsObject)" instead. The variadic signature will be removed in `fastify@5`.
(Use `node --trace-warnings ...` to show where the warning was created)
aws-serverless-fastify x 15,076 ops/sec ±2.88% (89 runs sampled)
serverless-http x 32,611 ops/sec ±6.82% (83 runs sampled)
aws-lambda-fastify x 43,800 ops/sec ±2.82% (81 runs sampled)
aws-lambda-fastify (serializeLambdaArguments : true) x 44,551 ops/sec ±1.99% (85 runs sampled)
aws-lambda-fastify (decorateRequest : false) x 43,636 ops/sec ±3.34% (81 runs sampled)
Fastest is aws-lambda-fastify (serializeLambdaArguments : true),aws-lambda-fastify,aws-lambda-fastify (decorateRequest : false)

Cool, thanks @adrai
When will v3.3.0 be released you think?

already published

Ah yes, was looking at the Github Releases. Thanks!


static crosshair

Description of the new feature / enhancement
Extension of the mouse cursor crosshairs, with a static crosshair, the intersection of which can be positioned at any point, using the mouse keys, or by entering the coordinates
it would actually be helpful and sufficient to be able to fix the existing corsur crosshairs, but you should still be able to use the mouse
Scenario when this would be used?
This extension would be helpful for different games & scenarios, or to hold a certain position
Supporting information
No response

Can you be more precise with the scenarios?  This could be covered with alternative issues already open. /needinfo


Check behavior of references/inReplyTo in client

.... if Message-IDs are properly considered and appended when replying to a thread.

ReplyToMessageDecorator properly appends messageId to references-field and sets the in-reply-to-header accordingly.


ES Module support

Hello!
I was wondering if there is a plan to support an ES module version of Mustache.js? If so i can contribute to it.
Why?
I'm working on the Deno project, and there is a discussion about templating (Deno only supports ES modules). Problem is there is no template renderer at the moment. One idea was to port mustache to Deno, so a port means a different code stream which needs maintainance. Having it directly in mustache would be a benefit for both projects i think. But in the case of mustache it means having a mustache.mjs added to the repo,edit: or change the mustache.js to make it ES module compatible.
Your thoughts?
ref: https://github.com/denoland/deno_std/issues/391

Hi @zekth!
Exciting plans you've got with deno going forward. I'm very positive to making this project ES module compatible, and completely agree with your thoughts on avoiding a port.
You got any concrete thoughts what would be necessary to make this happen?

Here is a (really ugly) port i've done this morning (in typescript) https://github.com/zekth/deno_mustache/blob/master/mod.ts
i've ported some test just for the beginning.
The only concern i have is all the different environments you support with mustache, having the main js file ES module compatible is better than another mjs i think but i don't want to break anything :)

Thanks a lot for the reference! 👍
Since I've got zero experience with deno, I'll fire off some trivial questions to trigger some discussions:

What requirements to deno have to make this work? Does it need to be a .mjs file or does it care about the type="module" of package.json?
Any file naming requirements?
Does TypeScript matter here somehow?

..and so on, any for-dummies-clues would be much appreciated. At the moment I've got too little knowledge about deno to think creatively about plausible ways of tackling this.

There is no special requirement as it only needs the library to be an ES module. Example lodash works without any porting. Loading of the module is made throught HTTP fetching, no package json or anything.
No naming convention
You can use TypeScript of JavaScript, Deno handles both.

For example using mustache in deno would look like:
import * as mustache from 'https://raw.githubusercontent.com/janl/mustache.js/master/mustache.js'
mustache.render(......

If you want more infos you can check this talk from Ryan: https://www.youtube.com/watch?v=z6JRlx5NC9E

Cool!
So here's some ramblings to share some thoughts & context. My understanding of ES modules are that they're meant to be syntactically parsable in terms of what's exported. That's in dark contrast to its precursors like CommonJS, AMD etc which is a lot more dynamic in nature.
With that in mind, I'm also assuming the IIFE surrounding the body of mustache.js today, meant to feature detect the module system the code currently runs in, won't work in ES module land -- please correct me if I'm wrong!
That means there has to be a .js | .mjs | .ts file that has a plain and simple export ... like you have in your port: zekth/deno_mustache/mod.ts#L689.
The fun starts when we also want to keep the old behaviour, to stay compatible with projects using other module systems or not even a module system at all, hence the need for the mentioned IIFE wrapper :thinking: And as a reminder, that means projects running on servers and browsers.
Since we surely don't want to keep two different implementations (ES modules + the rest) in sync, it starts to feel like it's worth considering a build step. E.g. if we wrote the source code in ES module style, then a build step could convert it to non-ES module like we have today. Or the other way around if that's less intrusive.
As a final note, I'm a big fan of doing as small steps as possible. I'm generally positive to TypeScript, but is it okey for now if we keep focus on ES modules and do a different round focused on whether or not to convert to TypeScript/export typedefs?
Any other thoughts or corrections that comes to mind?

You're totally right, first step would be to add the TypeScript stack and use the compiler to output multiple files like commonjs / ES5 / ES6 and so on ( https://www.typescriptlang.org/docs/handbook/compiler-options.html ) . Using TS compiler does not force us to use TypeScript, we can use ES6 code also.

Oh that's a great suggestion! Trying to use the TS compiler as an ordinary build tool from ES -> other module systems at first. That will make a plausible TS conversion later a lot less risky.
Are you able to give that approach a shot? Not necessarily solving everything in one go, but the first building blocks at least. Would be really valuable to have something concrete to look at and base future discussions around.

Sooo I had a go at making a transition into an ES module.
My proof of concept ended up using rollup.js instead of the TypeScript compiler (or babel) primarily because of the UMD version they generate -- we still need that to keep compatibility to older module systems or no module system at all.
Any chance you're willing to give it a test run with deno to see if it works as you expect? phillipj/mustache.js#esm-ify mustache.mjs

@phillipj will do!

Some errors but i think those are minor fixes:
error TS2339: Property 'render' does not exist on type '{ name: string; version: string; tags: string[]; }'.

► file:///Users/vlegoff/projects/genesys/github/telemetry/t/mustache.ts:10:23

10 var output = mustache.render('{{title}} spends {{calc}}', view);
                         ~~~~~~

error TS2554: Expected 2 arguments, but got 1.

► https://raw.githubusercontent.com/phillipj/mustache.js/esm-ify/mustache.mjs:525:52

525   var context = (view instanceof Context) ? view : new Context(view);
                                                       ~~~~~~~~~~~~~~~~~

  An argument for 'parentContext' was not provided.

    ► https://raw.githubusercontent.com/phillipj/mustache.js/esm-ify/mustache.mjs:377:25

    377 function Context (view, parentContext) {
                                ~~~~~~~~~~~~~

error TS2339: Property 'escape' does not exist on type '{ name: string; version: string; tags: string[]; }'.

► https://raw.githubusercontent.com/phillipj/mustache.js/esm-ify/mustache.mjs:640:21

640     return mustache.escape(value);
                        ~~~~~~

error TS2339: Property 'clearCache' does not exist on type '{ name: string; version: string; tags: string[]; }'.

► https://raw.githubusercontent.com/phillipj/mustache.js/esm-ify/mustache.mjs:659:10

659 mustache.clearCache = function clearCache () {
             ~~~~~~~~~~

error TS2339: Property 'parse' does not exist on type '{ name: string; version: string; tags: string[]; }'.

► https://raw.githubusercontent.com/phillipj/mustache.js/esm-ify/mustache.mjs:668:10

668 mustache.parse = function parse (template, tags) {
             ~~~~~

error TS2339: Property 'render' does not exist on type '{ name: string; version: string; tags: string[]; }'.

► https://raw.githubusercontent.com/phillipj/mustache.js/esm-ify/mustache.mjs:678:10

678 mustache.render = function render (template, view, partials, tags) {
             ~~~~~~

error TS2339: Property 'to_html' does not exist on type '{ name: string; version: string; tags: string[]; }'.

► https://raw.githubusercontent.com/phillipj/mustache.js/esm-ify/mustache.mjs:690:10

690 mustache.to_html = function to_html (template, view, partials, send) {
             ~~~~~~~

error TS2339: Property 'render' does not exist on type '{ name: string; version: string; tags: string[]; }'.

► https://raw.githubusercontent.com/phillipj/mustache.js/esm-ify/mustache.mjs:693:25

693   var result = mustache.render(template, view, partials);
                            ~~~~~~

error TS2339: Property 'escape' does not exist on type '{ name: string; version: string; tags: string[]; }'.

► https://raw.githubusercontent.com/phillipj/mustache.js/esm-ify/mustache.mjs:704:10

704 mustache.escape = escapeHtml;
             ~~~~~~

error TS2339: Property 'Scanner' does not exist on type '{ name: string; version: string; tags: string[]; }'.

► https://raw.githubusercontent.com/phillipj/mustache.js/esm-ify/mustache.mjs:707:10

707 mustache.Scanner = Scanner;
             ~~~~~~~

error TS2339: Property 'Context' does not exist on type '{ name: string; version: string; tags: string[]; }'.

► https://raw.githubusercontent.com/phillipj/mustache.js/esm-ify/mustache.mjs:708:10

708 mustache.Context = Context;
             ~~~~~~~

error TS2339: Property 'Writer' does not exist on type '{ name: string; version: string; tags: string[]; }'.

► https://raw.githubusercontent.com/phillipj/mustache.js/esm-ify/mustache.mjs:709:10

709 mustache.Writer = Writer;
             ~~~~~~

Found 12 errors.

code:
import mustache from 'https://raw.githubusercontent.com/phillipj/mustache.js/esm-ify/mustache.mjs';

var view = {
  title: 'Joe',
  calc: function() {
    return 2 + 4;
  },
};

var output = mustache.render('{{title}} spends {{calc}}', view);

console.log(output);

want me to try to make a PR on your .mjs file?

Thanks!
Realise now that I should shared a little more context about what I tried doing initially, sorry.
As we discussed earlier, my initial attempt with the TypeScript compiler also yielded quite a few errors, somewhat similar to the ones you provided now. Nevertheless it surprised me that it did generate output and it was very close to what I wanted.
What I wasn't pleased with was the UMD code it wrapped around the compiled output. Mainly two things:

It does not have the fallback of exposing the package contents onto the global scope (think window.Mustache). This is vital for our users that does not have a module system in place.
In projects with CommonJS, this package's contents is exposed as module.exports.default rather than module.exports. Although that might be the correct and expected behaviour when CommonJS require()s an ES module, it will break backwards compatibility, which I was hoping to avoid.

As my main goal was to first and foremost to transition the source code to be an ES module, not introducing TypeScript, I decided to try different compilers/bundlers to see if they did things differently to avoid the two challenges above.
Hence the reason I ended up with rollup.js. It's UMD output is what we need and it doesn't cause any breaking changes to users of this package.
Sooo to my actual question; do we need to care about TypeScript at the moment?
My understanding from earlier in this discussion was the we could consider not fully transition to TypeScript yet, as it would help deno nonetheless if it is indeed an ES module, but I might have misunderstood that a bit?

I think the main problem is the first initialisation of mustache like here :
https://github.com/janl/mustache.js/blob/master/mustache.js#L14
and also this: https://github.com/janl/mustache.js/blob/master/mustache.js#L536
can be rewritten as new Context(view, null)
don't you think?

I think the main problem is the first initialisation of mustache ..

You're probably right. In the .mjs version I tried moving that into the actual source code atleast, instead of being an object passed in from the UMD wrapper:
var mustache = {
  name: 'mustache.js',
  version: version,
  tags: [ '{{', '}}' ]
}

Would be cool to see your approach which would fix those TypeScript errors 👍

can be rewritten as new Context(view, null)

Almost.. Isn't new Context(view, undefined) the equivalent of not passing a second argument at all?

Yes correct about the new Context
I'll try something so :)

Here is the PR: https://github.com/phillipj/mustache.js/pull/1
CI is broken but i don't get why i got those linting messages

Awesome, thanks a lot! Pretty busy the next couple of days, I'll do my best to review before the week ends.

Status update; as I mentioned in the PR you opened against my esm-ify branch, I now got a few tests in place that ensures this package works as intended for different module systems we've supported for years in #724.
I'll let that brew for a couple of days as I just pushed a few improvements, just in case anyone has any objections or more tweaks in mind.
With those tests in place, I feel comfortable opening going forward transitioning this project to having the source code written as an ES module and build step to produce what we've got in mustache.js today -- that'll ofcourse be done in an upcoming PR.

#728 has been opened for public scrutiny.