ThreadMode.ASYNC executes in one thread only

Thanks for the great library! However something is bothering me. I am posting a message to three different methods, each has its own tag and they are set to ThreadMode.ASYNC. However they do not execute in parallel, but sequentially.
EventBus.getDefault().post(7, "test1");
EventBus.getDefault().post(7, "test2");
EventBus.getDefault().post(7, "test3");

@Subscriber(tag = "test1", mode = ThreadMode.ASYNC)
public void test1(int request){
    ...
}
...

Logcat:
04-21 23:15:19.835    E/test1﹕ Working on a task
04-21 23:15:20.936    E/test1﹕ Done -2134183543
04-21 23:15:20.936    E/test2﹕ Working on a task
04-21 23:15:22.247    E/test2﹕ Done -2134183543
04-21 23:15:22.247    E/test3﹕ Working on a task
04-21 23:15:23.058    E/test3﹕ Done -2134183543
Expected something like this:
04-21 1.1    E/test1﹕ Working on a task
04-21 1.2    E/test2﹕ Working on a task
04-21 1.3    E/test3﹕ Working on a task
04-21 2.1    E/test1﹕ Done -2134183543
04-21 2.3    E/test2﹕ Done -2134183543
04-21 2.7    E/test3﹕ Done -2134183543

that's right, @vixtor 。all the message execute in a single thread when the thread mode is async.you can  custom the async event handler like this :
public class ThreadPoolHandler implements EventHandler {
ExecutorService mExecutorService = Executors.newFixedThreadPool(3);
EventHandler mHandler = new DefaultEventHandler();
@Override
public void handleEvent(final Subscription subscription， final Object event) {
mExecutorService.submit(new Runnable() {
@Override
public void run() {
mHandler.handleEvent(subscription， event);
}
});
}
}
and then set async event handler with EventBus.getDefault().setAsyncEventHandeler(new ThreadPoolHandler());

Thank you, this worked perfectly. If I may suggest, you could add this in the next version as ThreadMode.THREADPOOL or something similar.

That's great advice. We will consider putting it into our next version. I
am collecting apps which adopt AndroidEventBus and  they will be put in
readme.md. Would it be too much to ask you to share with us your App name
and download link? Thank you!
2015-04-22 18:31 GMT+08:00 Viktor Kvaternjak<EMAIL_ADDRESS>
Thank you, this worked perfectly. If I may suggest, you could add this in
the next version as ThreadMode.THREADPOOL or something similar.
—
Reply to this email directly or view it on GitHub
https://github.com/bboyfeiyu/AndroidEventBus/issues/11#issuecomment-95124473
.

Sure, I will send it once it is finished and published.

Thank you very much![?]
2015-04-23 4:23 GMT+08:00 Viktor Kvaternjak<EMAIL_ADDRESS>
Sure, I will send it once it is finished and published.
—
Reply to this email directly or view it on GitHub
https://github.com/bboyfeiyu/AndroidEventBus/issues/11#issuecomment-95324958
.

@vixtor hi，I am collecting apps which adopt AndroidEventBus and  they will be put in
readme.md. Would it be too much to ask you to share with us your App name
and download link? Thank you!


Add UserShortLinkSection component

Part of #193
New Behavior
Description
Integrate Table and PageControl component to display short links created by users

Screenshot!

@byliuyang , the tables are not designed yet. Need to discuss on the final design. This PR is just about integrating the components. It might look something like this, once finilized on the design.

How about aligning page control to the center of the section?

How about aligning page control to the center of the section? ( Just wondering )

@byliuyang , yeah, I always wanted it to be centered. That's why the initial page controls design had it centered. Anyways, we will decide the complete design before I start styling the components. Please do weigh in, if you have any design in mind (both table and page control included).

Component's tests will pass once #662 is merged.

@byliuyang , the tables are not designed yet. Need to discuss on the final design. This PR is just about integrating the components. It might look something like this, once finilized on the design.

@oatovar One this is merged, we will allow user to modify long link and short link


500 is caused when receiving a validation error on a child model

My params map in a simple phoenix app looks like this:
%{
  "_csrf_token" => "B2c4PAN3DhkYVW4tG0wyQgddkdkegAA7RpxU1mXQ3Ya+zY1Oz2xNQ==",
  "_method" => "put",
  "_utf8" => "✓",
  "goal" => %{
    "description" => "build this app",
    "tags" => %{
        "0" => %{  # VALID
          "delete" => "false",
          "id" => "1",
          "tag_id" => "1",
          "goal_id" => "1"
        },
        "1" => %{ # INVALID (same tag_id & goal_id as above)
          "delete" => "false",
          "id" => "2",
          "tag_id" => "1",
          "goal_id" => "1"
        },
        "2" => %{ # VALID
          "delete" => "false",
          "id" => "8",
          "tag_id" => "3",
          "goal_id" => "1"
        }
      }
    },
  "id" => "1"
}

I have a uniqueness constraint across tag_id and goal_id. Here, I am submitting three tags to be updated on a goal.

%{"0" => %{"delete" => "false", "id" => "1", "tag_id" => "1", "goal_id" => "1"}} VALID
%{"1" => %{"delete" => "false", "id" => "2", "tag_id" => "1", "goal_id" => "1"}} INVALID (breaks uniqueness constraint because tag_id and goal_id are the same as above.
"2" => %{"delete" => "false", "id" => "8", "tag_id" => "3", "goal_id" => "1"}} VALID

I'd expect this submission to return a validation error from the uniqueness constraint. Instead, the following error is thrown, causing a 500:
ERROR (in_failed_sql_transaction): current transaction is aborted, commands ignored until end of transaction block
Here is the relevant section from server log in phoenix, where we try to update the tag associations with the goal:
[debug] BEGIN [] OK query=0.1ms
[debug] UPDATE "goals" SET "updated_at" = $1 WHERE "id" = $2 [{{2015, 12, 21}, {2, 52, 3, 0}}, 1] OK query=0.2ms
[debug] UPDATE "tagged_goals" SET "updated_at" = $1 WHERE "id" = $2 [{{2015, 12, 21}, {2, 52, 3, 0}}, 1] OK query=0.3ms
[debug] UPDATE "tagged_goals" SET "updated_at" = $1, "tag_id" = $2 WHERE "id" = $3 [{{2015, 12, 21}, {2, 52, 3, 0}}, 1, 2] ERROR query=0.3ms
[debug] UPDATE "tagged_goals" SET "updated_at" = $1, "tag_id" = $2 WHERE "id" = $3 [{{2015, 12, 21}, {2, 52, 3, 0}}, 3, 8] ERROR query=0.1ms
[debug] ROLLBACK [] OK query=0.1ms
[info] Sent 500 in 19ms
[error] #PID<0.640.0> running GSD.Endpoint terminated

I think this is a raw postgres error, pretty much the same as what's described in this SO article: http://stackoverflow.com/a/13103690
TLDR; I think we are getting an error inside a postgres transaction, then trying to continue with further operations inside that transaction. Ecto handles the first error, but not the subsequent one.
My expectation is that this situation would cause ecto to throw a typical validation error, not a 500. The exception itself is happening inside the Repo.update(changeset) statement in the controller.
I didn't see anything similar in the existing open issues, but apologies if I missed something.

Have you added the constraint to the changeset? Can you show your changeset code and how you call it and the repo?

Sure! Here's the changeset on the model:
  def changeset(model, params \\ :empty) do
    model
    |> cast(params, @required_fields, @optional_fields)
    |> unique_constraint(:goal_id, name: :tagged_goals_goal_id_tag_id_index,
                                    message: "is a duplicate")
    |> mark_for_deletion
  end

Here's the code that calls update in the controller:
def update(conn, %{"id" => id, "goal" => goal_params}) do
    goal = Repo.get!(Goal, id)
            |> Repo.preload(:sub_goals)
            |> Repo.preload(:tags)

    changeset = Goal.changeset(goal, goal_params)

    case Repo.update(changeset) do
      {:ok, goal} ->
        conn
        |> put_flash(:info, "Goal updated successfully.")
        |> redirect(to: goal_path(conn, :show, goal))
      {:error, changeset} ->
        render(conn, "edit.html", goal: goal, changeset: changeset)
    end
  end

Is that what you were looking for?

awesome!!


Good place for unit test dir

As far as I can see, test files are in the same directory with the script files.
How about replacing the test files in some directory?
For example

setup __tests__ directories
colocation (src/hoge/hoge.ts, src/hoge/hoge.test.ts)

What are the benefits?

Thank you for raising this issue!
However, my preference leans towards keeping the test files as close as possible to the actual implementation. Consequently, I will not be acting on this particular request and will have to close the issue. I appreciate your understanding 🙏


Developer Tools: page "dev-state" not change states

Home Assistant release (hass --version):
0.53.1
Python release (python3 --version):
Python 3.5.2
Component/platform:
dev-state page
switch.mqtt
Description of problem:
When I change the state on the page "dev-state" (States) the state changes in the list of objects (Current entities). But in reality, nothing happens - MQTT does not publish changes.
But then i change state in page "states" (main page/interface/Front-end) all work good.
Problem-relevant configuration.yaml entries and steps to reproduce:
switch:
  - platform: mqtt
    name: light1
    state_topic: "sonoff/01/POWER"
    command_topic: "sonoff/01/POWER"
    payload_on:  "1"
    payload_off: "0"
    optimistic: false
    qos: 0
    retain: true

This is expected behavior. It's mentioned here:
https://home-assistant.io/docs/configuration/state_object/
If you want to change a state on a device you need to call a service. You can do that from the dev-tools services page.

I think this behavior is not obvious and not user friendly.
But, thank, work with this parameters:
Domain: switch
Service: toggle
Service Data (JSON, optional): { "entity_id": "switch.light1" }


Allow library models of the form null param -> null return

This is equivalent to what @Contract(!null -> !null) already
allows for first party code.
In particular, we use this to implement the nullability contract
of Optional.orElse(...) and solve #406

Fixing CI now, apparently GJF and Error Prone keep undoing each other 🤡


Feature Request: Set release name when uploading to Play Store

New Issue Checklist

[x] Updated fastlane to the latest version
[x] I read the Contribution Guidelines
[x] I read docs.fastlane.tools
[x] I searched for existing GitHub issues

Issue Description

I would like to provide a release name when creating or promoting a release using upload_to_play_store. This issue is copied from https://github.com/fastlane/fastlane/issues/13643, which was auto-closed.

To answer @janpio's question from the closed issue.
Supply is currently using V2 of the API which doesn't provide this functionality.
When #14573 is fixed this could be implemented with the V3 API.

@rickclephas Thanks for the info. Would love to have this feature included once the V3 API is incorporated.

Nope it's a feature request.

Hey Fastlane, now that #14573 is done, can work move forward on this?

I believe this has already been included during the migration to the V3 API.
The version_name option should control the name of the release.
Checkout the migration docs.

Yup, looks like it's now available. Thanks!


upgrade kryo dependence to be compatible with OSGI.

upgrade kryo dependence to be compatible with OSGI.
refactor the old code that uses the old kryo version.

Thanks for the PR. I just released 1.8.0-RC1, but I think it can go in the final version.
+1

No problems, I will help when I can

can you merge it with the snapshot version ?

:+1:

how you want indentation ? space or tabs ?

Always spaces, never tabs.

