Crash on retrieve whitelist from plist

[REQUIRED] Step 1: Describe your environment

Xcode version: 11.3.1
Firebase SDK version: 6.20.0
Firebase Component: Performance
Component version: 3.1.10
Installation method: CocoaPods

[REQUIRED] Step 2: Describe the problem
User had a crash on his iphone 5 just as the app started
Steps to reproduce:
com.twitter.crashlytics.ios.work-queue :: NSOperation 0x178241e0 (QOS: DEFAULT)
0  CoreFoundation                 0x1cb99b80 CFHash + 1
1  CoreFoundation                 0x1cb964e8 CFBasicHashFindBucket + 216
2  CoreFoundation                 0x1cb963b5 CFDictionaryGetValue + 100
3  CoreFoundation                 0x1cc28db1 _copyQueryTable + 158
4  CoreFoundation                 0x1cc28635 _copyResourceURLsFromBundle + 256
5  CoreFoundation                 0x1cbd2f71 _CFBundleCopyFindResources + 884
6  CoreFoundation                 0x1cbd2bf1 CFBundleCopyResourceURL + 32
7  CoreFoundation                 0x1cbda60b CFBundleGetLocalInfoDictionary + 80
8  Foundation                     0x1d53b429 <redacted> + 26
9  Foundation                     0x1d53b3d7 <redacted> + 24
10 OurApp                  0x48437f __42-[FPRURLFilter retrieveWhitelistFromPlist]_block_invoke + 5133183
11 libdispatch.dylib              0x1c35d783 _dispatch_client_callout + 22
12 libdispatch.dylib              0x1c35e253 dispatch_once_f + 42
13 OurApp                  0x4842cb -[FPRURLFilter retrieveWhitelistFromPlist] + 5133003
14 OurApp                   0x4840c9 -[FPRURLFilter isURLWhitelisted:] + 5132489
15 OurApp                   0x483f7b -[FPRURLFilter shouldInstrumentURL:] + 5132155
16 OurApp                   0x487833 -[FPRNetworkTrace initWithURLRequest:] + 5146675
17 OurApp                   0x48edb3 __InstrumentUploadTaskWithRequestFromFile_block_invoke + 5176755
18 OurApp                   0x48ed37 __InstrumentUploadTaskWithRequestFromFile_block_invoke + 5176631
19 OurApp                   0x40d41d -[CLSNetworkClient startNewUploadRequest:filePath:] + 204 (CLSNetworkClient.m:204)
20 OurApp                   0x40d961 __77-[CLSNetworkClient checkSession:forTasksMatchingDescription:completionBlock:]_block_invoke + 264 (CLSNetworkClient.m:264)
21 CFNetwork                      0x1d3359d9 __46-[NSURLSession getTasksWithCompletionHandler:]_block_invoke_2 + 194
22 CFNetwork                      0x1d28662f __67-[__NSURLBackgroundSession _onqueue_getTasksWithCompletionHandler:]_block_invoke + 14
23 Foundation                     0x1d5b5b01 <redacted> + 8
24 Foundation                     0x1d50baef <redacted> + 146
25 Foundation                     0x1d4fdfe7 <redacted> + 770
26 Foundation                     0x1d5b7d39 <redacted> + 190
27 libdispatch.dylib              0x1c36a59d _dispatch_queue_serial_drain + 854
28 libdispatch.dylib              0x1c360b71 _dispatch_queue_invoke + 886
29 libdispatch.dylib              0x1c36c1b5 _dispatch_root_queue_drain + 326
30 libdispatch.dylib              0x1c36c00f _dispatch_worker_thread3 + 106
31 libsystem_pthread.dylib        0x1c51287d _pthread_wqthread + 1040
32 libsystem_pthread.dylib        0x1c51245c start_wqthread + 8

Hi @jserrafindster,
We tried reproducing the issue with the latest version of Fireperf SDK on iOS 9 and above and we are not able to reproduce this.
This issue states that it happens on device iPhone 5. We need some information to see if we can debug this further.

What versions of iOS are you seeing this issue?
Have you been able to reproduce this issue? If so, are you seeing this on Simulator or Device or both?
What is the volume of this crash you are seeing? If so, apart of app start time, do you see any other patterns of issue occurring on particular devices/particular iOS versions more often than other?

@yalunqin
1.
Device
Model: iPhone 5
Orientation: Unknown
RAM free: 94.54 MB
Disk free: 53.73 GB
Operating System
Version: 10.3.4 (14G61)
Orientation: Portrait
Jailbroken: No
Crash
Date: Mar 30, 2020, 10:41:00 AM
App version: 2.4.0

i have not been able to reproduce it either, im seeing it happen on device on our users
we had to pull the version out. for 1% of our users we had 1 crash

Also I suspect something might be happening on apple side after the archives are built and uploaded.

@jserrafindster This sounds like a 32 bit device specific issue. Would you confirm the Xcode version? The report says 11.3.1 - but there is a known Xcode 11.4 issue. See https://forums.swift.org/t/crashes-on-32-bit-after-xcode-11-4/35035

yes we are not using 11.4 we are using 11.3.1 but meanwhile we are having several issues and talking with apple. But it seems theres a new release 11.4.1 GM 2 days ago

@jserrafindster There is a report at https://forums.swift.org/t/crashes-on-32-bit-after-xcode-11-4/35035/10 that Xcode 11.4.1 does not fix the 32 bit optimization bug.

@jserrafindster Any updates you can share about Xcode versions or what you learned from Apple?

@jserrafindster Any updates you can share about Xcode versions or what you learned from Apple?

just that there is a new xcode version release that solve some issues, but i haven't had any time to test it and i wont be able to do it any time soon since im unable to replicate it and its happening to our users in production.
I guess this issue is stalled right now


Formatting for Non-Standard Durations

Hi, I have a case where I need to format a duration based on a custom definition i.e. 8 hours = 1 day & 5 days = 1 week. So that (for example); 25 hours would be 3 days and 1 hour (not 1 day and 1 hour). Is there any way to get your plugin to do this, or do you know of any other moment plugins that already do it?

Now that's a very interesting use case.
8h = 1d and 5d = 1w
Are there any other custom timeperiod definitions involved? What is your input like? Is your input always in one specific unit?
My plugin uses moment itself under the hood to calculate token values... it's possible you could simply modify those relationships on an instance of moment? It's been a while since I've looked at the relevant code.

This is to specify durations for business day activities (hence the 8hr days and 5 day weeks), but actually in the application the definition of business hours is user configurable so should be able to handle other values too. The input is always a duration in milliseconds (i.e. 1 day 2 hours = {numberOfHoursPerDay} hours * 120 minutes * 60 seconds * 1000 milliseconds).
I've had a look at the momentjs docs, but from what I understand, the assumptions for the definition of day and week length is hardcoded into duration methods. Perhaps there is some other way of passing a config into an instance of moment. Will keep searching. Thanks!!

@jsmreese I have the same issue and wonder if there any workarounds for it. The base absolutely valid assumption is that it is 24h in a day, however, for business hours it's not true.

@Mihailoff It's definitely a valid use case for Durations, unfortunately I haven't done any digging myself!
Would be a fun problem to work on though... life is busy these days but maybe I can give it some thought. What about building a standalone configurable Duration object so you could configure days/week and hours/day? That might be possible without too much modification of moment itself?
It's just days/week and hours/day that need to be configured, right?
All other conversions could remain the same (not that they're ideal... going from days->years and back again can be problematic, but that's a known moment issue!)

This is fundamentally a core Moment issue, but I'll go ahead and reopen this.
Maybe there's a way we can turn this feature into a patch or plugin.

Has anyone needed to format durations around the 4-5-4 retail calendar? Where months are exactly 4 weeks or 5 weeks long, and years are exactly 52 weeks or 53 weeks long?


UI fixes in book suggestion modal.

@pankaj-ag is this fixed? If yes, I think we should close this issue otherwise we can target this in upcoming milestones.

Closing this one as complete. Please reopen if you found any issues in this area.


Wrong selector for function sibling() in CSSSelectors.kt

It looks like there is bug in function sibling() in CSSSelectors.kt file. See screenshot

I think there should be
fun sibling(sibling: CSSSelector, selected: CSSSelector) = CSSSelector.Sibling(sibling, selected)

I forgot to mention, it is related to Jetpack Compose for Web.

fixed in 1.0.0

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


⚠ Bofrost.nl has degraded performance

In 89ff50b, Bofrost.nl (https://www.bofrost.nl) experienced degraded performance:

HTTP code: 200
Response time: 1104 ms

Resolved: Bofrost.nl performance has improved in 3f625ca.


created sci-kit-lego review

Wrote a detailed review of the sci-kit lego repository.
Thanks for the contribution! Please make sure your review is a new Markdown file in the new_reviews directory, eg: new_reviews/my_reviews.md.
Once you submit your pull request, the review will be validated and once all tests have passed we'll merge it into the repo.  GitHub Pages will then auto-magically generate the review at repo-reviews.github.io.
:heart: Repo-Reviews Contributors

Please enjoy my review of sci-kit lego


Improve Argument help message

This fixes #128 by displaying the usageParameter when it's available. On a Swiftlint branch where I'm testing this out for a new paths Argument, it resulted in a help message like this:
[<paths…>]
	list of paths to the files or directories to lint

Thank you for opening a PR to fix this!


Add optional pisaDocument argument to set metadata

Without this the functionality of pisaDocument would need to be recreated in order to set metadata such as the document author.
Usage is like so:
pisaDocument(src=io.StringIO(html), dest=open(output_file, "w"), context_meta={
            "author": "MyCorp Ltd.",
            "title": "My Document Title",
            "subject": "My Document Subject",
            "keywords": "pdf,documents",
        })

Is there a way to ensure that meta data is written through a test?
I'm thinking a TestCase in tests/, something like...
c=context
# ... generate pdf
from pyPdf2 import PdfFileReader
pdf_in = PdfFileReader(pdf_stream)
info = pdf_in.documentInfo
for key in info:
    self.assertEquals(info[key], c[key])

...?

I can have a look into this, it's something I'd hoped to do before opening the PR, but I couldn't see any existing tests to build upon, and had not come across the PdfFileReader class before. It would be somewhat reassuring to have some coverage of the document module (currently the only lines covered appear to be those run on import)
I'm not sure when I am likely to have a chance to do this, as this patch works for my use-case as-is, but figuring out how to test this would also help me improve coverage within the project that uses it too.

It's a very rough sketch, I don't actually know how well it'll work :) But there should be somewhat usable test cases!

@benjaoming there appears to be something wrong with your travis setup as it doesn't appear to be running in an environment with pyPdf - I've not used tox at all, but I would usually have -r requirements.txt on the pip install line in my .travis.yml.
There's a slight issue in that my branch is based on the 0.0.6 tag, before things were moved to .travis.yml, as these changes are all we require, and it seems sensible to pin our requirements to something as close as possible to a release version ;)

@alistair-broomhead yes, the example was very sketchy, sorry about that... xhtml2pdf uses pypdf2, but it should give you the same functionality, could you change the test to use this instead?

@benjaoming as far as I can see pypdf2 is imported as pypdf, but if you check the test code, I have tried to import one, and on import error, imported the other - neither is present - I think it's that nosetests may be running in the wrong environment, and it seems that changing nosetests -> {envpython} -m nose.core in tox.ini runs it in the correct environment, however I'm seeing some disturbing test failures in the pisaDocument class when I run like this rebased upon against master (test failures I do not see rebased upon 0.0.6)

That is indeed disturbing. I'm not familiar with how the test environment is set up, it looks sort of unconventional.
You are welcome to make changes in tox and to replace nose with py.test or whatever means you see to get it sorted out?

Anyway, the error I'm seeing locally is:
(env)al@al-XPS-13-9343:~/git/xhtml2pdf$ python -m nose.core
EE............................................
======================================================================
ERROR: tests.test_document.test_document_creation_without_metadata
----------------------------------------------------------------------
Traceback (most recent call last):
  File "env/local/lib/python2.7/site-packages/nose/case.py", line 187, in runTest
    self.test(*self.arg)
  File "/home/al/git/xhtml2pdf/tests/test_document.py", line 61, in test_document_creation_without_metadata
    dest=pdf_file
  File "/home/al/git/xhtml2pdf/xhtml2pdf/document.py", line 184, in pisaDocument
    context.dest.write(data)  # TODO: context.dest is a tempfile as well...
UnicodeEncodeError: 'ascii' codec can't encode characters in position 11-14: ordinal not in range(128)
-------------------- >> begin captured logging << --------------------
xhtml2pdf: DEBUG: pisaDocument options:
  src = <_io.StringIO object at 0x7f9ac846e3d0>
  dest = <closed file '<fdopen>', mode 'w+b' at 0x7f9ac8d13660>
  path = None
  link_callback = None
  xhtml = False
  context_meta = None
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: tests.test_document.test_document_creation_with_metadata
----------------------------------------------------------------------
Traceback (most recent call last):
  File "env/local/lib/python2.7/site-packages/nose/case.py", line 187, in runTest
    self.test(*self.arg)
  File "/home/al/git/xhtml2pdf/tests/test_document.py", line 71, in test_document_creation_with_metadata
    context_meta=METADATA
  File "/home/al/git/xhtml2pdf/xhtml2pdf/document.py", line 184, in pisaDocument
    context.dest.write(data)  # TODO: context.dest is a tempfile as well...
UnicodeEncodeError: 'ascii' codec can't encode characters in position 11-14: ordinal not in range(128)
-------------------- >> begin captured logging << --------------------
xhtml2pdf: DEBUG: pisaDocument options:
  src = <_io.StringIO object at 0x7f9ac83c7a50>
  dest = <closed file '<fdopen>', mode 'w+b' at 0x7f9ac8d13660>
  path = None
  link_callback = None
  xhtml = False
  context_meta = {u'keywords': u'pdf, documents', u'title': u'My Document Title', u'subject': u'My Document Subject', u'author': u'MyCorp Ltd.'}
--------------------- >> end captured logging << ---------------------

----------------------------------------------------------------------
Ran 46 tests in 0.179s

FAILED (errors=2)

When I run those same tests on this branch (not merging into master) I get this:
(env)al@al-XPS-13-9343:~/git/xhtml2pdf$ python -m nose.core
......................................
----------------------------------------------------------------------
Ran 38 tests in 0.199s

OK

If I can find tomorrow I'll try to bisect the issue by rebasing this branch on top of each successive commit on master.

As the nosetests change seems to be in tox.ini, and has no conflicts if I change it as of this branch, I'll chuck that change on this branch too - there's no point in having two PRs with the same set of commits branched from two different points, and this is probably the more interesting branch (seeing as it branches off before the issue that causes test failures)

So I'm seeing PdfReadWarning: Superfluous whitespace found in object header o 7 in the tests - I think at some point headers that don't conform to what PyPDF2 can read have been introduced - the pdf file itself opens and looks fine, but it's not 100% accurate - still looking into this more.

@alistair-broomhead thanks for the great work investigating test failures and possible in the nose environment. Would you be able to merge the current 'develop' branch?
Would love the see this PR merged in before making a pre-release for a 0.1, and I simply don't have the resources to pick up your investigation into this. But it seems like you came quite close?

Also, try replacing io.BytesIO with six.BytesIO

@benjaoming it looks like you've resolved this already - let me know if there's anything you need me to do?

Oh yes! True that :)


Trying to fix the About page to utilize my content instead of the default

For whatever reason the about page content doesn't change. I took the _site folder off of my git ignore, but its still not updating the Git hub page.

Did you get this working @andrewsunglaekim?
Editing the about page markdown file is all you need to do to change the content. _site on git ignore doesn't have anything to do with it. Sounds like there was some other reason (maybe from a different commit) that was causing your build to fail.


Test Harness

We need to flesh out a test harness for the following

Integration tests
Unit tests

I have a credit card, and am happy to share if anyone wants to take this and set up testing accounts anywhere.

Will need make targets
Will need an example test or two that demonstrate how the harness works
Will need to add documentation on how to use the harness

Hi,
Sorry that I didn't notice this one before. I think using travis CI might be the best place for us to do integration tests and unit tests. The following questions are identifying short term goals and long term jobs.
On unit tests, my $0.02 is to build a simple unit test framework as soon as possible (in one sprint) and require any other coming new PR writing the tests. Unit tests for existing features will be long term jobs. The CI tests will mostly around running some building from src tests as well as some real use case (say that deploy a very small scale cluster and apply some kubicorn commands there)
Thoughts?

I would call deploying a cluster an integration test..
But I completely agree.. we just need to set up the testing infra.. that is more on my plate than anything else as i need to set up a kubicorn account in the clouds so we can keep $$ accounted for correctly..
Do you have testing experience/passion/ideas? Would you like to start working on a suite knowing that it will one day be automated on each PR?

Hi,
I do agree that deploying a cluster is the best way to test as it is the practice. But it is just too expensive. What I had in mind are: 1) dev should handle that the code is fully tested (as if someone is working on the aws part, make sure it is deployed and tested) 2) we have CI test that will check every PR and make sure it itself is not breaking, and merging it into the master will not break, and 3) a unit test that check pieces. Plus the fact that the code reviewer should try to deploy the patch if they have the chance.
Do you think it is reasonable? In this case all of the effort can be done via travis ci (I think). Of cause we can try to get some Azure or AWS resources to run some nightly build just to make sure (I believe it saves a lot too).

So I started working on a testing harness and a new infrastructure testing library called charlie.. links and code coming soon!
I am still playing with the idea of deploying a cluster on ever PR - it does seem expensive, but I really want this tool to be taken seriously and respected for it's stability - so it might be what we need. I am fine with footing the bill (within reason) and I am sure we can come up with clever ways to scrape together a hundred bucks or so every month to offset our cloud bills.
But a nightly build might be a nice alternative.. thinking thinking thinking... hrmm

I see your point.
I think running real deployment tests for every PR is orthogonal to travis CI -- you still need something to run unit test and some mock deploy test while developing. Right?

Closing this as we have make test and make ci in #158


How can I use the BigQuery Client without authentication?

Hi, @yoshidan! First of all, thanks for this crate. I've been using it for some of my projects, and it's really nice.
Here's my problem: I'd like to write some integration tests using testcontainters and bigquery-emulator. Nonetheless, I couldn't find a way to set up the BigQuery Client to connect without authentication.
For instance, the Golang lib has the option WithoutAuthentication(), and Python's lib has AnonymousCredentials().
To write my integration test, I will also need to change the BigQuery endpoint, but I believe I can do it using the ClientConfig.with_endpoint() method.
Is it possible to use BigQuery Client without authentication?
Thank you in advance.

The bigquery emulator is not supported because there is no official google emulator.
Only pubsub emulator and spanner emulator are currently supported.
The emulator you mentioned seems to be used frequently, so we will check its operation and consider supporting it.

https://github.com/yoshidan/google-cloud-rust/pull/336 enable us to use bigquery emulator.
I have checked that several API works.
However, the Streaming Read API does not seem to work properly. We will investigate this.


3 June 2020 - ODP Meeting Minutes

Date
Wednesday 3rd June 2020 - 12pm EST / 5pm BST
Untracked attendees

Fullname, Affiliation, (optional) GitHub username
...

Agenda

[ ] Convene & roll call (5mins)
[ ] Review and agree previous meeting minutes

#132, #126, #101, #85

[ ] GitProxy Update and Demo by @grovesy of Citi and the FINOS DataHub project

@grovesy returns to ODP for a demo of GitProxy following the community discussion on 20th May 2020 - #132
https://github.com/pGrovesy/github-proxy

[ ] Agree future meeting priorities of carried over agenda items

@maoo presents repo-scanner , a fork of metadata-tool that works on all GitHub orgs (and not only github.com/finos)
@maoo - quick update on odp.finos.org
Using https://github.com/probot/settings on FINOS projects to delegate admin settings to project leads without granting Admin permission to repos ; does it overlap with FINOS internal report tooling?
(https://github.com/finos/cloud-service-certification) project?

[ ] Review and prioritise carried over action items listed in agenda
[ ] ODP Kanban - Done in the last 2 weeks activity and archival
[ ] ODP Kanban - Discuss In Progress and Prioritized issues
[ ] AOB, Q&A & Adjourn (5mins)

Decisions Made
Action Items

[ ] @maoo - work on a proposal to make Compliance&Quality validation action more generic
[ ] Demo new GitHub features at OSR
[ ]  Add items into marketing activities

WebEx info

WebEx Meeting URL
Meeting Number: 661 146 297
Call from USA: +1-415-655-0003
Call from CANADA: +1-647-484-1596
Call from UK: +44-20319-88141
Call from Spain: +34-93545-2895

Present!

Hello 👋

Present!

present

Present.

present

Present :)

👋 would love to see that Attendance Probot App!!

👋 would love to see that Attendance Probot App!!

https://github.com/finos/open-developer-platform/blob/master/.github/workflows/meetings.yml
Identities are resolved using https://github.com/finos/metadata-tool


How to cancel an idle connection

I need to support the following API

on one thread a connection is made, and switched to idle using wait
when shutting down gracefully, another thread needs to send a signal to interrupt the idle and shutting down the connection.

Is this possible with the current api and I am missing something, or is there something that needs to be added?

Hmm, that's a little tricky to do, but I think it may be possible. Specifically, if you are on a Unix system, you should be able to establish the connection yourself first (using std::net:TcpStream::connect), get another handle to the same connection with try_clone, create an imap::Client from the first handle with new, and then terminate the connection using that second handle from the other thread when appropriate.

Thanks, started looking into this, and it almost works, but read_greeting is private currently, so I can't fully establish the connection. Any chance that could be switched to be public?

Hmm, why do you need read_greeting to be public? Is Client::login not sufficient?

