text:
Move custom additions to the top

I find myself using the custom additions much more frequent than built actions. I believe this is true to a lot of others as well. So this PR tries to move them to the top so they are more accessible.

I've been meaning to do this! Thanks!

Weird, I don't see the merge button on the Mobile app… hmm

authors: NSExceptional matrush

repo: Flipboard/FLEX


text:
Null pointer exception with recyclerview

I'm wrapping BottomSheetLayout around a LinearLayout that contains a RecyclerView (which is populated with RelativeLayouts). To test it, I'm calling
BottomSheetLayout bottomSheet = (BottomSheetLayout) v.findViewById(R.id.bottomsheet);
    bottomSheet.showWithSheetView(inflater.inflate(R.layout.fragment_layout, bottomSheet, false));

at the end of the fragment's onCreateView(), after the recyclerview has already been set up.
However, this ends up breaking the RecyclerView, as any touch input causes this stack trace:
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.support.v7.widget.RecyclerView$LayoutManager.canScrollVertically()' on a null object reference
        at android.support.v7.widget.RecyclerView.computeVerticalScrollOffset(RecyclerView.java:1540)
        at android.view.View.canScrollVertically(View.java:12835)
        at android.support.v4.view.ViewCompatICS.canScrollVertically(ViewCompatICS.java:35)
        at android.support.v4.view.ViewCompat$ICSViewCompatImpl.canScrollVertically(ViewCompat.java:1161)
        at android.support.v4.view.ViewCompat.canScrollVertically(ViewCompat.java:1575)
        at android.support.v4.widget.SwipeRefreshLayout.canChildScrollUp(SwipeRefreshLayout.java:643)
        at android.support.v4.widget.SwipeRefreshLayout.onInterceptTouchEvent(SwipeRefreshLayout.java:657)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1960)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2049)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2049)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2049)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2049)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2049)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2049)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2049)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2049)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2049)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2049)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2049)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2049)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2049)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2049)
        at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2369)
        at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1719)
        at android.app.Activity.dispatchTouchEvent(Activity.java:2742)
        at android.support.v7.internal.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:60)
        at android.support.v7.internal.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:60)
        at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2330)
        at android.view.View.dispatchPointerEvent(View.java:8666)
        at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4123)
        at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3989)
        at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3544)
        at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3597)
        at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3563)
        at android.view.ViewRootImpl$AsyncInputStage.forward

Here's a screenshot of what happens:

I don't think this is a bug on our end. I can't say for sure from looking at your stacktrace what's wrong with it (I'm able to use recyclerview in a sheet just fine on an internal project).
I would hazard a guess though that it has something to do with SwipeRefreshLayout, which would almost certainly not work as desired with bottom sheet. Not too familiar with its implementation under the hood, but I could imagine a case where it tries to get a view under a certain x/y position and (perhaps mistakenly) assumes that result is never null. Try removing that wrapper and see if that helps.

You were right! Removing the ScrollView fixed the NullPointerException.
My data to populate the RecyclerView still isn't showing though. I'm fetching it via an Otto event. Do you have any idea why adding BottomSheetLayout would cause this?

I have no idea :/. Could you share a snippet of your fragment_layout file or overview of your view hieararchy? FWIW I had trouble when trying to nest it in a nestedscrollview (Google can't seem to make up their mind on if they support this or not).

Sure! Here's my fragment_layout file:
<com.flipboard.bottomsheet.BottomSheetLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/bottomsheet"
android:layout_width="match_parent"
android:layout_height="match_parent">

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/linear_layout_base"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.lumivote.lumivote.ui.votes_tab.VotesFragment">

        <android.support.v7.widget.RecyclerView
            android:id="@+id/recycler_view"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            app:layout_behavior="@string/appbar_scrolling_view_behavior" />

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/relative_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="?android:attr/selectableItemBackground"
        android:orientation="horizontal"
        android:paddingBottom="@dimen/rv_padding">

        <TextView
            android:id="@+id/leftTitle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_alignParentTop="true"
            android:paddingLeft="@dimen/rv_padding"
            android:paddingRight="@dimen/padding_between_main_and_right"
            android:paddingTop="@dimen/rv_padding"
            android:textSize="@dimen/main_text_size" />

        <TextView
            android:id="@+id/leftDescription"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_below="@id/leftTitle"
            android:paddingLeft="@dimen/rv_padding"
            android:paddingRight="@dimen/padding_between_main_and_right"
            android:textSize="@dimen/description_text_size"
            android:textStyle="italic" />

        <TextView
            android:id="@+id/mainTitle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:paddingEnd="@dimen/rv_padding"
            android:paddingRight="@dimen/rv_padding"
            android:paddingTop="@dimen/rv_padding"
            android:textSize="@dimen/main_text_size" />

        <TextView
            android:id="@+id/mainDescription"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:paddingEnd="@dimen/rv_padding"
            android:paddingRight="@dimen/rv_padding"
            android:textSize="@dimen/description_text_size" />

    </RelativeLayout>

</LinearLayout>

</com.flipboard.bottomsheet.BottomSheetLayout>
Also, I don't know if this is weird but I noticed you graduated from UT last year... I'm from Plano, so I have a lot of friends that go to UT haha

Not weird at all, world needs more Texans :)
So looking at that, nothing stands out to me as an obvious reason why it might not be loading, especially if you're able to get the sheet showing without any problems. My suggested debugging steps would be as follows:

Breakpoint your adapter and see if the appropriate onBindViewHolder and onCreateViewHolder methods are actually being hit.
Remove the sheet wrapper and see if it still doesn't work

Also, I just realized that you're not trying to put the recyclerview in the sheet, which totally changes things. You can enable interacting with views outside the sheet via BottomSheetLayout#setInterceptContentTouch(boolean), then your swipe refresh layout should hopefully work since the sheet won't intercept those touches.. Sorry for the confusion!

Hm, alright, thanks for your help and quick responses anyways. I guess I'll spend the rest of the night figuring this out :+1:
Feel free to close the issue since it seems to be a problem on my end

Happy to help. Let me know if disabling the interceptContentTouch flag fixes the initial issue as well

Finally figured it out!!! Issue was having the RecyclerView item layout in the fragment layout itself. I moved it out into a separate file to inflate within onCreateViewHolder().
Doing it this way also means the SwipeRefreshLayout now works without disabling the interceptContent Touch flag

Good to hear, glad you were able to figure it out!

I'll see if I can make some contributions to BottomSheet after I finish my project. This seems like a fun lib to work on

Contributions are always welcome! Take a look at the issue tracker to see some of the implementations we're looking to add in the near future

you use RecyclerView  must use a LayoutManager,
such as
   LinearLayoutManager layoutManager = new LinearLayoutManager(context);         layoutManager.setOrientation(LinearLayoutManager.VERTICAL);         mRecyclerView.setLayoutManager(layoutManager);
i meet the same problem and solve the problem .

source: gharchive/issue

authors: alexdao hzsweers yanbin92

repo: Flipboard/bottomsheet

license_type: permissive

license_source: bigquery


text:
Minimal test of lines attached to a rigid body

We have been detecting some issues on the OpenFOAM wrapper, so I created this test to grant it is not a problem on MoorDyn

Effectively, when the body has a non null COG errors happens. That might be related with the logic, so I must check it

source: gharchive/pull-request

repo: FloatingArrayDesign/MoorDyn

license_source: github-api


text:
Polling Provider error

Bot cannot gather informations. Server is online and informations are provided by different other services.
PLAYER_COUNT_PROVIDER = steam-query
GAME_TYPE = dayz
GAME_QUERY_PORT = 2305
GAME_IP = MY-IPV4-SERVERADDRESS
Starting Discord Bot...
Logged in as ***bot#8811!
App setup done...
PollingProvider errored, retrying in 4 seconds for max 15 tries (1. try). Error: Failed all 2 attempts
PollingProvider errored, retrying in 6 seconds for max 15 tries (2. try). Error: Failed all 2 attempts
PollingProvider errored, retrying in 8 seconds for max 15 tries (3. try). Error: Failed all 2 attempts
PollingProvider errored, retrying in 10 seconds for max 15 tries (4. try). Error: Failed all 2 attempts
PollingProvider errored, retrying in 12 seconds for max 15 tries (5. try). Error: Failed all 2 attempts
PollingProvider errored, retrying in 14 seconds for max 15 tries (6. try). Error: Failed all 2 attempts
PollingProvider errored, retrying in 16 seconds for max 15 tries (7. try). Error: Failed all 2 attempts
PollingProvider errored, retrying in 18 seconds for max 15 tries (8. try). Error: Failed all 2 attempts
PollingProvider errored, retrying in 20 seconds for max 15 tries (9. try). Error: Failed all 2 attempts
PollingProvider errored, retrying in 22 seconds for max 15 tries (10. try). Error: Failed all 2 attempts
PollingProvider errored, retrying in 24 seconds for max 15 tries (11. try). Error: Failed all 2 attempts
PollingProvider errored, retrying in 26 seconds for max 15 tries (12. try). Error: Failed all 2 attempts
PollingProvider errored, retrying in 28 seconds for max 15 tries (13. try). Error: Failed all 2 attempts
PollingProvider errored, retrying in 30 seconds for max 15 tries (14. try). Error: Failed all 2 attempts
PollingProvider errored, retrying in 32 seconds for max 15 tries (15. try). Error: Failed all 2 attempts

Hi 👋 Sorry for not coming back to you any sooner. Could you please provide the server IP address you try to set the bot up for? :)

authors: FlorianSW bruunooh

repo: FlorianSW/discord-player-count-bot

license: MIT


text:
Tile for August Webinar

Related Issue
No response
Description
Considerations:
Date: August 28
Usual time
Presented by: steve
Title: TBD (@Hasmin-AC will confirm today or tomorrow)

@Hasmin-AC, please check that the information is correct. I can update the title if you have it today before 6 PM (GMT+2). Otherwise, @joepavitt, would you mind updating the title if it's defined by tomorrow or Friday? I'll be OOO those days.
@Steve-Mcl, I found that job title in an old tile, but on the team page, it says Senior Software Developer. Which one should we use?

The final title is "Managing Distributed Node-RED Deployments on the Edge" . Thanks!

Hi @@Hasmin-AC here's the updated tile

authors: Hasmin-AC Yndira-E

repo: FlowFuse/website


text:
doc: Add instructions for utilizing the pre-staging environment

Description
This Pull Request extends development documentation by adding information about the possibility of validating changes before emerging to the main branch.
Related Issue(s)

Checklist

[x] I have read the contribution guidelines
[ ] I have considered the performance impact of these changes
[ ] Suitable unit/system level tests have been added and they pass
[ ] Documentation has been updated

Why can't we do this for every PR - why does it need the manual step of adding a label?

@joepavitt because so far we choose not to.
I believe that for many PRs the test env would go untouched because the PR has been tested locally and the nature of the change doesn't require a dedicated env for further manual testing. We would be throwing money at AWS for no value in return.
If we decided it was worthwhile spinning up on every PR we could do so. I don't think that's necessary today.

@joepavitt because not every change needs a K8s environment to test it

@joepavitt  AFAIR this was the main expectation - to have a possibility to verify changes which may break the staging environment.  Not all of them will tend to do this and can be merged and deployed to staging without validation on the pre-staging environment.
@ZJvandeWeg as it is mentioned in the docs, This environment is terminated upon PR merging or closure.

To be more clear - from the infrastructure perspective, an environment is in fact FlowFuse Cloud instance running on an existing EKS cluster we use for the staging environment. No new AWS resources are created.

Can we just sanity check one thing, fairly sure it's covered by the synchronise event, but if the base main branch is updated, would we auto-deploy the relevant changes to any open PRs?
Thinking of a situation where we have potentially clashing PRs. When one is merged (having been verified in staging) that would update main, an associated PR should have it's staging environment also updated to reflect the latest main.

Let's get 1. and 2. ticked of please @ppawlowski

authors: hardillb joepavitt knolleary ppawlowski


text:
[Staff]: Android アプリの CD の作成

関連するもの
App
タスクの種類
Improvement
概要
本番用アプリを Google Play Console の内部テストにアップロードする GitHub Actions のワークフローを作成します。
そのために次のことを実施予定。

[ ] Google Play Console にアプリを作成
[ ] Android のパッケージ名を確認
[ ] Google Cloud Platform でサービスアカウントを作成して GitHub Actions の secrets へ設定
[ ] アプリのコンテンツに関する情報の設定
[ ] テスターのメーリングリストの作成
[ ] アップロード鍵を作成して GitHub Actions の secrets へ設定
[ ] アップロード鍵を使用して手元で署名して初回の手動アップロード
[ ] 本番用アプリを Google Play Console の内部テストにアップロードする GitHub Actions のワークフローを作成

参考文献
No response

パッケージ名
jp.flutterkaigi.2024.conf


text:
Add penalized loss function and integrate with fit/update

PR to master - do not merge.

Codecov Report

Merging #178 (52b987d) into master (a40bdfd) will increase coverage by 0.60%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #178      +/-   ##
==========================================
+ Coverage   90.74%   91.34%   +0.60%
==========================================
  Files           8        9       +1
  Lines         216      231      +15
==========================================
+ Hits          196      211      +15
  Misses         20       20

Impacted Files
Coverage Δ

src/common.jl
96.77% <100.00%> (+0.22%)
:arrow_up:

src/core.jl
90.00% <100.00%> (-0.79%)
:arrow_down:

src/penalized_losses.jl
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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

authors: ablaom codecov-commenter


text:
Two labels of mushroom

http://purl.obolibrary.org/obo/FOODON_00001287 mushroom has two rdfs:label, both values are 'mushroom' but one with datatype string, the other with language: en. Is it better to remove the label with datatype string to make it consistent with other FOODON terms?
In addition, FOODON:mushroom hasSynonym: wild mushroom; fungi. All mushroom is Fungi but not all Fungi is mushroom. In addition, not all wild mushroom is food source. It can be fixed by changing it to boardsynonym.

Thanks for catching that!  I've dropped the one originating in Envo.  Will look at the fungi/mushroom issue shortly....

So we could say
FOODON:mushroom hasBroadSynonym: fungi
and
FOODON:mushroom hasNarrowSynonym: wild mushroom
and leave it at that?
Side note: we do have "wild mushroom (raw)" as a food product term in our SIREN food product slim (its not integrated into foodon.owl yet because we need to clean it up first, but it will provide FoodOn ids for its 9600+ food products).  The "wild" part is of course referencing where it is gathered which is enough to get it treated as a food product category.  However, it is still appropriate to have "mushroom" have a narrow synonym "wild mushroom".
A more linguistic treatment would introduce the pattern "[food source] and gathered from undomesticated location" = "wild [food source]".  It does look like we need to define the concept of wild = found or gathered food, vs. "domesticated" = farmed, herded etc, probably in FoodOn.  There are lots of "wild" food products.

Also I just looked at the definitions of "mushroom" and "edible mushroom" in Wikipedia.  I think FoodOn can use the straight "mushroom" defn.

any more feedback?

All proposed changes look good to me.

repo: FoodOntology/foodon


text:
Add test for C identifier rules

My apologies for creative tests which make your code suffer.

This is a right direction, but at least some of the failures are caused by the simplicity of the lexer we've taken from the Yoakke library, which doesn't support Unicode, yet.
We may either improve Yoakke lexer (I think that the author would approve that), or just make our own.
I guess I could merge these (in disabled state) and open an issue for someone to pick up (or I can work on this myself later).

After looking at what Roslyn does, I think all "lexers" which are trying to emulate YACC is doomed to fail for compilers.
That idea was only confirmed by https://www.youtube.com/watch?v=wSdV1M7n4gQ
At least 2 languages C# and TypeScript share this philosophy. (What a conicidence). Interestig to hear how other languages look at this problem.
So in short, I definitely propose create own parsers, and our own tokens (also, Yoakke missing whitespaces during lexing phase) but for now that's overkill.

To clarify: yes, we could migrate to a more advanced parser in the future (this project is not an example of using a parser generator). And, yeah, I would like Cesium to fully support Unicode and every strange glyph in a sensible manner.

repo: ForNeVeR/Cesium


text:
🛑 Website is down

