[webview_flutter] Copy to Clipboard method not working properly

Hi,
I have an issue using the webview_flutter.
My issue is I can't copy text from the html embed in the webview_flutter into the device clipboard.
But if I open the page using the browser copy to clipboard is working properly.
This is the URL Video regarding this issue :
https://drive.google.com/file/d/1W-nNL-rkpRPEJ7fBaUET6ku7LbOREpLJ/view?usp=sharing
Do you have advice about this issue?
Kindly wait your response.

Hi @kp191195, thanks for filing this issue.
Can you please provide your flutter doctor -v and flutter run --verbose logs, and a minimal complete reproducible code sample?
Also, can you confirm if copy to clipboard works in a native android webview, because if it doesn't work in the native android webview, then it is out of the scope of the plugin since the plugin is a wrapper around the native android webview.
Thank you

I know the problem I facing right now, maybe I will explain some detail.
I have using the kotlin for the code sample
`
package com.example.simplewebview
import android.content.ClipData
import android.content.ClipboardManager
import android.content.Context
import android.content.Context.CLIPBOARD_SERVICE
import android.os.Bundle
import android.webkit.JavascriptInterface
import android.webkit.WebSettings
import android.webkit.WebView
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.ContextCompat.getSystemService
/** Instantiate the interface and set the context  */
class WebAppInterface(private val mContext: Context) {
/** Show a toast from the web page  */

/** I need to implement this one, can I use JavascriptChannel with method_name copyToClipboard(string) instead of postMessage(string) ?*/
@JavascriptInterface
fun copyToClipboard(text: String) {
val clipboardManager = mContext.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
val clipData = ClipData.newPlainText("text", text)
clipboardManager.setPrimaryClip(clipData)
}
}
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
    val myWebView: WebView = findViewById(R.id.webView)
    myWebView.addJavascriptInterface(WebAppInterface(this), "NativeAndroid")
    val webSettings: WebSettings = myWebView.getSettings()
    webSettings.javaScriptEnabled = true
    webSettings.allowContentAccess = true
    webSettings.useWideViewPort = true
    webSettings.loadWithOverviewMode = true
    webSettings.domStorageEnabled = true
    webSettings.setAppCacheEnabled(true)
    webSettings.cacheMode = WebSettings.LOAD_DEFAULT
    webSettings.setAppCachePath(cacheDir.path)
    webSettings.databaseEnabled = true

    myWebView.loadUrl("https://checkout.xendit.co/web/611e1e3441af6308148e8b31#mandiri")
}

}
`
Can I implemented the @JavascriptInterface on webview_flutter ?
I already know the webview_flutter can use JavascriptChannel, but can you make dynamic method_name for JavascriptChannel?
For example
<JS_CHANNEL_NAME>.copyToClipboard(string)
Because the JavascriptChannel only accept method_name : postMessage.
And my condition now is, this page https://checkout.xendit.co/web/611e1e3441af6308148e8b31#mandiri  is from 3rd party integration and I can't change the js code.
The code on their javascript now using method_name copyToClipboard.

Hi @kp191195
This issue doesn't seem to describe a bug or a feature request. Please see https://flutter.dev/community for resources and asking questions like this,
you may also get some help if you post it on Stack Overflow and if you need help with your code, please see https://www.reddit.com/r/flutterhelp/
Closing, as this isn't an issue with Flutter itself. If you disagree, please write in the comments and I will reopen it.
Thank you


fix: correct behaviour to avoid caching "INPROGRESS" records

Issue #, if available:
Description of changes:
This fixes an issue with caching in the unreleased idempotency util. We were mistakenly caching in progress records, meaning execution environments could get "stuck" with in progress records in the cache. Records in this state shouldn't be included in the cache, as we've no way to reflect changes from outside the execution environment in the local caches.
Checklist

[X] Meet tenets criteria
[X] Update tests
[X] Update docs
[X] PR title follows conventional commit semantics

Breaking change checklist

RFC issue #:

[ ] Migration process documented
[ ] Implement warnings (if it can live side by side)

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@cakepietoast haha. that was quick :)

@cakepietoast @heitorlessa maybe to help with code review we can try to use more GIVEN, WHEN & THENs.
At least just to cover the basic behavors we put into the RFCs. Coz then we are less likely to miss things

@cakepietoast @heitorlessa
I spend a little time on this and attached a diff of changes
Changes:
base.py

Make STATUS_CONSTANTS a frozen dict (by using MappingProxyType)
status - Make status call internal mutually exclusive
_validate_payload - Fix doc string typo
_validate_payload - Simplifies conditional logic using De Morgan's Identity
_save_to_cache, _retrieve_from_cache, _delete_from_cache to check use_local_cache and exit early
_save_to_cache - to not save for status == "INPROGRESS"
_save_to_cache - add doc string to explain has "INPROGRESS" is not saved
save_success - Fix doc string typo
save_success - Just call _save_to_cache directly
save_inprogress - Just call _retrieve_from_cache directly
delete_record - Just call _delete_from_cache directly
get_record - Simplify logic by calling _retrieve_from_cache and _save_to_cache directly

test_idempotency.py

test_idempotent_lambda_in_progress_with_cache update check to save_to_cache_spy.assert_called()
test_in_progress_never_saved_to_cache - add new test to check "INPROGRESS" is not saved to local cache
test_user_local_disabled - add new test to check if all local cache options work when use_local_cache  is False

test_json_encoder.py

test_jsonencode_calls_default - Add missing test case for unhandled types

Attached diff

proposed_changes.diff.zip

Codecov Report

Merging #295 (a7f8199) into develop (03f7dcd) will decrease coverage by 0.19%.
The diff coverage is 68.18%.

@@             Coverage Diff             @@
##           develop     #295      +/-   ##
===========================================
- Coverage    99.64%   99.45%   -0.20%
===========================================
  Files           86       86
  Lines         3142     3122      -20
  Branches       151      149       -2
===========================================
- Hits          3131     3105      -26
- Misses           6       10       +4
- Partials         5        7       +2

Impacted Files
Coverage Δ

...wertools/utilities/idempotency/persistence/base.py
92.68% <68.18%> (-6.50%)
:arrow_down:

aws_lambda_powertools/logging/logger.py
100.00% <0.00%> (ø)

aws_lambda_powertools/tracing/tracer.py
100.00% <0.00%> (ø)

aws_lambda_powertools/metrics/metrics.py
100.00% <0.00%> (ø)

aws_lambda_powertools/logging/formatter.py
100.00% <0.00%> (ø)

aws_lambda_powertools/utilities/batch/base.py
100.00% <0.00%> (ø)

...ws_lambda_powertools/middleware_factory/factory.py
100.00% <0.00%> (ø)

...s_lambda_powertools/utilities/parser/models/sns.py
100.00% <0.00%> (ø)

...mbda_powertools/utilities/parser/models/kinesis.py
100.00% <0.00%> (ø)

... and 3 more

Continue to review full report at Codecov.

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

@cakepietoast @heitorlessa maybe to help with code review we can try to use more GIVEN, WHEN & THENs.
At least just to cover the basic behavors we put into the RFCs. Coz then we are less likely to miss things

Yep, you're completely right on this. Its been on my todo list with this PR for ages but I should've prioritised it! I'll add this as soon as I get chance.


[Service Bus] .NET Client Library Adoption

Summary
The goal of this set of changes is to adopt the existing Service Bus client library for .NET from its current repository  (keeping history) with a focus on ensuring a light touch.  Changes have intentionally been kept to a minimum, with only those needed for compatibility with the local engineering system for builds and testing.  The code and other artifacts otherwise have been left as-is, including the existing code formatting and conventions.
Details
Repository Structure

The Service Bus area has been restructured to separate the management and client areas.

Service Bus Client

Imported from its previous repository into a dedicated area in this repository following the data-plane convention.

Projects were adjusted to adapt to the local engineering system to allow for clean builds.

Artifacts no longer needed have been cleaned up and removed.

Errors from the import and rebase have been fixed, with some minor adjustments made.

Infrastructure was added to the tests to allow categorization of Live tests, following convention.

Test expectations were adjusted to support non-Windows platforms.

Tests that are bound to Windows have been marked as skip on other platforms.

Engineering System

An additional parameter was added to the data plane build properties to allow test projects to opt-in for signing/strong naming.  This was needed to support the use of the InternalsVisibleTo attribute for exposing non-public members to tests.

Since we initially talked the plan for the overall repo structure change has been approved you can see what the change will look like at https://github.com/Azure/azure-sdk-for-net/issues/5213. This is just an FYI as we will likely do a large pass to update all them at once but I wanted to give you a heads up that the structure will be changing.

@weshaggard

Initial port looks good but there are definitely some things to clean-up afterwards. Things like the extra .gitignore file and such which isn't needed, but I'm fine with those clean-up items being done later.

Just a note that I intentionally left the local .gitignore in place and cleaned out redundant items.  There were some Service Bus specifics that I wasn't convinced should be polluting the root ignore file, such as:
test/Microsoft.Azure.ServiceBus.UnitTests/API/ApiApprovals.ApproveAzureServiceBus.received.txt

Ideally, in this case, the test suite should clean up its own mess but I can see other cases where it may be worth a discussion to establish a consistent practice around how to handle ignoring of things that are granular to a specific solution.

Just a note that I intentionally left the local .gitignore in place and cleaned out redundant entries from it. There were some Service Bus specifics that I wasn't convinced should be polluting the root ignore file, such as:

I'm not much of a fan having these .gitignore files throughout the source tree as it leads to each sdk having something different and inconsistent. We should try to make the file types we ignore consistent across the repo and then put that pattern in the root gitignore file.

I'm not much of a fan having these .gitignore files throughout the source tree as it leads to each sdk having something different and inconsistent. We should try to make the file types we ignore consistent across the repo and then put that pattern in the root gitignore file.

Works for me.   Added Service Bus Client: Review and Clean Local Assets #5354 to track this.


Regard extended enum as exclusive union type of its instances

Native TypeScript enums are exclusive union of each members.
enum Fruit { Apple, Orange }

type T = Fruit.Apple & Type.Orange // never

This allows type interpretations in some use-cases to be useful:
declare const fruit: Fruit;

if (fruit === Fruit.Apple) { ... }
if (fruit === Fruit.Orange) { ... }
// now, compiler knows this code is not reachable

declare const fruit: Fruit;

