Support filter on type should in search tree

Testing #67274

We removed it at some point, there is another issue on the tree blocking us from implementing it the way we want. But I think we would like to have it at some point, so I will leave this open.

@roblourens, if I'm reading this correctly, this issue is about being able to enter additional search terms in order to refine and filter down the search results in the search widget or search results editor.  I find that extremely useful in my current editor (Komodo Edit) and would like to try to implement it in VSCode before I move over to it.
What is the other issue that you referenced?  Can you give me any pointers for me to try to implement this?

This was about filtering based on files in that tree, I think I didn't want to also filter text in the preview since the size of the preview is not predictable so it wouldn't be a good experience for a secondary search. Search Editors work a little better for that.
I think the other issue was https://github.com/microsoft/vscode/issues/67080

Thank you, @roblourens.  I'm new to VSCode, so I had thought that the left side search tree and the Search Editors were the same, but now I see they aren't.
I looked at #118128 and it's not exactly what I was referring to since that's about finding files that include both occurrences, but not necessarily on the same line.  The video below is from Komodo Edit.  Essentially, I searched for <img, then I wanted to find those with a width, but no height, so I can filter the existing search results using -height width (note: the inputs are at the bottom of the video and may get covered up by the video timeline and controls).
https://user-images.githubusercontent.com/1426848/126258177-29e47e96-6cb2-43dd-888b-4e485dbbd8ce.mov
Should I open a new issue for this?  If I implement a text box at the top or bottom of the Search Editor to do this, do you think it's something that would be merged.  I could make it a non-default setting if that would help the chances.

You can open a new issue. @JacksonKearl owns the Search Editor

Thanks, @roblourens.  I moved this to #129063.

Is there being progress made on this feature, as it would be very helpful to have my overriding file paths highlighted in the sidebar search?

It is currently on our backlog, so we will try to get to it, but there is currently no progress on it.


Typo in exercise 1

"cloneing"

Also, the word "resoures". Also, 2X check that index.html doesn't have the head section repeated.

ok


Fix PrometheusTSDBWALCorruptions alert

tsdb_wal_corruptions_total metric name should be prometheus_tsdb_wal_corruptions_total

I'd regenerate yaml files in a separate commit, but somewhere in the tangle of (assumed sudoless) docker and relative references the ../../hack/jsonnet-docker-image Makefile step errors on symlinks. I've reached my timebox.

yes, jsonnet only changes don't necessarily need re-gen, also I'm happy to inform you that we are thinking of ways to remove generation entirely and only make it a release artifact (that can only happen after we move this to a separate repo though)

Thanks @dghubble!

:wave: Hi!
@s-urbaniak It should change https://github.com/coreos/prometheus-operator/blob/master/contrib/kube-prometheus/manifests/prometheus-rules.yaml#L954 and thanks @brancz!
Manifest generation in-repo does seem tricky. I suppose you're wanting to still have rendered manifests so the result of libsonnet changes can be seen, but generating in PRs is an extra step too. Separately, I've had good experiences switching docker-based artifact creation to buildah / buildah unshare to drop the (effective) root requirement, though the tool is probably less familiar to many. But if its part of releases I suppose contributors don't deal with it at all. Thanks for the updates, looking forward to how that goes!


Fix repeat for dims > 1

Allow repeat operation to repeat a dimension that is larger than one, instead of panicking.

Changed and refactored default implementation based on slice_assign which is used by ndarray and candle
Changed jit kernel
Added tests

Fix #1670

Linking a related task: #1715


Nightly regression depends on install_systests.sh to track the correct version of 'neutron'

@richbrowne @mattgreene

Title: The tag '9.1.0' is hard-coded as part of the pip install 'neutron' directive.

The correct behavior is to replace '9.1.0' with 'stable/$branch'.
I have fixed this previously on my own branch, but evidently that PR was never merged?!

Oops...  this issue belongs in f5-openstack-agent!


add a new option of file permission to config

What is the business background? Please provide a description.
in on_dvr hook, I need to move the file to a new place. I write the script in PHP.
Is your feature request related to a problem? Please describe.
when copy file got error:
{"type":2,"message":"copy(\\/data\\/srs\\/record\\/live\\/987cc704-2332-402a-963e-99177218c6a2\\/1702624496464.mp4): Failed to open stream: No such file or directory...

in fact, file exists.because file permission is -rw-r--r--, so when call function copy,file_exists,all got above error.
Describe the solution you'd like
set the default permission to 0755 or let user config it in config file
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

sorry, it's my fault. I run my script in a docker container,but I forgot to mount the path into container.

感谢你的反馈。感谢选择SRS。


fix Property [password] does not exist on this collection instance. (closes #4)

Previously the plugin tried to get the user instance via
User::find($form->getColumns)?->password

but $form->getColumns does not return the user or the user id instead it returns an array with defined columns, for example [lg => 2] which ultimately results in returning a collection of a single user with the id of 2.
Obviously this is not what we want. So with this PR it returns the password if exists.

thanks this problem was fixed in PR #5


chore(master): release 8.1.0

:robot: I have created a release beep boop
8.1.0 (2024-10-03)
Features

harden internals (#952) (a640272)

Bug Fixes

handle null pinnings as empty list (#955) (62496f7)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/ethersphere/bee-js/releases/tag/v8.1.0 :sunflower:

Release v8.1.0 addresses this.


figures updated

The figures are updated based on the edit to the limits and now they all start from 0.

I think they were already starting at 0. I don't think it matters. Should I make any changes to it?

No, the y-axis in the figures clearly doesn't extend to 0. Yes, I think it would be helpful to do this.

The gamma parameters in supp figures now are in the range of 0 and 20.


Releases: add 0.21.0

@harding can you have a look please if I did this correctly

@harding can you have a look please if I did this correctly

Autolinking format plugin updated in #735

Autolinking format plugin updated in #735

@harding @azuchi Thanks, fixed the filename and escaped the pipe symbol.

@harding @azuchi Thanks, fixed the filename and escaped the pipe symbol.

Looks like the RPC docs were not updated in this release process. Would be useful to have them added.
Also, is there a resource on how to generate them?

Looks like the RPC docs were not updated in this release process. Would be useful to have them added.
Also, is there a resource on how to generate them?


Push images to docker hub

Currently, GCR is used to store docker images after successful merges.  We should transition to docker hub and an istio org for this purpose.

Closing. currently Jenkins is pushing to docker hub.


Docker Grobid service maintains high memory usage while idle

Hi all,
I've been running Grobid with docker using the same command in the documentation:
docker run -t --rm --init -p 8070:8070 -p 8071:8071 lfoppiano/grobid:0.6.1
After Grobid receives the API call to process 8 papers the memory usage will increase to ~5 GB as expected, but after the API response has been returned, docker stats still states that it has not freed the memory back to the system and stays allocated at ~5 GB.
Is this expected? This seems like an issue to me as I would have expected the memory to be freed after Grobid finishes processing papers. Is this to save having to reload the models into memory on the next batch of API calls?

Hello! This is the expected behaviour. Loading all the models take around 30s so we don't want to do it at each call and we keep the service "warm". There is also no notion of "batch" of API calls - the service is always ready (stateless) to process incoming documents, as long threads are available in the pool of threads.

Hello! This is the expected behaviour. Loading all the models take around 30s so we don't want to do it at each call and we keep the service "warm". There is also no notion of "batch" of API calls - the service is always ready (stateless) to process incoming documents, as long threads are available in the pool of threads.

Got it! Really appreciate the explanation.
I'll close the ticket.

Got it! Really appreciate the explanation.
I'll close the ticket.


Fix Upsert config validation to check for metrics aggregation

Bugfix for: https://github.com/apache/pinot/issues/8226

I don't think it can compile now because of the extra back brace. Can you please also fix the code format using Pinot Style?

Thanks, I configured Pinot style.

@Jackie-Jiang - Thanks for reviewing the changes :) I have addressed the remaining comments. Once you approve those, can I get it merged? I don't seem to have the access.

Codecov Report

Merging #8781 (bc5b6d2) into master (73316a6) will decrease coverage by 42.96%.
The diff coverage is 61.23%.

:exclamation: Current head bc5b6d2 differs from pull request most recent head 7e7e717. Consider uploading reports for the commit 7e7e717 to get more accurate results

@@              Coverage Diff              @@
##             master    #8781       +/-   ##
=============================================
- Coverage     68.51%   25.54%   -42.97%
+ Complexity     4601       45     -4556
=============================================
  Files          1736     1723       -13
  Lines         91196    90966      -230
  Branches      13633    13610       -23
=============================================
- Hits          62480    23240    -39240
- Misses        24330    65505    +41175
+ Partials       4386     2221     -2165

Flag
Coverage Δ

integration1
?

integration2
25.54% <61.23%> (?)

unittests1
?

unittests2
?

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

...roker/requesthandler/BaseBrokerRequestHandler.java
61.59% <0.00%> (-5.23%)
:arrow_down:

...uting/segmentselector/RealtimeSegmentSelector.java
88.13% <0.00%> (-8.69%)
:arrow_down:

...he/pinot/common/tier/FixedTierSegmentSelector.java
0.00% <0.00%> (-93.34%)
:arrow_down:

.../helix/core/realtime/SegmentCompletionManager.java
37.47% <0.00%> (-34.54%)
:arrow_down:

.../org/apache/pinot/core/common/MinionConstants.java
0.00% <ø> (ø)

...t/core/plan/AggregationGroupByOrderByPlanNode.java
45.45% <0.00%> (-36.37%)
:arrow_down:

...ot/plugin/stream/kafka20/RowMetadataExtractor.java
0.00% <0.00%> (ø)

...l/indexsegment/immutable/ImmutableSegmentImpl.java
0.00% <0.00%> (-65.63%)
:arrow_down:

...eaderwriter/RealtimeIndexOffHeapMemoryManager.java
0.00% <0.00%> (-80.65%)
:arrow_down:

...dex/readers/bloom/GuavaBloomFilterReaderUtils.java
0.00% <0.00%> (-100.00%)
:arrow_down:

... and 1344 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 73316a6...7e7e717. Read the comment docs.

@Jackie-Jiang - Could you please help me merge this? I have resolved the conflict. (also the formatting changes are done by the pinot checkstyle configuration.


vGPU dropdown isn't showing properly when adding vGPUS to downstream RKE2 clusters on Harvester

Setup

Rancher version: v2.10-fe30db77dab22d42b769c9d88d9410a8044c4066-head
Rancher UI Extensions:
Browser type & version: Chrome 129.0.6668.91 on Mac OS 14.6.1
Harvester version: v1.4.0-rc2 (single node bare metal)
Describe the bug

When adding vGPUs to a second RKE2 cluster being provisioned on a downstream Harvester cluster the dropdown doesn't show anything.
To Reproduce

Provision a RKE2 cluster with vGPUs on Harvester
Wait for the VMs to be created
Create a second cluster with the available vGPUs
Try to select something from the dropdown
Result
The dropdown is blank
Expected Result

You should be able to see and provision the vGPUs on the RKE2 cluster
Screenshots

Additional context

If you click the dropdown than it still will provision the RKE2 clusters correctly with the vGPUs. You can verify this in the Harvester cluster by checking vGPUs on the VMs

Could be related to https://github.com/rancher/dashboard/issues/12117, however that has been merged.
@noahgildersleeve can you confirm the version of the dashboard that's loaded (Side bar --> About --> Dashboard), does the same issue happen in 2.9?

ThIs isn't happening in Rancher v2.9-head. The dashboard version is master 7a296a5

I can get you the versions for Rancher v2.9-head as well if you need them.

Thanks @noahgildersleeve. That commit does contain the fix from https://github.com/rancher/dashboard/issues/12117. Though i was muddled, thought this was machine-config related however it's harvester extension based, from v1.4.0-rc2 (guessing that's serving up a non-vue3 extension @torchiaf )?

Thanks @noahgildersleeve. That commit does contain the fix from #12117. Though i was muddled, thought this was machine-config related however it's harvester extension based, from v1.4.0-rc2 (guessing that's serving up a non-vue3 extension @torchiaf )?

Correct, this is still the current Vue2 Harvester UI.

In light of some infrastructure upgrades, we need to push this out until the Harvester move is complete.
For now, I'm pushing this to 2.11.0 but this will need backports to 2.10.1 & 2.9.5 for December.

/backport v2.10.1

/backport v2.9.5

@gaktive QA provided a vgpu machine to test it, ew are working on it.

We couldn't replicate the bug in Rancher 2.9-latest and 2.10.0 cc @noahgildersleeve
Test Result

Create a new cluster and assign 1 vGpu device from the device pool - NVIDIA_A2-2Q (allocatable: 6)
Cluster details - Rancher UI

Provisioning VM - Harvester UI

Create another cluster, assign 1 vGpu device from the device pool - NVIDIA_A2-2Q (allocatable: 5)
Cluster config - Rancher UI

A new vGpu device can be selected for new clusters and the vGpu counter is correctly up-to-date from 6 -> 5
Confirming that we can close the ticket


termtosvg: init at 0.3.0

Motivation for this change
termtosvg makes screencasts and writes them into a SVG file. The app
can be used on CLI entirely.
Closes #42921
Things done

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

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Fits CONTRIBUTING.md.

/cc @Jumblemuddle

This doesn't look like a library and does not belong in pythonPackages.
./pkgs/tools/misc/ is probably the correct location.

ack, will work through the review %)

ok, this history looks wrong %)

Please remove the debootstrap commit and fix eval (missing meta.homepage).

@GrahamcOfBorg build termtosvg

Success on x86_64-darwin (full log)
Attempted: termtosvg
Partial log (click to expand)
test__record (tests.test_term.TestTerm) ... ok
test_get_terminal_size (tests.test_term.TestTerm) ... ok
test_record (tests.test_term.TestTerm) ... ok
test_replay (tests.test_term.TestTerm) ... ok

----------------------------------------------------------------------
Ran 19 tests in 4.648s

OK
/nix/store/0jvhs4mhw7gqrs9hzazqmh5mpbw3mz3s-termtosvg-0.3.0

Success on x86_64-linux (full log)
Attempted: termtosvg
Partial log (click to expand)
Recording started, enter "exit" command or Control-D to end
Recording ended, SVG animation is /build/termtosvg_cv24fc9l.svg
ok
test_parse (tests.test___main__.TestMain) ... ok

----------------------------------------------------------------------
Ran 19 tests in 6.270s

OK
/nix/store/dal1168wq2mkanr04ldn4k88ql3s2mm4-termtosvg-0.3.0

Success on aarch64-linux (full log)
Attempted: termtosvg
Partial log (click to expand)
Recording started, enter "exit" command or Control-D to end
Recording ended, SVG animation is /build/termtosvg_33je_f2j.svg
ok
test_parse (tests.test___main__.TestMain) ... ok

----------------------------------------------------------------------
Ran 19 tests in 7.272s

OK
/nix/store/0qshvmmmj1d5brc9ycrq91qknvqd2p2i-termtosvg-0.3.0

Don't forget to remove the python3Packages prefix from your commit message.

Done in the merge.


fix: use correct metadata field to populate RNA levels

The isHuman from  const isHuman = metadataSection.organism === 'Homo sapiens'; is used to populate the HPA RNA levels. In the newer data files, the organism field is missing, which means isHuman is always false, which in turn means the HPA RNA levels do not get populated. This PR uses the short_name field instead, which exists in both the older and newer data files.

In theory, using the orgaism is more generic, but in practice it does not make a difference for us. I haven't tested this but the change looks good.

It looks like the organism field is missing from the newer data files. For example: https://github.com/MetabolicAtlas/data-files/blob/feat/more-models/integrated-models/Human-GEM/Human-GEM.yml
I assume the feat/more-models branch represents the new format going forward so I made this change. The short_name also exists in both versions so it looks like the safer option for both cases.

Perhaps silly question, but how can I recreate the problem? I assume it's related to what's shown in Interaction Partners?

Perhaps silly question, but how can I recreate the problem? I assume it's related to what's shown in Interaction Partners?

Sorry, I should have been more specific in the PR description. You could checkout the feat/more-models branch from the data-files repo and rebuild the stack. After this if you try to go to the 3D map viewer and apply some RNA levels, all the circle nodes should be gray.


Please return back title color

The title color was changed in 0.2.0. Now it differs from title color of glance or entities card block, what makes lovelace very innacurate.
Please, return back default title color or add special tag for lovelace config in order to customize the color.

Fixed in 0.2.1.


Incorporate call for stories about your donations to index.html

Jimmy, in the new index.html design, can you incorporate a call eg "Did you donate PPE? We want to hear what you did!" link should go to https://www.facebook.com/findthemasks which @graemer has claimed and will delegate setting up.
We will use some of the stories to engage press.

How about: Did you donate PPE? We want to hear about it!


Provide a way to set the HTTP Headers for _Webstream

Overview
We have to provide an API to set HTTP headers on web requests. Related to high-level https://github.com/frictionlessdata/implementations/issues/24
Plan

[ ] add http_headers (dict) option to loaders.remote.RemoteLoaders
[ ] write tests to cover new functionality
[ ] add option description to readme - https://github.com/frictionlessdata/tabulator-py#httphttpsftpftps

From @strets123
Often a content type header is needed to make a JSON API call. In fact this is part of the RFCs

@strets123
Hi. Thanks! I've created a mini spec for it.


German:  Option to remove the "ß"-Key from the bottom right.

Improvement
To make users that switch from (for example) the Samsung Keyboard to ASK, i suggest adding the option to remove the ß-key from the bottom right.
This extra space could be used either to increase the size of the remaining letter-keys, or, and this is big, use it to make the backspace-key bigger.
This would be great because the backspace-key feels really small when first switching to AnySoftKeyboard. With every layout.
Implementation
There should either be a switch somewhere, or there should be extra layouts that have the ß-key removed.
For this change to be implemented, there first needs to be an alternative way to type " ß ". Which is one reason, why #349 should be implemented first / is more important.

This repository is being archived.
Please move this issue to http://github.com/AnySoftKeyboard/AnySoftKeyboard/issues


Mark WebHostService with DesignerCategory("Code")

If a user derives from WebHostService, VS tries to open the file in the Component designer, which is the wrong experience. We can stop this easily by just applying to [DesignerCategory("Code")] attribute to the class to suppress this behavior.
We need this in all three branches (2.1/2.2/3.0) since this class existed in all three.
cc @Pilchie @Tratcher

See also https://developercommunity.visualstudio.com/content/problem/578722/classes-deriving-from-webhostservice-become-design.html

Unsurprisingly, you can repro the VS issue just by trying to open WebHostService.cs itself in the editor :)


Refactor sns_send_message to make thread safe

When initializing a backend we define a boto3 client
https://github.com/mapbox/watchbot-progress-py/blob/ccab4153bd6a66c61267f808067b8f8aec96df5a/watchbot_progress/backends/dynamodb.py#L24-L26
and then when we send messages using futures, this client is shared by all threads.
https://github.com/mapbox/watchbot-progress-py/blob/ccab4153bd6a66c61267f808067b8f8aec96df5a/watchbot_progress/main.py#L57-L60
As noted in http://boto3.readthedocs.io/en/latest/guide/resources.html#multithreading-multiprocessing and https://geekpete.com/blog/multithreading-boto3/ boto3 client are not thread safe and each thread should init it's own boto3.session.Session()
Fix
from boto3.session import Session as boto3_session

def send_message(self, message, subject, sns=sns):
    """Function wrapper to facilitate partial application"""

    if not sns:
        session = boto3_session()
        sns = session.client('sns')

    return sns.publish(
        Message=json.dumps(message),
        Subject=subject,
        TopicArn=self.topic)

note: this ☝ fix could also add a sns option that will allow to pass a client from a top level function
cc @perrygeo

resolved in #19


Remove trailing newline from BASE_IMAGE* results

In sanity-inspect-image the BASE_IMAGE and BASE_IMAGE_REPOSITORY result is set and later on used in the deprecated-image-check.
Currently it contains a trailing newline. The trailing newline ends up being passed literally to curl used in the deprecated-image-check as the URL is quoted there. This leads to curl failing with status 000.
The deprecated-image-check Task doesn't fail, but the HACBS_TEST_OUTPUT results in an error.
No matter how hard I tried see where the issue was and where the newline was emitted from for the BASE_IMAGE_REPOSITORY result, i.e. was it from jq, cut or tee, it seemed to originate from none of those. That's why I ended up rewriting that in a single jq invocation and analogous to BASE_IMAGE passed via variable and echo to tee. Seems to have solved the issue.

@redhat-appstudio/test-team please take a look

/retest

Here is the PipelineRun caught before test cleanup of the failed end to end test. To me it looks like the issue #245 is trying to fix was hit in the end to end test. Namely, the appstudio-init task's result is build=true, and the hermetic result is missing from the clone-repository task. Given that, the sanity-inspect-image failed, because build-container task was skipped as a result of prefetch-dependencies being skipped. The reasons "PipelineRun was stopping" overshadow the true reason for the tasks being skipped, and the sanity-inspect-image being run without build-container running.

Rebasing on #245 fixed the issue. I'm going to merge this.


Add add_decendecy 'rubocop', ">= 0.35.0"

Why don't you add add_decendecy 'rubocop', ">= 0.35.0" ?
Because onkcop depends on 'inherit_gem' operator that added since '0.35.0'.

Released as v<IP_ADDRESS>.
thanks! :+1:


Toggle fullscreen?

Sorry if I missed an obvious API, but is there a way to set/get/toggle fullscreen for the window? I'm using LOVR for a desktop app, non-headset. Thanks.

There isn't a way to do this right now

Clarification: You can set t.window.fullscreen to get a borderless fullscreen window, but you can't change the fullscreen state after the window is created right now.


Fix typo

Description of the change: Fixes typo (spellling --> spelling)
Reason for the change:
Link to original source:

Closes #

Hello @agarwalrounak,Thanks again for the PR! It's HACKTOBERFEST! We want to show our appreciation by sending                                              you some special Hacktoberfest swag. If you have not already, could you please fill out                                              this form so we can send it to you? Thanks!                                             Team SendGrid DX

Hello @agarwalrounak,Thanks again for the PR!                                         We noticed that you have earned 1 out of the 5 points needed to receive glorious SendGrid Hacktoberfest swag.                                         Please take a moment to checkout this link to find more issues to get you past the required threshold.                                         Also, please be sure that you have officially registered here.                                         Thank you and Happy Hacktobering!                                         Team SendGrid DX

Hello @agarwalrounak,Thanks again for the PR!                                         You have earned 1 out of the 5 points needed to receive glorious SendGrid Hacktoberfest swag.                                         Please take a moment to checkout this link to find more issues to get you past the required threshold or to simply continue the celebration.                                         Also, please be sure you have officially registered with us here by November 1, 2018 to qualify.                                         If you have any questions you can email us at<EMAIL_ADDRESS>                                        Thank you and Happy Hacktobering!                                         Team SendGrid


Fix InputMap.action_erase_event() failing to erase events correctly.

Fixes #47965
Fixes #48692
Also fixes modifiers not currently working with InputEventMouseButton events.
Breaks compat, because it includes renaming shortcut_match() to is_match(), which better reflects what the function is now doing.

Certainly seems cleaner (provided we never need to have modifiers on joystick axis controls).

Thanks!


Fixed error when duplicating a scene which has connection

Fixed error when duplicating a scene which has connection
Fixes #16040

Thanks!

Cherry-picked for 3.0.7.


Conditionally load the context menu

So, right now, there is an empty text attribute, but would it be possible for an attribute to be added in order to load a context menu at all? We are trying to if a variable if false, not load context-menu at all by using ng-attr, but with no luck. Maybe have context-menu-enabled and let a conditional be put in there to be evaluated and if false, not load it at all? That way we don't have it load and have 'empty ' as the only option that displays. Thanks!

This used to work (see #11) but now we're getting the 'empty' menu when returning [] or undefined.
I've had to work around this by modifying around lines 610 to only do the $broadcast and renderContextMenu if promisedMenu is truthey.

For anyone who might come across this in the future: You can use the following hack to ensure that the menu never appears if it only contains the default 'empty' option.
this.$rootScope.$on('context-menu-opened', (event, args) => {
    if (!args.params.options.length) {
        // make sure to pass the event name below to the close-menu-on directive option
        this.$rootScope.$broadcast('close-context-menus');
    }
});


Fix leaking types

There is one major problem and a few minor ones with the TypeManager:
The major problem is that the singleton instance of TypeManager keeps lists of Types. These Types may refer to RecordDeclarations (including the whole AST of a source file) and were never removed from memory. This is not only a memory leak but also messes up later analysis runs.
The minor problems are related to unclear nullability of fields and the fact that unit tests call TranslationManager.analyze(), but expect that TypeManager is still populated afterwards (although it should in fact be cleaned up). Actually, tests are making false assumptions here.

Looks like a merge conflict here? We got rid of the disableCleanup option and this is now done through mocking in unit tests.

Mocking away this reset behaviour works even though it is a static method, as the mock replaces the type manager instance. The corresponding trigger is TestUtils.disableTypeManagerCleanup()

Mocking away this reset behaviour works even though it is a static method, as the mock replaces the type manager instance. The corresponding trigger is TestUtils.disableTypeManagerCleanup()

I tried that but reset() was not called. And this somehow makes sense because Mockito currently replaces the instance , not the static implementation. A quick Google search told me that Mockito alone cannot do that properly but rather PowerMock had to be used.
So I went for the disableCleanup solution.
The underlying problem is that tests are expecting content in TypeManager to be available which actually should not be available after the analysis. I guess the tests should be re-written in the longer term.

Ah, I just saw that there is a difference between reset and cleanup in the TypeManager. I think you should call cleanup from the type resolver, which is non-static and actually clears the type to record mapping as you want it to

In my opinion we should remove the static reset function and use the cleanup method instead

Ah, I just saw that there is a difference between reset and cleanup in the TypeManager. I think you should call cleanup from the type resolver, which is non-static and actually clears the type to record mapping as you want it to

It was unclear to me why there is a cleanup() and a reset() method. But what we actually need is to clean these two lists:
  private Set<Type> firstOrderTypes = new HashSet<>();
  private Set<Type> secondOrderTypes = new HashSet<>();

cleanup() does not do that.

I see. It seems that when implementing the cleanup method I forgot to clear those as well

Can we change the mocked method to clean those up as well then? I would prefer the mocked-solution to introducing a config parameter that is only used in tests.

Now I remember why there is a separate reset method. When a test mocks the TypeManager instance, the next test would also get the mock as the new instance. This is why before each test the TypeManager instance is reset to a fresh one. A better solution would probably be to remove this reset method, make the cleanup one really clean up all state, and then in the beforeEach test method to set the TypeManager instance to null, so that it is re-created as it should, upon first use

Can we change the mocked method to clean those up as well then? I would prefer the mocked-solution to introducing a config parameter that is only used in tests.

TBH, I see this as a quick fix that I need to get Codyze up to date. In the longer term, there are some architectural smells that could be changed:

TypeManager should not need to be a singleton. Singletons are prone to memory leaks, make CPG almost impossible to use in multi-threaded applications, and add complexity (see the cleanup/reset problem).
Most CPG nodes access the TypeManager singleton in their typeChanged method. This tightly couples the CPG nodes to the specific TypeManager. This type of logic should reside outside of the actual CPG, maybe in some visitor.
Tests should test for the expected behavior and not use reflection magic to inject slightly manipulated objects into TypeResolver at runtime. Either we should have tests that call TranslationManager.analyze() - they should expect that everything is cleaned up afterwards. When testing the TypeManager itself, tests should create an instance of it and feed it (dummy) data to check if it behaves correctly.

That's true, although I'm currently unsure how the correct type behavior can be realized without a global singleton "supervisor", e.g. setting the type of a node to the lowest common supertype of all possible subtypes. Maybe inside a very early pass, e.g. the TypeHierarchyResolver?
Concerning the tests, you're right that they should test the type manager on its own, with dummy data

Ah, seems like there are some more broken parts now, possibly caused by the commits in this PR:
java.lang.IndexOutOfBoundsException: Index 1 out of bounds for length 1
	at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64)
	at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70)
	at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248)
	at java.base/java.util.Objects.checkIndex(Objects.java:372)
	at java.base/java.util.ArrayList.get(ArrayList.java:458)
	at de.fraunhofer.aisec.cpg.graph.type.TypeParser.createFrom(TypeParser.java:715)
	at de.fraunhofer.aisec.cpg.frontends.cpp.DeclarationListHandler.handleSimpleDeclaration(DeclarationListHandler.java:71)
	at de.fraunhofer.aisec.cpg.frontends.cpp.DeclarationListHandler.lambda$new$0(DeclarationListHandler.java:52)
	at de.fraunhofer.aisec.cpg.frontends.Handler.handle(Handler.java:112)
	at de.fraunhofer.aisec.cpg.frontends.cpp.StatementHandler.handleDeclarationStatement(StatementHandler.java:267)
	at de.fraunhofer.aisec.cpg.frontends.cpp.StatementHandler.lambda$new$2(StatementHandler.java:53)
	at de.fraunhofer.aisec.cpg.frontends.Handler.handle(Handler.java:112)
	at de.fraunhofer.aisec.cpg.frontends.cpp.StatementHandler.handleCompoundStatement(StatementHandler.java:289)
	at de.fraunhofer.aisec.cpg.frontends.cpp.StatementHandler.lambda$new$0(StatementHandler.java:49)
	at de.fraunhofer.aisec.cpg.frontends.Handler.handle(Handler.java:112)
	at de.fraunhofer.aisec.cpg.frontends.cpp.StatementHandler.handleCatchHandler(StatementHandler.java:105)
	...

