Installation error in Windows 11: TAP device failed to install with error code 1

When installing Outline in Windows 11 I get "TAP device failed to install with error code 1" error message during installation (image of the error message below).

Even though I get the error message the Outline Client is still installed and I can run it, but when I try to connect to the server I get an error message "Sorry, it looks like Outline is not properly installed. Please try installing it again. If that doesn't work, please submit feedback through the app."
I have read https://github.com/Jigsaw-Code/outline-client/issues/1007 so I executed Get-NetAdapter command. However, the output didn't have any TAP Windows Adapter V9 entries or anything else with a TAP. That hints the issue is different and probably related to the TAP adapter installation.
Does anyone know what that error code 1 means? Is there any verbose installation method to get more information about the failure? And most importantly, is Outline supposed to work in Windows 11?
System details:

Outline Client Version: Windows 1.6.0
Operating System: Windows 11

I have same problem.
I have run on Windows 11 Pro(ARM) , run on Macbook M1 through Parallels

Same problem here.
Windows 11 Pro (ARM) runs on MBP M1 with Parallels Desktop.

Same problem on Windows 10 Pro.

same problem on windows 10

Same here on Windows 11 pro.

hi
remove all TAP-Driver from device manager on "network adapters" and reinstall

i have same problem, anyone got solution?

hi
remove all TAP-Driver from device manager on "network adapters" and reinstall outline

i have tried, but does't working

Hi the same issue,

remove all TAP-Driver from device manager on "network adapters" and reinstall outline

doesn't work for me.

Worked after I turned off the firewall.

Worked after I turned off the firewall.

i haven't got the firewall.

The current recommended workaround is to uninstall the Outline client and the Windows TAP device(es) then re-install the latest version of Outline client. Marking as a feature request to improve this experience in the future.

I had the same problem on Windows 10. THe solution worked for me - I deleted all TAP devices, rebooted and installed Outline again. Thank you!

The same issue happens with the Outline 1.13.0 installer from getoutline.org. It creates a couple Unknown Devices in device manager and exits the installer. Running Windows 11 Pro x64 build 22621.

После обновления возникла та же проблема, помогло удаление контура и откат к другой версии:https://github.com/Jigsaw-Code/outline-apps/releases/tag/v1.10.1

After the update, the same problem occurred, removing the outline and rolling back to another version helped: https://github.com/Jigsaw-Code/outline-apps/releases/tag/v1.10.1

Had same issue. Nothing mentioned above didn't work. Only old release installed without problems and updated successfuly to 1.13.0 (475601)

Same problem. Version 1.13 does not want to install TAP. I had to put 1.10 and everything worked

After the update, the same problem occurred, removing the outline and rolling back to another version helped: https://github.com/Jigsaw-Code/outline-apps/releases/tag/v1.10.1
thank you! it's work!

After the update, the same problem occurred, removing the outline and rolling back to another version helped: https://github.com/Jigsaw-Code/outline-apps/releases/tag/v1.10.1

worked for me!

After the update, the same problem occurred, removing the outline and rolling back to another version helped: https://github.com/Jigsaw-Code/outline-apps/releases/tag/v1.10.1

Thank you, worked for me!
Autoupdate fails by the way, it the old versions starts again no problem

Related issues: #1988 , #1798 .

Root cause for v1.13.0 installation failure: OemVista.inf should be CRLF line ended instead of LF. We made a change two months ago which caused this regression: https://github.com/Jigsaw-Code/outline-apps/pull/1913 .  Will fix it soon.

Root cause for v1.13.0 installation failure: OemVista.inf should be CRLF line ended instead of LF. We made a change two months ago which caused this regression: #1913 . Will fix it soon.
is there a some workaround?

You may change endings of OemVista.inf in any text editor: https://zerowp.com/change-the-eol-between-crlf-lf-and-cr/. Text editor should be run as administrator.
Run add_tap_device.bat afterwards.

After the update, the same problem occurred, removing the outline and rolling back to another version helped: https://github.com/Jigsaw-Code/outline-apps/releases/tag/v1.10.1

I had the same problem, it helped. Thanks

After the update, the same problem occurred, removing the outline and rolling back to another version helped: https://github.com/Jigsaw-Code/outline-apps/releases/tag/v1.10.1

Thanks a lot, this worked !

I resolved my code 1 error by enabling NetSetupSvc, which I have had disabled for some reason.

I managed to solve the problem with installing Outline on Windows 11 ARM (in my case, Windows runs as a virtual machine via Parallels on a MacBook M1). As we all understood, the problem was in installing the TAP driver for Windows ARM. Here's how I managed to install it:

Install Outline and get an error at the end of the installation: error code 1.
Open the OpenVPN repository https://github.com/OpenVPN/tap-windows6/releases and download dist.win10.zip to install the TAP drivers.
Unpack the downloaded archive, we are interested in the arm64 folder there, and specifically the files in it: OemVista.inf, tap0901.cat, tap0901.sys.
Copy these files and replace them in the Outline folder: C:\Program Files (x86)\Outline\tap-windows6
Now we have the correct files for installing the Windows ARM TAP driver and we can retry the TAP driver installation. Open the Start menu, type PowerShell in the search and run Windows PowerShell ISE as an administrator.
Go to the desired folder using the command: cd "C:\Program Files (x86)\Outline"
Then run the installation using: .\add_tap_device.bat
When the installation is complete, you can use Outline.

@vlad-ivanov-d
Outline 1.13.1 works like a charm on my native (Lenovo Yoga 7x) setup with this solution. Thanks a lot.

I managed to solve the problem with installing Outline on Windows 11 ARM (in my case, Windows runs as a virtual machine via Parallels on a MacBook M1). As we all understood, the problem was in installing the TAP driver for Windows ARM. Here's how I managed to install it:

Install Outline and get an error at the end of the installation: error code 1.
Open the OpenVPN repository https://github.com/OpenVPN/tap-windows6/releases and download dist.win10.zip to install the TAP drivers.
Unpack the downloaded archive, we are interested in the arm64 folder there, and specifically the files in it: OemVista.inf, tap0901.cat, tap0901.sys.
Copy these files and replace them in the Outline folder: C:\Program Files (x86)\Outline\tap-windows6
Now we have the correct files for installing the Windows ARM TAP driver and we can retry the TAP driver installation. Open the Start menu, type PowerShell in the search and run Windows PowerShell ISE as an administrator.
Go to the desired folder using the command: cd "C:\Program Files (x86)\Outline"
Then run the installation using: .\add_tap_device.bat
When the installation is complete, you can use Outline.

@vlad-ivanov-d thank you. Now works finally.
Problem was with Microsoft Surface Pro 11 with ARM. Windows 11 Home, ver 24H2, Outline client ver 1.13.1, have got error code 1 during indtallation. And updatedriverforplugandplaydevices failed, getlasterror=259 during add_tap_device.bat execution.

@shevi4
Thank you very much! Your solution helped me. Actually, I got the same problem in amd64 using windows recent outline installer and the way with official tap package from open vpn repo solved it. I think the issue was that I already had open vpn client installed and probably it might messed drivers up.

After the update, the same problem occurred, removing the outline and rolling back to another version helped: https://github.com/Jigsaw-Code/outline-apps/releases/tag/v1.10.1

Thanks!


Bug in Coverage Reporter

I think there is a bug in the coverage reporter, it is not taking into account the "default" transitions.
I am 100% sure that the default transition is triggered during testing but the coverage reporter says: Events not covered: Microsoft.PSharp.Default
Can you please take a look and confirm that this is bug in the current implementation.

Hey Ankush, can you send a short P# program with the bug? I don't understand what exactly is the bug that you're referring to.

Sorry, for the incomplete information.
I have a P program with following state:
state X {   entry { }   on null goto X; }
on running PSharpTester with coverage enable. The coverage report always says:

Machine: BrickManager.SplitWorker
Machine event coverage: 50.0%
State: InitState
State event coverage: 100.0%
Next states: Init_7
State: X
State event coverage: 0.0%
Events not covered: Microsoft.PSharp.Default
Previous states: Init_7

I am very sure that the null transition which is the default transition in PSharp is triggered. But its not covered in the coverage report and shows 0.0%.
Does this help?


[TASK] CSV Encoding Options

