dart2wasm fails with complex yield statements

Error:
Target dart2wasm failed: ProcessException: Process exited abnormally with exit code 64:
*NOTE*: Compilation to WasmGC is experimental.
The support may change, or be removed, with no advance notice.

Steps to reproduce:

Create example Flutter app
Copy example main.dart from below
Install stream_transform: 2.1.0
Run flutter build web --wasm

Example App

import 'package:flutter/material.dart';
import 'package:stream_transform/stream_transform.dart';

void main() {
  runApp(const MyApp());
}

class GetUser {
  GetUser();

  Stream<String?> call() => Stream.value('user-a');
}

class Presentation {
  const Presentation({
    required this.id,
    required this.name,
    required this.components,
  });

  final String id;
  final String name;
  final List<String> components;
}

class ContentRepo {
  Stream<Presentation> getPresentation(
    String? user,
    String presentationId,
  ) async* {
    yield const Presentation(
      id: 'presentation-1',
      name: 'Example presentation',
      components: [
        'The content of the presentation',
        'some content',
        'End of content',
      ],
    );
  }
}

enum _State {
  loading,
  content,
}

class _LoadingValue {
  _LoadingValue(this.list, this.state);

  final List<String>? list;
  final _State state;
}

class GetPresentation {
  GetPresentation(this._repo, this._getUser);

  final ContentRepo _repo;
  final GetUser _getUser;

  Stream<Presentation> call({
    required String presentationId,
  }) async* {
    final user = await _getUser().first;
    yield* _repo.getPresentation(user, presentationId);
  }
}

class GetSummaryOfTopics {
  GetSummaryOfTopics(this._getUser, this._getTopicPresentation);

  final GetUser _getUser;
  final GetPresentation _getTopicPresentation;

  Stream<List<String>> call({
    required List<String> presentationIds,
  }) async* {
    final user = await _getUser().first;

    final topicsPresentationComponentsStreams = presentationIds
        .map((presentationId) {
          if (presentationId != null) {
            return _getTopicPresentation(
              presentationId: presentationId,
            )
                .map((presentation) {
                  return [
                    if (presentation.components.isNotEmpty) presentationId,
                    ...presentation.components,
                  ];
                })
                .map((list) => _LoadingValue(list, _State.content))
                .startWith(_LoadingValue(null, _State.loading));
          } else {
            return Stream.value(_LoadingValue([], _State.content));
          }
        })
        .map((stream) => stream.asBroadcastStream())
        .toList();

    // No content in content topics.
    if (topicsPresentationComponentsStreams.isEmpty) {
      yield <String>[];
    } else {
      final remainingStreams = topicsPresentationComponentsStreams.length > 1
          ? topicsPresentationComponentsStreams.sublist(1)
          : <Stream<_LoadingValue>>[];

      final combinedComponentsStream = topicsPresentationComponentsStreams.first
          .combineLatestAll(remainingStreams);

      final combinedFolded =
          combinedComponentsStream.asyncExpand((list) async* {
        if (list.any((element) => element.state == _State.content)) {
          final contentElements = list
              .map((e) => e.list ?? [])
              .fold<List<String>>([],
                  (previousValue, element) => [...previousValue, ...element]);
          yield contentElements;
        }
      });

      yield* combinedFolded;
    }
  }
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    GetSummaryOfTopics(
      GetUser(),
      GetPresentation(ContentRepo(), GetUser()),
    )(
      presentationIds: ['presentation-a', 'presentation-b'],
    ).listen((data) {
      print(data);
    });
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const Placeholder(),
    );
  }
}

Environment
flutter doctor -v

[✓] Flutter (Channel main, 3.22.0-5.0.pre.54, on macOS 14.3 23D56 darwin-arm64, locale en-DE)
    • Flutter version 3.22.0-5.0.pre.54 on channel main at /Users/dennis/develop/bin/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 98d23f709f (15 hours ago), 2024-04-06 14:51:23 -0700
    • Engine revision 605b3f35fa
    • Dart version 3.5.0 (build 3.5.0-18.0.dev)
    • DevTools version 2.34.1

[!] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
    • Android SDK at /Users/dennis/Library/Android/sdk
    ✗ cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for more details.

[✓] Xcode - develop for iOS and macOS (Xcode 15.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15E204a
    • CocoaPods version 1.14.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2023.2)
    • Android Studio at /Users/dennis/Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.9+0-17.0.9b1087.7-11185874)

[✓] IntelliJ IDEA Ultimate Edition (version 2023.2.1)
    • IntelliJ at /Users/dennis/Applications/IntelliJ IDEA Ultimate.app
    • Flutter plugin version 76.3.4
    • Dart plugin version 232.9559.10

[✓] VS Code (version 1.85.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension can be installed from:
      🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] Connected device (3 available)
    • macOS (desktop)                 • macos                 • darwin-arm64   • macOS 14.3 23D56 darwin-arm64
    • Mac Designed for iPad (desktop) • mac-designed-for-ipad • darwin         • macOS 14.3 23D56 darwin-arm64
    • Chrome (web)                    • chrome                • web-javascript • Google Chrome 123.0.6312.107

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.

dart info

If providing this information as part of reporting a bug, please review the information
below to ensure it only contains things you're comfortable posting publicly.

#### General info

- Dart 3.5.0-18.0.dev (dev) (Wed Apr 3 13:07:15 2024 -0700) on "macos_arm64"
- on macos / Version 14.3 (Build 23D56)
- locale is en-DE

#### Process info

| Memory |  CPU | Elapsed time | Command line                                                                               |
| -----: | ---: | -----------: | ------------------------------------------------------------------------------------------ |
|  27 MB | 0.0% |        10:03 | dart language-server --client-id=IntelliJ-IDEA --client-version=IU-232.9559.62 --protocol=analyzer |
|  45 MB | 0.0% |        05:20 | dart language-server --client-id=IntelliJ-IDEA --client-version=IU-232.9559.62 --protocol=analyzer |
|  35 MB | 0.0% |        17:08 | flutter_tools.snapshot daemon                                                              |
|  39 MB | 0.0% |        05:21 | flutter_tools.snapshot daemon                                                              |

Smaller repro:
Stream<List<String>> stream() async* {
  yield ['a', 'b'];
}

Stream<List<String>> test() async* {
  final combinedFolded = stream().asyncExpand((list) async* {
    yield list;
  });

  yield* combinedFolded;
}

void main() async {
  print(await test().toList());
}

While trying to minimize the repro I also managed to come up with a version that crashes in runtime:
Stream<List<String>> stream() async* {
  yield ['a', 'b'];
}

Stream<List<String>> test() async* {
  yield* stream();
}

void main() async {
  print(await test().toList());
}