switch (fruit) {
  case Fruit.Apple: { ..., break; }
  case Fruit.Orange: { ..., break; }
  // now, compiler knows this code is not reachable
}

Allow this functionality to extended enums, so that the following holds:
enum _Fruit { Apple, Orange }
const Fruit = extend<typeof _Fruit, _Fruit>(_Fruit);

type T = Fruit.Apple & Fruit.Orange; // never

Also, the extended enum class itself and the members should be type and value at the same time, like the native enum does.
type T = Fruit.Apple extends Fruit ? true : false // true

enum _Vegetable { Potato, Celery }
const Vegetable = extend<typeof _Vegetable, _Vegetable>(_Vegetable);

type U = Vegetable.Potato extends Fruit ? true : false // false

The exclusivity of instance types are implemented in #22.
The next goal is to make the union of instance types to exhaustively define the whole type.


noob vmap question with if statement

Hi
I'd like to vectorize the following '1d truncated Gaussian kernel' function
def kernel_scalar(x, lam=0.18, beta=1.0):
    if np.abs(x) > lam:
        return 0.0
    else:
        return np.exp(-beta*x**2)

I tried this
def kernel(xs):
    kernels = vmap(kernel_scalar)(xs)
    return kernels

but  when I try this
n = 10
xs = onp.random.randn(n)
k = kernel(xs)

I get this error
...
  File "/Users/kpmurphy/github/pyprobml/scripts/mean_shift_opt.py", line 8, in kernel_scalar
    if np.abs(x) > lam:

  File "/anaconda3/lib/python3.6/site-packages/jax/core.py", line 342, in __bool__
    def __bool__(self): return self.aval._bool(self)

  File "/anaconda3/lib/python3.6/site-packages/jax/abstract_arrays.py", line 38, in error
    raise TypeError(concretization_err_msg(fun))

TypeError: Abstract value passed to `bool`, which requires a concrete value. The function to be transformed can't be traced at the required level of abstraction. If using `jit`, try using `static_argnums` or applying `jit` to smaller subfunctions instead

