Create MenuBars

How do I create menubars? Can we make it possible to create menubars before the application window is created in order to have an instant loading of it?

How do I create menubars?

There's no way for that atm.

Can we make it possible to create menubars before the application window is created in order to have an instant loading of it?

Actually this idea sounds kool, but on the other hand, it might be a bit unintuitive to create the menubar before the application, and could lead to a boilerplate API implementation.
I don't exactly understand, what do you mean by instant loading tho.  It might just be a bug in Tk when communicating with that fancy global menubar of the Mac.

So when you make a window or instance of Tk on Mac the menu at automatically loads a boilerplate menu at and it takes a moment to load the desired one giving a really weird and off putting effect/look. The boilerplate menu at seems to be rooted in tk as it shows in Tukaan too. As for the boilerplate stuff I'm not bothered by that too much and if done right can be eliminated

There's no way for that atm.

Why not?

Why not?

Well, because I haven't implemented it yet 😅

But I have some ideas 🙂 Wait a minute.

Because all windows have a menubar on macOS, it's important to define one, either for each window or a fallback menubar for the root window. Otherwise, you'll end up with the "built-in" menubar, which contains menus that are only intended for typing commands directly into the interpreter.^1

Ahh, now I see why it's important to have the menubar widget ASAP.

[20:33]	Moosems	rdbende Is there any way to create a menubar before the window without causing it to create one on its own?
[20:34]	rdbende	yeah
[20:34]	rdbende	i mean on linux and windoze
[20:34]	rdbende	i don't think it's possible on mac
[20:35]	rdbende	but why do you need that?
[20:35]	Moosems	For mac XD
[20:35]	Moosems	Because of the automatic menubar creation thing with tkinter
[20:36]	Moosems	How is it done on linux?
[20:37]	rdbende	it doesn't have any menubar on linux
[20:37]	rdbende	by default
[20:37]	rdbende	even if i choose to have a global menubar (because the global menubar thingy in Plasma works only with QT i guess)
[20:43]	Moosems	Oh
[22:11]	rdbende	Moosems why do you need it? Do you want an empty menubar at start?
[22:11]	rdbende	just wondering what i could do to make it better in tukaan
[22:14]	Moosems	Kinda, I want to have the menubar come up blank or filled if unspecified but I want to have the menubar not go to the default Tk demo at all if I specify a menubar or create one

[20:37]	rdbende	even if i choose to have a global menubar (because the global menubar thingy in Plasma works only with QT i guess)

Maybe it would be possible with Dbusmenu


Greenkeeper/aws sdk 2.147.0

Coverage remained the same at 100.0% when pulling a0da61ec0c89acdd81df84bf476eb2c063c9d888 on greenkeeper/aws-sdk-2.147.0 into 40642fde18860d944b4442d650adb48ea41759f7 on master.


Support for multiple slash

Fix for #257

@alpe if you have some ideas on how to fix this, feel free to just take my test and submit a PR. I haven't started looking into how to fix it yet.

👍 The test passes with the -L flag, now.


SearchAnchor.bar's openView break composing text.

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce
Input some composing text in SearchAnchor.bar, openView will be triggered by onChange. Then the composing text will not restore in new TextFiled. By reading source code and debugging, I believe it reads TextEdtingValue (which contains composing property) from SearchAnchor.bar and set it to SearchBar. So I suppose that the composing text should be kept, but it was not.
Code sample
see https://github.com/sun-jiao/flutter/blob/master/examples/api/lib/material/search_anchor/search_anchor.3.dart
change line 49 to SearchAnchor.bar()
Screenshots or Video

Screenshots / Video demonstration
Upload media here

Logs
No response
Flutter Doctor output
Doctor output
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.10.2, on Fedora Linux 38 (Workstation Edition)
    6.2.15-300.fc38.x86_64, locale zh_CN.UTF-8)
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
[✓] Chrome - develop for the web
[✓] Linux toolchain - develop for Linux desktop
[✓] Android Studio (version 2022.2)
[!] Proxy Configuration
    ! NO_PROXY does not contain ::1
[✓] Connected device (3 available)
[!] Network resources
    ✗ A network error occurred while checking "https://pub.dev/": Connection reset by peer

! Doctor found issues in 2 categories.

Hi @sun-jiao. Thanks for filing this issue. I am unable to reproduce the issue. Can you give a further description of the actual vs expected behaviour?
Details

// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import 'package:flutter/material.dart';

/// Flutter code sample for [SearchAnchor] that shows how to fetch the suggestions
/// from a remote API.

const Duration fakeAPIDuration = Duration(seconds: 1);

void main() => runApp(const SearchAnchorAsyncExampleApp());

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('SearchAnchor - async'),
        ),
        body: const Center(
          child: _AsyncSearchAnchor(),
        ),
      ),
    );
  }
}

class _AsyncSearchAnchor extends StatefulWidget {
  const _AsyncSearchAnchor();

  @override
  State<_AsyncSearchAnchor> createState() => _AsyncSearchAnchorState();
}

class _AsyncSearchAnchorState extends State<_AsyncSearchAnchor> {
  // The query currently being searched for. If null, there is no pending
  // request.
  String? _searchingWithQuery;

  // The most recent options received from the API.
  late Iterable<Widget> _lastOptions = <Widget>[];

  @override
  Widget build(BuildContext context) {
    return SearchAnchor.bar(suggestionsBuilder:
        (BuildContext context, SearchController controller) {
      _searchingWithQuery = controller.text;
      _FakeAPI.search(_searchingWithQuery!).then((value) {
        final List<String> options = value.toList();
        if (_searchingWithQuery != controller.text) {
          return _lastOptions;
        }

        _lastOptions = List<ListTile>.generate(options.length, (int index) {
          final String item = options[index];
          return ListTile(
            title: Text(item),
          );
        });
      });

      // If another search happened after this one, throw away these options.
      // Use the previous options intead and wait for the newer request to
      // finish.

      return _lastOptions;
    });
  }
}

// Mimics a remote API.
class _FakeAPI {
  static const List<String> _kOptions = <String>[
    'aardvark',
    'bobcat',
    'chameleon',
  ];

  // Searches the options, but injects a fake "network" delay.
  static Future<Iterable<String>> search(String query) async {
    await Future<void>.delayed(fakeAPIDuration); // Fake 1 second delay.
    if (query == '') {
      return const Iterable<String>.empty();
    }
    return _kOptions.where((String option) {
      return option.contains(query.toLowerCase());
    });
  }
}

Video

https://github.com/flutter/flutter/assets/53122008/6a29f01d-d89c-43e6-86aa-05b028dc7583

Hi, @dam-ease are you using an IME supporting composing text? I'm using Gboard-Simplified Chinese. And I tested that Gboard-Japanese also have the same issue.

Yes, I am.
Just need to get further description of the actual vs expected behaviour?

I mean, I typed something in SearchAnchor.bar, which is composing. And it was set in SearchBar, in which the text is no longer composing. The expected behaviour is that the composing text should be kept.

When using Chinese Pinyin input, this can be very annoying. For example, when typing "[lan]" (composing), you may get "蓝" (blue) or "懒" (lazy). However, when the input action triggers openView, the composing text is not preserved, the input method will not treat the first letter as part of the composing text. Therefore, the actual input content is "l[an]" (only "an" is composing), and you will get "l安" (l safe) or "l按" (l press) instead. Users will have to manually delete the first letter in the SearchBar and re-enter it, which brings a very bad user experience.

Hi @sun-jiao. Thanks for the detailed explanation. I am still unable to reproduce this following the steps you highlighted (see the video attached) on the latest stable channel. Can you provide details on the device/emulator you are using?
Video

untitled.webm

Gboard Settings - Languages - Chinese, turn on inline composing.

Here is the settings screen on my key keyboard. Can you share details of the name of the device/emulator you are reproducing this on?

I can reproduce this on OnePlus 8T and Google Pixel (1st gen).
Gboard <IP_ADDRESS>8826899-beta-arm64-v8a

@sun-jiao Thanks for the update and your patience. I tried to replicate it and going by your explaination here, I see following:

Upon typing i:

Upon typing an:

So, the composing text is rendered after typing an, but expected behavior is, it should preserve the composing text while typing first letter itself. Is this a correct interpretation of the issue you are reporting ?

@darshankawar yes, I tries to fix it but failed.

Hi @sun-jiao. Thanks for the detailed explanation. I am able to reproduce the issue both with SearchAnchor.bar and SearchAnchor.
Video on Android

SearchAnchor
SearchAnchor.bar

Video on macOS

https://github.com/flutter/flutter/assets/53122008/dfdc439d-2bf4-4fc4-9e26-2adbc30cec8a
https://github.com/flutter/flutter/assets/53122008/20b88e36-13fa-43f4-8303-3f9724da78cd

Flutter doctor -v

[✓] Flutter (Channel stable, 3.10.3, on macOS 13.3 22E252 darwin-arm64, locale
    en-NG)
    • Flutter version 3.10.3 on channel stable at /Users/dammya/sdks/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision f92f44110e (5 days ago), 2023-06-01 18:17:33 -0500
    • Engine revision 2a3401c9bb
    • Dart version 3.0.3
    • DevTools version 2.23.1

[✓] Android toolchain - develop for Android devices (Android SDK version
    32.1.0-rc1)
    • Android SDK at /Users/dammya/Library/Android/sdk
    • Platform android-33, build-tools 32.1.0-rc1
    • ANDROID_HOME = /Users/dammya/Library/Android/sdk
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E222b
    • CocoaPods version 1.11.3

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

[✓] Android Studio (version 2021.2)
    • Android Studio at /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
      11.0.12+0-b1504.28-7817840)

[✓] IntelliJ IDEA Community Edition (version 2022.3.2)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • 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

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

[✓] VS Code (version 1.78.0)
    • VS Code at /Users/dammya/.Trash/Visual Studio Code 20.07.05.app/Contents
    • Flutter extension version 3.50.0

[✓] Connected device (5 available)
    • sdk gphone arm64 (mobile) • emulator-5554                        •
      android-arm64  • Android 11 (API 30) (emulator)
    • iPhone 14 (mobile)        • 5FE8DE93-0F4C-45BA-8BED-BC9CD69B35D1 • ios
      • com.apple.CoreSimulator.SimRuntime.iOS-16-4 (simulator)
    • iPhone 14 Pro (mobile)    • DCF2031A-7EA9-42FF-8CD4-D4584F3E7A6D • ios
      • com.apple.CoreSimulator.SimRuntime.iOS-16-4 (simulator)
    • macOS (desktop)           • macos                                •
      darwin-arm64   • macOS 13.3 22E252 darwin-arm64
    • Chrome (web)              • chrome                               •
      web-javascript • Google Chrome 113.0.5672.126

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

• No issues found!

/cc @Renzo-Olivares from triage.

Hi @sun-jiao, this is somewhat expected since doing a back gesture causes the Search field to lose focus which clears its composing region. I also see this behavior with a regular TextField.
When I try this in a native android TextField like in the messages app or gmail search field, this is also the behavior I experience. Do you experience a different behavior in native Android fields?

OK, thanks for the reply.


Remove InputGuard, refactor test components without it

Rationale: InputGuard is unsafe to use; components for test provide a bad example.
Explanation: The key problem is that after a channel is closed, it never blocks reads. The existing implementation leads to a dead select loop, which eventually exits when select randomly chooses another execution branch. Updated component implementations provide a more accurate example of handling closed channels in go.
Additionally, keeping a map of inputs is expensive and totally unnecessary, as it can be seen from the updated impl.
Finally, if we were to preserve InputGuard-s for some reason, the implementation would have to be changed for safety. Consider what would happen if you accidentally Complete()-d a non-existing port. What would happen if you accidentally Complete()-d the same port twice?

@akokhanovskyi I agree InputGuard is error-prone and probably it isn't straight-forward either.
Now that we are at it, I'd like to ask for your ideas about solving the original problem that InputGuard was targeting. The problem is not handling closed channels, the problem is simplifying handling of multiple channels in the same process. InputGuard was my first experiment in this area.
The most typical situation is the following. We have some component C which has multiple inports, e.g. In1, In2, In3. Behaviour of the component is: read inputs in1, in2, in3 on all of its inputs, and then apply some function f(in1, in2, in3) to get the result. Typically, result is then sent to its output. Once all of its input channels are closed, the process terminates.
Components like this are so common, that doing manual select logic every time is very repetitive. Ideally, there should be some easy to use API for this. And ideally, it shouldn't use reflection, because using reflection on every activation of a process is expensive (this was the main critique for GoFlow v0).

Right, staying low on reflection makes perfect sense. So far, the best option that comes to my mind is to provide some code generation tool that would reduce the amount of boilerplate to be written. I am not ready to comment on the functionality or usefulness of such a tool, though.
On the other hand, could a few small examples illustrating typical use cases fit the bill as the MVP? I could use a few of those myself when starting with goflow :)

I tried to think of a solution on the weekend but could not come up with anything that would work without generics or reflection. I guess we can do with heavy boilerplate for now.
As per examples, all I have currently is the tests and #53 which I'm using as a playground. This is all I can offer at this point, because my time to work on this project is very limited.


use go.dev replace golang.org

why not use go.dev to replace golang.org ?

This is addressed in https://github.com/owenthereal/goup/commit/40d393243bd9bb6ce65fce6ef202c5ae900ab3b4


Update slf4j-simple to 2.0.7

About this PR
📦 Updates org.slf4j:slf4j-simple from 2.0.3 to 2.0.7
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.slf4j", artifactId = "slf4j-simple" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "org.slf4j", artifactId = "slf4j-simple" }
}]

labels: test-library-update, early-semver-patch, semver-spec-patch, commit-count:1

Superseded by #249.


Make application services longer lived

Motivation
Application services will likely have to handle multiple queries while the application's UI frontend is executing. It would in those cases be best to ensure that the Wasm instance is already running to answer those queries. It could also allow keep track of volatile "session state" in the service type, but this should be discussed some more.
Proposal
Use a similar approach used for contracts, where the service type instance is stored in a global variable and reused for the queries.

As discussed, we're going to persist the last Wasm instance for each chain ID / application ID. Instances are destroyed if a new block extends the chain.


Not working if the Server is running in development mode

The plugin seems not to create the messages if i start the server in development mode.

I fixed this bug in commit a3a99e3bba92ad2a048f675e6a161f0177b3c0ef.


Potential Architecture Change (write up in progress)

If we decide to move forward with a new sales val strategy. We will need to overhaul config files and meta data output tables.
In terms of inputs we have a yaml file with columns for the groups we use
stat_groups: [
  "rolling_window",
  "township_code",
  "class"
]

We have a number of output tables that act as supplementary information to the sale.flag table. They aresale.parameter, sale.group_mean, and sale.metadata.
The sale.parameter data has the following columns:

run_id
sales_flagged
earliest_data_ingest
latest_data_ingest
iso_forest_cols
res_stat_groups
condo_stat_groups (generated in the script by removing a column - potential problem here)
dev_bounds
ptax_sd
rolling_window
date_floor
short_term_owner_threshold
min_group_thresh

The sale.group_mean table is comprised of

group - (a single string appended with a _ separator, for example - 201703_27_295 (rolling_window_township_class) )
group_mean
group_std
group_sqft_std
group_sqft_mean
group_size
run_id

The sale.metadata table is comprised of

run_id
long_commit_sha
short_commit_sha
run_timestamp
run_type

Changes needed
Groupings that aren't native columns
Right now, the yaml input as a column works nicely with the output structure. In the case of new potential splits. It won't be so clean.

New geographies currently ingest from an excel file

Potential solutions

Build excel data into an existing table or view?

New age and size bins

Potential solutions

Binning done within sql query

Update for only a tri

This new methodology (for now) would only be run on 1 tri. We need to add that option
Potential solution - add a yaml input as tris that could include 1-3

Different groupings for single/multi-family + condos in the near future

Single family groups would theoretically contain time window, geographies, size, and age, whereas multi-family would be the same but excluding a size grouping
The same type of thing will happen when we go to run condo groupings. It is possible that we will decide on yet another distinct set of groups for condos. Currently, the condo groups are dynamically created by dropping an element of a list in the script, we should probably put this into an input config file.
These changes will probably need to have new columns introduced in the output tables.

Can old tables and new tables live together?

Given all of these changes, we can probably expect new meta data columns, or adjusted existing columns. Is there a way to do this and make the old format work with the new? Or should we archive the old tables for now?

Eventual Glue script change

This isn't as urgent because we can do all of this with local scripts for the time being. Currently in our glue job we use job parameters instead of a config file. We should think about alternatives to this because it might be messy to try and implement it. Glue job params already only take strings as native input so we are already parsing around that.

Some thoughts on the design for the necessary changes following a discussion with @wagnerlmichael:
Groupings that aren't native columns

Right now, the yaml input as a column works nicely with the output structure. In the case of new potential splits. It won't be so clean.

New geographies currently ingest from an excel file

Potential solutions
Build excel data into an existing table or view?

New age and size bins

Potential solutions
Binning done within sql query

I like the idea of storing an Excel or CSV file in this repo and then writing a helper Python script that we can use to translate it into a Pythonic data structure for use in binning. We may or may not want to reference this data structure in the parameters table, but either way we would be able to reconstruct the geographies used for a given run based on the commit hash.
We could do the same with age and size bins, or we could store their bin definitions in the YAML config file (and by extension the Glue job) since the bin ranges will probably be simpler than the geography groupings.
Update for only a tri

This new methodology (for now) would only be run on 1 tri. We need to add that option
Potential solution - add a yaml input as tris that could include 1-3

I like the idea of the YAML input value, and we could also consider adding this to the parameter table!
Different groupings for single/multi-family + condos in the near future

Single family groups would theoretically contain time window, geographies, size, and age, whereas multi-family would be the same but excluding a size grouping
The same type of thing will happen when we go to run condo groupings. It is possible that we will decide on yet another distinct set of groups for condos. Currently, the condo groups are dynamically created by dropping an element of a list in the script, we should probably put this into an input config file.
These changes will probably need to have new columns introduced in the output tables.

We decided to try treating housing type as a variable that can be set via a YAML input value (or Glue job parameter) such that if different housing types require different groupings we can define different sets of groupings for them via the stat_groups parameter.
Can old tables and new tables live together?

Given all of these changes, we can probably expect new meta data columns, or adjusted existing columns. Is there a way to do this and make the old format work with the new? Or should we archive the old tables for now?

We think that as long as we're just adding columns, schema changes to the metadata tables should be fine and should not destroy old data, but Michael is going to confirm this before we move forward.
Eventual Glue script change

This isn't as urgent because we can do all of this with local scripts for the time being. Currently in our glue job we use job parameters instead of a config file. We should think about alternatives to this because it might be messy to try and implement it. Glue job params already only take strings as native input so we are already parsing around that.

Yeah, I also don't love the Glue param system. Ideally I'd like to refactor this project to use our Batch action instead of Glue, but that's a little bit speculative at this point. Let's keep an eye on this and I think the constraints of the Glue param system will help us decide how to refactor it.


dotenv-load should fallback to environment variables when .env (or key inside it) is not found.

I have something like this in my justfile.
set dotenv-load

DB_URI := "postgres://$POSTGRES_USER:$POSTGRES_PASSWORD@$POSTGRES_HOST:$POSTGRES_PORT/$POSTGRES_DB"

DB_URI_PARAMS := "?sslmode=disable"

some-cmd:
	some-cmd --db "{{DB_URI}}{{DB_URI_PARAMS}}"

And my .env looks like
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_DB=somedb
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres

This works when .env is present. But in some situations, .env will not be present and there I want to fallback to environment variables.
Currently, it does not seem to work.

