Automate sending account request next steps email

Currently Sparkle is manually emailing all new facilities. With the addition of the account request endpoint in PR#1007. We should automate the sending of the email.

The following email should be sent to AccountRequest.email when the account request is submitted
The Site Onboarding Guide PDF should be sent as an attachment with the email 1.4 Site Onboarding Guide.pdf

Once this is live reach out to Sparkle to Let her know this is done
Email Contents
https://docs.google.com/document/d/1UZFIrgFjRI9-ddzYfM-eRAyKD8WYdKew_IlIY2hpUeE/edit
google doc as PDF

We could do this ourselves, or Dynamics could automate it when it's set up. @willusds

The subject line for the email should be "Next Steps for SimpleReport".


Improve Finder APIs

I don't know why the original creators of Flutter's test framework designed it the way it is designed, and I'm not blaming them in any way – they did a really great job at making testing feel like a first-class citizen in Flutter. I do like writing tests in Flutter :)
That said, I think there's some room for improvement.
The problem
I think that Finder coalescing the "representation of what to search for" and the "result of performing that search" into a single concept has a few nasty consequences. I'll do my best to explain them below.

I was wondering if I should've split this issue into a few separate ones, but I decided not to because I think that they share a common cause.

Finder.toString()
First example (1 widget found)
When I called Finder.toString() for the first time in my short life, I expected it to print what the finder searches for, not what it found. Here's an example:
testWidgets("Prints finder's description", (WidgetTester tester) async {
  await tester.pumpWidget(
    const MaterialApp(home: Center(child: Text('Hello World'))),
  );
  final finder = find.text('Hello World');
  print(finder.toString());
});

Actual output
exactly one widget with text "Hello World" (ignoring offstage widgets): Text("Hello World", dependencies: [DefaultSelectionStyle, DefaultTextStyle, MediaQuery])
I created a Finder and want to print it, but it's already searched the widget tree and now is printing what it found?
BTW, why so fast? I didn't even ask it to find. Take your time, you finder guy.
Better output
widgets with text "Hello World" (ignoring offstage widgets)
I want to print what the finder intends to find, not what it's already found.
Even better output
Since offstage widgets are ignored by default, I don't think it makes sense to include this info in the toString()'s output. It should only be present if skipOffstage was set to false. So the perfect output of toString() would be:
widgets with text "Hello World"
PS It'd be nice to rename skipOffstage to includeOffstage and change the default value to false, to be consistent with Flutter's Dart code style. See also this comment.
Why does it matter
An example use case is described in this GitHub Discussion.
Also, there's no way to currently print only what the finder searches for, without all the noise.
Second example (>1 widgets found)
The more widgets the finder finds, the more cluttered the output becomes.
testWidgets("Prints finder's description 2", (WidgetTester tester) async {
  await tester.pumpWidget(
    MaterialApp(
      home: Center(
        child: Column(
          children: const [
            Text('Hello World'),
            Text('Hello World'),
          ],
        ),
      ),
    ),
  );
  final finder = find.text('Hello World');
  print(finder.toString());
});

Actual output
2 widgets with text "Hello World" (ignoring offstage widgets): [Text("Hello World", dependencies: [DefaultSelectionStyle, DefaultTextStyle, MediaQuery]), Text("Hello World", dependencies: [DefaultSelectionStyle, DefaultTextStyle, MediaQuery])]
Better output
widgets with text "Hello World"
Third example (no widgets found)
And when the finder doesn't find any widgets, the output reads awkwardly.
testWidgets('Finder.toString() 3', (WidgetTester tester) async {
  await tester.pumpWidget(const MaterialApp());
  final finder = find.text('Hello World');
  print(finder.toString());
});

Actual output
zero widgets with text "Hello World" (ignoring offstage widgets)
Better output
widgets with text "Hello World"
Finder.at()
Let's consider the below code:
testWidgets('Finder.at() + Finder.toString() 3', (WidgetTester tester) async {
  await tester.pumpWidget(const MaterialApp());
  final finder = find.text('Hello World').at(0);
  print(finder.toString());
});

Actual result
A nasty exception is thrown:
══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞════════════════════════════════════════════════════
The following IndexError was thrown running a test:
RangeError (index): Index out of range: no indices are valid: 0

When the exception was thrown, this was the stack:
#0      Iterable.elementAt (dart:core/iterable.dart:781:5)
#1      _IndexFinder.filter (package:flutter_test/src/finders.dart:624:28)
#3      new _GrowableList._ofOther (dart:core-patch/growable_array.dart:202:26)
#4      new _GrowableList.of (dart:core-patch/growable_array.dart:152:26)
#5      new List.of (dart:core-patch/array_patch.dart:51:28)
#6      Iterable.toList (dart:core/iterable.dart:470:12)
#7      Finder.toString (package:flutter_test/src/finders.dart:552:46)
#8      main.<anonymous closure> (file:///Users/bartek/dev/random/flutter_what_are_finders/test/widget_test.dart:57:18)
<asynchronous suspension>
<asynchronous suspension>
(elided 2 frames from dart:async-patch and package:stack_trace)

The test description was:
  Finder.at() + Finder.toString() 3

I've seen testers and developers encounter this problem and become confused.
Result that would be better
Let's see the docs for the Finder.at() method:
(int index) → Finder

Returns a variant of this finder that only matches the element at the given index matched by this finder.

After reading the above, I'd expect the above test case to throw a:
══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞════════════════════════════════════════════════════
The following TestFailure was thrown running a test:
Expected: exactly one matching node in the widget tree
  Actual: _TextFinder:<zero widgets with text "1" (ignoring offstage widgets)>
   Which: means none were found but one was expected

but instead, it throws a StateError, as shown above.
The best result
widget with text "Hello World" at index 0, or even better: first widget with text "Hello World"
Conclusion

At the very last, docs of the Finder class should explain what is a finder, not only that "it finds".

Finder.toString() calling Finder.evaluate() is a bad idea.

Flutter's test framework should differentiate between 2 (related but distinct) concepts: the finder itself and the finder's result.
Speaking more technically, it means:

Making the Finder class represent only a finder (i.e what to search for in the widget tree)
Creating a new EvaluatedFinder class containing what the finder found
Making Finder.evaluate return EvaluatedFinder

I realize that the last bullet point is a huge suggestion - it would most certainly be a breaking change, and I'm not sure if the benefits I listed above outweigh the migration pain. I'll try to explore this in a paragraph below.

Exploring Finder and EvaluatedFinder
WidgetTester.tap(), WidgetTester.enterText() (and some friends) would require EvaluatedFinder as the first argument (instead of Finder).
Widget matchers (see: matchers.dart), such as _FindsWidgetMatcher.matches() would require EvaluatedFinder as the second argument (instead of Finder).
Here's an example test written using that imagined API:
testWidgets('increments count by 1', (WidgetTester tester) async {
  var count = 0;
  await tester.pumpWidget(
    MaterialApp(
      home: StatefulBuilder(
        builder: (state, setState) => Column(
          children: [
            Text('count: $count'),
            GestureDetector(
              onTap: () => setState(() => count+=5),
              child: const Text('Tap'),
            ),
            GestureDetector(
              onTap: () => setState(() => count++),
              child: const Text('Tap'),
            ),
          ],
        ),
      ),
    ),
  );

  final tapFinder = find.text("Tap");
  final tapFinderResult = tapFinder.evaluate().at(1);
  await tester.tap(tapFinderResult).tap();

  await tester.pumpAndSettle();

  final countFinder = find.text("count: 1");
  expect(countFinder.evaluate()), findsOneWidget);
});

It's a bit more clunky, but that's the price to be paid for separating a finder from its result.

I low-key think that this slightly more clunky (but mapping the problem space better) finder system should've been provided by Flutter by default, and then the current "fluent" finder system could be provided as a separate package.

Alternative
If we don't want to break thousands of projects with millions of tests, we could take an alternative approach. The new finder system would be provided as a separate package, say, flutter_test_plus. Since the core flutter package is independent of flutter_test, I don't see why a third party wouldn't be able to, purely technically speaking, provide such a finder system.
See also:

https://github.com/leancodepl/patrol/issues/602
https://github.com/leancodepl/patrol/issues/548
https://github.com/leancodepl/patrol/discussions/528

Hello @bartekpacia. Thank you for filing this very detailed proposal :) One point I personally disagree on is to keep this issue as one. I think the issue can be split into separate issues. Yes they are related, but conceptually, they are different issues altogether. Specifically, I think the following sections can be separate issues:

Finder.toString should have an improved output. Though I do not think this is valid on it's own since this would cause some data to be lost. I guess the solution to this would be your proposal for EvaluatedFinder.
Finder.at throws a StateError. Though, I do not think this is a valid one. I think you should have an expect with findsOneWidget before you do Finder.at here. This would solve your issue as well as having your code explain better what is expected in the widget tree.
The EvaluatedFinder proposal, along with the suggestions for the plus package you mentioned. Though I am not sure how this would pan out since the plus packages are maintained by the community, and not the Flutter team.

All in all, this looks like a valid proposal to me, but I would love some insights from the team on this. I'm sure you do too. I am labeling this issue for visibility and further discussion. Thank you

@exaby73, thanks for reviewing this issue! :)
I agree with you that this is quite massive and should be split. It's just that I'd like first to get some response from somebody on the team – what they think about the current Finder API, is it possible to address the problems I mentioned without breaking changes, and what they think about the EvaluatedFinder proposal.
I'll be happy to create smaller, more focused issues after some Google engineer agrees that are indeed issues and should be solved somehow :) I also don't really have time to break them down – writing this big one already took quite a while. I'm sorry about this and I hope this is not a big problem!

@bartekpacia
As part of #123634, I'm introducing a generic base class for Finders so we can have consistent ways to interact with finders for both Elements and SemanticsNodes (and possibly other things in the future). While I was doing that, I remembered this ticket and I think it'd be a good chance to address the concerns here while minimizing breaking changes.
To summarize the proposal, I think the major concern to be addressed is to separate the concept of a "finder" with the concept of what is found. From there, most of the other concerns here fall away, except the issues with at, first, and last, which I think can be addressed separately, with at least some improved output if not a behavioral change.
Here's what I'm thinking:

Introduce FinderBase<TCandidate>

This is technically more for #123634, but it also gives us a clean place to break the API per our deprecation process with minimal impact
This will be the thing that "finds", and will not report on the results itself
Terminology in this class will also be more consistent with "finding", with members such as "find", "tryFind", and "found"

Introduce FinderResult<TCandidate>

This is an analog to your EvaluatedFinder proposal
To further minimize impact this will also implement Iterable<TCandidate> allowing it to be treated as a basic iterable when additional functionality isn't needed
This will report on the results of the finder, basically what Finder does now when you call toString.

