FR: Allow disabling or customizing proto rule generation

Currently this always generates the following rules when a proto_library rule is present:
java_proto_library(
    name = "my_java_proto",
    deps = [":my_proto"],
)

java_library(
    name = "my_java_library",
    visibility = ["//:__subpackages__"],
    exports = [":my_java_proto"],
)

It would be nice if this could be disabled by config or customizable so that it is compatible with other rules, e.g. https://rules-proto-grpc.com/en/latest/lang/java.html#java-proto-library

Thanks for filing the issue - I'd be happy to review a PR that did either or both of the following:

Added a new directive, # gazelle:java_generate_proto, like # gazelle:go_generate_proto, which allowed disabling the java_proto_library generation
Added a new directive # gazelle:java_proto_ruleset which accepted values rules_java and rules_proto_grpc and conditionally generated either target as you'd expect.

To do so, roughly we'd need to:

Create a new directive and register it here: https://github.com/bazel-contrib/rules_jvm/blob/d99cc64c50d10109a9cccc5d2b74020a6a9de204/java/gazelle/configure.go#L51 and parse it into the config object here: https://github.com/bazel-contrib/rules_jvm/blob/d99cc64c50d10109a9cccc5d2b74020a6a9de204/java/gazelle/configure.go#L71
Sniff the config out of cfg here and conditional-ise the codegen: https://github.com/bazel-contrib/rules_jvm/blob/d99cc64c50d10109a9cccc5d2b74020a6a9de204/java/gazelle/generate.go#L74-L104


Only a single instance of a device is allowed.

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

1 of cameras is not aplicable, (Only a single instance of a device is allowed) whaqt can be wrong ?? Everything was working fine

I haven't seen this before. Can you give any more details? Or log files?