Checkout Getting and Setting Environment Variables - Just Programmer's Manual on how to access system environment variables with Just. 😃

My bad. I was running this in a docker container and compose was not passing the env correctly. Closing this.
The script in original issue actually looks at both places - first at actual environment variables, then at .env file.


Redundant field - Name and Title

URL: https://credentials.demos.verida.io/dashboard
Steps to replicate:

Go to https://credentials.demos.verida.io/dashboard
Click Sent
Select an Issued Test/Credential

Actual Result: Name and Fields shows the same value
Expected Result:  The value for these fields is from the 'Document Type' field. Is this intentional? Shouldn't it just be displayed in a single field?

title and name are two properties of the credential schema. Actually they are from the base schema, inherited by the credential schema.
title is the title of the message sent to the recipient
name is the name of the credential when displayed in the Vault
Given they have 2 purposes, we could challenge their values
name could be "COVID-19 PCR test result"
title could be "New COVID-19 PCR test result available"
(To also define for the other types of credentials)
Additionally, we could challenge having the title displayed in this  "Credential Details" modal window
cc @cmcWebCode40 @RochelleBondoc


Team header transition - mobile

Make team header use hooks instead of container
Make team header be part of section list
Hook up scroll event offset to make smaller header appear on mobile

cc @keybase/y2ksquad

lets discuss if we want to make this header actually use the real navigation options and if we want to make it generic so we can have this kind of header elsewhere? lets discuss

I couldn't think of another example of plumbing from the component to the navigation header (we'd use setParams, probably?) so I didn't go far down that path. What do you think?


Remove dependency on Click

Click is used by CleverDict solely for the purpose of locating the best (operating system specific) folder to save the autosave JSON files.
If it were possible to replicate this function (only) in CleverDict itself, it would make CleverDict completely dependency-free again.

Fixed in Version 1.8rc1:
pip install -i https://test.pypi.org/simple/ cleverdict==1.8rc1

Fixed in Version 1.8rc1:
pip install -i https://test.pypi.org/simple/ cleverdict==1.8rc1


Multi-chain token lists

Token lists are currently geared towards one-chain-per-token, and lead to workarounds such as Optimism's:
    {
      "chainId": 1,
      "address": "0xc011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f",
      "name": "Synthetix",
      "symbol": "SNX",
      "decimals": 18,
      "logoURI": "https://ethereum-optimism.github.io/logos/SNX.svg",
      "extensions": {
        "optimismBridgeAddress": "0x39Ea01a0298C315d149a490E34B59Dbf2EC7e48F"
      }
    },
    {
      "chainId": 10,
      "address": "0x8700daec35af8ff88c16bdf0418774cb3d7599b4",
      "name": "Synthetix",
      "symbol": "SNX",
      "decimals": 18,
      "logoURI": "https://ethereum-optimism.github.io/logos/SNX.svg",
      "extensions": {
        "optimismBridgeAddress": "0x136b1EC699c62b0606854056f02dC7Bb80482d63"
      }
    },
    {
      "chainId": 42,
      "address": "0xc011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f",
      "name": "Synthetix",
      "symbol": "SNX",
      "decimals": 18,
      "logoURI": "https://ethereum-optimism.github.io/logos/SNX.svg",
      "extensions": {
        "optimismBridgeAddress": "0xc00E7C2Bd7B0Fb95DbBF10d2d336399A939099ee"
      }
    },

Rather than doing this, I'd like to propose an update to the format along the following structure:
    {
     "deployments": [{
          "chainId": 1,
          "address": "0xc011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f",
          "extensions": {},
        },{
          "chainId": 10,
          "address": "0x8700daec35af8ff88c16bdf0418774cb3d7599b4",
          "extensions": {},
        },{
          "chainId": 42,
          "address": "0xc011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f",
          "extensions": {},
        }
      ],
      "name": "Synthetix",
      "symbol": "SNX",
      "decimals": 18,
      "logoURI": "https://ethereum-optimism.github.io/logos/SNX.svg",
      "extensions": {},
    }

This avoids people leveraging the token list from having to match symbols/names against eachother, which is a fairly perilous process with the larger token lists. Any suggestions here would be greatly appreciated.

It's recommended to use the schema outlined here that utilizes the extensions field. You can use this package to automatically add the mappings to your existing token lists.


Node is always oom

I gave 32G to boot the node, but always oom

We added some improvements for this in an upgrade to use a newer RocksDB version. In addition, you can set the node to use goleveldb, which doesn't have memory issues.

We added some improvements for this in an upgrade to use a newer RocksDB version. In addition, you can set the node to use goleveldb, which doesn't have memory issues.

thanks, we will try goleveldb

I have the same problem. I tried switching the node to goleveldb, but after that, it doesn't start.

@Unique-Divine could you help me, please?


Add an Enum subclass to silx.utils

This PR adds a subclass of enum.Enum in silx.utils with a few extra convenient class methods.
It makes use of it in silx.gui.plot3d and removes some code duplication.

The silx Enum class seems nice but what is the question related to the question label ?

yes the questions:

Do we want to extend the Enum type?
Is it a good idea to use such Enum in APIs in order to allow to set a property which value is in an Enum from either the Enum member or its value (as I started to do in plot3d)?

For me having our own extension of Enum seems useful. Until it stays light. Having a common implementation of some utils functions will make the code more 'generic':

members
from_value (especially for configuration files)
...

Usage will be up to the developers I guess.

So useful to more than one person...
renamed asmember to from_value.


Rubocop places commas into comments, generating invalid ruby code

When formatting the following code, rubocop will generate invalid ruby:
class Bar
  def initialize(*args)
  end
end

class Foo < Bar
  def initialize
    super(
      'firstKey' => [ 'value a', #description1
                      'value b' #description2
      ],
      'secondKey' => 'Bar'
    )
  end
end

Expected behavior
Not to generate invalid ruby code
Actual behavior
Invalid ruby code is created due to incorrectly handling the comment and placing a comma on the comment line:
class Bar
  def initialize(*args)
  end
end

class Foo < Bar
  def initialize
    super(
      'firstKey' => ['value a', # description1
                      'value b'] # description2,
      'secondKey' => 'Bar'
    )
  end
end

Steps to reproduce the problem

Create new ruby file
add original code snippet
bundle exec rubocop  -x --safe-auto-correct new_file.rb
Run again, verify invalid ruby code has been generated

RuboCop version
$ [bundle exec] rubocop -V
0.80.0 (using Parser <IP_ADDRESS>, running on ruby 2.6.5 x86_64-darwin18)

whoever works on https://github.com/rubocop-hq/rubocop/issues/7776 should also work on this issue.

I am working on this issue.


Custom CSS Variable-Test

Issue
Can the tests be made in some way that even the following way as given in the screenshot also works in addition to the way it is already working, i.e. defined separately for each class? Maybe just check if it has the property rather than checking for the code?
Link
https://learn.freecodecamp.org/responsive-web-design/basic-css/use-a-custom-css-variable
Browser and OS

Browser Name: Google Chrome
Browser Version: 69.0.3497.100 (Official Build) (32-bit)
Operating System: Windows 7

Screenshot

It's not really a good pattern.

@raisedadead / @Bouncey can you have a look?

@thecodingaviator that's an anti-pattern for us trying to teach something.
Here is the analogy:
I understand that maybe convenient by the looks of your suggestion:
.selectorClass1, .selectorClass2, .selectorClass3, .selectorClassN {
   property-name: value;
}

And maybe even helpful, when you are for example creating themes for a site, where its simple to update one line to change a color property for instance.
But,
When we are teaching these to users, who are especially new to coding its very easy for them to get side tracked from the core concepts.
Here, they are learning to modify a property of different class objects?
Now, that you have put this shorthand in my thought, I feel this challenge could have been made better, by making it so that they update different values to the different class objects, like background in one could be gray and orange in another or something.
The crux of the challenge should be that they understand they are mutating different class objects.

Coming to your specific query, which I will rephrase to make it generic:
"Can tests be made lenient to accept multiple valid code solutions?"
Yes. But if there is a conflict that makes someone misinterpret the instructions in the challenge to write a solution that although valid is not conceptually correct, then No. We are quite opinionated on this as a learning platform especially for users who are new to coding.

Yes. But if there is a conflict that makes someone misinterpret the instructions in the challenge to write a solution that although valid is not conceptually correct, then No.

@raisedadead I'm not sure hoe using multiple selectors with a , could make the code 'conceptually wrong'.

As I said in the analogy:

Here, they are learning to modify a property of different class objects?

@raisedadead Ahh okay!


How do I use this with Apple Mail?

Usually, I set up DNS records to get this to work. Need a little guidance here. Also, how can I review logs?

Hi @playent, its works exactly as another mail server regarding DNS.
Add a MX entry that points to your mail server IP. That's all.
The way to do that depends on the way you manage your DNS server (locally using zone file, or using the web interface of your DNS provider like Godaddy, Gandy...)
For the logs, here it's like every docker container: docker logs -f mail
If you're new to docker, I recommend to have a look to the docker documentation which is really easy to understand.
Let me know if you have other questions.
Hope this helps.


[swift-3.1-branch][SDK] Convert URLError.Code to a struct and add missing cases

Explanation
URLError.Code was an enum, which is a bad idea because it can lead to crashes if the enum doesn't cover a legitimate error code. Convert it to a struct to match how CocoaError.Code is implemented.
Also add the missing cases .dataLengthExceedsMaximum and .appTransportSecurityRequiresSecureConnection, and fix the broken cases .backgroundSessionRequiresSharedContainer, .backgroundSessionInUseByAnotherProcess, and .backgroundSessionWasDisconnected.
This is a port of of apple/swift#7282.
Scope
This is technically a source-breaking change in that anyone with an exhaustive switch over all URLError.Code variants now has a non-exhaustive switch, but that's unavoidable when adding new codes, and so we probably shouldn't have used an enum to begin with. Very little, if any, code should be impacted by this.
This does fix a nasty crash, exposes some missing error codes, and future-proofs the type against more codes (since nobody can make an exhaustive switch any more, and we won't crash if we see a code that we don't recognize).
SR Issue
Fixes SR-3879 and SR-3881.
Risk
I don't think URLError is particularly well-tested. However, its implementation now matches that of CocoaError, so I don't believe it to be particularly risky.
Testing
The only testing that has been done is running the existing tests, which do cover the basic functionality (e.g. matching against one of the codes). But as I said, the implementation now matches that of CocoaError, so it should behave the same.