When I am using my own stream I can not use connect or connect_insecure, which call the read_greeting. I do call login afterwards, but I thought the greeting reading would be still needed
On 10. May 2019, 18:27 +0100, Jon Gjengset<EMAIL_ADDRESS>wrote:

Hmm, why do you need read_greeting to be public? Is Client::login not sufficient?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

You should be able to do Client::new(stream).login though, no?

yes that works 👌


[AutoPR] sql/resource-manager

Created to accumulate context: sql/resource-manager

(message created by the CI based on PR content)

Codecov Report

Merging #2634 into master will decrease coverage by 1.98%.
The diff coverage is 57.14%.

@@            Coverage Diff             @@
##           master    #2634      +/-   ##
==========================================
- Coverage   55.89%    53.9%   -1.99%
==========================================
  Files        7139     5094    -2045
  Lines      150351   129356   -20995
==========================================
- Hits        84036    69729   -14307
+ Misses      66315    59627    -6688

Impacted Files
Coverage Δ

...mgmt-sql/azure/mgmt/sql/models/managed_instance.py
31.25% <ø> (ø)
:arrow_up:

azure-mgmt-sql/azure/mgmt/sql/models/sku.py
100% <ø> (ø)
:arrow_up:

...mgmt-sql/azure/mgmt/sql/models/managed_database.py
27.77% <ø> (ø)
:arrow_up:

azure-mgmt-sql/azure/mgmt/sql/models/server.py
100% <ø> (ø)
:arrow_up:

azure-mgmt-sql/azure/mgmt/sql/models/database.py
100% <ø> (ø)
:arrow_up:

azure-mgmt-sql/azure/mgmt/sql/models/job_agent.py
55.55% <ø> (ø)
:arrow_up:

...ure-mgmt-sql/azure/mgmt/sql/models/elastic_pool.py
35.71% <ø> (ø)
:arrow_up:

...mgmt-sql/azure/mgmt/sql/models/tracked_resource.py
100% <100%> (ø)
:arrow_up:

azure-mgmt-sql/azure/mgmt/sql/models/__init__.py
58.82% <50%> (-41.18%)
:arrow_down:

...ure/mgmt/recoveryservicesbackup/models/__init__.py
52.05% <0%> (-47.95%)
:arrow_down:

... and 2192 more

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 d31381e...da32074. Read the comment docs.

Merge asap, since this is just syntactic details


ci-code clean-up and additional ECR related feature's.

Is your feature request related to a problem? Please describe

fix IAM roles.

Remove unstable ECR repo creation code.

Fix wildcard IAM policies.

Add Required IAM policy conditions

Add ECR public policy for agent nodes.

Add Optional flag agentAssumeRole for agent's to assume cross account role.

Add job-import-plugin and workflow-multibranch plugins.

Update README document.

Add docker resource limits.

Add jenkins JENKIN_JAVA_OPTS to docker-compose file to control Xmx properties.

Add docker maintainer label.

Jenkins Minor version bump 2.332.3-lts.

Add agent node IAM roles unit tests.

Describe the solution you'd like
Modify the CDK code to add the above mentioned feature's.
Describe alternatives you've considered
No response
Additional context
No response

Fixed the above features in the PR: https://github.com/opensearch-project/opensearch-ci/pull/115


Add directory to PSEUDO_KEYS

The fact that tests passed in PR #607 w/o doing this while apparently tests start failing when adding this key, indicates there's an issue with tests still making wrong/implicit assumptions rather than making explicit assertions about keys based on the PSEUDO_KEYS/RESERVED_KEYS constants.

As of now, directory is a reserved key.


Improper Size / Position when presented from .FormSheet or Split Screen

Alert view sizes itself incorrectly when being presented from a non-fullscreen ViewController. The AlertView appears to inherit the size of the entire screen rather than the frame of the application or the bounds of a modally presented FormSheet view controller, from which the alert is presented.
The same behavior is present when using Split-Screen on iPad.

in JSSAlertView.swift, in the viewDidLayoutSubviews() method, change the size value from UIScreen.mainScreen().bounds.size to UIApplication.sharedApplication().windows[0].bounds

in JSSAlertView.swift, in the viewDidLayoutSubviews() method, change the size value from UIScreen.mainScreen().bounds.size to:
var size  = UIApplication.sharedApplication().windows[0].bounds
if let i = UIApplication.topViewController()?.view.bounds.size {
    size = CGRect(origin: CGPoint(), size: i)
}

Thanks for reporting.
However I am unable to locate code you are referring to.
Thanks.

That line is located in JSSAlertView.swift under viewDidLayoutSubviews()

The current problem is that JSSAlertView gets rendered under the .FormSheet

There is a similar problem present when presenting the alert in split-screen mode on iPad as well. That behavior is resolved by modifying the line of code I mentioned earlier in the comments.

I am sorry but I don't quite get you.
Right now how it works is that JSSAlertView gets always placed right into middle of the screen.
The height and width gets calculated from this function
func screenSize() -> CGSize {
	let screenSize = UIScreen.mainScreen().bounds.size
	if (NSFoundationVersionNumber <= NSFoundationVersionNumber_iOS_7_1) && UIInterfaceOrientationIsLandscape(UIApplication.sharedApplication().statusBarOrientation) {
	    return CGSizeMake(screenSize.height, screenSize.width)
		}
	return screenSize
}

The height gets placed into:
let size = self.screenSize()
self.viewWidth = size.width
self.viewHeight = size.height

And those values are used this way:
self.containerView.frame = CGRect(x: (self.viewWidth!-self.alertWidth)/2, y: (self.viewHeight! - yPos)/2, width: self.alertWidth, height: yPos)

When running this code JSSAlertView, gets correctly placed into middle of screen, but it is hidden behind the view that is presented as .FormSheet
Now about your code it doesn't really make any sense to me this is why

UIApplication has no method called topViewController on the other hand UINavigationController has this method and it points to the top UIViewController in its navigation stack.
You are assigning  CGRect into variable size and there is no reason to do that

If you could elaborate on this it would be much appreciated, because right now I don't have the slightest idea how your code could ever work.
Thanks for contribution!

For now, I was finally able to completely reproduce your, issue when changing this
self.rootViewController = viewController.view.window!.rootViewController

to this
self.rootViewController = viewController

To temporarily relieve some of the misunderstanding, topViewController in my example is a UIApplication extension I implemented in the project and is defined below:
extension UIApplication {
    class func topViewController(base: UIViewController? = UIApplication.sharedApplication().keyWindow?.rootViewController) -> UIViewController? {
        if let nav = base as? UINavigationController {
            return topViewController(nav.visibleViewController)
        }
        if let tab = base as? UITabBarController {
            if let selected = tab.selectedViewController {
                return topViewController(selected)
            }
        }
        if let presented = base?.presentedViewController {
            return topViewController(presented)
        }
        return base
    }
}

Looks to accomplish the same thing as your last comment.
To be clear, it seems that the issue with presenting the alert on iPad when in split-screen (multi-tasking) mode is that the size of the alert is calculated from the size of the screen, not the size of the current application window. When I refer to this problem, I am referring to any presentation of the alert, not just when presented from a .FormSheet. But again, in your last comment you are getting the size of the window, not the size of the entire screen, so that should alleviate any issues during the presentation.

Yeah I know that the size is calculated badly, I have already find a solution to this issue, I am implementing as we speak.

@mvoccola Thank you for reporting this issue and stay tuned to JSSAlertView


Don't allow 5(1+3) if  MathS.Settings.ExplicitParsingOnly.Set(true)

Codecov Report

Merging #399 (8abd5e0) into master (1af2761) will increase coverage by 0.03%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #399      +/-   ##
==========================================
+ Coverage   80.58%   80.62%   +0.03%
==========================================
  Files         145      145
  Lines       12456    12457       +1
  Branches     1678     1679       +1
==========================================
+ Hits        10038    10043       +5
+ Misses       1904     1902       -2
+ Partials      514      512       -2

Impacted Files
Coverage Δ

Sources/AngouriMath/Core/Parser.cs
83.72% <100.00%> (+0.38%)
:arrow_up:

...Solvers/EquationSolver/AnalyticalEquationSolver.cs
83.33% <0.00%> (+2.08%)
:arrow_up:

...inuous/Solvers/EquationSolver/ExponentialSolver.cs
95.58% <0.00%> (+2.94%)
:arrow_up:

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 1af2761...8abd5e0. Read the comment docs.

@KuhakuPixel I just realized, that the whole Parse method is actually about making the syntax pretty. I think it might be enough to make it a separate method, something like InsertOmittedOperators, and call it in case the setting is false (i. e. implicit parsing is enabled).
So to be precise, I'd take out all lines from 39 to 88 and convert it into a separate method, which you call or not depending on the setting. Of course, this goto will be replaced with return.

@WhiteBlackGoose Great! , The first time I read the code it seems a bit weird because of the goto keyword it is a good idea to make the syntax prettier

If you're having any troubles with implementing the idea, let me know!

Okay, now it's done in #462 . Sorry if you wanted to finish it yourself, but because by my mistake I merged an unfinished feature (because your first PR only covered "^"), I had to finish it anyway by the next (1.3) release. Anyway, thanks for trying to help, and I welcome you if you want to keep contributing at some point!


Remove util/u64.h and use Var<ulong> instead

See also https://github.com/LuisaGroup/LuisaCompute/issues/149

done


Suggestion - support make cluster-sync CI prow lanes

/kind enhancement
We are vendoring cluster-up folder of kubevirtci, in order to run cluster-up and cluster-sync make targets.
cluster-up has prow lanes that test it as part of kubevirtci.
but when adding code to kubevirtci it might cause make cluster-sync to break on some lanes,
causing us to not able to bump-kubevirtci gracefully without breaking cluster-sync on some lanes which is mandatory for development routine and tests.
should we create lanes on kubevirtci which will allow us to vendor kubevirt and then bump kubevirtci there and apply the suggested PR and test make cluster-sync ?
or any way we should address this ?
atm the real situation is that if we bump kubevirtci,
sriov will break its make cluster-sync
k8s-1.17.0 which has broken sync will work again
ocp-4.3 which has broken sync will stay broken
thanks

/cc @phoracek

atm the real situation is that if we bump kubevirtci,
sriov will break its make cluster-sync
k8s-1.17.0 which has broken sync will work again
ocp-4.3 which has broken sync will stay broken

Normally we build the cluster and always tested them against kubevirt/kubevirt before merging. Yes that should be more automated, but I don't know why people stopped testing their changes.

sriov will break its make cluster-sync

That should not have happened and is really bad.

k8s-1.17.0 which has broken sync will work again

That one is still wip and did never work so far. That is why we never enabled reporting for it.

ocp-4.3 which has broken sync will stay broken

OCP lanes also don't run on kubevirt/kubevirt because even if you tested them properly during provisioning they stop working sooner or later and we didn't get past that.