Issue Description
Different CSV generators may encode the CSVs with different standards (see for example #1565).
RAVEN may benefit from a more robust approach to either ignoring or detecting encoding and handling them appropriately so the BOM doesn't interfere with variable names.

For Change Control Board: Issue Review
This review should occur before any development is performed as a response to this issue.

[ ] 1. Is it tagged with a type: defect or task?
[ ] 2. Is it tagged with a priority: critical, normal or minor?
[ ] 3. If it will impact requirements or requirements tests, is it tagged with requirements?
[ ] 4. If it is a defect, can it cause wrong results for users? If so an email needs to be sent to the users.
[ ] 5. Is a rationale provided? (Such as explaining why the improvement is needed or why current code is wrong.)

For Change Control Board: Issue Closure
This review should occur when the issue is imminently going to be closed.

[ ] 1. If the issue is a defect, is the defect fixed?
[ ] 2. If the issue is a defect, is the defect tested for in the regression test system?  (If not explain why not.)
[ ] 3. If the issue can impact users, has an email to the users group been written (the email should specify if the defect impacts stable or master)?
[ ] 4. If the issue is a defect, does it impact the latest release branch? If yes, is there any issue tagged with release (create if needed)?
[ ] 5. If the issue is being closed without a pull request, has an explanation of why it is being closed been provided?

archived.


Make plugin compatible with Elasticsearh 5.x series

This patch series make the current plugin compatible with Elasticsearch 5.x versions (issue: #26). We've already use it on our production clusters for ~3 months now, but unfortunately I didn't have time to send it earlier. Hope it helps!

I'll move it to the new maintainer repo! sorry for that!

Can you please also let me know the steps - how to use plugin with ES 5.x version ?


[HACKTOBERFEST 2024] - Audio and Video Quiz

[!IMPORTANT]
This issue is part of our 2024 Hacktoberfest initiative. If you are interested in working on this issue, refer to our top-level tasks to see if this issue is claimed, or to claim it if it is not.

This issue is to create the Audio and Video quiz.
The file you should be working on is found in /curriculum/challenges/english/25-front-end-development/quiz-audio-and-video.
All quiz questions need to relate to one of these topics:

Topics

[!CAUTION]
Questions which do not fall under these topics will be rejected.

You are welcome to include code blocks in your questions, but please keep them short (four lines or less).
Please do NOT open a pull request until you have completed all questions. Your quiz should have exactly 20 questions.

Thank you for your interest in contributing. This issue will be opened for contribution when Hacktoberfest starts on October 1st.

[!CAUTION]
Pull requests which are created before October 1st will not be eligible for Hacktoberfest. We appreciate enthusiasm, but encourage you to hold off on contributing to this issue until the event has begun.

If you wish to be notified when this issue is opened for contribution, subscribe to notifications:

This issue is now open
If you would like to work on this issue, please leave a comment so we can assign it to you.
Be sure to read our contributing guidelines.

Hi @naomi-lgbt , I would love to contribute to this issue! Could you please assign it to me?

I'd like to help with this issue. Could you please assign it to me?

Hey @nayanmapara,
you are already assigned to different issue - https://github.com/freeCodeCamp/freeCodeCamp/issues/56208.

Hey @naomi-lgbt I want to work on this issue

@Code-Hacker26
You have already been assigned to another issue
https://github.com/freeCodeCamp/freeCodeCamp/issues/56185

Hi, I'd like to claim this if possible?

@naomi-lgbt I don't see this file /curriculum/challenges/english/25-front-end-development/quiz-audio-and-video in the repo. Other issues I checked out seemed to have their files already in place, so was just wondering if the expectation is to create the file in my own fork?
related: what goes in the id frontmatter field of the quiz sheet

Here is the file you need to use  @AnarchistHoneybun
https://github.com/freeCodeCamp/freeCodeCamp/blob/main/curriculum/challenges/english/25-front-end-development/quiz-javascript-audio-and-video/66edd3b3096349f06cf688bb.md

Other issues I checked out seemed to have their files already in place, so was just wondering if the expectation is to create the file in my own fork?

Sorry about that - I automated the directory name generation, and a couple of them aren't 1:1 pairs with the actual file structure.

This issue has been assigned a contributor. To prevent extraneous notifications, the issue is now locked. If you have any questions, please reach out to me in our Discord community.


void _MDItemMarkAsUsedForPath(CFStringRef): was called with a NULL path

Hi,
I've just installed macvim with homebrew and when i have the following error when editing a file with mvim:
2016-06-23 18:06:16.339 MacVim[27385:813662] Metadata.framework [Error]: void _MDItemMarkAsUsedForPath(CFStringRef): was called with a NULL path

Always? Or occasionally?
I've see that before, but I can never reproduce it when I want. It's an indirect message; _MDItemMarkAsUsedForPath is never called by MacVim as it's a private API. Something else is indirectly calling it.
This has been around since Mavericks, I think.

Thank you for your answer but restart fix this issue.


what is the badge of js.org for?

I thought it was a chatroom, but it jump to js.org website which don't contain chat feature, then I'm kinda confused.

Can anybody enlighten me on this?

https://dns.js.org/

Understood. Thanks man.


[MOD-1518] Add CLI for uploading files to volumes

Example usage:
$ MODAL_PROFILE=local modal volume put voltest large.file /foo/bar/a.file
⠼ Uploading file 'large.file' to '/foo/bar/a.file'...
✓ Uploaded file 'large.file' to '/foo/bar/a.file'

Which then shows up in the volume:
$ MODAL_PROFILE=local modal shell voltest.py
...
Spawning /bin/bash
root@modal:~# ls -l /volume/foo/bar/
total 204800
-rw-rw-r-- 1 root root 209715200 Jan  1  1970 a.file
root@modal:~#

(As a follow-up, we should probably set ctime based on the upload time)
Like for mounts, uploads are lazy - we don't reupload if a file with the same contents already exists:
$ fallocate -l 200M large.file
$ time MODAL_PROFILE=local modal volume put voltest large.file
⠧ Uploading file 'large.file' to '/large.file'...
✓ Uploaded file 'large.file' to '/large.file'

real	0m20,541s
user	0m1,417s
sys	0m0,517s
$ time MODAL_PROFILE=local modal volume put voltest large.file
⠼ Uploading file 'large.file' to '/large.file'...
✓ Uploaded file 'large.file' to '/large.file'

real	0m1,095s
user	0m0,510s
sys	0m0,098s

Note that this will happily overwrite existing files and directories with impunity! We should fix that. It's pretty easy to shoot yourself in the foot as is:
$ modal volume put some-dir /some-dir
$ modal volume put some-file.txt /some-dir   # note the lack of a trailing slash
# Oops! /some-dir was now wiped and replaced by a file :scream:

Will look into why this broke tests! Volume tests all work locally :thinking:

Realized over the weekend that the API here is bad:
vol.add_local_file("foo.txt")
vol.add_local_file("bar.txt")

should really be something like:
vol.upload()
  .add_local_file("foo.txt")
  .add_local_file("bar.txt")
  .commit()

^ leads to fewer RPCs if you upload a diverse set of files, and more importantly minimizes the number of commits.
Making add_local_file and add_local_dir protected and addressing in a follow-up PR.


paginate for sqlalchemy2.0 returns AbstractPage, Pylance complains about .items

Ok so my question is - how can I access and map over the items of a page that's returned by the paginator for sqlalchemy 2.0, without getting errors from Pylance?
Here's a screenshot showcasing a toy version of the issue I'm encountering - even though the code itself works when I run it, Pylance complains about the .items attribute not defined on the AbstractPage class returned from paginate

Can this problem somehow be avoided?
the Pylance feature in question can be enabled in VSCode - I only recently discovered that there's a button for that there at the bottom:

Hi @mbalc,
Sorry for the long response.
As an option, you can use typing.cast functions:
from typing import cast

models_page = cast(Page[Mlmodel], paginate(session, sa.select(Mlmodel), params)


issue#2024

Describe what this PR does / why we need it
I know why issue#2024 happen and get a resolution for issue#2024
Does this pull request fix one issue?
Fixes #2024

Describe how you did it
1, I handle a recursive update exception, so that, DubboCloudRegistry can be added to ApplicationContext
Describe how to verify it
Special notes for reviews

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


How to use  as readonly

I want to use an <input /> as readonly but in reactstrap no such props available for <Input /> . Can anyone help me to use <input /> as readonly.

all props not used/consumed by reactstrap will be passed down and in the case of reactstrap's Input they are passed down to the raw <input>. React uses the API names instead of the common HTML names (e.g. className vs class) and in the case of readonly it is readOnly in react. So, <Input readOnly /> is what you are looking for.
Refernces:
https://facebook.github.io/react/docs/dom-elements.html#all-supported-html-attributes
https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement

@sovanjana does the above answer your question?

If no onChange attached to the input in React, it is readonly by default I thought.

@ejdelmonico not really. What you mention is the difference between controlled and uncontrolled components/inputs. Uncontrolled components (which you do not specfic a value props, defaultValue allow one to set a default value) work differently / more natively. Controlled components require the value prop (which cannot be undefined) and every time the user changes the value a render occurs and sets the value to what is in the value prop. If you do not have an onChange to track the value the user is entering, it effectively not change the value and appear to be readonly. Note: that with controlled components, when the user enter's a value it does update the input's value, but is quickly changed back to the value of the value prop when it renders again. This is why the event.target.value is the updated value.
https://www.webpackbin.com/bins/-KuWVXEm4R1mdgJZD00N

@TheSharpieOne Thank you for the thorough explanation and example to improve my understanding.

@sovanjana  use the plaintext tag on the  function

I'm closing this since the the issue is no longer active and it appear it was answered above. Please comment and it will be opened if you feel the issue has not been resolved / the question has not been answered

In React.JS, if you are using JSX, then readOnly functions in a component as a boolean property.
Below is a styled component (See Styled-Components)
const StyledInputField = styled.input`
    width: ${props.width ? props.width : '100%'};
    height: ${props.height ? props.height : '42px'};
    padding: 10px 10px 10px 10px';
    font-family: Montserrat, sans-serif;
    font-size: 16;
    font-weight: 600;
    text-align: left;
`

You do not really have to know or understand Styled Components to understand this answer. Now suppose I want to set the readOnly attribute on a component that I create from my StyledInputField component declaration?
<StyledInputField type="text" readOnly={true} />

React.JS interprets ReadOnly as the ReadOnly attribute and interprets its having a truthy value as the given component should be rendered with the readOnly attribute set on it.
This will in effect give you the following:
CSS:
.styledInputField {
    width: ${props.width ? props.width : '100%'};
    height: ${props.height ? props.height : '42px'};
    padding: 10px 10px 10px 10px';
    font-family: Montserrat, sans-serif;
    font-size: 16;
    font-weight: 600;
    text-align: left;
}

HTML:
<input type="text" class="styledInputField" readOnly />

React.JS recognizes the readOnly property and handles it appropriately.  One may also use a state value or a prop
Example - here I am using props.isReadOnly to set the readOnly attribute on StyledInputField:
<StyledInputField type="text" readOnly={props.isReadOnly} />

If props.isReadOnly is truthy, then the readOnly property will be set. If props.isReadOnly is falsy, it will not be set.

True and False vs. "Truthy" and "Falsey" (or "Falsy") in Ruby, Python, and JavaScript
How to Set the readOnly TextBox in React.JS TextBox component


grpcproxy: add readonly feature

Solve #8622

Codecov Report

Merging #8787 into master will increase coverage by 0.11%.
The diff coverage is 89.15%.

@@            Coverage Diff             @@
##           master    #8787      +/-   ##
==========================================
+ Coverage   76.03%   76.14%   +0.11%
==========================================
  Files         360      367       +7
  Lines       29648    29731      +83
==========================================
+ Hits        22544    22640      +96
+ Misses       5532     5522      -10
+ Partials     1572     1569       -3

Impacted Files
Coverage Δ

proxy/grpcproxy/readonly/cluster.go
100% <100%> (ø)

proxy/grpcproxy/readonly/lock.go
100% <100%> (ø)

proxy/grpcproxy/readonly/kv.go
100% <100%> (ø)

proxy/grpcproxy/readonly/election.go
100% <100%> (ø)

proxy/grpcproxy/readonly/lease.go
100% <100%> (ø)

proxy/grpcproxy/readonly/auth.go
100% <100%> (ø)

etcdmain/grpc_proxy.go
60.95% <11.11%> (-2.24%)
:arrow_down:

proxy/grpcproxy/readonly/maintenance.go
90% <90%> (ø)

etcdserver/api/etcdhttp/metrics.go
75.67% <0%> (-8.11%)
:arrow_down:

etcdserver/api/v3rpc/watch.go
92.55% <0%> (-1.87%)
:arrow_down:

... and 25 more

Continue to review full report at Codecov.

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

@lorneli Sorry for delay. Was busy with 3.3 release. I will review this in the next few weeks.

I use readOnlyProxy to wrap the real pd.Server(pb.AuthServer/pb.ClusterServer/pb.KVServer...). If a method changes etcd's status, readOnlyProxy returns ErrReadOnly. If not, readOnlyProxy passes the query to its underlayer pd.Server.
This way is a little cumbersome, since readOnlyProxy has to implement each API. And most of these methods just return ErrReadOnly.
@gyuho If there is a better way, please let me know. I will modify my code soon.


Leave dependencies: node uncommented

Ideally we'd leave the dependencies: node itself uncommented, even if the content beneath it is commented out. If the node is commented, then VSCode's "Dart: Add Dependency" command gets confused, and adds a new node at the bottom, rather than uncommenting the dependencies: node.
This change should be benign, and removes the need for Dart-Code to introduce logic to uncomment the parent node. For finesse, this also adds an explanatory comment to indicate that path: is an example.

Yeah, this makes sense to me too. I recall a user once sent me a pubspec that had added dependencies but not uncommented dependencies but hadn't noticed. I'm not sure why changing this didn't occur to me at the time.
https://dart-review.googlesource.com/c/sdk/+/273543 includes the other project types too so may be better.

Included in  https://dart-review.git.corp.google.com/c/sdk/+/273543 , which has landed.  Closing the PR.


critical issue operating within a VPC due to incorrect IAM privileges

My colleague got the following note from AWS support today:

Subject: Action required for AWS Account: XXX: Please update the IAM role (execution role) associated with your Lambda functions
We have detected an IAM role configuration problem that can cause unused Elastic Network interfaces (ENIs) to accumulate in your AWS account. AWS Lambda functions configured for Amazon VPC access set up an ENIs in your VPC to securely access other resources within your private VPC. The Lambda function execution role must have permissions to create, describe, and delete these ENIs. If the role does not have permission to delete ENIs, then Lambda cannot clean up ENIs after use.

It goes on to explain that while the Lambda's roles has ec2:CreateNetworkInterface it lacks ec2:DeleteNetworkInterface and ec2:DescribeNetworkInterfaces which are necessary for proper maintenance.
AWS has a new(?) policy for running Lambdas within a VPC: AWSLambdaENIManagementAccess
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:CreateNetworkInterface",
        "ec2:DescribeNetworkInterfaces",
        "ec2:DeleteNetworkInterface"
      ],
      "Resource": "*"
    }
  ]
}

