The conn_id fs_default isn't defined

Airflow version : 2.5.2
Airflow runs in EKS
Installed dbt version
dbt-core==1.4.5
dbt-snowflake==1.4.1
airflow-dbt-python[snowflake]

profiles.yml
abc_metrics:
  outputs:
    dev:
      account: abc
      database: DEV
      role: DBT-ROLE
      schema:ABC_METRICS
      threads: 1
      type: snowflake
      user<EMAIL_ADDRESS>      warehouse: WH_M
  target: dev

clone_repo = BashOperator(
       task_id='clone_repo',
       bash_command='git clone<EMAIL_ADDRESS>/opt/airflow/dbt/',
   )

   dbt_run = DbtRunOperator(
       task_id="dbt_run",
       project_dir="/opt/airflow/dbt/models",
       profiles_dir="~/.dbt/",
       select=["tag:staging"],
       exclude=["tag:deprecated"],
       target="dev",
       profile="profiles.yml",
       full_refresh=False,
       threads=100,
       fail_fast=True,
   )

AIRFLOW_CTX_DAG_RUN_ID=manual__2023-03-29T12:39:22.474515+00:00
[2023-03-29, 12:39:43 UTC] {dbt.py:165} INFO - Running dbt task: run
[2023-03-29, 12:39:46 UTC] {dbt.py:319} INFO - Initializing temporary directory: /tmp/airflow_tmpne65x0vs
[2023-03-29, 12:39:46 UTC] {dbt.py:176} ERROR - An error has ocurred while executing dbt run
Traceback (most recent call last):
  File "/home/airflow/.local/lib/python3.10/site-packages/airflow_dbt_python/hooks/dbt.py", line 148, in get_remote
    return self.remotes[(scheme, conn_id)]
KeyError: ('', None)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/airflow/.local/lib/python3.10/site-packages/airflow_dbt_python/hooks/dbt.py", line 322, in dbt_directory
    project_dir, profiles_dir = self.prepare_directory(
  File "/home/airflow/.local/lib/python3.10/site-packages/airflow_dbt_python/hooks/dbt.py", line 367, in prepare_directory
    project_dir_path = self.download_dbt_project(
  File "/home/airflow/.local/lib/python3.10/site-packages/airflow_dbt_python/hooks/dbt.py", line 180, in download_dbt_project
    remote = self.get_remote(scheme, self.project_conn_id)
  File "/home/airflow/.local/lib/python3.10/site-packages/airflow_dbt_python/hooks/dbt.py", line 150, in get_remote
    remote = get_remote(scheme, conn_id)
  File "/home/airflow/.local/lib/python3.10/site-packages/airflow_dbt_python/hooks/remote.py", line 165, in get_remote
    remote = remote_cls()
  File "/home/airflow/.local/lib/python3.10/site-packages/airflow_dbt_python/hooks/localfs.py", line 38, in __init__
    super().__init__(fs_conn_id)
  File "/home/airflow/.local/lib/python3.10/site-packages/airflow/hooks/filesystem.py", line 38, in __init__
    conn = self.get_connection(conn_id)
  File "/home/airflow/.local/lib/python3.10/site-packages/airflow/hooks/base.py", line 72, in get_connection
    conn = Connection.get_connection_from_secrets(conn_id)
  File "/home/airflow/.local/lib/python3.10/site-packages/airflow/models/connection.py", line 435, in get_connection_from_secrets
    raise AirflowNotFoundException(f"The conn_id `{conn_id}` isn't defined")
airflow.exceptions.AirflowNotFoundException: The conn_id `fs_default` isn't defined

Also tried with airflow_conn_id , same error

For a Production db deployment I'd refer you to the Airflow docs, as that goes beyond airflow-dbt-python: https://airflow.apache.org/docs/apache-airflow/2.5.2/administration-and-deployment/production-deployment.html
A bit contradictory, Airflow recommends not running airflow db init, but links to the documentation page on setting up a database backend which does run airflow db init.
Given the small contradiction, I think the decision is ultimately up to you: either run airflow db init after setting up your database, or not and create a fs_default connection (refer to the Connection docs).

But our airflow db is external that is RDS , BTW i have sent you an email too about another issue which is
no dbt_project.yml found at expected path /tmp/airflow_tmpgzobh886/dbt_project.yml

But our airflow db is external that is RDS

A simple search will reveal that the Airflow documentation covers specific settings for Amazon RDS. I refer to you that as it's a much better resource than anything I can produce in a reasonable amount of time

Thanks
Should i raise new issue for below
no dbt_project.yml found at expected path /tmp/airflow_tmpgzobh886/dbt_project.yml

BTW i have sent you an email too about another issue which is
no dbt_project.yml found at expected path /tmp/airflow_tmpgzobh886/dbt_project.yml

I was getting to it, please have patience.
I would look into the following:

Check if there is a dbt_project.yml in your repo. Specifically in the root directory.
Check if you are using an Airflow Local Executor.

This DAG will not work with an Airflow Remote Executor (at least, not all the time and specially under load). The reasons for that are discussed in the docs (albeit briefly, docs could use some love).
This is the reason why we support dbt git remotes, maybe you should look into them. Since they are fairly new, documentation is scarce: here's an example DAG, and here's the API reference for git remotes.

We are using Airflow in EKS , which is Kubernetes executor
There is dbt_project.yml in the path

We are using Airflow in EKS , which is Kubernetes executor

That would explain why the DAG doesn't work.

We are using Airflow in EKS , which is Kubernetes executor

That would explain why the DAG doesn't work; Kubernetes executor is a form of remote executor.

So we cannot use your operator in the Kubernetes

So we cannot use your operator in the Kubernetes

You can, as I have stated before:

This is the reason why we support dbt git remotes, maybe you should look into them.

But using git remotes will zip the folder into s3 as per the dbtrunoperator , Right?

No, git remotes work with git, not S3. Nothing will be uploaded or downloaded to or from S3.

So will it work with gitlab too ?
Also, i updated the path where dbt_project.yml is located and it ran and new error
  raise DbtProfileError(msg, result_type="invalid_target")
dbt.exceptions.DbtProfileError: Runtime Error
  The profile 'product_metrics' does not have a target named 'default'. The valid target names for this profile are:
   - target
   - dbt_conn_id

So will it work with gitlab too ?

Yup. Also with SourceHut and Gitea. Pretty much any git server accessible via http or ssh.

Updated to dag to include target='dev' and the above issue got resolved

I really doubt the above issue is resolved, you are just failing in a different place. DAG will never work with remote executors.

This issue has de-railed for too long into a 1:1 free support session. Of course, paid support is an option if your company is willing.
Until then, my recommendation stands: try git remotes and report any issues with them or gaps in the documentation.


Downloading from downloads.openwrt.org slow

Hi,
The last few months i noticed that the speeds of downloads became much slower.
I thought that i would be able to improve download speeds by selecting a mirror, so i provided LEDE_BUILDER_URL with a mirror url. Unfortunatly the download of packages still uses the "downloads.openwrt.org" and not the mirror.
Package list missing or not up-to-date, generating it.

Building package index...
Downloading https://downloads.openwrt.org/releases/23.05.4/targets/ramips/mt7621/packages/Packages.gz

Is there an option to also download packages from the mirror?
(i'm using Nix btw)

Try to create a custon repositories.conf  and use this file by setting the REPOSITORIES_CONF environment variable to the files location
Look here for an example: https://openwrt.org/docs/guide-user/additional-software/imagebuilder#adding_package_repositories

Thank you for this suggestion. I eventually found out it was an issue with ipv6.


WIP: Introduce an abstraction over files and classpath resources.

This encapsulates all the complexity of generating a path that the Docker daemon is about to create a volume mount for.
This should resolve a general problem with spaces in paths, which was seen in one particular form as #263.
Additional tests for the specific problem in #263 will be added shortly.

@rnorth how is the progress? Do you need my help to deliver it?


Unused constructor removed

I have removed unused constructor from the code. This constructor was declared but never used by any class. I removed this constructor and code is smooth.
What's in the PR

...

How to test manually

...

Automatic testing

[ ] PR includes unit tests

Documentation

[ ] PR updates documentation

Same comment as in #169.


Update editmembers.html

Added a button to remove group admins

we need another edit members page where 'hazal is now an editor" to link to this page


can't select multiple images on iOS

The readme states "Both Android and iOS are now supported!"... however, when I try the following code on iOS, is doesn't allow me to select multiple images.
var imgs = await MultiMediaPicker.pickImages(
        source: ImageSource.gallery, singleImage: false);

Am I missing something?

You are not missing anything. This plugin is implement on iOS using the default UIImagePicker which does not have support for picking multiple images as far as I know.I will try to change this and use another file picker to allow multiple images to be selected on iOS.I just didn't have enough time to do it earlier as this plugin is just some days old.Apologies for the inconvenience.El 7 dic. 2018 15:25, ROTGP<EMAIL_ADDRESS>escribió:The readme states "Both Android and iOS are now supported!"... however, when I try the following code on iOS, is doesn't allow me to select multiple images.
var imgs = await MultiMediaPicker.pickImages(
source: ImageSource.gallery, singleImage: false);
Am I missing something?
—You are receiving this because you are subscribed to this thread.Reply to this email directly, view it on GitHub, or mute the thread.

Thanks for the quick response. Well, the point of the plugin is to offer multiple images... to say that iOS is supported is misleading.  I'm only commenting because I wouldn't have wasted the time trying out the plugin if the readme had stated that multiple picking is not supported on iOS. Anyway, good luck with the changes.

You are completely right. Sorry.


RuntimeWarning: invalid value encountered in double_scalars

C:\Users\debax\AppData\Local\Programs\Python\Python36-32\python.exe C:/Users/debax/Desktop/node/linear.py
C:/Users/debax/Desktop/node/linear.py:39: RuntimeWarning: overflow encountered in double_scalars
b_gradient+=((2/N)(-x(y-(cur_mx+cur_b))))
after 1000 iterations:
nan
nan
C:/Users/debax/Desktop/node/linear.py:41: RuntimeWarning: invalid value encountered in double_scalars
new_b=cur_b-(learning_rateb_gradient)
C:/Users/debax/Desktop/node/linear.py:42: RuntimeWarning: invalid value encountered in double_scalars
new_m=cur_m-(learning_rate*b_gradient)
Process finished with exit code 0

Hi Franken,
If you're using some real non scaled data like me then you'll be facing that problem.
In lines 23, 24
b_gradient += (-2/N) * (y - ((m_current * x) + b_current))
m_gradient += (-2/N) * x * (y - ((m_current * x) + b_current))
the gradient values are increasing each time with such great quantities because of the large real values stored in the variables x and y. Hence both b_gradient and m_gradient will not be sufficient in order to have such large values stored inside them even if you converted then into int64.
So, in order to solve such a problem,
you'll need to scale your data set values so they would range in between 1 and -1 or any other small values.

Hi Franken,
If you're using some real non scaled data like me then you'll be facing that problem.
In lines 23, 24
b_gradient += (-2/N) * (y - ((m_current * x) + b_current))
m_gradient += (-2/N) * x * (y - ((m_current * x) + b_current))
the gradient values are increasing each time with such great quantities because of the large real values stored in the variables x and y. Hence both b_gradient and m_gradient will not be sufficient in order to have such large values stored inside them even if you converted then into int64.
So, in order to solve such a problem,
you'll need to scale your data set values so they would range in between 1 and -1 or any other small values.

Thank you It worked

Hi Franken,
If you're using some real non scaled data like me then you'll be facing that problem.
In lines 23, 24
b_gradient += (-2/N) * (y - ((m_current * x) + b_current))
m_gradient += (-2/N) * x * (y - ((m_current * x) + b_current))
the gradient values are increasing each time with such great quantities because of the large real values stored in the variables x and y. Hence both b_gradient and m_gradient will not be sufficient in order to have such large values stored inside them even if you converted then into int64.
So, in order to solve such a problem,
you'll need to scale your data set values so they would range in between 1 and -1 or any other small values.

Thank you It worked


Any support?

There are so many issues and no fixes. Please, let us know if this plugin hasn't support anymore...

Apparently this project is no longer maintained as discussed here: https://github.com/twitter/typeahead.js/issues/1424
It was recommended to use https://github.com/corejavascript/typeahead.js but that hasn't been updated for 8 months so I'm not sure if that's the best solution either.
https://github.com/algolia/autocomplete.js was also recommended and it has recent activity.

Feature-wise, there are a few better options

https://github.com/select2/select2
https://github.com/selectize/selectize.js

A bit heavier than typeahead.js but has a lot more features like multiple select etc.

@bitcity thank you for links, but my problem is that the clients project uses this plugin and I can't change it to other plugin for now :(

As someone who uses the library in a few projects I would highly welcome a canonical fork (ideally with a notice in this repo) in the hands of someone who has the time and energy to maintain this.
I'd also note to Twitter devs that it is much better for reputation and brand to pro-actively identify unmaintained projects and mark these as such clearly at the top of the README so the community knows it is OK to create a new canonical fork (and offering to include a link to that fork).

My choise is https://github.com/pawelczak/EasyAutocomplete


Fix issues with swift 2.3 and xcode 8

Current code doesn't seem to compile in Xcode 8, even in swift 2.3 mode. This castes optional values to empty strings before trying to convert them.

Sorry for the delay, guys!

Version 0.5.2 just published to npm.

awesome


Make it clear when the changes for csproj was introduced

Topic: https://docs.microsoft.com/en-us/dotnet/core/tools/cli-msbuild-architecture
LiveFyre comment indicates that the topic doesn't make a good job of letting users know when the change happened and which version of VS/tooling they can get the "new" behavior.

@mairaw I'm rolling this in with the 2.0 updates. The PR is imminent ... final touches going down now. :watch:

This issue work has been moved to https://github.com/dotnet/docs/pull/2493.


Implement c:upsert/2 as a pre-configured version of c:insert/2

Ecto.Repo's c:insert/2 can be used to perform UPSERT operations (an INSERT opts that becomes UPDATE if a given entry is already present in the repository).
See: https://hexdocs.pm/ecto/Ecto.Repo.html#c:insert/2-upserts

I'm tagging it as good first issue so new contributors can pick it to implement and PR.
If you're reading this and would like to contribute to the project, feel free to pick it up.


Implement new Triggers - "dsl_ode_trigger_newest_new" and "dsl_ode_trigger_oldest_new"

Implement two new Triggers to trigger on the "Newest" and "Oldest" objects within a frame.
/**
 * @brief Newest Trigger that checks for the persistence of Objects tracked
 * and will trigger on the Object with the least time of persistence (newest)
 * if at least one is found.
 * @param[in] name unique name for the ODE Trigger
 * @param[in] source unique source name filter for the ODE Trigger, NULL = ANY_SOURCE.
 * @param[in] class_id class id filter for this ODE Trigger.
 * @param[in] limit limits the number of ODE occurrences, a value of 0 = NO limit.
 * @return DSL_RESULT_SUCCESS on success, DSL_RESULT_ODE_TRIGGER_RESULT otherwise.
 */
DslReturnType dsl_ode_trigger_newest_new(const wchar_t* name,
    const wchar_t* source, uint class_id, uint limit);

/**
 * @brief Oldest Trigger that checks for the persistence of Objects tracked
 * and will trigger on the Object with the greatest time of persistence (oldest)
 * if at least one is found.
 * @param[in] name unique name for the ODE Trigger.
 * @param[in] source unique source name filter for the ODE Trigger, NULL = ANY_SOURCE.
 * @param[in] class_id class id filter for this ODE Trigger.
 * @param[in] limit limits the number of ODE occurrences, a value of 0 = NO limit
 * @return DSL_RESULT_SUCCESS on success, DSL_RESULT_ODE_TRIGGER_RESULT otherwise.
 */
DslReturnType dsl_ode_trigger_oldest_new(const wchar_t* name,
    const wchar_t* source, uint class_id, uint limit);

Hi. The demo videos in youtube show the usage of DSL, and the IVA Studio is similar to a engine editor of the game engine, which is a nice tool. So, do you have a plan to open the source of the IVA Studio? Thanks.

Hi @shuli163love, perhaps in the future once DSL has been officially released, but not at this time.

Merged into v0.19.alpha


[WIP] feat(config): add configmap for rekor endpoint

This PR adds reference to a ConfigMap with the required environment variable in order for the rekor-search-ui to be able to issue requests to the Rekor server.

@kahboom It's the same here as with the operator https://github.com/securesign/secure-sign-operator/pull/266#issuecomment-1999847904, this pr should be closed and push to this repo then opened :)


Mythical epics on team don't work in battle.

So today I started using the pets hack where it gives you all of the pets and i decided to use the mythical pets on my team, but when I get into a battle, they aren't there as like they are just invisible. This bug also happens to all of the mythical epics so I guess you can't use them. But the epics do work, you just have to put them on the 3 slot. How can you fix the mythical epics not being shown when in battle?

So today I started using the pets hack where it gives you all of the pets and i decided to use the mythical pets on my team, but when I get into a battle, they aren't there as like they are just invisible. This bug also happens to all of the mythical epics so I guess you can't use them. But the epics do work, you just have to put them on the 3 slot. How can you fix the mythical epics not being shown when in battle?

well um, you need an ultimate membership so they can show in battle
im no coder , so I can't fix the problem, we just have to wait for a free ultimate membership

Same here


point true not work at 1.4.9-beta-2

"Point is removed from the carousel instead of that you can create your own point styles by accessing the carousel. This step is taken based on the feedback of the developers“
A newbie, Not quite clear how to accessing the carousel to create point? I checked the source code, looks like  point: { visible: true } is still there...but didn't work
please show me more tips, thanks.

@sheikalthaf
great..thanks for help

@VictorLULI I hope you got the answer.


Make streams collapsible in inbox view

At present, stream sections in the inbox view are not collapsible. This means a user might have to do a lot of scrolling to find what they need when some streams have a large number of topics with unreads.
To address this, we should make the stream sections collapsible, which can be controlled by a triangle to the left of the stream name.
CZO discussion

I'm going to start working on this!


Fixed marshaling of Deployment Steps for API V1.X

This fixes the issue introduced by https://github.com/mesosphere/marathon/issues/3965
My 2 cents : I hope this doesn't get fixed and become the new API model, as I find it better.

@ssk2 Any news on this? We're currently hitting that really hard and I'd rather have an official release that building our own snapshot.


⚠ GitLab Server has degraded performance

In a8a275c, GitLab Server (https://gitlab01.its-telekom.eu) experienced degraded performance:

HTTP code: 200
Response time: 3005 ms

Resolved: GitLab Server performance has improved in 25e42f8.


Added training course from Alta3 Research

I signed it

@hilaryfryer Thanks for the PR. Please note that we don’t accept links to third-party content outside the Setup page. For more information, see https://github.com/kubernetes/enhancements/pull/1327.
/close

@zacharysarah I don't understand.  The Overview of Kubernetes Online Training page is entirely composed of links to third-party content.
Please help me understand how this PR is different than any of the previous commits which have added links to third-party content.  Thanks!

@bryfry See #19500.


Google API not accepting http requests

Right now i can't use angular lib because of the "//" relative protocol picker.

What protocol picker? Do you mean the script that's inserted?
Either way, I'm going to deploy a change to the libraries so that, where possible, they all use https instead of relative urls.

I moved all the libraries across to https as I mentioned.


Seperate Stmgr and Instance Serving in Stmgr

In the current stmgr, all incoming traffic(from peer stmgr and local instances) are multiplexed in the same server. This makes the class complex. Secondly when connection setup/disconnect happen it is not completely clear whether it was stmgr or an instance related. Plus it doesn't allow us to do differentiated handling between the two traffic. One is a inter-container traffic and the other is a intra-container traffic. We could perhaps encrypt the inter-container traffic, while intra-container can be sent via shared memory.
This pr seperates out this functionality. StMgrServer handles traffic from other stmgrs while InstanceServer handles traffic from local containers.

LGTM. Also looking forward to sending intra message via shared memory! Always want to see its implementation in real world code.


UIE实体识别输出混淆矩阵

您好，目前UIE模型训练时只输出precison, recall, f1值，我想要输出混淆矩阵，请问该怎么添加代码呢？

可以修改这里：https://github.com/PaddlePaddle/PaddleNLP/blob/develop/paddlenlp/metrics/span.py#L78
TP = self.num_correct_spans
FP = self.num_infer_spans - self.num_correct_spans
FN = self.num_label_spans - self.num_correct_spans


Could not automatically detect an ADB Binary

Installed latest release on Mac Mini M1 running 11.2.2
Android Studio 4.1.2 is installed and adb runs in terminal (path recognized)
Running latest release of preview, on open, get "Could not automatically detect an ADB binary.Some emulator func...'Use detected ADB location'
I cannot find that setting in my Android studio prefs
The preview appears to run however this error pops up, thought I should report it

In emulator menu (3 points), select Settings (almost bottom) and on General tab in right column second switch "Use detected ADB location"

Ah, got it. Thanks


EnumProcesses: strange descriptions of parameters

Link to article:
https://docs.microsoft.com/en-us/windows/desktop/api/psapi/nf-psapi-enumprocesses
EnumProcesses
Problem:
Strange descriptions in "Parameters" section:
Parameters
lpidProcess
TBD <<<<<<< What is it ???
cb
The size of the pProcessIds array, in bytes. (OK)
lpcbNeeded
TBD <<<<<< What is it again ???

Correct information (from my quite old local SDK help) is:
BOOL WINAPI EnumProcesses(
DWORD* pProcessIds,
DWORD cb,
DWORD* pBytesReturned
);
Parameters
pProcessIds
[out] Pointer to an array that receives the list of process identifiers.
cb
[in] Size of the pProcessIds array, in bytes.
pBytesReturned
[out] Number of bytes returned in the pProcessIds array.
I've seen these strange "TBD" stubs also on other pages but I don't remember on what exactly.

@BugsDigger TBD is "to be defined". Author didn't fully compete the document yet and will keep working on it. But I will let author know to avoid fill these kind of information in the future.

@GrantMeStrength @mijacobs Can you take a look at this issue.


Performance Benchmark

[ ] - Cold Init Time.
[ ] - Warmed up performance.
[ ] - CST Building time.
[ ] - CST to AST Time.
[ ] - Investigate if prettier uses the same process for parsing multiple files.

Can we close this now? :)

Yes


feat(about): add email

And add it in a kind of obfuscated manner to avoid being harvested from GitHub code
Cloudflare will help too with the prerendered version

Current dependencies on/for this PR:

main

PR #143   👈

This stack of pull requests is managed by Graphite.


lint

Ok, I was really confused by this linting error.
The files are fine, but there is a circular import... See for example when you run:
$ black haversine.py dataformat.py
All done! ✨ 🍰 ✨
2 files left unchanged.
(research) pmiron@m2air ~/Downloads/clouddrift/clouddrift
$ Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/Users/pmiron/micromamba/envs/research/lib/python3.10/multiprocessing/__init__.py", line 16, in <module>
    from . import context
  File "/Users/pmiron/micromamba/envs/research/lib/python3.10/multiprocessing/context.py", line 6, in <module>
    from . import reduction
  File "/Users/pmiron/micromamba/envs/research/lib/python3.10/multiprocessing/reduction.py", line 16, in <module>
    import socket
  File "/Users/pmiron/micromamba/envs/research/lib/python3.10/socket.py", line 54, in <module>
    import os, sys, io, selectors
  File "/Users/pmiron/micromamba/envs/research/lib/python3.10/selectors.py", line 12, in <module>
    import select
  File "/Users/pmiron/Downloads/clouddrift/clouddrift/select.py", line 1, in <module>
    import awkward as ak
  File "/Users/pmiron/micromamba/envs/research/lib/python3.10/site-packages/awkward/__init__.py", line 7, in <module>
    import awkward._nplikes
  File "/Users/pmiron/micromamba/envs/research/lib/python3.10/site-packages/awkward/_nplikes.py", line 7, in <module>
    import numpy
  File "/Users/pmiron/micromamba/envs/research/lib/python3.10/site-packages/numpy/__init__.py", line 140, in <module>
    from . import core
  File "/Users/pmiron/micromamba/envs/research/lib/python3.10/site-packages/numpy/core/__init__.py", line 100, in <module>
    from . import _add_newdocs_scalars
  File "/Users/pmiron/micromamba/envs/research/lib/python3.10/site-packages/numpy/core/_add_newdocs_scalars.py", line 9, in <module>
    import platform
  File "/Users/pmiron/micromamba/envs/research/lib/python3.10/platform.py", line 119, in <module>
    import subprocess
  File "/Users/pmiron/micromamba/envs/research/lib/python3.10/subprocess.py", line 223, in <module>
    _PopenSelector = selectors.SelectSelector
AttributeError: partially initialized module 'selectors' has no attribute 'SelectSelector' (most likely due to a circular import)

Long story short, the issue is with the name of the module select.py. If you rename it to anything else, it works. So my guess is that black is importing another module call select.py (https://docs.python.org/3/library/select.html).
The solution is to change the name of the select.py module, but to be honest I don't have any good suggestions.

I can't reproduce this locally. Black version? Mine is:
black, 22.8.0 (compiled: yes)
Python (CPython) 3.10.6

$ black --version
black, 22.12.0 (compiled: no)
Python (CPython) 3.10.8

I tried a newer version and that allowed me to format analysis.py to make linter happy in #100.
black, 23.1.0 (compiled: yes)
Python (CPython) 3.11.0rc1

I still can't reproduce this.
Does the error remain if you run it from one directory up? i.e.:
black clouddrift/analysis.py clouddrift/haversine.py

If not, our "solution" may be to simply not run black in the same directory as select.py.

It works from one directory up. But I think VSCode runs it automatically at the file level automatically when I save. I guess the solution is find for now.


transparency in scivisrenderer not right in 0.9.1

Looks like commit ae4890d broke transparency.
Compile vtk master against OSPRay and run ctest -R OSPRayRenderMesh to reproduce.

The gray sphere at 1,2 is too dark now and should look like this:

This was fixed in commit eeb49db, which will end up in our next release (currently in devel). Thanks!

fix confirmed


Godot crashes randomly and takes entire NVIDIA graphics driver with it

Godot version
Godot Engine v4.0.2.stable.official.7a0977ce2
System information
Manjaro Linux x86_64, Kernel: 6.2.10-1-MANJARO ,  CPU: 11th Gen Intel i7-1165G7 (8) @ 4.700GHz, GPU: NVIDA GTX 1650, DRIVER: 530.41.03-3, BACKEND: Vulkan
Issue description
Godot randomly crashes, usually only a few minutes into a session (but sometimes it lasts longer). After the crash, the Godot window remains open but does not respond to anything. The NVIDIA graphics driver is crashed and cannot be utilized by any other application, so the system at this point is using Intel integrated graphics only. Any attempt to kill the process will cause the entire system to freeze in such a way that can only be resolved by holding down the power button to turn off the PC. Attempting to shut down or reboot through the KDE GUI or through the command line will also cause such a freeze to happen.
Error Log:
Godot Engine v4.0.2.stable.official.7a0977ce2 - https://godotengine.org
libspeechd.so.2: cannot open shared object file: No such file or directory
Vulkan API 1.3.236 - Forward+ - Using Vulkan Device #0: NVIDIA - NVIDIA GeForce GTX 1650
ERROR: Condition "err" is true. Returning: ERR_CANT_CREATE
at: _update_swap_chain (drivers/vulkan/vulkan_context.cpp:1970)
ERROR: Condition "err != OK" is true. Returning: ERR_CANT_CREATE
at: _window_create (drivers/vulkan/vulkan_context.cpp:1698)
ERROR: Can't create a Vulkan window
at: _create_window (platform/linuxbsd/x11/display_server_x11.cpp:5145)
ERROR: Condition "!windows.has(p_window)" is true.
at: window_set_flag (platform/linuxbsd/x11/display_server_x11.cpp:2320)
ERROR: Condition "!windows.has(p_window)" is true.
at: window_set_flag (platform/linuxbsd/x11/display_server_x11.cpp:2320)
ERROR: Condition "!windows.has(p_window)" is true.
at: window_set_flag (platform/linuxbsd/x11/display_server_x11.cpp:2320)
ERROR: Condition "!windows.has(p_window)" is true.
at: window_set_flag (platform/linuxbsd/x11/display_server_x11.cpp:2320)
ERROR: Condition "window_id == DisplayServer::INVALID_WINDOW_ID" is true.
at: _make_window (scene/main/window.cpp:521)
Steps to reproduce
Open any project on this hardware configuration and work for a while until it crashes.
Minimal reproduction project
N/A, happens with any project.

Duplicate of https://github.com/godotengine/godot/issues/67404
Tracked by https://github.com/godotengine/godot/issues/71929


Always see the status phpcsfixer(ok) and no error is highlighted

I've tried adding a new line before <?php, adding double semi-colons, and several other things I'd think would trigger it based on reading the PHP-CS-Fixer documentation and based on my experience with SublimeLinter for JavaScript.
Upon saving the file, nothing happens then either.
Any ideas?

Auto-indentation occurs on saving, which I think is coming from PHP-CS-Fixer?


Cleanup of cloudformation, and related Utils functions.

General cleanup of the cloudformation module, and changed to the relevant utils. Including

Additional documentation for cloudformation
Better overall naming of cloudformation's new functions
Renamed cloudformation's private transform functions to format_param
Refactored Utils.build_indexed_params to flatten_params. Now recursive, making for more concise usage.
Refactored format_param functions to use new Utils.flatten_params
Added Utils.maybe_format macro. A very simple macro for calling private format_param functions if the param isn't null.
Added Utils.maybe_camelize and Utils.maybe_stringify to reduce atom and string checking clutter
Added __using__ macro to Utils for basic import + require

While the addition of maybe_format macro may seem a little heavyweight for just the cloudformation module. The usage of the maybe_format and format_param structure has simplified the cloudformation module significantly.
In addition, @bearleethere is currently working on the EC2 cleanup and is already using these new/updated utils to reduce the modules overall complexity. They will likely be applicable anywhere indexed params exist and need to be convered to the flattened (Elem.3.Member) format.

So far, after using this in my branch, I can say that all of the custom list builders functions in ec2 can go away. This has worked for every ec2 list params, including TagSpecification, InstanceId, Filter, Tag, etc. It has simplified the module quite a bit.

On Jun 23, 2017, at 2:23 AM, Daniel<EMAIL_ADDRESS>wrote:
While the addition of maybe_format macro may seem a little heavyweight for just the cloudformation module. The usage of the maybe_format and format_param structure has simplified the cloudformation module significantly.
In addition, @bearleethere is currently working on the EC2 cleanup and is already using these new/updated utils to reduce the modules overall complexity. They will likely be applicable anywhere indexed params exist and need to be convered to the flattened (Elem.3.Member) format.
―
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

I performed a major refactor. There are no macros used other than use.
use Utils lets us specify the format_type as :xml or :json. and pass in any number of non-standard keys as a map.
After this refactor, we removed most of the redundancy in creating xml formatted requests. At this point, it is mostly documentation :)

@benwilson512 Hey Ben! I just finished a major rework of the EC2 module. I am planning on using these changes in refactor of the EC2 module, so once this is pushed to master, I can update my branch and send a pull request.
We should also talk about a 1.2 release considering the mounting changes to ExAws. So far, we added a lot of functionalities, fixed a lot of broken operations, and improved the docs for EC2 and for Cloudformation. These changes should help anyone currently using these modules.

Getting an error on the CI https://travis-ci.org/CargoSense/ex_aws/builds/248821574?utm_source=email&utm_medium=notification
I really gotta figure out how to get the CI to run on PRs.

I took a look but I'm not sure how to fix this. Let me know when you've got a fix in, gonna release v1.1.3 after.

Ok, I found the issue. :stack_filter: [...] didn't match the AWS spec so was changed in the new cloudformation module. I reintroduced deprecated support for this param in #438


support dynamic collect

https://github.com/stolostron/backlog/issues/20602
Signed-off-by: Marco<EMAIL_ADDRESS>

/retest

/retest


Parse error logs from the jhist files.

With this /logs shows up immediately and the output is :100::100::100:% more signalful.
r? @colinmarc

One suggestion that shouldn't be much work: what if we added a link to the atempt ids next to the error description, so you could click through and see the whole log for those attempts? Then we could keep the log streaming bits but not the log parsing pits.
This is awesome :+1:


Allow to customize Go to symbol in workspace... search

The Go to symbol in workspace... feature is already of great use to me. It's pretty fast even when the workspace includes all my git repos.
However, I'd really appreciate if one could easily customize the search:

only display classes / functions / variables / similar  (related: https://github.com/microsoft/vscode/issues/86761)
limit search to certain files (e.g. # hello git/my-repo/**/.py)

As reference, https://github.com/kbysiec/vscode-search-everywhere uses symbols such as !! to limit search to functions and @@ to limit search to classes. However, it seems to be much slower than Go to symbol in workspace...  for me.

This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

:slightly_frowning_face: In the last 60 days, this feature request has received less than 20 community upvotes and we closed it. Still a big Thank You to you for taking the time to create this issue! To learn more about how we handle feature requests, please see our documentation.
Happy Coding!


Jump to start of function via navigation bar (aka breadcrumbs)

Check for existing issues

[X] Completed

Describe the feature
The navigation bar at the top of each buffer conveniently shows the name of the function/class that the cursor is currently in. When working with very long functions it would be nice to be able to click the name of the function in the navigation bar to jump to the start of that function. (and why not with classes/modules/whatnot other scopes shown there too)
If applicable, add mockups / screenshots to help present your vision of the feature
No response

Ah, so this is a duplicate after all: #380

Think this may be a duplicate of #380.


Moving tabs in firefox doesn't work properly

Already reported ? *

[X] I have searched the existing open and closed issues.

Regression?
Yes
System Info and Version
 System/Version info
Hyprland, built from branch makepkg at commit 9e356562446f44c471ae38a80506a9df039305d6  (internal: Delay monitor events/hooks (7797)).
Date: Mon Sep 16 03:03:42 2024
Tag: v0.43.0-28-g9e356562, commits: 5224

flags: (if any)

System Information:
System name: Linux
Node name: archer
Release: 6.10.10-zen1-1-zen
Version: #1 ZEN SMP PREEMPT_DYNAMIC Thu, 12 Sep 2024 17:17:51 +0000

GPU information:
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation AD107M [GeForce RTX 4050 Max-Q / Mobile] [10de:28e1] (rev a1) (prog-if 00 [VGA controller])
35:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Phoenix3 [1002:1900] (rev cc) (prog-if 00 [VGA controller])
NVRM version: NVIDIA UNIX Open Kernel Module for x86_64  560.35.03  Release Build  (archlinux-builder@)

os-release: NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo

plugins:

======Config-Start======

Config File: /home/cutie/.config/hypr/hyprland.conf: Read Succeeded
# vim: filetype=hyprlang
#################
### AUTOSTART ###
#################

# exec-once = /usr/lib/polkit-kde-authentication-agent-1
exec-once = hypridle
exec-once = hyprpm reload -n
exec-once = waybar &

#################
### VARIABLES ###
#################

# $terminal = kitty || wezterm  || foot
$terminal = foot || [ $? -eq 1 ] || kitty || wezterm
$menu = rofi -show drun

#############
### INPUT ###
#############

input {
    kb_layout = us,th
    kb_options = grp:win_space_toggle

    follow_mouse = 2
    float_switch_override_focus = 0
}

#####################
### LOOK AND FEEL ###
#####################

general {
    gaps_in = 0
    gaps_out = 0

    border_size = 0

    resize_on_border = true
}

decoration {
    drop_shadow = false
}

animations {
    enabled = true

    bezier = easeOutQuint, 0.22, 1, 0.36, 1
    # bezier = easeInOutExpo, 0.87, 0, 0.13, 1
    # bezier = linear, 0, 0, 0, 0

    animation = workspaces, 1, 4, easeOutQuint, slide
    animation = specialWorkspace, 1, 4, easeOutQuint, slidevert
    animation = windows, 1, 4, easeOutQuint, popin
    animation = layers, 1, 4, easeOutQuint
}

misc {
    disable_hyprland_logo = true
    disable_splash_rendering = true
    font_family = Noto Sans Mono
}

cursor {
    no_warps = true
}

####################
### KEYBINDINGSS ###
####################

source = ./keys.conf

##############################
### WINDOWS AND WORKSPACES ###
##############################

# windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.

###########
### Env ###
###########

env = QT_QPA_PLATFORM,wayland
env = QT_QPA_PLATFORMTHEME,qt6ct
source = ./env.conf

Config File: /home/cutie/.config/hypr/keys.conf: Read Succeeded
# vim: filetype=hyprlang
$mod = SUPER

bind = $mod SHIFT, Q, killactive
bind = $mod SHIFT, E, exit
bind = $mod SHIFT, C, exec, pkill waybar;hyprctl dispatch exec waybar &

bind = $mod, RETURN, exec, $terminal
bind = $mod, D, exec, $menu

# change to command pallete later??
bind = $mod, C, exec, ~/.config/rofi/launchers/run_cmd.sh

bind = $mod, B, exec, killall -SIGUSR1 waybar
bind = $mod, M, fullscreen, 1
bind = $mod, F, fullscreen, 0
bind = $mod SHIFT, F, fullscreenstate, -1 2
bind = $mod, Z, togglefloating
bind = $mod, E, togglesplit

bind = $mod, 1, workspace, 1
bind = $mod, 2, workspace, 2
bind = $mod, 3, workspace, 3
bind = $mod, 4, workspace, 4
bind = $mod, 5, workspace, 5
bind = $mod, 6, workspace, 6
bind = $mod, 7, workspace, 7
bind = $mod, 8, workspace, 8
bind = $mod, 9, workspace, 9
bind = $mod, 0, workspace, 10

bind = $mod SHIFT, 1, movetoworkspacesilent, 1
bind = $mod SHIFT, 2, movetoworkspacesilent, 2
bind = $mod SHIFT, 3, movetoworkspacesilent, 3
bind = $mod SHIFT, 4, movetoworkspacesilent, 4
bind = $mod SHIFT, 5, movetoworkspacesilent, 5
bind = $mod SHIFT, 6, movetoworkspacesilent, 6
bind = $mod SHIFT, 7, movetoworkspacesilent, 7
bind = $mod SHIFT, 8, movetoworkspacesilent, 8
bind = $mod SHIFT, 9, movetoworkspacesilent, 9
bind = $mod SHIFT, 0, movetoworkspacesilent, 10

bind = $mod, S, togglespecialworkspace, magic
bind = $mod SHIFT, S, movetoworkspace, special:magic

bindm = $mod, mouse:272, movewindow
bindm = $mod, mouse:273, resizewindow

Config File: /home/cutie/.config/hypr/env.conf: Read Succeeded
# vim: set filetype=hyprlang
# exec-once = hyprpaper
# exec-once = mpvpaper -o "input-ipc-server=/tmp/mpv-socket pause no-audio loop" -p eDP-1 ~/Pictures/Wallpapers/wallpaper.mp4
source = ./laptop.conf
source = ./dwindle.conf

decoration {
    blur {
        enabled = false
    }
}

animation = layers, 1, 2, easeOutQuint, popin

$cursor = rose-pine-hyprcursor
$size = 36
env = HYPRCURSOR_THEME,$cursor
env = HYPRCURSOR_SIZE,32
env = XCURSOR_THEME,BreezeX-RosePine-Linux
env = XCURSOR_SIZE,$size

Config File: /home/cutie/.config/hypr/laptop.conf: Read Succeeded
# vim: filetype=hyprlang
################
### MONITORS ###
################

monitor=,preferred,auto,1

#############
### INPUT ###
#############

input {
    touchpad {
        natural_scroll = true
        tap-and-drag = true
    }
}

gestures {
    workspace_swipe = true
}

unbind=,switch:on:Lid
bindl=,switch:off:Lid,exec,systemctl suspend

Config File: /home/cutie/.config/hypr/dwindle.conf: Read Succeeded
# vim: filetype=hyprlang
general {
    layout = dwindle
}

dwindle {
    force_split = 2
    preserve_split = true
}

group {
    col.border_active = 0xFF000000
    col.border_inactive = 0xFF000000

    groupbar {
        font_size = 12
        height = 18
        col.active = 0xFF000000
        col.inactive = 0xFF000000
    }
}

bind = $mod, T, togglegroup

bind = $mod, left, movefocus, l
bind = $mod, right, movefocus, r
bind = $mod, up, movefocus, u
bind = $mod, down, movefocus, d
bind = $mod, H, movefocus, l
bind = $mod, L, movefocus, r
bind = $mod, K, movefocus, u
bind = $mod, J, movefocus, d

bind = $mod SHIFT, left, movewindow, l
bind = $mod SHIFT, right, movewindow, r
bind = $mod SHIFT, up, movewindow, u
bind = $mod SHIFT, down, movewindow, d
bind = $mod SHIFT, H, movewindow, l
bind = $mod SHIFT, L, movewindow, r
bind = $mod SHIFT, K, movewindow, u
bind = $mod SHIFT, J, movewindow, d

======Config-End========

Description
Moving a tab in the same firefox window doesn't move the tab, instead it treats the tab like it's coming from another window.
And dragging and dropping a tab from another window also doesn't remove that tab from that window.
How to reproduce
Drag and drop tabs in and between firefox windows.
commit 4dbdb556fe441506ec5cf129c65b14e514dbcc5a caused it, if I wasn't wrong when bisecting.
Crash reports, logs, images, videos
No response

That commit is indeed the right one as mpv also behaves strangely when receiving DnD and crashes on the second DnD with the following:
mpv: ../mpv/video/out/wayland_common.c:1629: check_dnd_fd: Assertion `wl->dnd_action >= 0' failed.

patch.txt
try this

yep, that works

alr, I'll commit a bit modified one


mounts/devices don't allow actual disk topology confusing some tools

The CoreOS teams are writing a stage for bootupd for osbuild.  If bootupd is targetting an environment with BIOS then it will use grub2-install to install to the MBR on the disk. grub2-install needs both access to the /boot filesystem as well as the root of the disk (for MBR writing). Up until now our bootupd stage has looked something like this:
      - type: org.osbuild.bootupd
        options:
          bios:
            disk: wholedisk
          static-configs: true
        devices:
          wholedisk:
            type: org.osbuild.loopback
            options:
              filename: disk.img
          efi:
            type: org.osbuild.loopback
            options:
              filename: disk.img
              start:
                mpp-format-int: '{image.layout[''EFI-SYSTEM''].start}'
              size:
                mpp-format-int: '{image.layout[''EFI-SYSTEM''].size}'
          boot:
            type: org.osbuild.loopback
            options:
              filename: disk.img
              start:
                mpp-format-int: '{image.layout[''boot''].start}'
              size:
                mpp-format-int: '{image.layout[''boot''].size}'
          root:
            type: org.osbuild.loopback
            options:
              filename: disk.img
              start:
                mpp-format-int: '{image.layout[''root''].start}'
              size:
                mpp-format-int: '{image.layout[''root''].size}'
        mounts:
          - name: root
            type: org.osbuild.xfs
            source: root
            target: /
          - name: boot
            type: org.osbuild.ext4
            source: boot
            target: /boot
          - name: efi
            type: org.osbuild.fat
            source: efi
            target: /boot/efi

So wholedisk is the target for the MBR install and the boot mount is where grub2-install is instructed to install the modules and everything needed for stage2.
This strategy, along with the work over in https://github.com/osbuild/osbuild/pull/1493, works. I'm able to install a system and it boots. I was pretty happy with this, but then I ran our CI tests (yay for CI!), and realized that any tests that we have that reboot the system yielded a system that doesn't come back after reboot.
This is because on CoreOS we have a unit that randomizes the UUID of our boot and root filesystems on the first boot (this ensures that every install of CoreOS in the field will have a unique UUID for those filesystems).
After that happens the system won't boot any longer because it seems to be strongly tied to the original UUID of the filesystem at the time grub2-install was run.
I did some more digging into this and found when running in osbuild the grub2-install ends up hitting slightly different logic. Running grub2-install with --verbose inside of an osbuild run ends up with some output that looks like:
grub2-install: info: /run/osbuild/osbuild-dev-mdwnfjue/loop2 is not present.
grub2-install: info: Looking for /run/osbuild/osbuild-dev-mdwnfjue/loop2.
grub2-install: info: /run/osbuild/osbuild-dev-mdwnfjue/loop2 is a parent of /run/osbuild/osbuild-dev-mdwnfjue/loop2.
grub2-install: info: /run/osbuild/osbuild-dev-mdwnfjue/loop2 is present.
grub2-install: info: Looking for /run/osbuild/osbuild-dev-mdwnfjue/loop2.
grub2-install: info: /run/osbuild/osbuild-dev-mdwnfjue/loop2 is a parent of /run/osbuild/osbuild-dev-mdwnfjue/loop2.
grub2-install: info: /run/osbuild/osbuild-dev-mdwnfjue/loop2 is present.
grub2-install: info: Looking for /run/osbuild/osbuild-dev-mdwnfjue/loop2.
grub2-install: info: /run/osbuild/osbuild-dev-mdwnfjue/loop2 is a parent of /run/osbuild/osbuild-dev-mdwnfjue/loop2.
grub2-install: info: drive = 0.
grub2-install: info: the size of hostdisk//run/osbuild/osbuild-dev-mdwnfjue/loop2 is 786432.
grub2-install: info: no partition map found for hostdisk//run/osbuild/osbuild-dev-mdwnfjue/loop2.
grub2-install: info: /dev/loop0 is not present.
grub2-install: info: Looking for /dev/loop0.
grub2-install: info: /dev/loop0 is a parent of /dev/loop0.
grub2-install: info: /dev/loop0 is present.
grub2-install: info: Looking for /dev/loop0.
grub2-install: info: /dev/loop0 is a parent of /dev/loop0.
grub2-install: info: /dev/loop0 is present.
grub2-install: info: Looking for /dev/loop0.
grub2-install: info: /dev/loop0 is a parent of /dev/loop0.
grub2-install: info: 'grub-mkimage' '--directory' '/usr/lib/grub/i386-pc' '--prefix' '/grub2' '--output' '/run/osbuild/mounts/boot/grub2/i386-pc/core.img' '--dtb' '' '--sbat' '' '--format' 'i386-pc' '--compression' 'auto' '--appended-signature-size' '0' '--config' '/run/osbuild/mounts/boot/grub2/i386-pc/load.cfg' 'mdraid1x' 'ext2' 'biosdisk' 'search_fs_uuid'

whereas if I just run grub2-install on a booted system the logic is slightly different:
grub2-install: info: /dev/vda3 is not present.
grub2-install: info: Looking for /dev/vda3.
grub2-install: info: /dev/vda is a parent of /dev/vda3.
grub2-install: info: /dev/vda3 starts from 264192.
grub2-install: info: opening the device hostdisk//dev/vda.
grub2-install: info: drive = 0.
grub2-install: info: the size of hostdisk//dev/vda is 20971520.
grub2-install: info: drive = 0.
grub2-install: info: the size of hostdisk//dev/vda is 20971520.
grub2-install: info: Scanning for DISKFILTER devices on disk hostdisk//dev/vda.
grub2-install: info: Scanning for mdraid1x devices on disk hostdisk//dev/vda.
grub2-install: info: Scanning for mdraid09_be devices on disk hostdisk//dev/vda.
grub2-install: info: Scanning for mdraid09 devices on disk hostdisk//dev/vda.
grub2-install: info: Scanning for dmraid_nv devices on disk hostdisk//dev/vda.
grub2-install: info: Scanning for ldm devices on disk hostdisk//dev/vda.
grub2-install: info: scanning hostdisk//dev/vda for LDM.
grub2-install: info: no LDM signature found.
grub2-install: info: Scanning for lvm devices on disk hostdisk//dev/vda.
grub2-install: info: no LVM signature found.
...
...
...
grub2-install: info: Partition 0 starts from 2048.
grub2-install: info: Partition 1 starts from 4096.
grub2-install: info: Partition 2 starts from 264192.
grub2-install: info: drive = 0.
grub2-install: info: the size of hostdisk//dev/vda is 20971520.
grub2-install: info: /dev/vda is present.
grub2-install: info: Looking for /dev/vda.
grub2-install: info: /dev/vda is a parent of /dev/vda.
grub2-install: info: /dev/vda is present.
grub2-install: info: Looking for /dev/vda.
grub2-install: info: /dev/vda is a parent of /dev/vda.
grub2-install: info: /dev/vda is present.
grub2-install: info: Looking for /dev/vda.
grub2-install: info: /dev/vda is a parent of /dev/vda.
grub2-install: info: 'grub-mkimage' '--directory' '/usr/lib/grub/i386-pc' '--prefix' '(,gpt3)/grub2' '--output' '/boot/grub2/i386-pc/core.img' '--dtb' '' '--sbat' '' '--format' 'i386-pc' '--compression' 'auto' '--appended-signature-size' '0' 'mdraid1x' 'ext2' 'part_gpt' 'biosdisk'

As you can see the grub2-mkimage call has an extra --config /run/osbuild/mounts/boot/grub2/i386-pc/load.cfg and the contents of that file look like:
[core@cosa-devsh ~]$ cat /boot/grub2/i386-pc/load.cfg
search.fs_uuid 96d15588-3596-4b3c-adca-a2ff7279ea63 root
set prefix=($root)'/grub2'

This is because in the osbuild case the grub2 code detects that the MBR and stage 2 are on separate disks (i.e. the drive = 0 and drive = 1 output in the logs above) and thus determines it needs to leave a stage 1.5 hint about where the stage 2 is.
I think specifically it's hitting this code:
      if ((disk_module && grub_strcmp (disk_module, "biosdisk") != 0)
          || grub_drives[1]
          || (!install_drive
              && platform != GRUB_INSTALL_PLATFORM_POWERPC_IEEE1275)
          || (install_drive && !is_same_disk (grub_drives[0], install_drive))
          || !have_bootdev (platform))
        {

so the (install_drive && !is_same_disk (grub_drives[0], install_drive)) means it drops into the following code and drops the load.cfg with the UUID binding.
What I would like to propose is for us to be able to pass in the whole disk in devices with partscan turned on via an option and then be able to specify our mounts with a parent device and a filesystem label or uuid to use for mounting. Something like this:
      - type: org.osbuild.bootupd
        options:
          bios:
            disk: wholedisk
          static-configs: true
        devices:
          wholedisk:
            type: org.osbuild.loopback
            options:
              filename: disk.img
        mounts:
          - name: root
            type: org.osbuild.xfs
            parent: wholedisk
            label: root
            target: /
          - name: boot
            type: org.osbuild.ext4
            parent: wholedisk
            label: boot
            target: /boot
          - name: efi
            type: org.osbuild.fat
            parent: wholedisk
            label: EFI-SYSTEM
            target: /boot/efi

This may seem unsafe, since many filesystems on a host can have the same FS label, but if we limit the consideration for this code to just the specified parent device then it should be fine.
This would enable things like loop0p1, loop0p2, loop0p3, etc.. and then the grub2-install code can detect and see that loop0p3 is a part of loop0 and do the right thing.

I'm not sure I follow the issue completely.

The CoreOS teams are writing a stage for bootupd for osbuild. If bootupd is targetting an environment with BIOS then it will use grub2-install to install to the MBR on the disk. grub2-install needs both access to the /boot filesystem as well as the root of the disk (for MBR writing). Up until now our bootupd stage has looked something like this:
      - type: org.osbuild.bootupd
        options:
          bios:
            disk: wholedisk
          static-configs: true
        devices:
          wholedisk:
            type: org.osbuild.loopback
            options:
              filename: disk.img
          efi:
            type: org.osbuild.loopback
            options:
              filename: disk.img
              start:
                mpp-format-int: '{image.layout[''EFI-SYSTEM''].start}'
              size:
                mpp-format-int: '{image.layout[''EFI-SYSTEM''].size}'
          boot:
            type: org.osbuild.loopback
            options:
              filename: disk.img
              start:
                mpp-format-int: '{image.layout[''boot''].start}'
              size:
                mpp-format-int: '{image.layout[''boot''].size}'
          root:
            type: org.osbuild.loopback
            options:
              filename: disk.img
              start:
                mpp-format-int: '{image.layout[''root''].start}'
              size:
                mpp-format-int: '{image.layout[''root''].size}'
        mounts:
          - name: root
            type: org.osbuild.xfs
            source: root
            target: /
          - name: boot
            type: org.osbuild.ext4
            source: boot
            target: /boot
          - name: efi
            type: org.osbuild.fat
            source: efi
            target: /boot/efi

So wholedisk is the target for the MBR install and the boot mount is where grub2-install is instructed to install the modules and everything needed for stage2.
This strategy, along with the work over in #1493, works. I'm able to install a system and it boots. I was pretty happy with this, but then I ran our CI tests (yay for CI!), and realized that any tests that we have that reboot the system yielded a system that doesn't come back after reboot.
This is because on CoreOS we have a unit that randomizes the UUID of our boot and root filesystems on the first boot (this ensures that every install of CoreOS in the field will have a unique UUID for those filesystems).
After that happens the system won't boot any longer because it seems to be strongly tied to the original UUID of the filesystem at the time grub2-install was run.
I did some more digging into this and found when running in osbuild the grub2-install ends up hitting slightly different logic. Running grub2-install with --verbose inside of an osbuild run ends up with some output that looks like:
grub2-install: info: /run/osbuild/osbuild-dev-mdwnfjue/loop2 is not present.
grub2-install: info: Looking for /run/osbuild/osbuild-dev-mdwnfjue/loop2.
grub2-install: info: /run/osbuild/osbuild-dev-mdwnfjue/loop2 is a parent of /run/osbuild/osbuild-dev-mdwnfjue/loop2.
grub2-install: info: /run/osbuild/osbuild-dev-mdwnfjue/loop2 is present.
grub2-install: info: Looking for /run/osbuild/osbuild-dev-mdwnfjue/loop2.
grub2-install: info: /run/osbuild/osbuild-dev-mdwnfjue/loop2 is a parent of /run/osbuild/osbuild-dev-mdwnfjue/loop2.
grub2-install: info: /run/osbuild/osbuild-dev-mdwnfjue/loop2 is present.
grub2-install: info: Looking for /run/osbuild/osbuild-dev-mdwnfjue/loop2.
grub2-install: info: /run/osbuild/osbuild-dev-mdwnfjue/loop2 is a parent of /run/osbuild/osbuild-dev-mdwnfjue/loop2.
grub2-install: info: drive = 0.
grub2-install: info: the size of hostdisk//run/osbuild/osbuild-dev-mdwnfjue/loop2 is 786432.
grub2-install: info: no partition map found for hostdisk//run/osbuild/osbuild-dev-mdwnfjue/loop2.
grub2-install: info: /dev/loop0 is not present.
grub2-install: info: Looking for /dev/loop0.
grub2-install: info: /dev/loop0 is a parent of /dev/loop0.
grub2-install: info: /dev/loop0 is present.
grub2-install: info: Looking for /dev/loop0.
grub2-install: info: /dev/loop0 is a parent of /dev/loop0.
grub2-install: info: /dev/loop0 is present.
grub2-install: info: Looking for /dev/loop0.
grub2-install: info: /dev/loop0 is a parent of /dev/loop0.
grub2-install: info: 'grub-mkimage' '--directory' '/usr/lib/grub/i386-pc' '--prefix' '/grub2' '--output' '/run/osbuild/mounts/boot/grub2/i386-pc/core.img' '--dtb' '' '--sbat' '' '--format' 'i386-pc' '--compression' 'auto' '--appended-signature-size' '0' '--config' '/run/osbuild/mounts/boot/grub2/i386-pc/load.cfg' 'mdraid1x' 'ext2' 'biosdisk' 'search_fs_uuid'

whereas if I just run grub2-install on a booted system the logic is slightly different:
grub2-install: info: /dev/vda3 is not present.
grub2-install: info: Looking for /dev/vda3.
grub2-install: info: /dev/vda is a parent of /dev/vda3.
grub2-install: info: /dev/vda3 starts from 264192.
grub2-install: info: opening the device hostdisk//dev/vda.
grub2-install: info: drive = 0.
grub2-install: info: the size of hostdisk//dev/vda is 20971520.
grub2-install: info: drive = 0.
grub2-install: info: the size of hostdisk//dev/vda is 20971520.
grub2-install: info: Scanning for DISKFILTER devices on disk hostdisk//dev/vda.
grub2-install: info: Scanning for mdraid1x devices on disk hostdisk//dev/vda.
grub2-install: info: Scanning for mdraid09_be devices on disk hostdisk//dev/vda.
grub2-install: info: Scanning for mdraid09 devices on disk hostdisk//dev/vda.
grub2-install: info: Scanning for dmraid_nv devices on disk hostdisk//dev/vda.
grub2-install: info: Scanning for ldm devices on disk hostdisk//dev/vda.
grub2-install: info: scanning hostdisk//dev/vda for LDM.
grub2-install: info: no LDM signature found.
grub2-install: info: Scanning for lvm devices on disk hostdisk//dev/vda.
grub2-install: info: no LVM signature found.
...
...
...
grub2-install: info: Partition 0 starts from 2048.
grub2-install: info: Partition 1 starts from 4096.
grub2-install: info: Partition 2 starts from 264192.
grub2-install: info: drive = 0.
grub2-install: info: the size of hostdisk//dev/vda is 20971520.
grub2-install: info: /dev/vda is present.
grub2-install: info: Looking for /dev/vda.
grub2-install: info: /dev/vda is a parent of /dev/vda.
grub2-install: info: /dev/vda is present.
grub2-install: info: Looking for /dev/vda.
grub2-install: info: /dev/vda is a parent of /dev/vda.
grub2-install: info: /dev/vda is present.
grub2-install: info: Looking for /dev/vda.
grub2-install: info: /dev/vda is a parent of /dev/vda.
grub2-install: info: 'grub-mkimage' '--directory' '/usr/lib/grub/i386-pc' '--prefix' '(,gpt3)/grub2' '--output' '/boot/grub2/i386-pc/core.img' '--dtb' '' '--sbat' '' '--format' 'i386-pc' '--compression' 'auto' '--appended-signature-size' '0' 'mdraid1x' 'ext2' 'part_gpt' 'biosdisk'

As you can see the grub2-mkimage call has an extra --config /run/osbuild/mounts/boot/grub2/i386-pc/load.cfg and the contents of that file look like:
[core@cosa-devsh ~]$ cat /boot/grub2/i386-pc/load.cfg
search.fs_uuid 96d15588-3596-4b3c-adca-a2ff7279ea63 root
set prefix=($root)'/grub2'

This is because in the osbuild case the grub2 code detects that the MBR and stage 2 are on separate disks (i.e. the drive = 0 and drive = 1 output in the logs above) and thus determines it needs to leave a stage 1.5 hint about where the stage 2 is.
I think specifically it's hitting this code:
      if ((disk_module && grub_strcmp (disk_module, "biosdisk") != 0)
          || grub_drives[1]
          || (!install_drive
              && platform != GRUB_INSTALL_PLATFORM_POWERPC_IEEE1275)
          || (install_drive && !is_same_disk (grub_drives[0], install_drive))
          || !have_bootdev (platform))
        {

so the (install_drive && !is_same_disk (grub_drives[0], install_drive)) means it drops into the following code and drops the load.cfg with the UUID binding.

Is this coming from grub2 itself or is it maybe something that bootupd is controlling?
I'm not seeing drive = 1 anywhere and wondering if this is in fact what's happening or if it's coming from somewhere else?  Looking at the two logs, they're certainly not identical, but the parent device detection seems to be very similar.

What I would like to propose is for us to be able to pass in the whole disk in devices with partscan turned on via an option and then be able to specify our mounts with a parent device and a filesystem label or uuid to use for mounting. Something like this:
      - type: org.osbuild.bootupd
        options:
          bios:
            disk: wholedisk
          static-configs: true
        devices:
          wholedisk:
            type: org.osbuild.loopback
            options:
              filename: disk.img
        mounts:
          - name: root
            type: org.osbuild.xfs
            parent: wholedisk
            label: root
            target: /
          - name: boot
            type: org.osbuild.ext4
            parent: wholedisk
            label: boot
            target: /boot
          - name: efi
            type: org.osbuild.fat
            parent: wholedisk
            label: EFI-SYSTEM
            target: /boot/efi

This may seem unsafe, since many filesystems on a host can have the same FS label, but if we limit the consideration for this code to just the specified parent device then it should be fine.
This would enable things like loop0p1, loop0p2, loop0p3, etc.. and then the grub2-install code can detect and see that loop0p3 is a part of loop0 and do the right thing.

Is the right thing in this case "not writing the cfg with the uuid"?
We could certainly attach the whole device with partscan if it solves the issue.  Your point about conflicting fs labels is a little worrying though.  How do we limit it?

Is this coming from grub2 itself or is it maybe something that bootupd is controlling?
I'm not seeing drive = 1 anywhere and wondering if this is in fact what's happening or if it's coming from somewhere else? Looking at the two logs, they're certainly not identical, but the parent device detection seems to be very similar.

Sorry, I snipped some of the log and the drive = 1 part got missed:
grub2-install: info: Opening dest `hostdisk//dev/loop0'.
grub2-install: info: drive = 1.
grub2-install: info: the size of hostdisk//dev/loop0 is 20971520.
grub2-install: info: /run/osbuild/osbuild-dev-mdwnfjue/loop2 is present.
grub2-install: info: Looking for /run/osbuild/osbuild-dev-mdwnfjue/loop2.
grub2-install: info: /run/osbuild/osbuild-dev-mdwnfjue/loop2 is a parent of /run/osbuild/osbuild-dev-mdwnfjue/loop2.
grub2-install: info: /run/osbuild/osbuild-dev-mdwnfjue/loop2 is present.
grub2-install: info: Looking for /run/osbuild/osbuild-dev-mdwnfjue/loop2.
grub2-install: info: /run/osbuild/osbuild-dev-mdwnfjue/loop2 is a parent of /run/osbuild/osbuild-dev-mdwnfjue/loop2.
grub2-install: info: drive = 0.
grub2-install: info: the size of hostdisk//run/osbuild/osbuild-dev-mdwnfjue/loop2 is 786432.
grub2-install: info: guessed root_dev `hostdisk//run/osbuild/osbuild-dev-mdwnfjue/loop2' from dir `/run/osbuild/mounts/boot/grub2/i386-pc'.
grub2-install: info: setting the root device to `hostdisk//run/osbuild/osbuild-dev-mdwnfjue/loop2'.

Is the right thing in this case "not writing the cfg with the uuid"?

I think so. The /boot/grub2/i386-pc/load.cfg is something we don't really consider when considering the factors involved in bootloader updates and I think it complicates things to have it exist.

We could certainly attach the whole device with partscan if it solves the issue. Your point about conflicting fs labels is a little worrying though. How do we limit it?

My solution to that was to enlist a parent attribute to the mount specification that tells the mounting code to only consider partitions on this parent device when trying to find a filesystem to mount. So in the case of:
      - type: org.osbuild.bootupd
        options:
          bios:
            disk: wholedisk
          static-configs: true
        devices:
          wholedisk:
            type: org.osbuild.loopback
            options:
              filename: disk.img
        mounts:
          - name: root
            type: org.osbuild.xfs
            parent: wholedisk
            label: root
            target: /
          - name: boot
            type: org.osbuild.ext4
            parent: wholedisk
            label: boot
            target: /boot
          - name: efi
            type: org.osbuild.fat
            parent: wholedisk
            label: EFI-SYSTEM
            target: /boot/efi

The devices code would set up a loopback mount on disk.img (the full disk), which is named wholedisk in our config here, and then the partscan would add device entries that represent the partitions on that device. For illustrative purposes let's assume that wholedisk gets the loop0 loopback device and then loop0p1, loop0p2, loop0p3, and loop0p4 exist as well.
Then the mount code would lookup the parent (here specified as wholedisk) and find it is loop0 and then only look for a filesystem with label root on that loop0 device. It would then do the same for boot and EFI-SYSTEM.
The result is that the same mounts exist as they did before, but they are associated with a parent device, unlike before.
And, actually, I think this more succinct description of the mounts/devices is easier to consume/read.

FTR I was able to confirm that getting things into this environment/setup would cause grub2 to do the right thing. In an extremely hacky way I renamed the mounts and devices only for my bootupd stage and then wrote some code that hardcoded special behavior:
diff --git a/osbuild/mounts.py b/osbuild/mounts.py
index d22d0ee9..6b14c76b 100644
--- a/osbuild/mounts.py
+++ b/osbuild/mounts.py
@@ -59,6 +59,24 @@ class MountManager:
     def mount(self, mount: Mount) -> Dict:

         source = self.devices.device_abspath(mount.device)
+        print(f"ZZZ source is {source} and mount.device is {mount.device.name}")
+
+        import stat
+        dn = os.path.dirname(source)
+        cwd = os.getcwd()
+        os.chdir(dn)
+        if mount.device.name == "bootupdroot":
+            source = os.path.join("/dev", "loop0p4")
+            os.mknod("loop0p4", mode=(stat.S_IMODE(0o600) | stat.S_IFBLK), device=os.makedev(259, 3))
+        elif mount.device.name == "bootupdboot":
+            source = os.path.join("/dev", "loop0p3")
+            os.mknod("loop0p3", mode=(stat.S_IMODE(0o600) | stat.S_IFBLK), device=os.makedev(259, 2))
+        elif mount.device.name == "bootupdefi":
+            source = os.path.join("/dev", "loop0p2")
+            os.mknod("loop0p2", mode=(stat.S_IMODE(0o600) | stat.S_IFBLK), device=os.makedev(259, 1))
+        os.chdir(cwd)
+        print(f"AAA source is {source} and mount.device is {mount.device.name}")
+

         root = os.fspath(self.root)

Then the environment looks like:
Pipeline raw-image: 1f5d854a07d019c32e13b55457681e5946898cd5ef70268757f0f1f7579bd327
Build
  root: <host>
  runner: org.osbuild.fedora38 (org.osbuild.fedora38)
org.osbuild.bootupd: 1f5d854a07d019c32e13b55457681e5946898cd5ef70268757f0f1f7579bd327 {
  "bios": {
    "disk": "wholedisk"
  },
  "static-configs": true
}
device/wholedisk (org.osbuild.loopback): loop0 acquired (locked: False)
device/bootupdefi (org.osbuild.loopback): loop1 acquired (locked: False)
device/bootupdboot (org.osbuild.loopback): loop2 acquired (locked: False)
device/bootupdroot (org.osbuild.loopback): loop3 acquired (locked: False)
ZZZ source is /run/osbuild/osbuild-dev-9f2806p8/loop3 and mount.device is bootupdroot
AAA source is /dev/loop0p4 and mount.device is bootupdroot
ZZZ source is /run/osbuild/osbuild-dev-9f2806p8/loop2 and mount.device is bootupdboot
AAA source is /dev/loop0p3 and mount.device is bootupdboot
ZZZ source is /run/osbuild/osbuild-dev-9f2806p8/loop1 and mount.device is bootupdefi
AAA source is /dev/loop0p2 and mount.device is bootupdefi
bash: cannot set terminal process group (1): Inappropriate ioctl for device
bash: no job control in this shell
bash-5.2#
bash-5.2#
bash-5.2# lsblk
NAME      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
loop0       7:0    0   10G  0 loop
├─loop0p1 259:0    0    1M  0 part
├─loop0p2 259:1    0  127M  0 part /run/osbuild/mounts/boot/efi
├─loop0p3 259:2    0  384M  0 part /run/osbuild/mounts/boot
└─loop0p4 259:3    0    2G  0 part /run/osbuild/mounts
loop1       7:1    0  127M  0 loop
loop2       7:2    0  384M  0 loop
loop3       7:3    0    2G  0 loop
zram0     251:0    0    8G  0 disk [SWAP]
vda       252:0    0   41G  0 disk
├─vda1    252:1    0    1M  0 part
├─vda2    252:2    0 1000M  0 part
├─vda3    252:3    0  100M  0 part
├─vda4    252:4    0    4M  0 part
└─vda5    252:5    0 38.9G  0 part /run/osbuild/api/arguments
                                   /run/osbuild/inputs
                                   /run/osbuild/meta
                                   /run/osbuild/tree
                                   /proc/cmdline
                                   /etc/containers
                                   /var
                                   /usr
bash-5.2# ls /dev/loop*
/dev/loop0  /dev/loop0p2  /dev/loop0p3  /dev/loop0p4  /dev/loop1  /dev/loop2  /dev/loop3

and the logs from that run look like:
/usr/sbin/grub2-install: info: grub-mkimage --directory '/usr/lib/grub/i386-pc' --prefix '(,gpt3)/grub2' --output '/run/osbuild/mounts/boot/grub2/i386-pc/core.img'  --dtb '' --sbat '' --format 'i386-pc' -
-compression 'auto' --appended-signature-size 0   'mdraid1x' 'part_gpt' 'ext2' 'part_gpt' 'biosdisk'

Then the mount code would lookup the parent (here specified as wholedisk) and find it is loop0 and then only look for a filesystem with label root on that loop0 device. It would then set source for that mount entry to /dev/loop0p4. It would then do the same for boot and EFI-SYSTEM.
The result is that the same mounts exist as they did before, but they are associated with a parent device, unlike before.
And, actually, I think this more succinct description of the mounts/devices is easier to consume/read.

I wonder if it's simpler to rely on the partition ordering instead of labels here.  osbuild knows the partition numbers, it created them itself.  I think something like this might be more robust:
      - type: org.osbuild.bootupd
        options:
          bios:
            disk: wholedisk
          static-configs: true
        devices:
          wholedisk:
            type: org.osbuild.loopback
            options:
              filename: disk.img
        mounts:
          - name: root
            type: org.osbuild.xfs
            parent: wholedisk
            partition_number: 1
            target: /
          - name: boot
            type: org.osbuild.ext4
            parent: wholedisk
            partition_number: 2
            target: /boot
          - name: efi
            type: org.osbuild.fat
            parent: wholedisk
            partition_number: 3
            target: /boot/efi

I think having a partition_number that becomes mandatory when parent is used is easier to work with and define in schemas.  Relying on labels would mean depending on a label being set during filesystem creation, which is generally optional, and happens separately from the usage of the mounts.
This isn't the most important part, so don't get me wrong, I think we should do this in general and I think it could simplify mounting in some cases where the "slice" (with start and size) device definition can be hard to read.


PowerShell bootstrapper MD5 check of packages config not supported by earlier versions of PowerShell

See cake-build/resources#8

Also the website, cake-vso and example repos :-)

@gep13 :+1: :wink:


Improve reference

Preview
https://temporian--154.org.readthedocs.build/en/154/reference/
TODOs

[ ] fix all paths to reference sections in other parts of the docs

This is awesome. This is my new favourite page  :).
I have a few comments from looking at the preview. I am writing about them here.

Nit.
In the "Source code in" sections. Is it possible to get a link to the file on Github?

Can custom type annotations (e.g. tp.Schema) be clickable?
For example, could the text "Schema", in the section "schema() -> Schema" of the page "tp.Node", redirect to the tp.Schema page?

Nit
Is it possible to remove the "temporian" bullet on the page "https://temporian--154.org.readthedocs.build/en/154/reference/".
This is the only bullet with this indentation.

Nit
Can the functions in tp.duration be visible in the left menu (i.e., tp.duration is unfoldable)?

Nit
"Io" -> "IO" in the left menu.

Can the python usage example be coloured syntactically? Maybe we just need to have the tag ```python in the documentation?

Nit
Is it possible to create "links" in the documentation?
For example, in "tp.EventSet" plot, we write "Plots the event set. See tp.plot for details.".
Is there a way to get "tp.plot" clickable?


Cleanup trailine lines in build.sh

Minor cleanup, but mainly used to re-trigger CI and solve https://github.com/conda-forge/ipopt-feedstock/issues/80 .
Checklist

[x] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


How to get Relation annotations.

Dear Author, I would like to know whether there are the relation anotations for NExT-QA, the link in readme can not be opened. Thanks.

Hi, please find the annotations here. For some missing videos , please refer to here


[draft] Smoke test nightly packages

Use nightly packages for smoke testing.

/azp run js - smoke-tests

I've moved the smoke-tests.yml into the smoke tests folder to facilitate failure notifications. Until this merges we will not be able to force the pipeline to look for the file in the common/smoke-test folder.
Most recent, successful run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=229394&view=results


K3s in docker agent error, Unable to fetch container log stats

cri_stats_provider.go:576] Unable to fetch container log stats

v0.7.0
node_1  | E0914 01:07:44.678736       1 cri_stats_provider.go:576] Unable to fetch container log stats for path /var/log/pods/kube-system_metrics-server-f5896c776-wwh6c_32d8b982-d2e7-11e9-8d8a-fa163e00f533/metrics-server: cmd [find /var/log/pods/kube-system_metrics-server-f5896c776-wwh6c_32d8b982-d2e7-11e9-8d8a-fa163e00f533/metrics-server -xdev -printf .] failed. stderr: find: unrecognized: -printf
node_1  | BusyBox v1.28.4 (2018-12-31 18:05:13 UTC) multi-call binary.
node_1  |
node_1  | Usage: find [-HL] [PATH]... [OPTIONS] [ACTIONS]
node_1  |
node_1  | Search for files and perform actions on them.
node_1  | First failed action stops processing of current file.
node_1  | Defaults: PATH is current directory, action is '-print'
node_1  |
node_1  | 	-L,-follow	Follow symlinks
node_1  | 	-H		...on command line only
node_1  | 	-xdev		Don't descend directories on other filesystems
node_1  | 	-maxdepth N	Descend at most N levels. -maxdepth 0 applies
node_1  | 			actions to command line arguments only
node_1  | 	-mindepth N	Don't act on first N levels
node_1  | 	-depth		Act on directory *after* traversing it

I've customized the k3s docker img, just apk add findutils to the img, fixed it.


spy.andCall(), spy.andReturn(), spy.andThrow() should nullify other responses

Currently, spy.reset() just resets the calls. Perhaps it should also clear out targetFn, thrownValue and returnValue?
Right now once the spy has a andCall() set, other tests using the spy are bound to the same andCall() even if .andReturn() or andThrow() are subsequently called. In order to workaround, I have to explicitly call andCall(null) for any of the latter to make the spy return or throw the appropriate result.
Or, the other possibility is to ensure that andCall(), andReturn() and andThrow() clear out the other targetFn, thrownValue and returnValue variables.
I can submit a PR, but wanted to get feedback first.

After thinking about this a bit, spy.reset() should not do anything to the andCall, andReturn or andThrow values. Developer might want to set up something and let it behave the same way for all tests.
However, the and* functions should nullify the other variables.
Changed title to reflect this.

Spies are not intended to be long-lived things. I forgot why we introduced the spy.reset API in the first place, but I never use it. It's super cheap to just make a new spy whenever you need to do some spying and then throw it away when you're done. If anything, I'd say let's remove the spy.reset API and just warn if you call two different and* methods, but I don't think it's critical.
I'd welcome a PR if you want to take this on.

Please don't remove spy.reset. While I understand that they're cheap and easy to setup/tear down, I also find them quite useful for setting up a test suite once in a before statement. It helps keep things DRY in some cases. Example:
  var Foo = require('./Foo');
  describe('some suite testing Foo implementation of BarDependency', () => {
    var BarDependency;
    before(() => {
      BarDependency = {
        useBar: createSpy()
      };
      Foo.setBarDependency(BarDependency);
    });
    afterEach(() => {
      BarDependency.useBar.reset();
    });
    it('Foo.doSomething() called with [param] calls BarDependency.useBar() with [param], () => {
      Foo.doSomething('param');
      expect(BarDependency.useBar).toHaveBeenCalledWith('param');
    });
    it('Foo.doSomething() called with [null] never calls BarDependency.useBar(), () => {
      Foo.doSomething(null);
      expect(BarDependency.useBar).toNotHaveBeenCalled()
    });
  })

In the above case, I can keep my test DRY by not having to repeatedly set up Foo.setBarDependency.
I'll create a PR for the other issue.

Created PR here: https://github.com/mjackson/expect/pull/143


fix(chat): updated Playback first screen. Removed model name from the Playback button(#939)

Description:
Playback first screen updated. Now there is just 'Playback' label on the button.
Issues:

Issue #939

UI changes

Checklist:

[x] the pull request name complies with Conventional Commits
[x] the pull request name starts with fix(<scope>):, feat(<scope>):, feature(<scope>):, chore(<scope>):, hotfix(<scope>): or e2e(<scope>):. If contains breaking changes then the pull request name must start with fix(<scope>)!:, feat(<scope>)!:, feature(<scope>)!:, chore(<scope>)!:, hotfix(<scope>)!: or e2e(<scope>)!: where <scope> is name of affected project: chat, chat-e2e, overlay, shared, sandbox-overlay, etc.
[x] the pull request name ends with (Issue #<TICKET_ID>) (comma-separated list of issues)
[x] I confirm that do not share any confidential information like API keys or any other secrets and private URLs

/deploy-review


Text splitting for synthesis

Codecov Report

Merging #63 (8d3e170) into main (b9f23ba) will increase coverage by 0.02%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main      #63      +/-   ##
==========================================
+ Coverage   94.28%   94.31%   +0.02%
==========================================
  Files          20       20
  Lines         910      914       +4
==========================================
+ Hits          858      862       +4
  Misses         52       52

Impacted Files
Coverage Δ

synthesis/synthesize.py
95.00% <100.00%> (+0.26%)
: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 b9f23ba...8d3e170. Read the comment docs.


In run_xds_tests.py, run clients in bash

The Node tests are failing with an error that appears to be caused by using an old version of Node. We use nvm to install Node, so I think these failures are caused by nvm-sh/nvm#1866: Popen's default shell does not load the right profile files to source nvm.sh. I tried to fix this with grpc/grpc-node#1577 but that didn't work. So I suggest this change, which is the remedy that reportedly worked in the linked nvm issue.

Can you run the existing C++ test with this change to ensure it still works? You can add a commit like https://github.com/grpc/grpc/pull/22538/commits/936ab4da4f134c2133374d23ff263324c2943796 to "borrow" the Bazel Basic Tests for Python (Local) kokoro job temporarily (then revert that change before merging)
Otherwise I am ok with this change if it works but it seems unfortunate to have to do this. cc @gnossen who might have an idea for a better approach here.

The tests did pass in the "Bazel Basic Tests for Python (Local)" job, and I have reverted that commit.


rgbasm reports the wrong filename when a symbol is redefined

Test case
file1.asm:
SECTION "a", ROM0
    dw sym
INCLUDE "test2.asm"
sym:

file2.asm:
sym:

Result
$ rgbasm test1.asm
ERROR: test1.asm(4):
    'sym' already defined in test1.asm(2)
error: Assembly aborted in pass 1 (1 errors)!

This result is unexpected. The symbol was defined first in test2.asm, not test1.asm

This patch fixes the issue: https://pastebin.com/raw/JS05aJPC

Because I'm not sure if that is a proper way to fix it.

Well, fair enough, but it's easier to review code in a PR.