In c6042bf, Website (http://www.fourfats.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Website is back up in c62a863 after 29 minutes.

repo: FourFats/uptime


text:
ODrive could not open UART port

Hello. I'm using ROS2 Foxy on my laptop with Ubuntu 20.04. When I try to launch the node, it gives me error: ODrive could not open UART port. I want to use it using USB communication. Could you please tell me any solution? Thank you!

@atuka1998 I'm having the same issue , Did you found out how to solve it ?


text:
Do embedding need to train first?

Sorry to ask that, I use the embedding of TensorFlow to get the encode of molecular vocab. It use the vocab of atom like "COCN"
But each time, It result in very  arbitrary  of number. Do it really the true number that represent for it vocab or not?

I am also aware the the word2vec is needed in here. but I have the dictionary of chemical vocab (follow the step as you make) I don't sure is it enough or just the begging method to go.
I am the beginner on this field If any word that don't make sense please forgive for me.


text:
Loading rows in batches

Hey @FranzDiebold
Great work on the library!
Wanted to know if there's a way we can fetch only a few rows at a time.
My Use Case:
I have a very large sheet (about 5,000 rows). And I want to display data of only 10 rows at a time.
Following a trigger, I would want to load the next 10 rows and so on...
Is that possible using this library?

Hi @ankushgarg1998 ,
thanks for your appreciation! 🎉
I understand your use case!
However, it is not possible to load data batch-wise in ng-google-sheets-db.
Technical background:
Under the hood, the Google Sheets API is used. It supports partial data loading using the "A1" syntax, but unfortunately groups are not supported (i.e. first row and row 30-39). Since the first row is used as header to infer the attribute names, it would not be possible to i.e. load items 30-39 including the header in one request. So either two requests or an internal state would be needed.
Nevertheless, I want to save this in the feature request list in the wiki so that it doesn't get lost! 😉

Understood. Thanks :D


text:
Fluent Node DSL

This PR adds a fluent node DSL to quickly build up a tree of CPG nodes. This can be used for unit tests or any occasion you quickly want to spin up a tree of CPG nodes that are independent of the underlying programming language. This is useful if you want to test the behaviour of some passes purely on the CPG tree, rather than a concrete program. It purely creates an AST using the CPG nodes, and does not fill any of the properties that are populated by passes, such as INVOKES or REFERS_TO, basically emulating what a LanguageFrontend does.
It also introduces a new interface called ArgumentHolder, similar to the existing StatementHolder and DeclarationHolder concepts.
A simple example can be found in the DslTest class but looks similar to the following:
with(TestLanguageFrontend()) {
    translationUnit("file.cpp") {
        function("main") {
            body {
                declare { variable("a") { literal(1) } }
                returnStmt { ref("a") + literal(2) }
            }
        }
    }
}

Ready for initial review. I would add more nodes as we need them or are we missing essentials for the test in core, @KuechA?

repo: Fraunhofer-AISEC/cpg


text:
How to get individual click from selected items?

How to get individual click from selected items? From multiedit text how can I get individual item click?
Please reply as soon as possible.

I added a commit which allows you to listen to bubble clicks. I haven't tested it on different devices but it works well on my Nexus 5.

repo: FrederickRider/AutoCompleteBubbleText


text:
API error when playing anything

Description
Sometimes when I try to play something though a Red bot, there's a bit of time out and then I get an error where the bot returns this
Lavalink API returned an unsupported response, Please report it.Query: http://localhost:2333/loadtracks?identifier=https%3A//www.youtube.com/watch%3Fv%3DyzC4hFK5P3g{'timestamp': '2020-04-18T21:34:55.691+0000', 'status': 503, 'error': 'Service Unavailable', 'message': 'Service Unavailable', 'path': '/loadtracks', 'query': 'https://www.youtube.com/watch?v=yzC4hFK5P3g', 'encodedquery': 'http://localhost:2333/loadtracks?identifier=https%3A//www.youtube.com/watch%3Fv%3DyzC4hFK5P3g', 'loadType': <LoadType.LOAD_FAILED: 'LOAD_FAILED'>}Query: http://localhost:2333/loadtracks?identifier=https%3A//www.youtube.com/watch%3Fv%3DyzC4hFK5P3g{'timestamp': '2020-04-18T21:40:43.726+0000', 'status': 503, 'error': 'Service Unavailable', 'message': 'Service Unavailable', 'path': '/loadtracks', 'query': 'https://www.youtube.com/watch?v=yzC4hFK5P3g', 'encodedquery': 'http://localhost:2333/loadtracks?identifier=https%3A//www.youtube.com/watch%3Fv%3DyzC4hFK5P3g', 'loadType': <LoadType.LOAD_FAILED: 'LOAD_FAILED'>}

Version info
Client used:
Output of java -jar Lavalink.jar --version:
Version:        e270ec688cbad900d9de292a9e615f15c48a9a82-SNAPSHOT
Build:          986
Build time:     23.03.2020 20:28:53 UTC
Branch          BullyJava11
Commit:         e270ec6
Commit time:    23.03.2020 19:56:15 UTC
JVM:            13.0.2
Lavaplayer      1.3.38

2020-04-18 23:23:04.246  INFO 82 --- [main] lavalink.server.Launcher                 : Starting Launcher on 8cdd9ea71b96 with PID 82 (/data/cogs/Audio/Lavalink.jar started by docker in /data/cogs/Audio)
2020-04-18 23:23:04.252  INFO 82 --- [main] lavalink.server.Launcher                 : No active profile set, falling back to default profiles: default
2020-04-18 23:23:05.327  WARN 82 --- [background-preinit] o.s.h.c.j.Jackson2ObjectMapperBuilder    : For Jackson Kotlin classes support please add "com.fasterxml.jackson.module:jackson-module-kotlin" to the classpath
2020-04-18 23:23:14.400  WARN 82 --- [main] io.undertow.websockets.jsr               : UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
2020-04-18 23:23:14.602  INFO 82 --- [main] io.undertow.servlet                      : Initializing Spring embedded WebApplicationContext
2020-04-18 23:23:14.603  INFO 82 --- [main] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 9978 ms
2020-04-18 23:23:17.873  WARN 82 --- [main] l.server.config.SentryConfiguration      : Turning off sentry
2020-04-18 23:23:17.899  INFO 82 --- [main] l.s.c.AudioSendFactoryConfiguration      : OS: Linux, Arch: arm
2020-04-18 23:23:17.900  WARN 82 --- [main] l.s.c.AudioSendFactoryConfiguration      : This system and architecture appears to not support native audio sending! GC pauses may cause your bot to stutter during playback.
2020-04-18 23:23:19.974  INFO 82 --- [main] c.s.d.l.tools.GarbageCollectionMonitor   : GC monitoring enabled, reporting results every 2 minutes.
2020-04-18 23:23:22.944  INFO 82 --- [main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2020-04-18 23:23:25.942  INFO 82 --- [main] org.xnio                                 : XNIO version 3.3.8.Final
2020-04-18 23:23:26.000  INFO 82 --- [main] org.xnio.nio                             : XNIO NIO Implementation Version 3.3.8.Final
2020-04-18 23:23:26.350  INFO 82 --- [main] o.s.b.w.e.u.UndertowServletWebServer     : Undertow started on port(s) 2333 (http) with context path ''
2020-04-18 23:23:26.377  INFO 82 --- [main] lavalink.server.Launcher                 : Started Launcher in 26.469 seconds (JVM running for 30.917)
2020-04-18 23:23:26.695  INFO 82 --- [XNIO-1 task-1] io.undertow.servlet                      : Initializing Spring DispatcherServlet 'dispatcherServlet'
2020-04-18 23:23:26.698  INFO 82 --- [XNIO-1 task-1] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2020-04-18 23:23:26.754  INFO 82 --- [XNIO-1 task-1] o.s.web.servlet.DispatcherServlet        : Completed initialization in 54 ms
2020-04-18 23:23:26.910  INFO 82 --- [XNIO-1 task-1] l.server.io.HandshakeInterceptorImpl     : Incoming connection from /127.0.0.1:51882
2020-04-18 23:23:26.910  INFO 82 --- [XNIO-1 task-2] l.server.io.HandshakeInterceptorImpl     : Incoming connection from /127.0.0.1:51880
2020-04-18 23:23:28.030  INFO 82 --- [XNIO-1 task-1] lavalink.server.io.SocketServer          : Connection successfully established from /127.0.0.1:51882
2020-04-18 23:23:28.032  INFO 82 --- [XNIO-1 task-2] lavalink.server.io.SocketServer          : Connection successfully established from /127.0.0.1:51880
2020-04-18 23:25:19.976  WARN 82 --- [lava-daemon-pool-manager-3-thread-1] c.s.d.l.tools.GarbageCollectionMonitor   : Suspicious GC results for the last 2 minutes: [Bucket 0 = 18] [Bucket 20 = 1] [Bucket 50 = 0] [Bucket 200 = 1] [Bucket 500 = 0] [Bucket 2000 = 0]
2020-04-18 23:29:00.456  INFO 82 --- [XNIO-1 task-3] l.server.player.AudioLoaderRestHandler   : GET /loadtracks
2020-04-18 23:29:00.617  INFO 82 --- [XNIO-1 I/O-4] lavalink.server.io.SocketServer          : {"op": "voiceUpdate", "guildId": "701105975498637364", "sessionId": "a79efcecb749a2f8207b8b8d5b4ce3fb", "event": {"token": "bbdfd78161bb6317", "guild_id": "701105975498637364", "endpoint": "eu-west599.discord.media:80"}}
2020-04-18 23:29:01.287  INFO 82 --- [parallel-2] com.jcabi.manifests.Manifests            : 65 attributes loaded from 81 stream(s) in 423ms, 65 saved, 1177 ignored: ["Archiver-Version", "Automatic-Module-Name", "Bnd-LastModified", "Build-Jdk", "Build-Jdk-Spec", "Built-By", "Bundle-Activator", "Bundle-Description", "Bundle-DocURL", "Bundle-License", "Bundle-ManifestVersion", "Bundle-Name", "Bundle-RequiredExecutionEnvironment", "Bundle-SymbolicName", "Bundle-Vendor", "Bundle-Version", "Created-By", "Export-Package", "Extension-Name", "Implementation-Build", "Implementation-Build-Date", "Implementation-Title", "Implementation-URL", "Implementation-Vendor", "Implementation-Vendor-Id", "Implementation-Version", "Import-Package", "Include-Resource", "JCabi-Build", "JCabi-Date", "JCabi-Version", "Jar-Name", "Jar-Version", "Java-Vendor", "Java-Version", "Kotlin-Runtime-Component", "Kotlin-Version", "Log4jReleaseKey", "Log4jReleaseManager", "Log4jReleaseVersion", "Magma-Version", "Main-Class", "Manifest-Version", "Multi-Release", "Originally-Created-By", "Os-Arch", "Os-Name", "Os-Version", "Private-Package", "Provide-Capability", "Require-Capability", "Scm-Connection", "Scm-Revision", "Scm-Url", "Specification-Title", "Specification-Vendor", "Specification-Version", "Spring-Boot-Classes", "Spring-Boot-Lib", "Spring-Boot-Version", "Start-Class", "Tool", "X-Compile-Source-JDK", "X-Compile-Target-JDK", "url"]
2020-04-18 23:29:05.143  INFO 82 --- [lava-daemon-pool-info-loader-2-thread-1] lavalink.server.player.AudioLoader       : Loaded track 【Rainych】 SAY SO - Doja Cat | Japanese Version (cover)
2020-04-18 23:29:05.289  INFO 82 --- [XNIO-1 I/O-4] lavalink.server.io.SocketServer          : {"op": "play", "guildId": "701105975498637364", "track": "QAAAnwIAOuOAkFJhaW55Y2jjgJEgU0FZIFNPIC0gRG9qYSBDYXQgfCBKYXBhbmVzZSBWZXJzaW9uIChjb3ZlcikAC1JhaW55Y2ggUmFuAAAAAAAD79AAC0VzWmJXQXFVOHhZAAEAK2h0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9RXNaYldBcVU4eFkAB3lvdXR1YmUAAAAAAAAAAA=="}
2020-04-18 23:31:14.689  INFO 82 --- [XNIO-1 task-5] l.server.player.AudioLoaderRestHandler   : GET /loadtracks
2020-04-18 23:31:15.735  INFO 82 --- [lava-daemon-pool-info-loader-2-thread-1] lavalink.server.player.AudioLoader       : Loaded track 【Rainych】AGAIN - Fullmetal Achemist : Brotherhood OP 1 (cover)
2020-04-18 23:31:36.125  INFO 82 --- [XNIO-1 I/O-4] lavalink.server.io.SocketServer          : {"op": "play", "guildId": "701105975498637364", "track": "QAAApwIAQuOAkFJhaW55Y2jjgJFBR0FJTiAtIEZ1bGxtZXRhbCBBY2hlbWlzdCA6IEJyb3RoZXJob29kIE9QIDEgKGNvdmVyKQALUmFpbnljaCBSYW4AAAAAAAPr6AALNTlmb1I1S1VFS1kAAQAraHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj01OWZvUjVLVUVLWQAHeW91dHViZQAAAAAAAAAA"}
2020-04-18 23:33:11.747  INFO 82 --- [XNIO-1 I/O-4] lavalink.server.io.SocketServer          : {"op": "pause", "guildId": "701105975498637364", "pause": true}
2020-04-18 23:33:40.056  INFO 82 --- [XNIO-1 I/O-4] lavalink.server.io.SocketServer          : {"op": "pause", "guildId": "701105975498637364", "pause": false}
2020-04-18 23:34:25.617  INFO 82 --- [XNIO-1 task-7] l.server.player.AudioLoaderRestHandler   : GET /loadtracks
2020-04-18 23:34:55.670  WARN 82 --- [XNIO-1 task-9] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.context.request.async.AsyncRequestTimeoutException]
2020-04-18 23:36:21.137  INFO 82 --- [XNIO-1 I/O-4] lavalink.server.io.SocketServer          : {"op": "stop", "guildId": "701105975498637364"}
2020-04-18 23:40:13.696  INFO 82 --- [XNIO-1 task-10] l.server.player.AudioLoaderRestHandler   : GET /loadtracks
2020-04-18 23:40:43.721  WARN 82 --- [XNIO-1 task-12] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.context.request.async.AsyncRequestTimeoutException]
2020-04-18 23:50:38.912 ERROR 82 --- [lava-daemon-pool-info-loader-2-thread-1] c.s.d.l.p.DefaultAudioPlayerManager      : Error in loading item https://www.youtube.com/watch?v=yzC4hFK5P3g

