Add Hyperlink to Event Detail URLs

This task is to add a hyperlink to any http/s URLs found in the event description field on the event detail view.

Android and iOS failed with one issue:

The clickable link area appears to be above the link, making it difficult to click on. The area outlined in red is where the actual clickable area seems to be:

As mentioned in issue #406, hyperlinks on the Notifications tab for Android have passed testing whereas here they have not.

@c3bryant I've identified the cause of this issue and have implemented a fix.
Essentially the  <Hyperlink>  tag encapsulates the <Text> tag. What actually happens is the hyperlink view is drawn first, including the clickable area for the hyperlink. Then the text is drawn. Now if the text is styled with formatting that includes padding it means that the text being drawn no longer lines up with the hyperlink that has already been drawn.
The solution I've implemented removes the padding from the <Text> tag and moves it to a <View> tag  that encapsulates the <Hyperlink>. This preserves the styling of the description and fixes the bug.

Fix verified and testing has passed. Merged into refresh-2.


Upgrade example documentation

Many people learn best from studying examples, but our documentation around our examples is currently sub-par. We need to make it much easier to find the most helpful example and make the documentation easier to maintain.
Roughly prioritized high to low:

[x] Make the landing of https://www.rerun.io/examples more interesting (screenshots, links, or just land on https://www.rerun.io/examples/real-data)
[x] Make the written content and structure of the examples page more compelling
[ ] #2928
[x] #2259
[x] #2267
[x] #2268
[x] #2270
[ ] #2272
[x] https://github.com/rerun-io/rerun/issues/2117
[x] Unify screenshots in docs
[x] #2273
[x] #2399
[ ] Make it easier to find the API docs for Python and Rust
[x] https://github.com/rerun-io/rerun/issues/2313
[x] All example screenshots should have alt-texts
[ ] Docs site shows what rerun api's are used in each example
[ ] Examples docs shows live web viewer where possible

It's high priority to work on these issues, but not high priority to close every single on of them. Let's start with the low hanging fruit

Closing this issue and moving the remaining pieces we want to do to to a new tracking issue


regression: createGlobalStyle does not remove styles on unmount

Environment
System:

OS: macOS 13.4.1
CPU: (10) arm64 Apple M1 Max
Memory: 5.18 GB / 64.00 GB
Shell: 3.2.57 - /bin/bash

Binaries:

Node: 18.1.0 - ~/.nvm/versions/node/v18.1.0/bin/node
npm: 9.7.2 - ~/.nvm/versions/node/v18.1.0/bin/npm
pnpm: 8.6.0 - ~/.nvm/versions/node/v18.1.0/bin/pnpm

npmPackages:

babel-plugin-styled-components: ^2.1.4 => 2.1.4
styled-components: ^6.0.4 => 6.0.4

Reproduction
In this change https://github.com/styled-components/styled-components/pull/3726/files#diff-b8702cbcaf39eaa95deb156bf4132fef9fd7096c4f87679cf656105070c38bc8R64 @probablyup changed it to conditionally use useInsertionEffect if it exists; but useInsertionEffect does not have a return type: https://react.dev/reference/react/useInsertionEffect#returns
After updating to v6 I started noticing that none of the global styles created by createGlobalStyle are removed after the component is unmounted.
I couldn't come up with a small reproducible case; in a codepen the global styles are removed; but in our app with hundreds of lines in the <style/> those global styles are clearly sticky.
Expected Behavior
Global style is removed when component is unmounted
Actual Behavior
Global styles remain in the stylesheet after component is unmounted

That's annoying! Would you be open to shooting over a quick PR to remove use of useInsertionEffect?

That's annoying! Would you be open to shooting over a quick PR to remove use of useInsertionEffect?

sure thing... PR ^


Add a  to every repo's nuget.config

It will fix issues that people have when they have custom feeds and they clone and build our projects. We've had a few external contributors and members from other teams (and even our own team) run into this.

@Eilon it's pretty easy to undo this per-repo when testing cross-repo changes one at a time. But, that will get old after the 3rd repo. And, what about building Universe with locally-built tools (e.g. BuildTools) in place?

@dougbu - editing individual NuGet.configs (and not checking them in 😄 ) would still work. I was planning on doing this today whilst I bump up the versions in the dev branch to preview3.

@pranavkm right. Plus, I wasn't aware .deps/build was used as a package source in our Universe builds.
Bottom line, workarounds exist though there's some "and not checking them in" peril.

Cool. I made the changes as part of my version change today. This can be closed.

As a follow up to this, I'd like to add NuGet.config to the repo's .gitignore. This would avoid accidentally checking in changes to the file (when you're doing local cross-repo testing). Any objections to this?

@pranavkm - file a new bug for that? I think that's a good idea but I'd like to get it triaged.

A gitignore file specifies intentionally untracked files that Git should ignore. Files already tracked by Git are not affected; see the NOTES below for details.
NOTES
The purpose of gitignore files is to ensure that certain files not tracked by Git remain untracked.
To stop tracking a file that is currently tracked, use git rm --cached.

I don't think .gitignore is the way we could do this.

@smitpatel - yeah you're right. git rm --cached isn't what we want either since we want to track the file, just disallow updates to it (unless done via something like git add --force) but there really isn't a git feature for this. Oh well, guess we'll just have to be vigilant about changes to the config file.

I thought this was exactly something you can do with .gitignore? Did anyone try it? I know we discussed doing this "trick" in other places before, but I'm not sure if we ever tried it.

Seemingly not. Once you force add the file back (git add --force NuGet.config), since you do want to commit it to git history, git starts tracking changes to it. There's a git update-index --assume-unchanged that's does work correctly, however it's a client-side command and there doesn't seem to be a way to persist it to the server.

Oh well, I guess it's not a super important thing. I think people are pretty good in general at spotting someone changing a nuget.config file.


Support additional Imou device: light bulbs

Looks like light bulbs exposes a completely different set of APIs which I could not find the documentation anywhere (Ref. #47 #50)

Closing this for now until there will be a documented API available from Imou for the implementation


[feature] Add Sprig to the template processor

There may be underlying reasons why this wasn't included at some point, but seeing as the Sprig library is pretty well maintained, it would make sense to include it with the kube-gen template processor.
https://github.com/Masterminds/sprig
I think it only requires adding the following here https://github.com/kylemcc/kube-gen/blob/5534ca5bf7dba80d8c4ebfeade5521de771b2ffe/template_funcs.go#L3 :
import (
  "github.com/Masterminds/sprig/v3"
  "html/template"
)

and merging these functions here https://github.com/kylemcc/kube-gen/blob/5534ca5bf7dba80d8c4ebfeade5521de771b2ffe/template_funcs.go#L17:
tpl := template.Must(
  template.New("base").Funcs(sprig.FuncMap()).ParseGlob("*.html")
)

Not a bad idea! If you're up for it, I'm glad to accept a PR. Otherwise, I can try to have a look this weekend.


MetroDR: clear PV ClaimRef on secondary PVC deletion and put back the ClaimRef on restore

In MetroDR we don't change the reclaim policy for the PV back to when we
failover/relocate an app to another cluster. In other words, if we failover from
C2 to C1, then on C2, we will not change the reclaim policy back to.
Therefore, the PV will not be deleted but its Status.Phase will move to Released.
In that case, if we failover or relocate back to that cluster, then it is guaranteed
that a new PV will be created instead of reusing the Released one.
Kubernetes will only bind a PVC to a PV if the PV is in the Available status phase.
The fix in this PR we are removing the ClaimRef from the PV when the PVC is deleted.
On Restore, if we find that the PV exists, then we put back the original ClaimRef from
the s3 store.

@raghavendra-talur Please add the unit test that you wanted to add to validate this.


Alt Tracking

Fixes #685
Just adds the ability to link 2 accounts with their IDs. No further functionality has been implemented yet
All in all, when you look someone up with modreport, it should look up other known IDs and union those reports with it

probably more annoying but it would be nice to let the user pass in nick#names instead of snowflakes

We have function for that so ez claps :)

probably more annoying but it would be nice to let the user pass in nick#names instead of snowflakes

We have function for that so ez claps :)

But what will the delimiter be?

But what will the delimiter be?
Dang you right, might have to do the newline thing like the poll plugin
Never think about it but it comes in handy

Probably easier yeah, but you can also look for a # and four digits. That’s the end of the first nick

Probably easier yeah, but you can also look for a # and four digits. That’s the end of the first nick

I ended up splitting with newlines, no command pattern
Pretty rigorously unit tested so should work fine

Chonky PR but, all I've tested works

As the other 2 PRs get accepted and merged, this PR will clean up and only contain the actual implementation of alt report lookups. Currently blocked by those 2


Add Segment Cleaning

My vacuum cleaner can clean defined rooms.Miio supports this feature.Please,support it.Thanks
https://github.com/marcelrv/XiaomiRobotVacuumProtocol/blob/master/segment_clean.md

vacuum.js.zip
This working for me.i sending {"state":18}


Too much information wrt EVAL ?

https://github.com/perl6/doc/blob/a795b55476b7841bd74383265d72eaa3e71c0421/doc/Type/Cool.pod6#L1434
Why are we showing the exact signature of EVAL here, rather than the functional parts?  This feels to me we're exposing implementation dependent internals.

Especially the proto and the is copy are implementation detail, IMO.

you right in sence that its not the most important info for start of use, but nevertheless to me very interesting

But you're not a typical user  :-)   For the people just interested in the function, it's showing parts of the inside of what should be a black box for them.

sure but in my mind perl is about treating users as adults, they know what a signature is

The problem is that if you don't follow the exact signature you open the
Pandora box of what to do exactly: simplify? Change variable names? Merge
multis? There's no single better way to do it. And then an additional
problems is to maintain it. What if you merge multis and one of the multis
changes? Even if it's an implementation detail, you can't fail by sticking
to the original.  You might need an additional  explanation of what's spec
and what's not, but that's an order of magnitude easier to maintain.

Additionally, if the signature in the code and the documentation differ,
you don't know if it's by choice of who wrote the documentation or by
drift. You might hide (or expose) implementation details in the
documentation, but my experience so far is that keeping the signatures the
self same as in the implementation is what gives you the least headaches.

yes, its not in first interest for beginners but should be there. but i think its even helpful for for beginners showing them what is important to understant. i think normal beginners with dignity can ignore such info when they know what its about but no understand certain type names

FWIW, I think this not the best way to do this: the documentation is about Perl 6, and not about the Rakudo Perl 6 implementation.  But I get your point.  So closing.

