Request: add parentheses to autocompleted functions/methods without snippets

If I go to Tools -> Preferences -> Completion and linting -> tick off "Enable code snippets", then after I auto-complete a function or method, spyder will not insert parentheses anymore.
Would be nice if there could be some option that would make it autocomplete functions/methods by writing the whole name plus parentheses, in the same way other IDEs do - e.g.
np.sqrt(<focus here>)

Ticking code snippets will add the first argument and extra things in there, which is rather inconvenient:
np.sqrt(<selected>x</selected>, /, *)

Is this a more pyls thing or something we should handle on the editor @ccordoba12 @andfoy ?

Is this a more pyls thing or something we should handle on the editor

I think we should handle it here by detecting if a completion is a function, class or method and adding parenthesis for it in those cases.

I'd rather send a function() completion entry from the server

Why is that?

Because we don't know how functions may be declared for other languages other than Python


MOTR-85 Animal phenotype data visualization

Key Changes:

Added eslint configs due to the use of React Hooks in newly added component.
Added .gitignore config to ignore .vscode user setting changes.
Added d3 and eslint-plugin-react-hooks dependencies.
Updated react-scripts, @storybook and other dependencies.
Added submitter login button to the top navbar.
Added error page component and the implementation of routing unauthorized users (although authenticated by Auth0) to this page.
Implemented d3 visualizations for animal phenotype data as part of Animal Analysis
Updated respective unit tests and test data due to various UI changes.

Merged MOTR-85


Add an API to access the Gradle normalized path of input files

Expected Behavior
Allow to write task whose output depends on the Gradle normalized path of RELATIVE inputs like this:
abstract class DumpNormalizedPathsTask: DefaultTask() {
  @get:InputFiles
  @get:PathSensitive(PathSensitivity.RELATIVE)
  abstract val sourceFiles: ConfigurableFileCollection

  @TaskAction
  fun taskAction() {
    val output = buildString {
      sourceFiles.withNormalizedPath().map {
        // 'it' would be something like FileWithNormalizedPath(val normalizedPath: String, val file: File)
        append(it.normalizedPath)
        append(it.file.readText())
      }
    }

    // write output to the output file, ....
  }
}

Current Behavior (optional)
I haven't found an API to do so.
The closest solution I found is to zip/tar all input files but it's adding some uneeded I/O.
Is there another solution?
Context
This is a follow up from https://www.linen.dev/s/gradle-community/t/16341786/if-i-have-this-get-inputfiles-get-pathsensitive-pathsensitiv#5980a277-f533-4ea5-9a67-3689e2a8a5fd

Based on your description, it seems you want to create a Gradle task that can access the normalized path of input files. Here’s a possible solution using Java’s java.nio.file.Paths and java.nio.file.Path:
Kotlin
import java.nio.file.Paths
abstract class DumpNormalizedPathsTask: DefaultTask() {
@get:InputFiles
@get:PathSensitive(PathSensitivity.RELATIVE)
abstract val sourceFiles: ConfigurableFileCollection
@TaskAction
fun taskAction() {
val output = buildString {
sourceFiles.map { file ->
val normalizedPath = Paths.get(file.absolutePath).normalize().toString()
append(normalizedPath)
append(file.readText())
}
}
// write output to the output file, ...

}
}
In this code, Paths.get(file.absolutePath).normalize().toString() is used to get the normalized path of each file. This should work as long as the file paths are not symbolic links1.
As for zipping/tarring all input files, it’s indeed an option but it might add unnecessary I/O operations23456. If the number of files is large, it could slow down the task. The solution above should be more efficient as it directly accesses the file paths without the need for additional I/O operations.
Kindly note that this solution assumes that the files are located in the local file system and that the file paths are not symbolic links. If the files are located on a remote system or if the paths are symbolic links, a different approach might be needed. If that’s the case, please provide more details so I can give a more accurate solution.
Also, please thoroughly test this solution in your environment to ensure it works as expected. If you encounter any issues, feel free to ask for further assistance.

val normalizedPath = Paths.get(file.absolutePath).normalize().toString()

@HappyLife2 I am confused. I'm not looking for the filesystem normalized path but for the Gradle normalized path. This is the path that Gradle uses when PathSensitivity.RELATIVE is used to determine if tasks are up-to-date.
Path.normalize() is not going to help there.

Alternatively to ConfigurableFileCollection.withNormalizedPath(), adding a ConfigurableFileCollection.root() returning the roots of the FileTrees could be useful. The normalization logic could be replicated in the task but also it could help outputing better diagnostics:
  @TaskAction
  fun taskAction() {
    if (sourceFiles.isEmpty()) {
      error("No source file found in ${sourceFiles.joinToString()}")
    }

    // more stuff ...
  }

Thank you for your interest in Gradle!
This issue needs a decision from the team responsible for that area. They have been informed. Response time may vary.

For RELATIVE normalization you should be able to access the relative paths of the entires by visiting the FileCollection as a FileTree.
sourceFiles.asFileTree.visit { element ->
  println element.path // <-- this is the relative path of the entry as a String
  println element.relativePath // <-- this is the relative path of the entry as a RelativePath
}

See:
https://github.com/gradle/gradle/blob/20d424990144986eb315bda3941a092537c47beb/subprojects/core-api/src/main/java/org/gradle/api/file/FileTreeElement.java#L87-L100

Works like a charm, thanks!

Bumped into another issue. Looks like the normalized path is lost with workers? Opened a follow up issue here.


no emoji are loaded

4/12 16:07:44 [11945] - error: /topic/26/the-funnies/1012
 Error: ENOENT: no such file or directory, open '/var/www/nodebb/forums/node_modules/nodebb-plugin-emoji/build/emoji/table.json'
    at Error (native)

I was able to resolve this manually with some black magic (stopping the service, manually reinstalling the emoji plugin from npm, building, starting the service, building assets in the admin panel, etc). BUT, these actions shouldn't be needed. I'd expect during an upgrade / install that the emoji are built properly with no admin effort.

What version of the plugin?
That's weird, because the plugin specifically checks if the file exists on startup and builds the emoji assets if not.

2.0.5
Though looking at the repo, I see 2.0.7 as latest. npm is pulling 2.0.5 though

2.0.6 and 2.0.7 only fixed some styling issues, every change was client-side only. So shouldn't make a difference.
I ran multiple tests for from-scratch installs, I'm fairly certain that if there was an issue in that case, I would have caught it. As for upgrades, I can be as confident there, seems like there have been several issues with upgrades.
Upgrade issues are a problem in core, though, not with this plugin. If you can't provide reproduction steps then I can't really help.

No problem, I don't know how it reproduced either. I can say that the "new" emoji plugin didn't upgrade to v2 until I manually upgraded it with npm. We can close the ticket though, since I have no idea how to reproduce, what triggered it, etc.

If might help if you provide the exact commands you used to upgrade. There may have been a misstep somewhere?

I followed the steps in the user guide for the 1.7.0 -> 1.7.1 path git fetch && git reset --hard origin/v1.7.x
I did run into an issue where eslint was not upgrading properly, so maybe something broke in the upgrade process during core? That might explain some of the weirdness I am running into.

Yeah that was most likely what caused this. I'm gonna close but I can open if anyone else runs into this.


Which clients support Python 3?

I'm having a hard time finding a client that supports python 3.7 and also supports unicode. Most of the clients found on github are built from the official client which only works in 2.7

The redis only supports Python3, not Python 2.

@alanhamlett Cool, thanks


[Core] Asynchronous Output Processor

This PR is an implementation for RFC #6913 .
Following changes were made:

Scheduler states' updates is decoupled from output processor. Earlier both _process_model_outputs and scheduler.schedule() were updating deque and free-ing memory of finished sequences.
Adds _advance_to_next_step in LLMEngine that does small but necessary steps in critical path: eg: appending new token id and updating prefill sequences' statuses to decode.
Adds a callback function to execute_model so that process_model_outputs is triggered right before sampler inside ModelRunner. Since GPU always runs ahead of CPU, this allows for complete overlap with cuda graph forward pass in each decoding step

Results
Throughput improves by 11% for Llama3.1-8B FP8 on 1xH100. Results are even better at high batch sizes. With my own benchmarking setup, I see 1.3x increase in throughput at high RPS.
There's a follow-up PR # that combines async output processor with multi-step and shows promising results. 30% improvement in TPOT.
Without async output processor
CUDA_VISIBLE_DEVICES=0 python3 benchmark_throughput.py --model /mnt/workdisk/chengli/models/meta-llama/Meta-Llama-3.1-8B-Instruct --backend vllm --input-len 128 --output-len 256 --num-prompts 1000 --tensor-parallel 1 --quantization fp8 --disable-output-proc-callback

Throughput: 31.98 requests/s, 12279.04 tokens/s

With async output processor
CUDA_VISIBLE_DEVICES=0 python3 benchmark_throughput.py --model /mnt/workdisk/chengli/models/meta-llama/Meta-Llama-3.1-8B-Instruct --backend vllm --input-len 128 --output-len 256 --num-prompts 1000 --tensor-parallel 1 --quantization fp8

Throughput: 35.64 requests/s, 13687.30 tokens/s

To do:

[x] Update stopping criteria and scheduling of sequences for when stop token id is generated in previous step
[x] add support for AsyncLLM engine
[x] No callback codepath for spec dec, pipeline parallelism and beam search
[x] Run tests
[x] Add tests
[x] Add benchmark numbers

/ready

@comaniac would be good to get your quick feedback on this PR

@comaniac @WoosukKwon thanks for the detailed reviews, I think we addressed all of the comments, going over the final CI tests with @megha95 and some issue Woosuk found with beam search.

@njhill Thank you for the review. To answer your question:

Do you have a sense for how much of the speedup comes from removal of the scheduling from the critical path vs removal of detokenization?
We haven't removed scheduling from critical path. Most of the speedup in this PR comes from removing detokenization, free_finished_seq_groups and creating RequestOutputs to be streamed back to user.

@megha95 @alexm-neuralmagic Thanks again for your great work!
@njhill Thanks for taking a look at the PR!

It seems that this PR caused the LoRA tests to fail.
Before this PR on main: https://buildkite.com/vllm/ci-aws/builds/7622
In this PR: https://buildkite.com/vllm/ci-aws/builds/7645

cc @megha95 @WoosukKwon

@youkaichao @DarkLight1337 Having a look.

@megha95 do you know what it takes to support this feature for spmd architecture? (referring to https://github.com/vllm-project/vllm/blob/fc990f97958636ce25e4471acfd5651b096b0311/vllm/config.py#L378)


WIP: dont fail if the version is available

If the python version is shown by pyenv versions, and we
can reasonably figure out the correct version to use (esp. if
it matches the name exactly), enable the version with the
PYENV_VERSION environment variable, and try again
to find the path to the executable using pyenv which.
The result of this change is that many times when errors like
this are seen when running pyenv which, we can simply
automatically choose the latest version of python2.6 that
is available (according to pyenv versions), set it, and try
again. Therefore we can typically avoid the following error:
$ pyenv which python2.6
pyenv: python2.6: command not found

The `python2.6' command exists in these Python versions:
  2.6.6
  2.6.8

In this case, tox-pyenv sets PYENV_VERSION to 2.6.8
(the latest version that most closely matches) and retries.
We already know the retry will succeed because we saw 2.6.8
in the output from pyenv versions.
This behavior may not be desirable for some, and probably needs a
flag to turn on/off.
Fixes #3
:dancer:

@blueyed I put this PR together based on this discussion:
https://github.com/yyuu/pyenv/issues/92#issuecomment-145381577
If you have time, I would appreciate a pair of :eyes:


On real IOS 13.0 and IOS 13.1.2, list scrolling events of flutter web project are not available

Steps to Reproduce

Run flutter create bug.
Modificationmain.dart, add the Listview component.
Run flutter build web
Use 'live server' to generate a local service.
Load the address generated by 'live server' on safari.
Found that the list of listview cannot be scrolled.

Flutter version:
Flutter 2.1.0-12.2.pre • channel beta • https://github.com/flutter/flutter.git
Framework • revision 5bedb7b1d5 (5 days ago) • 2021-03-17 17:06:30 -0700
Engine • revision 711ab3fda0
Tools • Dart 2.13.0 (build 2.13.0-116.0.dev)
codes:
main.dart
import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        // This is the theme of your application.
        //
        // Try running your application with "flutter run". You'll see the
        // application has a blue toolbar. Then, without quitting the app, try
        // changing the primarySwatch below to Colors.green and then invoke
        // "hot reload" (press "r" in the console where you ran "flutter run",
        // or simply save your changes to "hot reload" in a Flutter IDE).
        // Notice that the counter didn't reset back to zero; the application
        // is not restarted.
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  // This widget is the home page of your application. It is stateful, meaning
  // that it has a State object (defined below) that contains fields that affect
  // how it looks.

  // This class is the configuration for the state. It holds the values (in this
  // case the title) provided by the parent (in this case the App widget) and
  // used by the build method of the State. Fields in a Widget subclass are
  // always marked "final".

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;

  void _incrementCounter() {
    setState(() {
      // This call to setState tells the Flutter framework that something has
      // changed in this State, which causes it to rerun the build method below
      // so that the display can reflect the updated values. If we changed
      // _counter without calling setState(), then the build method would not be
      // called again, and so nothing would appear to happen.
      _counter++;
    });
  }

  @override
  Widget build(BuildContext context) {
    // This method is rerun every time setState is called, for instance as done
    // by the _incrementCounter method above.
    //
    // The Flutter framework has been optimized to make rerunning build methods
    // fast, so that you can just rebuild anything that needs updating rather
    // than having to individually change instances of widgets.
    return Scaffold(
      appBar: AppBar(
        // Here we take the value from the MyHomePage object that was created by
        // the App.build method, and use it to set our appbar title.
        title: Text(widget.title),
      ),
      body: Center(
        // Center is a layout widget. It takes a single child and positions it
        // in the middle of the parent.
        child: ListView.builder(
          itemBuilder: (_, index) {
            return Container(
              height: 100,
              child: Text("第$index行"),
            );
          },
          itemCount: 20,
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _incrementCounter,
        tooltip: 'Increment',
        child: Icon(Icons.add),
      ), // This trailing comma makes auto-formatting nicer for build methods.
    );
  }
}

index.html
<!DOCTYPE html>
<html>
<head>
  <!--
    If you are serving your web app in a path other than the root, change the
    href value below to reflect the base path you are serving from.

    The path provided below has to start and end with a slash "/" in order for
    it to work correctly.

    Fore more details:
    * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base
  -->
  <base href="/">

  <meta charset="UTF-8">
  <meta content="IE=Edge" http-equiv="X-UA-Compatible">
  <meta name="description" content="A new Flutter project.">

  <!-- iOS meta tags & icons -->
  <meta name="apple-mobile-web-app-capable" content="yes">
  <meta name="apple-mobile-web-app-status-bar-style" content="black">
  <meta name="apple-mobile-web-app-title" content="testapp">
  <link rel="apple-touch-icon" href="icons/Icon-192.png">

  <!-- Favicon -->
  <link rel="icon" type="image/png" href="favicon.png"/>

  <title>testapp</title>
  <link rel="manifest" href="manifest.json">
</head>
<body>
  <!-- This script installs service_worker.js to provide PWA functionality to
       application. For more information, see:
       https://developers.google.com/web/fundamentals/primers/service-workers -->
  <script>
    if ('serviceWorker' in navigator) {
      window.addEventListener('flutter-first-frame', function () {
        navigator.serviceWorker.register('flutter_service_worker.js');
      });
    }
  </script>
  <script src="main.dart.js" type="application/javascript"></script>
</body>
</html>

@TahaTesser    List scroll events not available.  Video presentation

the same problem will be find in flutter lasted tag

Hi @zhoushuangjian001
This looks like a duplicate of https://github.com/flutter/flutter/issues/77792. if the page doesn't responded of course it cannot scroll
Please follow up on that issue, I'm closing the current one as a duplicate.
If you disagree, please write in the comments and I will reopen it.
Thank you

@TahaTesser
The button event of the page can respond, but the scroll event of the list cannot

Please add the details to https://github.com/flutter/flutter/issues/77792


[CF Multitenant deploy error] Unable to start application aisaas-srv-${space}, Error acquiring tenant t0

Hi Experts,
I'm following the instruction to deploy this package for Cloud Foundry Runtime / Multitenant scenario, but I got below error when executing step 3-deploy/2-DeployTheApplication: npm run deploy.
Application "aisaas-srv-cf_space_us10" staged
Starting application "aisaas-srv-cf_space_us10"...
Error starting application "aisaas-srv-cf_space_us10": Some instances have crashed. Check the logs of your application for more information.
Download the application logs via the dmol command and check them for more information.

I downloaded aisaas-srv-cf_space_us10.log for details, This is the error I found but I have no idea what is the cause since I'm new to CAP.
Error: Error acquiring tenant t0: unknown error

The log file is attached:
aisaas-srv-cf_space_us10.log
Could you please suggest how to fix this error, thanks a lot.
BTW:
Before this step, another error raised in step 3-deploy/1-BuildTheComponents: npm run build:mbt
cds.service.protocols.protocol4(...).startsWith is not a function
I did not capture a screenshot, according to a blog, I updated the version of @sap/cds-dk. This is what I have done.
# Run in folder: ./multi-tenant/code
npm i @sap/cds-dk
After executing this npm command, the 'startsWith' error is fixed but I'm not sure whether this could cause the error above when upload and deploy the Application to Cloud Foundry.

Hi Kay,
The issue is fixed after build the latest version. Thanks a lot.
I find another issue when creating Subscriptions of the service for 'premium plan'.
Couldn't subscribe to GenAI Mail Insights cf_space_us10. Please try again. If the problem persists, open a support case for this application.
Technical Details:
Subscribe failed. Error: Subscribe failed in create callback. Error: CorrelationId: 6a4f8da7-6369-48fc-6777-ca5aed02d380, Please open a ticket for application/service with appName: aisaas-cf_space_us10-BTP###flx. Failed to call callback. URL: PUT https://btp###flx-cf-space-us10-aisaas-srv.cfapps.us10.hana.ondemand.com/-/cds/saas-provisioning/tenant/85b###911. Consumer tenant: 85b###911. Callback response: {"error":{"code":"500","message":"Internal Server Error"}}. status code: 500 INTERNAL_SERVER_ERROR

Tried to access the URL: GET https://btp###flx-cf-space-us10-aisaas-srv.cfapps.us10.hana.ondemand.com/-/cds/saas-provisioning/tenant/85b###911 with browser and got '401-Unauthorized' error, this may not help because no credentials is attached when request the URL with browser.
{"error":{"code":"401","message":"Unauthorized"}}
This issue only occurred for 'premium plan', the 'default plan' can be subscribed successfully. After subscribe a 'default plan' and assign relevant roles to subaccount user. I got 404 error when try to open the application.

404 Not Found: Requested route ('genai-email-insights-n75htxcn-aisaas-cf_space_us10.cfapps.us10.hana.ondemand.com') does not exist.

Glad that this worked out! Thanks for the feedback.
Which credentials did you use in the credential store? From your personal user? If yes, is 2FA activated? Usually this causes such problems. If not, could you double check your credentials that they are correct?
Best
Kay

Hi Kay,
I'm using the I-User email and the global Windows AD password (Because SSO enabled, NO separate password for BTP is set), besides, NO 2FA is enabled.
I have double checked the credential store, the configuration follows the instruction, so I think there maybe some other potential issues during the Subscription process.
Thanks and Regards.

Thanks for the confirmation. Did you entitle the service "Cloud Management Service" with "central plan"?

Hi Kay,
Thanks a lot for the timely reply. I checked the entitlements and seems I missed out 'central plan' for 'Cloud Management Service' in my subaccount. After adding this entitlement and re-deploy the App, I can subscribe to 'premium plan' successfully.
Another thing I notice that the BTP platform may have some kind of cache related to a session, if I subscribe immediately after the deployment, this error will persist. Only after I clear the cookies and re-login to BTP platform (or open a new In-private window in browser) could I make the subscription successfully.
However, after subscription and add roles to consumer subaccount, I got an HTTP 500 error when authorizing the access, could this be some kind of issue related to credential store?

I have downloaded the application log for aisaas-cf_space_us10 and caputre a nerwork .har file for reference.
aisaas-cf_space_us10-2024-04-26 03_27_42.067+0000.txt
genai-email-insights.har.txt
I did not get much error details from the log this time, only a message 'query does not exist for request url /aisaasui/index-cdn.html' with level 'log' but not 'error'.


Fix typo in subghz/packet_params.rs

Sorry, this is already fixed in https://github.com/embassy-rs/embassy/pull/811.


Allow custom input component

Hi @kenny-hibino ,
Have you considered allowing the choice of using a custom input component? That would be useful if you want to add autocomplete functionality to an existing input component (e.g., part of a different library). The PlacesAutocomplete component could act as a wrapper, with the component you want to add the autocomplete functionality to as its child. So it would look like:
<PlacesAutocomplete value={value} onChange={this.handleChange}><MyCustomInputComponent /></PlacesAutocomplete>
If you think this feature would make sense to add, I'd be happy to take a shot and open a PR.

@cburbank Yes, that would be fantastic! The main purpose of this library should be an easy integration of React components with Google Maps Places API. I want the UIs to be customizable and the library to be flexible about it. I'm glad that you are willing to take a shot at it! Let me know if you need anything!

#9 Closes this issue. Thanks to @cburbank 😄


Update pricing as needed to protect against villager trading

none of the current pricing has taken in to account possible sell spamming by villager trading.
On my servers the sell command is not open to all, but sell signs can be placed by mods and admins, so the most important thing to check out for me will be using buy signs to obtain items to trade to villagers to get something else that has a higher value.  nothing stands out in my mind that would be beneficial to a player in this manner, but villager trades still need to be looked over, I may make an additional tab on the spreadsheet i use to show villager trades and the value of each item by linking them to the tab with the values.  if i do, I'll put a link to the sheet in the readme (I might do that anyway)

this does not appear to be possible, due to using the crafting formulas to set the prices.  minecraft was not designed with economy in mind and as such no one value system is possible without being broken by some other aspect of the game without a very in depth overhaul of the crafting system.


discussions about namespace

I noticed that all files in such package ends with Re,
maybe we can add a style field in bsconfig, like
  { namespace : "re",   format: "suffix"}

So that the build system will generate a map file for only exported units
re.ml
module CssDeclaration = CssDeclarationRe

So that ender users could call Re.CssDeclaration with auto-completion.
Two issues:

which style would be better suffix vs prefix
(seems convention is prefix based: https://github.com/ocaml/ocaml/pull/1010)
Should we reuse package name
We can hide the complexity by generating prefix even for in-source packages, but as you said, companies like unique file name (this is the same with Bloomberg), we can delay this a little bit

Can we do just 2? You're talking about generating a module alias file right?

yes, just generating a module alias, but reason-js is not a vaild suffix or prefix

Ah I remember: npm doesn't allow uppercase letters anymore, so the only choice the user has is snake_case.  So let's not reuse package name...?

Couldn't the package name just be transformed to snake_case? I'd like that for module names derived from (dasherized) filenames too. It's a simple and predictable process, and while there is a minute chance of accidental collisions it seems essentially theoretical to me.

@glennsl what if we want the module to be called ReasonJs rather than Reason_js?

Then I suppose you'd have to specify it, but you would have to do that either way, right? Having a generated default wouldn't change that.

ReasonJs looks better, it is acceptable to have all files renamed form 'xxRe' to 'ReasonJs_xx', too ugly ?

btw, if we enforce such convention, then the build system could infer the package name, is a good idea?

I dunno if this is coming from the right direction. I guess it's cool to look at the current convention and say "how can we adapt our build tools to make this better", but the real problem is that there's no notion of namespacing beyond that of a file. Doing funky things with the file name is, like, a cool hack, but hey we've got folders!! which provide a super great way of organizing files...
Could we instead adopt rust semantics for namespacing, where each folder essentially becomes a module?

@jaredly I'd really like that, but I'm guessing the heavy reuse of ocaml's toolchain makes that difficult. I've heard rumours that ocaml might gain support for some form of namespacing sometime in the next decade or so, though!
@bobzhang I'd be fine with that. I'd be fine with anything, really, as long as it's not gibberish.

cool, I will whip up a quick solution, stay tuned, btw, do you use open too much?

We have package names that also have . in it. For starter, just a {"namespace": ...} would be good enough.
I don't dislike @jaredly proposal either. But we can at least do a library-wise namespace first.

@bobzhang I don't understand the question, Do you think I use open too much? ReasonJs and ReasonJs.Dom is kind of designed to be opened, like a core library, though it could certainly use some cleaning up here and there.

Closing for having outlived its usefulness, I think. There's namespace support in BS now. See #81


Panic when clicking a link to a bare path with no extension

Clicking a file link like
[COPYING](COPYING)

will cause inlyne to panic

Relevant crash report
name = "inlyne"
operating_system = "Arch Linux Rolling Release [64-bit]"
crate_version = "0.4.1"
explanation = """
Panic occurred in file 'src/main.rs' at line 510
"""
cause = 'called `Result::unwrap()` on an `Err` value: Custom { kind: Other, error: "Launcher \"xdg-open\" \"COPYING\" failed with ExitStatus(unix_wait_status(512))" }'
method = "Panic"
backtrace = """

   0: 0x5a3ce6190233 - core::result::unwrap_failed::hbe14f498be1452f9
                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/result.rs:1649
   1: 0x5a3ce50e5bfa - core::result::Result<T,E>::unwrap::h922cb22929eeca2e
   2: 0x5a3ce50fa0cc - inlyne::Inlyne::run::{{closure}}::h80271196e54d9c54
   3: 0x5a3ce51c7027 - winit::platform_impl::platform::x11::event_processor::EventProcessor<T>::process_event::h4a6a19c2e7d3954b
   4: 0x5a3ce50f0f7c - winit::platform_impl::platform::x11::EventLoop<T>::run_return::single_iteration::h1e113a7ca508eae7
   5: 0x5a3ce50f1822 - winit::platform_impl::platform::x11::EventLoop<T>::run::hd8e39bc30073cae8
   6: 0x5a3ce50f0c9d - winit::platform_impl::platform::EventLoop<T>::run::h836aee4ae61e309d
   7: 0x5a3ce51cf8ba - inlyne::main::h86b81f17a9046268
   8: 0x5a3ce513f463 - std::sys_common::backtrace::__rust_begin_short_backtrace::he2491fbbb75172c0
   9: 0x5a3ce51d05cd - std::rt::lang_start::{{closure}}::h16a99ea5f6ccd83b
  10: 0x5a3ce6151561 - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::h4eb4c5e1620f29b0
                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/ops/function.rs:284
                 - std::panicking::try::do_call::h73fd26535faffcdf
                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:552
                 - std::panicking::try::h77ff1d98f0fb9f39
                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:516
                 - std::panic::catch_unwind::hab3caf2448b95e37
                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panic.rs:142
                 - std::rt::lang_start_internal::{{closure}}::h8086711f9c783f78
                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/rt.rs:148
                 - std::panicking::try::do_call::hf920d4dc291cd6ca
                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:552
                 - std::panicking::try::h2b806ccc0a85db74
                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:516
                 - std::panic::catch_unwind::h038489539c507df2
                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panic.rs:142
                 - std::rt::lang_start_internal::h28503b88912e8a5c
                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/rt.rs:148
  11: 0x5a3ce51d01b5 - main
  12: 0x7f86342f0cd0 - <unresolved>
  13: 0x7f86342f0d8a - __libc_start_main
  14: 0x5a3ce507c6a5 - _start
  15:        0x0 - <unresolved>"""

We really should separate out the logic for determining how to handle links and test the hell out of it. It's been a consistent source of issues in the past

Also regardless of the error, we of course should not panic when something like this fails. Another one I just saw was a crash from a link to a directory which I don't know how we should load (on github it opens a page for the directory of course) (it was nix-software-center's data/icons link)


<EMAIL_ADDRESS>hash check failed

{
  "last_update": "2024-11-16T08:47:01.2451183-03:00",
  "scoop_repo": "https://github.com/ScoopInstaller/Scoop",
  "scoop_branch": "master",
  "aria2-warning-enabled": false
}

I'll redo the manifest so it works


Create a key exchange SPI for X25519 and X448

The key exchange SPI should expose low level functionality and use the standard implementation from RFC 7748. This should have at least two core implementations: one based on BouncyCastle, and the other based on Java 11.

Generally supported now with ExchangeKey.

Generally supported now with ExchangeKey.


Failure to request thumbnails properly when certain special characters are being used (ie, URL escaping is missing)

Describe the bug
If a filename contains a question mark (?) pigallery2 will not be able to display the picture. For example if there are identical and valid jpg files main_page.jpg and main_page?.jpg then, the former will be shown correctly, while the latter will not be shown.
Photo/video (optional) that causes the bug

independent of picture

Screenshots (optional)

^ illustration
Server logs (optional)
6/8/2022, 7:38:05 PM[VERBS] GET /api/gallery/content/test/main_page?.jpg/thumbnail/480 404 2ms

Note that requesting manually with %3F instead of ? works :
6/8/2022, 7:39:22 PM[VERBS] GET /api/gallery/content/test/main_page%3F.jpg/thumbnail/480 200 59ms

Environment (please complete the following information):

OS: linux server, Ubuntu 20.04
Browser macOS, Chrome

Used app version:
Using Docker, but I'm struggling to get the version out. It is the current latest. If you advice how to get the version number, I'll extract it. Until then, I found this in the logs:
[Typeconfig] Processing cli and ENV inputs: {
	"PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
	"HOSTNAME": "2db19b8a737f",
	"NODE_ENV": "debug",
	"NODE_VERSION": "14.19.0",
	"YARN_VERSION": "1.22.17",
	"PI_DOCKER": true,
	"HOME": "/root",
	"VIPS_MIN_STACK_SIZE": "2m",
	"VIPSHOME": "/target"
}

I'm still getting this issue, in my case the filename has multiple question marks and spaces around them.
Am i alone here ?

Is this still an issue with the latest nightly?
#521 seems to solve the issue.

@bpatrik Yep that fixed it, I have tested it with latest master branch. Thumbnail URLs for files with ? characters are encoded just fine for me.


Persistent New Chat notification

I have a persistent "new chat" notification even though I have no new chats.
I believe this occurred when a user sent me a message while I was away (my computer was shut down as it was over the weekend). They then deleted the message before I could read it.

@evevista Thanks for reporting this. We are looking into it.

@evevista Could you please check if there is an unread chat somewhere far down the chat list. If the issue still persists, Could you please share the logs which can be obtained by pressing Ctrl+Alt+Shift+1 from Teams client?

Please re-open this with requested logs.


test(redis) support redis cluster

Kong currently does not support connection to redis cluster and will
be fixed in FTI-2014.
We should support an ENV to load redis cluster seeds:
KONG_SPEC_TEST_REDIS_CLUSTER_ADDRESSES

Related to https://github.com/Kong/kong-ee/pull/3621


Allow to preview ERC721/ERC1155 token images in full screen

From OpenSea:

AlphaWallet:

So

tap to get to the full screen
pinch to zoom in

Zeplin:
https://zpl.io/YYyDJ7p
https://zpl.io/g8o7GpA

https://user-images.githubusercontent.com/51817359/168027922-4a8b0049-b7f8-467e-a6ba-d1e6e9265d01.mp4

This looks really neat, @justindg is it possible on Android in the way illustrated? If not in this dynamic way, it could be done in a stepped expand.

This looks really neat, @justindg is it possible on Android in the way illustrated? If not in this dynamic way, it could be done in a stepped expand.

Yes it could be done! :)

This looks really neat, @justindg is it possible on Android in the way illustrated? If not in this dynamic way, it could be done in a stepped expand.

Yes it could be done! :)

In that case ... make it so ...

Out of phase 1


Mark packages as broken: asterisk, cryptopp, redmine, moodle, opera, openstack-neutron, mesos

Motivation for this change
These are packages that were difficult to upgrade and have outstanding security issues.
See: https://github.com/NixOS/nixpkgs/issues/18856
Note: if a maintainer fixes the bug, we'd rather not mark them broken :)
Maintainers / Contributors:

@auntieNeo
@dasjoe
@civodul
@garbas
@domenkozar
@cstrahan
@kevincox
@offlinehacker
@rushmorem
@edolstra

Things done

[ ] Tested using sandboxing
(nix.useSandbox on NixOS,
or option build-use-sandbox in nix.conf
on non-NixOS)
Built on platform(s)

[ ] NixOS
[ ] OS X
[ ] Linux

[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

Unsetting meta.broken will be trivial for anyone who manages to fix a package. Better have them marked than being vulnerable silently.

I'll try to find time to fix mesos.

I agree. Ship now and fix later. I was planning to update mesos this weekend but I guess that is being handled.

Here's a PR to update mesos: https://github.com/NixOS/nixpkgs/pull/19064
Needs some testing (I'm currently building right now).


Build Error fedora 32, gcc -10.xx

Please make sure that this is a build/installation issue. As per our GitHub Policy, we only address code/doc bugs, performance issues, feature requests and build/installation issues on GitHub. tag:build_template
System information

Linux Fedora 32
TensorFlow installed from (source or binary):
TensorFlow version:
Python version:
Installed using virtualenv? pip? conda?:
Bazel version (if compiling from source):
GCC/Compiler version (if compiling from source):

ERROR: /home/prashantkumar/.cache/bazel/_bazel_prashantkumar/bf7a6276eada3a0737ce3d01ac04c833/external/llvm-project/mlir/test/BUILD:146:1: C++ compilation of rule '@llvm-project//mlir/test:TestTransforms' failed (Exit 1)
In file included from /usr/lib/gcc/x86_64-redhat-linux/10/../../../../include/c++/10/bits/move.h:57,
from /usr/lib/gcc/x86_64-redhat-linux/10/../../../../include/c++/10/bits/nested_exception.h:40,
from /usr/lib/gcc/x86_64-redhat-linux/10/../../../../include/c++/10/exception:148,
from /usr/lib/gcc/x86_64-redhat-linux/10/../../../../include/c++/10/new:41,
from external/llvm-project/llvm/include/llvm/Support/Compiler.h:21,
from external/llvm-project/llvm/include/llvm/Support/Casting.h:17,
from external/llvm-project/mlir/include/mlir/Support/LLVM.h:24,
from external/llvm-project/mlir/include/mlir/IR/MLIRContext.h:12,
from external/llvm-project/mlir/include/mlir/IR/TypeSupport.h:16,
from external/llvm-project/mlir/include/mlir/IR/Types.h:12,
from external/llvm-project/mlir/include/mlir/IR/Value.h:16,
from external/llvm-project/mlir/include/mlir/IR/BlockSupport.h:16,
from external/llvm-project/mlir/include/mlir/IR/Block.h:16,
from external/llvm-project/mlir/include/mlir/IR/Operation.h:16,
from external/llvm-project/mlir/include/mlir/IR/OpDefinition.h:22,
from external/llvm-project/mlir/include/mlir/Dialect/Traits.h:17,
from external/llvm-project/mlir/test/lib/Dialect/Test/TestDialect.h:17,
from external/llvm-project/mlir/test/lib/Transforms/TestInlining.cpp:15:
/usr/lib/gcc/x86_64-redhat-linux/10/../../../../include/c++/10/type_traits: In instantiation of 'struct std::is_constructible<mlir::BlockAndValueMapping, llvm::iterator_range<llvm::detail::indexed_accessor_range_base<mlir::OperandRange, mlir::OpOperand*, mlir::Value, mlir::Value, mlir::Value>::iterator> >':
external/llvm-project/llvm/include/llvm/ADT/STLExtras.h:1171:30:   required by substitution of 'template<class RangeT, class> llvm::detail::indexed_accessor_range_base<mlir::OperandRange, mlir::OpOperand*, mlir::Value, mlir::Value, mlir::Value>::operator RangeT<RangeT,  >() const [with RangeT = mlir::BlockAndValueMapping;  = ]'
external/llvm-project/mlir/test/lib/Transforms/TestInlining.cpp:49:75:   required from here
/usr/lib/gcc/x86_64-redhat-linux/10/../../../../include/c++/10/type_traits:909:52: error: static assertion failed: template argument must be a complete class or an unbounded array
909 |       static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
Provide the exact sequence of commands / steps that you executed before running into the problem
Any other info / logs
Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached.

@pashu123
Request you to fill issue template .Also Provide the exact sequence of commands / steps that you executed before running into the problem.Thanks!


Create a new file with some suffix if the current file is READ only

This is required if we want to create releases of the extracted data using hard links and thus don't want historic files to change. Since releases will be created for quite older datasets, this will not happen very often.

Releases using hard-links seems very error prone. If you want to do this on a file system level, zfs or btrfs filesystem snapshots seem better suited for the purpose. A full copy would at least be less error prone and could be stored at an alternate location.

We are looking for suggestions on this. Since we don't want multiple duplicate copies of such a large dataset, full copy is not an option. Also releases will be made every 2-3 months.

Not required now. Migrating to a copy on write FS


Request for pytorch version

Hi. I was wondering if you have plan to share code based on pytorch instead of tensorflow.

Can confirm that we are looking into PyTorch support but there's no timeline yet.


library starter: don't bundle dependencies

If they are dependencies or peer dependencies, they should not be in the resulting library bundle.
What is it?

[x] Feature / enhancement

Description
Library starter makes libraries, so their bundles should exclude dependencies and peerDependencies. Anything that should be bundled should be in devDependencies.
Checklist:

[x] My code follows the developer guidelines of this project
[x] I have performed a self-review of my own code
[ ] I have made corresponding changes to the documentation
[ ] Added new tests to cover the fix / functionality

:pleading_face:


[BUG] IKEA 2 and 3 gen controllers spamming the network need tsn filtering

Describe the bug
The newer IKEA controllers gen 2 and 3 is sending multiple commands to bounded device / groups with the same tsn that is making problems with device automation in HA.
To Reproduce
Have made sniffing of all those new devices and they is doing the same nasty thing = every cluster binding and configured reporting is making one more copy of commands being sent with the same transaction number.
So configuring 2 attribute reporting and one group binding you is getting 2 unicast and 2 or 3  bradcast of the same command that is not nice done but is working in the network.
But then users is using device automation in HA they is getting multiple trigger that is one no go.
Devices that doing it: Symfonisk, Shortcut button and Styrbar (E2001/E2002).
Expected behavior
If one device is bad behaving like this or is missing getting default response and reseeding one command with the same tsn shall the host system filtering them out so the user is only  getting one command in HA
Screenshots
Additional context
tuya devices that is not using ZCL  commands is sending more commands if not forcing ZHA sending default response that is implanted in the quirk and also one filtering function that looks working OK.
If its  possible doing the same in /zhaquirks/ikea/__init__.py  as is made in the /tuya/_init_.py
but only the tsn part that can being used in the controllers quirk.

Don't use sniffer. How many messages coordinator reports in the debug log?
What you are seeing is not spamming, but messages being related by the devices, specially if it is a broadcast packet

I retested the remote and pairing it and its sending on one button pres:
[0x8b51:1:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=11 command_id=1>
[0x8b51:1:0x0006] ZCL request 0x0001: []
[0x8b51:1:0x0006] No handler for cluster command 1
[0x8b51:1:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=11 command_id=1>
[0x8b51:1:0x0006] ZCL request 0x0001: []
[0x8b51:1:0x0006] No handler for cluster command 1
[0x8b51:1:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=11 command_id=1>
[0x8b51:1:0x0006] ZCL request 0x0001: []
[0x8b51:1:0x0006] No handler for cluster command 1
[0x8b51:1:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=11 command_id=1>
[0x8b51:1:0x0006] ZCL request 0x0001: []
[0x8b51:1:0x0006] No handler for cluster command 1
[0x8b51:1:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=11 command_id=1>
[0x8b51:1:0x0006] ZCL request 0x0001: []
[0x8b51:1:0x0006] No handler for cluster command 1

If doing one reconfigure and binding one group its being more with the same tsn.

Reconfigure is doing 5 bindings / attribute reporting and then i is getting:
[0x8b51:1:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=16 command_id=0>
[0x8b51:1:0x0006] ZCL request 0x0000: []
[0x8b51:1:0x0006] No handler for cluster command 0
[0x8b51:1:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=16 command_id=0>
[0x8b51:1:0x0006] ZCL request 0x0000: []
[0x8b51:1:0x0006] No handler for cluster command 0
[0x8b51:1:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=16 command_id=0>
[0x8b51:1:0x0006] ZCL request 0x0000: []
[0x8b51:1:0x0006] No handler for cluster command 0
[0x8b51:1:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=16 command_id=0>
[0x8b51:1:0x0006] ZCL request 0x0000: []
[0x8b51:1:0x0006] No handler for cluster command 0
[0x8b51:1:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=16 command_id=0>
[0x8b51:1:0x0006] ZCL request 0x0000: []
[0x8b51:1:0x0006] No handler for cluster command 0

= 1 event / binding = very bad behavior device.
Bonded to on group (lights attribute reporting is deleted):
[0x8b51:1:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=19 command_id=1>
[0x8b51:1:0x0006] ZCL request 0x0001: []
[0x8b51:1:0x0006] No handler for cluster command 1
[0x8b51:1:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=19 command_id=1>
[0x8b51:1:0x0006] ZCL request 0x0001: []
[0x8b51:1:0x0006] No handler for cluster command 1
[0x8b51:1:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=19 command_id=1>
[0x8b51:1:0x0006] ZCL request 0x0001: []
[0x8b51:1:0x0006] No handler for cluster command 1
[0x8b51:1:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=19 command_id=1>
[0x8b51:1:0x0006] ZCL request 0x0001: []
[0x8b51:1:0x0006] No handler for cluster command 1
[0x8b51:1:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=19 command_id=1>
[0x8b51:1:0x0006] ZCL request 0x0001: []
[0x8b51:1:0x0006] No handler for cluster command 1
[0x8b51:1:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=19 command_id=1>
[0x8b51:1:0x0006] ZCL request 0x0001: []
[0x8b51:1:0x0006] No handler for cluster command 1
[0x8b51:1:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=19 command_id=1>
[0x8b51:1:0x0006] ZCL request 0x0001: []
[0x8b51:1:0x0006] No handler for cluster command 1
[0x8b51:1:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=19 command_id=1>
[0x8b51:1:0x0006] ZCL request 0x0001: []
[0x8b51:1:0x0006] No handler for cluster command 1

Only 8 command received with the same tsn.
And doing on reconfigure after the group binding:
[0x8b51:1:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=24 command_id=1>
[0x8b51:1:0x0006] ZCL request 0x0001: []
[0x8b51:1:0x0006] No handler for cluster command 1
[0x8b51:1:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=24 command_id=1>
[0x8b51:1:0x0006] ZCL request 0x0001: []
[0x8b51:1:0x0006] No handler for cluster command 1
[0x8b51:1:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=24 command_id=1>
[0x8b51:1:0x0006] ZCL request 0x0001: []
[0x8b51:1:0x0006] No handler for cluster command 1
[0x8b51:1:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=24 command_id=1>
[0x8b51:1:0x0006] ZCL request 0x0001: []
[0x8b51:1:0x0006] No handler for cluster command 1
[0x8b51:1:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=24 command_id=1>
[0x8b51:1:0x0006] ZCL request 0x0001: []
[0x8b51:1:0x0006] No handler for cluster command 1
[0x8b51:1:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=24 command_id=1>
[0x8b51:1:0x0006] ZCL request 0x0001: []
[0x8b51:1:0x0006] No handler for cluster command 1
[0x8b51:1:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=24 command_id=1>
[0x8b51:1:0x0006] ZCL request 0x0001: []
[0x8b51:1:0x0006] No handler for cluster command 1
[0x8b51:1:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=24 command_id=1>
[0x8b51:1:0x0006] ZCL request 0x0001: []
[0x8b51:1:0x0006] No handler for cluster command 1

Its the same as only doing binding so ZHA is doing the setup OK.
I thinkk you can giving E2001/E2002 new name = Hedda and MattWestb  (= network spammers) !!!

The 2 gen is fixed then they is not sending broadcast but  the 3rd is still having this problem spamming the network.
If the Zigbee stack is receiving one ZCL command and is getting one more with the same tsn is shall not using the last only the first one. Some stacks is doing that but not EZSP and i think some more (only have testing EZSP).

Still one problem if having one large system and spamming the network.

Still one problem then making automatons from this switches :-((


Disable parallel computation in KLDivLoss

Without this patch, it takes more than 15g memory when factoring a 2000x1000 matrix before I killed the process.

The original code spawns a bunch of goroutines. I am not sure if this has big overheads in memory footprint. How much mem does it take when applied this patch?
Also, to make it block less in accum, could you try increasing the size of the chan?

Usually we don't create a goroutine inside a loop.
We can create mulitple workers and send them work via single channel.
Make this single-threaded should also work.

LGTM.


Support cloning of Responses

According to MDN https://developer.mozilla.org/en-US/docs/Web/API/Response/clone and the spec https://fetch.spec.whatwg.org/#dom-response-clone Response class should have a clone() method, which seems to be missing now.

I'd suggest the safe-cone-deep npm module, but I'm biased.  It's good enough for pm2 ;-)

Don't forget that clone() may occur any time, including when original response is being read.
So clone() should create a new object with already read data and allow further reading of same (or piped) source.

@kirill-konshin are you using clone? if so, how? I do feel clone() is an API that's so rarely used by developers.

It gives an ability to re-read the response. This use-case is even mentioned at MDN.

Here is a simple solution based on your codebase:
// in response.js inside _decode method the following should be moved to constructor
this._raw = [];

// introduce a new flag _ended which should be true on end event of body

// new method
Response.prototype.clone = function() {
    // if body has been captured,
    var body = (this._ended) ? Buffer.concat(this._raw) : this.body;
    var clone = new Response(body, this);
    clone._raw = this._raw; // provide whatever has been captured already
    return clone;
}

This is another example how passing buffers to constructor may help.

v1.4.0 now has clone built-in :)


Plans on supporting linux

Are there any plans on supporting linux as a platform?
Although apple/swift-corelibs-foundation is still under development and a bit far from completion, it's being used by some Server Side Swift frameworks, so it's usable to some extent.
It would be really nice to be able to use AudioKit on the server to run DSP on Swift.

There are no plans currently, but we'll watch as Swift on Linux evolves.

Hey, it looks like there was quite a lot of progress. There is a docker container you can bring up and have a working environment (https://www.swift.org/install/linux/)
Is there some kind of example project to build? I can take a look if it works.


Fix nix flake checks

Fixes nix flake check and (hopefully) CI for https://github.com/cachix/git-hooks.nix/pull/401.
I needed to update the flake.nix inputs to get git-annex (the bup dependency) to build. The diff is huge because I needed to reindent a ton of stuff but without whitespace changes it's pretty modest:
diff --git a/modules/hooks.nix b/modules/hooks.nix
index 5898546..d0032ee 100644
--- a/modules/hooks.nix
+++ b/modules/hooks.nix
@@ -1333,6 +1333,8 @@ in
                 example = [ "flake.nix" "_*" ];
               };
           };
+        };
+      };
       sort-file-contents = mkOption {
         description = lib.mdDoc "Additional ormolu settings";
         type = types.submodule {
@@ -2671,7 +2673,7 @@ lib.escapeShellArgs (lib.concatMap (ext: [ "--ghc-opt" "-X${ext}" ]) hooks.ormol
             let
               cmdArgs =
                 mkCmdArgs
-                        (with settings.no-commit-to-branch; [
+                  (with hooks.no-commit-to-branch.settings; [
                     [ (branch != [ ]) "--branch ${lib.strings.concatStringsSep " --branch " branch}" ]
                     [ (pattern != [ ]) "--pattern ${lib.strings.concatStringsSep " --pattern " pattern}" ]
                   ]);
@@ -2976,7 +2978,8 @@ lib.escapeShellArgs (lib.concatMap (ext: [ "--ghc-opt" "-X${ext}" ]) hooks.ormol
           types = [ "python" ];
         };
       rustfmt =
-              letinherit (hooks.rustfmt) packageOverrides;
+        let
+          inherit (hooks.rustfmt) packageOverrides;
           wrapper = pkgs.symlinkJoin {
             name = "rustfmt-wrapped";
             paths = [ packageOverrides.rustfmt ];
@@ -3028,7 +3031,7 @@ lib.escapeShellArgs (lib.concatMap (ext: [ "--ghc-opt" "-X${ext}" ]) hooks.ormol
             let
               cmdArgs =
                 mkCmdArgs
-                    (with settings.sort-file-contents;
+                  (with hooks.sort-file-contents.settings;
                   [
                     [ ignore-case "--ignore-case" ]
                     [ unique "--unique" ]

Thanks for fixing up the branch! Much appreciated :smile:


Update website - Section: This is how the app works best

Where to find the issue

EN

DE

Describe the issue

12.5 min req for iPhone 5s, 6, 6 Plus, ... 13.7 for higher models
Suggested change

EN
"Keep operating systems up-to-date (iOS 14.4 or iOS 12.5.1 depending on your iPhone model or at least Android 6 with current Google Play Services, respectively) More details"
DE
Betriebssysteme aktuell halten (iOS 14.4 oder iOS 12.5.1 abhängig von Ihrem iPhone Modell oder mindestens Android 6 mit aktuellen Google Play Services)Mehr Details"

@dsarkar
The changes look good.
Should be "Google Play services" without capitalization of services though. 🙂

@MikeMcC399 OK! Thanks!

@MikeMcC399
I think in DE itshould be
"Google Play-Dienste"

@dsarkar
"Google Play-Dienste" is what I see in German too. 👍


ContinuityAnalyzer:  duplicate packet checking may be too simplistic

In the ContinuityAnalyzer class's feedPacketInternal() method, if it encounters a case in which the CC value is the same as that of the last input packet and it has a payload, it assumes that this packet must be a duplicate of the last packet.  Per the standard, that should be the case, but other situations could arise in buggy transport streams.  Without doing a memory compare of the original input packet and the current input packet, there is no way to know that they are actually duplicates.  If a memory compare were to return false, then that would be an indication of a different error, that the CC value didn't increment, but it should have been incremented because the packets aren't duplicates.
Maintaining the last input packet, per PID, is warranted for addressing issues with the class when used in generator mode, as I reported in a different issue.

With one exception, according to ISO/IEC 13818-1:

In duplicate packets each byte of the original packet shall be duplicated, with the exception that in the program clock reference fields, if present, a valid value shall be encoded.

This mean that duplicates are never accidental. They must be generated in the network and explicitly
updated. I have never specifically searched for duplicate packets in live streams. So, I do not know if this is the case in practice.

Hi,
I suggest to include a simple parameter --enforce-no-duplicates to overcome the problem of duplicates when we're sure that they don't exist in the stream. So when this flag is enabled, then all CC counters will be recomputed without any check.
You agree, @lelegard ?
Regards.

Fixed in commit b53e6c751e237040eb54d013fc5ed297fa1dd98a


Add: Viasat Explore (Finland)

Channel Name
Viasat Explore (Finland)
Alternative Names (optional)
Viasat Explore HD (Finland)
Network (optional)
No response
Owners (optional)
No response
Country
FI
Subdivision (optional)
No response
City (optional)
No response
Broadcast Area
c/FI
Languages
eng
Categories (optional)
No response
NSFW
FALSE
Launched (optional)
No response
Closed (optional)
No response
Replaced By (optional)
No response
Website (optional)
https://viasatexplore.eu/
Logo
https://img.prod.telkku.com/channel-logos/Viasat_Explore.png
Notes
No response

Please update your request:

no need to specify the country in the channel name
no need to specify the country in the channel alternative name

https://github.com/iptv-org/database/blob/master/CONTRIBUTING.md#channels

Thank you, @freearhey. Updated the issue according to the requested changes.


SurfaceDuoLayout and startActivity

Hello,
I have very simple app - on activity with only a SurfaceDuoLayout as simple as this:
<com.microsoft.device.dualscreen.layouts.SurfaceDuoLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:single_screen_layout_id="@layout/view_single"
    app:dual_screen_start_layout_id="@layout/view_left"
    app:dual_screen_end_layout_id="@layout/view_right"
    app:tools_screen_mode="dual_screen">

It all works when I start the app:
app starts in single screen, drag it to the hinge and it becomes dual screen all works fine.
Now if create the same activity by startActivity it always starts as single mode (and I can even not drag it again), app is in duo mode so as a result I got same activity spanned as it displays the single view
onScreenInfoChanged seems correct (getting single/duo as expected) but the following code inside SurfaceDuoLayout gets confused:
setupViewModel method viewModel is single for the second start?
Any idea what's wrong?

Hi @letisoft,
Thanks for your detailed message. We are aware of this issue and we are currently working on it. The fix will be provided with the next alpha version (will be published asap).
Please, let us know with any other issue you may have,
Thanks,
Andrei

Hi @letisoft,
Thanks for your detailed message. We are aware of this issue and we are currently working on it. The fix will be provided with the next alpha version (will be published asap).
Please, let us know with any other issue you may have,
Thanks,
Andrei

Hello,
Thank you very much for the quick response, but how can I get my app working?
All I need is start activity in spanned mode while the app is already in spanned mode?
I have activity A and once a button is clicked I need it to start activity B but in dual screen as activity A is in dual screen already?
What is the way to achieve this?
Thanks again!

Hello,
Thank you very much for the quick response, but how can I get my app working?
All I need is start activity in spanned mode while the app is already in spanned mode?
I have activity A and once a button is clicked I need it to start activity B but in dual screen as activity A is in dual screen already?
What is the way to achieve this?
Thanks again!

Hello,
Sorry for pushing, but it is good to know if there is a way to bypass the issue, right now it looks like this is a showstopper and I hope there is a way to move forward.
Thank you very much!

Hello,
Sorry for pushing, but it is good to know if there is a way to bypass the issue, right now it looks like this is a showstopper and I hope there is a way to move forward.
Thank you very much!

Hey @letisoft,
We currently have a bug that prevents you to launch a new Activity using the SurfaceDuoLayout when the app is spanned and keeping that state.
The fix is almost finished, and will be included in the next release.
In the meantime, what you can do is instead of launching a new Activity is to replace your Activities for fragments, so you just replace fragments while keeping just one Activity.
We understand that this scenario is maybe a no-go for you, if this is the case, please, wait till we have the new version released that will fix the problem.
Thanks,
Andrei

Hey @letisoft,
We currently have a bug that prevents you to launch a new Activity using the SurfaceDuoLayout when the app is spanned and keeping that state.
The fix is almost finished, and will be included in the next release.
In the meantime, what you can do is instead of launching a new Activity is to replace your Activities for fragments, so you just replace fragments while keeping just one Activity.
We understand that this scenario is maybe a no-go for you, if this is the case, please, wait till we have the new version released that will fix the problem.
Thanks,
Andrei

Thank you for the update. When is next release due?
On Thu, 21 Jan 2021, 12:42 Andrei Cirja<EMAIL_ADDRESS>wrote:

Hey @letisoft https://github.com/letisoft,
We currently have a bug that prevents you to launch a new Activity using
the SurfaceDuoLayout when the app is spanned and keeping that state.
The fix is almost finished, and will be included in the next release.
In the meantime, what you can do is instead of launching a new Activity is
to replace your Activities for fragments, so you just replace fragments
while keeping just one Activity.
We understand that this scenario is maybe a no-go for you, if this is the
case, please, wait till we have the new version released that will fix the
problem.
Thanks,
Andrei
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/microsoft/surface-duo-sdk/issues/8#issuecomment-764545686,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABGMOXIBTK5MX2VNCJEO4MDS3AALBANCNFSM4WKIUWNA
.

Thank you for the update. When is next release due?
On Thu, 21 Jan 2021, 12:42 Andrei Cirja<EMAIL_ADDRESS>wrote:

Hey @letisoft https://github.com/letisoft,
We currently have a bug that prevents you to launch a new Activity using
the SurfaceDuoLayout when the app is spanned and keeping that state.
The fix is almost finished, and will be included in the next release.
In the meantime, what you can do is instead of launching a new Activity is
to replace your Activities for fragments, so you just replace fragments
while keeping just one Activity.
We understand that this scenario is maybe a no-go for you, if this is the
case, please, wait till we have the new version released that will fix the
problem.
Thanks,
Andrei
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/microsoft/surface-duo-sdk/issues/8#issuecomment-764545686,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABGMOXIBTK5MX2VNCJEO4MDS3AALBANCNFSM4WKIUWNA
.

Hi @letisoft ,
We cannot provide a specific ETA, but it should not take long (we would like to have it next month).
Thanks,
Andrei

Hi @letisoft ,
We cannot provide a specific ETA, but it should not take long (we would like to have it next month).
Thanks,
Andrei

Hello,
Any update on this one?
I am not that good with git hub - will I get update once bug is fixed?
Thanks

Hey,
fix was already merged and avaialable in beta2 version of the library available in JCenter.
See the PR: https://github.com/microsoft/surface-duo-sdk/pull/10 for more info and the release tag: https://github.com/microsoft/surface-duo-sdk/releases/tag/02172021
Thanks,
Cesar

Hello,
Strange I have only changed
implementation "com.microsoft.device.dualscreen:layouts:1.0.0-beta1"
implementation "com.microsoft.device.dualscreen:screenmanager-windowmanager:1.0.0-beta1"

to
implementation "com.microsoft.device.dualscreen:layouts:1.0.0-beta2"
implementation "com.microsoft.device.dualscreen:screenmanager-windowmanager:1.0.0-beta2"
And now app crashes:
java.lang.RuntimeException: Unable to start activity ComponentInfo{info.tinyapps.duotest/info.tinyapps.duotest.MainActivity}: android.view.InflateException: Binary XML file line #21 in info.tinyapps.duotest:layout/activity_main: Binary XML file line #21 in info.tinyapps.duotest:layout/activity_main: Error inflating class com.microsoft.device.dualscreen.layouts.SurfaceDuoLayout
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3275)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3414)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2021)
    at android.os.Handler.dispatchMessage(Handler.java:107)
    at android.os.Looper.loop(Looper.java:214)
    at android.app.ActivityThread.main(ActivityThread.java:7367)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:942)
 Caused by: android.view.InflateException: Binary XML file line #21 in info.tinyapps.duotest:layout/activity_main: Binary XML file line #21 in info.tinyapps.duotest:layout/activity_main: Error inflating class com.microsoft.device.dualscreen.layouts.SurfaceDuoLayout
 Caused by: android.view.InflateException: Binary XML file line #21 in info.tinyapps.duotest:layout/activity_main: Error inflating class com.microsoft.device.dualscreen.layouts.SurfaceDuoLayout
 Caused by: java.lang.reflect.InvocationTargetException
    at java.lang.reflect.Constructor.newInstance0(Native Method)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
    at android.view.LayoutInflater.createView(LayoutInflater.java:854)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1006)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:961)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:1123)
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1084)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:682)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:534)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:481)
    at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:696)
    at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:170)
    at info.tinyapps.duotest.MainActivity.onCreate(MainActivity.java:19)
    at android.app.Activity.performCreate(Activity.java:7825)
    at android.app.Activity.performCreate(Activity.java:7814)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1306)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3250)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3414)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2021)
    at android.os.Handler.dispatchMessage(Handler.java:107)
    at android.os.Looper.loop(Looper.java:214)
    at android.app.ActivityThread.main(ActivityThread.java:7367)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:942)
 Caused by: java.lang.IllegalStateException: property javaClass (Kotlin reflection is not available) must be initialized inside Application#onCreate()

2021-03-17 09:45:00.159 5971-5971/info.tinyapps.duotest E/AndroidRuntime:     at com.microsoft.device.dualscreen.ScreenManagerProvider.getScreenManager(ScreenManagerProvider.kt:32)
at com.microsoft.device.dualscreen.layouts.ScreenSavedState.(ScreenSavedState.kt:22)
at com.microsoft.device.dualscreen.layouts.SurfaceDuoLayoutViewModel.(SurfaceDuoLayoutViewModel.kt:17)
at java.lang.Class.newInstance(Native Method)
at androidx.lifecycle.ViewModelProvider$NewInstanceFactory.create(ViewModelProvider.java:219)
at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:187)
at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:150)
at com.microsoft.device.dualscreen.layouts.SurfaceDuoLayout.setupViewModel(SurfaceDuoLayout.kt:81)
at com.microsoft.device.dualscreen.layouts.SurfaceDuoLayout.(SurfaceDuoLayout.kt:73)
at com.microsoft.device.dualscreen.layouts.SurfaceDuoLayout.(SurfaceDuoLayout.kt:42)
at com.microsoft.device.dualscreen.layouts.SurfaceDuoLayout.(Unknown Source:8)
... 28 more
Please note no other changes at all?
Thank you!

We think you have missed the configuration step for the ScreenManager where you need to set it up: https://docs.microsoft.com/dual-screen/android/api-reference/dualscreen-library/core/surfaceduo-screen-manager?tabs=kotlin
Specifically this code snippet:
class SampleApp : Application() {
    override fun onCreate() {
        super.onCreate()
        ScreenManagerProvider.init(this)
    }
}

Where you need to create an Application class that extends from Application and initialize ScreenManager before being able to use it.
You also have sample apps inside this code repo that can help you to understand how to use the components.
Thanks,
Cesar

Thank you very much!
Yes this was the problem and it was OK with the old version of the libs
Thank you again!
On Wed, Mar 17, 2021 at 12:43 PM Cesar Valiente @.***>
wrote:

We think you have missed the configuration step for the ScreenManager
where you need to set it up:
https://docs.microsoft.com/dual-screen/android/api-reference/dualscreen-library/core/surfaceduo-screen-manager?tabs=kotlin
Specifically this code snippet:
class SampleApp : Application() {
override fun onCreate() {
super.onCreate()
ScreenManagerProvider.init(this)
}
}
Where you need to create an Application class that extends from
Application and initialize ScreenManager before being able to use it.
You also have sample apps inside this code repo that can help you to
understand how to use the components.
Thanks,
Cesar
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/microsoft/surface-duo-sdk/issues/8#issuecomment-800980162,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABGMOXP3CPTYRIVJCHFTSBTTECBUJANCNFSM4WKIUWNA
.

Awesome!! Glad to hear that the problem is fixed.
Oh FYI, feel free to keep opening issues as you find problems (thanks a lot for doing that!), and if you have any other question, ideas, proposals, complains, etc. feel free to use our discussions channel that we have just set it up: https://github.com/microsoft/surface-duo-sdk/discussions
Thanks,
Cesar


add nodeAddressMap config for cluster

#1782

Codecov Report

Merging #1827 (011db47) into master (16afa7d) will decrease coverage by 0.35%.
The diff coverage is 55.88%.

@@            Coverage Diff             @@
##           master    #1827      +/-   ##
==========================================
- Coverage   95.05%   94.70%   -0.36%
==========================================
  Files         358      358
  Lines        3337     3342       +5
  Branches      405      409       +4
==========================================
- Hits         3172     3165       -7
- Misses         83       90       +7
- Partials       82       87       +5

Impacted Files
Coverage Δ

packages/client/lib/cluster/cluster-slots.ts
58.55% <48.00%> (-2.77%)
:arrow_down:

packages/client/lib/cluster/index.ts
78.12% <60.00%> (ø)

packages/client/lib/commands/CLUSTER_NODES.ts
91.17% <100.00%> (ø)

packages/client/lib/errors.ts
95.45% <0.00%> (-4.55%)
:arrow_down:

packages/client/lib/client/commands-queue.ts
76.31% <0.00%> (-3.95%)
:arrow_down:

Continue to review full report at Codecov.

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


Implement test for 'project' method of Map

I would like to work on this too. Can you please assign this to me?

I would also like to contribute, can you please assign it to me?

I'm sorry, but someone already claimed this issue.

I was trying to port some of the tests from ProjectionSpec, I am not sure if I did get the idea right.
The test case:
it("projects the southwest corner of the world", () => {
	console.log(2, map.project(L.latLng(-85.0511287798, -180)))
	expect(map.project(L.latLng(-85.0511287798, -180))).near([5.6, 0]);
});

The output:
LOG: 2, Object{x: 5.551115123125783e-17, y: 0.9999999999997871}
Chrome Headless 106.0.5249.119 (Windows 10): Executed 1027 of 1089 (1 FAILED) (skipped 11) (0 secs / 8.856 secs)
LOG: 'expected: Point(5.6, 0)'
Chrome Headless 106.0.5249.119 (Windows 10): Executed 1027 of 1089 (1 FAILED) (skipped 11) (0 secs / 8.856 secs)
Chrome Headless 106.0.5249.119 (Windows 10) Map #project projects the southwest corner of the world FAILED
        Error: expected 5.551115123125783e-17 to be within 4.6..6.6
            at Assertion.assert (node_modules/expect.js/index.js:96:13)
            at Assertion.within (node_modules/expect.js/index.js:248:10)
            at Function.within (node_modules/expect.js/index.js:499:17)
            at expect.Assertion.near (spec/suites/SpecHelper.js:6:7)
            at Context.<anonymous> (spec/suites/map/MapSpec.js:2427:56)

i am interested in this issue .can i contribute to this issue i have basic knowledge on html css jquery bootstrap java also.

@Satyabrat-Ojha if you are not working on it please assign to me

Hi,
I am new to open source. Can I take up this issue?

Hi @AshwinNema if you want, you can work on this. Please take a look into our comments of #8636

Hi @AshwinNema , are you working on this?
I would like to contribute to it @Falke-Design

@sarmadH97 when you look through the linked PRs, you will see that #9303 is already existing.
Please search for another one without a PR


document creation options

I'm using codimd-cli import to create a new document from Markdown.  This is working on HackMD now (thanks!).
When importing, it looks like we need:

The ability to specify which team the document should be a member of.
Right now, imported documents belong to the user.  I cannot see how to import into a team.

The ability to assign tags
Regarding teams & organization, it appears the only way to organize documents within a team is via tags.  I think we can manage with tags for now; each Node.js working group could have its own tag.  If something else is provided instead (e.g., folders), it's important that we don't need to manage multiple logins or tokens.

The ability to provide a custom slug (URL)
We get a randomly-assigned URL after importing.  This is a nice-to-have.

This stuff could also be part of an "editing" workflow, where we login, then import, then make another API call to move the document, assign tags, update the slug, etc.

cross-reference: nodejs/create-node-meeting-artifacts#92

Hi @boneskull
You can now specify the team path when creating a note with<EMAIL_ADDRESS>or API client v1.1.1.
And for assigning tag you can try theses syntaxes:
In YAML
---
tags: tag1,tag2
---

In heading 6:
###### tags: `tag1` `tag2`

HackMD will parse these syntaxes as tags.