Gordon should include those privileges in its default profile. We've accepted the PR in our fork: https://github.com/transposit/gordon/pull/2

+1 - this is breaking my deployment process that uses vpcs. Please merge.

I think this project is dead; we have a fork here with some useful fixes:
https://github.com/transposit/gordon
But we're in the process of migrating off of Gordon.

Really? What do you use instead?

We're just using Terraform. While Gordon is super convenient for stand-alone entities, we found it awkward to have parts of our deployment managed by Gordon and other parts managed by Terraform. In particular have dependencies from Gordon to the Terraform-managed VPC config (apropos of this issue...).

note that this is fixed by https://github.com/jorgebastida/gordon/pull/141/files


Text primary key not supported in v0.1.6?

With this input:
create virtual table text_pk using vec0(
  pk text not null primary key,
  embedding float[3],
);

insert or replace into text_pk (pk, embedding) values ('a', '[1, 2, 3]');
insert or replace into text_pk (pk, embedding) values ('a', '[4, 5, 6]');

select rowid, pk, vec_to_json(embedding) from text_pk;

I expected one row with pk 'a' and embedding '[4, 5, 6]', but got:
+-------+----+------------------------------+
| rowid | pk | vec_to_json(embedding)       |
+-------+----+------------------------------+
| 1     | a  | [1.000000,2.000000,3.000000] |
+-------+----+------------------------------+
| 2     | a  | [4.000000,5.000000,6.000000] |
+-------+----+------------------------------+

Is this a bug?

This is a bug, an error should be thrown because not null is not supported in vec0 constructors yet.
Removing that should enforce primary keys:

create virtual table text_pk using vec0(
  pk text primary key,
  embedding float[3],
);

insert or replace into text_pk (pk, embedding) values ('a', '[1, 2, 3]');
insert or replace into text_pk (pk, embedding) values ('a', '[4, 5, 6]'); -- Runtime error: UNIQUE constraint failed on text_pk primary key

Though also keep in mind, insert or replace into is quite supported in vec0 virtual tables yet, see #127
So there are two bugs, one for incorrect parsing of primary keys when not null is defined, and a second one for upserts. I'll try to fix both this week!


Can't list workflow with workflows.argoproj.io/controller-instanceid label using argo native client

Checklist:

[x] I've included the version.
[x] I've included reproduction steps.
[ ] I've included the workflow YAML.
[ ] I've included the logs.

What happened:
use argo list -n argo-manager to retrieve workflow in argo-manager namespace
What you expected to happen:
NAME                                                             STATUS      AGE   DURATION   PRIORITY
retry-with-steps-template-9b8a1a21-9fad-45ae-8465-cdbcc04a8d4e   Succeeded   14h   8m         0
hello-world-template-b6aa1e09-3d34-4791-b38f-4d194211db61        Succeeded   1d    1m         0
hello-world-template-ca2a5fe2-ef8e-4503-ad6a-2d8c07c79872        Succeeded   1d    8s         0

But show nothing
NAME                                                             STATUS      AGE   DURATION   PRIORITY

How to reproduce it (as minimally and precisely as possible):
create workflow with workflows.argoproj.io/controller-instanceid label.
Anything else we need to know?:
I found the way to list workflow in code.
By https://github.com/argoproj/argo/blob/master/pkg/apiclient/argo-kube-client.go#L52 creating workflowServer without instanceID.
By https://github.com/argoproj/argo/blob/master/server/workflow/workflow_server.go#L123, https://github.com/argoproj/argo/blob/master/server/workflow/workflow_server.go#L357 to list workflow.
Because workflowServer without instanceID, it cann't get any workflow with workflows.argoproj.io/controller-instanceid label.
Anyway to list workflow with workflows.argoproj.io/controller-instanceid label using argo native client instead of kubelet.

Message from the maintainers:
If you are impacted by this bug please add a 👍 reaction to this issue! We often sort issues this way to know what to prioritize.

@alexec Is there a way to list wf with workflows.argoproj.io/controller-instanceid label using argo?

See #2780


Remove out-of-date description in pivot_table doc.

There was an outdated description in DataFrame.pivot_table doc.
Resolves #1710

I'd merge this now.


Error opening shapefile using Fiona

I am trying to read a shapefile using Fiona, but it shows Invalid path error. Following is the command I give:
fiona.open('M:/rathore/vic_5km/L2_data/L2_data/DAMSELFISH_distributions.shp')
The above command displays the following error:
TypeError: invalid path: UnparsedPath(path='M:/rathore/vic_5km/L2_data/L2_data/DAMSELFISH_distributions.shp')
The traceback of the problem is:
TypeError                                 Traceback (most recent call last)
<ipython-input-4-250cf85560e8> in <module>()
----> 1 fiona.open('M:/rathore/vic_5km/L2_data/L2_data/DAMSELFISH_distributions.shp')

c:\python27\lib\site-packages\fiona\fiona\env.pyc in wrapper(*args, **kwargs)
    404             with Env.from_defaults(session=session):
    405                 log.debug("Credentialized: {!r}".format(getenv()))
--> 406                 return f(*args, **kwargs)
    407     return wrapper
    408

c:\python27\lib\site-packages\fiona\__init__.pyc in open(fp, mode, driver, schema, crs, encoding, layer, vfs, enabled_drivers, crs_wkt, **kwargs)
    255         if mode in ('a', 'r'):
    256             c = Collection(path, mode, driver=driver, encoding=encoding,
--> 257                            layer=layer, enabled_drivers=enabled_drivers, **kwargs)
    258         elif mode == 'w':
    259             if schema:

c:\python27\lib\site-packages\fiona\fiona\collection.pyc in __init__(self, path, mode, driver, schema, crs, encoding, layer, vsi, archive, enabled_drivers, crs_wkt, ignore_fields, ignore_geometry, **kwargs)
     54
     55         if not isinstance(path, (string_types, Path)):
---> 56             raise TypeError("invalid path: %r" % path)
     57         if not isinstance(mode, string_types) or mode not in ('r', 'w', 'a'):
     58             raise TypeError("invalid mode: %r" % mode)

TypeError: invalid path: UnparsedPath(path='M:/rathore/vic_5km/L2_data/L2_data/DAMSELFISH_distributions.shp')

I have installed fiona 1.8.6 and geopandas 0.5.0 version installed in my system. I am using python 2.7

Thanks for the report, I'm looking into it.

I can't reproduce the issue here with python 3.6:
>>> from fiona.path import Path, parse_path
>>> from fiona import string_types
>>> parse_path('M:/rathore/vic_5km/L2_data/L2_data/DAMSELFISH_distributions.shp')
UnparsedPath(path='M:/rathore/vic_5km/L2_data/L2_data/DAMSELFISH_distributions.shp')
>>> path = parse_path('M:/rathore/vic_5km/L2_data/L2_data/DAMSELFISH_distributions.shp')
>>> isinstance(path, (string_types, Path))
True

Which specific python 2 version are you using?
I'd love to see what Path resolves to at line 55 just before the exception. Any chance you could run your script with the Python debugger and inspect that?

I am using python 2.7.15
The issue is still unresolved.  Running script with python debugger gives the same error:
Exception AttributeError: "'Collection' object has no attribute 'session'" in <object repr() failed> ignored
*** TypeError: invalid path: UnparsedPath(path='M:/rathore/vic_5km/L2_data/L2_data/DAMSELFISH_distributions.shp')

@lokendrarathore I mean running it with the debugger like shown at https://stackoverflow.com/a/2438834/159235. This will give you a pdb prompt and if you type repr(Path) we can see what the Path object is.

repr(Path) gives <class 'fiona.pat.Path'>

I'm sorry about this. I can't reproduce the problem with python 3.6 and while I don't have a windows computer to test on, the code involved isn't operating system specific. This project is going to quit supporting python 2.7 very soon (as will the rest of the scientific python ecosystem), so I'm going to mark this one as "wontfix".


[Chore] Move soroban-docs to stellar-deprecated org

What problem does your feature solve?
Move soroban docs https://github.com/stellar-deprecated so people are not opening more tickets there.
What would you like to see?
What alternatives are there?

Closing this ticket in favor of this ops ticket https://github.com/stellar/ops/issues/3190


Add workflow to send tweet when release is published

I need to restore the release check fail, I've removed it from the
action to make it easier to reuse. I'll add a step to make the check
fail.
I also need to update our comment API to show the tweet text :)
Also: remove TWEET.md and RELEASE.md before merging :)
TODO: will add more text soon

Thanks for adding the RELEASE.md file!

Here's a preview of the changelog:

This is a test

Here's the preview release card for twitter:


Changes hardcoded city name to {{ area_name }}

changed Wrocław to {{ area_name }}

How did I miss that? Thanks!


Enhance base URL resolution

Turns out #26 wasn't sufficient for my use case. For https://shardbox.org I want to resolve relative links in repo readmes, relative to the repo URL. But GitHub for example uses different base URLs depending on whether it points to a raw resource (image) or the online HTML page (link).
In order to achieve that, I'd like to pass the current node as an argument to resolve_uri to convey the context. For my use case that would be sufficient. I can simply use that method to hook into the renderer and add my custom implementation.
I'm not sure whether this use case is common enough to have that behaviour included in Makrd directly. I'm not even sure about the original base_url option.
So there are three options:

Only add node argument to resolve_uri, keep its default implementation and Options#base_url. That's the minimal change solution.
Add node argument to resolve_uri but remove Options#base_url and make its default implementation to just return destination. That essentially reverts half of #26 and leaves implementation of base URL entirely to the user. That's the overall minimum intrusion solution.
Add node argument to resolve_uri and add separate properties to Options: #base_url_link and #base_url_image which will be selected depending on the node. That's the all-inclusive solution. Not sure if it's too specific.

I can send a PR for either option. Let me know what you think.

This is not a common issue but we can achieve it first. the best solution is make it extensible, like gfm formatted support, etc.
For your case i choose option 1 or 2. PR is welcome, i have not much time to write Crystal for a while.

I went with no 1 because I think a generic base_url option could probably be useful in other scenarios.

Just a heads up: Unfortunately the solution presented here is insufficient because it only affects URLs in Markup code, but not when written in plain HTML. So [link](foo) is properly resolved on the base url
but link would be left as is.
The only way to solve this is to parse the resulting HTML code and apply base url resolution on href and src arguments.
The base_url option might still have it's use cases, I'm not sure. Maybe it would be better to remove it though :/