El mar., 21 may. 2019 a las 11:43, Elizabeth Mattijsen (<
<EMAIL_ADDRESS>escribió:

FWIW, I think this not the best way to do this: the documentation is about
Perl 6, and not about the Rakudo Perl 6 implementation. But I get your
point. So closing.

It's very likely that it's not the best, I don't claim it is. But I can't
think of a better alternative. Ideally, roast would include also signatures
so that we really know what's spec and what's not, but inferring signatures
from a bunch of roast tests (since we know synopsis is no longer the
reference) might be even more difficult, not to mention there are signature
cases that are not tested (either in roast or in Rakudo).
Additionally, Rakudo is not documented and it will not be. The alternative
to not documenting something as implementation-dependent is often not to
document it at all.
In general, the current rules of thumb are not a global optimum; probably
not even a local optimum. But barring the appearance of something better,
that's what we have and we'll kind of have to go with it.

Probably there are a few signature features that we could consistently rule as an implementation detail that need not be represented in the documentation, such as is copy and is raw.

Hi,
El mar., 21 may. 2019 a las 12:09, Jonathan Worthington (<
<EMAIL_ADDRESS>escribió:

Probably there are a few signature features that we could consistently
rule as an implementation detail that need not be represented in the
documentation, such as is copy and is raw.

That's right, yes. Maybe open a new issue for that? We could even create an
xt test to check that it's not done in general...

allright but i dont think that an official interface to a method is rakudo specific

On 21 May 2019, at 12:09, Jonathan Worthington<EMAIL_ADDRESS>wrote:
Probably there are a few signature features that we could consistently rule as an implementation detail that need not be represented in the documentation, such as is copy and is raw.

“proto” I think is also an implementation detail.

good to that i would agree thats not doc relevant


Online-form for supporters' association

As you can see @ https://ff-eppendorf.de/foerderverein/ there is a online form for new members.
We should integrate the Form into the website. There is a html-snippet which I can provide.
This is missing @ https://giom-fm.github.io/ff-eppendorf-website/foerderverein/

I know.
For now I just took over the pdfs.
I will have to figure out how to implement the form with hugo.

Alrighty, let me know when you need anything :)

I just saw that, the "Aufnahmeformular" is just an IFrame. The Form ist hosted by easyVerein. I think the easiest way would be to create a button that links to this page.

correct, lets do this!

Ah I see a potential flaw over there. The URL changes to the URL from easyVerein which is a little fishy.
Then we will embed the IFrame into a normal Hugo page.

I'll look in to the portal internals if I can figure something out

Alright. Seems like the link will change, if we change the form. If that is not the case, then this link will stay.

Hinode is clearly not designed to handle iframes.
For now, as workaround I added the "Online Formular" as a link to the external resource of easyVerein


feat(@embark/contracts): add proxyFor property for contracts

Adds proxyFor to contracts that merges the ABI of the parent
contract to the child (proxy)  contract so that the proxy can use
the methods of the parent but is deployed as itself

we should add docs for this

@iurimatias and @PascalPrecht , added docs and fixed the couple issues.
As discussed in the meeting, the tests will come with the addition of Teller contracts and tests in the monorepo, which will be done in another PR.

@emizzle Squashed and improved the docs


ng-admin example

Please I want to know what is index.js file ??
and when I add this

did you run bower install, as explained in the readme?

@fzaninotto  Yes, I did so I don't know where the problem

It's probably because ng-admin is no longer published on bower... So this example needs fixing.


Use ComboBreaker in Textfield helper message to gain space with long text

Refactor the TextField to update it to the latest Spark Specs and I remembered that Romain Guy made a lib that could enable us to resolve this issue where the helper message would have a reduced width if a counter was present by making the TextFlow around shapes

Unfortunately we can't use it as it is since it requires that the min api version to be 29 to be used…
Maybe we can fork it and remove what requires it to be api 29 and use just what we need for our usecase


Update README.md

contextlib.chdir available from 3.11+

I’ve created a dedicated branch, master_legacy, to bypass that specific construct (and enable future uses of pattern matching on master).
I plan to periodically rebase it to maintain compatibility with older Python versions, to maintain the 3.8+ requirement.
Ideally, I would prefer to test and patch for all Python versions to ensure the widest possible compatibility.
Here’s what I’m considering for the version requirements:

option 1

Python 3.11+ (master branch)
Python 3.8+ (master_legacy branch)

option 2

Python 3.11+ (*)

(*) a Python 3.8+ version is available on the master_legacy branch

option 3

Python 3.8+ (*)

(*) the master branch requires Python 3.11+; the master_legacy branch maintains Python 3.8+ compatibility

Which version of the message do you think communicates this best?

I would suggest either option 1 or 2, though option 1 looks cleanest to me. Thank you

Merged with 3ef6b142b4194d6b18181c5458dd384b9cdb5418


Update new instance instructions

I rule and have completed some work on Case Manager that's ready for review!
@harumhelmy heroically went through a very old set of new instructions. This updates that to reflect what we actually did.
when reviewing please confirm that this makes sense and matches your memory! please request clarification on anything that isn't clear, as well.
This pull request makes the following changes:

update new instance instructions to better reflect what we actually did

no issues

thank you @lomky and @harumhelmy !


feat: Qdrant vector store

Description
This PR adds support for Qdrant - https://qdrant.tech, to be used as a vector store.
You can run Qdrant with
docker run -p 6333:6333 -p 6334:6334 qdrant/qdrant

Uses a custom parser for converting Spring AI filters to Qdrant-compatible GRPC filters.

Uses a custom parser for converting Spring AI metadata(Map<String, Object>) to Qdrant GRPC payload.

Integration tests have been added for the implemented methods and metadata filters with a locally spawned test container.

The Qdrant Java client uses the GRPC interface at port 6334.

Resolves #331

The filters are yet to support IN and NIN operations.

@Anush008 thank you for the valuable contribution!
I will review it shortly.

🎊🎊🎉🎊🎉


Update Node version to the latest LTS

Updates the Node version on the .tool-version
Updates the engines field to force the node version

Well apparently Netlify does not allow changing the NodeJS version. Seems we're stuck with 10.17.0 for the time being.


c-lightning hangs on estimatesmartfee

I've been testing c-lightning with spruned on v0.0.4b4. It initially seemed to work ok and then I noticed c-lightning hangs when calling out to bitcoin-cli estimatesmartfee:
bitcoin-cli -rpcuser=rpcuser -rpcpassword=rpcpassword estimatesmartfee 2 CONSERVATIVE
logs:
Nov 17 23:18:14 monad spruned[2459]: 2018-11-17 23:18:14,312 - jsonrpcserver.dispatcher.request - INFO - {'method': 'echo', 'params': [], 'id': 1}
Nov 17 23:18:14 monad spruned[2459]: 2018-11-17 23:18:14,313 - aiohttp.access - INFO - <IP_ADDRESS> [18/Nov/2018:07:18:14 +0000] "POST / HTTP/1.1" 200 232 "-" "-"
Nov 17 23:18:14 monad spruned[2459]: 2018-11-17 23:18:14,317 - jsonrpcserver.dispatcher.request - INFO - {'method': 'estimatesmartfee', 'params': [2, 'CONSERVATIVE'], 'id': 1}
Nov 17 23:18:14 monad spruned[2459]: 2018-11-17 23:18:14,317 - spruned.dependencies.connectrum - DEBUG - Connecting to: <ServerInfo electrum-1.mempool.co nick=063a1a037135337b ports="['s']" v=1.2 prune=0>
Nov 17 23:18:14 monad spruned[2459]: 2018-11-17 23:18:14,322 - jsonrpcserver.dispatcher.request - INFO - {'method': 'getblockcount', 'params': [], 'id': 1}
Nov 17 23:18:14 monad spruned[2459]: 2018-11-17 23:18:14,325 - aiohttp.access - INFO - <IP_ADDRESS> [18/Nov/2018:07:18:14 +0000] "POST / HTTP/1.1" 200 236 "-" "-"
Nov 17 23:18:14 monad spruned[2459]: 2018-11-17 23:18:14,331 - jsonrpcserver.dispatcher.request - INFO - {'method': 'getblockhash', 'params': [550462], 'id': 1}
Nov 17 23:18:14 monad spruned[2459]: 2018-11-17 23:18:14,333 - aiohttp.access - INFO - <IP_ADDRESS> [18/Nov/2018:07:18:14 +0000] "POST / HTTP/1.1" 200 297 "-" "-"
Nov 17 23:18:14 monad spruned[2459]: 2018-11-17 23:18:14,342 - jsonrpcserver.dispatcher.request - INFO - {'method': 'getblock', 'params': ['00000000000000000003749e1a6fcb5ac92c3dc6a24a2c9890dd840b43f14313', False], 'id': 1}
Nov 17 23:18:14 monad spruned[2459]: 2018-11-17 23:18:14,347 - p2p - INFO - Block 550462<PHONE_NUMBER>0000000003749e1a6fcb5ac92c3dc6a24a2c9890dd840b43f14313) provided in 0.0051s)
Nov 17 23:18:14 monad spruned[2459]: 2018-11-17 23:18:14,488 - aiohttp.access - INFO - <IP_ADDRESS> [18/Nov/2018:07:18:14 +0000] "POST / HTTP/1.1"<PHONE_NUMBER> "-" "-"
Nov 17 23:18:14 monad spruned[2459]: 2018-11-17 23:18:14,985 - spruned.dependencies.connectrum - DEBUG - Transport connected ok
Nov 17 23:18:15 monad spruned[2459]: 2018-11-17 23:18:15,147 - spruned.dependencies.connectrum - DEBUG - Connected to: <ServerInfo electrum-1.mempool.co nick=063a1a037135337b ports="['s']" v=1.2 prune=0>
Nov 17 23:18:15 monad spruned[2459]: 2018-11-17 23:18:15,148 - p2p - INFO - Connected to peer electrum-1.mempool.co:s (ElectrumX 1.2.1)
Nov 17 23:18:15 monad spruned[2459]: 2018-11-17 23:18:15,148 - electrum - DEBUG - Peer raw response: ['ElectrumX 1.2.1', '1.2']
Nov 17 23:18:33 monad spruned[2459]: 2018-11-17 23:18:33,823 - pycoin - DEBUG - message <Peer ('<IP_ADDRESS>', 8333)>: addr (31 byte payload)

and then nothing else seems to be logged...
and when I stop clightning:
Nov 17 23:19:38 monad spruned[2459]: 2018-11-17 23:19:38,579 - aiohttp.server - ERROR - Unhandled exception
Nov 17 23:19:38 monad spruned[2459]: Traceback (most recent call last):
Nov 17 23:19:38 monad spruned[2459]:   File "/nix/store/rzhiz9s0gzmmpqh1xwzg2cj3mqv8ax8s-python3.6-aiohttp-3.3.2/lib/python3.6/site-packages/aiohttp/web_protocol.py", line 398, in start
Nov 17 23:19:38 monad spruned[2459]:     await resp.prepare(request)
Nov 17 23:19:38 monad spruned[2459]:   File "/nix/store/rzhiz9s0gzmmpqh1xwzg2cj3mqv8ax8s-python3.6-aiohttp-3.3.2/lib/python3.6/site-packages/aiohttp/web_response.py", line 300, in prepare
Nov 17 23:19:38 monad spruned[2459]:     return await self._start(request)
Nov 17 23:19:38 monad spruned[2459]:   File "/nix/store/rzhiz9s0gzmmpqh1xwzg2cj3mqv8ax8s-python3.6-aiohttp-3.3.2/lib/python3.6/site-packages/aiohttp/web_response.py", line 605, in _start
Nov 17 23:19:38 monad spruned[2459]:     return await super()._start(request)
Nov 17 23:19:38 monad spruned[2459]:   File "/nix/store/rzhiz9s0gzmmpqh1xwzg2cj3mqv8ax8s-python3.6-aiohttp-3.3.2/lib/python3.6/site-packages/aiohttp/web_response.py", line 367, in _start
Nov 17 23:19:38 monad spruned[2459]:     await writer.write_headers(status_line, headers)
Nov 17 23:19:38 monad spruned[2459]:   File "/nix/store/rzhiz9s0gzmmpqh1xwzg2cj3mqv8ax8s-python3.6-aiohttp-3.3.2/lib/python3.6/site-packages/aiohttp/http_writer.py", line 100, in write_headers
Nov 17 23:19:38 monad spruned[2459]:     self._write(buf)
Nov 17 23:19:38 monad spruned[2459]:   File "/nix/store/rzhiz9s0gzmmpqh1xwzg2cj3mqv8ax8s-python3.6-aiohttp-3.3.2/lib/python3.6/site-packages/aiohttp/http_writer.py", line 57, in _write
Nov 17 23:19:38 monad spruned[2459]:     raise ConnectionResetError('Cannot write to closing transport')
Nov 17 23:19:38 monad spruned[2459]: ConnectionResetError: Cannot write to closing transport

perhaps there's some hanging callback somewhere?

Not sure if related:
Nov 17 23:24:03 monad spruned[2459]: 2018-11-17 23:24:03,666 - asyncio - ERROR - Task was destroyed but it is pending!
Nov 17 23:24:03 monad spruned[2459]: task: <Task pending coro=<_make_repeated_f.<locals>.repeated_f() running at /nix/store/fziji8g9jmxq1gjfknnw51scxizfdp1d-spruned-0.0.4b4/lib/python3.6/site-packages/spruned/dependencies/pycoinnet/MappingQueue.py:55> wait_for=<Future cancelled> cb=[gather.<locals>._done_callback(0)() at /nix/store/nrl0l79a48924xb0897ap572xf29ciir-python3-3.6.6/lib/python3.6/asyncio/tasks.py:622]>
Nov 17 23:24:03 monad spruned[2459]: 2018-11-17 23:24:03,666 - asyncio - ERROR - Task was destroyed but it is pending!
Nov 17 23:24:03 monad spruned[2459]: task: <Task pending coro=<_make_repeated_f.<locals>.repeated_f() running at /nix/store/fziji8g9jmxq1gjfknnw51scxizfdp1d-spruned-0.0.4b4/lib/python3.6/site-packages/spruned/dependencies/pycoinnet/MappingQueue.py:58> wait_for=<Future pending cb=[<TaskWakeupMethWrapper object at 0x7fbc55ddecd8>()]> cb=[gather.<locals>._done_callback(0)() at /nix/store/nrl0l79a48924xb0897ap572xf29ciir-python3-3.6.6/lib/python3.6/asyncio/tasks.py:622]>
Nov 17 23:24:03 monad spruned[2459]: 2018-11-17 23:24:03,666 - asyncio - ERROR - Task was destroyed but it is pending!
Nov 17 23:24:03 monad spruned[2459]: task: <Task pending coro=<Queue.get() running at /nix/store/nrl0l79a48924xb0897ap572xf29ciir-python3-3.6.6/lib/python3.6/asyncio/queues.py:167> wait_for=<Future pending cb=[<TaskWakeupMethWrapper object at 0x7fbc55dde828>()]> cb=[_wait.<locals>._on_completion() at /nix/store/nrl0l79a48924xb0897ap572xf29ciir-python3-3.6.6/lib/python3.6/asyncio/tasks.py:380]>
Nov 17 23:24:09 monad spruned[2459]: 2018-11-17 23:24:09,086 - pycoin - DEBUG - message <Peer ('<IP_ADDRESS>', 8333)>: addr (31 byte payload)
Nov 17 23:24:12 monad spruned[2459]: 2018-11-17 23:24:12,816 - asyncio - ERROR - Task was destroyed but it is pending!
Nov 17 23:24:12 monad spruned[2459]: task: <Task pending coro=<_make_repeated_f.<locals>.repeated_f() running at /nix/store/fziji8g9jmxq1gjfknnw51scxizfdp1d-spruned-0.0.4b4/lib/python3.6/site-packages/spruned/dependencies/pycoinnet/MappingQueue.py:55> wait_for=<Future cancelled> cb=[gather.<locals>._done_callback(0)() at /nix/store/nrl0l79a48924xb0897ap572xf29ciir-python3-3.6.6/lib/python3.6/asyncio/tasks.py:622]>
Nov 17 23:24:12 monad spruned[2459]: 2018-11-17 23:24:12,816 - asyncio - ERROR - Task was destroyed but it is pending!
Nov 17 23:24:12 monad spruned[2459]: task: <Task pending coro=<Queue.get() running at /nix/store/nrl0l79a48924xb0897ap572xf29ciir-python3-3.6.6/lib/python3.6/asyncio/queues.py:167> wait_for=<Future pending cb=[<TaskWakeupMethWrapper object at 0x7fbc30451df8>()]> cb=[_wait.<locals>._on_completion() at /nix/store/nrl0l79a48924xb0897ap572xf29ciir-python3-3.6.6/lib/python3.6/asyncio/tasks.py:380]>
Nov 17 23:24:12 monad spruned[2459]: 2018-11-17 23:24:12,816 - asyncio - ERROR - Task was destroyed but it is pending!
Nov 17 23:24:12 monad spruned[2459]: task: <Task pending coro=<_make_repeated_f.<locals>.repeated_f() running at /nix/store/fziji8g9jmxq1gjfknnw51scxizfdp1d-spruned-0.0.4b4/lib/python3.6/site-packages/spruned/dependencies/pycoinnet/MappingQueue.py:58> wait_for=<Future pending cb=[<TaskWakeupMethWrapper object at 0x7fbaf9286858>()]> cb=[gather.<locals>._done_callback(0)() at /nix/store/nrl0l79a48924xb0897ap572xf29ciir-python3-3.6.6/lib/python3.6/asyncio/tasks.py:622]>
Nov 17 23:24:12 monad spruned[2459]: 2018-11-17 23:24:12,816 - asyncio - ERROR - Task was destroyed but it is pending!
Nov 17 23:24:12 monad spruned[2459]: task: <Task pending coro=<_make_repeated_f.<locals>.repeated_f() running at /nix/store/fziji8g9jmxq1gjfknnw51scxizfdp1d-spruned-0.0.4b4/lib/python3.6/site-packages/spruned/dependencies/pycoinnet/MappingQueue.py:55> wait_for=<Future cancelled> cb=[gather.<locals>._done_callback(0)() at /nix/store/nrl0l79a48924xb0897ap572xf29ciir-python3-3.6.6/lib/python3.6/asyncio/tasks.py:622]>
Nov 17 23:24:12 monad spruned[2459]: 2018-11-17 23:24:12,816 - asyncio - ERROR - Task was destroyed but it is pending!
Nov 17 23:24:12 monad spruned[2459]: task: <Task pending coro=<_make_repeated_f.<locals>.repeated_f() running at /nix/store/fziji8g9jmxq1gjfknnw51scxizfdp1d-spruned-0.0.4b4/lib/python3.6/site-packages/spruned/dependencies/pycoinnet/MappingQueue.py:58> wait_for=<Future pending cb=[<TaskWakeupMethWrapper object at 0x7fbc54202a98>()]> cb=[gather.<locals>._done_callback(0)() at /nix/store/nrl0l79a48924xb0897ap572xf29ciir-python3-3.6.6/lib/python3.6/asyncio/tasks.py:622]>
Nov 17 23:24:12 monad spruned[2459]: 2018-11-17 23:24:12,817 - asyncio - ERROR - Task was destroyed but it is pending!
Nov 17 23:24:12 monad spruned[2459]: task: <Task pending coro=<Queue.get() running at /nix/store/nrl0l79a48924xb0897ap572xf29ciir-python3-3.6.6/lib/python3.6/asyncio/queues.py:167> wait_for=<Future pending cb=[<TaskWakeupMethWrapper object at 0x7fbc542020a8>()]> cb=[_wait.<locals>._on_completion() at /nix/store/nrl0l79a48924xb0897ap572xf29ciir-python3-3.6.6/lib/python3.6/asyncio/tasks.py:380]>

Looks like this was related to the blocks hitrate, and not estimatefee.
I still have some issues with estimatefee, but it's not related to this bug.
The asyncio errors are handled logged errors. I guess this log was in debug mode.


Update Pages “about”

Automatically generated by Netlify CMS

👷 Deploy Preview for yff111 processing.

Name
Link

🔨 Latest commit
a126160a29a8581d0e13273029437c7d2d799588

🔍 Latest deploy log
https://app.netlify.com/sites/yff111/deploys/636249a12585a20008f12f56


Tweak Rebindable!struct pull

See commit messages.

Thanks. Sorry this somehow got lost in the flood. Thanks for the ping and PR!


Big chat upgrade

/claim https://github.com/smallcloudai/refact-vscode/issues/28
new pull request as to not make any conflicts
all pendings of #33 covered
moved chat to the existing sidebar