Logger: custom_components.dahua
Source: custom_components/dahua/config_flow.py:198
Integration: Dahua (documentation, issues)
First occurred: 16:12:44 (1 occurrences)
Last logged: 16:12:44
Could not connect to Dahua device via the RPC2 API, falling back to cgi
Logger: custom_components.dahua
Source: custom_components/dahua/client.py:615
Integration: Dahua (documentation, issues)
First occurred: 16:12:45 (1 occurrences)
Last logged: 16:12:45
Could not connect to Dahua device
Traceback (most recent call last):
File "/config/custom_components/dahua/config_flow.py", line 187, in _test_credentials
await client.login()
File "/config/custom_components/dahua/rpc2.py", line 100, in login
return await self.request(method=method, params=params, url=url)
File "/config/custom_components/dahua/rpc2.py", line 59, in request
raise ConnectionError(str(resp))
ConnectionError: <ClientResponse(http://<IP_ADDRESS>:80/RPC2_Login) [200 OK]>
<CIMultiDictProxy('X-XSS-Protection': '1;mode=block', 'X-Frame-Options': 'SAMEORIGIN', 'Content-Security-Policy': "script-src 'self' 'unsafe-inline' 'unsafe-eval'", 'Strict-Transport-Security': 'max-age=604800; includeSubDomains', 'Connection': 'Keep-Alive', 'Set-Cookie': 'secure; HttpOnly', 'Content-Length': '182')>
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/config/custom_components/dahua/config_flow.py", line 202, in _test_credentials
data = await client2.get_machine_name()
File "/config/custom_components/dahua/client.py", line 108, in get_machine_name
return await self.get(url)
File "/config/custom_components/dahua/client.py", line 629, in get
raise exception
File "/config/custom_components/dahua/client.py", line 615, in get
response.raise_for_status()
File "/usr/local/lib/python3.9/site-packages/aiohttp/client_reqrep.py", line 1000, in raise_for_status
raise ClientResponseError(
aiohttp.client_exceptions.ClientResponseError: 401, message='Unauthorized', url=URL('http://<IP_ADDRESS>:80/cgi-bin/magicBox.cgi?action=getMachineName')

I have seen this message before, if you have a disabled your camera / doorbell entity and then tried to install the integration again. Could this be the case? Perhaps after trying to uninstall previously?

I think what @peterp2001 says is most likely the issue. Please reopen if this continues to be a problem.


I Can't see the holograms, running MixedRemoteViewCompositor sample

Good Morning, im using the MixedRemoteViewCompositor sample, it works really good I can see the hololens camera in my pc but I can't see the holograms that i put in unity project, Anybody knows what could be the problem?
thx!

Hello, have you solved your problem? I have the same problem.

no, I'm sorry I've been trying to fix it but at the moment I have not succeeded, I'll keep trying, if you found any solution please msg me :)

If I enable the MRC checkbox in the MrvcManager, I  can see all the Holograms.

OK。

it works thx!!

I can see it with the MixedRealityCompanionKit-<IP_ADDRESS>.5.7.0 version

This looks resolved.


Update version from 0.0.73 to 0.0.74

This is an automated update of version in pyproject.toml. This action is performed by publish.yml.

updated version from 0.0.73 to 0.0.74, @SuleyNL pls review


Procurement Concierge - Continued Implementation and Maintenance Support

This issue has been auto-generated to facilitate questions about
 a paid opportunity that has just been posted on the
BCDevExchange.
To learn more or apply, visit the opportunity page.
The opportunity closes on Wednesday, August 28th, 2019 at 16:00 PDT.

Hello Holly,
The product will be in a live/production ready state by the end of October. Additional maintenance is to be provided on a as when/needed basis without support from a PSB development team at this time.
Regards,
Zachary Woodward
From: hollyhrynyk<EMAIL_ADDRESS>Sent: August 27, 2019 10:14 AM
To: BCDevExchange/concierge<EMAIL_ADDRESS>Cc: Woodward, Zachary CITZ:EX<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [BCDevExchange/concierge] Procurement Concierge - Continued Implementation and Maintenance Support (#6)
@mark-a-wilsonhttps://github.com/mark-a-wilson and @ZachWoodwardhttps://github.com/ZachWoodward -

Will maintenance include production support? Or will we be providing support to the production support team? We are trying to determine if you will need SLAs.
Will the procurement services branch have another development team working on the product during the maintenance period?

Thanks!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/BCDevExchange/concierge/issues/6?email_source=notifications&email_token=AIEPCEZYCN6TUVKT647757TQGVOFRA5CNFSM4IOYZPU2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5IO3SY#issuecomment-525397451, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AIEPCE2SR5JDMMI3TWWHRPTQGVOFRANCNFSM4IOYZPUQ.

Hello Jeremy,
The site does advise the winning proponent but we, at this time, do not actively post the winning submitted proposal.
Regards,
Zachary Woodward
From: Jeremy Foster<EMAIL_ADDRESS>Sent: August 27, 2019 12:24 PM
To: BCDevExchange/concierge<EMAIL_ADDRESS>Cc: Woodward, Zachary CITZ:EX<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [BCDevExchange/concierge] Procurement Concierge - Continued Implementation and Maintenance Support (#6)
Is there a page or place where you post the winning proposal for any of the BC Dev Exchange opportunities?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/BCDevExchange/concierge/issues/6?email_source=notifications&email_token=AIEPCE775XKA4A3AKJ5E4R3QGV5OVA5CNFSM4IOYZPU2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5I275Q#issuecomment-525447158, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AIEPCE6XXK3XODIU5LSBV4LQGV5OVANCNFSM4IOYZPUQ.

This opportunity has been assigned


"Mihai Eminescu" is listed in the drop-down menu

Description:
"Mihai Eminescu" is listed in the drop-down menu alongside its corresponding county and commune, according to the law
Precondition:
The website is up an running.

Step 1
Type "Mihai Eminescu" in the search bar.

Expected results
The location is listed in the drop-down menu as "Mihai Eminescu, Botoșani".


Added support of metadata events

Sometimes we can't rely on MEDIA_INFO events because first metadata can be overwritten next one. For example if we have tags: script data, video, video, script data, audio - the second part will rewrite the first. I propose to divide the receipt of events with METADATA_ARRIVED name to handle metadata without waiting MEDIA_INFO.

Good job. I will merge it.
https://github.com/Bilibili/flv.js/pull/309/files#diff-9aa8d37ca651c8e1df8b93d3749aad7dR420
BTW I deleted the keyframes table from onMetaData after extracted for performance (it may be very large and may cause copy to be slow down), do you think it is better to provide unmodified onMetaData structure to upper layer?
Thank you!

Do you mean copying keyframes with Object.assign? But this is a shallow copy

So it's better to provide onMetaData before modification.
Merged, thanks!


use metadata field dspace.object.owner instead of cris.owner in CRIS entity migration

Description
DSpace 7.3 added the metadata schema change REPLACE cris.owner with dspace.object.owner in the Flyway script V7.3_2022.09.28__Orcid_refactoring.sql.
This change was not considered in the CRIS entity migration transformation (entity_migration.ktr). This leads to error messages (ERROR: Metadata field: 'cris.owner.null' was not found in the registry.) when running the CRIS entity migration process on DS-CRIS 2022.03.
Instructions for Reviewers

create a RP in a DS-CRIS 5.11 instance - make sure that the corresponding row in cris_rpage has a resolvable eperson ID in column epersonid
apply migration to DS-CRIS 2022.03 as described in the DS-CRIS 2022.03 documentation
run ItemImportMainOA via DS CLI
the migration of the RP leads to the error message: ERROR: Metadata field: 'cris.owner.null' was not found in the registry.

Thanks @saschaszott your PR has been merged and your contribution has been integrated in dspace-cris-7.
Thanks for your support.


Skip over versions with invalid metadata

There are a number of (mostly older) releases on pypi with files with invalid metadata (e.g. #1363, #1686, #1798) we can't parse even with our fixups. We already skip over simple metadata entries we can't parse with fixups. We should do the same with versions that contain a wheel with invalid METADATA file. The failed packages should have a custom incompatibility in pubgrub so they get explained in resolution failures.

Closed by https://github.com/astral-sh/uv/pull/2834.


[zh-cn][Umbrella]Reference files to sync for 1.26

Numbers in the following list may be not up to date. Please run ./scripts/lsync.sh again before working on each of them.

I would like to handle task-30
86	149	content/en/docs/reference/command-line-tools-reference/kubelet.md

I would like to handle task-4
100	4	content/en/docs/reference/kubernetes-api/workload-resources/pod-v1.md

I would like to handle task-4
100	4	content/en/docs/reference/kubernetes-api/workload-resources/pod-v1.md

I would like to handle task-29
/assign

I would like to handle task-3;

I would like to take task-6.

I would like to take task-8.

I would like to take task-9.

Then I would like to take task-10.

I would like to take task-10.

I would like to take task-12.

I would like to take task-13.

I would like to take task-16.

I would like to take task-14.

I would like to take task-15.

I would like to take task-17.

I would like to take task-18.

I would like to take task-32.

I would like to take task-31.

I would like to take task-19.

I would like to take task-28.

I would like to take task-20.

I would like to take task-21.

I would like to take task-27.

I would like to take task-26.

I would like to take task-25.

I would like to take task-23.

I would like to take task-7, the last one.

Congratulations! We have finished all tasks! Thanks to everybody!!!


Add example to ConnectOptions.log_statements(...)

I found it to be non-trivial to find in the docs how to change the log level for statements, so I wrote a simple example.
Closes #1874

Closing due to inactivity. @holubond feel free to reopen if you get time to address the review comments.


Add voting ticket support to Uptick (PyBitShares requisites)

Adding necessities to python-bitshares to support addition of voting ballot commands to Uptick.

[x] BitShares.voting_ticket_create()
[ ] BitShares.voting_ticket_update()

Work in progress.
This builds on work contributed by @emfrias in 5bce0da,  pr #292.

Looks good so far!

Thank you!


Fix generation of documentation on readthedocs

Builds are failing here:
https://readthedocs.org/projects/beprof/builds/

I've added correct requirements file and its working now.


chore: Form based Github issue templates

Fixes #127
Modified current issue templates to use issue forms

awesome @clmnin
for some reason I have trouble pushing the prettier update here.
can you please run prettier:fix and update the PR?
thanks

@vicb I've force pushed with prettier fix


Twitch Download KO : 404 error

Checklist

[x ] I'm reporting a broken site support
[ x] I've verified that I'm running youtube-dl version 2021.05.16
[x ] I've checked that all provided URLs are alive and playable in a browser
[x ] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[x ] I've searched the bugtracker for similar issues including closed ones

Verbose log

D:\youtube>dl.exe  -v https://clips.twitch.tv/ShyAltruisticCheeseTooSpicy-T9tbKcc01auwU1a0
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-v', 'https://clips.twitch.tv/ShyAltruisticCheeseTooSpicy-T9tbKcc01auwU1a0']
[debug] Encodings: locale cp1252, fs mbcs, out cp850, pref cp1252
[debug] youtube-dl version 2021.05.16
[debug] Python version 3.4.4 (CPython) - Windows-10-10.0.19041
[debug] exe versions: ffmpeg 4.3.2-2021-02-20-full_build-www.gyan.dev, ffprobe 4.4-essentials_build-www.gyan.dev
[debug] Proxy map: {}
[twitch:clips] ShyAltruisticCheeseTooSpicy-T9tbKcc01auwU1a0: Downloading clip GraphQL
[debug] Default format spec: bestvideo+bestaudio/best
[debug] Invoking downloader on 'https://production.assets.clips.twitchcdn.net/AT-cm%7C1190085627.mp4'
ERROR: unable to download video data: HTTP Error 404:
Traceback (most recent call last):
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmp8rlhijs0\build\youtube_dl\YoutubeDL.py", line 1976, in process_info
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmp8rlhijs0\build\youtube_dl\YoutubeDL.py", line 1915, in dl
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmp8rlhijs0\build\youtube_dl\downloader\common.py", line 366, in download
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmp8rlhijs0\build\youtube_dl\downloader\http.py", line 351, in real_download
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmp8rlhijs0\build\youtube_dl\downloader\http.py", line 116, in establish_connection
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmp8rlhijs0\build\youtube_dl\downloader\http.py", line 110, in establish_connection
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmp8rlhijs0\build\youtube_dl\YoutubeDL.py", line 2288, in urlopen
  File "C:\Python\Python34\lib\urllib\request.py", line 470, in open
  File "C:\Python\Python34\lib\urllib\request.py", line 580, in http_response
  File "C:\Python\Python34\lib\urllib\request.py", line 508, in error
  File "C:\Python\Python34\lib\urllib\request.py", line 442, in _call_chain
  File "C:\Python\Python34\lib\urllib\request.py", line 588, in http_error_default
urllib.error.HTTPError: HTTP Error 404:

Description

its was working since yesterday, i just start my script and its fail,
im using the last .Exe files,

note : looks like same or similar URLs, but you need to pick up an auth token/?sig= from graphql first or something.
new DL looks like https://production.assets.clips.twitchcdn.net/AT-cm|xxxx.mp4?sig=xxxx&token={"authorization":{"forbidden":false,"reason":""},"clip_uri":"","device_id":"xxxxx","expires":xxxx,"user_id":"","version":2}

Issue started occuring between 12:10 and 1:10pm LA time today

for bypass and get the url u use this for the moment :
`from selenium import webdriver
chromedriverpath = "yourChromedriverPath"
driver = webdriver.Chrome( executable_path=chromedriverpath)
url = "https://www.twitch.tv/sardoche/clip/ShyAltruisticCheeseTooSpicy-T9tbKcc01auwU1a0"
driver.get(url)
video = driver.find_element_by_tag_name('video')
url = driver.execute_script("return arguments[0].currentSrc;", video)
print(url)
driver.quit()`

FWIW, their alternative CDN has not had this change roll out yet: https://clips-media-assets2.twitch.tv/

FWIW, their alternative CDN has not had this change roll out yet: https://clips-media-assets2.twitch.tv/

u save my night. :) thx

Can reproduce!
-F:
ID   EXT RESOLUTION FPS | PROTO | VCODEC  ACODEC

360  mp4 360p       30  | https | unknown unknown
480  mp4 480p       30  | https | unknown unknown
720  mp4 720p       60  | https | unknown unknown
1080 mp4 1080p      60  | https | unknown unknown
Download any:
ERROR: unable to download video data: HTTP Error 404:


How can I create nest dnd container using ng2-dnd? Any suggestion ?

I'm submitting a ...
[ ] bug report
[ ] feature request
[ ] question about the decisions made in the repository

Do you want to request a feature or report a bug?

What is the current behavior?

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.

What is the expected behavior?

What is the motivation / use case for changing the behavior?

Please tell us about your environment:

Angular version: 2.X.X
Browser: [all | Chrome XX | Firefox XX | IE XX | Safari XX | Mobile Chrome XX | Android X.X Web Browser | iOS XX Safari | iOS XX UIWebView | iOS XX WKWebView ]

Other information (e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, eg. stackoverflow, gitter, etc)

Take a look at my comment in issue #102.

Can you provide me Working Example?


no growl notifications when used with guard-rspec

When using guard, with guard-rspec, and growl_notify (or growl for that matter), everything works great. (I'm on growl 1.2.2)
However, when adding guard-spork, I get a notification that says "RSpec successfully started" after which I don't get any fail/pass notifications.
I could not figure out the root cause of this issue, but I do think people should be warned in the Readme so they don't spend countless hours troubleshooting this.

Which version of guard-spork are you using? You should get a notification like "Spork server for RSpec successfully started"

0.4.1 . Spork does start, and I get a notification that says "RSpec successfully started." Tests are running fine, spork is doing it's job, I just don't get notified of passes and failures.

Are you sure this notification comes from guard-spork? (try to comment all other guard from your Guardfile)
Are you launching guard with bundle exec guard? (just to be sure that is the 0.4.1 that is used)

I am launching with bundle exec guard.
I am not sure the notifications are coming from guard-spork, as there are more tools involved than my brain can handle.
I commented out all other guards beside the spork and rspec one. I noticed that as soon as I add the :cli => '--drb' option to the RSpec guard, notifications stop. However, without that option notifications work, with spork started (though the tests are not using spork and still take forever).

Same issue than https://github.com/guard/guard-rspec/issues/82 ?


Support for o200k_base and gpt-4o (omni) model

Notes:

I added in the new test plans for o200k based on output from tiktoken
I added a SetupO200k() in CompareBenchmark (and renamed Setup to SetupCL200k), but it's not flagged as the GlobalSetup, so not currently used/benchmarked. Wasn't sure if you wanted to re-benchmark with the new encoding?

Fixed some issues that I found, all tests now passing.

Thank you so much for contribution!

Did it here: https://github.com/dmitry-brazhenko/SharpToken/pull/43


Spevacus: Watch barristerbabutv.com

Spevacus requests the watch of the watch_keyword barristerbabutv\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

barristerbabutv\.com has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by Daniil in Charcoal HQ


Missing Ability to Rename Glyph

Allow me renaming the glyph right in the editor will make it able to import some image as window doesn't allow some special character.
**Previously i remembered that the tool allow me to renaming the glyph as will

I apologize for the oversight, as I missed this during the recent UI library upgrade.
Thank you for bringing it to my attention, and I have now fixed this issue.

It should be a CDN caching issue, and I am currently trying to make the cache invalid.

 Still don't have the ability to rename the glyph.

It should be a CDN caching issue, and I am currently trying to make the cache invalid.

I have accessed the latest version.


Change assertEquals() to assertEqualsWithDelta()

Change assertEquals() to assertEqualsWithDelta() inside testCalcauleLength()
PHPUnit was showing the following warning
The optional $delta parameter of assertEquals() is deprecated and will be removed in PHPUnit 9. Refactor your test to use assertEqualsWithDelta() instead.

Hi,
thanks for your pull request!
Adjustments for newer versions of PHPUnit are already made in the branch milestone/3.0.


Fix manual generation on Unix

Manual generation on Unix hasn't caught up with the directoory layout change.  Also, we have a well working script that does the work on other platforms, there's no point in making Unix a special case (i.e. double the maintainance burden).

I was actually thinking master only...  but can certainly make an effort for 1.1.0 as well if that's desired.

I guess since 1.1.0 works now, it's not worth the effort.  Your call.

I think it requires a separate PR.  util/process_docs.pl is sufficiently different, methinks.

Merged.  579a6745337fe8dc4ce34fac6367fa197a7cc219 and cadb015b021065640c7ae02c5eefa0e04cdbd45e

So after this commit we have a lot of cases of things like: "X509_get_version.pod: cannot resolve L<d2i_X509(3)> in paragraph 19". Is that a new error message, or is this "better"?

It's a new error message.

Errr, I haven't been able to reproduce it, can you give me circumstances?  Configuration command and exactly what you made?

Perhaps it would be best to raise an issue...

Ah, it seems this might be a bug in Pod::Html:
https://bugs.llvm.org//show_bug.cgi?id=1005

That's a bug from 2006?
Anyway, I was just looking at the output from travis, the first job.

Yeah, I saw it after asking...  Tried on my machine, saw no such errors, so cannot reproduce.

From the same Travis log:
PERLVERSION   =5.14.2 for x86_64-linux-gnu-thread-multi

... and I find confirmation that this Perl version has issues that give that error message as well.


chore(web): update dev script to use cross-env to support windows

Describe your changes
The apps/web dev npm script didn't use cross-env to set the NODE_ENV variable, so would fail on Windows. The other scripts (e.g. build) already use cross-env, so that was added to dev.
Issue ticket number and link
Type of change 🧩

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation update
[X] Other (please explain in the description section above)

Checklist before requesting a review

[ ] I have performed a self-review of my own code
[ ] I have double checked this work does not include any hardcoded secrets or passwords
[ ] I have made corresponding changes to the documentation
[ ] I have provided details on how I have tested my code
[ ] I have referenced the ticket number above
[ ] I have provided a description of the ticket
[ ] I have included unit tests to cover any testable code changes

@emil-placheta @DavidJWhiteDev this should remove the need for some of the workarounds you had.


Discussion: VC DAO

So the VC DAO idea has been popping up many times. Let's argue about it here and provide all the arguments and counter arguments in one place.
The idea is that the DAO's funds can be used to invest into projects, e.g. buying pre-sales and whatever.
Let's debate.

everything goes to the fact that in the near future the DAO will be forced to register as a legal entity. Therefore, it is obvious what risks this carries and I doubt that community members will agree to accept such risks. There would probably be a more effective model for creating a pitch desk, so that startups can present their projects on discord and can find Angle investments or advising from members of the Lobster DAO.

everything goes to the fact that in the near future the DAO will be forced to register as a legal entity.

Why exactly the DAO "will be forced to register as a legal entity"? What is that 'everything' exactly?
Personally, I don't see anything what would make someone think so.
Neither I will support any activity what can require the DAO to go through any legal shit like that. (not to mention that personally I'm against the VC/ICO/etc. idea at all, even anonymously)

Under the new project crypto regulations in EU, DAO will be equivalent to the entity. I mean its only project but who knows how itll proceed. In any case, as long as the Lobs DAO remains a unifying community structure, and not a money-making company, we are not in danger
I`m also against Lobs DAO as VC actually:)

Under the new project crypto regulations in EU, DAO will be equivalent to the entity. I mean its only project but who knows how itll proceed. In any case, as long as the Lobs DAO remains a unifying community structure, and not a money-making company, we are not in danger I`m also against Lobs DAO as VC actually:)

EU regulation is EU's problem. US regulation is US problem. Vanuatu regulation is Vanuatu's problem, etc. They can go try to enforce it somehow, their right.

Okay, I don't see any support for this or ongoing debate. Closing.


cannot find FontAwesome (I am using MacTex)

the font "FontAwesome" cannot be found
I am using MacTex which should already contain everything I need (including TexLive)

a

Check this pull request: https://github.com/posquit0/Awesome-CV/pull/98

Closed via #344.


Throw if invalid JSON is found in widget descriptor's innerHTML

As of now, we simply ignore the error and return an empty object. IMO, the behaviour should be that if the innerHTML content is only whitespace, we shouldn't try to parse it. Otherwise, we log it into the console and DON'T render the widget (because it's in an inconsistent state).
I'm addressing the issue partially in #98 (the widget will still be rendered).

https://github.com/lundegaard/react-union/commit/2adb0fc8af5fcf38142590c49dc5fffeb5988835 should solve this. In order to allow other widgets with valid JSON data to render, we must throw an exception (invariant) in the Widget component, not during scanning, making things a little bit more complicated (hence the INVALID_JSON constant).

Closed by #214


chore: bdd-nh-1584427591 to 0.0.1

chore: Promote bdd-nh-1584427591 to version 0.0.1

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approvers:
If they are not already assigned, you can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

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


Add selected item Action.

It's a common action.

It's indeed useful.

There is a conflict. because this code is released about a year ago.
so  ,I  change the original code in my repositories.
but Thank you suggestion all the same!


made proper filepaths

Hi. I made ur v cool code a smigde cooler. pls accept.

Hey congrats on your first pull request 🎉


Readme review

Codecov Report

Merging #241 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #241   +/-   ##
=======================================
  Coverage   16.47%   16.47%
=======================================
  Files          15       15
  Lines        1050     1050
=======================================
  Hits          173      173
  Misses        866      866
  Partials       11       11

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 56c40ef...f27972d. Read the comment docs.


Files with Suffix BASE, LOCAL, REMOTE are being executed

Which version and edition of Flyway are you using?
5.0.7
If this is not the latest version, can you reproduce the issue with the latest one as well?
(Many bugs are fixed in newer releases and upgrading will often resolve the issue)
Which client are you using? (Command-line, Java API, Maven plugin, Gradle plugin)
Command line
Which database are you using (type & version)?
Oracle 12.1 and 12.2
Which operating system are you using?
Windows
What did you do?
flyway.conf:
flyway.sqlMigrationSuffixes=.sql,.pkg,.pkb,.pks
Windows command line:
flyway migrate
What did you expect to see?
I expected Flyway to execute the first file but ignore the .BASE, .LOCAL and .REMOTE files, as .pkb is in the name but it's not the suffix.
Expected output:
Migrating schema "MY_SCHEMA" with repeatable migration 02 04 045 b pkb my package
What did you see instead?
Actual output:
Migrating schema "MY_SCHEMA" with repeatable migration 02 04 045 b pkb my package
Migrating schema "MY_SCHEMA" with repeatable migration 02 04 045 b pkb my package.pkb.BASE
Migrating schema "MY_SCHEMA" with repeatable migration 02 04 045 b pkb my package.pkb.LOCAL
Migrating schema "MY_SCHEMA" with repeatable migration 02 04 045 b pkb my package.pkb.REMOTE

I am unable to reproduce this. Can you post a small repo that reproduces the issue?

Thanks, Axel, I'll get back to you.

Can you post a small repo that reproduces the issue?

Is there a manual or example how to do this (properly)?

I can't reproduce it when I 'fake' the file names.
But it happens regularly when git creates the files while merging.

I am afraid there must be something strange on your end. Please debug and reopen if you do manage to pinpoint Flyway as being the cause. It would be surprised if it were the case as this code is well tested and I can't reproduce it, but you never know.


[Suggestion] Filter blocs in Material panel

In the Material panel it would be nice to have the option to activate or not each block in such a way as to display only certain types of blocks.
If this feature is implemented, two buttons would also be welcome: one to activate all blocks and the other to disable all blocks (a kind of alias button "Hide" somehow).

What exactly would the two buttons do, hide what blocks?

I'm talking about the blocks that make up the schematic that is currently loaded.
I mean that if each block can be activated or not, these 2 buttons are actually shortcuts for all enable / disable.
If we start from the postula that all the blocks are activated by default (which is normal) and that a schematic is composed of a hundred different blocks, and I wish to see only 1-2 type of blocks in particular, these buttons would be very useful !


Search functionality

Allow searching all Crossfeed domains/services for specific information, e.g. headers etc.
search bar to search everything
set up elasticsearch infra

Adding @jhackshaw & @TimLillis for UX/front-end work as needed


Log more to InternalLogger

fixes https://github.com/NLog/NLog/issues/1192

deadlocks, see
https://github.com/NLog/NLog/issues/1218

deadlock from InternalLogger.LogToConsole = true; . Dunno why

@bhaeussermann / @Page-Not-Found any idea why this change leads to a deadlock in  NLog.UnitTests.Targets.ConcurrentFileTargetTests.BufferedConcurrentTest (also local)?

@304NotModified I can't figure it out either. I will have a closer look when I can make the time.

I found out it has something to do with the console output of the internal logger.

Xamarin again..

Current coverage is 74.36%

Merging #1213 into master will decrease coverage by -0.11% as of 45379ca

@@            master   #1213   diff @@
======================================
  Files          267     266     -1
  Stmts        15359   15363     +4
  Branches      1612    1612
  Methods          0       0
======================================
- Hit          11438   11424    -14
+ Partial        382     380     -2
- Missed        3539    3559    +20

Review entire Coverage Diff as of 45379ca

Uncovered Suggestions

+0.09% via ...gingConfiguration.cs#282...295
+0.09% via ...gingConfiguration.cs#248...261
+0.08% via ...argets/FileTarget.cs#1704...1716
See 7 more...

Powered by Codecov. Updated on successful CI builds.


Multi-seed staged Breadth First Search algorithm

I introduce a staged BFS algorithm with multiple roots, which means each search from the roots is stopped at one breadth level and traverse over the roots and then proceed to the next level in the same round-robin way. The resultant clustering based on this algorithm is less concentrated on a single greedy node compared with the previous naive greedy clustering algorithm.

Thank you! I will add comments to the code and merge it.


ETag / 304 unmodified support?

It seems like basically everything right now every html page seems to come back with cache control max age of 86400, if you deploy a new version of your app, most bundlers will hash asset names to cachebust other than your HTML files.
Describe the solution you'd like
Support etags, so people can configure HTML files and other non-hashed files to send not modified responses.
Describe alternatives you've considered
Using a different static web server

Yes, definitely a nice to have feature.

I'm not a rustacean, but I may give it a go for fun next weekend; this source code looks pretty clean & self explanatory.

I'm not a rustacean, but I may give it a go for fun next weekend; this source code looks pretty clean & self explanatory.

Sure, the code in general is easy to jump-in, so don't hesitate to give it a try.

if you have any thoughts or advice on direction/libs to utilize for high-perf file hashing (to generate an etag) or an algorithm, maybe post it here.

I found interesting this Actix file content, so you could have it a look at https://github.com/actix/actix-web/blob/master/actix-files/src/named.rs#L378
Just let me know here if you need any other assistance on your SWS journey.

I looked into it, I think it would honestly be very little effort to put in defaults just for the common use case of "bundled app with static assets that have cache-busting names", but actually putting in a real etag (not weak etag - with the W/ prefix) could be a lot of work.
The thing that lead me to rethink my decision to plop in a quick-and-easy new setting, was I think adding etag on top of what you have today would just add technical debt on top of the hardcoded cache preferences that are already in the program. Probably prior to etag support comes, the program will need more robust cache configuration options

I looked into it, I think it would honestly be very little effort to put in defaults just for the common use case of "bundled app with static assets that have cache-busting names", but actually putting in a real etag (not weak etag - with the W/ prefix) could be a lot of work.

What exactly could be a lot of work in your opinion? Do you mean an algo to generate/validate strong etags efficiently?
I think that the entity_tag crate could help here.

The thing that lead me to rethink my decision to plop in a quick-and-easy new setting, was I think adding etag on top of what you have today would just add technical debt on top of the hardcoded cache preferences that are already in the program.

The current cache-control preferences are already part of the general section settings offered by SWS as one of several defaults. But, cache-control is behind a simple bool flag. So, it should not be a big deal against a new etag flag.
Also, headers like cache-control can be overwritten by users on demand.

Probably prior to etag support comes, the program will need more robust cache configuration options

I think that the etag feature could have its own advanced section place. So, users can have robust cache configuration options and the freedom to tweak them as needed. Also, SWS advanced options are only available via the config.toml file.
If you have ideas about how to improve the cache mechanism of SWS, please feel free to share them.

Just to let know here that I started to work on a module to compute/check strong Etags via the ahash crate under an advanced TOML entry.
I eventually will integrate that module on SWS in a couple of releases or so, stay tuned.

Turned out that it got more tricky than I expected. You can find more context and progress on this thread https://users.rust-lang.org/t/how-to-compute-a-byte-for-byte-etag-using-tokio/92481
But besides, until exploring Trailer. We could probably re-think the idea of going with a weak ETag instead as several implementations do. E.g https://github.com/actix/actix-web/blob/master/actix-files/src/named.rs#L377-L407
So I will leave it like this for now until I find time again to probably come back to the topic.
In the meantime, If someone would like to help, please feel free to go ahead.

It is probably possible to generate a weak ETag without having to read the whole body of a file.
It can be done, for example, this way (just adding a patch on top of 8c6ab533fd23fb766c13ceddd2b0640b776ad4db as it's not worth a PR):
diff --git a/src/static_files.rs b/src/static_files.rs
index 6165696..b59b2fa 100644
--- a/src/static_files.rs
+++ b/src/static_files.rs
@@ -597,9 +597,10 @@ async fn response_body(
     conditionals: Conditionals,
 ) -> Result<Response<Body>, StatusCode> {
     let mut len = meta.len();
-    let modified = meta.modified().ok().map(LastModified::from);
+    let modified = meta.modified().ok();
+    let last_modified_header = modified.map(LastModified::from);

-    match conditionals.check(modified) {
+    match conditionals.check(last_modified_header) {
         Cond::NoBody(resp) => Ok(resp),
         Cond::WithBody(range) => {
             let buf_size = optimal_buf_size(meta);
@@ -645,9 +646,12 @@ async fn response_body(
                     resp.headers_mut().typed_insert(ContentType::from(mime));
                     resp.headers_mut().typed_insert(AcceptRanges::bytes());

-                    if let Some(last_modified) = modified {
+                    if let Some(last_modified) = last_modified_header {
                         resp.headers_mut().typed_insert(last_modified);
                     }
+                    if let Some(last_modified) = modified {
+                        insert_etag(&mut resp, last_modified);
+                    }

                     Ok(resp)
                 })
@@ -663,6 +667,22 @@ async fn response_body(
     }
 }

+/// Inserts the ETag header based on the provided modified time. The value adeed is a weak ETag
+/// that also contains a fixed prefix `LMT` (Last Modified Time) to allow for future changes of the
+/// format of the ETag.
+///
+/// An example value might look like: `W/"LMT1705668081589469821"`.
+fn insert_etag(resp: &mut Response<Body>, modified: SystemTime) {
+    if let Ok(elapsed) = modified.duration_since(std::time::UNIX_EPOCH) {
+        // Add MMS prefix so that we are able to invalidate the ETag if we
+        // decide that this format is not appropriate. Using Weak ETag as
+        // modified time does not guarantee the content to actually be changed.
+        let etag = format!(r#"W/"LMT{}""#, elapsed.as_nanos());
+        resp.headers_mut()
+            .typed_insert(headers::ETag::from_str(&etag).unwrap());
+    }
+}
+
 struct BadRange;

 fn bytes_range(range: Option<Range>, max_len: u64) -> Result<(u64, u64), BadRange> {
diff --git a/tests/compression_static.rs b/tests/compression_static.rs
index f614c6c..e8b43a0 100644
--- a/tests/compression_static.rs
+++ b/tests/compression_static.rs
@@ -66,6 +66,14 @@ async fn compression_static_file_exists() {
         assert_eq!(headers["content-encoding"], "gzip");
         assert_eq!(headers["accept-ranges"], "bytes");
         assert!(!headers["last-modified"].is_empty());
+        {
+            let etag = headers["etag"].to_str().unwrap_or("");
+            assert!(
+                etag.starts_with(r#"W/MMS""#),
+                "should contain weak etag in {}",
+                etag
+            );
+        }
         assert_eq!(
             &headers["content-type"], "text/html",
             "content-type is not html"

We would still need to extend the Conditionals::check to support the If-None-Match and If-Match headers (on top of the "If-(Un)Modified", "Range") and respond appropriately with a 200 or 304 correctly when a browser requests the resource to be re-validated.
But the biggest problem with the ETag is that the re-validation will never be requested for at least the Cache-Control: max-age duration.
So if the objective is to be able to get a fresh resource when it changes, then just making use of an ETag will not solve this. We would need to probably remove Cache-Control or even set Cache-Control to no-store or no-cache or start doing other combinations of caching mechanisms.
I'd suggest that this complexity might be hard to justify.
At the end of the day, as soon as there is caching, there is always going to be stale resource.

There are only two hard things in Computer Science: cache invalidation and naming things. 😄

@dnagir as I said before. We can adopt a weak Etag using a combination of modified time and file size similar to your patch.
However, I should be also in favor of adjusting the Conditionals::check to evaluate at least If-None-Match, If-Match and If-Unmodified-Since headers. Maybe something like https://github.com/weihanglo/sfz/blob/master/src/http/conditional_requests.rs#L25
PR welcome.

Note that a weak Etag has performance advantages which is likely why nginx uses it ({last_mod_time}-{file_size} with both parameters in hex). In particular, it’s a prerequisite if one is to use sendfile functionality to send file contents in the most efficient way possible, something that SWS might want to adapt in future.


[HOLD][$250] Migrate AddPersonalBankAccountPage.js to function component

Class Component Migration
Filenames

[ ] src/pages/AddPersonalBankAccountPage.js

type: React.Component
has state values: true
has refs: false
has context: false
lifecycle methods: componentDidMount

Task

We currently have some class components in our codebase that we would like to refactor to a function component.
Here's a link with some general advice on how to refactor a class component to a function component: https://react.dev/reference/react/Component#alternatives
If you need additional guidance, please ask in #expensify-open-source
Test for any regressions and verify that there are no breaking changes

⚠ Could not update price automatically because there is no linked Upwork Job ID. The BZ team member will need to update the price manually in Upwork.

I'd love to work on this.

I am ready to work on this ticket. :)

Can I work on this

I can work on this issue.

I would like to work on this

Hello!
I'm Bartek from Callstack - an expert contributor group and I would like to work on this one.

I'd like to work on this

I am able to work on this task.

Hey @muttmuure, please can you pay out this issue when you're back. Thanks!

Payment issue is here: https://www.upwork.com/en-gb/jobs/~019a349ae6855bf239

Aimane hired

Aimane paid. I might have accidentally sent another hire offer for this, but you can ignore it. Upwork is weird.


New version: TravisLane.SteamArtManager version 2.1.2

Pull request has been created with Komac v1.11.0 :rocket:
Microsoft Reviewers: Open in CodeFlow

/AzurePipelines run

/AzurePipelines run


Diagnostics update on text change

Hello Neovim LSP team,
In Coc.nvim, there was a setting enabling us to update the diagnostics on insert. Is this possible in nvim-lsp? I'm specifically looking for this option in typescript/tsserver. My first guess looking at config.md is that tsserver doesn't have any settings for us to set, nevertheless I want to ask this.
Thanks in advance

Ok this is implemented I just can't copy code correctly.
The handlers enables this.
require'lspconfig'.tsserver.setup {
  on_attach = on_attach,
  handlers = {
    ['textDocument/publishDiagnostics'] = vim.lsp.with(
      vim.lsp.diagnostic.on_publish_diagnostics, {
        update_in_insert = true,
      }
    ),
  }
}


Duplicate large asset files in documentation site

Problem description
I was looking into why the locally generated site (bundle exec jekyll build) in _site was so large.
Turns out, this documentation site has a lot of static files, many of them being duplicates to compartmentalize API versions.
Problem location
The heavy ones are (reverse sorted by size):
+---------------------------------------------------------------------------------+----------+
| Filename                                                                        | Filesize |
+---------------------------------------------------------------------------------+----------+
| js/redoc.min.map                                                                |  7.12 MB |
|                                                                                |          |
| datacenter/dtr/2.1/reference/api/swagger-ui.js                                  |  2.44 MB |
| datacenter/dtr/2.2/reference/api/swagger-ui.js                                  |  2.44 MB |
| datacenter/dtr/2.2/reference/api/swagger-ui.js.original                         |  2.44 MB |
| datacenter/dtr/2.3/reference/api/swagger-ui.js                                  |  2.44 MB |
| datacenter/dtr/2.3/reference/api/swagger-ui.js.original                         |  2.44 MB |
|                                                                                |          |
| datacenter/ucp/2.2/reference/api/swagger-ui.js.original                         |  2.44 MB |
| datacenter/ucp/2.2/reference/api/swagger-ui.js                                  |  2.44 MB |
| datacenter/ucp/3.0/reference/api/swagger-ui.js                                  |  2.44 MB |
| datacenter/ucp/3.0/reference/api/swagger-ui.js.original                         |  2.44 MB |
|                                                                                |          |
| hackathon/resultsgraph_austin.png                                               |  2.01 MB |
| datacenter/dtr/2.6/reference/api/swagger-ui-bundle.js                           |  1.21 MB |
| reference/ucp/3.2/api/swagger-ui-bundle.js                                      |  1.21 MB |
| datacenter/dtr/2.5/reference/api/swagger-ui-bundle.js                           |  1.21 MB |
| datacenter/dtr/2.4/reference/api/swagger-ui-bundle.js                           |  1.21 MB |
| reference/dtr/2.7/api/swagger-ui-bundle.js                                      |  1.21 MB |
| datacenter/ucp/3.1/reference/api/swagger-ui-bundle.js                           |  1.21 MB |
| docker-hub/publish/images/gforghetti-apache-latest_inspection_report.html-2.png |  1.10 MB |
| js/alljs.js                                                                     |  1.08 MB |
| js/redoc.min.js                                                                 |  1.07 MB |
| notary/resources/ncc_docker_notary_audit_2015_07_31.pdf                         |  1.04 MB |
+---------------------------------------------------------------------------------+----------+

Suggestions for a fix
When I ran a diff (against two paths with the same basename), some of them were no different from the other.
I suggest that it'd be better if you could move these files to, and reference them from, a central location like the ./js/ directory.
Its a bit tricky for me, however, since I don't quite know the impact it would have on your workflow.

@ashmaroli Thanks for your feedback. Docker Enterprise docs are now part of Mirantis. UCP and DTR docs are no longer hosted on the Docker docs site. You can take a look at the Docker Enterprise documentation at https://docs.mirantis.com/docker-enterprise/.
Let me close this issue here for that reason. Feel free to continue the conversation after I close.


Validate happens even StructField is nil

After reading https://github.com/typerandom/validator/wiki/Tagging#structure I did following example and the result confused me since nil structfield was still validated or I did something wrong?
{Title:abc ProducedBy:0xc20800a310}
[ProducedBy.Age cannot be less than 18.]

{Title:abc ProducedBy:<nil>}
[ProducedBy.Age cannot be less than 18.]

package main

import (
	"encoding/json"
	"fmt"
	"github.com/typerandom/validator"
)

type Album struct {
	Title      string    `json:"title" validate:"not_empty"`
	ProducedBy *Producer `json:"produced_by,omitempty"`
}

type Producer struct {
	Age int `json:"age" validate:"min(18)"`
}

func main() {
	jsonAlbum := []byte(`{"title": "abc", "produced_by": { "age": 17}}`)

	var a Album
	if err := json.Unmarshal(jsonAlbum, &a); err != nil {
		fmt.Println(err)
		return
	}

	fmt.Printf("%+v\n", a)
	if err := validator.Validate(a); err.Any() {
		fmt.Println(err)
	}

	jsonAlbum2 := []byte(`{"title": "abc"}`)

	var a2 Album
	if err := json.Unmarshal(jsonAlbum2, &a2); err != nil {
		fmt.Println(err)
		return
	}

	fmt.Printf("\n%+v\n", a2)
    // no error expected
	if err := validator.Validate(a2); err.Any() {
		fmt.Println(err)
	}
}

Thanks for reporting this, this is definitely an issue in the library!

Cheers! :beers:

Sorry for the slow reply. This is now fixed in 15e4d81a0a8ad87e99c0ae99e612e675ce3f56a0. Let me know how it works for you.
Closing issue meanwhile.

It works, tagging with "nil|not_empty" now also works.
Thank you for the fix and great validate lib.


[Bug] [Server] Once click online schedule time, task will be automatically scheduled

Purpose of the pull request

This PR closes https://github.com/apache/dolphinscheduler/issues/13089

Brief change log
Current mis-fire strategy is to process cron job immediately. The strategy will be triggered if setting scheduler’s start time earlier than current time.

Add check when creating and updating schedule, set the start time to current time if it's earlier than current time.

Verify this pull request

This pull request is code cleanup without any test coverage.
(or)
This pull request is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:

(or)
If your pull request contain incompatible change, you should also add it to docs/docs/en/guide/upgrede/incompatible.md

Codecov Report

Merging #13092 (a902bb6) into dev (7c90bf0) will decrease coverage by 0.10%.
The diff coverage is 14.28%.

@@             Coverage Diff              @@
##                dev   #13092      +/-   ##
============================================
- Coverage     39.31%   39.20%   -0.11%
- Complexity     4247     4275      +28
============================================
  Files          1061     1069       +8
  Lines         40050    40262     +212
  Branches       4604     4616      +12
============================================
+ Hits          15746    15786      +40
- Misses        22524    22698     +174
+ Partials       1780     1778       -2

Impacted Files
Coverage Δ

...heduler/api/service/impl/SchedulerServiceImpl.java
26.54% <14.28%> (-0.24%)
:arrow_down:

...uler/api/service/impl/DataAnalysisServiceImpl.java
36.16% <0.00%> (-45.81%)
:arrow_down:

...r/api/service/impl/ProcessInstanceServiceImpl.java
64.09% <0.00%> (-6.29%)
:arrow_down:

...eduler/api/dto/schedule/ScheduleCreateRequest.java
83.33% <0.00%> (-2.39%)
:arrow_down:

...e/dolphinscheduler/service/queue/TaskPriority.java
51.31% <0.00%> (-1.25%)
:arrow_down:

...erver/worker/runner/WorkerTaskExecuteRunnable.java
38.77% <0.00%> (-0.96%)
:arrow_down:

...cheduler/plugin/alert/dingtalk/DingTalkSender.java
34.13% <0.00%> (-0.78%)
:arrow_down:

...inscheduler/plugin/registry/etcd/EtcdRegistry.java
50.34% <0.00%> (-0.69%)
:arrow_down:

...he/dolphinscheduler/plugin/task/java/JavaTask.java
58.50% <0.00%> (-0.69%)
:arrow_down:

...lphinscheduler/api/dto/task/TaskCreateRequest.java
83.33% <0.00%> (-0.54%)
:arrow_down:

... and 56 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

Okay, i'll make some changes that return warning message if setting start time earlier than current time, also change the default start time in front-end to 0:00 of the next day? WDYT.

If no more suggestions, i'll follow the logic mentioned above and finish new code at this weekend.

@Radeity Please rebase the upstream dev to solve the dead-link check.

@Radeity Please rebase the upstream dev to solve the dead-link check.

@ruanwenjun Done, thx!

@Radeity Hi, I submit https://github.com/apache/dolphinscheduler/pull/13285 to fix this kind of problem, I plan to revert this PR, since the check is not needed now.

@Radeity Hi, I submit #13285 to fix this kind of problem, I plan to revert this PR, since the check is not needed now.

Okay, anyway, your fix is better, thx!


bazelisk: add --strict to build and test

Enable incompatible flags to detect upgrade issues.

https://github.com/bazelbuild/bazelisk#--strict
https://stackoverflow.com/questions/56364435/any-bazel-document-to-help-migrate-from-an-older-version-to-newer-version

examples: ERROR
-https://github.com/bazelbuild/bazel/blob/5.4.1/src/main/starlark/builtins_bzl/common/java/java_plugin.bzl
ERROR: Traceback (most recent call last):
	File "/virtual_builtins_bzl/common/java/java_plugin.bzl", line 54, column 26, in <toplevel>
	File "/virtual_builtins_bzl/common/rule_util.bzl", line 50, column 16, in create_rule
Error in rule: in call to rule(), parameter 'outputs' is deprecated and will be removed soon. It may be temporarily re-enabled by setting --incompatible_no_rule_outputs_param=false
ERROR: error loading package 'antlr4/Python3': Internal error while loading Starlark builtins: Failed to load builtins sources: at /virtual_builtins_bzl/exports.bzl:25:5: at /virtual_builtins_bzl/common/exports.bzl:19:6: initialization of module 'common/java/java_plugin.bzl' (internal) failed
INFO: Elapsed time: 1.677s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (0 packages loaded)


Bad yum-config-manager line for 18.09

sudo yum-config-manager --enable docker-ee-stable-18.09.0
should be:
sudo yum-config-manager --enable docker-ee-stable-18.09
File: install/linux/docker-ee/centos.md

@seemethere @ahh-docker PTAL

Thanks for your feedback. Docker Enterprise docs are now part of Mirantis. You can take a look at the Docker Enterprise documentation at https://docs.mirantis.com/docker-enterprise/.
Let me close this issue here for that reason. Feel free to continue the conversation after I close.


Support other shells

read from the SHELL env var to support zsh and other shells

done at somepoint!


Vue resets INPUT field when setting it to disabled but not TEXTAREA

Version
2.5.17
Reproduction link
https://codepen.io/MSCAU/pen/jONVRRj
Steps to reproduce

Bind the 'disabled' attribute of a INPUT TYPE='text' to a Vue boolean with value 'false'.
Bind the value attribute of the same INPUT to a Vue string (not using v-model), ie. <INPUT type="text" :value="myVal" :disabled="myBool"/>
Type a new value in the rendered text field.
Via code or Vue DevTools, switch the boolean to false. The value of the input changes back to its original value.
Do the same with a TEXTAREA: <TEXTAREA v-html="myText" :disabled="myBool"></TEXTAREA>
See how the new TEXTAREA's content is not reset when the boolean is switched to 'true'.

What is expected?
The INPUT and TEXTAREA should behave the same way, (preferably by not resetting when their disabled properties are toggled).
What is actually happening?
The INPUT field resets to its original value. The TEXTAREA field does not.

If I want to disable form fields after submission (eg. during server-side validation or animation), it is incongruous (a) for them to reset to their original unmodified values, or (b) to have some of them reset and some not.
I don't want to use v-model here as my original data is a JS object tree with many associated dependencies. I want to validate the user's new values before committing the changes. I'm also allowing the user to lock a record, making it read-only, and I am using the 'disabled' property to indicate this visually and to preclude changes.
See also the same question on StackOverflow with unsatisfactory / incomplete answers: https://stackoverflow.com/questions/57604402/vue-resets-input-field-when-setting-it-to-disabled

This is expected: the input re renders when disable changes and the value hasn't changed, so it's reset to its previous value. Using v-model will allow you to persist the value between renders

Why does textarea behave differently?


Some issues during training

Epoch 1/1
271/271 [==============================] - 3s 12ms/step - loss: 0.0187 - acc: 0.9963
68/68 [==============================] - 0s 2ms/step
[3 1 1 0 1 2 1 3 3 0 1 2 2 1 1 1 1 3 2 0 3 0 1 1 1 1 1 2 1 3 1 0 1 3 0 0 3
3 1 0 1 0 1 2 0 3 3 3 0 0 3 1 1 1 0 1 0 3 3 0 3 3 3 1 2 0 0 0]
(3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
Accuracy:0.412
Confusion matrix: [[ 0 18  0  0]
[ 0 25  0  0]
[ 0  7  0  0]
[ 0 15  0  3]]
Traceback (most recent call last):
File "cnn_example.py", line 33, in
cnn_example()
File "cnn_example.py", line 27, in cnn_example
get_feature_vector_from_mfcc(filename, flatten=to_flatten)),
File "/home/sww/workspace/speech-emotion-recognition/speechemotionrecognition/dnn.py", line 97, in predict_one
return np.argmax(self.model.predict(np.array([sample])))
File "/usr/local/lib/python3.6/dist-packages/keras/engine/training.py", line 1149, in predict
x, _, _ = self._standardize_user_data(x)
File "/usr/local/lib/python3.6/dist-packages/keras/engine/training.py", line 751, in _standardize_user_data
exception_prefix='input')
File "/usr/local/lib/python3.6/dist-packages/keras/engine/training_utils.py", line 128, in standardize_input_data
'with shape ' + str(data_shape))
ValueError: Error when checking input: expected conv2d_1_input to have 4 dimensions, but got array with shape (1, 198, 39)
root@2d14eba3fb00:/home/sww/workspace/speech-emotion-recognition# Error when checking input: expected conv2d_1_input to have 4 dimensions, but got array with shape (1, 198, 39)
The training code is:
'''
#!/usr/bin/env bash
set -x
export PYTHONPATH=/path_to/speech-emotion-recognition/:$PYTHONPATH
export PATH=/path_to/speech-emotion-recognition/:$PATH
cd examples
python cnn_example.py
'''
There seems to be some problems with the input.
Could you pls help me with this?
Many Thanks.

Let me look into this and get back to you

same error

Sorry, I couldn't reproduce the error on my side. Please reopen the comment with more information .


Mouse can spawn in the enclosed room at the trade station

Description
When picking mouse ghost role, it can spawn you in an enclosed room at the trade station where you can't do anything. The room is inaccessible by other players.
Reproduction
Roll mouse ghost role until it spawns you there.
Screenshots

(a ghost standing next to a mouse corpse)
Additional context

Happened once to me as Space Dragon, I think most random location ghost roles can spawn there?


Cannot upload multiple files at once using ngx-uploader

I cannot upload multiple files at once.
My code is
const event: UploadInput = {
        type: 'uploadAll',
        url: 'ToDoList/UploadDocument',
        method: 'POST',
        data: {
            ConditionId: String(todoItem.ConditionId), Description: String(todoItem.Description), UserName: String(this.displayName)
            , Year: String(todoItem.Year), ImageDescription: String(todoItem.ImageDescription), LoanNumber: localStorage.getItem('selectedLoan')
        }
    };

    todoItem.uploadInput.emit(event);

I'm having this problem, too. uploading multiple files makes multiple calls to my upload service. Is that the intended function of 'uploadAll'?

This has been fixed by setting Concurrency as "1". Multiple file upload work fine now.

It's able to upload multiple files but it makes separate calls to the service to do so. even with Concurrency set to 1, it's still separate api request.

I am also having the same problem. Found a solution ?

Never did. This fix allows for multiple uploads, but I needed them to all send in one request, not multiple requests.

I ended up implementing my own. I use the file drop functionality of this component, but the upload process I handle myself.

Hi @Mihai-B , can you give us some example of your upload process ? 😄


[md-tabs][v-for] Tabs not showing when created dynamically

Please have a look at this simple fiddle.
When I try to load my tabs dynamically I get the following error (see console output):

TypeError: Cannot read property 'ref' of undefined
at VueComponent. (vue-material@0.7.1:9)
at Array. (vue@2.2.1:464)
at nextTickHandler (vue@2.2.1:413)
logError @ vue@2.2.1:426

Yup, I tracked down this bug that happens to tabs being registered after the  component has been initialized with no tab list (since you are populating tabs after).
The fix for @marcosmoura  seems to be in registerTab method, to check if the tablist is empty and if no activeTab is set, if not, then set this first registered tab as the active one.
I could probably do a PR but the fix is fairly simple.

Already fixed!

Here is some some code for mdTabs, that has not been refactored for efficiency
registerTab:function(t){
let hasActive = false;
for(let tab of Object.keys(this.tabList)){
  if(this.tabList[tab].active) hasActive = true;
}
this.tabList[t.id] = t;
if(!hasActive) this.tabList[t.id].active = true;

},

@pedro-meza could you please make a PR with this change?
We'll be super happy with it :D


Setting up environment for Evapotranspiration submodule in ngen

Additions
extern/evapotranspiration/evapotranspiration
Removals
extern/CMakeLists.txt
extern/petbmi.pc.in
Changes
.gitsubmodules
README.md
Testing

Clone the submodule
Build the libpetbmi shared library

Screenshots
Notes

Todos

Checklist

[ x] PR has an informative and human-readable title
[x] Changes are limited to a single goal (no scope creep)
[x ] Code can be automatically merged (no conflicts)
[x] Code follows project standards (link if applicable)
[ ] Passes all existing automated tests
[x ] Any change in functionality is tested
[x ] New functions are documented (with a description, list of inputs, and expected output)
[ ] Placeholder code is flagged / future todos are captured in comments
[ ] Project documentation has been updated (including the "Unreleased" section of the CHANGELOG)
[x ] Reviewers requested with the Reviewers tool :arrow_right:

Testing checklist (automated report can be put here)

Target Environment support

[x ] Linux

So, I believe this needs to be revised in several areas. Foremost:
The commit that the submodule is pinned to is one prior to the merging of the related submodule PR...so when checking out this branch of ngen, the extern/evapotranspiration/evapotranspiration directory has no CMakeLists.txt file. It should point to 8464f56 or later.
Also...
I don't believe we need the additional directory level after the submodule PR... there is nothing there except the README.md now. Believe we should remove it... though that will require documentation updates on the submodule side. It may make sense to add a README.md to the extern directory directly to address the updating of submodule versions/commits generally for submodules directly at this level (t-route and UDUNITS-2 are already at this level, so directions should be written to apply equally to them). This documentation can be done later as it's missing for those other modules already, but we should add an issue for it.

Thanks, Matt.
Will implement the suggestions.
On Fri, Feb 25, 2022 at 1:01 PM Matt Williamson @.***>
wrote:

So, I believe this needs to be revised in several areas. Foremost:
The commit that the submodule is pinned to is one prior to the merging of
the related submodule PR...so when checking out this branch of ngen, the
extern/evapotranspiration/evapotranspiration directory has no
CMakeLists.txt file. It should point to 8464f56
https://github.com/NOAA-OWP/evapotranspiration/commit/8464f566a8015c0ce03d372d8f80f4c0b85dda95
or later.
Also...
I don't believe we need the additional directory level after the submodule
PR... there is nothing there except the README.md now. Believe we should
remove it... though that will require documentation updates on the
submodule side. It may make sense to add a README.md to the extern
directory directly to address the updating of submodule versions/commits
generally for submodules directly at this level (t-route and UDUNITS-2 are
already at this level, so directions should be written to apply equally to
them). This documentation can be done later as it's missing for those other
modules already, but we should add an issue for it.
—
Reply to this email directly, view it on GitHub
https://github.com/NOAA-OWP/ngen/pull/383#issuecomment-1051114507, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ACA4SRM2UGZL2ZIWI7EADV3U47GWZANCNFSM5OESIKSQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you authored the thread.Message ID:
@.***>

For the moment, the structure extern/evapotranspiration/evapotranspiration directory structure kept unchanged. One consideration is that the formulation team is currently using this directory structure in their realization config file for PET lib in their code testing. Perhaps this can be adjusted later as you suggested.

One consideration is that the formulation team is currently using this directory structure in their realization config file for PET lib in their code testing

WRT library locations, we can always use cmake -DCMAKE_INSTALL_PREFIX=/custom/ngen/lib/path when configuring the submodule builds and then simply make install and the library, regardless of source tree/submodule structure, will be available in /custom/ngen/lib/path

This looks good other than one mildly pedantic question... what is the name of this module? Are we calling it "PET", or "evapotranspiration"? Both? Docs say PET and pet (lowercase)... do we care? @madMatchstick @SnowHydrology ?

This looks good other than one mildly pedantic question... what is the name of this module? Are we calling it "PET", or "evapotranspiration"? Both? Docs say PET and pet (lowercase)... do we care?

The repo is evapotranspiration but technically the code produces PET, or potential evapotranspiration. I.e., calling it PET is good.

hmm... I thought I cleared the merge conflicts but apparently not. Inferring this must be conflicting because of the submodule commits in #343.

@mattw-nws, this PR points to the wrong version of PET. Please update to https://github.com/NOAA-OWP/evapotranspiration/tree/1e971ffe784ade3c7ab322ccce6f49f48e942e3d


Integrate Google Maps API

Basic Flutter application setup that allows you to navigate across pages using the bottom bar - a big portion of changed files relate to this oops
Google Maps API integration in home screen with support for markers and drawing polygons, related files:

lib/views/home.dart
lib/main.dart
lib/services/location_service.dart
pubspec.yaml
See apa/src/apa_app/README.md for info on how to set up private key environment (for Google Maps e.g.)

The search bar can be used to quickly navigate to some city.

User can draw random polygons.

Emulated on tablet:

Note that the color scheme/logo/title of the app are to be modified still :) Also, the drawing of polygons is very basic right now, but we may perform validations on user taps still.

Nicely done Nadine!


Added support of LLDP and LACP protocols

Signed-off-by: Tkachuk<EMAIL_ADDRESS>

This change is

Please review @rbbratta @seungweonpark @lijenni @esmacgil

Reviewed 4 of 4 files at r1.
Review status: all files reviewed at latest revision, 11 unresolved discussions.

taf/testlib/packet_processor.py, line 274 at r1 (raw file):

            with suppress(KeyError):
                tlvlist_def = layer["LLDP"]["tlvlist"]
                first = operator.itemgetter(0)

This seems to be needed in multiple places and it is within a for loop, I'd prefer defining it before the for loop.

taf/testlib/packet_processor.py, line 275 at r1 (raw file):

                tlvlist_def = layer["LLDP"]["tlvlist"]
                first = operator.itemgetter(0)
                tlvlist = []

Why not assign the list to packet.lldp.tlvlist here and avoid having to do the assignment after the for loop?
packet.lldp.tlvlist = tlvlist = []

So the new list gets assigned to the long-term name (packet.lldp.tlvlist) and a local name (tlvlist) at the same time.

taf/testlib/packet_processor.py, line 293 at r1 (raw file):

                tlvlist_def = layer["LACP"]["tlvlist"]
                first = operator.itemgetter(0)
                tlvlist = []

See comment for line 275.

taf/testlib/packet_processor.py, line 414 at r1 (raw file):

            elif layer.startswith("LACP"):
                pypacker_layer = self._get_pypacker_layer("LACP")
            for tlv in getattr(packet[pypacker_layer], "tlvlist", [])[:]:

Why do we need to make a shallow copy of the list?

taf/testlib/packet_processor.py, line 478 at r1 (raw file):

                    layer_dict[class_name][field] = opts
                elif field == "tlvlist" and class_name in ["LLDP", "LACP"]:
                    for tlv in self.get_packet_field(packet, class_name, field)[:]:

It seems shallow copies are commonplace.

unittests/traffic_generator/test_tg.py, line 75 at r1 (raw file):

                    "Field '{packet.field}' with value {packet.value} from " \
                    "layer '{packet.layer}' is not found in received packet".format(packet=init_param)
            else:

Can we use a continue statement in the truth clause instead of this else and its clause?

unittests/traffic_generator/test_tg.py, line 1140 at r1 (raw file):

        # Verify that LLDP Chassis macs are different
        mac_set = set([tg.get_packet_field(packet, "Ethernet", "src") for packet in packets])
        lldp_set = set([tg.get_packet_field(packet, "LLDPChassisId", "value") for packet in packets])

The set constructor will take an iterable, no need for the list between the iteration and constructor here.
lldp_set = set(tg.get_packet_field(...) for packet in packets)

unittests/traffic_generator/test_tg.py, line 1162 at r1 (raw file):

        # Verify that LLDP Chassis macs are different
        mac_set = set([tg.get_packet_field(packet, "Ethernet", "src") for packet in packets])
        lldp_set = set([tg.get_packet_field(packet, "LLDPChassisId", "value") for packet in packets])

See comment to line 1140.

unittests/traffic_generator/test_tg.py, line 1185 at r1 (raw file):

        # Verify that LLDP Chassis macs are different
        mac_set = set([tg.get_packet_field(packet, "Ethernet", "src") for packet in packets])

See comment to line 1140 for this line and the next.

unittests/traffic_generator/test_tg.py, line 1209 at r1 (raw file):

        # Verify that LLDP Chassis macs are different
        mac_set = set([tg.get_packet_field(packet, "Ethernet", "src") for packet in packets])

Line 1140 again, twice.

unittests/traffic_generator/test_tg.py, line 3614 at r1 (raw file):

        lldp_pack[1]["LLDP"]["tlvlist"].insert(-1, lldp_managment_with_oid)
        lldp_pack[1]["LLDP"]["tlvlist"].insert(-1, lldp_org_spec_tlv_1)
        lldp_pack[1]["LLDP"]["tlvlist"].insert(-1, lldp_org_spec_tlv_2)

Perhaps make these three lines:
lldp_pack[1]['LLDP'['tlvlist'][-1:-1] = [lldp_management_with_oid, lldp_org_spec_tlv_1, lldp_org_spec_tlv_2]

Comments from Reviewable

Review status: 2 of 4 files reviewed at latest revision, 11 unresolved discussions.

taf/testlib/packet_processor.py, line 274 at r1 (raw file):
Previously, esmacgil (Edward MacGillivray) wrote…
This seems to be needed in multiple places and it is within a for loop, I'd prefer defining it before the for loop.

Done.

taf/testlib/packet_processor.py, line 275 at r1 (raw file):
Previously, esmacgil (Edward MacGillivray) wrote…
Why not assign the list to packet.lldp.tlvlist here and avoid having to do the assignment after the for loop?
packet.lldp.tlvlist = tlvlist = []

So the new list gets assigned to the long-term name (packet.lldp.tlvlist) and a local name (tlvlist) at the same time.

It doesn't work
292                     first = operator.itemgetter(0)
293                     packet.lacp.tlvlist = tlvlist = []
294                     for tlv_dict in tlvlist_def:
295                         tlv_type = next(iter(tlv_dict))
296                         tlvlist.append(_pypacker_layer({tlv_type: OrderedDict(sorted(tlv_dict[tlv_type].items(), key=first))}))
297  ->                 import pdb;pdb.set_trace()
298
299             # Adjust packet size with padding.
300             if adjust_size:
301                 packet_length = len(packet)
302                 if packet_length < required_size:
(Pdb) packet.lacp.tlvlist
[]
(Pdb) tlvlist
[LACPActorInfoTlv(type=1, len=14, sysprio=8000, sys=b'\x00\x00 \x00\x10\x02', key=0, portprio=8000, port=2, state=AB,      reserved=b'\x00\x00\x00', bytes=b''), LACPPartnerInfoTlv(type=2, len=14, sysprio=8000, sys=b'\x00\x00 \x00\x10\x02', key=0, portprio=8000, port=1, state=AD, reserved=b'\x00\x00\x00', bytes=b''), LACPCollectorInfoTlv(type=3, len=10, maxdelay=A, reserved=b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', bytes=b''), LACPTerminatorTlv(type=0, len=0, bytes=b''), LACPReserved(reserved=b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', bytes=b'')]

taf/testlib/packet_processor.py, line 293 at r1 (raw file):

See comment for line 275.

I removed tlvlist

taf/testlib/packet_processor.py, line 414 at r1 (raw file):
Previously, esmacgil (Edward MacGillivray) wrote…
Why do we need to make a shallow copy of the list?

I didn't investigate, but it doesn't work without copying. See logs below
> /root/taf/taf/testlib/packet_processor.py(415)search_pypacker_layer_in_packet()

-> for tlv in getattr(packet[pypacker_layer], "tlvlist", [])[:]:
(Pdb) for tlv in getattr(packet[pypacker_layer], "tlvlist", []): tlv
(Pdb) for tlv in getattr(packet[pypacker_layer], "tlvlist", [])[:]: tlv
LLDPChassisId(type_len=207, subtype=4, value=b'\x00\x00 \x00\x10\x02', bytes=b'')
LLDPPortId(type_len=404, subtype=1, value=b'ge0', bytes=b'')
LLDPTTL(type_len=602, seconds=28, bytes=b'')
LLDPPortDescription(type_len=800, value=b'', bytes=b'')
LLDPSystemName(type_len=A0A, value=b'<sys-name>', bytes=b'')
LLDPSystemDescription(type_len=C0A, value=b'<sys-desc>', bytes=b'')
LLDPSystemCapabilities(type_len=E04, capabilities=4, enabled=4, bytes=b'')
LLDPManagementAddress(type_len=100C, addrlen=5, addrsubtype=1, addrval=b'\x14\x00\n\x02', ifsubtype=2, ifnumber=3E9, oidlen=0,   oid=b'', bytes=b'')
LLDPDUEnd(tlv_type=0, tlv_len=0, bytes=b'')

taf/testlib/packet_processor.py, line 478 at r1 (raw file):
Previously, esmacgil (Edward MacGillivray) wrote…
It seems shallow copies are commonplace.

See comment for line 414

unittests/traffic_generator/test_tg.py, line 75 at r1 (raw file):
Previously, esmacgil (Edward MacGillivray) wrote…
Can we use a continue statement in the truth clause instead of this else and its clause?

I don't get

unittests/traffic_generator/test_tg.py, line 1140 at r1 (raw file):
Previously, esmacgil (Edward MacGillivray) wrote…
The set constructor will take an iterable, no need for the list between the iteration and constructor here.
lldp_set = set(tg.get_packet_field(...) for packet in packets)

Done.

unittests/traffic_generator/test_tg.py, line 1162 at r1 (raw file):
Previously, esmacgil (Edward MacGillivray) wrote…
See comment to line 1140.

Done.

unittests/traffic_generator/test_tg.py, line 1185 at r1 (raw file):
Previously, esmacgil (Edward MacGillivray) wrote…
See comment to line 1140 for this line and the next.

Done.

unittests/traffic_generator/test_tg.py, line 1209 at r1 (raw file):
Previously, esmacgil (Edward MacGillivray) wrote…
Line 1140 again, twice.

Done.

unittests/traffic_generator/test_tg.py, line 3614 at r1 (raw file):
Previously, esmacgil (Edward MacGillivray) wrote…
Perhaps make these three lines:
lldp_pack[1]['LLDP'['tlvlist'][-1:-1] = [lldp_management_with_oid, lldp_org_spec_tlv_1, lldp_org_spec_tlv_2]

Done.

Comments from Reviewable

Reviewed 2 of 2 files at r2.
Review status: all files reviewed at latest revision, 3 unresolved discussions, some commit checks failed.

taf/testlib/packet_processor.py, line 275 at r1 (raw file):
Strange, every way that I test it, it works as I expect.
>>> class MyO(object):
...   pass
...
>>> myo1 = MyO()
>>> myo1.x = MyO()
>>> myo1.x.y = y = []
>>> myo1.x.y is y
True
>>> y.append(MyO())
>>> y
[<__main__.MyO object at 0x0000000002D871D0>]
>>> myo1.x.y
[<__main__.MyO object at 0x0000000002D871D0>]

I don't see an assignment to packet.lldp since creating packet, what type is packet.lldp?  Is this the same type that packet.lacp is?
Would packet.lldp have a __setattr__ that does a copy of data before assigning it?

taf/testlib/packet_processor.py, line 414 at r1 (raw file):
Previously, NazarTkachuk (Nazar Tkachuk) wrote…
I didn't investigate, but it doesn't work without copying. See logs below
> /root/taf/taf/testlib/packet_processor.py(415)search_pypacker_layer_in_packet()

-> for tlv in getattr(packet[pypacker_layer], "tlvlist", [])[:]:
(Pdb) for tlv in getattr(packet[pypacker_layer], "tlvlist", []): tlv
(Pdb) for tlv in getattr(packet[pypacker_layer], "tlvlist", [])[:]: tlv
LLDPChassisId(type_len=207, subtype=4, value=b'\x00\x00 \x00\x10\x02', bytes=b'')
LLDPPortId(type_len=404, subtype=1, value=b'ge0', bytes=b'')
LLDPTTL(type_len=602, seconds=28, bytes=b'')
LLDPPortDescription(type_len=800, value=b'', bytes=b'')
LLDPSystemName(type_len=A0A, value=b'<sys-name>', bytes=b'')
LLDPSystemDescription(type_len=C0A, value=b'<sys-desc>', bytes=b'')
LLDPSystemCapabilities(type_len=E04, capabilities=4, enabled=4, bytes=b'')
LLDPManagementAddress(type_len=100C, addrlen=5, addrsubtype=1, addrval=b'\x14\x00\n\x02', ifsubtype=2, ifnumber=3E9, oidlen=0,   oid=b'', bytes=b'')
LLDPDUEnd(tlv_type=0, tlv_len=0, bytes=b'')

Crazy.

unittests/traffic_generator/test_tg.py, line 75 at r1 (raw file):
Previously, NazarTkachuk (Nazar Tkachuk) wrote…
I don't get

for init_param in initial_packet_params:
    if not isinstance(...):
        assert ...
        continue
    for received_param in received_packet_params:
        ...

The remainder of the function could be further de-indented, but only minimally and it would be somewhat forced.
See also:

http://thedailywtf.com/articles/Coding-Like-the-Tour-de-France
http://wiki.c2.com/?ArrowAntiPattern

Comments from Reviewable

Review status: 2 of 4 files reviewed at latest revision, 2 unresolved discussions, some commit checks failed.

taf/testlib/packet_processor.py, line 275 at r1 (raw file):
Previously, esmacgil (Edward MacGillivray) wrote…
Strange, every way that I test it, it works as I expect.
>>> class MyO(object):
...   pass
...
>>> myo1 = MyO()
>>> myo1.x = MyO()
>>> myo1.x.y = y = []
>>> myo1.x.y is y
True
>>> y.append(MyO())
>>> y
[<__main__.MyO object at 0x0000000002D871D0>]
>>> myo1.x.y
[<__main__.MyO object at 0x0000000002D871D0>]

I don't see an assignment to packet.lldp since creating packet, what type is packet.lldp?  Is this the same type that packet.lacp is?
Would packet.lldp have a __setattr__ that does a copy of data before assigning it?

packet.lldp is the same  type as packet.lacp, all these objects are inherited from pypacker.Packet https://github.com/mike01/pypacker/blob/master/pypacker/pypacker.py
packet.lldp.tlvlist and packet.lacp.tlvlist are Triggerlist type
https://github.com/mike01/pypacker/blob/master/pypacker/triggerlist.py

taf/testlib/packet_processor.py, line 414 at r1 (raw file):
Previously, esmacgil (Edward MacGillivray) wrote…
Crazy.

I was confused as well.

unittests/traffic_generator/test_tg.py, line 75 at r1 (raw file):
Previously, esmacgil (Edward MacGillivray) wrote…
for init_param in initial_packet_params:
    if not isinstance(...):
        assert ...
        continue
    for received_param in received_packet_params:
        ...

The remainder of the function could be further de-indented, but only minimally and it would be somewhat forced.
See also:

http://thedailywtf.com/articles/Coding-Like-the-Tour-de-France
http://wiki.c2.com/?ArrowAntiPattern

Thanks. Updated

Comments from Reviewable

Reviewed 2 of 2 files at r3.
Review status: all files reviewed at latest revision, 1 unresolved discussion, some commit checks failed.

taf/testlib/packet_processor.py, line 414 at r1 (raw file):
Previously, NazarTkachuk (Nazar Tkachuk) wrote…
I was confused as well.

I should've said this before, but apparently it was that crazy: We should put a comment about how the copy is required, so that we know that it fails without the copy.

Comments from Reviewable

Review status: 2 of 4 files reviewed at latest revision, 1 unresolved discussion, some commit checks failed.

taf/testlib/packet_processor.py, line 414 at r1 (raw file):
Previously, esmacgil (Edward MacGillivray) wrote…
I should've said this before, but apparently it was that crazy: We should put a comment about how the copy is required, so that we know that it fails without the copy.

Done.

Comments from Reviewable

Reviewed 2 of 2 files at r4.
Review status: all files reviewed at latest revision, all discussions resolved, some commit checks failed.

Comments from Reviewable


🐛  Camera is not mounting, onInitialized callback is not being called

What's happening?
I'm trying to use the react-native-vision-camera library in my application, but the camera is not mounting because the onInitialized callback is not being called. I'm not exactly sure why this is happening as I've followed the documentation closely.
Dev Deps

Expo workflow: bare
"expo": "~49.0.15",
"react-native": "0.72.6",
"react-native-vision-camera": "^3.6.4",
"react-native-reanimated": "~3.3.0",
"react-native-worklets-core": "^0.2.4",

Reproduceable Code
import { Camera, useCameraDevices, useCameraPermission } from 'react-native-vision-camera';
import { View, StyleSheet, TouchableOpacity, Text, Image, } from 'react-native';
import React, { useEffect, useState, useRef } from 'react';

function App() {

    const { hasPermission, requestPermission } = useCameraPermission();

    const camera = useRef(null);
    const devices = useCameraDevices('back');

    const [isCameraReady, setIsCameraReady] = useState(false);
    const [showCamera, setShowCamera] = useState(false);
    const [permissionAuth, setPermissionsAuth] = useState('')
    const [imageSource, setImageSource] = useState('');

    useEffect(() => {
        requestPermission();
        const checkPermission = async () => {
            const status = await Camera.getCameraPermissionStatus();
            setPermissionsAuth(status)
            if (status !== 'granted') {
                return null
            } else if (status === 'granted') {
                setShowCamera(true)
            }
        };

        checkPermission();
    }, []);

    // Checking if the permission are true
    // To redirect to settings if camera is false but the status is granted
    console.log(hasPermission, permissionAuth);

    const capturePhoto = async () => {
        console.log(isCameraReady)
        if (camera.current !== null && isCameraReady) {
            const photo = await camera.current.takePhoto({});
            setImageSource(photo.path);
            setShowCamera(false);
            console.log(photo.path);
        }
    };

    if (devices == null) {
        return <Text style={{ color: 'white', }}>Camera not available</Text>;
    };

    return (
        <View style={styles.container}>
            {showCamera ? (
                <>
                <Camera
                    ref={camera}
                    style={[StyleSheet.absoluteFill, {backgroundColor: 'black',}]}
                    device={devices}
                    isActive={showCamera}
                    resizeMode='cover'
                    onInitialized={() => setIsCameraReady(true)}
                    photo
                />

                    <View style={styles.buttonContainer}>
                        <TouchableOpacity
                            style={styles.camButton}
                            onPress={() => capturePhoto()}
                        />
                    </View>
                </>
            ) : (
                <>
                    {imageSource !== '' ? (
                        <Image
                            style={styles.image}
                            source={{
                                uri: `file://'${imageSource}`,
                            }}
                        />
                    ) : null}

                    <View style={styles.backButton}>
                        <TouchableOpacity
                            style={{
                                backgroundColor: 'rgba(0,0,0,0.2)',
                                padding: 10,
                                justifyContent: 'center',
                                alignItems: 'center',
                                borderRadius: 10,
                                borderWidth: 2,
                                borderColor: '#fff',
                                width: 100,
                            }}
                            onPress={() => setShowCamera(true)}>
                            <Text style={{ color: 'white', fontWeight: '500' }}>Back</Text>
                        </TouchableOpacity>
                    </View>
                    <View style={styles.buttonContainer}>
                        <View style={styles.buttons}>
                            <TouchableOpacity
                                style={{
                                    backgroundColor: '#fff',
                                    padding: 10,
                                    justifyContent: 'center',
                                    alignItems: 'center',
                                    borderRadius: 10,
                                    borderWidth: 2,
                                    borderColor: '#77c3ec',
                                }}
                                onPress={() => setShowCamera(true)}>
                                <Text style={{ color: '#77c3ec', fontWeight: '500' }}>
                                    Retake
                                </Text>
                            </TouchableOpacity>
                            <TouchableOpacity
                                style={{
                                    backgroundColor: '#77c3ec',
                                    padding: 10,
                                    justifyContent: 'center',
                                    alignItems: 'center',
                                    borderRadius: 10,
                                    borderWidth: 2,
                                    borderColor: 'white',
                                }}
                                onPress={() => setShowCamera(true)}>
                                <Text style={{ color: 'white', fontWeight: '500' }}>
                                    Use Photo
                                </Text>
                            </TouchableOpacity>
                        </View>
                    </View>
                </>
            )}
        </View>
    );
}

const styles = StyleSheet.create({
    container: {
        flex: 1,
        justifyContent: 'center',
        alignItems: 'center',
        backgroundColor: 'white',
    },
    button: {
        backgroundColor: 'gray',
    },
    backButton: {
        backgroundColor: 'rgba(0,0,0,0.0)',
        position: 'absolute',
        justifyContent: 'center',
        width: '100%',
        top: 0,
        padding: 20,
    },
    buttonContainer: {
        backgroundColor: 'rgba(0,0,0,0.2)',
        position: 'absolute',
        justifyContent: 'center',
        alignItems: 'center',
        width: '100%',
        bottom: 0,
        padding: 20,
    },
    buttons: {
        flexDirection: 'row',
        justifyContent: 'space-between',
        width: '100%',
    },
    camButton: {
        height: 80,
        width: 80,
        borderRadius: 40,
        //ADD backgroundColor COLOR GREY
        backgroundColor: '#B2BEB5',

        alignSelf: 'center',
        borderWidth: 4,
        borderColor: 'white',
    },
    image: {
        width: '100%',
        height: '100%',
        aspectRatio: 9 / 16,
    },
});

export default App;

Relevant log output
Possible Unhandled Promise Rejection (id: 0):
session/camera-not-ready: The Camera is not ready yet! Wait for the onInitialized() callback!
[session/camera-not-ready]: The Camera is not ready yet! Wait for the onInitialized() callback!
    at construct (native)
    at apply (native)
    at _construct (http://192.xxx:8081/index.bundle//&platform=ios&dev=true&hot=false&lazy=true:4485:28)
    at Wrapper (http://192.xxx:8081/index.bundle//&platform=ios&dev=true&hot=false&lazy=true:4443:25)
    at construct (native)
    at _createSuperInternal (http://192.xxx:8081/index.bundle//&platform=ios&dev=true&hot=false&lazy=true:161392:322)
    at call (native)
    at CameraError (http://192.xxx:8081/index.bundle//&platform=ios&dev=true&hot=false&lazy=true:161409:26)
    at construct (native)
    at _createSuperInternal (http://192.xxx:8081/index.bundle//&platform=ios&dev=true&hot=false&lazy=true:161392:322)
    at apply (native)
    at CameraRuntimeError (http://192.xxx:8081/index.bundle//&platform=ios&dev=true&hot=false&lazy=true:161466:27)
    at tryParseNativeCameraError (http://192.xxx:8081/index.bundle//&platform=ios&dev=true&hot=false&lazy=true:161505:38)
    at ?anon_0_ (http://192.xxx:8081/index.bundle//&platform=ios&dev=true&hot=false&lazy=true:160947:62)
    at throw (native)
    at asyncGeneratorStep (http://192.xxx:8081/index.bundle//&platform=ios&dev=true&hot=false&lazy=true:6087:26)
    at _throw (http://192.xxx:8081/index.bundle//&platform=ios&dev=true&hot=false&lazy=true:6109:29)
    at tryCallOne (/Users/distiller/react-native/packages/react-native/sdks/hermes/build_iphoneos/lib/InternalBytecode/InternalBytecode.js:53:16)
    at anonymous (/Users/distiller/react-native/packages/react-native/sdks/hermes/build_iphoneos/lib/InternalBytecode/InternalBytecode.js:139:27)
    at apply (native)
    at anonymous (http://192.xxx:8081/index.bundle//&platform=ios&dev=true&hot=false&lazy=true:39710:26)
    at _callTimer (http://192.xxx:8081/index.bundle//&platform=ios&dev=true&hot=false&lazy=true:39589:17)
    at _callReactNativeMicrotasksPass (http://192.xxx:8081/index.bundle//&platform=ios&dev=true&hot=false&lazy=true:39634:17)
    at callReactNativeMicrotasks (http://192.xxx:8081/index.bundle//&platform=ios&dev=true&hot=false&lazy=true:39840:44)
    at __callReactNativeMicrotasks (http://192.xxx:8081/index.bundle//&platform=ios&dev=true&hot=false&lazy=true:3643:46)
    at anonymous (http://192.xxx:8081/index.bundle//&platform=ios&dev=true&hot=false&lazy=true:3417:45)
    at __guard (http://192.xxx:8081/index.bundle//&platform=ios&dev=true&hot=false&lazy=true:3616:15)
    at flushedQueue (http://192.xxx:8081/index.bundle//&platform=ios&dev=true&hot=false&lazy=true:3416:21)
    at invokeCallbackAndReturnFlushedQueue (http://192.xxx:8081/index.bundle//&platform=ios&dev=true&hot=false&lazy=true:3410:33)

Camera Device
{
  "supportsLowLightBoost": false
  "format": [{...}],
  "hardwareLevel": "full",
  "supportsFocus": true,
  "supportsRawCapture": false,
  "neutralZoom": 1,
  "physicalDevices": [
    "wide-angle-camera",
    "telephoto-camera"
  ],
  "position": "back",
  "maxZoom": 123.75,
  "id": "com.apple.avfoundation.avcapturedevice.built-in_video:3",
  "isMultiCam": true,
  "hasTorch": true,
  "hasFlash": true,
  "name": "Back Dual Camera",
  "minZoom": 1,
  "sensorOrientation": "landscape-right"
}

Device

iPhone 14 pro (17.0.0)
iPhone 15 pro (17.0.0)
Galaxy s22 (Android 13)
Galaxy a72 (Android 13)

VisionCamera Version
3.6.4
Can you reproduce this issue in the VisionCamera Example app?
Yes, I can reproduce the same issue in the Example app here
Additional information

[X] I am using Expo
[x] I have enabled Frame Processors (react-native-worklets-core)
[X] I have read the Troubleshooting Guide
[X] I agree to follow this project's Code of Conduct
[X] I searched for similar issues in this repository and found none.

I've experienced a similar thing. Did you turn off/on your app and see the camera work well again? In my case, just turning off/on the app didn't work. I had to turn off/on my phone.

I've experienced a similar thing. Did you turn off/on your app and see the camera work well again? In my case, just turning off/on the app didn't work. I had to turn off/on my phone.

Yeah I tried that as well, but unfortunately both attempts did not work.

I found others with similar  https://github.com/mrousavy/react-native-vision-camera/discussions/1363

#1363

Huh? You're saying you use VisionCamera 3.6.x but you use the useCameraDevices hook? In V3 you need useCameraDevice.

Huh? You're saying you use VisionCamera 3.6.x but you use the useCameraDevices hook? In V3 you need useCameraDevice.

I corrected the typo bu the CameraView is still not mounted.

I have the same issue. Any idea how to solve it?

Can you please share a video recording of what's happening? I cannot reproduce this on an iPhone 15 Pro (17.0.0) with the versions you sent.

Can you please share a video recording of what's happening? I cannot reproduce this on an iPhone 15 Pro (17.0.0) with the versions you sent.

Unfortunate not since, the 15 pro I'm using is on emulator but the behavior is the same as 14 pro on my end.

Then please do the screen recording on an iPhone 14.

Ah no sorry - I meant of the Example app. You said you could reproduce it here in the Example app

tenho o mesmo problema aqui, com IOS 17. no meu caso é no iphone 14. A câmera não está inicializando.

@Relie28 when he says "example app", he's talking specifically about the example app provided in this repository with the camera lib, in package/example`

Hey! Thanks for reporting this issue.
I've been working the past days on making sure the Camera lifecycle is safely handled and released when needed to make sure this crash doesn't occur anymore.
I just created a PR for this - can you please this to see if that fixes the issue for you? https://github.com/mrousavy/react-native-vision-camera/pull/2339
If this fixes your issue, please consider 💖 sponsoring me on GitHub 💖 to support me / thank me for building VisionCamera and continuously improving it.
If this does not fix your issue, please clone the repo, check out the branch fix/blackscreen (the PR above), run the Example app, reproduce your issue there and share the adb logcat logs with me (upload to pastebin or gist) so I can investigate this further.
Thank you! 🙏


docs(dropdown): rename examples

fixes https://github.com/patternfly/patternfly-next/issues/1049

Deploy preview for pf-next ready!
Built with commit b6603a497e438913aa1235c8b4f70b198fe4c5bd
https://deploy-preview-1731--pf-next.netlify.com

:tada: This PR is included in version 2.6.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket: