C

Work Done:

Added third party library for file I/O to deal with adapters

@CodiumAI-Agent /review

PR Analysis

🎯 Main theme: Adding a third-party library for file I/O and implementing it in the adapters module.
📝 PR summary: This PR introduces a third-party library for file I/O operations and uses it in the adapters module. It also includes a new function 'C' and some code to handle file reading and writing.
📌 Type of PR: Enhancement
🧪 Relevant tests added: No
⏱ Estimated effort to review [1-5]: 3, because the PR introduces a new library and changes the way file I/O is handled, which requires a careful review to ensure compatibility and correctness.
🔒 Security concerns: No

PR Feedback

💡 General suggestions: It's recommended to handle exceptions more specifically rather than using a general Exception. This can help in debugging and understanding the type of errors that might occur. Also, it's important to ensure that the new library is compatible with the existing codebase and does not introduce any breaking changes.

 🤖 Code feedback:

relevant file: src/requests/adapters.py
suggestion: It's not clear what the function 'C' is doing. Consider giving it a more descriptive name and adding a brief comment explaining its purpose. [important]
relevant line: def C(name = None):

relevant file: src/requests/adapters.py
suggestion: The fileReader and fileWriter are imported but not used. If they are not needed, consider removing them to keep the code clean. [medium]
relevant line: from module.package.library import fileReader, fileWriter

relevant file: src/requests/adapters.py
suggestion: The exception handling block is too broad. Consider catching specific exceptions that you expect might be raised in the try block. [important]
relevant line: except Exception:

relevant file: src/requests/adapters.py
suggestion: The function 'readFile.newFile' is called with an empty string as an argument. Make sure this is the intended behavior. [medium]
relevant line: f = C(readFile.newFile(""))

How to use
 Instructions

Tag me in a comment '@CodiumAI-Agent' and add one of the following commands:
/review: Request a review of your Pull Request.
/describe: Update the PR title and description based on the contents of the PR.
/improve [--extended]: Suggest code improvements. Extended mode provides a higher quality feedback.
/ask <QUESTION>: Ask a question about the PR.
/update_changelog: Update the changelog based on the PR's contents.
/add_docs: Generate docstring for new components introduced in the PR.
/generate_labels: Generate labels for the PR based on the PR's contents.
see the tools guide for more details.

To edit any configuration parameter from the configuration.toml, add --config_path=new_value.
For example: /review --pr_reviewer.extra_instructions="focus on the file: ..."
To list the possible configuration parameters, add a /config comment.

@CodiumAI-Agent /improve

@CodiumAI-Agent /review

@CodiumAI-Agent /review

PR Analysis

🎯 Main theme: Adding a third party library for file I/O operations in the adapters module
📝 PR summary: This PR introduces a third-party library for file I/O operations in the adapters module. It also includes a new function 'C' and some logic to handle existing adapters.
📌 Type of PR: Enhancement
🧪 Relevant tests added: No
⏱ Estimated effort to review [1-5]: 3, because the PR introduces a new library and changes the logic of handling adapters, which requires a careful review to ensure compatibility and correctness.
🔒 Security concerns: No security concerns found

PR Feedback

💡 General suggestions: It would be beneficial to add tests to verify the new functionality. Also, the function 'C' could be given a more descriptive name to clarify its purpose.

 🤖 Code feedback:

relevant file: src/requests/adapters.py
suggestion: The function 'C' is called without any parameters, which will result in a TypeError as it expects one argument. Ensure to pass an argument when calling the function. [important]
relevant line: C()

relevant file: src/requests/adapters.py
suggestion: The fileReader and fileWriter are used without any error handling. Consider wrapping these operations in a try/except block to handle potential I/O errors. [important]
relevant line: if fileReader.read():