tools: update to Debian stretch

This updates the image creation tool to use Debian stretch (current stable)
instead of wheezy, which is very out of date. The only change needed here
was a hint to systemd to make the root filesystem read-write after booting.
Documentation has also been updated.

"out of memory" in the CI? Not sure what happened there.

It's not that we have a high rate of changes to these files, but you were unlucky enough to actually hit a conflict with:
https://github.com/google/syzkaller/commit/5c6bf6c55f03f8b5555d5b8d0ccc4cbb18073ce9

"out of memory" in the CI? Not sure what happened there.

welcome to the free cloud :)

Thanks!


Fix issue #417

Fix as per https://github.com/pimutils/todoman/issues/417.
PR Checklist

[X] Does the coding style conform to our guidelines? Are there any flake8 errors?
[X] Are user-facing changes documented?
[X] Is there an entry for new features or dependencies in CHANGELOG.rst?
[X] Are you the patch author? Are you listed in AUTHORS.rst?

Makes perfect sense, thanks!


[ts-http-runtime] Port multipartPolicy changes to unbranded Core

Packages impacted by this PR

@typespec/ts-http-runtime

Issues associated with this PR

Fix #27742

Describe the problem that is addressed by this PR
Straightforward port of changes to formDataPolicy and multipartPolicy

API change check
APIView has identified API level changes in this PR and created following API reviews.
typespec-ts-http-runtime


Android Basics: Get data from the Internet

name: Android Basics Unit 4 issue
about: Report problems with the Android Basics Unit 4 codelabs
title: 'Android Basics Unit 4 issue:'
labels: ''
assignees: ''

URL of codelab
https://developer.android.com/codelabs/basic-android-kotlin-training-getting-data-internet?continue=https%3A%2F%2Fdeveloper.android.com%2Fcourses%2Fpathways%2Fandroid-basics-kotlin-unit-4-pathway-2%23codelab-https%3A%2F%2Fdeveloper.android.com%2Fcodelabs%2Fbasic-android-kotlin-training-getting-data-internet#7
In which task and step of the codelab can this issue be found?
Get data from the internet - Step 8
Describe the problem
In the code,
interface MarsApiService {
   @GET("photo")
   fun getPhotos(): List<MarsPhoto>
}

suspend is missing.
Steps to reproduce?

Go to...
Click on...
See error...

Versions
Android Studio version:
API version of the emulator:
Additional information
Include screenshots if they would be useful in clarifying the problem.

@Abhimanyu14
Thank you for reaching out to us. The issue is fixed and published.


Help with loading JSON file and extracting metadata

Hi there!
I'd like to load a JSON file into the document store using the Json File DocumentLoader, but I'm having some trouble getting the metadata to show up correctly.
The JSON File Looks Like This:

{
"id": "doc1",
"text": "This is a sample document with some content.",
"metadata": {
"author": "John Doe",
"createdDate": "2023-02-20T14:30:00.000Z",
"category": "article"
}
}

The Issue:
When I load this JSON file into the document loader, I don't see the metadata in the expected format:

Flowise Version:
Just to give you some context, my Flowise version is v2.1.2.
Can You Help Me? Is my expectation wrong?
Is there something specific that I need to do or configure to get the metadata showing up correctly in the document loader?
Thanks in advance for your help!
flowise is v2.1.2

/assign

we'll need to do something like JSONLines where users can add metadata dynamically from the document:
For example, if the document is:
{
    "source": "www.example.com", "content": "Hello World!"
}
{
    "source": "www.example2.com", "content": "Hi World!"
}

You can have the "source" value as metadata by returning the following in Metadata section:
{
    "source": "/source"
}


strange behaviour on italian dates format

date = 'gio, 14 dic 2017 23:48:22 CET'
parse(date)
datetime.datetime(2017, 12, 14, 23, 48, 22, tzinfo=<StaticTzInfo 'CET'>)

-> OK
date="gio, 06 ott 2016 09:43:16 CEST"
parse(date)
datetime.datetime(2016, 10, 6, 9, 43, 16, tzinfo=<StaticTzInfo 'CEST'>)

-> OK
date = 'mar, 20 set 2016 09:39:59 CET'
parse(date)
None

-> KO
Why this, while all shuld be valid?

ps. same bahavoiurs using
parse(date, date_formats=['%a, %d %b %Y'], languages=['it'])

Issue found:
it might have been caused by having the same shortname for:

martedì (tuesday) - "mar"
marzo (march) - "mar"
Possible solution:
cut the date[4:]

Duplicate of #337


fix(@angular-devkit/core): sometimes NullLogger.createChild can be ca…

…lled

@googlebot I can confirm that both me and @hansl are ok with our commits being contributed to this project.


Hola

Me podrian mandar el block launcher para minecraft pe 0.14.0 build 1 porfa

Build 1? The full release of MCPE 0.14.0 came out a week ago, and BlockLauncher was updated a day later with support. http://tinyw.in/bl if you need the APK for BlockLauncher for 0.14.0

<EMAIL_ADDRESS>El 24/02/2016 18:24, "zhuowei"<EMAIL_ADDRESS>escribió:

Closed #657 https://github.com/zhuowei/MCPELauncher/issues/657.
—
Reply to this email directly or view it on GitHub
https://github.com/zhuowei/MCPELauncher/issues/657#event-564644195.


Apply retention label

Category

[x ] Question
[ ] Typo
[ ] Bug
[ ] Additional article idea

Expected or Desired Behavior
Hi - We have to started to see 'Apply retention label' field in pages/document libraries in all Sites in prod tenant. And we're not seeing this on other tenants. Can you please let me know if there has been any recent change related to this ? Also, please suggest if there is a way to disable this ?

Thank you for your time !

Thank you for your submission. This GitHub issue list is targeted only for SharePoint development issues. If this is a capability question/discussion, please use the SharePoint TechCommunity.
If it is an issue is related to out-of-the-box capabilities of SharePoint or not related to SharePoint, we cannot process is through this channel. Please submit your finding using the Tenant administrator support channels in your tenant or using Premier support, if that’s available for you. Sorry for the inconvenience.


A better way to close the emoji picker ?

The only way to close it seems:

ESC keypress
choose an emoji

There is no "X" close button. Nor the click on blank document closes it.
Any way to add a better way to close it ?

There are three actual ways to do that. Two of them you already have mentioned. Third way is to click on the blank screen space.

Now you can also use publicly available 'destroy()' method

Hey.. Close button is just added.


pkgconfig: rename to pkg-config

Package attrs should map to the pname. It's confusing otherwise.
pkg-config is also the name used by most distributions:
Debian, Homebrew, Guix, OpenSuse
other distributions like FreeBSD ports, Fedora and Arch Linux call it
"pkgconf"
Waiting a few releases to make a tree-wide change to make it easier to
back-port things.
Motivation for this change
I keep typing pkg-config all the time.
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Assured whether relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

Looks good! This might be one to not put in aliases.nix for a while since it is almost everywhere.

Hmm, repology displays the same name for nixpkgs: https://repology.org/metapackage/pkg-config/versions
Also a side note: pkgconf is a competing project that implements pkg-config command for compatibility.

:+1: for alias, one way or another.  I think adding aliases is safe even for the stable branch.  I'm not really certain a mass replace is worth it, but this PR isn't really about that.

Repology displays the "name" attribute, not the attribute name, so that's already "pkg-config".  (uh, how would I better formulate that :)

Evaluation fails if I move it into aliases.nix, probably because it's an input for the stdenv and aliases.nix only comes after the stdenv bootstrap.


Provide unit and integration tests.

You might consider using Ersatz for your mock/simulated testing. Not meaning to spam but this seems like something that would help.


Sorting hopper changes ores in the grindstone

MC : 1.12.2
Crossroads version : crossroads-1.12-1.6.5
Forge : <IP_ADDRESS>23
Modpack : Interaction 0.17
Blocks involved : grindstone and sorting hopper
Description of the issue :
Ores placed in a sorting hopper next to a grindstone replaces the nature of the ore already in the grindstone.
Here is a video of the issue
A normal hopper doesn't do it, just the sorting hopper.
Thanks in advance! :)
Jin

This error also seems to occur with Wopper as well as shown by this link: https://streamable.com/by7hv


[FormLabel] During mousedown, label flashes between focused and unfocused colors

[x] The issue is present in the latest release.
[x] I have searched the issues of this repository and believe that this is not a duplicate.

Current Behavior 😯

FormLabel flashes back to its unfocused color when the user clicks on a related form element. This is a subtle effect in the default theme, but becomes quite noticeable with other themes.
Expected Behavior 🤔

FormLabel should keep its .Mui-focused class during mousedown in the associated elements.
Steps to Reproduce 🕹

Steps:

Visit the RadioGroup documentation.
Click one of the options to set the FormLabel as focused. Works as expected.
Click one of the options again, but do not release the mouse. Notice that the "Gender" label has turned gray instead of the focused blue color. Release the mouse.
Click two options in rapid succession, as a user might do when deciding on a selection. Notice that the "Gender" label flashes rapidly between colors.

Context 🔦

Our Material UI theme uses a bolder font weight for form labels. Under this theme, the flashing caused by this bug is distracting.
Your Environment 🌎

Tech
Version

Material-UI
v4.10.1

Browser
Chrome 83 on Mac OS X

This is how focus works in the browser unfortunately. Elements are blurred on mousedown. Focus only moves on mousedown for certain elements (e.g. button or input). But for labels the focus moves on mouseup.
There's nothing we can do as far as I know.


Chat palette

resolves #25

Coverage decreased (-0.6%) to 64.147% when pulling 3c13a6d7297f381ecfc74ddb2450e52d79653f81 on chat-palette into 1f67d50559e6d59df134352353ccac4ddf2b20fb on master.


ATG8-related terms.