@swift-ci please smoke test

Oops, was smoke test the wrong one? Now there's 4 status checks.

Release branches need full tests. Also, please do include the information from the Swift 3.1 Release Process.

@swift-ci Please test

@jrose-apple I've updated the PR description accordingly.


How do you set users.session.duration?

How do I edit users.session.duration?
If I edit argocd-cm directly, any changes are reverted immediately by openshift.

Hi @rcfja , sorry for getting back late on this one.
Yes, any manual changes to the Argo CD Config map are reverted back by the operator. You can make use of the extraConfig feild in the Argo CD CR.
https://argocd-operator.readthedocs.io/en/latest/usage/extra-config/

thank you!


finalize terminal disablePersistence API

This PR fixes #118726

I am surprised myself but we actually haven't used the disable-prefix yet. That makes me wonder if can find an antonym of "persistence" which we use by itself or with the is-prefix, like transient?: boolean isTransient?: boolean (transient has been used for notebooks). The default would still be persisted terminals

That would be we use a different word for the feature only in the api though.

Sure

@jrieken should we discuss the name at the next API sync

I see we use persistent in EnvironmentVariableCollection, but it's a value given to the extension and optional booleans in the case of this API feel wrong weird when they default to false and I don't think we do this anywhere.
isTransient seems fine to me if we can't use persistent/persistence, there's always the docs to clarify.

Yeah, we will probably do a quick mention at the next API sync. Tho, I don't expect this to be controversial or anyone of you to be there to "defend" it.

Thanks so much @meganrogge!!! This will really improve the user experience for a lot of extensions.


ES6'ed your entire codebase ;)

Used arrow syntax for functions

I'm extremely against this.
Need more contributer opinions.

@KoryNunn please elaborate

I personally feel that it improves the readability of the code. and its 2017 already.

IMO arrows should only be used as lambdas, not top level/exported functions.
I have general disdain for syntactic flourish for flourishes sake.
Or to put it more vaguely: korynunn.github.io/jfwc
I'm aware that my opinions do not represent the whole.

@KoryNunn Though I do see where you are coming form and I agree that in lambda type situations arrow functions should always be used, I strongly feel that there is a place for them outside of the lambda context. As a general rule of thumb: use it when it increases readability and thus decreases the chance of human errors occurring.
So to summarise: I think it is properly used in this situation, but for a larger codebase it probably wouldn't be a good idea.

It is a bit too bad we didn't make this a named function originally for debugging purposes.

IMO arrows should only be used as lambdas, not top level/exported functions.

I tend to agree on this as well, especially if not named (aforementioned debugging issue). On the other hand, I want to welcome new contributions that don't change the major version drastically. We can always change it back as this is a backwards compatible change.

LGTCovfefed!

I totally covfefe it.
agree with @FrontEndCoffee. Even tho I'm not a great fan of arrow functions, I think they simplify the code in this kind of situations

Resisting ES6, especially for a new project is pretty silly, imo

Needs a rebase


Optimizing Clara local memory (JVM-side)

Background
I have implemented a number of variations in clara.rules.memory to address performance concerns we've seen.  I'm going to give a fairly lengthy overview here in the hopes of getting some feedback from you on what I've done so far before I put out a concrete pull request on this issue.

In profiling, we have several cases where Clara's local memory model can get into execution time performance issues.  The culprit in many of these cases is the clara.rules.memory/remove-first-of-each function.  This function has come up as a performance hot spot in past issues as well, but a new approach is likely needed now to deal with some of the workloads we've seen in our scenarios.
Clara's local memory model is currently organized in a way that sort of extends on the concept of Clojure transient collection types.  Clara's memory to the consumer is immutable and persistent.  This is a great feature that allows for Clara sessions to be treated as any other immutable, persistent data structure.  However, Clara has a "transient" memory state where memory is made to be mutable.  This mutable memory is visibile and used only when many updates are happening on the same thread/call stack, which is invisible to the consumer.  This is currently implemented via a few mutable field instance variables on the memory deftypes along with the usage of Clojure transient collections on a few of the top-level local memory data structures.
The performance issue that has been observed is due to the local memory transient state using immutable, persistent Clojure collections to hold sequences of elements, tokens, activations, etc.  This means that any time remove-first-of-each is called, we are typically going to be completely rebuilding new immutable collections.  We need to remove arbitrary items from these immutable collections, so we do not even have an efficient way to attempt to remove an item out of the collection.  There are no simple "remove nth" functions for Clojure sequential types, like vectors or lists.  Just to note too, we primarily are dealing with lists here.  Profiling has revealed on many occasions that remove-first-of-each is spending a lot of time rebuilding these collections.
Ideas
There are number of ideas of how to deal with this.  I'll try to briefly enumerate a few.

Idea:
Use something "indexed" on its items instead of sequential collections.  There are basically two options here, use sets or use maps.  Sets are not a good idea because we need to store facts that are equal to one another without losing the cardinality of those facts present in memory.  This leaves us with maps.  A map has the same issue as a set in that we cannot remove duplicates.  So it is natural to decide that a map should be keyed by items in memory with the value being the count of how many of those items remain in memory.  When the count reaches 0, the map entry can be removed entirely.  This is actually very similar to the approach taken with Drools (when dealing with logical insertions only, oddly enough; yet somewhat justified from their design perspective).
Pitfalls:
Facts in memory can be large.  They may also have inefficient hash codes.  There is really no guarantee that the items in memory make good and/or efficient keys in a hash map at all.  This can be a major problem in terms of efficiency of any approach to "indexing" based on arbitrary consumer-level facts given.  Tokens and activations can be even worse, since they are often aggregates over the facts in working memory.  We have used Drools extensively and have seen a lot of issues with some of our facts getting used by Drools as indexes into its working memory internal map structures.  Drools attempts to make this issue better, by wrapping facts with its own object type that caches the hash code of the underlying object in order to avoid recomputing it if it is not cached already by the given fact type.  However, this still ultimately leads to much more hashing needed than what Clara currently performs.  This would also be a significant overhaul in Clara to wrap all working memory elements with a wrapper type that was capable of caching hash codes like this, etc.

Idea:
Be "more mutable" in the transient state of local memory.  Instead of using persistent, immutable collections to hold elements, tokens, activations, etc. use mutable collections that have efficient operations for removing arbitrary items from the middle of a sequence.  The type that stands out here is a linked list.  The removal will be linear since we have to find the item to remove, but removal operation itself is constant.  This is the approach I've began to lean towards at this point.
Pitfalls:
a) Mutable collections will have to come from the host platform.  So CLJ and CLJS implementations of clara.rules.memory will need to diverge more than they currently are.  In my current work with this, I have focused entirely on the JVM side and do not plan on optimizing the CLJS side right now.  The CLJS has been left with the original implementation and I will not discuss it more for the time being.
b) The persistent local memory returned to the caller, needs to really be persistent and immutable.  This means the transient memory mutable collections must be made persistent prior to returning.  This complicates the operations to-transient and to-persistent! of the local memory model.
Putting it in practice
I have invested time in the idea (2) from above.  I do not see (1) as a feasible approach at this point in time and I'm not even convinced it is valuable enough to be worthwhile.  The good news is that I've had success in profiling with this approach.
We monitor the time it takes to run rule sessions against our datasets.  We log datasets as "long running" when the time it takes the rule session to insert all facts of our dataset and fire exceeds one minute.  One minute for us is significant and way over the average case per dataset.  Our average case is more like 200-800 milliseconds.  Obviously, when we see a dataset take one minute instead of 800 millisecond, it is time to investigate.
In Clara 0.11.1 several of the commits did bring down the number of "long running" datasets we have seen.  We had a few stubborn cases remaining that we have been trying to understand and find solutions to within the engine.  This has been a good testbed to find where Clara can still get significant performance improvements.
In a prototype using java.util.LinkedList instead of Clojure persistent, immutable collections, I found that all of our "long running" datasets were resolved.  We still have cases where more time is being spent than desirable (less extreme outliers from the average), but eliminating the above one minute case is still significant.  This led me to have confidence that memory really does need an overhaul when it comes to efficient removal of elements, tokens, activations, etc which is common during insertion and the fire rules loop.
Concerns
I feel pretty good about the changes I've made in that they optimize the remove-first-of-each path that has came up in profiling as a bottleneck on a number of occasions.  The negative side to this is that this is JVM specific, so would have to be replicated separated for CLJS if the need came up from other consumers.  I suspect these larger dataset situations will continue to be more common the JVM side, than the JS side though.  Another negative is that this does add additional complexity to the local memory implementation.  However, this is often the case with optimizations, so that isn't really a surprise.
The most alarming part of this change is that it can actually cause a significant degradation of performance in a workflow that was making heavy use of to-transient and to-persistent! of local memory.
An example being something like:
(reduce (fn [s items] (fire-rules (insert-all s items))) (mk-session rules) [[item1 item2 item3] [item4 item5]])

