[test](index compaction) Add index compaction full flow UT test

What problem does this PR solve?

Add index compaction full flow UT tests
Add index compaction performance test, disable by default.

Release note
None
Check List (For Author)

Test

[ ] Regression test
[ ] Unit Test
[ ] Manual test (add detailed scripts or steps below)
[ ] No need to test or manual test. Explain why:

[ ] This is a refactor/code format and no logic has been changed.
[ ] Previous test can cover this change.
[ ] No code files have been changed.
[ ] Other reason

Behavior changed:

[ ] No.
[ ] Yes.

Does this need documentation?

[ ] No.
[ ] Yes.

Check List (For Reviewer who merge this PR)

[ ] Confirm the release note
[ ] Confirm test cases
[ ] Confirm document
[ ] Add branch pick label

Thank you for your contribution to Apache Doris.
Don't know what should be done next? See How to process your PR.
Please clearly describe your PR:

What problem was fixed (it's best to include specific error reporting information). How it was fixed.
Which behaviors were modified. What was the previous behavior, what is it now, why was it modified, and what possible impacts might there be.
What features were added. Why was this function added?
Which code was refactored and why was this part of the code refactored?


Enable request search to search story text

Done

Any advice on how to test this?

The top request in the search list has a story, and that story has the word
story in it. Type story into the search box and it will filter to show
requests with the word story in their story, and that top one will still
show
On Mon, Oct 17, 2016 at 11:38 PM, Joseph McArthur<EMAIL_ADDRESS>wrote:

Any advice on how to test this?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/OAButton/backend/issues/290#issuecomment-254355341,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAuXCCWxl2tkHpDfYyaN07ZFZvvsrOSeks5q0_jpgaJpZM4KX-iS
.

Only single words seem to work, yes?
searching "story" brings back too, searching "this is a story" doesn't.
Also, this may be because I used it while you were changing things, but
I've managed to make a duplicate request.
On Mon, 17 Oct 2016 at 23:40 markmacgillivray<EMAIL_ADDRESS>wrote:

The top request in the search list has a story, and that story has the word
story in it. Type story into the search box and it will filter to show
requests with the word story in their story, and that top one will still
show
On Mon, Oct 17, 2016 at 11:38 PM, Joseph McArthur <
<EMAIL_ADDRESS>wrote:

Any advice on how to test this?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/OAButton/backend/issues/290#issuecomment-254355341,
or mute the thread
<
https://github.com/notifications/unsubscribe-auth/AAuXCCWxl2tkHpDfYyaN07ZFZvvsrOSeks5q0_jpgaJpZM4KX-iS
.

—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/OAButton/backend/issues/290#issuecomment-254355807,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEuWZ0NyARIa7rFRz38kE1w6V0UUzJbJks5q0_logaJpZM4KX-iS
.

This looks to be working as expected now. On the dev site, there is this request:
http://oab.test.cottagelabs.com/request/ByAEhWpDmnaLteb2H
and in the story for it, it has the phrase "potentially useful paper". There are also other requests with the words useful and paper occurring in them, searching for just the word useful or the word paper return 2 and 6 results, searching for potentially useful paper returns 7, and searching for potentially AND useful AND paper returns just the one listed above.
I will close for now but re-open if I misunderstand.


test(ansi-to-html): Ensure optimizer output is semantically equivalent

Related: https://github.com/Aloso/to-html/issues/37#issuecomment-2547682913
I wanted to have some more confidence in the correctness of the optimization re-working, so here's a fuzz target ~& proptest~ that ensures ansi-to-html's output is semantically equivalent regardless of whether optimizations are enabled
The actual implementation involved writing a smol HTML interpreter that spits out the abstract stylized text which (after cleaning up the output a bit) can be used to determine if the HTML output is semantically equivalent

I ran the fuzzer through a few million inputs with no crashes (aside from some bugs while I was getting things working)

What a nice early Christmas present! 😄
I'll try to look at it today

(from this action run)

INFO: -fork=4: 1 seed inputs, ...

Everything seems to be working nicely now :partying_face:
Switched the proptest over to fuzzing for one minute in CI using 4 jobs to eek out some more throughput. I also wired it up to the workspace and moved the HTML interpreter code into a different target[^1] in crates/ansi-to-html/fuzz, so that it can have tests run in our typical test suite[^2]
[^1]: The different fuzz targets have tests disabled for load-bearing reasons out of our control
[^2]:  Which I desperately wanted given the interpreter's complexity

Committed all of the suggestions

Thanks!


chore(deps) bump DNS lib to 2.1.0

See https://github.com/Kong/lua-resty-dns-client#history for the changes in version 2.1.0.

Nice!


improve readme.md and pavement.py

Pull Request Test Coverage Report for Build 63

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 61.441%

Totals

Change from base Build 61:
0.0%

Covered Lines:
1313

Relevant Lines:
2137

💛  - Coveralls


Adding Chattahoochee Technical College

@bish74 Thank you for your patience while waiting for a review and processing your request. Pull request merged. Please start applying for JetBrains educational subscription at https://www.jetbrains.com/shop/eform/students in an hour, to allow the changes to propagate through JetBrains systems.


Add tests for @yamada-ui/stepper

related: #74
Description
Currently, no tests in @yamada-ui/stepper. In the future, I feel the need for testing when operating @yamada-ui/stepper.
Problem Statement/Justification
Testing is essential to ensure quality when operating a package.

@hirotomoyamada
Hi! Can I work on this one?

Hi, thanks for the comment!
Yes, please. I'll assign this issuse to you.


哪里有windows 的 vnn_core.dll 下载？

Describe the bug
A clear and concise description of the bug.
How To Reproduce the bug
Steps to reproduce the behavior, how frequent can you experience the bug:
1.
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Running Information(please complete the following information):

GPUPixel Version using : [e.g. 1.2.1]
Operating System: [e.g. Ubuntu 20.04, Windows 11, iOS 15.2, Android 13]
Device Info: [e.g. Huawei Mate40, Xiaomi 10]

Additional context
Add any other context about the problem here.

https://github.com/joyycom/VNN


Fee estimate/CFR view for ministry coordinator for general requests

As a ministry coordinator
I want a CFR/Fee estimate view for every general request
so that I  can enter information fee estimates for the request

Deduplication or Records Review
Assumptions & Scope
What are the assumptions for this story?
Only estimated hours can be filled out in the CFR state.
Total Fees Due will automatically be generated by the hours filled in.
What is IN scope?
Ministry coordinator editing the CFR Form
What is NOT in scope?
State changes are covered in #2194
IAO view of the CFR form and Process Payment button.
CFRs for Personal requests.
The divisional coordinator filling out the CFR form
The divisional forms autofilling the Overall Estimate
Acceptance Criteria
Scenario 1: Overall Fee Estimate

GIVEN a ministry coordinator is on the a the Request, Comments or Attachment view
WHEN the user clicks the CFR Form on the left navigation
THEN the  CFR Form view will open
https://jacklyn808742.invisionapp.com/console/share/3W2O64AP5C/912622803
AND will include the Overall Fees Estimate section with the following fields: Amount Pending, Total Fees Due, Locating/Retrieving (Estimated Hours, Actual Hours), Producing..(Estimated Hours, Actual Hours), Preparing...(Estimated Hours, Actual Hours), Volume - for electronic...(Electronic Estimated Hours, Electronic Actual Hours, Hardcopy Estimated Hours, Hardcopy Actual Hours)
AND there will be a section with a field for Overall Narrowing Suggestions
AND a section for Divisions Narrowing Suggestions
*AND there will be a 'Save' button at the bottom

Scenario 2: Editable fields in CFR Form when request is in Call for Records State

GIVEN a ministry coordinator is on the CFR Form view
https://jacklyn808742.invisionapp.com/console/share/3W2O64AP5C/912622803
WHEN the request is in the Call for Records state
THEN the Estimated Hours fields will be editable for Locating/Retrieving, Producing.. Preparing..., Volume - for electronic...(Electronic Estimated Hours, Hardcopy Estimated Hours)
AND all the fields for actual hours will be greyed out and not editable
AND the Total Fee Due will be greyed out and not editable

Scenario 3: Enter estimate hours on CFR Form when request is in Call for Records State

GIVEN a ministry coordinator is on the CFR Form view
https://jacklyn808742.invisionapp.com/console/share/3W2O64AP5C/912622803
AND the request is in the Call for Records state
WHEN the coordinator fills in the Estimated Hours fields for Locating/Retrieving, Producing.. Preparing..., Volume - for electronic...(Electronic Estimated Hours, Hardcopy Estimated Hours)
THEN the Total Fee Due field will automatically be filled based on the Fee Table (insert link)

Scenario 4: Enter estimate hours on CFR Form when request is in Fee Estimate State

GIVEN a ministry coordinator is on the CFR Form view
https://jacklyn808742.invisionapp.com/console/share/3W2O64AP5C/912622803
AND the request is in the Call for Records state
WHEN the coordinator fills in the Estimated Hours fields for Locating/Retrieving, Producing.. Preparing..., Volume - for electronic...(Electronic Estimated Hours, Hardcopy Estimated Hours)
THEN the Total Fee Due field will automatically be filled based on the Fee Table (insert link)

**Scenario 5: Active Save **

GIVEN a ministry coordinator is on the CFR Form view
https://jacklyn808742.invisionapp.com/console/share/3W2O64AP5C/912622803
WHEN all the mandatory fields are filled in:  in CFR the estimate hour fields; Overall Narrowing Suggestions
THEN the Save button will become blue and active

Scenario 6: Save

GIVEN a ministry coordinator is on the CFR Form view
https://jacklyn808742.invisionapp.com/console/share/3W2O64AP5C/912622803
AND the Save button is blue and active
WHEN the user clicks the 'Save' button
THEN a green success toast will briefly appear
AND changes made to the view will be saved

Dependencies? What is the impact of this dependency? (If so, link dependency in the ticket, make it visible in a team´s backlog)
Validation Rules? (If yes, list here)
Design
@xxx - please link the Design here
#1418
Definition of Ready

[ ] Is there a well articulated User Story?
[ ] Is there Acceptance Criteria that covers all scenarios (happy/sad paths)?
[ ] If there is a user interface, is there a design?
[ ] Does the user story need user research/validation?
[ ] Does this User Story needs stakeholder approval?
[ ] Design / Solution accepted by Product Owner
[ ] Is this user story small enough to be completed in a Sprint? Should it be split?
[ ] Are the dependencies known/ understood? (technical, business, regulatory/policy)
[ ] Has the story been estimated?

Definition of Done

[ ] Passes developer unit tests
[ ] Passes peer code review
[ ] If there's a user interface, passes UX assurance
[ ] Passes QA of Acceptance Criteria with verification in Dev and Test
[ ] Confirm Test cases built and succeeding
[ ] No regression test failures
[ ] Test coverage acceptable by Product Owner
[ ] Ticket ready to be merged to master or story branch
[ ] Developer to list Config changes/ Update documents and designs
[ ] Can be demoed in Sprint Review
[ ] Tagged as part of a Release
[ ] Feature flagged if required
[ ] Change Management activities done?

@m-prodan, @JHarrietha-AOT, @mpilchar, @KaraBeach  really good feedback on the CFR forms from demo. One takeaway is that the divisional CFR forms should not be editable after a certain point because of OIPC audit requirements, and likely should not be editable by the ministry coordinator at all.

Thanks, @m-prodan .
They still need to enter some information though to change the state Deduplication or Records Review, even if they put zeroes, correct?

Thinking through this would it be better that the estimated hours and actual hours default is zero and then that they are required to save the form even if the hours are zero?
That way we have complete CFR forms.

Based on our conversation at refinement - I removed the following scenario with respect to actuals:
Scenario 5: Enter actual hours on CFR Form when request is in the Call For Records state

GIVEN a ministry coordinator is on the CFR Form view
https://jacklyn808742.invisionapp.com/console/share/3W2O64AP5C/912622803
AND the request is in the Call for Records state
WHEN the coordinator fills in the Actual Hours fields for Locating/Retrieving, Producing.. Preparing..., Volume - for electronic...(Electronic Estimated Hours, Hardcopy Estimated Hours)
THEN the Total Fee Due field will automatically be updated based on the Fee Table (insert link)

I think this needs to be covered in a different user story, because we aren't allowing actuals to be actionable until after the fee estimate state/fee is resolved or paid.  Otherwise, AC should be good to go based on our conversation today.
cc: @lmullane @abin-aot @divyav-aot @nkan-aot

clarified at standup today, estimated hours will not be editable for ministry after IAO approval. will update AC

I'm testing this right now and it seems like the inverse is true for the current AC - seeking clarification whether, when logged in as a ministry user, editable fields should be active or inactive. Same for Actual hours

Need some help on how to test Sc. 3- Can't move to Fee Estimate state @m-prodan

Update: This seems to be an issue with the Test-Marshal enviro. @nkan-aot is looking into it

One more issue encountered: According to Matt's comment above, hardcopy pages should impact the total amount paid by $0.10/page but I am not seeing a chance when I modify that number

I believe because you entered an actual value, then the total amount paid is now calculating using that value instead of estimate. If you start a new request with CFR Form you should see that the total is updated when you change hardcopy estimate

Regarding state change to fee estimate, it seems to be related to object storage and file upload, and not a code issue. I do not have access to the config for our file bucket so will need to wait for @sumathi-thirumani-aot or @abin-aot, maybe tomorrow

@abin-aot has fixed the file upload issue, state change to fee estimate should be working in test marshal now

This is working GREAT now! Everything checks out. Way to go team!


Override Monos _includes to add baseurl to paths

Copy all Monos theme _includes to my repo.
Add {{ site.baseurl }} as needed to fix broken URLs.
baseurl is set to bathtub since this is a project site, not a user site.

Done as of commit 013945eaec342a7e8457174846aed89885cbe9eb


GEP-1748: Use ServiceExport instead of ServiceImport as parentRef

One of the main improvements in Gateway API is separating the 'frontend' and 'backend' roles.
ServiceImport fits very well as a 'backend' - as used in the examples in GEP 1748.
However in 'mesh' use cases it may be more intuitive and clear to have the ServiceExport as a parent.
An additional benefit:  ServiceExport is created by a user ( usually with RBAC permissions) and represent the intent to have a service available in all clusters. ServiceImport is usually created by an automation tool / MCS implementation. For a user to create a proper config with helm or kubeconfig they would need to wait for the ServiceImport to show up ( or attempt to create one directly).
What happened:
What you expected to happen:
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know?:

What if I have
Cluster A: ServiceExport foo
Cluster B: wants to route to 'foo.clusterset.local'
Cluster B only has a ServiceImport, no ServiceExport to refer to?

For a user to create a proper config with helm or kubeconfig they would need to wait for the ServiceImport

They can point to it in the route at any point, it just won't be valid until its propogated so seems ok?

If ClusterB wants to route to foo.clusterset.local - but cluster A defines the ServiceExport - then ClusterB won't be able to do that, and that's working exactly as intended.
The routes and all policies should stay in Cluster A - just like we don't allow other namespaces to define routes.
Of course we may use grants and other mechanisms to relax this - but fundamentally a cluster should be an even stronger boundary than a namespace.
Breaking the cluster boundaries is IMO a far larger and more dangerous issue - in particular when clusters are in different (cloud vendor) projects and have different admin. The mesh admin ( or fleet admin ) may even designate
'config clusters' where ServiceExports are allowed - we can discuss what would be the equivalent to the cross-namespace
grant.
Regarding 'point to a missing ServiceImport' - it may work if validators don't block it, but it's still not a very intuitive UX.
For everything else we are dealing with resources created by the user - ServiceImport is an internal auto-generated config AFAIK. We do have a similar problem when using 'backendRef', so maybe it's not a huge issue.
But as general design and long term alignment with the concept of separating 'frontend' and 'backend' roles - I think
making this distinction is pretty useful. If we now think continuing to mix frontend/backend is the right approach - perhaps we should revisit a lot of other things. My understanding was that most people in the community believe Service mixing them is a problem and one of the main improvements in Gateway is separating them and providing controls around frontend->backend delegation.

To be more clear: as a user, in ClusterA I express the intent for 'foo' to be exported by creating a ServiceExport. As a result, in ClusterB we'll eventually have a ServiceImport. It is not intuitive or secure for ClusterB to define routes attached to the ServiceImport - it is not the owner of the service, just a consumer.
And in ClusterA it is not intuitive to define routes on the created ServiceImport either - when the user already creates a ServiceExport resource and that is the intent of sharing a service.

What if I have:
Cluster A: ServiceExport foo
ClusterB: ServiceImport foo (automatic), want to create a Route for foo.
I wouldn't expect them to create a cross-cluster resource reference here. Also, ServiceImport is a thing with an IP address (in status), so it kind of represents the frontend... ServiceExport does not afaik?

The routes and all policies should stay in Cluster A - just like we don't allow other namespaces to define routes.

For producer routes yes, but there are also consumer overrides.

What if I have:
Cluster A: ServiceExport foo
ClusterB: ServiceImport foo (automatic), want to create a Route for foo.
I wouldn't expect them to create a cross-cluster resource reference here. Also, ServiceImport is a thing with an IP address (in status), so it kind of represents the frontend... ServiceExport does not afaik?

There is no cross cluster reference. You want a route - you create a ServiceExport, if you gave the permissions. I think it is allowed to have multiple ServiceExport, one per cluster.
Not aware of a requirement to have an IP address - if ServiceExport does have a status I'm sure we can provide feedback to add it.
What is important is that as a user you can create SE and route - no need to wait for a SI to be created ( with a name that is not deterministic)

The routes and all policies should stay in Cluster A - just like we don't allow other namespaces to define routes.

For producer routes yes, but there are also consumer overrides.

Consumer overrides are a complicated thing from security perspective. I think even for Service they are problematic - not to mention egress in general.
That doesn't change the fact that SE is a better target than ServiceImport - both would have same characteristics for consumer overrides.

I think ServiceExport as parentRef could make sense for defining producer routes, whereas ServiceImport makes more sense for defining consumer routes. Importantly, the enforcement of each set should happen within the boundary where it is created, both to avoid any cross-cluster visibility issues, and also because some implementations may funnel cross-cluster traffic through an edge gateway and apply routing rules there (similar to Istio Ambient waypoints).
ServiceExport does have a status field already.
Refs GEP-1748, cc @robscott

+1, ServiceExport as a target for producer routes or policies sounds very reasonable to me in the context of mesh.
When it comes to Gateways, we assume that the Gateway, Route, and ServiceImport are all in the same cluster, and thus targeting the ServiceImport with Routes and Policies seems like the most correct interpretation since you're effectively a consumer in that scenario and not particularly concerned about the producer side.

For the record - IMO ServiceImport as 'consumer route'  or policies would only make sense if the API had such a thing - like in the Istio case, where most policies are client-oriented. Fortunately the Gateway API is primarily producer oriented - i.e. the  owner of a Gateway/Service defines routes and policies.
Having a cluster define routes via ServiceImport for something running outside the cluster is pretty dangerous and confusing.
Egress policies are an interesting problem that is not very well covered in Gateway API - and the only case where it would make sense to have consumer policies  - but it probably doesn't have to be, since Egress Gateways are less common and follow some ancient and well established protocols ( for CONNECT and HTTP_PROXY).
I no longer thing ServiceExport should be used as parentRef - there is no need, each cluster should operate independently and define routes and policies with the existing API without extra complications. An (internal) Gateway will have a Service associated - and if there is a standard ServiceExport, the gateway will be visible in the mesh with the clusterset.local  FQDN. Implementations can 'optimize away' the Gateway and create other paths if they can provide equivalent semantics - or use regular gateways.
So in practice both ServiceExport and ServiceImport are better left for L4 semantics, as they are currently defined - with
Gateway and HttpRoutes used in each cluster in isolation (to reduce blast radius) and eventual consistency.
As we have seen in ambient, attaching Routes to Services is also not necessary if we use the 'waypoint' abstraction
( which is also a gateway)


Writing es6 code that can run with either Knex or plv8.execute()

I'm writing some functions inside a Postgres DB using plv8.
I needed the flexibility and power of being able to develop and debug those functions outside of the DB proper, so I ported them into a small NodeJS project.  The project has a module which exports an object called "plv8" and that object has an elog() function as well as an execute() function so I can work with the code almost verbatim.  The elog() function just calls console.log, and the execute function calls return knex.raw(query).then(result => { return result; });
I started out fighting to find some way to get around the whole async problem, and eventually I gave up and just accepted returning a promise and modified the function code I'm writing and testing to accept a promise as follows:
return plv8.execute(query).then(function(result) {
  plv8.elog(DEBUG1, `Num rows: ${result.rowCount}`);
  let rows = result.rows;
  let formattedResult = {};
  // do some stuff with the rows
  return formattedResult;
});

The problem is that I now don't have code that can easily be put back into plv8 where the real plv8.execute() is a synchronous method that returns a raw JSON structure instead of the Knex Result class via promises.
The old code was along the lines of:
let rows = plv8.execute(query);
plv8.elog(DEBUG1, `Num rows: ${rows.length}`);
let formattedResult = {};
// do some stuff with the rows
return formattedResult;

Could anyone provide some tips or ideas on a reasonable way I could make the code work well in either world?  I'm reluctant to bring bluebird Promise into plv8 because I'm thinking since it is very synchronous, I might hit lots of problems if I start tossing promises around.  For instance, I'm not sure how I would ever actually be able to return a fully resolved result from a DB function written in plv8 if after I called plv8.execute(query), I wrapped it in a promise.
Thank you very much for your attention and help.
-Daniel

Considering that this is a year-old issue and no suggestions were provided, unfortunately, we probably should close it as stale, since even if a solution comes up, it is likely to be too late for original poster to benefit.


While I connected two more same camera, /dev/video* lost!!

Hello all,
I have several DMK 42BUC03 camera and I want to grab images by Linux.
I used this sample code on my Lubuntu14.04 (https://gist.github.com/TIS-Edgar/10f04501f49b6b3bf75e),
and everything is fine by using only one camera.
But two question occurred.
Today I want try two same camera and I can find video0&1 at first.
But after I restart my PC, I can't find any /dev/video* !!!
I can find imagingsource camera by
$lsusb
And it returns
Bus 001 Device 002: ID 199e:8208 The Imaging Source Europe GmbH
Bus 001 Device 008: ID 199e:8208 The Imaging Source Europe GmbH
How can I solve this question?
And my second question is:
How I can get capture by using two more same camera(42BUC03).
I tried to change code in main.cpp (open_device((char*)"/dev/video0");), but it can't get two camera capture at the same time before I lost my /dev/video*
Can anyone tell me how can I get several capture by same camera?
thanks all,
-ccrb

Here's information by $./euvccam-fw -p
Manufacturer String: The Imaging Source Europe GmbH
Product String: DMK 42BUC03
Serial Number String: 24514192
PID: 8208
Flags: 0
EEProm size: 32768
I still can't get capture from my device now...
Even I create a node to use,
$sudo mknod /dev/video0 c 81 0
$sudo chmod 666 /dev/video0
Can anyone tell me how can I solve this question?
I have reinstall my PC(ubuntu14.04.3) and still can't get video* on /dev ......
thanks all,
ccrb

It seems happened this question after I git new clone on github.
https://github.com/TheImagingSource/tiscamera/tree/master/tools/euvccam-fw
It changed yesterday and I used this new ./euvccam-fw -m for my camera.
It can't change mode to uvc mode, and can't let Flags be 1.
I don't know if this is problem or not...
Please help me to get capture.
thanks

Hi,
Let's start with getting your devices working properly.
What does the command 'dmesg' say when you connect a camera?
Ideally it would be something like:
[ 3634.269253] usb 3-14: new high-speed USB device number 5 using xhci_hcd
[ 3635.996841] usb 3-14: config index 0 descriptor too short (expected 392, got 308)
[ 3635.997125] usb 3-14: New USB device found, idVendor=199e, idProduct=8302
[ 3635.997127] usb 3-14: New USB device strings: Mfr=2, Product=1, SerialNumber=3
[ 3635.997128] usb 3-14: Product: DMK 22BUC03
[ 3635.997129] usb 3-14: Manufacturer: The Imaging Source Europe GmbH
[ 3635.997130] usb 3-14: SerialNumber: 21110463
[ 3635.997497] uvcvideo: Found UVC 1.00 device DMK 22BUC03 (199e:8302)
[ 3636.932874] input: DMK 22BUC03 as /devices/pci0000:00/0000:00:14.0/usb3/3-14/3-14:1.0/input/input18

What does it say for your camera?

Hi Edgar,
Here it is.
[  217.648252] usb 1-2: USB disconnect, device number 8
[  224.156623] usb 1-2: new high-speed USB device number 9 using xhci_hcd
[  224.641966] usb 1-2: New USB device found, idVendor=199e, idProduct=8208
[  224.641975] usb 1-2: New USB device strings: Mfr=2, Product=1, SerialNumber=3
[  224.641979] usb 1-2: Product: DMK 42BUC03
[  224.641982] usb 1-2: Manufacturer: The Imaging Source Europe GmbH
[  224.641986] usb 1-2: SerialNumber: 24514192

Ok,
The problem is that your cameras do not register as uvc devices.
You need to follow the steps described in our wiki.
Simply write  dmk42uc03_143.euvc to your camera.
After a reconnect the line
[ 3635.997497] uvcvideo: Found UVC 1.00 device DMK 42BUC03 (199e:8308)

should appear. Now you have  a /dev/video* node that allows camera interaction.
Please tell me if there where any problems.
Best regards,
Edgar

I know that steps for camera.
But my problem is still can't get UVC device.
sudo ./euvccam-fw -u ../../data/firmware/usb2/dmk42uc03_143.euvc
firmware basename: 'files/dfk42uc02_[0-9]*.euvc'
->using file: '../../data/firmware/usb2/dmk42uc03_143.euvc'
->backup file: 'backups/backup_1.euvc'
Upload firmware version: 143
Creating backup file...
Current config: Vendor = 'The Imaging Source Europe GmbH', Product = 'DMK 42BUC03', Serial = '24514192'
Uploading image file...
0k written
1k written
2k written
3k written
4k written
5k written
6k written
7k written
8k written
9k written
10k written
11k written
12k written
13k written
14k written
15k written
Updating strings...
!!!IMPORTANT!!!
Please save this application and the backup files for future reference!
A backup of the old firmware was created here: backups/backup_1.euvc
To return to the original firmware, use the following command:
./euvccam-fw -u backups/backup_1.euvc
After done this and reconnect camera,
$dmesg still return:
[  210.081848] usb 1-2: USB disconnect, device number 8
[  214.505534] usb 1-2: new high-speed USB device number 9 using xhci_hcd
[  214.991490] usb 1-2: New USB device found, idVendor=199e, idProduct=8208
[  214.991497] usb 1-2: New USB device strings: Mfr=2, Product=1, SerialNumber=3
[  214.991501] usb 1-2: Product: DMK 42BUC03
[  214.991504] usb 1-2: Manufacturer: The Imaging Source Europe GmbH
[  214.991506] usb 1-2: SerialNumber: 24514192
And I can't switch to UVC mode:
Mode setting option is removed from this version.
This setting is not required for latest firmware files
And Flags still be "0" after I done this tips.(It seems will be "1" before...)
How can I do for next...
Thank you, Edgar.
All the best,
ccrb

It seems like our firmware developer forgot to publish a firmware file where the uvc flag is set by default. I am terribly sorry for the inconvenience.
You can use /tools/firmware-update to also interact with usb2 cameras.
firmware-update -d 24514192 -m u

Should set the uvc flag as expected. I will inform our firmware developer of this problem.
Best regards,
Edgar

Ahh, so nice for hear that.
It can switch to UVC mode now!

Product String: DMK 42BUC03
Serial Number String: 24514192
PID: 8308
Flags: 1
EEProm size: 32768

Thanks a lot, Edgar!!
Btw, How can I use several same camera on the same time?
It seems just need to change device's number but I don't know where should change.
Thank you for your response very much.
All the best,
ccrb

That is good to hear!
To use multiple cameras simultaneously you need to open all wanted device nodes.
That basically means you need to change the device in this line.
To identify which camera has which device node you should use udev.
Here is a gist that shows you how to iterate the devices.
Best Regards,
Edgar

Hello Edgar,
Thank you so much for help me solve my camera UVC mode problem and hint about get my device node by udev.
Now, I know how to find my device automatically.
I"ll try to show several camera frame by use that sample v4l2 code tomorrow.
Thank you very much for your time.
Wish you all the best,
ccrb

No problem.
If you have any other problems, please let us know.
Best regards,
Edgar


Feat(eos_designs): Add ntp_settings

Change Summary

Add ntp_settings
Related Issue(s)
Fixes #
Component(s) name
arista.avd.eos_designs
Proposed changes

ntp_settings:
  server_vrf: <str>
  servers:
    - name: <str>
      burst: <bool>
      iburst: <bool>
      key: <int>
      maxpoll: <int>
      minpoll: <int>
      version: <int>
  authenticate: <bool>
  authenticate_servers_only: <bool>
  authentication_keys:
    - id: <int>
      hash_algorithm: <str>
      key: <str>
      key_type: <str>
  trusted_keys: <str>

How to test

Added molecule test
Updated existing molecule scenarios and examples which were using the eos_cli_config_gen model.

Checklist
User Checklist

N/A

Repository Checklist

[x] My code has been rebased from devel before I start
[x] I have read the CONTRIBUTING document.
[x] My change requires a change to the documentation and documentation have been updated accordingly.
[x] I have updated molecule CI testing accordingly. (check the box if not applicable)

Should we add a key for something like ntp_serve_all: <bool>?


Bug about missing model while using the custom material in arrow/bolt/dart(being adding by tinkersaether)

A great mod! I wish modified everything in minecraft! It helps me a lot. But I find a bug.

I add a new material, and using the material to make arrow/bolt/dart(being adding by the mod tinkersaether),It's texture works well in the Inventory.But if I shot them by short bow/crossbow/dart shooter(being adding by the mod tinkersaether), it seems missing model.Without my exception,the shuriken works well.The bug also appear after I remove the mod tinkersaether.
The latest.log output no warning or error while I shout the no model's arrow.
Versions:
Minecraft 1.12.2
Forge <IP_ADDRESS>46
Tinkers' Construct 1.12.2-<IP_ADDRESS>
Infini-Tic 1.12.2-0.1.46
Tinker's Aether 1.3.0
ToMeTinkers 1.2.2
Construct's Armory 1.12.2-<IP_ADDRESS>
Here is my custom material json file.
Inf_star.txt
2020-4-13 update:
I update the Tinkers' Construct into the latest version 1.12.2-<IP_ADDRESS>,but the bug is still appear.
The no model entity has a no_color model after a save/load like this:

I'm aware that this issue is old but today with some tinkers addons that I use and some testing with one addon... it was discovered that tinker projectiles break after they pass 65535 (65535 Ammo) durability. (Shurikens are prob a special case due to being 'thrown' tools, so it's prob projectiles that are launched from bow-like tools.)
Looking at the txt file that was included, the durability you have will reach REALLY high values, mainly the modifier stat. You have 10000 base durability as well as 10000 extra durability and since you have a 100.0 modifier... that will make that value soar REALLY high (Think 10000 x 100 = 1000000) if you were to build the entire tool out of those parts... though even just the Handle, Fletching & Arrow Shaft itself will apply a Modifier of 100.0 (x100) multiplier to the tool so most materials will be pushed over the limit.
To fix this, you need to lower the overall durability of your custom material to keep it from going over 65535 (6553 Ammo), though keep in mind that Emerald Modifier will apply a +50% Durability Boost to the Base Durability so there's still a risk of reaching the limit if you still wish to use high values. You can prob still use 10000 Base/Extra durability if you have a modifier stat that isn't a high value.
If it's non-projectile tools like... swords, cleavers, pickaxes, etc... then the extremely high durability shouldn't cause any issues. I had a Scythe Tool with like 106K+ durability... which is above 65535 and I haven't noticed any issues with it so far.
Hope this helps in some way.

the breaking is actually due to how vanilla tries to prevent overflow, and tells the game that its empty. Ive made a simple mixin mod to get around the issue, now waiting for it to be approved. https://www.curseforge.com/minecraft/mc-mods/durability-cap-extender


Unexpected character callback behavior in XIM

I seem to be getting strange character callback events for unicode characters using XIM.
In particular, when I type a character with a three byte utf-8 encoding, I get one character callback for the first byte, another for the third byte, and no callback inbetween. So for example, when I type U+22AB (a compose sequence), I get a character callback with value 0xe2 and another with value 0xab. (U+22AB is encoded 0xe288ab in UTF-8).
I expected to get one callback with a utf-32 encoded character.
The code I'm using to test is the following:

#include <GLFW/glfw3.h>

#include <iostream>

void character_callback(GLFWwindow* window,unsigned int character);

int main()
{
  glfwInit();
  GLFWwindow* window = glfwCreateWindow(800,600,"Test",NULL,NULL);
  glfwSetCharCallback(window,character_callback);
  glfwMakeContextCurrent(window);
  while (!glfwWindowShouldClose(window))
  {
    glClearColor(0.2f,0.3f,0.3f,1.0f);
    glClear(GL_COLOR_BUFFER_BIT);
    glfwSwapBuffers(window);
    glfwPollEvents();
  }
}

void character_callback(GLFWwindow *window,unsigned int character) {
  std::cout << character << std::endl;
}

I'm primarily using GLFW 3.2.1 on Arch Linux (kernel 4.11.3-1-ARCH) with xorg-server version 1.19.3,
but I get the same results when testing against commit 8905e615a35eba7fe49870b11a04ec058c359732 from the ci branch as well.

I expected to get one callback with a utf-32 encoded character.

That's what I would have expected as well. What key sequence did you use, with what input method?

I use the XCompose file https://github.com/kragen/xcompose

Didn't mean to close, there... my finger slipped on my phone. The specific sequence I've been testing with is ++I+N+T


Increase SIG publish timeout to 90m in packer

As sometimes creating sig image will take more than the default value 60m
https://www.packer.io/docs/builders/azure/arm#shared_image_gallery_timeout

I am afraid shared_image_gallery_timeout is not correctly used in packer for 1.6.1 we are using. https://github.com/hashicorp/packer/pull/10816
The fix will come up in the next packer release. For now, we can simply enlarge polling_duration_timeout as a workaround, because polling_duration_timeout overwrites shared_image_gallery_timeout by mistake in packer.


No PDFs added to zotero by this plugin

Hi, this is a nice plugin. Yet there are some obstacles to use this with zotero.
When added the link redirected by this extentions to zotero-standalone, it does not add the pdfs which was normally the case.
PS: It would be nice to have a similar addon for Firefox, just a wishful thinking.
Cheers,

Hi @zenny! Sorry for the delay, I have somehow missed this issue.
This project only redirects the user to the corresponding Sci-Hub page, so I'm afraid there is nothing that can be done on our side to make the import in Zotero seamless.
Feel free to contribute if you find some workaround for this.


Forward Kubelet Metrics

Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes #(issue)
How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Please also note any relevant details for your test configuration.

[ ] Test A
[ ] Test B

/test

/build

/test

/test

/test

/test

/test

/merge


Feature Request: Vite plugin

Hello, that's a super cool feature, but is a Vite plugin under development / in the roadmap?
I'd see most of your customers aligned to modern tech such as Vite bundler.

Hi Lucas,
There are no plans to port this to Vite or any other Webpack alternative. The latest generation of bundlers have less extensible plugin frameworks, so it may not even be possible to port this to Vite et al...


Added support for Dismissed Review (#827)

Disclaimer: This is my first real use of the json package and first OS pull so please bear with me 😊
This commit simply adds support for a dismissed_review issue event. I
have added a new struct type called DismissedReview. Additional to this
I have added this type as a a field against the IssueEvent.
Example:
func FetchIssueEvents(username, repo string, issueId int) ([]*github.IssueEvent, error) {
	client := github.NewClient(nil)
	events, _, err := client.Issues.ListIssueEvents(context.Background(), username, repo, issueId, nil)
	return events, err
}

func main() {
	issueEvents, err := FetchIssueEvents("mrsimonfletcher", "test", 4)
	if err != nil {
		fmt.Printf("Error: %v\n", err)
		return
	}

	for _, v := range issueEvents {
		if *v.Event == "review_dismissed" {
			fmt.Println(*v.DismissedReview)
			fmt.Println(*v.DismissedReview.State)
			fmt.Println(*v.DismissedReview.ReviewID)
			fmt.Println(*v.DismissedReview.DismissalCommitID)
		}
	}
}

Questions:

I tested this manually through including the package locally, looking at the test suite there doesn't seems to be existing checks for individual fields on the struct. Is there a test that I should be adding updating with this change?

DismissalCommitID is a conditional field and does not return though the API if it isn't applicable. Do we need to defensively code against this or should the consumer of go-github handle this explicitly?

DismissalMessage will return null in some instances this causes the program to panic if you try to access the field when it's null. Do we need to defensively code against this or should the consumer of go-github handle this explicitly?

Example response of when the dismissal_commit_id field is ommited
[
    {
        "id":<PHONE_NUMBER>,
        "node_id": "MDIwOlJldmlld0Rpc21pc3NlZEV2ZW50MTc5NTg4OTIwMQ==",
        "url": "https://api.github.com/repos/mrsimonfletcher/test/issues/events/1795889201",
        "actor": {
            "login": "mrsimonfletcher",
            "id": 1643158,
            "node_id": "MDQ6VXNlcjE2NDMxNTg=",
            "avatar_url": "https://avatars1.githubusercontent.com/u/1643158?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/mrsimonfletcher",
            "html_url": "https://github.com/mrsimonfletcher",
            "followers_url": "https://api.github.com/users/mrsimonfletcher/followers",
            "following_url": "https://api.github.com/users/mrsimonfletcher/following{/other_user}",
            "gists_url": "https://api.github.com/users/mrsimonfletcher/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/mrsimonfletcher/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/mrsimonfletcher/subscriptions",
            "organizations_url": "https://api.github.com/users/mrsimonfletcher/orgs",
            "repos_url": "https://api.github.com/users/mrsimonfletcher/repos",
            "events_url": "https://api.github.com/users/mrsimonfletcher/events{/privacy}",
            "received_events_url": "https://api.github.com/users/mrsimonfletcher/received_events",
            "type": "User",
            "site_admin": true
        },
        "event": "review_dismissed",
        "commit_id": null,
        "commit_url": null,
        "created_at": "2018-08-18T07:45:00Z",
        "dismissed_review": {
            "state": "changes_requested",
            "review_id": 147422943,
            "dismissal_message": "You are incorrect"
        }
    }
]

Example response of when the dismissal_message is null
[
    {
        "id":<PHONE_NUMBER>,
        "node_id": "MDIwOlJldmlld0Rpc21pc3NlZEV2ZW50MTc5NjI1Nzg4OA==",
        "url": "https://api.github.com/repos/mrsimonfletcher/test/issues/events/1796257888",
        "actor": {
            "login": "mrsimonfletcher",
            "id": 1643158,
            "node_id": "MDQ6VXNlcjE2NDMxNTg=",
            "avatar_url": "https://avatars1.githubusercontent.com/u/1643158?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/mrsimonfletcher",
            "html_url": "https://github.com/mrsimonfletcher",
            "followers_url": "https://api.github.com/users/mrsimonfletcher/followers",
            "following_url": "https://api.github.com/users/mrsimonfletcher/following{/other_user}",
            "gists_url": "https://api.github.com/users/mrsimonfletcher/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/mrsimonfletcher/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/mrsimonfletcher/subscriptions",
            "organizations_url": "https://api.github.com/users/mrsimonfletcher/orgs",
            "repos_url": "https://api.github.com/users/mrsimonfletcher/repos",
            "events_url": "https://api.github.com/users/mrsimonfletcher/events{/privacy}",
            "received_events_url": "https://api.github.com/users/mrsimonfletcher/received_events",
            "type": "User",
            "site_admin": true
        },
        "event": "review_dismissed",
        "commit_id": null,
        "commit_url": null,
        "created_at": "2018-08-19T08:12:00Z",
        "dismissed_review": {
            "state": "approved",
            "review_id": 147450868,
            "dismissal_message": null,
            "dismissal_commit_id": "0cb225efb81ffdb35032b6148859183cd70f53aa"
        }
    }
]

closes #827

@gmlewis thanks for the reply here

So to answer your question, yes, it would be nice to have you add tests that exercise the marshaling and unmarshaling of your new fields. It also provides a good example for others as to their common usage.

I agree, I will look to add these. After looking at the issues_events_test.go file I can see where these tests are getting done but they are not testing the whole data structure. I can see why I missed this now.
https://github.com/google/go-github/blob/d7732128a00e8e95e8fe896017da18ee20b2180d/github/issues_events_test.go#L80
Personally, I think that we should update this test file to be more of a true representation of the data structure. Adding these is probably outside the scope of this PR as it is more a test refactor than specific to this issue.
I am happy to make these changes in a separate branch first, we can then merge this branch and continue with this work WDYT?

Speaking of this, your PR causes tests to fail. Please see the instructions in CONTRIBUTING.md and run the required commands

Absolutely, sorry I must have missed some stuff here, I will do this.

Yes, a separate PR to address updating other tests would be good.  Thanks.
Let's keep this PR focused on the smaller task.

Closing obsolete PR.


Using in a shared component library

A major sticking point for people with zero-runtime CSS-in-JS solutions (e.g. css-modules) has been around code-sharing. The import styles from './styles.css'; is problematic since its not a standard node module.
Currently, I see a few (unideal) options:

Pre-compile the styles before publishing the shared component, and distribute the component JS and namespaced CSS separately.
Distribute the component as-as, requiring consumers to deal with transforming the CSS Module imports.

The benefit of #1 is that your consumers don't have to use css-loader. The downside is they have to manually import your pre-build css file.
@ai and I discussed and a good solution might be a babel version of style-loader.  More context: https://twitter.com/lunde_andrews/status/1034116264774516737.

You'd need to either do something BEM-y in naming the classes, though, or else have your users apply the module transform (perhaps based on extension?) to the extracted CSS, or else risk class name collisions.

Yeah, that's basically the #2 option. Certainly works, just not as automatic as it is with solutions like styled-components.

We definitely could provide a preset perhaps for this use-case. Postcss is doing the css-modules work, so one option is to write out or inline the json map of the css classes and then write the css out as normal.
Internally we do use this for shared libraries with just the babel plugin outputting css files, however it does depend on the consumer using webpack with css-modules setup in order to work. I do think it's probably worth putting together a recipe or simple cli for supporting this use case tho!

In this case consumers would have to manually require the css for all the components they are using, no?

I mean no more so than any other stylesheet based library right? we don't want to auto import and append to the DOM b.c that would remove a consumers ability to extend or consolidate. The only really "clean" approach has to assume the user is using webpack, ideally webpack would also provide someone way for libraries to specify configuration, a feature that's not ever gotten added yet :/

we don't want to auto import and append to the DOM b.c that would remove a consumers ability to extend or consolidate.

I think some people would prefer to sacrifice some flexibility for convenience/robustness. And as far as extension is concerned, that can be done through https://github.com/javivelasco/react-css-themr or just simple className props, no?

I solved this problem by directly specifying loaders for CSS import and exception astroturf/loader.
import '!!astroturf/loader!style-loader!css-loader!react-day-picker/lib/style.css'


Proxy Yield Aggregator "Debt Clock"

When we deploy the global uAR "Debt Clock" (the redemption contract which accepts uAR and mints uAD) this Proxy Yield Aggregator must take this into account and mint more uAR as a reward (as they will depreciate in value.)
Either we wait to deploy with this capability OR we deploy and deprecate this contract when we figure out the "Debt Clock" system
https://github.com/ubiquity/uad-contracts/blob/4f855e56483fcbbf6ffc2f9b0ac190a9c2e8a492/contracts/YieldProxy.sol#L282

You can assign this to me.

You can assign this to me.

@codeawayaks You commented on 20+ GitHub issues that you want to take it.
One developer should solve one bounty at a time to minimize blocking other developers to effectively move forward.
Which 1 bounty do you want to take?

Seems that this task should be deleted as PYA is going to be removed in https://github.com/ubiquity/ubiquity-dollar/issues/292

This just needs to be re-specified but the idea will still exist. The idea is that our uCR (Credit) tokens need to have a sense of a global clock to represent its inflation. For example:

1 uCR is redeemable for 1 uAD .... but wait a month and it will be 1 uCR redeemable for 0.5 uAD (uCR lost half of its value)

We need to create a standard getter method for UIs and smart contracts to easily understand this conversation rate, live.

Looks like this task already exists #115

Thanks for checking for me. So basically this just needs to be integrated with our ecosystem of products, including the new version of the pya (vaults) https://github.com/ubiquity/ubiquity-dollar/pull/267

Should I do this one next?

Should I do this one next?

@ethernomad Do you have any questions on the description or deliverables expected in this issue?

Should I do this one next?

Hey @ethernomad thanks for hopping in so quickly to bid on these bounties. Apologies but all of the issues were created when we were just re-creating the repository, and there unfortunately seems to have been a bit of a mixup. It appears that both are essentially the same task.
I think that this one just specifies that we must have a getter on the other contract that you made that will allow any UI to easily get the current value of the credit tokens.
I'll go ahead and close these issues, but please feel free to take a look at the other issues in the repo and bid on those if you're interested. Thanks again for your interest in the project!

@ethernomad I parsed through some of those old issues and made a couple new ones that are related to your work.
#400
#401


bypass arguments parsing when target type is a map

This allows for unparsed forwarding of graphql arguments, in the case something application specific has to be done with the arguments.
The library already supports passing all of the input as a map, by specifying an argument as @Argument args: Map<String, ?>.
This PR adds support for doing this for individual arguments.
For example to distinguish between unspecified and null values;
input SomeInput {
  name: String
}

type Mutation {
  perform(input: SomeInput!): ...
}

Kotlin:
@MutationMapping
fun perform(@Argument input: Map<String, Any?>): ... {
  if (input.contains("name")) {
    if (input["name"] == null) {
      // throw error
    } else {
      // ...
    }
  }
}

Java:
@MutationMapping
... perform(@Argument Map<String, ?> input) {
  if (input.containsKey("name")) {
    if (input["name"] == null) {
      // throw error
    } else {
      // ...
    }
  }
}

@rstoyanchev and I discussed a few options for this and other related use cases.
We've marked #140 for team-discussion and we might come back with proposals. Let's pause this one until #140 is addressed.

Let's pause this one until #140 is addressed.

Sure. I just figured that since this proposal is more versatile it would have a bigger chance of landing in the framework.


New Feature  #137: Implement withIoC={CDI, CDI_SINGLETON} options

Hi,
I've tried implementing the feature #137 I requested a few days ago. The code I've written looks like it works, but I honestly didn't manage to find a way to get the tests running. I've implemented a couple of new tests classes that are supposed to work, but again, since I couldn't make them run, I cannot confirm at 100%. I've been able to create another project and validate the generated mapper classes are good though.
I'm using Eclipse and Java 8. If you tell me how to run tests, I can try again. Nevertheless, you can see what you get, and if everything looks good to you, maybe you can merge the code straightway.
Please, let me know if you find anything that requires improvement.
Bes regards.

Hi thanks for the pull request,
as you can see there is an Exception in fr.xebia.extras.selma.it.custom.mapper.CustomCdiSingletonMapperInMapsIT.
Selma is not able to find the generated Mapper class.
You used tabs instead of spaces for indentation which breaks change management as you changed all lines of the generator.
To be able to run the tests you can simply launch the build with maven. I personnaly use IntelliJ to run tests.

Hi,
first of all, let me apologize for the unintended changes I pushed before. For some reason I still ignore, I had my Eclipse formatter configured to use tabs, as you pointed out. I have updated my formatter to use 4 spaces instead of tabs. All the modified classes should have now spaces instead of tabs.
In addition to that, after removing the tabs, I could validate that the tests were passing in my local this time. I don't know the reason why tabs caused such a huge impact the code, but the important thing is that it's now solved.
I have also corrected the mapper being used in one of my test classes, as you pointed out. It clearly was a side effect of a too fast copy-and-paste maneuver.
Finally, the reason why I added @Inject and @Singleton annotation is because they belong to the JSR-330 CDI standard which allows injection in lightweight JavaSE containers such as Tomcat, Jetty, Undertow and many others. However @ApplicationScope belongs the EJB injection API which requires a fully J2EE complaint container such as JBoss, Oracle AS, IBM WebSphere, and others. Since the trend for most new applications is to use lightweight containers along with injection frameworks such as Spring, Guice, HK2 or even CDI, I think it makes more sense to define annotations the way I did. This said, I'm fine if you consider it should be done in different way.
I hope everything is good know. However, please, do not hesitate to let me know if anything else is needed from my side.
Thank you!

Hi thanks for the great work,
I've just merged the PR.
It's all good for me :)


Ionic CLI - error running ionic commands  on Mac

Hi,
I am getting the below error while running any ionic commands on Mac.I tried re-installing node/cordova/ionic but no luck
Can you please advise?

Please run ionic info and report the output of the command.

Hi,
I commented out the below code in config.js and tried ionic -v it showed the version.
this.data = JSON.parse(fs.readFileSync(path.join(home, this.file)));
Reverted the comment and tried few ionic commands and everything started working fine.Not sure what happend.It works fine anyway  :)


Position issues with bootstrap parent

Hello,
I got some issues with select2 position  in a bootstrap form. It looks to me that their float position are not properly handled.
It seems that a fix in 4.0.1 cause this issue; I was able to resolve it changing the following:
--- select2.js.orig	2015-12-15 10:22:14.369524789 +0100
+++ select2.js	2015-12-15 10:21:58.634722053 +0100
@@ -4201,7 +4201,9 @@
     };

     // Fix positioning with static parents
