Latest nightly seems to ignore semantic highlighting settings

I have semantic highlight disabled via the configuration below. The latest nightly seems to ignore it now and always applies semantic highlighting. I've also tried to disable it via the global Editor -> Semantic Highlighting: Enabled setting.
Disabling of semantic highlighting worked as expected prior to rust-analyzer version: nightly (f0412da).
   "editor.semanticTokenColorCustomizations": {
        "[Atom One Dark]": {
            "enabled": false,
        }
    },

Try "editor.semanticHighlighting.enabled": false.

Try "editor.semanticHighlighting.enabled": false.

I've tried that but it has no effect :(
As mentioned above, this all worked as expected prior to today (2020-10-17).

With the new update, I'm having the same problem. I've had "editor.semanticHighlighting.enabled": false in my settings.json to disable semantic highlighting for a while now, and today semantic highlighting unexpectedly turned back on. Adding editor.semanticTokenColorCustomizations has no effect.

It's possible that what I'm observing is on account of the new TextMate grammar (https://github.com/rust-analyzer/rust-analyzer/commit/49d824a99d3bc344eb03a9139f1fb99a0e5d30c0) rather than semantic highlighting being turned on. I don't really know what difference semantic highlighting makes, I just had it turned off because I didn't like having so much of my code colored like functions.

I would believe this is due to the new textmate grammar if anything as using "editor.semanticHighlighting.enabled": false at least on current nightly properly disables semantic highlighting for me. So my guess is that the new textmate grammar has some scopes that are somewhat different to the previous one.

Is there any way I can use vscode's built-in Rust grammar instead of the one that comes with this extension?

Also one way to check whether semantic highlighting is truly active or not is to use the Developr: Inspect Editor Tokens and Scopes action in VSCode. If it only shows textmate scopes for items like function names and the like it is definitely disabled.
With semantic highlighting enabled:

And with it disabled:

@Veykril When I do that, I don't see any semantic token type listing. So it looks like my editor, at least, doesn't have semantic highlighting enabled. The new grammar just makes it look similar to the way it looks when it is enabled.

I don't think there is a way to specifically disable/replace a textmate grammar given by an extension unfortunately, I at least don't see/find a way.
What exactly is the problem with the new grammar though or rather what is dissatisfying? I use semantic highlighting so I dont know what changed but judging from this Issue here I suppose it's not using the scopes people would expect.

@Veykril Here's an example of what a couple pieces of the same file look like in my editor:

With the old rust-analyzer grammar

With the new rust-analyzer grammar

I like some of the changes. A lot of punctuation went from the default color to being colored like & or +, which is very helpful, especially with dollar signs in macro definitions.
The biggest problem for me is that so much stuff is green now!! I'm used to green being used in a few places, mostly for functions, but now it's used for modules (most of the time), enum variants (including Some/None/Ok/Err), type parameters, all type names, and macro_rules. This is way too much, I want the most common color to be the default color. I also don't like having imports colored differently from each other, except idents with special meaning in use declarations, like self.
Highlighting of attributes has also changed in a way that doesn't make sense to me. #[derive(Copy, Clone)] used to have derive colored green. Now derive is the default color, and Copy and Clone are green. The path is the most important part of an attribute, so I appreciated having only that part colored differently.
And this is probably my most subjective issue, but I liked having different colors for identifiers from the prelude, like From, Some, None, etc.
There are other things that make the change jarring (let being a different color from mut is the main one), but they're understandable differences that I wouldn't mind getting used to.

let being a different color from mut is the main one

let is storage.type.rust while mut is storage.modifier.mut.rust. These are the correct textmate scopes.

Highlighting of attributes has also changed in a way that doesn't make sense to me. #[derive(Copy, Clone)] used to have derive colored green. Now derive is the default color, and Copy and Clone are green.

derive is missing. Copy and Clone get interprwted as types and thus become entity.name.type.rust.

The biggest problem for me is that so much stuff is green now!! I'm used to green being used in a few places, mostly for functions, but now it's used for modules (most of the time), enum variants (including Some/None/Ok/Err), type parameters, all type names, and macro_rules. This is way too much, I want the most common color to be the default color.

That is something the theme decides, not the grammar. The mere task of the grammar is to categorize tokens. It is the theme that decides how it should then look.

I also don't like having imports colored differently from each other, except idents with special meaning in use declarations, like self.

Names starting with a capital letter are assumed to be types and thus get entity.name.type.rust for use statements lowercase names seem to get no scope from looking at the textmate grammar. (oversight?)

All I see is what colors the editor chooses, and all of the problems I have seem to be similar in all of the built-in color themes. The only difference is that some themes distinguish between "types" and "functions," causing enum variants to look different depending on what kind of fields they have, which is even worse!
I'm sure the new scopes would be very helpful for a theme built specifically for Rust, but I'd rather use the default grammar because of how it looks.

Enum variants should always start with a capital first letter. (There is a lint for that) This means they should always get the type textmate scope.

Tuple variants get the function scope.

Interesting. It seems that the enum rule only matches enum Name and interprets the part between { and } as if it isn't an enum declaration. This means that tuple variants get interpreted as function calls.

I tried to write an extension to override this (https://marketplace.visualstudio.com/items?itemName=benesch.legacy-rust-syntax) but unfortunately it seems to be impossible to override the textmate grammar that ships with rust-analyzer. At least, I don't know how to do it.
I'd like to propose that rust-analyzer not ship a Rust grammar at all, besides the semantic one. That would allow folks to choose the grammar they want by either installing or not installing @dustypomerleau's Rust Syntax extension. Upstream VSCode seems likely to adopt that as the standard Rust grammar, too. (And if they do, then the extension I created should work to undo that.)

Whipped that proposal up as a PR here: https://github.com/rust-analyzer/rust-analyzer/pull/6318

I am happy to remove the grammar from Rust Analyzer if the community prefers the old grammar and/or the core team is finding it burdensome to have these grammar-related issues on the repo. I don't want it to be a distraction. In my original PR, shipping no grammar was one of the considered options. I'm getting a lot of useful feedback from shipping it here, which will make it better if VS Code adopts it, but again, that adoption should only happen if the community wants it.

As Bjorn has already pointed out, there is a big difference between not liking the color of a token, and not liking the scope. Feedback on the scopes is something I can action. For example, some themes use a separate color for storage and keyword, but others use the same color. The colors are easily overridden, but the scopes are not.

Some of the edge cases we're finding are also broken in the old grammar, so would need to be fixed in either case. For example, we fixed run-on raw strings in the new grammar, but in the old grammar they still look like this:

Attributes are a good example of something the old grammar treated as a single scope (allowing only strings). For example, all of:
#[derive(Debug, Clone, Logos)]

receives meta.attribute.rust in the old grammar. Neither the function scope or the trait scopes are allowed inside the attribute. I made the decision to allow the trait scopes through, but if there is broad agreement that it would be better to allow the function scope and not the trait scope, these are easy things to change. I think it's visually helpful to have some scopes visible in attributes

Some of the issues on the new grammar are related to scoping things that had no scope at all in the old grammar. For example, raw identifiers are simply treated as source.rust, and no theming can be applied. The new grammar caught the keywords, which made the raw identifiers look incorrect, but also brought them to my attention, so that we can add scopes.  Whether that's helpful or just annoying depends on whether you have an interest in theming them, I suppose.

Some of the issues in both the old grammar and the new grammar are just limitations of regex-based systems, which is why we have semantic highlighting. For example, tuple structs can be easily themed at the time of definition, but when you create an instance it's nearly impossible to distinguish this from a function call, because some functions start with capital letters:

Old grammar:

New grammar:

I can do things like extending the meta scope all the way to the closing } of a struct, but this only helps with the scoping of fields inside the declaration. If you refer to the fields outside the struct it won't necessarily be possible to theme them the same.
In any event, I'm flexible on whether to keep it in the repo. I appreciate all the feedback either way. @matklad @bjorn3 @lnicola

@dustypomerleau as long as you have desire and capacity for fixing the issues as they come up and coordinating with upstream (VS Code) regarding the inclusion of the grammar as the standard one, I think it will be highly beneficial to ship this grammar with rust-analyzer.
We are seeing quite a few reports about it, but this is a feature: it's much better to debug grammar while it is in rust-analyzer with a weekly release cycle, than when it is in VS Code.
When VS Code ships, it would make sense to remove grammar from rust-analyzer, but not before that.
Let me grant you triage rights and r+ on this repo, so that it's easier for you to make grammar changes and fix issues...

I agree. Letting your grammar bake in rust-analyzer seems to have uncovered a lot of issues, so I think it's been really beneficial.
Even if it gets merged in Code, we could keep it as a more up-to-date version (if you think it's still possible to improve it further). As for the issue of not being able to override it, IIRC matklad used to have a very bare-bones grammar, so maybe there's still a way?

Long-term, I think it would be better to ship nothing -- if we ship a grammar, a user can't override it with a custom one.
So, sadly, my favorite Rust textmate grammar doesn't work with current ra :)

I think it's safe to remove the attribution comment :smile:.

If you keep a grammar in the extension, you should probably communicate to users in some way that there's a custom grammar included and no known way to override it. I only came here because I thought what I was seeing was related to semantic highlighting.

if we ship a grammar, a user can't override it with a custom one.

Yeah, unfortunately I just can't use rust-analyzer until this grammar is removed. I know I'm probably weirdly particular, but I can't live with the new grammar, and no amount of tweaks will change that.
Are there any hacks we can use in the meantime to override the grammar? I mean, there must be some sort of extension load order that determines what extension gets to provide the Rust grammar, right?

@benesch You could fiddle with your editor.tokenColorCustomizations setting until it looks the way you want it again. That's what I'm planning to do.

@benesch there are several options:

you can revert to an older version of the extension
you can build the extension from source with grammar removed cargo xtask install --client=code
rust-analyzer also explicitly encourages forks, so you are free to publish an alternative extension to crates.io

Could the new grammar be moved to a separate extension so that it can be iterated on independently?

Yes, it could be moved to a separate extension, but I believe that would be less efficient way to arrive at the worse grammar.

@benesch there are several options:

you can revert to an older version of the extension
you can build the extension from source with grammar removed cargo xtask install --client=code
rust-analyzer also explicitly encourages forks, so you are free to publish an alternative extension to crates.io

Thanks for the suggestions. Those are all reasonable, but I'm on the hunt for a solution that allows me to continue to use the latest and greatest rust-analyzer without too much work on my end.
So here's the hack that seems to be working for me:
curl https://github.com/microsoft/vscode/blob/28b6143cb20edb22712acb45eee32c910ea45172/extensions/rust/syntaxes/rust.tmLanguage.json > ~/.vscode/extensions/matklad.rust-analyzer-0.2.352/rust.tmGrammar.json

If you're using VSCode Remote like I am, you can tweak the command slightly like so and run it on the remote machine:
curl https://github.com/microsoft/vscode/blob/28b6143cb20edb22712acb45eee32c910ea45172/extensions/rust/syntaxes/rust.tmLanguage.json > ~/.vscode/extensions/matklad.rust-analyzer-0.2.352/rust.tmGrammar.json

That just in-place overwrites the grammar that ships with rust-analyzer with the old grammar that ships with VSCode today. I imagine I'll have to run that command whenever rust-analyzer is auto-updated to a new version, but I can live with that.

For those following along, https://github.com/microsoft/vscode/pull/108254 was just merged. The November edition of VSCode is likely to include the new syntax.

Is there anything remaining to do on this issue? @matklad

I think we can still remove the TextMate grammar.

Since rust-analyzer no longer ships a grammar, it's now possible for another extension to supply one! I've released "Legacy Rust Syntax" (https://marketplace.visualstudio.com/items?itemName=benesch.legacy-rust-syntax) for any other weirdos like me who want to stick with the old sort-of broken grammar. It should just work now, if you're on the most recent versions of VSCode and rust-analyzer.


address: add proof courier TLV field to Tap address

Add mandatory TLV field.
Ensure encoding/decoding unit tests pass.
Add structure to populate field from CLI.

This PR replaces https://github.com/lightninglabs/taproot-assets/pull/432
I've moved the branch to lightninglabs/taproot-assets from ffranr/taproot-assets.

@guggero any idea why the test vector check is breaking? How does the test work? Is it trying to reproduce the test vectors exactly?

The two things I have left to do here (as far as I can tell):

Proof courier addr set as CLI arg tap address generation.
Proof courier addr uses URL type (from url package) instead of []byte in address package.

Follow up PR to address the last two reviews: https://github.com/lightninglabs/taproot-assets/pull/463


File reading error

Hi,
I'm testing the cord with ubuntu 20.04 and python 3.8.
I installed GeoPPI following your descriptions.
and I executed the command 'python run.py data/testExamples/1PPF.pdb TI17R E_I' for the test.
However, I got the error saying 'File reading error: Please redownload the file trainedmodels/sortidx.npy from the GitHub website again!'
I have no file named 'sortidx.npy' in the directory named trainedmodels and I couldn't solve the problem while I redownloaded the file 'trainedmodels' from the website separately.
Thank you

It is very interesting that the author responded to no one even if so many people created issues.


@vue/cli-plugin-typescript breaks WebStorm 2021.3.1

Version
5.0.0-rc.1
Environment info
macOS

Steps to reproduce
index.vue
<script>
import { ref } from 'vue'
</script>

package.json
{
  "private": true,
  "dependencies": {
    "vue": "^3.2.21"
  },
  "devDependencies": {
    "@vue/cli-plugin-typescript": "^5.0.0-rc.1"
  }
}

What is expected?
If I have<EMAIL_ADDRESS>installed, I can't jump into source via "command + click" in .vue file with WebStorm. not sure if this is a problem of WebStorm(2021.3.1) or<EMAIL_ADDRESS>but, the version 4.x works fine.

I also have some proble

this will be fixed in the next version of webstorm.


Creation de la page de validation de l'inscription

Codecov Report

Merging #160 into master will increase coverage by 0.45%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           master     #160      +/-   ##
==========================================
+ Coverage   22.41%   22.86%   +0.45%
==========================================
  Files          94       96       +2
  Lines         647      656       +9
  Branches       43       42       -1
==========================================
+ Hits          145      150       +5
- Misses        484      486       +2
- Partials       18       20       +2

Impacted Files
Coverage Δ

app/screens/App/NavigationMenu/NavigationMenu.js
0% <ø> (ø)
:arrow_up:

app/screens/App/App.js
0% <0%> (ø)
:arrow_up:

app/screens/ValidInscription/index.js
0% <0%> (ø)

...pp/screens/App/ConnectionModal/ConnectionModal.jsx

.../screens/App/ConnectionWidget/ConnectionWidget.jsx

app/redux/matches/matches.selectors.js
75% <0%> (ø)

app/screens/App/ConnectionModal/ConnectionModal.js
71.42% <0%> (ø)

...p/screens/App/ConnectionWidget/ConnectionWidget.js
0% <0%> (ø)

... and 1 more

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 58361fe...f96c651. Read the comment docs.


Cop suggestion: Referencing constants from within a view

I often see code in a view which directly accesses a model, e.g.
<% if ShippingPrice.new(@order).free? %>
  This order qualifies for free shipping
<% end %>

This implies a tight coupling between different layers of the application. Also, it seems wrong for the view to access the model layer directly, rather than having data passed via the controller.
This would be slightly better:
<% if @shipping_price.free? %>

But I would typically aim to have the implementation behind a simpler interface, and avoid adding extra instance variables, e.g.
<% if @order.free_shipping? %>

(@order could be an ActiveRecord model which delegates to ShippingPrice, or it could be a decorator or presenter).
Any thoughts?

Thanks for the suggestion @andyw8!
I think this is one of many useful cops that could be added. In general, I think "fat views" is not addressed enough, and much more of a problem than "fat models."
At the moment, I don't think there's support for inspecting ERB files, but adding this capability would certainly be a welcome addition to rubocop-rails.

@Drenmi Thanks for the comments. I hadn't realised that RuboCop doesn't parse ERB, since I usually use HAML. There's some discussion of this in https://github.com/rubocop-hq/rubocop/issues/1113.

I'll close this issue because RuboCop Rails has no implementation plans to support rendering engines now. Thank you.
c.f. https://github.com/rubocop/rubocop/discussions/9379

Thanks, I've suggested it for erb-lint: https://github.com/Shopify/erb-lint/issues/207


Allow sending a generic object with a function type parameter between isolates

See https://github.com/dart-lang/sdk/issues/37294
This code fails, now with a meaningful error message:
import 'dart:isolate';

void fun() {
 print('hi from fun');
}

Future<void> main() async {
  final x = <void Function()>[fun];
  await Isolate.spawn(isolate, x);
}

void isolate(List<void Function()> foo) async {
  print('Tick: $foo');
  foo.first();
}

But this code works:
import 'dart:isolate';

void fun() {
  print('hi from fun');
}

Future<void> main() async {
  final x = <dynamic>[fun];
  await Isolate.spawn(isolate, x);
}

void isolate(List<dynamic> foo) async {
  print('Tick: $foo');
  (foo.first as void Function())();
}

It'd be nice to let the typed version work too.

(it also works with a List<Object>)

After we're done with https://github.com/dart-lang/sdk/issues/36097 this would probably implicitly work because we we'll share function type objects across isolates.

Closing this issue into the more general https://github.com/dart-lang/sdk/issues/46623.


[otlLib] Support building MATH table

I also wonder if this piece of code could be moved in its own a submodule e.g. fontTools.otlLib.builder.math or something

Code for other tables (even not really layout tables like STAT) is all kept in the builder.py file, but this file is getting big indeed so it is fine by me either way. So if you feel strongly about it, I’ll move the code.

it;s ok we can do separately later


Calling get_collection fails with qdrant_client.http.exceptions.ResponseHandlingException: Event loop is closed

Hello,
await client.get_collection("collection_name")
Fails with:
Traceback (most recent call last):
  File "/usr/local/lib/python3.13/site-packages/qdrant_client/http/api_client.py", line 178, in send_inner
    response = await self._async_client.send(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/httpx/_client.py", line 1674, in send
    response = await self._send_handling_auth(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<4 lines>...
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/httpx/_client.py", line 1702, in _send_handling_auth
    response = await self._send_handling_redirects(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<3 lines>...
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/httpx/_client.py", line 1739, in _send_handling_redirects
    response = await self._send_single_request(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/httpx/_client.py", line 1776, in _send_single_request
    response = await transport.handle_async_request(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/httpx/_transports/default.py", line 377, in handle_async_request
    resp = await self._pool.handle_async_request(req)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/httpcore/_async/connection_pool.py", line 256, in handle_async_request
    raise exc from None
  File "/usr/local/lib/python3.13/site-packages/httpcore/_async/connection_pool.py", line 229, in handle_async_request
    await self._close_connections(closing)
  File "/usr/local/lib/python3.13/site-packages/httpcore/_async/connection_pool.py", line 345, in _close_connections
    await connection.aclose()
  File "/usr/local/lib/python3.13/site-packages/httpcore/_async/connection.py", line 173, in aclose
    await self._connection.aclose()
  File "/usr/local/lib/python3.13/site-packages/httpcore/_async/http11.py", line 258, in aclose
    await self._network_stream.aclose()
  File "/usr/local/lib/python3.13/site-packages/httpcore/_backends/anyio.py", line 53, in aclose
    await self._stream.aclose()
  File "/usr/local/lib/python3.13/site-packages/anyio/_backends/_asyncio.py", line 1287, in aclose
    self._transport.close()
    ~~~~~~~~~~~~~~~~~~~~~^^
  File "/usr/local/lib/python3.13/asyncio/selector_events.py", line 1202, in close
    super().close()
    ~~~~~~~~~~~~~^^
  File "/usr/local/lib/python3.13/asyncio/selector_events.py", line 865, in close
    self._loop.call_soon(self._call_connection_lost, None)
    ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/asyncio/base_events.py", line 829, in call_soon
    self._check_closed()
    ~~~~~~~~~~~~~~~~~~^^
  File "/usr/local/lib/python3.13/asyncio/base_events.py", line 552, in _check_closed
    raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<python-input-7>", line 1, in <module>
    asyncio.run(knowledgebase.client.get_collection("knowledgebase_v1"))
    ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/asyncio/runners.py", line 194, in run
    return runner.run(main)
           ~~~~~~~~~~^^^^^^
  File "/usr/local/lib/python3.13/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
  File "/usr/local/lib/python3.13/asyncio/base_events.py", line 721, in run_until_complete
    return future.result()
           ~~~~~~~~~~~~~^^
  File "/usr/local/lib/python3.13/site-packages/qdrant_client/async_qdrant_client.py", line 1999, in get_collection
    return await self._client.get_collection(collection_name=collection_name, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/qdrant_client/async_qdrant_remote.py", line 2267, in get_collection
    await self.http.collections_api.get_collection(collection_name=collection_name)
  File "/usr/local/lib/python3.13/site-packages/qdrant_client/http/api/collections_api.py", line 945, in get_collection
    return await self._build_for_get_collection(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        collection_name=collection_name,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/qdrant_client/http/api_client.py", line 151, in request
    return await self.send(request, type_)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/qdrant_client/http/api_client.py", line 168, in send
    response = await self.middleware(request, self.send_inner)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/qdrant_client/http/api_client.py", line 200, in __call__
    return await call_next(request)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/qdrant_client/http/api_client.py", line 180, in send_inner
    raise ResponseHandlingException(e)
qdrant_client.http.exceptions.ResponseHandlingException: Event loop is closed

Other methods, that I am using, like search, collection_exists, etc. works.
It fails even in fresh terminal sessions wrapped into asyncio.run.
It fails only on production! on my local PC with same config that comand works.
There is no difference in setup.
Thanks for help
Also:
this code from AsyncQdrantFastembedMixin add method.:

hides real issue,
I found that get_collection fails by digging into sentry log:

that happen because qdrant client tries to create collection no matter what, and hides exception from rise.

Hey @BezBartek
Sorry for the waiting time
Could you provide a code snippet, so we could try to debug it?
Also, could you provide information about qdrant-client version you're using, OS and python version?

@joein
Hello
"qdrant-client[fastembed]==1.12.1",
Env is python docker compose for python 3.13:  FROM python:3.13.0
class Database:
   def __init__(self, url, api_key):
       self.collection_name = "database_v1"
       self.client = AsyncQdrantClient(
           url=url,
           api_key=api_key,
       )
       self.client.set_model(
           "mixedbread-ai/mxbai-embed-large-v1",
       )
       self.client.set_sparse_model("prithivida/Splade_PP_en_v1")

   async def set_up_collection(self):
       if not await self.client.collection_exists(self.collection_name):
           logger.info(f"Collection {self.collection_name} does not exists.")
           await self.client.create_collection(
               collection_name=self.collection_name,
               vectors_config=self.client.get_fastembed_vector_params(),
               sparse_vectors_config=self.client.get_fastembed_sparse_vector_params(),
           )
       else:
           logger.info(f"Collection {self.collection_name} already exists.")

   async def add(self, message: str, metadata: MessageMetaData):
       await self.client.add(
           collection_name=self.collection_name, documents=[message], metadata=[metadata]
       )

   async def search(self, query_text: str, limit: int = 10, query_filter=None):
       response = await self.client.query(
           collection_name=self.collection_name,
           query_text=query_text,
           query_filter=query_filter,
           limit=limit,
       )
       return response

I init that class globally, and I am using it at slack_bolt app event hooks.


[BUG] UDF Integration tests fail if pandas is not installed

Describe the bug
When running integration tests, the udf tests require pandas to be installed whether thru conda env or otherwise to run without any errors. We should ideally ignore these tests of the user does not have pandas installed.
Steps/Code to reproduce bug
run mvn clean verify or ./run_pyspark_from_build.sh from integration-tests directory with SPARK_HOME set.
../../src/main/python/udf_cudf_test.py:15: in <module>
    import pandas as pd
E   ModuleNotFoundError: No module named 'pandas'
_________________ ERROR collecting src/main/python/udf_test.py _____________

Expected behavior
Integration tests that require pandas should not error out if pandas is not installed

Not sure if it is just me but I am having trouble finding rapids-daemon module as well which was added as part of  https://github.com/NVIDIA/spark-rapids/pull/640
Do I need to update my env in some way which I missed the documentation on.


chore: updated the publishing documentation

an update to the publishing documentation.  Once I figure out a more precise reason for using the  npm run prepare script i will add it in.

Codecov Report

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

@@          Coverage Diff          @@
##           master   #464   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files          43     43
  Lines         398    398
=====================================
  Hits          398    398

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 a9a7e6c...299a604. Read the comment docs.

LGTM

Resolves #451

Ping/ @broox9, any chance we can collaborate more to move this publish guide forward?


Switch off autocomplete on "email" signin field for security reasons

Issue
The login screen allows caching of usernames (emails).
Impact
Caching usernames in the browser is considered bad practice as it reveals valid usernames to other users of the computer (e.g. when used on hotel public computers etc.)
Solution
HTML modified to add autocomplete="off" attribute on the email field on login screen.

Hey @MunGell .
Thank you for paying attention to this. In fact, setting this option may be ignored by browsers and extensions.

https://stackoverflow.com/questions/12374442/chrome-ignores-autocomplete-off
https://bugs.chromium.org/p/chromium/issues/detail?id=914451

Google has also spoken on this subject since about 2014.
I found various ways around this, for example:
<input type="search" autocomplete="off">

And other similar tricks. Do we need to worry about this?

Good point, autocomplete=off wouldn't prevent browser from auto-filling login details if user saved them in the browser's password manager. However, it will prevent browser from suggesting usernames that were inputted in that field before.
However, I also noticed that companies like Google and GitHub set autocomplete to username on their login pages, which allow for showing cached usernames in that field.
Closing this for the moment until further clarification will be found on the correct value of it.


Data Model | Rename the ID column

Story:
As a TFRS Developer, I want all the ID columns to be descriptive of their table names.
Information:
In Card 315, two items were skipped due to complexity:

Rename all "Id" fields to be Id (Won't be implemented due to complexity)
Rename all “id” fields to be Id and all FKs to be Id except where there is more than one FK in a table – e.g. initiatorId and respondentId in the CreditTrade table. (Won't be implementing the first one due to complexity)

These changes should still be implemented. A good time to revisit this is when we get close to upgrading to Django 2.x or changing to a different framework for the API
django2.0, ormhttps://trello.com/c/mdE2i0xF/425-data-model-rename-the-id-column

The issue was create for experimental use. We start to actively use the issues and milestones. Close this issue for now and reopen it if needed.


Some questions in using environment disturbance.

Hello，
I want to change the water current and wind current to do some simulates in different environment. I followed the instructions in README, and changed the "watertype" variable in "spawn_ airboat.launch"  to "local", but  appeared “Failed to call service watercurrent airboat:: base_link” when I launch airboat_senerio1.

I try to solve this problem, I found that the service topic "waterCurrent" which used to provide water current was not launched. And the script "water_HECRAS" was not activated either. I can't found where to launch  "water_HECRAS". On the other hand, I see in water_Hecras has lines about HDF files, but I did not find HDF files in the project.
I would like to ask how to use the "local pattern", and if this feature open source.
I saw scenes of different wind speeds and water velocities in the video in README, and I want to know where to change the wind speeds and water velocities in the src.
Thank you!

From what I understand, external software where used to simulate the water and wind current. Then this data is transformed into an occupancy grid using the python scripts windLBP.py and water_HECRAS.py
I reckon Paravisi used t3.p01.hdf as a water velocity field, along with a .yaml file.
After that one needs to rosrun water_current windLBM.py [path_to_yaml_file]
The python scripts first creates the occupancy grid with all the fluid speed vector field, and then creates a service host so that the FreeFloatingPlugin attached to your boat can ask what is the local value of the water current.

hello,
I would like to ask about the .hdf files to be able to make the simulations present in the project, how could I access them? or how could I execute one of the tests proposed in the project?
thank you.


Colorize/tokenize confusion with TypeScript/TypeScript React

The colors are off depending on whether I have a semicolon or not, or for example, whether I introduce a function block before the code.

VS Code version: Code 1.28.2 (7f3ce96ff4729c91352ae6def877e59c561f4850, 2018-10-17T00:23:51.859Z)
OS version: Windows_NT x64 10.0.17134

Steps to Reproduce:

Does this issue occur when all extensions are disabled?: Yes

This is limitation of tmLanguage syntax and duplicate of #352

Fixed by 74f669d

Fixed by 74f669d


Wrong script permission for sdist

Assume we have a package with a python script included. And in source tree the script has mode 755.
The corresponding meson.build is
project('library')

scripts = files('scripts/example')
install_data(scripts, install_dir: get_option('bindir'), install_mode: 'rwxr-xr-x')

The package tree
.
├── [-rw-rw-r--]  meson.build
├── [-rw-rw-r--]  pyproject.toml
└── [drwxrwxr-x]  scripts
    └── [-rwxrwxr-x]  example

The pyproject.toml
[build-system]
build-backend = 'mesonpy'
requires = ['meson-python']

[project]
name = 'library'
version = '1.0.0

And after we build the package:
pyproject-build . -Cbuilddir=build

We will find the sdist file in meson-dist is good
✗ tar tfvz build/meson-dist/library-undefined.tar.gz
drwxrwxr-x windreamer/windreamer 0 2022-06-14 09:38 library-undefined/
-rw-rw-r-- windreamer/windreamer 139 2022-06-14 09:33 library-undefined/meson.build
-rw-rw-r-- windreamer/windreamer 115 2022-06-14 09:33 library-undefined/pyproject.toml
drwxrwxr-x windreamer/windreamer   0 2022-06-14 09:33 library-undefined/scripts/
-rwxrwxr-x windreamer/windreamer  75 2022-06-14 09:33 library-undefined/scripts/example

But the final sdist file is not good (library-1.0.0/scripts/example should have a 755 mode)
✗ tar tfvz dist/library-1.0.0.tar.gz
-rw-r--r-- 0/0             139 1970-01-01 00:00 library-1.0.0/meson.build
-rw-r--r-- 0/0             115 1970-01-01 00:00 library-1.0.0/pyproject.toml
-rw-r--r-- 0/0              75 1970-01-01 00:00 library-1.0.0/scripts/example
-rw-r--r-- 0/0              51 1970-01-01 00:00 library-1.0.0/PKG-INFO

We need the script in 755 mode, as build by default create wheel package via sdist instead of via source code. and the mode of the script in wheel will be determined by the file mode of sdist.

Why do we only copy file sizes?

No reason, we should be copying the permissions too.


.mocharc not supported by this extension?

How to specify my .mocharc  file with this extension? I run my tests with:
mocha --opts .mocharc src/**/*.spec.ts
... and I'd like not to repeat all the options for the extension. My .mocharc file:
--require ts-node/register
--require source-map-support/register
--recursive
--colors

Look like a duplicate ticket of #84, and currently no it doesn't (nor the new v6 configuration file (js, yaml, ...))


how to add a toolbar (or other fixed windows) that limits the available main docking space?

I've been trying to find a way to create a toolbar along the top of the screen (but under the menu bar). I've found explanations for various ways to accomplish this, including using BeginViewportSideBar, but I'm struggling to get this to work because HelloImGui takes over the creation of the docking spaces in e.g. DoCreateFullScreenImGuiWindow. I found that by manually using a BeginMainMenuBar and a BeginViewportSideBar I can get the effect I want, but the full screen docking space that HelloImGui creates only knows about its own status bar at the bottom, so the docking space is sized and position in a way where my additional menubar and tool/sidebar cover up the docking drop zones and HelloImGui's own menubar. If I edit DoCreateFullScreenImGuiWindow, I can make the fullscreen docking space start just below my top bars, but I'd prefer to find a solution that didn't require me to manually change/fork HelloImGui.
Do you have a suggested way to accomplish this, or is this currently outside the scope of what HelloImGui can allow? If its not possible to accomplish this right now, is there a clean way for me to create and manage my own docking spaces, menu/tool/statusbars, but still rely on HelloImGui's crossplatform backend and asset support?
(On a related note, is there a reason why you used BeginMenuBar and not BeginMainMenuBar for the top menu in docking mode?)
Thanks

Can you Please post a sample for repro

Done, see ImGuiWindowParams doc (look for "Change the dockspace or background window size")

Thanks. I'll give it a try! I suspect, however, that this will only allow adding a toolbar above the top menu bar, since BeginMenuBar is created within the full dock space/window. Using BeginMainMenuBar in that situation might be a way to solve this.

I probably spoke too soon, I see there are mentions of BeginMainMenuBar in the new code. I'll try it out.

This is fantastic! Exactly what I needed. Thank you for the rapid response.
There is one issue, which is that below my toolbar, there is a hidden and unused menubar. I believe this is because the main docking window still has the menubar flag set, which is not needed since the menubar is now provided by BeginMainMenuBar now. Here is a screenshot showing this when setting the windowbg color to be pretty transparent. Note that you can see the blue of the custom background through the top part of the semitransparent toolbar, but the bottom part of it is darker because there is a menu bar behind it too.

This is fantastic! Exactly what I needed. Thank you for the rapid response.

Thanks !

There is one issue, which is that below my toolbar, there is a hidden and unused menubar. I believe this is because the main docking window still has the menubar flag set, which is not needed since the menubar is now provided by BeginMainMenuBar

Since you have the setup to reproduce the issue, can you try and remove
    if (imGuiWindowParams.showMenuBar)
        window_flags |= ImGuiWindowFlags_MenuBar;

inside DoCreateFullScreenImGuiWindow, and if it works push a PR (or inform me)

Your suggestion made me think that I should add a callback ShowTopToolbar to RunnerCallbacks

The issue with transparent window bg was actually complex to track: it required to call BeginMainMenuBar() when no window is created.
This commit fixes this, and also add support for Edge Toolbars: see related doc

I can confirm this works great. Thanks!


Firebase Dynamic Links Fail To Generate On Real Device

Please fill in the following fields:
Unity editor version: Unity 2018.3.0f2
Firebase Unity SDK version: 5.4.3
Additional SDKs you are using (Facebook, AdMob, etc.): Admob and Facebook
Platform you are using the Unity editor on (Mac, Windows, or Linux): Mac
Platform you are targeting (iOS, Android, and/or desktop): Android
Please describe the issue here:
(Please list the full steps to reproduce the issue. Include device logs, Unity logs, and stack traces if available.)
I have created a simple long and short dynamic link generator to my application by following the examples in the quick start. In the Unity editor, I have seen the message that short link generation is not supported but the long link is generated. So I have decided to test it on a real device. However, the device logs show something weird:
E/Unity   (31595): ApplicationException: internal::IsInitialized()
E/Unity   (31595):   at Firebase.DynamicLinks.FirebaseDynamicLinks.GetLongLinkInternal (Firebase.DynamicLinks.DynamicLinkComponentsInternal components) [0x00021] in :0
E/Unity   (31595):   at Firebase.DynamicLinks.DynamicLinkComponents.get_LongDynamicLink () [0x00006] in :0
E/Unity   (31595):   at ReferralsPopup.CreateAndDisplayLongLink () [0x00006] in :0
E/Unity   (31595):   at ReferralsPopup.Start () [0x00028] in :0
This kind of sounds like another instance of Firebase is trying to be called ?? If so, why is this error not produced in the editor ? I can't seem to get this running on a real device. Please help.
Please answer the following, if applicable:
Have you been able to reproduce this issue with just the Firebase Unity quickstarts (this GitHub project)?
I don't really have the time to test it.

Based on that error log, it looks like Firebase is not being initialized, but that should happen automatically via a static constructor on FirebaseDynamicLinks.  Can you share the code snippet you used to get this problem?  Also, I assume there were no errors in the logs before that part that you shared?

Since Firebase is initialized at the startup scene, I am not trying to initialize it again. The code is from a different scene as follows and I call CreateAndDisplayUnguessableShortLinkAsync() in void Start(). It works in Editor but not on device:
`Firebase.DynamicLinks.DynamicLinkComponents CreateDynamicLinkComponents() {
		var json = JWT.JsonWebToken.Decode(PlayerPrefs.GetString("uuid"));
		DataModel.JWTObject jwtObject = JsonConvert.DeserializeObject<DataModel.JWTObject>(json);
		var user_id = jwtObject.user_id;

				return new Firebase.DynamicLinks.DynamicLinkComponents(
					// The base Link.
					new System.Uri("https://www.somedomain.com?inviter="+user_id),
					// The dynamic link domain.
					ConfigurationController.dynamicLinkdomain) {
					GoogleAnalyticsParameters = new Firebase.DynamicLinks.GoogleAnalyticsParameters() {
					Source = "inapp",
					Medium = "inapp",
					Campaign = "local",
					Term = "referral",
					Content = "referral"
					},
					IOSParameters = new Firebase.DynamicLinks.IOSParameters(ConfigurationController.appIdIos) {
					FallbackUrl = new System.Uri("https://www.somedomain.com"),
					CustomScheme = "mycustomscheme",
					MinimumVersion = "1.2.3",
					IPadBundleId = ConfigurationController.appIdIos,
					IPadFallbackUrl = new System.Uri("https://www.somedomain.com")
					},
					AndroidParameters = new Firebase.DynamicLinks.AndroidParameters(ConfigurationController.appIdAndroid) {
					FallbackUrl = new System.Uri("https://www.somedomain.com"),
					MinimumVersion = 17
					},
				};
}

	public Uri CreateAndDisplayLongLink() {
		var longLink = CreateDynamicLinkComponents().LongDynamicLink;
		Debug.Log(String.Format("Long dynamic link {0}", longLink));
		return longLink;
	}

	public Task<Firebase.DynamicLinks.ShortDynamicLink> CreateAndDisplayShortLinkAsync() {
  		return CreateAndDisplayShortLinkAsync(new Firebase.DynamicLinks.DynamicLinkOptions());
	}

	public Task<Firebase.DynamicLinks.ShortDynamicLink> CreateAndDisplayUnguessableShortLinkAsync() {
		return CreateAndDisplayShortLinkAsync(new Firebase.DynamicLinks.DynamicLinkOptions {
		PathLength = Firebase.DynamicLinks.DynamicLinkPathLength.Unguessable
	});
	}

	private Task<Firebase.DynamicLinks.ShortDynamicLink> CreateAndDisplayShortLinkAsync(Firebase.DynamicLinks.DynamicLinkOptions options) {
	if (ConfigurationController.dynamicLinkdomain == kInvalidDynamicLinksDomain) {
		Debug.Log("Dynamic link domain error");
		var source = new TaskCompletionSource<Firebase.DynamicLinks.ShortDynamicLink>();
		source.TrySetException(new Exception("Dynamic link domain error"));
		return source.Task;
	}

	var components = CreateDynamicLinkComponents();
	return Firebase.DynamicLinks.DynamicLinks.GetShortLinkAsync(components, options)
		.ContinueWith<Firebase.DynamicLinks.ShortDynamicLink>((task) => {
		if (task.IsCanceled) {
			Debug.Log("Short link creation canceled");
		} else if (task.IsFaulted) {
			Debug.Log(String.Format("Short link creation failed {0}", task.Exception.ToString()));
		} else {
			Firebase.DynamicLinks.ShortDynamicLink link = task.Result;
			Debug.Log(String.Format("Generated short link {0}", link.Url));
			this.shortLink = link.Url.AbsoluteUri;
			var warnings = new System.Collections.Generic.List<string>(link.Warnings);
			if (warnings.Count > 0) {
			Debug.Log("Warnings:");
			foreach (var warning in warnings) {
				Debug.Log("  " + warning);
			}
			}
		}
		return task.Result;
		});
	}`

I would like to also add that listening to dynamic links do not seem to work either. On my startup scene, I have put the following code and it never captures any dynamic links:
Firebase.DynamicLinks.DynamicLinks.DynamicLinkReceived += OnDynamicLink;
`  void OnDynamicLink(object sender, EventArgs args) {
			Debug.Log("There is a dynamic link");

  			var dynamicLinkEventArgs = args as Firebase.DynamicLinks.ReceivedDynamicLinkEventArgs;
  			Debug.Log(String.Format("Received dynamic link {0}",dynamicLinkEventArgs.ReceivedDynamicLink.Url.OriginalString));

	}`

The documentation is really poor on DynamicLinks and people are struggling to figure out how it works in Stackoverflow. Please guide us.

Thanks for the additional information.  I haven't been able to reproduce the problem locally with our quickstarts, but they do not use scenes as you are describing, so possible there is an odd interaction happening with that, which we will investiage further.

Well for me the receiving part is more important and that sits on the first scene. I am already creating the short link via API so I would be really happy if you can guide me why the OnDynamicLink won't fire.

@a-maurice i am out of ideas

Looking through everything you've sent, and trying it out on my end, I'm still not sure why you are having a problem receiving links.  Did you set the SHA certificate on your project?  You might need to file a support ticket with https://firebase.google.com/support/troubleshooter/, which will allow a more precise look into the problems you are facing.

Yes I did set the SHA from the values provide by Google Play Console. The support is very slow.
Do we need to have an intent-filter for androidmanifest.xml for dynamic links to work ? I see this in documentation for Android but in Unity it does not seem to be generated.

@a-maurice This is really upsetting. Nobody is answering on the other thread either. I am paying for Firebase and your support does not answer either. I am not trying to achieve something extra ordinary here.

You should not have to set up the intent-filter, as we handle that part automatically as part of the Unity SDK.  The only steps you should have to do are those listed on: https://firebase.google.com/docs/dynamic-links/unity/receive
Using the correct SHA key is important, so make sure you are using the correct one.  You can get instructions on how to get the debug one that your machine is using here: https://developers.google.com/android/guides/client-auth
If you are building for release, that also has instructions on getting it from the keystore used to sign.
That is annoying that the support ticket team is not reaching out to you about the problem you are seeing.  I will reach out to that group to see if there is a reason for that.

@xtrecoolx can you email me the support case id (found in the auto reply subject)? I'll be happy to have a look and see what's going on: katowulf at google

@xtrecoolx I'll assume your issue is being solved via our support channel.  If we learn anything that we can roll into documentation or editor plugin improvements we'll post here.

@xtrecoolx Did you manage to solve the issue? We're facing this exact problem.

@stickpool, if you're having a similar issue, can you open a new issue and fill out the requested information on your versions and platform? Also, can you try running the quickstart project to see if the issue reproduces there?


Unicode decode error in Production!

What?!

Took out the exception catch in the baleen so that I can get a full traceback in the error log.
Added unicode handling to the error loggers.


Add support for windows & mac build

Signed-off-by: Ankit Kala<EMAIL_ADDRESS>Description
Added CI workflow for windows and macOS build.
Issues Resolved
219
220
Check List

[x] New functionality includes testing.

[x] All tests pass

[x] New functionality has been documented.

[x] New functionality has javadoc added

[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #591 (767644e) into main (33571ca) will decrease coverage by 1.63%.
The diff coverage is n/a.

:exclamation: Current head 767644e differs from pull request most recent head b5b2db5. Consider uploading reports for the commit b5b2db5 to get more accurate results

@@             Coverage Diff              @@
##               main     #591      +/-   ##
============================================
- Coverage     74.34%   72.70%   -1.64%
+ Complexity     1003      981      -22
============================================
  Files           141      141
  Lines          4595     4595
  Branches        506      506
============================================
- Hits           3416     3341      -75
- Misses          860      934      +74
- Partials        319      320       +1

Impacted Files
Coverage Δ

...arch/replication/metadata/UpdateMetadataRequest.kt
77.27% <0.00%> (-22.73%)
:arrow_down:

...cation/action/changes/TransportGetChangesAction.kt
63.49% <0.00%> (-20.64%)
:arrow_down:

...ch/replication/task/index/IndexReplicationState.kt
51.66% <0.00%> (-15.00%)
:arrow_down:

...ication/action/setup/TransportSetupChecksAction.kt
59.52% <0.00%> (-14.29%)
:arrow_down:

...ication/seqno/RemoteClusterRetentionLeaseHelper.kt
80.00% <0.00%> (-11.67%)
:arrow_down:

...tion/repository/RemoteClusterMultiChunkTransfer.kt
90.24% <0.00%> (-9.76%)
:arrow_down:

.../replication/metadata/store/ReplicationMetadata.kt
62.96% <0.00%> (-8.65%)
:arrow_down:

...ication/action/stop/StopIndexReplicationRequest.kt
50.00% <0.00%> (-5.00%)
:arrow_down:

...ion/action/resume/ResumeIndexReplicationRequest.kt
50.00% <0.00%> (-5.00%)
:arrow_down:

...tlin/org/opensearch/replication/util/Extensions.kt
65.47% <0.00%> (-4.77%)
:arrow_down:

... and 16 more

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


VEGA-897 Log body on bad response from Sirius

Codecov Report

Merging #56 (ea75575) into main (f685e8f) will increase coverage by 0.02%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main      #56      +/-   ##
==========================================
+ Coverage   88.90%   88.92%   +0.02%
==========================================
  Files          30       30
  Lines         811      813       +2
==========================================
+ Hits          721      723       +2
  Misses         47       47
  Partials       43       43

Impacted Files
Coverage Δ

internal/sirius/client.go
91.30% <100.00%> (+0.82%)
:arrow_up:

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 f685e8f...ea75575. Read the comment docs.


Node numbers in web page title

In the old VMarc the node numbers where shown in the title (e.g. on the tabs in your browser). To solve errors, I used to open all similar errors in a network in new tabs. It was then easy to see which tab was which route. In the new Knooppuntnet.nl however only the name 'knooppuntnet' is shown in the title.
Example:

Old: Route 02-04 - Asten
New: knooppuntnet

I would prefer when the node numbers where shown at the start of the title, like '02-04 - knooppuntnet' or '02-04 - Asten - knooppuntnet'. The word 'Route' is not necessary as all routes start with two numbers and when a lot of tabs are opened, only the word Route would be visible.

The titles for all pages have been changed so that they are page specific.


Facing this error while npm install

npm ERR! code EBADPLATFORM
npm ERR! notsup Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin"} (current: {"os":"win32"})
npm ERR! notsup Valid os:  darwin
npm ERR! notsup Actual os: win32
can you please help me out?

We are not able to replicate this issue on our side. If you continue to see this issue, you may try updating your version of NPM followed by reaching out to our Smarty Support team for assistance if the issue persists.

We are not able to replicate this issue on our side. If you continue to see this issue, you may try updating your version of NPM followed by reaching out to our Smarty Support team for assistance if the issue persists.

I'm seeing this issue also


Unable to select previous semester in meeting edit page

When editing a meeting from a previous semester, it's not possible to save the changes, as only current and future semesters are available on the meeting edit page.

Fixed in 0.6.1 (commit cc636b2211dc627696e6015f5d089d91f3ce100f)


GtestRunner - support before/after

Not sure this is the correct tracker, please redirect if not.
In some gtest scenarios I need to initialize java objects with current Android context before accessing them from C++.
An ideal solution (cleanest one) would be to support junit's @Before/@After annotations in GtestRunner.
Of course, one could perform initialization from C++, but that requires additional glue code and hides the main objective.
Is there a timely chance for GtestRunner to support that functionality?
Thanks a ton!

It's not, this is just a sample. androidx is where the implementation comes from. http://b.android.com.


modGui: verify Aion kernel is alive after launching it from GUI

Notice
It is not allowed to submit your PR to the master branch directly, please submit your PR to the master-pre-merge branch.
Description

This PR is to fix an issue where if a kernel launched from the GUI immediately crashes/errors, the GUI enters a broken state (does not realize kernel is dead).   This is partly to address an issue raised by @aionick in PR #582 [https://github.com/aionnetwork/aion/pull/582] where a kernel launch from GUI hangs and can't be terminated by the GUI.  I was not able to reproduce the exact problem, but I suspect it is caused by the GUI entering a bad state when launching the kernel immediately fails.  A common reason for this is if you launch the kernel from the GUI, but there is already an instance of the kernel running, so the newly launched kernel immediately fails because it can't acquire a lock on the DB.  I also noticed that the kernel does not exit in this case [root cause: RuntimeException thrown in a static initializer hangs kernel -- https://stackoverflow.com/questions/7080715/exception-in-static-initializer-causes-program-to-hang].  In order to detect the "kernel dies upon launch" condition, I had to also fix that issue in this PR.

Fixes Issue # .
Type of change
Insert x into the following checkboxes to confirm (eg. [x]):

[x] Bug fix.
[ ] New feature.
[x] Enhancement.
[ ] Unit test.
[ ] Breaking change (a fix or feature that causes existing functionality to not work as expected).
[ ] Requires documentation update.

Testing
Please describe the tests you used to validate this pull request. Provide any relevant details for test configurations as well as any instructions to reproduce these results.

Existing tests pass (modified code touches those tests)
Manual verification of new code

Verification
Insert x into the following checkboxes to confirm (eg. [x]):

[x] I have self-reviewed my own code and conformed to the style guidelines of this project.
[x] New and existing tests pass locally with my changes.
[ ] I have added tests for my fix or feature.
[ ] I have made appropriate changes to the corresponding documentation.
[ ] My code generates no new warnings.
[ ] Any dependent changes have been made.

  I would try to fix it, but since we're close to release, I'm afraid of accidentally breaking something else, so probably safer to leave it how it is for now.  I'll keep it in mind for the future though.


target in self._update_weights_generic for experimental feedback

Hey,
I was experimenting with the method SpotHologram._update_weights().
One thing I noticed is that when using feedback=experimental, the target is defined by self.spot_amp instead of self.target.
When I calculate the norm of self.spot_amp using Hologram._norm(), this norm isn't unity.
I wonder if that's an issue as in Hologram.update_weights_generic() we divide (that is, compare) the value of self.spot_amp with the (normalized) feedback value self.feedback_corrected. If one is normalized but the other isn't, the factors by which we scale the weights will all be below (or above, depending on spot_amp) unity.
In comparison, when using feedback=computational, the target self.target is normalized and the scale factors are either below or above unity, as expected.
Apart from this (I don't know if this is the proper place to ask), I tried to use camera feedback and noticed that the non-uniformity of the spots increases (the image diverges). I did some checks and ensured that the weight updates are reasonable (e.g. the weight of a spot that is very dim gets increased by a large amount), and tried out different gains (power=0.1, power=1.5, and 0.1 steps in between). Debugging with take also yielded good results, the spots are centered in their crop boxes and the feedback values are reasonable. Also the computational feedback works flawlessly. Perhaps you had similar divergence issues and there are some quick fixes that one can try?
Thanks

Hi @LeoKonzett ,
Thanks for this feedback, it's very useful to see what people are doing and what issues are encountered.

_update_weights() for spot_amp: Yeah, I think this part was changed back and forth and the current documentation (and code) maybe doesn't reflect the intended behavior. I'm adding the documentation tag to this issue. Also, our tests have been using spot_amp=None, which I think is an oversight. The intended behavior is:

The user feeds something to spot_amp= with some random units (not normalized).
Despite what the documentation claims (that spot_amp is automatically normalized), we want to keep the same units such that the user can easily modify this (still always numpy) list if desired and then have the optimization change towards these values.
You're right, that Hologram.update_weights_generic() is fed an unnormalized target, but the end of this function normalizes the weights (see here), so I think it still works out.

Optimization divergence: We have noticed in some cases that image holograms (FeedbackHologram) diverge at certain points under some power values or levels of feedback. We're in the process of improving this. However, we have never found a similar issue for SpotHologram in our use-cases with the current code. SpotHologram has always been robust in our tests. I suggest the following:

Is your settle_time_s long enough for your SLM? If the SLM is not allowed enough time to settle, then you'll be measuring the previous result for the phase pattern from the previous iteration. This can lead to unstable optimization. I think the current default is settle_time_s=0 on main, but maybe we should restore the settle_time_s=0.3 default which we previously used as good for most SLMs. The user should determine the settle_time_s based on their application. Higher precision holograms require longer time (i.e. longer than 1/e). There should be more documentation regarding this, so more reason to add a documentation tag.
What camera are you using? It's possible that .flush() (which is intended to avoid old frames and thus outdated feedback) is not working as desired for your camera.
If the above doesn't work, could you send us the code snippet that generates the spot pattern of interest? I could imagine certain patterns which are "hard" for WGS to generate, and it might be useful for us to debug. I'm adding the bug tag in lieu of this.

Thanks again for this feedback!

Actually, you're right that the lack of spot_amp normalization is a bug. Even though the current code fine for the Leonardo feedback (if target is off by a constant c, then the result is off by a factor of c^p which goes away with normalization), the Nogrette feedback will yield incorrect results. We will fix this by forcing normalization onto target_amp locally in Hologram.update_weights_generic(). ETA for a patch next week.

Hi @ichristen
thanks for the quick response. I checked both settle_time_s and .flush() and both are working properly (tested with e.g. blazing and then capturing a frame).
The pattern I'm generating is similar to the one from the docs webpage.
xlist = np.arange(250, min(fs.cam.shape) - 300, 90)
ylist = np.arange(250, min(fs.cam.shape) - 300, 90)
xgrid, ygrid = np.meshgrid(xlist, ylist)

square = np.vstack((xgrid.ravel(), ygrid.ravel()))

from slmsuite.holography.algorithms import SpotHologram
hologram = SpotHologram(shape=(2048, 2048), spot_vectors=square, basis='ij', cameraslm=fs)

# Optimization
comp_kwargs = {"power": 0.7}
hologram.optimize('WGS-Kim', feedback='computational', stat_groups=['computational'], maxiter=30, **comp_kwargs)

Upon recording with the camera, we get a 3x3 array as intended. Checking the resulting img with subimages = analysis.take(img, vectors=square, size=40, integrate=False) also yields good results.
# Optimization w. cam feedback
exp_kwargs = {"power": 0.2, "factor": 0.5} # Factor is for Nogrette

hologram.optimize('WGS-Kim', maxiter=5, feedback='experimental_spot', stat_groups=['computational', 'experimental_spot'], **exp_kwargs)

Hi @ichristen,
I managed to spot the issue, it was with me using the wrong coordinate convention. When e.g. blazing to a spot (100, 700), I was blazing to row_idx=100, column_idx=700 instead of row_idx=700, col_idx=100.
Maybe this could be added to the docs (there you blaze to (600, 600) so it's not obvious that the convention is Cartesian.
Thanks!

So the experimental holography is converging now? I'm not quite sure how coordinate convention would mess with convergence as the convergence is dealt with internally with uniform convention.
Here's my TODO list for this issue's thread:

[ ] Add more clarity about (numpy) shape (y,x)=(h,w) vs vector (x,y) formalism in both docs and examples.
[ ] Normalize spot_amp in Hologram.update_weights_generic() and update associated documentation.
[ ] Figure out what do to with settle_time_s.
[ ] I'm also going to add a Hologram flag which will tell stats to save the feedback images/etc with the option to export as an .h5 file for user reference and debugging.

Hi @ichristen,
yes the holography is converging.
To be more precise: The camera we're using returns a transposed frame. I thought the Fourier calibration accounts for that but it's reasonable that it doesn't. My fix is including a transpose=True keyword in the Camera() (Camera.py) constructor, similar to flip_ur=True or flip_lr.
Secondly, there might be an issue with SpotHologram.make_rectangular_array().
The code snippet
slm_shape = (1200, 1920)  # (h, w) convention
array_holo = SpotHologram.make_rectangular_array(slm_shape,
array_shape=[8, 4], array_pitch=[12, 12], basis='knm', cameraslm=fs)

zoom = array_holo.plot_farfield(source=array_holo.target, title='Initialized Nearfield')

doesn't generate a centered array. Implementing the change below fixes this behavior:
# Make the grid edges. This accounts for (h, w) -> (x, y) convention.
        x_edge = (np.arange(array_shape[0]) - (array_shape[0] - 1) / 2)
        x_edge = x_edge * array_pitch[0] + array_center[1]  # changed array_center[0]
        y_edge = (np.arange(array_shape[1]) - (array_shape[1] - 1) / 2)
        y_edge = y_edge * array_pitch[1] + array_center[0] # changed array_center[1]

Hi @LeoKonzett,
Thank you for catching the make_rectangular_array centering issue. Recently, the default centering logic changed and it looks like I didn't test non-square shapes. The issue is actually on line 1942, and is fixed in e572c473a2e8bb141ce5ee428d3ce7727890bdb6. The grid edge logic is correct because array_center in other units is not flipped.
I'm still a bit confused about the transpose issue. Fourier calibration should have caught that because a transpose is just a 90 deg rotation plus a flip (so I think the current arguments of make_transform cover transpose). In testing, I would take the eight cases and make sure Fourier calibration worked on each. The exposure of the camera, the choice of pitch, or noise of the camera might influence how well the "two spots removed" parity check is working, and it just so happens that it works better when the camera is transposed (i.e. something is failing, but the default option happens to be the transposed option so it all works out). If you send the image used for Fourier calibration, I can test the eight cases on that image and make sure things are working robustly.

Hi @ichristen,
the routine below works for flip_up=True and rot="90".
fs_optimize_kwargs = {"method": "WGS-Kim", "maxiter": 30, "feedback":'computational', "stat_groups":['computational']}

fs.fourier_calibrate(array_shape=[20, 20], array_pitch=[12, 8], array_center=None, plot=True,
                     autofocus=False, autoexposure=False, **fs_optimize_kwargs)

I attach the image I use for calibration below. I slightly adapted analysis.blob_detect() to do dynamic thresholding (see snippet below) so you might have to change the thresholds for the CV2 blob detector to get similar results.
# in analysis.blob_detect() - set CV2 blob detector thresholds dynamically

from skimage.feature import peak_local_max  # import this

peak_coords = peak_local_max(cv2img, min_distance=15, num_peaks=8)
y_idx = peak_coords[:, 0]
x_idx = peak_coords[:, 1]
heights = cv2img[y_idx, x_idx]

# Set parameters of CV2 simple blob detector dynamically
params.minThreshold = np.min(height_peaks) - 10  # 10 is padding but can be changed
logging.info(f"Lower threshold for CV2 blob detector is {params.minThreshold}")
params.maxThreshold = np.sort(height_peaks)[-2] + 10
logging.info(f"Upper threshold for CV2 blob detector is {params.minThreshold}")

This is not optimized for efficiency.
To test the calibration, I blaze with this code snippet
vector_blaze = fs.ijcam_to_kxyslm((100, 700))  # (100, 700) is supposed to be (x, y) convention

blaze_phase = toolbox.blaze(grid=fs.slm, vector=vector_blaze)

plot_phase(blaze_phase, title="Blaze at pixel (100, 100)", zoom=False)  # plot_phase func. from https://slmsuite.readthedocs.io
/en/latest/_examples/experimental_holography.html

As visible below, the points gets blazed to (100, 700), which is the intended behavior.

One question that I have:
In the target image, the two spots for orientation_check are missing in the bottom right corner. But in the image above the two spots are missing from the top left corner. Is this intended?

Hi @LeoKonzett,
Sorry for my late reply.

I slightly adapted analysis.blob_detect() to do dynamic thresholding (see snippet below) so you might have to change the thresholds for the CV2 blob detector to get similar results.
I like the idea of improvements to .blob_detect(); that part of the code hasn't seen much attention in the revamp.  Feel free to improve this function and submit a pull request! However, I would prefer to not add dependencies to main (such as skimage) unless absolutely necessary, as increasing numbers of dependencies increases bloat and risk of associated dependency errors. Actually, I wanted at one point to remove cv2 (opencv-python) as a dependency before being convinced otherwise. Consider instead looking for similar features in existing dependencies or writing something simple and custom if functionality is desired.

In the target image, the two spots for orientation_check are missing in the bottom right corner. But in the image above the two spots are missing from the top left corner. Is this intended?
Yes. The spots are deleted from the bottom-right corner in the $k$-space of the SLM, but your camera seems to have a few flips and rotations that causes the empty spots to appear in the top-left. This is part of the reason to have Fourier calibration: so the user doesn't have to care or think about these flips and rotations.
Three more things:

We tend to get more reliable results when we overexpose (saturate) the Fourier calibration image to reduce the influence of the 0th order peak on calibration. However, I'm going to poke at your image in a few days to see if I can get it to run more reliably in the general unsaturated case.
Your spots look a bit distorted.
Your image has an interesting checkerboard pattern at the pixel level. Is this intentional?

(x, y) vs (y, x).
The first docs reference you linked is unclear. I updated these docs for clarity (ea312473d12a3e525d9ed2a44d27f2c9b7238af7). This is what's actually happening:

Any array / image shape follows the numpy (h, w) convention.
Any vector or position / etc uses (x, y) convention.

This is the formalism that numpy, scipy, matplotlib, etc take. The shape and indexing of an array is always inverted, but other functions such as numpy.meshgrid(x, y) (default), scipy.odr.Data(x, y), or matplotlib.pyplot.scatter(x, y) use standard cartesian (x, y) that is more familiar to users. Yes, it's not ideal, but this is the formalism generally adopted by the community.
Gridpoint rounding.
The spots are rounding to the nearest "knm" gridpoint. This is expected behavior. The computational $k$-space cannot have infinite resolution, as this would cost infinite memory (and take a while to Fourier transform). This is why you might want to use padding (calculate_padded_shape()) to effectively enhance the resolution of the SLM farfield. See the first tip in the constructor of hologram to learn more about padding. The Fourier calibration pads by default.
Another important note: the plotted image is the target nearfield of the camera and the target farfield of the SLM. It isn't the nearfield of the SLM.
Hope this helps!

Hi Leo,
The TODO list from Feb 6th was merged in with dev (#35), so I'm going to close this issue. Thanks again for raising this!


fix: typo

PR checklist

[ ] Addresses an existing issue: fixes #0000
[x] New feature, bugfix, or enhancement

[ ] Includes tests

[ ] Documentation update

Overview of change:
Is there anything you'd like reviewers to focus on?

CHANGELOG.md entry:

Thanks for your interest in palantir/tslint, @gocarlos! Before we can accept your pull request, you need to sign our contributor license agreement - just visit https://cla.palantir.com/ and follow the instructions. Once you sign, I'll automatically update this pull request.

Hi @gocarlos, thanks fo your PR! Normally this would be a very good and valid one (nice spot!); unfortunately, per #4534 TSLint is deprecated and no longer accepting PRs for non-critical issues such as documentation typos. You'll want to look at typescript-eslint instead. Thanks!


Fix deprecated route to channels.list

Motivation
The route "channels.list" was deprecated and does not work more.
Solution
Adjust to use the new route "conversations.list"
Ref.
Slack Doc

Thanks!
But we haven't been able to keep up with changes in slack API for a long time, and it's going to be hard to keep up with many other things in the future. We'll archive this repository and note a recommend moving this repository to https://github.com/slack-go/slack.


Include go.sum h1 digest information in checksums

Go binary scanning now supports h1 digests being output in Syft, CycloneDX, and SPDX formats. However, we are not including this information if doing a source scan. We should include h1 digests from go.sum files when processing a corresponding go.mod file.
Originally noted by @deitch in https://github.com/anchore/syft/issues/1265#issuecomment-1285740475

Works quite nicely, thank you.
Now if only I could solve the "missing checksums in go compiled binaries when built using -vendor" issue, but that isn't syft's issue; rather it is that go isn't including the data. syft happily would use it if it were there.


victoriametrics: 1.102.1 -> 1.105.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/VictoriaMetrics/VictoriaMetrics/releases.
meta.description for victoriametrics is: fast, cost-effective and scalable time series database, long-term remote storage for Prometheus
meta.homepage for victoriametrics is: https://victoriametrics.com/
meta.changelog for victoriametrics is: https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v1.105.0
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS

[!CAUTION]
A test defined in passthru.tests did not pass.

found 1.105.0 with grep in /nix/store/nqhxhc2wgc9mpkbxyry95k9m57wxlwfi-VictoriaMetrics-1.105.0
found 1.105.0 in filename of file in /nix/store/nqhxhc2wgc9mpkbxyry95k9m57wxlwfi-VictoriaMetrics-1.105.0

Rebuild report (if merged into master) (click to expand)

3 total rebuild path(s)

3 package rebuild(s)

First fifty rebuilds by attrpath

victoriametrics
vmagent

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/nqhxhc2wgc9mpkbxyry95k9m57wxlwfi-VictoriaMetrics-1.105.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A victoriametrics https://github.com/r-ryantm/nixpkgs/archive/7d263a7cbb2cd62a0bac28af8a097d3df1f5b4cc.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/7d263a7cbb2cd62a0bac28af8a097d3df1f5b4cc#victoriametrics

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/nqhxhc2wgc9mpkbxyry95k9m57wxlwfi-VictoriaMetrics-1.105.0
ls -la /nix/store/nqhxhc2wgc9mpkbxyry95k9m57wxlwfi-VictoriaMetrics-1.105.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review

x86_64-linux

:white_check_mark: 2 packages built:

victoriametrics
vmagent

Maintainer pings
cc @yorickvP @ivan @leona-ya @Shawn8901 @ryan4yin for testing.

[!TIP]
As a maintainer, if your package is located under pkgs/by-name/*, you can comment @NixOS/nixpkgs-merge-bot merge to automatically merge this update using the nixpkgs-merge-bot.

Add a :+1: reaction to pull requests you find important.

@ofborg build victoriametrics vmagent

tests work for me


Update CHANGELOG.md, README.md and version number for v1.6.0 release

Today is the day!

✨ 🎉 :shipit:


An unexpected error has occurred.

Describe the bug
An unexpected error has occurred.
To Reproduce
Steps to reproduce the behavior:

Go to 'https://carbon.now.sh/'
Click on 'Profile Picture' --> 'Snippets'
See error

Expected behavior
See Snippets.
Screenshots

Info (please complete the following information):

OS: macOS
Browser: chrome

Code Snippet (If Applicable)

Sorry about this issue, and I really appreciate you pointing this out — some sort of issue from a minor update in one of our dependencies. This commit 834812adebe2b5b167298464009ee5f0ede61161 fixed the issue.


Bug: toastOptions.duration affects toast.promise loading

Found what looks to be a bug: the default duration in toastOptions affect the loading part of toast.promise. So instead of it loading to infinity, it will only load for (in this case) 3000ms and then disappear, and then later on the success toast will appear.
toastOptions={{
  duration: 3000, // this affects toast.promise
}}

https://user-images.githubusercontent.com/31098164/141494858-0ba86c78-7fde-4c35-88ba-bea3eb64d11d.mov
Was testing on 2.1.0, but couldn't find anything in 2.1.1 commits pertaining to this.

Can I work on this?

Confirmed

Confirmed at v2.4.0


[Playwright] Cookies specified via the playwright.config are not being set

Current behaviour
When some cookies are specified in the playwright.config they are not being set when running the tests, we currently have to set them pragmatically during the test run:
// some.spec.ts
...
    await context.addCookies([
        {
          name: "cookie1",
          value: "true",
          domain: ".domain.com",
          path: "/",
        },
        {
          name: "cookie2",
          value: "true",
          domain: ".domain.com",
          path: "/",
        },
    ]);
...

Desired behaviour
The list of cookies specified in the config playwright.config.ts should be set when running the tests
Config to reproduce
// playwright.config.ts
import type { PlaywrightTestConfig } from '@playwright/test';
import "dotenv/config";

const config: PlaywrightTestConfig = {
  testDir: './',
  timeout: 30 * 1000,
  expect: {
    timeout: 5000,
  },
  forbidOnly: !!process.env.CI,
  retries: process.env.CI ? 2 : 0,
  use: {
    trace: 'on-first-retry',
    contextOptions: {
      storageState: {
        cookies: [
          {
            name: "cookie1",
            value: "true",
            domain: ".domain.com",
            path: "/",
          },
          {
            name: "cookie2",
            value: "true",
            domain: ".domain.com",
            path: "/",
          },
        ]
      },
    }
  },
};

export default config;

apiVersion: v1alpha
kind: playwright
defaults:
  mode: sauce
  timeout: 5m
sauce:
  region: eu-central-1
  retries: 0
  concurrency: 3
  metadata:
    build: Release $CI_COMMIT_SHORT_SHA
docker:
  fileTransfer: copy
playwright:
  version: 1.20.2
  configFile: playwright.config.ts
rootDir: ./
suites:
  - name: "Visual Tests - Chrome"
    mode: sauce
    platformName: "Windows 10"
    screenResolution: "1920x1200"
    testMatch: ['visual/.*.spec.ts']
    params:
      browserName: "chromium"
      headful: true

# Controls what artifacts to fetch when the suite on Sauce Cloud has finished.
artifacts:
  download:
    when: always
    match:
      - console.log
      - "*.png"
    directory: ./artifacts/

Hi @asos-giovannip
I've tried the config with cookie and found out the root cause. saucectl with playwright does support cookie. The reason why it failed because of uninstalled npm package dotenv.
To run your test successfully, you need npm install dotenv package in your project like follows.
apiVersion: v1alpha
kind: playwright
defaults:
  mode: sauce
  timeout: 5m
sauce:
  region: eu-central-1
  retries: 0
  concurrency: 3
  metadata:
    build: Release $CI_COMMIT_SHORT_SHA
docker:
  fileTransfer: copy
playwright:
  version: 1.20.2
  configFile: playwright.config.ts
rootDir: ./
suites:
  - name: "Visual Tests - Chrome"
    mode: sauce
    platformName: "Windows 10"
    screenResolution: "1920x1200"
    testMatch: ['visual/.*.spec.ts']
    params:
      browserName: "chromium"
      headful: true

# Controls what artifacts to fetch when the suite on Sauce Cloud has finished.
artifacts:
  download:
    when: always
    match:
      - console.log
      - "*.png"
    directory: ./artifacts/
npm:
  packages:
    dotenv: "*"

Here is my test example link https://app.saucelabs.com/tests/bef1ab80f8d84beea2178b2b4531ee8b
I'll add log to point out the missing package to avoid the confusion here. Thanks!

@tianfeng92 thank you I'll give it a go!


Can't zoom out without zooming in

In the genome browser if I want to zoom out to see the whole contig the "-" buttons don't do anything unless I zoom in first.

Bob, I tried multiple times and can't reproduce the problem. I am able to zoom out after the initial page load, without zooming in first.
Please show it to me / Harry when you get a chance.
-Maulik

cannot replicate the problem.


Include File Hashes for Downloads

Steps
N/A
Problem
Most projects include file hashes with their downloads. Whether it is MD5, SHA1, SHA256 or SHA512, it would be nice to verify the download is correct.
Expectation
You can take a look at Ant's downloads. Each release they push they have the associated hashes.
I expect to be able to download a universal package from the download page and download the associated hash.
Notes
This is a security issue and I hope it gets fixed swiftly!

We do publish PGP signature for each file if you add .asc at the end - https://piccolo.link/sbt-1.3.4.tgz.asc

@eed3si9n Thanks for the quick response! I glad to know you publish the signature for each file. Where would I get sbt's public key to verify the file?
Cause when I run this command, gpg --verify sbt-1.3.4.tgz.asc sbt-1.3.4.tgz, I get:
root@750b45235c2f:/# gpg --verify sbt-1.3.4.tgz.asc sbt-1.3.4.tgz
gpg: directory '/root/.gnupg' created
gpg: keybox '/root/.gnupg/pubring.kbx' created
gpg: Signature made Sat Nov 23 19:38:07 2019 UTC
gpg:                using RSA key 2EE0EA64E40A89B84B2DF73499E82A75642AC823
gpg: Can't check signature: No public key

Additionally, would you guys be willing to add file hashes too?

Here's the public key https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x2EE0EA64E40A89B84B2DF73499E82A75642AC823
For the SHA hash, would it be ok if it's done for the downloads going forward and not back filled?

@eed3si9n Works for me! Thank so much for the information.
Looking forward to seeing file hashes!

Here's https://piccolo.link/sbt-1.3.5.tgz.sha256 for sbt 1.3.5.

@eed3si9n Thanks


Failed to convert page to image

hi, i have this code in nodejs that receives a pdf, and converts it to an image, which it will respond the location on server and in base64. this works perfectly on mac. when deployed to docker it fails with:
{ message: 'Failed to convert page to image',
error:
{ Error: Command failed: convert "services/uploads/1f4ca0ff9901c719b201007b102c18e2[0]" "services/uploads/1f4ca0ff9901c719b201007b102c18e2-0.png"
convert-im6.q16: no images defined `services/uploads/1f4ca0ff9901c719b201007b102c18e2-0.png' @ error/convert.c/ConvertImageCommand/3258.
at ChildProcess.exithandler (child_process.js:281:12)
at emitTwo (events.js:126:13)
at ChildProcess.emit (events.js:214:7)
at maybeClose (internal/child_process.js:915:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)
 killed: false,
 code: 1,
 signal: null,
 cmd: 'convert "services/uploads/1f4ca0ff9901c719b201007b102c18e2[0]" "services/uploads/1f4ca0ff9901c719b201007b102c18e2-0.png"' },

stdout: '',
let pdfImage = new PDFImage("services/uploads/" + req.file.filename)
pdfImage.convertPage(0)
.then(function (imagePath) {
googleCloudService.uploadPDFconvImg(req.file.filename + "-0.png")
.then((result) => {
let base64 = Buffer(fs.readFileSync("services/uploads/" + req.file.filename+ "-0.png")).toString('base64')
fs.unlinkSync("services/uploads/" + req.file.filename+ "-0.png");
fs.unlinkSync("services/uploads/" + req.file.filename);
                    res.status(200).json({
                        url:result.Location,
                        image:base64
                    });
                    // resolve(result)
                })
                .catch(error => {
                    console.log("error on image upload")
                    console.log(error)

                    res.status(400).json({ error: "Could not upload file" })
                });
        })

someone has an idea how to fix this?

If you can provide a minimal, runnable test case (i.e. a script and Dockerfile and an example pdf) I can investigate this.

i switched to pm2 for the time being to keep our development going, will come back to this when i have the time


Generated excel file corrupted when using mostly any currency NumFmt

Description
The generated excel file corrupted when using mostly any NumFmt that listed in currencyNumFmt. Here I'm using 359. I've tried using 350, 356, 361, etc and it's still the same. But I've tried using 313, it's working fine (I think only 313 that working, at least for me).
Here's the code
f := excelize.NewFile()
sheetName := "Sheet1"

f.SetCellValue(sheetName, "A1", "No")
f.SetColWidth(sheetName, "A", "A", 8)

f.SetCellValue(sheetName, "B1", "Value")
f.SetColWidth(sheetName, "B", "B", 20)

f.SetCellValue(sheetName, "A2", 1)
f.SetCellValue(sheetName, "B2", 0)
f.SetCellValue(sheetName, "A3", 2)
f.SetCellValue(sheetName, "B3", 99000)
f.SetCellValue(sheetName, "A4", 3)
f.SetCellValue(sheetName, "B4", 5919573)

currencyCols := []string{"B"}
currencyStyle, _ := f.NewStyle(&excelize.Style{
    Alignment:    &excelize.Alignment{Horizontal: "left", Vertical: "center"},
    NumFmt: 359,
})
for _, c := range currencyCols {
    f.SetColStyle(sheetName, c, currencyStyle)
}

When open the generated file, it gives me

although after I'm clicking Yes, it's working fine, hmmm
Output of go version:
go version go1.19.12 darwin/amd64

Excelize version or commit ID:
v2.8.1-0.20230909055100-49706c9018fc

Environment details (OS, Microsoft Excel™ version, physical, etc.):
MacOs 10.14, Excel for Mac 16.45

Here's the file file.xlsx

Hmmm, tried downgrade to version 2.7.0, and working fine.

Thanks for your issue. I have tested v2.8.1-0.20230909055100-49706c9018fc with your code and it works well. It also works with other currency number codes 350, 356, 361, etc, There is not enough info on the code and attachments to reproduce this issue, could you provide more details about this, such as how you saved the workbook at last?

Thanks for your feedback. I've tested with gin v1.9.1, excelize v2.8.0 or master branch by following code, and send request with cURL: curl --location --request GET 'http://<IP_ADDRESS>:8080/export' -O. It works well. Could you show us a complete, standalone example program or reproducible demo?
package main

import (
    "github.com/gin-gonic/gin"
    "github.com/xuri/excelize/v2"
)

func main() {
    r := gin.Default()
    r.GET("/export", func(c *gin.Context) {
        c.Header("Content-Type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
        c.Header("Content-Disposition", "attachment; filename=file.xlsx")
        f := excelize.NewFile()
        sheetName := "Sheet1"

        f.SetCellValue(sheetName, "A1", "No")
        f.SetColWidth(sheetName, "A", "A", 8)

        f.SetCellValue(sheetName, "B1", "Value")
        f.SetColWidth(sheetName, "B", "B", 20)

        f.SetCellValue(sheetName, "A2", 1)
        f.SetCellValue(sheetName, "B2", 0)
        f.SetCellValue(sheetName, "A3", 2)
        f.SetCellValue(sheetName, "B3", 99000)
        f.SetCellValue(sheetName, "A4", 3)
        f.SetCellValue(sheetName, "B4", 5919573)

        currencyCols := []string{"B"}
        currencyStyle, _ := f.NewStyle(&excelize.Style{
            Alignment: &excelize.Alignment{Horizontal: "left", Vertical: "center"},
            NumFmt:    359,
        })
        for _, c := range currencyCols {
            f.SetColStyle(sheetName, c, currencyStyle)
        }
        f.Write(c.Writer)
    })
    r.Run()
}

I have met the same issue with v2.8.0 and v2.7.1 and v2.7.0.
The code to generate the corrupted file is simple
	f := excelize.NewFile()

	var tab ExcelizeTabulator
	tab.SetExcelizeFile(f)
	{
		f.DeleteSheet("Sheet1")
		if err := f.SaveAs(filename); err != nil {
			fmt.Println("cannot write xl file : ", err)
		}
	}

It seems still not have enough info of code and attachments to reproduce this issue, so I'll close this issue, if you have any questions, please let me know to reopen this anytime.


Interview questions on binarysearch

Hey @Ayush7614, I want to add interview questions on binarysearch site as a part of the LGM SOC contest. Can you please assign me this issue?

Hey @Ayush7614 ,  I would like to add some interview question on binary search, so could you please assign this issue to me?

Go Ahead @Aiswarika

Hey @Ayush7614 , I would like to add some interview question on binary search, so could you please assign this issue to me?

Sorry @sejal1430 but first issue was assigning to Aiswarika because she asked first if you code in different language then i will assign you

@Aiswarika in which langugae you code this issue

@Ayush7614  preferably CPP.

Okk so @sejal1430 if you code in any other language then i will assign you

yes @Ayush7614 , I code in java.

Go Ahead @sejal1430

I will close this issue @sejal1430 @Aiswarika because you can add only single single question for one issue so open new issue and add single single question issue question name


cmd/go: unexpected output with go test -count

Please answer these questions before submitting your issue. Thanks!

What version of Go are you using (go version)?
go version devel +bd34da6 2016-03-25 17:23:32 +0200 linux/amd64

What operating system and processor architecture are you using (go env)?
Linux amd64

What did you do?
go test -bench BenchmarkGrowSliceBytes -run NONE -count 5

What did you expect to see?

BenchmarkGrowSliceBytes-8                       100000000               32.2 ns/op             8 B/op          1 allocs/op
.... 5 times

What did you see instead?

BenchmarkGrowSliceBytes-8                       100000000               32.2 ns/op             8 B/op          1 allocs/op
BenchmarkGrowSliceBytes-8                       100000000               33.2 ns/op             8 B/op          1 allocs/op
BenchmarkGrowSliceBytes-8-8                     100000000               32.9 ns/op             8 B/op          1 allocs/op
BenchmarkGrowSliceBytes-8-8-8                   100000000               32.6 ns/op             8 B/op          1 allocs/op
BenchmarkGrowSliceBytes-8-8-8-8                 100000000               33.4 ns/op             8 B/op          1 allocs/op

Introduced in 31e5d83525acbba07b38106952834c9a44b855a7.


Fix collectors outputs redirection

Which components does the task require to be changed? (think hard pls)
snforge
Description
Compiler diagnostics should be output to stdout, not stderr as it is implemented now

I am not sure if this is fix, we should first investigate it