@Masrepus This is thrown when running RealBotanTest.testArsenic().

That looks like a problem in the type parsing algorithm, @vfsrfs will know more about this I guess.
What was the String parsed there?

That looks like a problem in the type parsing algorithm, @vfsrfs will know more about this I guess.
What was the String parsed there?

Empty string.

Empty string or does it contain spaces? If it's the latter, I think the problem lies here, it is only checked whether the String has length 0 but not whether it only consists of whitespaces: https://github.com/Fraunhofer-AISEC/cpg/blob/ff3dd6d87437c2a2995f7a9a9c566be03041395d/src/main/java/de/fraunhofer/aisec/cpg/graph/type/TypeParser.java#L666-L669

Empty string or does it contain spaces? If it's the latter, I think the problem lies here, it is only checked whether the String has length 0 but not whether it only consists of whitespaces:

Yes, that was one problem. It's fixed now.
Another problem is the type string const which comes from the source line const auto error = QString{e.what()};.

"Fixed" also that problem. What is the expected behavior of "auto" types? Seems like currently they are not supported. This PR now bails with an UnknownType. Is that intended?
Possibly related to issue #158

I would say unknown is correct, as the behavior is the same as a var in Java -> The type comes from the right hand side of the assignment and is thus correctly propagated if the left hand side is of type unknown

Yes, right. I just found this piece:
    if (finalType.getTypeName().equals("auto") || (type.contains("auto") && !primitiveType)) {
      // In C++17 if auto keyword is used the compiler infers the type automatically, hence we
      // are not able to find out, which type this should be, it will be resolved due to
      // dataflow
      return UnknownType.getUnknownType();
    }

Good, for the moment this PR should do the job. @konradweiss  would you merge it?


Feature Request: Delay Off

Solution
Is there a way to DelayOff a Bot so the ‘on’ state turns ‘off’ after a select period of time?
Problem
I have a Bot on my Coffee Machine, and when it turns on by my SwitchBot, the Machine stays ‘on’ for 9 minutes, and I’d like to keep it on so when someone activates it in Homekit or via Siri, the Coffee Machine stays ‘on’ instead of accidentally getting turned off.

try changing your bot's "mode" from "press" to "switch" in the homebridge config. The default behavior is a "momentary" stateless switch that turns itself off after a few minutes without working the bot, but when I changed this mode in hombridge I was able to have it stay in sync with my coffee maker and then I could also make an auto-off automation (and say off to Siri and have it work), now that the bot acts as a "stateful" switch. I hope this helps you, as it's not very clear in the documentation. If it ever gets out of sync because someone hit the physical button or whatever just work it in the switchbot app until it's back in sync. Good luck!
This is how mine is configured to be stateful...
.         {             "name": "SwitchBot",             "credentials": {                 "openToken": "my-token",                 "notice": "Keep your token a secret!"             },             "options": {                 "devices": [                     {                         "deviceId": "DA07E0740D6C",                         "configDeviceType": "Bot",                         "bot": {                             "mode": "switch",                             "deviceType": "switch"                         }                     }                 ]             },             "platform": "SwitchBot",             "_bridge": {                 "username": "00:00:00:00:00:00",                 "port": 38561             }
Good luck!


pip install pandas_talib not working

Here is the log:
$pip install pandas_talib
Collecting pandas-talib
  Could not find a version that satisfies the requirement pandas-talib (from versions: )
No matching distribution found for pandas-talib

PyPi version was published. https://pypi.python.org/pypi/pandas_talib/0.0.1
I don't know what is going on.
Anyway as it's a "work in progress", I suggest to git clone and run
python setup.py install

An other option is to
sudo pip install git+https://github.com/femtotrader/pandas_talib.git

also for me pip install pandas_talib is not working!!

Seems threre is only metadata, you need to upload the source tarball generated with python setup.py sdist , or just run  python setup.py sdist upload  .


Make NodeHandle a const reference

The classes already make a copy of the NodeHandle so this change only
make the interface more strict. It should not affect the external
behavior of this class.

Ping

@AndyZe does this make sense to you?

Hey thank you for the reply. I'm trying to remember why I wanted this change, but I'm no longer working on that project so I don't need this change anymore.
I think I noticed that the signature of getNamespace is const, so that means that we can use a const reference and still do al the things we want.
const std::string& getNamespace() const { return namespace_; }

First, const methods can always be called, no matter the object is const or not, so this won't cause problems for users of the method (ie. subclasses, since the method is protected).
As @Rayman points out, the ros::NodeHandle class API declares getNamespace() a const member function, and the API looks pretty consistent about doing that for most other methods (searchParam() and getParam(), also used in this implementation, are also const functions).
  I'm a little concerned that as soon as we merge this, someone will report problems in their subclass that interacts with other ROS nodes!  However, I can't actually think up a use case for doing that; my own use case certainly doesn't.
I'm OK with merging it, and if someone reports a problem later, it would be easy to back out.
@Rayman Would you mind rebasing onto the latest melodic-devel branch to get a passing CI run?  Thanks for the PR!

@zultron, thanks for the explanation. I've rebased onto upstream/melodic-devel

I'm a little concerned that as soon as we merge this, someone will report problems in their subclass that interacts with other ROS nodes!

...Thinking about it again, there's no reason a subclass can't declare a constructor passing nh as non-const, which would circumvent this worry altogether.
Thanks @Rayman for the rebase.  Tests pass!


active tab after closing one

Hi,
I'm not sure if I'm doing this right but I have a question.
After I close a tab, the dockpanelsuite always shows me the first tab in the row.
I would rather have it remembered the previous selected tab and select that one again.
I saw some stuff regarding this in the focusmanager but I can't get it to work.

Can you tell me which version of DPS you are using? I tried to reproduce this with the default sample we ship, by creating a series of document tabs, and closing them. It seems to me that after closing one tab, it always switches to the previous tab.

Hi,
Thank you for your answer, I am using V2.9, downloaded the source from githug
I tried the samples and they indeed work perfect, so I did some more testing. and what I found out was that it only fails when I have multiple tabs with activeX control on them.
for forms with activeX controls it's also not allowed to change the MDIParent so I made an escape for that. however without this escape the correct tab won't get selected. So I think there is something more to those activeX controls which I have to check out.
the hotfix I wrote for Active X controls changing the MDIClient is a little bit ugly and in
DockContentHandler
I will past it here if someone needs it, but it not open enough to be included in the source
,`   private void SetPane(DockPane pane)
{
        System.Windows.Forms.Form f2 = new System.Windows.Forms.Form();
        foreach (Control ctrl in Form.Controls)
        {

            if (ctrl.GetType().ToString() == "dRemote.Connection.InterfaceControl")
            {
                ctrl.Parent = f2;
            }

        }

        if (pane != null && pane.DockState == DockState.Document && DockPanel.DocumentStyle == DocumentStyle.DockingMdi)
        {

            if (Form.Parent is DockPane)
                SetParent(null);

            if (Form.MdiParent != DockPanel.ParentForm)
            {
                FlagClipWindow = true;
                Form.MdiParent = DockPanel.ParentForm;
            }
        }
        else
        {
            FlagClipWindow = true;
            if (Form.MdiParent != null)
                Form.MdiParent = null;
            if (Form.TopLevel)
                Form.TopLevel = false;
            SetParent(pane);
        }
        foreach (Control ctrl in f2.Controls)
        {

            ctrl.Dock = DockStyle.Fill;
            ctrl.Parent = Form;
        }
    }`

Thanks for the extra info. Will try to further investigate.

There is another commit that tried to address this issue,
https://github.com/jcbarton/dockpanelsuite/commit/0c2efb676ef55b763a65f829b47a13f8161670e0


Attachment button not working

When I click the attachment button, nothing happens so cannot attach file.

can i work on this issue


K-th Permutation Sequence

🚀 Feature
The set [1, 2, 3, ..., n] contains a total of n! unique permutations.
By listing and labeling all of the permutations in order, we get the following sequence for n = 3:
"123"
"132"
"213"
"231"
"312"
"321"
Given n and k, return the kth permutation sequence.
Have you read the Contributing Guidelines on Pull Requests?
Yes
Motivation
I love to solve questions based on backtracking and recursion, while I was solving this problem I learned many new things related to maths and backtracking and felt that this problem was very good and interesting for problem-solving enthusiasts.
Pitch
As we all know, backtracking is one of the most important topics in DSA and problem solving using computers and a very important brute force way of approaching the problem. While solving a backtracking problem one should understand the importance of forming a recurrence relation and using them to solve the problem. I hope this K-th permutation problem helps many to understand the correct way of approaching a problem. I would like to contribute my approach to this problem using the loop approach whose time complexity will be O(n^2), in c++.
Hey, @bhav09 and @HarshCasper  please look into this issue and please assign this to me under GSSOC2021.
Thank you.

/assign


HTTP::Client repeated usage results in compressed response body, but only on server keep alive timeout

Bug Report
❯ crystal -v
Crystal 1.2.1 [4e6c0f26e] (2021-10-21)

LLVM: 10.0.0
Default target: x86_64-unknown-linux-gnu

(confimed not working on 1.2.0 too)
Short version:
Using HTTP::Client instance multiple times with big enough interval between the calls to exec against gzip-enabled server causes the response body to be still compressed, but only if the client got disconnected by the server (e.g. because of keepalive timeout).
Repro case at the end of the issue.
Full story:
I have a synchronization project which uses two instances of HTTP::Client to execute requests to two backend servers.
Sometimes (but not always, only on specific conditions) the program crashes with this:
2021-10-24T07:12:19.025065Z  DEBUG - http.client: Performing request -- method: "GET", host: "redacted.local", port: 10443, resource: "/api/redacted"
2021-10-24T07:12:19.109426Z  DEBUG - redacted.api.http_client: got 200, 0 cookies
Unhandled exception: Unexpected char '' at line 1, column 1 (JSON::ParseException)
  from /usr/share/crystal/src/json/lexer.cr:331:7 in 'raise'
  from /usr/share/crystal/src/json/lexer.cr:327:5 in 'unexpected_char'
  from /usr/share/crystal/src/json/lexer.cr:326:11 in 'unexpected_char'

The exception is misleading, because the real response.body does contain data, but in what looks like a garbage (response.body.size is around 100kB of data in this case).
The issue happened very, VERY randomly, but always in the same place for specific test build. Reorganizing the code caused it to pop up at other places.
After hours of digging and testing various scenarios I found out that the response is still gzip compressed and that it occurs only if I have a long period of time between I talk to the same server again.
(I.e. requests in rapid succession were not a problem. The same URL then crashed 10 seconds later.)
If I disable the compression (using client.compress = false or `headers["Accept-Encoding"] = "identity"), everything works normally and survives the disconnect.
So the problem is compression + keep alive timeout = compressed (i.e. garbage) response body is returned.
Don't know if chunked response makes things even worse or not.
I see in the crystal source src/http/client.cr that you are attempting to reconnect io on server disconnected and you are parsing the request again.
(I cannot see any reason why the server should not decompress the data on the second try, but maybe I'm missing something.)

  # crystal/src/http/client.cr
  private def exec_internal(request)
    begin
      response = exec_internal_single(request)
    rescue IO::Error
      response = nil
    end
    return handle_response(response) if response

    # Server probably closed the connection, so retry one
    close
    request.body.try &.rewind
    response = exec_internal_single(request)
    return handle_response(response) if response

    raise IO::EOFError.new("Unexpected end of http response")
  end

Somehow something gets broken in the second case.
I saw that you remove "Content-Encoding" header from the response once the body is decompressed in HTTP.parse_headers_and_body.
But in the second (in my case, crashing) case, the response headers still contain "Content-Encoding: gzip" header.
The decompression is never called in the case of reconnect.
Workaround for this is to use single shot requests OR disable compression. (But my program makes thousands of requests (batch sync) and both are a bad solution.)
Fully reproducible example:
a) start a web server with small keepalive timeout and gzip compression enabled, like so:

create file default.conf in current directory with contents:

echo "server { listen 8081 default_server; keepalive_timeout 3; gzip on; gzip_vary on; gzip_types text/plain; gzip_min_length 1; default_type text/plain; location / { return 200 'whatever'; } }" > default.conf

run the server in a docker container (or standalone, as you like):

docker run --rm -ti -p 8081:8081 -v $PWD/default.conf:/etc/nginx/conf.d/default.conf:ro nginx:alpine

b) run this against it:
require "http"
require "uri"

typeof(HTTP::Headers)

# this monkeypatch watches on deletes
# and confirms that the second time, the delete is not called and the response is not decompressed
struct HTTP::Headers
  def delete(key : String)
    STDERR.puts "HTTP::Headers#delete(#{key}) (value: #{@hash[wrap(key)]?.inspect})"
    values = @hash.delete wrap(key)
    values ? concat(values) : nil
  end
end

def get(client, path) : Nil
  print "New request ", "#" * 50
  puts
  # headers = HTTP::Headers.new
  # headers["Accept"] = "text/plain"
  request = HTTP::Request.new("GET", path)
  # request.headers = headers
  response = client.exec(request)
  puts "Response status: #{response.status.inspect}"
  puts "Response headers: #{response.headers.inspect}"
  puts "Response body: #{response.body.inspect}"
end

uri = URI.parse("http://localhost:8081")
client = HTTP::Client.new(uri)
client.before_request do |request|
  # on the second run, this is run twice - meaning the request got sent again
  puts "Request headers: #{request.headers.inspect}"
end

# response should be okay:
get client, "/"
sleep 5 # this value must be larger than the keepalive_timeout

# response should be garbage:
get client, "/"
sleep 5

# response should be garbage:
get client, "/"

If everything goes according to plan, this should be your result:
❯ crystal run testing.cr
New request ##################################################
Request headers: HTTP::Headers{"Host" => "localhost:8081", "User-Agent" => "Crystal", "Accept-Encoding" => "gzip, deflate"}
HTTP::Headers#delete(Content-Encoding) (value: "gzip")
HTTP::Headers#delete(Content-Length) (value: nil)
Response status: OK
Response headers: HTTP::Headers{"Server" => "nginx/1.17.1", "Date" => "Sun, 24 Oct 2021 08:06:10 GMT", "Content-Type" => "text/plain", "Transfer-Encoding" => "chunked", "Connection" => "keep-alive", "Vary" => "Accept-Encoding"}
Response body: "whatever"
New request ##################################################
Request headers: HTTP::Headers{"Host" => "localhost:8081", "User-Agent" => "Crystal", "Accept-Encoding" => "gzip, deflate"}
Request headers: HTTP::Headers{"Host" => "localhost:8081", "User-Agent" => "Crystal", "Accept-Encoding" => "gzip, deflate"}
Response status: OK
Response headers: HTTP::Headers{"Server" => "nginx/1.17.1", "Date" => "Sun, 24 Oct 2021 08:06:15 GMT", "Content-Type" => "text/plain", "Transfer-Encoding" => "chunked", "Connection" => "keep-alive", "Vary" => "Accept-Encoding", "Content-Encoding" => "gzip"}
Response body: "\u001F\x8B\b\u0000\u0000\u0000\u0000\u0000\u0000\u0003+\xCFH,I-K-\u0002\u0000\xB3C\u0011N\b\u0000\u0000\u0000"
New request ##################################################
Request headers: HTTP::Headers{"Host" => "localhost:8081", "User-Agent" => "Crystal", "Accept-Encoding" => "gzip, deflate"}
Request headers: HTTP::Headers{"Host" => "localhost:8081", "User-Agent" => "Crystal", "Accept-Encoding" => "gzip, deflate"}
Response status: OK
Response headers: HTTP::Headers{"Server" => "nginx/1.17.1", "Date" => "Sun, 24 Oct 2021 08:06:20 GMT", "Content-Type" => "text/plain", "Transfer-Encoding" => "chunked", "Connection" => "keep-alive", "Vary" => "Accept-Encoding", "Content-Encoding" => "gzip"}
Response body: "\u001F\x8B\b\u0000\u0000\u0000\u0000\u0000\u0000\u0003+\xCFH,I-K-\u0002\u0000\xB3C\u0011N\b\u0000\u0000\u0000"

Testing yesterday with Crystal 1.5 I get this pretty reliably after a few hundred API calls using awscr-s3. I also see it in other frequent API calls. I have kludged various things to check for the gzip magic number and uncompress if they see it. But it would be really nice if you'd get this one fixed.


Libarchive issues

Subfile in certain RAR cannot be read
https://github.com/libarchive/libarchive/issues/373

Waiting for the next version
https://github.com/nika-begiashvili/libarchivejs/pull/52


promisifyRoutine should create unique ids for dispatched actions

Let me start by saying I really appreciate your work on this library. It helped us reduce boilerplate, enforce clear lifecycle for async actions, and made it easy to integrate with redux-form and other libraries that deal with promises.
The problem with the promisifyRoutine/routinePromiseWatcherSaga combo is they fail to handle the case when a routine is dispatched again before the previous one is fulfilled. As soon as the first SUCCESS comes in, all the pending promises are resolved.
The solution would be to give each ROUTINE_PROMISE_ACTION a unique id. Would you accept a PR to this effect?

Hi!
I guess I ran into exactly this problem. I fire up a couple of routines and each takes some time to fulfil and because of that everything is getting resolved with the first fulfilment.
Is there a solution for that in the pipeline or some existing workaround?
Thanks!

I found a workaround for my case but just realised that if the first routine is failing that all successive routines are failing too.
Same goes for a failing routine after a successful one. It will get resolved with the success method.

@ancestorak You wrote that you have a solution. Is it difficult to implement? I have to admit that I have no clue why it is failing, but maybe with a push in the right direction, I can be of help.

Will try to setup something to show the problem.

Sorry, it took a bit longer than expected.
I hope I can explain it with the following piece of code:
async getUser(request) {
  return new Promise(resolve =>
    usersRoutinePromiseCreator(
      { type: REQUEST_USER, payload: request },
      store.dispatch,
    ).then(
      successPayload => resolve(successPayload),
      failurePayload => resolve(failurePayload),
    ),
  )
}

This method is working as expected except for when I do something like this:
getUser('A').then(console.log);
getUser('B').then(console.log);
getUser('C').then(console.log);

The first getUser call returns the correct user, but every following call thereafter is then resolved with the payload of the first call.
In the Redux store, I have all three users correctly, so it has to do with how the usersRoutinePromiseCreator is getting resolved.
What would work is something like this:
getUser('A').then(console.log);
setTimeout(() => {getUser('B').then(console.log)}, 1000);
setTimeout(() => {getUser('C').then(console.log)}, 1000);

This would return me all three users, but sadly I can't use this  in my case.
I hope this explains the problem.
If not, please let me know!

Ok, thank you! I'm on vacations right now, will take a closer look soon

I spent some time on the task and found that routines (in it's current implementation) could not help you... The main problem is that we have no relations between trigger action and all following actions (request, success / failure and fulfill) so we can't distinct which success/failure action should resolve/reject our promise.
As a first attempt, I tried to update promisifyRoutine and handleRoutinePromiseAction. I added internal id to action' meta data and instead of just take(routine.SUCCESS)/take(routine.FAILURE) I started to use more complex function with check for id equality. But this internal id should be passed to routine.success()/routine.failure(), which are the part of your application code (not redux-saga-routines library), so I need somehow to pass this id to your code, but there is no way to do that :) (since routine is just an action creator, so the result of routine.trigger() is an action object, and promisifyRoutine is just a wrapper, which returns Promise)
As a second attempt, I tried to create new structure smartRoutine. The main idea of smartRoutine is to have shared internal id between trigger and all following lifecycle action creators. But again I faced the same problem: you have to know internal id and pass this id explicitly in your code to tell the library which exactly routine-based promise you are going to resolve or reject...
And now I keep in mind other way to solve the problem: create something like routine factory:
const getUserRoutineFactory = createRoutineFactory('GET_USER');

const getUserARoutine = getUserRoutineFactory('A');
const getUserAPromise = promisifyRoutine(getUserARoutine);

const getUserB = getUserRoutineFactory('B');
const getUserBPromise = promisifyRoutine(getUserBRoutine);

But, I see no reason to implement it inside the library since it may be easily implemented in your code to cover your own use case.
PS. It is very simple to refactor your code to solve the problem, I'm not sure why you are using promises in your code explicitly, I see no reason to do that.

PS. It is very simple to refactor your code to solve the problem, I'm not sure why you are using promises in your code explicitly, I see no reason to do that.

I wouldn't say no to a hint how to refactor this ;) To use promises was the first thing which came to my mind on how to solve my use case, but I don't need to use them if I don't have to.
Thank you very much for looking into this!

Is your getUser function a part of some component? Why it should return a promise? Do you really need N promises for N requests instead or you may be okay with just one for all of them?

Yes, the function is part of some kind of API where you can request data over a socket connection. Because multiple asynchronous requests can happen I thought it is best to return those requests via a promise. After thinking a bit about it I guess I need N promises for N requests.

Is it a part of API of the component? How are you using it? I think there is a simple solution for your case but I can't suggest something without an idea what you are going to achieve....

The workflow is that if you instantiate my class, you get a socket connection and then you are able to request data from the backend via REST parameters over this socket connection.
Every time you request something, the data is stored in the Redux store, but I also need to return the result.
This is why I thought the promise solution would work nicely. You fire up your request action and just wait for the success action to return in a promise.
I stumbled over redux-listen with which you can listen to dispatched actions, and with that, I managed to resolve my use case, but if you have a simpler solution in mind, I would be very happy to learn about it. I generally don't like the idea to throw library after library at a problem to solve it if you are able to get it done more simply.

redux-saga-routines and especially promisifying routines are designed for usage inside the components. You described the case that is not related to the components world (view) but to the side-effects (sagas). So it is better to achieve your goal in the saga. You may use promises, you may use routines, but you do not need to depend on them 100%.
IMO, API part that keeps socket connection, makes requests and gets responses from server may be implemented without routines and sagas at all. It is like an axios instance, that works using sockets instead of XHR or fetch. It is just a network layer not related to your app logic, so keep it as simple as possible. You may reuse it in your other apps (using other stack of technologies).
Let's assume that you created your API library (network layer) and have something like api.request('/my/app/endpoint', { some: 'data' }) => Promise. Now your are able to use it inside your sagas and store requested data in the redux-store, just like you are using axios or any other library.
And I see no reason to use redux-listen since you are using redux-saga, because there is a take effect in 'redux-saga' that does exactly the same that redux-listen does.

No changes will be implemented in library, so issue may be closed.


Utilize gas estimation in client libraries

Why
Relates to #39
Development
Go
This appears fairly straight forward. I can test with a base Go script against our Vigil contract.
package main

import (
	"context"
	"crypto/ecdsa"
	"fmt"
	"log"
	"math/big"

	"github.com/aefhm/vigil" // or however you do local modules
	"github.com/ethereum/go-ethereum/accounts/abi/bind"
	"github.com/ethereum/go-ethereum/crypto"
	"github.com/ethereum/go-ethereum/ethclient"
	sapphire "github.com/oasisprotocol/sapphire-paratime/clients/go"
)

var SapphireChainID = big.NewInt(0x5aff)

func main() {
	c, err := ethclient.Dial("https://testnet.sapphire.oasis.dev")
	if err != nil {
		log.Fatal(err)
	}

	privateKey, err := crypto.HexToECDSA("")
	if err != nil {
		log.Fatal(err)
	}

	publicKey := privateKey.Public()
	publicKeyECDSA, ok := publicKey.(*ecdsa.PublicKey)
	if !ok {
		log.Fatal("error casting public key to ECDSA")
	}

	var client *sapphire.WrappedBackend
	client, err = sapphire.WrapClient(*c, func(digest [32]byte) ([]byte, error) { return crypto.Sign(digest[:], privateKey) })

	if err != nil {
		log.Fatal(err)
	}

	fromAddress := crypto.PubkeyToAddress(*publicKeyECDSA)
	nonce, err := client.PendingNonceAt(context.Background(), fromAddress)

	gasPrice, err := client.SuggestGasPrice(context.Background())
	if err != nil {
		log.Fatal(err)
	}

	auth, _ := bind.NewKeyedTransactorWithChainID(privateKey, SapphireChainID)
	auth.Nonce = big.NewInt(int64(nonce))
	auth.Value = big.NewInt(0) // in wei
	auth.GasLimit = uint64(0)  // in units
	auth.GasPrice = gasPrice

	if err != nil {
		log.Fatal(err)
	}

	address, tx, _, err := vigil.DeployVigil(auth, client)
	if err != nil {
		log.Fatal(err)
	}

	fmt.Println(address.Hex())
	fmt.Println(tx.Hash().Hex())

        // create secret
        // reuse address or wait
	vigil, err := vigil.NewVigil(address, client)

	if err != nil {
		log.Fatalf("Failed to instantiate Vigil contract: %v", err)
	}

	val := []byte("123")
	transactOpts := client.Transactor(fromAddress)
	transaction, err := vigil.CreateSecret(transactOpts, "age", big.NewInt(5), val)

	if err != nil {
		log.Fatalf("Failed to create secret: %v", err)
	}

	fmt.Println(transaction.Data())
}

JS
I'm testing with Vigil.sol and run-vigil.ts
TODO

[x] Inform community

Hmm, looks Truffle integration gas estimates are off.
estimate: 159564,
  error: Error: The transaction receipt didn't contain a contract address.
      at /Users/xi/oasis/sapphire-paratime/node_modules/.pnpm/truffle@5.11.0/node_modules/truffle/build/webpack:/packages/deployer/src/deployment.js:302:1
      at processTicksAndRejections (node:internal/process/task_queues:96:5) {
    receipt: {
      blockHash: '0xe02b3d5f3476d46ffb44ebc536f876f8996702fb5919efca4784e8ab295e7192',
      blockNumber: 99,
      contractAddress: null,
      cumulativeGasUsed: 199455,
      from: '0xa19875987799b8b52150E2a718F338FA36d8981d',
      gasUsed: 199455,
      logs: [],
      logsBloom: '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
      status: false,
      to: null,
      transactionHash: '0x040881a41eeba57a98466e7ff99611d056fb41df8f801515d695116efca722ba',
      transactionIndex: 0,
      type: '0x0'
    },

@aefhm Lets remove Truffle support, that will unblock this :D

@aefhm Lets remove Truffle support, that will unblock this :D
https://consensys.io/blog/consensys-announces-the-sunset-of-truffle-and-ganache-and-new-hardhat

Starting on December 20, 2023, Truffle and Ganache codebases will remain available as public archives. This gives developers around 90 days to migrate to HardHat and other solutions.

I'm game. Will remove Truffle in a separate PR/issue and inform the community.

Relates to https://github.com/oasisprotocol/docs/pull/547

Is gas estimation possible, if we don't sign the gas estimation call? Most of estimates will be off, if the contract checks msg.sender credentials.

Task linked: CU-86785j9hu Utilize gateway gas estimation in Sapphire Client Library

Task linked: CU-86785j9hu Utilize gateway gas estimation in Sapphire Client Library

Is gas estimation possible, if we don't sign the gas estimation call? Most of estimates will be off, if the contract checks msg.sender credentials.

I believe so. I tried testing with some
require(
    msg.sender == _metas[index].creator,
    "only for creator"
);

Gas estimation is possible without signed queries, it's just msg.sender will be address(0).
So if the code relies on signed queries, gas estimation will be wrong.
If the code doesn't rely on signed queries, then gas estimation will be OK.

Gas estimation is possible without signed queries, it's just msg.sender will be address(0).

👍

So if the code relies on signed queries, gas estimation will be wrong.

Wrong in the safe way though? https://github.com/oasisprotocol/sapphire-paratime/issues/39#issuecomment-1597506526

If the code doesn't rely on signed queries, then gas estimation will be OK.

👌
I believe we are ~okay turning gas estimation on with this caveat?


[ci skip] adding user @jorisv

Hi! This is the friendly automated conda-forge-webservice.
I've added user @jorisv as instructed in #3.
Merge this PR to add the user. Please do not rerender this PR or change it in any way. It has [ci skip] in the commit message to avoid pushing a new build and so the build configuration in the feedstock should not be changed.
Please contact conda-forge/core to have this PR merged, if the maintainer is unresponsive.
Fixes #3

Welcome @jorisv !


Tabs and split panels like in VSC

At the moment we have only two main panels + navigation: navigation on the left, and the panel with the editor (middle) and the panel for displaying the documentation (and visualiser) on the right. This is enough for now because we don't have the ability to add plugins (aka modules) to our studio. However the current solution will not be easy to use new things and does not give a really big freedom for the user (in the future, when we will add more stuff to the Studio).
A very good solution would be to use the idea like in VSC - we have navigation on the left, which opens our content on the right in the form of tabs and split panels, where we can open two parallel panels, for example editor + html preview or 2 editors.
Each panel would have its own tabs and the content in the navigation would change depending on where the user focuses his/her attention, i.e. in which editor he/she changes the value - just like in the VSC. We can then, for example, add a context for panel/tab like in our CLI, which would specify which specification to render to html etc.
What do you think?

we have navigation on the left, which opens our content on the right in the form of tabs and split panels, where we can open two parallel panels, for example editor + html preview or 2 editors.

So to verify you are talking about the ability to click on the navigation items, which will launch new tabs. So if I click on the editor multiple times I could have multiple editors going on at once, with different AsyncAPI files?
Sounds interesting, I'm trying to vision what features this will allow us to implement? I imagine it would complicate the codebase a fair bit with dynamic panels and tabs (as many as you want) and a developer experince to see things like docs + visualisation stuff per file, (not sure how that would work).

Also, I know this was generated from the idea of #158 , I wonder if we can deliver the value of #158 without waiting for this panel/tab solution? Thoughts?

So to verify you are talking about the ability to click on the navigation items, which will launch new tabs. So if I click on the editor multiple times I could have multiple editors going on at once, with different AsyncAPI files?

Yes :) I have idea to support also filesystem (with cli connection) to show files in the given folder and people will be able to have multiple tabs with multiple files like in normal VSC.

Sounds interesting, I'm trying to vision what features this will allow us to implement? I imagine it would complicate the codebase a fair bit with dynamic panels and tabs (as many as you want) and a developer experince to see things like docs + visualisation stuff per file, (not sure how that would work).

I don't think so that it will introduce more complexity to our codebase, because we should go with that with some state shape to know what exactly we show and where - how many panels with which panels. I will make some POC to see my idea.

and a developer experince to see things like docs + visualisation stuff per file, (not sure how that would work).

This is the plan to make it possible :)

Also, I know this was generated from the idea of #158 , I wonder if we can deliver the value of #158 without waiting for this panel/tab solution? Thoughts?

The studio in on development process, so we can make "breaking" changes. We can go with your solution (but not as new page, but content which will be rendered in place of editor and preview - next to navigation) and then if we have panels and tabs then we will change your solution to tab :) Do you agree or do you have another solution?

Thanks @magicmatatjahu .

The studio in on development process, so we can make "breaking" changes. We can go with your solution (but not as new page, but content which will be rendered in place of editor and preview - next to navigation) and then if we have panels and tabs then we will change your solution to tab :) Do you agree or do you have another solution?

Yeah I think that sounds good to me, I made changes over on #147 , if you wanted to take a look, let me know what you think? I think I understand what you meant, when pressing the new icon it will take over the main content section.

As we now have https://github.com/asyncapi/studio/issues/634 we can close this.


Deal with Emscripten SDK older version (Example :  Version sdk-fastcomp-1.38.11-64bit)

VCPKG fails to install Emscripten SDK older version (older than 2.0.32).
it does the right thing when is about to consume a newer version as it fetches CMake module from the upstream/cmake/Module/Platform directory.
but older versions use differents directories, for an example sdk-fastcomp-1.38.11-64bit uses emscripten/1.38.11  .
That ones cause VCKPG to find and install CMake module...
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Proposed solution
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

Can you provide a reproduce step?
Thanks.

We don't have enough information to solve this issue, unfortunately; if you have any more information to help us solve this, please reopen!


weave error

In pinpoint 2.x version, the jdk5 class(majorVersion =48) is used in the monitored system. When the weave method is used, the following error is reported, but there is no problem with jdk6+ or higher.  In pinpoint1.7X version, this problem did not appear, this is an upgrade bug??
java.lang.IllegalArgumentException: Class versions V1_5 or less must use F_NEW frames.
at org.objectweb.asm.MethodWriter.visitFrame(MethodWriter.java:779)
at org.objectweb.asm.tree.FrameNode.accept(FrameNode.java:134)
at org.objectweb.asm.tree.InsnList.accept(InsnList.java:144)
at org.objectweb.asm.tree.MethodNode.accept(MethodNode.java:751)
at org.objectweb.asm.tree.MethodNode.accept(MethodNode.java:649)
at org.objectweb.asm.tree.ClassNode.accept(ClassNode.java:465)
at com.navercorp.pinpoint.profiler.instrument.ASMClassNodeAdapter.toByteArray(ASMClassNodeAdapter.java:574)
at com.navercorp.pinpoint.profiler.instrument.ASMClass.toBytecode(ASMClass.java:800)

@Rwangyang
It seems to be an error caused by the ASM library.
Check out ASM.


Spelling of license

Hello, thanks for the cool project :trophy:
When I ran my project I noticed what I thought was a typo: "licence". I was going to submit a PR but since I found 50+ spelling occurrences I did a little research it appears this is the British spelling (along with Canada, New Zealand and some other countries) but not the common spelling used on GitHub, including forkability's own LICENSE file.  I would suggest changing it but of course it's up to you!

Hello, and thanks!
Good spot! Consistency is probably preferable in this case, I agree. Although it'd be cool to reflect what the repo contains in case it does use the British spelling.
I'll try and get round to that in a few hours, I have some appointments but if you get there sooner feel free to raise a PR. In case you haven't already been looking into it you wanna look in lintFiles.js.
Cheers :)

I have changed the spelling from one correct variety to another correct variety :+1:


Investigate deck inclusion modification performance

Addressing this further in https://github.com/tonywok/realmsapp/pull/189

Seeing inclusion updates < 200ms for now
Closing this issue, but furthering this work by decoupling records from all view components. This should help with the plugin architecture.


Manifest dir

Create directory for example sample multiplex and contrast files, removing them from config dir

resolved with commit 2205812a443215dd387b12d44da02912112efd45

resolved with commit 2205812a443215dd387b12d44da02912112efd45


[VS Code] Sharing Server: Service not available: serverSharing

Error:
Sharing Server: Service not available: serverSharing
Steps to Reproduce:

Version Data

extensionName
VSLS

extensionVersion
0.3.954

protocolVersion
2.2

applicationName
VSCode

applicationVersion
1.27.2

platformName
Linux

platformVersion
4.15.0-39-generic

Thanks for reporting the issue, can you please attach liveshare logs to help us diagnose the issue. You can get the logs by running "Export liveshare logs" from VSCode command palette.

I also encountered this issue, I believe it was because new guests are trying to connect in, but the session is no longer valid, but the extension still shows it as 'valid'. I restarted vscode and the extension reseted the view and it had the option to create new collaboration, which generated a new link and all was fine again.
tldr; restart vscode, create a new session link.


[regression] no language support for snippet files

Open any VSCode snippet file
{
	"snippetName": {
		"scope": "scope",
		"prefix": "prefix",
		"body": "snippet ${1:abc}",
		"description": "description"
	}
}

expected:
all language features to be available including:
formating, intellisense, breadcrumbs, schema, squiggle errors, hovers etc
actual:
nothing
other than basic word suggestions and syntax highlighting
cause:
when the snippets language was added in 1.82.0
it was not added to the list of json extensions inside json-language-features
https://github.com/microsoft/vscode/pull/185017
https://github.com/microsoft/vscode/issues/189176

tldr: add snippets to json-language-features


url pattern compile with username containing plus

Userena allow username with email pattern so it should allow url pattern to compile with email containing plus symbol. And google also support that.

Coverage remained the same at 95.581% when pulling dcd40aa66a7e222cd217940d22ea95a94fd480a6 on meomap:email-with-plus-url into 2ad1826c090a822d0ca1500ad9c193ccc1cbda1f on bread-and-pepper:master.

Coverage remained the same at 95.581% when pulling 71d0630d9d4981c4e4d1fd5a94ca3b0e4e022bac on meomap:email-with-plus-url into 2ad1826c090a822d0ca1500ad9c193ccc1cbda1f on bread-and-pepper:master.

Thanks for your PR! The #535 was the reason of failures in CI and was stopping this PR from merging. Fortunately, it is finally resolved. Could you rebase your PR on current master so we can have it tested in Travis again?
When doing rebase you can also squash your changes in order to keep commit log more concise.

Coverage remained the same at 95.581% when pulling d9353251927231424766d8d84dcf50da6d8d3e03 on meomap:email-with-plus-url into dbad42cb790fe85bf62e9e2eb3cc61367bb11722 on bread-and-pepper:master.

@swistakm I rebased and squashed my commits


append TLS key entries into SSL key log file

This corrects an issue where a developer is unable to decrypt live TLS captures in Wireshark. Instead the user must take multiple steps to be able to view decrypted TLS application data, including saving a capture on disk and reloading the capture.
By appending rather than overwriting the TLS key log file entries, it is possible to configure Wireshark TLS (Pre)-Master-Secret log filename before the capture is started (pointing to and empty or existing file). Then, when a packet capture is started, decrypted data is available immediately. Further, if the capture is restarted, no keys are lost and no Wireshark reconfiguration is required.
Appending rather than overwriting TLS key files follows the technique used by openssl binary, Chrome and others. All executables are able to append to the same keylog file simultaneously, and Wireshark is able to decrypt all apps simultaneously.

Thanks. triggered running the CI checks.


Updates to accommodate move of api/config/mcp to api/mcp.

This is blocked on:https://github.com/istio/api/pull/569

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: ozevren
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

galley/OWNERS [ozevren]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: ayj, ozevren
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

galley/OWNERS [ayj,ozevren]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@ozevren: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-unit-tests.sh
ff7ff43247f8ac2fc2830030e1a568f9720cb7db
link
/test istio-unit-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@ozevren: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-unit-tests.sh
ff7ff43247f8ac2fc2830030e1a568f9720cb7db
link
/test istio-unit-tests

prow/istio-presubmit.sh
ff7ff43247f8ac2fc2830030e1a568f9720cb7db
link
/test istio-presubmit

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: ayj, ozevren, rshriram
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

galley/OWNERS [ayj,ozevren,rshriram]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

you have to update the dependencies (vendor stuff).

Yes, I am aware. I created this PR early since you asked for it in the previous one.

New changes are detected. LGTM label has been removed.

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: ayj, ozevren, rshriram
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [rshriram]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Updated with dependencies. I've also updated the PR description to reflect what is going on.
@hklai I've opened https://github.com/istio/istio/issues/6849, to track a work that needs to be done to revert some changes back and assigned to you.

Removed the comment about cobra/legal dependencies from PR description. After the linter has failed in the checkin gate, I ran depend.diff again, (which seems to have updated my local dep). Rerunning dep ensured pruned those dependencies again.

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: ayj, cmluciano, ozevren, rshriram
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [rshriram]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Changed index.html to Polymer 1.0 version

This will not work. Currently, the gh-pages branch is using Polymer 0.5. I suggest adding Polymer 1.0 as a one of the devDependencies to bower.json. I will then need to update the gh-pages branch with the latest changes from master, and then pull down Polymer 1.0 based on the updated bower.json.
Please verify that the docs page is working correctly before updating this pull request. Thanks!


Is it possible to change column width?

I have been wondering if it is even possible to change the collumn width? How can this be done?

Were you able to do this ?


Migrate callbacks to use schedule_update_ha_state

Description:
Migrates a bunch of callbacks to async / use schedule_update_ha_state.
See #4417
Related issue (if applicable): fixes #
Checklist:
If the code communicates with devices, web services, or third-party tools:

[ ] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[ ] New dependencies have been added to the REQUIREMENTS variable (example).
[ ] New dependencies are only imported inside functions that use them (example).
[ ] New dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[ ] New files were added to .coveragerc.

If the code does not interact with devices:

[x] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[x] Tests have been added to verify that the new code works.

LGME


Change port 3000

I'm trying in several ways to change port 3000, but to no avail, does anyone know how to do this?

Resolvi, só adicionar na frente do start a porta no meu caso 3010:
"scripts": {
"start": "PORT=3010 react-scripts start",

If your problem is solved, please close the ticket, thank you :pray:

If your problem is solved, please close the issue, thank you :pray:


//-style comments are mangled by the plugin

When using line comments, they get their newline stripped by the minification and they become an erroneous selector.
I was also not able to turn off minify with the plugin options. (config error)
I propose that minification be disabled until #26 lands, that will be much more useful and correct.

Why would we do something about it if starting line with // is incorrect in CSS?

Why would we do something about it if starting line with // is incorrect in CSS?

Because we allow it in styled-components. It's something that people did over and over, so we added support for it and basically cut out any line that contains //. We should remove those comments with the babel plugin too.

Fixing it will be tricky. I believe it should trim the code after the // unless // is inside quotes. And preserve code to the left of //. I think that the easiest fix would be to keep newline at the end of the line if it contains '//' and hope stylis will do the rest.
I hadn't looked into #26 yet. Hope it will give good enough size of the output, so we can replace minification with it once it's completed.

Stylis just supports it, so do you really need to strip those out?
On Tue, Feb 7, 2017, 4:38 PM Vladimir Danchenkov<EMAIL_ADDRESS>wrote:

Fixing it will be tricky. I believe it should trim the code after the //
unless // is inside quotes. And preserve code to the left of //. I think
that the easiest fix would be to keep newline at the end of the line if it
contains '//' and hope stylis will do the rest.
I hadn't looked into #26
https://github.com/styled-components/babel-plugin-styled-components/pull/26
yet. Hope it will give good enough size of the output, so we can replace
minification with it once it's completed.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/styled-components/babel-plugin-styled-components/issues/29#issuecomment-278037410,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AADWluAgCZkLXCR1eRI-6ey8wwyFpLNHks5raI_5gaJpZM4L5cVJ
.

any update on this ?


How to implement a microservices architecture using this aproach without Oauth?

I've heard about microservices using oauth2, but for me it's really hard to learn oauth2, I mean, I understood the Oauth2 architecture but in a theorical aproach, in practice it seems to be more dificult. A lot of configuration I think, maybe for huge project. It is enough for me a lot of configuratoin using spring security that I just learn basics before.
Why not configure this project as a common or generic project that you just have to import in your pom or gradle config?
So the developers wont have to care about how to implement JWT, just extend user entity or authority entity, and changes configuration about JWT in file, and provieed a datasource only.
Something like a "spring-boot-starter-jwt"

Hi @neonds!
I had the same idea for a "spring-boot-starter-jwt", but unfortunately I didn't find the time for that yet :/
But please take a look in the readme section for "Interesting projects". Perhaps it will help you ...
To be honest when I created this demo I didn't think of big microservice architectures. My intension was more like "OK, I have one REST based Spring Boot app here that I want to use with (maybe) an Angular client and I'd like to have security. How can I achieve that with JWT."

Can you please share one example "JWT with micro service architecture" ?
EX :  There will be two servers : Server-A and Server-B
Server-A will generate a token and Server-B will validate the token.

@KiranNaikwade nice idea, but unfortunately I don't have time for that. Maybe anyone else could do that?


modernize to match current node-cpp-skel

@GretaCB you've been doing a lot of work over at node-cpp-skel. I haven't had the chance to compare these two libs, but I think vtinfo could be updated to match your current work!
cc @springmeyer @millzpaugh @flippmoke

Great you are thinking about this @mapsam. Definitely agree. Want to share that node-cpp-skel is best used by forking the repo and adding your code. But of course this is not realistic for existing modules: what I've been doing so far is copying over the key build files. But this is tedious and it is too easy to have things break. One example: it is usually desirable to copy over the .travis.yml and completely replace the existing one. But this is not the case for the package.json (since the package.json for your repo needs to be customized to your module of course, while the .travis.yml does not. So bugs like this can happen: https://github.com/mapbox/route-annotator/pull/17#issuecomment-315214728.
I don't have a good solution to this. Only thing it raises for me is:

Skel could add docs about what to copy/make sure you get (would people read them?)
Maybe node-pre-gyp could be modified to read a separate config file (such that that config could be copied exactly) - this would solve the most common issue of things potentially getting out of sync.

This issue is possibly moot if we go forward with #19


IAB Meeting

Reach out to chair and see if AC can attend as onlookers (so probably without submitting a paper).

Reached out. Now waiting to hear back.

Answer:

A paper is helpful for us to understand where you're coming from, and it helps us to form a program for the workshop.
In some circumstances we can waive the necessity for a paper, but it's best to submit something; it doesn't have to be involved, as little as a paragraph or two could suffice.

Submissions are actually due today (June 3rd).

I will submit a one pager today.
—
Sumantro Das
E<EMAIL_ADDRESS>P:<PHONE_NUMBER>

On Jun 3, 2019, at 08:15, Tobie Langel<EMAIL_ADDRESS>wrote:
Answer:
A paper is helpful for us to understand where you're coming from, and it helps us to form a program for the workshop.
In some circumstances we can waive the necessity for a paper, but it's best to submit something; it doesn't have to be involved, as little as a paragraph or two could suffice.
Submissions are actually due today (June 3rd).
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

The deadline has been extended to Friday.
@sumodas: If you're representing the AC, can you make sure to share your paper with us for comments before submitting it? Also @levidurfee said he was interested in going. We need to figure out how to handle that on our call today.

Will circulate to this group prior to submission.
—
Sumantro Das
E<EMAIL_ADDRESS>P:<PHONE_NUMBER>

On Jun 3, 2019, at 09:45, Tobie Langel<EMAIL_ADDRESS>wrote:
The deadline has been extended to Friday.
@sumodas: If you're representing the AC, can you make sure to share your paper with us for comments before submitting it? Also @levidurfee said he was interested in going. We need to figure out how to handle that on our call today.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

See minutes.
@levidurfee volunteered to write a short position paper explaining what the AMP AC is and why we want to be part of the conversation.

Hi everyone,
Per our conversation, I've prepared one paper at the request of Adam
Greenberg and the AMP team at Google and have written so in the capacity of
the Mobile Roundtable of e-commerce product leads and NOT the AMP-AC.  I'm
sharing it with the group in the spirit of transparency.
If I attend in person I will submit a second letter conveying my role on
the AMP-AC similar to @levidurfee so folks at the event will be fully aware
of my capacity.
https://docs.google.com/document/d/1p3X_v5rfKYnfiCucP1QDPc1fheGG_oo5HRXDuUfqOQc/edit?usp=sharing
Please let me know if anyone has feedback, I will be submitting by end of
day today eastern time.
Thanks,
Sumo
On Tue, Jun 4, 2019 at 4:44 AM Tobie Langel<EMAIL_ADDRESS>wrote:

See minutes
https://github.com/ampproject/meta-ac/blob/master/meetings/2019-06-03.md#iab-workshop
.
@levidurfee https://github.com/levidurfee volunteered to write a short
position paper explaining what the AMP AC is and why we want to be part of
the conversation.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ampproject/meta-ac/issues/37?email_source=notifications&email_token=AGIWNOL32Y7K4DTSFEILM7DPYYTO3A5CNFSM4HOMWIZ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODW33XEY#issuecomment-498580371,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGIWNOJFDZFCFJTLSUQAD53PYYTO3ANCNFSM4HOMWIZQ
.

--
Sumantro Das
M: +1<PHONE_NUMBER>
E<EMAIL_ADDRESS>

Bumping this up everyone's queue one last time before submitting.
On Wed, Jun 5, 2019 at 12:41 PM Sumantro Das<EMAIL_ADDRESS>wrote:

Hi everyone,
Per our conversation, I've prepared one paper at the request of Adam
Greenberg and the AMP team at Google and have written so in the capacity of
the Mobile Roundtable of e-commerce product leads and NOT the AMP-AC.  I'm
sharing it with the group in the spirit of transparency.
If I attend in person I will submit a second letter conveying my role on
the AMP-AC similar to @levidurfee so folks at the event will be fully aware
of my capacity.
https://docs.google.com/document/d/1p3X_v5rfKYnfiCucP1QDPc1fheGG_oo5HRXDuUfqOQc/edit?usp=sharing
Please let me know if anyone has feedback, I will be submitting by end of
day today eastern time.
Thanks,
Sumo
On Tue, Jun 4, 2019 at 4:44 AM Tobie Langel<EMAIL_ADDRESS>wrote:

See minutes
https://github.com/ampproject/meta-ac/blob/master/meetings/2019-06-03.md#iab-workshop
.
@levidurfee https://github.com/levidurfee volunteered to write a short
position paper explaining what the AMP AC is and why we want to be part of
the conversation.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ampproject/meta-ac/issues/37?email_source=notifications&email_token=AGIWNOL32Y7K4DTSFEILM7DPYYTO3A5CNFSM4HOMWIZ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODW33XEY#issuecomment-498580371,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGIWNOJFDZFCFJTLSUQAD53PYYTO3ANCNFSM4HOMWIZQ
.

--
Sumantro Das
M: +1<PHONE_NUMBER>
E<EMAIL_ADDRESS>
--
Sumantro Das
M: +1<PHONE_NUMBER>
E<EMAIL_ADDRESS>

Thanks for sharing that paper with the AC, @sumodas. Given that this is not submitted on behalf of the AC—contrary to @levidurfee's paper, which is—I don't have any objections to put forth. Shipt it!
I'll jump on this occasion to thank you, @levidurfee, and @tones on behalf of the AC for representing us at the IAB's workshop (on top of your employer, other organizations, etc.). We look forward to your feedback!

Workshop is a go.
Papers have been published: https://www.iab.org/activities/workshops/escape-workshop/
@sumodas I didn't see yours. Apparently, the system asks for a confirmation, so if you sent it then you might want to check your inbox.
What's everyone's take on the position papers? In particular, I mostly interested in hearing your thoughts about the papers submitted by publishers given that this is supposed to be a workshop for this particular constituency.

[ ] @levidurfee to advise @ampproject/ac once workshop report is released
[ ] @ampproject/ac to position itself accordingly


nth_largest_ in_an_array.js

Closing Issue/Referencing Issue
issue reference (#)
Changes Made In Pull Request

can u a label for hacktoberfest also, and if any way I could help more I would be glad, pls let me know


Old group to new group 😉

This was good. Why closed bro?

Line 453 wrong link. My failure

Try now

Thanks ❤


Vietnamese Math Braille

Added few test cases to check and added Vietnamese math Braille rule based on UEB code.

Looks good. If you find other UEB chars that are missing, let me know or do a PR. I found what I hope is UEB translation for 2209 and added it to (English) UEB.


Have example scripts for every task

We should have example scripts for every task we will support, as we develop model card features/inference specific features for the task and showcase them.
We need scripts for below for the planned tasks:

[ ] tabular-regression
[ ] text-classification
[ ] text-regression

The tabular-classification one already exists for the features we have now, but maybe we could have a more end to end one that has both hub_utils and card in one place for the task.

we first need to handle #102 for the text stuff, but yes.

I'm just wondering: are classification vs regression different enough that we need a separate example? For text input, I agree.

@BenjaminBossan I think the visualizations and metrics are different and at one point we might have methods specified to tasks so it's good imo (nice to have after we get everything done).

Hi! I've added an example of tabular regression in #254. Let me know if I did anything wrong!

@merveenoyan I think the text-classification task is already done in /examples/plot_text_classification.py, unless I'm misunderstanding the task.

@lazarust thanks a lot for the contribution, and yes, it was already done!
I was wondering if for now we should keep the pickle as we don't support skops format for inference API. I will work on it in upcoming weeks after I catch up and wrap up other stuff. For now, I say we keep it.