Hello
By working on the human autophagosome  assembly GO-CAM model I realized that there were some issues with ATG8-related terms.
ATG8 family proteins are ubiquitin-like modifiers, however they are NOT tagging proteins since their  C-terminal  glycine is conjugated to phosphatidylethanolamine (PE) for their insertion to membranes.
Their function is not protein tag but "membrane tag".
Would it be possible to create a new MF term "membrane tag" ?
Definition (transformed from Protein tag):
A molecular function exhibited by a protein that is covalently attached (AKA tagged or conjugated) to a membrane where it acts as a marker, recognized by the cellular apparatus to target the tagged membrane for some cellular process such as formation of the autophagosome. The ATG8-PE conjugate mediates tethering between adjacent membranes and stimulates membrane hemifusion, leading to expansion of the autophagosomal membrane during autophagy (PubMed:17632063)
membrane tagging activity | exact
ubiquitin-like protein modifier | related
covalent modifier | related
Also, the term "GO:0019786: Atg8-specific peptidase activity" mixes 2 distinct activities as revealed by the synonyms... and the definition is totally wrong.
1- The protease activity is required for proteolytic activation of ATG8 family proteins and cleaves their C-terminal amino acid  to reveal a C-ter glycine required for its conjugation to phosphatidylethanolamine (PE) and insertion to membranes (PubMed:[11038174, PubMed:11100732, PubMed:11149920, PubMed:11904149, PubMed:16680092, PubMed:18701704).
We could change the former definition to this one and remove the synonym "APG8-PE hydrolase"
2- In addition to the protease activity, also catalyzes deconjugation of PE-conjugated forms of ATG8 during macroautophagy since ATG8 delipidation is required to release the protein from membranes, which facilitates multiple events during macroautophagy, (PubMed:22240591, PubMed:22652539, PubMed:28330855, PubMed:28821724, PubMed:28704456.
This second activity would correspond to the "APG8-PE hydrolase" synonym that should rather be "ATG8-PE hydrolase".
We could also call it "ATG8-PE deconjugation activity".
Hope this will be helpful to improve the "autophagy" ontology at the MF level.
Thanks a lot.
Regards,
Marc.

Discussion with @marcfeuermann about GO:0019786: Atg8-specific peptidase activity (ATG4 MF) -> this should be fixed to match the RHEA: RHEA:67548
label:  protein-phosphatidylethanolamide deconjugating activity
narrow synonym: ATG8-PE hydrolase
narrow synonym: ATG8-PE deconjugation activity
definitinon: [protein]-C-terminal L-amino acid-glycyl-phosphatidylethanolamide + H2O = [protein]-C-terminal L-amino acid-glycine + a 1,2-diacyl-sn-glycero-3-phosphoethanolamine

@pgaudet While you're dealing with this, might be worth also looking at https://github.com/geneontology/go-ontology/issues/17675

+[Term]
+id: GO:0141046
+name: Atg8-family conjugating enzyme activity
+namespace: molecular_function
+def: "Isoenergetic transfer of an Atg8 family modifer from one protein to a phosphatidylethanolamine or  phosphatidylserine on a membrane, via the reaction X-Atg8 + Y = Y-Atg8 + X." [PMID:11100732, PMID:17986448, PMID:18704115, PMID:28234446, PMID:33909989]
+synonym: "APG8 conjugating enzyme activity" EXACT []
+synonym: "Atg8 conjugating enzyme activity" NARROW []
+synonym: "Atg8-like conjugating activity" EXACT []
+synonym: "E2" BROAD []
+is_a: GO:0061650 ! ubiquitin-like protein conjugating enzyme activity
+property_value: term_tracker_item "https://github.com/geneontology/go-ontology/issues/17675" xsd:anyURI
+created_by: pg
+creation_date: 2023-06-05T10:10:22Z

Just noticed that the old parent term for GO:0019786 has the following def:
ubiquitin-like protein peptidase activity (GO:0019783)
An isopeptidase activity that cleaves ubiquitin or ubiquitin-like proteins (ULP; e.g. ATG8, ISG15, NEDD8, SUMO) from target proteins. PMID:19489724.
Given the changes made in this ticket, we should remove ATG8 from the list of examples in that def, right?

Also, as Marc said, the old term definition of GO:0019786 mixed 2 activities of ATG4 proteins - the revised definition of GO:0019786 is now restricted to the ATG8 PE deconjugating activity (point 2 in Marc's original post). Did/should we make a distinct GO term for the separable ATG8 protease activity (point 1 in Marc's original post)?

Did/should we make a distinct GO term for the separable ATG8 protease activity (point 1 in Marc's original post)?
I guess that activity is a subtype of:
GO:0016807 cysteine-type carboxypeptidase activity
Catalysis of the hydrolysis of a single C-terminal amino acid residue from a polypeptide chain by a mechanism in which the sulfhydryl group of a cysteine residue at the active center acts as a nucleophile.
I can use that term to co-annotate the fly ATG4 proteins.

Yes, for the moment I've annotated the second activity under GO:0016807 cysteine-type carboxypeptidase activity
I am not convinced we need to create a more precise term, but the debate is open.

I propose we close for now, since there is no action needed.


Placeholder A11y Improvement: add component prop

Description
Currently there are states within the app where a double h1 could occur (ex. landing pages that are empty). To fix, we added a new prop to render the Placeholder title as an h2 instead of an h1 as needed. There should be no visual impact, but the output will now be semantically correct.
Type of Change

Bug fix ('fix')

Thanks @Jskobos and @johnwcallahan !
John, for the callout about volumes, I updated those.
Jared to answer your question, there are still some instances (such as empty volumes landing, linodes landing, etc.) that need an h1 when in that state.
Something we could consider down the road is instead of a boolean, we check for an existing h1 and update the placeholder based on that rather than us manually adding that prop.


Placeholder label should have isAccessibilityElement set to NO

Just like you have the userInteractionEnabled set to NO, the isAccessibilityElement should be NO as well, otherwise it is being selected by VoiceOver

It seems that it is already NO.

The default state for UITextView's isAccessibilityElement is YES. And there is nowhere in the code where it is being set to NO. I also created this ticket at the time because I was running into the issue with actual users and I don't see any changes in the code that addressed this since then.
I'm happy to create a pull request myself if you want, it's just 1 line of code.

@jlubeck, that's weird. How did you know that isAccessibilityElement is YES by default? When I check the value in the Playground and a new project it returns NO.

Hey, like I mentioned, I had users complain about the issue, so that's how I found out about it initially. And if you put a new UITextView into a storyboard, you can see on the Accessibility section that it is Enabled.
Also, even by creating the UITextView by code, after you turn VoiceOver ON, you will be able to tap on the UITextView, which means it is an accessibilityElement.
I don't know why a Playground would show it as false. Or even worse, I'm checking with a breakpoint, that even though the UITextView is being selectable by VoiceOver, the console is telling me that its isAccessibilityElement is false as well. BUT, if after creating it, I specifically set isAccessibilityElement to false, then it works as expected and VoiceOver doesn't select it.
So that sounds like a weird bug on Apple's side, but in the meantime, just setting  textView.isAccessibilityElement = NO;  somewhere around line 105 on UITextView+Placeholder.m fixes the issue immediately.


WM8960 Hi-Fi Sound Card HAT for Raspberry Pi

Hi
I tried my luck with a WM8960 Hi-Fi Sound Card. Unfortunately the sound doesn't work anymore after installing RPi-Jukebox.

User Manual: https://www.waveshare.com/wiki/WM8960_Audio_HAT
Install Driver / Test Sound (working)
Install RPi-Jukebox-RFID (using 'Speaker' as Audio_iFace_Name ???)
Sound not working (startup sound works, so MPD settings must be wrong?)

More: http://www.raspberrypirobotics.com/setting-up-the-seeed-studio-respeaker-2-mics-pi-hat/

Hi @dnmtch
once you figure out how to make it work, please post the result here for others to learn from.
You say "startup sound works, so it might be MDP settings". Have a look in the wiki here: https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Troubleshooting-FAQ#audio-is-not-working
The section "b) Audio worked, then you changed the sound card and it stopped working" might give you some good pointers.
All the best ,micz

Hi @dnmtch
I had the same symptoms/problem when I set up my phoniebox which uses the Hifiberry miniamp.
Quick test:
You can try to disable the gpio systemd-service (buttons) and restart the system.
After that your soundcard should play all the time.
Deeper analysis:
Normally the systemd-service for the startup sound starts before the gpio-service. So the startup sound can be played without any problem.
The GPIO service configures the hardware-pinning of the button's-GPIOs and listens to these pins after that.
In case of the Hifiberry miniamp and possibly in your case there is a hardware conflict between the original button's pinning and the sound card.
If there is a hardware conflict in your setup I can provide 2 solutions to solve the problem:

If you want to use buttons in your setup modify the original gpio python script
If you don't need the buttons disable the service for the gpio buttons

Regards
Lj2000

I struggled with the same problem on this hardware.
When the raspi is booting up, it does work like a charm, but not when the Website is online. There is no Sound on the speaker.
Thanks to @lj2000, this did the trick for me.
My solutions so far, I changed the following lines on “gpio-buttons.py”
sudo nano /home/pi/RPi-Jukebox-RFID/scripts/gpio-buttons.py
#shut = Button(3, hold_time=2)
#vol0 = Button(13,pull_up=True)
#volU = Button(16,pull_up=True,hold_time=0.3,hold_repeat=True)
#volD = Button(19,pull_up=True,hold_time=0.3,hold_repeat=True)
#next = Button(26,pull_up=True)
#prev = Button(20,pull_up=True)
#halt = Button(21,pull_up=True)
#reco = Button(6, pull_up=True) # Choose GPIO to fit your hardware
#play = Button(12,pull_up=True) # Choose GPIO to fit your hardware
On the installation I used AUDIOiFace="playback".
Now it is playing and hear the music as well.
sudo nano /home/pi/RPi-Jukebox-RFID/scripts/gpio-buttons.py
#shut = Button(3, hold_time=2)
#vol0 = Button(13,pull_up=True)
#volU = Button(16,pull_up=True,hold_time=0.3,hold_repeat=True)
#volD = Button(19,pull_up=True,hold_time=0.3,hold_repeat=True)
#next = Button(26,pull_up=True)
#prev = Button(20,pull_up=True)
#halt = Button(21,pull_up=True)
#reco = Button(6, pull_up=True) # Choose GPIO to fit your hardware
#play = Button(12,pull_up=True) # Choose GPIO to fit your hardware
On the installation I used AUDIOiFace="playback".
Now it is playing and hear the music as well.

Thank you so much! Your solution worked. Now I will try to make the button on the soundcard work.

Hi @dnmtch @lj2000 @belinea4071
thanks for your input, I added the content of this thread to the wiki here:
https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Sound_Card_WM8960_Hi-Fi_HAT
Could you please check if this is correct? (it's mainly copy and paste :)
One question @belinea4071
when you say you "changed the following lines on “gpio-buttons.py”
it's not clear from what to what. Now it looks as if you commented all the lines out?

it's not clear from what to what. Now it looks as if you commented all the lines out?
yes, all the lines are commented out. (for me) the soundcard is only working if  the service for the gpio buttons is disabled and/or the script (gpio-buttons.py) is modified.
i think/hope that with the right Hardware Pinout Assignment there should be a solution:

I2S_LRCLK on GPIO 19 / Pin 35 vs. MCLK etc.
I need to learn how this Pinout Assignment works. Maybe someone has the knowledge and the time to give a hint or solution.

GPIO
Pin
WM8960 Hi-Fi Sound Card

2
3
I2C_SDA P_SDA

3
5
I2C_SCL P_SCL

8
24

9
23

10
19

11
21

16
36

18
12
I2S_CLK P18

19
35
I2S_LRCLK P19

20
38
I2S_ADC

21
40
I2S_DAC

24
18

25
22

26
37

Hey, this is my first post here (but my second phoniebox) and I'm not sure if it's right here!? Please correct mehr (and my english) if necessery.
Now my question/problem:
I'm using the waveshare wm8960 HAT on a raspi zero. Got it working with the wiki except one thing, I cannot figure out how to use the headphone jack detection. Means how can I mute the speaker if a headphone is plugged.
Many thanks

Hi @michnixweiss
To set sound and adjust volume, you can use alsamixer tool
sudo alsamixer
Try to "hear" sound on the speakers, on headphone jack and "both"? I am not sure, if the HAT supports auto headphone jack detection (it is not indicated in the manual).
do you use GPIO buttons/rottary?

@dnmtch
I'm using gpio and rotary, all working (hat to switch some pins). There is sound on speaker and headphone and every single is adjustable with alsa. But the "normal" cut off/mute the speaker when headphone is plugged is not working.
In the datasheet on page 45 the jack detection is mentioned, but I don't have enough knowledge to unterstand how that has to be done. Is it a hardware switch or a software switch? If hardware I think mine is broken, if software does that have to be implemented in the driver, in alsa or done by a script which listens to a gpio?

The wiki is a little bit problematic from my point of view. Because there is different hardware used in multiple combinations so there is no "general" pinout possible. I think everybody has to check which pins are in fix use (like this HAT "blocks" GPIO 2,3,18,19,20,21) and which can be changed. In my solution rotary uses (out of the box) GPIO 5,6 so I pinned it just on to of the HAT and the rest has to be switched in the gpio-buttons.py
Be careful with not mixing up GPIO and PIN numbers!
But if I understand you correct, you have the same headphone jack behaviour!? Just want to know if the hardware isn't damaged.

you have the same headphone jack behaviour!?

I have sound on speaker AND headphone jack (connected).
i tried to play with alsamixer, searching online etc. i think/hope this should be solvable with asound.conf oder mpd.conf. But here ends already my limited knowledge. sry ;-)
if you find time, just "paste" your build (wiring) in the wiki as a "working solution" others (like me) are going to just copy your approach.

Unfortunately I got no feedback to my issue on waveshare github.
BUT: I found a solution. Granted a "ugly" one. I found out that the first right pin of the headphone jack is pulled to ground if one is plugged. So I wired this contact to pin 37 (GPIO 26) and wrote a little script which is watching this GPIO, turns off the speaker if it is pulled to ground.
I can make a sort of tutorial if someone is interested;-)

Hi, I'm building a new phoniebox setup using this soundcard. I've followed all the relevant instructions in the wiki, but I'm not getting any volume control on the web interface. Should I be able to control the volume using the web script at this stage? I'm just about to install a rotary encoder which I'm concerned won't make any difference if there isn't software enabled volume control.
All elements work - GPIO buttons, RFID reader, external hard drive with albums, and 16x2 LCD screen. This is the last step before assembling it as a Christmas present.
The one thing I couldn't do is this step in the wiki, which I suspect might be the issue:
**you must ** disable the service for the gpio buttons or modify the original gpio python script sudo nano /home/pi/RPi-Jukebox-RFID/scripts/gpio-buttons.py
I couldn't find that file in that location.
Any help much appreciated!
Best,
Tom

Unfortunately I got no feedback to my issue on waveshare github.
BUT: I found a solution. Granted a "ugly" one. I found out that the first right pin of the headphone jack is pulled to ground if one is plugged. So I wired this contact to pin 37 (GPIO 26) and wrote a little script which is watching this GPIO, turns off the speaker if it is pulled to ground.
I can make a sort of tutorial if someone is interested;-)

I would love a bit more information about headphone's working and disabling speakers once I can get the rotary encoder and volume control issue sorted!

GPIO is done since 2.1 via GPIO control
configuration is done via ./settings/gpio_control.ini

GPIO is done since 2.1 via GPIO control
configuration is done via ./settings/gpio_control.ini
I would recommend to open a new issue, if you have problems. Comments in closed issues are easily overlooked.

Thanks. I had edited that file for the GPIO configuration, but will open a new issue for the software controls for volume.
Much appreciated.


Decancer options aren't correctly parsed

In the current implementation on master (bc736e1), retain_chinese doesn't work.
This is as of yet unreleased, so should be fixed prior to release.
Repro:
from decancer import parse

result = parse("旧", retain_chinese=True)
assert result == "旧"  # Fails

Resolved in #14


QuickOpen should search near current file before performing a full project scan

Quick open is nearly useless on very large projects. For example AOSP has over 1,000,000 files and when using QuickOpen (assuming the file is not recently opened) all of them will be searched. This means that the search takes >30 seconds to populate.
It would be good if (in addition to the recently used options) nearby directories were searched immediately. In my case >60% of the time the file i want is in the same directory  as the current file I'm looking at or a subdirectory and >90% of the time it's contained in the parent directory.

We can't prioritize directories like this because we have to search everything then sort all of the results by their score. But results are cached after the first search.
If you are still having this issue, then the best I can offer is this wiki page for troubleshooting: https://github.com/microsoft/vscode/wiki/Search-Issues#slow-search-rg-running-for-a-long-time-or-consuming-lots-of-cpumemory


Provide task4 optimizations.

Resolves #10.

Cycle record at 86ee608:

Debug
Release

32294644
747699

Optimized with -mv64+, -O2

Cycle record at 8018264:

Debug
Release

31889140
506913


Remove the parallelizing when loading repo for dashboard

Ref: #24638
IMO, parallelizing might run out server resources more quickly. Gitea shouldn't use a lot of go-routine in a web handler.
And add a comment about how many repositories there could be at most.

Sorry for that, I assumed map was safe


API server in Container

Add a hint that the config file has to be attached to the container.

I agree with @sftim that additional detail is not necessary
Even though I don't like assumptions but if you're configuring secret data-at-rest then a user should know how to manage a basic Kubernetes cluster
Closing the PR as there is agreement that additional detail is not necessary
Feel free to re-open the PR and bring up this PR on the #sig-docs Slack channel or on a SIG Docs meeting
/close


New version: kevinboss.port version 1.7.0

Pull request has been created with WinGet Releaser v2 :rocket:
Microsoft Reviewers: Open in CodeFlow

/AzurePipelines run


"No such file or directory" when rolling log file on xctest

New Issue Checklist

[X] I have read and understood the CONTRIBUTING guide
[X] I have read the Documentation or CocoaDocs
[X] I have searched for a similar issue in the project and found none

Issue Info

Info
Value

Platform Name
ios

Platform Version
14.3

CocoaLumberjack Version
3.7

Integration Method
cocoapods

Xcode Version
Xcode 12.3

Repro rate
all the time (100%)

Demo project link

Issue Description and Steps
I have Cocoapods embedded in a framework which is being unit tested in a standard XCTest (non-UI). Our framework has a FileLogger attached like so:
    let fileLogger = DDFileLogger()
    fileLogger.rollingFrequency = 60 * 60 * 24 // 24 hours
    fileLogger.logFileManager.maximumNumberOfLogFiles = 7
    fileLogger.doNotReuseLogFiles = true
    DDLog.add(fileLogger)

Our framework is set to verbose logging and outputs a lot of logs as our unit tests are running. When CocoaLumberjack goes to roll a log file, I see the following output in the console:
DDLogFileInfo: setxattr(lumberjack.log.archived, /Users/dario/Library/Developer/CoreSimulator/Devices/4D44267D-7B5F-483E-A8FE-597D883B6D57/data/Library/Caches/Logs/com.apple.dt.xctest.tool 2021-01-27--12-45-44-052.log): error = No such file or directory

The call stack is:
#0	0x000000010d62cfa1 in -[DDLogFileInfo addExtendedAttributeWithName:] at /Users/dario/Dev/Builds/MyApp/Pods/CocoaLumberjack/Sources/CocoaLumberjack/DDFileLogger.m:1675
#1	0x000000010d62c297 in -[DDLogFileInfo setIsArchived:] at /Users/dario/Dev/Builds/MyApp/Pods/CocoaLumberjack/Sources/CocoaLumberjack/DDFileLogger.m:1481
#2	0x000000010d627819 in -[DDFileLogger lt_rollLogFileNow] at /Users/dario/Dev/Builds/MyApp/Pods/CocoaLumberjack/Sources/CocoaLumberjack/DDFileLogger.m:893
#3	0x000000010d629a34 in __58-[DDFileLogger lt_monitorCurrentLogFileForExternalChanges]_block_invoke at /Users/dario/Dev/Builds/MyApp/Pods/CocoaLumberjack/Sources/CocoaLumberjack/DDFileLogger.m:1125

The file it is trying to set the attribute for does not in fact exist at that location on disk.
In lt_rollLogFileNow, I see that _currentLogFileInfo is mostly nil except for the filePath property. Not sure if that is expected at that point. However, I only see addExtendedAttributeWithName referencing filePath and no other properties, so it's probably ok. Seems strange that all the properties on it would be nil though

lt_monitorCurrentLogFileForExternalChanges hints at an external modification of the log file. In this case likely an external delete.
This can have multiple reasons in the context of unit tests. E.g. when running tests in parallel, it might be that the simulator cleans up.
Or - depending on your unit tests - there are tests that deletes the log files (e.g. in setUp or tearDown)?
Either way, it's nothing serious. We can't really set an extended attribute on an already deleted file. 🙂
Also, only filePath being non-nil in this case makes sense, given that all other properties of DDLogFileInfo are being lazily from the file. So if no one accessed those properties, the backing vars will be nil. Also, since the file does not exist, even if they are accessed, they can't be read and thus are nil.
We should maybe check for the error and log with a different level if the file simply does not exist anymore.

lt_monitorCurrentLogFileForExternalChanges hints at an external modification of the log file. In this case likely an external delete.
This can have multiple reasons in the context of unit tests. E.g. when running tests in parallel, it might be that the simulator cleans up.
Or - depending on your unit tests - there are tests that deletes the log files (e.g. in setUp or tearDown)?
Either way, it's nothing serious. We can't really set an extended attribute on an already deleted file. 🙂
Also, only filePath being non-nil in this case makes sense, given that all other properties of DDLogFileInfo are being lazily from the file. So if no one accessed those properties, the backing vars will be nil. Also, since the file does not exist, even if they are accessed, they can't be read and thus are nil.
We should maybe check for the error and log with a different level if the file simply does not exist anymore.

Thanks for the quick reply. We don't have parallel test execution happening on our tests, so I think that rules that out. Our setUp/tearDown implementations only delete the top level object declared in our framework, the one that adds the FileLogger. It doesn't do anything with DDLog other than adding the file logger early on in its constructor. In its deinit, method it simply does a DDLogDebug to log that its been destroyed. There are no calls to DDLog.removeLogger anywhere in our codebase as it's just something we never really want to do.
Anyways, on our side it's harmless (though I haven't carefully scoured production app logs to see if we're seeing the error message there. It does tend to pollute our XCTest console logs though, which is a bit annoying, but certainly no deal breaker.

Thanks for the quick reply. We don't have parallel test execution happening on our tests, so I think that rules that out. Our setUp/tearDown implementations only delete the top level object declared in our framework, the one that adds the FileLogger. It doesn't do anything with DDLog other than adding the file logger early on in its constructor. In its deinit, method it simply does a DDLogDebug to log that its been destroyed. There are no calls to DDLog.removeLogger anywhere in our codebase as it's just something we never really want to do.
Anyways, on our side it's harmless (though I haven't carefully scoured production app logs to see if we're seeing the error message there. It does tend to pollute our XCTest console logs though, which is a bit annoying, but certainly no deal breaker.

I've opened a small PR that should fix this.

Many thanks :)


Directory Structure Expected by the xamples-directory Emitter Option and What OAV Outputs are Different

I am a little confused on how the generated examples from OAV and the x-ms-examples examples-directory option for the typespec-autorest emitter works together in a multiple API version scenario.
The examples-directory option is expecting the folder structure to be examples/<api-verison>/<example-name>.json.
However, OAV is generating examples for the passed in OpenAPI spec, which outputs in the structure <api-version>/examples/<examlpe-name>.json.
Something that I tried is to define the examples-directory similar to the  output-file emitter option. It looked like this: examples-directory: {azure-resource-provider-folder}/{service-name}/{version-status}/{version}/examples.
This did not work since the service-name, version-status, and version variables are not provided like the output-file option does.
This is sort of an easy issue to handle with a short script, but it seems like these should work together and expect/output the same structure.

There is supposed to be a copy of examples. The typespec examples then get copied to the swagger output dir. See this doc https://azure.github.io/typespec-azure/docs/howtos/migrate-swagger/x-ms-examples

@timotheeguerin Yes, I am using that documentation. My order of operations looks like this:

Run the autorest emitter, which outputs my OpenAPI specifications. Let's assume I don't already have examples.

We have multiple API versions, so the output looks like this: resource-manager/{service-name}/{version-status}/{version}/openapi.json