I realize that dynamic if is not allowed inside jit, but I am not (explicitly) calling jit.
Also the return of both branches has the same type and shape, so why does
the value matter?
(I also realize it's easy to vectorize this  function with vanilla numpy, but I was hoping vmap would let me do everything with just scalar arithmetic :)

vmap is essentially adding a batch dimension, and each example in the "batch" currently needs to execute the same instructions in the same order, putting the same restrictions on user code as jit. You can get around this by using np.where instead of if (or perhaps lax.cond, but that's unnecessary complexity for this example).

As @jekbradbury said, just like jit must trace your code on an abstract value representing the set of all possible arrays x with a given shape/dtype (rather than on one concrete value for x), vmap must similarly trace your code on an abstract value that could represent any value in your batch. (For simplicity, we don't trace on an abstract value representing just the finite set of possible values in the batch, though in principle we could; we instead trace on an abstract value representing the set of all possible arrays with given shape/dtype, i.e. we trace at the same level for vmap and for jit.) That puts constraints on the Python code we can successfully trace with vmap, and in particular we can't trace value-dependent Python control flow and instead raise the error you saw.
Here are two ways to write this in a way that works with vectorization:
def kernel_scalar(x, lam=0.18, beta=1.0):
  return np.where(np.abs(x) > lam, 0., np.exp(-beta * x ** 2)

def kernel_scalar(x, lam=0.18, beta=1.0):
  return lax.cond(np.abs(x) > lam, x, lambda _: np.zeros_like(x), x, lambda x: np.exp(-beta * x**2))

I think the former is more ergonomic, and when you vmap the latter function it basically turns into the former function anyway. But it does mean you're vectorizing it just like in vanilla NumPy. The latter does let you assume the scalar case, which is cool, but the fact that you have to write lax.cond instead of a native Python if takes the fun out of it.
Please reopen if we failed to explain this constraint!


[Question] Will luasnip-next-choice trigger InsertLeave?

Hello,
I set update_in_insert in vim.diagnostic to false, i.e., the diagnostics will be updated via InsertLeave.  So after entering insert mode, all the diagnostics will be hidden, and they will show up when I go back to the normal mode.
For ChoiceNode, when I use <Plug>luasnip-next-choice (binding to <C-l>) to select choices, the diagnostics will appear and then disappear, i.e., flashing, which is very distracting. So I am wondering whether it will trigger InsertLeave event to make the diagnostics to be updated and shown up? And is that normal?
The test snippet I use:
  s("test", {
    t("Hello World"),
    c(1, {
      t("choice1"),
      t("choice2"),
    }),
  }),

Short video to demo:
https://user-images.githubusercontent.com/11582667/149247807-c5559665-3e7e-4213-8f19-d0d257f2ecd5.mov
Thank you very much.

Ah, yes it does, and it is normal.
It used to be necessary to leave INSERT because we may jump from SELECT and iirc the mode wasn't always reported correctly.
I'm not sure if all of that still applies, if it doesn't this might be an easy fix.

Okay I see. Thanks.
Do you have any ideas to improve this "diagnostic information flashing"?
In addition, will this cause performance issue in a large file? vim.diagnostic will keep monitoring InsertLeave event to update the diagnostics. If each time pressing <C-l> will trigger this event, it means the diagnostics will be updated quite frequently.
So is it possible to make luasnip-next-choice and luasnip-prev-choice not trigger the diagnostics update?
Thank you very much.

With aac0f43, jumping between two empty insertNodes (or changing choice in your case) will not switch to NORMAL, but SELECTing text still requires the switch.
You could check if luasnip is currently performing any jumps (require("luasnip.session").jump_active will be set) and not update the diagnostics in that case (I didn't open with that recommendation because I thought I'd be able to completely remove leaving INSERT from the jump-process).

Looking at :h vim.diagnostic, this might not be as straightforward as I thought :|
As a last resort you could override the handler to not display them, but they would still be queried I think.

Looks like the autocmd for diagnostics is registered here, maybe you can extend that

Sorry for the late reply. I updated luasnip and this is a big improvement. Changing choice won't trigger InsertLeave event so the diagnostics won't be updated each time when I keep selecting choices.
Thank you very much for providing me these reference and suggestions. 😄

You're welcome :D


Delete failing oculus integration test

Overview
Looking at this test, I first realized that the checking of the asmdefs was iterating empty lists, since the asmdefs had all been renamed in #8668 but this test was referring to them by their old name.
After migrating this test to load by GUID, the test started failing the asmdef check, since the config checker no longer adds/removes the assembly references checked against (https://github.com/microsoft/MixedRealityToolkit-Unity/pull/8670). Removing the asmdef check section leaves a much smaller test, which only:

Creates a dummy asset with a specific name
Adds the global #define based on the dummy asset
Checks that the asset exists
Removes the global #define and dummy asset
Checks that the asset no longer exists.

This didn't seem like a super useful test after much of the existing functionality was removed (and the original failure is still happening, since code that counts on other scripts existing when the #define is present fail because the scripts don't exist in this case), so I instead chose to remove the test.
Changes

Fixes the 2019 validation pipeline

/azp run


Feature request: async or lazy-load plugins

Hi, first off, thanks for the great framework!
I've been profiling my zsh startup time and most of it is in plugin initialization. However, for many plugins, I don't really need the functionality immediately, it's fine if it's asynchronous or even lazy loaded, when I use a command. The specific plugin I'm thinking of is https://github.com/skywind3000/z.lua, which adds ~30ms to my shell startup, but there are others, too.

Use zsh defer

@rjcoelho do you mean zsh-defer zmodule some/module? When I tried this, it seems to interfere with installation of modules, like zim doesn't understand that they need to be installed. Also zimfw uninstall removes all modules prefixed with zsh-defer.

The .zimrc file is not loaded during the startup, so calling zmodule with zsh-defer will not defer the startup of the modules.

I mean git submodule include z.lua and zsh-defer eval "$(lua /path/to/z.lua --init posix)"


Cache result of initdb

On Ubuntu 14.04 with PostgreSQL 9.3 database initialization with initdb is the slowest part of testing.postgresql: it takes around 2.5 seconds to create data directory with default contents.
While it's possible to create PG data directory outside of testing.postgresql, cache it, copy for each test and pass to testing.postgresql.Postgresql with copy_data_from argument, it's a lot of work and requires to reimplementing of some of the testing.postgresql functionality (e.g. search of initdb utility).
I propose to implement caching of initdb result inside PostgreSQL and use it by default.
This can be done pretty straightforward and I can prepare PR for this issue if you think my approach is satisfactory:

Add dependency for library that provides API to work with user cache directory (e.g. appdirs). Cache directory will be used for caching initdb result. Cache should be verioned by initdb version (initdb -V) and by testing.postgresql version.

Add option to testing.postgresql.Postgresql to disable cache. e.g. cache=False.
In testing.postgresql.Postgresql if cache is enabled: check if cache for the current version of initdb+testing.postgresql exists, if no, create it and fill it with initdb; copy cached directory content to a temporary PG data directory.

Thank you for suggestion. I'm very interested in your idea.
Indeed, running initdb for every testcase is too waste.
It is polite but unwelcome behavior.
My short investigation: Following code accelerate test cases by 2.3 times
pgsql = None

def setUpModule(self):
    global pgsql
    pgsql = testing.postgresql.Postgresql(auto_start=0)
    pgsql.setup()
    testing.postgresql.DEFAULT_SETTINGS['copy_data_from'] = pgsql.base_dir + '/data'  # cache empty database

def tearDownModule(self):
    testing.postgresql.DEFAULT_SETTINGS['copy_data_from'] = None  # reset
    pgsql.stop()

Result:
(before)$ nosetests
....................
----------------------------------------------------------------------
Ran 20 tests in 59.478s

OK

(after)$ nosetests
....................
----------------------------------------------------------------------
Ran 20 tests in 26.017s

OK

I will add this feature in next version.
Let me think about the API to do that.
If you have any idea of API, please let me know.

About API: I suggest to add following keyword arguments to testing.postgresql.Postgresql:

use_initdb_cache=None.

initdb_cache_dir=None.

If use_initdb_cache is specified and copy_data_from is not specified, then enable caching of initdb result.
If initdb_cache_dir is specified, then use it as cache location. Otherwise use something like appdirs.user_cache_dir('testing.postgresql', 'Takeshi KOMIYA') result as cache directory.

In response to your proposal, I'll add the factory class named testing.postgresql.PostgresqlFactory.
For example:
import unittest
import testing.postgresql

# Generate Postgresql class which caches the generated database
Postgresql = testing.postgresql.PostgresqlFactory(use_initdb_cache=True)

def tearDownModule(self):
    # clear cached database at end of tests
    Postgresql.clear_cache()

class MyTestCase(unittest.TestCase):
    def setUp(self):
        # Use the generated Postgresql class instead of testing.postgresql.Postgresql
        self.postgresql = Postgresql()

    def tearDown(self):
        self.postgresql.stop()

It makes testcases more efficient.
The factory class supports all options of testing.postgresql.Postgresql.
So, you can use copy_data_from option:
Postgresql = testing.postgresql.PostgresqlFactory(copy_data_from='/path/to/your/appdir`)
with Postgresql() as pgsql:
    # ...

Probably, it is not instead of initdb_cache_dir which you require.
but I do not want to add any dependencies or rules.
Is this helps you?

Yes, your solution will be useful, but can it be used without Postgresql.clear_cache()?
If cache will be cleared on each test suite run, tests still will run on few seconds slower then they may run (if initdb is cached "permanently" for specific version of testing.postgresql/PostgreSQL).

Yes, your solution will be useful, but can it be used without Postgresql.clear_cache()?

The answer is yes and no.
If you use use_initdb_cache=True option, clear_cache() is required (or automatically cleared by GC).
On the other hand, you do not have to call it if you use other options. Because any caches are not generated in that case.
I think the cache generated by a library should be removed by the library. It's basic principle.
so I do not want to keep initdb cache till after the script ended.
If you want to keep the cache beyond the scripts, you should generate cache database manually, and then, use copy_data_from option on test script.
Fortunately, PostgresqlFactory takes copy_data_from option and it is bypassed to each testing.postgresql.Postgresql object.
It might be helpful you on refactoring testcases.
Thanks,

Finally, I renamed the options to cache_initialized_db and on_initialized.
Because the name of parameter should be used to other testing.* packages to keep compatibility. I think initdb is a part of PostgreSQL.
The feature will released soon.
Thank you for great suggestion. :-)


Is com.wixpress.dst.greyhound.testkit published somewhere?

Hi, I was just following the tutorial, where at the end this line is mentioned
import com.wixpress.dst.greyhound.testkit._

But it looks like this is not published in maven.
What is the recommended way to access this library?

Hi @jpablo,
I apologise for the late reply.
I added greyhound-testkit jar to our publishing flow to Maven Central.
Here is the link to it on Sonatype.
Please allow a few hours for it to be copied to all mirrors, including the one you are using.
We would highly appreciate any feedback you may have on the testkit :)


The system cannot move files to a different disk drive.。

Cannot rename file to 'E:\projects\mobile\pubspec.yaml', path = 'C:\Users\admin\AppData\Local\Temp\e9d1e8f8-fb7c-48ac-ab3d-cd6a66781362.tmp' (OS Error: The system cannot move files to a different disk drive.

You are going to have to provide more information than that.
On Tue, 26 Dec 2023, 8:16 pm laterdayi, @.***> wrote:

Cannot rename file to 'E:\projects\kuanneng-mobile\pubspec.yaml', path =
'C:\Users\admin\AppData\Local\Temp\e9d1e8f8-fb7c-48ac-ab3d-cd6a66781362.tmp'
(OS Error: The system cannot move files to a different disk drive.
—
Reply to this email directly, view it on GitHub
https://github.com/onepub-dev/settings_yaml/issues/3, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAG32OBBAOLXE2QXPGAQSWDYLKIXBAVCNFSM6AAAAABBDCT2UCVHI2DSMVQWIX3LMV43ASLTON2WKOZSGA2TMMRRGEZTCMY
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

  final settingsYaml = SettingsYaml.load(pathToSettings: '$projectPath\\pubspec.yaml');

  String appName = settingsYaml['appName'];
    stdout.write('重命名 $appName yaml 版本号\n');
    String oldVersion = settingsYaml['version'];
    String newVersion ='2.2.0';
    settingsYaml['version'] = newVersion;
    print(settingsYaml.valueMap);
    await settingsYaml.save();

My project is on disk E

So save is doing a rename which doesn't work across drives.
The exception needs to be caught in the save method and then a copy/deleted
performed.
The fastest way for a fix at the moment would be if you raised a pr.
On Tue, 26 Dec 2023, 8:42 pm laterdayi, @.***> wrote:

final settingsYaml = SettingsYaml.load(pathToSettings: '$projectPath\pubspec.yaml');
String appName = settingsYaml['appName'];
stdout.write('重命名 $appName yaml 版本号\n');
String oldVersion = settingsYaml['version'];
String newVersion ='2.2.0';
settingsYaml['version'] = newVersion;
print(settingsYaml.valueMap);
await settingsYaml.save();
My project is on disk E
—
Reply to this email directly, view it on GitHub
https://github.com/onepub-dev/settings_yaml/issues/3#issuecomment-1869411817,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAG32ODJOXBOGIVVEFGCSTLYLKLXXAVCNFSM6AAAAABBDCT2UCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNRZGQYTCOBRG4
.
 I am not familiar with dart, may I ask when it can be repaired

No the save method will need to be changed.
I'm unlikely to have time in the next few weeks, hence the suggestion of
raising a PR.
If you want to have a go fixing it, it should be a fairly easy fix.
On Tue, 26 Dec 2023, 9:22 pm laterdayi, @.***> wrote:

Do I need to actively delete and save manually? I am not familiar with
dart, may I ask when it can be repaired
—
Reply to this email directly, view it on GitHub
https://github.com/onepub-dev/settings_yaml/issues/3#issuecomment-1869438007,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAG32OAO7BELIG4SXDGQND3YLKQQHAVCNFSM6AAAAABBDCT2UCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNRZGQZTQMBQG4
.
You are receiving this because you commented.Message ID:
@.***>

Just add a try catch to save ？ If it's easy, I'll try PR

Yes and in the catch block perform a copy and delete if the file that was
being renamed/moved.
On Tue, 26 Dec 2023, 9:29 pm laterdayi, @.***> wrote:

Just add a try catch to save ？ If it's easy, I'll try PR
—
Reply to this email directly, view it on GitHub
https://github.com/onepub-dev/settings_yaml/issues/3#issuecomment-1869441600,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAG32OET6OG33ZDJORHZTEDYLKRGXAVCNFSM6AAAAABBDCT2UCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNRZGQ2DCNRQGA
.
You are receiving this because you commented.Message ID:
@.***>

oops, this was fixed in 8.1.0 and I failed to update this issue and I've been working on the wrong branch.
So apologies for wasting your time.
I've now merged my work into master. If you upgraded to 8.1.0  you should have the fix.
sorry!!!!!


Support for spread operator for string

Given the following code:
const str: string = 'abcd';
const charArr = [...str];

flow check should pass successfully (spread operator applied on a string - part of ES6)
Instead it generates an incompatible type warning:
20: const charArr = [...str];
                         ^^^ string. This type is incompatible with spread operand

$ > flow version
Flow, a static type checker for JavaScript, version 0.33.0
$ >

See https://github.com/facebook/flow/issues/1667


Overpass CDN font-weight issues

Our Overpass CDN link doesn't include the various font weights we offer in core, and the font weights don't match the font file in the Google Fonts CDN compared to the fonts we ship in core.
For example, in core, font-weight: 400 uses "overpass-light", and on the Google Fonts CDN, the "overpass-light" variant is font-weight: 300.

Closing as we're soon going to move away from overpass.


[Setup] There should be a way to discover components that can be installed

is az --version a possible way?

A command like az component search was suggested also.

@derekbekoe : Perhaps something like az component list-available or a parameter to az component list
@jasonrshaver to comment as well

Provisionally marked this for Sprint 7 but it's a short sprint so may fall into the next sprint.


[BUG] - Input component issue when using server actions

NextUI Version
2.1.21
Describe the bug
When the validation is done from the server side and if there is an error, it will be displayed in the input component.
After displaying the error, the input component will not allow resubmission because props isInvalid is true.
const [state, formAction] = useFormState(checkIfExistsAction, initialState);

...

<Input
  label="Email"
  name="email"
  isInvalid={!!state?.message?.email?.join()}
  errorMessage={state?.message?.email?.join()}
/>

...

Your Example Website or App
No response
Steps to Reproduce the Bug or Issue

Server-side validation and error handling
Input With Error Message

Expected behavior
As a user, I expected an error message to be displayed every time I submit the form if the fields are not approved, while submitting the form is only allowed once and an error is displayed and it is not possible to submit again.
Screenshots or Videos
No response
Operating System Version
Windows
Browser
Chrome

duplicate - https://github.com/nextui-org/nextui/issues/2844

Behind the scene it's because the state isn't updated due to the native browser validation behaviour if you use an uncontrolled input. or you may share the minimal reproducible environment so that we could have one more case to test on.

Here is a minimal env

@wingkwong
Thank you very much bro
My problem is solved
nextui remove input

npm uninstall -g nextui-cli

npx shadcn-ui@latest init

npx shadcn-ui@latest add input


feat: add stream filters

What does this pull request do? Explain your changes. (required)

Specific updates (required)

How did you test each of these updates (required)

Does this pull request close any open issues?

Screenshots (optional)

Checklist

[ ] I have read the CONTRIBUTING document.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have added tests to cover my changes.

Hey @suhailkakar - can we fix the build error here so we can inspect the preview url? Thanks


Modules and script hard code /usr/bin/python in hashbang

A number of modules, and scripts in the test suite start with
#!/usr/bin/python

In general it is better to use
#!/usr/bin/env python

because that allows execution inside a virtualenv, or when python is installed elsewhere, e.g. /usr/loca/bin/python.
There may be cases in which we really do want to hard code the path, e.g.

testing detection/selection of ansible_python_interpreter (correct name?)
mechanics of Ansible module transfer, or recognition .

If so those should be explictly noted in a comment.

I think there's a typo above, both cases are #!/usr/bin/env python which I think is just the "right" one?

I think it a typo in the description with the correct title.
36```

Sorry for the confusion, I've amended the description.

#849

#929


[x] Code passes all tests
[x] Unit tests provided for these changes
[x] Documentation and docstrings added for these changes

Changes

Update CONTRIBUTING.md to better describe how to fork and clone the repo and then push a branch to open a PR.
Rename pull_request_templated.md to pull_request_template.md

Fixes #9

Codecov Report

Merging #10 (9fd4e53) into main (dfc92ea) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##              main       #10   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           33        33
  Lines          200       200
=========================================
  Hits           200       200

Continue to review full report at Codecov.

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

Thank you!


Peek in Hebrew is showing the Text Flipped

Microsoft PowerToys version
0.70.1
Installation method
PowerToys auto-update
Running as admin
Yes
Area(s) with issue?
Peek
Steps to reproduce
Have Windows 10 on hebrew, and use the Peek feature on any file
✔ Expected Behavior
Im expecting the text in the file that i "Peek" at to not be flipped
❌ Actual Behavior
The text in any file i look at using the "Peek" feature is flipped
adding an image as to show the problem:

Other Software
No response

@eitangithub, I'm not an expert in RTL languages, the ask here is primarily to have the actual text file to be left align, not right align, correct?  /needinfo

Yes, it needs to show the text as other languages show it, right now it shows the test as flipped and on the right of the screen
when the desired outcome is that it should show the text normally and be LTR

I'm confused. Isn't that what right-to-left is about? (asking as somebody who never deals with RTL languages)

RTL means the you start writing from R to Left (quite literally) is writing the letters from right to left
for example, English is LTR (Left to right) which means you start reading and writing from the left most letter to the right most letter.
Hebrew on the other hand is RTL, which means you start reading and writing from the right side to the left side
the problem here is that the text isnt in RTL nor in LTR, its basically just mirror flipped, which isnt the same as converting from LTR to RTL.
and there is no need to convert from LTR to RTL since English is LTR and not RTL
in conclusion what im trying to say is that its supposed to look exactly like when you use the app with LTR language

We are actively looking into this, there are edge cases we need to look into

Let me know if there's anything i can help with

A fix has been merged here already: https://github.com/microsoft/PowerToys/pull/27258

Thanks for the mention, is it going to be included in the next release?

This issue has been worked on during the 0.72 development cycle. Please update your PowerToys installation to the latest.
https://github.com/microsoft/PowerToys/releases
Thank you!


Website: Magnetic Module Whitepaper

As a potential MagDeck customer on the website, I would like to be able to read the latest MagDeck whitepaper, so that I can get detailed specs and performance characteristics before making a purchasing decisions.
Acceptance Criteria

[ ] User able to download MagDeck whitepaper from 'modules' page on Opentrons website.

Design

'Read Whitepaper' button below 'voltage' on the right side (matching tempdeck whitepaper)

Resources
Whitepaper:
Opentrons Magnetic Module White Paper.pdf
https://docs.google.com/document/d/1GbsSuUD_RzneZea2n_AO11nDeDQRWc8BlBdc2LXhmns/edit#heading=h.j1vxn55sxx1p

Closed by Opentrons/opentrons-dot-com#99


--no-binary in conjunction with a custom uv index url results in a failure to build.

When I attempt to use --no-binary in conjunction  with a custom uv index url via the UV_INDEX_URL environment variable, then uv still tries to grab the whl files but then errors because it can't use them. The .tar.gz build files are available, as that was my first suspission. The normal pip install --no-binary works with this setup, also.
I'm using uv on a docker container - Ubuntu 20.04
We're using the system python - Python 3.8.10
uv version:  0.2.32
The command I ran:
uv pip -vvv install --no-cache --no-binary :all: -r requirements.txt

The output:
 uv_requirements::specification::from_source source=requirements.txt
    0.008109s DEBUG uv_python::discovery Searching for Python interpreter in system path
    0.056792s DEBUG uv_python::discovery Found `cpython-3.8.10-linux-x86_64-gnu` at `/tmp/.venv/bin/python3` (virtual environment)
    0.056859s DEBUG uv::commands::pip::install Using Python 3.8.10 environment at .venv/bin/python3
    0.056901s DEBUG uv_fs Acquired lock for `.venv`
    0.056958s DEBUG uv::commands::pip::install At least one requirement is not satisfied: paho-mqtt==1.3.1
 uv_client::linehaul::linehaul
    0.057713s DEBUG uv_client::base_client Using request timeout of 30s
 uv_resolver::flat_index::from_entries
 uv_resolver::resolver::solve
    0.060195s   0ms DEBUG uv_resolver::resolver Solving with installed Python version: 3.8.10
   uv_resolver::resolver::choose_version package=root
   uv_resolver::resolver::get_dependencies_forking package=root, version=0a0.dev0
     uv_resolver::resolver::get_dependencies package=root, version=0a0.dev0
    0.060320s   0ms DEBUG uv_resolver::resolver Adding direct dependency: oic==1.7.0
    0.060357s   0ms DEBUG uv_resolver::resolver Adding direct dependency: paho-mqtt==1.3.1
   uv_resolver::resolver::choose_version package=oic
 uv_resolver::resolver::process_request request=Versions oic
   uv_client::registry_client::simple_api package=oic
     uv_client::cached_client::get_cacheable
       uv_client::cached_client::read_and_parse_cache file=/tmp/.tmpKji4il/simple-v10/index/ab2a7f31a81931c8/oic.rkyv
 uv_resolver::resolver::process_request request=Versions paho-mqtt
   uv_client::registry_client::simple_api package=paho-mqtt
     uv_client::cached_client::get_cacheable
       uv_client::cached_client::read_and_parse_cache file=/tmp/.tmpKji4il/simple-v10/index/ab2a7f31a81931c8/paho-mqtt.rkyv
 uv_client::cached_client::from_path_sync path="/tmp/.tmpKji4il/simple-v10/index/ab2a7f31a81931c8/oic.rkyv"
 uv_client::cached_client::from_path_sync path="/tmp/.tmpKji4il/simple-v10/index/ab2a7f31a81931c8/paho-mqtt.rkyv"
 uv_resolver::resolver::process_request request=Prefetch paho-mqtt ==1.3.1
 uv_resolver::resolver::process_request request=Prefetch oic ==1.7.0
        0.061368s   0ms DEBUG uv_client::cached_client No cache entry for: https://pkgs.dev.azure.com/acme/project/_packaging/acme_feed/pypi/simple/oic/
       uv_client::cached_client::fresh_request url="https://pkgs.dev.azure.com/acme/project/_packaging/acme_feed/pypi/simple/oic/"
        0.061507s   0ms DEBUG uv_client::cached_client No cache entry for: https://pkgs.dev.azure.com/acme/project/_packaging/acme_feed/pypi/simple/paho-mqtt/
       uv_client::cached_client::fresh_request url="https://pkgs.dev.azure.com/acme/project/_packaging/acme_feed/pypi/simple/paho-mqtt/"
       uv_client::cached_client::new_cache file=/tmp/.tmpKji4il/simple-v10/index/ab2a7f31a81931c8/oic.rkyv
       uv_client::registry_client::parse_simple_api package=oic
         uv_client::html::parse url=https://pkgs.dev.azure.com/acme/project/_packaging/acme_feed/pypi/simple/oic/
   uv_resolver::version_map::from_metadata
   uv_distribution::distribution_database::get_or_build_wheel_metadata dist=oic==1.7.0
     uv_client::registry_client::wheel_metadata built_dist=oic==1.7.0
      0.381445s 321ms DEBUG uv_resolver::resolver Searching for a compatible version of oic (==1.7.0)
       uv_client::cached_client::get_serde
      0.381527s 321ms DEBUG uv_resolver::resolver Selecting: oic==1.7.0 [compatible] (oic-1.7.0.tar.gz)
         uv_client::cached_client::get_cacheable
           uv_client::cached_client::read_and_parse_cache file=/tmp/.tmpKji4il/wheels-v1/index/ab2a7f31a81931c8/oic/oic-1.7.0-py3-none-any.msgpack
 uv_client::cached_client::from_path_sync path="/tmp/.tmpKji4il/wheels-v1/index/ab2a7f31a81931c8/oic/oic-1.7.0-py3-none-any.msgpack"
   uv_resolver::resolver::get_dependencies_forking package=oic, version=1.7.0
     uv_resolver::resolver::get_dependencies package=oic, version=1.7.0
            0.381986s   0ms DEBUG uv_client::cached_client No cache entry for: https://pkgs.dev.azure.com/acme/<key>/_packaging/<pkg_key>/pypi/download/oic/1.7/oic-1.7.0-py3-none-any.whl#sha256=b74bd06c7de1ab4f8e798f714062e6a68f68ad9cdbed1f1c30a7fb887602f321
           uv_client::cached_client::fresh_request url="https://pkgs.dev.azure.com/acme/<key>/_packaging/<pkg_key>/pypi/download/oic/1.7/oic-1.7.0-py3-none-any.whl#sha256=b74bd06c7de1ab4f8e798f714062e6a68f68ad9cdbed1f1c30a7fb887602f321"
      0.445964s  64ms WARN uv_distribution::distribution_database Range requests unsupported when fetching metadata for oic==1.7.0; downloading wheel directly (HTTP status client error (405 Method Not Allowed) for url (https://pkgs.dev.azure.com/acme/<key>/_packaging/<pkg_key>/pypi/download/oic/1.7/oic-1.7.0-py3-none-any.whl#sha256=b74bd06c7de1ab4f8e798f714062e6a68f68ad9cdbed1f1c30a7fb887602f321))
error: Failed to download `oic==1.7.0`
  Caused by: Using pre-built wheels is disabled

Thanks for the report. This is weird... I suspect this is a regression? I'm not sure why we select the source distribution then try to download the wheel.

Does this error occur if you do uv cache clean oic first? We do allow reading metadata from cached wheels with --no-binary — maybe we're trying to refresh the cache?

I can take a look.

It's possible that in --no-binary mode, we still use wheels to fetch metadata (even though we don't download and install them). My guess is that's what's happening here, and we're then hitting the fallback (downloading the wheel) since your registry doesn't support range requests.

@harmstyler -- Just curious, what's the motivation for using --no-binary? Trying to make a decision on how to approach this change, just trying to learn more about the use-cases.

@harmstyler -- Just curious, what's the motivation for using --no-binary? Trying to make a decision on how to approach this change, just trying to learn more about the use-cases.

Our company wants to build the whl files for security reasons. We used to use the no-manylinux package in the past. That package outlines the why pretty well https://pypi.org/project/no-manylinux/


net: add option to expose ports on hosts

Ports that were defined in app manifest can be
exposed via --port=name:host-port option on cmd line.
For example, given app manifest with ports entry:
{
"name": "http",
"port": 80,
"protocol": "tcp"
}
rkt run --private-net --port=http:8888 myapp.aci
will forward traffic from host's tcp port 8888 to
container's port 80.
Fixes #624

We've talked about it before, but we need to think about how to unravel this forwarding in rkt gc if the rkt run process spontaneously combusts.

gc hooks are on the todo list.

Forgot about #616, will add a note there. Unless you're talking about some other todo list.

needs a rebase I guess?

@eyakubovich ping? still not mergable

Actually I rebased and made it mergable. This must be some new commit.

@eyakubovich fire at will.


QuickFuck - automatic, no confirmation, multi-typo-fix, togglable

Hi there, not the first to ask for this,
But couldn't find an answer in the readme or issues
I'd like to set
'''
$ fuck -r --on  --nc
TheFuck is set to Automatic!

As I understand, it just so if there's more than one typo, it will correct all of them , and should run only if it finds a match and the error was recognizable and common. It's not like it should trigger for any random crash of a program, only when it's a syntax error when trying to run something...
If it's good than I want to trust it.
(with toggle options), and if I trust it, I want it to just run, without me giving any fucks.
Thanks a lot and all the best !


Group Nodes

Goal is to replicate this behavior from Blender
https://github.com/clarkmcc/ngraph/assets/6639685/d51c1da6-8aaa-4955-ab68-8ef7f70495e7
Here's how group nodes should work:

I should be able to select any number of nodes in my graph and group them.
If any of the nodes in the group are connected to nodes outside the group, group inputs and outputs should automatically be created, and edges should be redirected through the node group.
This will take me to the group node graph where the rest of the unselected nodes will disappear, and I should only see the nodes in my group.
I should also see two additional nodes, an inputs node, and an outputs node. The inputs node has one output handle, and the outputs node has one input handle.
I can connect the input node's output handle to the input handle of one of the nodes in my graph. This connection denotes that the group as a whole should have an input of the same type and configuration as the input handle of the node it was connected to. I should be able to do the same thing for the node group's output.
I should be able to delete the node group, and any connections between nodes outside the group, through the group inputs and outputs, and into the group's nodes should be re-connected once the group is disbanded.
I should be able to copy a group and paste it to create a new identical group

I have a somewhat different use case where groups would be useful.
I have a task system that is represented with a DAG. Some of the nodes have sub tasks, so it would be great to optionally show them in the UI. In this particular case, the parent/group task sets the inputs and outputs of the sub-tasks, and are not editable. It is just there so what is going on. But it would be nice from a UI perspective to use the same visuals since the subtasks could be tasks that the user works with directly as well.

Thanks for the feedback. Would sub flows be a better solution for you? They're not collapsable, but they should be supported out of the box today, and they don't have the issue of whether inputs and outputs should be editable.

Hmmm... maybe. The ones inside I don't want movable or editable (neither the node or the edges). I'll play with it and see.

I've tried but I get some weird behaviors. I'm afraid that I might be doing activating something of your own group nodes config code.

Here is where I want to get to:

Any ideas would be appreciated. Thanks!

Maybe I am over-thinking it, and I could just put an icon there, and if the user double clicks it, it opens a dialog with the internal node structure...

Okay, so to make sure I'm understanding correctly, you're looking for the group nodes and the child nodes to all be visible (maybe child nodes are collapsable it looks like in your diagram), but you're looking for group inputs and outputs to be owned by the group node, is that correct? In this case, ReactFlow's subflows won't work (at least out of the box).
So here's actually how I'd first experiment to accomplish what you're doing. I'd make the group node a custom node, and in the body of the component, I would actually create a nested NodeGraphEditor component. The nodes and edges for this from come from group node's "node data". Now I'm not quite sure how well this would work or how well it would scale to lots of groups, but that would be my first stab at this problem. I think this approach would be much easier and cleaner than the Blender-style node groups that I'm trying to implement in #11.
I'm not sure how this approach would handle connecting group inputs, to child node inputs though. Can you clarify in your diagram how group you envision connecting the Serial Group Name > Input to the SubNodes inputs?

Yeah, I just have those there to signify that the outer node owns the inputs and outputs, not to have them editable or anything. In fact, the entire sub-graph will not be editable.
I don't think I'll have really large graph-subgraphs (I may laugh at myself later), so I think the recursive idea is probably the best way to get it started. I can always optimize later.

Oh, I should add I suppose, that the inside nodes might change depending on the what the inputs are. They are dynamically created and thus owned by the parent.

And since I am doing a pipeline of tasks (think GitHub Actions), the only real reason I want them visible is so a user can see what is happening when the task pipeline runs.

I've tried both methods today, and I feel like sub flows will be easier to manage. For both I disable a lot of things to make the sub tasks "read only".
I need to figure out the parent size... how to set it to be able to fit the children.

So I have re-thought what I might need, and I think the blender model will work. So... ignore everything I said above. :)
On this item:

If any of the nodes in the group are connected to nodes outside the group, group inputs and outputs should automatically be created, and edges should be redirected through the node group.

I have a couple of thoughts.

What if you are building a group in isolation? There won't be any existing input and output edges yet.
You could take all the unconnected inputs and make them inputs of the group, and all the unconnected outputs and make them outputs of the group.
When you talk about adding an input and output node for the group, they can be automatically setup as above. But the user should be able to remove some.
This implies some inputs and outputs are be optional. You Input Groups example, if a color is not connected, it can be set in the node itself. So that one is optional. But another might take a whole image as an input, and that is not optional or settable in node that wants it as an input.

Anyhow, thanks for listening to my other ideas above. I will just have different node layouts for when a task run is going vs when editing. I was thinking too hard on what to get one view to work for different purposes, and that just makes it complicated.
Thanks again!

You could take all the unconnected inputs and make them inputs of the group, and all the unconnected outputs and make them outputs of the group.

I think the problem with this approach is that it doesn't scale well with lots of child nodes, or child nodes with lots of inputs and outputs. Take a large node like this for example. What happens if you create a group with just this inside? I don't think duplicating all the inputs and outputs from the child node to the group nodes is the ideal approach. What if you group several of these large nodes? Do you create an input for every unconnected input, for every node?

Only if required.
Your example has directly settable parameters with default values.
I would not auto connect those inputs. I would let the user chose to if they wanted. But if one of the inputs required something (like an image to apply effects on), that image would auto connect as the node would be in a broken state without it.
In fact, a group with one element inside is a great way to hide all the settings. You can configure it with various values and “group” that to hide too many settings.

Ah, you don't have the idea of required. The closest you have is when inputType == null

Yeah, everything has a default. I'm not sure the use-case for a null inputType because if it's null, then there would be any validation about what can be connected to it and you can't provide any manual values. Even custom input types like the color picker used in the storybook allow you to set default values (they show their custom input components rather than just a connected handle.

There is validation though, right? That is what valueType is from what I understand, so a color will only connect to a color.

Oh yes, yes you are right, I got them mixed up. You always have to have a valueType, that value type can have a null input type like shown on the Value input in the screenshot, but this value type cannot be set anywhere now, even as the output of another node it is only a relationship expressed in the graph, but no explicit values can be passed around.

So back to the question of group inputs, I don't see inputType == null as a common use-case -- just for representing opaque value relationships. Creating inputs automatically for every one of these kinds of inputs I suppose is fine, but we'd be making an assumption about what the user wants connected in the group, and what the user wants to keep null. Not to mention, what if there are two duplicate nodes in the group, how do you disambiguate between the same node inputs and which of them should automatically be connected to the group input node? The following screen recording illustrates this idea of duplicate node inputs.
https://github.com/clarkmcc/ngraph/assets/6639685/16f9ead2-3130-4361-94a7-bd79aa35a4f7

I still think Input should have something called required where if there is no edge, then the node is non-functional. The auto-connect is a nice option if your nodes are all the kinds that have required inputs, but the UI could work a different way, say by not allowing the group to save if the required inputs of the nodes are not connected to the group input.

then the node is non-functional
What are you envisioning this would look/behave like?

not allowing the group to save if the required inputs of the nodes are not connected
When you say "save" are you referring to persisting the changes to the nodes and edges to state management?

I mean, not letting you exit the grouping UI you have in the video until errors are solved.
Your use case doesn't have these issues, which is nice. ;)
Say, you have some image editing nodes. You want to group three nodes that you use together to add a watermark:

InlineImage (this lets you upload an image and it is saved as part of the state of the node, outputs image)
Blur (inputs: image [required], mask [also type image, but not required], number [blur amount], output is image)
Text overlay (input: image, text, position, output: image -- this adds some text on top of an image)

User wants to group the three and call it AddBranding. The idea is that it takes an image as input, blurs a location in the image, and adds text on top of that blurred area. So the InlineImage gets an image upload that defines the location to mask for the blur. It gets connected to the ImageBlur mask input. The image blur output goes to the TextOverlay input image. The user types in the name of the brand and location (same as mask location).
Grouping those, the group input is an image and the output is an image (that has the text on top of the image where it is blurred to make it easy to read).
The ImageBlur node can't function without an input image. There is no default value for an image, and trying to blur undefined is not going to work.
If the user does not connect that Imageblur image input to the group input, nothing will work. I wouldn't want them to save that group until the error was cleared (by connected the imageblur image input to something)

Okay, I think I understand what you're suggesting.
This approach assumes that you fully flesh out your group node graphs all in one sitting, and I don't know that I agree with that approach. I'm not sure if you've used ComfyUI's node graph editor before but on the AI image generation side, I may want to go back and forth between the node group and the rest of the graph as I build my graph. I think the restriction that the graph must always be in a "valid" state during construction could be a bad UX for certain use-cases. I'm also not sure how this "validation" requirement would be applied to the root graph, setting aside node groups entirely.
It reminds me of Go's unused variable requirement (I'm a big Go guy). You're building out some stuff, you comment out a few lines for testing, now your program won't compile because there's unused variables, so then you have to do work to get around the system just because you're running some tests, or are iteratively working towards the end goal.

Typescript linters have that option too! I don't use them.
Valid points on validation. Maybe just giving feedback that it is not valid is enough.
I am purposefully not looking at other versions of this idea (there are many), so I can make something unique. It may turn out to be false, and I just redo what others do, but we will see!

With groups... there are two ways of looking at it. One is that it is all one big graph, and you hide nodes inside the group and show them when you edit. This requires some transforms in the UI space. The other way is that you have a "compound" node that has its own  sub-graph, and the outside graph doesn't care. This does require some transformation when you want to process the full graph, though not too hard.
Personally, I am going with the second option. This makes it easy to alter the sub-graph without affecting much else. And fewer nodes to process in the UI.

BTW: my "sub-task" node group which is the same thing, i have kind working, but i end up not liking the UI.

Colors are crazy.

Option 2 is definitely simpler to implement, though I have questions about it's usability. For example, how does the UI indicate that an input from the group node is piped through to the child node? If the group node just exposes all unconnected inputs from the child nodes, then I think that addresses that problem, but I don't know that that approach is scalable for the Blender-use case.

Yeah, I am not thrilled with the UI. Also, notice that there is a node around the node in the Subtasks area. There is a handle on the left and a handle on the right. At the moment there is only one handle and they are connected. My ideal, is to create an input and output node instead, and connect them.
This is ugly but should get across what is actually going on:

Actually, it is more like this (which is what you are thinking:

But I also need an array splitter:

For the first one, I could instead use whatever you are building. I'll just be pre-configuring them for users.
The second one though, is what I need to work on: the array splitter. Has a single node (which may be a compound/group node) and duplicates based on how many items are in the array. Not sure if that is something you are thinking about, but from a UI perspective it is also a "group".

Yeah I think we're on the same page then on the goal for node groups. I actually have a POC where the node inputs and outputs are being created, the next tricky part was dynamically generating the inputs -- so that's kind of the next big blocker  on node groups.
And that is some what related to your second point about array splitters. To make sure I understand, the node would accept an array as input, then allow for any number of output handles to be connected, each taking an index of the array? Is that correct?
If so, I think at a high-level it would just be a matter of generating a new output handle if all current output handles are connected. We would need some APIs built into the library that allow for dynamically changing the inputs and outputs (the node's config). This is where I think there's some crossover between the node group project and this one -- dynamic handles.

Yeah I think we're on the same page then on the goal for node groups. I actually have a POC where the node inputs and outputs are being created, the next tricky part was dynamically generating the inputs -- so that's kind of the next big blocker on node groups.

You mean your POC input and output nodes are being created? Hard to know which input is which. :p
I saw the "Inheriting Output Field" story, but it seemed to only work for the String and not the Number so far.

And that is some what related to your second point about array splitters. To make sure I understand, the node would accept an array as input, then allow for any number of output handles to be connected, each taking an index of the array? Is that correct?

There are actually two different ways, but useful, of doing something like this.

If so, I think at a high-level it would just be a matter of generating a new output handle if all current output handles are connected. We would need some APIs built into the library that allow for dynamically changing the inputs and outputs (the node's config). This is where I think there's some crossover between the node group project and this one -- dynamic handles.

Ah yes. For this use case I can think of an example:
An image generation node with a prompt text and a single model. The use could connect multiple things to it and it can create an additional variation. You could have a plus sign button to add handles to signify how many you want.
There is another node type: the ArrayForEach node. Takes an array for input and an array for output, and a node that it will duplicate for each item in the array (and that node could be a group node). Sorta illustrated in the last picture above.
Now there are two ways to look at the UI for this: just show the node/s that will be duplicated, or based on the data, show the actual duplicated nodes. So, if I selected three models for text summarization, it would show three copies of the text summarization and the input and output nodes as the "group".
If I create two very different node views: one as the editor (ngraph) and another as the runner (turbo?), then the editor should be simpler. But there is something nice about immediate reactive results. Though immediate is not exactly true these days with gen-ai, as the stuff is expensive and/or slow.


[FEEDBACK]: "Admin | Sync Template v3 (Sync Flow Errors)" flow : no more email notifications

Describe the bug
In the "Admin | Sync Template v3 (Sync Flow Errors)" flow :
Before an email (with Outlook 365 connector) was sent when an error has occured in a flow.
Now, it is an email notification which is sent using the "Notifications" connector.
Our service account used for the Starter Kit is a licensed administrator account that cannot receive mail from outside.
Notification emails are sent by "Microsoft Flow" which is an external account.
Therefore, we no longer receive notification emails if an error has occured in a flow.
Why did you change the notification system and wouldn't it be possible to keep the old method of notifications (with the outlook connector) ?
Component (please tell us which flow or app you are experiencing issues with):

Solution Center of Excellence - Core Components
Version 1.98
Flow Admin | Sync Template v3 (Sync Flow Errors)

Hello,
thanks for this feedback! We had an increasing amount of customers who do not use Outlook and wanted to use the CoE Starter Kit so we tried to come up with an approach using Notifications that would work for those customers as well - we thought Notifications would work for most customers, but thank you for sharing the feedback about your use case in which case it doesn't work. We'll go back to the drawing board on this now. We might have to introduce to separate flows - one using Outlook and one using Notifications where the customer can pick which one to use.
In the meantime, you can edit the flow and replace the Notification action with the Send an Email Outlook action again.
Thank you for letting us know this feedback,
Manuela

Thank you for your answer and I had planned to override the notification action

Great, thank you for confirming! We'll look further into how to make this work for all customers with the next release which should come out beginning of April!

This is local fixed for April release.

Fixed with the current release, shipped today. Thank you for using the CoE!


URI for json and image is generating extra slashes

Hi team, first and foremost thank you for your help with this!  When looking at the json metadata, I noticed the image URI has extra slashes and causes the link to break.
For example: "image":http://app-dada.ondigitalocean.app/asset/1.png
I would love to tip you ETH if you can help resolve this ASAP.  Thank you!

oh wait, interesting, I removed the \ / \ / and corrected it above.  Does that mean techically it should work after I reveal?

looks like this might have been answered in Few questions regarding script #23
SORRY!

looks like this might have been answered in Few questions regarding script #23
SORRY!

Don't worry, glad you found the answer. Feel free to let me know if you have any questions. 😉

http://third-planet-aliens-sp-emtpm.ondigitalocean.app/asset/33.png


Update App: Thingspeak

Description

Fix readme image links
Setup public data channel on thingspeak to enhance 🪄 app preview as mentioned in the original PR

Copilot

🤖 Generated by Copilot at 7f92ea0
Summary
:wastebasket::bug::sparkles:

Fixed a bug and improved the Thingspeak app by changing the default settings and removing an unnecessary image. Updated the Thingspeak app's README.md file to follow the Markdown convention.

Sing, O Muse, of the skillful coder who refined the app
That plots the data from the cloud of Thingspeak, the source of wisdom.
He removed the image of the flashing gif, unfitting and distracting,
And moved the title of the README.md to the head, as is the custom.

Walkthrough

Add default value of channel_id to fix error in thingspeak.star (link)
Change default value of plot_view to True for better user experience in thingspeak.star (link)
Remove irrelevant image and move title to top in README.md (link)

I have read the CLA Document and I hereby sign the CLA

Hey @BennettTheTiger! Thanks so much for the PR! It looks like you need two things to get this to pass:

pixlet format apps/thingspeak/thingspeak.star should fix your build
You will need to ensure your email address is properly configured for git on your computer and ensure that email address is associated with your GitHub account. You may also need to update the author on your commits, see this Stack Overflow: https://stackoverflow.com/questions/750172/how-do-i-change-the-author-and-committer-name-email-for-multiple-commits

Moved to https://github.com/tidbyt/community/pull/1641, having a hard time resolving commit author...


Use geometry_msgs types instead of custom types

Since we depend on and use geometry_msgs (via tf2) anyways, this change eliminates unnecessary conversions.
This should also help simplify changes in #422

Linux
Linux-aarch64
macOS
Windows


Static typing: missing @overload to ensure return type is a str when default_value is set

Static type checker used
pyright/pylance
AWS Lambda function runtime
3.12
Powertools for AWS Lambda (Python) version
latest
Static type checker info
Expression of type "str | None" cannot be assigned to declared type "str"
Like in #3839 I found some more places for missing overloads.
Code snippet
header_value: str = event.get_header_value("name", "")

Possible Solution
No response

Looking at this now

Awesome, a lot to review here, but thank you already for opening this!


Does this work with Kubernetes?

Hello, having some issues getting this up and running on a K8s cluster. I currently have the plain linuxserver/wireguard image working, I've had to add the following commands to the post up and down events:
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eno1 -j MASQUERADE; iptables -t nat -A POSTROUTING -o enp3s0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eno1 -j MASQUERADE; iptables -t nat -D POSTROUTING -o enp3s0 -j MASQUERADE

When running ifconfig inside the linuxserver/wireguard container, I can see various network interfaces:
cni0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
        inet XX.XX.XX.XX  netmask <IP_ADDRESS>  broadcast XX.XX.XX.XX
        inet6 fe80::XXXX:XXXX:XXXX:XXXX  prefixlen 64  scopeid 0x20<link>
        ether 76:51:a7:1a:e9:fa  txqueuelen 1000  (Ethernet)
        RX packets 716109126  bytes<PHONE_NUMBER>117 (1.4 TB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 931484216  bytes<PHONE_NUMBER>574 (1.1 TB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet <IP_ADDRESS>  netmask <IP_ADDRESS>  broadcast <IP_ADDRESS>
        ether 02:42:5b:be:7c:5f  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet XX.XX.XX.XX  netmask <IP_ADDRESS>  broadcast XX.XX.XX.XX
        inet6 fe80::XXXX:XXXX:XXXX:XXXX  prefixlen 64  scopeid 0x20<link>
        ether 9c:8e:99:de:XX:XX  txqueuelen 1000  (Ethernet)
        RX packets<PHONE_NUMBER>  bytes<PHONE_NUMBER>561 (1.2 TB)
        RX errors 0  dropped 8186  overruns 0  frame 0
        TX packets<PHONE_NUMBER>  bytes<PHONE_NUMBER>345 (1.5 TB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 20  memory 0xfe500000-fe520000

flannel.1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
        inet 10.XXX.4.0  netmask <IP_ADDRESS>  broadcast 10.XXX.4.0
        inet6 fe80::d446:a0ff:fecb:7ea6  prefixlen 64  scopeid 0x20<link>
        ether d6:46:a0:cb:7e:a6  txqueuelen 0  (Ethernet)
        RX packets 481994413  bytes<PHONE_NUMBER>55 (256.6 GB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 400905273  bytes<PHONE_NUMBER>997 (1.2 TB)
        TX errors 0  dropped 2545 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet <IP_ADDRESS>  netmask <IP_ADDRESS>
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 160553  bytes 11459221 (11.4 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 160553  bytes 11459221 (11.4 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

veth15c5f724: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
        inet6 fe80::a859:c2ff:fe17:3f26  prefixlen 64  scopeid 0x20<link>
        ether aa:59:c2:17:3f:26  txqueuelen 0  (Ethernet)
        RX packets 7142683  bytes 703168943 (703.1 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7505770  bytes 750273775 (750.2 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

veth260ff743: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
        inet6 fe80::349a:2bff:feac:dd66  prefixlen 64  scopeid 0x20<link>
        ether 36:9a:2b:ac:dd:66  txqueuelen 0  (Ethernet)
        RX packets 6476739  bytes<PHONE_NUMBER> (2.1 GB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5085700  bytes<PHONE_NUMBER> (1.6 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

... and many more veths

But when I run ifconfig inside the wireguard-ui container, I just get:
eth0      Link encap:Ethernet  HWaddr 1E:86:43:XX:XX:XX
          inet addr:10.XXX.1.25  Bcast:<IP_ADDRESS>  Mask:<IP_ADDRESS>
          UP BROADCAST RUNNING MULTICAST  MTU:1450  Metric:1
          RX packets:5293 errors:0 dropped:0 overruns:0 frame:0
          TX packets:354 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:338981 (331.0 KiB)  TX bytes:2405696 (2.2 MiB)

lo        Link encap:Local Loopback
          inet addr:<IP_ADDRESS>  Mask:<IP_ADDRESS>
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Both the deployment configurations are similar and both have:
        securityContext:
          privileged: true
          capabilities:
            add:
              - NET_ADMIN
              - SYS_MODULE

My Post up and down scripts won't obviously work, and it appears it's not usable inside K8s.

I haven't tried it on Kubernetes before but the ifconfig output of linuxserver/wireguard container looks weird to me. It looks like the output of the Kubernetes node instead. Anyway, those iptables rules should be applied on the machine where wireguard server is running, it is not always the wireguard-ui machine.

Figured out the issue. I have my K8s cluster running on a mix of hardware. Some RPis, some desktops and some ITX machines. Depending on the OS, it could use eth0, eth1, en0 etc as the interface. I just decided which nodes I wanted it to run on (they all have the same interface name) and instructed K8s to only spawn it on those.
Thank you!


fix: ScrollableParent component to BeamRTL wrapper

Little mixed, I think ScrollableParent seems too/very layout specific, vs. the BeamProvider which is more clearly global context stuff.
I.e. in internal-frontend we have two ScrollableParents, one for the side bar, and one for the right hand, which I think is a nudge that the scope of a ScrollableParent isn't global/so we could leave it out.

I agree. Will close and try the other behavior that we chatted about over Slack.


Handle OpenAIErrors created with 'str' json_body

api_requestor.py recently started respecting text/plain response Content-Types. Azure OpenAI can sometimes return errors with that Content-Type that are still JSON strings with error info, which can break OpenAIErrors default behavior of checking for error being in the supplied json_body. Classic Python, in works for dict or str but json_body["error"] will only work if json_body is a dict.
This is the minimal fix to not throw KeyError and let the unparsed json_body + message bubble up in the OpenAIError.

Cheers @hallacy!
Any idea when next patch release might be?

0.27.3 just got released today!


Multiple folder with gopls

When I use multiple folders in one workspace with gopls sometimes a window pops up with the error:

Your workspace root is X, but your module root is Y. Please add Y as your workplace folder.

This happens on OSX and I'm using go modules (i.e. neither X nor Y are in the GOPATH).
I found a couple of issues that sound related and it is also mentioned in the troubleshooting section (https://lsp.readthedocs.io/en/latest/troubleshooting/). However all the issues have been merged/closed quite a while ago.

This is due to this plugin only handling the first workspace folder (of the sublime project).
Since most language servers only understand one workspace folder, and not multiple like gopls, the plan is to move towards a one-server-per-workspace-folder approach.
There's a PR here that actually implements one-server-per-window (so gopls should work with that), but research shows that many language servers don't, haven't, or are not willing to implement such complexity.
It also makes sense to put that complexity at the text editor client, since there are many more language servers than text editors.

I did some exploration enabling per-folder sessions and multi-folder sessions (gopls) in a branch https://github.com/tomv564/LSP/tree/multi-workspace-folder. I'd like to move towards implementing this mechanism this week.
@JonasPf do you have this package installed from git? Could you test it out?

@tomv564 using with PHP and some basic JS the multi-workspace-folder branch is working fine.

Just installed it from the branch and so far it's working fine with gopls. I'll be using this over the next days and will report here.

Oh, in the bottom line it says:

gopls, gopls, gopls, gopls, gopls, gopls, Line XXX, Column XXX

Is that supposed to look like that? I have 6 folders in the workspace (but only 5 of them are a go projects, 1 is just my personal markdown notes)

@JonasPf thanks for reporting, the changes are now in master.
Can you tell if the "gopls, gopls, gopls .." issue persists there?


Add the getting started guide to examples

This code will differ slightly from the existing code in diesel_demo and on the website, as I rewrote it by following the guide instead of just copying the code over. This is intended to replace the demo repo, as I want this to be part of our test suite, and it gives me more stable URLs to link to from the guide.
I'm planning on changing the guide on the website to pull code snippets from this file automatically.

Review? @diesel-rs/contributors

LGTM. The travis failure is because of the beta being for 1.12.
Do you maybe want to put a Readme file in the examples directory explaining how this is related to the guide?

Going to move beta to allowed failures for now since this looks like a bug in rustc


table of contents

you should perhaps consider adding a toc to the readme since it's getting quite big
it looks like there already was a function for this which was removed with this commit
https://github.com/folke/lazy.nvim/commit/5f017bf65565f08f2c3430cce8adc3dd8efbcaef

I removed it since it's pretty much impossible to get the anchors right with titles containing emoji. On GitHub you can always get the toc top left

👍


Opacity does not work

Changing opacity of an entity with bmfont-text does nothing.
Reported by tincho on A-Frame Slack.
CodePen: https://codepen.io/bryik/pen/BzbkYP

Sort of fixed: https://codepen.io/bryik/pen/yJAkNg
However, changing opacity and color (or any other property) creates a new text mesh. This makes transitions/animations costly performance wise. It would be better to update only the material properties/shader uniforms when it is possible to do so.


Gitlab API v4

Hi,
The project is currently using the v3 of the Gitlab API. The v3 is deprecated and may be removed in Gitlab 9.4 : https://docs.gitlab.com/ce/api/v3_to_v4.html#v3-to-v4-version
Did you planned to move to the v4 API ?

GitLab4J-API will support v4 in the very near future (within the next few weeks).  The intent is to concurrently support both V3 and V4, the version would be selected when an instance of GitLabApi is created.
I will leave this issue open until V4 support has been added.

That's a great news, thanks for this amazing work

Completed initial support for GitLab API V4.


Logging added for when compaction takes more than the block time range

Fixes #7763

I think that'd be over complicating things, this isn't meant to be 100% precise. A single head compaction taking more than 2h is enough to check for.
The log message is also not quite right. The block compaction did finish (we wouldn't know how long it took otherwise), and I don't think it's wise to advise users to blow away good data.

A single head compaction taking more than 2h is enough to check for.

It is mostly the checkpointing that takes time, compacting Head into a block won't take that long.

Did you mean the entire head compaction where we would compact multiple blocks out of Head?

No, only one block as that's the usual case. For simplicity let's presume that we've not fallen a block behind already.

Things are a little more tricky now. WAL truncation + checkpoint happens in Compact() now and not here.

Didn't know that, thanks for the info!

The log message is also not quite right. The block compaction did finish (we wouldn't know how long it took otherwise), and I don't think it's wise to advise users to blow away good data.

What would be the best advice here? Ask the user for more resources? Delete something more specific?

I think that'd be over complicating things, this isn't meant to be 100% precise. A single head compaction taking more than 2h is enough to check for.

I'm a little confused with when to log...
(all compaction durations + wal truncation duration) > (lastBlockMaxT-firstBlockMinT), is that correct?

What would be the best advice here? Ask the user for more resources? Delete something more specific?

We shouldn't be giving any advice like this in a log message. It's a warning, not an operational manual.

@ArthurSens  Ignore what I said, we could do https://github.com/prometheus/prometheus/pull/8151#issuecomment-722241917 to keep it simple for now.

What would be the best advice here? Ask the user for more resources? Delete something more specific?

Let's just say it's falling behind and won't be able to catch up, no need to tell the solution. I believe there will be scenarios where it can and cannot catch-up and mitigations might be different. We could leave best practices and such things in doc maybe.

Hello :wave:, anything else I should be adjusting here?

Nits addressed :)

go-fuzz-build -libfuzzer -func FuzzParseMetric -o promql-parse-metric.a ./promql
/go/src/github.com/prometheus/prometheus/tsdb/db.go:837:24: compactionDuration.Milliseconds undefined (type time.Duration has no field or method Milliseconds)
typechecking of ./promql failed

Thanks :muscle:


Test APIM, MI and SI Products on AWS Graviton Processor

Description
Need to verify the APIM, MI and SI products are running on Arm-based AWS Graviton Processors
https://aws.amazon.com/ec2/graviton/
Affected Component
None
Version
No response
Related Issues
No response
Suggested Labels
No response

Tested APIM and MI with Amazon AWS Graviton Processor with the following configuration
amzn2-ami-kernel-5.10-hvm-2.0.20230207.0-arm64-gp2
ami-0b6ffdb4868a0bcac
Architecture
arm64
Virtualization
hvm
Root device type
ebs
ENA Enabled
Yes
Smoke-tested MI by deploying a capp and accessing the deployed services via public IP/port
Smoke-tested APIM by login into the publisher portal and deploying a sample API and invoking


/Autosession Error

Hey Abu,

when trying to use /autosession we get this issue

Hey hey. I've had a look and think I've been able to identify and resolve the issue at hand. Give it another go and let me know if it works now.
Fix that prevents this issue from occurring again is in commit #878cda5 and will be included in next release.

sorted. thanks so much


Making changes so that plugin will seed initial ACL config instead of…

… using run.sh method
@jcantrill @sosiouxme @jimmidyson  PTAL

LGTM

Seems to work in clustered setup.


Feature: package build script + Docker build script

This is some initial work on a package building script.

Bumps the version (including commit)
Builds pypi packages
Uploads them to test pypi + prompts for enter/ctrl+c
Uploads them to regular pypi
Builds homebrew formula

it even passes brew audit --strict

Overwrites the default homebrew package, if you want
Makes appropriate commits
Has a bunch of flags

Requirements:

a properly filled out .pypirc with credentials for testpypi and pypi
you must run it with python 3.7 for virtualenv reasons

Things this doesn't do (yet):

git push, so no github credentials required. Someday I would like it to run in the cloud though!
handle the homebrew bottle aspect
run in any CI stuff

I'm going to rebase this back onto dev/barbara-gittings and add Dockerfile stuff to this PR directly.

overall, this seems really great. there are a couple of comments in here that i'd like you to take a look at, but we should get this merged in after that, and treat any improvements incrementally.

Implemented the PR feedback, added some fixes for small issues I discovered tonight (the newest commit), and rebased onto dev/barbara-gittings.


WIP GeoArrow point layer

I'm trying to make progress towards having a working deck.gl layer but I haven't touched web JS outside of Observable in a while and it's painful.

Something about the build setup is wrong. In particular, rollup is transpiling into ES5 syntax, which causes subclassing from the ES6 class to fail. I'm getting errors like
Class constructor CompositeLayer cannot be invoked without 'new'

Which makes me think that it's related to this issue.

Separately, when I copy the points.ts file into the example folder, I'm getting deck.gl errors:
Cannot read properties of undefined (reading 'setUniforms') TypeError: Cannot read properties of undefined (reading 'setUniforms')

So I'm probably doing something wrong in the subclassing

I'm gonna merge to try and work on a linestring layer. This works now as long as I develop in the examples/ dir 😂 . I'll have to figure out bundling later


Invertible attributes

This PR implements a not() syntax for certain OS-target attributes.
Resolves https://github.com/casey/just/issues/1895

@casey this is ready for review


Can you post about product created with Vue.js?

Hello,
Vue.js, Vue-Router, Vuex and other helpers things is super helpful and awesome.
I've create online javascript editor with Vue, can you post about this tool?
It post can explain people how fast can be web apps with Vue, http2 and golang.
link: playcode.io

I don't know where write about this request...

A more proper place: https://github.com/vuejs/awesome-vue

Please make sure to read the Issue Reporting Guidelines before opening new issues. The issue list only accepts bug reports and feature requests. Thanks.

@happierall - nice work. Is the editor open source?

I'm confuse, why do I get an old issue bug appear in my notification?


404 page

Having the dependency on messages being injected on the page, becomes a problem when the page is the 404 page.
My _app.tsx has a layout that includes:
HEADER
WHATEVER_PAGE
FOOTER
the 404 page will load between the header and the footer. Both require the messages.
I've tried getServierSideProps, getStaticProps and though it works on develop, after build I have warnings and the header and footer do NOT have the translations.

Hi @andrevenancio and thanks for the report!
The 404 page works the same way as the other pages, I've provided an example in https://github.com/amannn/next-intl/pull/66. I've also improved the error message a bit when no messages are configured at all – I think that's the issue you were seeing initially.
Do you want to have a look and let me know if this works for you?

Hi @amannn Thanks for your reply. I think this solution does work, but I'll explain how I had implemented it, and hopefully It helps shine a light to:

Either a bug
Me doing something wrong.

So on my projects I have 2 json (en and de). They live on src/locales/.
But instead of accessing the files directly like you do on your example:
export async function getStaticProps({locale}: GetStaticPropsContext) {
  return {
    props: {
      messages: pick(
        await import(`../../messages/${locale}.json`),
        NotFound.messages
      )
    }
  };
}

I'm doing something different... I'm calling the api which loads the json files for me instead. So my request ends up looking like:
export const getServerSideProps: GetServerSideProps = async ({ locale }) => {
  return {
    props: {
      messages: await fetch(`${process.env.DOMAIN}/api/language/${locale}`).then((e) => e.json()),
    },
  };
};

And just for reference my api call is just a simple
import { NextApiRequest, NextApiResponse } from 'next';
import messages from<EMAIL_ADDRESS>
export default async (_req: NextApiRequest, res: NextApiResponse) => {
  res.setHeader('Cache-Control', 's-maxage=300, public');
  res.status(200).json(messages);
};

Now, this works on development and on production except on the 404 page. I can't be sure to why, but it seems like localhost:3000 isn' running on build time for the 404 page ence my initial errors I shared on twitter that seem to come from node-fetch.
Using your solution works fine. I wonder if I should just scrap the API idea and access the json files directly.

Ok, I see. Is the getServerSideProps function declared for the 404 page then? I'm unsure since you mention that you need the API route during build time, but the presence of that function should cause the page to be run only at runtime (or is there an exception for 404 pages in Next.js to always build statically)? I haven't used Next.js API routes much so far, but I could definitely imagine that they don't mount at build time (like you mention it).
There's quite a bit of guesswork here. Generally this seems to be an issue caused by the usage of Next.js framework features and less by this library. If you can provide a reproduction I might be able to help you, but other than that you could also consider accessing the JSON files via a module import statement – as you've also mentioned.

I think 404 pages are an exception on nextjs. I'll close this issue. I think you're right this is a nextjs issue not a next-intl issue.
Thank you!

I think 404 pages are an exception

I think so too yes, based on your pasted build output:
├ ○ /404                                   429 B           675 kB

○  (Static)  automatically rendered as static HTML (uses no initial props)


Cannot extend Location as a CustomIdentified

Location invokes its super __init__ method with positional arguments instead of keyword arguments. This does not work when a custom Location type is defined.
Here is a custom location type:
class CustomLocationClass(sbol3.Location, sbol3.CustomIdentified):
    def __init__(self, sequence: Union[sbol3.Sequence, str],
                 *, type_uri=PYSBOL3_CUSTOM_LOCATION, identity=None):
        super().__init__(sequence=sequence, type_uri=type_uri, identity=identity)
        # Also test the int list while we're here
        self.foo_int = sbol3.IntProperty(self, PYSBOL3_CUSTOM_INT,
                                         0, math.inf)

When the above class is instantiated, like this:
        seq = sbol3.Sequence('my_seq', elements='atcg')
        custom_loc = CustomLocationClass(sequence=seq)

The following exception is raised:
Error
Traceback (most recent call last):
  File "/Users/tmitchel/Projects/sd2/pySBOL3/test/test_custom.py", line 182, in test_constructor
    custom_loc = CustomLocationClass(sequence=seq)
  File "/Users/tmitchel/Projects/sd2/pySBOL3/test/test_custom.py", line 40, in __init__
    super().__init__(sequence=sequence, type_uri=type_uri, identity=identity)
  File "/Users/tmitchel/Projects/sd2/pySBOL3/sbol3/location.py", line 21, in __init__
    super().__init__(identity, type_uri)
TypeError: CustomIdentified.__init__() takes from 1 to 2 positional arguments but 3 were given

The root cause is that Location uses positional arguments for the super constructor call instead of keyword arguments. These positional arguments work with Identified and not with CustomIdentified. Using keyword arguments fixes the problem.

import sbol3
class CustomLocationClass(sbol3.Location, sbol3.CustomIdentified):
def init(self, sequence=sbol3.Sequence('my_seq', elements='atcg'),
*, type_uri=PYSBOL3_CUSTOM_LOCATION, identity=None'):
         self.foo_int = sbol3.IntProperty(PYSBOL3_CUSTOM_INT,
                                     0, math.inf)

//Calling the class
custom_loc = CustomLocationClass()
Tried this and it worked. I removed the super as it is not that necessary and supplied eyword argments to init


test(fs): do not write files in source tree during test (#5358)

This pull request addresses the issue of files and directories being created and written into the source tree while testing functions in the fs package. Creation of temporary directories were incorporated into the existing tests where applicable.
Fixes #5358 .

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Metadata fixes

Hi @RolandLeFranc
Please don't merge. I still need to fix the merge conflict in this branch.

:x: Validation status: errors

File
Status
Preview URL
Details

:x:Error

Details

[Error] Cannot sync git repo to specified state. Please make sure the pull request is mergeable. Details: Git merge results in conflict, repository remote url: https://github.com/MicrosoftDocs/PlayReady, working directory: W:\tk1v-s, target branch: master, target branch commit: 2ed6b8ef94e51621a76a26ecac8352ede2e05819, source branch: metadata-fixes, source branch commit: .

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

:x: Validation status: errors

File
Status
Preview URL
Details

:x:Error

Details

[Error] Cannot sync git repo to specified state. Please make sure the pull request is mergeable. Details: Git merge results in conflict, repository remote url: https://github.com/MicrosoftDocs/PlayReady, working directory: W:\4htp-s, target branch: master, target branch commit: 2ed6b8ef94e51621a76a26ecac8352ede2e05819, source branch: metadata-fixes, source branch commit: .

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

:x: Validation status: errors

File
Status
Preview URL
Details

:x:Error

Details

[Error] Cannot sync git repo to specified state. Please make sure the pull request is mergeable. Details: Git merge results in conflict, repository remote url: https://github.com/MicrosoftDocs/PlayReady, working directory: W:\lcjx-s, target branch: master, target branch commit: 2ed6b8ef94e51621a76a26ecac8352ede2e05819, source branch: metadata-fixes, source branch commit: .

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


load application metadata earlier

Some cases it takes additional time to grab the readme's from the charmstore. We should perform them all in the background and cache them so users won't sit around waiting to read about a specific application.

App readmes and other metadata are already loaded in the background, kicked off when the first app walkthrough screen is shown. We can try to load it sooner.


Added services to check to readme

As per #26 I also added this to the readme in case anybody else wants to do some further checks later on.

Closes #26


Add Arguments to Compiler

It would be nice if I could add arguments to the compiler in the configuration window, similar to what you can do in TeXworks (for example, setting --extra-mem-top when you have a large table to compile).

Fixed for b0.5.1. See #240

Is this unreleased? I can't see this feature.

Not released yet. You could try a development version from my fork or build from source yourself (which will be easier once I finished the gradle build)

Ah would explain it. Sorry for the duplicate.