The change will go into the latest SNAPSHOT once Jérôme merges it in. It looks good. Thank you.

indentation changed as asked :+1:

Thanks for the PR


Settings: Keyboard focus color is not clearly visible on Sort by precedence button

Environment Details:
VSCode Version : 1.24.1
OS Version : Win10
Additional Details:
MAS Violated: MAS2.4.7
Repro Steps:

Launch VS Code
Open Keyboard Shortcuts from the Settings icon on the bottom left bar.
Apply Dark+(default dark) theme and other dark themes and check the focus visibility.

Actual:
Keyboard focus is not clearly visible on Sort by precedence button when default dark theme is applied.
Expected:
Focus should be clearly visible and should be outlined by solid or dotted line.
Recommendations:
Refer below link which is repository of bug fixes code snippets:
https://microsoft.sharepoint.com/teams/msenable/mas/pages/browse-fixes.aspx
User Impact:
User will not be able to see the focus properly.
MAS Reference
https://microsoft.sharepoint.com/:w:/r/teams/msenable/_layouts/15/WopiFrame2.aspx?sourcedoc={3b98b04f-4fab-4d3e-81af-a0906a34849c}
Attachment for Reference:

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

Sounds like colors and contrast, also assigning to @misolori

@AccessibilityTestingTeam-TCS can you clarify if this also applies to our overall focus treatment? We use the same blue outline for most of our focus treatments:

@misolori You can use any color for emphasizing the focus but it should be clearly visible to the user on all the color themes.

@misolori Please let me know when there are any changes to be done from my side.

@sandy081 will do, I think I'll need to play around with the offset of the outline color (and possibly opacity).


Performance impact in the case of variable latency

Hi,
I am currently testing aioquic in a simulation environment, where I have set a maximum bandwidth of 10 Mbps.
In a normal scenario, I am able to achieve a throughput of around 9.2 Mbps, but when I implement variable delay in the packets using traffic control (variable delay 1ms to 10ms , uniform distribution), I observe a severe impact in the performance. (The maximum throughput achieve in this case in around 3 Mbps)
Please assist what might be the problem.

 I am the sole maintainer of this package right now, so my resources are limited.
I'd be happy to review any suggestions for improvements one you analyze what is going on.

Hi sure, I would be happy to analyze. Furthermore, I was not expecting you to do any homework for me. I thought, you being the sole maintainer and developer of the project, might already know about the problem or have some idea about it.
Anyways, thank you for replying. Will update if I find something.

Sorry for the cranky reply, it's a rough life maintaining opensource projects. I'd be happy to help out with the investigation once you have some data we can look at.


Allow for RunLocalTests and RunSpecifiedTests when running validation

It would be useful to be able to specify what tests to run when running validation

As of v0.4.2, the release manifest validate command now supports Salesforce-standard --test-level and --tests flags and passes those through to the validate/deploy commands


Use a short random ID instead of UUID for the CN

Something like this (length 16, much shorter) or include the length of \rawurlencode( $this->getName() ); and fill up to 64 bytes.

mt_rand() is insecure, rather use random_bytes($length), which will give you a string that you can make into a hex or base64 string or something similar.
Otherwise good to merge 👍

Ok - I thought I read otherwise, but I'll check. Or do you prefer the behaviour in da0f655 ?


_mm512_bitshuffle_epi64_mask implementation

Typing from an Icelake machine(i7-1065G7)!
I can peck at this again, even if it ends up slower in the 2D case it'll still be interesting as it can also solve the more general case of trying to interleave the bits of three input variables in parallel possibly much faster than a series of pext/pdep.
Here's measured latency data from uops.info for vpshufbitqmb.
Instruction									Lat		TP			Uops	Ports
VPSHUFBITQMB (K, K, XMM, M128)	AVX512EVEX	[1;8]	1.00 / 1.00	3		1*p0+1*p23+1*p5
VPSHUFBITQMB (K, K, XMM, XMM)	AVX512EVEX	[1;8]	1.00 / 1.00	2		1*p0+1*p5
VPSHUFBITQMB (K, K, YMM, M256)	AVX512EVEX	[1;8]	1.00 / 1.00	3		1*p0+1*p23+1*p5
VPSHUFBITQMB (K, K, YMM, YMM)	AVX512EVEX	[1;8]	1.00 / 1.00	2		1*p0+1*p5
VPSHUFBITQMB (K, K, ZMM, M512)	AVX512EVEX	[1;8]	1.00 / 1.00	3		1*p0+1*p23+1*p5
VPSHUFBITQMB (K, K, ZMM, ZMM)	AVX512EVEX	[1;8]	1.00 / 1.00	2		1*p0+1*p5
VPSHUFBITQMB (K, XMM, M128)		AVX512EVEX	6		1.00 / 1.00	3		1*p0+1*p23+1*p5
VPSHUFBITQMB (K, XMM, XMM)		AVX512EVEX	6		1.00 / 1.00	2		1*p0+1*p5
VPSHUFBITQMB (K, YMM, M256)		AVX512EVEX	6		1.00 / 1.00	3		1*p0+1*p23+1*p5
VPSHUFBITQMB (K, YMM, YMM)		AVX512EVEX	6		1.00 / 1.00	2		1*p0+1*p5
VPSHUFBITQMB (K, ZMM, M512)		AVX512EVEX	6		1.00 / 1.00	3		1*p0+1*p23+1*p5
VPSHUFBITQMB (K, ZMM, ZMM)		AVX512EVEX	6		1.00 / 1.00	2		1*p0+1*p5

compared to pext
Instruction						Lat		TP			Uops	Ports
PEXT (R32, R32, M32)	BMI2	[3;8]	1.00 / 1.00	2		1*p1+1*p23
PEXT (R32, R32, R32)	BMI2	3		1.00 / 1.00	1		1*p1
PEXT (R64, R64, M64)	BMI2	[3;8]	1.00 / 1.00	2		1*p1+1*p23
PEXT (R64, R64, R64)	BMI2	3		1.00 / 1.00	1		1*p1

and pdep
Instruction						Lat		TP			Uops	Ports
PDEP (R32, R32, M32)	BMI2	[3;8]	1.00 / 1.00	2	1*p1+1*p23
PDEP (R32, R32, R32)	BMI2	3		1.00 / 1.00	1	1*p1
PDEP (R64, R64, M64)	BMI2	[3;8]	1.00 / 1.00	2	1*p1+1*p23
PDEP (R64, R64, R64)	BMI2	3		1.00 / 1.00	1	1*p1

Looking really good. Don't forget to run it through libmorton_test to easily spot errors.

Got a first MVP implemented now for encoding and decoding. It's give or take in terms of its performance against pexp/pdep methods at the moment. So I'll be exhausting some optimization ideas and then this branch will be ready for a merge/review.

Cool - tell me when you want me to review/merge


Return raw json responses from docdb instead of DataAssetRecord

Is your feature request related to a problem? Please describe.
The new metadata_index/data_assets does not adhere to DataAssetRecord. Additionally, we want to return the raw response from docdb for the MetadataDbClient (API gateway client)
Describe the solution you'd like

Return json response from docdb in MetadataDbClient
Remove DataAssetRecord model
Optional: Add usage examples for API gateway in readthedocs

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

Add new method and deprecate the old one


Private Mode Feature

First of all, I would like to thank you for creating such a good open source project. I use Maccy very actively. But every once in a while I need to turn it off for privacy. That's why I wrote a shell script and assigned a key shortcut with automator. I have found it very useful so I want to add it as a feature to Maccy.
How it works:

Default shortcut key is: cmd +  shift + x
When pressed these keys it will enter private mode and for 60 seconds it won't record the copied items to history. Since you already have icon changing on turn off the user can see wether or not is in private mode.
If you press these keys again within 60 seconds it will disable the private mode without waiting for time to run out.

By the way I don't have any Swift experience, I tried to follow your structure. If you want anything changed don't hesitate on telling me.

I like this feature. I would definitely like to see it in the app...

Would love to have this feature - seems super cool!

Thank you very much for taking the time and proposing this PR. Sorry for me being not responsive - I've tried to approach reviewing it few times but always got distracted and never finished.
I like the idea overall, but I feel that we create 2 competing features within the app. First is ability to ignore all new copies, which can be activated using defaults, via preferences or by option+clicking the menubar icon. Second - this private mode feature. Both serve the same goal - ignore all new copies for some time. Maybe there is a way to merge these features anyhow? Would option+click be enough for most cases? Or maybe we can enable private mode by shift+option+click on the menubar icon?
As for the implementation, I'm concerned with using global hotkey. I would like to avoid messing with people's global hotkeys, so I think there should be no defaults at all and this feature should be opt-in.
60 seconds seems like an arbitrary value and maybe it should be configurable? Maybe we even need to create a new preference pane called "Private" that allows to disable Maccy, configure private mode hotkeys and delay, etc.

60 seconds seems like an arbitrary value and maybe it should be configurable? Maybe we even need to create a new preference pane called "Private" that allows to disable Maccy, configure private mode hotkeys and delay, etc.

I agree.

IMO the solution proposed by @onurpolattimur has a key point that Maccy does not address with his current solution: a keyboard shortcut to ignore new copies.
I love the idea of being able to turn it on and off without having to using a mouse/trackpad to position my pointer on a small space and click it, do my secret copy/paste and having to click again to return. Using a keyboard is so much faster, that I think eliminates the need of having a timer to restore the previous state.
Is this make sense to you folks?

Pasting here for brevity.
There are a few issues.

Time based stuff rarely works out, and people keep toggling to give themselves more time.
option+click is the wrong method for disabling, it should be cmd+click - Related
There's a bug right now that you can't re-enable by doing the same option+click once it's been disabled.

My suggestions are allow toggling enabled/disabled state via cmd+click
Add keyboard shortcut for disabling Macy only for the next item in the pasteboard, this has the added support for not just text but also things that come externally, like say Screenshot to pasteboard or (not sure if it works) stuff copied from iOS via handover.

In the new version of Maccy, there will be a way to disable the next copy with Option+Shift+Click on the menu icon (see dc2f33e1e3cfe73ffa414e795dc4a6b1e19ac759 for more details). I'd like to close this PR as we haven't really settled on any particular decision and I don't want stale PRs hanging around. We can create a new issue to discuss the idea of private mode and how it should be designed.
@onurpolattimur Once again, thank you for the proposal!


Can you provide me with a detailed operation manual, author? Why do I encounter errors after running it

see #32 #53 #48 etc. all the same you openai account has no payment or reached the limits.

Thanks @Dexus
@yxl23 as @Dexus said, this is most likely caused by either an invalid OpenAI api key or not having OpenAI credits. This will be fixed in the next release.
Closing as a duplicate of #32.


"Error Renaming File or Folder" while saving

Expected behavior
No error happens.
Actual behavior
In the save dialog, when selecting the folder to save, by doubleclick, this dialog is shown:

Error Renaming File or Folder
Cannot rename fZOO: A file with the name you specified already exists. Specify a different file name.
OK
There is folder named fZOO (name changed for this report from the real name, it begins with a lowercase letter followed by 3 upper case, all basic ASCII) in the same parent folder as the folder I want to save in.
Actually there are two such dialogs, one covering the other. The upper is a modal dialog to the second (if I move the upper away and click on the second, the first will blink). Actually there are more of them, like 5 (didn't count). I noticed the others after I clicked OK on the first two.
Steps to reproduce the problem
Start JMeter 5.5
Create new plan from template
Change name and comment for the Plan object
ctr+s to save
JMeter Version
5.5
Java Version
Oracle 11.0.13
OS Version
Microsoft Windows 10 Pro [Version 10.0.19044.2251]

Note: after clicking the dialogs away (on the OK button), I could continue and save the project

Did not encounter error. After performing action Ctrl+S, JMeter opened the dailog box where file is stored by default, in my case, Temp folder in Windows. Saved the file successfully.
JMeter Version
5.5
Java Version
8
OS Version
Microsoft Windows 10 Pro

Can't reproduce this under Linux (Ubuntu 22.04).
Can you try to explain in more detail, what you meant by "In the save dialog, when selecting the folder to save, by doubleclick"?
Which folders where shown, which did you select?


Transaction review design

The current dialog for a transaction review is pretty much a placeholder.
we need to, at the very least, display the info properly, in the same Material style

Hey @naps62, I'd like to work on this. Can you assign this issue to me?

Already improved in #212 . Still in need of big improvements, but I belive that'll come with the implementation of features such as


is Visible?

Should probably consider adding queries to the view service for "is this layer visible" and "is this feature visible?"

damnit, wrong github


Stepper motors lack headers

I just went through and built a blot from one of the demo kits in the office.
The stepper motors are 4-cable steppers that terminate in a split-end wire thread. The board's pinout for the stepper motor drivers is a 4 pin male header. I didn't get a soldering iron in the assembly kit, and without my own soldering kit I won't be able to wire up the stepper motors

Definitely we don't have the right motors at the office. I'll lock this down and find a sustainable source.


user is allowed to overried default catalog

Issue

Now the error message is not thrown when gradle defines version catalogue, its only thrown when the user does it for the second time.
Context

Users can declare version catalog with custom path without conflicting with the one defined by gradle system.

discussion
Contributor Checklist

[x] Review Contribution Guidelines.
[x] Make sure that all commits are signed off to indicate that you agree to the terms of Developer Certificate of Origin.
[x] Make sure all contributed code can be distributed under the terms of the Apache License 2.0, e.g. the code was written by yourself or the original code is licensed under a license compatible to Apache License 2.0.
[x] Check "Allow edit from maintainers" option in pull request so that additional changes can be pushed by Gradle team.
[x] Provide integration tests (under <subproject>/src/integTest) to verify changes from a user perspective.
[ ] Provide unit tests (under <subproject>/src/test) to verify logic.
[ ] Update User Guide, DSL Reference, and Javadoc for public-facing changes.
[ ] Ensure that tests pass sanity check: ./gradlew sanityCheck.
[ ] Ensure that tests pass locally: ./gradlew <changed-subproject>:quickTest.

Reviewing cheatsheet
Before merging the PR, comments starting with

❌ ❓must be fixed
🤔 💅 should be fixed
💭 may be fixed
🎉 celebrate happy things

continuing  off of here , @tresat

Tom will take a look at this, but it won't be for 8.x most likely.

@tresat Reminder


Update dependency-review.yml

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 100.00%.  Consider uploading reports for the commit a03b6cc to get more accurate results

Additional details and impacted files
@@            Coverage Diff            @@
##              main      #189   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           10        10
  Lines          304       304
  Branches        59        59
=========================================
  Hits           304       304

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Safari Flex-Wrap on overflow: auto removes scrollbars

Safari removes scrollbars when using flex-wrap
CodePen Example
If you look at the .row{} selector in the CSS you will see that the -webkit-flex-wrap: wrap; property is set.
In Safari, removing that line of code makes the scrollbars reappear.

Can you try reducing this a bit more? My example here works just fine in Safari, so it doesn't affect all instances of flex-wrap.
http://codepen.io/anon/pen/gbVyxo?editors=110

Hmmmm... I checked out the link you provided (in Safari) and it is still giving me the same result. No scrolling content. Maybe it is my version specifically? I am using : Version 8.0.5 (10600.5.17).
Here is a gif showing no sidebars: http://g.recordit.co/ErwzSOkRPA.gif

Hmmm, looks like I accidentally linked to the wrong version. Either way, I was able to reproduce it more, and in this codepen you can see the bug in Safari. Commenting out the flex-wrap line makes it work correctly.

I'm not really sure if this is problematic enough to be listed in this repo though. In your example, you've used flex wrap in a situation where you don't actually want wrapping, so I think the solution would be pretty obvious to most developers.
I do think it should be reported to Safari. If you do that, can you paste the bug link here so others who find this issue can follow it?

Oh yeah, in this example it makes zero sense. I didn't want to code out the whole example with wrapped boxes. In the real world application of flex-wrap I had multiple boxes all using wrap to "float (for lack of a better term)" the boxes next to each other and wrap down the page. In that real world example this small line of code breaks the layout and created a big headache for me because I wouldn't have thought flex-wrap would give that result. Anyways, thanks for your time to look into this issue and I appreciate it.


New release of scalamock-scalatest-support

I see that the latest release of scalamock-scalatest-support on maven central has a dependency to scalatest 2.1.3:
http://central.maven.org/maven2/org/scalamock/scalamock-scalatest-support_2.11/3.2.1/scalamock-scalatest-support_2.11-3.2.1.pom
The current code depends on scalatest 2.2.4:
https://github.com/paulbutcher/ScalaMock/blob/master/project/Build.scala#L95
Is it possible to get a release out so that we can upgrade scalatest to 2.2.4 in our projects? Thanks!

+1 for getting a new release after #104 is merged as both these concerns are important to us.

I'm going to release new ScalaMock version today with #104 and #106 included. Also, the new release will use scalatest-2.2.4.
@fedeoasi you don't have have to wait for new scalamock-scalatest-support release. You can add scalatest-2.2.4 to your libraryDependencies to use ScalaTest 2.2.4. For example:
[build.sbt]:
scalaVersion := "2.11.1"

libraryDependencies ++= Seq(
    "org.scalamock" %% "scalamock-scalatest-support" % "3.2.1" % "test",
    "org.scalatest" %% "scalatest" % "2.2.4" % "test")

sbt $ show update:
[info]  test:
[info]  org.scalatest:scalatest_2.11
[info]          - 2.2.4
[info]                  [...]
[info]                  evicted: false
[info]                  [...]
[info]          - 2.1.3
[info]                  evicted: true

Fixed in cf8aa67cf163682cd52cbb4339e118da47703ae3


Remove duplicate tape require() calls

Removed duplicate require lines for tape.

rebased off of #45

LGTM


Improve clientId info for applications

We need to make it clearer that MQTT clientIds should be unique, and provide more context on what this means.
In MQTT Connectivity for Applications, we appear just to say:
The MQTT client ID is in the format: a:orgId:appId
We should provide examples, and emphasise that each client should use a unique clientId (unless you're using A:orgId:appId clientIds.

@benbakowski
Moved to internal docs repo: https://github.ibm.com/Watson-IoT/Docs/issues/674
Closing here!


Fix return value in New-Account

Fixes New-Account returning null with -PassThru enabled.

Thanks for your contribution - I'll deploy the fix in the next days.


subprocess.CalledProcessError: Command '['git', 'describe']' returned non-zero exit status 128.

Hi,
Did anyone come across this error  when running the training command?
what should I do to solve this problem?
thank a lot !
fatal: No names found, cannot describe anything. Traceback (most recent call last):   File "main.py", line 101, in <module>     main(opt)   File "main.py", line 37, in main     logger = Logger(opt)   File "/home/ubuntu/CenterTrack/src/lib/logger.py", line 33, in __init__     subprocess.check_output(["git", "describe"])))   File "/home/ubuntu/.conda/envs/centerNet/lib/python3.6/subprocess.py", line 356, in check_output     **kwargs).stdout   File "/home/ubuntu/.conda/envs/centerNet/lib/python3.6/subprocess.py", line 438, in run     output=stdout, stderr=stderr) subprocess.CalledProcessError: Command '['git', 'describe']' returned non-zero exit status 128.

You can comment out the corresponding line in logger.py. It is used to dump the current git hash for debugging.

Solution: Open the subprocess.py file and enter line 355, change check=True to check=False


Update package.json to fix the TS lint error (#59)

Title. Also see: https://github.com/julianna-langston/chartjs-plugin-a11y-legend/issues/59#issuecomment-2212033481.

Looks good. I'll try to get a release out today

This change has been released in v0.1.2.


Two needless muts removed

Just a trivial improvement

Thanks for the cleanup, and for fixing the spelling :)


Scaden process issue