Run oav generate-examples against each generated OpenAPI specifications. oav does not have a way to specify the output directory.

The generated examples will be put right next to the OpenApi specification, which looks like this: resource-manager/{service-name}/{version-status}/{version}/examples/{example-name}.json

Create an examples folder alongside my TSP files. Create a folder inside for each API version.
Copy the examples from the oav output to their correct API version folder.
Re-run the autorest emitter with the correct examples-directory option.
See the x-ms-examples property added in my new OpenApi specifications.

I understand it is difficult to handle the Generate OpenApi specs -> generate examples -> generate OpenApi specs again, order of operations, but it would be nice if I didn't have to perform steps 3 and 4 from above.
Am I doing things in a wrong order or have folder structures incorrect that is making this harder than it needs to be?

no that is the expected order today, and yeah it is not ideal but this is the way we have it now to keep working with the swagger flow. It might be more helpful and easier for now that oav support an output dir you can use to do step 2-4 in one

Okay, thanks for the quick responses! At least I know this is the current expected order.


I have a 2d array of bathymetry height corresponding to coordinates (xi_rho, eta_rho) and I want to find out all coordinates corresponding to height = 65+-5m

This can be done with the concept of masking either in xarray or in numpy


Need a flag to disable the generation of the k3s.yaml file

Environmental Info:
K3s Version: v1.23.6+k3s1

Node(s) CPU architecture, OS, and Version: 5.11.0-37-generic #41~20.04.2-Ubuntu

Cluster Configuration: Single Node

We're in the process of hardening deployments for some edge clusters we are deploying to customer sites and we need a way to either disable the generation of the k3s.yaml file or change the write path to a tmpfs path. We've determined it would be okay if it's a flag since the user would need to authenticate to the host to change it, but written to disk in plaintext is something we need to avoid.

This seems like part of a flawed risk analysis. Having admin credentials written to disk in /etc/rancher/k3s/k3s.yaml does not change your risk profile. All servers have a copy of the cluster root CA certificates and keys written to disk under /var/lib/rancher/k3s/server/tls; anyone with access to those files could generate certificates with the exact same (or more) privilege as provided by the current admin kubeconfig.


ALB scan/probe parser looking at wrong response code

It looks like the scan/probe parser is looking at field 8 which is elb_status_code instead of 9 which is target_status_code
https://github.com/awslabs/aws-waf-security-automations/blob/master/source/log-parser/log-parser.py#L47
We had a situation where the HTTP Flood rule kicked in and blocked an IP, so all of the ALB logs elb_status_code were 403 and target_status_code was "-". It appears the scan/probe parser then read those ALB 403s as bad requests and also kicked in blocking that IP.
I think it should only look at target_status_code for 4xx

It's the same issue with Cloudfront scan/probe parser: https://github.com/awslabs/aws-waf-security-automations/blob/master/source/log-parser/log-parser.py#L39

Hi @rectalogic.
We've just pushed a new version that includes a fix for what you've mentioned:
https://github.com/awslabs/aws-waf-security-automations/blob/c7b25b4f9005469f1606e8da19c9704268f0697a/source/log-parser/log-parser.py#L50
Regards,
PS: I haven't found an equivalent filed for CloudFront access logs.


Update scala-library to 2.12.13

Updates org.scala-lang:scala-library from 2.12.11 to 2.12.13.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Files still referring to the old version number
The following files still refer to the old version number (2.12.11).
You might want to review and update them manually.
.github/scala.dhall
.github/workflows/ci.yaml

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scala-lang", artifactId = "scala-library" } ]

labels: library-update, semver-patch, old-version-remains

Superseded by #90.


Move WP blogs to RSS

10min of work, thanks to the previous changes

you can push changes to other peoples branches, that's not a problem. A word of warning though - I tend to force push, which will overwrite any changes, so make sure you warn people when working on a common branch. In that case it's pretty much the same as working on main - pull before pushing and you should be fine

ah. I only just noticed you pushed, after I force pushed with rebased changes. Which just goes to illustrate my point :D


Stop loading proto files dynamically