First of all: this should be a kubevirtci issue, not a kubevirt issue.
Regarding k8s-1.17 my understanding was that we agreed on collecting data from the k8s-1.17 lane in order to fix the provider?
That the sr-iov lane is broken is really bad, agreed. And this is blocking us, that's true. But now that the situation is like it is we either have the option of reverting the changes on SR-IOV provider or work on fixing the sr-iov provider (which is already in the works and nearing completion AFAIU). I'd vote for the latter.
Regarding ocp/okd: There's ongoing work moving testing of okd/ocp towards openshift-ci. I know, this is taking very long now, but I'm confident it will be completed sooner or later and then we may not need the okd/ocp providers any more.

ok thanks,
Roman if you want we can continue the conversion that was paused on the google chat, or to close this issue if you guys prefer
just thought about a simple (maybe even script that will be run manually)
that people will be able to test their new kubevirtci  code doesnt break cluster-sync on kubevirt
(for the status once we fix the syncs)
thanks

@dhiller
"Regarding k8s-1.17 my understanding was that we agreed on collecting data from the k8s-1.17 lane in order to fix the provider?"
make cluster-sync works after bumping (not merged yet because it blocked on the effort that is ongoing with the sriov as you said), and i am not totally in the loop beside, sorry


Cleanup files in the root folder

Change-type: patch
Signed-off-by: Zahari Petkov<EMAIL_ADDRESS>

@balena-ci I self-certify!


Unable to use with create-react-app

Check that this is really a bug

[X] I confirm

Reproduction link
https://swiperjs.com/react#usage-with-create-react-app
Bug description
I got #4871 error and following the instructions with create react-app-related in here got a new error.
./node_modules/swiper/swiper.scss (./node_modules/css-loader/dist/cjs.js??ref--5-oneOf-6-1!./node_modules/postcss-loader/src??postcss!./node_modules/resolve-url-loader??ref--5-oneOf-6-3!./node_modules/sass-loader/dist/cjs.js??ref--5-oneOf-6-4!./node_modules/swiper/swiper.scss)
Cannot find module 'sass'
Require stack:
- C:\Users\Kevin\Desktop\Restaurante\client\node_modules\sass-loader\dist\utils.js
- C:\Users\Kevin\Desktop\Restaurante\client\node_modules\sass-loader\dist\index.js
- C:\Users\Kevin\Desktop\Restaurante\client\node_modules\sass-loader\dist\cjs.js
- C:\Users\Kevin\Desktop\Restaurante\client\node_modules\loader-runner\lib\loadLoader.js
- C:\Users\Kevin\Desktop\Restaurante\client\node_modules\loader-runner\lib\LoaderRunner.js
- C:\Users\Kevin\Desktop\Restaurante\client\node_modules\webpack\lib\NormalModule.js
- C:\Users\Kevin\Desktop\Restaurante\client\node_modules\webpack\lib\NormalModuleFactory.js
- C:\Users\Kevin\Desktop\Restaurante\client\node_modules\webpack\lib\Compiler.js
- C:\Users\Kevin\Desktop\Restaurante\client\node_modules\webpack\lib\webpack.js
- C:\Users\Kevin\Desktop\Restaurante\client\node_modules\react-scripts\scripts\start.js

Expected Behavior
No response
Actual Behavior
No response
Swiper version
7.0.0
Platform/Target and Browser Versions
Windows, Brave
Validations

[X] Follow our Code of Conduct
[X] Read the docs.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.
[X] Make sure this is a Swiper issue and not a framework-specific issue

Would you like to open a PR for this bug?

[ ] I'm willing to open a PR

There is guide in #4871


[Components] Consider getting rid of RenderRootComponent in favor of RenderRootComponentAsync

The renderer has both sync and async versions. It's likely that we don't need both and we can just keep the async version.

We must do this before 3.0 release so that we avoid breaking change in the future.

We did this already


Redis startup error compiled in aarch64 environment

Redis startup error compiled in aarch64 environment：[jemalloc] unsupported system page size

please use docker/library/redis instead.

https://github.com/alanpeng/harbor-arm


List install location with winget list/upgrade

Description of the new feature / enhancement
It would be useful to get the install location listed on list/upgrade commands
Proposed technical implementation details
No response

I'd suggest including the install directory path in winget list output by default or if unviable, then adding a separate option like winget list --location.


multi class object detection tutotial

would be nice to see
thanks

Usage will be updated soon.

See https://github.com/Burf/TFDetection/blob/main/usage/train/object_detection.ipynb
Thanks.


angularValidation.revalidate problems

I'm having a problem using angularValidate.revalidate.
It looks like the change introduced in v1.5.13 broke it, because if I switch back to 1.5.12 it works.
I used the punker in the wiki: http://plnkr.co/o1fftbnmRfjScEDmi7ZH?p=preview and it works, but it's got the old code. If I copied the most recent code in it stops working.

Latest version is 1.5.18, you're quite behind. Can you troubleshoot and find the problem, because I don't have much time to look into this right now

I was on 1.5.18 when I noticed it, I narrowed it down to the 1.5.13 change (I think)
I think it's this in validation-directive.js
        scope.$on('angularValidation.revalidate', function(event, args){
          if (args == ctrl.$name)
          {
            ctrl.revalidateCalled = true;
            var value = ctrl.$modelValue;

            if (!!elm && elm.hasOwnProperty("isValidationCancelled")) {
              // attempt to validate & run validation callback if user requested it
              var validationPromise = attemptToValidate(value);
              if(!!_validationCallback) {
                commonObj.runValidationCallbackOnPromise(validationPromise, _validationCallback);
              }
            }
            else {
              ctrl.$setValidity('validation', true);
            }
          }
        });

elm.hasOwnProperty("isValidationCancelled") doesn't seem to ever evaluate to true.
I'm not 100% sure, but I think elm is wrong type of thing to be evaluating, that other parts of the code are setting that property on a different object.

What I suggest you to do is to debug it using the plunker sample you got and use validation-directive.js of version 1.5.18  and then revert some of the code change of the old version vs new version until you find the culprit. If you can find what it is, I can help out afterward.
Thanks for the help

New release v1.5.19 pushed with your fix. Thanks again for the contribution :)

Awesome, thanks for the super quick turnaround, now we're up to the latest version again :)


Remove  wrapper from

I'd like to propose that the
 wrapper of the <Field> component be removed.
I ran into a use case using a :first-child CSS selector where this extra wrapper broke the visual layout I was going for.
Perhaps there's a reason I'm not seeing that would make this
 desired or necessary? If not, I think this would make <Field> more flexible. Thanks for considering!

P.S. I think those tests I removed aren't applicable any more; didn't just remove them to make it pass CI. 😄

Hi @paulstatezny!
I'd like to extend the discussion a bit on this one.
I agree that we should have a way to add a field into the context without making any assumption about the design, even if it's just adding a simple
. So let's see if we can find a better solution.
Most of the time, for each field in a form, we have additional elements, like a label and something to present the error. Usually, those elements are grouped together to make it easier to style them. That's why most of the CSS libs I know provide a class for it. For instance, Bootstrap has form-group and Bulma has field. Adding the
 is handy because it makes the code cleaner as the user doesn't have to inject any extra markup in every single <Field>. In case you're not grouping them, can you provide an example on how you arrange them?
@lnr0626 do you think we should make the component flexible in a way that allows the user to choose which approach is desired? For instance, we could add a property unwrap to remove the outer
 as we did for Markdown. The user could even define that globally to avoid setting this on every <Field> and the default could be to have the field unwrapped as it's design-agnostic.

If we wanted to have both options, I'd rather have two components instead of adding options to this component - because elixir allows renaming aliases we can just tell people to alias Surface.UnwrapedField/DivWrapedField, as: Field (or w/e we'd end up deciding to call it). I do think we should find a way to support both - the div wrapper is really handy, and it's more flexible if we have an option to not include that wrapper.
I've only really used bootstrap and more recently tailwind (and some of the tailwind ui components), and those both wrap each input in a div. I'm also interested in seeing an example of laying out a field without the divs wrapping each input.

I like the idea of having different components 👍
Assuming we confirm that in most scenarios the user wants the wrapper div. I think we should keep <Field> with the current behaviour and create a new component called FieldContext, which describes better what it does. It also makes it more intuitive as we already have a InputContext that does something similar. This way Field could use the FieldContext just like the input controls use the InputContext.

@msaraiva @lnr0626 Thanks for your feedback! That totally makes sense.
My Scenario (since you asked 😁)
So I was building out a component for building forms, taking a markup structure from TailwindUI. It's a grid-based layout where each field has the label in a left column, and inputs in a right column, but on mobile they stack vertically.

The markup structure around a single field looks something like this: (Redacting attributes since you have to pay to get access 😅)

    LABEL HERE

      <input>

You might say, the component that defines the outer
 should define a <Field> instead. But in my case, this "row" sometimes represents multiple fields, like in a row that contains multiple checkboxes, each backed by a different one. But we still want them grouped in this structure, under this "label".

    LABEL HERE

      <input id="foo" type="checkbox">
      Foo

      <input id="bar" type="checkbox">
      Bar

I'm glad you agree that it's reasonable for Surface to support cases like this. 😅 Can I go ahead and make another PR implementing your FieldContext concept? Or do you need more time to mull it over?

@paulstatezny thanks for the example.

Can I go ahead and make another PR implementing your FieldContext concept?

Sure! I think it's the way to go as it keeps the most common behaviour as the default but still allows any other case where the user needs to roll its own custom markup.

Closing this in favor of https://github.com/msaraiva/surface/pull/172. Thanks!


PetriNet to ODE Decoration Example

Create example of decorating a finite set cospan with both a PetriNet and ODE to demonstrate moving a model between different domain implementations.

This was covered in the Malaria example


Add hewkawar.xyz

@hewkawar I checked all the pages:
https://www.hewkawar.xyz/
https://www.hewkawar.xyz/about
https://www.hewkawar.xyz/project
https://www.hewkawar.xyz/porfolio
https://www.hewkawar.xyz/contact
They all display the same thing

Our rules require that you publish content on your site. Please let me know once there is content on the site, then I can check again krub.

I fixed my profile page

@hewkawar Thanks, and welcome to the webring!
My apologies for the slow review 🙏


Any chance of an Ubuntu PPA?

Is there any chance that you guys might be able to publish an official PPA for Ubuntu with the latest builds?
Sometimes a tool or platform requires libuv and having to compile by hand can turn people away just due to the inconvenience.

I wouldn't personally oppose such an effort, but right now I'm afraid we don't have the time resources to get that going in an "official" capacity. Now, anyone is more than welcome to create a PPA and then we could try to find a way for making it official.

Sounds great, I wish I knew of a place where debian packagers congregated so that I could at the very least put the idea out there.
Sadly, I'm just someone who uses the packages, making them seems like a very dark art!

libuv 0.10.x has been in ubuntu since Trusty, while libuv1 1.x since wily. If you need any of those in a previous release, I think you'd better request a backport to the ubuntu team so that they are officially distributed.

Really?  I thought 1.x wasn't available at all?

Current status:
 libuv1 | 1.6.1-3 | wily/universe            | source
 libuv1 | 1.6.1-3 | xenial/universe          | source
 libuv1 | 1.8.0-1 | xenial-proposed/universe | source