Dear Kevin,
I used scaden simulate with an h5ad object to generate my training data. Then I created the text file for the bulk data with the example in mind(rows_index=Genes/columns=samples). However when I try to run scaden process I get this error:
scaden process data.h5ad scaden_bulk.text
Traceback (most recent call last):
File "/Users/ty176/opt/miniconda3/envs/scaden/bin/scaden", line 8, in
sys.exit(main())
File "/Users/ty176/opt/miniconda3/envs/scaden/lib/python3.9/site-packages/scaden/main.py", line 48, in main
cli()
File "/Users/ty176/opt/miniconda3/envs/scaden/lib/python3.9/site-packages/click/core.py", line 1137, in call
return self.main(*args, **kwargs)
File "/Users/ty176/opt/miniconda3/envs/scaden/lib/python3.9/site-packages/click/core.py", line 1062, in main
rv = self.invoke(ctx)
File "/Users/ty176/opt/miniconda3/envs/scaden/lib/python3.9/site-packages/click/core.py", line 1668, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/Users/ty176/opt/miniconda3/envs/scaden/lib/python3.9/site-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/Users/ty176/opt/miniconda3/envs/scaden/lib/python3.9/site-packages/click/core.py", line 763, in invoke
return __callback(*args, **kwargs)
File "/Users/ty176/opt/miniconda3/envs/scaden/lib/python3.9/site-packages/scaden/main.py", line 155, in process
processing(
File "/Users/ty176/opt/miniconda3/envs/scaden/lib/python3.9/site-packages/scaden/process.py", line 35, in processing
preprocess_h5ad_data(raw_input_path=training_data,
File "/Users/ty176/opt/miniconda3/envs/scaden/lib/python3.9/site-packages/scaden/model/functions.py", line 67, in preprocess_h5ad_data
raw_input.X = sample_scaling(raw_input.X, scaling_option)
File "/Users/ty176/opt/miniconda3/envs/scaden/lib/python3.9/site-packages/anndata/_core/anndata.py", line 618, in X
_subset(self._adata_ref.X, (self._oidx, self._vidx)),
File "/Users/ty176/opt/miniconda3/envs/scaden/lib/python3.9/functools.py", line 877, in wrapper
return dispatch(args[0].class)(*args, **kw)
File "/Users/ty176/opt/miniconda3/envs/scaden/lib/python3.9/site-packages/anndata/_core/index.py", line 127, in _subset
return a[subset_idx]
IndexError: arrays used as indices must be of integer (or boolean) type
I am not sure what I did wrong in terms of the input files, do you maybe have an Idea what to change here?
Thanks a lot

Having the same issue...


feat: expose if docker is enabled and wait for docker to be ready

Ref https://github.com/actions-runner-controller/actions-runner-controller/issues/897 https://github.com/actions-runner-controller/actions-runner-controller/pull/915
Having M1 architecture issues when testing but the controller change can be merged prior.
The environment variable punches through now and should be referenceable in the entrypoint of the runner
Docker enabled:

Docker disabled:

Having M1 architecture issues when testing but the controller change can be merged prior.

So... these changes are untested but "can be merged prior"

My apologies, I should have updated the PR really to reflect reality. Spoken to @mumoshu offline about this so I hadnt bothered to update the PR etc.

Having M1 architecture issues when testing but the controller change can be merged prior.

So... these changes are untested but "can be merged prior"

My apologies, I should have updated the PR really to reflect reality. Spoken to @mumoshu offline about this so I hadnt bothered to update the PR etc.

My apologies

Not problem, thanks for opening this PR.
But it needs a good cleaning ! I didn't know how fast you would respond so I worked on it a bit (rebased, squashed, improved):
https://github.com/actions-runner-controller/actions-runner-controller/compare/master...Extrality:runner-wait-for-dind

ha very nice! :heart:
merging this into our branch right away, go be gone race condition!


Industrie Gigant 2 (german game) wont start

Hi there,
Tested another old game from me. It starts without your DLL and Win95 comp mode, but some menu items wont show. With your DLL it wont start, hehe. I give you the errorlog from the game, perhaps it helps you.
But many games are running fine with your fixed DLL. Keep it up.
errorlog.txt
EDIT: I think i remember playing it on my old windows XP maschine back in the days, but not sure anymore. But it seems it got problems on many VMs too. Will test Wine the next days on my Debian PC.

This game seems to be using direct3d7 and not directdraw, so it may not work with cnc-ddraw. It could be that it might have a directdraw renderer that you can enable somehow, but the release date is 2002 so the chance is very low (usually games that came out after 2001 don't often have a directdraw renderer anymore)

Hmm okay. Will try a little more with WineD3D, perhaps i get it running somehow. And i take a look if i can use DirectDraw somehow, thx for the tip. Will close it later, if i tested it a little bit more.

Okay, i tested it and it really seems it uses D3D (didnt know that it uses it, cause it dont look like it). Correctly said it uses "DirectDraw HAL" (which seems is the Direct3d7) I patched to version 1.3, then i did work with WineD3D (its slow but playable)
Not a DirectDraw Game.


dose rollupTypes options must be true when build in vue

Describe the bug
if rollupTypes = false
the build directory will not keep directory structure
Reproduction
1
Steps to reproduce
1
System Info
1

Validations

[X] Read the FAQ.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] The provided reproduction is a minimal reproducible example of the bug.

Please provide a reproduction, and create the issue follow sections in issue template.


Colorization features require grayscale inputs

Thanks for this very clear and useful package.
When calling visualpriors.representation_transform(image_data, "colorization") I get an error (dimension mismatch) when I pass in an RGB color image.
I know I can get a grayscale image along the lines of 0.3 * red + 0.6 * green + 0.1 * blue, but I wanted to check to see what you used during training so it could matched as closely as possible. Perhaps representation_transform could take care of this preprocessing step for the user to take out the guesswork?

The error actually does not have to do with the input dimensions, but the mismatch between the shape of their pre-trained weights of the first convolutional layer (64,1,7,7) with that of the architecture definition (64,3,7,7).
Should one adjust the architecture definition of the TaskonomyEncoder to have only one channel in the input conv layer, or repeating three times the weights of the first conv layer of checkpoints['state_dict'] along channel dimensions?


Add cli command to count various types of gates

closes #343
This PR adds the nargo gates command which counts the number of each gate in the circuit. I've reused the existing names for the gadget calls and added names in a similar style for the "standard" gates.
Running this command on mastermind-noir gives the output below.
$ nargo gates
Gates successfully counted

Total gates: 336

By type:
arithmetic: 269
invert: 43
odd_range: 1
pedersen: 1
range: 13
split: 8
truncate: 1

Open to any opinions on formatting, etc.

Let's merge this after #371 so it can make use of compile_circuit.

#371 is merged in now

Let's merge this after #371 so it can make use of compile_circuit.

PR #371 is merged in now


Aleph is still listed as a clojure redis client on redis.io

You really had my hopes up there for a second :(
However I don't think that this library has anything to do with redis anymore.
http://redis.io/clients

I created this pull request: https://github.com/antirez/redis-doc/pull/652.  Thanks!


i cannot connect Metaschool with Fuel

What version of Wallet are you using?
0.21.3
What is happening?
i cannot connect Metaschool with Fuel
steps to reproduce
i cannot connect Metaschool with Fuel
How it should behave?
i need connect Metaschool with Fuel wallet
What os are you seeing the problem on?
Windows Desktop
What browser?
Other
What is your browser version?
No response

What version of Wallet are you using?
0.21.3
What is happening?
i cannot connect Metaschool with Fuel
steps to reproduce
i cannot connect Metaschool with Fuel
How it should behave?
i need connect Metaschool with Fuel wallet
What os are you seeing the problem on?
Windows Desktop
What browser?
Other
What is your browser version?
No response

Hey there @Runekoz, ThIs could be hardware failure in your fuel wallet.
kindly refresh your wallet, if the issue persists, It means the backend systems went down as a result of transcript error.
Your query would be best dealt with by the support team.

I’ll have to refer you to the official support Team with the ticket ID FWL7463

Please see the link below to our dedicated support line:

Fuel wallet Dapps Support Ticket Requests

Note; Click on the live chat icon at the bottom corner of the page to initiate chat with a live support agent for further assistance.


label powerset broken

scikit-multilearn/skmultilearn/meta/lp.py in fit(self, X, y)
     24         last_id = 0
     25         train_vector    = []
---> 26         for labels_applied in y_lil.rows:
     27             label_string = ",".join(map(str,labels_applied))
     28

NameError: global name 'y_lil' is not defined

this is fixed in 71c4f971119d65788a20f2707a3d094580951f29

Ok, that's the one I haven't merged yet, sorry.


feat(pagination): remove replace usage

Remove replace: true usage

BREAKING CHANGE: Due to the removal of replace: true, this affects the HTML structure slightly - see documentation examples to see new usage.
This partially implements #5712.

LGTM


Publish 1.6

Description of the PR

Version 1.6.

Tested on:

[ ] Ubuntu @nikke234
[x] Windows @OlliKiljunen
[x] Mac @superseacat

Manual test

Date
2020-09-22

Operating system
Windows 10

IDEA version
2020.2.2 CE

Plugin version
1.6 (pre-release)

Tester
Olli

Note
-

When the software doesn't comply with the testing manual...

...it is marked with...
...if the reason for the incompliance is that...

FAILED!!!
there's a bug in the software.

REMARK.
the software should (perhaps) be changed.

normal
the testing manual should be changed.

Notes
(The issues that were reported already
in test for v1.5
are also copied here if they haven't been fixed.
They are marked with asterisks.)

0.1 IDEA version mentioned should be 2020.2.2.

1.4* This assertion should come after 1.5.

2.1* The button is now just New Project.

2.5* Move this after 2.10.

3.1* The menu item is now called About the A+ Courses Plugin.

3.5* What to do with the browser window?

4.6* The order of instruction steps here should be revised.

4.7* Instructions should tell which language to select.
Outdated screenshot.

4.9* There should be instruction to open the tool window.

4.10* FAILED!!! O1Library is marked [Double-click to install].

4.12* REMARK. Language must be selected first.

6.6* Outdated screenshot.

6.25* This would fit better after 6.26.

6.40* There could be hint to use File menu to easily restart.

6.41* The file must be from a module that compiles, e.g. O1Library.

6.46* See previous.

7.5* Should assert also that the status changes to Installed.

8.4 What to do with the browser window?

8.6 Just "restart" would do.

9.1 Should make sure GoodStuff is not installed in 5.9.

9.3 Should point to 5.1.

9.7 Outdated text.

very quickly, works on Mac. the small implementation question for the submittables filtering: it does remember the choice IDE-wide, and it's totally OK for me. should it be project-specific?


What is the meaning of server_load?

Executing info cpu in Azure Redis returns
>info cpu
# CPU

used_cpu_sys:45.08

used_cpu_user:16.09

used_cpu_avg_ms_per_sec:37

server_load:10.36

event_wait:1566

event_no_wait:847

What is the meaning of server_load and what is the measurement unit there?
From https://azure.microsoft.com/en-gb/blog/investigating-timeout-exceptions-in-stackexchange-redis-for-azure-redis-cache/

"Is there a high Redis-server server load ? Using the Redis-cli client tool, you can connect to your Redis endpoint and run "INFO CPU" to check the value of server_load. A server load of 100 (maximum value) signifies that the redis server has been busy all the time (has not been idle) processing the requests.Run Slowlog from redis-cli to see if there are any requests that are taking more time to process causing server load to max out."

it looks like it's an aggregate over multiple performance metrics.
It's clearly not just CPU, because during the exact time that i'm getting 10.36 from server_load, i'm getting 40% CPU usage in the Azure Portal graph.
Can we have a bit more detail here please?

From https://azure.microsoft.com/en-us/documentation/articles/cache-how-to-monitor/
Redis Server Load	The percentage of cycles in which the Redis server is busy processing and not waiting idle for messages. If this counter reaches 100 it means the Redis server has hit a performance ceiling and the CPU can't process work any faster. If you are seeing high Redis Server Load then you will see timeout exceptions in the client. In this case you should consider scaling up or partitioning your data into multiple caches.


opnsense 22.1 running in a FreeBSD bhyve guest: Bridge member require promisc mode, not all bridge members added during boot

Description
I used bridges in opnsense to connect to various subnets within my WAN and LAN. For this, I've set up 2 bridges in a pre-22.1 version at "Interfaces" -> "Other Types" -> "Bridge", with one bridge for my WAN networks and a second one for my LAN networks. After having added the interfaces to these bridges and setting up the firewall rules in a pre-22.1 version everything worked as expected, the firewall allowed for the traffic floating through these bridges.
After updating to 22.1, that traffic was no longer forwarded using the bridge interfaces. I found that the bridge members have not been added to the bridges:
vtnet0: flags=28963<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
	description: WAN
	options=80028<VLAN_MTU,JUMBO_MTU,LINKSTATE>
	[...]
	media: Ethernet autoselect (10Gbase-T <full-duplex>)
	status: active
	nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>
vtnet1: flags=28963<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
	description: LAN
	options=80028<VLAN_MTU,JUMBO_MTU,LINKSTATE>
	[...]
	media: Ethernet autoselect (10Gbase-T <full-duplex>)
	status: active
	nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
[...]
bridge0: flags=28943<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
	description: ROUTER
	[...]
	id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
	maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
	root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
	groups: bridge
	nd6 options=9<PERFORMNUD,IFDISABLED>
bridge1: flags=28943<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
	description: IPMI
	[...]
	id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
	maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
	root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
	groups: bridge
	nd6 options=9<PERFORMNUD,IFDISABLED>

I would have expected to see vtnet0 as member of bridge0 and vtnet1 as member of bridge1.
One reason was that with FreeBSD 13 there seems to be a bug or feature preventing vtnet interfaces added to a bridge when not being in promisc mode, see https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=254343, so I switched all participating interfaces to promisc mode and rebooted. That helped a bit, now the member for bridge0 had been added, but the one for bridge1 was still missing:
bridge0: flags=28943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST,PPROMISC> metric 0 mtu 1500
	description: ROUTER
	[...]
	id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
	maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
	root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
	member: vtnet0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
	        ifmaxaddr 0 port 1 priority 128 path cost 2000
	groups: bridge
	nd6 options=9<PERFORMNUD,IFDISABLED>
bridge1: flags=28943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST,PPROMISC> metric 0 mtu 1500
	description: IPMI
	[...]
	id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
	maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
	root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
	groups: bridge
	nd6 options=9<PERFORMNUD,IFDISABLED>

Applying the workaround described below added vtnet1 to bridge1:
bridge1: flags=28943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST,PPROMISC> metric 0 mtu 1500
	description: IPMI
	[...]
	id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
	maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
	root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
	member: vtnet1 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
	        ifmaxaddr 0 port 2 priority 128 path cost 2000
	groups: bridge
	nd6 options=9<PERFORMNUD,IFDISABLED>

That brought back the functionality as available in the pre-22.1 version.
To Reproduce

Set up a bhyve guest running opnsense 22.1
Create interfaces to connect to the guest interfaces on vtnet0, vtnet1, switch these to promisc mode
Create 2 bridges at "Interfaces" -> "Other Types" -> "Bridge", with each having those interfaces at 2. as members
Save the bridge configuration
Rebot
Login and check with ifconfig if the vtnet interfaces are members of the corresponding bridges

Expected behavior
See above at description, the bridge members should be added at boot time.
Workaround
The workaround is to go to "Interfaces" -> "Other Types" -> "Bridge", edit "bridge1" and simply save it again, after that also vtnet1 was added to bridge1 as expected. Or login and issue a ifconfig bridge1 addm vtnet1
Context
This behaviour is partly linked to https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=254343
Environment
opnsense 22.1 running as bhyve guest on FreeBSD/TrueNAS

@hkirschk if configuration using ifconfig fails the system log should yield all the errors from the bad invokes and might give clues as to why it's not working. I don't think we changed much here that would cause members to not appear.
Cheers,
Franco

Tagging with upstream since this indicates a regression in vtnet as per that bug thread. It doesn't look like anyone has been working on getting that ironed out. Workarounds with random up/down are out of the question for our boot sequence.

fc035df8af3 looks like we have a commit now. @hkirschk would you help test it to get it into 22.1?
Cheers,
Franco


implement ocdev url to create routes

This is needed quite a lot right now, since demoing the tool to someone should not require running any oc commands but right now we need to do an ocdev expose service <service name>

related to https://github.com/redhat-developer/ocdev/issues/172

Fixed in #231


Test for David

First make sure you read the test guidelines here: https://github.com/Wiredcraft/test-pm
This task will be followed up asynchronously over a few days and should not take more than two hours in total.
Project Introduction
You have been assigned as project manager for a project for the client 10k Corp (your client stakeholder is Yiwan). The outcome of this project will be a website which allows a user to sign up, and log-in to a system that gives them stock market information. The system as a whole is expected in 5 weeks.
Project Details
The work has been divided into two parts:
• the backend and frontend for login and signup - This will be handled by Wiredcraft completely
• the backend and frontend for stock information which will be provided by a separate company Charlie Labs, you will need to interface with Chopper, their project manager, to coordinate as they are building this system from scratch for 10K Corp.
The specific requirements for the registration have been decided as Username, Password and Email address fields. The login will be based on username. And after sign up the stock market information system expects to receive the Username and Email so they can customise the information.
In your team you have:
• A designer who can make mockups and flow diagrams of the login and once confirmed, implement the frontend
• A developer who can implement the backend and help out integrating the login frontend
• A dev-ops engineer who can set up the servers and take care of deployment.
Your Task
The first step of this task is for you to provide the following:
• Clarify the requirements and provide your understanding of the final scope for Wiredcraft's work.
• An initial project plan including:
A work breakdown for Wiredcraft's integration with Charlie labs up to the final delivery
a rough timeline of what you think needs to happen in this project and deliverables. You can use the methodology of your choice for this plan,
Outline the project phases you would have and what should be delivered at each phase.
The plan can be a few paragraphs of text and the timeline can also be made using Github markdown by outlining what needs to be done during each week.
A rough outline of the process you would use for the day-to-day organisation of the development team and a short overview of how you would manage the communication flows internally and externally.
You can also kick off with any questions to multiple people in one GitHub comment, I will answer likewise and bring up more cases to test your communication skills as we go along:
(Assume you have already been introduced to the client (@yiwan111) and stock market service vendor (@chopper222) ) and you can @myteam333 for questions to your development team)
e.g.
@chopper222 - Hi there, can I confirm with you the requirements for ...
@yiwan111 - I heard from chopper222 that they need to have xxx, does that mean we need to change ....
@myteam333 - I'm not clear on how xxx could work, can you tell me more about it?
@mpathiuk - For the test, I don't understand what you mean by xxx ...

@chopper222 -  Hi there, can I ask when you need to receive the username and email after the user login? should we immediately send the info to your after the user successfully logged in?

@yiwan111 - Hi there, can I clarify the requirements for the user registration with you? Which back-end system will be used to authenticate the user registration and login? Is it the Charlie's stock market service?
@chopper222 - can you share with me the plan and timeline for implementing the user customization and / or the user authentication service?

@mpathiuk For the test, I want to ask if the requirements and the final scope should provided in user stories? Will me as the PM to write the user stories? Or they can also be provided as a block of the text describe the requirements?

@Yiwan111. Hello, I have several points to confirm regarding the user login and signup page: 1. What's the validation rules for the username field? EX. Min 8 characters, only numerical & alphabet characters ? Do special characters allowed? If allowed, which ones?
2. For the Email field, should we only validate the email address according format or need validate if it is a real existed real email address? 3. For the password field, same like the username field, what is the validation rules? And should we provide an on page password strength indicator for the user ? 4. Lastly, Do you think we need have a CAPTCHA feature on this page ?
Many thanks in advance for your replying. :)

@Choper222, @Yiwan111: Hello guys, can you tell which features in the new system for the user check the stock information has? WiredCraft will build the signup / login page, and integrate with Charlie's user customization service, but it's good to know what the end user will get after this project is done. :)

From @chopper222: 1. Yes send us the login details immediately after the user logs in, we will then respond with the correct stock data for this user.
Our staging system will be ready for your integration testing at the end of week 2. Until then we are providing some mock API's for you to test against which return some test stock data.
Assume you have been provided with the full spec of the data returned for stock information.
From @yiwan111 : Your system will hold the auth details (username, email, password) and once logged in you'll then get the correct data from Charlie Labs stock service.

We'll let you decide the validation rules according to industry standards. 2. Needs to exist in your DB. 3. you can choose. 4. No need for CAPTCHA at this stage.

From @mpathiuk: You can add them as a bullet points with a short description. Let's try to keep it high level, what I want to assess is if you have a good understanding of the work breakdown and how you aim to tackle that with your team. Let's not get too into the technical details but concentrate on the requirements, work breakdown structure and project plan.

@mpathiuk For the QA, can I assume the team will do the QA without dedicated QA staff?  And I will apply the SCRUM process?

Yes for QA, and you can apply whichever methodology you think is suitable.

@chopper222. Hello, may I know when the front-end information for the user customized stock update will be ready on your side?

High-level requirements and scope for WiredCraft:

Design and implement the user signup & login front-end page.
Develop the backend user account creation and user login authentication functionality.
Integrate with Charlie labs' user customization API.
Integrate with Charlie labs' user customized stock information updates front-end information.

WBS:

Project plan & timeline.
Divided this project to two major phases ( thus releases ). We will adapt the scrum process, though the two sprints do not necessarily have the same length, should plan more time for the integration work with Charlie labs.
Phase 1 - User Signup and Login: week 1 to week 2
Week 1

Requirement clarification and scope
User signup/login page UI design. ( Designer work independently with back-end developer. He works with PM and client to validate and finalize the design. )
Start User account creation and login authentication back-end. ( Back-end developer can start work as soon as the required user input information is clarified. This part is the back-end service to handle user account creation and user login authentication. )

Week 2

User signup / login page front-end integration. ( Designer and developer work together to integrate & QA the front-end page. )
Dev-Ops help to push the code to the staging server.
Client User acceptance test on the staging server for the user sign up and login frontend and user flow.
Dev-Ops to Release & Deployment to the production server.
Start to Integrate with Charlie's user customization API. ( This is not in the 1 sprint release scope, but we try to aim to start the development earlier. )

Phase 2 - Charlie's User customization integration: Week 3 to week 5.
Week 3

Finish Integrate with Charlie's user customization API.
Dev-Ops to release the user customization integration to staging.
Integration testing with Charlie labs for API integration.
Start Front-end integration with user customized stock update information.

Week 4.

Finish Front-end integration with user customized stock update information.
Dev-Ops to release to the staging.
Integration testing with Charlie labs for user customized stock updates front-end information.
Regress testing on staging with the newly added user customization integration.
Feedback handling and production bug fixing for the delivery of phase 1.

Week 5.

Work with the client for user acceptance test on staging for integration with Charlie labs.
Dev Ops to Release and deployment to production.
Regression testing on production.
Customer acceptance and sign off the project closure.

@yiwan111, @chopper222. I have the following question on how the user accounts management will work, can you kindly clarify or validate these:

We will not sync the user account info from Charlie labs new stock system. When a new user account created, we will store in our own database.

When log user in, we will authenticate agains our own database, no other external system's DB will check.

Assume Charlie's new stock system only needed user information on their side are : username and email and we will call Charlie's API to push this info.

After send the info via an API call, the customized stock updates information will be returned.

@yiwan111. Hi there, regarding the design of the front-end page for the project, may I know which browsers and devices ( Web view and mobile ) need be supported? Should it be a responsive web page design?
And what's the target page loading speed on performance?

Assumptions:
-. I assuming that the project kickoff and client & partner introduction and handshake were already done outside this GitHub issue
-. I assuming Github issue normally only open access to Wiredcraft internal staff. So, I will only use @yiwan111 and @chopper222 when I want to communicate externally.
-. Final requirements, scope and project timeline will be specifically marked; otherwise, they are in the draft status. If post here, it is just to ensure communication transparency with the team.
-. Project timeline will ask input from the development team before finalization.
Outline of the process you would use for the day-to-day organization of the development team:

Sprint or Phase refinement: if needed, before starting each phase or sprint, I will gathering each item in the scope to discuss the requirements and do a rough estimate on the development effort.

Sprint or Phase planning: - I will organize an internal development kickoff, which serves as the sprint planning meeting: to finally update the development effort and adjust the team workload and update the scope if needed according to the latest requirements and team's estimation. It can be an online conference call or a meeting with the team in the office.

For each WBS items or tasks in the timeline, I will create new GitHub issues for each task, and communicate internally through comment. We prefer GitHub first, then IM ( like skype ), then email.

If someone urgently needs me know something important needs follow up, she or he can post in skype or call me on phone if it is a remote colleague; and I won't yelling at anyone should sometimes he or she really think skype or email is the best way, however I will try to update the important information in the comment of the issue.

-A quick daily sync with the development team at the team agreed time depends on the needs.
A short overview of how you would manage the communication flows internally and externally:

Clarify requirements and feedbacks from the development team with client or partner.
2.After clarifying, create or update development issue to the development team or update Charlie's labs for the new development issue, and ask if for estimation or timeline updates needed.
3.Development team work on the issue or wait for Charlie's labs complete the issue.
Issue resolved, qa-ed, pushed to staging. Or Charlie labs finished the issue.
Check if all the issues in a release package are on staging.
After 5th, communicate with client conducting UAT.
After UAT pass, ask Dev-Ops to deploy to the production server.
Depends on the situation, if deploy to existing live production server, conduct a quick regress and smoke test on the production server, and ask the client for approval.
Organize a weekly sync-up meeting or online conference call with the team and Charlie labs before weekly updates meeting with the client and/or Charlie labs.
Weekly meeting with the client and/or Charlie labs: update the project progress, highlight impediments and risks.
After all features in the project released live. Communicate with client, ask for approval and sign off the project according to the contract.

@Chopper222, Hello Chopper, regarding the front-end information for the user stock, which format will you provide to us? Will it be just a well-structured data or it is the final HTML output including style sheet information?

@Chopper222, @Yiwan111, Hello, hope you are doing well. As you know we are currently building out a project plan and timeline, would be really great you can answer me the questions I sent previously regarding the assumptions and the front-end data for the user stock information?
@Chopper222, since we have two dependencies on your team: the user customization API, and the user stock information, can you share with me the project timeline on your side? Or can you update to me when you can have the user customized stock front-end information ready for us to integrate?  Then I will incorporate your information into our project plan and timeline.
I will share with you the project plan and timeline once it is completed. Thanks!

Hello, @yiwan111, @Chopper222 and @myteam333. Please see the final Project Plan as follows.
( @mpathiuk  It is based the assumption that I received the answers from Chopper222 regarding the user customization API and stock front-end information )
Final Project plan & timeline.
Divided this project to two major phases ( thus releases ). We will adapt the scrum process, though the two sprints do not necessarily have the same length, should plan more time for the integration work with Charlie labs.
Phase 1 - User Signup and Login: week 1 to week 2
Week 1

PM: Requirement clarification and scope
Designer: user signup/login page UI design. ( Designer work independently with the developer. He works with PM and client to validate and finalize the design. )
Developer: Start User account creation and login authentication back-end. ( The developer can start work as soon as the required user input information is clarified. This part is the back-end service to handle user account creation and user login authentication. )
-Charlie Labs: Develop the stock information's API interface for the user customization.

Week 2

Designer and developer: User signup / login page front-end integration.
Dev-Ops: to push the code to the staging server.
PM: work with the client User acceptance test on the staging server for the user sign up and login frontend and user flow.
Dev-Ops: to Release & Deployment to the production server.
Developer: to start to Integrate with Charlie's user customization API. ( This is not in the 1 sprint release scope, but we try to aim to start the development earlier, as the API interface is defined and work with the mock data )
Charlie labs: Develop the stock information system's user customized stock information back-end and front-end information.
PM: Follow up with Charlie labs for their development for the stock information's API.

Phase 2 - Charlie's User customization integration: Week 3 to week 5.
Week 3

Developer: to finish Integrate with Charlie's user customization API.
Dev-Ops: to release the user customization integration to staging.
PM: work with the development team and coordinate the integration testing with Charlie labs for API integration.
Charlie Labs: Finish the stock information system's user customized stock information back-end and front-end information.
Developer: to start Front-end integration with user customized stock update information.

Week 4.

Developer: to finish Front-end integration with user customized stock update information.
Dev-Ops: to release to the staging.
PM: work with the development team and coordinate the Integration testing with Charlie labs for user customized stock updates front-end information.
Dev-Ops and Developer: Regress testing on staging with the newly added user customization integration.
Developer: handles feedback handling and production bug fixing for the delivery of phase 1.

Week 5.

PM work with the client:  user acceptance test on staging for integration with Charlie labs.
Dev Ops:  to Release and deployment to production.
Developer & Dev Ops: Regression testing on production.
PM: Work with customer acceptance and sign off the project closure.

Thanks @david-adam ,
I'd like to keep this high-level so we'll skip past the detail oriented questions for now.
You're in the middle of week 4 of your above plan when you hear from the client:
from @yiwan111 :
Hi there, I've just received word from corporate that we now need to ask the user to give us a bank card number and validate this during registration for security reasons. However we cannot delay the delivery timeline as this initiative has already been announced to the public. Let me know how you plan to get this done.
After checking in with your team you hear:
from @myteam333:
We can get the bank card validation done but it will add 3 weeks to the timeline if we do a full flow of validation. If we make a very simple flow for users to provide bank card but without validating this, we could have that in the current timeline.
What do you do next?

@mpathiuk I will do as follows:
@yiwan111. Thanks for your urgent updates. For this is a scope and requirement changes, we estimated that it would need to add 3 weeks to the timeline if we provide a full flow for the back card input and validation, but if we can do it first without validation, we can meet the timeline. Therefore, may I propose for the following: we first only provide the back card input flow without the system validation in order to meet the release timeline, and we can continue work on the validation. You can arrange to do the bank card validation offline manually for about 3 weeks until the validation feature is online. In the meantime, I will update our change request and management document to reflect this change and get this approved if it is OK with you.

@myteam333 I have a question about the credit card validation estimation . May I know why we need 3 weeks?  Because the whole project originally is 5 weeks, if just considering development, it around 4 weeks; why add this single validation need 3 weeks more?  Just want to know some details so I can explain to the client and to see if we have room to propose other alternatives.

@david-adam  Thanks you, we can count the test as completed and move on to the next steps. You'll hear from us by email.


Next version

What I did
SCS v2 (formally storycap) implementation. See #95 if you want more details.
Remaining tasks til merge:

[x] remove _old dir
[x] rewrite README.md
[x] write how to migrate from SCS v1
[x] write how to migrate from zisui

Remaining tasks after merge til publish

[ ] rename this repository (see #130 )

Thank you for your hard work :smile: :tada:


⚠ PrivateHD has degraded performance

In 8730431, PrivateHD ($PHD) experienced degraded performance:

HTTP code: 200
Response time: 1495 ms

Resolved: PrivateHD performance has improved in 56fed63.


rtabmap_ros: 0.20.23-1 in 'humble/distribution.yaml' [bloom]

Increasing version of package(s) in repository rtabmap_ros to 0.20.23-1:

upstream repository: https://github.com/introlab/rtabmap_ros.git
release repository: https://github.com/introlab/rtabmap_ros-release.git
distro file: humble/distribution.yaml
bloom version: 0.11.2
previous version for package: 0.20.22-1

Merge https://github.com/ros/rosdistro/pull/35915 before this one (dependency on right version).


fix #84 Added mocked responses to ContentLinkResolverTests and ValueC…

…onverterTests

great job @charithsoori !

Hi @charithsoori ,
we would like to send you Kentico Cloud T-shirt and some stickers as a thanks for taking part in Hacktoberfest. If you want them, please send us your postal address and shirt size at<EMAIL_ADDRESS>


Call to undefined method Illuminate\Database\Schema\Blueprint::id()

Hi TheOrchid team,
I got this error when try to install.
Symfony\Component\Debug\Exception\FatalThrowableError]
  Call to undefined method Illuminate\Database\Schema\Blueprint::id()

$table->id should be change to $table->integer or you're missing some dependencies so it can't work now.
Thanks!

Hi sangnguyenplus, thanks for the feedback, I will fix this soon


esp32s3 host status crash (IDFGH-13992)

Answers checklist.

[X] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
[X] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

General issue report
When using the USB host mode on the ESP32-S3 to connect multiple HID devices (keyboard and mouse), I encountered the following errors:
Steps to Reproduce
Power on the ESP32-S3 development board.
Connect multiple HID devices (such as a keyboard and mouse) using a USB hub or directly.
Run the application and observe the output logs.
Expected Behavior
I expect to be able to connect and recognize multiple HID devices simultaneously without encountering errors.
Actual Behavior
When connecting multiple devices, the system is unable to allocate enough HCD channels and returns the ESP_ERR_NOT_SUPPORTED error. This leads to the failure to successfully claim the interface, preventing the HID devices from functioning properly.
Additional Information
ESP-IDF Version: v5.4-dev-3951-g9106c43acc
Relevant Code: The issue occurs in the hid_host_example.c example, specifically at line 437 during the call to hid_host_device_open.
Hardware Information: ESP32-S3 development board, connected HID devices include a brand-name USB keyboard and USB mouse.
不好意思 英语有点难受 回归中文，我想知道是ESP32-S3的host模式不能用hub吗？还是需要改代码？我看报错位置是usb_dwc_hal_chan_alloc这个函数，貌似是要alloc个东西。。我看OTG_NUM_HOST_CHAN这个的定义是16 是不是也就是只有一个？
Rebooting...
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0xc (RTC_SW_CPU_RST),boot:0x28 (SPI_FAST_FLASH_BOOT)
Saved PC:0x40375a18
--- 0x40375a18: esp_restart_noos at D:/esp32/esp-idf/components/esp_system/port/soc/esp32s3/system_internal.c:160
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fce2810,len:0x15a0
load:0x403c8700,len:0x4
load:0x403c8704,len:0xd20
load:0x403cb700,len:0x2edc
entry 0x403c8928
I (31) boot: ESP-IDF v5.4-dev-3951-g9106c43acc 2nd stage bootloader
I (31) boot: compile time Nov  3 2024 14:09:17
I (31) boot: Multicore bootloader
I (33) boot: chip revision: v0.2
I (36) boot: efuse block revision: v1.3
I (40) boot.esp32s3: Boot SPI Speed : 80MHz
I (43) boot.esp32s3: SPI Mode       : DIO
I (47) boot.esp32s3: SPI Flash Size : 2MB
I (51) boot: Enabling RNG early entropy source...
I (55) boot: Partition Table:
I (58) boot: ## Label            Usage          Type ST Offset   Length
I (64) boot:  0 nvs              WiFi data        01 02 00009000 00006000
I (71) boot:  1 phy_init         RF data          01 01 0000f000 00001000
I (77) boot:  2 factory          factory app      00 00 00010000 00100000
I (84) boot: End of partition table
I (87) esp_image: segment 0: paddr=00010020 vaddr=3c030020 size=0d5f0h ( 54768) map
I (104) esp_image: segment 1: paddr=0001d618 vaddr=3fc92400 size=028c0h ( 10432) load
I (107) esp_image: segment 2: paddr=0001fee0 vaddr=40374000 size=00138h (   312) load
I (110) esp_image: segment 3: paddr=00020020 vaddr=42000020 size=22560h (140640) map
I (142) esp_image: segment 4: paddr=00042588 vaddr=40374138 size=0e27ch ( 57980) load
I (155) esp_image: segment 5: paddr=0005080c vaddr=600fe100 size=0001ch (    28) load
I (161) boot: Loaded app from partition at offset 0x10000
I (161) boot: Disabling RNG early entropy source...
I (172) cpu_start: Multicore app
I (182) cpu_start: Pro cpu start user code
I (182) cpu_start: cpu freq: 160000000 Hz
I (182) app_init: Application information:
I (182) app_init: Project name:     hid
I (185) app_init: App version:      1
I (189) app_init: Compile time:     Nov  3 2024 14:08:17
I (194) app_init: ELF file SHA256:  05856467c...
I (198) app_init: ESP-IDF:          v5.4-dev-3951-g9106c43acc
I (203) efuse_init: Min chip rev:     v0.0
I (207) efuse_init: Max chip rev:     v0.99
I (211) efuse_init: Chip rev:         v0.2
I (215) heap_init: Initializing. RAM available for dynamic allocation:
I (221) heap_init: At 3FC95530 len 000541E0 (336 KiB): RAM
I (227) heap_init: At 3FCE9710 len 00005724 (21 KiB): RAM
I (232) heap_init: At 3FCF0000 len 00008000 (32 KiB): DRAM
I (237) heap_init: At 600FE11C len 00001ECC (7 KiB): RTCRAM
I (243) spi_flash: detected chip: generic
I (246) spi_flash: flash io: dio
W (249) spi_flash: Detected size(16384k) larger than the size in the binary image header(2048k). Using the size in the binary image header.
I (261) sleep_gpio: Configure to isolate all GPIO pins in sleep state
I (268) sleep_gpio: Enable automatic switching of GPIO sleep configuration
I (274) main_task: Started on CPU0
I (284) main_task: Calling app_main()
I (284) example: HID Host example
I (284) gpio: GPIO[0]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:2
I (324) example: Waiting for HID Device to be connected
W (704) hid-host: No HID device at USB port 1
I (884) example: HID Device, protocol 'KEYBOARD' CONNECTED
I (984) example: HID Device, protocol 'MOUSE' CONNECTED
I (1064) example: HID Device, protocol 'KEYBOARD' CONNECTED
I (1164) example: HID Device, protocol 'MOUSE' CONNECTED
E (1164) HCD DWC: No more HCD channels available
E (1164) USBH: EP Alloc error: ESP_ERR_NOT_SUPPORTED
E (1164) USB HOST: EP allocation error ESP_ERR_NOT_SUPPORTED
E (1164) USB HOST: Claiming interface error: ESP_ERR_NOT_SUPPORTED
E (1174) hid-host: hid_host_interface_claim_and_prepare_transfer(576): Unable to claim Interface
E (1184) hid-host: hid_host_device_open(1186): Unable to claim interface
ESP_ERROR_CHECK failed: esp_err_t 0x106 (ESP_ERR_NOT_SUPPORTED) at 0x4200775a
--- 0x4200775a: hid_host_device_event at D:/esp32/hid/hid/main/hid_host_example.c:437 (discriminator 1)
file: "./main/hid_host_example.c" line 437
func: hid_host_device_event
expression: hid_host_device_open(hid_device_handle, &dev_config)
abort() was called at PC 0x40379c5b on core 0
--- 0x40379c5b: _esp_error_check_failed at D:/esp32/esp-idf/components/esp_system/esp_err.c:49
Backtrace: 0x40375ad9:0x3fc97810 0x40379c65:0x3fc97830 0x403802f5:0x3fc97850 0x40379c5b:0x3fc978c0
0x4200775a:0x3fc978f0 0x42007965:0x3fc97920 0x42021efb:0x3fc979a0 0x4037a645:0x3fc979d0
--- 0x40375ad9: panic_abort at D:/esp32/esp-idf/components/esp_system/panic.c:454
0x40379c65: esp_system_abort at D:/esp32/esp-idf/components/esp_system/port/esp_system_chip.c:92
0x403802f5: abort at D:/esp32/esp-idf/components/newlib/abort.c:38
0x40379c5b: _esp_error_check_failed at D:/esp32/esp-idf/components/esp_system/esp_err.c:49
0x4200775a: hid_host_device_event at D:/esp32/hid/hid/main/hid_host_example.c:437 (discriminator 1)
0x42007965: app_main at D:/esp32/hid/hid/main/hid_host_example.c:604
0x42021efb: main_task at D:/esp32/esp-idf/components/freertos/app_startup.c:208
0x4037a645: vPortTaskWrapper at D:/esp32/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:139
ELF file SHA256: 05856467c

Hi, @buzhaodi,
There are only 8 channels available on ESP32S3.
There is an error in the log about that:
E (1164) HCD DWC: No more HCD channels available
Each Hub occupies 2 channels, so the are only 5 left. Every HID device requires 1 channel for CTRL endpoint and 1 channel per interface. If HID device has 3 interfaces (Mouse, Keyboard and for example unspecified protocol «None»), for two such devices you already need 8 channels in total (So, with Hub it will be 2+(1+3)*2) > 8).
Currently, the HID Host Driver allocates a channel for each interface, even if the last one is not used. Which is also a limitation factor.
Can you try to use simple usb_host_lib example from esp-idf with all attached devices you want and attach its output log here?

Connect multiple HID devices (such as a keyboard and mouse) using a USB hub or  directly.

Do you have the same problem, when you connect HID devices directly (without external Hub)?
The limitation in the HID Host Driver could be removed (but we don’t have it planned yet), meanwhile you could try any other HID devices, which have less interfaces to fit into 8 channels on S3.

Hi, @roma-jam
Thank you for the previous information! I’ve done some additional testing and wanted to share my results and thoughts, as well as inquire about potential solutions for my project needs.

Test Results
I’ve tested the ESP32-S3 with the following two examples:

HID Host Example: When I connect multiple HID devices (such as a keyboard and mouse) via a USB hub, I encounter an issue where the system runs out of HCD channels and returns the ESP_ERR_NOT_SUPPORTED error. However, if I either connect without a hub or connect only one device through the hub, everything works fine, with no errors related to channel allocation.

USB Host Library Example: With the usb_host_lib example, I successfully connected multiple HID devices via a USB hub. The system correctly identified all devices, and it displayed device descriptors without running into channel allocation issues. This suggests that the ESP32-S3’s USB Host mode can handle multiple devices, at least under certain conditions.

Background and Goals
I’m working towards implementing a solution similar to a KVM device, without HDMI, where I can connect both a keyboard and mouse simultaneously. However, I’m facing limitations due to the restricted number of channels available for HID devices on the ESP32-S3, particularly when using a hub, which consumes additional channels.

Any guidance on these points would be greatly appreciated, as well as suggestions on how best to implement multi-device HID support for this KVM-like solution.

Thank you again for your help!

this is my usb_host_lib log:
D:\esp32\hid\usbhostlib\usb_host_lib> & 'd:\esp32\python_env\idf5.4_py3.11_env\Scripts\python.exe' 'd:\esp32\esp-idf\tools\idf_monitor.py' -p COM21 -b 115200 --toolchain-prefix xtensa-esp32s3-elf- --target esp32s3 'd:\esp32\hid\usbhostlib\usb_host_lib\build\usb_host_lib_example.elf'
--- Warning: GDB cannot open serial ports accessed as COMx
--- Using \.\COM21 instead...
--- esp-idf-monitor 1.5.0 on \.\COM21 115200
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x1 (POWERON),boot:0x28 (SPI_FAST_FLASH_BOOT)
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fce2810,len:0x15a0
load:0x403c8700,len:0x4
load:0x403c8704,len:0xd20
load:0x403cb700,len:0x2edc
entry 0x403c8928
I (27) boot: ESP-IDF v5.4-dev-3951-g9106c43acc-dirty 2nd stage bootloader
I (27) boot: compile time Nov  6 2024 23:29:06
I (27) boot: Multicore bootloader
I (29) boot: chip revision: v0.2
I (32) boot: efuse block revision: v1.3
I (36) boot.esp32s3: Boot SPI Speed : 80MHz
I (40) boot.esp32s3: SPI Mode       : DIO
I (43) boot.esp32s3: SPI Flash Size : 2MB
I (47) boot: Enabling RNG early entropy source...
I (52) boot: Partition Table:
I (54) boot: ## Label            Usage          Type ST Offset   Length
I (60) boot:  0 nvs              WiFi data        01 02 00009000 00006000
I (67) boot:  1 phy_init         RF data          01 01 0000f000 00001000
I (73) boot:  2 factory          factory app      00 00 00010000 00100000
I (80) boot: End of partition table
I (83) esp_image: segment 0: paddr=00010020 vaddr=3c030020 size=0cde0h ( 52704) map
I (100) esp_image: segment 1: paddr=0001ce08 vaddr=3fc92500 size=028b0h ( 10416) load
I (102) esp_image: segment 2: paddr=0001f6c0 vaddr=40374000 size=00958h (  2392) load
I (106) esp_image: segment 3: paddr=00020020 vaddr=42000020 size=20ccch (134348) map
I (137) esp_image: segment 4: paddr=00040cf4 vaddr=40374958 size=0db88h ( 56200) load
I (149) esp_image: segment 5: paddr=0004e884 vaddr=600fe100 size=0001ch (    28) load
I (155) boot: Loaded app from partition at offset 0x10000
I (155) boot: Disabling RNG early entropy source...
I (167) cpu_start: Multicore app
I (176) cpu_start: Pro cpu start user code
I (176) cpu_start: cpu freq: 160000000 Hz
I (176) app_init: Application information:
I (176) app_init: Project name:     usb_host_lib_example
I (181) app_init: App version:      1
I (185) app_init: Compile time:     Nov  6 2024 23:28:02
I (190) app_init: ELF file SHA256:  58bc8c81e...
I (194) app_init: ESP-IDF:          v5.4-dev-3951-g9106c43acc-dirty
I (200) efuse_init: Min chip rev:     v0.0
I (204) efuse_init: Max chip rev:     v0.99
I (208) efuse_init: Chip rev:         v0.2
I (212) heap_init: Initializing. RAM available for dynamic allocation:
I (218) heap_init: At 3FC95610 len 00054100 (336 KiB): RAM
I (223) heap_init: At 3FCE9710 len 00005724 (21 KiB): RAM
I (228) heap_init: At 3FCF0000 len 00008000 (32 KiB): DRAM
I (234) heap_init: At 600FE11C len 00001ECC (7 KiB): RTCRAM
I (240) spi_flash: detected chip: generic
I (243) spi_flash: flash io: dio
W (246) spi_flash: Detected size(16384k) larger than the size in the binary image header(2048k). Using the size in the binary image header.
I (258) sleep_gpio: Configure to isolate all GPIO pins in sleep state
I (264) sleep_gpio: Enable automatic switching of GPIO sleep configuration
I (271) main_task: Started on CPU0
I (281) main_task: Calling app_main()
I (281) USB host lib: USB host library example
I (281) gpio: GPIO[0]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:2
I (291) USB host lib: Installing USB Host Library
I (321) CLASS: Registering Client
I (701) CLASS: Opening device at address 1
I (701) CLASS: Getting device information
I (701) CLASS:  Full speed
I (701) CLASS:  Parent info:
I (701) CLASS:          Port: ROOT
I (701) CLASS:  bConfigurationValue 1
I (701) CLASS: Getting device descriptor
*** Device descriptor ***
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0x9
bDeviceSubClass 0x0
bDeviceProtocol 0x0
bMaxPacketSize0 64
idVendor 0x214b
idProduct 0x7250
bcdDevice 1.00
iManufacturer 0
iProduct 1
iSerialNumber 0
bNumConfigurations 1
I (731) CLASS: Getting config descriptor
*** Configuration descriptor ***
bLength 9
bDescriptorType 2
wTotalLength 25
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
bMaxPower 100mA
*** Interface descriptor ***
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 0x9
bInterfaceSubClass 0x0
bInterfaceProtocol 0x0
iInterface 0
*** Endpoint descriptor ***
bLength 7
bDescriptorType 5
bEndpointAddress 0x81   EP 1 IN
bmAttributes 0x3        INT
wMaxPacketSize 1
bInterval 255
I (781) CLASS: Getting Product string descriptor
USB2.0 HUB
I (7031) CLASS: Opening device at address 2
I (7031) CLASS: Getting device information
I (7031) CLASS:         Full speed
I (7031) CLASS:         Parent info:
I (7031) CLASS:                 Bus addr: 1
I (7031) CLASS:                 Port: 2
I (7041) CLASS:         bConfigurationValue 1
I (7041) CLASS: Getting device descriptor
*** Device descriptor ***
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0x0
bDeviceSubClass 0x0
bDeviceProtocol 0x0
bMaxPacketSize0 32
idVendor 0x46d
idProduct 0xc53f
bcdDevice 4.00
iManufacturer 1
iProduct 2
iSerialNumber 0
bNumConfigurations 1
I (7071) CLASS: Getting config descriptor
*** Configuration descriptor ***
bLength 9
bDescriptorType 2
wTotalLength 84
bNumInterfaces 3
bConfigurationValue 1
iConfiguration 4
bmAttributes 0xa0
bMaxPower 98mA
*** Interface descriptor ***
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 0x3
bInterfaceSubClass 0x1
bInterfaceProtocol 0x1
iInterface 0
*** Endpoint descriptor ***
bLength 7
bDescriptorType 5
bEndpointAddress 0x81   EP 1 IN
bmAttributes 0x3        INT
wMaxPacketSize 12
bInterval 1
*** Interface descriptor ***
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 0x3
bInterfaceSubClass 0x1
bInterfaceProtocol 0x2
iInterface 0
*** Endpoint descriptor ***
bLength 7
bDescriptorType 5
bEndpointAddress 0x82   EP 2 IN
bmAttributes 0x3        INT
wMaxPacketSize 32
bInterval 1
*** Interface descriptor ***
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 0x3
bInterfaceSubClass 0x0
bInterfaceProtocol 0x0
iInterface 0
*** Endpoint descriptor ***
bLength 7
bDescriptorType 5
bEndpointAddress 0x83   EP 3 IN
bmAttributes 0x3        INT
wMaxPacketSize 32
bInterval 1
I (7171) CLASS: Getting Manufacturer string descriptor
Logitech
I (7181) CLASS: Getting Product string descriptor
USB Receiver
I (16601) CLASS: Opening device at address 3
I (16601) CLASS: Getting device information
I (16601) CLASS:        Full speed
I (16601) CLASS:        Parent info:
I (16601) CLASS:                Bus addr: 1
I (16601) CLASS:                Port: 1
I (16601) CLASS:        bConfigurationValue 1
I (16611) CLASS: Getting device descriptor
*** Device descriptor ***
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0x0
bDeviceSubClass 0x0
bDeviceProtocol 0x0
bMaxPacketSize0 64
idVendor 0x46a
idProduct 0xcb
bcdDevice 1.00
iManufacturer 1
iProduct 2
iSerialNumber 0
bNumConfigurations 1
I (16631) CLASS: Getting config descriptor
*** Configuration descriptor ***
bLength 9
bDescriptorType 2
wTotalLength 66
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
bMaxPower 500mA
*** Interface descriptor ***
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 0x3
bInterfaceSubClass 0x1
bInterfaceProtocol 0x1
iInterface 0
*** Endpoint descriptor ***
bLength 7
bDescriptorType 5
bEndpointAddress 0x81   EP 1 IN
bmAttributes 0x3        INT
wMaxPacketSize 8
bInterval 1
*** Interface descriptor ***
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 0x3
bInterfaceSubClass 0x1
bInterfaceProtocol 0x2
iInterface 0
*** Endpoint descriptor ***
bLength 7
bDescriptorType 5
bEndpointAddress 0x82   EP 2 IN
bmAttributes 0x3        INT
wMaxPacketSize 64
bInterval 1
*** Endpoint descriptor ***
bLength 7
bDescriptorType 5
bEndpointAddress 0x3    EP 3 OUT
bmAttributes 0x3        INT
wMaxPacketSize 64
bInterval 1
I (16731) CLASS: Getting Manufacturer string descriptor
CHERRY
I (16731) CLASS: Getting Product string descriptor
Mechanical Keyboard