Every time insert, insert-all, retract, fire-rules, etc return to the caller, the memory has to be made persistent again via to-persistent!.  When memory changes are happening, we have to make memory transient again via to-transient.  The simplest approach is to just eagerly convert all persistent, immutable collections to Java mutable collections when calling to-transient and then back to immutable collections when calling to-persistent! and this is what I did initially.  In our workflow, it doesn't necessarily matter how fast to-transient and to-persistent! are because we call them rarely.  We are much more concerned with how the engine performs when processing bulk numbers of items at a time in a single insert + fire rules call.  However, there may be an argument that users may want to use Clara in a "streaming" style where batches of facts come separately and need to insert + fire rules + return to the caller efficiently.
I'd say at this point in time though, Clara's local memory and engine implementation favor the approach of inserting + firing rules in bulk instead of many smaller batches.  This change just makes this divide more extreme.
There are ways to try and get the "best of both worlds" here though.  The idea being that we could attempt to defer converting memory to transient or persistent on an as-needed basis.  This can be done, but there are complications.  On the to-persistent! side, it gets a little uglier to try to defer converting mutable collections to persistent ones.  The reason I say this is just because this is what the consumer directly has visibility to.  It would seem nicer if we could return common Clojure data structures all the way down at this point. If we attempt to defer on this side, we'd have to have our own new types returned that would presumably be seqable and translate to Clojure persistent data structures when any area of memory was explicitly accessed.
On the transient side, things are bit easier.  We can just continue to store persistent data structures in memory, until they have the need of being changed.  When we call to-transient all persistent data structures in memory are left alone.  When removing or adding to these persistent structures, the auto-convert to mutable collection types for the rest of the life of the transient local memory state.
When we call to-persistent! we convert to persistent only those parts of memory that are not already persistent data structures.  This can save time in practice since presumably only a small portion of memory is changed at a time, so a lot of the memory can be left alone in the mutable to persistent and vice versa path.
The downside is more complexity, as well as potentially still having the same performance degradation in the worst-case scenario.  That is if a significant portion of total working memory is changed every time the rules have insertions and are fired anyways.  I'd argue if existing working memory was changed extensively in each insert + fire rules call though, the rete algorithm may start to have deteriorating value since all of its stored state would continually be invalidated and need to be recomputed.

I'd be happy to see what you think about all of this.  If you want to see something more concrete, I can post a few links to commits that show various approaches I've taken to the above.  For now I'll leave it off.

I think we should optimize based on hard data for the workloads we have, and tune for other workloads when data arises showing a problem. I'd speculate that many of the "streaming" style workloads, with frequent transient-persistent transitions, have relatively small sessions and this might not even be a problem. So I'd prefer not to add complexity to support both of these loads until we have good evidence it's necessary. In other words, let's strongly tune for the workloads we know about and we can adjust that in the future. This also applies to the CLJS load.
One option we could pursue, either now or in the future, is to have multiple implementations of the WorkingMemory, with a reasonable default and allow the caller to specify the working memory implementation when constructing the session. It would have a reasonable default, of course, but a caller with specialized knowledge of the workload could choose something better for that case. We could add functionality in the future that swaps out the working memory implementation for a given session at runtime if, for instance, we see more than X transient versions of it created...but that should also be deferred until we have concrete evidence showing its benefit.
So my suggestion for now is to either 1.) strongly optimize the current implementation for your load, which we can refactor later or 2.) Create a new WorkingMemory implementation exclusively optimized for it (and perhaps not even with CLJS support at all), and enhance mk-session so the caller can provide a working memory (or a function that creates a working memory). I think either one is a reasonable path, based on hard data, with the ability to improve in the future.

Thanks for the feedback!  I'll be looking to get a pull request out for this today or tomorrow.
I believe for now I will be doing a single WorkingMemory still since it is fairly straightforward to use read-conditionals for the clj vs cljs divide still.  I also don't think I've significantly hurt the transient-persistent transition yet in a way that I think would be too aggressive.
I definitely think that you are correct that multiple memory implementations may be the way to go if we do get to a point where we are trying to optimize for these use-cases that differ quite a bit in where the performance bottlenecks are at.

All child tasks for this were closed, so I'm closing this. We can open a new issue for anything else we want to do.


added test for null channel component

some more updates to make sure MTH5 works with ChannelTS and RunTS having a single metadata object self._survey_metadata under the hood.

Codecov Report
Base: 79.77% // Head: 79.77% // No change to project coverage :thumbsup:

Coverage data is based on head (d591d6e) compared to base (7cfff22).
Patch coverage: 100.00% of modified lines in pull request are covered.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #114   +/-   ##
=======================================
  Coverage   79.77%   79.77%
=======================================
  Files         220      220
  Lines       14860    14860
=======================================
  Hits        11854    11854
  Misses       3006     3006

Impacted Files
Coverage Δ

mt_metadata/timeseries/run.py
75.93% <100.00%> (ø)

mt_metadata/timeseries/station.py
87.34% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Portfolio: validate contact form

I've implemented the following in this pull request,

Add the following features

When the user submits the form, you check if the email is in lowercase.
If the validation is OK, the form is sent.
If the validation is not OK, you show an error message to the user near the submit button informing them of the error, and the form is not sent.

Add styling for the error message

Hello code reviewers 👋😄 ,
This is the commit of my coding partner but somehow his profile is not showing.


To warn or to error, that is the question

This is a question for the community. What should be the default behavior of a @stable-ized function encountering type instability?

🎉 Error (current behavior; default_mode="error")
👀 Warning (default_mode="warn")

Comparison:

Advantages of error: (i) refuses to run with any type instability. It's sort of like the Rust compiler in that it guarantees certain behavior; (ii) does not flood the REPL output with messages as you just exit immediately.
Advantages of warning: (i) does not quit on the first instability, displays a warning for each unstable function throughout the stacktrace, which makes it easier to track down issues; (ii) allows you to run code without needing the allow_unstable function.

However, what should the default be? You can always set the default_mode yourself, or set it via Preferences.jl. If you have a particular point to would like to add you can comment it, otherwise please just vote using emojis (🎉 or 👀 )

Okay this is pretty one-sided in the favor of "error" by 5 votes to 0. So we'll keep it that way.


Add SO_REUSEPORT support to uv iomgr code

This fixes #11862.
This change brings the Node library back to parity with the other languages in supporting binding sockets with SO_REUSEPORT on Linux systems.
Manual testing with the Node examples indicates that this works as intended: without this change, attempting to bind two servers to the same port results in the second one failing. With this change, two servers can bind to the same port without errors.

[trickle] No significant performance differences

[microbenchmarks] No significant performance differences

[trickle] No significant performance differences

[microbenchmarks] No significant performance differences

Failures: #11899, #11188, and a Jenkins error.


microsoft/powershell container fails to launch with default settings

Steps to reproduce
Pull the latest microsoft/powershell image.
Launch and run a container instance.
yyyyyy\C:\temp
PS:_> docker pull microsoft/powershell
Using default tag: latest
latest: Pulling from microsoft/powershell
Digest: sha256:07c8b527ed5eaed52a67359e093984503dab00f56a7d165cc8b95d0c5df0bc65
Status: Image is up to date for microsoft/powershell:latest
yyyyyy\C:\temp
PS:_> docker images microsoft/powershell
REPOSITORY             TAG                 IMAGE ID            CREATED             SIZE
microsoft/powershell   latest              91e5725258dc        3 days ago          337MB
yyyyyy\C:\temp
PS:_> docker run -it microsoft/powershell
C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"pwsh-preview\": executable file not found in $PATH": unknown.
yyyyyy\C:\temp

Works when specifying the pwsh
PS:_> docker run -it microsoft/powershell pwsh
PowerShell 6.1.0
Copyright (c) Microsoft Corporation. All rights reserved.

https://aka.ms/pscore6-docs
Type 'help' to get help.

PS />

Expected behavior
Being able to launch the container.
PS:_> docker run -it microsoft/powershell
PowerShell 6.1.0
Copyright (c) Microsoft Corporation. All rights reserved.

https://aka.ms/pscore6-docs
Type 'help' to get help.

PS />

Actual behavior
Container failed to launch. It's still pointing to the preview

yunhwa\C:\temp
PS:_> docker run -it microsoft/powershell
C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"pwsh-preview\": executable file not found in $PATH": unknown.

Environment data

PS /> $psversiontable

Name                           Value
----                           -----
PSVersion                      6.1.0
PSEdition                      Core
GitCommitId                    6.1.0
OS                             Linux 4.9.93-linuxkit-aufs #1 SMP Wed Jun 6 16:55:56 UTC 2018
Platform                       Unix
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

I checked the mcr.microsoft.com/powershell container image and that one works.

Please move the issue to PowerShell-Docker repository if it is still actual.


fix(ci): build_manager_macos-ci-job

closes #380
Changes:

Enables the build_manager_macos github actions job and changes to the macos-latest build runner for this job

@fzyzcjy without having access to the CI logs I am unsure on what the error was from fastlane that caused the build issue. I tested the build command on my local machine and got the error Could not find rake-13.0.6 in any of the sources and subsequently fixed it following this suggestion to include a .bundle/config file containing BUNDLE_PATH: "../.gems"
Another suggestion from stackoverflow could be to change the setup-ruby step to have bunder-cache: false to prevent the build_mac_app step having bundle install use this cache

Figured out that actions run on PR's so I was able to debug and get this working by just using the macos-latest build runner for the build_manager_macos job :)

Great job!

@all-contributors please add @lunakoan for code


feat: switch build to tsup, change default to esm, fix related issues

This PR switches the build-tool to tsup and removes the custom build-setup. It switches the default-build to esm to align solid-testing-library with the rest of the ecosystem.

Jest used to require CJS builds (because CJS can't import ESM). If you have time, it would be great to check that this still works with Jest.

Sure thing! I grabbed https://github.com/yeunhakim93/solid-js-app (first result for solid-testing-library + jest withe green tests + jest), removed solid-testing-library from node_modules and linked my branch. Ran without problems.
I'm unsure if there is a way to automate this without pulling in massive extra infrastructre. If you have any idea on that, I would try to provide an automated test.

I have based my last updates on your work and fixed a few minor errors. Thanks for your PR, it saved me a lot of time!


IGAPP-1055: Improve events and lists

This pull request belongs to an issue on our bugtracker.
You can find it there by looking for an issue with the key which is mentioned in the title of this pull request.
It starts with the keyword IGAPP.
Especially the events list was quite bad performance wise and very laggy. Therefore I switched to the use of FlatLists instead of simple mapping and using PureComponents. This also fixes the problem that no thumbnails are shown in the events list or icons when navigating back to the home screen (https://issues.tuerantuer.org/browse/IGAPP-1056).

Things not working yet:

Event list items text goes outside of the screen
Footer (e.g. FeedbackBox) is shown even if not the end of the list

PureComponents were the only way I could really improve the performance with. Therefore I'd just keep that.
@f1sh1918 is it possible to use the flat list in the bottom action sheet as well? For lots of pois the performance won't be good otherwise.

Things not working yet:

Event list items text goes outside of the screen
Footer (e.g. FeedbackBox) is shown even if not the end of the list

PureComponents were the only way I could really improve the performance with. Therefore I'd just keep that.
@f1sh1918 is it possible to use the flat list in the bottom action sheet as well? For lots of pois the performance won't be good otherwise.

Things not working: Are you gonna fix or in separate tickets?
I would really like to remove the PureComponents and use a React.memo instead and functional components. If you don't want to adjust that here, just create a separate ticket for that.
yes you can pass any children to the BottomActionSheet. Just create a separate Ticket for that, since its way too much in this pr

1. Things not working: Are you gonna fix or in separate tickets?

I hoped one of you could possibly look into it since I don't have a lot of time at the moment. Has to be fixed here I think, releasing this to main is not good.

2. I would really like to remove the PureComponents and use a React.memo instead and functional components. If you don't want to adjust that here, just create a separate ticket for that.

I can try again but the performance was a lot worse when I tried it. But maybe I did something else that improved the performance.

3. yes you can pass any children to the `BottomActionSheet`. Just create a separate Ticket for that, since its way too much in this pr

Will do.

1. Things not working: Are you gonna fix or in separate tickets?

I hoped one of you could possibly look into it since I don't have a lot of time at the moment. Has to be fixed here I think, releasing this to main is not good.

2. I would really like to remove the PureComponents and use a React.memo instead and functional components. If you don't want to adjust that here, just create a separate ticket for that.

Feel free to try in this PR or in a new ticket but the performance was a lot worse when I tried it. But maybe I did something else that improved the performance.

3. yes you can pass any children to the `BottomActionSheet`. Just create a separate Ticket for that, since its way too much in this pr

Will do.

@steffenkleinle  i don't understand what you mean with footer is shown even if you are not at the end of the list. Can not reproduce that.

I converted Pure components to memo and can't see any performance differences.
Maybe you can check current state of the branch or tell me where performance issues occur

@steffenkleinle i don't understand what you mean with footer is shown even if you are not at the end of the list. Can not reproduce that.

If you go to munichs events and scroll down really fast you see the footer.

I tried converting to memo and couldn't see any performance difference but recognized the warning to i kept PureComponents.

I don't really mind then if we take the warning or the PureComponents.

@SteffiStuffel please review :)

looks good so far. @steffenkleinle one question the picture issue will be fixed via cms event limit? Just tested on test-cms and still recognized this issue

Which issue do you mean? Pictures not showing up for the events? I think this is just for the test cms because the pics do not exist in the cms anymore, its the same way for web and not reproducable with live cms. The problem described by martin in the issue though should be fixed by the performance improvements in this PR. Let me know if I am wrong herr though :)

Bug about not opening external links also occurs on other branch, so I guess it is because of my emulator. Maybe someone could check nevertheless this is only a problem I have.

Just because of the inappbrowser bug not working on android emulators.


v1.5.1 seems to be not deployed

error on npm with 1.5.1

Published it, thanks for pointing it out.


HTTPAppender sometimes hangs and can't be killed

When a remote server is playing up sometimes the HTTPAppender causes a pipeline to hang.
The pipeline cannot be terminated.
Stopping stroom attempts to kill the job, but it never shuts down.
Stack Trace attached.
20200409_HTTP_Stop.txt

Do you know if the remote server is not available or just being very slow to complete the request/response?

unlikely very slow, most likely failed, hangs last many hours


Fixes #62

Fixed spelling mistake. (exemple -> example)

Thanks. Curious: why did you delete the PR?

Sorry, I was clearing out stale forks + PRs


[chzzk:video] HTTP Error 400: Bad Request

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I intentionally remove or skip any mandatory* field

Checklist

[X] I'm reporting that yt-dlp is broken on a supported site
[X] I've verified that I have updated yt-dlp to nightly or master (update instructions)
[X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
[X] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X] I've searched known issues and the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue
[ ] I've read about sharing account credentials and I'm willing to share it if required

Region
South Korea
Provide a description that is worded well enough to be understood
./yt-dlp -vU --print-traffic https://chzzk.naver.com/video/3420720

Trying download any vod fails with yt_dlp.networking.exceptions.HTTPError: HTTP Error 400: Bad Request
Provide verbose output that clearly demonstrates the problem