Can you please 🙏  make less changes in:
747 changes package.json
858 changes src/extension.ts
361 changes src/highlight.ts
1,141 changes src/sidebar.ts
38 changes src/storeVersions.ts
so someone can actually work and understand the changes

Can you please 🙏 make less changes in:
747 changes package.json 858 changes src/extension.ts 361 changes src/highlight.ts 1,141 changes src/sidebar.ts 38 changes src/storeVersions.ts
so someone can actually work and understand the changes

tried to fix it!! hope Its fine now

@olegklimov do you need me to re-commit another file?

@olegklimov please review this and/or tell me more changes if required as I will be busy with some examinations in the upcoming week

Hi @Ahmadkhan02 sorry to keep you waiting, it was a busy week!

Yes, it's much better with unnecessary changes! I'll take a look within a day.

Yes, it's much better with unnecessary changes! I'll take a look within a day.

I have shifted chat to the main sidebar itself. As I had tried doing a new one for chat before, I find making a new one and maintaining login etc on that more of a hassle. Keep this in mind while reviewing.

@olegklimov have you started because otherwise I was thinking of some code structure improvements like making both chatTab and chatHistoryProvider singleton

I have time today to take a look. No opinion yet, let me look.

I think it's fantastic work!
I found a couple of bugs for sure, but it's minor things left.
https://github.com/smallcloudai/refact-vscode/assets/18546213/3c35ac84-095c-4719-a22e-cd34591c7b07
Enter doesn't work when editing, editing leaves funny traces, sometimes "stop generating" doesn't want to go away (end of the video, easy to reproduce by hitting F1)

@olegklimov

Enter doesn't work when editing, editing leaves funny traces, sometimes "stop generating" doesn't want to go away (end of the video, easy to reproduce by hitting F1)

Made these changes, were quite easy. I had forgotten about adding enter key functionality on retry input. Also made retry unresponsive while stop-button is visible.

@olegklimov do tell if any other change is required.

other change is required
I'll merge it into oleg_checking_lsp branch, hopefully tomorrow.


Use dependency-constraint to keep curl up-to-date

Summary

This will help us keep curl updated.
Checklist

[x] I have viewed, signed, and submitted the Contributor License Agreement.
[ ] I have linked issue(s) that this PR should close using keywords or the Github UI (See docs)
[ ] I have added an integration test, if necessary.
[x] I have reviewed the styleguide for guidance on my code quality.
[x] I'm happy with the commit history on this PR (I have rebased/squashed as needed).

Closed for https://github.com/paketo-buildpacks/passenger/pull/147 since it also removed cflinuxfs3


Added information about NODE_PATH issue

Signed-off-by: Ioan Eugen Stan<EMAIL_ADDRESS>

Thanks for your pull request. I've sent some minor feedbacks, hopefully you can change that.

Thanks for your contribution @ieugen


Initial implemenation

Here's the prototype using https://pypi.org/project/webvtt-py/
import webvtt
path = "/Users/simon/Dropbox/Development/transcribe-videos/16/auto/Simon Willison： My career in side projects and open source [wqjye4QnWK0].en.vtt"
captions = webvtt.read(path)

prev_line = None
for c in captions:
    if any('<c>' in l for l in c._lines):
        continue
    for line in c._lines:
        if not line.strip():
            continue
        if prev_line != line:
            print(line)
        prev_line = line

Now I need the --deduplicate option.


Removing duplicate entries

Removing duplicates for 'Nano Labs Ltd Class A Ordinary Shares' and 'Nano Labs Ltd American Depositary Shares'. They are already listed at lines 100728 and 100562

The ticker of this instrument is NAN which coincidentally is also nan in Python which means every time it checks whether this ticker exists or not it determines it doesn't. I need to fix this in the pipeline but thank you for taking these out manually.


Problems using types installed in node_modules/@types

TypeScript Version:  2.0.0-beta
We are encountering various problems using types installed into node_modules/@types. My understanding was that, when types were installed there, the compiler would automatically pick them up, but that does not seem to happen.

If I install @types/angular, then try to use angular-cookies:
import * as angular from 'angular';
import 'angular-cookies';

let cookiesService: angular.cookies.ICookiesService;

I get the following:
error TS2305: Module 'angular' has no exported member 'cookies'.

This is despite angular-cookies.d.ts defining an angular.cookies namespace.

If I install @types/rx, then try to import rx-lite:
import Rx from 'rx-lite';

It cannot find the module:
error TS2307: Cannot find module 'rx-lite'.

The only way I've found to fix this is to add an explicit entry to tsconfig.json types:
types {
      "rx/rx.lite.d.ts"
}

I thought the compiler included everything in node_modules/@types automatically, so why do I have to add this explicitly?

Similar to the above, if I install @types/tinycolor, which declares a module "tinycolor2" in its index.d.ts, then try to use it:
import * as tinycolor from 'tinycolor2';

It cannot find the module:
error TS2307: Cannot find module 'tinycolor2'.

Again, the only way to make it pick up this is to add an explicit entry to tsconfig.json's types section.

I'm not sure what the benefit of @types is, if we always have to add explicit config entries for our ambient type definitions in order for the compiler to consider them?

same for me with @types/node, @types/mocha
(1,21): error TS2307: Cannot find module 'fs'.
(3,23): error TS2307: Cannot find module 'path'.
(80,41): error TS2304: Cannot find name 'process'.
(5,12): error TS2304: Cannot find name 'global'.
(6,5): error TS2304: Cannot find name 'require'.

On DefinitelyTyped classic node definitions everything is ok.
For example for fs module i have import like
import * as fs from 'fs';
For require and global i have no imports.

I'm having a similar problem with @types/angular on TypeScript 2.0.0.
My first attempt looked like this:
import * as angular from "angular";
let foo:angular.route.IRouteProvider;

which gives the following error: index.ts(2,17): error TS2305: Module 'angular' has no exported member 'route'.
I've tried the following variations, all of which complain of various errors.
import * as angular from "angular";
import "angular/angular-route";
let foo:angular.route.IRouteProvider;

node_modules/@types/angular/angular-route.d.ts(123,21): error TS2304: Cannot find name 'IScope'.
node_modules/@types/angular/angular-route.d.ts(130,38): error TS2304: Cannot find name 'IServiceProvider'.
index.ts(4,17): error TS2305: Module 'angular' has no exported member 'route'.

import * as angular from "angular/angular-route";
let foo:angular.route.IRouteProvider;

node_modules/@types/angular/angular-route.d.ts(123,21): error TS2304: Cannot find name 'IScope'.
node_modules/@types/angular/angular-route.d.ts(130,38): error TS2304: Cannot find name 'IServiceProvider'.
index.ts(1,26): error TS2306: File<EMAIL_ADDRESS>is not a module.

I'm sure that I'm doing something wrong, but I can't seem to figure out what.

With https://github.com/DefinitelyTyped/DefinitelyTyped/pull/10170, you should be able to do:
import * as angular from 'angular';
import 'angular-cookies';

let cookiesService: angular.cookies.ICookiesService;

or
/// <reference types="angular" />
/// <reference types="angular-cookies" />

let cookiesService: ng.cookies.ICookiesService;

That only resolves the issue with angular specifically. Are you to suggest that for each package with this issue, we must submit PRs which break out the declarations?

For node you will need to add a /// <reference type="node" /> to one of your files or add to your tsconfig.json:
{
    "compilerOptions": {
         "types" : [ "node" ]
    }
}

breaking it up is not an option here since these are really some magical modules that node injects into the module space. angular-mocks on the other hand is really an npm module (https://www.npmjs.com/package/angular-mocks).

This is closed, but what is the solution?
mocha for example... Do I have to include a triple slash manually as well?

This is closed, but what is the solution?

We have republiushed the angular packages, these should work as intended now.

mocha for example... Do I have to include a triple slash manually as well?

I am not sure i understand the issue with mocha. it should just work, all you need is npm install @types\mocha. can you elaborate on the issue, and your setup?

I should add. my statement above assumes that your tsconfig.json is in the same folder as your node_modules\@types. if that is the case, the contents of node_modules\@types are picked up automatically. so<EMAIL_ADDRESS>will be in your scope, and thus describe would be as well.
By default all the contents of node_modules\@types adjacent to your tsconfig.json are included in your compilation.
if however, your tsconfig.json is not in the same folder, either a sibling folder, or in a child then you need to specify where to find it to get the same behavior. you can do this by specifying the typeRoots property. e.g.:
{
    "compilerOptions": {
        "typeRoots": [
            "../node_modules/@types"
        ]
    }
}

for a file layout as:
C:\TEST\SANDBOX7
│   package.json
│
├───node_modules
│   └───@types
│       ├───angular
│       ├───jquery
│       └───mocha
│
└───src
        a.ts
        tsconfig.json

In case you want to say "Do not include all node_modules\@types" , to do this you can specify a list of declarations you want to specify, e.g.:
{
    "compilerOptions": {
        "types": [
            "node", "mocha"
        ]
    }
}

this will only include<EMAIL_ADDRESS>and<EMAIL_ADDRESS>if you have an empty types list in your tsconfig.json, then nothing is included.
hope this helps.

Sorry, I'm narrowing it down and I think the issue is not on TypeScript.
It seems to be on VSCode and ts-loader, I think neither support this new @types folder.
Is it possible to tell them via tsconfig.json where to look? I don't know if it is just me or if other people are running in the same issue.

can you share your project, or your tsconfig.json

Structure
├ spec
├─ index.ts
├ src
├─ index.ts
├ tsconfig.json
├ package.json
├ webpack.config.js

tsconfig.json
{
  "compilerOptions": {
    "module": "commonjs",
    "target": "es6",
    "noImplicitAny": false,
    "sourceMap": false,
    "typeRoots": ["node_modules/@types"]
  },
  "exclude": [
    "node_modules"
  ]
}

webpack.config.js
module.exports = {
  entry: {
    app: ['babel-polyfill', './src/'],
    test: ['babel-polyfill', './spec/'],
  },
  output: {
    path: __dirname,
    filename: './dist/[name].js',
  },
  resolve: {
    extensions: ['', '.js', '.ts'],
  },
  module: {
    loaders: [{
      test: /\.ts$/, loaders: ['babel-loader', 'ts-loader'], exclude: /node_modules/
    }],
  }
};

Dependencies:
  "devDependencies": {
    "@types/mocha": "^2.2.28",
    "@types/node": "^4.0.30",
    "babel-core": "^6.10.4",
    "babel-loader": "^6.2.4",
    "babel-polyfill": "^6.9.1",
    "babel-preset-es2015": "^6.9.0",
    "babel-preset-stage-0": "^6.5.0",
    "mocha": "^2.5.3",
    "rimraf": "^2.5.3",
    "ts-loader": "^0.8.2",
    "typescript": "^2.0.0",
    "webpack": "^1.13.1"
  }

On VSCode and webpack it fails, but if I try to build the test file directly:
tsc .\spec\index.ts --listFiles
.../Users/.../node_modules/typescript/lib/lib.d.ts
spec/index.ts
<EMAIL_ADDRESS><EMAIL_ADDRESS>
It works

On VSCode and webpack it fails, but if I try to build the test file directly:

what do you mean it fails? what version of VS code? and do you have typescript.tssdk property set in your settings?

this is working for me with latest TS in VSCode. the webpack seems like a ts-loader issue.

i.e. using the latest TS in VS Code, see https://github.com/Microsoft/TypeScript-Handbook/blob/master/pages/Nightly Builds.md#visual-studio-code

Setting that typescript.tssdk fixed VSCode! Thank you!

Just the hack I needed too!

just as a clarification. the @types packages has new TS syntax like export as namespace and /// <reference types=.../> that are added in TS 2.0. By default VSCode comes with TS 1.8. so you need to let VSCode knows to use a different version.

i am getting error unknown compiler option types. but while checking tsc -v i am getting Version 2.0.0

what is the compiler option?

"compilerOptions": {
"target": "es5",
"module": "amd",
"declaration": true,
"removeComments": true,
"noLib": false,
"experimentalDecorators": true,
"sourceMap": true,
"pretty": true,
"allowUnreachableCode": false,
"allowUnusedLabels": false,
"noImplicitAny": true,
"noImplicitReturns": true,
"noImplicitUseStrict": false,
"noFallthroughCasesInSwitch": true,
"allowJs": false,
"forceConsistentCasingInFileNames": true,
"moduleResolution": "node",
"types": ["jasmine","jasmine-ajax","requirejs","chai","es6-promise"]
},

looks good to me. also working correctly for me on<EMAIL_ADDRESS>how are you running the compiler?

using gulp command "gulp build". is am need to update gulp typescript?

probably :) these are new features in TS 2.0

@mhegazy
Pumped about Simplified Declaration File (.d.ts) Acquisition and (after finding this thread) got typeRoots working for a tsconfig.json-based build, but what exactly do I do for VS.2015.3 all-updated with TypeScript <IP_ADDRESS>? Looks like it isn't supported by MSBuild.
I still get red squiggles (TS2307	Cannot find module 'fs'.) on lines like:
import * as fs from 'fs';

And wherever I sprinkle lines like you mentioned above:
/// <reference type="node" />

I also get red squiggles (TS1084	Invalid 'reference' directive syntax.).

@SlurpTheo, what is the version of TypeScript plugin in your Help -> about? if it is not TS 2.0.3 then you have the old TS plugin.

@mhegazy It is TS 2.0.3.

Can you share a repro project i can look at?

So this was showing similar symptoms:
tsconfig.json:
{
    "compileOnSave": true,
    "compilerOptions": {
        "module": "commonjs",
        "target": "es5"
    }
}

package.json:
{
  "name": "ts_issue_9725",
  "description": "ts_issue_9725",
  "version": "0.0.1",
  "private": true,
  "dependencies": {
    "@types/body-parser": "0.0.33",
    "@types/cookie-parser": "^1.3.30",
    "body-parser": "^1.15.2",
    "cookie-parser": "^1.4.3"
  }
}

Running npm install && tsc at this directory gives error TS2300: Duplicate identifier errors.
SO: I started over with a new, clean project folder, tsconfig.json & .njsproj and it seems that if I install @types/express-serve-static-core as a -D (dev) dependency (and all my other @types/ as normal/non-dev, then the world is a better place (although diffing node_modules/ before and after this change didn't show me any obvious reason why this should have mattered at all...).
Also, the previous .njsproj I was using was quick "icky". I started over new & clean and am now basing all TypeScript configuration from ./tsconfig.json file and things seem to be working!

I can not get the same error following your steps, here is what i see:
c:\test\9725>npm install
<EMAIL_ADDRESS>c:\test\9725
+--<EMAIL_ADDRESS>| `--<EMAIL_ADDRESS>|   +--<EMAIL_ADDRESS>|   `--<EMAIL_ADDRESS>|     `--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| | `--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| | +--<EMAIL_ADDRESS>| | +--<EMAIL_ADDRESS>| | `--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| | `--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| | `--<EMAIL_ADDRESS>| `--<EMAIL_ADDRESS>|   +--<EMAIL_ADDRESS>|   `--<EMAIL_ADDRESS>|     `--<EMAIL_ADDRESS>`--<EMAIL_ADDRESS>  +--<EMAIL_ADDRESS>  `--<EMAIL_ADDRESS>
c:\test\9725>type package.json
{
  "name": "ts_issue_9725",
  "description": "ts_issue_9725",
  "version": "0.0.1",
  "private": true,
  "dependencies": {
    "@types/body-parser": "0.0.33",
    "@types/cookie-parser": "^1.3.30",
    "body-parser": "^1.15.2",
    "cookie-parser": "^1.4.3"
  }
}
c:\test\9725>type tsconfig.json
{
    "compileOnSave": true,
    "compilerOptions": {
        "module": "commonjs",
        "target": "es5"
    }
}
c:\test\9725>node node_modules\typescript\lib\tsc.js  --v
Version 2.0.3

c:\test\9725>node node_modules\typescript\lib\tsc.js --p ./tsconfig.json

c:\test\9725>echo %ERRORLEVEL%
0

Huh:
C:\m\p3>npm install
<EMAIL_ADDRESS>node_modules\cookie-parser
├──<EMAIL_ADDRESS>└──<EMAIL_ADDRESS>
<EMAIL_ADDRESS>node_modules\body-parser
├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS>└──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>
<EMAIL_ADDRESS>node_modules\@types\body-parser
└──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>
<EMAIL_ADDRESS>node_modules\@types\cookie-parser
└──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>
C:\m\p3>npm install typescript
<EMAIL_ADDRESS>node_modules\typescript

C:\m\p3>node node_modules\typescript\lib\tsc.js --v
Version 2.0.3

C:\m\p3>node node_modules\typescript\lib\tsc.js
node_modules/@types/body-parser/node_modules/@types/express/node_modules/@types/express-serve-static-core/index.d.ts(32,10): error TS2300: Duplicate identifier 'PathParams'.
node_modules/@types/body-parser/node_modules/@types/express/node_modules/@types/express-serve-static-core/index.d.ts(34,10): error TS2300: Duplicate identifier 'RequestHandlerParams'.
node_modules/@types/cookie-parser/node_modules/@types/express/node_modules/@types/express-serve-static-core/index.d.ts(32,10): error TS2300: Duplicate identifier 'PathParams'.
node_modules/@types/cookie-parser/node_modules/@types/express/node_modules/@types/express-serve-static-core/index.d.ts(34,10): error TS2300: Duplicate identifier 'RequestHandlerParams'.

C:\m\p3>node node_modules\typescript\lib\tsc.js --p ./tsconfig.json
node_modules/@types/body-parser/node_modules/@types/express/node_modules/@types/express-serve-static-core/index.d.ts(32,10): error TS2300: Duplicate identifier 'PathParams'.
node_modules/@types/body-parser/node_modules/@types/express/node_modules/@types/express-serve-static-core/index.d.ts(34,10): error TS2300: Duplicate identifier 'RequestHandlerParams'.
node_modules/@types/cookie-parser/node_modules/@types/express/node_modules/@types/express-serve-static-core/index.d.ts(32,10): error TS2300: Duplicate identifier 'PathParams'.
node_modules/@types/cookie-parser/node_modules/@types/express/node_modules/@types/express-serve-static-core/index.d.ts(34,10): error TS2300: Duplicate identifier 'RequestHandlerParams'.

C:\m\p3>npm --version
2.15.9

C:\m\p3>node -p process.versions
{ http_parser: '2.7.0',
  node: '4.6.0',
  v8: '<IP_ADDRESS>',
  uv: '1.9.1',
  zlib: '1.2.8',
  ares: '1.10.1-DEV',
  icu: '56.1',
  modules: '46',
  openssl: '1.0.2j' }

It is npm. can you move to npm v3 or later?

Very soon -- node v6 (provides me my npm) goes LTS on OCT 01, 2016.

I can not get the simplest code run right with @types:
https://github.com/Microsoft/TypeScript/issues/11491

@zixia you are running into https://github.com/Microsoft/TypeScript/issues/11103. it should be fixed in typescript@next.

"moduleResolution": "node" fixed this for me.

I tried everything above with Angular 2.2.3 and this was what finally worked for me.
Add types.d.ts to your src folder with:
/// <reference types="@types/lodash" />
/// <reference types="@types/jquery" />
/// <reference types="@types/node" />

declare let _: _.LoDashStatic;

My fix after trying most suggestions, was to remove types and instead use
"typeRoots": [
      "node_modules/@types"
    ],

in combination with adding these to my src/typings.d.ts
/// <reference types="@types/mocha" />
/// <reference types="@types/webpack" />
/// <reference types="@types/webpack-env" />

I still cannot make it work, because of a bit different folder structure due to legal barriers.
So my structure is as following:
├ external
├─ node_modules
├─ package.json
├ src
├─ index.ts
├ tsconfig.json

I tried adding @types to typeRoots as following:
"typeRoots": [
      "external/node_modules/@types"
 ],

This did not worked, and I am really out of options here.
My TS version is 2.1.4

@klemenoslaj please add a path mapping entry as well:
{
    "compilerOptions": {
        "baseUrl": "./",
        "paths": {  "*": ["external/node_modules/@types/*", "*" ] }
    }
}

@mhegazy thanks for your fast reply. Unfortunately it still does not work - the same errors all over the place. Probably I am just doing something wrong then.
Compiler options:
{
  "compilerOptions": {
    "module": "amd",
    "target": "es5",
    "sourceMap": true,
    "removeComments": true,
    "allowJs": false,
    "pretty": true,
    "experimentalDecorators": true,
    "typeRoots": [
      "external/node_modules/@types"
    ],
    "baseUrl": "./",
    "paths": {
      "*": [
        "external/node_modules/@types/*",
        "*"
      ]
    }
  }
}

References in main definition file(no errors here):
///<reference<EMAIL_ADDRESS>///<reference<EMAIL_ADDRESS>///<reference<EMAIL_ADDRESS>///<reference<EMAIL_ADDRESS>
Dev dependencies:
"devDependencies": {
  "@types/angular": "^1.5.22",
  "@types/core-js": "^0.9.35",
  "@types/jquery": "^2.0.34",
  "@types/requirejs": "^2.1.28",
  ...
}

can you please share your complete repro scenario since I'm not seeing the same issue locally:
vladima@vladima-HP:~/Sources/play/9725$ tree
.
├── external
│   ├── node_modules
│   │   └── @types
│   │       └── jquery
│   │           ├── index.d.ts
│   │           ├── package.json
│   │           ├── README.md
│   │           └── types-metadata.json
│   └── package.json
├── src
│   └── app.ts
└── tsconfig.json

5 directories, 7 files
vladima@vladima-HP:~/Sources/play/9725$ cat src/app.ts
import * as jquery from "jquery";
jquery.ajaxSettings
vladima@vladima-HP:~/Sources/play/9725$ cat tsconfig.json
{
  "compilerOptions": {
    "module": "amd",
    "target": "es5",
    "sourceMap": true,
    "removeComments": true,
    "allowJs": false,
    "pretty": true,
    "experimentalDecorators": true,
    "typeRoots": [
      "external/node_modules/@types"
    ],
    "baseUrl": "./",
    "paths": {
      "*": [
        "external/node_modules/@types/*",
        "*"
      ]
    }
  },
  "files": ["src/app.ts"]
}
vladima@vladima-HP:~/Sources/play/9725$ ../ts2.1/node_modules/.bin/tsc --version
Version 2.1.4
vladima@vladima-HP:~/Sources/play/9725$ ../ts2.1/node_modules/.bin/tsc -p . --listFiles
/home/vladima/Sources/play/ts2.1/node_modules/typescript/lib/lib.d.ts
/home/vladima/Sources/play/9725/src/app.ts
<EMAIL_ADDRESS>vladima@vladima-HP:~/Sources/play/9725$

working for me locally... please provide a self contained repro, and log a new issue if the issue still persists.
that is what i see:
c:\test\9725-2>tree /F

│   tsconfig.json
│
├───external
│       package.json
│
└───src
        index.ts

c:\test\9725-2>type tsconfig.json
{
  "compilerOptions": {
    "module": "amd",
    "target": "es5",
    "sourceMap": true,
    "removeComments": true,
    "allowJs": false,
    "pretty": true,
    "experimentalDecorators": true,
    "typeRoots": [
      "external/node_modules/@types"
    ],
    "baseUrl": "./",
    "paths": {
      "*": [
        "external/node_modules/@types/*",
        "*"
      ]
    }
  }
}
c:\test\9725-2>type external\package.json
{
  "name": "test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@types/angular": "^1.5.22",
    "@types/core-js": "^0.9.35",
    "@types/jquery": "^2.0.34",
    "@types/requirejs": "^2.1.28"
  }
}

c:\test\9725-2>type src\index.ts
$.ajax({}).abort();

c:\test\9725-2>cd external

c:\test\9725-2\external>npm install
<EMAIL_ADDRESS>c:\test\9725-2\external
+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>`--<EMAIL_ADDRESS>
npm WARN<EMAIL_ADDRESS>No description
npm WARN<EMAIL_ADDRESS>No repository field.

c:\test\9725-2\external>cd ..

c:\test\9725-2>tsc --v
Version 2.1.5-insiders.20161229

c:\test\9725-2>tsc

c:\test\9725-2>echo %ERRORLEVEL%
0

Hi @mhegazy, sorry for late reply, I was away for quite a while now.
I just did the same as you have in your last post and it works now for me as well.
However I have problems importing some modules(e.g. rxjs).
I have installed it from scratch and problem persist as long as I keep node_modules in external. If I move it out, all is fine.
ts-test tree
.
|____external
| |____package.json
|____src
| |____index.ts
|____tsconfig.json

ts-test cat tsconfig.json
{
  "compilerOptions": {
    "module": "amd",
    "target": "es5",
    "sourceMap": true,
    "removeComments": true,
    "allowJs": false,
    "pretty": true,
    "experimentalDecorators": true,
    "typeRoots": [
      "external/node_modules/@types"
    ],
    "baseUrl": "./",
    "paths": {
      "*": [
        "external/node_modules/@types/*",
        "*"
      ]
    }
  }
}

ts-test cat external/package.json
{
  "name": "test",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "dependencies": {
    "@types/es6-shim": "^0.31.32",
    "rxjs": "5.0.1"
  }
}

ts-test cat src/index.ts
import { Observable } from 'rxjs/Rx';
console.log(Observable);

ts-test cd external
external yarn install
info No lockfile found.
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
[4/4] 📃  Building fresh packages...
success Saved lockfile.
✨  Done in 2.58s.

external cd ..
ts-test tsc -v
Version 2.1.4

ts-test tsc

1 import { Observable } from 'rxjs/Rx';
                             ~~~~~~~~~

src/index.ts(1,28): error TS2307: Cannot find module 'rxjs/Rx'.

I'm facing problems too (related to node_modules/%40types/node/index.d.ts'):
message: 'Subsequent variable declarations must have the same type.  Variable 'process' must be of type 'any', but here has type 'Process'.'
at: '48,13'
source: ''

message: 'Subsequent variable declarations must have the same type.  Variable '__dirname' must be of type 'any', but here has type 'string'.'
at: '53,13'
source: ''

package.json
{
  "name": "myapp",
  "version": "0.1.0",
  "main": "main.js",
  "devDependencies": {
    "@types/node": "^7.0.0",
    "typescript": "^2.1.5"
  }
}

I'm having random problems with TS 2.1.5 on VS 2015. Some of the dependencies inside @types are seen by Visual Studio, some aren't. This happens sometimes only, and I cannot pinpoint any specific reason. Yesterday things were working fine, put my laptop to sleep, today VS cannot see some types. Restarted VS and nothing.
Compilation using gulp works fine every time, but VS is very unstable.
Is there any way to debug which declarations VS is looking at?

So the same project, no changes, sometimes work others not? if so can you share the project? can you also say when it does not work? or at least what activity you have noticed to trigger this behavior more often than others.

@mhegazy Found out what was causing the issue. A node_modules folder was created deep in the project tree and that was messing with tsc. Added to the fact that VS doesn't show this folder in the list, I didn't see this before. This probably happened other times, but as I occasionally run a git reset and the issue went away.

I don't see why this is closed I am using 2.1.5 and have tried everything listed above but cannot seem to use @types/chalk , @types/commander, and @types/nedb doesnt seem to function?

Please file a new issue and provide enough details to allow us to diagnose the issue.

I'm having trouble with sub-dependencies of libraries that are properly referenced node_modules@types.
I think its unexpected that the @types process requires that every sub-library library referenced by an @types/library-name also have an @types d.ts somewhere?
The result is (for me) a long list of build errors like this:
Build:Cannot find type definition file for 'pinkie-promise'.
I'm guessing 'pinkie-promise' is a library required by one of the @types libraries. If it's a sub-dependency of one of the 'normal' dependencies, I'll have other questions.
here's the devDependencies and dependencies area of my package.json:
"devDependencies": {
    "@types/chai": ">=3.4.0",
    "@types/chai-as-promised": ">=0.0.29",
    "@types/mocha": ">=2.2.0",
    "@types/mocha-phantomjs": ">=3.4.0",
    "@types/sinon": ">=1.0.0",
    "@types/sinon-chai": ">=2.7.0",
    "@types/assert-plus": ">=0.0.0",
    "@types/assertion-error": ">=1.0.0",
    "chai": ">=3.4.0",
    "chai-as-promised": ">=0.0.29",
    "mocha": ">=2.2.0",
    "mocha-phantomjs": ">=1.9.29",
    "phantomjs": ">=2.1.0",
    "sinon": ">=1.0.0",
    "sinon-chai": ">=2.7.0",
    "assert-plus": ">=0.0.0",
    "assertion-error": ">=1.0.0"
  },
  "dependencies": {
    "@types/bluebird": "^1.0.0",
    "@types/chalk": ">=0.4.31",
    "@types/deep-equal": ">=0.0.3",
    "@types/extend": ">=2.0.0",
    "@types/form-data": ">=0.0.3",
    "@types/graceful-fs": ">=2.0.29",
    "@types/htmlparser2": ">=3.9.2",
    "@types/is-my-json-valid": ">=0.0.19",
    "@types/jquery": ">=2.0.4",
    "@types/lodash": "*",
    "@types/mime": ">=0.0.29",
    "@types/qs": ">=6.2.3",
    "@types/request": "*",
    "@types/semver": ">=5.3.0",
    "@types/which": ">=1.0.2s",
    "bluebird": ">=3.4.7",
    "chalk": ">=0.4.31",
    "deep-equal": ">=0.0.3",
    "extend": ">=2.0.0",
    "form-data": ">=1.0.0",
    "graceful-fs": ">=4.1.11",
    "htmlparser2": ">=3.9.2",
    "is-my-json-valid": ">=0.0.19",
    "jquery": ">=2.0.4",
    "lodash": "^1.0.0",
    "mime": ">=0.0.29",
    "phantomjs-polyfill": ">=0.0.2",
    "qs": ">=6.2.3",
    "request": "*",
    "semver": ">=5.3.0",
    "which": ">=1.0.2"
  }

My solution for this was to add lib.es6.d.ts to the include compiler option:
"include": [
        "node_modules/typescript/lib/lib.es6.d.ts",
        "src/**/*",
        "typings/**/*"
]

This meant that the
///<reference path="../node_modules/typescript/lib/lib.es6.d.ts"/>
doesn't get included in the generated definition file for the project, which causes problems in dependent projects.

use --lib es6 instead.

also https://github.com/Microsoft/TypeScript/issues/15732 tracks adding lib reference directives.

@mhegazy I was already using it, but it didn't help:
{
    "compilerOptions": {
        "declaration": true,
        "noImplicitAny": true,
        "noImplicitReturns": true,
        "noImplicitThis": true,
        "module": "es6",
        "moduleResolution": "node",
        "noUnusedLocals": true,
        "noUnusedParameters": false,
        "strictNullChecks": true,
        "target": "es5",
        "lib": ["es6"]
    },
    "files": [
        "src/Definitions.ts",
        "src/StringValue.ts",
        "src/TreeSortType.ts"
    ],
    "include": [
        "node_modules/typescript/lib/lib.es6.d.ts",
        "src/**/*",
        "typings/**/*"
    ]
}

Without explicitly including lib.es6.d.ts I get:
node_modules/@types/jquery/index.d.ts(191,29): error TS2304: Cannot find name 'XMLHttpRequest'.
node_modules/@types/jquery/index.d.ts(512,41): error TS2304: Cannot find name 'Event'.
node_modules/@types/jquery/index.d.ts(517,20): error TS2304: Cannot find name 'Element'.

@mhegazy Here's the project: https://github.com/viewdir/manifold (latest code on master)

That's because you are now explicitly setting --lib. Once you do that, you need to add "dom" if you depend on its types directly or transitively (as in this case via jQuery).
"lib": ["es6", "dom"]

@aluanhaddad Awesome, that solved it. Many thanks!

Sorry to necro, but I've spent a day on this and finally resolved it. It seems to be a different resolution from others here (as it's a different cause, but it is a problem related to using @types), so figured it'd be useful to add.
I am using Visual Studio 2015 and currently in the process of upgrading an old Asp.NET MVC site.
Basic plan was to upgrade Typescript to latest (2.8.3) and remove all of the manual .d.ts files referencing libraries such as jQuery. I also removed the /// references from .ts files.
I started re-adding types using: npm install --save @types/jquery - I tried referencing jQuery or $ and both were unrecognized symbols. Intellisense could find no references to these types and I could not build my solution.
Issue 1:
I realised that the older version of Typescript (1.6?) was being referenced by Visual Studio even tho I had upgraded it in the solution. I found this out by going to the Visual Studio menu: Help -> About Microsoft Visual Studio. Ensure the version of Typescript referenced in this window matches the one you have added to your solution!
Now we have some intellisense. JQuery is recognized, however it was still producing an error (module in an inaccessible location). After a lot of investigation I realised the JS files were being compiled correctly by the Typescript compiler, even with the errors, which ended up leading me to the next fix.
Issue 2:
Resharper 2016/17 incorrectly raises an error when using @types in the node_modules/@types folder. Some details on the issue are raised here: Resharper support ticket
This actually stops you from being able to build your entire project!! :(
I hope that helps someone out. Sorry if this is the wrong place to post this!

@brunolm - Your solution works for me... Thanks a lot...
The solution which i tried as per your suggestions is below :
In tsconfig.json : Corrected typeRoot values like following -> "typeRoots": ["node_modules/@types"]
{
"compilerOptions": {
"module": "commonjs",
"target": "es6",
"noImplicitAny": false,
"sourceMap": false,
"typeRoots": ["node_modules/@types"]
},
"exclude": [
"node_modules"
]
}

@mhegazy Found out what was causing the issue. A node_modules folder was created deep in the project tree and that was messing with tsc. Added to the fact that VS doesn't show this folder in the list, I didn't see this before. This probably happened other times, but as I occasionally run a git reset and the issue went away.

Hi, what do you mean by " A node_modules folder was created deep in the project tree"? And how come it's a random issue if there is always a node+modules folder?
I'm having random issue too, but during build process.I think it's related to types/jest and types/es6-shim packages..
Thanks!

What if we want to use types definitions in a library and skip having to explicitly build the library before serving the workspace ?
It gives me the issue of the types definitions being missing again.

This issue is normally resolved on my laptop by me reinstalling the node modules and then also restarting VSCode since it is incredibly buggy regarding Typescript (ironic since Microsoft develop both and still can't fix the bugs that have been around for years).

Make sure you have inside the
package.json
{
  ....
  "dependencies": {
    "module-name": "version"
  },
  "devDependencies": {
    ...
    "@types/module-name": "version" // version should be same with dependencies
  }
  ....
}

To solve this
npm i<EMAIL_ADDRESS>--save

idk

I had to comment out the types override in tsconfig.app.json, note you can use the types config here to be selective in your imports as mentioned in a previous comment
{   "extends": "../tsconfig.json",   "compilerOptions": {     "outDir": "../out-tsc/app" //    "types": []   },   "exclude": [     "test.ts",     "**/*.spec.ts"   ] }

My issue was painfully simple after spending a good amount of time on it: My @types version did not match the version of the dependency I needed the types for.


Release Cosmos 0.4.2

High Level Description
What features does this change enable? What bugs does this change fix? High-Level description of how things changed.
Related Issues

DCOS_OSS-1650 Release Cosmos (Open & EE)

Checklist for all PR's

[ ] Included a test which will fail if code is reverted but test is not. If there is no test please explain here:
[x] Read the DC/OS contributing guidelines
[x] Followed relevant code rules Rules for Packages and Systemd

Checklist for component/package updates:
If you are changing components or packages in DC/OS (e.g. you are bumping the sha or ref of anything underneath packages), then in addition to the above please also include:

[x] Change log from the last version integrated (this should be a link to commits for easy verification and review): Change Log
[x] Test Results: link to CI job test results for component
[ ] Code Coverage (if available): [link to code coverage report]

PLEASE FILL IN THE TEMPLATE ABOVE / DO NOT REMOVE ANY SECTIONS ABOVE THIS LINE
Instructions and Review Process
What is the review process and when will my changes land?
All PRs require 2 approvals using github's pull request reviews.
Reviewers should be:

Developers who understand the code being modified.
Developers responsible for code that interacts with or depends on the code being modified.

It is best to proactively ask for 2 reviews by @mentioning the candidate reviewers in the PR comments area. The responsibility is on the developer submitting the PR to follow-up with reviewers and make sure a PR is reviewed in a timely manner. Once a PR has 2 ship-it's, no red reviews, and all tests are green it will be included in the next train.

@takirala  - is there an EE counterpart for this PR.  If yes, do a bump-ee and add the EE changes to that resultant PR. If no EE specific changes are present, a mere bump-ee should be enough.

@mesosphere-mergebot bump-ee

@mesosphere-mergebot label Ready For Review

@jsancio

Closing this PR. Supposed to be merged in to 1.10 branch.


Typo paht_name in README

README states \profilepic{paht_name} which should be \profilepic{path_name}
Thank you for producing this CV template. I particularly like the way you have handled skills listings.

Thank you for your contribution. I fix it.


AsyncParquetReader Pre-Fetch Next Row Group

Is your feature request related to a problem or challenge? Please describe what you are trying to do.

The AsyncParquetReader currently fetches bytes and then performs decode, in scenarios where scanning an entire parquet file it may be beneficial to fetch data for the next row group in parallel to decoding the current row group.
Describe the solution you'd like

Describe alternatives you've considered

Additional context

One of the experiments on https://github.com/apache/arrow-rs/pull/1509/files#diff-f6b1a106d47a16504d4a16d57a6632872ddf596f337ac0640a13523dccc2d4d4R448 implemented something along these lines using a peekable stream

I think this is better handled at the query engine level, which is better placed to achieve the desired parallelism by processing the row groups in separate partitions where appropriate


create a small, test dataset and a testing suite

So that we can be sure that future changes to the code don't actually change the results of the pipeline
You should upload both to GitHub and use CI

In conversations with Graham, we decided that it would be a better idea to use the GM12878 dataset for this rather than the rat dataset. But we'll probably just want to use a single chromosome for this, so that the test dataset finishes running quickly.
Ideally, the test dataset would include both ATAC and RNA seq data and it would be able to run through the entire pipeline really quickly (ideally, 10 minutes or so). So this may even necessitate creating a small, subset of a chromosome.

Just a note that there's a Snakemake feature that actually makes this easy to do!
https://snakemake.readthedocs.io/en/stable/snakefiles/testing.html


Whitescreen issue with lastest Ionic version 3.9.2

I get a white screen after the splash screen while using this 3D touch extension. Can be reproduced with a new project from scratch. Any hints?

Solved:
I missed to enter "ThreeDeeTouch" in the providers-array in the @Component-section (app.component.ts).


Make directories recursively

This fixes https://github.com/vinissimus/next-translate/issues/217

@all-contributors please add @dhobbs for code


⚠ Bofrost.be has degraded performance

In bfdb003, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 948 ms

Resolved: Bofrost.be performance has improved in 1b4c1fb after 22 minutes.


Action shows running after all tasks finished again

Description
The same thing as here https://github.com/go-gitea/gitea/issues/26559 is happening again on version 1.21.0
Gitea Version
1.21.0
Can you reproduce the bug on the Gitea demo site?
No
Log Gist
https://gist.github.com/Nathanwoodburn/7823a4633d536d2643f3d870e5f54d2b
Screenshots

Git Version
2.40.1, Wire Protocol Version 2 Enabled
Operating System
Ubuntu 22.04.2 LTS (amd)
How are you running Gitea?
Via docker compose
version: "3.7"
services:
  mariadb:
    hostname: mariadb
    image: linuxserver/mariadb:latest
    environment:
      MYSQL_ROOT_PASSWORD: <password>
      MYSQL_DATABASE: gitea
      MYSQL_USER: gitea
      MYSQL_PASSWORD: <password>
      PUID: 1234
      PGID: 1234
      TZ: Australia/Sydney
    restart: unless-stopped
    volumes:
      - mariadb:/config

  gitea:
    container_name: gitea
    hostname: gitea
    image: gitea/gitea:latest
    environment:
      USER_UID: 1234
      USER_GID: 1234
      TZ: Australia/Sydney
      GITEA__database__HOST: 'mariadb'
      GITEA__database__USER: gitea
      GITEA__database__PASSWD: <password>
      GITEA__database__NAME: gitea
      GITEA__database__DB_TYPE: mysql
    ports:
      - 8124:3000  # Reverse proxied via nginx
      - 2222:2222  # Port forwarded on the firewall from :22
    restart: unless-stopped
    volumes:
      - gitdata:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
      - /home/git/.ssh:/data/git/.ssh
    depends_on:
      - mariadb

volumes:
  mariadb:
  gitdata:

Database
MySQL/MariaDB

Does this still reproducible in the latest release?

Sorry my server I'm running this on has died so it will be a bit before I can check

We close issues that need feedback from the author if there were no new comments for a month. :tea:

G'day,
I've just recently updated to the latest version (1.22.1 built with GNU Make 4.4.1, go1.22.5 : bindata, timetzdata, sqlite, sqlite_unlock_notify)
I haven't seen any new action runs have this issue but the old runs are still pending. Is there a way to manually cancel all the running actions. The cancel button on the action page doesn't do stop the pending action.
Here's an example running action https://git.woodburn.au/nathanwoodburn/hnshosting-wp/actions/runs/139


Mdns: Allow multiple operational advertisements

Problem
Currently we can only advertise one operational network at a time. Also, there are no tests.
Change overview

moved CheckOnlyServer into its own file and created a minimal
mdns implementation that uses the CheckOnlyServer
Added a () constructor to the CheckOnlyServer with an option
to set the test suite after.
fixed a bug where the truncated flag was not being set properly
Added a function to the response allocator to determine if
given ResourceRecord is there
Added a check at the start of operational to check for the given
SRV record in the allocator - these records are unique to each
fabric / node. If a different fabric/node is identified, the
Advertise feature will start a new query responder to append
records rather than replacing.
added tests for operational mdns records with single and multiple
fabrics.

Testing
Unit tests added in this PR. Tested on M5 using avahi - operational advertisements are correct and verified by wireshark.

@cecille When you get a chance to do the ranged for updates and rebase to tip (to fix the CI failures that are due to old tip failing CI due to a merge conflict, that would be much appreciated).  Rebasing on top of b77bfb047374b7013dbdf688f542b9326842a39e specifically should give green CI....

Can we avoid building the same source files twice?

See https://eel.is/c++draft/basic.def.odr#:one-definition_rule
If you want more than one variant of a class and you want to avoid runtime polymorphism, the tool you need to use in C++ is templates.

Yeah, that's going to be a major change and multiple days to fight the build system. This will need a re-review.

@mspang - are you OK with this new version? Can you take a peek while I try to figure out what the heck is going on with the cloud stuff?


Caused by: java.lang.ArrayIndexOutOfBoundsException: 29

Hi, I'm trying to use the plugin to push my code coverage to coveralls, but when I try running ./gradlew jacocoTestReport coverallsJacoco, I keep getting a weird task failed > 29. Here is the stacktrace:
* What went wrong:
Execution failed for task 'coverallsJacoco'.
> 29

* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Exception is:

org.gradle.api.tasks.TaskExecutionException: Execution failed for task 'coverallsJacoco'.
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:208)
        at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:263)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:206)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:187)
        at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:114)
        at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:62)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
        at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:409)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:399)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:157)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:242)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:150)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:94)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
        at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:41)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:372)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:359)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:352)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:338)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 29
        at org.gradle.plugin.coveralls.jacoco.SourceReportParser.parse(SourceReportParser.kt:88)
        at org.gradle.plugin.coveralls.jacoco.CoverallsReporter.report(CoverallsReporter.kt:43)
        at org.gradle.plugin.coveralls.jacoco.CoverallsJacocoPlugin$apply$1$1.execute(CoverallsJacocoPlugin.kt:20)
        at org.gradle.plugin.coveralls.jacoco.CoverallsJacocoPlugin$apply$1$1.execute(CoverallsJacocoPlugin.kt:13)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:731)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:704)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.run(ExecuteActionsTaskExecuter.java:570)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:395)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:387)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:157)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:242)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:150)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:84)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:555)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:538)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$300(ExecuteActionsTaskExecuter.java:109)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.executeWithPreviousOutputFiles(ExecuteActionsTaskExecuter.java:279)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:268)
        at org.gradle.internal.execution.steps.ExecuteStep.lambda$execute$1(ExecuteStep.java:33)
        at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:33)
        at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:26)
        at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:67)
        at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:36)
        at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:49)
        at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:34)
        at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:43)
        at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:73)
        at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:54)
        at org.gradle.internal.execution.steps.CatchExceptionStep.execute(CatchExceptionStep.java:34)
        at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:44)
        at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:54)
        at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:38)
        at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:49)
        at org.gradle.internal.execution.steps.CacheStep.executeWithoutCache(CacheStep.java:159)
        at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:72)
        at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:43)
        at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:44)
        at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:33)
        at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:38)
        at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:24)
        at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:92)
        at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:85)
        at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:55)
        at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:39)
        at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:76)
        at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:37)
        at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:36)
        at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:26)
        at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:94)
        at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:49)
        at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:79)
        at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:53)
        at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:74)
        at org.gradle.internal.execution.steps.SkipEmptyWorkStep.lambda$execute$2(SkipEmptyWorkStep.java:78)
        at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:78)
        at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:34)
        at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:39)
        at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:40)
        at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:28)
        at org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:33)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:195)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:187)
        at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:114)
        at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:62)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
        at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:409)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:399)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:157)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:242)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:150)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:94)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
        at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:41)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:372)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:359)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:352)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:338)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)

It is worth noting that my project uses kotlin multiplatform and I am only testing the common code. Jacoco is already configured correctly and my coveralls block looks like:
coverallsJacoco {
    reportPath = "${buildDir}/reports/jacocoTestReport/jacocoTestReport.xml"
    reportSourceSets = files([
            "src/commonMain/kotlin"
    ])
}

Hi, thanks for reporting. Seems like the coverage reported by jacoco and the source file are having a line count mismatch.
Could you perhaps run the task with --debug enabled it should give more insight into which file caused the problem.
Alternatively, if the project is publicly available, I can take a look.

Unfortunately the project is private. I did the command with --debug and it seems that the file in question has 29 lines (the 29th line is an end of file new line) but the jacocoReport seems to report only 28 lines, like its ignoring the EOF new line. Could that be the problem?
The plugin seems to crash at line cov.forEach { (line, hits) -> lineHits[line] = hits } with an arrayOutOfBounds 29. So it does look like the plugin sees the new line which might not be present in the coverage file

Exactly my guess. The line actually comes from jacocoTestReport.xml where it's listed. There you should find the file and all the lines reported and perhaps in the report it's using line 29. Could be also a bug with readlines() and it'll probably trim the whitespace/newline.
My guess is the latter. Though it's just weird why the report would have a blank line covered.

I'm wondering if we should safeguard the line cov.forEach { (line, hits) -> lineHits[line] = hits } by changing it into:
cov.forEach { (line, hits) ->
   if (line < lineHits.size) {
      lineHits[line] = hits
   }
}

It shouldn't change anything in theory and will prevent weird crashes with EOF lines. What do you think?

I thought about it as well, and would be a straightforward defensive code block. However, it's still not addressing the real issue (which might even be a bigger bug) that a new-line is never reported in the jacocoReport and the index of 29 states that the report was parsed with a line number of 30 in the jacoco report. This condition should ideally never happen.
Would it be possible to share the jacocoReport itself and/or the <sourcefile name="MyFile.kt"> block either here or privately for further debugging?
Thanks.

I'm not sure I can share the whole jacoco report because of the package names and everything, but here is the contents of the class (package name redacted, but all the rest, including empty lines, are the same as in the project:
package foobar.sdk.model.configuration.timetable

import foobar.sdk.model.status.StatusEvent
import kotlinx.serialization.KSerializer
import kotlinx.serialization.builtins.ListSerializer
import kotlinx.serialization.descriptors.PrimitiveKind
import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor
import kotlinx.serialization.descriptors.SerialDescriptor
import kotlinx.serialization.encoding.Decoder
import kotlinx.serialization.encoding.Encoder
import kotlinx.serialization.json.JsonDecoder
import kotlinx.serialization.json.jsonArray
import kotlinx.serialization.json.jsonObject

class TimetableDeserializer : KSerializer<TimetableEntity> {
    override fun deserialize(decoder: Decoder): TimetableEntity =
        (decoder as JsonDecoder).let { jsonDecoder ->
            TimetableEntity(jsonDecoder.decodeJsonElement().jsonObject.mapValues {
                jsonDecoder.json.decodeFromJsonElement(ListSerializer(StatusEvent.serializer()), it.value.jsonArray)
            })
        }

    override val descriptor: SerialDescriptor =
        PrimitiveSerialDescriptor("Timetable", PrimitiveKind.STRING)

    override fun serialize(encoder: Encoder, value: TimetableEntity) =
        encoder.encodeSerializableValue(TimetableEntity.serializer(), value)
}

It is also worth noting that the coverage tool with codecov is working in this project. I can't be sure why it's working since the parsing happens in their backend though.

I would anyhow work on perhaps skipping with a warning lines not encountered within the source, though I find it quite strange that this happens at all 😕

Oh ok. Here is the appropriate part of the jacoco report:
<sourcefile name="TimetableDeserializer.kt">
    <line nr="15" mi="8" ci="0" mb="0" cb="0"/>
    <line nr="17" mi="12" ci="0" mb="0" cb="0"/>
    <line nr="18" mi="12" ci="0" mb="0" cb="0"/>
    <line nr="19" mi="19" ci="0" mb="0" cb="0"/>
    <line nr="21" mi="1" ci="0" mb="0" cb="0"/>
    <line nr="23" mi="3" ci="0" mb="0" cb="0"/>
    <line nr="24" mi="7" ci="0" mb="0" cb="0"/>
    <line nr="27" mi="7" ci="0" mb="0" cb="0"/>
    <line nr="30" mi="15" ci="0" mb="0" cb="0"/>
    <line nr="31" mi="19" ci="0" mb="0" cb="0"/>
    <line nr="32" mi="10" ci="0" mb="2" cb="0"/>
    <line nr="33" mi="7" ci="0" mb="0" cb="0"/>
    <line nr="35" mi="1" ci="0" mb="0" cb="0"/>
    <counter type="INSTRUCTION" missed="136" covered="0"/>
    <counter type="BRANCH" missed="2" covered="0"/>
    <counter type="LINE" missed="13" covered="0"/>
    <counter type="COMPLEXITY" missed="6" covered="0"/>
    <counter type="METHOD" missed="5" covered="0"/>
    <counter type="CLASS" missed="1" covered="0"/>
</sourcefile>

If we don't find the reason for this soon, I would just like you to know that I forked the project to test if my safeguard would show us additional problems. Turns out, the plugin works perfectly with the safeguard :)

Thanks a lot for provided the appropriate data, it's still super weird these lines:
   <line nr="30" mi="15" ci="0" mb="0" cb="0"/>
    <line nr="31" mi="19" ci="0" mb="0" cb="0"/>
    <line nr="32" mi="10" ci="0" mb="2" cb="0"/>
    <line nr="33" mi="7" ci="0" mb="0" cb="0"/>
    <line nr="35" mi="1" ci="0" mb="0" cb="0"/>

since no such lines exist on source, perhaps the kotlin compiler is inflating the source (it has its nuances with data classes and inline constructs).
Glad to know that the safeguard fixed it for you, I'd release a fix for it over the weekend :)
If you'd like you can also submit the PR and we can merge it together

Thank you so much for your time and help! And I agree that the report is super weird. I can't help but wonder why it sees lines that are not present in the source file 🤷

Thank you for your time as well!

v1.2.4 is now released with the fix