and
 libuv | 0.10.22-2        | trusty/universe | source
 libuv | 0.10.28-6ubuntu1 | vivid/universe  | source
 libuv | 0.10.36-3        | wily/universe   | source
 libuv | 0.10.36-3        | xenial/universe | source

:tada:
Thanks @lucab!  I'll leave it to you guys to either close or defer this ticket.  I'm sure being packaged in the default releases is sufficient, but maybe there is still a compelling argument for offering a PPA in the future in case distros don't keep up.

Closing then!

I need libuv.so.1 on the Xubuntu derivitive of Trusty 14.04.2
A game I want to play requires it.
14.04.2 is the latest lts that AMD supports for my laptop's apu's gpu drivers.
The latest non lts they support is 15, but 15's security support has expired so no thanks.


I'm following steps (7) to backup my RPI into a USB flash drive with 3 partitions: boot, root and data (which is supposed to be left untouched)
I've followed the instructions to initialise the USB so that it matches the SD card

Used fdisk to create the partitions, set the right type and then
mkfs -t vfat -F 32 /dev/sda1
mkfs.ext4 /dev/sda2
mkfs.ext4 /dev/sda3
While it "works" OK while I don't have sdb3 mounted, if I do have it mount (which I'll need to) then it fails immediately with
"Destination disk partition /dev/sdb3 is mounted on /mnt/tmp.
The clone cannot proceed unless it is unmounted."
My understanding was that sdb3 was supposed to be left alone?

This should consider as fix. There is not need to check for sdX3. I having same issue. Thanks for the temporary fix


tile error

Good day. I need some help, if a've got a "tileerror" event, how can I reload a tile that did not load?
`this.map.addLayer(this.someLayer);
    this.pkk5.on('tileerror', (e) => {

        let target = e.target;

        // how to reload target

    });`

Thanks!

I have the same question. Google gave https://stackoverflow.com/questions/30307522/how-to-reload-tile-which-is-not-loaded-in-leaflet-js however have not yet tested with new Leaflet versions and wonder how sustainable it is.
(App and) tile servers I use reasonably often fail on loading individual tiles however practically always work when retrying immediately. However have not found a mechanism in Leaflet how to configure it to be a bit more persistent in trying to reload failed tiles.
For such a great component this is a bit strange gap in functionality.

I believe the 'e' event you get with the layer, will contain e.tile which is the individual tile that failed.
It's the actual  tag itself. Also get e.coords which can be used with getTileUrl to get the original url.
... so can do something with that.
someLayer.on('tileerror', (e) => {
    var tileurl = someLayer.getTileUrl(e.coords);
    e.tile.src = tileurl + "&rnd=".Math.rand();
});

... that just blindly adds a param to retry. Not recommended! Might want to handle that better. Eg with a setTimeout to return, and exponential backoff. So as not to just keep blindly retrying quickly if the server really is down!
var failures = 0;

someLayer.on('tileerror', (e) => {
    failures = failures+1;
    var tileurl = someLayer.getTileUrl(e.coords);
    setTimeout(function() {
        e.tile.src = tileurl + "&rnd=".Math.rand();
    }, Math.pow(failures,3));
});

https://leafletjs.com/reference-1.3.4.html#tileerrorevent

Hi, great to hear that you find Leaflet useful!
However, this issue tracker is used for reporting bugs and discussing new features. For questions on using Leaflet, please use gis.stackexchange.com or stackoverflow.
If you are really sure that this is a bug in leaflet, or a feature request, please change the wording to make it look like a bug report.


Custom deployment script for an asp-net Core project with node modules

I have a question about the deployment script. Could you provide a suitable example of the custom deployment script to combine asp-net Core building with npm install and webpack commands, e.g.

dotnet restore
dotnet build
dotnet test
npm install
npm run release (actually "webpack" command with prod. )
...

Unfortunately, I didn't find any examples but it can be useful, there are lots of questions such as "How to deploy as-net with angular/react/vue to Azure".
Any help will be helpful!

A custom deployment script is really just a batch file where you can do whatever you want. So while there may not be a sample that does exactly what you want, you might want to start form the standard .NET Core script, and modify it for your needs.

Thank you for explanation! I've found the way how to create custom deployment script according to your project and extend it:

Use advanced tools to download a script:

Change the script according to your needs, e.g. npm install, webpack, dotnet test e.t.c.:

Add .deployment and deploy.cmd to your repository root


rename proto

I hereby agree to the terms of the RisingWave Labs, Inc. Contributor License Agreement.
What's changed and what's your intention?

Checklist

[ ] I have written necessary rustdoc comments.
[ ]  I have added necessary unit tests and integration tests.
[ ]  I have added test labels as necessary.
[ ]  I have added fuzzing tests or opened an issue to track them.
[ ]  My PR contains breaking changes.
[ ]  My PR changes performance-critical code, so I will run (micro) benchmarks and present the results.
[ ]  My PR contains critical fixes that are necessary to be merged into the latest release.

Documentation

[ ]  My PR needs documentation updates.

Release note

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#19972  👈 (View in Graphite)
#19954
#19953
main

This stack of pull requests is managed by Graphite. Learn more about stacking.


Suggestion to add empty (blank) page(s)

Can you kindly add option to add blank page or pages ?

Thanks for the suggestion, but I'm not interested in adding options that modify content rather than structure. You can create a file with a blank page and then use qpdf's --pages option to add that blank page to other files though.


Use workgroup to confine access to digital bookplates UI

The workgroup is called sulair:libsys-dig-bookplates

In standup this morning, Jeremy mentioned that this should be a puppet PR (access is controlled there and not through the flask app).

https://github.com/sul-dlss/puppet/pull/new/jgrebenAddsWorkgroupAccessLibsysAirflow

This should be in place now.

I added all of us to sulair:libsys-dig-bookplates workgroup and verified that the puppet rule indeed restricts access.


question: confusion around install command