com.sedmelluq.discord.lavaplayer.tools.FriendlyException: Loading information for a YouTube track failed.
        at com.sedmelluq.discord.lavaplayer.tools.ExceptionTools.wrapUnfriendlyExceptions(ExceptionTools.java:43) ~[lavaplayer-1.3.38.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.loadTrackWithVideoId(YoutubeAudioSourceManager.java:220) ~[lavaplayer-1.3.38.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager$LoadingRoutes.track(YoutubeAudioSourceManager.java:232) ~[lavaplayer-1.3.38.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager$LoadingRoutes.track(YoutubeAudioSourceManager.java:228) ~[lavaplayer-1.3.38.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeLinkRouter.routeFromUrlWithVideoId(DefaultYoutubeLinkRouter.java:96) ~[lavaplayer-1.3.38.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeLinkRouter.routeFromMainDomain(DefaultYoutubeLinkRouter.java:61) ~[lavaplayer-1.3.38.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeLinkRouter.route(DefaultYoutubeLinkRouter.java:39) ~[lavaplayer-1.3.38.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.loadItemOnce(YoutubeAudioSourceManager.java:196) ~[lavaplayer-1.3.38.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.loadItem(YoutubeAudioSourceManager.java:133) ~[lavaplayer-1.3.38.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItemOnce(DefaultAudioPlayerManager.java:437) ~[lavaplayer-1.3.38.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItem(DefaultAudioPlayerManager.java:419) ~[lavaplayer-1.3.38.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$createItemLoader$0(DefaultAudioPlayerManager.java:218) ~[lavaplayer-1.3.38.jar!/:na]
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
        at java.base/java.lang.Thread.run(Thread.java:830) ~[na:na]
Caused by: java.lang.RuntimeException: javax.net.ssl.SSLException: Connection timed out
        at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeTrackDetailsLoader.loadDetails(DefaultYoutubeTrackDetailsLoader.java:28) ~[lavaplayer-1.3.38.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.loadTrackWithVideoId(YoutubeAudioSourceManager.java:208) ~[lavaplayer-1.3.38.jar!/:na]
        ... 14 common frames omitted
Caused by: javax.net.ssl.SSLException: Connection timed out
        at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:127) ~[na:na]
        at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:324) ~[na:na]
        at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:267) ~[na:na]
        at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:262) ~[na:na]
        at java.base/sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1652) ~[na:na]
        at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:1038) ~[na:na]
        at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:137) ~[httpcore-4.4.12.jar!/:4.4.12]
        at org.apache.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:153) ~[httpcore-4.4.12.jar!/:4.4.12]
        at org.apache.http.impl.io.SessionInputBufferImpl.readLine(SessionInputBufferImpl.java:280) ~[httpcore-4.4.12.jar!/:4.4.12]
        at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:138) ~[httpclient-4.5.10.jar!/:4.5.10]
        at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:56) ~[httpclient-4.5.10.jar!/:4.5.10]
        at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:259) ~[httpcore-4.4.12.jar!/:4.4.12]
        at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:163) ~[httpcore-4.4.12.jar!/:4.4.12]
        at org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:157) ~[httpclient-4.5.10.jar!/:4.5.10]
        at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:273) ~[httpcore-4.4.12.jar!/:4.4.12]
        at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125) ~[httpcore-4.4.12.jar!/:4.4.12]
        at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:272) ~[httpclient-4.5.10.jar!/:4.5.10]
        at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186) ~[httpclient-4.5.10.jar!/:4.5.10]
        at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89) ~[httpclient-4.5.10.jar!/:4.5.10]
        at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110) ~[httpclient-4.5.10.jar!/:4.5.10]
        at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185) ~[httpclient-4.5.10.jar!/:4.5.10]
        at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83) ~[httpclient-4.5.10.jar!/:4.5.10]
        at com.sedmelluq.discord.lavaplayer.tools.io.HttpInterface.execute(HttpInterface.java:72) ~[lavaplayer-1.3.38.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeTrackDetailsLoader.load(DefaultYoutubeTrackDetailsLoader.java:35) ~[lavaplayer-1.3.38.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeTrackDetailsLoader.loadDetails(DefaultYoutubeTrackDetailsLoader.java:26) ~[lavaplayer-1.3.38.jar!/:na]
        ... 15 common frames omitted
        Suppressed: java.net.SocketException: Broken pipe
                at java.base/sun.nio.ch.NioSocketImpl.implWrite(NioSocketImpl.java:421) ~[na:na]
                at java.base/sun.nio.ch.NioSocketImpl.write(NioSocketImpl.java:441) ~[na:na]
                at java.base/sun.nio.ch.NioSocketImpl$2.write(NioSocketImpl.java:825) ~[na:na]
                at java.base/java.net.Socket$SocketOutputStream.write(Socket.java:1007) ~[na:na]
                at java.base/sun.security.ssl.SSLSocketOutputRecord.encodeAlert(SSLSocketOutputRecord.java:82) ~[na:na]
                at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:355) ~[na:na]
                ... 38 common frames omitted
Caused by: java.net.SocketException: Connection timed out
        at java.base/sun.nio.ch.NioSocketImpl.implRead(NioSocketImpl.java:326) ~[na:na]
        at java.base/sun.nio.ch.NioSocketImpl.read(NioSocketImpl.java:351) ~[na:na]
        at java.base/sun.nio.ch.NioSocketImpl$1.read(NioSocketImpl.java:802) ~[na:na]
        at java.base/java.net.Socket$SocketInputStream.read(Socket.java:937) ~[na:na]
        at java.base/sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:450) ~[na:na]
        at java.base/sun.security.ssl.SSLSocketInputRecord.bytesInCompletePacket(SSLSocketInputRecord.java:68) ~[na:na]
        at java.base/sun.security.ssl.SSLSocketImpl.readApplicationRecord(SSLSocketImpl.java:1409) ~[na:na]
        at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:1022) ~[na:na]
        ... 34 common frames omitted

2020-04-18 23:50:38.919 ERROR 82 --- [lava-daemon-pool-info-loader-2-thread-1] lavalink.server.player.AudioLoader       : Load failed

com.sedmelluq.discord.lavaplayer.tools.FriendlyException: Loading information for a YouTube track failed.
        at com.sedmelluq.discord.lavaplayer.tools.ExceptionTools.wrapUnfriendlyExceptions(ExceptionTools.java:43) ~[lavaplayer-1.3.38.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.loadTrackWithVideoId(YoutubeAudioSourceManager.java:220) ~[lavaplayer-1.3.38.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager$LoadingRoutes.track(YoutubeAudioSourceManager.java:232) ~[lavaplayer-1.3.38.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager$LoadingRoutes.track(YoutubeAudioSourceManager.java:228) ~[lavaplayer-1.3.38.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeLinkRouter.routeFromUrlWithVideoId(DefaultYoutubeLinkRouter.java:96) ~[lavaplayer-1.3.38.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeLinkRouter.routeFromMainDomain(DefaultYoutubeLinkRouter.java:61) ~[lavaplayer-1.3.38.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeLinkRouter.route(DefaultYoutubeLinkRouter.java:39) ~[lavaplayer-1.3.38.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.loadItemOnce(YoutubeAudioSourceManager.java:196) ~[lavaplayer-1.3.38.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.loadItem(YoutubeAudioSourceManager.java:133) ~[lavaplayer-1.3.38.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItemOnce(DefaultAudioPlayerManager.java:437) ~[lavaplayer-1.3.38.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItem(DefaultAudioPlayerManager.java:419) ~[lavaplayer-1.3.38.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$createItemLoader$0(DefaultAudioPlayerManager.java:218) ~[lavaplayer-1.3.38.jar!/:na]
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
        at java.base/java.lang.Thread.run(Thread.java:830) ~[na:na]
Caused by: java.lang.RuntimeException: javax.net.ssl.SSLException: Connection timed out
        at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeTrackDetailsLoader.loadDetails(DefaultYoutubeTrackDetailsLoader.java:28) ~[lavaplayer-1.3.38.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.loadTrackWithVideoId(YoutubeAudioSourceManager.java:208) ~[lavaplayer-1.3.38.jar!/:na]
        ... 14 common frames omitted
Caused by: javax.net.ssl.SSLException: Connection timed out
        at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:127) ~[na:na]
        at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:324) ~[na:na]
        at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:267) ~[na:na]
        at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:262) ~[na:na]
        at java.base/sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1652) ~[na:na]
        at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:1038) ~[na:na]
        at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:137) ~[httpcore-4.4.12.jar!/:4.4.12]
        at org.apache.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:153) ~[httpcore-4.4.12.jar!/:4.4.12]
        at org.apache.http.impl.io.SessionInputBufferImpl.readLine(SessionInputBufferImpl.java:280) ~[httpcore-4.4.12.jar!/:4.4.12]
        at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:138) ~[httpclient-4.5.10.jar!/:4.5.10]
        at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:56) ~[httpclient-4.5.10.jar!/:4.5.10]
        at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:259) ~[httpcore-4.4.12.jar!/:4.4.12]
        at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:163) ~[httpcore-4.4.12.jar!/:4.4.12]
        at org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:157) ~[httpclient-4.5.10.jar!/:4.5.10]
        at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:273) ~[httpcore-4.4.12.jar!/:4.4.12]
        at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125) ~[httpcore-4.4.12.jar!/:4.4.12]
        at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:272) ~[httpclient-4.5.10.jar!/:4.5.10]
        at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186) ~[httpclient-4.5.10.jar!/:4.5.10]
        at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89) ~[httpclient-4.5.10.jar!/:4.5.10]
        at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110) ~[httpclient-4.5.10.jar!/:4.5.10]
        at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185) ~[httpclient-4.5.10.jar!/:4.5.10]
        at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83) ~[httpclient-4.5.10.jar!/:4.5.10]
        at com.sedmelluq.discord.lavaplayer.tools.io.HttpInterface.execute(HttpInterface.java:72) ~[lavaplayer-1.3.38.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeTrackDetailsLoader.load(DefaultYoutubeTrackDetailsLoader.java:35) ~[lavaplayer-1.3.38.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeTrackDetailsLoader.loadDetails(DefaultYoutubeTrackDetailsLoader.java:26) ~[lavaplayer-1.3.38.jar!/:na]
        ... 15 common frames omitted
        Suppressed: java.net.SocketException: Broken pipe
                at java.base/sun.nio.ch.NioSocketImpl.implWrite(NioSocketImpl.java:421) ~[na:na]
                at java.base/sun.nio.ch.NioSocketImpl.write(NioSocketImpl.java:441) ~[na:na]
                at java.base/sun.nio.ch.NioSocketImpl$2.write(NioSocketImpl.java:825) ~[na:na]
                at java.base/java.net.Socket$SocketOutputStream.write(Socket.java:1007) ~[na:na]
                at java.base/sun.security.ssl.SSLSocketOutputRecord.encodeAlert(SSLSocketOutputRecord.java:82) ~[na:na]
                at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:355) ~[na:na]
                ... 38 common frames omitted
Caused by: java.net.SocketException: Connection timed out
        at java.base/sun.nio.ch.NioSocketImpl.implRead(NioSocketImpl.java:326) ~[na:na]
        at java.base/sun.nio.ch.NioSocketImpl.read(NioSocketImpl.java:351) ~[na:na]
        at java.base/sun.nio.ch.NioSocketImpl$1.read(NioSocketImpl.java:802) ~[na:na]
        at java.base/java.net.Socket$SocketInputStream.read(Socket.java:937) ~[na:na]
        at java.base/sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:450) ~[na:na]
        at java.base/sun.security.ssl.SSLSocketInputRecord.bytesInCompletePacket(SSLSocketInputRecord.java:68) ~[na:na]
        at java.base/sun.security.ssl.SSLSocketImpl.readApplicationRecord(SSLSocketImpl.java:1409) ~[na:na]
        at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:1022) ~[na:na]
        ... 34 common frames omitted

2020-04-18 23:50:39.904  INFO 82 --- [lava-daemon-pool-info-loader-2-thread-1] lavalink.server.player.AudioLoader       : Loaded track きゃりーぱみゅぱみゅ - PONPONPON , Kyary Pamyu Pamyu - PONPONPON

I also have this "timed out" issue. Lavalink will only connect to YouTube's video servers if they respond within 3000 milliseconds, but sometimes YouTube takes longer to respond, causing this error.

Please try setting the timeout to a higher value with #276

authors: Axiol Frederikam cloudrac3r

repo: Frederikam/Lavalink

license: mit


text:
failing tests with addition of comment line

Failing tests for adding comment.
Start a comment with .
gist of my code, if needed: https://gist.github.com/Joe-Balsamo/73c16c3d877a366a557c

Closing as stale, this seems to have been fixed.  Reopen this if you still experience the issue

authors: Joe-Balsamo benschenker

repo: FreeCodeCamp/FreeCodeCamp


text:
Current streak wrong

My account says that my current streak is 2 days. But its my third day today, so shouldn't it be displaying 3 days and not 2?

Hello Zorfa,
I reported that bug https://github.com/FreeCodeCamp/FreeCodeCamp/issues/1861

Sorry! I did not see that. I will close this issue

authors: dokkillo zorfa


text:
Minor grammatical error in "Waypoint: Count Backwards With a For Loop"

It says "Let's change our initialization and final-expression so we can count backward by twos for numbers."
Shouldn't it be "Let's change our initialization and final-expression so we can count backward by twos for odd numbers."

Got it, thanks!

authors: SaintPeter rjmccallumbigl


text:
Challenges wont advance

Challenge Increment a Number with Javascript has an issue.
User Agent is: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.103 Safari/537.36.
Please describe how to reproduce this issue, and include links to screenshots if possible.
My code:
var myVar = 87;

// Only change code below this line
myVar++;

Pretty much when i finish a challenge, it freezes on the popup window. Sometimes it may take 5 minutes, iother times it never advances and other times it just works.

Chrome Version 47.0.2526.111 here, also experiencing similar issue.

@kira8975 @nickg33 this will be fixed now. Thanks for posting. Closing this issue. Feel free to reopen if you still experience problems, thanks.

I'm having the same issue.
Chrome version: 48.0.2564.116 (64-bit)
var myVar = 87;

// Only change code below this line
myVar = myVar++;


text:
Conversion of 1KB or Kilobyte to bits in one of the video lessons is incorrect

The video in question is computer-basics-how-to-measure-data-size

The text in question is "The next step up is a Kilobyte, 1024 Bytes, or 1,048,576 bits."

The issue is that 1KB or kilobyte equals 8192 bits. To check the calculation use bit calculator

Question: What is the "international" convention say: 1k = 1000 or 1K = 1000?Curious Community College professor would like to know.Thanks!Steve
Date: Sun, 21 Feb 2016 11:13:15 -0800
From: notifications@github.com
To: FreeCodeCamp@noreply.github.com
Subject: [FreeCodeCamp] Conversion of 1KB or Kilobyte to bits in one of the video lessons is incorrect (#7177)
*The video in question is computer-basics-how-to-measure-data-size
The text in question is "The next step up is a Kilobyte, 1024 Bytes, or 1,048,576 bits."
The issue is that 1KB or kilobyte equals 8192 bits. To check the calculation use Check calculation
—
Reply to this email directly or view it on GitHub.

authors: pavyer scshepard


text:
Wiki Algorithm Where Art Thou advanced code solution is not correct

The code in Advanced code solution is not working when the last element of the source object is correct while other elements are wrong. For example, whatIsInAName([{ first: "Romeo", last: "Montague" }, { first: "Mercutio", last: null }, { first: "Tybalt", last: "Capulet" }], { first: 1, last: "Capulet" }); will return [{"first":"Tybalt","last":"Capulet"}] which is not right. I think using .reduce() function is not the best way to do this. Please change it. Thank you.

Closing this in favor of https://github.com/FreeCodeCamp/wiki/issues/1191

authors: raisedadead ranranking


text:
FIX/Comparison-with-the-Inequality-Operator

Pre-Submission Checklist

[x] Your pull request targets the staging branch of FreeCodeCamp.
[x] Branch starts with either fix/, feature/, or translate/ (e.g. fix/signin-issue)
[x] You have only one commit (if not, squash them into one commit).
[x] All new and existing tests pass the command npm run test-challenges. Use git commit --amend to amend any fixes.

Type of Change

[x] Small bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds new functionality)
[ ] Breaking change (fix or feature that would change existing functionality)
[ ] Add new translation (feature adding new translations)

Checklist:

[x] Tested changes locally.
[x] Closes currently open issue (replace XXXX with an issue no): Closes #8833

Description

Adjusted RegEx to match only != and not match !==. This allows for flexibility of type conversion associated with !=.

@Bouncey looks good to me, but can you remove the first sentence from your commit message using git commit --amend? I'm sorry to hear of your finger troubles but I don't think they belong in a commit message. I hope your finger troubles weren't too serious.

Message updated.

@Bouncey thanks for your contribution! LGTM! 👍

authors: Bouncey erictleung


text:
X11 client: ignore grab related LeaveNotify events

This fixes click and drag or more generally any press-hold-release combinations for the primary mouse button.
Without this, click and drag, drag and drop and in, some remote applications that presumably rely on the full press-release sequence, even button presses don't always work.
(cherry picked from commit 06219e4ecb7a03223df0e02050ebd3c557561678)

@ondrejholy pinging you as this is maybe relevant for redhat packages

Hi everyone, I'm offering to test any updates to the el8 package for this changes. Please let me know if this is needed.

authors: akallabeth sysadmin-core

repo: FreeRDP/FreeRDP


text:
Fixed issues with planar codec buffer alignment

Align width and height to next multiple of 4 to avoid issues with
internal buffer sizes.
@antenore @pnowack please confirm I understood https://gitlab.com/Remmina/Remmina/-/issues/2507 correctly.

Original reporter of the linked Remmina issue here.
From a cursory glance at the code, this should work for me. Tomorrow is a public holiday where I am, so I can take some time to compile this commit and see if it fixes my issue.

@CruzR ok. I´ve successfully reproduced the issue with xfreerdp /v:server /size:642x480 /bpp:32 to a windows 7 remote. Gone with this pr

authors: CruzR akallabeth


text:
ARP: Coverity + MISRA compliance

This PR focuses on resolving the MISRA compliance related warnings in FreeRTOS_ARP.c.
This doesn't ensure that it doesn't have any warnings at all since a lot of warnigns require code restructure/rework and some warnings require editing header files and some are portable layer warnings.
Test Steps
Ran all Microchip Curiosity Tests on CI. Thereby ensuring buildability and executability of the code. GGD tests failed.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Some comments about about logging and about the return value of xNetworkInterfaceOutput():
When ipconfigHAS_PRINTF is non-zero, the macro FreeRTOS_printf() will produce output.
When ipconfigHAS_DEBUG_PRINTF is non-zero, the macro FreeRTOS_debug_printf() will produce output.
These macro's are only used within the FreeRTOS+TCP library and its drivers. A better name would have been plus_tcp_printf() and plus_tcp_debug().
When I release a firmware, both macro's are disabled. This saves a lot of flash because the const logging strings are compiled.
Normally in the code, you don't have to check ipconfigHAS_PRINTF or ipconfigHAS_DEBUG_PRINTF.
In the following situation they are useful:
#if( ipconfigHAS_DEBUG_PRINTF != 0 )
{
    pcType = "UDP";
}
#endif /* ipconfigHAS_DEBUG_PRINTF != 0 */

The variable pcType is used for debugging the CRC-function.
@yuhui-zheng wrote:

level of logging a module wants. (If +TCP wants verbose logging, then we could just configure it.)
where things log to. (could have multiple stream. UART, file, ...)
So the caller could avoid all the #if-#else blocks.

The #if-#else blocks rarely needed in the code. The two logging macro's are defined in FreeRTOSIPConfig.h.
Logging about xNetworkInterfaceOutput() is not really necessary because all changes in the Link Status are  already logged in the Network Interface.

@htibosch Thank you, that clarifies a lot.
The very first comment about logging

xNetworkInterfaceOutput is implemented by third party, that I would check the return value to be sure the API contract is met.

was motivated by the understanding that it's usually vendors/third parties implementing +TCP porting layer including xNetworkInterfaceOutput.  If there's a suite of test to verify porting (i.e. verify APIs input/output and behavior are compliant with spec), the confidence level will be much higher even without checking return values. The hope here is to fail fast, if there's any issue.
Your concern about memory is valid, and to your other comment

Logging about xNetworkInterfaceOutput() is not really necessary because all changes in the Link Status are already logged in the Network Interface.

This seems to imply we have a porting test suite that I'm not aware of. Or maybe my understanding about "it's usually vendors/third parties implementing +TCP porting layer" is incorrect. (Correct me here.)

Above should've been a squash merge, clicked too fast. My bad. Instead of further messing with commit history, I'm going to leave it this time.

This seems to imply we have a porting test suite that I'm not aware of.
Or maybe my understanding about "it's usually vendors/third parties
implementing +TCP porting layer" is incorrect. (Correct me here.)

and

xNetworkInterfaceOutput is implemented by third party

Many +TCP porting layers were developed and maintained by me. Beside that, I checked and tested most other implementations.
As far as I know, there is no document that explains how to test the porting layer.
It would also be good to have a guide that describes how to make an efficient network interface. Although there are a few good examples.
Here is how a network interface can be tested:

The simplest test is to ping the device.

Use ping flood ( ping -f from Linux ). That command sends as many echo messages per second as possible.

iperf3: the FreeRTOS+TCP device becomes an iperf server. Packets can be sent in both ways simultaneously.

aws_tests : makes use of the porting layer to communicate with an echo server.

aws_demo : uses DNS and makes connection a connection to an MQTT broker.

Now i stop, because the title of this PR is "MISRA compliance", and not "about porting +TCP".
Thanks, Hein

authors: AniruddhaKanhere htibosch yuhui-zheng

repo: FreeRTOS/FreeRTOS


text:
Search by Forename only

Backend task to hook up forename search

Works., Need very tight limits.
Ticky box says "Exact match on first names"  Does this mean that without ticking it should be soundex? Results are exact. Seems inconsistent

authors: Captainkirkdawson richpomfret


text:
Possible Shaftesbury / Weymouth error

If I search for Sarah Voss born Dorset in Dorset in FreeCEN2, household in 1841 says place=Shaftesbury but when you open it, civil parish is Weymouth - is that really right? Although the search on FreeCEN1 has Shaftesbury when you Show Household, it says Weymouth on the index result placing the emphasis on Weymouth which is more helpful.

Hi Denise,
Your answer is in the details for the Piece number HO107295.
Look at the National Archives at this link
Piece: HO107/295/16 Place: Shaftesbury -Dorset Enumeration District: 4
Civil Parish: Weymouth Ecclesiastical Parish: Melcombe Regis
Folio: 16 Page: 25
Address: Melcombe Regis East Street
http://discovery.nationalarchives.gov.uk/details/r/C3761028
Then look at the Stats page at this link or in FC2 under manage Pieces.
These are what the PARMS file pick up from the NA
Details for all the Parishs in this PIECE number are below.
https://www.freecen.org.uk/coverage-DOR.html#1841
This is what it says for the 1841 Census.
The Place is Shaftesbury and the Ed names are all those in the Comprising
column below.
These Parishes match up with the NA Page.
In this instance ED 4 is Weymouth,
You will see that is the name at the top left hand corner of the image.
I can send you a copy should you need it.
1841
PiecePlaceComprising
HO107/295 Shaftesbury  Shaston Borough , Holy Trinity S James, Alcester ,
St Peter , Sherborne Town , Sherborne , Overcoombe , Pinford , Wareham ,
Holy Trinity , Stoborough , Middlesbere , Redge , Lady S Mary Within , Lady
S Mary Out , Worgrete , Wargate , St Martin Within , St
It is rather like a jigsaw puzzle. Get all the details together and it
should then all join up.
Hope that helps
Brenda
On Tue, 24 Apr 2018 at 11:33, DeniseColbert notifications@github.com
wrote:

If I search for Sarah Voss born Dorset in Dorset in FreeCEN2, household in
1841 says place=Shaftesbury but when you open it, civil parish is Weymouth

is that really right? Although the search on FreeCEN1 has Shaftesbury
when you Show Household, it says Weymouth on the index result placing the
emphasis on Weymouth which is more helpful.

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/FreeUKGen/FreeCENMigration/issues/462, or mute the
thread
https://github.com/notifications/unsubscribe-auth/ANC91teMji9FcPl2TvODICz9jenSRMa5ks5trv-DgaJpZM4Thaud
.

@DeniseColbert I don't think there is any action here on our part. However, we can use this as an example in documentation in order to help clarify places/locations over time (maps will help with this).

authors: DeniseColbert FreecenBren richpomfret

repo: FreeUKGen/FreeCENMigration


text:
🛑 Analytic Sekretariat-DJPb is down

In ad6faa0, Analytic Sekretariat-DJPb (https://umami.setditjen-djpb.net) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Analytic Sekretariat-DJPb is back up in 6af03ef.

repo: FrideyAlpha/uptime-setditjen


text:
🛑 Network is down

In 41e27c4, Network (https://mycloud-jkt.zettagrid.id/tenant/Org_cloud60988) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Network is back up in 11d132a.


text:
🛑 Simka Sekretariat-DJPb is down

In ecf144d, Simka Sekretariat-DJPb (https://simka.setditjen-djpb.net) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Simka Sekretariat-DJPb is back up in 756dbbe.


text:
Pluralize days on configs

Resolve #32

Many thanks to @Survivor-2-22-22 for testing this for me!

repo: Friends-of-Monika/mas-presence


text:
Form helper submit, add btn class by default.

I updated the test file, but this may the first time I work with testing :).

the PR is ready now, up to styles I am not sure if they are OK or not.

Thanks! LGTM.

authors: ayman-alkom jadb

repo: FriendsOfCake/bootstrap-ui


text:
Exit status should be 0 if there are no errors

The way I have it is that php-cs-fixer is run in a pre-commit hook to automatically correct any formatting. Right now, because of https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues/158, it seems that any changes cause it to return a 1 instead of a 0. If there are no errors, why is this returning a 1? Making changes means it completed the job successfully.
If anything, please add an option to allow for proper exiting, or the opposite, to allow for improper exiting as it is today.
Again, the purpose of php-cs-fixer is to FIX stuff, not just to verify there are no changes needed.

Making changes means it completed the job successfully.

No, I disagree. If changes were required, than the cs checks have failed.

I'm not sure I understand you. How did anything fail if all I am running it for is to automatically format the code? The purpose is to allow developers to code in whatever style they want, and then on commit, it will automatically format it before it is committed.
Nothing failed in this scenario. php-cs-fixer gets run to do the formatting, it finds stuff to format, and does so. I can understand if --dry-run is used, and then it would exit 1 because there are changes required.

exit 0 makes sense to me, as the command fixed incorrect code. The command
itself finished succesfully.
php.net: The status 0 is used to terminate the program successfully
2015-03-03 20:52 GMT+01:00 Harrison Heck notifications@github.com:

I'm not sure I understand you. How did anything fail if all I am running
it for is to automatically format the code? The purpose is to allow
developers to code in whatever style they want, and then on commit, it will
automatically format it before it is committed.
Nothing failed in this scenario. php-cs-fixer gets run to do the
formatting, it finds stuff to format, and does so. I can understand if
--dry-run is used, and then it would exit 1 because there are changes
required.
—
Reply to this email directly or view it on GitHub
https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues/1041#issuecomment-77020796
.

exit 0 makes sense to me, as the command fixed incorrect code. The command itself finished succesfully. php.net: The status 0 is used to terminate the program successfully

@GrahamCampbell This tool is not a CS checker. It is a CS fixer. so it would indeed make sense to exit 1 only in dry-run mode (or in case a specific option is passed)

We also exit(1) when error occurs (like too old PHP).
We should return different exit code for reporting need of fixing in dry-run mode.
:+1: for idea itself. Could anyone prepare a patch ?

Closing due to merge of #1078

Currently PHP-CS-Fixer returns 0 if --dry-run is not specified, even when some files were skipped due to syntax errors. Shouldn't it return a non-zero value when a file was skipped?
The fixer was expected to fix the file, but it was not fixed. Isn't that an error condition?

authors: GrahamCampbell JoyceBabu ceeram keradus nesl247 stof

repo: FriendsOfPHP/PHP-CS-Fixer


text:
binary_operator_spaces breaks union types

Bug report
Related to #4702 (PHP 8.0 support).

PHP version: 8.0.3
PHP CS Fixer version: 2.18.5

When running on a PHP 8 codebase using union types, php-cs-fixer mixes union types with binary "or" operator and wrongly applies the binary_operator_spaces fix:
Before:
    private Amount|Rate $value;

After:
    private Amount | Rate $value;

Duplicate of https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues/5495

authors: BenMorel kubawerlos


text:
no_empty_comment: preserve paragraphs

Make NoEmptyCommentFixer preserve paragraphs in a sequence of single
line comments. E.g. do not change comments like the following
// Introductory statement
//
// Lengthy description goes here.
//
// Descriptions may also be formatted as multiple paragraphs.

For all intents and purposes, this is a single comment that is clearly
not empty. It should not be changed into multiple comments that are
separated by blank lines.

Hi!
I like the idea, however I have some questions about how you build it :)

any news here ?

I'm really busy at work. I hope to get to this later today.

Maybe this is worth targeting at master now, because it's kinda a feature, right?

Ping @pschultz. :)

@pschultz Hi I'm closing this as your initial report seems to be resolved in https://github.com/FriendsOfPHP/PHP-CS-Fixer/pull/1946
Your PR also is complementary as it would fix:
/**
 *
 * a
 *
 * b
 *
 */

to
/**
 * a
 *
 * b
 */

which is currently not done.
If you would like the first and last "empty" of a comment to be removed as well, please let me know than we can work on that.
Thanks for reporting and even more for putting time and effort in this PR! : )

Hi @pschultz
Your PR targets the 1.x line which we no longer maintain. I looked at your changes and compared those against the current working of the fixer. The paragraphs you like to preserve as your sample in the initial description of your PR are now already preserved, this is because of this PR which has been merged on the 2.x line.
The difference in functionality between your proposal and the current state is the following;
input
#
# a
#
# b
#

#

your way of fixing fixes to:
# a
#
# b

current way of fixing
#
# a
#
# b
#

I'm closing this now because of the wrong target branch and duplicate logic in your PR compared to the current state.
Please let me know if you plan on a PR for the 2.x line to make it possible to remove the first and last empty line of a comment block. Happy to help with that!
Thanks for your PR, idea and putting time and thoughts into it, much appreciated!

We don't plan on updating to 2.x in the foreseeable future, so I won't be working on that.

Thanks for letting me know, I'll backlog the enhancement :)
If at some point you want help with upgrading let me know, happy to help out

btw @pschultz , why not to upgrade? lack of time or some other issue ?

1.x and 2.x are incompatible in many ways (CLI, config file) and we don't have the capacity do find a good way to upgrade.

did you try out upgrade guide ?
if so and still have problems, show your config file and CLI command you are currently using ;)

The point is that there's one php-cs-fixer "service" running, fixing many independent PHP repositories, each with their own config file. We'll have to build something that supports both versions at the same time, since it's not feasible to update all PHP repos at once.

had that case one. on your CI service you could have different workers - like PHP CS Fixer v1 and PHP CS Fixer v2. but then you need to adjust the connection to specify which repo <=> which version of tool.
If you want, you could do auto-discovery of that via config file - .php_cs for v1, .php_cs.dist for v2.
Then, you update repos one by one - each time adjusting the config file name.
Hope it will help ;)

authors: GrahamCampbell SpacePossum keradus pschultz


text:
MethodArgumentSpaceFixer: allow to retain multiple spaces after comma

PR https://github.com/FriendsOfPHP/PHP-CS-Fixer/pull/998 changed MethodArgumentSpaceFixer with a BC break. We have tons of arrays like this one:
return array(
    array('1990-01-01',    $type1,    $type1,    $type1),
    array('2016-03-25', $longtype,    $type1,    $type1),
    array('2016-04-01', $longtype,    $type1,    $type1),
    array('2016-05-01', $longtype, $longtype,    $type1),
    array('2215-05-01', $longtype, $longtype, $longtype),

    array('1990-01-01',  $history,  $history,  $history, EstinzioneType::NATURALE),
    array('2016-03-25', $longtype,    $type1,  $history, EstinzioneType::NATURALE),
    array('2016-04-01', $longtype,    $type1,  $history, EstinzioneType::NATURALE),
    array('2016-05-01', $longtype, $longtype,    $type1, EstinzioneType::NATURALE),
    array('2215-05-01', $longtype, $longtype, $longtype, EstinzioneType::NATURALE),

    array('1990-01-01',    $type1,    $type1,    $type1, EstinzioneType::NATURALE,  null,                                   '2018-12-31'),

    array('1990-01-01',    $type1,    $type1,    $type1, EstinzioneType::SOFFERENZA),

    array('1990-01-01',    $type1,    $type1,    $type1, EstinzioneType::FIDO,      PerfezionamentoType::EROGAZIONE),
    array('1990-01-01',  $history,  $history,  $history, EstinzioneType::FIDO,      PerfezionamentoType::ATTIVAZIONE_FIDO),
);

and without retaining the extra spaces after commas these are almost unreadable.
This PR keeps the current new (BC break) behaviour, allowing with a configuration to step back with retaining the extra commas, but with at least one.

Sorry, done. I also made the configuration key more explicit.

you changed method argument comma spacing fixer, while your PR description is about commas in arrays, not method declarations