Hi @buzhaodi ,
thanks for the additional log.
Yes, the usb_host_lib example doesn't use the device features, so it doesn't allocate any channel, except the channel for CTRL endpoint. Thus, with an external hub and S2/S3 you are able to attach 6 devices through the hub ((2ch (hub) + 1ch (ep0) * 6) <= 8).
The HID Host class driver example opens every interface on connection: hid_host_example.c, line 437
But you can change any way you need for your device and open only interfaces you need, based on the dev_params.proto value.
Something like this:
if (dev_params.proto == HID_PROTOCOL_KEYBOARD || dev_params.proto == HID_PROTOCOL_MOUSE) {
    ESP_ERROR_CHECK(hid_host_device_open(hid_device_handle, &dev_config));
}

This omit the channel allocation for other interfaces, which not specify the protocol.
Also, you can open the HID device via hid_host_device_open, only if there was no one before. Basically, register only one hid_host_interface_callback per one Mouse and do not open the device again, if the Mouse feature is already present.
This could also help to decrease the channel usage.

@buzhaodi, FWIW I just went through this with my KVM project to add hub support. I was able to get it working by excluding any non-kb/mouse devices as suggested by @roma-jam.


[Test] More notebooks

Trying to get more notebooks running in tests. This has resulted in a few changes to the notebooks, so that they don't rely on paths unique to particular people's machines.
Since the notebooks use a variety of models, and standard GitHub runners are not over-provisioned with disk space, some tests need to run on GPU nodes. Furthermore, some of the notebooks use both local and remote models, which has caused the CI runs to be switched to GPU runners.
Some of the notebooks are having to be skipped, due to errors which have not yet been fully debugged.
Also bump some of the GitHub Action versions to the latest available

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 63.61%.  Consider uploading reports for the commit 5c87400 to get more accurate results

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #745      +/-   ##
==========================================
- Coverage   69.51%   63.61%   -5.91%
==========================================
  Files          53       53
  Lines        4005     3993      -12
==========================================
- Hits         2784     2540     -244
- Misses       1221     1453     +232

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

Merging of this PR will proceed along "unless there are objections" lines.


How do I get tooltips to always show in V3?

Like for #1861.
Hi,
From V2 to V3(alpha2) I wasn't able to reproduce the same functionality.
Some stuff are broken, like creating a new tooltip instance
const Tooltip = Chart.registry.getPlugin("tooltip");
chart.config.data.datasets.forEach(function (dataset, i) {
          chart.getDatasetMeta(i).data.forEach(function (sector, j) {
          sector.datasetIndex = i;
          sector.index = j;
          const tooltip = new Tooltip._element({
            _chart: chart,
          });
          tooltip._active = [sector];
          tooltip.options = chart.options.tooltips;
          chart.pluginTooltips.push(tooltip);
        });
      });

And in the afterDraw, easing is an empty object. Pivot and transition don't exist.
I don't know if I missed something in the documentation. So if someone could give me some hints, it would be nice.
At the moment, I have no tooltip displayed.
Thank you!

In v3 there is only one tooltip.
You can steal the element for a new plugin though: https://codepen.io/kurkle/pen/BajeybZ?editors=0010

https://github.com/chartjs/chartjs-plugin-datalabels might also be a good option for this use case

@kurkle Thanks it helped a lot
@etimberg Thanks

@kurkle
I've been trying to create a new plugin to always show tooltips (without the use of chartjs-plugin-datalabel or others, but with the code from https://codepen.io/kurkle/pen/BajeybZ?editors=0010 as a start), but seems like the Tooltip elements have NaN as value for width, height, x and y properties so they don't render. Any ideas?
const Tooltip = ChartJS.registry.getPlugin('tooltip')
const fixedTooltips = {
  id: 'tooltips',
  afterUpdate: (chart: ChartJS) => {
    chart.pluginTooltips = []
    chart.config.data.datasets.forEach((dataset, datasetIndex) => {
      chart.getDatasetMeta(datasetIndex).data.forEach((element, index) => {
        const tooltip = new Tooltip._element({
          _chart: chart,
          options: {
            setContext: () => {
              return {
                ...Tooltip.defaults
              }
            }
          }
        })
        tooltip._active = [{ element, datasetIndex, index }]
        tooltip.update(true)
        chart.pluginTooltips.push(tooltip)
      })
    })
  },
  afterDraw: (chart: ChartJS) => {
    chart.pluginTooltips.forEach((tooltip) => {
      tooltip.opacity = 1
      tooltip.draw(chart.ctx)
    })
  }
}

@arnriu I wasn't able to figure it out so I went with an external HTML tooltip instead

thank you @Echelpoel .
I also found a solution using html in externalTooltipHandler: https://github.com/chartjs/Chart.js/issues/11192#issuecomment-1476000689


chore(deps): upgrade golangci-lint in ci to 1.59

Upgrade golangci-lint version in ci to 1.59

Codecov Report
Attention: Patch coverage is 0% with 1 line in your changes missing coverage. Please review.

Project coverage is 44.75%. Comparing base (2469e7a) to head (1b6a5fa).
Report is 107 commits behind head on main.

Files
Patch %
Lines

nodebuilder/fraud/lifecycle.go
0.00%
1 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3483      +/-   ##
==========================================
- Coverage   44.83%   44.75%   -0.08%
==========================================
  Files         265      273       +8
  Lines       14620    15371     +751
==========================================
+ Hits         6555     6880     +325
- Misses       7313     7698     +385
- Partials      752      793      +41

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

Weird test failure, looks like a timeout or so.


How to make parallax cell not effect text?

Right not it seems like the Parallax effects the background of the cell and what's in front. I was wondering if there is a way to change this so the text on the cell is not effected by Parallax? Therefore the "Text/UILabel" does not move with the Parallax as you scroll?

I'm not 100% sure if I understand you. If you could provide some sort of illustration that would be nice.
Regardless, your assumption is correct. The parallax effect this library provides is by moving the contentView of the cell slower (hence travel longer) than the cell itself. So basically if you have two elements say a label and an icon, you can put one in the contentView and another in backgroundView and what you'll get is that the one in the contentView will move slower (the parallax effect) and the one in the backgroundView will move together with the cell.
In your case, if you want some text not moving with the parallax then putting it in the backgroundView instead of contentView.

@KelvinJin Thanks for replying. I am using your sample project and here is an illustration of what I mean:

In your sample project, both the textLabel and background color is in the contentView. Because of this everything has the parallax effect.
You said above that I can add items to a backgroundView and that will not have the parallax effect. I am not sure how to do this. How would you put the textLabel outside of the contentView so it has no parallax effect? Please use your sample project as an example.

Check parallax-demo branch. It's all about how much you know about UICollectionViewCell to be honest.


Using Time.current over #in_time_zone

Since there is no passing of zone to #in_time_zone it appears that it is
not necessary here

No idea why I got into this habit. Guess I didn't know about Time.current :-)


upgrade underlying driver to 3.0.0

Fixes #25
Tested against 3.3 and 2.2.4

closing to resubmit with a small change