Generate regex-free parsing code

DO NOT MERGE AS IS
This branch is a demonstration of removing regex completely from the generated parsing code, since I suggested that before.
Editing your own code is hard, editing someone else's code is harder, and editing someone else's code to edit the code produced by somebody else's code, well, yeah 😅 I just implemented this by adding parallel versions of the existing functions and left the old ones in the codebase, and am not sure if all of the style is quite how you want it.
That being said, consider this a proof of concept and a working point for anyone else who wants to explore this more, because it actually slowed down the commonicon_zero.jl benchmark for me compared to the current master. (~605ms -> ~625ms, give or take) I had hope for these results but they didn't end up being great.

Also would need minor docstring updates and test changes because the tests are validating codegen results directly.

this is AWESOME! thank you. Have you tried this locally? I'm wondering how much speed up it can provide using regex free runtime?

The other thing I was thinking is actually use the julia's own CLI parsing code written in C shipped with Julia compiler. I think that will have much lower latency too., but I haven't tried, and I believe there are some bugs in the Julia CLI parsing code too..

Feel free to do more benchmarks on the removing regex version (and maybe update the precompilation based on this version? I'm not sure if that would make a difference but maybe) to see if it works better in some cases. I didn't get much of a chance to test it yet and I'm not super familiar with the Comonicon interface to write test cases.
That's an interesting idea about the Julia CLI C code, but wouldn't it have to be exposed somehow to do this? I mean maybe Julia bindings to some lower level CLI library could work too but idk the right way to do that with minimal latency. ArgMacros is already very fast on the approach of macros expanding to calls to parsing functions to retrieve each variable and maybe there's a possibility to make those compiled functions in a lower level language.

I removed the use of regex in the new rewrite, but I decide to remove the feature of caching compile results for scripts, since I think this is not useful for practical case where the latency are mainly caused by other packages and the script itself - if someone really cares about latency, they should use a bit more effort to actually write a Julia project and use Julia's own compile cache which is far better than the compile cache implemented by Comonicon.
I'll close this since we are not using regex anymore.


CI Update

Build.Reason:Manual by Michael Jin
Build.Url:https://apidrop.visualstudio.com/Content CI/_build/results?buildId=298468&view=results

Docs Build status updates of commit 2869221:
:warning: Validation status: warnings

File
Status
Preview URL
Details

docs-ref-autogen/azure-datalake-store/azure.datalake.store.lib.DatalakeRESTInterface.yml
:warning:Warning
View (azure-python)
Details

docs-ref-autogen/msal/msal.oauth2cli.oauth2.Client.yml
:warning:Warning
View (azure-python)
Details

docs-ref-autogen/msal/msal.oauth2cli.oidc.Client.yml
:warning:Warning
View (azure-python)
Details

docs-ref-autogen/msrest/msrest.serialization.Model.yml
:warning:Warning
View (azure-python)
Details

docs-ref-autogen/azure-datalake-store/azure.datalake.store.lib.DatalakeRESTInterface.yml

Line 7, Column 3: [Warning: xref-not-found] Cross reference not found: 'builtins.object'.
Line 38, Column 19: [Warning: xref-not-found] Cross reference not found: '2018-09-01'.
Line 43, Column 20: [Warning: xref-not-found] Cross reference not found: '60'.
Line 50, Column 7: [Warning: xref-not-found] Cross reference not found: '<xref:optional arguments to auth'.

docs-ref-autogen/msal/msal.oauth2cli.oauth2.Client.yml

Line 169, Column 7: [Warning: xref-not-found] Cross reference not found: 'collections.Iterable'.
Line 232, Column 7: [Warning: xref-not-found] Cross reference not found: 'collections.Iterable'.
Line 319, Column 7: [Warning: xref-not-found] Cross reference not found: 'Callable'.

docs-ref-autogen/msal/msal.oauth2cli.oidc.Client.yml

Line 31, Column 1: [Warning: xref-not-found] Cross reference not found: 'oauth2.Client.build_auth_request_uri'.
Line 58, Column 5: [Warning: xref-not-found] Cross reference not found: 'oauth2.Client.initiate_auth_code_flow'.
Line 82, Column 5: [Warning: xref-not-found] Cross reference not found: 'oauth2.Client.obtain_token_by_auth_code_flow'.
Line 100, Column 1: [Warning: xref-not-found] Cross reference not found: 'oauth2.Client.obtain_token_by_authorization_code'.
Line 123, Column 5: [Warning: xref-not-found] Cross reference not found: 'oauth2.Client.obtain_token_by_browser'.
Line 142, Column 49: [Warning: xref-not-found] Cross reference not found: 'oidc.Prompt'.

docs-ref-autogen/msrest/msrest.serialization.Model.yml

Line 7, Column 3: [Warning: xref-not-found] Cross reference not found: 'builtins.object'.
Line 32, Column 7: [Warning: xref-not-found] Cross reference not found: 'function'.
Line 59, Column 11: [Warning: xref-not-found] Cross reference not found: 'DeserializationError if something went wrong'.
Line 95, Column 11: [Warning: xref-not-found] Cross reference not found: 'DeserializationError if something went wrong'.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Have client.map support a future

I'm trying to do something similar to the following. I'd like the result of get_files to not leave the cluster but instead have the result be fed into a map call. Unfortunately this is giving me an error:
TypeError: object of type 'Future' has no len()

from dask.distributed import Client

def get_files():
  return ['file1.json', 'file2.json']

def process_file(filename):
  return json.load(open(filename))

client = Client()
files = client.submit(get_files)
processed_files = client.map(process_file, files)

Perhaps using Dask bag + persist fits your use case? Something along the lines of:
import random
import dask.bag as db
from dask.distributed import Client

def get_data():
    for _ in range(5):
        yield random.random()

def process(x):
    return x**2

with Client() as client:
    data = db.from_sequence(get_data()).persist()
    result = data.map(process).compute()
    print(f"result = {result}")

https://examples.dask.org/applications/evolving-workflows.html
On Thu, Sep 17, 2020 at 7:59 PM James Bourbeau<EMAIL_ADDRESS>wrote:

Perhaps using Dask bag + persist fits your use case? Something along the
lines of:
import randomimport dask.bag as dbfrom dask.distributed import Client
def get_data():
for _ in range(5):
yield random.random()
def process(x):
return x**2
with Client() as client:
data = db.from_sequence(get_data()).persist()
result = data.map(process).compute()
print(f"result = {result}")
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/dask/dask/issues/6653#issuecomment-694619115, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AACKZTFEGAVQ5NWFWE5FYFDSGLEIFANCNFSM4RRC22RA
.

So, the get_files function here, is just a stand-in for listing files from a remote machine, so I need this function to run on the remote machine. It's really more like this:
def get_files():
    result_files = glob.glob('/path-on-remote-machine/*/data.json')
    return result_files

Then, I'd like to be able to map a process_file function on that list without sending that list back to my laptop. So, client.map doesn't accept a single future which will be a list I'm guessing? I would have to submit tasks from a task? I don't know why but submitting tasks from a task seems weird to me.

There are a variety of solutions to this problem in the example I point to above, including pulling the result back, waiting on the future and then submitting more tasks after you remotely compute the length, and submitting tasks from tasks.
You could also consider Prefect, which uses these tricks internally.
There isn't a clear alternative proposal here, so I'm going to close for now.  Thanks for bringing this up.


How to remove "use strict" from first line of all babel compiled files?

Use Stack Overflow for support questions.


Atom authors event is a string with line breaks

When an Atom feed has the following for the author element in an item:
<author>
<name>Ford Prefect</name>
<uri>http://h2g2.com/</uri>
</author>

The event renders as:
  "authors": [
    "\n        Ford Prefect\n        http://h2g2.com//\n    "
  ],

Would it be possible to have the event look like this instead?
  "authors": [
  {
    "name": "Ford Prefect",
    "uri": "http://h2g2.com/"
  }],

I assume this is in the RSSAgent?

Correct.
--
Richard Eriksson
justagwailo.com

Sounds like the RSSAgent doesn't understand nested values.  This would need to be added.  Does #957 perform any better?

With the rss_agent-rss_parser branch, I get an event with:
  "authors": [
    "Ford Prefect"
  ],

which should fulfill my needs.

I'm going to close this issue.  Please reopen if you want to discuss further!


How to leave Cypress open after the tests run?

Hello,
Can you add to the documentation how to leave the Cypress window open after a run?
Right now, executing ng run my-project-here:ct always closes the window and I need to either go to the videos or look at the text in the terminal.
Thanks.

The ct job calls this executor you can provide any of those options defined in that executor. Setting one of the below ones should allow what you want. You can update the project target or add it when your run it, e.g. ng run my-project-here:ct --watch
"watch": {
      "type": "boolean",
      "description": "Recompile and run tests when files change.",
      "default": false
 }

"exit": {
      "type": "boolean",
      "description": "Whether or not the Cypress Test Runner will stay open after running tests in a spec file",
      "default": true
}

Superb, thanks!
Daniel Wilches
On Mon, Nov 8, 2021 at 6:57 PM srleecode @.***> wrote:

The ct job calls this executor
https://github.com/nrwl/nx/blob/master/packages/cypress/src/executors/cypress/schema.json
you can provide any of those options defined in that executor. Setting one
of the below ones should allow what you want. You can update the project
target or add it when your run it, e.g. ng run my-project-here:ct --watch
"watch": {
"type": "boolean",
"description": "Recompile and run tests when files change.",
"default": false
}
"exit": {
"type": "boolean",
"description": "Whether or not the Cypress Test Runner will stay open after running tests in a spec file",
"default": true
}
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/jscutlery/devkit/issues/124#issuecomment-963682898,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA6KR2LVNU3VF4W6XP4AQALULBPWJANCNFSM5HS7SK4Q
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.


Switch PHP distribtests to php7.4 (with significant speedup)

Based on https://github.com/grpc/grpc/pull/31567.
Leads to significant speedup on the kokoro monterey workers, as they come with php7.4 pre-installed.
The simplification of the prepare script is also nice.

FTR The duration of the grpc_php_distribtests job dropped from ~30mins to ~12min thanks to this change and https://github.com/grpc/grpc/pull/31567


Proposal for GenerationDepthBehavior.

Here is a generation Depth limiter behavior proposal.
fixture.Behaviors.Add(new GenerationDepthBehavior(2));
Had to re-implement ComposeIfMultiple for test because it's internal.
public class GenerationDepthBehavior : ISpecimenBuilderTransformation
{
    private const int DefaultGenerationDepth = 1;
    private readonly int generationDepth;

    public GenerationDepthBehavior() : this(DefaultGenerationDepth)
    {
    }

    public GenerationDepthBehavior(int generationDepth)
    {
        if (generationDepth < 1)
            throw new ArgumentOutOfRangeException(nameof(generationDepth), "Generation depth must be greater than 0.");

        this.generationDepth = generationDepth;
    }

    public ISpecimenBuilderNode Transform(ISpecimenBuilder builder)
    {
        if (builder == null) throw new ArgumentNullException(nameof(builder));

        return new GenerationDepthGuard(builder, new GenerationDepthHandler(), this.generationDepth);
    }
}

public interface IGenerationDepthHandler
{

    object HandleGenerationDepthLimitRequest(object request, IEnumerable<object> recordedRequests, int depth);
}

public class DepthSeededRequest : SeededRequest
{
    public int Depth { get; }
    public DepthSeededRequest(object request, object seed, int depth) : base(request, seed)
    {
        Depth = depth;
    }
}

public class GenerationDepthGuard : ISpecimenBuilderNode
{
    private readonly ThreadLocal<Stack<DepthSeededRequest>> requestsByThread
        = new ThreadLocal<Stack<DepthSeededRequest>>(() => new Stack<DepthSeededRequest>());

    private Stack<DepthSeededRequest> GetMonitoredRequestsForCurrentThread() => this.requestsByThread.Value;

    public GenerationDepthGuard(ISpecimenBuilder builder)
        : this(builder, EqualityComparer<object>.Default)
    {
    }

    public GenerationDepthGuard(
        ISpecimenBuilder builder,
        IGenerationDepthHandler depthHandler)
        : this(
            builder,
            depthHandler,
            EqualityComparer<object>.Default,
            1)
    {
    }

    public GenerationDepthGuard(
        ISpecimenBuilder builder,
        IGenerationDepthHandler depthHandler,
        int generationDepth)
        : this(
            builder,
            depthHandler,
            EqualityComparer<object>.Default,
            generationDepth)
    {
    }

    public GenerationDepthGuard(ISpecimenBuilder builder, IEqualityComparer comparer)
    {
        this.Builder = builder ?? throw new ArgumentNullException(nameof(builder));
        this.Comparer = comparer ?? throw new ArgumentNullException(nameof(comparer));
        this.GenerationDepth = 1;
    }

    public GenerationDepthGuard(
        ISpecimenBuilder builder,
        IGenerationDepthHandler depthHandler,
        IEqualityComparer comparer)
        : this(
        builder,
        depthHandler,
        comparer,
        1)
    {
    }

    public GenerationDepthGuard(
        ISpecimenBuilder builder,
        IGenerationDepthHandler depthHandler,
        IEqualityComparer comparer,
        int generationDepth)
    {
        if (builder == null) throw new ArgumentNullException(nameof(builder));
        if (depthHandler == null) throw new ArgumentNullException(nameof(depthHandler));
        if (comparer == null) throw new ArgumentNullException(nameof(comparer));
        if (generationDepth < 1)
            throw new ArgumentOutOfRangeException(nameof(generationDepth), "Generation depth must be greater than 0.");

        this.Builder = builder;
        this.GenerationDepthHandler = depthHandler;
        this.Comparer = comparer;
        this.GenerationDepth = generationDepth;
    }

    public ISpecimenBuilder Builder { get; }

    public IGenerationDepthHandler GenerationDepthHandler { get; }

    public int GenerationDepth { get; }

    public int CurrentDepth { get; }

    public IEqualityComparer Comparer { get; }

    protected IEnumerable RecordedRequests => this.GetMonitoredRequestsForCurrentThread();

    public virtual object HandleGenerationDepthLimitRequest(object request, int currentDepth)
    {
        return this.GenerationDepthHandler.HandleGenerationDepthLimitRequest(
            request,
            this.GetMonitoredRequestsForCurrentThread(), currentDepth);
    }

    public object Create(object request, ISpecimenContext context)
    {
        if (request is SeededRequest)
        {
            int currentDepth = -1;

            var requestsForCurrentThread = this.GetMonitoredRequestsForCurrentThread();

            if (requestsForCurrentThread.Count > 0)
            {
                currentDepth = requestsForCurrentThread.Max(x => x.Depth) + 1;
            }

            DepthSeededRequest depthRequest = new DepthSeededRequest(((SeededRequest)request).Request, ((SeededRequest)request).Seed, currentDepth);

            if (depthRequest.Depth >= this.GenerationDepth)
            {
                return HandleGenerationDepthLimitRequest(request, depthRequest.Depth);
            }

            requestsForCurrentThread.Push(depthRequest);
            try
            {
                return this.Builder.Create(request, context);
            }
            finally
            {
                requestsForCurrentThread.Pop();
            }
        }
        else
        {
            return this.Builder.Create(request, context);
        }
    }

    public virtual ISpecimenBuilderNode Compose(
        IEnumerable<ISpecimenBuilder> builders)
    {
        var composedBuilder = ComposeIfMultiple(
            builders);
        return new GenerationDepthGuard(
            composedBuilder,
            this.GenerationDepthHandler,
            this.Comparer,
            this.GenerationDepth);
    }

    internal static ISpecimenBuilder ComposeIfMultiple(IEnumerable<ISpecimenBuilder> builders)
    {
        ISpecimenBuilder singleItem = null;
        List<ISpecimenBuilder> multipleItems = null;
        bool hasItems = false;

        using (var enumerator = builders.GetEnumerator())
        {
            if (enumerator.MoveNext())
            {
                singleItem = enumerator.Current;
                hasItems = true;

                while (enumerator.MoveNext())
                {
                    if (multipleItems == null)
                    {
                        multipleItems = new List<ISpecimenBuilder> { singleItem };
                    }

                    multipleItems.Add(enumerator.Current);
                }
            }
        }

        if (!hasItems)
        {
            return new CompositeSpecimenBuilder();
        }

        if (multipleItems == null)
        {
            return singleItem;
        }

        return new CompositeSpecimenBuilder(multipleItems);
    }

    public virtual IEnumerator<ISpecimenBuilder> GetEnumerator()
    {
        yield return this.Builder;
    }

    IEnumerator IEnumerable.GetEnumerator()
    {
        return this.GetEnumerator();
    }
}

public class GenerationDepthHandler : IGenerationDepthHandler
{
    public object HandleGenerationDepthLimitRequest(
        object request,
        IEnumerable<object> recordedRequests, int depth)
    {
        return new OmitSpecimen();
    }
}

Hello, thanks for sharing the idea! :+1:
Could you please describe the reasoning behind this feature? Do you have any particular scenario where you found it useful?

Hi, I use it mainly for ORM entites or external api classes where depth can propagate indefinitely but is not recursive.

I have put it directly on AutoMoqDataAttribute
public class AutoMoqDataAttribute : AutoDataAttribute
{
    public AutoMoqDataAttribute(int generationDepth = 1)
        : base(() =>
        {
            IFixture fixture = new Fixture().Customize(new AutoMoqCustomization());

            fixture.Behaviors.OfType<ThrowingRecursionBehavior>().ToList()
            .ForEach(b => fixture.Behaviors.Remove(b));

            fixture.Behaviors.Add(new OmitOnRecursionBehavior());
            fixture.Behaviors.Add(new GenerationDepthBehavior(generationDepth));

            return fixture;
        })
    {
    }
}

I would also suggest to make ComposeIfMultiple public. It would make custom behavior implementation easier.

I do understand what the behavior does, the main question is the purpose and scenarios.

Hi, I use it mainly for ORM entites or external api classes where depth can propagate indefinitely but is not recursive.

So, as far as I understand, the main goal you are aiming is the performance. From the functional perspective everything works fine and you simply would like to save a few CPU ticks.
It's a bit hard to judge whether we would like to ship with this feature out of the box or not. I do understand that you might indeed have type model with very deep nesting and there the performance win is significant.  But there are also a few drawbacks with it:

it breaks the transparency of your unit tests. Now you need to know the level of the deepest accessed object during the test. If you later change implementation, tests might start to break due to default values and you will probably need to update the level.
it increases test maintenance, as now you need to track a fact that graph might be not initialized entirely.

It's completely fine that in your team you require this feature and you agree to use it. However, I'd argue to give it a common usage as it complicates things a lot.
There are a lot of potential scenarios and AutoFixture tries to ship the most common features only. The more advanced bits are covered by the extensibility capabilities. In this particular case I'd say that feature is not that common to make it a part of the product. Another point is implementation is very tiny (see below), so it should not be a problem to implement it in your test project locally.

I would also suggest to make ComposeIfMultiple public. It would make custom behavior implementation easier.

It has been already discussed #657.

By the way, implementation might be simplified a bit (if I'm not missing something):
public class GenerationDepthGuard: ISpecimenBuilderTransformation
{
    public int Depth { get; }

    public GenerationDepthGuard(int depth)
    {
        Depth = depth;
    }

    public ISpecimenBuilderNode Transform(ISpecimenBuilder builder)
    {
        return new RecursionGuard(builder, new OmitOnRecursionHandler(), new IsSeededRequestComparer(), Depth);
    }

    private class IsSeededRequestComparer : IEqualityComparer
    {
        bool IEqualityComparer.Equals(object x, object y)
        {
            return x is SeededRequest && y is SeededRequest;
        }

        int IEqualityComparer.GetHashCode(object obj)
        {
            return obj is SeededRequest ? 0 : EqualityComparer<object>.Default.GetHashCode(obj);
        }
    }
}

@moodmosaic Could you please also share your opinion? 😉

@moodmosaic It seems the suggestion is not  to change the default behavior, but to make GenerationDepthBehavior a part of the AutoFixture library (so you could enable it on demand). So what is your opinion regarding this? :wink:

@zvirja It's not actually for performance reasons. The problem with indefinite propagation is failed test with out of memory exception.

@zvirja, @malylemire1, unless this ad-hoc behavior addresses a wide range of scenarios, I don't think it has to be built-in.

I can't spot an MCVE, but AFAICT, the issues are coming from automated-tests that aren't actually unit tests (e.g. boundary/integration tests).
AutoFixture wasn't primarily designed to deal with integration tests, so some ad-hoc behaviors (like the one shown here) are warranted :+1:  I don't think it has to be part of the core library, though.

@malylemire1 Would you be fine if we postpone this for now and implement it later only if we see a lot of requests for this feature?
I'm sorry we cannot include every desired feature to the core 😟 It's a bit hard to keep the balance between the provided feature and and the amount of code we maintain here. It looks like it will not be a big problem for you to implement this ad-hoc feature in your solution, so you are not blocked.
Thanks again for your proposal!

Closing this issue as a part of the cleanup. Thanks again for sharing the idea! 😉

@malylemire1 I 100% understand the use case.
Is this something you can make available in a nuget package?

Its sad that this has not been built into the core. I have the exact same problem and have to use the workaround for now.


where's the SQL statement of demos, like model-mysql?

like above, thanks

tables like think_user, think_pic2,think_group.
Connect to mysql success, and find no tables

You can add some tables(like think_use) in Mysql by yourself


Import DateTime

Ooops, sorry, I'm new to contributions...

@satoved merged and tagged for release :) 4.3.1


FancyZones not working at start + forget settings

Microsoft PowerToys version
0.45.0
Running as admin

[X] Yes

Area(s) with issue?
FancyZones
Steps to reproduce
Sometimes FancyZones does not work even if it is enabled, the only way to make it work again is to turn it off and back on.
While FancyZones is not working, I tried to open the editor through the PowerToys window and I got a crash message.
FZEditorCrashLog.txt
Report :
PowerToysReport_2021-09-25-15-45-35.zip
✔ Expected Behavior
FancyZones editor showing
FancyZones zone when shifting showing
❌ Actual Behavior
Nothing append in all case, like FancyZones it's disabled.
Other Software
I have a dual screen setup.

Thank you for reporting. This is a duplicate of https://github.com/microsoft/PowerToys/issues/13069 and  https://github.com/microsoft/PowerToys/issues/13105.


Make install script install all required components

@majestrate, would you be opposed to additions to the install script that installed all dependencies? Something that would be very useful to me (and probably others) would be a script that automated the installation of golang and redis (as well as configuration for nntpchan within the sh script itself). Assuming the additions to install.sh met your requirements, would this be a pull request you'd accept?

ideally it should be renamed to fit what it's doing, installing all dependancies, maybe call it deps.sh

i moved the build system to use makefiles recently, not sure how we'd do this now that that is done.


Can iuse it in produce env?

how can I using sass in this env?
can you show me a demo of webpack2 & sass config file!

Please refer to https://github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/template/README.md#adding-a-css-preprocessor-sass-less-etc which explains how to do this.
Webpack 2 is not available to the masses yet, it's too buggy to be in a general release. When we work out all the kinks it'll be released in 0.10.
Let me know if there's anything else you need help with.
Thanks!

Thanks for your time!
You did a very nice Answer , great help for me!


Move the view 'camera' of the editor uses QWERTY keys even on AZERTY keyboards

Godot version:
3.1
Issue description:
For someone I know. Don't use azerty.
Right-clicking and holding inside the Scene to move the view 'camera' of the editor uses QWERTY keys even on AZERTY keyboards

I suspect this has to do with the translation of the keyboard key codes,which they may not be translated according to the keyboard layout that is currently active, which in this case is an AZERTY layout.

Duplicate of #11777.


[Windows] Add wasm.tools component to VS2022

Description
wasm.tools is an optional component from .NET WebAssembly build tools workload, which is required for some customers' builds. Installation time in runtime is about 5 minutes so it's worth baking the component into the image.
Related issue:
https://github.com/actions/virtual-environments/issues/4479
Check list

[x] Related issue / work item is attached
[ ] Tests are written (if applicable)
[ ] Documentation is updated (if applicable)
[ ] Changes are tested and related VM images are successfully generated

/azp run windows2022


Questionable values are being added to name attribute

Bug Description
Not sure if this is an skbio issue, but since I first noticed this problem after running the Moving Pictures qiime2 tutorial, I'll raise the issue here.
When investigating the actual TreeNode data structure, it looks like the name attribute is being populated with some float values.
>>> art = qiime2.Artifact.load('rooted-tree.qza')
>>> tree = art.view(TreeNode)
>>> tree.children[1].children
[<TreeNode, name: 1830c14ead81ad012f1db0e12f8ab6a4, internal node count: 0, tips count: 0>,
 <TreeNode, name: 0.739, internal node count: 756, tips count: 759>]
>>> tree.children[1].children[1].length
0.257113916

It looks like these aren't branch lengths, so I'm guessing that they are confidence values.
Questions
Wouldn't it be appropriate to assign these sorts of values to an confidence attribute instead of name?  Shouldn't name be reserved for unique identifiers? (i.e. taxonomy names)

Those are probably just what fasttree wrote in the newick file. I'm not really sure what that's supposed to represent...

Closing issue since it doesn't seem to break anything downstream. Please Re-open if this is an ongoing issue.


fix(core): Compute order based on id and recording name

Description
Compute the request's order based on its id as well as the recording id it will be accessed from.
Motivation and Context
Resolves #340.

Types of Changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist

[x] I have added tests to cover my changes.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] My code follows the code style of this project.
[x] My commits and the title of this PR follow the Conventional Commits Specification.
[x] I have read the contributing guidelines.

@jasonmit thoughts on this? This is potentially a breaking change since we are tweaking the way order is being calculated.

@jasonmit thoughts on this? This is potentially a breaking change since we are tweaking the way order is being calculated.

Agreed, changing existing functionality should be a breaking a change and I'm fine with it.


Unable to send mobile report

I ran an update and then tried to send a mobile report after setting GU_TOKEN, but I see this:
# gentoo-update --send-report=mobile
Traceback (most recent call last):
  File "/usr/lib/python-exec/python3.11/gentoo-update", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/usr/lib/python3.11/site-packages/gentoo_update/gentoo_update.py", line 219, in main
    report = generate_last_report(log_dir).create_report()
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/gentoo_update/gentoo_update.py", line 182, in generate_last_report
    update_info = Parser(last_log).extract_info_for_report()
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/gentoo_update/parser.py", line 371, in extract_info_for_report
    log_info.pretend_emerge = self.parse_emerge_pretend_section(
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/gentoo_update/parser.py", line 130, in parse_emerge_pretend_section
    pretend_details = self.parse_pretend_details(section_content)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/gentoo_update/parser.py", line 195, in parse_pretend_details
    error_index = section_content.index(
                  ^^^^^^^^^^^^^^^^^^^^^^
ValueError: 'emerge pretend has failed, exiting' is not in list

Did you run security updates only (gentoo-update) or full updates (gentoo-update -m full) on the previous run?
It would be helpful to see the last update log, which is in /var/log/portage/gentoo-update/ by default. Looks like there might be some parsing error. You can attach the log here or send it to me directly via<EMAIL_ADDRESS>

I tried it after security update and also after doing nothing.

@afalko Fixed in #22 (0.1.14)
Please note that gentoo-update --send-report mobile still won't work with your previous log file.
But it should work after you re-run gentoo-update


Giving name attributes to Graph and Session

I wanted to gauge thoughts on adding a string name attribute to Graph and Session objects. Currently, there's no programmatic way to identify specific Graphs or Sessions from a generic handle.
There's no mechanism to ensure unique graph/session names (unless I'm mistaken), but it should still be beneficial even without guaranteeing unique names. In a larger system that may be tossing around multiple sessions and graphs, it would be good to have a way to know what graph is being handled (or what family of graphs, if multiple graphs have the same name). The uses for this could also be extended out to TensorBoard, exporting graphs/models, etc.
Perhaps it would be better off being called tag, but I went with name to keep it consistent with current code.
Good idea, terrible idea, somewhere in the middle?

I would suggest storing a dictionary mapping names to graphs.  Adding name attributes to Graph or Session would be poor coding style.


why cookieOptions needs CookieMethods? - @supabase/ssr

Why we cannt create cookie options for createBrowserClient ?
I currently need to create an entire implementation of cookies serializer, but I would like to change just the cookie domain to be consistent with the serverClient.
 return createBrowserClient(ENV.SUPABASE_URL, ENV.SUPABASE_ANON_KEY, {
    cookieOptions: {
      domain: 'xxx'
    }
  });

Error:
 Property 'cookies' is missing in type '{ cookieOptions: { domain: string; }; }' but required in type '{ cookies: CookieMethods; cookieOptions?: CookieOptionsWithName | undefined; isSingleton?: boolean | undefined; }'.ts(2345)

This is a known issue. I'm unsure when it'll be addressed.
https://github.com/supabase/auth-helpers/issues/682#issuecomment-1805611404

Let's track on #682


Renaming of examples

I would prefer it if one could deduce the purpose of the example from the name of the example.
My first suggestion, would look like that:
1_Position_Control_RRBot
2_Diff_Drive_DiffBot
3_Multi_Interfaces_RRBot
4_Integrated_Sensor_RRBot
5_External_Sensor_RRBot
6_Individual_Actuator_Communication_Modular_Robot
7_6DOF_Robot
8_Transmission_Interface_RRBot
9_Gazebo_Sim_Classic_RRBot
10_GPIO_Interfaces_RRBot
12_Chaining_Controllers_RRBot

If you have other naming ideas feel free to share them.

We discussed this shortly when we reorganized this repository. But back then it was easier to just give them numbers.
If we rename it, I'd rename the folders and package names equally.
Can ROS packages start with a number? I don't think so: https://ros.org/reps/rep-0144.html#id11

But they are not really building on top of each other, maybe the numbers are not necessary at all.

We discussed this shortly when we reorganized this repository. But back then it was easier to just give them numbers.
If we rename it, I'd rename the folders and package names equally. Can ROS packages start with a number? I don't think so: https://ros.org/reps/rep-0144.html#id11
Yes right :p, my fault.

Not sure if numbers are necessary, i just kept them. I prefer no numbers at all :)

Thanks for raising the question.
As a counter argument, I would argue that before we had no numbers and it was orderd alphabetically which is not good either because there is some  increasing level of difficulty.
This is not so well reflected in the numbering.  But coming back to a none numbered set of examples we will run into another presentation problem. So i would suggest a prefix: Ex_Nb which gives:
Ex_1_Position_Control_RRBot
Ex_2_Diff_Drive_DiffBot
Ex_3_Multi_Interfaces_RRBot
Ex_4_Integrated_Sensor_RRBot
Ex_5_External_Sensor_RRBot
Ex_6_Individual_Actuator_Communication_Modular_Robot
Ex_7_6DOF_Robot
Ex_8_Transmission_Interface_RRBot
Ex_9_Gazebo_Sim_Classic_RRBot
Ex_10_GPIO_Interfaces_RRBot
Ex_12_Chaining_Controllers_RRBot

Fyi once #417 can be merged I'm open for renaming.
Some examples have the same robot and controllers, but only different hardware component structure (ex 1, 3, 6, 14). Maybe we can restructure that a bit and add Ex_1a, Ex_1b, etc. Any suggestions?


BUG: scipy.interpolate interp1d extrapolate behaviour change from 1.8.1 -> 1.9.0

Describe your issue.
In scipy 1.9.0 the interp1d method with 'previous' kind and fill_value='extrapolate' seems to use the largest positive value for extrapolation.
While in 1.8.1 the last value was used for extrapolation (This seems to be the right behaviour)
To reproduce the issue execute the example code with scipy 1.9.0 and 1.8.1
Plot of the below code example in 1.8.1