relevant file: src/requests/adapters.py
suggestion: The 'newFile' method is called with an empty string as an argument. If this is not intentional, consider passing a valid filename. [medium]
relevant line: f = C(fileReader.newFile('))

relevant file: src/requests/adapters.py
suggestion: The 'existingAdapters' variable is used without being defined first. Make sure to define it before using it. [important]
relevant line: existingAdapters += newAdapter

How to use
  Instructions

Tag me in a comment '@CodiumAI-Agent' and add one of the following commands:
/review: Request a review of your Pull Request.
/describe: Update the PR title and description based on the contents of the PR.
/improve [--extended]: Suggest code improvements. Extended mode provides a higher quality feedback.
/ask <QUESTION>: Ask a question about the PR.
/update_changelog: Update the changelog based on the PR's contents.
/add_docs: Generate docstring for new components introduced in the PR.
/generate_labels: Generate labels for the PR based on the PR's contents.
see the tools guide for more details.

To edit any configuration parameter from the configuration.toml, add --config_path=new_value.
For example: /review --pr_reviewer.extra_instructions="focus on the file: ..."
To list the possible configuration parameters, add a /config comment.


--conservative does not upgrade to latest git sha

I was trying to upgrade the git sha of our spree fork with bundle update --conservative spree but it doesn't change it although the branch of the fork we're poiting to has 3 new commits. When I do bundle update spree it does work but it also upgrades shared dependencies, what I wanted to avoid with the --conservative flag.
I'm not sure what's happening here because I haved used said flag successfully at least a couple times.
My bundler version is 1.15.3.

Please share a Gemfile and Gemfile.lock we can use to reproduce the issue, thanks!

Sorry for the delay. I can consistently reproduce the issue with the following Gemfile and Gemfile.lock

I can't install the given bundle:
The gemspec at /Users/segiddins/.gem/ruby/2.1.5/bundler/gems/spree-598cae845626/core/spree_core.gemspec is not valid. Please fix this gemspec.
The validation error was 'duplicate dependency on kaminari (= 0.13.0), (= 0.13.0) use:
    add_runtime_dependency 'kaminari', '= 0.13.0', '= 0.13.0'
'

How did you get that? I get it to install all dependencies.
What if you try with this other Gemfile.lock below? I just replaced the spree's sha with the one where I fixed that duplicated dependency.
https://raw.githubusercontent.com/sauloperez/bundler-conservative-issue/master/Gemfile.lock

I just ran bundle install with the given files

So I've been looking into this and I believe it's happening because multiple gems are coming from that spree git repo, and thus its impossible to only update the "spree" gem conservatively.

but isn't that a bit odd? Spree has its own dependencies that happen to be in the same repo.

It isn't odd -- all the dependencies from a git repo need to be at the same sha. If you'd like to update all of them, you can update the entire source

ok. Thanks for your attention @segiddins . I thought this could be handled by --conservative.

Oh, thanks!


OPIK-615 [SDK] DSPY integration

Details
Added DSPy integration. You can use Opik callback:
import os

import dspy

from opik import track
from opik.integrations.dspy.callback import OpikCallback

project_name = "DSPY"

lm = dspy.LM(
    model='openai/gpt-4o-mini',
)
dspy.configure(lm=lm)

opik_callback = OpikCallback(project_name=project_name)
dspy.settings.configure(
    callbacks=[opik_callback]
)

cot = dspy.ChainOfThought("question -> answer")
cot(question="What is the meaning of life?")

Testing
Integration tests are added.

Nice 👍


Reduce container image size

What does this PR do?
This PR changes the container image and nginx config so that only compressed HTML files are stored. As a result, the image size goes from 949 MB down to 159 MB.
Any background context you can provide?
https://github.com/giantswarm/roadmap/issues/3033

I have indeed tested it locally and will watch the rollout

This is awesome, going to steal this for giantswarm/intranet and giantswarm/handbook.


Add source information to the JSON output

The output should include the name of the input file from which the bytes originated. This will also future-proof the format for if/when PolyTracker enables tracking from multiple files (or sockets?) at once.
{
  "dfs$ensure_solid_xref": {
    "input_bytes": {
      "POLYTRACK filename": [
        2276587,
        2276588
      ]
    }
  },
⋮

I'm going to implement this via repurposing our bitfield to keep track of what taint source its from. This will allow us to track 8 taint sources. If we see more than one bit flipped, we know its influenced from more than one taint source.

This might be a bit tricker to support multiple taint sources, i.e. right now our addressing schema is based around taint labels corresponding to offsets, this doesnt work well if we have multiple files.

This has been done since dec/jan


[#25] Add support for expand nodes

For now, ADF expand and nestedExpand nodes will be skipped, meaning
the nodes themselves do not create a counterpart in the resulting MDAST
tree. Their child nodes however will be processed and attached to the
output tree.
An alternative to skipping "expand" nodes could be to represent them as
a sequence of MDAST nodes:

HTML node: <details>
HTML node: <summary> + expand node title + </summary>
MDAST nodes for the "expand" node content (the current output)
HTML node: </details>

This produces adequate output when converting the ADF to Markdown and
HTML. However, it also comes with its own set of challenges and arguably
makes the MDAST tree representation look rather odd, with HTML nodes
containing invalid HTML content. The opening and closing <details>
tags are not valid on their own – though the MDAST documentation
explicitly states that HTML nodes do not need to contain "valid or
complete HTML" (https://github.com/syntax-tree/mdast#html).
For the moment, we go with the "simple" path of ignoring expand nodes.
Closes #25

After this is merged, you can create a new GitHub release which will trigger this GitHub workflow to automatically publish the new version to npm. Once it's available there, you can bump Tickety Tick's required mdast-util-from-adf version. This should resolve https://github.com/bitcrowd/tickety-tick/issues/348 I hope (please test with the/a Jira issue with an expand node in the description.

[…] a new GitHub release which will trigger this GitHub workflow to automatically publish the new version to npm […]

The setup is pure bliss @pmeinhardt 🤗


EntityStateHistoryPlugin undo allows only 1 ID

I'm submitting a...

[ ] Regression (a behavior that used to work and stopped working in a new release)
[x ] Bug report
[ ] Performance issue
[ ] Feature request
[ ] Documentation issue or request
[ ] Support request
[ ] Other... Please describe:

Current behavior
undo and redo accept only 1 ID
Expected behavior
Should accept multilple IDs
What is the motivation / use case for changing the behavior?
According to documentation, EntityStateHistoryPlugin undo/redo should accept multiple IDs.
Environment
Akita 1.2.0

Where do you see the problem? I have tested the following code locally, and it works fine.
this.stateHistoryEntity = new EntityStateHistoryPlugin<Todo>(this.todosQuery, { entityIds: [1,2]});

According to documentation:

With this setup you will get the following functionality:
undo(entityId?: ID | ID[]) : undo the last change.
redo(entityId?: ID | ID[]) : redo the last change.
jumpToPast(entityId?: ID | ID[], index: number) : jump to the provided index in the past (assuming index is valid).
jumpToFuture(entityId?: ID | ID[], index: number) : jump to the provided index in the future (assuming index is valid).
clear(entityId?: ID | ID[]) : clear the history.
destroy(entityId?: ID | ID[], clearHistory = false) : unsubscribe and optionally clear the history.

What I see in Entity state history:
export declare class EntityStateHistoryPlugin<E, P extends StateHistoryPlugin<E, any> = StateHistoryPlugin<E, any>> extends EntityCollectionPlugin<E, P> {
    protected query: QueryEntity<any, E>;
    protected readonly params: StateHistoryEntityParams;
    constructor(query: QueryEntity<any, E>, params?: StateHistoryEntityParams);
    redo(ids?: ID): void;
    undo(ids?: ID): void;
    hasPast(id: ID): boolean;
    hasFuture(id: ID): boolean;
    jumpToFuture(ids: IDS, index: number): void;
    jumpToPast(ids: IDS, index: number): void;
    clear(ids?: IDS): void;
    destroy(ids?: IDS, clearHistory?: boolean): void;
    protected instantiatePlugin(id: ID): P;
}

You are right; it's just a missing type.

Thanks, I'm releasing a fix.

:tada: This issue has been resolved in version 1.2.1 :tada:
The release is available on npm package (@latest dist-tag)
Your semantic-release bot :package::rocket:


Provide access to WebRequest in DgsCustomContextBuilder

Is it possible to provide access to the original request in the DgsCustomContextBuilder?
Background:
In the company where I work, we use Apollo Federation Gateway to generate certain headers related to the client and also forward certain user-level cookies over to the Federated Services.
Generally we are able to create a custom GraphQLInvocation and get access to the WebRequest via which we can read all these details and then do things with the WebRequest such as authenticating the cookies and perform some side effects that are common for all DataFetchers.
I'm not entirely sure if this currently possible and whether such a functionality is possible.

I think I have this figured out by using Spring to extract current Request:
public static Optional<HttpServletRequest> getCurrentHttpRequest() {
    return Optional.ofNullable(RequestContextHolder.getRequestAttributes())
            .filter(requestAttributes -> ServletRequestAttributes.class.isAssignableFrom(requestAttributes.getClass()))
            .map(requestAttributes -> ((ServletRequestAttributes) requestAttributes))
            .map(ServletRequestAttributes::getRequest);
}

But we do lose the visibility into the extensions that the default context has access to.

Be aware that this can be problematic when working with async datafetchers that run on different threads. Spring uses ThreadLocal to store these things (for Spring WebMVC that is).
I do agree that at the very least we need documentation around this.

Yep, would love some docs for best practices on this from DGS perspective.
And re thread local + datafetchers, I do agree that this could be problematic for async datafetchers but accessing the request only in DgsCustomContextBuilder should be relatively safe, but obviously depends on how that builder is written.

We do plan to pick up this topic very soon btw. Not sure about the exact implementation yet, but we'll figure that out.

Fixed in #112

Just now getting around to this
Looks like the webrequest is added to the context after the custom context builder has run, so I don't think this addresses this issue exactly.
While it is great that the original webrequest is made accessible to the lower down datafetchers/dataloaders, this request is not made available to the DgsCustomContextBuilder (I'm guessing for compatibility reasons).
This does restrict the work we can do in the graphql context.
Kinda still have to access the request using the solution I had detailed above.
Ideally there is a nicer way to access current request and use the data in said request to generate common things for the shared graphql context.

I interpreted the original issue as "we need access to WebRequest", which is probably the most common case. But indeed, it doesn't give you access to in the builder for further processing. We can probably add that as well.
Just curious, what do you need it for in the builder?

The reason to need access to the webrequest in the builder is quite simple, it will then let us extract information out and persist it in the context in a structured way. And also let us perform some side-effects based on that data that would be common for all datafetchers/dataloaders early on in the stack, rather than do it per datafetcher/dataloader.

Yes, makes sense. I’ll re-open this issue to further address it.

Fixed by https://github.com/Netflix/dgs-framework/pull/169

Thank you very much @paulbakker, this was probably my only blocker to convert an existing GraphQL service my team has over to Netflix DGS.
I appreciate the work you guys have put into this and it's been great to use it!


Handling the impact of the hand during the initial contact with the handrim

Explore current impact functions available in bioptim
Customisation needed?


scanf crashes

This custom test case yields problems:
    int a, b, c;
    SCANF_TEST( 0, "foo 0", " %n%*s%n %n", &a, &b, &c );
    TESTCASE( a == 0 );
    TESTCASE( b == 3 );
    TESTCASE( c == 4 );

Here is some information from gdb:
Program received signal SIGSEGV, Segmentation fault.
0x00005555555645d3 in _PDCLIB_scan (spec=0x55555556732c "n", status=0x7fffffffe550) at pdclib/functions/_PDCLIB/_PDCLIB_scan.c:394
394	            *val = status->i;
(gdb) print val
$1 = (int *) 0x0
(gdb) print *status
$2 = {base = -1, flags = 0, n = 1, i = 4, current = 0, s = 0x0, width =<PHONE_NUMBER>3709551615, prec = 0, stream = 0x55555556b620 <_PDCLIB_sin>, arg = {{gp_offset = 40, fp_offset = 48, overflow_arg_area = 0x7fffffffe6b0, reg_save_area = 0x7fffffffe5f0}}}

Downstream issue where this affects a real application: https://github.com/XboxDev/nxdk-pdclib/issues/16

Looks like missing suppression on %*c, %*s, %[ and %*n (neither of which has a testcase yet).
Here is a (very hacky) test-case for %*s:
    memset( buffer, '\0', 100 );
    SCANF_TEST( 1, "foo", "%*s", buffer);
    TESTCASE( memcmp( buffer, "\0", 100 ) == 0 );

The code isn't checking for E_suppressed in this code:
https://github.com/DevSolar/pdclib/blob/4f5b4339a48890599d8fb85bfa2fc6f031d47fe6/functions/_PDCLIB/_PDCLIB_scan.c#L255-L257
this code:
https://github.com/DevSolar/pdclib/blob/4f5b4339a48890599d8fb85bfa2fc6f031d47fe6/functions/_PDCLIB/_PDCLIB_scan.c#L286-L288
this code:
https://github.com/DevSolar/pdclib/blob/4f5b4339a48890599d8fb85bfa2fc6f031d47fe6/functions/_PDCLIB/_PDCLIB_scan.c#L348-L349
and this code:
https://github.com/DevSolar/pdclib/blob/4f5b4339a48890599d8fb85bfa2fc6f031d47fe6/functions/_PDCLIB/_PDCLIB_scan.c#L391-L393
However, it is checked for other argument types:
https://github.com/DevSolar/pdclib/blob/4f5b4339a48890599d8fb85bfa2fc6f031d47fe6/functions/_PDCLIB/_PDCLIB_scan.c#L523-L524

Verified. Looking into it.

The bug itself is fixed in SVN. I found a couple of related issues I want to look into before I close this and push to GitHub.

The version in SVN does not seem to support %*n; this C spec says this about n:

If the conversion specification includes an assignment-suppressing character or a field width, the behavior is undefined.

This is what my linux man-page says:

n      Nothing is expected; instead, the number of characters consumed thus  far  from  the  input  is  stored through  the  next  pointer, which must be a pointer to int.  This is not a conversion and does not increase the count returned by the function.  The assignment can be suppressed with the * assignment-suppression  character, but the effect on the return value is undefined.  Therefore %*n conversions should not be used.

Which implies to me that users on linux would expect it to not consume a pointer using va_arg, however, the wording of the man-page is vague.
It think it might be a sane idea to report an error of some kind for %*n.
However, I'm personally not interested in %*n myself, so I don't really care if / how it is supported - I'm just leaving my thoughts in case someone else runs into this issue later.

Added "support" for %*n by way of, effectively, doing nothing. (This was indeed corollary to the %s / %c / %[ bug, I didn't think of E_suppressed in that context and forgot to cater for it.)

Fixes for these issues, plus one for the return code handling of %[ (which was broken as well), have been pushed to GitHub.

Thanks! Looks good (although I did not test the changes yet).
While reviewing the push to GitHub I noticed this typo: https://github.com/DevSolar/pdclib/commit/5d02542e6e1bda6525cda3acb4b12037e8764922#diff-b7d874035913ff9cf1baad83365fa334R620 (COMBINATIONi - note the i at the end)


[Feature Request] Add Milvus Vector DB as external vector database

Let’s add Milvus when we have the proper format for adding new vector DBs.

close at #879


I386 update run tutorial to use tifs

Update run_tutorial.sh to use TIFs instead of JP2s

It looks like this needs to be rebased.  It includes commits from other PRs.


Verify consistent conversion of cx for networkx 1.11 and 2.0+

In NiceCXNetwork.to_networkx() under the module ndex2/nice_cx_network.py verify conversion of networkx object is consistent with documentation and is consistent between two versions of networkx (1.11 & 2.0+)
Current documentation is a bit vague and CartesianCoordinates is incorrect aspect name it should be cartesianLayout:
Returns a NetworkX graph based on the network. Elements in the CartesianCoordinates aspect of the network are transformed to the NetworkX pos attribute. Node name is stored in the networkx node id. Node 'represents' is stored in the networkx node attribute 'represents'

Major refactoring done to NiceCXNetwork.to_networkx() due to numerous issues.
To fix this issue a new parameter mode was added to NiceCXNetwork.to_networkx() with a default value of legacy which kept behavior like before for backwards compatibility.
To get the fixed version set mode to 'default' or None
As part of this fix the following changes were made:
Code in NiceCXNetwork.to_networkx()  was pulled out of this method and put into two separate classes:

LegacyNetworkXVersionOnePointOneFactory(legacymode=False)

Contains logic for conversion when NiceCXNetwork.to_networkx() was invoked with networkx < 2.0 installed.
represents is properly added as a node attribute to the resulting graph (legacymode=True disables this)
networkx.MultiGraph is now returned so multiple edges are not arbitrarily omitted (legacymode=True disables this)

LegacyNetworkXVersionTwoPlusFactory

Contains logic for conversion NiceCXNetwork.to_networkx() was invoked with networkx >= 2.0 installed.
This method is deprecated, but exists for backwards compatibility
This version sets the node ids in the networkx Graph to the name of the node which
causes many issues.


Confusing different behaviour between Azure, Memory, Disk & Zip modules.

I'm currently reworking a system that was using Azure blob storage to use FluentStorage so we can target different providers / deploy on-prem and make use of disk storage.
Data for the application is split into containers, and as per the docs the first folder in the path is used as the container for Azure, but otherwise should just be treated as a folder otherwise.
This behaviour works just fine for the in-memory module, calling GetBlobAsync returns a blob that is a folder, and I can check the full path to ensure it sits under root so I can classify it as a "container".
For the local-disk module however, creating one of these produces a directory with a .empty file under it, and having a look at the code of the disk implementation, it doesn't appear to have handling for directories - I'd expect it to be happy enough to create empty directories, and just check whether a path is for a directory or a file and return a blob with the relevant properties set.
The ZIP module I can sort of understand the behaviour for because you have to create the ZipEntry objects and it infers hierarchy based on the paths as opposed to supporting folders within the archive as a first-class concept.
I guess what I'm asking is whether there's a consistent way I can support the arbitrary modules and still have everything work fine? I guess I could enforce the creation of a '.empty' file and explicitly check for its existence, but that feels redundant for the Azure module.
My first guess would be to check whether the storage implementation is IHierarchicalBlobStorage but the azure one doesn't appear to be.
Any suggestions would be appreciated.

Aye, the way I got around it at least for now is that I wrote a facade replicating the existing azure BlobContainerClient and BlobClient classes from the Azure storage SDK.
    public sealed class BlobContainerClient
    {
        private const string _dummyFileName = ".empty";
        private readonly IBlobStorage _storage;

        public BlobContainerClient(IBlobStorage storage, string name)
        {
            _storage = storage;
            Name = name;
        }

        public string Name { get; }

        internal IBlobStorage Storage => _storage;

        public async Task<bool> ExistsAsync()
        {
            if (_storage is IHierarchicalBlobStorage || _storage is global::FluentStorage.Azure.Blobs.IAzureBlobStorage)
            {
                var blob = await Storage.GetBlobAsync(Name);
                if (blob == null)
                {
                    return false;
                }
                return blob.IsFolder && blob.FullPath == $"/{Name}";
            }
            else
            {
                var blob = await Storage.GetBlobAsync($"{Name}/{_dummyFileName}");
                if (blob == null)
                {
                    return false;
                }
                return blob.FullPath == $"/{Name}/{_dummyFileName}";
            }
        }

        public async Task DeleteIfExistsAsync()
        {
            if (await ExistsAsync())
            {
                await Storage.DeleteAsync(Name);
            }
        }

        /*
         * todo: need to be careful as fluentstorage assumes '.empty' by default but doesn't expose that as a constant
         * so it *could* change, and theoretically if code doesn't use the abstractions here, it could theoretically
         * choose to create a new folder and write the .empty file or not write it at all, so we'd be without the ability
         * to check for a folder / container's existence.
         */
        public async Task CreateAsync()
        {
            await Storage.CreateFolderAsync(Name, dummyFileName: _dummyFileName);
        }
    }

    public sealed class BlobClient
    {
        private readonly BlobContainerClient _containerClient;
        private readonly string _path;

        public BlobClient(BlobContainerClient containerClient, string path)
        {
            if (path.StartsWith(containerClient.Name, StringComparison.OrdinalIgnoreCase))
            {
                throw new ArgumentException("Path starts with the container name", nameof(path));
            }

            _containerClient = containerClient;
            _path = path;
        }

        internal BlobContainerClient ContainerClient => _containerClient;

        public async Task<bool> ExistsAsync()
        {
            return await _containerClient.Storage.ExistsAsync($"{_containerClient.Name}/{_path}", CancellationToken.None);
        }

        public async Task DownloadToAsync(Stream stream)
        {
            await _containerClient.Storage.ReadToStreamAsync($"{_containerClient.Name}/{_path}", stream);
        }

        public async Task UploadAsync(BinaryData data, CancellationToken? cancellationToken = null)
        {
            using var stream = data.ToStream();
            await _containerClient.Storage.WriteAsync($"{_containerClient.Name}/{_path}", stream, cancellationToken:cancellationToken ?? CancellationToken.None);
        }

        public async Task DeleteIfExistsAsync()
        {
            if (await _containerClient.Storage.ExistsAsync($"{_containerClient.Name}/{_path}"))
            {
                await _containerClient.Storage.DeleteAsync($"{_containerClient.Name}/{_path}");
            }
        }

        public string Name => _path;
    }

    public static class BlobStorageExtensions
    {
        public static BlobContainerClient GetBlobContainerClient(this IBlobStorage storage, string container)
        {
            return new BlobContainerClient(storage, container);
        }

        public static BlobClient GetBlobClient(this BlobContainerClient containerClient, string blobPath)
        {
            return new BlobClient(containerClient, blobPath);
        }

        public static async Task DeleteAllContainersAsync(this IBlobStorage storage)
        {
            var containers = await storage.ListAsync(new ListOptions { Recurse = false });

            foreach(var container in containers)
            {
                await storage.GetBlobContainerClient(container.Name).DeleteIfExistsAsync();
            }
        }

        public static bool IsStorageForZipArchive(this IBlobStorage storage)
        {
            /*
             * This isn't ideal, but in some circumstances we need to know if the zip storage handler
             * is being used.
             *
             * Mostly when using the background queue processor or interacting with it via a worker pool
             * or in parallel.
             *
             * The underlying types are private in the FluentStorage library, so we have to resort
             * to inspecting the type name.
             *
             * Checking whether it contains 'zip' just to add a bit of resiliency in case the type name changes.
             */
            return storage.GetType().Name.Contains("zip", StringComparison.OrdinalIgnoreCase);
        }

        // todo: may need to add some special handling in here because azure containers in real environments
        // suffer from a timing issue during drop and re-create.
        public static async Task RecreateContainer(this IBlobStorage storage, string container)
        {
            var containerClient = storage.GetBlobContainerClient(container);
            await containerClient.DeleteIfExistsAsync();
            await containerClient.CreateAsync();
        }
    }

Extremely rough attempt at this, but it's what's being used by our system and it does seem to be working with all the Core Storage providers.
Was just a convenient shortcut to avoid a larger scale refactor, and helps with maintaining the container / blob separation the system already uses.
#38 is behind the need for checking whether the storage implementation is the zip archive one, as we have a worker pool responsible for handling queued storage upload tasks, and the zip archive one doesn't seem to be thread safe.

@robinrodricks I suppose it could be possible, but I'm wary of adding something that then re-replicates the specific structure used by the Azure SDK, plus it's not complete so is likely to be missing functionality people might rely on during their migration from azure blob storage to fluent storage.
It might be an idea to put a "ContainerStorageHelper" type thing into the library that offers a lightweight wrapper for dealing with a container-based abstraction, but again, not sure how aligned with fluent storage that is, as people might be using AWS for example.
I think it might just be better if the underlying issue with how directories & empty files are handled, and maybe get the hierarchical storage interface properly implemented by the adapters that it makes sense for.


Refactoring to PR#4646

@gamemaker1 can you fix the merge conflict?

Sure I'll do it now

Done!

Removed the duplicate condition, fixed another error when viewing a 404 for a renamed file - now it works! 🎉

Done!

Tested and it works. Always include some test links in your PRs. In this case they can be copied from these 2 PRs:

https://github.com/sindresorhus/refined-github/pull/4677
https://github.com/sindresorhus/refined-github/pull/4646


Commands are no longer case sensitive

removed case sensitivity to commands using "prefix.ToLower()" on command access and set.

Looks good - thanks!


utils.js crashes IE11 with 'Expected identifier, string or number'

Info

Tool
Version

Package
@gtm-support/vue2-gtm v1.0.0

Node
v14.1.0

OS
win

When running a production (Vue) build which uses https://www.npmjs.com/package/@gtm-support/vue2-gtm, the bundle fails to load in IE11 (screenshot below) due to a problem in utils.js from gtm-support/core.

I don't have an environment to test against an IE11
Can you find more out about this problem? Also the code looks very "modern", with const and ... spread operator and so on. Are these the sourcemaps or the finished source that gets executed in IE11, if second, then you may need to transpile it further down 🤔

The problematic part of the transpiled/finished source code looks like this:
const u = new URLSearchParams({ id: t, ...(null !== (i = e.queryParams) && void 0 !== i ? i : {}) });
Reverting to https://github.com/mib200/vue-gtm solves the problem, the same code in the loadScript function in https://github.com/mib200/vue-gtm/blob/master/src/utils.ts looks simpler.

But https://github.com/gtm-support/core/blob/66b68c33261f7839c713411f5b172dc8de56e72a/src/utils.ts#L56-L59 and https://github.com/mib200/vue-gtm/blob/vue-2/src/utils.ts#L36-L39 are the same code
So it must be something with down transpiling 🤔

Yes...
https://github.com/mib200/vue-gtm/blob/73d39cf1e77dfb3ed0db02dc2ca04e1aedf5965d/tsconfig.json#L3
vs
https://github.com/gtm-support/core/blob/66b68c33261f7839c713411f5b172dc8de56e72a/tsconfig.json#L3
I think you have a bundler on your side, like webpack or so.
Is it possible to tell your bundler to transpile it further down?
Otherwise I need to look into how to ship multiple targets, so folks without IE11 have smaller bundler size and folks with IE11 needs to get served the old es5 code

Yes, I'm using Vue CLI and my package.json targets IE11:
"browserslist": [     "> 1%",     "last 2 versions",     "not dead"   ]
Now I can set up vue.config.js like this as well:
module.exports = {   transpileDependencies: [     '@gtm-support/core'   ] };

Nice, so if this works, I can update README.md.
So everyone with the need to support IE11 or similar can use this workaround 🙂

Sure, for those using Vue CLI it seems good. Thanks for helping with this issue :)
https://cli.vuejs.org/config/#transpiledependencies

Note was added to the readme
https://github.com/gtm-support/core/commit/55a44e921c75a21fa2b74700bf65ed7ae062bc9f
https://github.com/gtm-support/vue-gtm/commit/a7d935ffaa75fa21863979b9762d3b284bc53456


"Costești" , "Bistrița" , "Pietreni" , "Văratici" are listed in the drop-down menu

The villages are listed in the drop-down menu alongside its corresponding county and city, according to the law
Preconditions : the  website is up and runing. After every step delete the text you typed from the search bar.

Step 1
Write in the search bar "Costești"

Expected results
The location appears in the drop-down menu as "Sat Costești, VÂLCEA (Costești)"

Step 2
Write in the search bar "Bistrița"

Expected results
The location appears in the drop-down menu as "Sat Bistrița, VÂLCEA (Costești)"

Step 3
Write in the search bar "Pietreni"

Expected results
The location appears in the drop-down menu as "Sat Pietreni, VÂLCEA (Costești)"

Step 4
Write in the search bar "Văratici"

Expected results
The location appears in the drop-down menu as "Sat Văratici, VÂLCEA (Costești)"


trouble with basic results

I am following this simple example:

import tinyik
arm = tinyik.Actuator(['z', [1., 0., 0.], 'z', [1., 0., 0.]])
arm.ee = [2 / np.sqrt(2), 2 / np.sqrt(2), 0.]
arm.angles
array([  7.85398147e-01,   3.23715739e-08])
np.round(np.rad2deg(arm.angles))
array([ 45.,   0.])

In my case I am using 3 links which look like this:

Red is the root (say, shoulder joint), green is parented to it (i.e. elbow) and blue is parented to green (i.e. wrist).
The yellow dot is the end effector.
So in my code I do something like:
arm = tinyik.Actuator(['z',[red.x, red.y, 0], 'z',[green.x, green.y, 0], 'z',[blue.x, blue.y, 0]])
red.angle = np.rad2deg(arm.angles[0])
green.angle = np.rad2deg(arm.angles[1])
blue.angle = np.rad2deg(arm.angles[2])

When I apply the above example and move the end effector to x=1.5, y=1.5 I get this:

Looks promising but doesn't seem very close to what I expected (i.e. the blue joint reaching to be as close to the end effector as possible).
When I move the end effector even closer to the left, i.e. x=1.0, y=1.5 it gets worse:

I'm sure I'm doing something wrong but don't know what it is.
Can you help?
Thanks,
frank

Could you show me the version of tinyik you use and all the source code? In my environment, it is version 1.2.0, and worked as follows (I assumed the size of the links to be [1, 0, 0]):
import numpy as np
import tinyik

arm = tinyik.Actuator(['z',[1, 0, 0], 'z',[1, 0, 0], 'z',[1, 0, 0]])
arm.ee = [1.5, 1.5, 0]
print('ee position', arm.ee)
# => ee position [1.50000001 1.49999999 0.        ]
print('joint angles', np.round(np.rad2deg(arm.angles)))
# => joint angles [-11.  57.  55.]

Tinyik has some tiny and naive solver which one of be used as default in older version. They are sensitive to initial angles and optimization parameters, so it may be easy to fail if you use it.

Hi, thanks for the reply.
I posted all my code and I don't know where to look up the version. I checked all the files in the package but there is no version string anywhere.
I gave it another go and now it works. I think I was one link short in my initial test.

I am glad that it worked well. You can find the version of a package with pip show command:
pip show tinyik

Ah thanks. Yes, it's 1.2.0.


listAlbums returns empty

    videoAlbums = await PhotoGallery.listAlbums(mediumType: MediumType.video);

returns one album with 0 length even though there are videos on device

Please provide more info to reproduce this issue.

I think it might have something to do with permissions
The photo_manager plugin I used instead of yours shows the permission request properly and works afterwards

I think it might have something to do with permissions The photo_manager plugin I used instead of yours shows the permission request properly and works afterwards

I agree, the limited state should be handled as well explicitly on the UI.
Maybe photo_manager should be included on the docu

修改Podfile文件：
post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
# 添加以下代码可解决问题
target.build_configurations.each do |config|
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
'$(inherited)',
## dart: PermissionGroup.camera
'PERMISSION_CAMERA=1',
# dart: PermissionGroup. photos
'PERMISSION_PHOTOS=1',
'PERMISSION_PHOTOS_ADD_ONLY=1',
# dart: [PermissionGroup. location, PermissionGroup. locationAlways, PermissionGroup. locationWhenInUse]
# 'PERMISSION_LOCATION=1',
# dart: PermissionGroup.mediaLibrary
'PERMISSION MEDIA LIBRARY=1'
]
end
end
end


feat(level,user): add random levels and discord id endpoints

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

GitHub release
npm package (@latest dist-tag)

Your semantic-release bot :package::rocket:


Simplify interface.gd

This is a pass to simplify interface.gd as there was multiple function doing the same thing. Moreover it moved intinialisation of value to the Init of tag by creating a new optional argument that if he is not null change initial value of the property.

Thanks!


Filestore 6388 v3

Ticket
Redmine ticket:
https://redmine.openinfosecfoundation.org/issues/6388
https://redmine.openinfosecfoundation.org/issues/6390
https://redmine.openinfosecfoundation.org/issues/6392
Requires https://github.com/OISF/suricata/pull/9586
https://github.com/OISF/suricata-verify/pull/1416 with shell check for filestore

I see these fail for master too, which means that the fix should first be towards master and then we'll consider the backport side.

#1522 should go in first before considering the other test

Closing as master6 goes EOL soon


Remove release-2.7.x branches

As pointed by @thewtex, keeping these branches around is confusing. We should remove them.
The idea was to keep  the master version of build system compatible with all stable version of python sources.
When this was not possible anymore (for example, because maintaining the system working for an older version would make the build system to complex), branch like release-2.7.x would be maintained to ensure older version of python could be build with a previous version of the build system.
For now, let's remove this branch and give up on building 2.7.1 and 2.7.2 with the build system.  If there is a need, we could probably be update the test matrix on travis and appveyor to check for these and fix the build system.
For future reference, release-2.7.1 and release-2.7.2 were both pointing to ed37e55f97044a8f3aad52b4d2a846424b26cfec

As of August 26th 2015, the branches release-2.7.1 and release-2.7.2 have been removed.


[Feature request] Display string desc with type enums for readability

E.g. spawn_entity packet contains a type field that is currently displayed as type: 42.
It would be much more useful if it said type: 42 [minecraft:item_frame] or similar.

Entity ID table:
https://wiki.vg/Entity_metadata#Mobs
Also, for item frames specificially, the objectData: 2 could say objectData: 2 [North].
Object data fields:
https://wiki.vg/Object_Data

Data Generators could also be used to get the names/ids for many other packets or registries like blocks, potion effects, etc.


Image Source Uri path(ms-appx) problem

Describe the bug
<Image Name="Logo" Width="300" Source="ms-appx:///tiger.png"/>
is working well. but
<Image Name="Logo2" Width="300" Source="ms-appx:///images/tiger.png"/>
dose not show any image. (///)
<Image Name="Logo2" Width="300" Source="ms-appx://images/tiger.png"/>
shows image well. (//)
https://docs.microsoft.com/en-us/windows/uwp/app-resources/uri-schemes
In this page, "ms-appx:///images/logo.png" is recommend. but '///' dosen't working.
Steps to reproduce the bug
Microsoft Visual Studio Community 2022 (64-bit) 17.1.0
Create a WinUI 3 project
Make images directory
Copy a image to root and images directory
Add Image tag as described above
Expected behavior
No response
Screenshots
No response
NuGet package version
WinUI 3 - Windows App SDK 1.0
Windows app type

[ ] UWP
[ ] Win32

Device form factor
Desktop
Windows version
Windows 10 (21H2): Build 19044
Additional context
No response

@codendone putting this on rendering for the image area, but it could be a xaml parser issue @RealTommyKlein

Running into a similar issue in .xaml parsing. 2 vs 3 / seems to be necessary depending on whether the URI is done through XAML or CS binding.
        private static string FOLDER_LOCATION_CS = "ms-appx:///App/Assets/Folder/";
        private static string FOLDER_LOCATION_XAML = "ms-appx://App/Assets/Folder/";

In *.cs, the following works
       var filterFile = await StorageFile.GetFileFromApplicationUriAsync(new Uri(FOLDER_LOCATION_CS + "jsonFile.json"));
Using :// results in:
System.Runtime.InteropServices.COMException: 'Error HRESULT E_FAIL has been returned from a call to a COM component.'
In .xaml, binding to a string path fails to find the source if /// is used.
Using :/// seemed to be working in both scenarios prior to packaging being introduced.
WinUI 3.0, Win11 machine

I can't get local images or videos to show up with any of these examples.

We are unable to repro this issue on 1.3 version of WinAppSdk. Using the following Xaml:

The two images that use ms-appx:/// show up correctly and the other two do not. We also attempted on a 1.1 version with the same result. It is hard to further diagnose without a complete repro since we are unable to tell if the images in the sample code mentioned are in the correct directory, have been added to the build with the appropriate build characteristics or whether images are corrupted.
We are closing this issue as No Repro, but if you find the issue still occurs and can provide us with a more complete repro, feel free to reopen it.

It happens specifically for me in the case of an unpackaged app.


Support writing of custom API attributes and test refactoring

Even though the Custom API support is probably not fully baked yet, noticed that the attributes were not being written properly during an instrument - have attempted to fix this.
When running the integration tests to try and help determine if I'd broken anything, I noticed lots of issues! I have attempted to fix the broken integration tests and make the integration tests generally less brittle.
I would recommend splitting the unit/integration tests into two separate projects to make them easier to manage, but didn't want to change too much ...

Thanks for this. Can you change the target branch to be spkl_dev please. This is the development branch.

Sorry, I did develop against spkl_dev, but it must default to master or something when pull requests on forks are created - my bad.

Thanks for this - I've included the Custom Api instrumentation changes in #419.
I do agree about the integration tests being somewhat fragile - and would be better off in a separate project rather than using the Trait/playlist approach.

Released in Fixed in https://www.nuget.org/packages/spkl/1.0.633-beta


Image Update Automation stops working when git clone takes a long time

Describe the bug
For our git repo with a lot of commits, the image update automation stopped working.
As increasing the timeouts for the git clone [1] did not help we decided to squash a large part of the git history which dramatically reduced the time to clone the repo and also fixed the image update automation. Of course, this comes with the cost of losing the commit history.
Therefore we kindly ask if it would be possible to enable the use of git's shallow clone functionality [2], which would enable faster cloning without having to squash the git history.
[1] https://fluxcd.io/docs/components/source/api/#source.toolkit.fluxcd.io/v1beta1.GitRepository
[2] https://git-scm.com/docs/git-clone#Documentation/git-clone.txt---depthltdepthgt
Steps to reproduce

Install Flux with image update automation
Increase the git history to a significant size such that a full git clone takes > 8 seconds
Observe image automation failing
Squash the commits in the git repository to archive shorter cloning times
Observe image automation working again

Expected behavior
We would like flux to use GIT's shallow clone functionality [1].
[1] https://git-scm.com/docs/git-clone#Documentation/git-clone.txt---depthltdepthgt
Screenshots and recordings
No response
OS / Distro
N/A
Flux version
N/A
Flux check
N/A
Git provider
Bitbucket
Container Registry provider
No response
Additional context
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Using shallow clones makes it difficult or impossible to switch branches when someone specifies a "push branch" -- see
https://github.com/fluxcd/image-automation-controller/pull/177 and its motivation, https://github.com/fluxcd/image-automation-controller/issues/164 for background on that. It's still unclear to me whether this is a limitation or a bug in the go-git library, and whether it can be worked around. Back when I wrote that PR I concluded it was expedient to not bother with the complication of shallow clones :-/
I'm surprised that it only needs latency of >8s to fail. That suggests there's something else going on here.

3. Observe image automation failing

Failing how? Does it fail to clone the repo, but continue running? Or crash, or stall? Or something else.

Similar situation here：
after this log line,
{
  "level": "error",
  "ts": "2022-01-19T13:01:34.563Z",
  "logger": "controller.imageupdateautomation",
  "msg": "Reconciler error",
  "reconciler group": "image.toolkit.fluxcd.io",
  "reconciler kind": "ImageUpdateAutomation",
  "name": "image-update-automation",
  "namespace": "demo",
  "error": "unable to clone: failed to connect to some.gitlab.com: Connection timed out"
}

the image-automation-controller pod stopped working silently (it continues running without more logs and reconciliations) while the corresponding ImagePolicy got the right LatestImage.
FYI, we use default timeout settings everywhere in flux resources, our gitlab instance does have some performance problems now and then which could cause clone timed out.

Would one of you be able to try out the image from https://github.com/fluxcd/image-automation-controller/pull/297?
This brings the timeout logic back to the shape it was in around the time of the 0.15.x release (which pretty much equals to none), while still including some of the other improvements in the area of Git.
If this resolves the issue, we need to have another look at how libgit2 reacts to the (cancelling) callbacks.

With the release of Flux v0.26.2, we would like to kindly ask folks with issues to update to the latest image releases. Since we changed our build process around libgit2 for the source-controller and image-automation-controller, we have observed some of the issues as described to have vanished (and confirmed by others as per https://github.com/fluxcd/source-controller/issues/439#issuecomment-1030812206).

@martinzellner thank you very much for reporting this. Today we are releasing version v0.21.0 which introduces an experimental transport that should fix the issue in which the controller stops working in some scenarios.
The experimental transport needs to be opted-in by setting the environment variable EXPERIMENTAL_GIT_TRANSPORT to true in the controller's Deployment.
Can you test it again using the version v0.21.0, with the experimental transport enabled and let us know how you get on please?

This should be fixed as part of Managed Transport being made default. Latest release candidates with this changes:
ghcr.io/fluxcd/source-controller:rc-4b3e0f9a
ghcr.io/fluxcd/image-automation-controller:rc-48bcca59
Closing for lack of activity - happy to reopen in case others report recurrence.

Thank you for reopening the issue. In order to validate if it is the same problem I have tested this against a shallow clone of the original branch, removing some ~50MB of unnecessary files which reduced the processing time to only 6 seconds. I still see the same behaviour, namely no changes made in working directory; no commit. Could I just rule out whether using multiple ImagePolicy markers in the same manifest(s) is supported? e.g.
images:
  - name: myregistry/myproject/myapplication-module1 # {"$imagepolicy": "flux-system:myapplication-module1:name"}
    newTag: "1.5.0"                                  # {"$imagepolicy": "flux-system:myapplication-module1:tag"}
  - name: myregistry/myproject/myapplication-module2 # {"$imagepolicy": "flux-system:myapplication-module2:name"}
    newTag: "5.2.0_07"                               # {"$imagepolicy": "flux-system:myapplication-module2:tag"}
  - name: myregistry/myproject/myapplication-module3 # {"$imagepolicy": "flux-system:myapplication-module3:name"}
    newTag: "3.46.2"                                 # {"$imagepolicy": "flux-system:myapplication-module3:tag"}
  - name: myregistry/myproject/myapplication-module4 # {"$imagepolicy": "flux-system:myapplication-module4:name"}
    newTag: "2.2.5"                                  # {"$imagepolicy": "flux-system:myapplication-module4:tag"}

Just want to check in with users who reported here. Are there any users actively tracking this issue who can say if it persists in Flux 2.0.0, which has been released this week?
@steviestainz The multiple imagepolicy markers in the same manifest are definitely supported. But one of your tags looks like a possibly invalid semver. 5.2.0_07 does not parse as semver if I remember correctly... is this build metadata? I guess I just haven't seen this before, I thought that would probably not match with the semver rule and any pattern you might have passed in, but you said all of your policies were matching correctly so that probably isn't it.


Automator: update common-files@master in istio/istio@master

Generated by Automator - 2021-04-05T16:16:00+00:00

@istio-testing: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio
41af9b79932d84e1499af2ca26e19144a017808c
link
/test unit-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test unit-tests_istio


Markdown "# %% [markdown]" cells should be reflected in Outline View

The interactive window was originally designed to be used as an alternate way to create a notebook. Therefore, it only seems logical that cells delimited with "# %% [markdown]" could appear in the Outline View (aka TOC).
Not sure if this would require changes to PyLance or whether we could do it ourselves.

The jupyter extension needs to provide this support.

@greazer Same as https://github.com/microsoft/vscode-jupyter/issues/5552 I believe

Duplicate of https://github.com/microsoft/vscode-jupyter/issues/4496


Docker request fails

in business/core/node/node.go when api-gateway is making a request to node the response is "http://localhost:3000/storage": dial tcp [::1]:3000: connect: connection refused. When Both services are running locally (not in docker containers) everything works fine

fixed


Add color for the PL/SQL language.

I have added color to the PL/SQL language: #dad8d8. I take this color from a window background which evokes the interface of the language. Also I searched for this color code in this file but I couldn't find any match.

:+1: thanks @ismail-arilik. This will be live later this week when we cut a new version of Linguist.


Add a tools subcommand

A tools subcommand will contain utilities such as:

subtitle burning
video analysis
thumbnail extraction

No need for a tools subcommand, each tool will be handled as a separate subcommand


How to generate without VPN?

I'm in china mainland,but i don't want to use VPN.
How can i non-VPN to use it?

I think it's not possible.
But you can use split-tunneling in your VPN, to exclude and include various applications.
So you can only include the BingImageCreator script, to use the other system without VPN

@VMTask @fredi-python
just use GitHub Actions like mine
https://github.com/yihong0618/2023/issues/12

@VMTask @fredi-python just use GitHub Actions like mine yihong0618/2023#12

I don't know chinese, sry

@VMTask @fredi-python just use GitHub Actions like mine yihong0618/2023#12

I see a code,it maybe can use ImageCreator.
https://gitee.com/jja8/NewBingGoGo

I'm deploy a Bing proxy.

https://bing1.vmtask.repl.co

export BING_URL=https://bing1.vmtask.repl.co


Profile Sync keeps deleting my profiles

This scenario keeps happening to me and appears to happen when I revisit a different machine environment. It just reproduced this morning.
On my primary machine, I set up a new profile called "Notes". I did all sorts of customization things were working fine until I opened my mac (secondary machine) for the first time in a few weeks.
Looking at the sync longs, it the mac sync overrode my profiles on the remote which then was synced down and removed my profile on my primary machine.

Not sure the cause, are we syncing profiles differently to other resources? Also if we are not yet tracking the history of an entire deleted profile we should probably be doing that, and maybe requiring a confirmation when a local profile is deleted via a sync since it's so destructive.
Marked important as it's a data loss issue.

The same thing happened to me. I have two devices, and on each one of them I have a couple of profiles and I'm using "default" on both.
Now I did following:

PC, enable Settings Sync
macOS, enable Settings Sync
Came back to PC. The profiles from macOS showed up in VS Code.
In half an hour, all of a sudden all my settings/keybindings werechanged in the default profile

Here are the logs
2024-03-27 14:33:34.764 [info] Keybindings: No changes found during synchronizing keybindings.
2024-03-27 14:33:34.788 [info] Deleting non existing profile from backup /C:/Users/rebor/AppData/Roaming/Code - Insiders/User/sync/extensions
2024-03-27 14:33:34.823 [info] Deleting non existing profile from backup /C:/Users/rebor/AppData/Roaming/Code - Insiders/User/sync/globalState
2024-03-27 14:33:34.836 [info] Deleting non existing profile from backup /C:/Users/rebor/AppData/Roaming/Code - Insiders/User/sync/keybindings
2024-03-27 14:33:34.846 [info] Deleting non existing profile from backup /C:/Users/rebor/AppData/Roaming/Code - Insiders/User/sync/profiles
2024-03-27 14:33:34.856 [info] Deleting non existing profile from backup /C:/Users/rebor/AppData/Roaming/Code - Insiders/User/sync/settings
2024-03-27 14:33:34.865 [info] Deleting non existing profile from backup /C:/Users/rebor/AppData/Roaming/Code - Insiders/User/sync/snippets

From what I read they got deleted. Not it's default profile.

😀So this might be a bug? I thought it was a design choice to discourage me from reaching around the API into unexposed configuration files?
How I came across it
I was initially attempting to share/bundle/distribute vscode Profile configs/keybindings/etc along with my repo/code - but when I clone down the repo to a fresh location, and open vscode (mounted onto the respective --user-data-dir and --extensions-dir from my repo) it immediately deletes all my Profiles and configs that I committed to said dirs from my repo 🤷♂. I assume it's unhappy because the configs are not it's own?
Disclaimer
I'm aware that what I'm trying to do 👆here is probably way out of scope & unsafe - I'm just 👨🔬experimenting - which is why I then opted to just write an extension (still in progress / not published) to get around all the (probably more security conscious) API limitations


cancel_order(id)  for  CEX

cancel_order(id)  for  CEX  work but return error.
Traceback (most recent call last):
File "/home/jo/trading/bot/ccxt_bot.py", line 162, in
print(cancel_order('4580833882'))
File "/home/jo/trading/bot/ccxt_bot.py", line 64, in cancel_order
res = cex.cancel_order(id)
File "/usr/local/lib/python2.7/dist-packages/ccxt/exchanges.py", line 7743, in cancel_order
return self.privatePostCancelOrder({'id': id})
File "/usr/local/lib/python2.7/dist-packages/ccxt/exchanges.py", line 7769, in request
if 'e' in response:
TypeError: argument of type 'bool' is not iterable

Thx for reporting this, will fix very soon!

OK. Will wait

Ok, it should be fixed in the upcoming version 1.9.48+, please update in approx 5 minutes and try again. As always, we will be thankful if you report back! Thx!

It's there, thx again!

OS: Windows
Programming Language version: Python 3.7.2 under Anaconda
CCXT version: 1.18.198
Exchange: CEX.IO
Method: cancel_order(id)

Upon a successful single order cancellation, the CEX API returns a string of "true", as per the docs here: https://cex.io/rest-api#cancel-order
This value is check as a bool by ccxt and throws an ExchangeError, as per this:
C:\ProgramData\Anaconda3\envs\crypto\lib\site-packages\ccxt\async_support\cex.py in cancel_order(self, id, symbol, params)
    342     async def cancel_order(self, id, symbol=None, params={}):
    343         await self.load_markets()
--> 344         return await self.privatePostCancelOrder({'id': id})
    345
    346     def parse_order(self, order, market=None):

C:\ProgramData\Anaconda3\envs\crypto\lib\site-packages\ccxt\async_support\cex.py in request(self, path, api, method, params, headers, body)
    494                 if response['ok'] == 'ok':
    495                     return response
--> 496             raise ExchangeError(self.id + ' ' + self.json(response))
    497         elif 'error' in response:
    498             if response['error']:

ExchangeError: cex "true"

Should a workaround be put into the ccxt code base, or should I raise this with the CEX.IO team as a request to return a valid True boolean?

I'm testing with Node.js 11.10.1, Linux, ccxt version 1.18.344 and getting

TypeError: Cannot use 'in' operator to search for 'e' in true
at cex.request (/home/runvnc/coinado/node_modules/ccxt/js/cex.js:523:24)
at processTicksAndRejections (internal/process/next_tick.js:81:5)

It used to be (supposedly fixed?) with if (response == true), which 'true' != true (at least not in Node 9 or 11) so I'm not sure how that could have worked.  Then someone ran an eslint and now it says if (response === true) and that definitely doesn't work.


Scrolling doesn't work in Mac OS

Neovide version: 0.7.0
OS: macOS 11.3.1 20E241 x86_64
NVIM v0.5.0-dev+1336-g045e47ec5
Build type: Release
LuaJIT 2.1.0-beta3

It doesn't work only in opengl branch, as in master I have a blurry fonts

@Midren interesting. Do you use a touch pad? Just recently a change went in to opengl branch to try to add scrolling support on macos when using a touch pad or magic mouse

Updated to the last version and it started working. And it works amazingly comparing to master!


Merge preview into master

Add unit test, configure CI

This will stay in preview branch for a while


Fixed left hand side columns that don't horizontally scroll

Is it is possible to have a number of columns in the left side of the grid that don't scroll when the grid is horizontally scrolled, like the way Excel does?
Thanks!

Are you looking at ui-grid or ng-grid?  In ui-grid this is what the pinning feature does: http://ui-grid.info/docs/#/tutorial/203_pinning

ui-grid and fantastic!!


remove cleanupOrganometallics() from the default sanitization

This reverts some of the changes in #6038: cleanUpOrganometallics() is no longer part of the default sanitization process. The function is still available for people who choose to use it, though I've flagged it as experimental for this release.
There are two reasons for the change, both arising from the fact that the current implementation makes an arbitrary bond from a hypervalent atom to a metal to make dative:

The choice of bond to change is not canonical, so providing the same molecule with different atom orderings will produce different results and, thus, different SMILES. Here's a simple example of that:

In [3]: Chem.MolToSmiles(Chem.MolFromSmiles('F[Pd](Cl)(Cl1)Cl[Pd]1(Cl)Cl'))
Out[3]: 'F[Pd]1(Cl)<-Cl[Pd](Cl)(Cl)Cl->1'

In [4]: Chem.MolToSmiles(Chem.MolFromSmiles('Cl[Pd](Cl)(Cl1)Cl[Pd]1(Cl)F'))
Out[4]: 'F[Pd]1(Cl)Cl->[Pd](Cl)(Cl)<-Cl1'

Sometimes the choices of which bond to change are just wrong. The above examples both demonstrate that. Here's an example output:

That structure should have one dative bond to each metal atom, not two bonds to the same metal.

Once we've come up with  solutions to these we can consider re-adding cleanUpOrganometallics() to the default sanitization path.
Thanks to @ricrogz for noticing the problem.

This was peripheral to the main Organometallics work, so leaving it out for now has to be done, I guess.  A non-canonical result is clearly not ok, and there isn't time to do anything about it before the up-coming release.
The 2 dative bonds going to the same Pd atom doesn't look great, but I would argue that it is one acceptable form of writing it down.  In Pd2Cl6 I'd be surprised if the 4 central bonds can be distinguished, so it must be pretty arbitrary which one is labelled dative, which single.  Maybe the IUPAC suggestion of always using single bonds for metal->non-metal atoms is more realistic, though it creates other problems.


Is there a possibility to block all requests with unlisted http method?

Welcome!

[X] Yes, I've searched similar issues on GitHub and didn't find any.
[X] Yes, I've searched similar issues on the Traefik community forum and didn't find any.

What did you expect to see?
I am wondering if there is some way to configure blocking unexpected http methods.
For example, when there is a request with method AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA, Traefik passes that through in a specific route and the request is handled in the endpoint of that specific route.
Desired state is, Traefik should have some parameter which allows only listed methods and if request method does not match any of specified in a list, throws for ex. an error 405 Method Not Allowed and does not pass request into specific route.
This issue/question is published in chain to my previous one (https://github.com/traefik/traefik/issues/8961) since response header contains allowed methods for a request with OPTIONS method (probably my lack of information about CORS), but accessControlAllowMethods does not restrict requests for non-matching methods.
By another words I specified only methods accessControlAllowMethods = ["GET", "POST", "PUT", "DELETE", "OPTIONS"], but it even returned response ["GET", "HEAD", "OPTIONS"] for my OPTIONS like request and when I make a request with AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA method, Traefik passes it through without throwing any error.

As I was searching, the only post where it looked like, there is a provided kind of configuration is this, https://stackoverflow.com/questions/58012063/restrict-allowed-methods-on-traefik-routes, but as you can see in comment bellow, "And this would not block the requests with an incorrect HTTP method"
My final question is, does accessControlAllowMethods parameter restrict other methods except the specified in list, or does it have just informative purpose in OPTION like request? Is it a bug or feature? Should not it return in response all the methods, which were defined in list in configuration? Is there any other configuration which restricts access for unlisted methods?
Version and environment is equal to specified in previous issue: https://github.com/traefik/traefik/issues/8961.

Hi! I'm Træfiker :robot: the bot in charge of communication regulation.
Thanks for your interest in Traefik!
We dedicate the issue tracker to bug reports and feature requests only. My advanced AI has spotted that your issue might be a configuration problem or relates to something that doesn't look like a bug.
To confirm this, please join our Community Forum and reach out to us on the Traefik section.
In case I'm wrong (well, that would be embarrassing :sweat_smile:), my developers will re-open the issue and fix me!
In the meantime, you can double check Traefik's documentation.


Valet Parking doesn't work on different maps

System information

OS Platform and Distribution (e.g., Linux Ubuntu 18.04):18.04
Apollo version (3.5, 5.0, 5.5, 6.0): 6.0

I have build a scene in RoadRunner (mathworks) which includes many parking spots, and parking lot, exported them to base_map.bin and generated the routing and sim files, but in Dreamview the parking spots are not showing.

I am trying to understand how Apollo finds parking spots information, and in which files, so I can add a parking spot manually. Can you please guide me, how to add a parking spot manually? should I add it to the base_map.xml or, base_map.txt or default_end_way_point.txt? and where can I find an example file including a parking spot in the map. I have checked of course all the available public Apollo maps with parking, but all of them are provided in .bin format so I can't understand how it works.
Supporting materials (screenshots, command lines, code/script snippets):

I am trying to understand how Apollo finds parking spots information, and in which files, so I can add a parking spot manually. Can you please guide me, how to add a parking spot manually? should I add it to the base_map.xml or, base_map.txt or default_end_way_point.txt?

You can ref to map_parking_space.proto for parking space format. You should check the sim_map.txt, because sim_map.txt is used for dreamview.
In fact, sim_map is generated by base_map, so you add to base_map and then generate sim_map.

and where can I find an example file including a parking spot in the map. I have checked of course all the available public Apollo maps with parking, but all of them are provided in .bin format so I can't understand how it works.

you can ref to "san_mateo" and "sunnyvale_with_two_offices", below is an example you should add "parking_space" and "parking_space_overlap_info"
parking_space {
  id {
    id: "11544"
  }
  polygon {
    point {
      x:<PHONE_NUMBER>108855
      y: 4141416.6057218537
      z: 0
    }
    point {
      x:<PHONE_NUMBER>2293412
      y: 4141415.9138005795
      z: 0
    }
    point {
      x:<PHONE_NUMBER>2028769
      y: 4141410.9443679708
      z: 0
    }
    point {
      x:<PHONE_NUMBER>8934589
      y: 4141411.6283384813
      z: 0
    }
  }
  overlap_id {
    id: "overlap_2659"
  }
  overlap_id {
    id: "overlap_4399"
  }
  heading: 1.345454
}

overlap {
  id {
    id: "overlap_2659"
  }
  object {
    id {
      id: "11564dup1_1_-1"
    }
    lane_overlap_info {
      start_s: 0
      end_s: 0
      is_merge: false
    }
  }
  object {
    id {
      id: "11544"
    }
    parking_space_overlap_info {
    }
  }
}

Thanks for the quick response and the example. I have added a parking spot to the base_map.txt file and generated the sim file. I have also added default_end_way_point to test the parking. Now I can see the spot in Dreamview, but when I choose the point of interest, the ego follows the routing request and doesn't park in the spot. Can you please tell me how to turn on the open space planner to perform the parking?

Pls ref to https://github.com/ApolloAuto/apollo/issues/12165 first. I will check it later

I have checked the link, I've sent a parking request manually, everything is as suggested, but still, the open space planner is not triggered, can you please tell me where exactly in the planning module, the open space planner is triggered? I have checked planning_component.cc , it has only two cases: NaviPlanning and OnLanePlanning.
Also, I have checked all parking/open_space_planner related issues, I couldn't find a single person who succeded to run the parking on any map other than "san_mateo" and "sunnyvale_with_two_offices", which are both not available for the public, would you please consider providing a parking scenario tutorial or a public map XML file that includes it.

maybe you could try out this example:
https://content.lgsvlsimulator.com/maps/autonomoustuff/

I have checked the link, I've sent a parking request manually, everything is as suggested, but still, the open space planner is not triggered, can you please tell me where exactly in the planning module, the open space planner is triggered? I have checked planning_component.cc , it has only two cases: NaviPlanning and OnLanePlanning.
Also, I have checked all parking/open_space_planner related issues, I couldn't find a single person who succeded to run the parking on any map other than "san_mateo" and "sunnyvale_with_two_offices", which are both not available for the public, would you please consider providing a parking scenario tutorial or a public map XML file that includes it.

Hello, I have the same problem. Have you solved it? thank you

@ntutangyun
I have checked all parking spots on this map, it's always performing the LANE_FOLLOW scenario, and never turning on the Valet parking scenario. However, the same way of sending a parking request is working in sunnyvale_with_two_offices, so I think the problem is in the parking definition in base_map.txt, can you please tell me, is it enough to declare parking_space and overlap with the closest lane, for representing the parking space correctly to invoke the open space planner?
or can you please tell me where in the code, it's checking for conditions to invoke the open space planner, so I can compare the conditions in the two maps?

@yufeilongyuan Hello, not yet, as you can see, I'm still struggling with the problem :(

finite state machine
First, enter various scenarios through a finite state machine. I don't think it will be a problem in this function and the main entry is ScenarioManager::ScenarioDispatchNonLearning.
https://github.com/ApolloAuto/apollo/blob/266afbf68d83fa6fac7a812ff8a950223f5ab2c0/modules/planning/scenarios/scenario_manager.cc#L906-L908
condition
Then you can find IsTransferable will return ScenarioConfig::VALET_PARKING, so maybe you should check this deeply.
https://github.com/ApolloAuto/apollo/blob/266afbf68d83fa6fac7a812ff8a950223f5ab2c0/modules/planning/scenarios/scenario_manager.cc#L725-L730
Hope this will help you!

I didn't encounter the unrealistic problem of parking space in dreanview, but I don't know whether the parking function is normal. Recently, I'm studying the related functions of parking. I hope I can communicate more.

@daohu527 Thanks a lot.
By tracking the function IsTransferable, I figured out that it's not able to find the near path (lane). The problem was that I haven't defined the overlap in the lane specifications in base_map.txt because I'm not quite familiar with Apollo HDmap specifications. For people who want to add a parking spot manually, here is what you should do with the file base_map.txt:

add the parking spot details including 4 points of the polygon, overlap_id with the near lane and heading, ex:

parking_space {
  id {
    id: "11543"
  }
  polygon {
    point {
      x:<PHONE_NUMBER>8934589
      y:<PHONE_NUMBER>218537
      z: 0
    }
    point {
      x:<PHONE_NUMBER>2293412
      y:<PHONE_NUMBER>218537
      z: 0
    }
    point {
      x:<PHONE_NUMBER>2293412
      y:<PHONE_NUMBER>679708
      z: 0
    }
    point {
      x:<PHONE_NUMBER>8934589
      y:<PHONE_NUMBER>679708
      z: 0
    }
  }
  overlap_id {
    id: "overlap_3"
  }
  heading: 1.570796
}

add overlap details , ex:

overlap {
  id {
    id: "overlap_3"
  }
  object {
    id {
      id: "0_0_-1"
    }
    lane_overlap_info {
      start_s: 0
      end_s: 0
      is_merge: false
    }
  }
  object {
    id {
      id: "11543"
    }
    parking_space_overlap_info {
    }
  }
}

add overlap_id to the near lane:
lane {
id {
id: "0_0_-1"
}
...
length:<PHONE_NUMBER>8984375
speed_limit: 97.221951484680176
overlap_id {
id: "overlap_3"
}
...
direction: FORWARD
...
}
make sure the heading is set correctly in the direction of the near lane.

Good job! :+1:
The overlap is the bridge connecting lane and other objects like traffic light, stop sign, parking lot and so on. There is a small question about overlap, which may not have an impact at the moment.
start_s and end_s should be the parking lot's position on the lane, for example (100, 105)
overlap {
  id {
    id: "overlap_3"
  }
  object {
    id {
      id: "0_0_-1"
    }
    lane_overlap_info {
      start_s: 0                  // start_s is the parking lot's start position on the lane
      end_s: 0                   // end_s is the parking lot's end position on the lane
      is_merge: false
    }
  }
  object {
    id {
      id: "11543"
    }
    parking_space_overlap_info {
    }
  }
}

Well done. It seems that you have solved the problem. Yes, I guess these problems are not Apollo's, but Roadrunner's. Because, I use LGSVL to draw HD-maps, and you do not have these problems.


Diagram doesn't match the descriptions

Trigger alert settings diagram doesn't match the description.
[Enter feedback here]

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

ID: 432c5a45-c707-d478-ad23-17973292962b
Version Independent ID: dde02992-7192-70aa-a2c1-ebeda3624e7f
Content: Creating Alerts with Dynamic Thresholds in Azure Monitor - Azure Monitor
Content Source: articles/azure-monitor/alerts/alerts-dynamic-thresholds.md
Service: azure-monitor
Sub-service: alerts
GitHub Login: @yanivlavi
Microsoft Alias: yalavi

@D-Moonesinghe Thanks a lot for bringing this to our notice, we will review the feedback and update the document accordingly.

I checked and I believe it does match. Not sure what the issue is.

Thanks a lot @yanivlavi for helping on the thread.
@D-Moonesinghe Can you please help clarify or give more context on what exact issue you are seeing, so that our team can help accordingly. Thank you.

As reader who is a not an expert;
The following explanation and the diagram didn't make sense.  Later on, a
few of my colleagues and I came to a working explanation that made sense.
I still think this explanation  in the artilce can be improved. At least
mention

What does a period grouping of 5 minutes mean?  2) how you come about
with a 5 minute period?     2)Is it a default value ?          3) Can it be
changed?

An explanation around those few questions would help make a little more
sense.
To trigger an alert when the issue is continuous for 20 minutes, 4
consecutive times in a given period grouping of 5 minutes, use the
following settings:
[image: Failing periods settings for continuous issue for 20 minutes, 4
consecutive times in a given period grouping of 5 minutes]
To trigger an alert when there was a violation from a Dynamic Thresholds in
20 minutes out of the last 30 minutes with period of 5 minutes, use the
following settings:
[image: Failing periods settings for issue for 20 minutes out of the last
30 minutes with period grouping of 5 minutes]
On Fri, Mar 19, 2021 at 6:40 PM BharathNimmala-MSFT <
@.***> wrote:

Thanks a lot @yanivlavi https://github.com/yanivlavi for helping on the
thread.
@D-Moonesinghe https://github.com/D-Moonesinghe Can you please help
clarify or give more context on what exact issue you are seeing, so that
our team can help accordingly. Thank you.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/MicrosoftDocs/azure-docs/issues/72330#issuecomment-803173513,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOOSSNRVHBPMJMY4224YD3LTEPHEPANCNFSM4ZLDCANA
.

--
Deepal Moonesinghe
(408) 568 1669
@.***

@D-Moonesinghe We really appreciate you taking time to provide additional feedback. I am taking this feedback with our Internal team and post review we will have a backlog item to enhance the document accordingly.

@D-Moonesinghe Our engineering team have reviewed your feedback and they are planning to have a backlog item in the upcoming sprints to enhance the document as required. Thanks again for taking time to share your valuable feedback and helping us improve our Azure documentation.
We will go ahead and close this issue for now, however if you have any further feedback please tag us in your reply and will be happy to reopen the thread and continue the conversation. Thank you


I want to add hover effect on title(Annoying submit button)

Please assign me this task.

Pls assign me this

Added hover effect and changed the display a bit.
BEFORE
https://user-images.githubusercontent.com/87711904/194754434-de7874cf-e8da-4bec-ab15-ae3f2a25e786.mp4
AFTER
https://user-images.githubusercontent.com/87711904/194754446-1b7be43b-f213-4c99-96ce-6a9dd6227e87.mp4
I've already made the pull request, kindly merge it for Hacktober-fest.
Thanks.

pls can you assign me this task

I would like to contribute to this issue. Pls assign me this task..


Unable to resize ROS Azure VM

I'd like to expand the disks on an Azure VM running RancherOS v1.5.2
Expanding the disk in the Azure GUI and rebooting didn't see to do the trick. sudo ros config set rancher.resize_device /dev/sda also didn't work out for me.
Am I missing something?
RancherOS Version: (ros os version)
RancherOS 1.5.2
Where are you running RancherOS? (docker-machine, AWS, GCE, baremetal, etc.)
Azure

Once the partition has been resized to fill the device, a /var/lib/rancher/resizefs.done file will be written to prevent the resize tools from being run again. If you need it to run again, delete that file and reboot.
https://rancher.com/docs/os/v1.x/en/installation/configuration/resizing-device-partition/

Welp - bug report: The file is present on initial boot.


Documentation for HashiCorp Vault Secrets Operator

This commit introduces comprehensive documentation for integrating the HashiCorp Vault Secrets Operator into the Genestack installation process.

LGTM. If you can please upload your key to be verified. I can then merge this in.


Gothic 3

System information

GPU: GTX 1070
Driver: 546.33
Wine version: - Windows 10
DXVK version: 2.3.1

Incorrect operation of lighting from a torch
apitrace
https://drive.google.com/file/d/17XOd7zT2Gn6GeDAx6t9BN9gsC8Pbsjhm/view?usp=sharing

Hi there and thank you for the report.
If you could make a apitrace of the issue then that would be very helpful.

Hi there and thank you for the report. If you could make a apitrace of the issue then that would be very helpful.

Are there instructions on how to do this?

Yes https://github.com/doitsujin/dxvk/wiki/Using-Apitrace#on-windows

Yes https://github.com/doitsujin/dxvk/wiki/Using-Apitrace#on-windows
These files will replace the dxvk DLLs so won't have the issue while using them. But just make one in a location where you usually reproduce the issue and then we will replay then together with dxvk to see if it reproduces.

I did everything as in the instructions. The Gothic3.trace file weighs 1Gb. I compressed it into a zip archive to 462Mb. Alas, in 2024, I still have slow ADSL Internet in the private sector. We are waiting for the file to be uploaded to Google Drive.

https://drive.google.com/file/d/17XOd7zT2Gn6GeDAx6t9BN9gsC8Pbsjhm/view?usp=sharing

How long will it take to fix this lighting problem?

Unknown as the game is not playing well with debugging tools so far. That includes apitrace

A build with the fix can be downloaded here https://github.com/doitsujin/dxvk/actions/runs/9005724963

A build with the fix can be downloaded here https://github.com/doitsujin/dxvk/actions/runs/9005724963

Thank you very much. Now the torch lighting is working again. Will this fix be included in the main DXVK composition in the future?

Yes it will be included in the next release


Store model text in memory

This is primarily a refactor of SmithyProject to store raw model text in memory. Previously, we only stored file objects for the model, and gave those to the model assembler. There are two issues with this approach:

While a file is being editted, the source of truth for the file contents should be what the client sends back to the server in the didChange event, not whats actually in the file. To get around this, we've been using a temporary file that stores the contents of the file being editted, and giving that to the model assembler. When publishing diagnostics however, we needed to re-map the file location from the temporary file to the actual file on disk.
The language server needs literal text to provide some of its features, meaning we need to read in files frequently.

These changes update SmithyProject to store a map of URI -> String for each of the model files in the loaded model by walking the shapes and collecting all unique file locations. SmithyTDS is updated to use that when it needs to have literal text of the model for formatting, version diagnostics, and other features.
Various other updates were also made:

Added a list of errors to SmithyProject that store any errors that occur while loading the project. Previously, any "load" methods would return Either<Exception, SmithyProject>, which isn't very ergonomic to use. These errors represent failures in the project loading, not validation errors from loading the model.
SmithyProject's loading methods are reworked to provide 2 static methods: one for loading the project in a directory, one for loading from specific smithy-build config, and 2 instance methods: one for regular reloading, one for reloading with specific file changes. Previously, we had to manage the loading of the temporary file (or its removal). This also moves all the loading logic into SmithyProject.
String-literal uris are replaced with URI class since LSP guarantees uris will be valid (see https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#uri).
SmithyInterface has new method to load from text-literal sources.
Completions updated to handle invalid model result, so callers don't have to. This allows removing getCompletions from SmithyProject.
Various access modifiers adjusted to be more strict, tightening the API to make it easier for us to change implementations.

The following test updates were made:

Added multiple test cases for different project loading & reloading situations.
Some tests needed to use URI class instead of uri strings.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Done in https://github.com/smithy-lang/smithy-language-server/pull/146