Currently, all gRPC Node.js client libraries load proto files dynamically using @grpc/proto-loader (that internally calls protobufjs.loadSync). Since proto files can form a huge dependency tree, it brings some real time complexity to the client constructor, and (more importantly) it blocks things like webpack (#2933).
There are several possible ways to deal with this dynamic load.

[proposed option] Compile protos to JSON using pbjs -t json running in a postinstall script, and load this JSON file in the runtime. For Node.js, this JSON format can be read by @grpc/proto-loader without making any changes to it (it's an undocumented feature but since protobufjs supports it, @grpc/proto-loader also supports it). For browsers, we'll do protobuf.root.fromJSON(jsonContent) to load the same JSON file which will be required to become a part of the bundle.

Compile proto files to static objects with protoc - this is what other languages do.
I dislike this option, mostly because the change from protobufjs object to protoc will likely bring some incompatibilities and hard-to-find bugs in the libraries.

Compile proto files to static objects with pbjs. Unfortunately, static objects generated by pbjs -t static-module are not supported by @grpc/grpc-js so we can't use this option for now (even though it's a great option for possible browser usage).

So, from my undestanding at this moment, the first option is the only option that would allow us to make the code working both in Node.js without dynamic proto loading, and in browsers (with no gRPC support). I'm going to work on this option and will update this issue when the code is ready to review.
Cc: @JustinBeckwith @bcoe @guybedford

How important is it to separate the proto files from the main build files in Node.js? Your proposal seems to suggest dynamic JSON loading in Node.js, and a static bundle for the browser. Usually we find the converse - that it is the browser where you want the granular loading of JSON files, and in Node.js where it is better to have everything in one file for their performance.

@guybedford So the problem here with the underlying library (gRPC) that for now cannot consume the statically created proto object. So we'll try to see how JSON protos performs in both cases (both Node and browser). I can write more words but let me better share some code that will show the idea :)  (later this week)

Any update here? I'm having issues with webpack & google cloud node client

Greetings!  If you're having issues, please file a new issue letting us know specifically what you're trying, and what problems you're running into :) I don't think this is the issue you're looking for :P

@timconnorz Just an update, we've been loading protos from a pre-compiled JSON for a year already, and we have a {fallback: true} option (that also works in Node.js, not just in browsers) that completely removes fs module from the equation. This issue is pretty much outdated so I'm going to close it - feel free to open an issue for the library you're trying to use in its corresponding repository (e.g. googleapis/nodejs-speech, googleapis/nodejs-vision, etc.)
Thank you!


KeyError: 'shellphish_qemu/bin'

Hi! I run the example you provided, but get KeyError :  'shellphish_qemu/bin'. What could be the problem?
In [1]: import rex

In [2]: crash = rex.Crash("./legit_00003", b"\x00\x0b1\xc1\x00\x0c\xeb\xe4\xf1\xf1\x14\r\rM\r\xf3\x1b\r\r\r~\x7f\x1b\xe3\x0c`_222\r\rM\r\xf3\x1b\r\x7f\x002\x7f~\x7f\xe2\xff\x7f\xff\xff\x8b\xc7\xc9\x83\x8b\x0c\xe
   ...: b\x80\x002\xac\xe2\xff\xff\x00t\x8bt\x8bt_o_\x00t\x8b\xc7\xdd\x83\xc2t~n~~\xac\xe2\xff\xff_k_\x00t\x8b\xc7\xdd\x83\xc2t~n~~\xac\xe2\xff\xff\x00t\x8bt\x8b\xac\xf1\x83\xc2t~c\x00\x00\x00~~\x7f\xe2\xff\xff\
   ...: x00t\x9e\xac\xe2\xf1\xf2@\x83\xc3t")
WARNING | 2018-12-20 15:01:41,188 | angr.engines.vex.engine | Executing symbolic code at 0xbaaab04c
WARNING | 2018-12-20 15:01:41,666 | angr.engines.vex.engine | Executing symbolic code at 0xbaaab112
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-2-bb2d345df134> in <module>
----> 1 crash = rex.Crash("./legit_00003", b"\x00\x0b1\xc1\x00\x0c\xeb\xe4\xf1\xf1\x14\r\rM\r\xf3\x1b\r\r\r~\x7f\x1b\xe3\x0c`_222\r\rM\r\xf3\x1b\r\x7f\x002\x7f~\x7f\xe2\xff\x7f\xff\xff\x8b\xc7\xc9\x83\x8b\x0c\xeb\x80\x002\xac\xe2\xff\xff\x00t\x8bt\x8bt_o_\x00t\x8b\xc7\xdd\x83\xc2t~n~~\xac\xe2\xff\xff_k_\x00t\x8b\xc7\xdd\x83\xc2t~n~~\xac\xe2\xff\xff\x00t\x8bt\x8b\xac\xf1\x83\xc2t~c\x00\x00\x00~~\x7f\xe2\xff\xff\x00t\x9e\xac\xe2\xf1\xf2@\x83\xc3t")

~/virtenvs/angr/lib/python3.6/site-packages/rex/crash.py in __init__(self, binary, crash, pov_file, aslr, constrained_addrs, crash_state, prev_path, hooks, format_infos, rop_cache_tuple, use_rop, fast_mode, explore_steps, angrop_object, argv, concrete_fs, chroot, rop_cache_path, trace_timeout, input_type, port, use_crash_input, tracer_args, initial_state)
    135             # optimized crash check
    136             if self.os == 'cgc':
--> 137                 if not tracer.QEMURunner(binary, input=self.crash, **tracer_args).crash_mode:
    138                     if not tracer.QEMURunner(binary, input=self.crash, report_bad_args=True, **tracer_args).crash_mode:
    139                         l.warning("input did not cause a crash")

~/virtenvs/angr/lib/python3.6/site-packages/tracer-0.1-py3.6.egg/tracer/qemu_runner.py in __init__(self, binary, input, project, record_trace, record_stdout, record_magic, record_core, seed, memory_limit, bitflip, report_bad_args, use_tiny_core, max_size, qemu, argv, library_path, ld_linux, trace_log_limit, trace_timeout, exec_func)
    142         self.trace_log_limit = trace_log_limit
    143         self.trace_timeout = trace_timeout
--> 144         self.sanity_check()
    145
    146         l.debug("Accumulating basic block trace...")

~/virtenvs/angr/lib/python3.6/site-packages/tracer-0.1-py3.6.egg/tracer/qemu_runner.py in sanity_check(self)
    172
    173     def sanity_check(self):
--> 174         self._check_binary()
    175         self._check_qemu_install()
    176

~/virtenvs/angr/lib/python3.6/site-packages/tracer-0.1-py3.6.egg/tracer/qemu_runner.py in _check_binary(self)
    194
    195         # try to find the install base
--> 196         self._check_qemu_install()
    197
    198     def _check_qemu_install(self):

~/virtenvs/angr/lib/python3.6/site-packages/tracer-0.1-py3.6.egg/tracer/qemu_runner.py in _check_qemu_install(self)
    210                 l.warning("Problem accessing forced %s. Using our default %s.", self._trace_source_path, self.trace_source)
    211
--> 212             self._trace_source_path = shellphish_qemu.qemu_path(self.trace_source)
    213
    214             if not os.access(self._trace_source_path, os.X_OK):

~/virtenvs/angr/lib/python3.6/site-packages/shellphish_qemu-0.9.10-py3.6.egg/shellphish_qemu/__init__.py in qemu_path(platform)
     10         '%s' % platform,
     11     ):
---> 12         path = os.path.join(qemu_base(), basename)
     13         if os.path.isfile(path):
     14             return path

~/virtenvs/angr/lib/python3.6/site-packages/shellphish_qemu-0.9.10-py3.6.egg/shellphish_qemu/__init__.py in qemu_base()
     17
     18 def qemu_base():
---> 19     return pkg_resources.resource_filename('shellphish_qemu', 'bin')
     20
     21 def qemu_list():

~/virtenvs/angr/lib/python3.6/site-packages/pkg_resources/__init__.py in resource_filename(self, package_or_requirement, resource_name)
   1135         """Return a true filesystem path for specified resource"""
   1136         return get_provider(package_or_requirement).get_resource_filename(
-> 1137             self, resource_name
   1138         )
   1139

~/virtenvs/angr/lib/python3.6/site-packages/pkg_resources/__init__.py in get_resource_filename(self, manager, resource_name)
   1644             for name in eagers:
   1645                 self._extract_resource(manager, self._eager_to_zip(name))
-> 1646         return self._extract_resource(manager, zip_path)
   1647
   1648     @staticmethod

~/virtenvs/angr/lib/python3.6/site-packages/pkg_resources/__init__.py in _extract_resource(self, manager, zip_path)
   1665             return os.path.dirname(last)
   1666
-> 1667         timestamp, size = self._get_date_and_size(self.zipinfo[zip_path])
   1668
   1669         if not WRITE_SUPPORT:

KeyError: 'shellphish_qemu/bin'
```
`

Your shellphish-qemu installation seems to be very messed up. How did you install it? It shouldn't be possible to get into a setup like this if you installed it with pip.

Your shellphish-qemu installation seems to be very messed up. How did you install it? It shouldn't be possible to get into a setup like this if you installed it with pip.

I installed angr from https://hub.docker.com/r/angr/angr. Then packages from repos:
https://github.com/shellphish/shellphish-qemu.git
https://github.com/mechaphish/povsim.git
https://github.com/salls/angrop.git
https://github.com/mechaphish/compilerex.git
https://github.com/shellphish/rex.git
https://github.com/angr/tracer
https://github.com/shellphish/shellphish-afl.git
And then
sudo apt-get update
sudo apt-get install -y virtualenvwrapper python2.7-dev build-essential sudo libxml2-dev libxslt1-dev git libffi-dev cmake libreadline-dev libtool debootstrap debian-archive-keyring libglib2.0-dev libpixman-1-dev libpq-dev python-dev libc6:i386 libncurses5:i386 libstdc++6:i386 zlib1g:i386 pkg-config zlib1g-dev libtool libtool-bin wget automake autoconf coreutils bison libacl1-dev qemu-user qemu-kvm socat postgresql-client nasm binutils-multiarch llvm clang

Please do not try to build shellphish-qemu and shellphish-afl by yourself. Use the wheels on pypi or in https://github.com/angr/wheels.

If you must, install it with pip install . or pip install -e .

If you must, install it with pip install . or pip install -e .

Now it work! Thanks! Other binary (elf arm32):
WARNING | 2018-12-21 10:34:44,884 | pyvex.lifting.gym.arm_spotter | Spotting an LDM instruction at 0x176ec4.  This is not fully tested.  Prepare for errors.
WARNING | 2018-12-21 10:34:44,884 | pyvex.lifting.gym.arm_spotter | Spotting an LDM instruction at 0x176ec4.  This is not fully tested.  Prepare for errors.
WARNING | 2018-12-21 10:35:01,381 | tracer.qemu_runner | The trace is found to be malformed. it is possible that the log file size exceeds the 1G limit, meaning that there might be infinite loops in the target program.
---------------------------------------------------------------------------
AngrTracerError                           Traceback (most recent call last)
<ipython-input-3-86ac8f8f0c42> in <module>
----> 1 crash = rex.Crash('./tlrun_static', bytes_crash)

~/virtenvs/angr/lib/python3.6/site-packages/rex/crash.py in __init__(self, binary, crash, pov_file, aslr, constrained_addrs, crash_state, prev_path, hooks, format_infos, rop_cache_tuple, use_rop, fast_mode, explore_steps, angrop_object, argv, concrete_fs, chroot, rop_cache_path, trace_timeout, input_type, port, use_crash_input, tracer_args, initial_state)
    223
    224             self._t = angr.exploration_techniques.Tracer(trace=r.trace, resiliency=False, keep_predecessors=2, crash_addr=r.crash_addr)
--> 225             simgr.use_technique(self._t)
    226             simgr.use_technique(angr.exploration_techniques.Oppologist())
    227

/home/angr/angr-dev/angr/angr/sim_manager.py in use_technique(self, tech)
    186         # XXX: as promised
    187         tech.project = self._project
--> 188         tech.setup(self)
    189
    190         HookSet.install_hooks(self, **tech._get_hooks())

/home/angr/angr-dev/angr/angr/exploration_techniques/tracer.py in setup(self, simgr)
     72                 break
     73         else:
---> 74             raise AngrTracerError("Could not identify program entry point in trace!")
     75
     76         # pylint: disable=undefined-loop-variable

AngrTracerError: Could not identify program entry point in trace!

what does it mean?

It means angr can't figure out which block in the trace is the program entry point. That seems like a fairly easy conclusion to draw.
Get a debug shell there and print out the trace, and see if you can identify the entry point in the trace. Should be pretty easy if the program isn't PIE.
It might have to do with the warning message: The trace is found to be malformed. it is possible that the log file size exceeds the 1G limit, meaning that there might be infinite loops in the target program.. I don't really know how to approach that issue though.

Get a debug shell there and print out the trace, and see if you can identify the entry point in the trace. Should be pretty easy if the program isn't PIE.

How I can get a debug shell? I used logging:
logging.getLogger('rex').setLevel('DEBUG')
logging.getLogger('angr').setLevel('DEBUG')
logging.getLogger('tracer').setLevel('DEBUG')

and get this:
INFO    | 2018-12-25 10:53:17,486 | angr.project | Loading binary ./bin_test
DEBUG   | 2018-12-25 10:53:19,608 | angr.project | hooking 0x2000000 with <SimProcedure LinuxLoader>
DEBUG   | 2018-12-25 10:53:19,608 | angr.project | hooking 0x2000008 with <SimProcedure _dl_rtld_lock_recursive>
DEBUG   | 2018-12-25 10:53:19,609 | angr.project | hooking 0x2000010 with <SimProcedure _dl_rtld_unlock_recursive>
DEBUG   | 2018-12-25 10:53:19,609 | angr.project | hooking 0x2000018 with <SimProcedure _dl_initial_error_catch_tsd>
DEBUG   | 2018-12-25 10:53:19,609 | angr.project | hooking 0x2000020 with <SimProcedure _vsyscall>
DEBUG   | 2018-12-25 10:53:19,609 | angr.project | hooking 0xffff0fe0 with <SimProcedure _kernel_user_helper_get_tls>
DEBUG   | 2018-12-25 10:53:19,609 | angr.project | hooking 0x2000030 with <SimProcedure CallReturn>
DEBUG   | 2018-12-25 10:53:19,609 | angr.project | hooking 0x2000038 with <SimProcedure UnresolvableJumpTarget>
DEBUG   | 2018-12-25 10:53:19,610 | angr.project | hooking 0x2000040 with <SimProcedure UnresolvableCallTarget>
DEBUG   | 2018-12-25 10:53:19,657 | tracer.qemu_runner | Accumulating basic block trace...
DEBUG   | 2018-12-25 10:53:19,657 | tracer.qemu_runner | tracer qemu path: /root/virtenvs/angr/lib/python3.6/site-packages/shellphish_qemu/bin/shellphish-qemu-linux-arm
WARNING | 2018-12-25 10:53:29,773 | tracer.qemu_runner | The trace is found to be malformed. it is possible that the log file size exceeds the 1G limit, meaning that there might be infinite loops in the target program.
DEBUG   | 2018-12-25 10:53:29,776 | angr.state_plugins.solver | Creating SimSolverClaripy.
DEBUG   | 2018-12-25 10:53:29,823 | angr.state_plugins.solver | Creating new unconstrained BV named aeg_stdin_0
DEBUG   | 2018-12-25 10:53:29,824 | angr.state_plugins.preconstrainer | Preconstraint: <Bool aeg_stdin_0_15546_8{UNINITIALIZED} == 5>
DEBUG   | 2018-12-25 10:53:30,155 | angr.state_plugins.solver | Creating new unconstrained BV named aeg_stdin_1
DEBUG   | 2018-12-25 10:53:30,155 | angr.state_plugins.preconstrainer | Preconstraint: <Bool aeg_stdin_1_15547_8{UNINITIALIZED} == 0>
....

Also a get many warning like this:
WARNING | 2018-12-25 10:53:06,036 | pyvex.lifting.gym.arm_spotter | Spotting an LDM instruction at 0x1735e0.  This is not fully tested.  Prepare for errors.
WARNING | 2018-12-25 10:53:06,057 | pyvex.lifting.gym.arm_spotter | Spotting an LDM instruction at 0x173606.  This is not fully tested.  Prepare for errors.
WARNING | 2018-12-25 10:53:06,066 | pyvex.lifting.gym.arm_spotter | Ignoring STMxx ^ instruction at 0x17360e. This mode is not implemented by VEX! See pyvex/lifting/gym/arm_spotter.py
WARNING | 2018-12-25 10:53:06,068 | pyvex.lifting.gym.arm_spotter | Ignoring STMxx ^ instruction at 0x173610. This mode is not implemented by VEX! See pyvex/lifting/gym/arm_spotter.py

Sorry, I don't understand what it means.

A shell is an interactive prompt. A debug shell is an interactive prompt embedded in the program that lets you explore its state at a given point.
In python, the two main ways of doing this are to insert import ipdb; ipdb.set_trace() into a source file to effectively set a breakpoint, or to run ipython --pdb instead of python to execute your scripts, which will spawn a debug shell when the program terminates with an exception. Both of these shells will be the pdb shell, which is like the gdb shell but for python. Tutorials for using it should be available online.