Currently, tea recommends sh <(curl https://tea.xyz)
Does this have any advantages over sh =(curl https://tea.xyz) (in zsh)
or curl https://tea.xyz | sh (basically universally)?
I'm mainly asking because afaik curl https://tea.xyz | sh works in sh, bash, zsh, fish, and nushell (from #273) and I don't see the advantage to the other syntax given that it isn't universal and is the same amount of characters to type.

IIRC, it's because (curl https://tea.xyz | sh) duf isn't valid, but sh <(curl https://tea.xyz) duf (or any other command) is due to process substitution. There might be other differences I'm not expressly recalling atm.

Ah okay, thanks for clearing things up. I forgot about that feature of tea.

We certainly could use =(foo) but <(foo) works in bash as well.
But yeah what we want is an easy to remember install line that is as portable as possible.
curl tea.xyz | sh -s duf
# ^^ more portable but not as easy to remember or as readable IMO


GD-XXX: Asyncs and await runner.AwaitIdleFrame() does not work

The used API version
4.3.*
The used Godot version
4.4 dev 3
Operating System
macOS sequoia
Describe the bug
Using a Scene runner async API lead to a test failure with :
You must return a <Task> for an asynchronously specified method.

Steps to Reproduce

Create a test with the same test method below
Run test and it should fail with the following error You must return a <Task> for an asynchronously specified method.

namespace Examples;

using GdUnit4;
using static GdUnit4.Assertions;

[TestSuite]
public class ExampleTest
{

    [TestCase]
    public async void Failed()
    {
        ISceneRunner runner = ISceneRunner.Load("res://soem/scene.tres");
        await runner.AwaitIdleFrame();
    }
}

Minimal reproduction project
No response

The return type of the method should be set to Task
[TestCase]
    public async Task Failed()
    {
        ISceneRunner runner = ISceneRunner.Load("res://soem/scene.tres");
        await runner.AwaitIdleFrame();
    }


Installation CRD not getting status updated

xref https://github.com/projectcalico/calico/issues/7986
I think this might be a tigera operator issue, but am not sure, b/c maybe there's an underlying bug in the node agent that prevents it from reflecting the spec for GBPEnabled=False into the status.
Version
quay.io/tigera/operator:v1.30.4

As commented on the bug in the calico repo this is expected behavior since the expected calico components are not ready and healthy.


Increase the maximum heap size for tests with CUDA backend

What changes were proposed in this pull request?
If maximum heap size less than 6g (rounded value), you may see following kind of errors Caused by: java.lang.OutOfMemoryError: Physical memory usage is too high: physicalBytes = 3G > maxPhysicalBytes = 3G from the build log.
How was this patch tested?
Tested locally and with Jenkins

FYI, this also inforces a limit, so we can't have tests that go over that limit.


[question] Is it an antipattern to use reselect for general purpose caching?

Slightly related to the question in the FAQ: Can I use Reselect without Redux?
One advantage reselect has over other common memoization libraries is that most don't support caching multiple arguments out of the box. For example to enable multipe args for Lodash memoize, you have to pass your own resolver function, which resolves your arguments into a single key anyways.
I've been exploring using reselect as a general purpose selector, attached to React components as a class property. Example:
class Foo extends React.Component {
  getFooSelector = createSelector(
    [args => args.foo, args => args.bar, args => args.baz],
    (foo, bar, baz) => { /* something expensive */ }
  );

  someFunction() {
    const foo = getFooSelector({ foo: something, bar: something, baz: something });
  }
}

I was wondering, are there any gotchas or hidden costs of doing this? So far, it's been working very well for my use case. Thank you!

That's absolutely fine.  Reselect was definitely written with the intent of being used with Redux, but it is indeed a general-purpose lib that has no actual ties to Redux.  You should feel free to use it anywhere in your app.

Thank you!


Job Results Page - Use Meta Name Attribute

Environment

Python version: 3.6.13
Nautobot version: 1.0.1

Proposed Functionality
When displaying Job Results we should display the attribute in the Meta as the name of the Job result. The current job display is: <folder path>/file/class_name

Use Case
Allow for friendly names
Allow for customized names (such as many branch sites to filter on the one item)

Database Changes
None

External Dependencies
None

This could also be a configurable option for those that prefer the directory path as the name.  However, I personally agree having a user friendly name is definitely needed.


Update doxygen config and fix menu title on newer doxygen

https://github.com/SFML/SFML/issues/1273

I'm afraid it will work for doxygen 1.8.14+ only, because of this bug https://bugzilla.gnome.org/show_bug.cgi?id=776964

Superseded by #1428 included your change there. 🎉


npm ci gives "only-allow pnpm" but not npm i

I'm trying to setup a github action to deploy my vite site in which I use your plugin. I've been using npm locally and has been working completely fine. However, when I run the github action and run npm ci it gives me an error telling me I must use pnpm in this project, even though I use npm locally.

Just a heads up, I had this issue and noticed the node versions were different. Node 14 I get this issue Node 16 I don't

I'm using yarn install and I'm also seeing the same difference between Node 14 and 16.
@georgkrause I don't see how changing it to devPreinstall could be a good fix. If I understand correctly, only pnpm recognizes that lifecycle script, so it makes the line completely pointless.

@arildm I don't know what this line is good for anyways, but if only pnpm picks up this line, it at least doesn't make all other package managers not work anymore, while having it in preinstall blocks them all. But I'm fine with another idea, if you have one :)

If I understand correctly, only pnpm recognizes that lifecycle script, so it makes the line completely pointless.
Great point @arildm you're totally right that it'll become useless if it's only detected by pnpm

@tonyketcham So what would be a good fix though? Adding that line seems to be disrupting npm and yarn usage. My suggestion would be to remove the line, but I'm not exactly sure what effect that would have.

This has been resolved in v1.0.4!


Fix AxiStreamFrame default for self.byte_lanes from 1 to all.

If I connect a AXIS source to an AXIS sink, the #byte_lanes is incorrectly 1 rather than all lanes enabled.
self.source = AxiStreamSource(AxiStreamBus.from_prefix(dut, "sink"), dut.clk, dut.reset)

Root cause is AxiStreamFrame assumes byte width 1 without TKEEP, but it should default to self.width // 8 because the AXIS specification mentions "when TKEEP is absent, TKEEP defaults to all bits HIGH" and "The width of the data payload is an integer number of bytes."
Fix: https://github.com/alexforencich/cocotbext-axi/blob/master/cocotbext/axi/axis.py#L290
-self.byte_lanes = 1
+self.byte_lanes = self.width // 8

(Note that if byte_lanes is specified, or the byte_size is overridden, the existing code correctly calculates self.byte_lanes.)
Relevant AXIS Specification:
https://developer.arm.com/documentation/ihi0051/a/Default-Signaling-Requirements/Default-value-signaling/Optional-TKEEP-and-TSTRB?lang=en
Signed-off-by: Leon Woestenberg<EMAIL_ADDRESS>

I think this is reasonable.  I probably have a few testbenches that should explicitly specify byte_lanes=1.  I was thinking maybe it makes sense to check if the width is a multiple of 8 or not and set byte_lanes to either 1 or self.width // 8 accordingly, but I think it makes more sense to require manually setting byte_lanes=1 if that's the desired configuration.

By coincidence, I reviewed your code and documentation today. Your documentation clearly says you have to set either byte_size or byte_lanes, at least one but not both.
However the AXI Streaming spec says: "The width of the data payload is an integer number of bytes." so that's why I thought it would make a good default in the both-not-specified-case.

Hmm, maybe I need to take a look at that as well, the plan was to set things up so there is a sensible default, but then you can override that by specifying one or the other.  But yes, I think this behavior for the default is more consistent with the spec.
Now, I just need to fix the CI, since it seems like several things have broken....

A different solution would be to introduce the else case (if (both) byte_lanes is None and byte_size is None):
        if hasattr(self.bus, "tkeep"):
            self.byte_lanes = len(self.bus.tkeep)
            if byte_size is not None or byte_lanes is not None:
                raise ValueError("Cannot specify byte_size or byte_lanes if tkeep is connected")
        else:
            if byte_lanes is not None:
                self.byte_lanes = byte_lanes
                if byte_size is not None:
                    raise ValueError("Cannot specify both byte_size and byte_lanes")
            elif byte_size is not None:
                self.byte_lanes = self.width // byte_size
            else:
                byte_size = 8
                self.byte_lanes = self.width // byte_size

It's fine, there were some issues in the general CI setup that had to be sorted out; seems like there are some bugs in cocotb test and something has been screwy for a while with codecov, so far I have been able to resolve everything by pinning versions of stuff (which I probably should have done quite some time ago before things broke, and saved myself a lot of hassle....)
I have a few optimizations that I am working on to improve simulation speed by effectively putting sources and sinks to "sleep" when there is nothing going on (basically, await a more specific event instead of doing stuff on every clock edge).  Once I get that sorted out, I'll cut a new release with these changes.


Make Quartz Kubernetes Friendly

Quartz is inefficient when it comes to running on the cloud. The answers that I've seen around Quartz involve autoscaling, but that doesn't work well for me: what if there is a job that takes 8 hours to run, and in the middle of it, my Quartz pod autoscales down? What if I need 12GB RAM to ensure the job runs? And what if I need 3 of these to ensure peak load can be accomodated? There is no good solution for this.
Asking our developers to re-architect the entire application to use something cloud-friendly would mean waiting for various stakeholders to agree and schedule the work, and wait possibly years to have this done, while not delivering on customer features.
I was wondering how feasible it would be to make it so that rather than running Jobs on the same instance as Quartz is running, it merely asks Kubernetes to spin up a Pod that runs the job instead.
This drastically improves our scalability and bottom line, since rather than requiring multiple heavyweight Quartz managers that also run jobs, we could have a lightweight Quartz manager that instead schedules the jobs on Kubernetes.
I was hoping that this could be a simple fix; I was hoping that some core part of Quartz could be altered, such that rather than running the job in a thread, it could launch the pod instead. Scheduling, versus running the job could perhaps be temporarily hacked in by having a system property at startup to decide if this particular quartz instance is a job-runner, and if not all it does is launch pods.
This sounds easy to me, but I am not familiar with quartz. Can someone enlighten me on the viability of this feature, and perhaps point me to what would need to be changed to hack this in myself?

You can very easily implement a trigger which calls a web service or sends a jms message, already. For example starting a Kubernetes job or maybe more aproperiate start a FaaS payload.

Previous comment is spot-on.


Added a script folder

Hi,
I have added a script folder where people can write their custom scripts and share with others. I have just started with an HTML simple script Hello Gitters!
I hope you'll like my idea.

Thanks for the PR but that is not so much related to this repo so I am not going to merge it. This repo is for collection of got related resources. Have at it. And keep learning.


Use chii for logging

Recently, chii starts to support embedded mode which allows you to use chrome devtools on the same page using iframe. And I think this is very useful for this kind of projects.
The biggest problem is that chrome devtools front end is not likely to work in most browsers. Therefore, when using browsers other than chrome, eruda is still being used.
Here is a screenshot of the final result.

This is epic! Thank you so much!
I'll do a round of testing and then aim to merge this tomorrow


The 'with_input_file_name_col' option doesn't work with File offsets

Describe the bug
The 'with_input_file_name_col' option doesn't work with File offsets.
See #221.

Hi @yruslan
The chosen approach - as per recommendation and assistance of the Clients Mainframe specialist (Pascale) - was to adapt the copybook.
with info in the readme and input of prior issues issue 153 and issue 72 I managed to to successfully ectract the desired data and omit header and footer.
`
import org.apache.spark.sql.functions._
// import org.apache.spark.sql.SparkSession
// adapted the copybook as per recommendation of Clients Mainframe specialist (Pascale)
//
// used a redefine on 2nd level (non-root level)
//
// approach based on following input
//   https://github.com/AbsaOSS/cobrix#automatic-segment-redefines-filtering
//   https://github.com/AbsaOSS/cobrix/issues/153
//   https://github.com/AbsaOSS/cobrix/issues/72
spark.udf.register("get_file_name", (path: String) => path.split("/").last)
val cobolDataframe = spark
.read
.format("za.co.absa.cobrix.spark.cobol.source")
.option("schema_retention_policy", "collapse_root")
.option("segment_field", "REC_GSH_STUB_IDENT")
.option("segment_id_level0", "G")
.option("segment_id_level1", "2")
.option("segment_id_level2", "C")
.option("redefine_segment_id_map:0", "REC-GSH-STUB => G")
.option("redefine_segment_id_map:1", "REC-GSH => C")
.option("redefine_segment_id_map:2", "REC-GSH-STUB => 2")
.option("pedantic", "true")
.option("copybook", "file:///home/jovyan/data/BRAND/COPYBOOK_redefine_on_level_2.txt")
.load("file:///home/jovyan/data/BRAND/initial_transformed")
.withColumn("DPSource", callUDF("get_file_name", input_file_name()))
`
a simplified version of the copybook is
       01 REC-GSH-GLOBAL.       *                                                03  REC-GSH-STUB.              05  REC-GSH-STUB-IDENT         PIC X(1).            05  REC-GSH-STUB-REST          PIC X(599).       *                                                                           03  REC-GSH REDEFINES REC-GSH-STUB.            05  REC-GSH-REAL-IDENT         PIC X(1).               05  REC-GSH-REAL-REST          PIC X(599).
I thank you very much for the assistance and recommend to close the issue.
@kriswijnants
A the entire adapted copybook will be shared with you
Thanks in advance,
Bart Debersaques,

Glad you've found a workaround. Nevertheless, .option("with_input_file_name_col", "DPSource") could still be used with .option("file_start_offset", 100) or .option("file_end_offset", 100) after this fix is released.


Change TextBlock.Text in invisible StackPanel with horizontal orientation

Describe the bug
TextBlock doesn't display text if it was changed when containing StackPanel with horizontal orientation was invisible.
Grid or vertical StackPanel works correctly
To Reproduce
Place on View:

StackPanel Orientation="Vertical" HorizontalAlignment="Stretch" Background="LightGreen" IsVisible="False"
TextBlock inside StackPanel
Button

In Button.Click handler set TextBox.Text to "Test" and StackPanel.IsVisible to true
StackPanel becomes visible (green stripe) but without text in it
Expected behavior
StackPanel text is visible in StackPanel
Avalonia version
11.2.0
OS
Windows
Additional context
No response

Please test against current master

Same behavior.
  <Grid>
    <Grid.RowDefinitions>
      <RowDefinition Height="Auto" />
      <RowDefinition Height="Auto" />
      <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>

    <StackPanel  Name="cv" Orientation="Vertical" Grid.Row="0" Margin="4" HorizontalAlignment="Stretch" Background="LightGreen" IsVisible="False">
      <TextBlock Name="tv" />
    </StackPanel>

    <StackPanel Name="ch" Orientation="Horizontal" Grid.Row="1" Margin="4" HorizontalAlignment="Stretch" Background="LightGreen" IsVisible="False">
      <TextBlock Name="th" />
    </StackPanel>

    <Button Grid.Row="2" Margin="4" Content="Show" Click="Button_Click" />
  </Grid>

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            cv.IsVisible = true;
            tv.Text = "Test";

            ch.IsVisible = true;
            th.Text = "Test";
        }

On button click I got

Should be fixed by: #17638


No 'Access-Control-Allow-Origin'

odoo_jsonrpc.js:124 OPTIONS http://localhost/:8069/web/session/authenticate (anonymous function) @ odoo_jsonrpc.js:124internal.sendRequest @ odoo_jsonrpc.js:55exposed.login @ odoo_jsonrpc.js:156(anonymous function) @ index.html:8
index.html:1 XMLHttpRequest cannot load http://localhost/:8069/web/session/authenticate. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. The response had HTTP status code 403.
index.html:14 Error: Fail to get /web/session/authenticate(…)(anonymous function) @ index.html:14

it's a security protection from the browser.

If you have an apache or nginx webserver in front of Odoo, add Header in the reverse proxy.
If your Odoo is in front, check this answer : http://stackoverflow.com/a/24011683


Unify units

Tasks:

[x] Read proper unit and quantity values for spar articles
possible units: g, m, ml, stk, wg  (m... Meter, wg ... Waschgänge)
[x] Search input for Quantity (allows integer numbers, searches for exact match)
[x]  Extra column in table
[x] Unit/quantity for Hofer
[x] Unit/quantity for Billa
[x]  MPreis
[x]  Lidl
[x]  DM

@badlogic The search input was just for testing, have no Idea what exactly you had in mind.

I'm not yet sure how to handle all this. For Hofer, the unit property is really the quantity plus packaging. Most items have the actual content unit in their name. E.g.

I haven't checked how Hofer encodes weighted items yet. I'm not sure they actually have those apart from fruit?
The other PR of yours that I merged yesterday also requires regenerating the latest-canonical.json file from historical data via replay() in analysis.js. I'm not yet fully sure if going with the 1 KG price for things like cheese or sausage is the way to go. From a user perspective, 100g is usually the unit you're interested in, which is also the unit you'll see in stores.
I'm currently compiling a list of units for each store. Based on that, we can then try to normalize the unit field in the canonical items, and allow that in searches. We may also want to normalize . and , in item names, e.g. milk may have 3.6% Fett in one store and 3,6% Fett in another.
I'll post the unit lists for each store here later today.

In Billa's case, it appears the prices for weighted sausage are also given per KG, but the grammage field in the originald data is per 100g

Billa has grammagePriceFactor for weighted cheeses and sausages. I'll modify billaToCanonical analogously to sparToCanonical so those are comparable.

Regarding search, I think it makes more sense to have a single search field where the user can enter both the product name(-parts) and any units they are interested in. That's how it currently works, however, since the units haven't been unified yet, that search may fail.

Did a rebase on upstream and parsing for Hofer and Billa. I think the data looks good now.
@badlogic could you have a look?
Currently, the data is always presented in g/ml/stk. We can of course convert it to l/kg for larger numbers. Do you really want an extra field for that, or just convert it on the client side?
Calculating price per 100 g/ml is also easy now on the client side.

FYI: Also started to work on lidl

I added a field "isWeighted" (currently only in mpreis articles) and fixed the pricing for such articles (see #24).
Let me know if you want an extra MR for that (or just do cherry-picking).

Converts now all weighted articles to 100g/ml (separate utility function in store/utils.js).
Also shows a scale for weighted items.

Anyway, showing 0.18 Euro per 100g for Apples seems odd too to me. Maybe just use 100g as baseline when the price is above a certain value?
Also, I guess this conversion needs a replay to also scale historical values.

I think it's good to go as is, we can iterate (and replay) any time we think a change is needed. I'll merge this tonight (I hope).

Currently, the data is always presented in g/ml/stk. We can of course convert it to l/kg for larger numbers. Do you really want an extra field for that, or just convert it on the client side?

You're right, g/ml/stk is all we need. Anything >= say 1000ml can be presented as liter client side.

Conversion into kg/l was already done, I just merged main and resolved the conflicts. From my side it's ready to go :)

Haven't dug into it yet, but i think mpreis ingestion is wonky irrespective of units?

There are 3 prices in the mpreis data, sometimes one of them has H87 as unit, I mistake ly i terpreted that as liter. In this case, we need to read the unit from another price.
I can fix this later today.
On May 29, 2023 1:13:51 AM GMT+02:00, Mario Zechner @.***> wrote:

--
Reply to this email directly or view it on GitHub:
https://github.com/badlogic/heissepreise/pull/10#issuecomment-1566297892
You are receiving this because you authored the thread.
Message ID: @.***>
--
Sent from my Android device with K-9 Mail. Please excuse my brevity.


[psql] $relatedQuery().patch().returning("*"): does not return object, debug shows returning: undefined

what is happening

without $beforeUpdate hook (sets updated_at ts) method on base Model class

returns the updated rows count instead of returning(*)

with $beforeUpdate hook method

returns the Student (relation) object but without extra fields

what i intended

update the (extra) columns in the join table
return the Student (relation) object with the extra fields

query
// proto method, [this] is a Course instance
this.$relatedQuery("students")
      .where("student_id", studentId)
      .patch({ paymentDate: new Date().toISOString(), confirmationId })
      .returning("*")
      .first();

Course relations
students: {
        modelClass: "student",
        relation: Model.ManyToManyRelation,
        join: {
          from: "courses.id",
          to: "students.id",
          through: {
            from: "payments.course_id",
            to: "payments.student_id",
            extra: {
              amount: "amount",
              paymentType: "payment_type",
              invoiceDate: "invoice_date",
              paymentDate: "payment_date",
              confirmationId: "confirmation_id",
            },
          },
        },

base class (extended by Course, Student, Payment)
/**
 * Base class for shared configuration
 * - converts snake_case (db side) <--> camelCase (server side)
 * - sets base model path
 *  - allows relations with modelClass to use 'modelFileName' string
 * - automatic timestamps
 *  - $beforeInsert(): created_at = new Date as ISO string
 *  - $beforeUpdate(): updated_at = new Date as ISO string
 *  - call super[.$beforeInsert()][.$beforeUpdate()] if overriding in subclass
 */
class Base extends Model {
  static get columnNameMappers() {
    return snakeCaseMappers();
  }

  static get modelPaths() {
    return [__dirname];
  }

  $beforeInsert() {
    this.created_at = new Date().toISOString();
  }

// tried with and without this hook method
 $beforeUpdate() {
    this.updated_at = new Date().toISOString();
  }
}

module.exports = Base;

behavior with $beforeUpdate hook removed

updates paymentDate and confirmationId, extra fields on the join table payments
returns updated count instead of Student object

update count is 0 (because Student relation was not updated?)

debug output
{ method: 'update',
  options: {},
  timeout: false,
  cancelOnTimeout: false,
  bindings:
   [ '2019-06-04T19:47:56.942Z',
     'ch_1EhibwChegPuw7tfaOXZ3Nsr',
     1,
     '13',
     1 ],
  __knexQueryUid: '7617d521-6bf1-4e14-bdfc-8e8150a7f04a',
  sql:
   'update "payments" set "payment_date" = ?, "confirmation_id" = ? where "payments"."student_id" in (select "students"."id" from "students" inner join "payments" on "students"."id" = "payments"."student_id" where "payments"."course_id" in (?) and "student_id" = ?) and "payments"."course_id" = ?',
  returning: undefined }

behavior with$beforeUpdate hook setting updated_at on Student

updates paymentDate and confirmationId, extra fields on the join table payments
returns the Student object but without extra fields

debug output
{ method: 'update',
  options: {},
  timeout: false,
  cancelOnTimeout: false,
  bindings: [ '2019-06-04T19:49:22.388Z', 1, '13' ],
  __knexQueryUid: 'ca24b0c2-f5ed-4b52-9e2d-83926d711be5',
  sql:
   'update "students" set "updated_at" = ? where "students"."id" in (select "students"."id" from "students" inner join "payments" on "students"."id" = "payments"."student_id" where "payments"."course_id" in (?) and "student_id" = ?) returning *',
  returning: [ '*' ] }
{ method: 'update',
  options: {},
  timeout: false,
  cancelOnTimeout: false,
  bindings:
   [ '2019-06-04T19:49:22.344Z',
     'ch_1EhidJChegPuw7tfx18bBNn1',
     1,
     '13',
     1 ],
  __knexQueryUid: '99888899-70b2-4049-bace-9d973b524e27',
  sql:
   'update "payments" set "payment_date" = ?, "confirmation_id" = ? where "payments"."student_id" in (select "students"."id" from "students" inner join "payments" on "students"."id" = "payments"."student_id" where "payments"."course_id" in (?) and "student_id" = ?) and "payments"."course_id" = ?',
  returning: undefined }

When you run a patch operation that only has extra properties, there's nothing to update in the student table. We couldn't create an update even if we wanted to. What would that update contain? Therefore the student update is skipped alltogether and nothing gets updated. When you enable the hook, there is something to update and returning works. It's a pity this happens, but there is really no way around it except to create a dummy update like
update students set id = id where ...

but that causes problems when there's a constraint that prevents identifiers from updating (some databases have those). People can also easily add those kind of constraints or triggers themselves to make sure nothing gets updated.

@koskimas ah that makes sense man, i understand.
can you recommend a different way to patch the extra fields and get back the relation object + extra fields?
my goals is to complete all of this relative to a Course instance:

update the extra fields (on the payments table joining courses and students)
return a Student object with the (updated) extra fields

as a workaround i had to create a Student proto method and manually set the fields. but this mutates the object externally. i guess theres nothing wrong with it its just not the type of methods i am used to writing.
id rather i call a query that returns the student + extra fields at once instead of mutating the Student object.
student proto method
 async setPaymentConfirmation(courseId, confirmationId) {
    const paymentDate = new Date().toISOString();

    await this.$relatedQuery("payments")
      .patch({ paymentDate, confirmationId })
      .where("payments.course_id", courseId);

    // set the updated payment properties manually onto the student
    this.$set({ paymentDate, confirmationId });
  }

which is now used in the original method:
course method
static async completeStripePayment(paymentData, stripeService) {
    const { courseId, studentId } = paymentData;

    const course = await this.query()
      .findById(courseId)
      .select(["id", "price", "name"])
      .throwIfNotFound();

    // throws if not found (student not registered)
    const student = await course.getRegisteredStudent(studentId);

    if (student.paymentDate) {
      // student has already paid, exit early
      return student;
    }

    const confirmationId = await stripeService.createCharge(
      course,
      paymentData,
    );

    // calling the student proto method
    await student.setPaymentConfirmation(courseId, confirmationId);

    return student;
  }

Does this work?
this.$relatedQuery("students")
      .patchAndFetchById(studentId, {
        paymentDate: new Date().toISOString(),
        confirmationId
      })

It probably should work (and return the extra props too). If this doesn't work, I'll see if I can easily fix it.

@koskimas hell ya it did! thanks a lot man. i completely overlooked patchAndFetchById. i had tried updateAndFetchById but it (as expected) failed schema validation since i was only setting partial data.
thanks a lot for the help and patience man. im coming from a long time usage of sequelize and objection / knex has been an absolute breath.

Does this work?
this.$relatedQuery("students")
      .patchAndFetchById(studentId, {
        paymentDate: new Date().toISOString(),
        confirmationId
      })

It probably should work (and return the extra props too). If this doesn't work, I'll see if I can easily fix it.

hey @koskimas  i was debugging some weird behavior and realized it led back to this query. it turns out that this query will apply the patch to all the payments (not just that of the student by its studentId). so my tests passed when i had one student but with multiple students it fails (due to a unique constraint error on confirmationId)
two questions

is this the expected behavior? i thought given a studentId it would use that to narrow the scope of the patch but as seen in the log below it does not
do you have any suggestion on accomplishing this behavior (patch the join table, payments, and return the many side, students) but narrowing the patch only to the particular student?

logs
console.log node_modules/knex/lib/logger.js:16
    { method: 'update',
      options: {},
      timeout: false,
      cancelOnTimeout: false,
      bindings: [ 'CREDIT', '2019-08-04T00:00:34.604Z', 'tity', 374, 374 ],
      __knexQueryUid: 'db9966e9-64ed-42f0-965e-a3fe8bc22d0c',
      sql:
       'update "payments" set "payment_type" = ?, "payment_date" = ?, "confirmation_id" = ? where "payments"."student_id" in (select "students"."id" from "students" inner join "payments" on "students"."id" = "payments"."student_id" where "payments"."course_id" in (?)) and "payments"."course_id" = ?',
      returning: undefined }

  console.log node_modules/knex/lib/logger.js:16
    { method: 'select',
      options: {},
      timeout: false,
      cancelOnTimeout: false,
      bindings: [ 411 ],
      __knexQueryUid: '0eb5f4b0-daa6-4d8a-8073-1f131e76f151',
      sql:
       'select "students".* from "students" where "students"."id" = ?' }

this is the part of the query that applies the patch to all the payments rows instead of just that which matches studentId and courseId
where "payments"."student_id"
  in (
    select "students"."id" from "students" inner join "payments"
    on "students"."id" = "payments"."student_id" where "payments"."course_id" in (?)
  )
  and "payments"."course_id" = ?'

Seems like a bug.

Finally fixed. Sorry it took so long. A new version containing this fix will be released shortly.


Handle context done when ci/cd job has a delay

In https://github.com/taubyte/tau/blob/main/protocols/monkey/jobs/run.go#L20, the go routine will wait but will not break if the context ends. It's already channels, all that needs to be done is wrap this up with a select and add a case for ctx.Done().

What error should be returned in case of ctx.Done()?

Yes I would return an error.


Trade --paper missing logging to html file similar to sim function

Trade function with --paper flag is missing logging to html file similar to sim function

use --filename option to save stats
eg:
--filename=/path/to/stats/paperstats.html

this is not working for trade --paper function
the command I used
./zenbot.sh trade --paper --filename=/stats/paperstats.html
so I can write file to /zenbot/stats/paperstats.html
On Sat, Nov 4, 2017 at 2:49 PM, mikeh21<EMAIL_ADDRESS>wrote:

use --filename option to save stats
eg:
--filename=/path/to/stats/paperstats.html
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/carlos8f/zenbot/issues/677#issuecomment-341924860,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AJ8WoZDKaiJjTWeUV_3sTxdYx15fYzi0ks5szL_ZgaJpZM4QPJ3h
.

it works ok for me. check your path is correct. I dont know your dir structure but you may need to use --filename=./stats/paperstats.html
notice ./
On exit you should see:
wrote /home/xxxxx/zenbot/sim/todaytrade.html

what do you mean by "on exit"?
On Sun, Nov 5, 2017 at 10:56 AM, mikeh21<EMAIL_ADDRESS>wrote:

it works ok for me. check your path is correct. I dont know your dir
structure but you may need to use --filename=./stats/paperstats.html
notice ./
On exit you should see:
wrote /home/xxxxx/zenbot/sim/todaytrade.html
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/carlos8f/zenbot/issues/677#issuecomment-341987692,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AJ8WocyE8B8NLgjP1EqVTkEG7NYN91Lcks5szejAgaJpZM4QPJ3h
.

Are you sure? I thought this option is only available for sim not trade
Sent from my Samsung Galaxy smartphone.
-------- Original message --------From: mikeh21<EMAIL_ADDRESS>Date: 11/5/17  10:56 AM  (GMT-06:00) To: carlos8f/zenbot<EMAIL_ADDRESS>Cc: tomeh100<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [carlos8f/zenbot] Trade --paper missing logging to html file similar to sim function (#677)
it works ok for me. check your path is correct. I dont know your dir structure but you may need to use --filename=./stats/paperstats.html
notice ./
On exit you should see:
wrote /home/xxxxx/zenbot/sim/todaytrade.html
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.
{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/carlos8f/zenbot","title":"carlos8f/zenbot","subtitle":"GitHub repository","main_image_url":"https://cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc-7290892c7bb5.png","avatar_image_url":"https://cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0b-11e6-9aed-b52498112777.png","action":{"name":"Open in GitHub","url":"https://github.com/carlos8f/zenbot"}},"updates":{"snippets":[{"icon":"PERSON","message":"@mikeh21 in #677: it works ok for me. check your path is correct. I dont know your dir structure but you may need to use --filename=./stats/paperstats.html\r\n\r\nnotice ./\r\n\r\nOn exit you should see: \r\n\r\n_wrote /home/xxxxx/zenbot/sim/todaytrade.html_\r\n\r\n"}],"action":{"name":"View Issue","url":"https://github.com/carlos8f/zenbot/issues/677#issuecomment-341987692"}}}

on exit stats html output it written. stats are only produced on exit and not live.
im sure enough that I use it every day in live trade.

How do you exit? I do Ctrl + c to exit the process Am I doing something wrong?
Sent from my Samsung Galaxy smartphone.
-------- Original message --------From: mikeh21<EMAIL_ADDRESS>Date: 11/5/17  1:12 PM  (GMT-06:00) To: carlos8f/zenbot<EMAIL_ADDRESS>Cc: tomeh100<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [carlos8f/zenbot] Trade --paper missing logging to html file similar to sim function (#677)
on exit stats html output it written. stats are only produced on exit and not live.
im sure enough that I use it every day in live trade.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.
{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/carlos8f/zenbot","title":"carlos8f/zenbot","subtitle":"GitHub repository","main_image_url":"https://cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc-7290892c7bb5.png","avatar_image_url":"https://cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0b-11e6-9aed-b52498112777.png","action":{"name":"Open in GitHub","url":"https://github.com/carlos8f/zenbot"}},"updates":{"snippets":[{"icon":"PERSON","message":"@mikeh21 in #677: on exit stats html output it written. stats are only produced on exit and not live.\r\n\r\nim sure enough that I use it every day in live trade.\r\n"}],"action":{"name":"View Issue","url":"https://github.com/carlos8f/zenbot/issues/677#issuecomment-341997122"}}}

I would strongly urge you to read the documentation in full and learn the program as much as you can before using it for live trade.
Available command keys:
b - limit BUY
B - market BUY
s - limit SELL
S - market SELL
c - cancel order
m - toggle MANUAL trade in LIVE mode ON / OFF
T - switch to 'Taker' order type
M - switch to 'Maker' order type
o - show current trade options
O - show current trade options in a dirty view (full list)
P - print statistical output
X - exit program with statistical output


[TwitterV2Bridge] Changes to parameters and output titles

A few changes to the bridge parameters and Title of output

All optional parameters are now global. This satisfies #2166
'RT:' and 'R:' are added to the Title of retweets and replies, respectively. This satisfies #1542
Added new optional parameter to set tweet id as Title. This satisfies #2429

Since the auto tester doesnt work, would you mind uploading the html output to termpad.com and link it?
Thanks


add placeholder  filter

Version
Here's what went wrong:

New prop added filterPlaceholder to override the filter placeholder. Defaults to 'Filter...'. Available in version 4.1.0

Thank you very much


Helm custom labels (#369)

Provide the support for global custom labels.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

@mflendrich I got one another issue to fix, so what is the process for merging this PR ?
Thanks !

@ludovic-pourrat there's currently some conflict between it and current next that blocks the merge. You'll want to update your copy of next with upstream changes, merge next into your branch, fix conflicts that occur during the merge, and then push the result.

@rainest fork up-to-date mow.
Thanks.

Ah the damn Github UI was complaining about rebase merge mode only. That should probably have some UI indicator that a squash merge won't cause conflicts :| no matter.
Thank you for your contribution. Please fill out the following form to claim your contributor swag:
https://github.com/Kong/kong/blob/master/CONTRIBUTING.md#contributor-t-shirt.


KAFKA-16933: New consumer unsubscribe close commit fixes

Fixes for the leave group flow (unsubscribe/close):

fix to send Heartbeat to leave group on close even if the callbacks fail
fix to ensure that if a member gets fenced while blocked on callbacks (ex. on unsubscribe), it will clear its epoch to not include it in commit requests
fix to avoid race on the subscription state object on unsubscribe, updating it only on the background thread when the callbacks to leave complete (success or failure).

Also improving logging in this area.

Hey @lucasbru , note I included this small commit https://github.com/apache/kafka/pull/16272/commits/56ac969f0e7f392382b4450b6bc976a5fe5f0331 we realized we needed to avoid the race on unsubscribe/close. I will follow up on another PR with the fix to avoid getting to a revocation of partitions that are not assigned on close, but still having the sanity check at the low level seems a safe bet while the root cause is fixed. cc. @dajac

Build completed with 5 unrelates failures:

Build / JDK 21 and Scala 2.13 / testFenceMultipleBrokers() – org.apache.kafka.controller.QuorumControllerTest
Build / JDK 21 and Scala 2.13 / shouldQuerySpecificStalePartitionStores() – org.apache.kafka.streams.integration.StoreQueryIntegrationTestBuild / JDK 8 and Scala 2.12 / shouldRestoreState() – org.apache.kafka.streams.integration.PurgeRepartitionTopicIntegrationTest
Build / JDK 8 and Scala 2.12 / shouldRestoreState() – org.apache.kafka.streams.integration.PurgeRepartitionTopicIntegrationTest
Build / JDK 8 and Scala 2.12 / testDescribeQuorumStatusSuccessful [6] Type=Raft-Combined, MetadataVersion=4.0-IV0,Security=PLAINTEXT – org.apache.kafka.tools.MetadataQuorumCommandTest

Test failures are unrelated
Merged to trunk and cherrypicked to 3.8 cc @jlprat

Hey @philipnee, agreed there is still an issue with the Interrupt discovered with the stress tests, it's just that as discussed offline that will come in a separate PR (just to not keep stretching this one). Just for the record, there is also another issue similar to the one fixed on this PR for the subscription state https://issues.apache.org/jira/browse/KAFKA-16954. I plan to open a PR today with both fixes for this related blocker. cc. @lucasbru , @jlprat . Thanks!


introduces interface for compaction coordination

As an initial step for #4005, introduces an interface for the compaction coordination service in the manager.  Everything in the manager uses this interface to interact with the compaction coordinator.  In order to make this change metrics and compaction queues were moved from manager code to the compaction coordinator code.  Both of these changes were
good for encapsulation.   Hopefully further changes for #4005 lead to
more encapsulation and less code in the Manager class.

In 243640d I removed the interface.  The reason for this was that I may not pursue making other functional services in the manager use an interface in the short term and I did not want one thing following a pattern that nothing else does.  So deferring the change to use an interface for now.  However, attempting to use an interface highlighted code that was in the Manager class that should have been in the CompactionCoordinator class, so I am keeping those changes in this PR. I think the change to using interfaces for functional service in the manager will be nice, but I think its confusing if its partially done and the purpose of the changes is clean up the manager code not make it more confusing.