You are right, sorry, I oversimplified our business code while blurring it.
Here are some less obfuscated examples:
// Symfony command specifications
$this
    ->setName('company:command')
    ->setDescription('Our command')
    ->addOption('xxxxxyyy',             null, InputOption::VALUE_NONE,      'desc [...]')
    ->addOption('xxxxxyyyyyy',          null, InputOption::VALUE_REQUIRED,  'desc [...]')
    ->addOption('xxxxxyyyy',            null, InputOption::VALUE_REQUIRED,  'desc [...]')
    ->addOption('xxxxxauto',            null, InputOption::VALUE_NONE,      'desc [...]')
    ->addOption('xxxxx',                null, InputOption::VALUE_NONE,      'desc [...]')
    ->addOption('xxxxxi',               null, InputOption::VALUE_REQUIRED,  'desc [...]')
    ->addOption('xxxxxyyyyyyyyyyy',     null, InputOption::VALUE_NONE,      'desc [...]')
    ->addOption('xxxxxyyyyyyyyyy',      null, InputOption::VALUE_NONE,      'desc [...]')
    ->addOption('xxxxxyyyyyyyyyy',      null, InputOption::VALUE_NONE,      'desc [...]')
    ->addOption('xxxxxyyyyyyyyyyyyy',   null, InputOption::VALUE_NONE,      'desc [...]')
;

// Values objects
$columns = new Excel\Collection(array(
    new Excel\Column('xxx',                        'DESC 1111',             5, new Excel\Style\Text()),
    new Excel\Column('xxxx',                       'DESC',                 15, new Excel\Style\Text()),
    new Excel\Column('xxx',                        'DES',                  15, new Excel\Style\Text()),
    new Excel\Column('xxxxxxxxxxxxxxxxxxxxxx',     'DESC 2222222',         20, new Excel\Style\CC()),
    new Excel\Column('xxxxxxxxxxxxxxxxxxxxxxx',    'DESC 333333333333',    40, new Excel\Style\Text()),
    new Excel\Column('xxxxxxxxxxx',                'DESC 444444',          15, new Excel\Style\Text()),
    new Excel\Column('xxxxxxxxxxxxxxxxxxxx',       'DESC 5555555555555',   10, new Excel\Style\Text()),
    new Excel\Column('xxxxxxxxxxxxxxxo',           'DESC 66666666666',     15, new Excel\Style\Number()),
    new Excel\Column('xxxxxxxxxxxxx',              'DESC 77777777',        15, new Excel\Style\Data()),
    new Excel\Column('xxxxxxxxxxxxxxxxxxxxxx',     'DESC 8888888',         15, new Excel\Style\CC()),
    new Excel\Column('xxxxxxxxxxxxxxxxxxxxxxx',    'DESC 999999999999',    40, new Excel\Style\Text()),
    new Excel\Column('xxxxxxxxxxx',                'DESC 000000',          15, new Excel\Style\Text()),
    new Excel\Column('xxxx',                       'DESC',                 15, new Excel\Style\Data()),
    new Excel\Column('xxxxxxxxxxxxxxxxx',          'DESC             ',    15, new Excel\Style\Data()),
    new Excel\Column('xxxxxxxxxxxxxxx',            'DESC xxxxxxxxxx',      15, new Excel\Style\Data()),
));

kinda old PR, anyone willing to review it ?

just a view minors left, @ see https://github.com/Slamdunk/PHP-CS-Fixer/pull/3 @Slamdunk

@SpacePossum Done

awesome :+1:

@keradus

I've changed the PR description to match the right code example, so that will be shown when you're going to merge it
Please tell me if you want a squash: I've retained some commit for @SpacePossum respect
Surfing the code for the configuration description, I've seen a standard arising: https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/v2.0.0/src/Fixer/Operator/ConcatSpaceFixer.php#L98 maybe a getDefaultConfiguration should be added to ConfigurableFixerInterface

Without hints on how to write it, I feel I'm reinventing the wheel. I copy-pasted what you have done on BracesFixer, but it can be a mess is someone calls the configuration with an empty array():
https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/0d17628e89c10ea1115450930102ffc37d3f801f/src/Fixer/Basic/BracesFixer.php#L272

Rebased, eventually all checks pass

@keradus would you prefer if I rebase this on 2.1 branch?

I think master is good, as it would make this go into 2.2.
PR LGTM, so please rebase on top of master, feel free to squash my commit out so we have one nice commit for this new feature :)

Rebased with the new ConfigurationDefinitionFixerInterface of https://github.com/FriendsOfPHP/PHP-CS-Fixer/pull/2500

@keradus could you review it now please?

Thank you @Slamdunk.

authors: Slamdunk SpacePossum keradus


text:
NoUselessCommentFixer - Introduction

Fixer to remove useless comments, few question:

should it be extended for interfaces and/or traits?
should it be extended for properties and/or functions?

Ping @dkarlovi

should it be extended for interfaces and/or traits?
should it be extended for properties and/or functions?

Definitely :+1: for me, but then the fixer should have a more generic name.

I've just tested this with my codebase, it works great. See https://github.com/dkarlovi/xezilaires/pull/52 for outcome (with other settings too).

BTW, one thing I noticed is, if I have
class Foo
{
    /*
     * @return Foo
     */
    public function foo(): self
    {
        return new self;
    }
}

It will not strip that (but will with @return self).

BTW, one thing I noticed (...)
It will not strip that (but will with @return self).

That's no_superfluous_phpdoc_tags and has nothing to do with the fixer under PR. You could create a new issue if you think it is a bug.

@dmvdbrugge sorry, you're right. :+1:

This is not enough, please remove other generated comments too, see https://github.com/ostrolucky/coding-standard/blob/52b2ccf0b9184f826db5c0d6a50afb3f72b27942/easy-coding-standard.yaml#L158-L163

@ostrolucky can you give an example (in a form of test case)?

Looking at the discussion, maybe the "comment uselessness detection" part should be configurable somehow, with sensitive defaults?

Any suggestions? Like an option level with values low and high?

generates
<?php
/**
 * Created by IntelliJ IDEA.
 * User: g9735
 * Date: 13/11/18
 * Time: 14:19
 */

class Test
{

}

yes, same for phpstorm, so take both in account

Yeah I would rather go with regexps than levels, they provide much more flexibility. But I wonder if that would work very well. I mean, maybe one wants to remove comments like "returns foo" from method getFoo() but not from other methods. Not sure how to allow this kind of flexibility though.

An array with "item that follows" (like class or function) => regex? Something like
[
    '.*Interface$' => '^Interface [A-Za-z0-9]+$',
    '^get[A-Za-z0-9]+$' => '^gets? [A-Za-z0-9]+',
]

But then for every "item" matching any key regex we would have run value regex against it's comment every line.

Are there other rules that do regexes instead of levels already? Because I think it would introduce too much flexibility.
Personally, I'd be fine with just options strict or all, where strict would be just the same as all examples now suggest (with optional 's' and period), and all would be the current implementation.

Looks like no interest at the moment, maybe one day we will get some consensus.
Meanwhile if anyone is interested feel free to use it from my repo: NoUselessCommentFixer.

authors: dkarlovi dmvdbrugge julienfalque kubawerlos ostrolucky


text:
Strukturbaum verlangsamt das Backend

Der Strukturbaum sorgt für einen langsamen Seitenaufbau. Vor allem wenn viele Artikel geladen werden müssen. (Habe hier eine Kategorie mit über 2500 Artikeln)
Lösungsansätze/Ideen:

Baum per Ajax laden (siehe Quicknavi)
Ab einer bestimmten Menge Unterartikel nicht listen, stattdessen Link in die Struktur anbieten.

In der aktuellen Version wird der Baum per Ajax nachgeladen.
Damit wird hoffentlich die Performance in Deinem Fall verbessert.

Yeeepeee 👍

authors: iceman-fx skerbis


text:
PLYR verursacht fehlerhaften Aufruf im Consent-Manager Detailbutton

Wenn PLYR installiert ist und man sich auf einer Unterseite der Webseite befindet, dann kann man den Button "Details anzeigen/ausblenden" im Consent-Manager nicht mehr nutzen.
Grund: PLYR stört das Abfangen (Javascript) des Link-"clicks".
https://github.com/FriendsOfREDAXO/consent_manager/issues/312

ok und was kann ich ändern. Das kommt ja vom Verdorr und nicht von meinem JS

Entweder müsste der href-Klick per JS abgefangen werden, oder aber es dürfte kein href-Link (href="#") angegeben werden.

und wo findet das statt?

Wo das im Code ist kann ich dir jetzt nicht sagen. Aber es ist der Button im cm.

Da ich den Verdorr von Plyr nicht ändern kann. Kann ich hier nichts machen

repo: FriendsOfREDAXO/plyr


text:
try different way to detect uncommitted changes

skerbis reported problems with the previous implementation when used within docker

jetzt wird bei mir nicht mehr informiert dass es noch offene commits gibt

jetzt wird bei mir nicht mehr informiert dass es noch offene commits gibt

d.h. es funktioniert wie gewünscht? oder es wird gar nicht mehr gemeldet wenn es uncomitted changes gibt, auch wenn welche da sind?

es wird garnicht mehr gemeldet

Skerbis hat hier ein docker problem. Ggf. hat @schuer eine idee wie man es für docker kompatibel hinbekommt..?

@skerbis @staabm Vermutung: Kein Git im Container vorhanden? Müsste dann entsprechend hinzugefügt werden, etwa mittels apt-get, so wie beispielsweise hier: https://github.com/FriendsOfREDAXO/redaxo-mit-docker/blob/f554243a241255dba0cba83f7902d5f7407ce01a/docker/redaxo/Dockerfile#L20-L24

Was bedeutet ich kann kein GitHub-Desktop benutzen. Schätze ich. Danke. Daran wird's wohl liegen. Ich kann damit leben.

wie hängt github desktop mit der git-cli innerhalb eines docker contains zusammen?

Vermutung: Kein Git im Container vorhanden?

guter punkt: mit https://github.com/FriendsOfREDAXO/rexfactor/pull/63 wird jetzt zuerst geschaut ob der befehl git verfügbar ist bevor der uncomitted changes check passiert.
das bedeutet dass wenn man kein git hat dann auch keine info bzgl. uncommitted changes bekommt

authors: schuer skerbis staabm

repo: FriendsOfREDAXO/rexfactor


text:
Trigger to fully customize conditions and types of notices

This PR adds support for triggers. These triggers know how to check when they need to trigger and what to do when they are triggered. They are fully extendable by using interfaces and symfony service tags. This will add basic support for #2 and #5 as this makes it extendable by other plugins and makes it easy to add different kind of notices.
This PR lacks an ExtJs editor for triggers. This is an open issue for people which are more familiar with ExtJs as this will get a complicated task as the editor should change the input mask depending on the chosen condition or action of a trigger.

I added an extjs view for triggers but the list is empty. Help is required.

@dneustadt is it cool to pass the namespace name in 93c8263 without quotes?
As there is no direct relation between triggers and messages the editor is currently useless without documentation. The types properties of the triggers are php class names of services which add different features to the notices. This impacts the backend GUI a lot.
The HtmlResponseSlotNoticeInjectAction service injects messages into the html body. If this class is selected in a dropdown one should have a form with a message dropdown as the configuration layout expects. If an other service is selected other input fields should appear.

How can I pass the service type list for the types dropdown as extjs store in a good way?
Is ExtJs as flexible as VueJs in a way of dynamically changing the GUI?
If no, how can one achieve the described way of editing?

Namespace shouldn't be affected by not being in quotes. Might want to add quotes anyway.

Just like any other store. Add a listing api method that passes an json encoded assoc array, add the according extjs model and store, bind the store to a combobox for selection.
Yes, you can call reconfigure and doLayout on the view, switch xtypes etc.

authors: JoshuaBehrens dneustadt


text:
Incompatible with Rector 0.18.0

PHP Version
8.1
Shopware Version
6.5.4.0
Actual behaviour
Running Rector throws an error

Expected behaviour
Running Rector should work correctly
Steps to Reproduce?
I think this is related to https://github.com/rectorphp/rector-src/pull/4698 since the import function has been refactored.

We're having the same issue, had to pin rector/rector to ^0.17 which I believe is what frosh/shopware-rector should use as the dependency target too, given for versions < 1.0 semver states that breaking changes may be introduced on minor version bumps and using ^ instead of ~ properly accounts for that.

I've setup a MRE on this repo: https://github.com/rmobis/shopware-rector-mre
Cloning and running the following commands should reproduce the issue:
$ composer install
$ vendor/bin/rector process src --config .\rector.php

Hi, thanks for reporting. This change is  intended with container switch.
Imported config paths must be explicit.

Looking at shopware configs, there are just 3 files to include, so there is no need for glob loading.
https://github.com/FriendsOfShopware/shopware-rector/tree/main/config/v6.5
Also, exact paths allows PHPStan to validate if path exists.
Use exact paths instead :+1:

authors: TomasVotruba alessandroaussems rmobis

repo: FriendsOfShopware/shopware-rector


text:
Restsharp Crashing WP app by throwing an exception that is not propagated to caller

I have been receiving crashes due to RestSharp throwing an exception that can't be caught by me (some internal task barfing up?). I receive following Stack-trace whenever this happens.
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread.
  at unknown location

Aggregated Exception [0]: System.NullReferenceException: Object reference not set to an instance of an object.
   at Microsoft.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at Microsoft.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
   at Microsoft.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at RestSharp.Portable.RestClient.<Execute>d__10.MoveNext()

my code is pretty simple
try {
  await restSharpClient.Execute(request, cancellationToken);
} catch(Exception e) {
  // Exception should be caught here
}

Where cancellationToken is always CancellationToken.None, sending in a Token that is cancelled externally increases the number of crashes. Am I doing something wrong? Is there any flag? I have already set IgnoreResponseStatusCode flag to true already. There is a timeout of 60 seconds.

I'll take a look at it. Which version do you use?

Can you send me an example that allows me to reproduce this problem? The code you provided should work, but the library shouldn't produce a null reference exception either. Quite strange...

OK seems like I was doing something wrong I was reusing the existing connection (not disposing it) while previous request was already in progress (CancellationToken was CancellationToken.None). My external task was however cancelled (and on cancel it marked the RestSharpClient to be available for next usage). So it's something weird that I was doing, the reason I started passing None cancellation token was due to exceptions that I observed
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread.
  at unknown location

Aggregated Exception [0]: System.OperationCanceledException: The operation was canceled.
   at System.Threading.CancellationToken.ThrowOperationCanceledException()
   at System.Threading.CancellationToken.ThrowIfCancellationRequested()
   at RestSharp.Portable.AsyncLock.<>c__DisplayClass2.<LockAsync>b__0()
   at System.Threading.Tasks.Task.InnerInvoke()
   at System.Threading.Tasks.Task.Execute()

So question I should be asking is, if I have done await on Execute with cancellation token and then due to external event if I dispose the connection instance, what would happen? I am pretty sure this time I am disposing off my connection object and issuing a cancellation on Token.

I'm not really sure what you mean when you talk about the "connection object", because RestSharp.Portable instantiates its own HttpRequestMessage which should open its own connection. You shouldn't dispose the connection instance. Instead, you should signal a cancellation though your cancellation token which you should pass through to the RestSharp.Portable request.
When you want to do multiple requests at once, you have to use multiple RestClient objects. This is unfortunately required due to a limitation of HttpClient.

Let me explain, I have a connection pool of 16 (a slimsemaphore with count of 16). If somebody wants to do an HTTP request he request for a connection (which in-turn requires a lock on semaphore, hence only 16 objects will created at any time) and the pool returns a RestClient object for usage. The pool object is itself IDisposable. Here is exact code:
        public class PoolConnection : IDisposable
        {
            private readonly SemaphoreSlim releasePoolLock;

            public RestClient Client { get; private set; }

            public PoolConnection(RestClient c, SemaphoreSlim releasePoolLock)
            {
                this.Client = c;
                this.releasePoolLock = releasePoolLock;
            }

            public void Dispose()
            {
                this.releasePoolLock.Release();
                this.Client.Dispose();
            }
        }

Now the consumer of my PoolConnection can easily do
using (PoolConnection connection = await transportPool.GetNext()){
    ...
    connection.Client.Execute(request, cancellationToken);
    ...
}

Now since cancellationToken is passed externally, it can be cancelled and it will be cancelled. From what you are describing, I should not be doing this.Client.Dispose(); in my PoolConnection class.

This code snippet looks fine. When you cancel the request with cancellationToken.Cancel(), you get a TaskCancelledException or OperationCancelledException (base class of TaskCancelledException). You should catch the later or the former (depending on your personal preferences - or even Exception). You should also cancel the Execute and not some outer Task, because this might kill the outer task before the Execute and therefore we have no outer code that is alive that is able to catch the exception (just an assumption, but it would explain the behavior).

OK So I did some further digging, and after going through code and looking at my scenario in detail this is what I think I know what might have happened. It's extremely hard to repro with a simple example app but in an application where there are multiple requests created and cancelled this might happen. Here is code for LockAsync
        public Task<IDisposable> LockAsync(CancellationToken cancellationToken)
        {
#if PCL || SILVERLIGHT || NET40
            var wait = Task.Factory.StartNew(() =>
            {
                WaitHandle.WaitAny(new[] { _lock, cancellationToken.WaitHandle });
                cancellationToken.ThrowIfCancellationRequested();
            });
#else
            var wait = _lock.WaitAsync(cancellationToken);
#endif

            return wait.IsCompleted
                       ? _releaser
                       : wait.ContinueWith(
                           prevTask => _releaser.Result,
                           cancellationToken,
                           TaskContinuationOptions.ExecuteSynchronously,
                           TaskScheduler.Default);
        }

Now imagine a scenario when a token was cancelled and Task.Factory.StartNew has not started yet (unavailability of a free thread from thread-pool or being late in queue or anything!). Since the current task LockAsync has not been suspended it's quite possible the statement wait.ContinueWith part is executed. Now by the time the original task kicks in the continuation task has been cancelled, the ContinueWith will throw a OperationCancelledException and the wait task will cause exception being thrown with above stack trace.
I think the problem is passing the same cancellationToken to ContinueWith as used in wait task.

OK, thank you. I'll take a look at it.

There was a pull request #48 made by evnik, which might fix your problem. You can try those changes in version 2.4.5. If this doesn't fix your problem, then please test again with 3.0.0-beta11, because it contains an assembly specifically for Windows Phone 8.1, which doesn't use the StartNew part of the code quoted above. Be aware that 3.0.0 contains many breaking changes, but they all should be quite easy to fix.

Well I did the fix and things seem to be working now :+1:

Oh, that was confusing, but good that is fixed now! :+1:

authors: fubar-coder maxpert


text:
Reorganize fuels-core and fuels-contract

This PR doesn't introduce any new feature / breaking changes.
It moves things around in order to:

Make fuel-core and fuel-gql-client dev dependencies on
fuels-abigen-macro, which solves
(https://github.com/FuelLabs/fuels-rs/pull/45/files);
Move files that should be core, such as codegen, to fuels-core;
Rename fuels-rs to fuels-contract, as it now only deals with
contract related code, instead of trying to be a "catch-all" crate;
fuels-rs before as a real mixed bag of code and it never really had a
specific purpose, such as fuels-signers. Now it being fuels-contract
it can be concerned with a single purpose.

Now we have the abigen macro depending only on abigen related code
and the whole fuels-rs org makes more sense:

fuels-abi-cli: CLI with some utility tools
fuels-abigen-macro: macro crate
fuels-contract: contract calling related code
fuels-core: code that all other crates depend on
fuels-signers: signature/wallet related code

This will also help us, in the future, to make fuels-core
no_std compatible.

This PR doesn't introduce any new feature / breaking changes.

I think it does introduce a breaking change if it removes fuels-rs as a thing, no?

That's true, I meant no "internal" breaking changes 😅. But yes, it's definitely an external breaking change that will require a minor bump on the semver.

Looks like the abigen macros are still causing a circular dep on the fuel-core repo due to dependencies on forc and fuels-contract.
pushd fuels-abigen-macro/ && cargo tree -e features,normal | grep "fuel-gql" && popd
..
│       ├── fuel-gql-client v0.2.1
│       ├── fuel-gql-client v0.2.1 (*)

However, it seems these deps and many others (like tokio) could be safely moved to dev-dependencies within fuels-abigen-macro.

Looks like the abigen macros are still causing a circular dep on the fuel-core repo due to dependencies on forc and fuels-contract.
pushd fuels-abigen-macro/ && cargo tree -e features,normal | grep "fuel-gql" && popd
..
│       ├── fuel-gql-client v0.2.1
│       ├── fuel-gql-client v0.2.1 (*)

However, it seems these deps and many others (like tokio) could be safely moved to dev-dependencies within fuels-abigen-macro.
Apart from that, overall the re-org makes sense to me.

True! Checking this led me to see lots of unused deps in fuels-abigen-macro, thanks! It looks like now it doesn't depend on fuel-core/fuel-gql-client anymore.

authors: Voxelot digorithm

repo: FuelLabs/fuels-rs


text:
[Tracking] support forc-client

Tracking issue for general support of forc-client

[x] #185
[x] #199

Closed by #206

repo: FuelLabs/fuelup


text:
Verdugo

Problem you are trying to solve
Fix
Solution you'd like
Yes
Notes
No response

4151852157865763
gostupid19822022@outlook.com