packages.config reference is missing

In order to use nuget outside the context of visual studio, you can use the CLI and manual modification of packages.config. However, there is no documentation for the schema of packages.config.
The Project.json Reference indicates that project.json is meant to replace packages.config in NuGet 3.x for certain types of projects. But unless I am confused, my reading of this indicates that for other projects (or those of an unclassifiable nature), one must still use packages.config.
As an example of my use case, I am working on a database project in SQL Server Management Studio, and would like to use NuGet to pull down some build and development tools from the NuGet Gallery and a private feed. My project doesn't have a runtime or any frameworks; it produces SQL scripts that will be run on a database.

@NReilingh This is now on https://docs.microsoft.com/en-us/nuget/schema/packages-config. Please review and close this issue if it's been addressed to your satisfaction. Thanks!

Woohoo! Thank you!


perf: Prevent unnecessary calls to format()

Currently, the input SQL string is being formatted for every single query, which creates unnecessary overhead when there are no input values to use for formatting. This change prevents format() from being called if there is no user input for values.

Thanks! Unfortunately I'm not comfortable pulling this in due to breaking people's code. For example, I have seen SO answers using the "queryFormat" to alter the SQL (rather than purely inserting the values into the SQL), and of course our documentation in the README implies that "queryFormat" is always called, even when there are no values.
Perhaps there is another way to achieve the performance improvement you are trying to get? What is the performance different, anyhow?

I updated the changes so that the custom queryFormat function is always called, but SqlString.format is only called when needed. I also added benchmark results to the PR description. Just a heads up, the only way I could get the benchmark to finish without running out of memory was to comment out these two lines.

What if the guard was just directly added within the SqlString.format? Does that still have the same speedup? It would mean that the speed up extends to anyone using our format in any context (for example, using it within queryFormat).

I'm looking into addressing performance inside SqlString.format in a separate PR, but this PR still has merit. After running a benchmark, I was actually surprised to see that there is a noticeable performance difference between having the guard inside SqlString.format and having it outside:

Outside (this PR)
Inside

6,809,493 ops/sec
6,440,577 ops/sec

Gotcha. I'm afraid for people who have overwritten  SqlString.format  , which is possible, they would break, and I'm just not confortable breaking them. I can hold this for when 3.0 comes, though.

By the way, if you have other changes, see if you can PR them this weekend if you would like to see them land in 2.11.0. I need to fix a bug introduced by one of these SqlString optimizations (not one of yours), and then master will be ready for 2.11, so just a heads up for anything else you want to include :)

Oh wow, I didn't think people would overwrite SqlString.format :confused:
But if that's the case I'm totally fine with holding off on this until v3.0 :+1:
And I'll have a PR for SqlString.format out later today :)


Add information about licensing

Thanks for raising the issue. Available in release 0.2.1

Thank you for information!


[Bugfix][Kernel] allow non-power-of-two head sizes in prefix prefill

The existing prefix prefill kernel only supports head dimension that is a power of two. This due to Triton only supporting power of two block sizes. This PR enlarges the Q,K,V tensors to the next power of two and pads them with zeros when reading (and writing).
It doesn't seem to affect performance of the non-padded case.
CC @rkooo567
FIX #4127

 PR Checklist (Click to Expand)
Thank you for your contribution to vLLM! Before submitting the pull request, please ensure the PR meets the following criteria. This helps vLLM maintain the code quality and improve the efficiency of the review process.
PR Title and Classification
Only specific types of PRs will be reviewed. The PR title is prefixed appropriately to indicate the type of change. Please use one of the following:

[Bugfix] for bug fixes.
[CI/Build] for build or continuous integration improvements.
[Doc] for documentation fixes and improvements.
[Model] for adding a new model or improving an existing model. Model name should appear in the title.
[Frontend] For changes on the vLLM frontend (e.g., OpenAI API server, LLM class, etc.)
[Kernel] for changes affecting CUDA kernels or other compute kernels.
[Core] for changes in the core vLLM logic (e.g., LLMEngine, AsyncLLMEngine, Scheduler, etc.)
[Hardware][Vendor] for hardware-specific changes. Vendor name should appear in the prefix (e.g., [Hardware][AMD]).
[Misc] for PRs that do not fit the above categories. Please use this sparingly.

Note: If the PR spans more than one category, please include all relevant prefixes.
Code Quality
The PR need to meet the following code quality standards:

We adhere to Google Python style guide and Google C++ style guide.
Pass all linter checks. Please use format.sh to format your code.
The code need to be well-documented to ensure future contributors can easily understand the code.
Include sufficient tests to ensure the project to stay correct and robust. This includes both unit tests and integration tests.
Please add documentation to docs/source/ if the PR modifies the user-facing behaviors of vLLM. It helps vLLM user understand and utilize the new features or changes.

Notes for Large Changes
Please keep the changes as concise as possible. For major architectural changes (>500 LOC excluding kernel/data/config/test), we would expect a GitHub issue (RFC) discussing the technical design and justification. Otherwise, we will tag it with rfc-required and might not go through the PR.
What to Expect for the Reviews
The goal of the vLLM team is to be a transparent reviewing machine. We would like to make the review process transparent and efficient and make sure no contributor feel confused or frustrated. However, the vLLM team is small, so we need to prioritize some PRs over others. Here is what you can expect from the review process:

 After the PR is submitted, the PR will be assigned to a reviewer. Every reviewer will pick up the PRs based on their expertise and availability.
 After the PR is assigned, the reviewer will provide status update every 2-3 days. If the PR is not reviewed within 7 days, please feel free to ping the reviewer or the vLLM team.
 After the review, the reviewer will put an  action-required label on the PR if there are changes required. The contributor should address the comments and ping the reviewer to re-review the PR.
 Please respond to all comments within a reasonable time frame. If a comment isn't clear or you disagree with a suggestion, feel free to ask for clarification or discuss the suggestion.

Thank You
 Finally, thank you for taking the time to read these guidelines and for your interest in contributing to vLLM. Your contributions make vLLM a great tool for everyone!

Thank you for quick review!
I haven't run into any other limitations.

Looks like the original author is @caoshiyi

I synced the fork, that should fix the spec-decoding tests I think

cc @caoshiyi can you have a quick look at the PR?

Looks good to me if the tests passed. Thanks for fixing this!

Test passed. Merging. Thanks @caoshiyi @rkooo567 and @mmoskal

@rkooo567 it looks like this kernel (and also rocm_flash_attn) do not support sliding window attention. I guess if one does attention in chunks, one can drop the blocks that are out of window in the block manager (cf #3665) which takes care of most of tokens that are out of window, but not all (also depending on chunk size).
I suspect having a slightly bigger window every now and then shouldn't be bad for model overall performance, but it would definitely affect the exact results.
CC  @simon-mo @cadedaniel

Feel like it is better we have a legit support in kernels... @mmoskal is this complicated to support? Also a relevant issue; https://github.com/vllm-project/vllm/issues/4057

@rkooo567 hard to say. This PR was my first ever Triton code...


Use through2 version 4

This is a breaking change since through2 now requires Node.js 6.
Bumpting the required Node.js version also allowed removing the dependency on xtend.

Updated for through2 version 4

ping @brycebaril

@brycebaril This is still relevant. Could you please take a look?

Thank you!

Hey guys!
The modifications you merged to MASTER last week compromised several legacy apps we have in place using version 3.0.0 of this library.
Please consider releasing a new version (MAJOR release) for this library to avoid affecting current implementations.

@brycebaril Will have to fix that. I just authored the pull request but I can’t release things here.

@realityking could you please place a new PR reverting these changes until a solution has been found? 🙏

That won’t help either as Bryce would have to merge. Let’s wait for him to see this.

As noted in issue #8 I have now deprecated 3.1.0 and pushed this as 4.0.0. My apologies for not correctly pushing it in the first place. Please update to a supported Node LTS line :)


[T5A1][T09-B1]Bey Hao Yun

@cardboardcode Some comments added. Please close the PR after reading comments.


Bump odo version to v3.3.0

What type of PR is this:

What does this PR do / why we need it:
Which issue(s) this PR fixes:

Fixes part of #6261
PR acceptance criteria:

[ ] Unit test

[ ] Integration test

[ ] Documentation

How to test changes / Special notes to the reviewer:

/hold
Until #6255 goes in.

/hold cancel
#6255 is in.

@valaparthvi this file should also be updated with the new version, right?

@valaparthvi this file should also be updated with the new version, right?

I believe that file should be updated after the binaries are released.

I believe that file should be updated after the binaries are released. At least, that's what the bump-version script says.

Understood! Thanks
/lgtm
/approve

/approve

@feloy can you also add approve?

/lgtm

/override Kubernetes-Integration-Tests/Kubernetes-Integration-Tests
Flaky test
[FAILED] [287.834 seconds]
odo dev command tests
/go/odo_1/tests/integration/cmd_dev_test.go:31
  port-forwarding for the component
  /go/odo_1/tests/integration/cmd_dev_test.go:552
    when devfile has single endpoint
    /go/odo_1/tests/integration/cmd_dev_test.go:553
      when running odo dev
      /go/odo_1/tests/integration/cmd_dev_test.go:560
        when modifying memoryLimit for container in Devfile [BeforeEach]
        /go/odo_1/tests/integration/cmd_dev_test.go:590
          should expose the endpoint on localhost
          /go/odo_1/tests/integration/cmd_dev_test.go:606

/override ci/prow/v4.11-integration-e2e
Tests pass on IBM Cloud


Change names of address variables from "a" to "addr"

As per discussion in #36
In several Coq lemmas I use a as the name for function arguments that have address types. I should go through, find these places, and change them to either the same argument name as the source C code or to something clearer like addr or ipaddr when there isn't an analogous variable in the source.

Not urgent - something that I just noticed while reading your code. I usually avoid single-character variables  to improve readability.


The rgb order of the forward function

Hi, I want to do the prediction using the pre-trained model, which trained by  .rec file generated by the im2rec tool. When to predict, I load the image data using cv2.imread method, and I want to use model.predict to do the prediction. And OpenCV stores image data as order bgr, Need I change the image data order to rgb to pass to model.predict to do the prediction? thanks!

by default mxnet uses rgb.

@piiswrong , Does .rec file(using im2rec to generate) use rgb order? it looks like opencv store image as bgr order, when I pass the data which loaded by cv2.imread , is it necessary to swap its order first?

@pinglforever ImgRecIter will swap the channels by itself. You don't need to worry about it if you use ImgRecIter. But if you feed in your own data by imread, you need to swap the channels by yourself.

ok, @windywinter thanks very much


include ASN database

Thanks for maintaining this project! I see that you don't current include the ASN database (https://dev.maxmind.com/geoip/geoip2/geolite2/) -- would you accept a PR?

Hey! I definitely will.


Debug trigger

Objective
I tried writing something like this in my project
.observe(|e: Trigger<OnAdd, Skeleton>| {
    panic!("Skeletoned! {e:?}");
});

and it didn't compile.
Having Debug trait defined on Trigger event will ease debugging the observers a little bit.
Solution
Add a bespoke Debug implementation when both the bundle and the event have Debug implemented for them.
Testing
I've added println!("{trigger:#?}"); to the observers example
and it compiled!
Caveats with this PR are:

removing this implementation if for any reason we will need it, will be a breaking change
the implementation is manually generated, which adds potential toil when changing the Trigger structure

Showcase
Log output:
on_add_mine: Trigger {
    event: OnAdd,
    propagate: false,
    trigger: ObserverTrigger {
        observer: 2v1#4294967298,
        event_type: ComponentId(
            0,
        ),
        entity: 454v1#4294967750,
    },
    _marker: PhantomData<observers::Mine>,
}

Thank you for maintaining this engine! :orange_heart:

Looks like we added (almost) the same labels at the same time 😅 @MrGVSV

I can fix the doctest some time tomorrow

Doctests for bevy_ecs are run separately, bevy_ecs doesn't depend on bevy, meaning it doesn't have access to the DefaultPlugins.
I tried to use the minimal startup_system example, but bevy_ecs doesn't have access to bevy_app either.
I think the doctest in its current form does not provide value, as it is impossible to make it compile while still looking as regular bevy code. I'll remove it


SpeechRecognitionService stops receiving response after few minutes of translation.

In the sample demo app, after a few minutes or so, the SpeechRecognitionCompletionHandler no longer receives any response. The audio data is still being sent. I have remove [self stopAudio:nil] when isFinal is TRUE in order to continue translation. Is there a time limit set on the API?
UPDATE: i did see the limits on its usage: https://cloud.google.com/speech/limits
but i am nowhere near those limits.

I've noticed the same.

Read the limits more carefully:

The maximum duration of audio sent during StreamingRecognize and SyncRecognize requests is approximately one minute.

It seems that the API fails silently as you describe - transcription simply stops but no error is issued.
It's possible to work around this limitation (as long the speaker pauses to breathe every few minutes) by stopping and restarting the recognition process after each isFinal occurrence.

thanks @mygzi  for the update. I was thinking about doing that, but didn't know if that was the proper way to do it

Thanks for the pointer to the limits. I was planning to 'subtitle' a live audio stream for hours ... guess overlapping (concurrent) streams by say 10 seconds then drop first/last word(s) from either results could work.

I just tested with Speech-gRPC-Streaming to see the limit is indeed just 1 minute.
I also notes that pausing (breathing) too long stopped streaming.

@tbass134 @clemens-tolboom : given that it was fairly involved to get this working, I've posted my results (based on the Objective-C sample) in this fork. See the updated README for more details.

@mygzi your code looks sensible enough to make it a PR.
I've tested your changes and it seems to work OK to me. Nice work!

@mygzi I have download your code and it's working fine. When user take pause and start speech then they get the transcription. But it works for only 60 seconds . but i want it to work for all the time when we get user audio not want to limit to 60 seconds? is there any way to do this?

@iOS0340 could add a watchdog timer to start a fresh transaction after 60 seconds of silence; I assume you would still be charged for the API usage despite the lack of transcription (can anyone confirm this?), so a side effect is that if you left it running (e.g. in the simulator) and walked away you'd run up your gcp bill.

@iOS0340 added a timer that detects the end of the streaming window. Set restartWhenSpeechless = YES to keep things going when no speech is detected.
@clemens-tolboom PR submitted.

@mygzi Thanks for your quick response. Let me check if it is working for me or not.

@mygzi I found one new error. some time not get 'is_final' tag but restart recognise speech. so how can we take transcribe text in this case?

In this sample when we put device on some distance from user then not working proper. some time get text from the speech and some time not goes to END_OF_SPEECH or END_OF_AUDIO. I try to restart recognition but still not working in this case. so is there any solution for this issue?

I asked Google through my 'Free Trial Support' about this limit of 1 minute. @others please spam them too ;-)
I've tested PR #23 and wonder whether depending on its application words are lost / duplicated / 'out of context' which I have to experiment myself.
@mygzi are you up for a Swift variant? I need to learn either so prefer Swift as the new kid on the block :p

@clemens-tolboom the current approach relies on far-side VAD (Voice Activity Detection) - that is we have to wait for the gRPC API to tell us when the user has stopped speaking, and as such is best effort. Some words will be lost if we happen to be restarting a new recognition transaction when the user starts speaking again.
Restarting the transaction takes longer on slow connections (e.g. mobile data), so the likelihood of dropped words increases. We need to take on client side VAD to meaningfully improve this.
Re: Swift, i haven't looked at the existing Swift samples but if they are Swift 3 I'm game.

I've experimented with https://github.com/mdn/web-speech-api which has similar events. Its Google Chrome versions stops after 5 minutes which is too short for my application. Doing client side VAD was my java variant idea too.
@mygzi looking forward to the Swift variant ;-) hope I can help but now investigating AppEngine for authorization

Currently I am Setuping Text To Voice google API work all over ok but when i put on server i get ERROR like this:
Failed to res
olve name. status=Status{code=UNAVAILABLE, description=Unable to resolve host texttospeech.googleapis.com, cause=java.lang.RuntimeException: java.net.
UnknownHostException: texttospeech.googleapis.com
at io.grpc.internal.DnsNameResolver.resolveAll(DnsNameResolver.java:399)
at io.grpc.internal.DnsNameResolver$Resolve.resolveInternal(DnsNameResolver.java:269)
at io.grpc.internal.DnsNameResolver$Resolve.run(DnsNameResolver.java:225)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.net.UnknownHostException: texttospeech.googleapis.com
at java.net.InetAddress.getAllByName0(InetAddress.java:1280)
at java.net.InetAddress.getAllByName(InetAddress.java:1192)
at java.net.InetAddress.getAllByName(InetAddress.java:1126)
at io.grpc.internal.DnsNameResolver$JdkAddressResolver.resolveAddress(DnsNameResolver.java:624)
at io.grpc.internal.DnsNameResolver.resolveAll(DnsNameResolver.java:367)
... 5 more
Config :
Linux server
Java 8 64bit
weblogic
Please Share you idea about this


Use Span directly when available

What does the pull request do?
Adds implicit string operator for SpanCompat, and helpers for parsing span to value types to avoid string allocation.
What is the current behavior?

What is the updated/expected behavior with this PR?

How was the solution implemented (if it's not obvious)?

Checklist

[ ] Added unit tests (if possible)?
[ ] Added XML documentation to any related classes?
[ ] Consider submitting a PR to https://github.com/AvaloniaUI/Documentation with user documentation

Breaking changes

Obsoletions / Deprecations

Fixed issues
Addresses #7912

You can test this PR using the following package version. 11.0.999-cibuild0024871-beta. (feed url: https://nuget.avaloniaui.net/repository/avalonia-all/index.json) [PRBUILDID]

You can test this PR using the following package version. 11.0.999-cibuild0024901-beta. (feed url: https://nuget.avaloniaui.net/repository/avalonia-all/index.json) [PRBUILDID]

You can test this PR using the following package version. 11.0.999-cibuild0025001-beta. (feed url: https://nuget.avaloniaui.net/repository/avalonia-all/index.json) [PRBUILDID]


[CT-523] [Bug] MacOS M1 dbt-postgres unable to pip install with python 3.7

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
pip install dbt-postgres with python3.7 fails with an error. This appears to be a recent issue, I was able to previous install without error. Happens on a CI build, as well as my local Mac 11.6 machine.
Expected Behavior
dbt-postgres should install without error.
Steps To Reproduce

Setup Python3.7 on your Mac
Create a virtualenv and activate it
pip install dbt-postgres, expect error

Relevant log output
$ /Users/varun/.pyenv/versions/3.7.13/bin/python3.7 -m venv venv

$ pip list
-bash: pip: command not found

$ venv   # custom alias, just doing a `source venv/bin/activate`
Activating virtual environment in ./venv

$ which pip
/Users/varun/code/dc/dbt-subsys/venv/bin/pip

$ which python
/Users/varun/code/dc/dbt-subsys/venv/bin/python

$ python --version
Python 3.7.13

$ pip install dbt-postgres
Collecting dbt-postgres
  Using cached dbt_postgres-1.0.5-py3-none-any.whl (13 kB)
Collecting psycopg2-binary~=2.8
  Using cached psycopg2-binary-2.9.3.tar.gz (380 kB)
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [1 lines of output]
      ERROR: Can not execute `setup.py` since setuptools is not available in the build environment.
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

$ pip list
Package    Version
---------- -------
pip        22.0.4
setuptools 47.1.0

Note that this is running in a virtualenv, setuptools is installed and python3.7 is being used here.
Additionally, the native python's on this machine are,
$ python --version
Python 2.7.16

$ python3 --version
Python 3.8.9

But above I've used pyenv to force 3.7 for the purposes of installing dbt-postgres
Environment
- OS: MacOS 11.6.4
- Python: 3.7.13 (virtualenv)
- dbt: latest (`pip install dbt-core dbt-postgres` also fails)

What database are you using dbt with?
postgres
Additional Context
No response

This actually appears to be an upstream issue https://github.com/psycopg/psycopg2/issues/1286.
Please feel free to close if dbt-core isn't able to do anything about this, I'm going to leave it open for now in case there is any follow up comments from the dbt team.

Hey, @varun-dc Sorry to get back to you late, and thanks for digging into this. Did this method work for you?

Hi,
I'm quite unsure what exactly is going on. Right now, this isn't a blocker for me, so I'm not affected, but this. But perhaps there may be others who are still affected by this.
My situation was around using Python 3.7 with pyenv, which may be resulting in other complications due to libffi and _ctypes. So I can't be sure if the root cause is something related to dbt-postgres/dbt-core installation or something on my system.
For now, I can close this and if anyone else needs to follow up here with some additional details for the dbt team, they can re-open this issue and provide more concrete details than I'm able to at this time.

Hi,
I recently got mac m1.
dbt install postgres is failing with
Collecting psycopg2-binary~=2.8
Using cached psycopg2-binary-2.9.3.tar.gz (380 kB)
Preparing metadata (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [25 lines of output]
/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/setuptools/config/setupcfg.py:508: SetuptoolsDeprecationWarning: The license_file parameter is deprecated, use license_files instead.
warnings.warn(msg, warning_class)
running egg_info
creating /private/var/folders/l2/6ksjtxb15wjbvh5xlcqj1f4w0000gn/T/pip-pip-egg-info-54ej1_7t/psycopg2_binary.egg-info
writing /private/var/folders/l2/6ksjtxb15wjbvh5xlcqj1f4w0000gn/T/pip-pip-egg-info-54ej1_7t/psycopg2_binary.egg-info/PKG-INFO
writing dependency_links to /private/var/folders/l2/6ksjtxb15wjbvh5xlcqj1f4w0000gn/T/pip-pip-egg-info-54ej1_7t/psycopg2_binary.egg-info/dependency_links.txt
writing top-level names to /private/var/folders/l2/6ksjtxb15wjbvh5xlcqj1f4w0000gn/T/pip-pip-egg-info-54ej1_7t/psycopg2_binary.egg-info/top_level.txt
writing manifest file '/private/var/folders/l2/6ksjtxb15wjbvh5xlcqj1f4w0000gn/T/pip-pip-egg-info-54ej1_7t/psycopg2_binary.egg-info/SOURCES.txt'
  Error: pg_config executable not found.

  pg_config is required to build psycopg2 from source.  Please add the directory
  containing pg_config to the $PATH or specify the full executable path with the
  option:

      python setup.py build_ext --pg-config /path/to/pg_config build ...

  or with the pg_config option in 'setup.cfg'.

  If you prefer to avoid building psycopg2 from source, please install the PyPI
  'psycopg2-binary' package instead.

  For further information please check the 'doc/src/install.rst' file (also at
  <https://www.psycopg.org/docs/install.html>).

  [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

I have the same issue on a Mac M machine. I've installed psycopg2-binary package as proposed, but it still tries to build it from source.
Anyone already succeeded with this?
It's a pity that the brew formula is not available anymore. That was so simple 😊


add is_some and is_none to OptionFuture

This PR adds is_some and is_none to OptionFuture. This is useful when you only want to poll the OptionFuture if it contains a future (i.e treat None as never).

Hmm. This could be a bit misleading API, since in the current implementation OptionFuture does not set the inner field to None when the future is complete.
We may want to set the inner field to None on completion and make is_none return true "if the future is absent or completed".


High-Gain Mode reported visible on R2 detector?

Investigate and resolve

Per Evan, this was because the spectrometer in question was a custom design which did not map to any of the standard ModelInfo classes in ENLIGHTEN.  We had been defaulting the HighGainModeFeature to visible unless there was a reason to turn it off.  Since there was no ModelInfo instructing us to turn it off, it remained visible.  This logic is being inverted such that the control will default to invisible, unless there is evidence that it should be exposed.

https://github.com/WasatchPhotonics/ENLIGHTEN/pull/33


Do you still work on this app ?

Looks nice, I was wondering if we can expect new features or versions

Yes, maybe in the future i will continue maintenance, because i almost done everything in ImageToolbox

Thank you for the cheerful info...closing this as completed ✨

Let it be opened 👀


Refactor unit tests to use more convenient doctest assertion macros

This PR refactors unit tests to use more convenient doctest assertion macros, as discussed in issue #3365.
The bulk of the change was done automatically, using a regexp replace, with some manual adjustments.
In the process, I found several unit tests that rely on the side effects of running two assertion macros and got broken by running a single one. Those tests are left untouched, to keep them passing. I think I will try to address those is a separate PR.

Coverage remained the same at 100.0% when pulling<PHONE_NUMBER>15d5e26879a273748230cdc148b076 on kkarbowiak:develop into 700b95f4473cac1d900b807541daad0ca3d98f52 on nlohmann:develop.

There are still tests failing in the CI. Can you please update from the latest develop branch?

There are still tests failing in the CI. Can you please update from the latest develop branch?

As far as I can tell, my fork is up to date with regards to the develop branch.
Also, it seems that the only CI builds that did not succeed are the MSVC2017 ones. Those got canceled, presumably due to Github deprecating the Windows 2016 environment. Please have a look at the bottom of this page. If I'm mistaken though, I'll be happy to do any corrections necessary to make the CI builds pass.

The latest develop branch runs all CI tests.

Thanks a lot!

Thank you, too.


Scalar types not found when used in queries or mutations

Before opening, please confirm:

[X] I have installed the latest version of the Amplify CLI (see above), and confirmed that the issue still persists.
[X] I have searched for duplicate or closed issues.
[X] I have read the guide for submitting bug reports.
[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.

How did you install the Amplify CLI?
npm
If applicable, what version of Node.js are you using?
v16.18.0
Amplify CLI Version
10.4.1
What operating system are you using?
Windows
Amplify Codegen Command
Not applicable
Describe the bug
Graphql schema fails validation if scalar types are used as input parameters in queries/mutations.
amplify CLI output:
⚠  WARNING: Some types do not have authorization rules configured. That means all create, read, update, and delete operations are denied on these types:
         - Employee
Learn more about "@auth" authorization rules here: https://docs.amplify.aws/cli/graphql/authorization-rules
🛑 Schema validation failed.

Unknown type "ID".

GraphQL request:11:24
10 |
11 | query getEmployee($id: ID!) {
   |                        ^
12 |   getEmployee(id: $id) {

Expected behavior
Expected no errors, and for the query to appear in src/graphql/queries.js.
Reproduction steps
Execute amplify api gql-compile
GraphQL schema(s)

# Put schemas below this line
type Employee @model {
  id: ID!
  name: String! @index(name: "byName", queryField: "employeeByName", sortKeyFields: ["id"])
  startDate: String!
  phoneNumber: String!
  warehouseID: ID! @index(name: "byWarehouse", sortKeyFields: ["id"])
  jobTitle: String! @index(name: "byTitle", queryField: "employeesByJobTitle", sortKeyFields: ["id"])
  newHire: String! @index(name: "newHire", queryField: "employeesNewHire", sortKeyFields: ["id"]) @index(name: "newHireByStartDate", queryField: "employeesNewHireByStartDate", sortKeyFields: ["startDate"])
}

query getEmployee($id: ID!) {
  getEmployee(id: $id) {
    id
    name
    phoneNumber
    startDate
    jobTitle
  }
}

Log output

# Put your logs below this line
DeploymentFault: Schema validation failed.

Unknown type "ID".

GraphQL request:114:32
113 |
114 | query getVoxDaysAttendee2($id: ID!) {
    |                                ^
115 |   getVoxDaysAttendee2(id: $id) {
2022-11-15T05:48:21.461Z|info : amplify gql-compile api
2022-11-15T05:48:21.516Z|info : amplify-cli-core.banner-message/index.ts.fetch banner messages from https://aws-amplify.github.io/amplify-cli/banner-message.json({}
2022-11-15T05:48:47.740Z|info : amplify gql-compile api
2022-11-15T05:48:47.798Z|info : amplify-cli-core.banner-message/index.ts.fetch banner messages from https://aws-amplify.github.io/amplify-cli/banner-message.json({}
2022-11-15T05:49:46.918Z|info : amplify gql-compile api
2022-11-15T05:49:46.978Z|info : amplify-cli-core.banner-message/index.ts.fetch banner messages from https://aws-amplify.github.io/amplify-cli/banner-message.json({}
2022-11-15T05:50:19.536Z|info : amplify gql-compile api
2022-11-15T05:50:19.591Z|info : amplify-cli-core.banner-message/index.ts.fetch banner messages from https://aws-amplify.github.io/amplify-cli/banner-message.json({}
2022-11-15T06:02:21.801Z|info : amplify gql-compile api
2022-11-15T06:02:21.860Z|info : amplify-cli-core.banner-message/index.ts.fetch banner messages from https://aws-amplify.github.io/amplify-cli/banner-message.json({}
2022-11-15T06:10:33.199Z|info : amplify gql-compile api
2022-11-15T06:10:33.254Z|info : amplify-cli-core.banner-message/index.ts.fetch banner messages from https://aws-amplify.github.io/amplify-cli/banner-message.json({}
2022-11-15T06:17:15.891Z|info : amplify gql-compile api
2022-11-15T06:17:15.944Z|info : amplify-cli-core.banner-message/index.ts.fetch banner messages from https://aws-amplify.github.io/amplify-cli/banner-message.json({}
2022-11-15T06:24:18.892Z|info : amplify gql-compile api
2022-11-15T06:24:18.951Z|info : amplify-cli-core.banner-message/index.ts.fetch banner messages from https://aws-amplify.github.io/amplify-cli/banner-message.json({}
2022-11-15T06:25:29.054Z|info : amplify gql-compile api
2022-11-15T06:25:29.106Z|info : amplify-cli-core.banner-message/index.ts.fetch banner messages from https://aws-amplify.github.io/amplify-cli/banner-message.json({}
2022-11-15T06:27:28.343Z|info : amplify gql-compile api
2022-11-15T06:27:28.401Z|info : amplify-cli-core.banner-message/index.ts.fetch banner messages from https://aws-amplify.github.io/amplify-cli/banner-message.json({}
2022-11-15T06:28:09.721Z|info : amplify gql-compile api
2022-11-15T06:28:09.778Z|info : amplify-cli-core.banner-message/index.ts.fetch banner messages from https://aws-amplify.github.io/amplify-cli/banner-message.json({}
2022-11-15T06:28:26.115Z|info : amplify gql-compile api
2022-11-15T06:28:26.171Z|info : amplify-cli-core.banner-message/index.ts.fetch banner messages from https://aws-amplify.github.io/amplify-cli/banner-message.json({}
2022-11-15T06:29:05.495Z|info : amplify gql-compile api
2022-11-15T06:29:05.550Z|info : amplify-cli-core.banner-message/index.ts.fetch banner messages from https://aws-amplify.github.io/amplify-cli/banner-message.json({}
2022-11-15T06:31:31.972Z|info : amplify gql-compile api
2022-11-15T06:31:32.032Z|info : amplify-cli-core.banner-message/index.ts.fetch banner messages from https://aws-amplify.github.io/amplify-cli/banner-message.json({}
2022-11-15T06:32:55.426Z|info : amplify gql-compile api
2022-11-15T06:32:55.483Z|info : amplify-cli-core.banner-message/index.ts.fetch banner messages from https://aws-amplify.github.io/amplify-cli/banner-message.json({}
2022-11-15T06:39:47.880Z|info : amplify version core
2022-11-15T06:40:44.085Z|info : amplify codegen codegen
2022-11-15T06:40:44.142Z|info : amplify-cli-core.banner-message/index.ts.fetch banner messages from https://aws-amplify.github.io/amplify-cli/banner-message.json({}
2022-11-15T06:40:48.134Z|info : amplify-provider-awscloudformation.utility-functions.getIntrospectionSchema.appSyncModel.appSync.getIntrospectionSchema([{"apiId":"[***]3pc7wmqhxcu","format":"JSON"}])
2022-11-15T06:46:11.171Z|info : amplify gql-compile api
2022-11-15T06:46:11.234Z|info : amplify-cli-core.banner-message/index.ts.fetch banner messages from https://aws-amplify.github.io/amplify-cli/banner-message.json({}

Additional information
This type and query was taken from the CLI documentation at https://docs.amplify.aws/cli/graphql/examples-and-solutions/#warehouse-management-system

Resolved by adding "schema { query: Query }"


fix overwrite of neuron devices when efa devices are also specified

When @batch contains both inferentia and efa arguments, the list of /dev/neuron{N} (for inferentia and trainium) specifications in nodeProperties.nodeRangeProperties.container.linuxParameters.devices are currently being overwritten by the list of  /dev/infiniband/uverbs{N} (for efa eni's) devices.

NOTE: There is still a bug here. When submitting multinode job with EFA and inferentia it yields error message about node
botocore.errorfactory.ClientException: An error occurred (ClientException) when calling the SubmitJob operation: NodeOverride targets should match job definition. Non matching targets - 0:0,1:1


Add natalisucks to docs reviewers and approvers of English language content

As part of my Co-chair TODOs for SIG Docs, am making sure I'm added to the reviewers and approvers list for English language content ❤

/lgtm

/approve
Welcome!


Updating Language Specification

Changes in this update:

Updated introduction (just fixed obvious issues, it still needs a major overhaul).
Added section on symbol primitive type (3.2.4).
Updates to subtype and assignability sections (3.11.3 and 3.11.4).
New section on excess properties (3.11.5).
Added case for tuple type inference (3.11.7).

:+1:


编译报错

→ go build
github.com/ireaderlab/alex
./vegeta.go:453:35: not enough arguments in call to attacker.Attack
have (vegeta.Targeter, uint64, time.Duration)
want (vegeta.Targeter, uint64, time.Duration, string)
→ go version
go version go1.9.2 darwin/amd64

没人解决吗？一样的问题

你们是不是windows上装的  我也是这问题

我是这样解决的，不知道是否有问题

dep ensure  命令报错
grouped write of manifest, lock and vendor: error while writing out vendor tree: failed to write dep tree: failed to export golang.org/x/sys: unable to deduce repository and source type for "golang.or g/x/sys": unable to read metadata: unable to fetch raw metadata: failed HTTP request to URL "http://golang.org/x/sys?go-get=1": Get http://golang.org/x/sys?go-get=1: dial tcp <IP_ADDRESS>:80: connecte x: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
解决： 如果本地安装了  golang/x

注释掉 ，再次执行命令即可


Roman ct 871 add flags to feature model

Jira: CT-871
Connection PR:https://github.com/keboola/connection/pull/4235
Before asking for review make sure that:
Checklist

[x] New client method(s) has tests
[x] Apiary file is updated
[x] You declared if there is a BC break or not (will affect next release of a client)

Release

[x] I gave the PR a proper label:

major (BC break)
minor (new feature)
patch (backwards compatible fix)
no release (just test changes)

rebase


How do I dynamically set the face_detection_front.tflite model path?

hei, i am trying to using the face_mesh solution to do something ( C++) , and now i want to set the model path by Initialization function like set  mediapipe/graphs/face_mesh/face_mesh_desktop_live.pbtxt
i try to add a new input_stream: "face_mode_path" in the face_detection_front_cpu.pbtxt and change
node {
  calculator: "FaceLandmarkFrontCpu"
  input_stream: "IMAGE:throttled_input_video"
  input_stream: "FACE_MODEL_PATH:face_model_path"   #add to set the model path   dynamically
  input_side_packet: "NUM_FACES:num_faces"
  output_stream: "LANDMARKS:multi_face_landmarks"
  output_stream: "ROIS_FROM_LANDMARKS:face_rects_from_landmarks"
  output_stream: "DETECTIONS:face_detections"
  output_stream: "ROIS_FROM_DETECTIONS:face_rects_from_detections"
}

node {
  calculator: "InferenceCalculator"
  input_stream: "TENSORS:input_tensors"
  output_stream: "TENSORS:detection_tensors"
  options: {
    [mediapipe.InferenceCalculatorOptions.ext] {
      model_path: "FACE_MODEL_PATH:face_model_path" # "mediapipe/modules/face_detection/face_detection_front.tflite" this is the original path
      delegate { xnnpack {} }
    }
  }
}

then  using Packet to Initialization the path ,here is my code:
graph.AddPacketToInputStream(kFaceModelInputStream, mediapipe::MakePacket<std::string>(face_model_path) );
i have failed, there a error message is can't open 'FACE_MODEL_PATH:face_model_path' It seems to read a string not variable
What should I do? is there any way to get node InferenceCalculator and set path dynamically?

The way you have formulated the dynamic calculator option is exactly how we would like graph options to work eventually.  But for now, the "InferenceCalculatorOptions" can only be used for constant values.  A few calculators accept dynamic options separately through input-side-packets and/or input-streams.  For example, InferenceCalculator accepts an already loaded model through the "MODEL" input-side-packet, but does not accept a model-path through an input-stream.
MediaPipe users usually resort to re-initializing the calculator-graph when a new model is selected dynamically.  Let me know if that approach could cover your use case.

think you for your help!!!!!!!!!!

@hadon Hello, but I need specific a customized path, does it not support?


metal_soc_descriptor.cpp uses ARCH_NAME specific include path for dev_mem_map.h

https://github.com/tenstorrent/tt-metal/blob/4924301fe768a35d1455dabd7b2660c5160009e9/tt_metal/common/metal_soc_descriptor.cpp#L12
dev_mem_map.h is ARCH_NAME specific and is brought in for MEM_TRISC0_FIRMWARE_SIZE.
This needs to be eliminated or moved behind hal or yaml.
https://github.com/tenstorrent/tt-metal/blob/97731c4e64db1306a751ddc467e6e1e65f1009f7/tt_metal/common/metal_soc_descriptor.cpp#L375

@pgkeller could you please elaborate on your TODO comment here?
What yaml file should provide these params? Is that still a good forward plan?
https://github.com/tenstorrent/tt-metal/blob/97731c4e64db1306a751ddc467e6e1e65f1009f7/tt_metal/common/metal_soc_descriptor.cpp#L375

@pgkeller could you please elaborate on your TODO comment here?
What yaml file should provide these params? Is that still a good forward plan?
tt-metal/tt_metal/common/metal_soc_descriptor.cpp
Line 375 in 97731c4
this->trisc_sizes = {MEM_TRISC0_FIRMWARE_SIZE, MEM_TRISC1_FIRMWARE_SIZE, MEM_TRISC2_FIRMWARE_SIZE};  // TODO: Read trisc size from yaml

I don't think that comment is mine, though maybe...
At this point in time, trisc_sizes is legacy and should be removed.  From a grep, I only see it used in tt_versim_device under deprecated.

At this point in time, trisc_sizes is legacy and should be removed. From a grep, I only see it used in tt_versim_device under deprecated.

Thank you for highlighting this! Makes me happy.


InvalidTemplateDeployment: The template deployment 'openai' is not valid according to the validation procedure

Please provide us with the following information:

This issue is for a: (mark with an x)
- [x] bug report -> please search issues before submitting
- [ ] feature request
- [ ] documentation issue or request
- [ ] regression (a behavior that used to work and stopped in a new release)

Minimal steps to reproduce

Run deploy

Any log messages given by the failure
Everything works fine till provisioning.

ERROR: deployment failed: error deploying infrastructure: failed deploying: deploying to subscription:

Deployment Error Details:
InvalidTemplateDeployment: The template deployment 'openai' is not valid according to the validation procedure. The tracking id is '089359ac-415c-4527-84d7-386e0d141d37'. See inner errors for details.
SpecialFeatureOrQuotaIdRequired: The subscription does not have QuotaId/Feature required by SKU 'S0' from kind 'OpenAI'
Expected/desired behavior

OS and Version?

Windows 10

Versions

Mention any other details that might be useful
Region is East-US, though I'm in West-Europe (but that is a prereq).
Found an article that I should/could change the template to SKU 1 instead of S0. Found that in template, but template is read-only(?)

Thanks! We'll be in touch soon.

@stevenbaert you were able to resolve this?

Yes, it was some kind of approval Microsoft support had to give. They didn't clarify what exactly this approval contained.

I have encountered the same problem. How can I solve it? The following is the error message.
ERROR: deployment failed: error deploying infrastructure: deploying to subscription:
Deployment Error Details:
InvalidTemplateDeployment: The template deployment 'openai' is not valid according to the validation procedure. The tracking id is 'fc9d0371-2935-4fcc-8864-2caf606cf1a4'. See inner errors for details.
InsufficientQuota: Insufficient quota. Cannot create/update/move resource 'cog-hmi66yt7ad2ey'.

Hi @stevenbaert, I am having the same issue. How did you resolve it ? Could you provide some steps ?

Make a Microsoft case. They solved it changing rights in the backend. Don't
have details what was changed.
Op ma 24 apr. 2023 23:45 schreef chengyuliu-msft @.***>:

Hi @stevenbaert https://github.com/stevenbaert, I am having the same
issue. How did you resolve it ? Could you provide some steps ?
—
Reply to this email directly, view it on GitHub
https://github.com/Azure-Samples/azure-search-openai-demo/issues/110#issuecomment-1520871550,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKLVNN2AZNMZBXRSXWEL6RLXC3YBFANCNFSM6AAAAAAW32XFNU
.
You are receiving this because you were mentioned.Message ID:
@.***>

I have the same issue...
Did you resolve the issue by requesting access here?
https://customervoice.microsoft.com/Pages/ResponsePage.aspx?id=v4j5cvGGr0GRqy180BHbR7en2Ais5pxKtso_Pz4b1_xUOFA5Qk1UWDRBMjg0WFhPMkIzTzhKQ1dWNyQlQCN0PWcu

Here is another thread of the same issue:
https://learn.microsoft.com/en-us/answers/questions/1287628/azure-openai-cognitive-service-error-running-sampl

I had the same and was able to resolve by deleting one of the OpenAI service resources and purging it from the deleted section.

@KonTheCat, how did you go about purging? Not sure where this "deleted" section is in this context

I deleted all the open AI resources. Purged it as well but still the same error

I have seen other threads like this end well after requests to Microsoft for more quota. You may also do well out of trying a different region if that is an option for you, this quota looks regional.


Handle MultiWidget properly

Instead of poking with the MultiWidget poke with the sub widgets.
This fixes django.contrib.admin.widgets.AdminSplitDateTime rendering.
Fixes #248

Coverage decreased (-0.17%) to 85.57% when pulling a8a65ff63bb926f331f8473bd0c13cd567575796 on xrmx:multiwidget into cf822b9e65e487e0a2a00f814620ccd5c3c54c9d on dyve:develop.

Hello, tried the pull request and I'm getting:
Exception Value:
add_class_attrs() takes exactly 1 argument (2 given)
bootstrap3/renderers.py in add_widget_attrs, line 303

@jleszczynski the patch changes some renderers.FieldRenderer's method signatures so it's breaking apps that subclass it.

@xrmx I wanted to do the same thing, apply functions for each widget, but found your PR ; for me it works fine after I merged your patch this in current master.

I pulled this in, changed the name of a var (multi_widget to is_multi_widget) and fixed the merge conflicts. Thanks! Please confirm develop works as intended for you.

I can confirm both develop and master 6.2.0 render properly now. Thanks!


Update .gitignore to ignore ReactAndroid generated Gradle files

Summary
When building RNAndroid, Gradle files are generated. Added them to .gitignore. If it is ideal to have them in the repo I can commit them.

Changelog

[Internal] [Fixed] - Added ReactAndroid generated Gradle files to .gitignore
Test Plan

Build ReactAndroid, generated Gradle files no longer show up in git changes.

how do you build ReactAndroid?

@dulmandakh these files got generated when I built RNTester from Android Studio


Upgrade from V1.5.6 to V1.6.2 fails if using baseline_codebuild_role.without_policy_updates

Upgrade from V1.5.6 to V1.6.2 fails if using baseline_codebuild_role.without_policy_updates
This is technically not a bug as the as the data.all code was used outside it's intended purpose.
The fix https://github.com/awslabs/aws-dataall/pull/774 was implemented in the main branch so didn't help with our upgrade from V1.5.6 to V1.6.2. So I merged the pipeline.py changes into the V1.6.2 code (code as per "How to reproduce") and ran the pipeline. This worked well initially and it made it past the quality gate stage, the ecr-stage and also the dev-backend-stage. However, the DB migration stage failed (see logs in "Additional context").
The command that failed (error 255 hints at a permissions issue) is
aws codeartifact login --tool pip --domain ***********-domain-master --domain-owner YYYYYYYYYYYY --repository ***********-pypi-store
Interestingly, this command executed perfectly fine in the QualityGate ValidateDBMigrations stage (see logs).
I tried to execute this manually, assuming the relevant role that is used in the pipeline and that also worked fine!?
Since the pipeline ran, I have also received tons of emails with data.all alarms for various accounts relating to the ecr-stage (I think), although they stopped after about 2 days.

You are receiving this email because your DATAALL platdev environment in the eu-west-2 region has entered the ALARM state, because it failed to synchronize Dataset AAAAAAAAAAAA-risk-and-control tables from AWS Glue to the Search Catalog.
Alarm Details:
- State Change:                    OK -> ALARM
- Reason for State Change:      An error occurred (AccessDenied) when calling the AssumeRole operation: User: arn:aws:sts::XXXXXXXXXXXX:assumed-role/-platdev-ecs-tasks-role/6ceeec3*********8b08bce9 is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::ZZZZZZZZZZZZ:role/dataallPivotRole-cdk
- Timestamp:                              2023-10-14 00:55:02.304823
Dataset
- Dataset URI:                   rnsh6s27
- AWS Account:                ZZZZZZZZZZZZ
- Region:                            eu-west-2
- Glue Database:              lbx_member_db
The emails stopped after 2 days, data.all may have given up on whatever it was trying to do.
Here are the Cloudtrail logs:
{
"eventVersion": "1.08",
"userIdentity": {
"type": "AssumedRole",
"principalId": ":149dfc83a8ff464abfd0ffd63d62deaf",
"arn": "arn:aws:sts::XXXXXXXXXXXX:assumed-role/-platdev-ecs-tasks-role/149dfc83a8ff464abfd0ffd63d62deaf",
"accountId": "XXXXXXXXXXXX",
"accessKeyId": "",
"sessionContext": {
"sessionIssuer": {
"type": "Role",
"principalId": "****************",
"arn": "arn:aws:iam::XXXXXXXXXXXX:role/-platdev-ecs-tasks-role",
"accountId": "XXXXXXXXXXXX",
"userName": "-platdev-ecs-tasks-role"
},
"webIdFederationData": {},
"attributes": {
"creationDate": "2023-10-13T14:09:31Z",
"mfaAuthenticated": "false"
}
}
},
"eventTime": "2023-10-13T14:10:01Z",
"eventSource": "sts.amazonaws.com",
"eventName": "AssumeRole",
"awsRegion": "eu-west-2",
"sourceIPAddress": "<IP_ADDRESS>",
"userAgent": "Boto3/1.24.85 Python/3.8.16 Linux/5.10.192-183.736.amzn2.x86_64 exec-env/AWS_ECS_FARGATE Botocore/1.27.85 data.all/0.5.0",
"errorCode": "AccessDenied",
"errorMessage": "User: arn:aws:sts::XXXXXXXXXXXX:assumed-role/***********-platdev-ecs-tasks-role/149dfc83a8ff464abfd0ffd63d62deaf is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::WWWWWWWWWWWW:role/dataallPivotRole-cdk",
"requestParameters": null,
"responseElements": null,
…
}
}
So some aspects are a bit of a mystery, maybe you can figure out what exactly has gone wrong.
DB Migration log:
…
[Container] 2023/10/16 14:52:25 Entering phase BUILD
[Container] 2023/10/16 14:52:25 Running command mkdir ~/.aws/ && touch ~/.aws/config
[Container] 2023/10/16 14:52:25 Running command echo "[profile buildprofile]" > ~/.aws/config
[Container] 2023/10/16 14:52:25 Running command echo "role_arn = arn:aws:iam::XXXXXXXXXXXX:role/***********-platdev-cb-dbmigration-role" >> ~/.aws/config
[Container] 2023/10/16 14:52:25 Running command echo "credential_source = EcsContainer" >> ~/.aws/config
[Container] 2023/10/16 14:52:25 Running command aws sts get-caller-identity --profile buildprofile
{
"UserId": "*************:botocore-session-1697467958",
"Account": "XXXXXXXXXXXX",
"Arn": "arn:aws:sts::XXXXXXXXXXXX:assumed-role/-platdev-cb-dbmigration-role/botocore-session-1697467958"
}
[Container] 2023/10/16 14:52:39 Running command aws codebuild start-build --project-name ***********-platdev-dbmigration --profile buildprofile --region eu-west-2 > codebuild-id.json
[Container] 2023/10/16 14:52:39 Running command aws codebuild batch-get-builds --ids $(jq -r .build.id codebuild-id.json) --profile buildprofile --region eu-west-2 > codebuild-output.json
[Container] 2023/10/16 14:52:40 Running command while [ "$(jq -r .builds[0].buildStatus codebuild-output.json)" != "SUCCEEDED" ] && [ "$(jq -r .builds[0].buildStatus codebuild-output.json)" != "FAILED" ]; do echo "running migration"; aws codebuild batch-get-builds --ids $(jq -r .build.id codebuild-id.json) --profile buildprofile --region eu-west-2 > codebuild-output.json; echo "$(jq -r .builds[0].buildStatus codebuild-output.json)"; sleep 5; done
running migration
IN_PROGRESS
running migration
…
IN_PROGRESS
running migration
FAILED
[Container] 2023/10/16 15:08:44 Running command if [ "$(jq -r .builds[0].buildStatus codebuild-output.json)" = "FAILED" ]; then echo "Failed";  cat codebuild-output.json; exit -1; fi
Failed
{
"builds": [
{
"id": "-platdev-dbmigration:556525ab-375d-481c-8eab-20358cfb3ec8",
"arn": "arn:aws:codebuild:eu-west-2:XXXXXXXXXXXX:build/-platdev-dbmigration:556525ab-375d-481c-8eab-20358cfb3ec8",
"buildNumber": 12,
"startTime":<PHONE_NUMBER>.665,
"endTime":<PHONE_NUMBER>.942,
"currentPhase": "COMPLETED",
"buildStatus": "FAILED",
"projectName": "***********-platdev-dbmigration",
"phases": [
…
{
"phaseType": "BUILD",
"phaseStatus": "FAILED",
"startTime":<PHONE_NUMBER>.638,
"endTime":<PHONE_NUMBER>.594,
"durationInSeconds": 924,
"contexts": [
{
"statusCode": "COMMAND_EXECUTION_ERROR",
"message": "Error while executing command: aws codeartifact login --tool pip --domain -domain-master --domain-owner YYYYYYYYYYYY --repository -pypi-store. Reason: exit status 255"
}
]
},
{
"phaseType": "POST_BUILD",
"phaseStatus": "SUCCEEDED",
"startTime":<PHONE_NUMBER>.594,
"endTime":<PHONE_NUMBER>.63,
"durationInSeconds": 0,
"contexts": [
{
"statusCode": "",
"message": ""
}
]
},
{
"phaseType": "UPLOAD_ARTIFACTS",
"phaseStatus": "SUCCEEDED",
"startTime":<PHONE_NUMBER>.63,
"endTime":<PHONE_NUMBER>.708,
"durationInSeconds": 0,
"contexts": [
{
"statusCode": "",
"message": ""
}
]
},
{
"phaseType": "FINALIZING",
"phaseStatus": "SUCCEEDED",
"startTime":<PHONE_NUMBER>.708,
"endTime":<PHONE_NUMBER>.942,
"durationInSeconds": 0,
"contexts": [
{
"statusCode": "",
"message": "RequestError: send request failed\ncaused by: Post "[https://logs.eu-west-2.amazonaws.com/\](https://logs.eu-west-2.amazonaws.com/)": dial tcp <IP_ADDRESS>:443: i/o timeout"
}
]
},
{
"phaseType": "COMPLETED",
"startTime":<PHONE_NUMBER>.942
}
],
"source": {
"type": "NO_SOURCE",
"buildspec": "{\n  "version": "0.2",\n  "phases": {\n    "build": {\n      "commands": [\n        "aws s3api get-object --bucket -master-code-YYYYYYYYYYYY-eu-west-2 --key source_build.zip source_build.zip",\n        "unzip source_build.zip",\n        "python -m venv env",\n        ". env/bin/activate",\n        "aws codeartifact login --tool pip --domain -domain-master --domain-owner YYYYYYYYYYYY --repository -pypi-store",\n        "pip install -r backend/requirements.txt",\n        "pip install alembic",\n        "export PYTHONPATH=backend",\n        "export envname=platdev",\n        "alembic -c backend/alembic.ini upgrade head"\n      ]\n    }\n  }\n}",
"insecureSsl": false
},
"secondarySources": [],
"secondarySourceVersions": [],
"artifacts": {
"location": ""
},
"cache": {
"type": "NO_CACHE"
},
"environment": {
"type": "LINUX_CONTAINER",
"image": "aws/codebuild/amazonlinux2-x86_64-standard:3.0",
"computeType": "BUILD_GENERAL1_SMALL",
"environmentVariables": [],
"privilegedMode": false,
"imagePullCredentialsType": "CODEBUILD"
},
"serviceRole": "arn:aws:iam::XXXXXXXXXXXX:role/-platdev-cb-dbmigration-role",
"logs": {
"groupName": "/aws/codebuild/-platdev-dbmigration",
"streamName": "556525ab-375d-481c-8eab-20358cfb3ec8",
"deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=eu-west-2#logsV2:log-groups/log-group/$252Faws$252Fcodebuild$252F-platdev-dbmigration/log-events/556525ab-375d-481c-8eab-20358cfb3ec8",
"cloudWatchLogsArn": "arn:aws:logs:eu-west-2:XXXXXXXXXXXX:log-group:/aws/codebuild/-platdev-dbmigration:log-stream:556525ab-375d-481c-8eab-20358cfb3ec8"
},
"timeoutInMinutes": 60,
"queuedTimeoutInMinutes": 480,
"buildComplete": true,
"initiator": "-platdev-cb-dbmigration-role/botocore-session-1697467958",
"vpcConfig": {
"vpcId": "vpc-000382333791308c1",
"subnets": [
"subnet-01baa5a50fc364b02",
"subnet-0a98df0ce73be5447"
],
"securityGroupIds": [
"sg-0e68460a73d0ac50d"
]
},
"networkInterface": {
"subnetId": "subnet-0a98df0ce73be5447",
"networkInterfaceId": "eni-052532d0cd1bf9110"
},
"encryptionKey": "arn:aws:kms:eu-west-2:XXXXXXXXXXXX:alias/aws/s3"
}
],
"buildsNotFound": []
}
[Container] 2023/10/16 15:08:44 Command did not exit successfully if [ "$(jq -r .builds[0].buildStatus codebuild-output.json)" = "FAILED" ]; then echo "Failed";  cat codebuild-output.json; exit -1; fi exit status 255
[Container] 2023/10/16 15:08:44 Phase complete: BUILD State: FAILED
[Container] 2023/10/16 15:08:44 Phase context status code: COMMAND_EXECUTION_ERROR Message: Error while executing command: if [ "$(jq -r .builds[0].buildStatus codebuild-output.json)" = "FAILED" ]; then echo "Failed";  cat codebuild-output.json; exit -1; fi. Reason: exit status 255
[Container] 2023/10/16 15:08:44 Entering phase POST_BUILD
[Container] 2023/10/16 15:08:44 Phase complete: POST_BUILD State: SUCCEEDED
[Container] 2023/10/16 15:08:44 Phase context status code:  Message:
Quality Gate DB Validation log:

…
[Container] 2023/10/13 13:32:05 Entering phase BUILD
[Container] 2023/10/13 13:32:05 Running command aws codeartifact login --tool pip --repository -pypi-store --domain -domain-master --domain-owner YYYYYYYYYYYY
Successfully configured pip to use AWS CodeArtifact repository [https://-domain-master-YYYYYYYYYYYY.d.codeartifact.eu-west-2.amazonaws.com/pypi/-pypi-store/](https://-domain-master- YYYYYYYYYYYY.d.codeartifact.eu-west-2.amazonaws.com/pypi/-pypi-store/)
Login expires in 12 hours at 2023-10-14 01:32:18+00:00
…
[Container] 2023/10/13 13:33:41 Phase complete: BUILD State: SUCCEEDED
[Container] 2023/10/13 13:33:41 Phase context status code:  Message:
[Container] 2023/10/13 13:33:41 Entering phase POST_BUILD
[Container] 2023/10/13 13:33:41 Phase complete: POST_BUILD State: SUCCEEDED
[Container] 2023/10/13 13:33:41 Phase context status code:  Message:

Hi @idpdevops, thanks for opening an issue. Even if it is "outside the intended use" we will try to help you on fixing your deployment. From the logs I can distinguish 2 different issues:

Issue 1 --> ECS glue sync task failure
Issue 2 --> Migration CodeBuild stage failure

Issue 1 --> ECS glue sync task failure
Root cause of the issue: access denied for ecs-task-role to AssumeRole arn:aws:iam::ZZZZZZZZZZZZ:role/dataallPivotRole-cdk
This type of error (Access Denied for AssumeRole) has 2 possible causes.

the ecs-task-role lacks AssumeRole permissions
the arn:aws:iam::ZZZZZZZZZZZZ:role/dataallPivotRole-cdk lacks permissions for the ecs-task-role in its trust policy

In v1.6 we focused on security hardening features, including the hardening of the trust policies on the pivot role, so that is the first thing that I would verify. We moved the external ID used in the trusted accounts to SSM, so its value has been updated.
In case you don't know what the external ID is, here is some documentation of why cross-account role assumption should use external IDs

Has the environment for account ZZZZZZZZZZZZ been updated after the upgrade?
If the environment was not updated, then the trust policy contains an external ID that is outdated. The ECS task is trying to assume the role with a new external ID, but the trust policy only allows assumptions verified with an old external ID.
To verify this hypothesis, you need to compare the external ID defined in the trust policy in the environment account with the SSM parameter in the central account (look for a parameter called externalId or something similar) and see if they match

Issue 2 --> Migration CodeBuild stage failure
There are better logs to debug this issue. Migrations are the way data.all has to update the RDS tables schema when new features are introduced. We want to include the update of RDS as part of our CICD pipeline (tooling account), but our RDS database is deployed in the central deployment account. To be able to modify the RDS database we deploy a CodeBuild project in the central deployment account, something like prefix-env-dbmigration, this is the "real migration codebuild stage" where we run the alembic commands. In the tooling account the migration stage (the "false migration stage" is just calling this real CodeBuild stage in the other account. Your logs are the fetching of the status, but as you probably noticed, they do not provide much info about the actual error.
What we need is to go to the central account > Codebuild> Projects > search for prefix-env-dbmigration and check the "real migration" logs
I hope this long test was helpful, please reach out with any new findings, logs or questions that might arise :)

Update from offline troubleshooting
Issue 1: Solved 👍
The first hypothesis was that:

The customer upgraded the code but the environment (and the pivot role trust policy external ID was not updated)
Sync tasks during that day failed
During the night an ECS triggered the environment update
They stopped receiving error alarms
You can confirm this theory by going into the ZZZZ account and checking the cloudformation stack of the environment. In the events, check for the last updates to see if there is any update of the pivot role nested stack.

However, they updated the environment stacks in another way, they set the parameter "enable_update_dataall_stacks_in_cicd_pipeline": true in the cdk.json file. This is another way of forcing updates in environment and dataset stacks as part of the CICD. It ensures integrity of the application.

Hi @idpdevops I renamed the issue to reflect the actual issues in same someone runs into the same challenges.
Update from offline troubleshooting
Issue 2: Understood - requires custom development for customer particular networking 👍
When checking the logs in  deployment account > Codebuild > migration project, we could not see any logs. Instead in the CodeBuild phase details we can check that the issue is on the networking.

From v1.5 to v1.6 there are changes in the way packages are installed, v1.6 ensures that all packages are always installed through AWS CodeArtifact. To log in, there is a command that tries to hit a Codeartifact VPC endpoint.
Given the logs and this particular change between versions, we could conclude that it was a networking issue between the CodeBuild migration project and the CodeArtifact VPC endpoint.
For the default cdk.json configuration, data.all creates those VPC endpoints and configures the VPC and the CodeBuild security group with outbound rules to the security group of the VPC endpoints. In this case however, the customer had its own internal process to create VPCs and VPC endpoints. The VPC was created in the CodeBuild (data.allDeploymentAccount) account. The VPC endpoints are deployed in a VPC in a different account (SharedVPCEAccount). Traffic between both VPCs is handled by transit Gateway.
In the cdk.json the created VPC in data.allDeploymentAccount was introduced as vpc_id in the deployment environment. The problem is that for the parameter vpc_endpoints_sg, the security group in the SharedVPCEAccount is not accessible because it is in another account VPC. Instead the customer introduced a generic security group.
We manually added the IP range for the VPC in the SharedVPCEAccount in the outbound rules for the CodeBuild security group and that solved the issue. Nevertheless, this is a workaround and we want to address this scenario in a more consistent way.
Option 1: VPC-peering and NO changes to data.all

We established peering between the VPCs in the SharedVPCEAccount and in the data.allDeploymentAccount. --> docs. From what I see in the pricing section, it would not incur in additional costs.
We can define the correct VPC endpoints security group in the cdk.json file

Option 2: new cdk.json parameter in data.all for VPC endpoints - VPC range outbound rules

We introduce a new cdk.json parameter 'external_vpcendpoints_vpc_ip_ranges'
We implement changes in the CodeBuild CDK stack to create an outbound rule to those IP ranges if the parameter is present.

I personally like working with security groups more than with IP ranges. It is more restrictive and readable, but maybe you got limitations and option 1 is not possible.
@idpdevops let me know your thoughts.

@dlpzx
Thank you very much for the analysis and the proposed options.
I prefer the VPC peering option but will have to check how this could work for us.
One thing also to note is that this command in the build project:
aws codeartifact login --tool pip --domain ********-domain-master --domain-owner ***************** --repository **********-pypi-store --endpoint-url *****************.api.codeartifact.eu-west-2.vpce.amazonaws.com
needed the addition of the --endpoint-url parameter to work.
However, even with the changes to the code-artifact command and the DB migration security group egress rules, the next command
pip install -r backend/requirements.txt
still failed because pip tries to access -domain-master-*********.d.codeartifact.eu-west-2.amazonaws.com and that request was rejected:
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ConnectTimeoutError(<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f2c440b9820>, 'Connection to access -domain-master-.d.codeartifact.eu-west-2.amazonaws.com timed out. (connect timeout=15)')': /pypi/idpdataall-pypi-store/simple/ariadne/
...
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ConnectTimeoutError(<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f2c440b9fa0>, 'Connection to access -domain-master-.d.codeartifact.eu-west-2.amazonaws.com timed out. (connect timeout=15)')': /pypi/idpdataall-pypi-store/simple/ariadne/
ERROR: Could not find a version that satisfies the requirement ariadne==0.17.0 (from versions: none)
ERROR: No matching distribution found for ariadne==0.17.0
The DNS name gets resolved as follows:

That is obviously outside the IP address range for the VPC Endpoints we opened up in the DB migration security group egress rules, so the request is rejected:
2<PHONE_NUMBER>41 eni-*************************** <IP_ADDRESS> 35...143 57952 443 6 1 60<PHONE_NUMBER><PHONE_NUMBER> REJECT OK
Interestingly, a reverse lookup on 35...143 points to ec2-35---143.eu-west-2.compute.amazonaws.com, so this seems to be the EC2 resource that runs the codeartifact stuff.
This resource seems to be separate to the 2 codeartifact VPC Endpoints.
I then added an outgoing rule to the DB migration SG to let all HTTPS/443 traffic out and that fixed the problem (I am aware that this unlikely to be the appropriate solution to the problem but at least it verified that there was a problem and showed that there is a networking issue:

So overall, there seem to be 3 issues that need to be addressed:

Access to VPC Endpoint that are not in the main dataall VPC (VPC Peering or changes to SG rules)
Configuration of endpoints-url parmeter for codeartifact command and its use in the build script
Routing of the requests to the codeartifact EC2s

Thanks for the answer.


Add support for reading RSS feed

I think that can be useful add reading RSS into apiary-client directly.
Here is example how to do it https://gist.github.com/abtris/063f919515d81050be3414d5ee5cedd4 but using system on end isn't so nice, maybe embed this part of function into apiary-client directly will be good idea.

Won't do it.


Add Performance Tests and logic for running after every 1000 requests

Additionally: fail if performance requests exceed 1 second

@ruebot, yes please.


pageserver - configuration file

There are a few references to the environment variables in test_runner/fixtures/zenith_fixtures.py, too.

I think these are only passed to the CLI.

Does this affect the zenith binary, or just the pageserver? I hope it's just pageserver, I think the ZENITH_REPO_DIR env variable still makes sense for the the CLI, it would be tedious to pass the -D argument in every call.

This only changes pageserver behavior, the CLI still uses POSTGRES_DISTRIB_DIR and ZENITH_REPO_DIR.

Please expand the commit messages with more details of what these commits do and why.

Will do

To avoid re-initing, you may need to create .zenith/pageserver.toml and populate it with
pg_distrib_dir = '...'


Intellisense jumps to first item on the list after sometime

Issue Type: Bug

Try to import a package or function (preferabbly stop after one letter has brought up Intellisense).
Use you arrow keys to go down the list and stop at any list item of your choice.
Wait for some time, around 30 seconds.
The cursor jumps back to the first item on the list.

VS Code version: Code 1.67.0 (57fd6d0195bb9b9d1b49f6da5db789060795de47, 2022-05-04T12:06:02.889Z)
OS version: Windows_NT x64 10.0.19044
Restricted Mode: No

Which language is this for?
Also does this reproduce in the latest VS Code insiders build with all extensions disabled?

Closing as caused by extension based on the last comment


Unsafelinks is incompatible with Thunderbird 78.7.1

Recently I have updated Thunderbird and noticed that unfortunately this add-on stopped working.

For anyone experiencing the same issue you can use this add-on while unsafelinks is not updated.


Errors

I want to have a single cube and then from it subtract another one that is rotated along around three axes. However it results in errors, the outside cube has a slash through it (so to speak).
See (textures being messy is okay, the hole is what the mistake is): http://i.imgur.com/HxpoRCX.png
The second cube is defined in the txt file.
Format of the txt is:
int amount of meshes,
for each mesh: int operation () + 0 0 0 (quirk of the thing that spits these out) + int amount of polys,
for each poly format is: amount of vertices + that many triplets of x y z.
It's just two cubes with 256 unit long sides but each vertex was transformed by a 4x4 matrix.
If I use the same cube with no rotations (identity matrix or just a translation) it works.
Is this an error related to numeric precision, some csg quirk?
Here is the data that causes the error (there are two cubes but first is skipped because it has op 0) and the Python3 script I use:
https://gist.github.com/FRex/6ca78af50f21e1cf7bdd342965a2b6f4

@FRex Did you every resolve your problem? Are you still using this library, or have you found an alternative?

@themmes Sorry, no to all. It was one of my random playthings with Irrlicht and CSG (I have a thing for retro games and DarkEngine and Unreal Engine 1 were almost all about CSG for level geometry), not anything serious.

@FRex I see, thanks for your quick reply. Its seems impossible to find a capable 3D geometry library for Python..

@themmes Yes, I tried hard to find a C, C++ or Python 3D CSG library that wasn't abandoned, old, with bugs, inconvenient to build (requiring GMP), etc. too while for 2D it was easy to find the equivalent of CSG (ClipperLib C++/C#/Delphi by Angus Johnson).


[1][App][Easy] Change color of rainbow

Lets make it breathe the color of PearAI logo!
This will be in submodule

Beginning to take a look into this!


[VS Code] Connection got disposed.

Error:
Connection got disposed.
Steps to Reproduce:

Version Data

extensionName
VSLS

extensionVersion
0.2.489

protocolVersion
2.2

applicationName
VSCode

applicationVersion
1.22.2

platformName
Linux

platformVersion
4.9.0-6-amd64

Hey @gfpablo, this appears to be a duplicate of #268.  Lets chat there.


InboundActivityInterceptor now has an access to header

Partially addresses #373.
Header is added into ActivityInboundCallsInterceptor#execute method input.

@vitarb @mfateev Addressed your comments, guys. Please revisit when you get a chance.

Can't open the Details and take a look at the reason for the test build fail, but I noticed that ActivityRetryOnTimeoutTest#testActivityRetryOnTimeout flakes badly during a full build.


OSX ARM64 Support

The issue #127 is still not solved.
I think it should be enough to put the same lib used for osx-x64 into Raylib-cs/Raylib-cs/runtimes/osx-arm64/ and update the github actions.
$ file libraylib.dylib
libraylib.dylib: Mach-O universal binary with 2 architectures: [\012- x86_64:\012- Mach-O 64-bit x86_64 dynamically linked shared library, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL|NO_REEXPORTED_DYLIBS|HAS_TLV_DESCRIPTORS>] [\012- arm64]

@9ParsonsB Could you please update the gibthub actions?


fix(components/contained-list): link to Angular dev resource

This PR adds the dev resource link to the Angular Storybook of the ContainedList component.
Changelog
New

[ContainedList] Add link to Angular resource

recheck


⚠ Tachidesk Server has degraded performance

In 7b11e75, Tachidesk Server (https://tachidesk.culturecloud.eu.org) experienced degraded performance:

HTTP code: 502
Response time: 11218 ms

Resolved: Tachidesk Server performance has improved in d6842ba.


Added failing test

Now I'm trying to resolve this issue.

l (lower L) does not belongs to compatible formats: http://php.net/manual/en/datetime.formats.date.php

@kylekatarnls ok, but problem not in lower L. problem in M.
May month key equal for short and long date type F M in translations files.
PHP array gives last of two same items with same key. You can check ru translate file for example.

@kylekatarnls
https://github.com/jenssegers/date/blob/233085153e5f334acd64b851b58d20dcf530aa0c/src/Lang/ru.php#L30
https://github.com/jenssegers/date/blob/233085153e5f334acd64b851b58d20dcf530aa0c/src/Lang/ru.php#L43

Input format is English-only as far as I know.

@kylekatarnls of course) library not working as expected with some languages, especially where used plural month names

now I think about month translation keys refactoring


how does this differ from s-Lora?

really cool project! im wondering how its different from s-Lora? https://github.com/S-LoRA/S-LoRA

Great question, @priyankat99!
The short answer is that LoRAX is intended to be a production LLM serving system for handling many fine-tuned LLMs at once, while S-LoRA is a novel algorithm that speeds things up. As an analogy, LoRAX is more like conventional inference systems like TGI, vLLM, etc., while S-LoRA is closer to specific algorithms used by those systems like Paged Attention or Flash Attention.
In the S-LoRA repo, they do implement a proof of concept of a fully working serving system, but it has a lot of caveats at the moment. Compared to S-LoRA, LoRAX:

Dynamic adapter loading, so you can download adaptrs async on the fly during inference (as far as I can tell, S-LoRA requires all adapters to be loaded in from a directory during initialization)
Supports multiple models: Llama, Mistral, and soon Phi, GPT2, BERT, and more (S-LoRA only supports Llama today)
Supports quantized base models in GPT-Q and bitsandbytes (S-LoRA is only fp16 today)
Supports all linear layers for adapters (S-LoRA only supports q, k, v, o I believe)
Tensor parallelism fully supported (credit to S-LoRA for the algorithm, but it's not implemented in their code yet)
Fallback mechanisms when LoRA weights not supported by CUDA kernels (S-LoRA's CUDA kernels have some caveats about the ranks supported)
Pre-built docker images and Helm charts (no dependency hell)

I do want to caveat this by saying that this isn't to disparage S-LoRA, rather the goals of the projects are quite different. There doesn't seem to be a desire to fix these issues in the S-LoRA repo itself, rather the authors have stated that their intention is to add S-LoRA's capabilities to the existing vLLM project. So if and when that happens, many of these issues may be resolved.
I'll also say that one thing S-LoRA does that LoRAX does not today is support an optimize multi-rank kernel (efficiently handling adapters of different ranks in a single batch). We support this as well, but their kernel is highly optimized for this use case, and our plan is to add their kernel to LoRAX in the near future.
Looking forward, we'll need to see how the integration with vLLM shakes out, though it's not clear what the timeline is on that. I will say, though, that we also considered adding these features to an existing LLM inference library, rather than forking TGI and building LoRAX as a separate project, but found that there were significant architecture changes that needed to be made to support dynamic adapter inference. Going forward, we plan to do a lot more with this idea, including supporting embedding model adapters, classification head adapters, etc. All of this means that I suspect LoRAX will continue to diverge from general purpose LLM inference systems like vLLM over time, rather than these systems converging cleanly. But time will tell!
Hope that answers your question.

ah ok thanks so much this was very helpful and very interesting stuff!
to clarify, since LoRax is its own framework, if I were using vLLM or ex-llama, I would have to migrate off those to use LoRax?

Hi @priyankat99, yes, LoRAX is a standalone solution for serving. In some cases, it could make sense to, for example, serve your base models with vLLM and then serve your fine-tuned LoRAs with LoRAX, but LoRAX allows you to do both, and we include many of the main features of those libraries, such that LoRAX should be at or near performance parity with those systems (even without multi-LoRA serving):

Paged Attention v2 (vLLM)
Exllama v2

Hi @tgaddair, just noticed this project in one of the TGI issues. It is amazing.

for example, serve your base models with vLLM and then serve your fine-tuned LoRAs with LoRAX, but LoRAX allows you to do both

I would like to check if it is possible to decouple the adapters and base model in LoRAX (two micro-services).
Examples: multiple LoRAX instances hosting multiple adapters and each of the instances connected to different shared base models (Llma, Mistral etc, hosting via LoraX, vLLM or HF etc).
The use case is we have multiple users and the adapter cannot shared across users. The existing way of loading adapter cannot prevent one user from accessing the adapter from another user and updating S3 credentials will trigger rollout restart as well.
In this case, having LoRAX instance hosting the adapters per user can help to solve the above issue. Not sure if you have a similar use case as well, thanks.

Hi @lizzzcai, your use case sounds very similar to the one we have at Predibase. I'd definitely love to collaborate on this to make sure it's well supported for you.
It's certainly possible to have one LoRAX instance per tenant, but I consider that pretty heavyweight. What we opt for instead is having the user provide an access token per request that uses an adapter using the LoRAX parameter api_token. This works for the Predibase adapter source, but does not currently work for the more general S3 source.
One thing we could consider do is allow the user to pass their S3 credentials using this same api_token param (possibly encrypted with LoRAX being initialized with the appropriate decryption key). But let me know if you want to find some time to discuss this use case in more depth!

Hi @lizzzcai, your use case sounds very similar to the one we have at Predibase. I'd definitely love to collaborate on this to make sure it's well supported for you.
It's certainly possible to have one LoRAX instance per tenant, but I consider that pretty heavyweight. What we opt for instead is having the user provide an access token per request that uses an adapter using the LoRAX parameter api_token. This works for the Predibase adapter source, but does not currently work for the more general S3 source.
One thing we could consider do is allow the user to pass their S3 credentials using this same api_token param (possibly encrypted with LoRAX being initialized with the appropriate decryption key). But let me know if you want to find some time to discuss this use case in more depth!

Thanks @tgaddair for your reply. I think the existing solution and this api_token approach already help a lot! I am happy to discuss more on it further, I will drop you an email, thanks.

Could the user load more than one adapters at a time, so I could serve multiple tasks to diferent customers with multiple adapters? I just find that adapter_id's format is str not a list. There is a way with merge adapters, but might has interference problem, will the interference obvious？ To check interference might be a bit troublesome.

Hey @gjfdklfjd, yes, LoRAX can serve multiple tasks to different customers at the same time.
When you say you want to provide multiple adapters per request, what is the expected behavior in that case? Do you want to adapters to be merged together?

tgaddair

Hi tgaddair, thank you for you reply. Right now I need to serve multiple tasks to different customers at the same time. Merged adapter might be an alternative way if the independent adapters does not work. I just want to use one base model, with multiple independent adapters, which only take up nearly the gpu memory of one base model takes up. So I could save gpu memory, at the same time, serve diferent customers with their corresponding adapters. How could I do this? Thank you.


Dependency on both backends in requirements.txt switches off GPU support

Currently nolearn has a dependency on both Theano and Lasagne, which forces installation of CPU-only versions, overriding the GPU-enabled builds we might have already installed before. See how Keras setup does not force any of its backends as its requirements and please consider removing these dependencies from your requirements.txt.

Theano is the only backend for nolearn, whereas keras has several backends. This is why it makes sense to install the backend with nolearn but not with keras.

which forces installation of CPU-only versions

I don't see why that should be the case, I never had this problem. Regardless, you should consider using virtual environments (if you don't already do so) to prevent python libraries from overriding your global installs.

Please note that the 0.8 version of Theano you are forcing us to use is not only CPU-only, but also extremely old (in fact more than 2 years old, see Theano release history).
0.8.0
Mar 21, 2016

Latest version (Theano is an abandoned project):
1.0.1
Dec 7, 2017


#3-POST-Request-seble

Naming Rules
Description
I made A simple description post request
Implement  #3
Checklist:

[ x] My code follows the style guidelines of this project
[x ] I have carefully reviewed my own code
[ x] I have commented my code
[ x] I have updated any documentation

This branch is out of step with main so there are conflicts that need to be resolved by merging that code in before this PR can be considered properly.

YEs I mentioned this to Seble , to do pull and merge with main before you doing PR

Ok @AzinYad - we can resolve it now with the PR open too, good learning opportunity.


Error logger formatting

add toJson utility function

simple best-effort conversion of unknown to Json
includes converting Errors, will first attempt to call err.toJson() if it exists

add BlockError#toJson - returns the error in a json-serializable way
update serializeContext to convert the error to json, attempt to print serialized error metadata

Other errors can add a toJson method to have pretty-printed error metadata

I'm a bit confused as this doesn't help us much.

This is basically the idea in #1595
This adds:

generic toJson can be used in many places, and especially surrounding the logger:
eg: instead of logger.info("message", config.types.Foo.toJson(data)) => logger.info("message", toJson(data))
a "pattern" for exposing error data as Json - custom errors implement toJson method, a default fallback implementation returns {message, stack}
exposes error metadata in the logger - if a custom error is passed to the logger, its metadata is printed

This PR is a minimal change to focus on these things, can be rolled out across the repo to greater effect.
Eg:
one PR to use toJson helper where appropriate in calls to logger (simplifies many logger call sites)
one PR to add toJson method to other custom errors
one PR to log errors where appropriate - this is where most of the runtime benefit will be, when we will see error metadata printed via the logger.

Ready for re-review


Add 8 new IssuerIcons

This PR adds icons for:

Hetzner
Uber
Njalla
Figma
Lobsters
Nodecraft
GoDaddy
17th Shard

These Uber icon conflicts with #68, which introduces a similar Uber icon of a larger size. For reference, this is my icon, and this is theirs.

Thanks @FIGBERT, I really appreciate it—the icons looks great!


when I useing Jquery mobile JS, signature can't work

I met a issue, when I useing Jquery mobile JS, signature can't work, How I can fix it?

I use jQuery Mobile fine with signature_pad. It's not jQuery Mobile :p

signature is conflict with jquery mobile js, how to fix it?

@panda112 Could you prepare a demo that shows this issue using e.g. https://jsfiddle.net or a similar service?

I'm sorry, that is my mistake, I'm include the app.js,signature_pad.js in my sign.html, when jquery mobile load my html, the app.js,signature_pad.js haven't excuted.


AI way too difficult.

The AI is insane in this map. They will notice me after too bursts of fire, even with a suppressor and headshot me from 700 meters distance. There is literally no reason to do anything but day-time missions, because they AI spots me easier than I can see them during the night. And don't even get me started on vehicles and their accuracy.
How do I change this? Changing the difficulty for the server hasn't done anything.
Is there something else I need to change?
This is the config file listed below.
class Difficulties
{
	class Recruit
	{
		class Flags
		{
			Armor=1;
			FriendlyTag=1;
			EnemyTag=1;
			HUD=1;
			HUDPerm=1;
			HUDWp=1;
			HUDWpPerm=1;
			WeaponCursor=1;
			AutoAim=1;
			AutoGuideAT=1;
			3rdPersonView=1;
			ClockIndicator=1;
			Map=1;
			Tracers=1;
			AutoSpot=1;
			UltraAI=0;
			DeathMessages=1;
			NetStats=1;
			VonID=1;
		};
		skillFriendly=0.34999999;
		skillEnemy=0.34999999;
		precisionFriendly=0.2;
		precisionEnemy=0.2;
	};
	class Regular
	{
		class Flags
		{
			Armor=1;
			FriendlyTag=1;
			EnemyTag=0;
			HUD=1;
			HUDPerm=0;
			HUDWp=1;
			HUDWpPerm=1;
			WeaponCursor=1;
			AutoAim=0;
			AutoGuideAT=0;
			3rdPersonView=1;
			ClockIndicator=1;
			Map=1;
			Tracers=1;
			AutoSpot=0;
			UltraAI=0;
			DeathMessages=1;
			NetStats=1;
			VonID=1;
		};
		skillFriendly=0.44999999;
		skillEnemy=0.44999999;
		precisionFriendly=0.5;
		precisionEnemy=0.5;
	};
	class Veteran
	{
		class Flags
		{
			Armor=0;
			FriendlyTag=0;
			EnemyTag=0;
			HUD=1;
			HUDPerm=0;
			HUDWp=1;
			HUDWpPerm=1;
			WeaponCursor=0;
			AutoAim=0;
			AutoGuideAT=0;
			3rdPersonView=0;
			ClockIndicator=1;
			Map=0;
			Tracers=1;
			AutoSpot=0;
			UltraAI=0;
			DeathMessages=0;
			NetStats=0;
			VonID=1;
		};
		skillFriendly=0.75;
		skillEnemy=0.75;
		precisionFriendly=0.1;
		precisionEnemy=0.1;
	};
	class Expert
	{
		class Flags
		{
			Armor=0;
			FriendlyTag=0;
			EnemyTag=0;
			HUD=1;
			HUDPerm=0;
			HUDWp=1;
			HUDWpPerm=1;
			WeaponCursor=0;
			AutoAim=0;
			AutoGuideAT=0;
			3rdPersonView=0;
			ClockIndicator=1;
			Map=0;
			Tracers=1;
			AutoSpot=0;
			UltraAI=0;
			DeathMessages=0;
			NetStats=0;
			VonID=0;
		};
		skillFriendly=0.94999999;
		skillEnemy=0.94999999;
		precisionFriendly=0.15000001;
		precisionEnemy=0.15000001;
	};
};
singleVoice=0;
maxSamplesPlayed=96;
sceneComplexity=400000;
shadowZDistance=100;
viewDistance=2000;
preferredObjectViewDistance=800;
terrainGrid=25;
volumeCD=10;
volumeFX=10;
volumeSpeech=10;
volumeVoN=10;
vonRecThreshold=0.029999999;

Are you using current version of mission?
Older versions were overwriting ai settings but current versions are not touching AI skills.

The AI is insane in this map

The AI skill isn't set by the map (terrain) of a mission. And the mission itself also don't affect any individual AI skills.
Concerning the question of @veteran29 the template you've deleted before you've entered your text is something which should be recognized, as it asks necessary informations concerning issue reports.
Well in this case it's not a bug or issue with the mission. Your difficulty settings concerning the AI and general difficulty on the server are deprecated by the way.
I recommend to have a look at these two links and adjust your serverside settings accordingly, as the experienced behaviour is caused by your server configuration.
https://community.bistudio.com/wiki/Arma_3_Difficulty_Menu#Configuration
https://community.bistudio.com/wiki/server.armaprofile#Arma_3


Add Isotopic Game Store to Showcase

Change to add Isotopic Game Store (development grant project) to showcase.

Dear @fourthedesign,
In order to potentially merge your code in this open-source repository and therefore proceed with your contribution, we need to have your approval on DFINITY's CLA.
If you decide to agree with it, please visit this issue and read the instructions there. Once you have signed it, re-trigger the workflow on this PR to see if your code can be merged.
— The DFINITY Foundation

Dear @fourthedesign,
In order to potentially merge your code in this open-source repository and therefore proceed with your contribution, we need to have your approval on DFINITY's CLA.
If you decide to agree with it, please visit this issue and read the instructions there. Once you have signed it, re-trigger the workflow on this PR to see if your code can be merged.
— The DFINITY Foundation

@fourthedesign Can you please go through these steps?

@fourthedesign Can you please resolve the merge conflicts or allow us to edit the branch for us to resolve the merge conflicts ourselves?

@fourthedesign Can you please resolve merge conflicts?

@fourthedesign Can you please allow anyone to edit https://github.com/IsotopicIO/dfinity-portal? We will need to resolve the merge conflicts.

Apologies for the delay @jennifertrin , we pushed a commit resolving the conflict.

Apologies for the long delay @jennifertrin , we pushed a commit resolving the conflict.

Thank you for the update!


docker-compose.yml sample: post OpenSearch-Dashboard to both OpenSearch nodes

Description
Configure docker-compose.yml to have OpenSearch-Dashboards talk to both OpenSearch nodes.
Issues Resolved
OpenSearch-Dashboards only talk to one of the two hosts
By submitting this pull request, I confirm that my contribution is made under the terms of the BSD-3-Clause License.

@ssgao I'm having trouble reproducing this issue on my machine (I'm using an x86 mac). The current docker image on the website works for me without these updates. Could you share more details about what might be causing the issue?

@elfisher
It is strange. It was causing problems but now when I remove them I don't have a problem starting up.
Do you think the OpenSearch hostname change is needed? If not, I'll close the PR.

I don't believe this is required, although I'm not an expert on Docker Compose. This was sourced from the documentation - @aetter do you have thoughts?

@stockholmux definitely not required.
I added it here because when I was playing the docker file with a 4 node setup and taking node up and down to test in-sync allocations and consensus. I expected OpenSearch-Dashboards to be able to talk to all OpenSearch nodes. Here it would only talk to node1, and if node1 is down, it won't work anymore.
I struggled a bit to figure out the correct syntax to put here so OpenSearch-Dashboards (really hope we get a abbreviation for this btw, it's a lot of keystrokes lol) node would talk to other nodes in case node1 goes down.

@elfisher
It is strange. It was causing problems but now when I remove them I don't have a problem starting up.
Do you think the OpenSearch hostname change is needed? If not, I'll close the PR.

@ssgao my instinct is to keep this file simple since it is intended for getting started. If it now works on your side. I think we should close this PR. However, I did notice your comment about node1 being down and causing issues. Did you just kill the node1 container and then see what happened? I can give that a try.

@elfisher
Exactly.
In all fairness, with a 2 node cluster, killing a node would violate minimum consensus requirement, so OpenSearch won't progress regardless, but I think the docker-compose file could do a better job by demonstrating how can OpenSearch-Dashboards talk to multiple nodes.

@elfisher
Exactly.
In all fairness, with a 2 node cluster, killing a node would violate minimum consensus requirement, so OpenSearch won't progress regardless, but I think the docker-compose file could do a better job by demonstrating how can OpenSearch-Dashboards talk to multiple nodes, so later if user choose to expand this setting into a 3 node cluster, they won't have to struggle with this problem.

That does make sense. Just adding the second host fixes that?

@aetter if we update this, we probably want to do something similar in the one in our documentation website. I'll cut a PR for that when we come to a conclusion here.

I'm guessing its 2 nodes because 2 nodes is the minimal 'cluster' one can play. The resources to run 2 vs 4 nodes is quite a bit larger, right? It seems like the resource usage is already quite high with 2 nodes for someone trying it out over docker on a laptop.
I wouldn't be opposed to setting up multiple docker compose files though

@stockholmux
I think we are talking about two different issues here.
Your point of having multiple docker-compose files to represent different setups is completely valid.
My point here is simply to have OpenSearch-Dashboards talk to both nodes, since there are two nodes there available to serve traffic anyways.

@stockholmux
I think we are talking about two different issues here.
Your point of having multiple docker-compose files to represent different setups is completely valid.
My point here is simply to have OpenSearch-Dashboards talk to both nodes, since there are two nodes there available to serve traffic anyways.

I tested the setup and took down node 1. This compose works as outlined by @ssgao. I think we should merge this. I also opened a PR in the docs https://github.com/opensearch-project/documentation-website/pull/54

@ssgao / @elfisher - my point in suggesting multiple docker-compose files is a reaction to this:
In all fairness, with a 2 node cluster, killing a node would violate minimum consensus requirement, so OpenSearch won't progress regardless
What does having two nodes in a cluster gain us if we're just specifying those nodes explicitly?

@stockholmux
I understand your point, and I do think that having another 3 or maybe 4 node setup docker-compose file can help the user  play with various down scenarios.
IMO, 4-node is actually the most ideal way to learn about OpenSearch behavior locally since with 3 of them being master-eligible, you need 2 nodes minimum to inspect _cluster/state, so it's really just bringing up and down 2 other nodes and see how in-sync allocations works and how global & local checkpoint works, etc.
Having that said, a 2-node docker-compose file is still useful so the user can still start the cluster without changing default 2GB docker desktop memory setting in Mac and Windows. Trying to start 3-node cluster without changing this setting would result in OOM error and causing nodes to crash.
Alternatively, to keep 3-node cluster, we can lower the heap size from 512MB to 256MB. I tried it and it actually works. The stack still boots. I have not done any load testing on it so I'm not sure about the usability of 3 256MB OpenSearch node cluster, but that is still a possibility.
Now, I'm not 100% clear about your question

What does having two nodes in a cluster gain us if we're just specifying those nodes explicitly?

Are you asking why we should specify two OpenSearch nodes in the OPENSEARCH_HOSTS setting?
I think I have explained it a few times, but bear with me again, let me try with an analogy.
Say we have a load balancer, and there's one node behind the load balancer serving the traffic
Now we add another node to serve traffic, but we don't register to the load balancer.
Load balancer still directs all traffic to the old node.
Do you see an issue with this setting?

@ssgao No, I get that. I was thinking from the perspective of someone creating a n node cluster with compose. It would be a bit weird to explicitly state each node OPENSEARCH_HOSTS right?
My point is that by specifying a 2 node cluster with explicitly defined nodes are we giving people a docker-compose file that is an anti-pattern or unusual configuration.

@stockholmux
Ah I see.
Honestly, I think this could be an enhancement request to allow OpenSearch-Dashboards to discover all coordinator-eligible OpenSearch nodes.
However, to my best knowledge, users today just hard-code these node urls in kibana.yml file.

I wonder whether we need a maintained repo for docker samples, ala https://github.com/deviantony/docker-elk/


State Change Not Registered

When the user visits a system post-tick then the faction states are stored at that point. However, the faction states can update at any time post-tick, but the data structure is never updated so any changes are not reflected.
This is most apparent when a War or CivilWar starts, as the controls to increment CZ tallies do not appear.

Closed in commit c0d1f2555ae9ebd931a4936defd434551615cc13