Output:
wasm-function[302]:0xe42e: RuntimeError: illegal cast
RuntimeError: illegal cast
    at StringBase._concatRangeFallback (wasm://wasm/00097e82:wasm-function[302]:0xe42e)
    at StringBase.concatRange (wasm://wasm/00097e82:wasm-function[299]:0xe372)
    at StringBuffer.toString (wasm://wasm/00097e82:wasm-function[287]:0xdf94)
    at Iterable.iterableToFullString (wasm://wasm/00097e82:wasm-function[323]:0xeb4d)
    at ListBase.listToString (wasm://wasm/00097e82:wasm-function[322]:0xea8a)
    at ListBase.toString (wasm://wasm/00097e82:wasm-function[308]:0xe6d8)
    at JSStringImpl._interpolate (wasm://wasm/00097e82:wasm-function[226]:0xd2d0)
    at StringBuffer.write (wasm://wasm/00097e82:wasm-function[290]:0xe003)
    at StringBuffer.writeAll (wasm://wasm/00097e82:wasm-function[327]:0xec99)
    at Iterable.iterableToFullString (wasm://wasm/00097e82:wasm-function[323]:0xeae8)

They're probably the same bug, just causing different kinds of crashes.

Fix in https://dart-review.googlesource.com/c/sdk/+/361600.


Add secret for slack release channel webhook.

I'm using a slack webhook to send updates about out of date versions and
we would like to send this to the release channel. We don't currently
have a webhook for the release channel. I've added the parameter into
SSM manually and this will add it into the Jenkins instance.
We don't need this for prod Jenkins as the job will only run on the
integration Jenkins.

How does Jenkins post release announcements to the release channel if it doesn't have this permission already?

It uses the slackSend plugin. I'm not 100% sure how that authenticates but it can send to any channel I think. I could return the json which the python script generates, parse it into a groovy object and then send it to the slackSend plugin but it just seemed a bit neater this way.


criminal records revival

About the PR
revival of criminal records pr
also changes a bunch of stuff internally
in the future i also want to have crime history as a thing also ninja hacking it in a separate pr
Why / Balance
good
Technical details
changed a few details of records:

most things no longer store the station entity and thus dont need to convert anymore
things like station records console used to store the station entity for each record when its always the same station, so they now just store the record id
id card computer edits the records of the id's origin station, not the current station which may or may not have the key /!\ this wouldve resulted in editing the wrong record i think, now thats fixed
changed evil HasAccess from old implementation to just have clients check access
bunch of refactoring

still needs more review especially on ui, not sure how to do some of the things (couldnt find an example of putting the option button's items in the xaml but idk)
also need to thoroughly test misc changes to make sure they are robust
also need to deduplicate the general records displaying god damn it just copy pasta
Media
bad egg

console on shittle tries to use the shittle for records (which dont exist)
this means if you have multiple stations the console for each station uses its own records properly

also emagging works and lets anyone modify the records

[ ] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Breaking changes
station records api changed to accept StationRecordKey for most methods that previously took EntityUid station, StationRecordKey key (which duplicated the station id)
Changelog
:cl: ficcialfaint, deltanedas

add: Added functionality to criminal records computers.

This is it. 🥇

pro

god bless deltanedas
when will we have arrest status icons?

wyci bozo!!!!!!!!!!!
probably in separate pr like ninja hacker

this should also be on security PDAs but later pr pro

then theres no reason to use console ever

this should also be on security PDAs but later pr pro

readonly from pda, but edit only on puter

Will this show what character's look like when you're checking each person's records?

officer beepsky when

Will this show what character's look like when you're checking each person's records?

no but if i can do it i will replace the general records copypaste with that
maybe the lobby thing will Just Work

This would make me want to play security again

Will this show what character's look like when you're checking each person's records?

no but if i can do it i will replace the general records copypaste with that
maybe the lobby thing will Just Work

I'd recommend checking out whatever the code is for round-end where it shows everyone's character and what they're currently wearing.

will be fixing them next week im going trolling :trollface:

Probably could do with adding times to arrests and creation of records, but is otherwise good

saving isnt possible due to station entity not being saved, but ill try make vv good

@AJCM-git made it a bit less shit

@AJCM-git made it a bit less shit

does it blow up when saving with a record entry or when saving with the default console spawned

didnt blow up it just doesnt save added records since station isnt saved

input box window

@AJCM-git do you mean admin QuickDialog this seems to only be usable from the server, i want to have the client make the dialog on its own and only send a message to server when its ready to change status with the reason, rather than "i want to set to wanted pls tell me to open a dialog"

input box window

@AJCM-git do you mean admin QuickDialog this seems to only be usable from the server, i want to have the client make the dialog on its own and only send a message to server when its ready to change status with the reason, rather than "i want to set to wanted pls tell me to open a dialog"
is there a suitable system already or should i just make my own thing
(currently im using vv to set wanted reason :trollface:)

Is there really not a single thing that makes a simple text box pop up rn apart from the admin thingie? I'm looking at quick dialog and it's completely out of date and awful so what i would consider acceptable for this PR is either make the hardcoded quick dialog control in QuickDialogSystem not hardcoded and then make the criminal records spawn one of those (tho a proper refactor would prob be way cleaner) or instead of spawning a window , just adding/removing a text box control when clicking the button will do for now

fuck it we unearth BYOND level shitcode

beepsky when

wyci bozo

Deltanedas is our hero!

Deltanedas is our hero!

Three cheers for Deltanedas! HIP HIP, HOORAY!


Remove GC Concurrency limits across worker pool

smaller change for now is to remove guardrails from job runner
but keep its worker sync-ing to keep the list of running workers
up to date.
Worker Pool just calls Worker Provider to get the list of running
workers, so it can be simplified if we use Worker Provider directly
instead.

thanks!


Improving retrying message

We're currently showing a warning saying "Failed" for stuff
that will be retried, it makes more sense to be more explicit
and say "Retrying" (even if it ends up not retrying because it
reached the retry limit).
Sadly we can't be more precise because retrying library doesn't offer more context yet.

LGTM. Can't merge anymore :-)

@bbotella fixed that, can you try now?


Closes #295: Tokens Replacement Logic, Tests + New Function to Support Local Module Testing

Closes #295
Change

Validate and Deploy Test Modules now support Principal IDs, Tenant IDs, and Management Group IDs.

        $TokensReplaceWithObject = @(
            @{ Replace = "<<tenantId>>"; With = '${{ env.ARM_TENANT_ID }}' }
            @{ Replace = "<<subscriptionId>>"; With = '${{ env.ARM_SUBSCRIPTION_ID }}' }
            @{ Replace = "<<managementGroupId>>"; With = '${{ env.ARM_MGMTGROUP_ID }}' }
            @{ Replace = "<<principalId>>"; With = '${{ env.ARM_PRINCIPAL_ID }}' }
        )

Introduced a new Test Module Locally Script. This allows performing Pester Testing, Token Replacement, Token Deployment, Token restore. Which in return enables complete local tests of Modules without having to manually replace tokens. See documentation Updates that provides guidance on how to use it.

Parameter Files have been modified to have a tokens instead. Example

        "principalId": {
            "value": "<<principalId>>"
        },
        "subscriptionId": {
            "value": "<<subscriptionId>>"
        }

Modules Actions update to support new Environment Variables which are coming in as Secrets. Example

  ARM_PRINCIPAL_ID: ${{ secrets.ARM_PRINCIPAL_ID }}
  ARM_TENANT_ID: ${{ secrets.ARM_TENANT_ID }}

Fix for Microsoft.DesktopVirtualization/applicationGroupsResources/applications where location parameter is not in the original template. This is questionable if the actual module needs to be modified to support location???

Documentation Update for the Testing Usage to support the new testing script.

Validation of 4 Checks for the Parameter Files
   [+] [Microsoft.Authorization/roleAssignments] Parameter files should not contain the subscriptionId guid 18ms (15ms|3ms)
   [+] [Microsoft.Authorization/roleAssignments] Parameter files should not contain the Management Group Value 11ms (9ms|2ms)
   [+] [Microsoft.Authorization/roleAssignments] Parameter files should not contain the Principal ID guid 39ms (37ms|3ms)
   [+] [Microsoft.Authorization/roleAssignments] Parameter files should not contain Tenant ID guid 29ms (26ms|3ms)

Type of Change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update (Wiki)

Checklist

[ ] I'm sure there are no other open Pull Requests for the same update/change
[ ] My corresponding pipelines / checks run clean and green without any errors or warnings
[ ] My code follows the style guidelines of this project
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation (readme)
[ ] I did format my code

Discussion Points and Guidance:

Can Secrets only be fetched from the 'workflows' and not 'actions'? Implications is that we need to update all 'workflows' to fetch new secrets (i.e. principalId, tenantId)
Microsoft.ManagedServices\registrationDefinitions require a parameter managedByTenantId. Which we can replace with the current tenant ID. But that's not the same tenant

        "managedByTenantId": {
            "value": "195ee85d-2f10-4764-8352-a3c99aa772fb"
        },

Dependency Pipeline Support for Token Replacement? It uses objectId which is the same as principal Id. But we still need a logic to support this scenario

Limitations for the Local Tests

Secret Identifier. This is also hardcoded. Visible in the Application Gateway
Key Vault Reference is also referencing hardcoded vault names, which customers won't be able to test without having to explicitly modify
Resources that require unique name across Azure must be modified locally, and the dependencies associated to it.

Need to also address scenario for the Management Group Bicep Module:
"managementGroupName": {
            "value": "Test MG"
        },
        "managementGroupId": {
            "value": "testMG"
        },
        "parentId": {
            "value": "testMG2"
        },

This example contains two management groups.


add contextualize back to the parser

This would fix https://github.com/yahoo/context-parser/issues/5.

CLA is valid!


[Feature Request] Force using C2C'S re-recorded voices for 2SP / Allow selecting girl's voices freely in any mode

For example, force using C2C Clarissa's voice for 2SP rather than the original one.

You mean the voice that shouts "OutRun Mode!", "Automatic Transmission!", "Magical Sound Shower!" and things like that?

You mean the voice that shouts "OutRun Mode!", "Automatic Transmission!", "Magical Sound Shower!" and things like that?
This reminds me of issue #14 where the announcer is mute in the OutRun2SP selection screens when using foreign languages for whatever reason.

Not the menu selection as these are not present in C2C.
It's the "Checkpoint" sound and "I wanna go far away“ etc.
Also, the Mission Information for heart attack mode. (i.e. Keep passing cars!)

That'd be an interesting feature. For now I guess we can swap out the audio files and have it as a mod.


Add stream_response option to hackney adapter

Playing around with streaming responses (#271).
Only implemented for hackney here.

Amazing! Let's get the response streaming become a thing 👍

👍  for this!

@tim-smart @teamon anything I can do to get this over the finish line?  This would allow me to  remove a dependency on Downstream from my app.

Do you need any help with this? I would also want to help to get this through the finish line.

I'll add my voice to the "I'd love to see this feature merged, can I help?" crowd!

Added some changes to improve the API surface.

Added response to the Env struct. Defaults to :default, but also has a :stream option
Added __pid__ to Env, for capturing the pid of the requestor process
Added stream_owner to the hackney adapter options, which defaults to __pid__ from the Env

New API example:
{:ok, %Env{body: stream}} = Tesla.get("https://google.com", response: :stream)

# Use the response stream
data = Enum.join(stream)

Maybe leaving this as an adapter option is better, as it will not be implemented for every adapter.

Hey @teamon I used this as a base for a version that is adapter option driver: https://github.com/connorjacobsen/tesla/tree/hackney-response-streaming
I would love to be able to use hackney to stream responses like you and Tim have detailed here. Is there anything I can do to help make that happen? Happy to take a stab at some more code as needed, would just want some direction from you so it fits with where you want to guide the library.

@tim-smart @yordis is there anything I can do to help with this PR? Or the fork I linked above? tesla is a fantastic library and I would love to be able to contribute a little something back to it if it's helpful!

@connorjacobsen, by all means, please take the lead.
In the worst case, @tim-smart solved it differently, and we commit to one of the solutions, and you get to learn about Tesla internals; from my perspective, still a huge win.
In the best case, we fix the issue.
I am unfamiliar with hackney, but I can help to some extent.

@yordis I am equally happy with either solution. I basically just took @tim-smart's comment and riffed on it in a way that kept mostly everything isolated to the Hackney adapter itself rather than adding the response field to the core Tesla.Env struct.
So I guess my question for you + others is: do you want to isolate this to the Hackney adapter or should we go down a more generalized path adding streaming for all adapters (all seem to support streaming responses). If the latter, do we want to pursue that one-by-one or all at once? Do you have a preference?
As a meta question: is this the right place to discuss this? Is there somewhere better?

Ideally, we add streaming to all adapters.
About one-by-one vs. all at once. If you are giving it a try, I rather you do a big PR where you experiment and find a path forward that works for the official adapters, and if we need to, we split the PR into smaller ones if they are too big.
My worry is to merge something that prevents me from releasing a version, or something broken or error-prune.

There is also this PR https://github.com/elixir-tesla/tesla/pull/540 that implements streaming for Finch.
I’d say we go with the response: :stream opt and implement each adapter separately.

Either way is fine by me

Any progress on this?

Is there a branch that best embodies an approach that is likely to be merged that can be collaborated on and/or is there a way we can put a bounty on this?

@feld I haven't used Hackney for years by now, so I wouldn't consider myself qualified to have strong professional judgment.
I would appreciate it if folks test it and share your code review.


Emulator usage docs don't call out /api/messages as endpoint for the bot

With IBot implementation abstracting away the endpoint registration, it's not immediately obvious what endpoint the bot is listening on. Browser will launch (depending on Project configuration) to root location, not /api/messages, so a user trying to utilize the emulator won't know to add /api/messages on the end; this should be part of docs for using the emulator.

Yeah and the READMEs and/or default.htm in the samples should probably call this out too.

@brandonh-msft @drub0y - updated instructions in the getting started to include /api/messages part.


fix(InputWrapper): isValid prop to map variant

resolves: #731
Only isValid prop should decide the variant of the input field. (error or not)

The title of the PR is what gets put in the changelog that our end-users read. Suggest changing this to something on how this affects them?
Maybe something like "fix(InputWrapper): isValid works now independent of characterLimit validation"


Initial project build support - consuming projections

requires opt-in by setting CsWinRTFilters or CsWinRTParams (CsWinRTInput is optional, defaulting to all referenced winmds)
provides protection for unintentional winmd references, which can break builds, unit test runs, etc

this requires a clean rebuild of generated sources:

for /f "delims=" %i in ('dir "generated files" /s /b') do @rd /s/q "%i"

@manodasanW the component support is coming - anything to add at this point?

Why don't the project files need to include nuget/Microsoft.Windows.CsWinRT.targets file? If I am understanding correctly, the targets that were repeated thru-out these project files live in that targets file now.

They do include it, via the root directory.build.targets

@manodasanW the component support is coming - anything to add at this point?

Do we want to add copying on winrt.host binary along with winmd or should we do it as part of a future PR?

@manodasanW the component support is coming - anything to add at this point?

Do we want to add copying on winrt.host binary along with winmd or should we do it as part of a future PR?

Let's settle authoring support in the spec, and then I'll implement in a separate PR


Added features

Added embedding feature for image grid and image slider
Added documentation on how to use TmVis for new users
Added instructions for timeline feature
Added load animation on the GIF page

Thanks @ibnesayeed! I updated rest of the file.


[Communication] - All Communication SDKs - Consolidate Recorded Test Sanitizers

There was a lot of duplicated code between the recorded test sanitizers for administration, chat, and sms SDKs.
This PR creates a centralized sanitizer and cleans up the duplicate sanitization logic.

This makes sense overall, the fact that you are establishing a CommunicationRecordedTestSanitizer makes sense but I don't get why you are not inheriting everything from it .. for instance chat directly inherits from RecordedTestSanitizer which kind of undermines the importance of this abstraction.. if the current common sanitizer has more methods then what chat needs then ideally we should prune it down to the absolute common ones and override the additional stuff in the individual sanitizers.. something like this..
ChatSanitizer : CommunicationSanitizer
{
override SanitizerHeaders()
{
base.SanitizeHeaders();
// Additional Chat related sanitization


fixed: error: bufio.Scanner token too long

[ ] I have read the contributing guide.
[ ] Issue:

Implementation

rump -from ./redis.dump -to redis://<IP_ADDRESS>:6379/0
When the above instruction is executed, if a key of redis is too large, it will cause a line to be too long, exceeding bufio. MaxScanTokenSize, causing bufio.Scanner token too long error
This commit is used to fix the above error

Running into this as well.


RuntimeError: Return counts not implemented for unique operator for DirectML

Traceback (most recent call last):
File "D:\ultralytics\ultralytics\yolo\v8\detect\train.py", line 222, in
train()
File "D:\ultralytics\ultralytics\yolo\v8\detect\train.py", line 218, in train
trainer.train()
File "D:\ultralytics\ultralytics\yolo\engine\trainer.py", line 191, in train
self._do_train(world_size)
File "D:\ultralytics\ultralytics\yolo\engine\trainer.py", line 320, in _do_train
self.loss, self.loss_items = self.criterion(preds, batch)
File "D:\ultralytics\ultralytics\yolo\v8\detect\train.py", line 74, in criterion
return self.compute_loss(preds, batch)
File "D:\ultralytics\ultralytics\yolo\v8\detect\train.py", line 172, in call
targets = self.preprocess(targets.to(self.device), batch_size, scale_tensor=imgsz[[1, 0, 1, 0]])
File "D:\ultralytics\ultralytics\yolo\v8\detect\train.py", line 137, in preprocess
_, counts = i.unique(return_counts=True)
File "F:\anaconda3\envs\ultralytics\lib\site-packages\torch_tensor.py", line 806, in unique
return torch.unique(
File "F:\anaconda3\envs\ultralytics\lib\site-packages\torch_jit_internal.py", line 485, in fn
return if_false(*args, **kwargs)
File "F:\anaconda3\envs\ultralytics\lib\site-packages\torch_jit_internal.py", line 483, in fn
return if_true(*args, **kwargs)
File "F:\anaconda3\envs\ultralytics\lib\site-packages\torch\functional.py", line 868, in _return_counts
output, _, counts = _unique_impl(input, sorted, return_inverse, return_counts, dim)
File "F:\anaconda3\envs\ultralytics\lib\site-packages\torch\functional.py", line 792, in _unique_impl
output, inverse_indices, counts = torch._unique2(
RuntimeError: Return counts not implemented for unique operator for DirectML.
I trying to run yolov8 on DirectML
os: Windows 11 22H2
python: 3.10.9
torch: 1.13.1
torch_directml:  <IP_ADDRESS>
gpu:  AMD6600XT

Hi @CodeTricycle, thank you for submitting this issue. While I can't provide a timeline for resolution as the moment, please know that your feedback is valuable to us. We will follow up once we can review this issue.

Is it solved

Is it solved

no

When can this bug be fixed？I don't have cuda. I try use it run on intel GPU


Missing Character \

Sorry, it´s me again.
It would be funny to display a turning wheel to show the motor is turning right or left.

But the Character \ is missing in the charset of the LCD-Display. Do you have a solution?

@MKleinSB Great idea :-) Unfortunately, the backslash is indeed missing in the default character set. What about a blinking >?

Hm, should work, but my Idea was better ;-)
Is it possible to define an Array of Pixels to be sent to a specified Cursor Position? But only if you have time. Your Packge works great!

No, we cannot send pixels directly. Fortunately, it might be possible to install some custom characters. This would be an indirect way to address pixels and/or solve your challenge.
https://maxpromer.github.io/LCD-Character-Creator/
http://forum.arduino.cc/index.php?topic=19002.0
We don't have it implemented yet.
Besides simple characters, I would love to graphic elements to visualize a bar (both horizontal and vertical).
@HyperDuino What do you think?

I'm always tempted to do the next cool thing because we can and it's neat to have this amazing set of blocks for MakeCode, but we also need to consider where our next efforts are best placed. For example, I would like to see example lessons, tutorials, etc. on the MakeCode main page. but then again, if I got an email that said the custom character block got made one evening for fun, I'm not saying I wouldn't enjoy playing with it. :)

cc81524 enables support for custom LCD characters.

:)


Testing on images

Hi, I  wanted to know if I wanted to test this model on a set of images, then what changes do I need to make?

Maybe you can follow the instructions on
https://github.com/davidsandberg/facenet/wiki/Train-a-classifier-on-own-images
David made a magnificent work, the document looks promising.
Hope you can get your work done through it.


Update to latest documentation.js

This picks up my commits to discover all exported bindings as well as
sorting the docs alphabetically.

PTAL

lgtm (assuming build and tests pass)


Alter column selecting and dropping wrong default constraint

Build: 7.0.0-rc2-16649
I'm using EF7 with an existing database. On one of my tables, I have a column named Active that is of type int. I set up a migration to alter the column to a bit.
When running the migrations, EF looks for any default constraints on the column and removes them. The SQL generated for removing the default is incorrect.
Here is my up migration:
migrationBuilder.AlterColumn<bool>(
    name: "Active",
    table: "MyTable",
    nullable: false,
    defaultValue: true);

and the sql that is generated to remove the default constraint:
DECLARE @var0 sysname;
SELECT @var0 = [d].[name]
FROM [sys].[default_constraints] [d]
INNER JOIN [sys].[columns] [c] ON [d].[parent_column_id] = [c].[column_id]
WHERE ([d].[parent_object_id] = OBJECT_ID(N'MyTable') AND [c].[name] = N'Active');
IF @var0 IS NOT NULL EXEC(N'ALTER TABLE [MyTable] DROP CONSTRAINT [' + @var0 + ']');
ALTER TABLE [MyTable] ALTER COLUMN [Active] bit NOT NULL;
ALTER TABLE [MyTable] ADD DEFAULT 1 FOR [Active];

It's a bit hard to see, but the tricky bit is on the join to sys.columns:
INNER JOIN [sys].[columns] [c] ON [d].[parent_column_id] = [c].[column_id]

This is joining solely on the column_id. In this case, it selected all defaults on MyTable and "cross joined" (for lack of better term) it with any column named Active across any table in the db. It ended up selecting another default on MyTable and removed it.
It should be joining on object_id as well:
INNER JOIN [sys].[columns] [c] ON [d].[parent_column_id] = [c].[column_id] and [c].[object_id] = object_id(N'MyTable')

lol, the documentation has the exact same issue with the exact same solution proposed in the somments. :expressionless:

Looks like reverse engineer had the same bug.


Unable to build the module-federation example

Environment
System
  platform           darwin
  arch               arm64
  cpu                10 cores          Apple M1 Pro
  Node.js v18.9.1
  yarn v3.2.1

Description
Unable to build module-federation example for production.
I have been able to run the module-federation example on dev but I have been trying to change the implementation to an actual production level code. So I started to build production bundles for each of the modules.
I have been able to produce release bundles for host and app2 MFs using the following command:
STANDALONE=1 webpack -c webpack.config.mjs --env platform=ios --env mode=production
But when trying to run the same command on app1 and module1 MFs, I am getting the following error:
[webpack-cli] TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received undefined

Reproducible Demo
git clone https://github.com/callstack/repack-examples
cd repack-examples
yarn run bootstrap
cd app1
npx STANDALONE=1 webpack -c webpack.config.mjs --env platform=ios --env mode=production

Output
[webpack-cli] TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received undefined
    at new NodeError (internal/errors.js:322:7)
    at validateString (internal/validators.js:124:11)
    at Object.join (path.js:1148:7)
    at AssetsCopyProcessor.enqueueChunk (/Users/parichitkotawala/Development/RN/repack-examples/module-federation/module1/node_modules/@callstack/repack/dist/webpack/plugins/utils/AssetsCopyProcessor.js:53:70)
    at /Users/parichitkotawala/Development/RN/repack-examples/module-federation/module1/node_modules/@callstack/repack/dist/webpack/plugins/OutputPlugin.js:225:55
    at Hook.eval [as callAsync] (eval at create (/Users/parichitkotawala/Development/RN/repack-examples/module-federation/module1/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:8:17)
    at Hook.CALL_ASYNC_DELEGATE [as _callAsync] (/Users/parichitkotawala/Development/RN/repack-examples/module-federation/module1/node_modules/tapable/lib/Hook.js:18:14)
    at /Users/parichitkotawala/Development/RN/repack-examples/module-federation/module1/node_modules/webpack/lib/Compiler.js:882:27
    at /Users/parichitkotawala/Development/RN/repack-examples/module-federation/module1/node_modules/neo-async/async.js:2818:7
    at done (/Users/parichitkotawala/Development/RN/repack-examples/module-federation/module1/node_modules/neo-async/async.js:3522:9)
    at alreadyWritten (/Users/parichitkotawala/Development/RN/repack-examples/module-federation/module1/node_modules/webpack/lib/Compiler.js:714:8)
    at /Users/parichitkotawala/Development/RN/repack-examples/module-federation/module1/node_modules/webpack/lib/Compiler.js:802:19
    at /Users/parichitkotawala/Development/RN/repack-examples/module-federation/module1/node_modules/graceful-fs/graceful-fs.js:123:16
    at FSReqCallback.readFileAfterClose [as oncomplete] (internal/fs/read_file_context.js:71:3) {
  code: 'ERR_INVALID_ARG_TYPE'
}

This issue was caused by OutputPlugin trying to copy non-existing chunk. This issue was fixed in #347
Updating the Re.Pack to the newest version should solve the problem.

Hey @parichit13 I added a comment in the original issue in the repack-examples repo. Closing this, as it's not an issue with Repack itself but rather an old version of Repack being used in the examples.


Fix lapack test on OpenCL devices

In my desktop, the default device is an Intel/OpenCL stuff. The lapack test fails on that with the following error:
ERROR:root:Traceback (most recent call last):
  File "C:\git\arrayfire-python\arrayfire\tests\simple\_util.py", line 32, in run
    test(verbose)
  File "C:\git\arrayfire-python\arrayfire\tests\simple\lapack.py", line 42, in simple_lapack
    a = af.matmulTN(a, a) + 10 * af.identity(5,5)
  File "C:\git\arrayfire-python\arrayfire\blas.py", line 88, in matmulTN
    MATPROP.TRANS.value, MATPROP.NONE.value))
  File "C:\git\arrayfire-python\arrayfire\util.py", line 79, in safe_call
    raise RuntimeError(to_str(err_str))
RuntimeError: In function class std::shared_ptr<float> __cdecl opencl::Array<float>::getMappedPtr(void) const
In file src\backend\opencl\Array.hpp:260
OpenCL Error (-59): Invalid Operation when calling clEnqueueMapBuffer

It is obvious, because on lapack.py line 42 I found:
a = af.matmulTN(a, a) + 10 * af.identity(5,5)

Which leads to double OpenCL mapping of the same resource. I've fixed that line with an explicit copy, but I believe this situation should handled at core ArrayFire side. Maybe with a better error reporting, or with an implicit copy when this double map scenario happens. What do you think?

@unbornchikken Can you create a bug report on arrayfire for the same case and also include the OpenCL architecture you are using?


Breaking Craft console

Description
After having used generator to scaffold a plugin (within which everything appears to work as intended) I then needed to build another new plugin; leading me to notice that craft console is broken.
It throws the following exception when I try to run any craft command (eg php craft)
Exception 'yii\base\UnknownPropertyException' with message 'Getting unknown property: craft\console\Request::isPost'

in /srv/users/dev-something/apps/dev-something/vendor/yiisoft/yii2/base/Component.php:154

Stack trace:
#0 /srv/users/dev-something/apps/dev-something/plugins/passwordy/src/Plugin.php(102): yii\base\Component->__get('isPost')
#1 /srv/users/dev-something/apps/dev-something/vendor/yiisoft/yii2/base/BaseObject.php(109): tigerchick\craftpasswordy\Plugin->init()
#2 /srv/users/dev-something/apps/dev-something/vendor/yiisoft/yii2/base/Module.php(161): yii\base\BaseObject->__construct(Array)
#3 /srv/users/dev-something/apps/dev-something/vendor/craftcms/cms/src/base/Plugin.php(122): yii\base\Module->__construct('_passwordy', Object(craft\console\Application), Array)
#4 [internal function]: craft\base\Plugin->__construct('_passwordy', Object(craft\console\Application), Array)
#5 /srv/users/dev-something/apps/dev-something/vendor/yiisoft/yii2/di/Container.php(419): ReflectionClass->newInstanceArgs(Array)
#6 /srv/users/dev-something/apps/dev-something/vendor/yiisoft/yii2/di/Container.php(170): yii\di\Container->build('tigerchick\\craf...', Array, Array)
#7 /srv/users/dev-something/apps/dev-something/vendor/yiisoft/yii2/BaseYii.php(365): yii\di\Container->get('tigerchick\\craf...', Array, Array)
#8 /srv/users/dev-something/apps/dev-something/vendor/craftcms/cms/src/Craft.php(59): yii\BaseYii::createObject(Array, Array)
#9 /srv/users/dev-something/apps/dev-something/vendor/craftcms/cms/src/services/Plugins.php(948): Craft::createObject(Array, Array)
#10 /srv/users/dev-something/apps/dev-something/vendor/craftcms/cms/src/services/Plugins.php(233): craft\services\Plugins->createPlugin('_passwordy', Array)
#11 /srv/users/dev-something/apps/dev-something/vendor/craftcms/cms/src/base/ApplicationTrait.php(1601): craft\services\Plugins->loadPlugins()
#12 /srv/users/dev-something/apps/dev-something/vendor/craftcms/cms/src/console/Application.php(53): craft\console\Application->_postInit()
#13 /srv/users/dev-something/apps/dev-something/vendor/yiisoft/yii2/base/BaseObject.php(109): craft\console\Application->init()
#14 /srv/users/dev-something/apps/dev-something/vendor/yiisoft/yii2/base/Application.php(204): yii\base\BaseObject->__construct(Array)
#15 /srv/users/dev-something/apps/dev-something/vendor/yiisoft/yii2/console/Application.php(89): yii\base\Application->__construct(Array)
#16 [internal function]: yii\console\Application->__construct(Array)
#17 /srv/users/dev-something/apps/dev-something/vendor/yiisoft/yii2/di/Container.php(419): ReflectionClass->newInstanceArgs(Array)
#18 /srv/users/dev-something/apps/dev-something/vendor/yiisoft/yii2/di/Container.php(170): yii\di\Container->build('craft\\console\\A...', Array, Array)
#19 /srv/users/dev-something/apps/dev-something/vendor/yiisoft/yii2/BaseYii.php(365): yii\di\Container->get('craft\\console\\A...', Array, Array)
#20 /srv/users/dev-something/apps/dev-something/vendor/craftcms/cms/src/Craft.php(59): yii\BaseYii::createObject(Array, Array)
#21 /srv/users/dev-something/apps/dev-something/vendor/craftcms/cms/bootstrap/bootstrap.php(260): Craft::createObject(Array)
#22 /srv/users/dev-something/apps/dev-something/vendor/craftcms/cms/bootstrap/console.php(42): require('/srv/users/dev-...')
#23 /srv/users/dev-something/apps/dev-something/craft(12): require('/srv/users/dev-...')
#24 {main}

I have no idea how to start fixing this so any help appreciated!
Edit:
I tried running: composer dump-autoload
It hasn't fixed it though.
Additional info

Craft version:4.11.1
PHP version:8.1.29
Database driver & version:MySQL 5.7.42

The error message + stack trace is showing that plugins/passwordy/src/Plugin.php is attempting to call Craft::$app->request->isPost on line 102. However isPost is only available for web requests, when Craft::$app->request is an instance of craft\web\Request. On console requests, it will be an instance of craft\console\Request.
Not sure what your code looks like exactly there, but you can fix by first making sure it’s not a console request by calling Craft::$app->request->isConsoleRequest.

Thanks @brandonkelly for showing me the right direction! Much appreciated.


Exclude 1byte tests from msan

Still timing out even after slowdown increase?

Yup, and not worth the latency I expect.
On Tue, May 3, 2016 at 10:27 PM David G. Quintas<EMAIL_ADDRESS>wrote:

Still timing out even after slowdown increase?
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/grpc/grpc/pull/6421#issuecomment-216748783

Unrelated to this PR, but a new flake seems to have surfaced: https://github.com/grpc/grpc/issues/6422
Very similar to the msan timeouts, but this is on an opt binary.

LGTM


Update MD file on new branch 2017-25-06_13-12-23

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

split/updateTestRef.md
:white_check_mark:Succeeded

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


Add #disable-next-line documentation

The only place #disable-next-line was documented was in the specific rule linter-rule-outputs-should-not-contain-secrets.md#silencing-false-positives
This makes it hard to find if searching for any other false positives.
As this can be useful for all kinds of false positives I believe it would make more sense to have it in the main linter documentation.

@bjompen : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@bjompen - thank you for the contribution.
#sign-off


Add geocoder widget

A search widget to query a geocoder, like Nominatim, would a be a very useful component.
The UI could be a textfield  with a result list below or a (possibly) existing combobox implementation , which provides the same functionality.

Also Photon would be a great option to have as supported geocoder.

I've started on this issue. Made Geocoders in OL before, but mainly struggling with the Vue, in particular the Vuetify-part for the component:

template: I have a v-btn with search icon as toggle
when enabled the searchinput box expands little bit like this example
toggle works ok, also aligns with Wegue -btn convention for toolbar
next: what to choose as input box, thought v-combobox (as I used with ExtJS) but struggling receiving events (v-on:input, v-on:keydown etc trigger nothing) and popping up suggestions. Maybe should use other widget like regular v-text-field?

Below is a dump of the current component:
<template>

  <v-toolbar-items>
    <v-combobox
      v-model="selected"
      :items="searchResults"
      :label="label"
      append-icon=""
      :dark="dark"
      :persistent-hint="persistentHint"
      :hidden="showSearch"
      @change="onUpdate"
    ></v-combobox>

    <v-btn @click='toggle()' icon :dark="dark" slot="activator">
      <v-icon medium>{{icon}}</v-icon>
        {{text}}
      </v-btn>
  </v-toolbar-items>

</template>

<script>
  import {Mapable} from '../../mixins/Mapable';

  export default {
    name: 'wgu-geocoder-input',
    mixins: [Mapable],
    props: {
      color: {type: String, required: false, default: 'red darken-3'},
      icon: {type: String, required: false, default: 'search'},
      text: {type: String, required: false},
      label: {type: String, required: false, default: 'Nominatim Search'},
      dark: {type: Boolean, required: false, default: false},
      persistentHint: {type: Boolean, required: false, default: true}

    },
    data () {
      return {
        selected: '',
        showSearch: true,
        searchResults: [
        ]
      }
    },
    methods: {
      toggle () {
        this.showSearch = !this.showSearch
      },
      onUpdate (e) {
        console.info('updated combo:', e);
      },
      onEnd () {
        // When all done center map, set marker etc
        const center = 'something';
        this.map.getView().setCenter(center);
      }
    },
    watch: {
      selected (value) {
        console.log(`selected=${value}`)
      }
    }
  }
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style>
</style>

There is a nice Geocoder for OL but is embedded in map with custom HTML/DOM.

Ok, got much further: trick is :search-input.sync="search" to get text from v-combobox.
Hacked a very rough version based on https://github.com/jonataswalker/ol-geocoder (MIT license will add), see https://github.com/justb4/wegue/tree/master/src/components/search

Looks promising @justb4! I'll have a detailed view the next days. Thank you so far!

First rough working version, Geocoder-clients are always more involved (projections, query timeouts etc) than expected 😄 :

OSM Nominatim Provider (more providers like Photon planned)
zooms to extent (bbox) of selected result
supports re-projections

TODO:

more Providers (Photon, Bing, Google etc)
uses Promise with custom jsonp, maybe  use axios?
some Providers do not render bbox attrs in result--> need setCenter() + setZoom(), but which zoom, street, country level etc.
check naming conventions Search vs Geocoder
(how to) pass JSON config arguments to the Vue component

Implementation is coming along ok. Updated TODO list above.
One item: in many Geocoder implementations a (disposable) Marker is placed at the selected location as an (config) option. This will require some extra OL stuff. I propose to leave that for now, and add later if even required.

I propose to leave that for now, and add later if even required

Sure, we can add that later on

This is done and Geocoder is merged a long time ago. Further optimizations / enhancements should be handled in separate issues (e.g. #109)


When set qetools as the parser for qeinputgenerator, the generated input file for pwscf always use this setting: calculation = 'scf'.

Hi,
I noted the wonderful qeinputgenerator tool belong to the materialscloud project. For this tool, when I set qetools as the parser for qeinputgenerator, the generated input file for pwscf always use this setting: calculation = 'scf'.
As we all know, for a first-principle study on a system, the very first step should be a (vc-)relax calculation. So, I'm confused why qetools always use the calculation = 'scf' for the generated pwscf input file.
Regards
HY

As far as I can tell, that choice is unrelated to the choice of qe-tools - which is just used to read the supplied input file.

As we all know, for a first-principle study on a system, the very first step should be a (vc-)relax calculation

Not sure I agree with this. Perhaps you upload a structure that already has been relaxed before, or you want to intentionally compute the ground state charge density at non-equilibrium. Ultimately this is an arbitrary choice and depends on what you want to do with it. The tool on the Materials Cloud attempts to make generating the input file for Quantum ESPRESSO, when starting from just the crystal structure, easier. It can determine quite a bit of the inputs, but not everything. At the end, the Materials Cloud QE input generator simply uses the parser of qe-tools as one of the potential file parsers to parse the initial crystal structure definition. How it decides to present the final results has little to do with qe-tools.

As far as I can tell, that choice is unrelated to the choice of qe-tools - which is just used to read the supplied input file.

With an input file includes the following lines:
&CONTROL
    calculation   = "relax"

The qeinputgenerator with qetools as parser will give the following:
&CONTROL
  calculation = 'scf'

@sphuber Thanks a lot for pointing more low-level logic of it.

I've tried many times and always see the following results with an input file includes the following lines:
&CONTROL
    calculation   = "relax"

The qeinputgenerator using qetools as parser will generate corresponding setting like this:
&CONTROL
  calculation = 'scf'

That just means qeinputgenerator doesn't take into account that input, even though it is parsed by qe-tools. Just from looking at it, this input file seems to only be a way of specifying the crystal structure (with qe-tools being one of many parser options), so it probably doesn't make sense to implement logic based on contents only the PWscf file contains.
In any case, I think we can close this issue - if there is more to discuss, it's not related to qe-tools itself.


Invalid deposit lot size exploit

Also, my fake deposit can actually claim a larger lot size during onAuctionFullyFilled, which will cause it to be approved for more than it deserves. Now I can have my fake deposit drain the RiskManagerV1 as other auctions are being taken but not fully filled (since the RiskManagerV1 is what's responsible for escrowing the tBTC)

@samczsun
Critical severity, entangled with #69.

This problem should be solved by the validation that will be introduced in #70.


Fix examples

This fixes some syntax errors in the Examples files, and also fixes the cocoapods Podfile to work with modern cocoapods.

Codecov Report

Merging #35 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #35   +/-   ##
=======================================
  Coverage   97.01%   97.01%
=======================================
  Files          39       39
  Lines        1543     1543
=======================================
  Hits         1497     1497
  Misses         46       46

Continue to review full report at Codecov.

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


List

fixed adding new item problem with rating and priority

We're not doing rating and priority in this sprint


README

README
User Story
As a boot camp student,
I want the prework notes to be stuctured on a webpage,
So that I can easily find and read the information
Acceptance Criteria
GIVEN the prework project repository,
WHEN I view the README for the repository,
THEN I can see a professional README that provides information on the project and how to use it

Finished update the README file into a professional one


add project- Bhagavad Gita

[Bhagavad Gita]
(https://github.com/kvmangukiya/bhagavad_gita)
Category- Religion
Description-  mobile application aimed at providing a comprehensive and user-friendly platform for studying and exploring the teachings of Bhagvat Geeta

@ashitaprasad pls assign me the issue


360safe browser needs promise polyfill

Uses a somewhat old version of a Chromium based engine.  Does not support native promises.
Has a very large amount of users in China.

Hi @jhiswin, thanks for this.  The polyfill service uses the useragent module to identify browers, which ultimately uses the browscap data.  This does not appear to include 360safe, so someone with knowledge of that browser will need to add it to browscap before we can support it in the polyfill service.

@triblondon, @jhiswin I understand the description of the https://github.com/3rd-Eden/useragent project, it uses data from https://github.com/ua-parser/uap-core. Even if i'm wrong, its useful to open an issue there too.

Ultimately it uses browscap. Start with an issue there.

@triblondon In your chart Chrome 31 had Promises, but testing on Browserstack I see that Chrome 31 did not have native Promises yet.  It was introduced in Chrome 32.  I think your polyfill needs to be adjusted?

Promise support in chrome sounds unrelated to 360safe, so please raise that
as a fresh issue. Happy to look into it.

@triblondon Yes, it looks as if this is an issue with Chrome 31.  So this is just a duplicate of the other issue, since 360safe is based on Chrome 31, and that is the reason for this issue.

OK, if we idenfity 360safe as chrome, then that's fine.


Two python environments are setup by make deps

Describe the bug
When running make deps two different virtual environment are setup.
To Reproduce
Steps to reproduce the behavior:

Go to project top directory
Run make deps

Expected behavior
I expect only one python environment to be setup
Additional context
https://github.com/lambdaclass/cairo-rs/blob/e29e000471316ca6ea55134702f581951f69baeb/Makefile#L77-L86

Hi @ptisserand thank you for reporting. We will tackle this as part of this ticket: https://github.com/lambdaclass/cairo-rs/issues/713. I think there's a specific purpose for each of the environments but it's not clear what this purpose is. We'll look into it.

These environments are there mainly to ease the speed comparisons with cairo-lang. We compare both with it running on CPython and on PyPy.
In any case, those envs use outdated interpreters, 3.9.x should be installed.


Can this be setup with an existing nginx configuration with a socket?

Hi, I have having trouble setting up oauth2_proxy with an existing unicorn socket. How would you write the nginx configuration to put oauth2_proxy in front of the socket? In my config below, going to domain.name:3000 allows you to bypass the login.
upstream app {
    server unix:/home/user/appname/shared/sockets/unicorn.sock fail_timeout=0;
}

server {
    listen 80;
    server_name domain.name;

    location / {
        proxy_pass http://<IP_ADDRESS>:4180;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_connect_timeout 1;
        proxy_send_timeout 30;
        proxy_read_timeout 30;
    }
}

server {
    listen 3000;
    server_name localhost;
    root /home/user/appname/public;
    try_files $uri/index.html $uri @app;

    location @app {
        proxy_pass http://app;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;
    }
}

You could listen <IP_ADDRESS>:3000; instead (and no need for server_name in that block)

That was exactly what I needed! Thanks so much!


Fix Prometheus Events

A flag was added to enable/disable prometheus events. The logic for this was in the init function within eventrouter.go. With the way loadConfig is currently written the init function fires first, meaning the configuration isn't processed thus prometheus is always disabled.

Fix for #89

@cyrus-mc Please squash your commits and ensure it is signed.

I did not consider this. My bad. Perhaps loadConfig should be moved to an init func in main.go? I made a poor assumption around how viper and init is usually done which lead to this oversight. Perhaps we avoid future issues by loading the config at the very very beginning of execution

ping @cyrus-mc ; please sign your commit, I really need to get this fix in for a release to be cut.

Trivial sized PR with clear resolution; I just fixed it separately on my own branch and pushed a PR here: https://github.com/heptiolabs/eventrouter/pull/98

Thanks for finding this issue though @cyrus-mc ; sorry for moving ahead with the fix but I wanted to unblock things for a release.


Icon inside ion-option?

Short description of the problem:
Is it possible to add an icon inside Select <ion-select> <ion-option> ?

Hello! Thanks for opening an issue with us! As this seems like more of a support question i will urge that you ask this question on our forum. Thanks for using Ionic!

Is there any way to add icon inside ion-option

Is there any way to add icon inside ion-option ???


Wasm on a 16-bit-ish big-endian platform

Hey, so we kinda would like to put wasm on a Sega Genesis, so that we can put Rust on a Sega Genesis. We think maintaining a wasm backend would be less effort than maintaining an LLVM backend, but from what we've been reading, the following might be an issue:

It's big-endian.
There are no floats. We don't think this is a big deal because we can just not use floats in Rust.
There's only 64k of RAM, and we somehow need to fit everything into it. It probably wouldn't be a big deal to expose the real stack to wasm, but Rust may not be able to deal with it.
A lot of stuff needs to be stored in ROM. However, we haven't been able to figure out how wasm (or well, Rust) handles strings and bytestrings in code? This could be a real problem, especially if bank switching is involved. (There's also a restriction that VDP DMA transfers can't cross 128kB(?) boundaries.)

How bad of an idea is this? It wouldn't really be in-spec, but we don't expect it to run arbitrary wasm either.

It's big-endian.

You will need to do a byte swap when writing to the wasm memory. This is not necessary if you are writing to the wasm stack.

There are no floats. We don't think this is a big deal because we can just not use floats in Rust.

For as long as the wasm module doesn't use floats itself this is not a problem.

There's only 64k of RAM, and we somehow need to fit everything into it. It probably wouldn't be a big deal to expose the real stack to wasm, but Rust may not be able to deal with it.

Wasm pages are 64k.

A lot of stuff needs to be stored in ROM. However, we haven't been able to figure out how wasm (or well, Rust) handles strings and bytestrings in code? This could be a real problem, especially if bank switching is involved. (There's also a restriction that VDP DMA transfers can't cross 128kB(?) boundaries.)

Wasm modules copy all the data they contain to the memory on startup. Wasm doesn't have such a concept as read-only data.
Because wasm pages are 64k, the amount of data to copy as stated it always a multiple of 64k. You may be able to hack your way around this if you know the exact size of the useful data.

You will need to do a byte swap when writing to the wasm memory.

We won't.

Wasm modules copy all the data they contain to the memory on startup. Wasm doesn't have such a concept as read-only data.

How does this work? Does the module come with a predefined memory section that gets copied over or is there some generated startup code that we need to intercept?

We won't.

That will only work if you tell the WASM compiler that it needs to emit big-endian code. I don't think LLVM has an option for this.

Does the module come with a predefined memory section that gets copied over or is there some generated startup code that we need to intercept?

It comes with a predefined memory section.

That will only work if you tell the WASM compiler that it needs to emit big-endian code. I don't think LLVM has an option for this.

That still sounds like an easier patch than maintaining an LLVM backend. Or we might try to use some heuristics, or get LLVM to give us a symbol table with types and just swap those in the predefined memory section. This is assuming LLVM doesn't pull an aliasing on us.

It comes with a predefined memory section that gets copied over on module instantiation.

That's good. Sounds like we might be able to get away with using a few tricks.
It also seems like a WASM implementation is allowed to trap on unaligned memory access as well, if told to do so. So we don't have to worry about that one, at least.

This sounds like a really interesting project and a working wasm-on-Genesis runtime would be a fantastic hack!
Just wanted to add a bit of input on the endianness issue. It seems to me that inventing a "big-endian Wasm" platform, and modifying the Wasm generator(s) you care about to produce this, is likely to cause headaches on several levels. For one, the .wasm files you'd be operating on would not be runnable on any other Wasm platform -- so you immediately lose e.g. the ability to test something locally. Any .wasm module you might want to import from elsewhere and link to would also cause issues. So you lose (i) the benefits of the standard, deterministic, cross-platform VM, and (ii) the ability to take advantage of the ecosystem of reusable modules. Finally, you lose the ability to use any unmodified compiler that generates standard Wasm; you have to add a special hack to each compiler you use.
Basically, you bifurcate the universe into "Wasm-LE" and "Wasm-BE" and lose most of the benefits of standardization. You're likely to get lots of pushback from the Wasm community on something like that, as well: there's a strong emphasis on precise, full-defined execution semantics, standardized everywhere.
It seems that on the m68k (which Wikipedia tells me that the Genesis uses?), it's possible to endian-swap a 32-bit word in three instructions (from Stackoverflow here:
ROL.W #8,D0
SWAP.L   D0
ROL.W #8,D0

This would certainly add overhead, but seems (to me) at least feasible?

what about turning off type aliasing?

I don't think that would help; type aliasing analysis in LLVM just informs its optimization passes about what assumptions they may make, but doesn't change how data layout is computed or code is generated. Fundamentally, the endianness is still visible in lots of different ways, e.g. in struct layout, and constant data included in the initial memory contents. The endianness is a deeply-baked-in assumption and I don't think one can predict all the breakage that might happen if you change the Wasm host's endianness without byte-swapping.
That said, the right place for a discussion on "should there be a big-endian Wasm" is probably the Wasm spec community, rather than Cranelift/wasmtime; others on e.g. https://github.com/WebAssembly/spec or https://github.com/WebAssembly/proposals might have ideas or thoughts on this!

for comparison, java doesn't leak endianness (altho it does expose it here and there, in deliberate locations), and we believe the only issue would be in constant data - which can hopefully be solved by simply tagging the constant data with the relevant types and optionally enforcing it at runtime.

Right, the issue is that Wasm's heap model is a bit lower-level than Java's: the linear memory is byte-addressable, and it is permitted to load bytes that were stored by a 16-/32-/64-bit store instruction (and vice versa). So for the endian-switch to work, you would need to ensure that memory stored as a larger integer is only ever accessed that way. I don't know if Rust-on-LLVM-to-Wasm guarantees that, and I'd be suspicious around e.g. enum tags, packed structs in general, widening or narrowing ops combined with loads or stores, etc. Basically, you would need to audit the whole compiler for such assumptions based on endianness. Not saying this is impossible, but it seems like a very brittle solution, compared to swapping bytes on loads/stores, IMHO.

Basically, you would need to audit the whole compiler for such assumptions based on endianness.

Not only that. For example u32::to_le_bytes is implemented by writing it to memory on little-endian systems and by first doing a byte swap on big-endian systems and then writing it to memory on big-endian systems.

Additional question: can we just shove rust's pseudo stack in the middle of the real stack somehow? or would we have to rely on implementation details? are there opcodes (or maybe a global called "stack") specifically for shadow stack management?

The rust stack is an LLVM concept. There are no opcodes for it. LLVM uses a global called __stack_pointer for the rust stack.

And to add a bit more: you might try to pattern-match LLVM's pseudo-stack somehow (and, say, translate pushes / pops / accesses to native stack ops in your own private opcode space), but the real problem is that the program can take addresses to objects on the stack, and that address could reach any other load/store in the program (unless you do interprocedural alias or escape analysis to prove otherwise). So now every load/store has a "is this a special stack address" test, effectively software-level address translation, which probably costs more than you would save by treating the stack specially.

ideally we can get away with just adjusting the global, which is something LLVM doesn't expect but we're hoping it'll be fine.

Basically, you would need to audit the whole compiler for such assumptions based on endianness.

Not only that. For example u32::to_le_bytes is implemented by writing it to memory on little-endian systems and by first doing a byte swap on big-endian systems and then writing it to memory on big-endian systems.

Rust lets us override that. LLVM on the other hand...

This is a pretty old issue at this point and adding a 16-bit platform to Wasmtime is a significant ask that, even if it were done, would probably break wasm assumptions for any nontrivial module (since one wasm page is the entire address space). I'm going to close this for these reasons since design for a platform like this would most likely go through something like an RFC given its impact.


[Groupon] Remove extractor or support youtube embeds

[x] I've verified and I assure that I'm running youtube-dl 2018.01.14

Before submitting an issue make sure you have:

[x] At least skimmed through the README, most notably the FAQ and BUGS sections
[x] Searched the bugtracker for similar issues including closed ones

What is the purpose of your issue?

[x] Bug report (encountered problems with youtube-dl)
[ ] Site support request (request for adding support for a new site)
[ ] Feature request (request for a new functionality)
[ ] Question
[ ] Other

There is no more videos, only youtube embeds.
https://www.groupon.com/deals/bikram-yoga-huntington-beach-2#ooid=tubGNycTo_9Uxg82uESj4i61EYX8nyuf

@dstftw Please review.


uninitialized constant Fluent::TextParser::Parser (NameError)

[ec2-user@ip-10-0-241-238 fluent]$ 2018-07-13 13:54:54 +0000 [info]: fluent/log.rb:322:info: parsing config file is succeeded path="/etc/fluent/fluent.conf"
2018-07-13 13:54:54 +0000 [trace]: fluent/log.rb:281:trace: registered output plugin 'stdout'
2018-07-13 13:54:54 +0000 [trace]: fluent/log.rb:281:trace: registered buffer plugin 'memory'
2018-07-13 13:54:54 +0000 [trace]: fluent/log.rb:281:trace: registered formatter plugin 'stdout'
2018-07-13 13:54:54 +0000 [trace]: fluent/log.rb:281:trace: registered formatter plugin 'json'
2018-07-13 13:54:54 +0000 [trace]: fluent/log.rb:281:trace: registered input plugin 'udp'
/home/ec2-user/.gem/ruby/2.4/gems/fluent-plugin-juniper-telemetry-0.3.0/lib/fluent/plugin/parser_juniper_jti.rb:12:in <class:TextParser>': uninitialized constant Fluent::TextParser::Parser (NameError)         from /home/ec2-user/.gem/ruby/2.4/gems/fluent-plugin-juniper-telemetry-0.3.0/lib/fluent/plugin/parser_juniper_jti.rb:11:in module:Fluent'
from /home/ec2-user/.gem/ruby/2.4/gems/fluent-plugin-juniper-telemetry-0.3.0/lib/fluent/plugin/parser_juniper_jti.rb:10:in <top (required)>'         from /usr/share/ruby/vendor_ruby/2.4/rubygems/core_ext/kernel_require.rb:55:in require'
from /usr/share/ruby/vendor_ruby/2.4/rubygems/core_ext/kernel_require.rb:55:in require'         from /home/ec2-user/.gem/ruby/2.4/gems/fluentd-1.2.3/lib/fluent/registry.rb:102:in block in search'
from /home/ec2-user/.gem/ruby/2.4/gems/fluentd-1.2.3/lib/fluent/registry.rb:99:in each'         from /home/ec2-user/.gem/ruby/2.4/gems/fluentd-1.2.3/lib/fluent/registry.rb:99:in search'
from /home/ec2-user/.gem/ruby/2.4/gems/fluentd-1.2.3/lib/fluent/registry.rb:44:in lookup'         from /home/ec2-user/.gem/ruby/2.4/gems/fluentd-1.2.3/lib/fluent/plugin.rb:146:in new_impl'
from /home/ec2-user/.gem/ruby/2.4/gems/fluentd-1.2.3/lib/fluent/plugin.rb:123:in new_parser'         from /home/ec2-user/.gem/ruby/2.4/gems/fluentd-1.2.3/lib/fluent/plugin_helper/parser.rb:89:in block in configure'
from /home/ec2-user/.gem/ruby/2.4/gems/fluentd-1.2.3/lib/fluent/plugin_helper/parser.rb:85:in each'         from /home/ec2-user/.gem/ruby/2.4/gems/fluentd-1.2.3/lib/fluent/plugin_helper/parser.rb:85:in configure'
from /home/ec2-user/.gem/ruby/2.4/gems/fluentd-1.2.3/lib/fluent/plugin_helper/server.rb:308:in configure'         from /home/ec2-user/.gem/ruby/2.4/gems/fluentd-1.2.3/lib/fluent/plugin/in_udp.rb:50:in configure'
from /home/ec2-user/.gem/ruby/2.4/gems/fluentd-1.2.3/lib/fluent/plugin.rb:164:in configure'         from /home/ec2-user/.gem/ruby/2.4/gems/fluentd-1.2.3/lib/fluent/root_agent.rb:282:in add_source'
from /home/ec2-user/.gem/ruby/2.4/gems/fluentd-1.2.3/lib/fluent/root_agent.rb:122:in block in configure'         from /home/ec2-user/.gem/ruby/2.4/gems/fluentd-1.2.3/lib/fluent/root_agent.rb:118:in each'
from /home/ec2-user/.gem/ruby/2.4/gems/fluentd-1.2.3/lib/fluent/root_agent.rb:118:in configure'         from /home/ec2-user/.gem/ruby/2.4/gems/fluentd-1.2.3/lib/fluent/engine.rb:131:in configure'
from /home/ec2-user/.gem/ruby/2.4/gems/fluentd-1.2.3/lib/fluent/engine.rb:96:in run_configure'         from /home/ec2-user/.gem/ruby/2.4/gems/fluentd-1.2.3/lib/fluent/supervisor.rb:795:in run_configure'
from /home/ec2-user/.gem/ruby/2.4/gems/fluentd-1.2.3/lib/fluent/supervisor.rb:579:in dry_run'         from /home/ec2-user/.gem/ruby/2.4/gems/fluentd-1.2.3/lib/fluent/supervisor.rb:597:in supervise'
from /home/ec2-user/.gem/ruby/2.4/gems/fluentd-1.2.3/lib/fluent/supervisor.rb:502:in run_supervisor'         from /home/ec2-user/.gem/ruby/2.4/gems/fluentd-1.2.3/lib/fluent/command/fluentd.rb:310:in <top (required)>'
from /usr/share/ruby/vendor_ruby/2.4/rubygems/core_ext/kernel_require.rb:55:in require'         from /usr/share/ruby/vendor_ruby/2.4/rubygems/core_ext/kernel_require.rb:55:in require'
from /home/ec2-user/.gem/ruby/2.4/gems/fluentd-1.2.3/bin/fluentd:8:in <top (required)>'         from /home/ec2-user/bin/fluentd:23:in load'
from /home/ec2-user/bin/fluentd:23:in `'

Im getting this error:
2018-08-01 04:52:35 +0000 [info]: fluent/log.rb:322:info: parsing config file is succeeded path="/etc/fluent/fluent.conf"
2018-08-01 04:52:35 +0000 [trace]: fluent/log.rb:281:trace: registered output plugin 'copy'
2018-08-01 04:52:35 +0000 [debug]: fluent/log.rb:302:debug: adding store type="influxdb"
2018-08-01 04:52:35 +0000 [trace]: fluent/log.rb:281:trace: registered output plugin 'influxdb'
2018-08-01 04:52:35 +0000 [info]: fluent/log.rb:322:info: 'flush_interval' is configured at out side of <buffer>. 'flush_mode' is set to 'interval' to keep existing behaviour
2018-08-01 04:52:35 +0000 [trace]: fluent/log.rb:281:trace: registered buffer plugin 'memory'
2018-08-01 04:52:35 +0000 [trace]: fluent/log.rb:281:trace: registered input plugin 'udp'
Traceback (most recent call last):
	32: from /usr/local/bin/fluentd:23:in `<main>'
	31: from /usr/local/bin/fluentd:23:in `load'
	30: from /var/lib/gems/2.5.0/gems/fluentd-1.2.3/bin/fluentd:8:in `<top (required)>'
	29: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
	28: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
	27: from /var/lib/gems/2.5.0/gems/fluentd-1.2.3/lib/fluent/command/fluentd.rb:310:in `<top (required)>'
	26: from /var/lib/gems/2.5.0/gems/fluentd-1.2.3/lib/fluent/supervisor.rb:502:in `run_supervisor'
	25: from /var/lib/gems/2.5.0/gems/fluentd-1.2.3/lib/fluent/supervisor.rb:597:in `supervise'
	24: from /var/lib/gems/2.5.0/gems/fluentd-1.2.3/lib/fluent/supervisor.rb:579:in `dry_run'
	23: from /var/lib/gems/2.5.0/gems/fluentd-1.2.3/lib/fluent/supervisor.rb:795:in `run_configure'
	22: from /var/lib/gems/2.5.0/gems/fluentd-1.2.3/lib/fluent/engine.rb:96:in `run_configure'
	21: from /var/lib/gems/2.5.0/gems/fluentd-1.2.3/lib/fluent/engine.rb:131:in `configure'
	20: from /var/lib/gems/2.5.0/gems/fluentd-1.2.3/lib/fluent/root_agent.rb:118:in `configure'
	19: from /var/lib/gems/2.5.0/gems/fluentd-1.2.3/lib/fluent/root_agent.rb:118:in `each'
	18: from /var/lib/gems/2.5.0/gems/fluentd-1.2.3/lib/fluent/root_agent.rb:122:in `block in configure'
	17: from /var/lib/gems/2.5.0/gems/fluentd-1.2.3/lib/fluent/root_agent.rb:282:in `add_source'
	16: from /var/lib/gems/2.5.0/gems/fluentd-1.2.3/lib/fluent/plugin.rb:164:in `configure'
	15: from /var/lib/gems/2.5.0/gems/fluentd-1.2.3/lib/fluent/plugin/in_udp.rb:50:in `configure'
	14: from /var/lib/gems/2.5.0/gems/fluentd-1.2.3/lib/fluent/plugin_helper/server.rb:308:in `configure'
	13: from /var/lib/gems/2.5.0/gems/fluentd-1.2.3/lib/fluent/plugin_helper/parser.rb:85:in `configure'
	12: from /var/lib/gems/2.5.0/gems/fluentd-1.2.3/lib/fluent/plugin_helper/parser.rb:85:in `each'
	11: from /var/lib/gems/2.5.0/gems/fluentd-1.2.3/lib/fluent/plugin_helper/parser.rb:89:in `block in configure'
	10: from /var/lib/gems/2.5.0/gems/fluentd-1.2.3/lib/fluent/plugin.rb:123:in `new_parser'
	 9: from /var/lib/gems/2.5.0/gems/fluentd-1.2.3/lib/fluent/plugin.rb:146:in `new_impl'
	 8: from /var/lib/gems/2.5.0/gems/fluentd-1.2.3/lib/fluent/registry.rb:44:in `lookup'
	 7: from /var/lib/gems/2.5.0/gems/fluentd-1.2.3/lib/fluent/registry.rb:99:in `search'
	 6: from /var/lib/gems/2.5.0/gems/fluentd-1.2.3/lib/fluent/registry.rb:99:in `each'
	 5: from /var/lib/gems/2.5.0/gems/fluentd-1.2.3/lib/fluent/registry.rb:102:in `block in search'
	 4: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
	 3: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
	 2: from /var/lib/gems/2.5.0/gems/fluent-plugin-juniper-telemetry-0.3.0/lib/fluent/plugin/parser_juniper_jti.rb:10:in `<top (required)>'
	 1: from /var/lib/gems/2.5.0/gems/fluent-plugin-juniper-telemetry-0.3.0/lib/fluent/plugin/parser_juniper_jti.rb:11:in `<module:Fluent>'
/var/lib/gems/2.5.0/gems/fluent-plugin-juniper-telemetry-0.3.0/lib/fluent/plugin/parser_juniper_jti.rb:12:in `<class:TextParser>': uninitialized constant Fluent::TextParser::Parser (NameError)

I'm using:
Ubuntu 18.04.1 LTS
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux-gnu]
fluentd 1.2.3

Could you try this patch? https://github.com/JNPRAutomate/fluent-plugin-juniper-telemetry/pull/11

just add "require 'fluent/parser'"  on /usr/local/lib/ruby/gems/2.4/gems/fluent-plugin-juniper-telemetry-0.3.0/lib/fluent/plugin/parser_juniper_jti.rb
This will fix it.
Tested on FreeBSD12.0


Checkpointing

Need a checkpointing mechanism for the jobs.

It is very important that we checkpoint both the macroscale state, as well as the microscale state.
We may want the option to do this on every macroscale load step, or every macroscale iteration.
We should do this in a way that we can restart the analysis with a different configuration of CPU/GPU/mesh partition scheme
If possible we should try to be able to restart an implicit microscale from an explicit microscale and visaversa


Tilemap - Hex Tiles overlap based on Quadrant size

Godot version
Godot4 Beta 10
System information
Windows 10
Issue description
When creating a tile map, periodically, tiles will overlap incorrectly, this changes based on the cell quadrant size, not being visible at quadrant size 1 or 2, however larger values cause this bug. E.g when cell quadrant size is deafult (16), this happens

Steps to reproduce
Create Hex tile map with vertical alignment. add tiles that stretch outside of the defined hexagonal region, e.g. to provide illusion of some depth to a map, e.g pictured above. Draw a large area of these tiles.
Minimal reproduction project
N/A

Steps to reproduce
Create Hex tile map with vertical alignment. add tiles that stretch outside of the defined hexagonal region, e.g. to provide illusion of some depth to a map, e.g pictured above. Draw a large area of these tiles.
Minimal reproduction project
N/A

Please upload minimal reproduction project, it's not obvious what's your exact setup.

Closing as it's not actionable without clear reproduction steps.

Reopening as there's user with the same issue and wanting to provide MRP (can't do so when archived/closed).

Hello Here is a MRP
TileMapBug.zip
The Steps to Reproduce are easy too.

Make a Tilemap with Hexagon, Vertical Offset, TileSize 32x28
Create Tileset
Add Texture to Tileset in my case the texture_region is 32x48
Print Tiles over the Quadrant Border

TileMapBug.zip

@kolumdium For this specific setup the issue happens only in case of tile layouts (TileSet.tile_layout property): Stacked, Stacked Offset, Stairs down.
For tile layouts: Stairs Right, Diamond Right, Diamond Down it's rendering just fine (so it should do as a workaround).
cc @groud

The issue doesn't happen when y-sorting / with quadrant size = 1.

This is expected behavior.
You cannot have a vertical component to a tile and expect it to be drawn correctly without Y-sorting enabled. We added a warning to isometric mode, as it is commonly used there, but not to hexagons as it is less common. To solve this problem, you must enable Y-sorting.
Closing as this is expected behavior.

Forgive my Question after it's closed but wouldn't it be possible to Y-sort the quadrants only?
Because enabling Y-Sorting makes big tile maps impossible. 512x512 already lags alot and 1024x1024 just crashes without warning. I assume that is what you implemented Quadrants for in the first place.
For me Y-Sorting is not a solution I can use as of now.

Forgive my Question after it's closed but wouldn't it be possible to Y-sort the quadrants only?

Not really, you cannot have a vertical component to a map without applying Y-sorting. If we don't do that, you'll always have weird artifacts at the borders of the quadrant, exactly like what you have now.
 So here, at the intersection of the planes, you cannot have a quadrant that is sometime on top and sometime below the next quadrant.
However, I discussed a bit with reduz, and it seems that we might have a solution. Instead of forcing the quadrant size to (1,1) when Y-sort is enabled, we could force it so something like (quadrant_size, 1), that should greatly improve performance and produce no visible artifacts, if I am not mistaking.

I made a PR: https://github.com/godotengine/godot/pull/73813

Thank you anyway for thinking about it!

you cannot have a quadrant that is sometime on top and sometime below the next quadrant.

Right, I understand the Problem now.
Would it be possible to make the chunks for Hexmaps also be Hexagons, or a square only filled with Tiles that amount to a bigger Hex.
Then it should work because it would be 2 different chunk borders that could be sorted. The same as for single Tiles.
It would basically be the same as the current Tilemap but with the "bigger" Tiles to render.
Not sure if I explained that properly.
Let me know if you understood my Idea or if I need to explain it better.

Ok, understood.
That it could be possible is good enough fo me. :)
Thank you for your time.


dockerd logs "rpc error: code = 2 desc = containerd: container not found" after various API requests

A flaw was found in the code changes that were introduced by commit e96a10a. Under certain conditions, the scenario that is outlined in https://github.com/projectatomic/containerd/pull/10 can still cause 'container not found' errors.
The second commit proposes a new approach to address to original issue.

LGTM


[MM-38530] Update build to generate universal binaries (#1747) - cherry-pick

Summary
Cherry-pick of #1747 to release-5.0
NONE

The files .circleci/config.yml, scripts/cp_artifacts.sh, scripts/cp_artifacts.sh are in the blocklist for external contributors. Hence, these changes are not tested by the CI pipeline active until the build is re-triggered by a core committer or the PR is merged. Please be careful when reviewing it.
/cc @mattermost/core-security @mattermost/core-build-engineers


Visualize modal opens Share modal too

Steps:

Go to your tables dashboard, open a table
Click on visualize
The warning for creating a new map shows, when you accept, it sends you to the map but it opens the "share" modal automatically

cc @xavijam @viddo

After talking with @xavijam, not sure if this is a new expected behaviour. @saleiva?

Yep, after testing this I'd not open that modal automatically...


adding track list menu

Fixes #{182}
This PR is for [Anime Name].

[x] This issue is for enhancement/bug fixing.
[ ] This issue is an addition to JSON database.

[ ] Pull Request Title is of form Added [Anime Name].

[ ] This addition is already on ongaku.

[ ] This PR is an improvement to current addition.

[x] I have checked my addition locally and it is working and won't break existing entries.
[x] I have gone through Contribution Guidelines.
[x] This pull request will be closed if I failed to update it even once in a week.

Hey @joseph-perez thanks for contributing here, it works amazingly well, just the way I wanted.
One bug that persists is on selecting a song from the list the content above it should move at the end, please fix that. 😄

Sorry about the bug 😅  I pushed the fixes you requested and I think it's looking good now 👍

Thanks for the quick fix @joseph-perez , it works amazingly well.
Thanks for the PR. 👍


Create ensem.txt

École nationale supérieure d'électricité et mécanique

@mariameelmoussaoui First stage of verification passed, official domain is portal.ensem.ac.ma as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision. Proof of domain ownership: https://portal.ensem.ac.ma/

@mariameelmoussaoui Thank you for your patience while waiting for a review and processing your request. Pull request merged.


Refactoring classes with exported functions

After the end of development from @helio-frota and myself so we can bring oratrix to its first release I had some time to retrospect the code we've written.  Watching the code now, my main concern is that we use classes all over the place and that will introduce bottlenecks down the road.
1 => ES2015 classes are not implemented in the language itself but it's just syntax sugar for something called "prototype inheritance" (see https://javascript.info/prototype-inheritance). So we should not think of them as regular classes similar to other languages like JAVA, C++, etc.
2 => I think oratrix's project structure gives us a good opportunity to separate concerns and it's really easy to add new features down the road. Using classes though adds more code than necessary (in my opinion) without offering something helpful.
For example:
With classes:
class GithubFetcher {

  async getRepositories(...) {
     ...
  }

  async hasPackageJSON(...) {
     ...
  }

  async fetch(...) {
     ...
  }

}

export default GithubFetcher;

With functions:
export const getRepositories = () => { ... };

export const hasPackageJSON = () => { ... };

export const fetch = () => { ... };

Less code is required and we don't need to instantiate a new object every time we need to use the github-fetcher utility.
3 => Testing and especially mocking these classes sometimes gets tricky.
For example:
// ClassA.ts

class A {

   async someFunction() { ... }

}

// ClassB.ts

import A from 'ClassA.ts'

class B {

   async someOtherFunction () {

      const variable = new A().someFunction();

      // other code

   }

}

Mocking the someFunction (while testing ClassB) with a mocking library like sinon or proxyquire seems impossible or I haven't found a way to do that yet. (so that reduces our test coverage).
@helio-frota and @lholmquist I would really like to hear your opinions about this and if it makes sense in the future to refactor classes with just exported functions. (and @lholmquist don't worry all of the above has nothing to do with TypeScript 😅)

@alexalikiotis good write up :+1:  I think we should /cc  @wtrocki to also have input on that

I'm not sure if that actually makes difference for me personally. I use functions when there is logical sense to create stateful solution - there is need for instance etc. This is also simplifying mocking etc. I will struggle to address this concern without going into the canons of objective vs functional programing thus being opiniated about the whole case.
This is the CLI, Codebase looks very very simple. By the end of the day keeping things consistent is more relevant than keeping things aligned with some use cases.

Opiniated response
For this case class seems like good choice.

First of all, I wanna start by saying that this is just a discussion and every opinion is accepted.
My own view is that using classes makes sense when you need multiple instances of something, for example, a database client should be a class because an app may need multiple clients to point to different databases (so multiple client instances). When you need to use something once in your app, then using functions makes more sense (personal opinion).
Anyway, you don't have to do anything about this, we are just having a discussion about the best approach moving forward. 🙂

I'm more partial to just using functions,   but as long as the code base is consistent, then it doesn't really matter.

@lholmquist I think the same :+1:

I'm on the same boat with you guys, just keep in mind that now that the project is still small this refactoring (classes -> functions) won't take that long (1-2 days tops) if we decide to do it.

I guess go for it and ping me for review

Yeah sure, I can open a draft PR with the changes and see how it looks, and then we can decide 🙂

Hi all, this is the draft for 'classes to functions' migration: https://github.com/nodeshift/oratrix/tree/class-to-function.
Now I can also increase the test coverage to nearly 100% because I'm able to write tests targeting the GitHub org validator. (not implemented yet on this draft but it'll be soon).
@helio-frota @wtrocki @lholmquist tell me what you think.

@alexalikiotis so I already look earlier the branch,  and already approved the PR : )


[OKD4.7] New installation of OKD 4.7.0-0.okd-2021-02-25-144700 results in OpenShift Branding

Hi,
we've got some experiences right now with OKD 4.x and we recognized that after installing a new UPI 4.7 Cluster  that the branding of the Web-Console has changed.

In all Versions before 4.7 Logos etc. were branded with "okd" and now it comes with "RedHat OpenShift Container Platform" as long as an activated "Insights" Operator which should be exclusively related to OpenShift if I am right?
Looking at the OpenShift Version, it says: "OpenShift version: 4.7.0-0.okd-2021-02-25-144700", so generally we should be on the right track...
So is this intended or another kind of downstream bug?
Best regards

Right, that was resolved in https://amd64.origin.releases.ci.openshift.org/releasetag/4.7.0-0.okd-2021-03-02-232606.

"Insights" Operator which should be exclusively related to OpenShift if I am right?

Insights operator works in OKD too, as long as user has pull secret with redhat.io entry

Alright, thank you for the quick response and clarification!
Can we expect any other impact when it will be rebranded with the next stable release?

I'll file a tracking issue for that


Generate multiple GeneratedTypeAdapterLoaders to enable package private models

At the moment due to the way in which the TypeAdapterFactory works, every POJO must be public.
The intended change is that a GeneratedTypeAdapterLoader will be created in all packages that classes annotated with @AutoGsonAdapter exist. This will mean that the POJOs can be be package private if required.

Nice, I've actually had to add checkstyle exceptions due to this, but once done I could make my fields package private again and remove the exception for annotated classes.

Hi @lnanek
This feature has now been released in version 1.7.0!
It should be available in maven in the next hour or so.


matplotlib interactive plotting GUI enhancements

From<EMAIL_ADDRESS>on 2011-04-03T04:56:57Z
This relates to mailing-list thread: http://groups.google.com/group/spyderlib/browse_thread/thread/3c5400a81bdcf4a4 attached are some screenshots of matplotlib figures with user enhancements to the GUI for interactive use. These enhancements are obtained through patching the matplotlib qt4agg backend.
Features:
. Extended figureoptions dialog
. Figures can be named (making it easier to select the right plot from taskbar)
. custom FigureManager:
control over toolbar
optional menubar with keybindings:
. Copy plot to clipboard feature
. easy access to commonly used pyplot commands
. some interactive undo/edit features
. the interface can be easily extended by the user: with a few lines of code custom formlayout Dialogs can be added to the figure menu.
Attachment: Capture-3.png formlayout_plastique7.png qt4_editor_options_Axes.png
Original issue: http://code.google.com/p/spyderlib/issues/detail?id=608

From pierre.raybaut on 2011-04-03T05:36:01Z
As I wrote on the Spyder discussion group, you are very welcome to contribute to the project.
However, if you intend to change code in formlayout.py, know that this is a project in itself with specific license and copyrights. So, you may contribute to this project, so that everyone can take benefit from these enhancements -- that's the open-source spirit anyway.
As I wrote on the discussion group, the Matplotlib "qt4_editor" package (figureoptions.py, formlayout.py, ...) is a fork of the Spyder's Matplotlib patch (and not the opposite!).
So the new feature implementing process should be:
maintaining the Matplotlib's patch in Spyder --> testing --> submitting a patch to Matplotlib.
Labels: -Type-Defect Type-Enhancement

From pierre.raybaut on 2011-04-03T10:04:54Z
Yes I submit these changes just after posting my comment here, in case you want to check out the sources on the project page. But I don't maintain formlayout directly: I maintain it inside Spyder and I merge the changes with the project main branch from time to time. Today was a good occasion to do so.

From<EMAIL_ADDRESS>on 2011-04-03T07:31:13Z
I see you recently made some updates to formlayout. If my changes still make sense, I will of course submit them. From what I can remember the main feature addition was allowing multiple fields on the same horizontal line, which can help reduce the space required by the dialog.

From<EMAIL_ADDRESS>on 2011-06-11T10:48:30Z
I've just add some suggestions of feature enhancement in the issues list of: https://code.google.com/p/matplotlib-qt4mod/ Regards
Francois

From<EMAIL_ADDRESS>on 2011-04-09T02:42:43Z
Here's an updated formlayout.py for discussion: https://code.google.com/r/butterw-spyder/source/browse/spyderlib/widgets/formlayout.py?r=fef6a07acf4c47d43b0b21397965b369296143df I'm not clear about the workflow for submissions to spyder.
My text editor setting is set to strip final spaces, is this OK ?
First a comment on the float validation feature that appeared in 1.0.10: Depending on use, disabling the OK/apply buttons is not always that helpful to the user.
In a multitab GUI, it could be difficult to find the field which is causing the problem. Would coloring the empty float field be feasible ?

The main addition is a CheckboxLine entry, which allows multiple widget on the same line to save screen space. 2 types of widgets are supported: a checkbox corresponding to a bool and a textbox converted to a float. No validation is performed on the float fields.

When the parent is specified, the default location of the dialog is changed to allow better matplotlib usability. The figureoptions dialog will appear to the right of the figure, rather than directly on top of it. This hack has worked for me, but could certainly be improved.

Cosmetic changes: remove the default window hint '?' button. Couldn't figure out its use.
Allow for styling. Personally I like the style 'plastique' better than the native style across windows platforms (XP, seven)

From<EMAIL_ADDRESS>on 2011-06-12T08:02:30Z
I've just found those words from the creator of PyQwt about the Qwt 6 release.
From: Gerard Vermeulen <gav451 <at> gmail.com>
Subject: Re: Qwt 6.0 and python
Newsgroups: gmane.comp.graphics.qwt.general
Date: 2011-05-21 10:16:19 GMT (3 weeks, 1 day, 4 hours and 43 minutes ago)
I am not going to support Qwt-6.0, since I am heading for a pure
PyQt/Python solution
more directed to scientific plots.
I am willing to help people port PyQwt to Qwt-6.0 (there is a code
generator to translate
C++  header files to the interface files for SIP -- the interface
generator for PyQt).
Best regards -- Gerard

From<EMAIL_ADDRESS>on 2011-06-11T11:19:54Z
In fact guiqwt could be an excellent example of possible matplotlib interactive plotting GUI enhancements.
It's too sad that qwt as not the same "output" quality and plotting possibility as matplotlib because despite this it really rocks.

From<EMAIL_ADDRESS>on 2011-06-11T16:38:57Z
Another issue is that qwt/pyqwt adds a dependency that could be tricky
to build (I'm using win64).
So far this has prevented me from trying out guiqwt.

From pierre.raybaut on 2012-03-18T14:09:02Z
Labels: -Type-Enhancement Type-Enh

From ccordoba12 on 2014-08-23T12:50:02Z
As Pierre mentioned before, figureoptions is part of Matplotlib now, so all proposed changes should go to it instead of us.
Status: WontFix


docs: fix nuxt/test-utils preview on README

Currently preview image is broken because of wrong extension

Thanks!

Thanks!