[X] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[ ] If using API, add 'verbose': True to YoutubeDL params instead
[X] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
[debug] Command-line config: ['-vU', '--print-traffic', 'https://chzzk.naver.com/video/3420720']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>from yt-dlp/yt-dlp-nightly-builds [d1c4d88b2] (zip)
[debug] Python 3.12.5 (CPython x86_64 64bit) - Linux-6.9.11-amd64-x86_64-with-glibc2.40 (OpenSSL 3.3.2 3 Sep 2024, glibc 2.40)
[debug] exe versions: ffmpeg 7.0.2-3 (setts), ffprobe 7.0.2-3
[debug] Optional libraries: Cryptodome-3.20.0, certifi-2024.06.02, requests-2.32.3, sqlite3-3.46.1, urllib3-2.0.7
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests
[debug] Loaded 1832 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp-nightly-builds/releases/latest
director: Handler preferences for this request: urllib=0, requests=100
director: Checking if "requests" supports this request.
director: Sending request via "requests"
requests: Starting new HTTPS connection (1): api.github.com:443
send: b'GET /repos/yt-dlp/yt-dlp-nightly-builds/releases/latest HTTP/1.1\r\nHost: api.github.com\r\nConnection: keep-alive\r\nUser-Agent: yt-dlp\r\nAccept: application/vnd.github+json\r\nAccept-Language: en-us,en;q=0.5\r\nSec-Fetch-Mode: navigate\r\nX-Github-Api-Version: 2022-11-28\r\nAccept-Encoding: gzip, deflate\r\n\r\n'
reply: 'HTTP/1.1 200 OK\r\n'
header: Date: Fri, 13 Sep 2024 05:05:35 GMT
header: Content-Type: application/json; charset=utf-8
header: Cache-Control: public, max-age=60, s-maxage=60
header: Vary: Accept,Accept-Encoding, Accept, X-Requested-With
header: ETag: W/"4a777ebe329bea01e82fc28d674403b5599f2f2bc6f2c898dac538ae2d4f9ede"
header: Last-Modified: Sun, 08 Sep 2024 23:36:14 GMT
header: X-GitHub-Media-Type: github.v3; format=json
header: x-github-api-version-selected: 2022-11-28
header: Access-Control-Expose-Headers: ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset
header: Access-Control-Allow-Origin: *
header: Strict-Transport-Security: max-age=31536000; includeSubdomains; preload
header: X-Frame-Options: deny
header: X-Content-Type-Options: nosniff
header: X-XSS-Protection: 0
header: Referrer-Policy: origin-when-cross-origin, strict-origin-when-cross-origin
header: Content-Security-Policy: default-src 'none'
header: Content-Encoding: gzip
header: Server: github.com
header: X-RateLimit-Limit: 60
header: X-RateLimit-Remaining: 57
header: X-RateLimit-Reset:<PHONE_NUMBER>
header: X-RateLimit-Resource: core
header: X-RateLimit-Used: 3
header: Accept-Ranges: bytes
header: Transfer-Encoding: chunked
header: X-GitHub-Request-Id: 906A:1B659A:10F23E1:125157B:66E3C81F
Latest version<EMAIL_ADDRESS>from yt-dlp/yt-dlp-nightly-builds
yt-dlp is up to date<EMAIL_ADDRESS>from yt-dlp/yt-dlp-nightly-builds)
[chzzk:video] Extracting URL: https://chzzk.naver.com/video/3420720
[chzzk:video] 3420720: Downloading video info
director: Handler preferences for this request: urllib=0, requests=100
director: Checking if "requests" supports this request.
director: Sending request via "requests"
requests: Starting new HTTPS connection (1): api.chzzk.naver.com:443
send: b'GET /service/v3/videos/3420720 HTTP/1.1\r\nHost: api.chzzk.naver.com\r\nConnection: keep-alive\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.17 Safari/537.36\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: en-us,en;q=0.5\r\nSec-Fetch-Mode: navigate\r\nAccept-Encoding: gzip, deflate\r\n\r\n'
reply: 'HTTP/1.1 200 \r\n'
header: Date: Fri, 13 Sep 2024 05:05:35 GMT
header: content-type: application/json
header: transfer-encoding: chunked
header: vary: Origin
header: vary: Access-Control-Request-Method
header: vary: Access-Control-Request-Headers
header: x-content-type-options: nosniff
header: x-xss-protection: 0
header: cache-control: no-cache, no-store, max-age=0, must-revalidate
header: pragma: no-cache
header: expires: 0
header: x-frame-options: DENY
header: referrer-policy: unsafe-url
header: server: nfront
[chzzk:video] 3420720: Downloading video playback
director: Handler preferences for this request: urllib=0, requests=100
director: Checking if "requests" supports this request.
director: Sending request via "requests"
requests: Starting new HTTPS connection (1): apis.naver.com:443
send: b'GET /neonplayer/vodplay/v1/playback/None?key=None&env=real&lc=en_US&cpl=en_US HTTP/1.1\r\nHost: apis.naver.com\r\nConnection: keep-alive\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.17 Safari/537.36\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: en-us,en;q=0.5\r\nSec-Fetch-Mode: navigate\r\nAccept-Encoding: gzip, deflate\r\n\r\n'
reply: 'HTTP/1.1 400 Bad Request\r\n'
header: Server: nginx
header: Date: Fri, 13 Sep 2024 05:05:35 GMT
header: Content-Type: application/xhtml+xml
header: Transfer-Encoding: chunked
header: Connection: keep-alive
header: Keep-Alive: timeout=5
header: apigw-uuid: 3751f7dd-9b23-4900-bc4a-0c83c441a252
header: set-cookie: JSESSIONID=C4997C8E5D3CAF364921DD87671C1718; Path=/; HttpOnly
header: server-timing: total;desc="total duration of the request";dur=3.0
header: access-control-allow-credentials: true
header: referrer-policy: unsafe-url
header: apigw-error: 084
ERROR: [chzzk:video] 3420720: Unable to download video playback: HTTP Error 400: Bad Request (caused by <HTTPError 400: Bad Request>)
  File "/home/hibot/radiyudown/./yt-dlp/yt_dlp/extractor/common.py", line 740, in extract
    ie_result = self._real_extract(url)
                ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hibot/radiyudown/./yt-dlp/yt_dlp/extractor/chzzk.py", line 149, in _real_extract
    formats, subtitles = self._extract_mpd_formats_and_subtitles(
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hibot/radiyudown/./yt-dlp/yt_dlp/extractor/common.py", line 2612, in _extract_mpd_formats_and_subtitles
    periods = self._extract_mpd_periods(*args, **kwargs)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hibot/radiyudown/./yt-dlp/yt_dlp/extractor/common.py", line 2622, in _extract_mpd_periods
    res = self._download_xml_handle(
          ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hibot/radiyudown/./yt-dlp/yt_dlp/extractor/common.py", line 1099, in download_handle
    res = self._download_webpage_handle(
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hibot/radiyudown/./yt-dlp/yt_dlp/extractor/common.py", line 960, in _download_webpage_handle
    urlh = self._request_webpage(url_or_request, video_id, note, errnote, fatal, data=data,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hibot/radiyudown/./yt-dlp/yt_dlp/extractor/common.py", line 909, in _request_webpage
    raise ExtractorError(errmsg, cause=err)

  File "/home/hibot/radiyudown/./yt-dlp/yt_dlp/extractor/common.py", line 896, in _request_webpage
    return self._downloader.urlopen(self._create_request(url_or_request, data, headers, query, extensions))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hibot/radiyudown/./yt-dlp/yt_dlp/YoutubeDL.py", line 4165, in urlopen
    return self._request_director.send(req)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hibot/radiyudown/./yt-dlp/yt_dlp/networking/common.py", line 117, in send
    response = handler.send(request)
               ^^^^^^^^^^^^^^^^^^^^^
  File "/home/hibot/radiyudown/./yt-dlp/yt_dlp/networking/_helper.py", line 208, in wrapper
    return func(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hibot/radiyudown/./yt-dlp/yt_dlp/networking/common.py", line 340, in send
    return self._send(request)
           ^^^^^^^^^^^^^^^^^^^
  File "/home/hibot/radiyudown/./yt-dlp/yt_dlp/networking/_requests.py", line 365, in _send
    raise HTTPError(res, redirect_loop=max_redirects_exceeded)
yt_dlp.networking.exceptions.HTTPError: HTTP Error 400: Bad Request

This is happening with adult content. It looks like exception handling is required.

This is not related to NSFW contents. This also happens on SFW contents.
[debug] Command-line config: ['-vU', '--print-traffic', 'https://chzzk.naver.com/video/3857389']
[debug] Encodings: locale cp949, fs utf-8, pref cp949, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>from yt-dlp/yt-dlp [1a176d874] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.26100-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg 7.1-full_build-www.gyan.dev (setts), ffprobe 7.1-full_build-www.gyan.dev
[debug] Optional libraries: Cryptodome-3.21.0, brotli-1.1.0, certifi-2024.08.30, curl_cffi-0.5.10, mutagen-1.47.0, requests-2.32.3, sqlite3-3.35.5, urllib3-2.2.3, websockets-13.1
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Loaded 1838 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
director: Handler preferences for this request: urllib=0, requests=100, websockets=0, curl_cffi=-100
director: Checking if "requests" supports this request.
director: Sending request via "requests"
requests: Starting new HTTPS connection (1): api.github.com:443
send: b'GET /repos/yt-dlp/yt-dlp/releases/latest HTTP/1.1\r\nHost: api.github.com\r\nConnection: keep-alive\r\nUser-Agent: yt-dlp\r\nAccept: application/vnd.github+json\r\nAccept-Language: en-us,en;q=0.5\r\nSec-Fetch-Mode: navigate\r\nX-Github-Api-Version: 2022-11-28\r\nAccept-Encoding: gzip, deflate, br\r\n\r\n'
reply: 'HTTP/1.1 200 OK\r\n'
header: Date: Sat, 12 Oct 2024 03:58:58 GMT
header: Content-Type: application/json; charset=utf-8
header: Cache-Control: public, max-age=60, s-maxage=60
header: Vary: Accept,Accept-Encoding, Accept, X-Requested-With
header: ETag: W/"7756e03cff6c638f020ae7fcd31cba0e42f646a604c4cd45b04034da4de753b4"
header: Last-Modified: Mon, 07 Oct 2024 23:51:13 GMT
header: X-GitHub-Media-Type: github.v3; format=json
header: x-github-api-version-selected: 2022-11-28
header: Access-Control-Expose-Headers: ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset
header: Access-Control-Allow-Origin: *
header: Strict-Transport-Security: max-age=31536000; includeSubdomains; preload
header: X-Frame-Options: deny
header: X-Content-Type-Options: nosniff
header: X-XSS-Protection: 0
header: Referrer-Policy: origin-when-cross-origin, strict-origin-when-cross-origin
header: Content-Security-Policy: default-src 'none'
header: Content-Encoding: gzip
header: Server: github.com
header: X-RateLimit-Limit: 60
header: X-RateLimit-Remaining: 51
header: X-RateLimit-Reset:<PHONE_NUMBER>
header: X-RateLimit-Resource: core
header: X-RateLimit-Used: 9
header: Accept-Ranges: bytes
header: Transfer-Encoding: chunked
header: X-GitHub-Request-Id: 0A50:494B:227AEB:26D0DB:6709F402
requests: https://api.github.com:443 "GET /repos/yt-dlp/yt-dlp/releases/latest HTTP/11" 200 None
Latest version<EMAIL_ADDRESS>from yt-dlp/yt-dlp
yt-dlp is up to date<EMAIL_ADDRESS>from yt-dlp/yt-dlp)
[chzzk:video] Extracting URL: https://chzzk.naver.com/video/3857389
[chzzk:video] 3857389: Downloading video info
director: Handler preferences for this request: urllib=0, requests=100, websockets=0, curl_cffi=-100
director: Checking if "requests" supports this request.
director: Sending request via "requests"
requests: Starting new HTTPS connection (1): api.chzzk.naver.com:443
send: b'GET /service/v3/videos/3857389 HTTP/1.1\r\nHost: api.chzzk.naver.com\r\nConnection: keep-alive\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8\r\nAccept-Language: en-us,en;q=0.5\r\nSec-Fetch-Mode: navigate\r\nAccept-Encoding: gzip, deflate, br\r\n\r\n'
reply: 'HTTP/1.1 200 \r\n'
header: date: Sat, 12 Oct 2024 03:58:59 GMT
header: content-type: application/json
header: transfer-encoding: chunked
header: vary: Origin
header: vary: Access-Control-Request-Method
header: vary: Access-Control-Request-Headers
header: x-content-type-options: nosniff
header: x-xss-protection: 0
header: cache-control: no-cache, no-store, max-age=0, must-revalidate
header: pragma: no-cache
header: expires: 0
header: x-frame-options: DENY
header: referrer-policy: unsafe-url
header: server: nfront
requests: https://api.chzzk.naver.com:443 "GET /service/v3/videos/3857389 HTTP/11" 200 None
[chzzk:video] 3857389: Downloading video playback
director: Handler preferences for this request: urllib=0, requests=100, websockets=0, curl_cffi=-100
director: Checking if "requests" supports this request.
director: Sending request via "requests"
requests: Starting new HTTPS connection (1): apis.naver.com:443
send: b'GET /neonplayer/vodplay/v1/playback/None?key=None&env=real&lc=en_US&cpl=en_US HTTP/1.1\r\nHost: apis.naver.com\r\nConnection: keep-alive\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8\r\nAccept-Language: en-us,en;q=0.5\r\nSec-Fetch-Mode: navigate\r\nAccept-Encoding: gzip, deflate, br\r\n\r\n'
reply: 'HTTP/1.1 400 Bad Request\r\n'
header: Server: nginx
header: Date: Sat, 12 Oct 2024 03:58:59 GMT
header: Content-Type: application/xhtml+xml
header: Transfer-Encoding: chunked
header: Connection: keep-alive
header: Keep-Alive: timeout=5
header: apigw-uuid: 954313bc-fd85-4e13-8dbb-e60a8a0431de
header: set-cookie: JSESSIONID=D00C19B12F47E8B56EA763D9BD4201CC; Path=/; HttpOnly
header: server-timing: total;desc="total duration of the request";dur=2.0
header: access-control-allow-credentials: true
header: referrer-policy: unsafe-url
header: apigw-error: 084
requests: https://apis.naver.com:443 "GET /neonplayer/vodplay/v1/playback/None?key=None&env=real&lc=en_US&cpl=en_US HTTP/11" 400 None
ERROR: [chzzk:video] 3857389: Unable to download video playback: HTTP Error 400: Bad Request (caused by <HTTPError 400: Bad Request>)
File "yt_dlp\extractor\common.py", line 741, in extract
File "yt_dlp\extractor\chzzk.py", line 149, in _real_extract
File "yt_dlp\extractor\common.py", line 2624, in _extract_mpd_formats_and_subtitles
File "yt_dlp\extractor\common.py", line 2634, in _extract_mpd_periods
File "yt_dlp\extractor\common.py", line 1111, in download_handle
File "yt_dlp\extractor\common.py", line 961, in _download_webpage_handle
File "yt_dlp\extractor\common.py", line 910, in _request_webpage
File "yt_dlp\extractor\common.py", line 897, in _request_webpage
File "yt_dlp\YoutubeDL.py", line 4172, in urlopen
File "yt_dlp\networking\common.py", line 117, in send
File "yt_dlp\networking_helper.py", line 208, in wrapper
File "yt_dlp\networking\common.py", line 340, in send
File "yt_dlp\networking_requests.py", line 365, in _send
yt_dlp.networking.exceptions.HTTPError: HTTP Error 400: Bad Request


Adding link (local alias) config in endpointsettings

Adding the alias fields in engine-api for the upcoming local alias feature (via link)
Signed-off-by: Madhu Venugopal<EMAIL_ADDRESS>

@calavera I decided to split the PR between local and global alias in engine-api to reflect the reality as discussed in the maintainers meeting.

LGTM

@calavera am waiting on docker/docker#19198 to be merged before pushing the docker side changes for the alias functionality as discussed. I hope we can get this in soon so that we can avoid temporary vendor-in changes.

LGTM


top snackbar

love the design , since this package can uplift my SnackBar experience , can I uplift the SnackBar itself to the top ?
like this package https://pub.dev/packages/top_snackbar_flutter

Hi,
From the link you shared, I can see that that is not a snack bar, it is actually called a Banner. However, I believe it can be done by calling the material banner method on your scaffold messenger instead. Goodluck

New version has been updated with the use of materialBanner


"GET /static/vendor/jquery.js HTTP/1.1" 304 0

Details
Hello,
I'm attempting to install a local copy of readthedocs and have followed the instructions online at
https://docs.readthedocs.org/en/latest/install.html.
This is running on an Ubuntu 14.04 .
I'm attempting to build demo  with  https://github.com/readthedocs/template.git .
  HTTP/1.1" 200 8447
[09/Sep/2017 02:37:53] "GET /media/images/body-bg.svg HTTP/1.1" 304 0
[09/Sep/2017 02:37:53] "GET /media/images/header-bg.png HTTP/1.1" 304 0
[09/Sep/2017 02:37:53] "GET /media/images/logo.png HTTP/1.1" 304 0
[09/Sep/2017 02:37:53] "GET /media/images/gradient-light.png HTTP/1.1" 304 0
[09/Sep/2017 02:37:53] "GET /media/images/gradient.png HTTP/1.1" 304 0
[09/Sep/2017 02:37:57] "GET /dashboard/import/?

Closing due to inactivity.


Multi-monitor desn't work for config without screen

I just wanted to use my tablet on the second monitor. But found that is impossible because you have the next lines of code:
if not (main.settings['enable_multi_monitor'] and main.settings['screen']):
    return

So, If your tablet doesn't have a screen this option isn't available.
Workaround:
Add screen = true
Tou you tablet setting.
Anyway Thank you for this app

Hmmm.... I should rethink that part...
Related #71


re-support python3.6 on the setup

Resolves #445

Apparently newer versions of moto either doesn't preserve the version order, or use a reversed order. I couldn't find anything related this on the spec (if I am missing, please correct me) but it seems list-object-versions API seems like having no promises on the order. I've converted lists to sets in the tests and adjusted the cases to work with orderless versions.

Ok, looks good - thank you.

Can you also add py3.9 to the CI? Seems like a good time to do it.

@martindurant done!

@martindurant, when you are available could you make a new release (so that we can fetch it from pypi with that version)?

@martindurant Would it be possible to create a new release, please? :pray:

On my list

@martindurant Sorry for the noise and thank you! :pray:
Btw, we've noticed that this (and other projects) don't have github actions to automate releases, so I suppose you are doing all of them by hand, right? Is there a particular reason for that? Would you be open for a PR from us to automate that? You'll need to only add your pypi token to repo secrets.
If you are interested in such gha, which release workflow would you prefer?

Automatically release tags when they are created
create a release through github releases (we use it in dvc, but it is mostly for historic reasons)
something else?

Also, would you be interested in (automatic?) pre-releases, similar to moto: https://pypi.org/project/moto/#history They don't show up as regular pypi releases, requiring a special flag to install, but IIRC they could be explicitly used in requirements, which is nice for projects that use s3fs, as pypi doesn't like dependencies directly to github.

There was a workflow to do the release in this or one of the other repos, but wasn't working when I experimented with it.
I would use option 1, which is essentially what I do now. Building locally is pretty painless. I have never seen the point of github releases, since it's pypi that matters.
In my circle, I have not come across anyone using pypi pre-releases, people seem to be happy to point to github when necessary.  Is there a downside?

I would use option 1, which is essentially what I do now. Building locally is pretty painless. I have never seen the point of github releases, since it's pypi that matters.

Agreed, but there cases like when you are also building other package types or artifacts (e.g. we build dvc with pyinstaller as well) and want to upload them to github releases.
If you are happy with manual builds and publishing, we are also okay with it, since you've been very helpful, responsive and quick with all of the releases that we've requested so far, we really appreciate that :pray: Just wondering if there is anything we could do to make the release workflow easier for you. So please do let us know :slightly_smiling_face:

In my circle, I have not come across anyone using pypi pre-releases, people seem to be happy to point to github when necessary. Is there a downside?

Yeah, you won't be able to publish your package to pypi if it has a direct dependency (pypi will literally complain about it and refuse to publish), which is a major problem for us.

Perhaps the best thing that you can do for me is to run your test suite against fsspec/s3fs/gcsfs master/main (yes, two have changed, one has not) as well as released versions. Many projects have a "test-dev" or "upstream" environment for this purpose.
hat do you think of the versions-related points here ?

Perhaps the best thing that you can do for me is to run your test suite against fsspec/s3fs/gcsfs master/main (yes, two have changed, one has not) as well as released versions. Many projects have a "test-dev" or "upstream" environment for this purpose.

Do you mean something like daily cron tests with upstream fsspec/s3fs/gcsfs(and probably adlfs)? Not sure how much value there is for you in that, as our tests are fairly limited, we only use a subset of filesystem functionality (at least right now), but we could indeed at least keep an eye on that in dvc. Unless you are talking about fsspec API stability, kinda like integration tests of sorts, then yeah, that makes sense. Especially once we migrate DvcFileSystem that we have to fsspec. Please let me know if I'm missing some point here.

hat do you think of the versions-related points here ?

I can share my opinion, but I wonder what @isidentical thinks about these, since he has been dealing with it much more.

move to calendar versioning, since the "semantics" of x.y.z are often confusing for a dev-facing library like this

I agree, this would prevent people from assuming that fsspec has semantic versioning.

always release fsspec, s3fs and gcsfs together

:+1: that's the problem we've also ran into with 0.9 release

explicitly pin s3fs and gcsfs's version to the co-released fsspec. That means more work for me.

That would be great and hopefully, the burden of pinning that will reduce over time as fsspec becomes more and more stable. Maybe even dependabot could help with constantly keeping an eye on fsspec releases.

The more external projects running some portion of fsspec regularly, the better :)

hat do you think of the versions-related points here ?

The points are great, one concern though

explicitly pin s3fs and gcsfs's version to the co-released fsspec

I assume more and more implementations (adlfs etc) will start to pin their fsspec version with the calver transition. One side effect of this would be for the projects who need to have many different implementations installed at the same time with one fsspec version (e.g dvc installed with dvc[s3, gs, azure] or dvc[all]). This will certainly make things a bit harder (and at the same time a bit safe) for us, since we'd end up with waiting all projects to migrate to certain version of fsspec.
I think overall, it will be a nice change.

@hayesgb @TomAugspurger , what do you think of the prospect of either releasing adlfs every single time fsspec does, and pinning to that fsspec version, or testing some minversion/maxversion scheme in your CI so that you know, at your release time, what version bounds to use?

I'd prefer to avoid needing to tie adlfs tightly to fsspec's release schedule. Ideally we would avoid the need for that in the first place.
adlfs should be testing against more versions of fsspec though. At the very least it should test the minimum required, latest, and development version of fsspec. I'll get to that today.

@martindurant Btw, what are the reasons for avoiding semantic versioning for fsspec? Seems like that would work best for the ecosystem of fsspec-based implementations.

what are the reasons for avoiding semantic versioning

This was the direction chosen by dask-related repos recently. We found that it was likely that, as new features were added, something in the API could always be considered "braking", even as other bugs got fixed for each release.
For instance, ReferenceFileSystem has undergone rapid change recently, but is still experimental. It will surely have braking changes in every single release, even if the main user API is stable. Indeed, internal implementation details might change as we fix and improve things, so that libraries like s3fs see braking changes (i.e., they need updating) even when end users don't notice.


Battery lifetime import and export values

Describe the current behavior
A clear and concise description of what the feature should be.
What should be updated or changed?
Could you check these values:
-solaredge_b1_energy_import
-solaredge_b1_energy_export.
I think these are lifetime accumulating values, but I have jumping values

Home Assistant (please complete the following information):

Home Assistant Core Version: 2022.11
solaredge-modbus-multi Version:
2.2.7 b7

Additional context
Add any other context about the request here.

This is a known issue with some hardware:
https://github.com/WillCodeForCats/solaredge-modbus-multi/wiki/Known-Issues


Fix restconfig retrieval - don't get inclusterconfig when local

rest.InClusterConfig() only works when running in a Kubernetes pod, it won't work if you're running HAS locally. To work around that, if rest.InClusterConfig() fails, we should retrieve the Kubeconfig locally, first from the KUBECONFIG env var, then from ~/.kube/config if that fails.

/retest