How to get dates out of a BSONObject

If the following BSONObject is returned from a (Mongo) database, how to get the "d" date out of this object, at least the unix date integer?
BSONObject({ "_id" : { "$oid" : "55d8f6b1f69dbaebaacd7e58" }, "d" : { "$date" :<PHONE_NUMBER>000 }, "f" : 0.25., "s": "hello" })

This should be fixed by #13


Manifest for installing Local Apps

Proposal by @zaiste - introduce a Manifest that builds a Local App. RFC needed

Not valid anymore


Decrease spacing on desktop for the persistent nav

Changes
Reduces spacing on the persistent nav on desktop.
@DoSomething/front-end

:ship:


Release Google.Cloud.Memcache.V1 version 1.0.0

Changes in this release:
No API surface changes since 1.0.0-beta01

Created release for Google.Cloud.Memcache.V1-1.0.0


Compose box - Unable to enter edit mode when pressing ArrowUp

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 9.0.29-0
Reproducible in staging?: Y
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail: https://expensify.testrail.io/index.php?/tests/view/4923707
Email or phone of affected tester (no customers<EMAIL_ADDRESS>Issue reported by: Applause - Internal Team
Action Performed:

Log in to staging.new.expensify.com
Navigate to a conversation with a secondary user you have access to
Send two messages to the secondary user
As secondary user navigate to conversation and send a message to the primary user
As primary user press the ArrowUp while focusing on compose box

Expected Result:
The last message sent by the primary user enters edit mode
Actual Result:
The last message sent by the primary user doesn't enter edit mode
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/user-attachments/assets/9bc74d93-f2aa-4fd1-8251-f9daccaf5168
View all open jobs on GitHub

Able to repro on staging v9.0.29-1

Seems to be a dupe of https://github.com/Expensify/App/issues/48549 which has ongoing investigation. Closing this out.


Increased tap-area for story-options

@sreilly can you increase the tap-area of the story options so we can decrease the amount of misses there?

@thm, increased the tap-able area for the story options. Here are the actual sizes, highlighted in code.

@SwiftlyDeft awesome, thanks!


[Bug Report] Nuxt Pagination validateState was assigned to but it has no setter

Element UI version
2.5.4
OS/Browsers version
Mac OS X / Chrome
Vue version
2.6.7
Reproduction Link
https://github.com/njleonzhang/vue-data-tables/issues/211
Steps to reproduce
  <el-pagination layout="prev, pager, next, jumper, sizes, total"></el-pagination>

What is Expected?
No warning
What is actually happening?
[Vue warn]: Computed property "validateState" was assigned to but it has no setter.
found in
 at packages/input/src/input.vue

validateState() {
   return this.elFormItem ? this.elFormItem.validateState : '';
}

If you don't put ElInput in ElForm, validateState will be empty. I think it's not a bug of Element.

Hello @ziyoung I am getting the same error using element-ui's select component. How do I go about fixing it please.


Add back event handlers for pause, play, next and prev

This PR solves #112 by adding back event handlers for pause, play, next and prev.

Play, Next, Previous controls are not trigger event rarely one or two times are firing after so many time of click.


Fix ReadAllFromBigQuery leak temp dataset

Caught by CleanupGCPResource workflow. There are many stale "bq_read_all_" datasets in the test project.
There is a consistent temp dataset leaking for Python SDK's ReadAllFromBigQuery. Each run will leave an empty dataset prefixed "bq_read_all_"
Cause:

ReadFromBigQuery sets a default dataset of prefix "bq_read_all_"

https://github.com/apache/beam/blob/faff55c2882a0083a8cb8d1e2cf3ec9d365f677f/sdks/python/apache_beam/io/gcp/bigquery_read_internal.py#L215

BigQueryWrapper thinks this is a user configured dataset and won't delete it

https://github.com/apache/beam/blob/faff55c2882a0083a8cb8d1e2cf3ec9d365f677f/sdks/python/apache_beam/io/gcp/bigquery_tools.py#L895
Solution:
Remove the prefix so BigQueryWrapper will use the default temp_dataset_* prefix and will delete it when clean_up_temporary_dataset called
However, this will now create each dataset for each element. To reduce the overload, move create/delete dataset into setup/teardown so that they are per worker basis.
Please add a meaningful description for your change here

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI or the workflows README to see a list of phrases to trigger workflows.

Tested with
pytest -r s --log-cli-level=INFO --capture=no  apache_beam/io/gcp/bigquery_read_it_test.py::ReadAllBQTests::test_read_queries --test-pipeline-options='--runner=DirectRunner --project=... --region=us-central1 --temp_location=gs://.../tmp'
Previously, there is a "bq_read_all..." dataset left
Now, it created one dataset
INFO     apache_beam.io.gcp.bigquery_tools:bigquery_tools.py:816 Dataset ...:beam_temp_dataset_f4dfd535a5ac4d4f9ccd961eb9a084fb does not exist so we will create it as temporary with location=US

and after test run, checked that this dataset no longer exists.

R: @ahmedabu98

After this change there is still dataset leak. Found that on Dataflow runner DoFn.teardown is never called even if the job ended successfully (on Direct Runner, teardown is called, however).


Expose explanation for a code

In https://github.com/koxudaxi/ruff-pycharm-plugin/issues/147 we were discussing the possibility to annotate the noqa: <code> codes with the example text as it is on the website. Is there a way to get this information from ruff? E.g. something like ruff explain <code> would return the explanation for the code (in machine readable format, e.g. --json)?

You can try
ruff rule <code>

Hmm, yeah, the JSON output should probably include the documentation? Similarly to how ruff rule S101 shows:
# assert (S101)

Derived from the **flake8-bandit** linter.

## What it does
Checks for uses of the `assert` keyword.

## Why is this bad?
Assertions are removed when Python is run with optimization requested
(i.e., when the `-O` flag is present), which is a common practice in
production environments. As such, assertions should not be used for runtime
validation of user input or to enforce  interface constraints.

Consider raising a meaningful error instead of using `assert`.

I can work on it.

BTW: is it intended that the non-json output never shows the summary? Use of assert detected is in ruff rule S101 --format=json but not in ruff rule S101. I would have expected that this is basically the headline: # assert (S101): Use of 'assert' detected or so.

I would be in favor of always showing message_formats.


Improve Volto error messages

I ran across this blogposts about how to write good error messages:
https://uxplanet.org/how-to-write-good-error-messages-858e4551cd4?gi=532c11e13d0
I think we can learn a lot from those advices and significantly improve the user experience on errors in Volto. Any takers?

I think we can learn a lot from those advices and significantly improve the user experience on errors in Volto. Any takers?

I would love to contribute to this. Can you please specify more on this issue possibly with some example error scenarios?

Correct me if I am wrong. This is an error message component, right?

I would like to work on this error (if it's still open )

@tisto is this issue still open? i would like to work on it

@tisto i would like to work on this issue.

As I am unfamiliar with the current project, can someone please list the error messages that need improvement?

please @tisto assign this issue to me I have a great curiosity to solve this issue I love in creating UI. I Definatly give a impressive UI of this error msg
Please @tisto  assign me !

@tisto I'm closing this issue. It's 4.5 years old, there is no specific direction in the description, and the original article was deleted. We need to know exactly what is wrong with a specific and current error message to fix it.
@MontiRajput please read and follow First-time contributors, especially Things not to do, Contributing to Plone, and Contributing to Volto.


Allow unused custom fields

I have 2 templates now which I dynamically switch to in the app (and there will be more templates in the future).
One template is for Patients, and the other is for Patient+Caregivers.
so i will always send 10 fields for patients (Firstname, Lastname, etc),
and optionally send an additional 10 fields dynamically if Im also sending Caregiver information (which are collected in 1 form/page in our app).
I will always add 5 more fields for the their Doctor's information (information from another form/page in our app),
and always send over a few special questions pulled elsewhere from our questionnaire (gender, DOB, if they smoke, etc)
Now I dynamically pick one of the 2 templates, then just send all appropriate vars and the template should just use what it needs. But i think the API requires you to use everything you send up otherwise it errors. You cant send extra fields you may use but aren't using currently.
It would be nice if we can allow the developer to send up all their custom vars, and the server will just prefill what the template uses. Otherwise, I have to dynamically figure out which fields I'm sending up for specific templates, and that may not be nice if our Marketing department decides one day they want to display DOB and Gender fields (in TemplatePatient and TemplateCaregiver) and then decide a week later to remove from TemplatePatient (but keep in TemplateCaregiver). It would cause an error to happen for TemplatePatient if Im still sending up the variable.
If the API were to opt-into lax validation of variables, then Marketing could make changes without IT updating the code on which variables to send up. Something like so:
client.checkAllCustomFieldKeyExistance(false); //by default, set to true
request.setCustomFieldValue ('gender', 'Male'); //used
request.setCustomFieldValue ('DOB', '12/17/1982'); //not used, but maybe template updated tomorrow and if so this will be used... at least won't error because checkAllCustomFieldKeyExistance is set
etc

Otherwise I have to check which template im using, and dynamically figure out which fields i want to send upTemplatePatient  (which is fine for example for the Caregiver fields which arent applicable to the Patient template, but some fields theoretically could be used at any point in both templates like Gender/DOB/etc).

Maybe I can make it simpler:
Having patient_dob in the doc/template
but not sending up that variable is fine ...
Not having patient_dob in the doc/template,
and sending up patient_dob is not fine.
Since Marketing is setting up the templates, it would be nice if as a developer I can just send up all vars and let the template figure out what to use/prefill and not use (it can just avoid vars that aren't in the template).

@armyofda12mnkeys Are you able to fetch the Template object first, and then use that to dynamically request the fields you need from the user (and also dynamically submit those fields when you send the request)?

@armyofda12mnkeys I'll consider this issue closed shortly unless I hear back from you. Thanks!


my own env doesn't converge

Hey,
I added my own env dopamine (  repo:  https://github.com/KatyNTsachi/Hierarchical-RL  )
I tried to train DQN agent on it, but it won't converge.
This is reward graph

I did minor changes to the original code, I checked the returned picture and the returned reward and it seems like it's doing what it should do.
The game that I created is very easy, you just need to take prizes that shows on the screen.
the game looks like this:

the green ball is the player and the pink ball is the prize.
Any idea how to solve this problem?
Thanks,
Tsachi

The env repo is private


Call Webservice and get response

I want to call web service from PhantomJs and get data or object from that. In other words, I want something like below code for PhantomJs:
 $.ajax({
    type: "POST",
    url: 'http://<IP_ADDRESS>/Service.asmx/HelloWorld',
    data: {data: 'somethings'},
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(data) {
        var result= data.d;
    }
});

My question in Stackoverflow:
http://stackoverflow.com/questions/35377581/phantomjs-call-webservice

Thank you for submitting this ticket!
This issue tracker primarily serves as the tool to report and track bugs, defects, and development tasks.
For the general question, code review request, build problem, or other related discussion, please post it to either:

the official PhantomJS users mailing-list
Stack Overflow (with phantomjs tag)

If you have not read it yet, please check also a few tips on Effective Q&A.


fixes and improvements in operationIdFormat

adds {{path}} token to operationIdFormat
uses real endpoint class' {{className}} and {{packageName}} instead of class/package of compilation unit where swagger and/or jaxrs/spring annotations are placed. This is important in case of use inheritance

Can we get more attention to this PR? I know it's been a few years but the {{path}} change in particular would be very ideal for our use case.


login issue

Log in using form.
Error at pixiv_login():(, ControlN
otFoundError(“no control matching name ‘pixiv_id'”,), )
Traceback (most recent call last):
File “PixivUtil2.py”, line 1718, in main
File “PixivBrowserFactory.pyc”, line 178, in loginHttp
File “mechanize_form.pyc”, line 2780, in setitem
File “mechanize_form.pyc”, line 3101, in find_control
File “mechanize_form.pyc”, line 3185, in _find_control
ControlNotFoundError: no control matching name ‘pixiv_id’
press enter to exit.
========log file=======
2015-02-17 12:13:24,424 – PixivUtil20150121 – INFO – ###############################################################
2015-02-17 12:13:24,424 – PixivUtil20150121 – INFO – Starting…
2015-02-17 12:13:24,427 – PixivUtil20150121 – ERROR – Error at loadConfig()
Traceback (most recent call last):
File “PixivConfig.pyc”, line 90, in loadConfig
File “PixivHelper.pyc”, line 269, in OpenTextFile
File “codecs.pyc”, line 881, in open
IOError: [Errno 2] No such file or directory: u’D:\softup\pixivutil20150121\config.ini’
2015-02-17 12:13:24,430 – PixivUtil20150121 – INFO – Setting log level to: DEBUG
2015-02-17 12:13:24,430 – PixivUtil20150121 – INFO – No default cookie jar available, creating…
2015-02-17 12:13:24,440 – PixivUtil20150121 – INFO – Only process member where day last updated >= 7
2015-02-17 12:13:33,026 – PixivUtil20150121 – INFO – Log in using form.
2015-02-17 12:13:34,118 – PixivUtil20150121 – ERROR – Error at pixiv_login():(, ControlNotFoundError(“no control matching name ‘pixiv_id'”,), )
2015-02-17 12:13:34,119 – PixivUtil20150121 – ERROR – Error at pixiv_login(): (, ControlNotFoundError(“no control matching name ‘pixiv_id'”,), )
Traceback (most recent call last):
File “PixivBrowserFactory.pyc”, line 178, in loginHttp
File “mechanize_form.pyc”, line 2780, in setitem
File “mechanize_form.pyc”, line 3101, in find_control
File “mechanize_form.pyc”, line 3185, in _find_control
ControlNotFoundError: no control matching name ‘pixiv_id’
2015-02-17 12:13:34,121 – PixivUtil20150121 – ERROR – Unknown Error: no control matching name ‘pixiv_id’
Traceback (most recent call last):
File “PixivUtil2.py”, line 1718, in main
File “PixivBrowserFactory.pyc”, line 178, in loginHttp
File “mechanize_form.pyc”, line 2780, in setitem
File “mechanize_form.pyc”, line 3101, in find_control
File “mechanize_form.pyc”, line 3185, in _find_control
ControlNotFoundError: no control matching name ‘pixiv_id’

Not to but in, but:
No such file or directory: u’D:\softup\pixivutil20150121\config.ini’
On Tue, Feb 17, 2015, 13:51 rogerlhc<EMAIL_ADDRESS>wrote:

Log in using form.
Error at pixiv_login():(, ControlN
otFoundError(“no control matching name ‘pixiv_id'”,), )
Traceback (most recent call last):
File “PixivUtil2.py”, line 1718, in main
File “PixivBrowserFactory.pyc”, line 178, in loginHttp
File “mechanize_form.pyc”, line 2780, in setitem
File “mechanize_form.pyc”, line 3101, in find_control
File “mechanize_form.pyc”, line 3185, in _find_control
ControlNotFoundError: no control matching name ‘pixiv_id’
press enter to exit.
========log file=======
2015-02-17 12:13:24,424 – PixivUtil20150121 – INFO –
###############################################################
2015-02-17 12:13:24,424 – PixivUtil20150121 – INFO – Starting…
2015-02-17 12:13:24,427 – PixivUtil20150121 – ERROR – Error at loadConfig()
Traceback (most recent call last):
File “PixivConfig.pyc”, line 90, in loadConfig
File “PixivHelper.pyc”, line 269, in OpenTextFile
File “codecs.pyc”, line 881, in open
IOError: [Errno 2] No such file or directory:
u’D:\softup\pixivutil20150121\config.ini’
2015-02-17 12:13:24,430 – PixivUtil20150121 – INFO – Setting log level to:
DEBUG
2015-02-17 12:13:24,430 – PixivUtil20150121 – INFO – No default cookie jar
available, creating…
2015-02-17 12:13:24,440 – PixivUtil20150121 – INFO – Only process member
where day last updated >= 7
2015-02-17 12:13:33,026 – PixivUtil20150121 – INFO – Log in using form.
2015-02-17 12:13:34,118 – PixivUtil20150121 – ERROR – Error at
pixiv_login():(, ControlNotFoundError(“no control matching name
‘pixiv_id'”,), )
2015-02-17 12:13:34,119 – PixivUtil20150121 – ERROR – Error at
pixiv_login(): (, ControlNotFoundError(“no control matching name
‘pixiv_id'”,), )
Traceback (most recent call last):
File “PixivBrowserFactory.pyc”, line 178, in loginHttp
File “mechanize_form.pyc”, line 2780, in setitem
File “mechanize_form.pyc”, line 3101, in find_control
File “mechanize_form.pyc”, line 3185, in
find_control ControlNotFoundError: no control matching name ‘pixiv_id’
2015-02-17 12:13:34,121 – PixivUtil20150121 – ERROR – Unknown Error: no
control matching name ‘pixiv_id’ Traceback (most recent call last): File
“PixivUtil2.py”, line 1718, in main File “PixivBrowserFactory.pyc”, line
178, in loginHttp File “mechanize_form.pyc”, line 2780, in _setitem
File “mechanize_form.pyc”, line 3101, in find_control
File “mechanize_form.pyc”, line 3185, in _find_control
ControlNotFoundError: no control matching name ‘pixiv_id’
—
Reply to this email directly or view it on GitHub
https://github.com/Nandaka/PixivUtil2/issues/68.

I use a clean pixivUtil,so there's no config.ini.
And this {No such file or directory: u’D:\softup\pixivutil20150121\config.ini’} is not an error.
try to login ,don't use keepsignedin.

Oh, I see, for a quick work around, log in on the website, look at your cookies and copy the value of PHPSESSID.
then paste it in: cookie =  in the config.ini and set keepsignedin = 1
Here's my error from my log:
2015-02-17 18:06:38,548 - PixivUtil20150121 - ERROR - Error at pixiv_login():(<class 'mechanize._form.ControlNotFoundError'>, ControlNotFoundError("no control matching name 'pixiv_id'",), <traceback object at 0x105ba6440>)
2015-02-17 18:06:38,548 - PixivUtil20150121 - ERROR - Error at pixiv_login(): (<class 'mechanize._form.ControlNotFoundError'>, ControlNotFoundError("no control matching name 'pixiv_id'",), <traceback object at 0x105ba6440>)
Traceback (most recent call last):
  File "/Applications/PixivUtil/PixivBrowserFactory.py", line 178, in loginHttp
    self['pixiv_id'] = username
  File "/usr/local/lib/python2.7/site-packages/mechanize/_form.py", line 2780, in __setitem__
    control = self.find_control(name)
  File "/usr/local/lib/python2.7/site-packages/mechanize/_form.py", line 3101, in find_control
    return self._find_control(name, type, kind, id, label, predicate, nr)
  File "/usr/local/lib/python2.7/site-packages/mechanize/_form.py", line 3185, in _find_control
    raise ControlNotFoundError("no control matching "+description)
ControlNotFoundError: no control matching name 'pixiv_id'
2015-02-17 18:06:38,572 - PixivUtil20150121 - ERROR - Unknown Error: no control matching name 'pixiv_id'
Traceback (most recent call last):
  File "/Applications/PixivUtil/PixivUtil2.py", line 1718, in main
    result = PixivBrowserFactory.getBrowser(config=__config__).loginHttp(username, password)
  File "/Applications/PixivUtil/PixivBrowserFactory.py", line 178, in loginHttp
    self['pixiv_id'] = username
  File "/usr/local/lib/python2.7/site-packages/mechanize/_form.py", line 2780, in __setitem__
    control = self.find_control(name)
  File "/usr/local/lib/python2.7/site-packages/mechanize/_form.py", line 3101, in find_control
    return self._find_control(name, type, kind, id, label, predicate, nr)
  File "/usr/local/lib/python2.7/site-packages/mechanize/_form.py", line 3185, in _find_control
    raise ControlNotFoundError("no control matching "+description)
ControlNotFoundError: no control matching name 'pixiv_id'

Thanks.
I'm using keepsignedin = 1,and it's working.
I think PixivUtil need an update to fix this.

Thanks for the update.已发红包，查一下paypal吧 :)，恭喜发财~~~


Crashes on "Open file"

Here are the logs:
https://gist.github.com/stevenroose/d788446323d99694a484212a3d7635e8
I'm on Arch using GNOME 3 that uses Wayland.

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/39213158-crashes-on-open-file?utm_campaign=plugin&utm_content=tracker%2F15718991&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F15718991&utm_medium=issues&utm_source=github).

So, what's weird about this is that I always use Arch on GNOME 3, and I switch back and forth from Wayland to X as various bugs annoy me. I've never seen a segfault like this.

Do you have custom versions of gtk3, qt, go, etc. installed? The error mentions something about a bad GDK/X11 window, like GDK is expecting to get an X11 window. In any case, it appears that the error message has nothing to do with LimeText since we never talk directly to X11 or Wayland.  It's fixed now (I just use X and ditched Wayland)!


elm-make fails with path containing spaces

I know using spaces in folders is a recipe for disaster, but that is very common on Windows if the user is set with full names (like mine: C:\Users\Victor Villas).
In this case, elm-make fails and it inutilizes some of the package functionalities.
Note that if I use the command Elm: Make (Ctrl+F5) manually it works, but nevertheless the background checking does not.

What I could trace down after reading the source files is the following:
The runMake command runs elm-make through a child process like this:
function runMake(editor : vscode.TextEditor) : void {
    (...)
    const file = editor.document.fileName
    make = cp.spawn('elm-make', [file,'--yes', '--output=' + name], {cwd: cwd})

The linter in the other hand, goes somewhat different:
function checkForErrors(filename): Promise<IElmIssue[]> {
    (...)
    let cmd: string = 'elm-make ' + filename + ' --report=json --output /dev/null';
    (...)
}

export function runLinter(document: vscode.TextDocument): void {
let uri: vscode.Uri = document.uri;
checkForErrors(uri.fsPath)
(...)
}

I suspect that spawn automatically handles paths with spaces, while manually concatenating the filename in the checkForErrors does not.

Thanks. You are right, and I've done a done a quick fix for it in #31


Restore of remote backup in new namespace

What you expected to happen:
Test case for testing feature of restore of remote backup in different namespace
ref: https://github.com/openebs/velero-plugin/pull/72
Anything else we need to know?:

https://github.com/openebs/e2e-tests/pull/366


Feature request: a way to see most common image formats

Hi @basarat Do you think is possible to see images in alm editor?
Currently my project have some images but when I try to open it with alm tool it doesnt understand the image format and show a lot stuft that I dont understand buajaja :smile_cat:

Right on it. Will try and do it tonight :rose:

Thanks man!! you are the best!! :smile_cat:

Released with 0.0.68 :rose:


Track Python Panel closes

What changes are proposed in this pull request?

Add an analytics event listener to track Python panel closes with close_panel
Updated the exit useEffect of CustomPanel.tsx which touches all panels to call the newly created trackPanelClose function

How is this patch tested? If it is not, please explain why.

Minor changes, should pass tests from merge into develop

Release Notes
Is this a user-facing change that should be mentioned in the release notes?

[x] No. You can skip the rest of this section.
[ ] Yes. Give a description of this change to be included in the release
notes for FiftyOne users.

(Details in 1-2 sentences. You can just refer to another PR with a description
if this PR is part of a larger change.)
What areas of FiftyOne does this PR affect?

[x] App: FiftyOne application changes
[ ] Build: Build and test infrastructure changes
[ ] Core: Core fiftyone Python library changes
[ ] Documentation: FiftyOne documentation changes
[ ] Other

Summary by CodeRabbit

New Features

Introduced tracking for when the custom panel is closed, enhancing user interaction insights.
Updated the interface to allow for tracking context changes within the custom panel.

Bug Fixes

Improved functionality related to panel state changes and event tracking.

We should really get into the habit of including tests for all prs.


Any thoughts on supporting something better than pickling?

Pickling is about as slow as it can get, some benchmarks here.
Any future plans for adding support for something faster, like msgpack, or even json?
I realize that some choices will require the cachier-wrapped functions to restrict the data that they return, but given how slow pickle is, and that the point of caching is at least in part to speed things up, and specially not to slow them down - I think this would be a good feature.
Any thoughts on this?

No thoughts at the moment.
I'd love to hear suggestion, and later on contributions. :)
I think anything that is switched to should be partial, and not restrict the data returned.
Meaning, if using types X, Y and Z use msgpack, otherwise pickle, etc.
So optimize where you can.
Recall that the main use case of this package is to save very long calls - minutes and upwards.
It'll be call to optimize stuff, but not in exchange of reducing usability.

I know this is an old issue, but my request is somewhat similar, regarding alternative backend support. I will open an issue separately if you recommend! I use https://github.com/uqfoundation/dill to pickle a wider range of objects, and I was hoping cachier could enable swapping out of the pickle module for alternative implementations (which have the same API surface of loads/dumps, etc.).
So I went ahead and hacked it in, literally adding a dill requirement to setup.py, and replacing every import pickle to import dill as pickle, and it happened to work for my personal use-case! See https://github.com/blakeNaccarato/cachier/tree/dill for the hacked in dill support.
This is a very quick hack, not the intended final feature implementation, and more importantly I haven't run any tests whatsoever, except for the one place I'm using the caching right now for a SimpleNamespace housing the namespace from a ploomber-engine Jupyter notebook.

If there were a better back-end in place I know I'd benefit from my typical use case: caching API calls for cost and performance saves (e.g. to OpenAI the way I did in this gist)

I'm interested in helping to implement this, while heeding these recent words of wisdom from a https://github.com/Parsl/parsl maintainer.

Two new questions I'm [...] asking when people want to contribute big components. Who is going to maintain this component in a year's time?  What does your PR break for other [app] users who aren't using your new component and don't want to? They're both questions that try to address this big leap from "runs in my fork in my environment" to "released into software other people already use".

So my dill hack definitely works in my fork, but I think the level of maintenance available to the project will determine the sum total new feature surface area added here, to facilitate dill as a backend, or other arbitrary backends.
I think an extension interface makes sense, where the user code can supply functions which conform to a certain protocol or shape, and then cachier can invoke those functions when building the cache file.
The first idea that comes to mind is allowing custom loads and dumps methods to be supplied by the user, for backends which conform to serialization/pickle-like protocols. This wouldn't account for all conceivable extensions to the kinds of serialization desired by users, but an overwrought extension interface would probably be too much maintenance burden, and maybe the YAGNI principle applies here.
Also maybe interfacing at the loads/dumps level isn't even the right "layer" for such an extension interface, so I'm open to suggestions.
So for the "who's going to maintain this in a year's time" question, I think I could manage to maintain it if it's a simple loads/dumps interface, only as long as the specification of that interface is specific enough to carve out a small feature set. I wouldn't be comfortable implementing this as an async-capable interface, for instance.
And for the "what does it break" for those who "aren't using" this or "don't want to", I think this could be implemented in such a way that the default is pickling, and only passing some additional serialization primitives to the @cachier decorator (or alternatively customizing as a module options?) will not break default usage.

I like loads/dumps idea! As long as default behavior isn't affected, if you wanted to take a crack at implementation, I don't see why we couldn't incorporate it.

I like the load/dumps idea as well! I suggest you give this a go in a thoroughly documented and tested PR, and we'll see how it goes. I'm opening a new issue regarding your idea for per-type hashers.

Alright, I think can start formulating this. I have questions with respect to implementation, but maybe it'll be easier to ask the user-facing questions first.
It seems sensible that a new decorator keyword argument should receive the custom serialization/deserialization logic from the user, which will be used in caching. I think the new argument should receive custom load and dump callables from the user, maybe a loader/dumper named tuple for ergonomics?
Both pickle and dill have Pickler- and Unpickler-like objects with load and dump methods, allowing customization of the pickling protocol and such. The user-facing API will have to pass down these user-supplied callables into cachier.
I see that the Mongo core also uses pickle, so should its pickler/unpickler be customized by this new argument as well? That's probably a question for later.
I guess the minimally-invasive initial implementation would introduce a new core, e.g. byop_core.py (bring your own pickler, totally a placeholder that needs renaming), which is parametrized on the user-supplied load/dump methods. Then if that works well, pickle_core.py and other cores can be refactored to derive from it in a non-breaking way, otherwise the significant logic duplication across pickle_core.py and byop_core.py can diverge.
To be a bit more specific, it looks like byop_core.py would duplicate pickle_core.py almost exactly, but with additional parametrization on the load and dump methods used, perhaps in a ByopCore (name pending) subclass of _BaseCore. Optionally, then pickle_core.py could be refactored to get an instance of _ByopCore parametrized on the pickle-specific loader/dumper.
All of this would probably mean generalizing the pickle.load and pickle.dump calls (currently specifically called via module import) and embedding them in the logic of _BaseCore or a new abstract subclass of it. New tests covering this would also be needed, implying at least the test logic will require a new dependency (e.g. dill) to provide a real-world loader/dumper alternative. Or at least a superficially-customized loader/dumper from the standard library could be thrown at it.
There's also docs changes needed for this, which would document the new parameter and probably a guided example. I would probably use dill as an example, and an example with the pickling protocol set to 5 instead of the default of 4, but not require it in project dependencies.
In addition to this, a specification as to what constitutes acceptable user-supplied loader/dumpers should be pointed to, e.g. the data stream format laid out in the pickle standard library documentation. The narrowness of that specification determines how useful this feature is, though. If this customization amounts to "you can supply anything as long as it's pickle", then it doesn't really satisfy the "something better than pickling" part of the OP's feature request.
Maybe there's a way to say, "User-supplied loader/dumpers should conform to . Technically, any loader/dumper that reads and writes bytes will do, but functionality is not guaranteed for exotic deviations from ." I don't know, I get the feeling I'm opening a can of worms here, the whole point of this feature is to make cachier's serialization/deserialization logic more user-customizable, but there is always going to be a degree of "try at your own risk" here.
Just let me know what you think about some of the details given here, and I'll start gradually working towards an implementation. I'm working this in hobby time, so it's probably not going to progress at breakneck speed, at least there will be ample time to think on these details in that case.

Random thoughts:
User-facing API: Yup, a new keyword is in order. And a named tuple makes sense.
External/internal boundary: Regarding how to embed information about the de/serializing package in the file, what about the file extension?
About the mongo core - yes, I think that is for later.
Generalizing existing internals: Good points overall.
Documentation: Sounds good.
Definition of acceptable user-supplied loaders and dumpers: I think you worry to much about this. We should accept only drop-in replacements for pickle, and responsibility of proper use is on the user, like everywhere in Python. :)
Conclusion: Sounds good. Work at it in your own pace and let me know when you have need for advise.

Thanks @shaypal5 for redirecting my nervous energy about specification and scope 😅. I'm becoming more interested in contributing lately, and my unfamiliarity with external codebases and processes manifests as overthinking it all. Just continue to nudge me if I'm thinking too much about a particular thing.
Regarding embedding loader/dumper information in cache filenames/extensions, should the signature be a hash, or loader/dumper function names? Embedding some kind of hash may be unwieldy and overly-specific, but embedding just the loader/dumper function names may be brittle (e.g. their implementation changes but names stay the same).
Maybe a minimal approach is to not encode the custom loader/dumper into the cache file at all, and just let decoding fail if the user changed the loader/dumper between runs. The user can decide how to handle that exception, e.g. reset the cache.
This would avoid adding more exception handling or logic to the cache read path, which is probably being called by user code in hot loops. The only issue with this minimal approach could be that data successfully unpickles but is silently corrupted by reading with a slightly different loader.

Great, I'll gradually work these things into the PR. I'll implement the naming scheme in a way that addresses these points. I think you're already embedding argument hashes when separate_files is enabled, so I'll make sure this plays nicely with that machinery, and follows similar patterns. I need to remember we can always tweak things at review time, so it need not be perfect. Thanks for the welcoming environment you're facilitating here, I'm looking forward to taking a crack at this.


two-boot installed on PPP/ EE.  USB mode works, but can't boot from SD.

I've installed two-boot on my PPP/ Enterprise Edition, purchased 2022.01.27.  tow-boot is v.2022.07-006.  I can boot Mobian off of eMMC, and I can pwr+vol.up to get into USB mode, but I can not boot anything off of the SDCard using pwr+vol.dn.
I have tried the two-boot installer itself.  That failed, even though I was able to boot using the RE switch.  I have included the serial output of the RE boot, in the next message.  (I see some errors at the end.)
I have also tried a working Manjaro on SD.  That too failed, even though I can boot using RE.  I have included the serial output of my pwr+vol.dn attempt, which then ends up booting from eMMC, two messages hence.

Using RE to boot Tow-boot installer from SD because prw+vol.dn failed:

Tow-Boot TPL 2022.07
Channel 0: LPDDR4, 50MHz
BW=32 Col=10 Bk=8 CS0 Row=15 CS1 Row=15 CS=2 Die BW=16 Size=2048MB
Channel 1: LPDDR4, 50MHz
BW=32 Col=10 Bk=8 CS0 Row=15 CS1 Row=15 CS=2 Die BW=16 Size=2048MB
256B stride
lpddr4_set_rate: change freq to 400000000 mhz 0, 1
lpddr4_set_rate: change freq to 800000000 mhz 1, 0
Trying to boot from BOOTROM
Returning to boot ROM...
Tow-Boot SPL 2022.07
jedec_spi_nor flash@0: unrecognized JEDEC id bytes: ff, ff, ff
jedec_spi_nor flash@0: unrecognized JEDEC id bytes: ff, ff, ff
Trying to boot from MMC2
NOTICE:  BL31: v2.6(release):
NOTICE:  BL31: Built : 00:00:00, Jan  1 1980
Tow-Boot 2022.07 006 [variant: boot-installer]
SoC: Rockchip rk3399
Reset cause: POR
Model: Pine64 PinePhonePro
DRAM:  3.9 GiB
Initializing Pinephone Pro charger
PMIC:  RK8180 (on=0x80, off=0x08)
Core:  324 devices, 34 uclasses, devicetree: separate
MMC:   mmc@fe310000: 3, mmc@fe320000: 1, mmc@fe330000: 0
Loading Environment from nowhere... OK
In:    serial
Out:   serial
Err:   serial
Model: Pine64 PinePhonePro
Net:   No ethernet found.
starting USB...
Bus usb@fe380000: ehci_generic usb@fe380000: Failed to get clocks (ret=-19)
Port not available.
Bus usb@fe3a0000: USB OHCI 1.0
Bus usb@fe3c0000: ehci_generic usb@fe3c0000: Failed to get clocks (ret=-19)
Port not available.
Bus usb@fe3e0000: USB OHCI 1.0
scanning bus usb@fe3a0000 for devices... 1 USB Device(s) found
scanning bus usb@fe3e0000 for devices... 1 USB Device(s) found
scanning usb for storage devices... 0 Storage Device(s) found
Please press [ESCAPE] or [CTRL+C] to enter the boot menu.
off
off
switch to partitions #0, OK
mmc1 is current device
Scanning mmc 1:2...
Found U-Boot script /boot.scr
512 bytes read in 3 ms (166 KiB/s)
Executing script at 00500000
::
:: celun FIT image boot script
::
devtype = mmc
devnum = 1
bootpart = 2
:: Auto-booting FIT image -> Reading file9340416 bytes read in 981 ms (9.1 MiB/s)
-> Attempting boot...## Executing script at 00600000
sha1+
:: Auto-booting FIT image...
flatfdtfile=rockchip-rk3399-pinephone-pro.dtb
Loading kernel from FIT Image at 00600000 ...
Using 'default-boot-rockchip-rk3399-pinephone-pro.dtb' configuration
Trying 'kernel' kernel subimage
Description:  Kernel
Type:         Kernel Image
Compression:  lzma compressed
Data Start:   0x006000bc
Data Size:    3896539 Bytes = 3.7 MiB
Architecture: AArch64
OS:           Linux
Load Address: 0x02080000
Entry Point:  0x02080000
Hash algo:    sha1
Hash value:   1e71cac492f308aa392d3e5f0eec742513544151
Verifying Hash Integrity ... sha1+ OK
Loading ramdisk from FIT Image at 00600000 ...
Using 'default-boot-rockchip-rk3399-pinephone-pro.dtb' configuration
Trying 'initrd' ramdisk subimage
Description:  Initrd
Type:         RAMDisk Image
Compression:  uncompressed
Data Start:   0x009b767c
Data Size:    5430124 Bytes = 5.2 MiB
Architecture: AArch64
OS:           Linux
Load Address: unavailable
Entry Point:  unavailable
Hash algo:    sha1
Hash value:   50dd96d1d56e1a48b9d8da8316331c41b3512724
Verifying Hash Integrity ... sha1+ OK
Loading fdt from FIT Image at 00600000 ...
Using 'default-boot-rockchip-rk3399-pinephone-pro.dtb' configuration
Trying 'fdt-rockchip-rk3399-pinephone-pro.dtb' fdt subimage
Description:  DTB
Type:         Flat Device Tree
Compression:  lzma compressed
Data Start:   0x00ee52c8
Data Size:    10978 Bytes = 10.7 KiB
Architecture: AArch64
Load Address: 0x01f00000
Hash algo:    sha1
Hash value:   a90aef16893372ef3cec256384a2401bfd33b462
Verifying Hash Integrity ... sha1+ OK
Loading fdt from 0x00ee52c8 to 0x01f00000
Uncompressing Flat Device Tree
Booting using the fdt blob at 0x1f00000
Uncompressing Kernel Image
Loading Ramdisk to f49bb000, end f4ee8b6c ... OK
Loading Device Tree to 00000000f49a7000, end 00000000f49ba7a9 ... OK
Starting kernel ...
[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 5.16.3 (nixbld@localhost) (aarch64-unknown-linux-gnu-gcc (GCC) 9.3.0, GNU ld (GNU Binutils) 2.35.1) #1-celun SMP PREEMPT Tue Jan 1 00:00:00 UTC 1980
[    0.000000] Machine model: Pine64 PinePhonePro
[    0.000000] earlycon: uart8250 at MMIO32 0x00000000ff1a0000 (options '')
[    0.000000] printk: bootconsole [uart8250] enabled
[    0.000000] [Firmware Bug]: Kernel image misaligned at boot, please fix your bootloader!
[    0.000000] NUMA: No NUMA configuration found
[    0.000000] NUMA: Faking a node at [mem 0x0000000000200000-0x00000000f7ffffff]
[    0.000000] NUMA: NODE_DATA [mem 0xf77cea40-0xf77d0fff]
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000000200000-0x00000000f7ffffff]
[    0.000000]   DMA32    empty
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000200000-0x00000000f7ffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000200000-0x00000000f7ffffff]
[    0.000000] On node 0, zone DMA: 512 pages in unavailable ranges
[    0.000000] cma: Reserved 16 MiB at 0x00000000f6400000
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.1 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] psci: SMC Calling Convention v1.2
[    0.000000] percpu: Embedded 27 pages/cpu s77976 r0 d32616 u110592
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: detected: GIC system register CPU interface
[    0.000000] CPU features: kernel page table isolation disabled by kernel configuration
[    0.000000] CPU features: detected: ARM erratum 845719
[    0.000000] Fallback order for Node 0: 0
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 999432
[    0.000000] Policy zone: DMA
[    0.000000] Kernel command line: vt.global_cursor_default=0 vt.default_red=0x00,0xD0,0x00,0xB0,0x00,0xA0,0x4F,0xFF,0x99,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF vt.default_grn=0x36,0x00,0xB0,0x66,0x00,0x00,0xB3,0xFF,0x99,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF vt.default_blu=0x73,0x00,0x00,0x00,0xB0,0xB0,0xC5,0xFF,0x99,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF console=ttyS2,115200n8 earlycon=uart8250,mmio32,0xff1a0000
[    0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
[    0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 246676K/4061184K available (7168K kernel code, 1408K rwdata, 2588K rodata, 1856K init, 334K bss, 97548K reserved, 16384K cma-reserved)
[    0.000000] random: get_random_u64 called from __kmem_cache_create+0x34/0x418 with crng_init=0
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=6, Nodes=1
[    0.000000] trace event string verifier disabled
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu: 	RCU event tracing is enabled.
[    0.000000] rcu: 	RCU restricting CPUs from NR_CPUS=64 to nr_cpu_ids=6.
[    0.000000] 	Trampoline variant of Tasks RCU enabled.
[    0.000000] 	Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 100 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=6
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] GICv3: GIC: Using split EOI/Deactivate mode
[    0.000000] GICv3: 256 SPIs implemented
[    0.000000] GICv3: 0 Extended SPIs implemented
[    0.000000] GICv3: Distributor has no Range Selector support
[    0.000000] Root IRQ handler: gic_handle_irq
[    0.000000] GICv3: 16 PPIs implemented
[    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x00000000fef00000
[    0.000000] ITS [mem 0xfee20000-0xfee3ffff]
[    0.000000] ITS@0x00000000fee20000: allocated 65536 Devices @300000 (flat, esz 8, psz 64K, shr 0)
[    0.000000] ITS: using cache flushing for cmd queue
[    0.000000] GICv3: using LPI property table @0x00000000002c0000
[    0.000000] GIC: using cache flushing for LPI property table
[    0.000000] GICv3: CPU0: using allocated LPI pending table @0x00000000002d0000
[    0.000000] GICv3: GIC: PPI partition interrupt-partition-0[0] { /cpus/cpu@0[0] /cpus/cpu@1[1] /cpus/cpu@2[2] /cpus/cpu@3[3] }
[    0.000000] GICv3: GIC: PPI partition interrupt-partition-1[1] { /cpus/cpu@100[4] /cpus/cpu@101[5] }
[    0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns:<PHONE_NUMBER>92 ns
[    0.000001] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every<PHONE_NUMBER>097ns
[    0.010358] Console: colour dummy device 80x25
[    0.015393] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=24000)
[    0.026709] pid_max: default: 32768 minimum: 301
[    0.032068] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.040250] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.052458] rcu: Hierarchical SRCU implementation.
[    0.058284] Platform MSI: interrupt-controller@fee20000 domain created
[    0.067314] smp: Bringing up secondary CPUs ...
[    0.073334] Detected VIPT I-cache on CPU1
[    0.073394] GICv3: CPU1: found redistributor 1 region 0:0x00000000fef20000
[    0.073419] GICv3: CPU1: using allocated LPI pending table @0x00000000002e0000
[    0.073486] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[    0.074647] Detected VIPT I-cache on CPU2
[    0.074697] GICv3: CPU2: found redistributor 2 region 0:0x00000000fef40000
[    0.074719] GICv3: CPU2: using allocated LPI pending table @0x00000000002f0000
[    0.074767] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
[    0.075880] Detected VIPT I-cache on CPU3
[    0.075928] GICv3: CPU3: found redistributor 3 region 0:0x00000000fef60000
[    0.075949] GICv3: CPU3: using allocated LPI pending table @0x0000000000380000
[    0.075996] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
[    0.077125] CPU features: detected: Spectre-v2
[    0.077140] CPU features: detected: Spectre-v3a
[    0.077152] CPU features: detected: ARM errata 1165522, 1319367, or 1530923
[    0.077162] Detected PIPT I-cache on CPU4
[    0.077202] GICv3: CPU4: found redistributor 100 region 0:0x00000000fef80000
[    0.077223] GICv3: CPU4: using allocated LPI pending table @0x0000000000390000
[    0.077274] CPU4: Booted secondary processor 0x0000000100 [0x410fd082]
[    0.078395] Detected PIPT I-cache on CPU5
[    0.078433] GICv3: CPU5: found redistributor 101 region 0:0x00000000fefa0000
[    0.078454] GICv3: CPU5: using allocated LPI pending table @0x00000000003a0000
[    0.078495] CPU5: Booted secondary processor 0x0000000101 [0x410fd082]
[    0.078671] smp: Brought up 1 node, 6 CPUs
[    0.236801] SMP: Total of 6 processors activated.
[    0.242002] CPU features: detected: 32-bit EL0 Support
[    0.247666] CPU features: detected: 32-bit EL1 Support
[    0.253335] CPU features: detected: CRC32 instructions
[    0.259209] CPU features: emulated: Privileged Access Never (PAN) using TTBR0_EL1 switching
[    0.268898] CPU: All CPU(s) started at EL2
[    0.273492] alternatives: patching kernel code
[    0.409706] node 0 deferred pages initialised in 129ms
[    0.416556] devtmpfs: initialized
[    0.439361] Registered cp15_barrier emulation handler
[    0.444954] KASLR disabled due to lack of seed
[    0.450139] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns:<PHONE_NUMBER>275000 ns
[    0.460883] futex hash table entries: 2048 (order: 5, 131072 bytes, linear)
[    0.469194] pinctrl core: initialized pinctrl subsystem
[    0.475725] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.484974] DMA: preallocated 512 KiB GFP_KERNEL pool for atomic allocations
[    0.493019] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.501926] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.510654] audit: initializing netlink subsys (disabled)
[    0.516890] audit: type=2000 audit(0.285:1): state=initialized audit_enabled=0 res=1
[    0.518074] thermal_sys: Registered thermal governor 'fair_share'
[    0.525442] thermal_sys: Registered thermal governor 'bang_bang'
[    0.532151] thermal_sys: Registered thermal governor 'step_wise'
[    0.538762] thermal_sys: Registered thermal governor 'user_space'
[    0.545381] thermal_sys: Registered thermal governor 'power_allocator'
[    0.552664] cpuidle: using governor ladder
[    0.564393] cpuidle: using governor menu
[    0.568869] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.576639] ASID allocator initialised with 65536 entries
[    0.582668] Serial: AMBA PL011 UART driver
[    0.613697] platform ff770000.syscon:phy@f780: Fixing up cyclic dependency with fe330000.mmc
[    0.625466] platform ff8f0000.vop: Fixing up cyclic dependency with fec00000.dp
[    0.634761] platform ff900000.vop: Fixing up cyclic dependency with fec00000.dp
[    0.645859] platform ff960000.mipi: Fixing up cyclic dependency with ff8f0000.vop
[    0.654179] platform ff960000.mipi: Fixing up cyclic dependency with ff900000.vop
[    0.672371] rockchip-gpio ff720000.gpio: probed /pinctrl/gpio@ff720000
[    0.680524] rockchip-gpio ff730000.gpio: probed /pinctrl/gpio@ff730000
[    0.688592] rockchip-gpio ff780000.gpio: probed /pinctrl/gpio@ff780000
[    0.696593] rockchip-gpio ff788000.gpio: probed /pinctrl/gpio@ff788000
[    0.704658] rockchip-gpio ff790000.gpio: probed /pinctrl/gpio@ff790000
[    0.738141] iommu: Default domain type: Translated
[    0.743535] iommu: DMA domain TLB invalidation policy: strict mode
[    0.753924] SCSI subsystem initialized
[    0.758156] usbcore: registered new interface driver usbfs
[    0.764228] usbcore: registered new interface driver hub
[    0.770117] usbcore: registered new device driver usb
[    0.777616] clocksource: Switched to clocksource arch_sys_counter
[    0.828368] NET: Registered PF_INET protocol family
[    0.833998] IP idents hash table entries: 65536 (order: 7, 524288 bytes, linear)
[    0.845104] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 32768 bytes, linear)
[    0.854668] TCP established hash table entries: 32768 (order: 6, 262144 bytes, linear)
[    0.863759] TCP bind hash table entries: 32768 (order: 7, 524288 bytes, linear)
[    0.872504] TCP: Hash tables configured (established 32768 bind 32768)
[    0.879845] UDP hash table entries: 2048 (order: 4, 65536 bytes, linear)
[    0.887388] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes, linear)
[    0.895531] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.902683] Unpacking initramfs...
[    0.906735] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
[    0.916348] hw perfevents: enabled with armv8_cortex_a72 PMU driver, 7 counters available
[    0.925951] kvm [1]: IPA Size Limit: 40 bits
[    0.931266] kvm [1]: vgic-v2@fff20000
[    0.935335] kvm [1]: GIC system register CPU interface enabled
[    0.942115] kvm [1]: vgic interrupt IRQ18
[    0.946969] kvm [1]: Hyp mode initialized successfully
[    0.955272] workingset: timestamp_bits=42 max_order=20 bucket_order=0
[    0.969705] zbud: loaded
[    0.973454] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 248)
[    0.981876] io scheduler mq-deadline registered
[    0.986886] io scheduler kyber registered
[    0.996183] rockchip-usb2phy ff770000.syscon:usb2phy@e460: failed to create phy
[    1.007372] pwm-backlight backlight: supply power not found, using dummy regulator
[    1.018561] dma-pl330 ff6d0000.dma-controller: Loaded driver for PL330 DMAC-241330
[    1.026913] dma-pl330 ff6d0000.dma-controller: 	DBUFF-32x8bytes Num_Chans-6 Num_Peri-12 Num_Events-12
[    1.038975] dma-pl330 ff6e0000.dma-controller: Loaded driver for PL330 DMAC-241330
[    1.047329] dma-pl330 ff6e0000.dma-controller: 	DBUFF-128x8bytes Num_Chans-8 Num_Peri-20 Num_Events-16
[    1.059188] Serial: 8250/16550 driver, 8 ports, IRQ sharing enabled
[    1.070311] ff180000.serial: ttyS0 at MMIO 0xff180000 (irq = 39, base_baud = 1500000) is a 16550A
[    1.080325] serial serial0: tty port ttyS0 registered
[    1.087222] ff1a0000.serial: ttyS2 at MMIO 0xff1a0000 (irq = 40, base_baud = 1500000) is a 16550A
[    1.097247] printk: console [ttyS2] enabled
[    1.097247] printk: console [ttyS2] enabled
[    1.106647] printk: bootconsole [uart8250] disabled
[    1.106647] printk: bootconsole [uart8250] disabled
[    1.118924] ff1b0000.serial: ttyS3 at MMIO 0xff1b0000 (irq = 41, base_baud = 1500000) is a 16550A
[    1.132152] rockchip-vop ff8f0000.vop: Adding to iommu group 2
[    1.139796] rockchip-vop ff900000.vop: Adding to iommu group 3
[    1.157010] panel-himax-hx8394 ff960000.mipi.0: 720x1440@53 24bpp dsi 4dl - ready
[    1.167402] cacheinfo: Unable to detect cache hierarchy for CPU 0
[    1.177551] spi-nor spi0.0: gd25lq128e (16384 Kbytes)
[    1.188150] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.195484] ehci-platform: EHCI generic platform driver
[    1.201717] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    1.208649] ohci-platform: OHCI generic platform driver
[    1.215395] usbcore: registered new interface driver cdc_acm
[    1.221745] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[    1.230755] usbcore: registered new interface driver cdc_wdm
[    1.240744] mousedev: PS/2 mouse device common for all mice
[    1.248281] input: gpio-vibrator as /devices/platform/vibrator/input/input0
[    1.257402] i2c_dev: i2c /dev entries driver
[    1.263322] i2c 1-001a: Fixing up cyclic dependency with ff910000.isp0
[    1.275171] i2c 0-001c: Fixing up cyclic dependency with vcc5v0-typec-regulator
[    1.285062] rk808 0-001c: chip id: 0x8180
[    1.295435] rk808-regulator rk808-regulator: there is no dvs0 gpio
[    1.302406] rk808-regulator rk808-regulator: there is no dvs1 gpio
[    1.320304] vcc1v8_dvp: Bringing 800000uV into 1800000-1800000uV
[    1.330451] rk818-battery rk818-battery: DMA mask not set
[    1.339801] random: fast init done
[    1.351580] rk818-bat: dsoc=95 cap=2578 v=4105 ov=4237 rv=0 min=2 psoc=95 pcap=2578
[    1.366941] rk818-bat: driver version 7.1
[    1.376316] rk808-rtc rk808-rtc: registered as rtc0
[    1.382381] rk808-rtc rk808-rtc: setting system clock to 2013-01-18T09:14:57 UTC<PHONE_NUMBER>)
[    1.393551] fan53555-regulator 0-0040: FAN53555 Option[8] Rev[1] Detected!
[    1.404382] fan53555-regulator 0-0041: FAN53555 Option[8] Rev[1] Detected!
[    1.420535] rk818-charger rk818-charger: DMA mask not set
[    1.429123] dw_wdt ff848000.watchdog: No valid TOPs array specified
[    1.438347] cpu cpu0: EM: created perf domain
[    1.444180] cpu cpu4: EM: created perf domain
[    1.452020] sdhci: Secure Digital Host Controller Interface driver
[    1.458994] sdhci: Copyright(c) Pierre Ossman
[    1.463878] Synopsys Designware Multimedia Card Interface Driver
[    1.471520] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.472218] dwmmc_rockchip fe310000.mmc: IDMAC supports 32-bit address mode.
[    1.472854] dwmmc_rockchip fe320000.mmc: IDMAC supports 32-bit address mode.
[    1.472908] dwmmc_rockchip fe320000.mmc: Using internal DMA controller.
[    1.472932] dwmmc_rockchip fe320000.mmc: Version ID is 270a
[    1.473079] dwmmc_rockchip fe320000.mmc: DW MMC controller at irq 29,32 bit host data width,256 deep fifo
[    1.473930] dwmmc_rockchip fe320000.mmc: Got CD GPIO
[    1.478371] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
[    1.482139] mmc2: CQHCI version 5.10
[    1.485847] dwmmc_rockchip fe310000.mmc: Using internal DMA controller.
[    1.488388] mmc_host mmc1: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
[    1.493728] hid: raw HID events driver (C) Jiri Kosina
[    1.494005] usbcore: registered new interface driver usbhid
[    1.501225] dwmmc_rockchip fe310000.mmc: Version ID is 270a
[    1.507374] usbhid: USB HID core driver
[    1.508358] mmc2: SDHCI controller on fe330000.mmc [fe330000.mmc] using ADMA
[    1.510507] Initializing XFRM netlink socket
[    1.510925] NET: Registered PF_INET6 protocol family
[    1.512363] Segment Routing with IPv6
[    1.512391] In-situ OAM (IOAM) with IPv6
[    1.512440] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    1.512846] NET: Registered PF_PACKET protocol family
[    1.512862] NET: Registered PF_KEY protocol family
[    1.513244] registered taskstats version 1
[    1.514468] zswap: loaded using pool lz4hc/z3fold
[    1.518208] dwmmc_rockchip fe310000.mmc: DW MMC controller at irq 28,32 bit host data width,256 deep fifo
[    1.574043] mmc_host mmc1: Bus speed (slot 0) = 50000000Hz (slot req 50000000Hz, actual 50000000HZ div = 0)
[    1.577044] dwmmc_rockchip fe310000.mmc: allocated mmc-pwrseq
[    1.583134] mmc1: new high speed SDHC card at address aaaa
[    1.587871] mmc_host mmc0: card is non-removable.
[    1.669380] mmcblk1: mmc1:aaaa SS32G 29.7 GiB
[    1.682518] panfrost ff9a0000.gpu: clock rate = 500000000
[    1.685774] GPT:Primary header thinks Alt. header is not at the end of the disk.
[    1.696910] GPT:71713 != 62333951
[    1.700672] GPT:Alternate GPT header not at the end of the disk.
[    1.701518] panfrost ff9a0000.gpu: mali-t860 id 0x860 major 0x2 minor 0x0 status 0x0
[    1.707413] GPT:71713 != 62333951
[    1.716078] panfrost ff9a0000.gpu: features: 00000000,100e77bf, issues: 00000000,24040400
[    1.719800] GPT: Use GNU Parted to correct GPT errors.
[    1.728937] panfrost ff9a0000.gpu: Features: L2:0x07120206 Shader:0x00000000 Tiler:0x00000809 Mem:0x1 MMU:0x00002830 AS:0xff JS:0x7
[    1.734734]  mmcblk1: p1 p2
[    1.747913] panfrost ff9a0000.gpu: shader_present=0xf l2_present=0x1
[    1.750051] [drm] Initialized panfrost 1.2.0 20180908 for ff9a0000.gpu on minor 0
[    1.770335] ehci-platform fe3c0000.usb: EHCI Host Controller
[    1.777161] ehci-platform fe3c0000.usb: new USB bus registered, assigned bus number 1
[    1.777312] mmc2: Command Queue Engine enabled
[    1.786198] ehci-platform fe3c0000.usb: irq 33, io mem 0xfe3c0000
[    1.790983] mmc2: new HS200 MMC card at address 0001
[    1.793834] mmc_host mmc0: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
[    1.804778] ehci-platform fe3c0000.usb: USB 2.0 started, EHCI 1.00
[    1.814734] mmcblk2: mmc2:0001 A3A442 115 GiB
[    1.821771] hub 1-0:1.0: USB hub found
[    1.829815] hub 1-0:1.0: 1 port detected
[    1.834126]  mmcblk2: p1 p2
[    1.835457] ohci-platform fe3e0000.usb: Generic Platform OHCI controller
[    1.838419] mmcblk2boot0: mmc2:0001 A3A442 4.00 MiB
[    1.845129] ohci-platform fe3e0000.usb: new USB bus registered, assigned bus number 2
[    1.851359] mmcblk2boot1: mmc2:0001 A3A442 4.00 MiB
[    1.859300] ohci-platform fe3e0000.usb: irq 34, io mem 0xfe3e0000
[    1.865622] mmcblk2rpmb: mmc2:0001 A3A442 16.0 MiB, chardev (244:0)
[    1.927657] hub 2-0:1.0: USB hub found
[    1.929817] mmc_host mmc0: Bus speed (slot 0) = 148500000Hz (slot req 150000000Hz, actual 148500000HZ div = 0)
[    1.931898] hub 2-0:1.0: 1 port detected
[    1.948482] input: adc-keys as /devices/platform/adc-keys/input/input1
[    2.045927] Goodix-TS 3-0014: ID 1158, version: 0100
[    2.077695] rockchip-drm display-subsystem: bound ff8f0000.vop (ops vop_component_ops)
[    2.086827] [drm] unsupported AFBC format[3231564e]
[    2.094491] rockchip-drm display-subsystem: bound ff900000.vop (ops vop_component_ops)
[    2.103771] rockchip-drm display-subsystem: bound fec00000.dp (ops cdn_dp_component_ops)
[    2.113440] rockchip-drm display-subsystem: bound ff960000.mipi (ops dw_mipi_dsi_rockchip_ops)
[    2.134421] fbcon: Deferring console take-over
[    2.139430] rockchip-drm display-subsystem: [drm] fb0: rockchipdrmfb frame buffer device
[    2.148946] [drm] Initialized rockchip 1.0.0 20140818 for display-subsystem on minor 1
[    2.166426] ehci-platform fe380000.usb: EHCI Host Controller
[    2.173044] ehci-platform fe380000.usb: new USB bus registered, assigned bus number 3
[    2.181936] ehci-platform fe380000.usb: irq 31, io mem 0xfe380000
[    2.195815] ehci-platform fe380000.usb: USB 2.0 started, EHCI 1.00
[    2.203615] hub 3-0:1.0: USB hub found
[    2.207845] hub 3-0:1.0: 1 port detected
[    2.213146] ohci-platform fe3a0000.usb: Generic Platform OHCI controller
[    2.220906] ohci-platform fe3a0000.usb: new USB bus registered, assigned bus number 4
[    2.229765] ohci-platform fe3a0000.usb: irq 32, io mem 0xfe3a0000
[    2.293560] hub 4-0:1.0: USB hub found
[    2.297811] hub 4-0:1.0: 1 port detected
[    2.303540] input: gpio-key-power as /devices/platform/gpio-key-power/input/input2
[    2.313062] input: gpio-key-ri as /devices/platform/gpio-key-ri/input/input3
[    2.424872] Freeing initrd memory: 5300K
[    2.429551] dw-apb-uart ff1a0000.serial: forbid DMA for kernel console
l&\E6F&\96ff6\D6
v{{#K\C3kFm
6\D6F\A6FK\93+\A3fK\93k\BB\93+\C6{#f{\93v{{#K\C3\FB\8BV\86\F6m3;s&KsfKc+#vK\A3CV\93\93{\93\D6&\D6
[    2.429676] cdn-dp fec00000.dp: Direct firmware load for rockchip/dptx.bin failed with error -2
[    2.447383] Freeing unused kernel memory: 1856K
[    2.466920] Run /init as init process
::
:: Launching busybox linuxrc
::
[    2.479370] input: Goodix Capacitive TouchScreen as /devices/platform/ff130000.i2c/i2c-3/3-0014/input/input4
$ mkdir -p /proc /sys /dev /run /tmp
$ mount -t proc proc /proc
$ mount -t sysfs sys /sys
$ mount -t devtmpfs devtmpfs /dev
$ mount -t tmpfs tmpfs /run
$ hostname Tow-Boot
$ ip link set lo up
$ echo 5
$ systemd-udevd --daemon
Starting version 247
$ sleep 1
[    3.466166] cdn-dp fec00000.dp: Direct firmware load for rockchip/dptx.bin failed with error -2
$ udevadm trigger
$ move_to_line 999
$ printf '\e[%d;0H' 999
$ pr_info '... waiting for input devices'
$ clear
 $ printf '\e[2K\r%s' '... waiting for input devices'
$ test -e /dev/input/by-path/
$ pr_info '... Launching installer GUI'
$ clear
 $ printf '\e[2K\r%s' '... Launching installer GUI'
$ tow-boot-installer-gui
display/drm_drv: Starting DRM subsystem... (/dev/dri/card0)
display/drm_drv: error: drm device '/dev/dri/card0' does not support dumb buffers
display/drm_drv: error: modeset failed with error 95: Operation not supported
[display/fbdev]: The framebuffer device was opened successfully.
[display/fbdev]: 720x1440, 32bpp
[display/fbdev]: The framebuffer device was mapped to memory successfully.
display/drm_drv: DRM subsystem and buffer mapped successfully
WARNING: Error loading fallback font in FT_New_Face: 1
Error in FT_New_Face: 1
Error: Could not load font; falling back to built-in<EMAIL_ADDRESS>	(/build/source/lvgui/hal.c #118)
libinput error: /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-libinput-aarch64-unknown-linux-gnu-1.16.4/share/libinput: failed to find data files
libinput error: Failed to load the device quirks from /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-libinput-aarch64-unknown-linux-gnu-1.16.4/share/libinput and /etc/libinput/local-overrides.quirks. This will negatively affect device behavior. See https://wayland.freedesktop.org/libinput/doc/1.16.4/device-quirks.html for details.
Touch installer system
======================
Tow-Boot login: unable to add device to libinput context:: No such file or directory
Unable to add device to libinput context:: No such file or directory
libinput error: /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-libinput-aarch64-unknown-linux-gnu-1.16.4/share/libinput: failed to find data files
libinput error: Failed to load the device quirks from /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-libinput-aarch64-unknown-linux-gnu-1.16.4/share/libinput and /etc/libinput/local-overrides.quirks. This will negatively affect device behavior. See https://wayland.freedesktop.org/libinput/doc/1.16.4/device-quirks.html for details.
xkbcommon: ERROR: failed to add default include path /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-xkeyboard-config-aarch64-unknown-linux-gnu-2.33/etc/X11/xkb
[ERROR] (xkbcommon_init): error: Could not create xkb_context.
libinput error: /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-libinput-aarch64-unknown-linux-gnu-1.16.4/share/libinput: failed to find data files
libinput error: Failed to load the device quirks from /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-libinput-aarch64-unknown-linux-gnu-1.16.4/share/libinput and /etc/libinput/local-overrides.quirks. This will negatively affect device behavior. See https://wayland.freedesktop.org/libinput/doc/1.16.4/device-quirks.html for details.
xkbcommon: ERROR: failed to add default include path /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-xkeyboard-config-aarch64-unknown-linux-gnu-2.33/etc/X11/xkb
[ERROR] (xkbcommon_init): error: Could not create xkb_context.
libinput error: /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-libinput-aarch64-unknown-linux-gnu-1.16.4/share/libinput: failed to find data files
libinput error: Failed to load the device quirks from /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-libinput-aarch64-unknown-linux-gnu-1.16.4/share/libinput and /etc/libinput/local-overrides.quirks. This will negatively affect device behavior. See https://wayland.freedesktop.org/libinput/doc/1.16.4/device-quirks.html for details.
xkbcommon: ERROR: failed to add default include path /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-xkeyboard-config-aarch64-unknown-linux-gnu-2.33/etc/X11/xkb
[ERROR] (xkbcommon_init): error: Could not create xkb_context.
libinput error: /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-libinput-aarch64-unknown-linux-gnu-1.16.4/share/libinput: failed to find data files
libinput error: Failed to load the device quirks from /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-libinput-aarch64-unknown-linux-gnu-1.16.4/share/libinput and /etc/libinput/local-overrides.quirks. This will negatively affect device behavior. See https://wayland.freedesktop.org/libinput/doc/1.16.4/device-quirks.html for details.
xkbcommon: ERROR: failed to add default include path /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-xkeyboard-config-aarch64-unknown-linux-gnu-2.33/etc/X11/xkb
[ERROR] (xkbcommon_init): error: Could not create xkb_context.
[    5.514194] cdn-dp fec00000.dp: Direct firmware load for rockchip/dptx.bin failed with error -2
[    9.546266] cdn-dp fec00000.dp: Direct firmware load for rockchip/dptx.bin failed with error -2
[   17.610224] cdn-dp fec00000.dp: Direct firmware load for rockchip/dptx.bin failed with error -2
[   33.994230] cdn-dp fec00000.dp: Direct firmware load for rockchip/dptx.bin failed with error -2
[   66.250019] cdn-dp fec00000.dp: [drm:cdn_dp_pd_event_work] ERROR Timed out trying to load firmware
The system is going down NOW!
Sent SIGKILL to all processes
Requesting system poweroff
[  115.726693] reboot: Power down
\00

I pressed power, and then held it & volume down after the first vibration, until some output appeared on the screen.  Manjaro on SD failed to boot.  Mobian booted (from eMMC).  Manjaro does boot when I use the "RE" button.
Tow-Boot TPL 2022.07
Channel 0: LPDDR4, 50MHz
BW=32 Col=10 Bk=8 CS0 Row=15 CS1 Row=15 CS=2 Die BW=16 Size=2048MB
Channel 1: LPDDR4, 50MHz
BW=32 Col=10 Bk=8 CS0 Row=15 CS1 Row=15 CS=2 Die BW=16 Size=2048MB
256B stride
lpddr4_set_rate: change freq to 400000000 mhz 0, 1
lpddr4_set_rate: change freq to 800000000 mhz 1, 0
Trying to boot from BOOTROM
Returning to boot ROM...
Tow-Boot SPL 2022.07
Trying to boot from SPI
NOTICE:  BL31: v2.6(release):
NOTICE:  BL31: Built : 00:00:00, Jan  1 1980
Tow-Boot 2022.07 006 [variant: spi]
SoC: Rockchip rk3399
Reset cause: POR
Model: Pine64 PinePhonePro
DRAM:  3.9 GiB
Initializing Pinephone Pro charger
PMIC:  RK8180 (on=0x80, off=0x04)
Core:  324 devices, 34 uclasses, devicetree: separate
MMC:   mmc@fe310000: 3, mmc@fe320000: 1, mmc@fe330000: 0
Loading Environment from SPIFlash... SF: Detected gd25lq128e with page size 256 Bytes, erase size 4 KiB, total 16 MiB
*** Warning - bad CRC, using default environment
In:    serial
Out:   serial
Err:   serial
Model: Pine64 PinePhonePro
Net:   No ethernet found.
starting USB...
Bus usb@fe380000: ehci_generic usb@fe380000: Failed to get clocks (ret=-19)
Port not available.
Bus usb@fe3a0000: USB OHCI 1.0
Bus usb@fe3c0000: ehci_generic usb@fe3c0000: Failed to get clocks (ret=-19)
Port not available.
Bus usb@fe3e0000: USB OHCI 1.0
scanning bus usb@fe3a0000 for devices... 1 USB Device(s) found
scanning bus usb@fe3e0000 for devices... 1 USB Device(s) found
scanning usb for storage devices... 0 Storage Device(s) found
Please press [ESCAPE] or [CTRL+C] to enter the boot menu.
off
off
switch to partitions #0, OK
mmc0(part 0) is current device
Scanning mmc 0:1...
Found /extlinux/extlinux.conf
Retrieving file: /extlinux/extlinux.conf
U-Boot menu
1:	Mobian GNU/Linux 6.1-rockchip
Enter choice: 1:	Mobian GNU/Linux 6.1-rockchip
Retrieving file: /miniramfs-6.1-rockchip
Retrieving file: /vmlinuz-6.1-rockchip
append: root=/dev/mapper/calamares_crypt consoleblank=0 loglevel=7 ro quiet splash plymouth.ignore-serial-consoles vt.global_cursor_default=0
Retrieving file: /dtb-6.1-rockchip/rockchip/rk3399-pinephone-pro.dtb
Uncompressing Kernel Image
Moving Image from 0x2080000 to 0x2200000, end=3a40000
Flattened Device Tree blob at 01f00000
Booting using the fdt blob at 0x1f00000
Loading Ramdisk to f4982000, end f4ee71d1 ... OK
Loading Device Tree to 00000000f496d000, end 00000000f49812fb ... OK
Starting kernel ...
[    0.835950] dw-apb-uart ff180000.serial: Failed to create device link (0x180) with 0-001c
[    0.891970] dw-apb-uart ff180000.serial: Failed to create device link (0x180) with 0-001c
[    0.910935] OF: graph: no port node found in /i2c@ff3d0000/typec-portc@22
[    1.044685] mmc1: tuning execution failed: -5
[    1.049597] mmc1: error -5 whilst initialising SD card
[    1.231837] mmcblk1: recovery failed!
[    1.235992] I/O error, dev mmcblk1, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[    1.245512] Buffer I/O error on dev mmcblk1, logical block 0, async page read
[    1.253941] mmcblk1: recovery failed!
[    1.258064] I/O error, dev mmcblk1, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[    1.267531] Buffer I/O error on dev mmcblk1, logical block 0, async page read
[    1.275877] mmcblk1: recovery failed!
[    1.280016] I/O error, dev mmcblk1, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[    1.289505] Buffer I/O error on dev mmcblk1, logical block 0, async page read
Starting systemd-udevd version 252.12-1~deb12u1
[    3.049143] Invalid ELF header magic: != ELF
[    3.082815] Invalid ELF header magic: != ELF
[    3.091585] Invalid ELF header magic: != ELF
trd.img-6.1-rockchip : 0 B...
trd.img-6.1-rockchip : 15.1 MiB...
trd.img-6.1-rockchip : 46.4 MiB...
trd.img-6.1-rockchip : 63.2 MiB...
trd.img-6.1-rockchip : 81.9 MiB...
trd.img-6.1-rockchip : 115 MiB...
trd.img-6.1-rockchip : 146 MiB...
trd.img-6.1-rockchip : 167 MiB...
trd.img-6.1-rockchip : 194 MiB...
trd.img-6.1-rockchip : 215 MiB...
trd.img-6.1-rockchip : 236 MiB...
/boot/initrd.img-6.1-rockchip: 271233024 bytes
529752 blocks
mkdir: can't create directory '/dev/pts': File exists
[    8.172090] pinephone-keyboard 5-0015: Failed to read device ID: -6
[   34.802168] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43455-sdio for chip BCM4345/6
[   34.966210] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM4345/6 wl0: Apr 15 2021 03:03:20 version 7.45.234 (4ca95bb CY) FWID 01-996384e2
[   35.231362] Bluetooth: hci0: BCM: firmware Patch file not found, tried:
[   35.238871] Bluetooth: hci0: BCM: 'brcm/BCM4345C0.pine64,pinephone-pro.hcd'
[   35.246683] Bluetooth: hci0: BCM: 'brcm/BCM4345C0.hcd'
[   35.252494] Bluetooth: hci0: BCM: 'brcm/BCM.pine64,pinephone-pro.hcd'
[   35.252500] Bluetooth: hci0: BCM: 'brcm/BCM.hcd'
Debian GNU/Linux 12 mobian ttyS2
mobian login:

Hmm there is a problem I solve it very easily


Is this CI compatible?

It doesnt seem like running npm i works, as this uses a custom godot.package thing. How do I make it work?

npm is only used to publish to the NPM registry. Pulling packages is actually done via gdscript (godot_package_manager.gd).
If you have a godot binary available in your CI environment, it should be possible to write a wrapper gdscript file that calls the update func in godot_package_manager.gd. Arbitrary scripts can be run via <path/to/godot> --script <path/to/gdscript>

Shouldnt the wrapper come with the repo though? It feels like something thats usefull for more people than one.

Yes it probably should come with the repo. Unfortunately, for that to happen it requires the wrapper code to actually exist. The wrapper code doesn't exist because I didn't need that functionality (and no one mentioned they needed it until now).
I can look into adding this.

Added by #3

@you-win
Its fine for me to just
mkdir addons
git clone --depth 1 https://github.com/you-win/godot-package-manager addons/gpm
godot -s addons/gpm/cli_helper.gd update

right?

@you-win Can you put a ```bash
#!/bin/godot -s

Ill just make a pr.

Not every user places godot in /bin/godot. For example, I do not. If you are building a container image to run this, you can wrap the godot -s ... call with your own shell script.
Side note: placing godot in your system's /bin directory would generally be incorrect since those files should be managed by your system. /usr/local/bin would be more correct since those are user binaries not managed by your system's package manager.

@you-win I changned it to /usr/bin/env -S godot -s

You are welcome to use the shebang in your own scripts/gdscripts. I don't think it makes sense to add them to scripts that are cross-platform, so I am against adding them to scripts in this repo.

@you-win It cant hurt to add the shebang though.


[Summarize YouTube Videos with AI] ... Support additional API URLs

Extension
https://www.raycast.com/iKasch/summarize-youtube-video-with-ai
Description
Support additional API URLs for self-hosted LLMs, such as those used by Ollama.
Who will benefit from this feature?
No response
Anything else?
No response

Thanks for reporting! I'll definitely look into this but I can't make any promises yet.


Force logstash type

I am a bit new to ELK, so this might be a config issue, not a code issue.  I am send my docker stdout to our logstash server; however, i am getting grokparser errors.
Now, it seems like our logstash server has multiple "types"...i see types like "windows-access-log", "[project name]-access-log", "json-log", etc...
When json-log is set as the type (which I am inferring that is the parser logstash used), everything parses correctly...however, when one of the others are used...I am getting grok errors.  And I can't determine how logstash it picking the type because it uses different ones on similar messages.
Is there a way to set, force, tell logstash which parser to use?  Can I just add type? or @type to the logstash message struct?  Or am I missing some config/setup on my client or server end?

Created a PR to allow setting the type which solves my issue
https://github.com/rtoma/logspout-redis-logstash/pull/2


Aborted (core dumped) in tf.raw_ops.SparseConcat

Issue type
Bug
Have you reproduced the bug with TensorFlow Nightly?
Yes
Source
source
TensorFlow version
tf2.17.0 tf2.16.1
Custom code
Yes
OS platform and distribution
Ubuntu 20.04
Mobile device
No response
Python version
3.11
Bazel version
No response
GCC/compiler version
No response
CUDA/cuDNN version
No response
GPU model and memory
No response
Current behavior?
Under specific inputs, SparseConcat triggered a crash.
Standalone code to reproduce the issue
import tensorflow as tf

indices1 = tf.constant(2, shape=[3,3], dtype=tf.int64)
values1 = tf.constant("aaaabaaacaaadaaaeaaafaaagaaahaaaiaaajaaakaaalaaamaaanaaaoaaapaaaqaaaraaasaaataaauaaavaaawaaaxaaayaaazaabbaabcaabdaabeaabfaabgaabhaabiaabjaabkaablaabmaabnaaboaabpaabqaabraabsaabtaabuaabvaabwaabxaabyaabzaacbaaccaacdaaceaacfaacgaachaaciaacjaackaaclaacmaacnaacoaacpaacqaacraacsaactaacuaacvaacwaacxaacyaac",
    shape=[3], dtype=tf.string)
shapes1 = tf.constant([5, 2,<PHONE_NUMBER>], dtype=tf.int64)

indices2 = tf.constant(-2, shape=[4,3], dtype=tf.int64)
values2 = tf.constant(" ", shape=[4], dtype=tf.string)
shapes2 = tf.constant([5,1879048192,536870912], dtype=tf.int64)

concat_dim = 1
tf.raw_ops.SparseConcat(
    indices=[indices1, indices2], values=[values1, values2], shapes=[shapes1, shapes2], concat_dim=concat_dim, name=None
)

Relevant log output
2024-11-24 06:36:10.994508: F tensorflow/core/framework/tensor_shape.cc:607] Non-OK-status: RecomputeNumElements() status: INVALID_ARGUMENT: Shape [5,1879048194,2147483647] results in overflow when computing number of elements
Aborted (core dumped)

Hi @LongZE666 ,
Is there a specific reason for using such long values? I tried running your code on Colab using TensorFlow 2.18.0 and the nightly versions and faced the same issue. However, I tried an alternative approach, and it worked fine for me. I hope this helps you. Please find the gist here for your reference.
Thank you!

@Venkat6871
Thanks for your reply, I used such long values mainly to test for bugs in the operator.


Fix builds fail with error: symbol init___rust_ctor___ctor is already defined #6495

Which issue does this PR close?
Closes https://github.com/apache/arrow-datafusion/issues/6495
Rationale for this change
CI / builds are failing after the update of the ctor library
What changes are included in this PR?
Ensure we only use #[ctor] once in the datafusion-optimizer library
Are these changes tested?
yes by CI

Are there any user-facing changes?

Not a massive fan of the use of static constructors, but as this is a pre-existing pattern 👍

FWIW the only alternative I know is to do what we do in IOx and sprinkle setup in all the tests:
https://github.com/search?q=repo%3Ainfluxdata/influxdb_iox maybe_start_logging&type=code
e.g.
    #[test]
    fn test_panic_counter_and_logging() {
        maybe_start_logging();

Do you know a better pattern to enable logging during unit test run?

Not a massive fan of the use of static constructors, but as this is a pre-existing pattern +1

FWIW the only alternative I know is to do what we do in IOx and sprinkle setup in all the tests:
https://github.com/search?q=repo%3Ainfluxdata/influxdb_iox maybe_start_logging&type=code
e.g.
    #[test]
    fn test_panic_counter_and_logging() {
        maybe_start_logging();

Do you know a better pattern to enable logging during unit test run?

yes, one second

Not a massive fan of the use of static constructors, but as this is a pre-existing pattern +1

FWIW the only alternative I know is to do what we do in IOx and sprinkle setup in all the tests:
https://github.com/search?q=repo%3Ainfluxdata/influxdb_iox maybe_start_logging&type=code
e.g.
    #[test]
    fn test_panic_counter_and_logging() {
        maybe_start_logging();

Do you know a better pattern to enable logging during unit test run?

What about this? https://github.com/apache/arrow-datafusion/blob/201a2a903325ad4dddd94572cfd0a19287131f04/datafusion/sql/tests/integration_test.rs#LL41C7-L41C7


Test Bug 78

Hello @daphne-sfdc :wave: It looks like you didn't provide all the required basic info in your issue.
If you haven't already, please provide the following info:
Salesforce Extension Version in VS Code:
Salesforce CLI Version:
OS and version:
VS Code version:
Most recent version of the extensions where this was working:
A few more things to check:

Make sure you've provided detailed steps to reproduce your issue, as well as all error messages that you see.

A repository that clearly demonstrates the bug is ideal.
Error messages can be found in the Problems Tab, Output Tab, and from running Developer: Toggle Developer Tools in the command palette.

Make sure you've installed the latest version of the Salesforce Extension Pack for VSCode. (docs)
Search GitHub for existing related issues.

Thank you!

Thank you for filing this issue.  We appreciate your feedback and will review the issue as soon as possible. Remember, however, that GitHub isn't a mechanism for receiving support under any agreement or SLA. If you require immediate assistance, contact Salesforce Customer Support.


Question: What's the best practice for using secrets in function?

I want to run funtion in a secure way without leaking sensitive or critical secrets. I can't find obvious way to inject kubernetes secrets into funtion.
Could anyone give me some advices?

Currently, you can configure Secrets volumes to be mounted into a Function using serving.template.volumes.
Could you share your use case or your preferred way of using Secrets?

In my use case, the function accesses some external API services that authenticate requests with an API_KEY. I don't want API_KEY to be directly present in the function code, so I would like to use secrets to manage and provide this sensitive information.


Deploy to file

Proposing a new feature, the ability to run deploy and have the target be a file instead of a database. Think pg_restore -f. The use case I am thinking of is an embedded system running SQLite on which I do not want or really need a Sqitch install. Development work would occur on machine with Sqitch.  When it comes time to deploy changes run deploy -t some_file and then use that file to make the changes on the embedded system. I can see a way(I think) of creating a homegrown system, it would just be nice to have it built into Sqitch. There is also the possibility I have missed an existing built in solution and would welcome  a touch of the clue stick:)

I've thought for a while that it'd be useful to have the bundle command take an option to concatenate all the scripts for each tag, rather than just copy the individual files. Maybe it'd also inject the registry tables and SQL statements after each concatenated deploy script that record the update. Or maybe it's just use a tags table and insert each tag. There would be no revert scripts, I guess. Anyway, this would allow one to ship just the deltas for each release of a database, with instructions telling the user how to decide which scripts to execute to upgrade a database.

Doing it through bundle would work also.  I am just looking for a solution that does not require Sqitch on the receiving end to process the scripts.  I really like Sqitch, the issue is that it is bit of a load to install for a limited use case. The revert case is something I thought about after I posted my original comment. In my mind revert is just a reverse deploy, so I figured to have the reverse of my original suggestion. In other words revert -t some_file. Basically walk through either the deploy/ and revert/ directories for the changes in sqitch.plan and concatenate the scripts in the plan or reverse plan order over the changes requested.  This was the concept of the homegrown system I referred to earlier. Thanks for looking into this.

I needed this early on when adopting sqitch for a project that still wanted a single sql update script. I redirected the sqitch show deploy outputs to a file, looping through all sqitch.plan changes after the last release tag. I make use of psql variables, so being able to pass those in rather than edit the underlying file saved time too.


USHIFT-2927: Remove fstab workaround in kickstart

https://github.com/containers/bootc/pull/417 has landed to support a workaround directly on the bootc side.

/retitle USHIFT-2927: Remove fstab workaround in kickstart

We do not fail CI when the service startup error is reported. I will check this in the local environment to see if the errors are no longer reported.
/hold

@runcom , it looks like the fix exists in CentOS 9 Stream, but not in RHEL 9.4.
# cat /etc/redhat-release
Red Hat Enterprise Linux release 9.4 (Plow)

# grep rhel-root /etc/fstab
/dev/mapper/rhel-root / xfs defaults,ro 0 0

# systemctl status bootc-generic-growpart.service | cat
× bootc-generic-growpart.service - Bootc Fallback Root Filesystem Grow
     Loaded: loaded (/usr/lib/systemd/system/bootc-generic-growpart.service; static)
     Active: failed (Result: exit-code) since Fri 2024-10-25 06:24:56 UTC; 3min 32s ago
   Duration: 11ms
       Docs: https://gitlab.com/fedora/bootc/docs
    Process: 666 ExecStart=/usr/libexec/bootc-generic-growpart (code=exited, status=1/FAILURE)
   Main PID: 666 (code=exited, status=1/FAILURE)
        CPU: 7ms

Oct 25 06:24:56 localhost systemd[1]: Started Bootc Fallback Root Filesystem Grow.
Oct 25 06:24:56 localhost bootc-generic-growpart[666]: Backing device: /dev/mapper/rhel-root
Oct 25 06:24:56 localhost bootc-generic-growpart[666]: failed to find backing device /sys/class/block/rhel-root
Oct 25 06:24:56 localhost systemd[1]: bootc-generic-growpart.service: Main process exited, code=exited, status=1/FAILURE
Oct 25 06:24:56 localhost systemd[1]: bootc-generic-growpart.service: Failed with result 'exit-code'.

Strictly speaking, it's a different service / problem and it does not fail the boot sequence.
So, let's merge this fix and I'll open new issues.
/unhold
/lgtm

/retest-required

So, let's merge this fix and follow-up on this in the THEEDGE-4056 issue I just opened.

I'll look into this, if it's in c9s but not in rhel 9.4, perhaps we need just a backport


[bug] Transate for should be one prompt with the dropdown selection of language

This is a broader topic as this feature works now like it's parsing a record to the form which is ready to be saved as a new record inclduing JSON etc - something like this is not solvable for the customizable prompt templates at the moment


cilium pod relies on sh on the host

Bug report
The bug seems to be almost same as #16771.
Cilium v0.10.5, as installed with cilium install generates a pod definition with init container relying on sh on the host filesystem:
Init Containers:
  ebpf-mount:
    Container ID:  containerd://bbc7f53c14d4ce0095966e27aedfedeaa488b5a86e53687dbecb321e4f199e87
    Image:         quay.io/cilium/cilium:v1.10.5
    Image ID:      quay.io/cilium/cilium@sha256:0612218e28288db360c63677c09fafa2d17edda4f13867bcabf87056046b33bb
    Port:          <none>
    Host Port:     <none>
    Command:
      nsenter
      --mount=/hostproc/1/ns/mnt
      --
      sh
      -c
      mount | grep "/sys/fs/bpf type bpf" || { echo "Mounting eBPF filesystem..."; mount bpffs /sys/fs/bpf -t bpf; }
    State:          Terminated
      Reason:       Error
      Exit Code:    127
      Started:      Mon, 15 Nov 2021 15:18:43 +0300
      Finished:     Mon, 15 Nov 2021 15:18:43 +0300

General Information

Cilium version (run cilium version)

cilium version
cilium-cli: v0.9.3 compiled with go1.17.3 on linux/amd64
cilium image (default): v1.10.5
cilium image (stable): v1.10.5

Kernel version (run uname -a)

Orchestration system version in use (e.g. kubectl version, ...) 1.23.0-alpha.4

Link to relevant artifacts (policies, deployments scripts, ...)

Generate and upload a sysdump:

Install Cilium CLI.

Run cilium sysdump command:
cilium sysdump

How to reproduce the issue

Install Talos with CNI: none.
Run cilium install
cilium pods fail to start due to init container error

@smira would you be willing to submit a PR to cilium/cilium-cli with a patch similar to https://github.com/cilium/cilium/pull/16815? Thanks

@smira would you be willing to submit a PR to cilium/cilium-cli with a patch similar to #16815? Thanks

@aanm I'm not a Cilium user myself, I filed this issue on behalf of the Talos community member. I can certainly try, but it might take some time

I can pick this up,
@aanm can you please assign this to me? :)

I've hit the same issue using rancheros (deploying cilium using the cilium cli to a cluster prepared with rancher gui, having set network.plugin: none).  The guide here suggests using "existing nodes", but if they are rancheros nodes this issues still occurs.  I can't see a way to disable with nodeinit.enabled=false like when using helm deployment.

@shivanshu1333 has there been progress on this issue? I see there was a PR opened but that has been unfortunately closed already

This seems to be fixed already, I don't reproduce with CLI v0.12.11 (cilium v1.12.2).
cilium install --helm-set-string securityContext.privileged=true needs to be used because of https://github.com/siderolabs/talos/issues/5948, but this doesn't seems to be related to the issue decribed above.

This should be fixed in the meantime and can be closed, right? I wasn't able to reproduce it using Cilium 1.14.3 with Talos 1.5.3. I tested both, Cilium Kube-Proxy replacement enabled and disabled.
At the same time securityContext.privileged=true, should not be required anymore because of https://github.com/cilium/cilium/pull/21506 (also see Talos' Cilium installation guide where they explicitly configure Linux capabilities: https://www.talos.dev/v1.5/kubernetes-guides/network/deploying-cilium/#method-1-helm-install

Thanks, this is fixed.