Introduce ElementFinder as the new root base class for currently implemented Finders.

This'll include the change to includeOffstage, and the updated toString method that doesn't evaluate anything

Lastly, we'll mark Finder as deprecated and drive users to use the ElementFinder class instead. After the deprecation window Finder will be removed, resulting in a clean break with the new polished API.
That's my plan so far, but I'd like to hear any feedback you have and I'll ping you in the PR when there's code available to review as well. Let me know what you think!

I love that the finder API got some improvements while staying backward compatible.
I myself created spot, an alternative finder API, which contained the new additions added by @pdblasi-google from the very beginning. And has many more features like chained finders and useful error messages.
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:spot/spot.dart';

void main() {
  testWidgets('Widget test with spot', (tester) async {
    // Create widget selectors for elements in the widget tree
    final scaffold = spot<MaterialApp>().spot<Scaffold>();
    final appBar = scaffold.spot<AppBar>();

    // Assert for values of widgets
    appBar.spot<Text>().existsOnce().hasText('Pepe');

    // Find widgets based on child widgets
    appBar
        .spot<IconButton>(children: [spotSingleIcon(Icons.home)])
        .existsOnce()
        .hasTooltip('home');

    // Find widgets based on parent widgets
    spot<Icon>(parents: [appBar, spot<IconButton>()])
        .existsExactlyNTimes(2)
        .all((icon) {
      icon.hasColorWhere((color) => color.equals(Colors.black));
    });

    // Interact with widgets using `act`
    final button = spotSingle<FloatingActionButton>();
    act.tap(button);
  });
}


Preparation of smoke testcases for Installation, Ingestion and processing configuration, Visualization, Authentication and Monitoring

Writing the smoke testcase for  the Installation , Ingestion and Processing configuration, Visualization, Authentication and Monitoring for the Following areas.

Azure
AWS
On- Premise
These test cases for the requirements of cQube 4.0

Testcases are completed and it is repo


feat: introduce ng-lazy-load

Lazily loads a target element based on a trigger elements
visibility in the viewport.

I'm putting this on hold until we get some good documentation in place for the development process here.


Error on quantization pytorch model

I'm trying to quantize pytorch example model. However, I got an error.
(vitis-ai-pytorch) yongwon@System-Product-Name:/workspace/tools/Vitis-AI-Quantizer/vai_q_pytorc
h/example$ python resnet18_quant.py --quant_mode calib --subset_len 200
[NNDCT_NOTE]: Loading NNDCT kernels...
-------- Start resnet18 test
Traceback (most recent call last):
File "resnet18_quant.py", line 283, in
file_path=file_path)
File "resnet18_quant.py", line 212, in quantization
quant_mode, model, (input), device=device)
TypeError: torch_quantizer() got an unexpected keyword argument 'device'
If anyone knows about this issue, please give me some solution.

Can you show me the message of print (pytorch_nndct.version) ?

Can you tell me your vitis-ai version ?

My version is 1.3.
I resolve it.
Thank you.


Enhancement: Add support for COPY and ADD-like methods to the remote api

At current we can get files directly from the container, but we cannot add files directly to the container.
Most of the related code for COPY and ADD is https://github.com/docker/docker/blob/master/builder/internals.go#L124 and https://github.com/docker/docker/blob/master/builder/internals.go#L644
I suspect an "inject file" method would be significantly easier as it wouldn't have to deal with symlinks or file system semantics on the source end.

Hi, this is already proposed (and implemented) here: #10198
Closing this one.
Thanks!

yeyyy


LEGO: Pull request from lego/hb_04604851-bac4-4681-9f74-73de611d6e48_20210715034011793 to main

LEGO: Pull request from lego/hb_04604851-bac4-4681-9f74-73de611d6e48_20210715034011793 to main with localized lcls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.002%) to 42.727%

Totals

Change from base Build<PHONE_NUMBER>:
-0.002%

Covered Lines:
26222

Relevant Lines:
55694

💛  - Coveralls


Azure OpenAI GA

Updated api_versions to 2022-12-01 (GA)
Added completions notebook
Adjusted fine-tuning and embedding example

Please ping Ted or I when this is ready to review!

@ted-at-openai @logankilpatrick The PR is ready for review!


Enabled Circle CI builds for forked PRs

Didn't run on https://github.com/mkobit/jenkins-pipeline-shared-libraries-gradle-plugin/pull/72, would be useful to know why

Was disabled before
now it is enabled


Remove weird recursive function

mmm tbf I don't know if this makes sense at all!?

@forki ihmo seems the original idea (from hints like rec go, SizeOfValueInfos plural) was to find the max value inside array.
So maybe is a bug in original code. or just a lazy fix to make it work on first value only.

yes that's what I thought. so I removed all that to make it very obvkous what we do right now. @KevinRansom or @dsyme can comment if it's a bug

Looks fine to me.

@forki ihmo seems the original idea (from hints like rec go, SizeOfValueInfos plural) was to find the max value inside array. So maybe is a bug in original code. or just a lazy fix to make it work on first value only.

Yeah this was surely a bug in the original code

Yes that's what I thought. My change was preserving the original
functionality and made it more obvious. So the bug is still there
Am 05.06.2017 16:24 schrieb "Don Syme"<EMAIL_ADDRESS>
@forki https://github.com/forki ihmo seems the original idea (from
hints like rec go, SizeOfValueInfos plural) was to find the max value
inside array. So maybe is a bug in original code. or just a lazy fix to
make it work on first value only.
Yeah this was surely a bug in the original code
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/visualfsharp/pull/3147#issuecomment-306200756,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AADgNHdYVQkH-jtRseI9h5_Uwvkn6fjNks5sBA-ZgaJpZM4Nos4W
.


feat: New Component Icon

Summary
This PR adds the Icon component.
Related Issues or PRs
closes #992
How To Test
Check out this branch and run yarn test to execute tests and yarn storybook to see the new component in action. If you cannot see the Storybook controls dashboard, press the D key and it should appear on the right-hand side.
Alternatively, you can scroll to the bottom of this page and click "Show environments" on the right above the comment input box.
Screenshots

Looking good ⭐ . Running locally things worked fine. I don't see the icons in Storybook in the deployment though - am I missing something?

I'm not sure @haworku - I don't see them in the deployment either. I know it's something to do with how storybook interacts with the SVG sprite.
The path of the svg use tag in the deployment:
href="static/media/sprite.483d6459.svg#accessibility_new"
versus locally:
href="static/media/node_modules/uswds/src/img/sprite.svg#accessibility_new"

Drew and I spent some time pairing on this earlier today. We discovered a few things;Icon unexpectedly does render in all browsers in the added Happo screenshots (except in IE), we added Icon to the example app expecting it to work based on Happo's success but it did not, and there are rules around SVGs that differ from image tags which is how the rest of the components successfully render any USWDS icons as of right now.

SVGs are stored in S3
Icon works in Happo but does not work when imported and rendered in the example app in Chrome

❤ Really good work here. I feel like this component could be ready - but I'm not sure if we ready to merge this without storybook. I could see us going either way but going to close for now as stale since there hasn't been further discussion on the component for some time. @SirenaBorracha @ahobson if you have other context please share.

Closing in lieu of https://github.com/trussworks/react-uswds/pull/1609


Assertion Error issue (assumed to be caused by long mudulation file, maybe)

running into an issue with the program. i think the issue may be the length of my audio file modulator file(25min), but I am unsure.
Traceback (most recent call last):
File "C:\Users*name*\Downloads\stammer-main\stammer-main\stammer.py", line 309, in
main()
File "C:\Users*name*\Downloads\stammer-main\stammer-main\stammer.py", line 305, in main
process(vars(args))
File "C:\Users*name\Downloads\stammer-main\stammer-main\stammer.py", line 265, in process
build_output_video(handler, matcher)
File "C:\Users*name\Downloads\stammer-main\stammer-main\stammer.py", line 144, in build_output_video
video_handler.write_frame(video_frame_i,video_handler.get_frame(carrier_video_frame+1))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users*name*\Downloads\stammer-main\stammer-main\video_out.py", line 90, in get_frame
super().get_frame(idx)
File "C:\Users*name*\Downloads\stammer-main\stammer-main\video_out.py", line 41, in get_frame
assert(idx > self.framecount)
^^^^^^^^^^^^^^^^^^^^^
AssertionError
edit: i got a temp fix working by setting the output as .mp3

You've done nothing wrong.
Very probably a duplicate of #9 et al. I introduced this assert because of those issues :P
I have a hunch the bug is located within build_output_video but I can't parse a lot of the frame length math in my brains :^)

I had this same problem too. Got the same exact stack traceback.
Calculating video length
Separating video frames
frame=129578 fps=412 q=-0.0 Lsize=N/A time=01:30:04.48 bitrate=N/A speed=17.2x
reading audio
analyzing audio
creating output audio
building output video
Traceback (most recent call last):
File "C:\Users\myname\Downloads\stammer-main\stammer-main\stammer.py", line 309, in
main()
File "C:\Users\myname\Downloads\stammer-main\stammer-main\stammer.py", line 305, in main
process(**vars(args))
File "C:\Users\myname\Downloads\stammer-main\stammer-main\stammer.py", line 265, in process
build_output_video(handler, matcher)
File "C:\Users\myname\Downloads\stammer-main\stammer-main\stammer.py", line 144, in build_output_video
video_handler.write_frame(video_frame_i,video_handler.get_frame(carrier_video_frame+1))
File "C:\Users\myname\Downloads\stammer-main\stammer-main\video_out.py", line 90, in get_frame
super().get_frame(idx)
File "C:\Users\myname\Downloads\stammer-main\stammer-main\video_out.py", line 41, in get_frame
assert(idx < self.framecount)
AssertionError
However, my modulator track isn't the long one. It's my carrier track that's long. (90 minutes)
It was around uh.. 1100-1300 frames into the "building output video" process out of 5300 frames.
I'm running this on Windows 11.
I tried this twice and got the same error output.
I'll try this again, but this time I'll drop every other frame in the carrier track, effectively reducing it's number of frames by 50%.

@ArdenButterfield Can you clear up the purpose of the +1 in line 144 of this code?
https://github.com/ArdenButterfield/stammer/blob/d73334d7a357195657ba23bd11ed9f334662ad4a/stammer.py#L135-L144


Offline / On-Premise Installation

Feature Request

Complete Offline Installation Bundle
No Internet Connectivity required for authentication
No Internet Connectivity required at all

You can install the extension offline, but you are correct that we need the internet today for connection -- after connected, you shouldn't need the internet, since we use direct connections between devices when possible.

the ultimate goal here is to have the ability to install, run and maintain the live-share extension in a completely from the internet isolated environment.

We also need this feature to use liveshare effectively.

This is a great feature which will enhance response time in local networks and ability to work offline in places like hackatons

I'll just chime in and say this is exactly what we need as well. We can't connect to Azure or Github on our dev environment.

This feature would benefit a large group within the United States DoD. I work in an environment where we are unable to use an internet connection. I know of a large number of divisions within the military that would greatly appreciate this feature.

This feature would be great for our c# community where don't have a internet connection. It would enhance how we handle collaboration in our mini hackathons

Has this feature request been around for one and a half years without any response whatsoever?

@fubaduba is this request being looked at for 2020?

Offline installation still a problem. Downloading dependencies runs forever:

Company does not allow downloads from the internet, which makes Live Share impossible to use, and we could really use it now that we're all remote for the next <>. At the very least I would like to a) know a list of exactly what it tries to download, if it's more than just the .Net Core runtime and b) if it doesn't already, check that the dependencies are installed before attempting to download them. That would at least allow us to get the dependencies cleared and installed, working around the issue.

Is this feature still being looked at? It would be incredibly useful for me and my team.

Being able to use Live Share offline would be a great benefit to my organisation. We work offline to enable innovation whilst ensuring the data we work with is protected but innovation is driven by collaboration. Working offline presents a range of practical challenges that Live Share could help us address.

Using this tool without the requirement of logging in into github or Microsoft would be important for us to use it on computers with no connection to the internet.

On premise install would also allow devs to work on inhouse code that's not supposed to leave the perimeter so it would be an awesome feature 👍

Two and a half years now. I actually get worried if a notification from this issue doesn't pop up in my inbox every once in a while.

@andres-k for this:

On premise install would also allow devs to work on inhouse code that's not supposed to leave the perimeter

this requirement is actually supported by Live Share's "direct connection mode." The Live Share service is still necessary for creating the session and authentication, but your code will never leave your network with this mode. (Note that even without direct mode, your code is always encrypted). More details can be found here.

The request is not just for code security, but for the ability to Connect over lan networks. It seems the core contributors are keen on not doing this

This would be a massive plus in our corporate environment.  We have sovereign export control constraints and secure offline environments that prevent us from any services phoning home, no matter how innocuous the actual rest call is.  Having an on-premises solution would be amazing, even as a paid license.

This would be a massive plus in our corporate environment.  We have sovereign export control constraints and secure offline environments that prevent us from any services phoning home, no matter how innocuous the actual rest call is.  Having an on-premises solution would be amazing, even as a paid license.

The login/authentication requirement seems to only make sense when connecting over internet.
It shouldn't be required to connect via local/LAN sessions.
Is it possible to remove this requirement and allow LAN/internet-free sessions to be spun up?

Hey @JP01 , when you're connecting via LAN, the internet is only required for authentication and finding the location of the host (although we did experiment with some alternative ways to support the latter without a call to our service). There's no way we could verify the identity of the hosts/guests without authenticating against our service 😕, which is a security concern.
We download dependencies after installing to keep the extension size small. It wouldn't be easy to support a "bundled with the VSIX mode," although we could certainly look into how to support offline installs. Could you file a separate issue for that if it's something you'd like to see us prioritize?

Hey @daytonellwanger, thanks for the reply.
Just wondering why you need to verify the identity of host/guest on a LAN that has no access to the internet?
If it's still required, could the authentication service be provided as something we could run on a machine with in our network without ever connecting to the internet and then just route the request to local vs internet auth?
I'm not particularly familiar with auth stuff but it seems like it could be locally verified if the main liveshare service is something that can run locally?
I'll file a seperate issue for the deps thing, this is just another unfortunate issue we face when there's no internet access - can only manually download vsix files and transfer to our local hosts for installing! :(

I agree
the LAN is trusted for members
the security of LAN is not your concern

Echoing sentiments of many here.  Theres a huge use case in Public Sector, Utility, Medical, Financial industries give the ubiquitous use of airgapped networks where internet connectivity will simply never be possible.
The problem of on-prem web app authentication isnt a new one, and has been solved a multitude of times.  Oauth, LDAP, Kerberos, take your pick. Hell, even a "per session unique url with token" is enough security for many.  I'm sure its a heavy lift given the client side is likely hard coded to point at MS hosted services/architecture, but there clearly is a community need.

Is anyone working on it ?

When the offline feature will be available ?
Thanks

any update? I don't see any official respone to this issue!

Hmm... it's been 3 years and this issue is still open.
Working in completely offline environment (organization controlled LAN) is totally possible and auth is not a problem in such case. Could someone look at this issue by giving more auth options (whitelist or organization SSO) or turning auth requirement to be optional?

This would be super beneficial for us to have this offline.

Looks like the ability to to live share on a local network is there now.
https://docs.microsoft.com/en-us/visualstudio/liveshare/reference/connectivity#requirements-for-connection-modes
However, the live share into says we still need to log in use some sort of cloud credentials, which kind of defeats the purpose. Am I wrong about this? Is there a way to login using some internal auth? or do we even need to login?
I haven't been able to download an test, but will if someone says this is possible.

nope, u still need to authenticate via github or mircosoft. so no airgap mode 😭

Arghh...so close. Yet, still useless... to me.

I am able to get around the login within our organization but this dependency downloading is really messing us up. Has anyone been able to get around this issue? (See 'part B' from this post above)

Company does not allow downloads from the internet, which makes Live Share impossible to use, and we could really use it now that we're all remote for the next <undetermined amount of time>.
At the very least I would like to a) know a list of exactly what it tries to download, including version(s) and b) if it doesn't already, check that the dependencies are installed before attempting to download them. That would at least allow us to get the dependencies cleared and installed, working around the issue.
Edit: found the runtimeDependencies part of the package.json, which satisfies a), but it would still be nice to have that somewhere more visible. This makes it seem like downloading the .NET core runtime specified and unpacking it would be enough, but at least for the (old) version of VSCode I was using, that didn't work. Directions for how to do that I think would solve the problem.

@jspada200 How do you do that?

I am able to get around the login within our organization

Two and a half years now. I actually get worried if a notification from this issue doesn't pop up in my inbox every once in a while.

Four year anniversary (almost)! Let's throw a party XD

Bump

After login, it seems to ask for a server to establish the connections among participants. Any idea to get rid of this? I think we still need to "modify" the code.

I am able to get around the login within our organization but this dependency downloading is really messing us up. Has anyone been able to get around this issue? (See 'part B' from this post above)
@jspada200 would you mind to share the solution how you are able to get around login part? After login, I think the establishment of the connection between any two participants needs to be dealt with, since it goes out to https://prod.liveshare.vsengsaas.visualstudio.com to setup the connection.

This would be so helpful in my organization where we work in a completely offline environment.

We’re not able to prioritize this issue over the other higher-impact issues we receive every week, based on the votes and comments from others in the community and our understanding of the issue. However, rest assured that we love your input. We will not be working on this for the next 6 months and will reopen and reevaluate this issue after that, once other priorities are addressed. Thank you for your participation on this issue.

based on the votes and comments from others in the community and our understanding of the issue
I am not a user of this extension and I will not be, until it became offline.
and I will not vote for anything else

I am not a user of this extension and I will not be, until it became offline.

Same.

just leave a comment here to track similar issue #3

Hmm... it's been 3 years and this issue is still open.

It's been way too long.
Yes, it's nice to have an easy way of connecting from anywhere to anywhere, thank you.
But i would love to be able to connect with someone WITHOUT needing to use the 5mbps connection that i am forced to use everyday! (And it seems like i'm lucky to have that at least...)
Honestly, what even is the purpose of "direct connections" if you're forced to log in???
Does anyone know of an alternative extension that does this? Because i would honestly just uninstall live share right now if there is a true P2P extension.

2024, and here we are... I work in a company that has github blocked. I want to collaborate with my other engineers on my team on scripting and can't.

If this problem is solved, please let me know, thank you.

id like this as well to be a feature, still need to sign in into github / have a network connection

Please?


Visual Studio 2022 build LoggerWrapper project failed with "Can't find .NETFramework,Version=v4.0" error message

Hi! Thanks for reporting this bug!
Please keep / fill in the relevant info from this template so that we can help you as best as possible.
NLog version: 5.2.8
Platform:  .Net 4.0

What is the current result?
Visual Studio 2022 build LoggerWrapper project failed with "Can't find .NETFramework,Version=v4.0" error message. And I can't find .NETFramework,Version=v4.0 from https://dotnet.microsoft.com/en-us/download/visual-studio-sdks?cid=msbuild-developerpacks link.
What is the expected result?
Visual Studio 2022 can build LoggerWrapper project successfully

The error-message has nothing to do with NLog, but VS2022 doesn't know how to compile .NET4.0 applications (No longer include the .NET4 runtime):

Can't find .NETFramework,Version=v4.0

.NET4.0 is now obsolete, and one is recommended to upgrade to .NET4.5 (or newer). Just right-click your project and open settings, where you can change the target framework.
Alternative downgrade to VS2019 (not recommended), since NLog supports .NET4.0 just fine.

Thanks for your reply! I have upgrade to .NET 8.0. But  VS2022 build LoggerWrapper project failed with "Can't find NLog and Logger namespace".

This is not a support forum for how to use Visual Studio and doing DotNet Development.
Maybe you will have better luck on StackOverflow.com.

Closing issue due to inactivity. If you find something that kind be improved in NLog, then pull-requests are most wellcome.


Add to config extension methods so EF can be added to any asp.net core host

For example, an API that just wants to use this EF library to host config DB and/or operational DB.

This will not need to register the stores.

Isn't this just wrappers around a couple of AddDbContext's?

yea, but some people need it

ok yea, due to laziness on my part i'll punt

You can use the AddIdentityServerBuilder method to get a builder, and then use the standard ext method to register the stores I think.


Serializable problem description format

User Story
As a technology provider I want to be able to load the problem definition and solver configuration from structured data.
The UPF allows constructing planning problems from both a python API or by parsing a problem definition in a supported input language (currently PDDL). The problem is loaded in memory in the UPF. Currently to call a planner, the UPF can either rely on the planner's python binding or export the problem to PDDL.
PDDL as language for exchanging the description of planning problem is limiting as the UPF allows specifying constructs that do not directly map to PDDL (e.g. ICE in #45). On the other hand, relying on the python API strongly couples the UPF with a particular version of the solver and complicates distribution.
Having a specialized data structure that fully represents the planning problem would enable planners to support the the native features of the UPF while running in a separate process.
As a planner developer, it would allow decoupling the planner's implementation and the UPF development, with the ability to test the planner on problems constructed with the UPF without directly depending on it.
Acceptance Criteria

[ ] The problem description format is independent from any programming language (e.g. JSON or protobuf)
[ ] The problem description format can be serialized, either to be written to a file or to be sent over the network to planner running in another process.
[ ] The problem description format is extensible, with parts of the schema being explicitly linked to particular features (e.g. hierarchies, ...)

Attention Points

Backward compatibility of the problem description format is important. Extensions to the schema should be backward compatible and it should be possible to compile away the cutting edge features to a smaller/earlier schema version. This needs to be kept in mind but is not necessary for prototyping phase.

Below is the output of the direct translation UPF to AIDDL (a general purpose DDL for hybrid/integrated AI systems, see aiddl.org) of one of the UPF test cases. This can currently be parsed in Python, Java, and Scala. With a bit of work (simplifying expressions where possible) this could be a candidate to provide a DDL to the UPF and it would allow to combine the UPF easily with other types of AI problems.
However, I think for the purpose of just serialization (less human readable), YAML or JSON may be better because parsers are more widely available.
(
  name:"robot_loader_adv"
  fluents:
    [
      (robot_at bool [Robot Location])
      (cargo_at bool [Container Location])
      (cargo_mounted bool [Container Robot])
    ]

  objects:[(r1 Robot) (l1 Location) (l2 Location) (l3 Location) (c1 Container)]
  actions:
    [
      (
        name:move
        params:[?l_from ?l_to ?r]
        param-types:[Location Location Robot]
        preconditions:
          [
            (
              NOT
              [(EQUALS [(PARAM_EXP aparam:?l_from) (PARAM_EXP aparam:?l_to)] none:-)]
              none:-
            )

            (FLUENT_EXP [(PARAM_EXP aparam:?r) (PARAM_EXP aparam:?l_from)] fluent:robot_at)
            (
              NOT
              [(FLUENT_EXP [(PARAM_EXP aparam:?r) (PARAM_EXP aparam:?l_to)] fluent:robot_at)]
              none:-
            )

          ]

        effects:
          [
            (FLUENT_EXP [(PARAM_EXP aparam:?r) (PARAM_EXP aparam:?l_from)] fluent:robot_at):
              (BOOL_CONSTANT bool:False)
            (FLUENT_EXP [(PARAM_EXP aparam:?r) (PARAM_EXP aparam:?l_to)] fluent:robot_at):
              (BOOL_CONSTANT bool:False)
          ]

      )

      (
        name:load
        params:[?loc ?r ?c]
        param-types:[Location Robot Container]
        preconditions:
          [
            (FLUENT_EXP [(PARAM_EXP aparam:?c) (PARAM_EXP aparam:?loc)] fluent:cargo_at)
            (FLUENT_EXP [(PARAM_EXP aparam:?r) (PARAM_EXP aparam:?loc)] fluent:robot_at)
            (
              NOT
              [
                (FLUENT_EXP [(PARAM_EXP aparam:?c) (PARAM_EXP aparam:?r)] fluent:cargo_mounted)
              ]

              none:-
            )

          ]

        effects:
          [
            (FLUENT_EXP [(PARAM_EXP aparam:?c) (PARAM_EXP aparam:?loc)] fluent:cargo_at):
              (BOOL_CONSTANT bool:False)
            (FLUENT_EXP [(PARAM_EXP aparam:?c) (PARAM_EXP aparam:?r)] fluent:cargo_mounted):
              (BOOL_CONSTANT bool:False)
          ]

      )

      (
        name:unload
        params:[?loc ?r ?c]
        param-types:[Location Robot Container]
        preconditions:
          [
            (
              NOT
              [(FLUENT_EXP [(PARAM_EXP aparam:?c) (PARAM_EXP aparam:?loc)] fluent:cargo_at)]
              none:-
            )

            (FLUENT_EXP [(PARAM_EXP aparam:?r) (PARAM_EXP aparam:?loc)] fluent:robot_at)
            (FLUENT_EXP [(PARAM_EXP aparam:?c) (PARAM_EXP aparam:?r)] fluent:cargo_mounted)
          ]

        effects:
          [
            (FLUENT_EXP [(PARAM_EXP aparam:?c) (PARAM_EXP aparam:?loc)] fluent:cargo_at):
              (BOOL_CONSTANT bool:False)
            (FLUENT_EXP [(PARAM_EXP aparam:?c) (PARAM_EXP aparam:?r)] fluent:cargo_mounted):
              (BOOL_CONSTANT bool:False)
          ]

      )

    ]

  initialState:
    [
      (FLUENT_EXP [(OBJECT_EXP obj:r1) (OBJECT_EXP obj:l1)] fluent:robot_at):
        (BOOL_CONSTANT bool:False)
      (FLUENT_EXP [(OBJECT_EXP obj:r1) (OBJECT_EXP obj:l2)] fluent:robot_at):
        (BOOL_CONSTANT bool:False)
      (FLUENT_EXP [(OBJECT_EXP obj:r1) (OBJECT_EXP obj:l3)] fluent:robot_at):
        (BOOL_CONSTANT bool:False)
      (FLUENT_EXP [(OBJECT_EXP obj:c1) (OBJECT_EXP obj:l1)] fluent:cargo_at):
        (BOOL_CONSTANT bool:False)
      (FLUENT_EXP [(OBJECT_EXP obj:c1) (OBJECT_EXP obj:l2)] fluent:cargo_at):
        (BOOL_CONSTANT bool:False)
      (FLUENT_EXP [(OBJECT_EXP obj:c1) (OBJECT_EXP obj:l3)] fluent:cargo_at):
        (BOOL_CONSTANT bool:False)
      (FLUENT_EXP [(OBJECT_EXP obj:c1) (OBJECT_EXP obj:r1)] fluent:cargo_mounted):
        (BOOL_CONSTANT bool:False)
    ]

  goals:
    [
      (FLUENT_EXP [(OBJECT_EXP obj:c1) (OBJECT_EXP obj:l3)] fluent:cargo_at)
      (FLUENT_EXP [(OBJECT_EXP obj:r1) (OBJECT_EXP obj:l1)] fluent:robot_at)
    ]
)

I think we can easily construct a printer/parser in json/yaml (actually Json is a subset of yaml 1.2) that is sufficiently human readable.
If we need speed, I think that the Protobuf format (see also #48) should be more efficient in time and space, but also not human readable.
Both these approaches work with virtually any programming language.


Is this a react native library?

Is this a react native library if yes, how can i use it in my android+ ios app..if not, than what is it nd how can i covert it into react native..Thanks in advance✌

https://github.com/tom555my/react-native-avataaars


Allow to navigate back and forth

Is your feature request related to a problem? Please describe.
Its not possible yet to navigate back to the page you were navigating from
Describe the solution you'd like
Come up with a solution on how to navigate between the view. Do that consistently for each of them. You might want to consider the approach of the new Offer Manager. Make use of the vaadin property which allows you to hide screen states.
Additional context
This should be implemented for all views consitently

not required for now, since the complexity of the tool was removed


Cannot convert undefined to a BigInt

At the time my server is starting, accessing /node/syncing gives me this response:
{"statusCode":500,"error":"Internal Server Error","message":"Cannot convert undefined to a BigInt"}

How exactly are you running the server? I'm not getting this error by doing
lion@lion:lodestar$ yarn run cli dev --dev.genesisValidators 1 --dev.reset

and immediately
lion@lion:lodestar$ curl http://<IP_ADDRESS>:9596/node/syncing
{"starting_block":"0","current_block":"0","highest_block":"0"}

Same as https://github.com/ChainSafe/lodestar/issues/1358 ?

@dapplion I deployed to my heroku server running witti at that time, not maintained that for a while.
When I restart the server and issue that api in my browser, I got the error.

Closing as duplicate of #1358 and there are more logs there


How to upload 10.000 images?

I have follow the tutorial and I have been able to upload to the testnets.opensea.io a collection of 20 items but I cant do it with the entire collection.
When I try to change this line     mint(msg.sender, 20); to     mint(msg.sender, 10000); I got the following error:

What I need to change to upload 10.000 images instead of only 20?

Trying to figure this out too

I'm trying with 1000 images and still doesn't work, well I don't know how to make it work.

DANIEL - HASHLIPS - Help us! Please ^_^

im trying to do 3333 images and it wont work either having the exact same error
Daniel Please help us !!!!!
love your youtube content btw

Hi guys. Any solution to this issues? Any help would be appreciated. Attempting to upload 10thousand as well but hitting a road block with a similar error. Thanks in advance.

.

Also please instruct us on how to upload 1000 nfts a time on a collection of 10000 without the smart contract making a new collection?
i have a colleciton of 10000 and i want to mint 1000nft per week into a single collection but i tried it and the next 1000 go to a new collection (collection name) + v2 v3 v4 and so on. thanks in advance! love your videos!

Yes i have tried that but no luck i have a collection of 2021. so u cant mint more then 200 in once. i tried a bunch of different numbers for me only number 200 worked. and now i mint 200 nft in every transction on polygon gas fee is like 0.58matic not that bad and it works smooth. just put the maxMintAmount to 200. thank you

Is it really impossible to cast 10000 NFTs? Now it is 2022. 10000 operations are very common. Who has a solution, or can other smart contracts do this? Please give me some advice. Thank you


Stringy.php : typo in class name

In src/Stringy.php, l.1862 :
throw new \**RuntimeExpception**('Stringy method requires the ' .     'mbstring module for encodings other than ASCII and UTF-8');
Fix :
throw new \RuntimeException(...)

Also, it could be interesting to add in the error message the encoding actually used. Something like :
throw new \**RuntimeException**('Stringy method requires the ' . 'mbstring module for encodings other than ASCII and UTF-8. Encoding used : ' / $this->encoding);

Thanks!


Display VEP data version in web VEP (109)

ENSVAR-5208
This PR adds a table containing VEP data versions in web VEP results (located in Job Details section). The information to create this table is retrieved from the line of VEP's VCF output that starts with ##VEP, e.g.:
##VEP="v108" time="2022-10-24 16:50:52" cache="/net/isilonP/public/ro/ensweb-data/latest/tools/www/e108/vep/cache/homo_sapiens/108_GRCh38" db="homo_sapiens_core_108_38@hh-mysql-ens-species-web-1" 1000genomes="phase3" COSMIC="96" ClinVar="202205" HGMD-PUBLIC="20204" assembly="GRCh38.p13" dbSNP="154" gencode="GENCODE 42" genebuild="2014-07" gnomADe="r2.1.1" gnomADg="v3.1.2" polyphen="2.2.2" regbuild="1.0" sift="sift5.2.2"

Testing
Check if the following sandbox links show the expected information compared to their VCF output:

Human
Salmon

Just because there was some changes to the core VEP web files (component and ticketDetails), we need at least one person from web to approve and i am happy with the changes.


select character before / after the matched one

so I'm trying to select all characters without pressing right after the selection is completed.

select after the character when: search direction is down
select before the character when: search direction is up

I've tried to fork the project and change some codes. but unfortunately, I'm not good at type script or java script.

@

@AngDrew If I am understanding you correctly, this is exactly the same issue that is being described in #44, correct?


Add optional parameter to FlutterTesterDevices.

This is to handle Google testing failures for  https://github.com/flutter/flutter/pull/158126.
We want to update G3 to provide this parameter before merging the full change.
Testing is not needed because the change is no-op.

You can do this, but I think this is better done as a G3Fix when rolling, no?

Polina, any update?

There are issues with G3Fix: b/377380166

This PR bypassed testing exempt, because it was high priority to re-land PRs.


Draft: Updated libmaxminddb to version 1.9.1

[X] Changes comply with the maintainer guide
[X] SHA512s are updated for each updated download
[X] The "supports" clause reflects platforms that may be fixed by this new version
[-] Any fixed CI baseline entries are removed from that file.
[X] Any patches that are no longer applied are deleted from the port's directory.
[X] The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
[X] Only one version is added to each modified port's versions file.

@microsoft-github-policy-service agree


Bugfix/python3

The use of iteritems stops em from working under Python3, where this method has been renamed to items.
There is a difference now in memory usage, because under Python2, items returns an actual list of 2-tuples, whereas in Python3 it returns an iterable. I felt this compromise was better than messing up the code with if-statements on the Python version.
Feedback welcome - happy to do whatever you prefer to get this fix in 👹 📷 ❤

Oops - looks like #14 already includes this 🌴


[GSSOC'23]Changing color of testimonial text in light theme

Is your feature request related to a problem? Please describe.
Changing color of testimonial text in light theme
Describe the solution you'd like.
improves readability
Describe alternatives you've considered.

Add any other context or screenshots about the feature request here.
No response

I would like to fix this issue. Please assign this to me under gssoc'23 @agamjotsingh18


Change Toggle button of dark and light mode.

Changes to be made according to the color theme.

Hi @sonejamohit the toggle button is fine as it is but if you think you can make it better, go ahead but know that we aim to keep the design as minimal as possible no extra effects.

The button's looking great, and I was suggesting making the similar changes you've made.
I can design a logo for the web app.

Alright. Take reference from the current favicon. Just make something simple.

It's done, please have a look.


Cloud Provider option makes kube-controller-manager to fail

I am using the new version of Kubernetes 1.9.6 and I noticed that no matter what kind of configuration I use (even the default options), when enabling the aws cloud-provider the kube-controller-manager is unable to start. The error that is throwing is the following:
 ######  Starting Kube CONTROLLER MANAGER -- kube-controller-manager-0-instance ######
I0406 16:15:12.779558      10 controllermanager.go:108] Version: v1.9.6
I0406 16:15:12.786006      10 leaderelection.go:174] attempting to acquire leader lease...
I0406 16:15:12.871094      10 leaderelection.go:184] successfully acquired lease kube-system/kube-controller-manager
I0406 16:15:12.871316      10 event.go:218] Event(v1.ObjectReference{Kind:"Endpoints", Namespace:"kube-system", Name:"kube-controller-manager", UID:"f275b8cf-39ab-11e8-9288-028a57b514c0", APIVersion:"v1", ResourceVersion:"7486", FieldPath:""}): type: 'Normal' reason: 'LeaderElection' ip-10-0-1-211.eu-central-1.compute.internal became leader
I0406 16:15:12.893967      10 aws.go:1000] Building AWS cloudprovider
I0406 16:15:12.894005      10 aws.go:963] Zone not specified in configuration file; querying AWS metadata service
E0406 16:15:13.071847      10 tags.go:94] Tag "KubernetesCluster" nor "kubernetes.io/cluster/..." not found; Kubernetes may behave unexpectedly.
W0406 16:15:13.071873      10 tags.go:78] AWS cloud - no clusterID filtering applied for shared resources; do not run multiple clusters in this AZ.
F0406 16:15:13.071930      10 controllermanager.go:150] error building controller context: no ClusterID Found.  A ClusterID is required for the cloud provider to function properly.  This check can be bypassed by setting the allow-untagged-cloud option

If I disable the option, Kubernetes is able to run correctly again.
It's worth to mention that I tried to install Kubernetes with the cloud-provider set on aws after a brand new DC/OS installation. Still though, the result was negative.
This is a major issue because I need to let Traefik to expose a Loadbalancer so that I can connect my services.

@davideberdin Have you followed the cloud-provider instructions? The following message suggests you don't have the required tag:
E0406 16:15:13.071847      10 tags.go:94] Tag "KubernetesCluster" nor "kubernetes.io/cluster/..." not found; Kubernetes may behave unexpectedly.

How did you create your DC/OS cluster?

 I was totally missing the Tag "KubernetesCluster" in my CloudFormation. Thank you very much. I will close the issue :)


can't able to signin

hi there, I am new to flutter. I saw your app it is awesome. But, when I am trying to sign in the button is not working. please help with this.

First sign up
Password length min 6 digits


Tensor Parallelism vs Data Parallelism

Hi, thanks! I use vllm to inference the llama-7B model on single gpu, and tensor-parallel on 2-gpus and 4-gpus, we found that it is 10 times faster than HF on a single GPU, but using tensor parallelism, there is no significant increase in token throughput.We understand that through data parallelism, the memory can be expanded and the batch of processing samples can be increased.But the communication between graphics cards may reduce the speed. If 2-gpus is used, there should be an acceleration of 1.5✖. But now the throughput has basically remained unchanged. Is it because our GPU KV cache usage is full, or there are other reasons. Looking forward to your reply!

I also want to know whether the tensor parallelism you use is 1D, 2D or 3D?

As an example of this, I ran the following script with different values of WORLD_SIZE:
import torch, time, tqdm
from vllm import LLM, SamplingParams

WORLD_SIZE = 1
PROMPT_LEN = 100
BATCH_SIZE = 2048
MAX_TOKENS = 100
llm = LLM(
    model="lmsys/vicuna-7b-v1.3",
    tokenizer="hf-internal-testing/llama-tokenizer",
    tensor_parallel_size=WORLD_SIZE,
    gpu_memory_utilization=0.85
)

start = time.perf_counter()

batch = torch.randint(32000, (BATCH_SIZE, 120))

out = llm.generate(
          prompt_token_ids=[tokens.tolist() for tokens in batch],
          use_tqdm=False,
          sampling_params=SamplingParams(
              max_tokens=20,
              ignore_eos=True,
          )
  )

print(time.perf_counter() - start)

My results were:

1x A100 40G: 33.2 seconds
2x A100 40G: 28.3 seconds
4x A100 40G: 25.6 seconds
8x A100 40G: 27.8 seconds
16x A100 40G: 36.3 seconds

So there is very little gain from parallelism (and too many GPUs actually make things run slower!).

I also want to know whether the tensor parallelism you use is 1D, 2D or 3D?

I think vLLM only use tensor parallel 1D.

@PythonNut I think your max-tokens set too small, encountered the bottleneck of A100 computing power. vllm is dynamic batch to inference, If you encounter a memory bottleneck, the speed can be improved by using two cards, because the computing power is not fully used. If the computing power encounters a bottleneck, it will slow down due to the communication between multiple cards. This is what I guessed from my own testing analysis.

@irasin I think so, the communication between each layer cause the slower speed.

@xcxhy
Right I guess I'm showing a case where tensor parallelism is not the best form of parallelism. In particular, I am measuring throughput not latency; I specifically chose a batch size that is too big to fit in RAM so there are many iterations of inference happening inside generate. Since I am very happy with the throughput on a single GPU, it seems like data parallelism would scale better in this situation than tensor parallelism.

Hi, @PythonNut, I wonder have you tested pipeline parallel vs tensor parallel in some other frameworks?

@PythonNut I agree with your opinion. My test data shows that the length of each text is very long, so that the video memory of a single GPU cannot be put into enough batches. At this time, using tensor parallel will speed up to a certain extent. I think you can test it, set the batch to 10, assuming that one gpu can only accommodate 10, then you use 2 gpus, set the batch to 20, this should be able to verify whether tensor parallel can provide acceleration.

@xcxhy This is actually due to python overhead, which bottlenecks the tensor parallel performance for smaller models. We are thinking about implementing models in C++ to overcome this issue. You can also track the progress in #42

Just dropping this as a simple example of how to do data parallel inference in Python that I've found to be effective.
Obviously I'd appreciate the eventual implementation of proper data parallel processing in the actual package, but this works decently as a stop-gap just now.
import multiprocessing
from vllm import LLM, SamplingParams

NUM_GPUS = 4

def run_inference_one_gpu(gpu_id, prompt_list, model_name, sampling_params):
    os.environ["CUDA_VISIBLE_DEVICES"] = str(gpu_id)
    llm = LLM(model=model_name)
    return llm.generate(prompt_list, sampling_params)

# Splits a list into roughly equally sized pieces
# split_list(["a", "b", "c", "d", "e", "f", "g"], 3) -> [['a', 'b'], ['c', 'd'], ['e', 'f', 'g']]
split_list = lambda l, n: [l[i * len(l) // n: (i + 1) * len(l) // n] for i in range(n)]

def run_inference_multi_gpu(model_name, prompts, sampling_params):
    split_prompts = split_list(prompts, NUM_GPUS)
    inputs = [(i, p, model_name, sampling_params) for i, p in enumerate(split_prompts)]

    with multiprocessing.Pool(processes=NUM_GPUS) as pool:
        results = pool.starmap(run_inference_one_gpu, inputs)

    outputs = []
    for result in results:
        outputs.extend(result)

    return outputs

prompts = [f"Write me a story about why {i} is your favourite number.\n\n{i} is my favourite number because " for i in range(100)]
sampling_params = SamplingParams(temperature=0.0, max_tokens=256)
model_name = "mistralai/Mistral-7B-v0.1"
outputs = run_inference_multi_gpu(model_name, prompts, sampling_params)
print(outputs)

This requires the whole model to be able to fit on to one GPU (as per data parallel's usual implementation) and will doubtless have a higher RAM overhead (I haven't checked, but it shouldn't be massive depending on your text size), but it does run seem to run at roughly N times the speed of running on one GPU (where N=number of GPUs) compared to <N times for the tensor parallel implementation.
I hope this is useful to someone!

@xcxhy
I think I can confirm your intuition with data. I have 4 A6000 cards with much lower IO bandwidth than the A100 cards so this example is big enough to IO bottleneck and not compute bottleneck. Same example with vLLM 0.2.2 on Nvidia PyTorch container 23.10
1 GPU: 47.28260640997905 secs
2 GPU: 38.49804261501413 secs
4 GPU: 35.09966081101447 secs
Best,
Abhishek

I think fastchat supports this feature: fastchat scalability

How to do it natively to vllm project rather than fastchat?

Closing this in favour of #689


--lb-address-pools doesn't work for multiple values (--lb-name provided)

Azure CLI adds space separated value for multiple backend pools (as in Documentation)  as one value and returns error resource not found.

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

ID: 79836d6b-b885-294c-cbeb-0e4d4be3d250
Version Independent ID: e05e7ff9-fd88-663b-eecf-9d6ae2c75d40
Content: az network nic ip-config
Content Source: latest/docs-ref-autogen/network/nic/ip-config.yml
Service: virtual-network
GitHub Login: @rloutlaw
Microsoft Alias: routlaw

network

Hi：
@810713 “ az network nic ip-config update -g XX --nic-name XX -n XX --lb-name  XX --lb-address-pools bap1 bap2 " works well at my side as below picture and my CLI version is 2.35.0.  Notice that the resource name you used in this command all need to be created first.

Best wishes.

Thanks for your dedication to our documentation. We are closing this issue for now, but if you feel that it's still a concern, please respond and let us know. If you determine another possible update to our documentation, please don't hesitate to reach out again.
#please-close


[Scripts] Make sctrip-framework.sh not executable

Potentially closes #1865.
The installation instructions will need to be updated to explicitly call bash for the script, though.
\c @jpsim

This seems fine, but I'd like us to double check validating an archive for the App Store before going any further.

Since @TimOliver has an app using Realm in the app store, maybe he can check?


lupdate translations with relative locations

Relative locations are more stable to new line/remove line. Significantly easier
to maintain source code of large project.

Download:
Environment: QT=5.12, ARCH=32, PYTHON_PATH=C:\Python35
installer/trik-studio-installer-master-i686-auto.zip
installer/trik-studio-installer-master-i686.exe
trik-studio-master_qt5.12_i686.zip
Environment: QT=5.12, ARCH=64, PYTHON_PATH=C:\Python35-x64
installer/trik-studio-installer-master-x86_64-auto.zip
installer/trik-studio-installer-master-x86_64.exe
trik-studio-master_qt5.12_x86_64.zip


Cannot open bot files with comments

Github issues should be used for bugs and feature requests. Use Stack Overflow for general "how-to" questions.
Version
4.2.1
Describe the bug
Bot Framework Emulator cannot open a bot file which contains comments in the JSON.
To Reproduce
Steps to reproduce the behavior:

I have extended my bot file with sample code from https://docs.microsoft.com/en-us/azure/bot-service/bot-builder-howto-qna?view=azure-bot-service-4.0&tabs=cs, section "Update the .bot file"
I try to open the bot file in Bot Framework emulator
In Bot Framework emulator I geht the notification: "Error while trying to switch to bot: [path to file]"
When I remove the comment from the JSON in the bot file the bot file opens with no issues.

Expected behavior
Bot Framework Emulator should open bot files which have comments in the JSON.
Screenshots
n/a
Additional context
n/a
[bug]

@pkirch  & @brandonh-msft
I was about to open an issue over on the Bot Service Docs repo and found that the same issue was just filed 22 hours ago:
So you can track the status there.


bump Seth dependencies

Below is a summarization created by an LLM (gpt-4-0125-preview). Be mindful of hallucinations and verify accuracy.
Why
The changes update dependencies to newer versions for better stability, performance, and compatibility. Upgrading libraries such as github.com/holiman/uint256, github.com/pelletier/go-toml/v2, github.com/rs/zerolog, github.com/urfave/cli/v2, go.uber.org/ratelimit, and golang.org/x/sync address potential bugs and improvements in those libraries. Additionally, updates in github.com/cpuguy83/go-md2man/v2 and github.com/xrash/smetrics may include security fixes or feature enhancements.
What

seth/go.mod

Updated github.com/holiman/uint256 from v1.2.4 to v1.3.1: Enhances numerical operations handling.
Updated github.com/pelletier/go-toml/v2 from v2.2.2 to v2.2.3: Minor bug fixes or features in TOML parsing.
Updated github.com/rs/zerolog from v1.30.0 to v1.33.0: Improvements in logging capabilities.
Updated github.com/urfave/cli/v2 from v2.25.7 to v2.27.5: New features or fixes in CLI framework.
Updated go.uber.org/ratelimit from v0.3.0 to v0.3.1: Refinements in rate-limiting functionalities.
Updated golang.org/x/sync from v0.7.0 to v0.8.0: Concurrency utilities enhancements.
Updated github.com/cpuguy83/go-md2man/v2 from v2.0.2 to v2.0.5: Improvements in markdown to manpage conversion.
Updated github.com/xrash/smetrics to a newer version: Enhances string metrics computation capabilities.

seth/go.sum

Updated checksums for github.com/holiman/uint256, github.com/pelletier/go-toml/v2, github.com/rs/zerolog, github.com/urfave/cli/v2, go.uber.org/ratelimit, golang.org/x/sync, github.com/cpuguy83/go-md2man/v2, and github.com/xrash/smetrics corresponding to the version updates in go.mod.
Removed checksums for older versions of updated packages, which is a standard cleanup activity post-upgrade.

closed in favour of more general https://github.com/smartcontractkit/chainlink-testing-framework/pull/1241


Last stable version support High Sierra?

Before opening the issue, have you...?

[X] Searched for existing issues

Question
Someone can tell me?

No, it does not (requires Catalina or newer).


Support authentication to private maven repositories (Artifactory)

I tried to use a private Artifactory repository that requires authentication.
I have the appropriate credentials in my ~/.m2/settings.xml, but it looks like the resolver does not reference these credentials. The http request for the artifact gets a 401 unauthorized response.

Hope its not too late but you can use
https://:@
as resolver for private repositories.

Does that imply the credentials would be in in the clear in the generated workspace.bzl? Is there any trick to  pick up the credentials from an external source (.m2/settings.xml would be ideal.)
Thanks!

Maybe we could look in an environmental variable for Auth or ask the user
to enter auth at s prompt?
We use certificates at Stripe so I have not been in this situation.
On Thu, Apr 19, 2018 at 06:41 Warren Strange<EMAIL_ADDRESS>wrote:

Does that imply the credentials would be in in the clear in the generated
workspace.bzl? Is there any trick to pick up the credentials from an
external source (.m2/settings.xml would be ideal.)
Thanks!
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/johnynek/bazel-deps/issues/95#issuecomment-382802685,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAEJduJBdjuuzXZOLwh0aKBRcyWMpzeOks5tqL49gaJpZM4QbHRk
.

--
P. Oscar Boykin, Ph.D. | http://twitter.com/posco | http://pobox.com/~boykin

Hope its not too late but you can use
https://:@
as resolver for private repositories.

This doesn't work either. Even though I can clearly see that url contains username/password:
java.io.IOException: Error downloading<EMAIL_ADDRESS>to /home/myuser/.cache/bazel/_bazel_myuser/4d81720667242c59d08111d8c78d97a8/external/com_google_guava_guava/jar/com_google_guava_guava-sources.jar: GET returned 401 Unauthorized

I've seen just that with our setup; the repo doesn't cope with auth in the url, it really has to go into headers.
I've been using a hack described in https://github.com/bazelbuild/bazel/issues/5452#issuecomment-432739019
TLDR: Flag private repos and fall back to shelling out to mvn & letting it handle authentication for me.
It's not a great approach & not in a form I'd consider floating it as a patch, but it's been good enough to unblock us for now.

I patched the workspace to shell out to curl, but it still requires plaintext password in deps.yml and workspace itself, but at least i'm unblocked.

@diacone Are you open to share your patch? I'm in a similar spot trying to fetch from a password protected Nexus.

@diacone Are you open to share your patch? I'm in a similar spot trying to fetch from a password protected Nexus.

diff --git a/src/scala/com/github/johnynek/bazel_deps/templates/jar_artifact_backend.bzl b/src/scala/com/github/johnynek/bazel_deps/templates/jar_artifact_backend.bzl
index c4bc52f..b8f58fe 100644
--- a/src/scala/com/github/johnynek/bazel_deps/templates/jar_artifact_backend.bzl
+++ b/src/scala/com/github/johnynek/bazel_deps/templates/jar_artifact_backend.bzl
@@ -1,22 +1,14 @@
 def _jar_artifact_impl(ctx):
     jar_name = "%s.jar" % ctx.name
-    ctx.download(
-        output=ctx.path("jar/%s" % jar_name),
-        url=ctx.attr.urls,
-        sha256=ctx.attr.sha256,
-        executable=False
-    )
-    src_name="%s-sources.jar" % ctx.name
-    srcjar_attr=""
+    result = ctx.execute(["curl", ctx.attr.urls[0], "-o", ctx.path("jar/%s" % jar_name), "--create-dirs"])
+    if result.return_code:
+        fail(result.stderr)
+    src_name = "%s-sources.jar" % ctx.name
+    srcjar_attr = ""
     has_sources = len(ctx.attr.src_urls) != 0
     if has_sources:
-        ctx.download(
-            output=ctx.path("jar/%s" % src_name),
-            url=ctx.attr.src_urls,
-            sha256=ctx.attr.src_sha256,
-            executable=False
-        )
-        srcjar_attr ='\n    srcjar = ":%s",' % src_name
+        ctx.execute(["curl", ctx.attr.urls[0], "-o", ctx.path("jar/%s" % src_name), "--create-dirs"])
+        srcjar_attr = '\n    srcjar = ":%s",' % src_name

     build_file_contents = """
 package(default_visibility = ['//visibility:public'])

Thanks a lot @diacone. Just to confirm, this diff is for the "runtime" build part, i.e. when Bazel is downloading dependencies? It does not deal with the "resolution" part, i.e. when bazel-deps is supposed to resolve artifacts from a privat Nexus server which requires authentication?

Thanks a lot @diacone. Just to confirm, this diff is for the "runtime" build part, i.e. when Bazel is downloading dependencies? It does not deal with the "resolution" part, i.e. when bazel-deps is supposed to resolve artifacts from a privat Nexus server which requires authentication?

Yes @guw, this is for the runtime part.

For resolution, I’d rather prompt for a password if a flag is given, since I’d rather not be checking in auth credentials.
I can help you get started on a patch if you like. The first thing to look at would be making an optional flag to ask the user for user/password. Then we can see about passing authentication data to the resolver.

@johnynek Thanks! I'm certainly interested in providing a patch. I'm converting a fairly large legacy project. So far I'm running into issue with Coursier and trying Aether now.
Prompting is not something that's going to work as we need to run this on CI. Ideally, I'd like to re-use authentication information stored in ~/.m2/settings.xml. Bazel's native maven_jar seems to support this ootb. Thus, I was wondering if I can supply a different template which would use native.maven_jar for download.

Interesting that you run resolution on CI. We don’t do that since it is pretty slow.
For downloading on build, you can pretty easily change how resolution works by adjusting the callback .bzl function that processes the resolved artifacts.

See:
https://github.com/johnynek/bazel-deps/blob/6585033409e09028852403ec15ec0c77851234be/3rdparty/workspace.bzl#L188
You can pass any function you want in which can use any method you need to set up the dependencies after resolution.

FYI: Bazel respository_ctx.download currently doesn't support auth.
https://github.com/bazelbuild/bazel/issues/7469

Any progress now that bazelbuild/bazel#7469 is resolved?

FWIW, the issue became less pressing for us since we started using https://github.com/salesforce/bazel-maven-proxy/

Happy to accept a PR, but I am personally not working on this issue.
I'm also happy to answer questions and guide someone through making the PR

Wait a minute! Wasn't this solved by https://github.com/bazeltools/bazel-deps/pull/293 ?

Maybe? I merged the PR I think but actually we don't use that feature so I don't really know.
Sorry it isn't more clear in the docs or that I didn't remember.

I found out that regardless of the version, bazel-deps will successfully download if:

your sbt is configured with credentials and mirrors
your Maven is configured with credentials and mirrors

This means these 3 files require adjustment:

~/.m2/settings.xml - particularly mirrors and servers sections
~/.sbt/repositories - needs to reflect the mirrors section from Maven settings
~/.sbt/credentials.sbt - declare as many as you need, but it works more like a netrc so it's more on a per-hostname basis, not on a per-mirror basis like Maven

I have made this PR with the hopes of fixing this issue: https://github.com/bazeltools/bazel-deps/pull/387
bazel-deps.jar on its own supports credentials for sbt and maven in the usual suspected places. What this PR changes, is that now we can generate code designed for consumption by Bazel, that supports authentication in a broader scope than that described in https://github.com/bazeltools/bazel-deps/pull/293


Remove the "vendor" symlink from the "examples" folder

I know that this symbolic link is very useful to test the examples, but it can be very annoying...
We have a build phase that fetch/update the Composer dependencies and deploy them on a remote server. The problem is that during this phase an output folder is created, and the dependencies are copied into it.
The symbolic link breaks our build phase as it points to an invalid location. Each time the phase is run, we have this error:
cp: /[...]/files/vendor/php-curl-class/php-curl-class/examples/vendor: No such file or directory

Note: our "vendor" directory is not located at the project root, we use a custom location in our composer.json.

Hi Cédric. Can you simply unlink the vendor symlink?
$ unlink php-curl-class/examples/vendor

Yes of course :) Thanks, so easy after all.

We also face this problem, I feel this is not a good practice..

I have created a version that hops every parameter posted and can also
Traverse a file, using the headers as post parameters for the end PHP cURL
URL. Let me know if interested.
On Mar 19, 2016 1:47 AM, "Roy de Kleijn"<EMAIL_ADDRESS>wrote:

We also face this problem, I feel this is not a good practice..
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/php-curl-class/php-curl-class/issues/279#issuecomment-198669294

Proposing to remove the symlink, that should solve things, right?

@Linuxhombre Yes interested. Thank you


POC of transcript support

Fixes #225
Signed-off-by: Matt Stratton<EMAIL_ADDRESS>

I think this works well enough to release; we will just have to put it in the wild and see what it looks like. It doesn't break anything as far as I can tell :)


upcoming outage due to python 3.10 upgrade

kaggle images will soon upgrade to python 3.10, see https://github.com/Kaggle/docker-python/pull/1231
All packages will need to be recompiled after the upgrade goes live.

python 3.10 upgrade is now live on kaggle, see https://kaggle.com/discussions/product-feedback/406256


Remove (migrated) DLPack docs from Data Interchange page

DLPack now has official docs published at: https://dmlc.github.io/dlpack/latest/
dmlc/dlpack#93 migrated the docs added in #106 under the Python Specification of DLPack page. So, these aren't needed anymore. This PR removed the migrated docs and redirects to DLPack's official doc pages.

Thanks for reviewing @leofang!


[5.8] add test for session store

While I was working on the #29410 I found that this test is missing.
For when the session data is not changed but the Id regenerated.
And the system has to save the session data again with the new Id.

Seemingly, Memcache tests are failing for random reasons.


Make the host of AWS Code Commit changeable

Hey, I just made a Pull Request!

As-Is : The catalog:register action does not work when using AWS Code Commit.
In the link below, config.host is forced to console.aws.amazon.com, so, If I set repoContentsUrl to {region}.console.aws.amazon.com in the catalog:register action, No Integration error occurs.
https://github.com/backstage/backstage/blob/master/packages/integration/src/awsCodeCommit/config.ts#L67
Instead, if I remove the region from the url, an error occurs due to the link below.
https://github.com/backstage/backstage/blob/master/packages/backend-common/src/reading/AwsCodeCommitUrlReader.ts#L70
:heavy_check_mark: Checklist

[x] A changeset describing the change and affected packages. (more info)
[ ] Added or updated documentation
[x] Tests for new functionality and regression tests for bug fixes
[ ] Screenshots attached (for UI changes)
[x] All your commits have a Signed-off-by line in the message. (more info)

@Kang3498
I had a fix ready for #24824 for which I had a fix similar to this one which you can view here:
https://github.com/stijnbrouwers/backstage/pull/1
(it's a pull request to my own master branch just for you to have an easy view on my code)
I did the same as you did and allowed the user to be able to set the host manually.
I also introduced a mandatory "region" property to the awsCodeCommit config. This would allow the user to set only a region and the system would determine the correct host URL from that.
Since I require the region, I am not adding a default entry in readAwsCodeCommitIntegrationConfigs This prevents the scenario where, for example, we default to region "us-east-1" and the user would get a message like "no integration found for url...". In this scenario, they might not really knows what's going on without having to debug the code...

@stijnbrouwers
That's a good suggestion. If you create a new PR with that suggestion, I will close this PR.

@Kang3498
I just created the PR #24843
Feel free to tag me in the future when you find an issue regarding AWS CodeCommit integration. Should I have the time, I will definitely take a look.

This will be replaced with the PR https://github.com/backstage/backstage/pull/24843

I decided to reopen this PR.
There is a problem with the PR I was trying to replace, and it is expected to take some time.
The project currently working on with Code Commit is not working at all.

@freben I want this PR to be reviewed. Code Commit is still not working in the current version. I hope it merges into the next version quickly.
It looks like the PR (#24843) that was being replaced will take some time to be resolved.

Since that PR has been merged, I will close this PR.


1.9.4-<IP_ADDRESS> Digital miner not working.

The digital mine seem to not be scanning blocks at all in this version and thus shows no blocks to mine. Link to video here to make sure it isn't just me not doing it right https://www.youtube.com/watch?v=qa9JGNiS6V4 . Tested with only Mekanism	<IP_ADDRESS>, MCMultiPart experimental 1.2.0_73 and forge <IP_ADDRESS>7 on a fresh install.

Fixed!

@aidancbrady How was it fixed?


move task under app and add task to raft store

Current coverage is 42.76% (diff: 31.91%)

Merging #62 into master will decrease coverage by 0.52%

@@             master        #62   diff @@
==========================================
  Files            33         33
  Lines          9864      10144   +280
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits           4270       4338    +68
- Misses         4597       4792   +195
- Partials        997       1014    +17

Powered by Codecov. Last update 42d7838...875d912

LGTM


Add matplotlib installer

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 100.00%. Comparing base (80abfe9) to head (aec571d).

Additional details and impacted files
@@            Coverage Diff            @@
##              main      #140   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            4         4
  Lines           95        98    +3
  Branches         9         9
=========================================
+ Hits            95        98    +3

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Gremlin query returns error but response message doesn't showing

gremconnect\response.go
line no: 60 //resp.Data = err // Use the Data field as a vehicle for the error.
Let take a example: Try to execute query "ExecuteStringQuery" which possibly returns "Edge is already exists" at the Gremlin Server but it is not handled properly in response []byte
Suggestion:
resp.Data = message // Changes to handle error messages.

Hello,
I apologize for the late response. Are you proposing that grammes should handle errors that do not correspond to documented error codes from the Gremlin server?
From how I'm reading this it seems you'd like this response to be handled as an error, but is just a warning of sorts.
I'm reading: http://tinkerpop.apache.org/javadocs/3.2.4/full/index.html?org/apache/tinkerpop/gremlin/driver/message/ResponseStatusCode.html
for all the error codes that are handled by the client.

After re-reading I believe what you are informing me about is that the error message isn't inherently available using just the grammes client.
https://github.com/northwesternmutual/grammes/blob/5585b5a7cc9d39f14445123d8d8bcd224d4e668f/response.go#L53
In this file you can see any error messages are returned into the errs channel which is accessible via the grammes concurrent error handling channel when setting up the client.
I apologize for not providing an example in the examples/ directory. I must've deleted it at some point when cleaning up the repo. I'll re-add it in there. For now I will just provide one...
What I suggest doing is:
func main() {
    // Create an error channel to handle all error handling concurrently.
    errs := make(chan error)
    go func(chan error) {
        err := <-errs
        fmt.Printf("error with grammes client: %v\n", err)
    }(errs)

    // Use the WithErrorChannel ClientConfiguration to use the errors channel.
    _, err := grammes.DialWithWebSocket("ws://<IP_ADDRESS>:8182", grammes.WithErrorChannel(errs))

    // ...more code
}

Hope this helps.


generateImageID causes tests to fail on CI

When running tests using vitest the generateImageID is causing problems because it returns a different value when running in different environments.
function generateImageID(url, config) {
    const baseURL = url.host ? new URL(url.origin + url.pathname) : new URL(url.protocol + url.pathname);
    return createHash('sha1').update(baseURL.href).update(JSON.stringify(config)).digest('hex');
}

Local images imported in my files get different IDs when running tests locally to when running them on CI because the pathname used in new URL(url.protocol + url.pathname) is different.
For instance if I am importing the image @lib/images/example.png then url.pathname when running tests locally might be Users/my_username/repositories/my_project/src/lib/images/example.png. But when running on CI it might be /home/runner/work/my_project/src/lib/images/example.png.
The different paths result in different IDs, meaning that tests which check the image src pass when running locally but then fail on CI.

Today I used patch-package to patch<EMAIL_ADDRESS>for the project I'm working on.
Here is the diff that solved my problem:
diff --git a/node_modules/imagetools-core/dist/index.js b/node_modules/imagetools-core/dist/index.js
index 4bace58..e823bab 100644
--- a/node_modules/imagetools-core/dist/index.js
+++ b/node_modules/imagetools-core/dist/index.js
@@ -1,5 +1,6 @@
 import { createHash } from 'node:crypto';
 import sharp from 'sharp';
+import path from 'path'

 const METADATA = Symbol('image metadata');
 function setMetadata(image, key, value) {
@@ -464,7 +465,7 @@ function loadImage(path) {
     return sharp(path);
 }
 function generateImageID(url, config) {
-    const baseURL = url.host ? new URL(url.origin + url.pathname) : new URL(url.protocol + url.pathname);
+    const baseURL = url.host ? new URL(url.origin + url.pathname) : new URL(url.protocol + path.relative(process.cwd(), url.pathname));
     return createHash('sha1').update(baseURL.href).update(JSON.stringify(config)).digest('hex');
 }

This issue body was partially generated by patch-package.

Feel free to open a PR with this 👍🏻 it seems like its solving a genuine issue in a good way

https://github.com/JonasKruckenberg/imagetools/pull/605


[Phone number verify] Is it mandatory to implement both hashedPhoneNumber and plain text phoneNumber?

Problem description
The NumberVerificationRequestBody can accept one of phoneNumber or hashedPhoneNumber. Is it mandatory for API implementations to support both?
For example, could an implementation only support hashedPhoneNumber?
Expected action
Clarify the documentation with more definitive language. We have encountered at least one operator who interpreted the specification as only requiring support for one of the options.

I'm with @bigludo7 here. In TEF we support both and we should promote full implementation of the APIs

In the following discussion: 158, simple SHA-256 is used.
The phoneNumber is a fixed length pattern: '^+[1-9][0-9]{4,14}$'
In Singapore, there is a numbering plan governed by the regulators, where the Singapore mobile numbers are allocated the following ranges (prefixed with country code for completeness, 8-digit phone number):

+659xxxxxxx
+658xxxxxxx

Based on the above ranges and using simple SHA-256, a rainbow table can be generated to "decode" and determine the actual phone number.

This does not give us any benefit to implement hashing

This was discussed before in the context of simplifying the hashing requirements. It was generally agreed that hashing these days provides no real privacy benefit from a determined hacker, but as removing the hashing option completely was not the purpose of that issue, that was never progressed.
As long as the hashing option exists, there is an expectation that it is supported. From a privacy point of view, it is still preferred as it prevents casual inspection of any HTTP logs (e.g. inside the organisation). This is a minor benefit, but a benefit nonetheless.

In the following discussion: 158, simple SHA-256 is used.
The phoneNumber is a fixed length pattern: '^+[1-9][0-9]{4,14}$' In Singapore, there is a numbering plan governed by the regulators, where the Singapore mobile numbers are allocated the following ranges (prefixed with country code for completeness, 8-digit phone number):
* +659xxxxxxx

* +658xxxxxxx

Based on the above ranges and using simple SHA-256, a rainbow table can be generated to "decode" and determine the actual phone number.
This does not give us any benefit to implement hashing.

The usual answer to rainbow table is to include a salt.
hashedPhoneNumber = salt:HASH(salt | phoneNumber)
The enduser enters their phoneNumber into the API consumers mobile application (acma): +659012345
// The mobile application gets an operator token using sim-based authentication
The acma create a random salt: 0qnMSnqgiuQZJmuaGINEDltEq1M0ion2
The acma computes the hash: b23c5ac457e289880548fe9eed7c09e9689b349152a59d8e67ad08bb131f657d = SHA256(0qnMSnqgiuQZJmuaGINEDltEq1M0ion2+659012345)
The acma sends the NumberVerification request with hashedPhoneNumber =
0qnMSnqgiuQZJmuaGINEDltEq1M0ion2:b23c5ac457e289880548fe9eed7c09e9689b349152a59d8e67ad08bb131f657d
The MNO splits hashedPhoneNumber at ':' and gets

salt = 0qnMSnqgiuQZJmuaGINEDltEq1M0ion2
hash = b23c5ac457e289880548fe9eed7c09e9689b349152a59d8e67ad08bb131f657d
The MNO knows the MSISDN of the requesting device: +659012345
The MNO computes b23c5ac457e289880548fe9eed7c09e9689b349152a59d8e67ad08bb131f657d = SHA256(0qnMSnqgiuQZJmuaGINEDltEq1M0ion2+659012345)
The MNO compares the input hashedPhoneNumber to the computed hash and returns the result.

Computing rainbow tables now does not make sense because the random salt is always different.


Space supporter receives a 403 for v3/deployments/:guid

This PR allows space supporters to receive a 403 instead of a 404 when submitting PATCH requests to the v3/deployments/:guid endpoint.
Closes #2399
Co-authored-by: Matthew Kocher<EMAIL_ADDRESS>Co-authored-by: Galen Hammond<EMAIL_ADDRESS>

[x] I have reviewed the contributing guide

[x] I have viewed, signed, and submitted the Contributor License Agreement

[x] I have made this pull request to the main branch

[x] I have run all the unit tests using bundle exec rake

[ ] I have run CF Acceptance Tests

Setup
Ran cf push --strategy rolling from the cf-acceptance-tests dora app as admin. Logged in as space supporter.
Behavior
Running cf curl -X PATCH v3/deployments/$(cf app dora --guid)
returns
{
"errors": [
{
"detail": "You are not authorized to perform the requested action",
"title": "CF-NotAuthorized",
"code": 10003
}
]
}
as expected.
Code Check
Looks like one minor spacing issue tripped up rubocop. We should be able to fix this before merging it in on our end.


iamidentitymappings.iamauthenticator.k8s.aws resources appears in kubectl get all command

When running kubectl -n <namespace> get all command. We can see that all iamidentitymappings.iamauthenticator.k8s.aws resources appears event if those resources are not namespaced.
NAME                                                                                AGE
iamidentitymapping.iamauthenticator.k8s.aws/circleci-kubernetes-deployer-xxx                            166d
iamidentitymapping.iamauthenticator.k8s.aws/circleci-kubernetes-deployer-abc                            166d
iamidentitymapping.iamauthenticator.k8s.aws/circleci-kubernetes-deployer-123                            166d
iamidentitymapping.iamauthenticator.k8s.aws/circleci-kubernetes-deployer-456                            166d

@mbelang AFAIK that's not specific to this project, this is how kubectl respectively the Kubernetes API works, if asked to list cluster scoped resources it will do so even if you provide a namespace (by virtue of -n ...). Here another example:
 kubectl -n xxx get nodes
NAME                                                     STATUS   ROLES    AGE     VERSION
ip-10-176-0-50.eu-central-1.compute.internal             Ready    <none>   33h     v1.28.4-eks-d91a302
ip-10-176-1-174.eu-central-1.compute.internal            Ready    <none>   33h     v1.28.4-eks-d91a302
ip-10-176-10-129.eu-central-1.compute.internal           Ready    <none>   32h     v1.28.4-eks-d91a302


Update site config and app setting APIs to be LRO

Pull Request
For Centauri, the Microsoft.Web backend makes calls to the Microsoft.App RP, and we end up with long running operations. As such, we need to make adjustments to categorize those API calls as long running operations.
API Info: The Basics
Most of the information about your service should be captured in the issue that serves as your engagement record.

Link to engagement record issue:

Is this review for (select one):

[ ] a private preview
[x] a public preview
[ ] GA release

❔Got questions? Need additional info?? We are here to help!

 Contact us!
The Azure API Review Board is dedicated to helping you create amazing APIs. You can read about our mission and learn more about our process on our wiki.

💬 Teams Channel
💌 email

Click here for links to tools, specs, guidelines & other good stuff
Tooling

Open API validation tools were run on this PR. Go here to see how to fix errors
Spectral Linting
Open API Hub

Guidelines & Specifications

Azure REST API Guidelines
OpenAPI Style Guidelines
Azure Breaking Change Policy

Helpful Links

Azure DevTools Wiki

Hi team! We have three follow-up questions:

For regular function apps, the PUT request will still return a 200 but for Centauri function apps, the PUT request will return a 202. Do my PR changes correctly update the json to support both sync and async versions of the API?
Do my PR changes correctly update the json to ensure that the polling logic (LROPoller) would be added in the Python SDK?
When will this api version be released?

For (1), I think SDK should be able to handle the case of a hybrid of LRO and non-LRO (I am mostly sure about Java).
I will loop in devs from other SDKs to double check.
Though I am not sure what's special about Centauri that needs an LRO?

Thank you for your response @weidongxu-microsoft. For Centauri (function apps deployed in managed container app environments), the Microsoft.Web RP needs to make API calls to the Microsoft.App RP, which performs actions asynchronously. This is why Centauri needs LRO.

Waiting for backend team to confirm if the "name" attribute under the "properties" attribute is necessary when creating Centauri function apps (as this is redundant with the PUT request URI)

d be able to handle the case of a hybrid of LRO and non-LRO (I am mostly sure about Java).

It looks fine for Python.

Hi @kamperiadis, one or multiple breaking change(s) is detected in your PR. Please check out the breaking change(s), and provide business justification in the PR comment and @ PR assignee why you must have these change(s), and how external customer impact can be mitigated. Please ensure to follow breaking change policy to request breaking change review and approval before proceeding swagger PR review. Action: To initiate an evaluation of the breaking change, create a new intake using the template for breaking changes. Addition details on the process and office hours are on the Breaking change Wiki. If you want to know the production traffic statistic, please see ARM Traffic statistic. If you think it is false positive breaking change, please provide the reasons in the PR comment, report to Swagger Tooling Team via https://aka.ms/swaggerfeedback. Note: To avoid breaking change, you can refer to Shift Left Solution for detecting breaking change in early phase at your service code repository.

Hi, is there breaking changes in this PR? If so please get them approved and come back for ARM review

Thanks & Go ahead please.

Thanks & Go ahead please.


add missing conversion for non-aws machine pool platforms

The azure and gcp platform-specific machine pool information was not being converted into the install config.

This requires #556 to add the GCP field to the machine pool platform.
/hold

#556 merged.
/hold cancel

/retest

/lgtm


Unable to change icon

Can you explain how can I change the icons?

https://fontawesome.com/v4.7.0/cheatsheet/