And in 1.9.0

Reproducing Code Example
import numpy as np
from scipy.interpolate import interp1d
from matplotlib.pyplot import figure, show

x = np.arange(5)
y = np.array([0.0, 0.0, 1.0, 0.0, 0.0])

new_x = np.arange(50) / 10.
new_y = interp1d(x, y, 'previous', bounds_error=False, fill_value="extrapolate")(new_x)

f = figure()
s = f.add_subplot(111)
s.plot(x, y, 'x')
s.plot(new_x, new_y)
show()

Error message
/

SciPy/NumPy/Python version information
1.9.0 1.23.1 sys.version_info(major=3, minor=9, micro=5, releaselevel='final', serial=0)

Cc @AtsushiSakai , what would you say? Also cf https://github.com/scipy/scipy/issues/9591

Ah... I think my PR #16128 looks very bad.
I don't not why I used max or  min for extrapolation.
https://github.com/scipy/scipy/blob/649932fa64747ef585eabe75cf9a39e3799e3eab/scipy/interpolate/_interpolate.py#L533
https://github.com/scipy/scipy/blob/649932fa64747ef585eabe75cf9a39e3799e3eab/scipy/interpolate/_interpolate.py#L542
I think it should be the last or first element of y
I will fix it soon and the RP should be included in v1.9.1.
I'm sorry for everyone.

A case of collective blindness, more like. When you send a fix, could you test both with and without assume_sorted.


Service Discovery does not terminate.

I had an app that worked a week ago and this week hangs entirely on device.discoverServices() : The method never exits, but it  used to. Assigning a timeout value only makes the method crash.
  static final String bluetoothLeCc254xServiceUUID = "0000ffe0-0000-1000-8000-00805f9b34fb";
  static final String bluetoothLeCc254xReadUUID = "0000ffe1-0000-1000-8000-00805f9b34fb";

  Future<bool> setupCharacteristics() async {
    List<BluetoothService> services = [];
    List<BluetoothCharacteristic> characteristics = [];
    bool success = false;

    if (this._device != null) {
        services = await this._device.services.first;
        services = services.where((s) => s.uuid.toString() == bluetoothLeCc254xServiceUUID).toList();

        if (services.length > 0) {
          characteristics = services[0].characteristics;
          characteristics = characteristics.where((c) => c.uuid.toString() == bluetoothLeCc254xReadUUID).toList();
          if (characteristics.length > 0) {
            if (!characteristics[0].isNotifying)
              await characteristics[0].setNotifyValue(true);
            _characteristic = characteristics[0];
            success = true;
          }
        }
    }
    return success;
  }

  Future<bool> setupListener() async {
    if (_characteristic != null) {
      _characteristic.value.transform(
        new StreamTransformer.fromHandlers(
          handleData: (List<int> list, EventSink<List<int>> sink) {
            if (list.isNotEmpty)
              sink.add(list);
            else
              sink.add([]);
          }
        )
      ).listen((data) => DataHandler().addData(data));
      return true;
    } else
      return false;
  }

  /// Makes the phone connect to the [BluetoothDevice] and initiate [BluetoothService] discovery.
  Future<void> connect() => this._device?.let(
    (it) {
      asyncConnection();
      return;
    }
  );

  asyncConnection() async {
    await this._device.connect();
    if (Platform.isAndroid)
      await this._device.requestMtu(517);
    await this._device.discoverServices();
    await setupCharacteristics();
    await setupListener();
  }

What is the crash error?
What phone are you using?
Please share your flutter doctor -v.
Can you verify this is still happening with the latest version 0.7.0?

I can confirm I did see the same behavior without any exception or error message.
This happened when I was just scanning devices without being connected to it. Once I connect I could use that call  device.discoverServices() just fine.
jay@mini Projects % flutter doctor -v
[✓] Flutter (Channel beta, v1.15.17, on Mac OS X 10.15.3 19D76, locale en-US)
    • Flutter version 1.15.17 at /Users/jay/development/flutter
    • Framework revision 2294d75bfa (4 weeks ago), 2020-03-07 00:28:38 +0900
    • Engine revision 5aff311948
    • Dart version 2.8.0 (build 2.8.0-dev.12.0 9983424a3c)

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
    • Android SDK at /Users/jay/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-29, build-tools 29.0.2
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b4-5784211)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.3.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.3.1, Build version 11C504
    • CocoaPods version 1.9.0

[✓] Android Studio (version 3.6)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 44.0.2
    • Dart plugin version 192.7761
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b4-5784211)

[✓] VS Code (version 1.43.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.8.1

[✓] Connected device (2 available)
    • Jay’s iPhone • bc987fccd61b08a374d7fd1329958f428155b60b • ios • iOS 13.3.1
    • iPhone 8     • 2878EA5A-D561-47E4-969E-B231E23455C2     • ios • com.apple.CoreSimulator.SimRuntime.iOS-13-3 (simulator)

I verified this with your the latest git @pauldemarco
The problem still exist I don't see an exception or a error log entry in XCODE.
And it behaves that way on devices which are not connected when I call
 List<ios.BluetoothService> deviceService = await device.discoverServices();
If I set a breakpoint on the next line the breakpoint never hits.

@pauldemarco is there any insides you can share with people waiting for this. Any ETA?

@pauldemarco I think that can be closed

Hi, this issue is still open in my case (sorry for tardiness).
The device gets stuck on BluetoothConnectionStatus.BTSTATUS_DISCOVERING_SERVICES. IT works on older phones.
Flutter doctor output :
[√] Flutter (Channel master, 1.18.0-9.0.pre.58, on Microsoft Windows [Version 10.0.18362.778], locale en-CH)
    • Flutter version 1.18.0-9.0.pre.58 at C:\src\flutter
    • Framework revision 9d106bdead (2 hours ago), 2020-04-28 23:09:50 -0700
    • Engine revision bd5234780e
    • Dart version 2.9.0 (build 2.9.0-3.0.dev 726d3c7725)

[√] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at C:\Users\Atomic\AppData\Local\Android\sdk
    • Platform android-29, build-tools 29.0.3
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)
    • All Android licenses accepted.

[√] Android Studio (version 3.5)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin version 43.0.1
    • Dart plugin version 191.8593
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)

[√] IntelliJ IDEA Ultimate Edition (version 2019.3)
    • IntelliJ at C:\Program Files\JetBrains\IntelliJ IDEA 2019.2
    • Flutter plugin version 43.0.3
    • Dart plugin version 193.6015.53

[√] VS Code (version 1.44.2)
    • VS Code at C:\Users\Atomic\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.9.1

[√] Connected device (1 available)
    • Redmi Note 8 • 12fdcd54 • android-arm64 • Android 9 (API 28)

Here is the debug stack after 5 minutes :
D/BluetoothAdapter(23006): isLeEnabled(): ON
D/BluetoothLeScanner(23006): could not find callback wrapper
D/BluetoothManager(23006): getConnectedDevices
D/BluetoothGatt(23006): connect() - device: 19:08:10:17:17:0A, auto: true
D/BluetoothGatt(23006): registerApp()
D/BluetoothGatt(23006): registerApp() - UUID=7db13744-b9fb-497c-93ad-e51f732eaf67
D/BluetoothGatt(23006): onClientRegistered() - status=0 clientIf=7
D/BluetoothManager(23006): getConnectionState()
D/BluetoothManager(23006): getConnectedDevices
D/BluetoothGatt(23006): onClientConnectionState() - status=0 clientIf=7 device=19:08:10:17:17:0A
D/BluetoothGatt(23006): configureMTU() - device: 19:08:10:17:17:0A mtu: 517
D/BluetoothGatt(23006): discoverServices() - device: 19:08:10:17:17:0A
D/BluetoothGatt(23006): onConnectionUpdated() - Device=19:08:10:17:17:0A interval=6 latency=0 timeout=500 status=0
D/BluetoothGatt(23006): onConfigureMTU() - Device=19:08:10:17:17:0A mtu=131 status=0
D/BluetoothGatt(23006): onConnectionUpdated() - Device=19:08:10:17:17:0A interval=36 latency=0 timeout=500 status=0
D/BluetoothGatt(23006): onConnectionUpdated() - Device=19:08:10:17:17:0A interval=12 latency=0 timeout=600 status=0
```

I had the same problem.
I had a
await device.connect();
await printDevice.requestMtu(128);
And it hanged forever in
List services = await device.discoverServices();
Just removing the requestMtu works fine.

Just removing the requestMtu works fine.

I have no requestMtu but my app hangs forever on discoverServices occasionally, I could only pin-point it after adding .timeouts to nearly every Future


Exhibit upload problem

Uploaded attachment do not appear in preview or download as an attachment.

This form does not need exhibits


s/braking/breaking/

Great plugin, thank you!

+1

Pull Request Test Coverage Report for Build 103

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build 102:
0.0%

Covered Lines:
13

Relevant Lines:
13

💛  - Coveralls

Thanks! 🥇


Lazy load required classes

This allows requiring puppet-syntax without loading all of Puppet, which helps speed up other rake commands.

This is broken on Puppet and concurrent-ruby 1.2.0. They're working on new releases so we should kick CI again.

Green after rebasing on 5e3ece0b08a40ddf2f6d5710ea8ae84b07d13a2c


Propose using weback export settings over expose-loader

I found it was a bit less boilerplate to expose components this way, rather than by using expose-loader.
Not 100% sure this is the best way to integrate into existing docs, but figured I'd offer it as a quick suggestion.  (Especially, might need some reworking to use with separate client/server bundles.)

Hi there, it looks like this PR is getting stale and is unfortunately not mergeable as is. I'm going to close it, but feel free to revisit it in the future if you'd like!


Add taskId parameter support to the List Strings API endpoint

The Crowdin API now supports filtering strings by task ID by using the taskId parameter in the List Strings API endpoint.
It should also be added to this Crowdin API client.

I am interested to take this up

Hi @PranjalAgni, do you need any assistance on this?


[FEAT] Option keep signed in when logging in

Hi @joaochris, may I please ask additional info about this one? Thanks.

Clear :). When we haven't logged in for a while, we need to log in again. This process gets repetitive. It would be much better if it could save our session with the option to keep logged in, and then we will always log in without having to log in.

Ah... now I understand. 😁 I will try to find a way on how to improve that. Currently, the session is only active for 1 day.


proxy: local grpc proxying

The features in the grpcproxy (coalescing, key caching) also make sense when run directly on the client instead of making a network hop to separate proxy.
This is already exists to some extent for the integration/ tests, but it's still not ready for prime time.
What's missing:

clientv3 CallOption pass-through; needed for correct FailFast handling
-tag cluster_proxy for client integration tests

@heyitsanthony This is already possible?

Needs testing to close. -tags cluster_proxy will work on clientv3 integration but that gets the client connecting to a proxy, not the client with a local proxy connecting to the core cluster. Still needs the CallOption support for some failure cases IIRC


Try using xla when tf.function-ing

See if there are any performance improvements?

Lol made it worse actually (just ran some small-ish fully connected net tests on the 3M taxi dataset).  Might help with larger models, could consider adding it as a tensorflow-specific option.  Going to close for now though.


Bugfixes and other changes

 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.

Please approve the changes


Update Go README with working bazel config flag

The bazel --config flag wasn't working. Had to use -c.
https://github.com/tensorflow/serving/issues/517

I signed it!


fix: bug in testing matching train dialog

:tada: This PR is included in version 0.351.1 :tada:
The release is available on:

npm package (@next dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Update build system to idf 4.3+

I also formatted with prettier so thats why there are more changes than there really are.
changed the prop for namespace in the sio struct to sio_namespace so the c++ compiler doesn't scream (even though I think he shouldn't since extern "C" is defined but whatever)
changed some prints that tried to print an unsigned long long int to %llu from %d
the rest are built system and dependency changes

Hello @ZweiEuro and thank you for taking an interest and contributing to this experiment. Before approving this PR I would like to ask you to rephrase the commit message for a008f0f to something more appropriate.
I also do not like some (not all) of the coding style corrections (which are BTW better placed in a distinct commit, but this is just a nitpick for future reference) - this includes the conditional expression formatting (if/else statements).
Since there was no official coding style standard determined prior to this point, I would choose to use the Google C++ Coding Style which also has more similarity to de-facto standard coding styles for other programming languages.
Cheers.

Hi! Yeah I was looking into this and just threw it together. But the project is missing some things anyways and is not on EIO4 anyways.
I am rewriting it a bit to support ws and long polling with both transports, give me a bit of time but I am grateful to use your code as a jump off point


Merge Shipping_Cost_Calculator.py to the main branch

Creating pull request to add the python code functionality back to the main branch from the second Shipping_Calculation branch

Pull request accepted to merge the branches with the python file


Add some typescript type definitions

The majority of this was auto-generated by running the following command:
npx typescript --build tsconfig.json

Then I went through and converted some of the any to a more specific type.
These are not exhaustive types, but it makes VSCode autocomplete much better.
Examples:

Before this, it wouldn't show me inline autocomplete for anything in noa and I had to check the API.md docs a lot
Might be nice to remove all the definitions for noa in the classes and then anything prefixed with an _. I sometimes use the _ functions though.

Hi, this looks really useful! Way back in the day I used to get full autocomplete suggestions like this from VSCode even without typings, but it stopped working at some point and would be great to get back. Let me take this for a spin in my own env and check that I get the same results.
BTW: I generally keep all new dev in the #develop branch, so I'll edit this PR to base against that. Never tried changing the base of a PR before; hopefully it won't mess things up.

I think VSCode’s automatic autocomplete stuff works a little better with
ES6 classes than Classname.prototype.methodName style - not sure why though.
I based it on master because there are no functional code changes but I can
see why develop makes more sense
Feel free to edit as you see fit, though I’d feel bad if this just creates
work for you
For types to be really nice, would also need to do it for ECS and the
physics engine — but it would get pretty tricky with custom components.
There’s probablyyy a way to do that in TypeScript but often being fancy
with TypeScript or Flow ends up causing issues later. I personally only
care about nice autocomplete and figured some types was better than not
having them
As a side note, I briefly explored moving the terrain mesher stuff to a
worker but it’s really complicated to do that. The best approach I can
think of involves SharedArrayBuffer but Firefox / Safari wont like that. I
might explore doing that later
On Thu, May 28, 2020 at 9:42 PM Andy Hall<EMAIL_ADDRESS>wrote:

Hi, this looks really useful! Way back in the day I used to get full
autocomplete suggestions like this from VSCode even without typings, but it
stopped working at some point and would be great to get back. Let me take
this for a spin in my own env and check that I get the same results.
BTW: I generally keep all new dev in the #develop branch, so I'll edit
this PR to base against that. Never tried changing the base of a PR before;
hopefully it won't mess things up.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/andyhall/noa/pull/113#issuecomment-635755164, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFNGS2SMMPW6UK7OMAMNJ3RT44MJANCNFSM4NJDWNWA
.

Yeah, we're in agreement. Getting good code hints is definitely worth adding a build step, but while somebody could certainly add manual annotations to say that e.g. ents.getPhysicsBody returns such and such a signature, I think it's the nature of the beast that the ECS is going to prevent automated tools from finding that signature automatically. Unless, say, there's a TS-specific way to declare such things in a function's jsdoc comment, or similar? As I'm not currently using TS I'm hazy on the details.
As for the mesher, yeah it should be possible in principle, but it's hairy (since there are already a lot of async steps in that process), and it's not obvious that it would wind up being a performance win. (Assuming the perf issue you were seeing with array merges is fixed, I mean.) So for those reasons I've been figuring it's best for meshing to stay synchronous for now.

Sorry for the delay on this, for some reason I can't seem to get the nice code hints to show up in my local environment but I'll go ahead and merge this on the assumption that it's working somewhere, maybe it can be fixed later.


When using an external minio S3 bucket as storage, an error will be reported when executing db upgrade:

https://artifacthub.io/packages/helm/douban/dify
install it
$ helm repo add douban https://douban.github.io/charts/
$ helm pull douban/dify

APPLICATION VERSION
0.6.8
I used an external minio and executed db migration (kubectl exec -it dify-pod-name -- flask db upgrade) after installation, but an error always occurred.
 Models won't be available and only tokenizers, configuration and file/data utilities can be used.
2024-05-28 08:32:41.496 DEBUG [MainThread] [hooks.py:482] - Changing event name from creating-client-class.iot-data to creating-client-class.iot-data-plane
2024-05-28 08:32:41.498 DEBUG [MainThread] [hooks.py:482] - Changing event name from before-call.apigateway to before-call.api-gateway
2024-05-28 08:32:41.499 DEBUG [MainThread] [hooks.py:482] - Changing event name from request-created.machinelearning.Predict to request-created.machine-learning.Predict
2024-05-28 08:32:41.500 DEBUG [MainThread] [hooks.py:482] - Changing event name from before-parameter-build.autoscaling.CreateLaunchConfiguration to before-parameter-build.auto-scaling.CreateLaunchConfiguration
2024-05-28 08:32:41.500 DEBUG [MainThread] [hooks.py:482] - Changing event name from before-parameter-build.route53 to before-parameter-build.route-53
2024-05-28 08:32:41.501 DEBUG [MainThread] [hooks.py:482] - Changing event name from request-created.cloudsearchdomain.Search to request-created.cloudsearch-domain.Search
2024-05-28 08:32:41.501 DEBUG [MainThread] [hooks.py:482] - Changing event name from docs.*.autoscaling.CreateLaunchConfiguration.complete-section to docs.*.auto-scaling.CreateLaunchConfiguration.complete-section
2024-05-28 08:32:41.504 DEBUG [MainThread] [hooks.py:482] - Changing event name from before-parameter-build.logs.CreateExportTask to before-parameter-build.cloudwatch-logs.CreateExportTask
2024-05-28 08:32:41.504 DEBUG [MainThread] [hooks.py:482] - Changing event name from docs.*.logs.CreateExportTask.complete-section to docs.*.cloudwatch-logs.CreateExportTask.complete-section
2024-05-28 08:32:41.504 DEBUG [MainThread] [hooks.py:482] - Changing event name from before-parameter-build.cloudsearchdomain.Search to before-parameter-build.cloudsearch-domain.Search
2024-05-28 08:32:41.504 DEBUG [MainThread] [hooks.py:482] - Changing event name from docs.*.cloudsearchdomain.Search.complete-section to docs.*.cloudsearch-domain.Search.complete-section
2024-05-28 08:32:41.510 DEBUG [MainThread] [utils.py:432] - IMDS ENDPOINT: http://<IP_ADDRESS>/
2024-05-28 08:32:41.512 DEBUG [MainThread] [credentials.py:2038] - Looking for credentials via: env
2024-05-28 08:32:41.512 DEBUG [MainThread] [credentials.py:2038] - Looking for credentials via: assume-role
2024-05-28 08:32:41.512 DEBUG [MainThread] [credentials.py:2038] - Looking for credentials via: assume-role-with-web-identity
2024-05-28 08:32:41.512 DEBUG [MainThread] [credentials.py:2038] - Looking for credentials via: sso
2024-05-28 08:32:41.512 DEBUG [MainThread] [credentials.py:2038] - Looking for credentials via: shared-credentials-file
2024-05-28 08:32:41.513 DEBUG [MainThread] [credentials.py:2038] - Looking for credentials via: custom-process
2024-05-28 08:32:41.513 DEBUG [MainThread] [credentials.py:2038] - Looking for credentials via: config-file
2024-05-28 08:32:41.513 DEBUG [MainThread] [credentials.py:2038] - Looking for credentials via: ec2-credentials-file
2024-05-28 08:32:41.513 DEBUG [MainThread] [credentials.py:2038] - Looking for credentials via: boto-config
2024-05-28 08:32:41.513 DEBUG [MainThread] [credentials.py:2038] - Looking for credentials via: container-role
2024-05-28 08:32:41.513 DEBUG [MainThread] [credentials.py:2038] - Looking for credentials via: iam-role
2024-05-28 08:32:41.514 DEBUG [MainThread] [connectionpool.py:245] - Starting new HTTP connection (1): <IP_ADDRESS>:80
2024-05-28 08:32:42.518 DEBUG [MainThread] [utils.py:466] - Caught retryable HTTP exception while making metadata service request to http://<IP_ADDRESS>/latest/api/token: Connect timeout on endpoint URL: "http://<IP_ADDRESS>/latest/api/token"
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/urllib3/connection.py", line 203, in _new_conn
    sock = connection.create_connection(
  File "/usr/local/lib/python3.10/site-packages/urllib3/util/connection.py", line 85, in create_connection
    raise err
  File "/usr/local/lib/python3.10/site-packages/urllib3/util/connection.py", line 73, in create_connection
    sock.connect(sa)
  File "/usr/local/lib/python3.10/site-packages/gevent/_socketcommon.py", line 590, in connect
    self._internal_connect(address)
  File "/usr/local/lib/python3.10/site-packages/gevent/_socketcommon.py", line 640, in _internal_connect
    self._wait(self._write_event)
  File "src/gevent/_hub_primitives.py", line 317, in gevent._gevent_c_hub_primitives.wait_on_socket
  File "src/gevent/_hub_primitives.py", line 322, in gevent._gevent_c_hub_primitives.wait_on_socket
  File "src/gevent/_hub_primitives.py", line 313, in gevent._gevent_c_hub_primitives._primitive_wait
  File "src/gevent/_hub_primitives.py", line 314, in gevent._gevent_c_hub_primitives._primitive_wait
  File "src/gevent/_hub_primitives.py", line 46, in gevent._gevent_c_hub_primitives.WaitOperationsGreenlet.wait
  File "src/gevent/_hub_primitives.py", line 46, in gevent._gevent_c_hub_primitives.WaitOperationsGreenlet.wait
  File "src/gevent/_hub_primitives.py", line 55, in gevent._gevent_c_hub_primitives.WaitOperationsGreenlet.wait
  File "src/gevent/_waiter.py", line 154, in gevent._gevent_c_waiter.Waiter.get
  File "src/gevent/_greenlet_primitives.py", line 61, in gevent._gevent_c_greenlet_primitives.SwitchOutGreenletWithLoop.switch
  File "src/gevent/_greenlet_primitives.py", line 61, in gevent._gevent_c_greenlet_primitives.SwitchOutGreenletWithLoop.switch
  File "src/gevent/_greenlet_primitives.py", line 65, in gevent._gevent_c_greenlet_primitives.SwitchOutGreenletWithLoop.switch
  File "src/gevent/_gevent_c_greenlet_primitives.pxd", line 35, in gevent._gevent_c_greenlet_primitives._greenlet_switch
TimeoutError: timed out

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/botocore/httpsession.py", line 464, in send
    urllib_response = conn.urlopen(
  File "/usr/local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 845, in urlopen
    retries = retries.increment(
  File "/usr/local/lib/python3.10/site-packages/urllib3/util/retry.py", line 445, in increment
    raise reraise(type(error), error, _stacktrace)
  File "/usr/local/lib/python3.10/site-packages/urllib3/util/util.py", line 39, in reraise
    raise value
  File "/usr/local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 791, in urlopen
    response = self._make_request(
  File "/usr/local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 497, in _make_request
    conn.request(
  File "/usr/local/lib/python3.10/site-packages/botocore/awsrequest.py", line 96, in request
    rval = super().request(method, url, body, headers, *args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/urllib3/connection.py", line 395, in request
    self.endheaders()
  File "/usr/local/lib/python3.10/http/client.py", line 1278, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/usr/local/lib/python3.10/site-packages/botocore/awsrequest.py", line 123, in _send_output
    self.send(msg)
  File "/usr/local/lib/python3.10/site-packages/botocore/awsrequest.py", line 223, in send
    return super().send(str)
  File "/usr/local/lib/python3.10/http/client.py", line 976, in send
    self.connect()
  File "/usr/local/lib/python3.10/site-packages/urllib3/connection.py", line 243, in connect
    self.sock = self._new_conn()
  File "/usr/local/lib/python3.10/site-packages/urllib3/connection.py", line 212, in _new_conn
    raise ConnectTimeoutError(
urllib3.exceptions.ConnectTimeoutError: (<botocore.awsrequest.AWSHTTPConnection object at 0x7f076392e200>, 'Connection to <IP_ADDRESS> timed out. (connect timeout=1)')

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/botocore/utils.py", line 456, in _fetch_metadata_token
    response = self._session.send(request.prepare())
  File "/usr/local/lib/python3.10/site-packages/botocore/httpsession.py", line 499, in send
    raise ConnectTimeoutError(endpoint_url=request.url, error=e)
botocore.exceptions.ConnectTimeoutError: Connect timeout on endpoint URL: "http://<IP_ADDRESS>/latest/api/token"
2024-05-28 08:32:42.523 DEBUG [MainThread] [connectionpool.py:245] - Starting new HTTP connection (2): <IP_ADDRESS>:80
2024-05-28 08:32:43.525 DEBUG [MainThread] [utils.py:513] - Caught retryable HTTP exception while making metadata service request to http://<IP_ADDRESS>/latest/meta-data/iam/security-credentials/: Connect timeout on endpoint URL: "http://<IP_ADDRESS>/latest/meta-data/iam/security-credentials/"
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/urllib3/connection.py", line 203, in _new_conn
    sock = connection.create_connection(
  File "/usr/local/lib/python3.10/site-packages/urllib3/util/connection.py", line 85, in create_connection
    raise err
  File "/usr/local/lib/python3.10/site-packages/urllib3/util/connection.py", line 73, in create_connection
    sock.connect(sa)
  File "/usr/local/lib/python3.10/site-packages/gevent/_socketcommon.py", line 590, in connect
    self._internal_connect(address)
  File "/usr/local/lib/python3.10/site-packages/gevent/_socketcommon.py", line 640, in _internal_connect
    self._wait(self._write_event)
  File "src/gevent/_hub_primitives.py", line 317, in gevent._gevent_c_hub_primitives.wait_on_socket
  File "src/gevent/_hub_primitives.py", line 322, in gevent._gevent_c_hub_primitives.wait_on_socket
  File "src/gevent/_hub_primitives.py", line 313, in gevent._gevent_c_hub_primitives._primitive_wait
  File "src/gevent/_hub_primitives.py", line 314, in gevent._gevent_c_hub_primitives._primitive_wait
  File "src/gevent/_hub_primitives.py", line 46, in gevent._gevent_c_hub_primitives.WaitOperationsGreenlet.wait
  File "src/gevent/_hub_primitives.py", line 46, in gevent._gevent_c_hub_primitives.WaitOperationsGreenlet.wait
  File "src/gevent/_hub_primitives.py", line 55, in gevent._gevent_c_hub_primitives.WaitOperationsGreenlet.wait
  File "src/gevent/_waiter.py", line 154, in gevent._gevent_c_waiter.Waiter.get
  File "src/gevent/_greenlet_primitives.py", line 61, in gevent._gevent_c_greenlet_primitives.SwitchOutGreenletWithLoop.switch
  File "src/gevent/_greenlet_primitives.py", line 61, in gevent._gevent_c_greenlet_primitives.SwitchOutGreenletWithLoop.switch
  File "src/gevent/_greenlet_primitives.py", line 65, in gevent._gevent_c_greenlet_primitives.SwitchOutGreenletWithLoop.switch
  File "src/gevent/_gevent_c_greenlet_primitives.pxd", line 35, in gevent._gevent_c_greenlet_primitives._greenlet_switch
TimeoutError: timed out

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/botocore/httpsession.py", line 464, in send
    urllib_response = conn.urlopen(
  File "/usr/local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 845, in urlopen
    retries = retries.increment(
  File "/usr/local/lib/python3.10/site-packages/urllib3/util/retry.py", line 445, in increment
    raise reraise(type(error), error, _stacktrace)
  File "/usr/local/lib/python3.10/site-packages/urllib3/util/util.py", line 39, in reraise
    raise value
  File "/usr/local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 791, in urlopen
    response = self._make_request(
  File "/usr/local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 497, in _make_request
    conn.request(
  File "/usr/local/lib/python3.10/site-packages/botocore/awsrequest.py", line 96, in request
    rval = super().request(method, url, body, headers, *args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/urllib3/connection.py", line 395, in request
    self.endheaders()
  File "/usr/local/lib/python3.10/http/client.py", line 1278, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/usr/local/lib/python3.10/site-packages/botocore/awsrequest.py", line 123, in _send_output
    self.send(msg)
  File "/usr/local/lib/python3.10/site-packages/botocore/awsrequest.py", line 223, in send
    return super().send(str)
  File "/usr/local/lib/python3.10/http/client.py", line 976, in send
    self.connect()
  File "/usr/local/lib/python3.10/site-packages/urllib3/connection.py", line 243, in connect
    self.sock = self._new_conn()
  File "/usr/local/lib/python3.10/site-packages/urllib3/connection.py", line 212, in _new_conn
    raise ConnectTimeoutError(
urllib3.exceptions.ConnectTimeoutError: (<botocore.awsrequest.AWSHTTPConnection object at 0x7f076392f4f0>, 'Connection to <IP_ADDRESS> timed out. (connect timeout=1)')

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/botocore/utils.py", line 509, in _get_request
    response = self._session.send(request.prepare())
  File "/usr/local/lib/python3.10/site-packages/botocore/httpsession.py", line 499, in send
    raise ConnectTimeoutError(endpoint_url=request.url, error=e)
botocore.exceptions.ConnectTimeoutError: Connect timeout on endpoint URL: "http://<IP_ADDRESS>/latest/meta-data/iam/security-credentials/"
2024-05-28 08:32:43.526 DEBUG [MainThread] [utils.py:599] - Max number of attempts exceeded (1) when attempting to retrieve data from metadata service.
2024-05-28 08:32:43.528 DEBUG [MainThread] [loaders.py:180] - Loading JSON file: /usr/local/lib/python3.10/site-packages/botocore/data/endpoints.json
2024-05-28 08:32:43.543 DEBUG [MainThread] [loaders.py:180] - Loading JSON file: /usr/local/lib/python3.10/site-packages/botocore/data/sdk-default-configuration.json
2024-05-28 08:32:43.543 DEBUG [MainThread] [hooks.py:238] - Event choose-service-name: calling handler <function handle_service_name_alias at 0x7f079215d2d0>
2024-05-28 08:32:43.556 DEBUG [MainThread] [loaders.py:180] - Loading JSON file: /usr/local/lib/python3.10/site-packages/botocore/data/s3/2006-03-01/service-2.json
2024-05-28 08:32:43.579 DEBUG [MainThread] [loaders.py:180] - Loading JSON file: /usr/local/lib/python3.10/site-packages/botocore/data/s3/2006-03-01/endpoint-rule-set-1.json.gz
2024-05-28 08:32:43.583 DEBUG [MainThread] [loaders.py:180] - Loading JSON file: /usr/local/lib/python3.10/site-packages/botocore/data/partitions.json
2024-05-28 08:32:43.585 DEBUG [MainThread] [hooks.py:238] - Event creating-client-class.s3: calling handler <function add_generate_presigned_post at 0x7f07920c71c0>
2024-05-28 08:32:43.585 DEBUG [MainThread] [hooks.py:238] - Event creating-client-class.s3: calling handler <function lazy_call.<locals>._handler at 0x7f0763d87d00>
2024-05-28 08:32:43.598 DEBUG [MainThread] [hooks.py:238] - Event creating-client-class.s3: calling handler <function add_generate_presigned_url at 0x7f07920c6f80>
2024-05-28 08:32:43.599 DEBUG [MainThread] [configprovider.py:942] - Looking for endpoint for s3 via: environment_service
2024-05-28 08:32:43.599 DEBUG [MainThread] [configprovider.py:942] - Looking for endpoint for s3 via: environment_global
2024-05-28 08:32:43.599 DEBUG [MainThread] [configprovider.py:942] - Looking for endpoint for s3 via: config_service
2024-05-28 08:32:43.599 DEBUG [MainThread] [configprovider.py:942] - Looking for endpoint for s3 via: config_global
2024-05-28 08:32:43.599 DEBUG [MainThread] [configprovider.py:958] - No configured endpoint found.
2024-05-28 08:32:43.600 DEBUG [MainThread] [endpoint.py:408] - Setting s3 timeout as (60, 60)
2024-05-28 08:32:43.602 DEBUG [MainThread] [loaders.py:180] - Loading JSON file: /usr/local/lib/python3.10/site-packages/botocore/data/_retry.json
2024-05-28 08:32:43.603 DEBUG [MainThread] [client.py:282] - Registering retry handlers for service: s3
2024-05-28 08:32:43.603 DEBUG [MainThread] [utils.py:1587] - Registering S3 region redirector handler
INFO  [alembic.runtime.migration] Context impl PostgresqlImpl.
INFO  [alembic.runtime.migration] Will assume transactional DDL.
INFO  [alembic.runtime.migration] Running upgrade  -> 64b051264f32, init
INFO  [alembic.runtime.migration] Running upgrade 64b051264f32 -> 9f4e3427ea84, add created by role
INFO  [alembic.runtime.migration] Running upgrade 9f4e3427ea84 -> a45f4dfde53b, add language to recommend apps
INFO  [alembic.runtime.migration] Running upgrade a45f4dfde53b -> 614f77cecc48, add last active at
INFO  [alembic.runtime.migration] Running upgrade 614f77cecc48 -> e32f6ccb87c6, e08af0a69ccefbb59fa80c778efee300bb780980
INFO  [alembic.runtime.migration] Running upgrade e32f6ccb87c6 -> d3d503a3471c, add is_deleted to conversations
INFO  [alembic.runtime.migration] Running upgrade d3d503a3471c -> a5b56fb053ef, app config add speech_to_text
INFO  [alembic.runtime.migration] Running upgrade a5b56fb053ef -> 2beac44e5f5f, add is_universal in apps
INFO  [alembic.runtime.migration] Running upgrade 2beac44e5f5f -> 7ce5a52e4eee, add tool providers
INFO  [alembic.runtime.migration] Running upgrade 7ce5a52e4eee -> 8d2d099ceb74, add_qa_model_support
INFO  [alembic.runtime.migration] Running upgrade 8d2d099ceb74 -> 16fa53d9faec, add provider model support
INFO  [alembic.runtime.migration] Running upgrade 16fa53d9faec -> e35ed59becda, modify quota limit field type
INFO  [alembic.runtime.migration] Running upgrade e35ed59becda -> bf0aec5ba2cf, add provider order
INFO  [alembic.runtime.migration] Running upgrade bf0aec5ba2cf -> 5022897aaceb, add model name in embedding
INFO  [alembic.runtime.migration] Running upgrade 5022897aaceb -> 2c8af9671032, add_qa_document_language
INFO  [alembic.runtime.migration] Running upgrade 2c8af9671032 -> e8883b0148c9, add_dataset_model_name
INFO  [alembic.runtime.migration] Running upgrade e8883b0148c9 -> 853f9b9cd3b6, add message price unit
INFO  [alembic.runtime.migration] Running upgrade 853f9b9cd3b6 -> 4bcffcd64aa4, update_dataset_model_field_null_available
INFO  [alembic.runtime.migration] Running upgrade 4bcffcd64aa4 -> 6dcb43972bdc, add_dataset_retriever_resource
INFO  [alembic.runtime.migration] Running upgrade 6dcb43972bdc -> 77e83833755c, add_app_config_retriever_resource
INFO  [alembic.runtime.migration] Running upgrade 77e83833755c -> 6e2cfb077b04, add_dataset_collection_binding
INFO  [alembic.runtime.migration] Running upgrade 6e2cfb077b04 -> ab23c11305d4, add dataset query variable at app model configs.
INFO  [alembic.runtime.migration] Running upgrade ab23c11305d4 -> 2e9819ca5b28, add_tenant_id_in_api_token
INFO  [alembic.runtime.migration] Running upgrade 2e9819ca5b28 -> b3a09c049e8e, add advanced prompt templates
INFO  [alembic.runtime.migration] Running upgrade b3a09c049e8e -> 968fff4c0ab9, add_api_based_extension
INFO  [alembic.runtime.migration] Running upgrade 968fff4c0ab9 -> a9836e3baeee, add external_data_tools in app model config
INFO  [alembic.runtime.migration] Running upgrade a9836e3baeee -> 8fe468ba0ca5, add gpt4v supports
INFO  [alembic.runtime.migration] Running upgrade 8fe468ba0ca5 -> fca025d3b60f, add-dataset-retrival-model
INFO  [alembic.runtime.migration] Running upgrade fca025d3b60f -> e1901f623fd0, add-annotation-reply
INFO  [alembic.runtime.migration] Running upgrade e1901f623fd0 -> 46976cc39132, add-annotation-histoiry-score
INFO  [alembic.runtime.migration] Running upgrade 46976cc39132 -> f2a6fc85e260, add_anntation_history_message_id
INFO  [alembic.runtime.migration] Running upgrade f2a6fc85e260 -> 714aafe25d39, add_anntation_history_match_response
INFO  [alembic.runtime.migration] Running upgrade 714aafe25d39 -> 246ba09cbbdb, add_app_anntation_setting
INFO  [alembic.runtime.migration] Running upgrade 246ba09cbbdb -> 88072f0caa04, add custom config in tenant
INFO  [alembic.runtime.migration] Running upgrade 88072f0caa04 -> 187385f442fc, modify provider model name length
INFO  [alembic.runtime.migration] Running upgrade 187385f442fc -> 89c7899ca936, empty message
INFO  [alembic.runtime.migration] Running upgrade 89c7899ca936 -> 3ef9b2b6bee6, add_assistant_app
INFO  [alembic.runtime.migration] Running upgrade 3ef9b2b6bee6 -> ad472b61a054, add api provider icon
INFO  [alembic.runtime.migration] Running upgrade ad472b61a054 -> 8ec536f3c800, rename api provider credentials
INFO  [alembic.runtime.migration] Running upgrade 8ec536f3c800 -> 00bacef91f18, rename api provider description
INFO  [alembic.runtime.migration] Running upgrade 00bacef91f18 -> f25003750af4, add created/updated at
INFO  [alembic.runtime.migration] Running upgrade f25003750af4 -> c71211c8f604, add tool_invoke_model_log
INFO  [alembic.runtime.migration] Running upgrade c71211c8f604 -> 114eed84c228, remove tool id from model invoke
INFO  [alembic.runtime.migration] Running upgrade 114eed84c228 -> 4829e54d2fee, change message chain id to nullable
INFO  [alembic.runtime.migration] Running upgrade 4829e54d2fee -> 053da0c1d756, add api tool privacy
INFO  [alembic.runtime.migration] Running upgrade 053da0c1d756 -> 4823da1d26cf, add tool file
INFO  [alembic.runtime.migration] Running upgrade 4823da1d26cf -> 9fafbd60eca1, add message file belongs to
INFO  [alembic.runtime.migration] Running upgrade 9fafbd60eca1 -> 8ae9bc661daa, add tool conversation variables idx
INFO  [alembic.runtime.migration] Running upgrade 8ae9bc661daa -> 23db93619b9d, add message files into agent thought
INFO  [alembic.runtime.migration] Running upgrade 23db93619b9d -> de95f5c77138, migration serpapi_api_key
INFO  [alembic.runtime.migration] Running upgrade de95f5c77138 -> b24be59fbb04, empty message
INFO  [alembic.runtime.migration] Running upgrade b24be59fbb04 -> dfb3b7f477da, add-tool-index
INFO  [alembic.runtime.migration] Running upgrade dfb3b7f477da -> 380c6aa5a70d, add tool labels to agent thought
INFO  [alembic.runtime.migration] Running upgrade 380c6aa5a70d -> 16830a790f0f, empty message
INFO  [alembic.runtime.migration] Running upgrade 16830a790f0f -> a8f9b3c45e4a, add_tenant_id_db_index
INFO  [alembic.runtime.migration] Running upgrade a8f9b3c45e4a -> 17b5ab037c40, add-keyworg-table-storage-type
INFO  [alembic.runtime.migration] Running upgrade 17b5ab037c40 -> a8d7385a7b66, add-embeddings-provider-name
INFO  [alembic.runtime.migration] Running upgrade a8d7385a7b66 -> b289e2408ee2, add workflow
INFO  [alembic.runtime.migration] Running upgrade b289e2408ee2 -> cc04d0998d4d, set model config column nullable
INFO  [alembic.runtime.migration] Running upgrade cc04d0998d4d -> f9107f83abab, add desc for apps
INFO  [alembic.runtime.migration] Running upgrade f9107f83abab -> 42e85ed5564d, conversation columns set nullable
INFO  [alembic.runtime.migration] Running upgrade 42e85ed5564d -> b5429b71023c, messages columns set nullable
INFO  [alembic.runtime.migration] Running upgrade b5429b71023c -> 563cf8bf777b, enable tool file without conversation id
INFO  [alembic.runtime.migration] Running upgrade 563cf8bf777b -> e2eacc9a1b63, add status for message
INFO  [alembic.runtime.migration] Running upgrade e2eacc9a1b63 -> c3311b089690, add tool meta
INFO  [alembic.runtime.migration] Running upgrade c3311b089690 -> 3c7cac9521c6, add-tags-and-binding-table
INFO  [alembic.runtime.migration] Running upgrade 3c7cac9521c6 -> 47cc7df8c4f3, modify default model name length

I don't know if it's a problem with my configuration or something else. I used the mc command to test that this S3 bucket can be connected.
So can you help me find out what's going on? In fact, I also tried using isilon's bucket, but it still failed similarly.

Unfortunately I cannot help you with this specific issue, I can only solve problem when you know there's something wrong with the yaml rendering, but I cannot see any clue about that.
please consult with the dify document or submit issue on their issue list.

我刚刚发现你的 values 写的不对, 你可能被我写的 values 误导了 https://github.com/douban/charts/pull/86 我已经提了 pr 清理有误导的注释, 你可以再读读 readme , 按照 readme 进行操作.

@LeoQuote
我的values.yaml 看起来没问题呀。如果有，请麻烦指出来。我看了很久，没看出来问题。
里面的IP确实是minio的ip地址。而且你的readme里给出的minio的例子，没有考虑过minio的地址是自定义证书的情况。
global:
  extraBackendEnvs:
  - name: S3_ENDPOINT
    value: "https://my-endpoint.s3.com"
  - name: S3_BUCKET_NAME
    value: "dify"
  # it is adviced to use secret to manage you sensitive info including password
  - name: S3_ACCESS_KEY
    valueFrom:
      secretKeyRef:
        name: dify
        key: S3_ACCESS_KEY
  - name: S3_SECRET_KEY
    valueFrom:
      secretKeyRef:
        name: dify
        key: S3_SECRET_KEY

readme里有下面的情况好像就没考虑到：
情况1：
自定义证书的情况下需要verify_ssl: false
情况2：
像islion存储提供的S3 bucket可能不是标准的443端口。

如果你想解决问题的话, 就把 minio.embedded 设置成 true , 然后再对照 minio chart 的填写方式开启持久化即可.
你说的这几个问题欢迎 pr

好吧，我对minio.embedded这个东西理解不了。希望能添加下注释。
我一度以为minio.embedded=false，将会使用外部的minio；如果设置minio.embedded=true，将在安装时使用chart里自安装的ninio。
另外刚刚我修改minio.embedded=true后，再kubectl exec -it dify-worker-55c8b5fc6c-8j5vm -n dify -- flask db upgrade 执行这个操作，刚才看起来没问题了。所以谢谢了。
疑惑的是，这个时候跑到minio的存储桶里居然是空的。那db upgrade不会向这个S3 BUCKET写入东西么？
这个S3 BUCKET是做什么用的？

这个选项和你想的是一样的, 设置 为 true 就是全包了, 设置为 false 就是需要你手动注入环境变量, 环境变量的全部配置还请参考 dify 的文档和代码, 有必要的话可以 提 issue 问他们.
当前也是有一些注释的, 欢迎pr 添加更多注释.
https://github.com/douban/charts/blob/164332b343625649e8cdae44505b0fa65174ffcd/charts/dify/values.yaml#L409-L414
里面为什么是空的, 这个我也解释不了, 不好意思我只是个 yaml 工程师, 有兴趣可以去问 dify 项目组

好吧，原来设置为minio.embedded=true，还是使用的chart里自带的minio的S3 bucket。
那就是我这个问题，其实没解决。

可以阅读一下 readme 哦，有问题请提新issue

问题刚刚已经解决了。谢谢！


[WFLY-17741] Using wildcard (*) in combination with test-connection-in-pool operation on (non)XA datasource

Issue: https://issues.redhat.com/browse/WFLY-17741

Hello, khermano. I'm waiting for one of the admins to verify this patch with /ok-to-test in a comment.

/ok-to-test

Hi @khermano -- I don't think this will work and if it does it isn't how operations with a wildcard address are meant to work. If you use a wildcard in the address for an operation you should get a complex response that consists of multiple elements in a list, one for each actual resource that matched the wildcard.  Each element must include a section that shows the address of the specific resource, and then one that shows the normal response for that resource.  These must work correctly both in standalone mode and domain, and the wildcard must be allowed in any part of the address, not just the final element in the address.
This is quite complex to implement correctly, and adding this to a particular operation is a Feature Request; the absence of it for an operation is not a bug. As noted in https://issues.redhat.com/browse/WFLY-17741 I don't think we should attempt to do this, and if we do I don't any work should be done until a full eng/docs/qe feature team is formed with buy-in as to when it will be delivered.

See also https://issues.redhat.com/browse/WFLY-17745

Hi @bstansberry. Thank you for your review, quick response, and all the information.
In such a case, I will close the PR and if you agree, I will resolve the issue with a Won't Do resolution? Or should I use something else?

Hi @khermano -- Won't Do sounds fine.

Thank you for the information @bstansberry. :)

@bstansberry, in the JIRA description, you mentioned that it'd be a lot of work requiring experienced engineers' involvement. Would it be better to unassign the issue and close this PR so it is easier to pick it up?

@khermano Yes, unassigning is fine. I'll go ahead and close this PR now.


Release02

So this will require a release of lingrex, and possibly one of cldfviz, to then plot the figures with it, right?

Yes.

So we may also wait with those two. Just thought I already post what I have.

I suggest I do the re-release of lingrex this morning. There's not more to add by now.

can do, too.

Have you pushed everything?

Not the CLDF, should I do this as well? I thought we better recreate later with the new libraries?

Or are you missing something else?

Ah, I was talking about lingrex

Will check.

Shall we merge already?

fine with me


Fix Windows ignoring preserve_permissions

If you use set_preserve_permissions and set to false, Windows would completely ignore this and continuing adding the read-only flag.

Thanks for the PR! This appears, however, to not be what the preserve_permissions flag is used for. That's just for applying 0o777 as a mask to the listed mode on Unix, but even on Unix it still actually executes chmod to change the permissions. To avoid the syscall altogether, perhaps a new flag is necessary?

Hmm, I guess I misinterpreted what it was for, and I realized fixing a bug that it was the root cause of the issue I was seeing, not tar setting the read-only flag on directories, so I'll just close this for now.

See also https://github.com/alexcrichton/tar-rs/pull/205


Sound should stop playing when imported from library

Expected behavior
Sounds should stop playing when imported from library.
Actual behavior
The sound continues to play when imported from library.
Steps to reproduce
Open a sound from the sound library. (I used "eggs")
The window will disappear and the sound will upload, but the sound continues to play.
Operating system and browser
ChromeOS, Chrome; Most Recent Version

/cc @ericrosenbaum


fix: use digest when loading image unto daemon

we have oci_tarball for that and people should use that since images guaranteed to have tags you specify via repotags attribute.


MERP Character Sheet

New sheet for Middle Earth Role Playing, which is a simplified Rolemaster ruleset published by ICE back in the day.

There doesn't seem to be anything included in this commit. Can you add the files for the sheet?


Notification email link updates

Why is this issue important?
Need to update digests and assignment notifications so managing notification preferences will direct to the new profile page.
Current State
Footer on both digest and assignment emails has a link for "change notification preferences" that directs to grant finder Profile Settings Modal
Expected State

[ ] On Grant Digest email, the footer link that says "Change notification preferences" should link to the /my-profile page
[ ] On the Assignment notifications email, the footer link that says "Change notification preferences" should link to the /my-profile page

TBD - can email notification updates be feature flagged?
Implementation Plan
The following functions need to be added...
Relevant Code Snippets
No response

@ClaireValdivia This change is behind a feature flag, which is on for staging and off for production. I had to add a new server-side flag, which is called api_enable_my_profile in Terraform.


Add CR API documentation for developer and migration configuration

What this PR does / why we need it:
This PR fills some of the missing API documentation for the KubeVirt CR.
It doesn't take care of everything, just developer and migration configuration.
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Special notes for your reviewer:
The only manually modified file is types.go, the rest is generated code.
Release note:

NONE

/cc @vladikr
Please have a look, I'm not 100% confident about my description for some of the migration options...

I think that having defaults in comments can be problematic. Since it's not enforced, there could easily be a case when someone updates the default but not the comments. Are we sure we want to add the defaults?

I really want the defaults... It's information I regularly need, and every time it's a whole side quest!

I suggest introducing a small piece of documentation above type MigrationConfiguration struct { about migration policies - WDYT? Maybe something about the fact that each of these configs can be overriden for a dynamically determined group of VMIs.

I agree. This information alone is not very useful though, is there a URL I could point to for more information about migration policies?

Thank you for the review!!

I think that having defaults in comments can be problematic. Since it's not enforced, there could easily be a case when someone updates the default but not the comments. Are we sure we want to add the defaults?

I really want the defaults... It's information I regularly need, and every time it's a whole side quest!

I feel your pain :)
FYI, recently @fabiand and I were speaking about this problem from a different angle - the user's perspective. Especially automated systems (e.g. openshift-virtualization's UI), but also human users, need to know our defaults which are impossible to grab dynamically from a running cluster. Almost every Kubevirt CR config that's not set has a default which cannot be determined without diving into the code.
We thought about maybe posting a config map with our defaults (which maybe we can also support to be changed by the user in the future).
IMHO this is a technical debt and we should find a better solution in the long-term

I suggest introducing a small piece of documentation above type MigrationConfiguration struct { about migration policies - WDYT? Maybe something about the fact that each of these configs can be overriden for a dynamically determined group of VMIs.

I agree. This information alone is not very useful though, is there a URL I could point to for more information about migration policies?

It's in the making, but unfortunately not merged yet: https://github.com/kubevirt/user-guide/pull/565

/retest

/cc

/hold cancel
Thank you @xpivarc , I should probably have pasted the comment lines to a spell checker before PR-ing...
@vladikr PTAL!

Thanks!
/lgtm