-    if (this.$dropdownParent[0].style.position !== 'static') {
+    if (this.$dropdownParent[0].style.position !== 'static'
+        && this.$dropdownParent[0].style.float == 'none'
+       ) {
       var parentOffset = this.$dropdownParent.offset();

       css.top -= parentOffset.top;

I wonder if this is an issue in select2, or an issue on our side...

This is a duplicate of https://github.com/select2/select2/issues/3970, it's a positioning problem with Select2.


Angular 1.5.5 + zone.js

Note: for support questions, please use one of these channels: https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md#question. This repository's issues are reserved for feature requests and bug reports.
Do you want to request a feature or report a bug?
I would suggest this this is bug. Running hybrid application using angular1 and angular2 should be possible according to the documentation. One of the requirements of angular2 applications is zone.js (https://github.com/angular/zone.js).
What is the current behavior?
zone.js patches the window.setTimeout and window.setInterval functions (all other async apis are also patched). These functions no longer returns unique integers to track the timers, but instead they return the ZoneTask objects. ZoneTask doesn't have toString() method implemented so all the pending deferreds ends up in Browser.pendingDeferIds under property name '[object Object]'. This effectively takes the opportunity to cancel the deferreds.
If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem via https://plnkr.co or similar (template: http://plnkr.co/edit/tpl:yBpEi4).
var p1 = $timeout(() => {});
var p2 = $timeout(() => {});

$timeout.cancel(p1);  // This cancels the second not the first timeout

The same behavior can be seen on $interval service.
What is the expected behavior?
var p1 = $timeout(() => {});
var p2 = $timeout(() => {});

$timeout.cancel(p1);  // This cancells p1 only.

What is the motivation / use case for changing the behavior?
The be able to run angular1 <-> angular2 hybrid application and to migrate angular1 codebase progressively to angular2.
Which versions of Angular, and which browser / OS are affected by this issue? Did this work in previous versions of Angular? Please also test with the latest stable and snapshot (https://code.angularjs.org/snapshot/) versions.
angular=1.5.5
angular2=2.0.0-beta.17
zone.js=0.6.12
Other information (e.g. stacktraces, related issues, suggestions how to fix)

The behavior of `setTimeout should not change when using Zones, with this in mind, please open an issue in their repository https://github.com/angular/zone.js


fix: flutter android splash screen is deprecated

That's not really a bug.
I created a new project with very good cli. With android emulator the debug console displays :
A splash screen was provided to Flutter, but this is deprecated. See flutter.dev/go/android-splash-migration for migration steps.

Remove the below lines from the android manifest file. It's no longer used
<meta-data
       android:name="io.flutter.embedding.android.NormalTheme"
       android:resource="@style/NormalTheme"/>

 <meta-data
       android:name="io.flutter.embedding.android.SplashScreenDrawable"
       android:resource="@drawable/launch_background"/>

hey @hawkbee1 👋
are you generating a default Flutter app or is it another template like flutter_plugin?

default app :
very_good create ssi_crypto_wallet --desc "SSI and crypto wallet" --org "co.talao.crypto"
Just checked the version : 0.4.12

This has been resolved in very_good_cli v0.4.14 🎉


Add ability to select end date for services

This is good for back filing previous services that ended. Basically I added an extra datepicker with a  dateended state. I notice that the prop data heads to the api which eventually does a post to the controller. I did the check there and create a discontinued service for that service if it has already ended.

Issue #695. Future end date probably isn't expiring and I already tried setting datepicker 2 to empty/null. @alexsoble Please review and let me know your input.

Hey there @Jngai, thanks for this PR! I'm currently on the road so I may not be able to give this a thorough review until this weekend or next week — apologies for the delay. In the meantime it looks like rebasing onto master will be helpful. Thanks again, you are really powering through issues here Judy!

 Hopefully I get the chance to clear up all of the issues currently outstanding. Have a good weekend :)

Hi there @Jngai! Thanks again for this excellent PR, your spirit and vision around clearing up all the issues is wonderful!
The code side of this PR looks good. On the UI side, this is a quite challenging issue to tackle because the issue is just one sentence and has no written spec or design -- that makes it a tough one but also very useful because your PR is nudging me to take a much closer look at this feature.
I watched the GIF you provided and poked around the app. I think we need to break this feature into three main cases and three smaller cases:
1. Start in past, end in past

This is backfilling a service.
The UI here looks great in your PR:

2. Start in past, end in future

This is probably going to be the most common use case.
Here’s what it looks like right now:

There are a couple of issues here:

First of all, it says “10 days”, but it should be more explicit that there will be a future end date. Maybe alongside the “Started” we need an “Scheduled to end September 30, 2017” I think that’s less cryptic for the user/reader.
There is a Discontinued button, but no visual for the user showing that there is already a future Discontinue planned . . . in this case I think it would be clearer for the user for the button to show "Discontinue Early," especially if they see a scheduled end date.

3. Start in future, end in future

There's seems to be a real bug here, which I verified in production: when a user creates a Service with a future start date, it says "Started Today" even if it's meant to start in the future. We should fix this:

Thank you for bug catching in addition to feature building!

In addition to those three main cases, there are a few "edge cases" concerning features that were started/ended the same day the user records them:

Start in past, end today
Start today, end today
Start today, end in future

We don't necessarily need to write code to cover these cases right away but I do think it would be nice for the Service UI to say "Started today" instead of "Started [AT DATE]" at some point.
What do you think @Jngai? Does breaking it into these three main cases and three smaller cases help clarify?

Quick notes from conversation with @Jngai: let's skip the edge cases at the bottom ("Start in past, end today", "Start today, end today", "Start today, end in future") and just focus on the main three use cases above.

see #1097


Migrate import assertions to with

To provide wide veriety or Node environments it's better to not use any of these syntactic sugars. We recently resolved this problem in #3036.
We appreciate and thank you for your support @KeM1aL!


Fix a couple bugs in metrics first/last calculation

Fixes #653

LGTM (assuming its green)
Why is the change to the intermediate marshalling necessary?  Is it for the UI? A couple of lines in the PR would be nice :-)

Ah, fair enough. In the js, since it's harder to check for go's time.Time{} value, we check the existence of a first field. So if it is zero we want to omit it, to stop rendering sparklines of all time.

The first/last calculation bug was resulting in first(time.Now(), time.Time{}) returning time.Time{}. Which led to merge being non-commutative.

Thanks!


Fix scrollbar bounds calculation & prevent scrollbar overlap

When I first started on scrollbar mouse interaction this code perplexed me endlessly but I didn't want to change it any more than I had to in order to stay within the scope of that PR. However when I went to prevent the bars from overlapping at the bottom I realized that there was at least one bug hiding in there. Specifically when the bars reached their maximums they would often times be shorter then when not at their maximums. As it turns out the calculations it was using for figuring out the bar bounds was incorrect which was being hid with a .min hack.
Here I've fixed the calculations, improved readability, reduced code length, and prevented the bars from overlapping.

I think that in the long run it will be good to track which scrollbars are visible and use that to conditionally add the extra space in the lower right hand corner. However I figured that always having that space would be a good thing to have until then.

Thanks, will take a look when I get a chance, but always appreciate cleanup. I'm using this widget extensively in runebender and I'm bumping into lots of little issues; we may need to do some fairly significant rethinking of bits of this.

Can you open a metabug of all the issues you have? I'd like to see what I can think of

The reason scroll bars were overlapping is that that is the behaviour on macos. I am personally very used to it.

Ref: https://jsfiddle.net/yb8chzxq/

That's very interesting, TIL. I guess that is something that needs to be discussed then? To remove the overlap prevention is a 38 character change so it's not a big deal. If it is decided that they should continue to overlap I can make that change and force push.
The more important part is that the original calculations were buggy and that this patch greatly improves the simplicity and conciseness while fixing the bug which matters much more to me than the scrollbars overlapping.

I think that part of why the overlapping scrollbars look decent in the macOS example is that they seem to be handling the borders differently.
Whereas in Druid:

So if the decision is to still have them overlap I think the default border style will have to change. To what I don't know.

Thanks for fixing the calculations! So far it seems like everyone was just introducing things to their taste. I would like to see some kind of default design guidelines but this could be to big of a task.

I think that we're probably a little ways away from the 'design guidelines' stage; my feeling right now is that druid is an experiment, we're all trying things out, and that if things are a bit of a mess sometimes that's a reasonable price to pay for letting people move quickly and have a high level of autonomy. If druid starts to gain real ground, I expect we will end up rewriting tons of it based on the lessons we learn in the meantime. :)
For this particular concern: it's a great example of the way different platforms have different expectations. In the long-term, we are going to want the default styles to be per-platform. In the near-term, a reasonable solution might be the overlapping behaviour be determined by a flag, and have it default to true on macos and false elsewhere.
My own particular headache with the Scroll widget right now is around what the behaviour should be when the content of the scroll widget is smaller than the scroll widget's parent; currently this gets weird.

I'd like to take a look at that after this gets merged

Okay, I'm happy to merge this with the caveat that I would like the overlapping behaviour to come back as an option at some point.

How about a bool in the theme? Something else? I'm waiting for this to be merged before adding the scroll stuff to the theme so this seems like the perfect opportunity.

A bool that can be set when the widget is constructed would be fine, I think.

I was thinking that putting it in the theme would allow for the default to vary on different platforms, say having overlap on macOS but not on Windows/Linux

Yes, that's an option. Realistically, there's a much larger difference between scroll ui on windows and macOS than just the overlapping behaviour; windows doesn't (as far as I know, in standard apps) do floating sliders at all, and has the clickable buttons at edges that manually adjust the bar.

my gut feeling is that if scrollbars float they should be able to overlap. If anyone knows examples of floating scrollbars that don't overlap I would be curious to see them. (I haven't looked too hard, maybe they're all over the place!)


json configuration not recognized anymore

Hello,
I updated from 4.11 to 4.14 with the following input definition:
filebeat::input { 'syslog':
  paths          => ['/var/log/syslog.json'],
  ignore_older   => '10m',
  close_older    => '10m',
  scan_frequency => '5s',
  fields         => { logtype => 'syslog', },
  json           => {
    keys_under_root => true,
    add_error_key   => true,
    overwrite_keys  => true,
  },
}

and the corresponding line example from /var/log/syslog.json
{"@timestamp":"2023-07-17T21:02:55.407481+00:00","@version":"1","message":"Applied catalog in 24.84 seconds","host":"code-acceptance-db-1","severity":"notice","facility":"daemon","programname":"puppet-agent","procid":"9130"}
My issue being the programname no longer recognized as input field after the update.
After checking /etc/filebeat/conf.d/syslog.yml and the corresponding documentation  I changed the current json into parsers.0.ndjson and I got the field back.
Is there another way to have the same behaviour than previously with the 4.14 version ?
Thank you !
Best regards,
OV

It's actually not a module fault but a filebeat upgrade fault I suppose, the newer version of filebeat supports only ndjson parsers. I checking my options with this module since supporting parsers would mean some rewrites of the input template. BTW. did you manage using this parsers.0.ndjson trick with puppet module or outside of the module? I don't think the current version support injecting these parsers.0.ndjson trick.

The current version of the module does not support anything else than json as it is hardcoded. I changed manually to parsers.0.ndjson to make it work.
From my point of view there is a incompatibility between the default input type = filestream and the hardcoded json entry in the configuration.

Actually I've end up with wrapper:
#
# this is resource used when upstream filebeat module don't support configuration quirks which filebeat could have
#
define filebeat_wrapper::input (
  Array[Hash]               $config,
  Enum['absent', 'present'] $ensure       = present,
  # this resource has hash with sensible default values but it could be switched off
  Boolean                   $use_defaults = true,
) {

  $defaults = {
    'encoding' => 'plain',
    'document_type' => 'log',
    'prospector' => {
      'scanner' => {
        'check_interval' => '10s',
      }
    },
    'harvester_buffer_size' => 16384,
    'message_max_bytes' => 10485760,
    'tail_files' => false,
    'backoff' => {
      'init' => '1s',
      'max' => '10s',
    },
    'backoff_factor' => 2,
    'close_inactive' => '5m',
    'close_renamed' => false,
    'close_removed' => true,
    'close_eof' => false,
    'clean_inactive' => 0,
    'close_timeout' => 0
  }

  #
  # merge with default settings
  #
  if $use_defaults {
    $merged_config  = $config.map |$entry| {
      deep_merge($defaults, $entry)
    }
  } else {
    $merged_config = $config
  }

  $validate_cmd = "\"${filebeat::filebeat_path}\" -c \"${filebeat::config_file}\" test config"
  file { "filebeat-${name}":
    ensure       => $ensure,
    path         => "${filebeat::config_dir}/${name}.yml",
    owner        => 'root',
    group        => 'root',
    mode         => $filebeat::config_file_mode,
    content      => to_yaml($merged_config),
    validate_cmd => $validate_cmd,
    notify       => Service['filebeat'],
    require      => File['filebeat.yml'],
  }
}

But I think the problem is that when you want to support many filebeat versions you just can't cover it with a fancy template. I think using to_yaml with config validation is the only option. I can also think that the ruby function which would use JSON schema for validation would be helpful here, similarly as in helm and JSON schema validation: https://www.arthurkoziel.com/validate-helm-chart-values-with-json-schemas/

Well, this sounds like a solution indeed, but makes the usage of such input more complex though.
Don't you believe that it is realistic to use either json or parsers.0.ndjson depending on the filebeat version.
After all this was the idea behind choosing filestream as the default depending on this fact.

The idea is great but every time Elastic changes something in configuration format you have to wait for the module author to release a new version.


Add libhdf5-dev to ubuntu_core.sh

Description
Package libhdf5-dev contains header files needed to build and install h5py python package, which is installed by ubuntu_python.sh script using pip.
Without libhdf5-dev the installation of h5py failed with
sudo pip install h5py==2.8.0rc1
...
    In file included from /tmp/pip-install-3klha2xv/h5py/h5py/defs.c:657:0:
    /tmp/pip-install-3klha2xv/h5py/h5py/api_compat.h:27:18: fatal error: hdf5.h: No such file or directory
     #include "hdf5.h"

@mxnet-label-bot add [pr-awaiting-review, CI]

@Chancebair Could you merge this PR?

@marcoabreu


stop error

There is a problem with the stop command if there is music in the queue it leaves the channel and rejoins it and plays the other music.

That is not a bug. The stop command is made to clear the whole queue and leave the channel. This is in the code:

well if you put a playlist it does not stop

Ah, okay. That happens when the playlist was still processing. You should've just said so from the beginning. I'll work on a fix asap.

sorry my english is bad i use google translate

sorry my english is bad i use google translate


LXD CPU limit config not being applied from template

Description
Setting the number of CPUs in an OpenNebula template when instantiating a new container does not work.
To Reproduce

Launch LXD container on OpenNebula. Set "CPU" to 4.
Once container is in "Running" state, VNC into container and run the following:

grep -c processor /proc/cpuinfo

Output of the command will not match setting used in step 1 (output might be 1 - this seems to be coming from the default LXD profile used by OpenNebula.

Expected behavior
I would expect the number of CPUs allocated to the LXD container to match the value used in the OpenNebula template used to launch the container.
Details

Affected Component: LXD Containers
Hypervisor: LXD
Version: 5.10.1
LXD Version: 3.0.4 (snap installed)

Additional context
In the following command line output, I have launched an LXD container (one-14387) via OpenNebula WebUI where the CPU setting is 4 in the template. I have also logged into the host where the container has been launched to execute lxc commands:
user@server:~# lxc exec one-14387 -- grep -c processor /proc/cpuinfo
1

As the output shows, the setting from the template did not take effect. The 1 seems to be from the default LXD profile that OpenNebula creates upon installation of the opennebula-node-lxd package (note that I also have opennebula-lxd-snap installed):
user@server:~# lxc profile show default
config:
  limits.cpu: "1"
  limits.cpu.allowance: 50%
  limits.memory: 512MB
  security.idmap.base: "100000"
  security.idmap.isolated: "true"
  security.idmap.size: "65536"
description: Default LXD profile  for OpenNebula
devices:
  root:
    path: /
    pool: default
    type: disk
name: default
used_by:
- /1.0/containers/one-14387

This is inconsistent with documentation here which states:

...template will override any matching key with the profile. If the profile is not found on the node, the default profile will be applied and an error will appear on the VM log.

I verified that the user.xml that OpenNebula applies (source code here) is passed to the container as shown below (output truncated for brevity):
user@server:~# lxc config show one-14387
architecture: x86_64
config:
  limits.cpu.allowance: 400%
  limits.memory: 8192MB
  security.nesting: "yes"
  security.privileged: "yes"
  user.xml: |
    ......<CPU><![CDATA[4]]></CPU>........

However, manually setting the CPU limit seems to be working fine:
user@server:~# lxc config set one-14387 limits.cpu 4
user@server:~# lxc exec one-14387 -- grep -c processor /proc/cpuinfo
4

This issue does not occur for any other config being set in the template. Memory was set to 8GB in the template for one-14387 and seems to be correct without manual updating as shown below:
user@server:~# lxc exec one-14387 -- grep MemTotal /proc/meminfo
MemTotal:        8000000 kB

How do I ensure CPU setting from the template is applied to the container?

Progress Status

[ ] Branch created
[ ] Code committed to development branch
[ ] Testing - QA
[ ] Documentation
[ ] Release notes - resolved issues, compatibility, known issues
[ ] Code committed to upstream release/hotfix branches
[ ] Documentation committed to upstream release/hotfix branches

It seems you are mistakenly  using CPU and VCPU. VCPU in OpenNebula translates into limits.cpu and CPU translates into limits.cpu.allowance. Notice you have 400% in limits.cpu.allowance = 4 CPU.
root@ubuntu1804-context-lxd-5-10-2-8bf9b-0:~# onevm list
  ID USER     GROUP    NAME                      STAT UCPU    UMEM HOST                    TIME
 173 oneadmin oneadmin CentOS 7 - KVM-173        runn  1.0  701.1M localhost           0d 04h43
 172 oneadmin oneadmin alpine_kvm-172            runn  0.0      0K ubuntu1804-contex   0d 10h19
root@ubuntu1804-context-lxd-5-10-2-8bf9b-0:~# onevm show -x 172 | grep -i cpu
    <CPU><![CDATA[0.0]]></CPU>
    <CPU><![CDATA[1]]></CPU>
    <VCPU><![CDATA[4]]></VCPU>
root@ubuntu1804-context-lxd-5-10-2-8bf9b-0:~# lxc config show one-172 | grep limits.cpu
  limits.cpu: "4"
  limits.cpu.allowance: 100%
root@ubuntu1804-context-lxd-5-10-2-8bf9b-0:~# lxc exec one-172 -- grep -c processor /proc/cpuinfo
4
root@ubuntu1804-context-lxd-5-10-2-8bf9b-0:~#


fix: Ensure kong config is readable from the container after umask

What kind of change does this PR introduce?
Changes the permissions of the supabase/.temp/kong.yml file after creating it to make sure it is readable from the Kong container.
Fixes #129
What is the current behavior?
os.WriteFile is used but as the doc states, the permissions mask that is given as an argument is applied before umask. If someone uses an umask where the others permission is more restrictive, the container won't start.
What is the new behavior?
The start script manually calls os.Chmod after writing the file to ensure the right permission mask. The container successfully starts

Thanks! Just saw the note re: umask in the docs.

I suspect there are other files which need similar handling - if so feel free to create a new issue.


Add interface to add WSGI middleware

As discussed in #1807.
Allowing the injection of WSGI middleware can enable easier migration from Connexion 2 to Connexion 3. The use cases are limited though, as this will only work for middleware that can work at the end of the middleware stack.

coverage: 94.287% (+0.02%) from 94.271%
when pulling ed5acba9ca3541ea5c26b491347472084404c423 on feature/wsgi_middleware
into 563fbf8e772d08f4d93240ab50b9d6c420843f78 on main.


generate_data: remove 6 unused arguments

Following replace 6 arguments of generate_data() with client in the cli, complete the refactoring by removing 6 unused arguments from generate_data() in sdg.

@hickeyma

logger parameter name

What do you mean?

@Mergifyio rebase

logger parameter name
What do you mean?

I pushed a commit as found it hard to explain as the PR needed a rebase. Hope thats ok?


Refactor some scripts

No breaking changes
(with exception of renamed --target-arch → --target_arch arg of the apply-patches script).

Move some script constants to a shared "lib/config.py"
Add and use git.get_head_commit()
Extract Ninja related stuff to "lib/ninja.py"
Add 'run-gn' script and call it from the 'update' script
Name an arg "target_arch" instead of "target-arch" for consistency

@nornagon Any other suggestions to make it even better? Did I forget to change anything?

@ckerr, @nornagon
Thanks for the feedback. I'll try to take it into account on the next iteration )


Add RTD Documentation

Add RTD style documentation to the project to make it so that all of the info is organized more and not just in the readme. This would break up the information to make it easier to read.

This functionality has been released in v1.3.0.


Incomplete raw pointers fail codegen for OID but succeed for OIL

test/integration/pointers_incomplete.toml contains tests for which OIL successfully codegens but OID does not. This is unusual as most of the code path is the same. The affected tests are:

OidIntegration.pointers_incomplete_raw_no_follow (has no oil equivalent but if enabled it passes)
OidIntegration.pointers_incomplete_raw_no_follow
OidIntegration.pointers_incomplete_raw_null

No longer failing with codegen-v2.


Language names do not show up correctly on Windows

With the regular PowerShell or Command Prompt on Windows, language names during the UI language prompt or the mnemonic language prompt do not show up correctly. I'm not sure we can even do something about it but it would be interesting to explore if there is a solution to this issue.
Current prompt looks like this:

Looks like missing fonts. Try it on Windows Terminal?
Best we may be able to do is to document good ways of running on Windows


[galactic] Change image display to not rely on TF (#781)

Port #781 to Galactic.

Linux
Linux-aarch64
Windows


refactor(metrics): Refactoring metrics package with prometheus metrics naming convention

Changes:

Refactor pkg/metrics to use naming convention mentioned in https://prometheus.io/docs/practices/naming/#metric-names

Signed-off-by: mayank<EMAIL_ADDRESS>

Codecov Report

Merging #64 (c6471e4) into develop (cbb6dc2) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           develop      #64   +/-   ##
========================================
  Coverage    36.83%   36.83%
========================================
  Files           27       27
  Lines         2234     2234
========================================
  Hits           823      823
  Misses        1366     1366
  Partials        45       45

Continue to review full report at Codecov.

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


Infinite loop clicking a select inside a label

🐛 Bug Report
I've discovered that if a select list is nested inside a label element, jest goes into an infinite loop if a click is triggered on the select.
It appears that this is triggered by a click propagating from select to label, which in turns tries to send a click event back to the select because when a label is clicked, normally an associated element receives the click as well.
I was not sure whether to report this here or to jsdom project, since the jsdom code I tracked this down to lives inside jest (or at least that's what I think). Apologies if this is the wrong place.
To Reproduce
Steps to reproduce the behavior:

Create some code that will render a <select> inside a <label>
Write a test that triggers the click event on the select
Observe the Maximum call stack error

Expected behavior
I expected the click to work normally.
Link to repl or repo (highly encouraged)
https://codesandbox.io/s/eloquent-pike-7uw1h
envinfo
  System:
    OS: macOS 10.15.3
    CPU: (8) x64 Intel(R) Core(TM) i5-8257U CPU @ 1.40GHz
  Binaries:
    Node: 13.7.0 - /usr/local/bin/node
    Yarn: 1.21.1 - /usr/local/bin/yarn
    npm: 6.13.6 - /usr/local/bin/npm
  npmPackages:
    jest: ^25.1.0 => 25.1.0

Yeah, this is an issue either in RTL or JSDOM 👍

@SimenB I've started to open a report on JSDOM repo, but the version shipped with jest-environment-jsdom is no longer supported. So I figured I might go and report it to whoever owns the jest-environment-jsdom package, but apparently that brings me here again. I would appreciate a suggestion as to what I should do?

You can install jest-environment-jsdom@16 if you wanna verify against the latest JSDOM release.

Ah good idea. Thanks!

sorry, jest-environment-jsdom-sixteen

Gotcha, thanks.

Yup, definitely still present in JSDOM 16. I'll report there.

Might be something weird RTL is doing, but it's at least closer 🙂

I've looked at the source where it starts the loop. JSDOM has a piece of code that detects a click on the label element, and then tries to trigger a click on the associated input/select. If the click on the label was a propagated click event that originated on the input/select, it goes into an infinite loop.


[ API docs plugin] The plugin is unable to resolve the $ref field when the models(schemas) are defined in a separate file.

Expected Behavior
The plugin should be able to resolve the schemas defined in a separate yaml file (e.g: models.yml) using the $ref field.
Actual Behavior
The plugin fails with error "Resolver error at paths". (PFA)
Steps to Reproduce

Create two swagger files in your project one containing path details and another containing model(schemas) details.

openapi: 3.0.0
info:
  title: Vehicle Search
  description: |
    The Vehicle search API
  version: 1.0.0-Draft
tags:
  - name: Vehicle Search
    description: APIs to query vehicle properties and vehicle model.
servers:
  - url<EMAIL_ADDRESS>paths:
  /vehicles/brands:
    get:
      summary: Lists all available brands
      operationId: vehicleBrands
      responses:
        '200':
          description: Returns the list of brands
          content:
            application/json:
              schema:
                $ref: 'models.yml#/components/schemas/DataOptionList'
              example:
                values: [
                {
                  "value": "BMW",
                  "label": "BMW"
                }
                ]
        '400':
          $ref: 'models.yml#/components/responses/ClientError'
        '500':
          $ref: 'models.yml#/components/responses/ServerError'
      tags:
        - Vehicle Search

components:
  schemas:
    DataOptionList:
      type: object
      properties:
        values:
          type: array
          items:
            $ref: '#/components/schemas/VehicleData'
    VehicleData:
      type: object
      required:
        - label
        - value
      properties:
        label:
          type: string
          example: label
        value:
          type: string
          example: value
        additionalText:
          type: string

    Error:
      type: object
      properties:
        status:
          type: integer
          format: int32
          description: |
            The HTTP status code generated by the origin server for this occurrence of the problem.
          minimum: 100
          maximum: 599
          example: 503
        title:
          type: string
          description: A short, summary of the problem type. Written in english and readable for engineers.
        detail:
          type: string
          description: |
            A human readable explanation specific to this occurrence of the
            problem.
          example: Connection to database timed out

  responses:
    ClientError:
      description: Client side error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            status: 400
            title: "Bad request"
            detail: "Validation failed"
    ServerError:
      description: Server side error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            status: 500
            title: "Internal Server Error"
            detail: "Failed to map model"

Register the API in backstage using "Register existing API" feature of backstage.
Click on the "Definition" tab and click on any of the API spec. It shows the "Resolve error".

Context
In our projects schemas are always defined in model.yml, we are unable to use the the API-docs plugin to onboard our APIs in backstage.

Is this issue present when you have the OpenApiRefProcessor configured?
https://github.com/backstage/backstage/tree/master/plugins/catalog-backend-module-openapi

Hi @kissmikijr Thank you for the suggestion. Unfortunately, the issue still exist after configuring the  " OpenApiRefProcessor".

"

Having the same issue here
Could not resolve reference: Tried to resolve a relative URL, without having a basePath.

Ah, bummer, I didn't try out the new processor, but I will soonish and I can try to dig into it what's going on!

I have always referenced using relative paths like in the example below so maybe adding a ./ before models.yml might work. This might not be a viable option for everybody though. I'm on vacation right now but I will see if I can get your example working.
$ref: "../../schemas/Pets.yaml"

I have a full example here: https://github.com/mfrinnstrom/backstage-openapi-ref-example
Behind the scenes it is using the following library to do the bundling: https://www.npmjs.com/package/@apidevtools/swagger-parser

@parnita-saha I took some time to look into this. It seems this error shows up when the referenced file can't be found. This leaves the reference in place and then the UI will fail to load that referenced file. I'm thinking you have verified the filename so a more likely scenario would be that the catalog-info.yaml and openapi.yaml files are not in the same folder.
I have added another example to my repo for this case: https://github.com/mfrinnstrom/backstage-openapi-ref-example/tree/main/basepath
I have always had both files in the same folder so I haven't tested this scenario. I tried to add a fix but that is not so easy it seems.
I'm using ScmIntegration.resolveUrl to get the URL based on the relative path, models.yaml in this case. The only base URL to do this from in the processor is the catalog-info.yaml URL as far as I can tell. This means that all file references will be relative to the catalog-info.yaml file and not the openapi.yaml file unfortunately.
In my example the result from resolveUrl for models.yaml will be https://github.com/mfrinnstrom/backstage-openapi-ref-example/tree/main/basepath/models.yaml which doesn't exist.
The $text reference in catalog-info.yaml has already been resolved to the actual OpenAPI spec content so I can't do anything with that either. So if this is your case as well that is all the info I can give you right now unfortunately, put catalog-info.yaml and openapi.yaml in the same folder and it should work.
Maybe @freben or @Rugvip have some suggestions for how to get the relative path to the openapi.yaml file and I can add support for that to the processor.

I opened https://github.com/backstage/backstage/pull/12814 that adds support for defining a base path from which all $ref instances will be resolved. This allows you to have the specification in a separate folder from the catalog-info.yaml file. My example has been updated and works with this PR.

Hi @mfrinnstrom Thanks a lot for all the details and information. It is really helpful. I tried your suggestions and few more scenarios with the API folder structure that we use in our organization.
I renamed the models.yaml and openapi.yaml to models-ps.yaml.yaml and openapi-ps.yaml  as most of our yaml files are named in this format. Unfortunately, I got the same error stating "Resolver error at paths./vehicles/brands.get.responses.200.content.application/json.schema.$ref".
Currently the API ref only worked when I removed "-ps" part from the name and moved all the yaml files catalog-info.yaml,  openapi.yaml, models.yml in under same directory.
I am still trying to check few other structures that are failing in our project. I will keep you posted if we find more scenarios to reproduce the same issue.

@parnita-saha thanks for the added information. Have you tried it with the PR code?
Adding -ps should be possible I believe. I'm mostly stitching together code from Backstage itself and the @apidevtools/swagger-parser library to make this work.
I will try and add that as a case as well and see what happens.

@mfrinnstrom I have not got a chance to check the code yet. I will take a look ASAP.

@parnita-saha A new $openapi resolver was added in the last release. Maybe you can have a look at that and see if that solves your issues. It should support the use-case where the catalog-info.yaml and openapi.yaml files aren't in the same folder.

@mfrinnstrom Apologies for the delayed response. I have upgraded our backstage to the latest release with your changes of $openapi . It has solved the reported issues 🥇

catalog-info.yaml and openapi.yaml files aren't in the same folder.
Having file names with "-xx.yaml".

Thanks a lot for helping with the issue.


Added Instasizer

Instasizer converts vector images to iOS and Android assets

Thank you for the contribution. It needed some fixes, so they were made in 6441594a6ff35cbeeabf336ab937cd453d1f5887. Your contribution is still included (and still credited to you), with the appropriate modifications. Please feel free to ask about any of the changes.

Ah I see, missed the double quotation for url stanza this time.
By the way: In the contribution FAQ the 2nd example uses single quotation, too. Had this FAQ open during edit for reference and didn't scroll up to 1st example. See 2nd example (gateblu) of: https://github.com/caskroom/homebrew-cask/blob/master/CONTRIBUTING.md#examples
Probably best to add a sentence that double quotation is preferred, to prevent a parsing error if #{version} is added to url in a future cask edit.
Cheers,
Frederik

@winkelsdorf We actually do prefer single-quotes in cases where interpolation (e.g. #{version}) is not needed.

It's also important to note that using double quotes with interpolated strings has nothing to do with Homebrew-Cask as a project. It's a Ruby language feature.

@jawshooah Yeah, the latter is known and dully noted.
To solve why I posted the above: I mixed up @victorpopkov and my commit - the change for https://github.com/caskroom/homebrew-cask/commit/6441594a6ff35cbeeabf336ab937cd453d1f5887 did not show what the changes to my PR were, so I had to guess by looking at it.
I rechecked my local repo now: I used the double quotes without an interpolated string, not @victorpopkov.
Probably more a question of taste / best practice, comparable to something like
   if abc
      dosomething()
  else
      dosomethingelse()

while I prefer
  if abc {
     domesomething()
  } else {
    dosomethingelse()
  }

While in many languages both are correct, the first example is more error-prone if edited later.
Same here, URL is always likely to be edited to include variables and become an interpolated string at some future point. So I decided intuitively to use double quotes.
Anyway, thanks for the clarification on what's preferred, Josh. Nothing complicated to keep in mind the next time! :)


chore: fix remaining warnings

Summary of the Pull Request

fix incremental linking
remove unused lib
suppress false-positive WW warning

PR Checklist

[x] Applies to #1495
[x] CLA signed. If not, go over here and sign the CLA

LGTM


Allow a box's contents to be rearranged

This updates the POST /p/:id/move endpoint to also accept an index parameter indicating the index at which a Pokémon should be inserted in the box.
Fixes the serverside portion of #20

This is rebased and ready to merge.


Improve test coverage of HTTP Manager

Coverage increased (+2.49%) to 80.33% when pulling 2997cdd753d88b568275a7e9522f90c6d7c8e133 on JMPerez:master into 56800b3237bc477be0835d227726af0868a2e8c9 on thelinmichael:master.

Awesome @JMPerez, don't think I've used mockery before. Merging. :guitar: