tch::CModule::load seems unable to load zip-compressed data saved with torch.save

I'm trying to load

https://github.com/unitaryai/detoxify/releases/download/v0.1-alpha/toxic_original-c1212f89.ckpt
https://github.com/unitaryai/detoxify/releases/download/v0.4-alpha/multilingual_debiased-0b549669.ckpt

Warning: large files (the latter is 1Gb).
For both of them, the following Python code works:
import torch
torch.load(path)

However, using tch 0.8.0
fn main() {
    let mut path = PathBuf::new();
    path.push(env!("CARGO_MANIFEST_DIR"));
    path.push("tmp");
    path.push("multilingual_debiased-0b549669.ckpt");
    //path.push("archive");
    let path = path.as_path();
    Detoxify::load(path)
        .expect("Failed Detoxify::load");
}

produces the following error
    Internal torch error: PytorchStreamReader failed locating file constants.pkl: file not found
    Exception raised from valid at ../caffe2/serialize/inline_container.cc:177 (most recent call first):
    frame #0: c10::Error::Error(c10::SourceLocation, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) + 0x6b (0x7f0adad899cb in /home/yoric/Documents/Code/blurbs/detoxify-rs/target/debug/build/torch-sys-2bffe3b5e2f58f7d/out/libtorch/libtorch/lib/libc10.so)
    frame #1: c10::detail::torchCheckFail(char const*, char const*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) + 0xce (0x7f0adad8537e in /home/yoric/Documents/Code/blurbs/detoxify-rs/target/debug/build/torch-sys-2bffe3b5e2f58f7d/out/libtorch/libtorch/lib/libc10.so)
    frame #2: caffe2::serialize::PyTorchStreamReader::valid(char const*, char const*) + 0x3ca (0x7f0addca500a in /home/yoric/Documents/Code/blurbs/detoxify-rs/target/debug/build/torch-sys-2bffe3b5e2f58f7d/out/libtorch/libtorch/lib/libtorch_cpu.so)
    frame #3: caffe2::serialize::PyTorchStreamReader::getRecordID(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) + 0x59 (0x7f0addca5509 in /home/yoric/Documents/Code/blurbs/detoxify-rs/target/debug/build/torch-sys-2bffe3b5e2f58f7d/out/libtorch/libtorch/lib/libtorch_cpu.so)
    frame #4: caffe2::serialize::PyTorchStreamReader::getRecord(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) + 0x58 (0x7f0addca55b8 in /home/yoric/Documents/Code/blurbs/detoxify-rs/target/debug/build/torch-sys-2bffe3b5e2f58f7d/out/libtorch/libtorch/lib/libtorch_cpu.so)
    frame #5: torch::jit::readArchiveAndTensors(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, c10::optional<std::function<c10::StrongTypePtr (c10::QualifiedName const&)> >, c10::optional<std::function<c10::intrusive_ptr<c10::ivalue::Object, c10::detail::intrusive_target_default_null_type<c10::ivalue::Object> > (c10::StrongTypePtr, c10::IValue)> >, c10::optional<c10::Device>, caffe2::serialize::PyTorchStreamReader&, c10::Type::SingletonOrSharedTypePtr<c10::Type> (*)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), std::shared_ptr<torch::jit::DeserializationStorageContext>) + 0x12c (0x7f0adeb9f86c in /home/yoric/Documents/Code/blurbs/detoxify-rs/target/debug/build/torch-sys-2bffe3b5e2f58f7d/out/libtorch/libtorch/lib/libtorch_cpu.so)
    frame #6: <unknown function> + 0x3dc230b (0x7f0adeb9730b in /home/yoric/Documents/Code/blurbs/detoxify-rs/target/debug/build/torch-sys-2bffe3b5e2f58f7d/out/libtorch/libtorch/lib/libtorch_cpu.so)
    frame #7: <unknown function> + 0x3dc41fd (0x7f0adeb991fd in /home/yoric/Documents/Code/blurbs/detoxify-rs/target/debug/build/torch-sys-2bffe3b5e2f58f7d/out/libtorch/libtorch/lib/libtorch_cpu.so)
    frame #8: torch::jit::load(std::shared_ptr<caffe2::serialize::ReadAdapterInterface>, c10::optional<c10::Device>, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >&) + 0x1cd (0x7f0adeb9abbd in /home/yoric/Documents/Code/blurbs/detoxify-rs/target/debug/build/torch-sys-2bffe3b5e2f58f7d/out/libtorch/libtorch/lib/libtorch_cpu.so)
    frame #9: torch::jit::load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, c10::optional<c10::Device>, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >&) + 0xe0 (0x7f0adeb9d7d0 in /home/yoric/Documents/Code/blurbs/detoxify-rs/target/debug/build/torch-sys-2bffe3b5e2f58f7d/out/libtorch/libtorch/lib/libtorch_cpu.so)
    frame #10: torch::jit::load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, c10::optional<c10::Device>) + 0x6f (0x7f0adeb9d97f in /home/yoric/Documents/Code/blurbs/detoxify-rs/target/debug/build/torch-sys-2bffe3b5e2f58f7d/out/libtorch/libtorch/lib/libtorch_cpu.so)
    frame #11: <unknown function> + 0x22737 (0x55da60e74737 in target/debug/examples/toxic_original)
    frame #12: <unknown function> + 0x1705a (0x55da60e6905a in target/debug/examples/toxic_original)
    frame #13: <unknown function> + 0x163ba (0x55da60e683ba in target/debug/examples/toxic_original)
    frame #14: <unknown function> + 0x1610c (0x55da60e6810c in target/debug/examples/toxic_original)
    frame #15: <unknown function> + 0x15edb (0x55da60e67edb in target/debug/examples/toxic_original)
    frame #16: <unknown function> + 0x15d6e (0x55da60e67d6e in target/debug/examples/toxic_original)
    frame #17: <unknown function> + 0x15e01 (0x55da60e67e01 in target/debug/examples/toxic_original)
    frame #18: <unknown function> + 0x504ae (0x55da60ea24ae in target/debug/examples/toxic_original)
    frame #19: <unknown function> + 0x15dd0 (0x55da60e67dd0 in target/debug/examples/toxic_original)
    frame #20: <unknown function> + 0x1617c (0x55da60e6817c in target/debug/examples/toxic_original)
    frame #21: __libc_start_main + 0xf3 (0x7f0ada634083 in /lib/x86_64-linux-gnu/libc.so.6)
    frame #22: <unknown function> + 0x15c9e (0x55da60e67c9e in target/debug/examples/toxic_original)

inspecting the archive, I can confirm that constants.pkl doesn't exist, but this doesn't seem to cause issues for the Python API.

If I am not wrong, loading checkpoints that were created using PyTorch Python APIs cannot be directed loaded on to c++ APIs (Lib Torch or in this case the rust bindings for Lib Torch). You need to first convert the model into a TorchScript Module for it to be able to load it via the torch::jit::load.
You can check how to convert your model to TorchScript from this guide on PyTorch official website: https://pytorch.org/tutorials/advanced/cpp_export.html

That's right, reading the checkpoint files generated by the Python api is not supported and you would have to export your weights from Python to a form that the C++/Rust side can support.
Rather than going through a whole TorchScript, you can also export the weights from the Python side, we do this for computer vision models by writing the weights as a .npz file that gets converted to a .ot file via tensor-tools (see this script).

You can also do this without going through NumPy by associating the tensors with a stub module, converting that module to TorchScript, but then only saving the parameters associated with the TorchScript, which will give you a vanilla parameter file. See e.g.:
https://github.com/tensordot/syntaxdot/blob/22bd3d43ed2d7fcbef8a6217b01684194fae713f/scripts/pytorch-bert-to-syntaxdot.py#L69
https://github.com/tensordot/syntaxdot/blob/main/scripts/tensor_module.py

Closing this as there as been no activity in a while. Also note that the .safetensors format is now supported when loading a VarStore so might be a good alternative format that works well on the Python and Rust side.


Read HEIC files with multiple images?

HEIC supports more than one image in a container file. Are there plans to add multiple image support? Currently, pyheif only reads the primary image.

:raised_hand: looking forwards to this feature

✋ looking forwards to this feature

Please review #71.


Misprint

JsonWriter.cs
JsonTextWriterTest.cs
"Tempate" -> "Template"

I resolved this issue and created a pull request: https://github.com/JamesNK/Newtonsoft.Json/pull/2465


[freetype] switch from sourceforgr.net to github.com

Fix #25390
Switch from sourceforgr.net which uses 90 days certs to github.com which uses 365 days certs.
All features are tested successfully in the following triplet:

x86-windows
x64-windows
x64-windows-stataic

Switch from sourceforgr.net which uses 90 days certs to github.com which uses 365 days certs.

There is nothing wrong with 90-days certificates. So this is not a reason to change.

Fix https://github.com/microsoft/vcpkg/issues/25390

This issue is about curl refusing a self-signed certificate. This is not about an expired certificate.
(The reason can be a misconfigured sourceforge mirror or a MITM attack.)

Switch from sourceforgr.net which uses 90 days certs to github.com which uses 365 days certs.

There is nothing wrong with 90-days certificates. So this is not a reason to change.

Fix #25390

This issue is about curl refusing a self-signed certificate. This is not about an expired certificate. (The reason can be a misconfigured sourceforge mirror or a MITM attack.)

Thanks for the reminder, I prefer to keep this change because it is easier to maintain on github.

If you really want to switch from Sourceforge to git, the official repo is https://gitlab.freedesktop.org/freetype/freetype AFAIU.

I agree that we need to switch to official, better to switch to gitlab.

@Adela0814, Can you please resolve the conflicts against master?


Great work! Could you estimate when the code and dataset will be available? Thx!

Hi, is there any updates on when the code will be released? Thanks!

Apologies for the delay - we are going to release the code to run the batch version of Clio in a couple days and then release the real-time version of Clio a few days after that.

We have released the batch version of Clio that takes a scene graph of primitives and forms task-relevant object clusters and will release the realtime version of Clio on October 7th.


Previewing Deployment of S3 Bucket Shows Change In serverSideEncryptionConfiguration

What happened?
When previewing a deployment of an S3 bucket, we get this change in the report:

I was OK, let's redeploy, so that this gets applied.
But even after I redeployed, the change is still being reported when doing a deployment preview.
Expected Behavior
After deployment, no changes should be shown when doing a deployment preview. On the other hand, not sure if this needs to be reported at all. Maybe this should be internally handled. 🤔
Steps to reproduce
Try deploying a S3 bucket, and then do a preview deployment.
Output of pulumi about
Version      3.41.1
Go Version   go1.19.1
Go Compiler  gc

Plugins
NAME    VERSION
nodejs  unknown

Host
OS       darwin
Version  12.3
Arch     arm64

This project is written in nodejs: executable='/private/var/folders/j3/33xmnlyn6db75qqn6n06j6nh0000gn/T/xfs-2f7785c0/node' version='v16.19.0'

Current Stack: dev

TYPE                                                      URN
pulumi:pulumi:Stack                                       urn:pulumi:dev::admin::pulumi:pulumi:Stack::admin-dev
pulumi:providers:aws                                      urn:pulumi:dev::admin::pulumi:providers:aws::default_5_16_2
aws:cloudfront/originAccessIdentity:OriginAccessIdentity  urn:pulumi:dev::admin::aws:cloudfront/originAccessIdentity:OriginAccessIdentity::wby-admin-app-origin-identity
aws:s3/bucket:Bucket                                      urn:pulumi:dev::admin::aws:s3/bucket:Bucket::wby-admin-app
aws:s3/bucketPublicAccessBlock:BucketPublicAccessBlock    urn:pulumi:dev::admin::aws:s3/bucketPublicAccessBlock:BucketPublicAccessBlock::wby-admin-app-bucket-block-access
aws:s3/bucketPolicy:BucketPolicy                          urn:pulumi:dev::admin::aws:s3/bucketPolicy:BucketPolicy::wby-admin-app-bucket-policy
aws:cloudfront/distribution:Distribution                  urn:pulumi:dev::admin::aws:cloudfront/distribution:Distribution::wby-admin-app-cdn
aws:dynamodb/tableItem:TableItem                          urn:pulumi:dev::admin::aws:dynamodb/tableItem:TableItem::wby-adminSettings

Found no pending operations associated with dev

Backend
Name           Adrians-MacBook-Pro-2.local
URL            file:///Users/adrian/dev/webiny-js/.pulumi/apps/admin
User           adrian
Organizations

Pulumi locates its logs in /var/folders/j3/33xmnlyn6db75qqn6n06j6nh0000gn/T/ by default
warning: Failed to get information about the Pulumi program's dependencies: Could not find either /Users/adrian/dev/webiny-js/.webiny/workspaces/apps/admin/pulumi/yarn.lock or /Users/adrian/dev/webiny-js/.webiny/workspaces/apps/admin/pulumi/package-lock.json

Additional context
No response
Contributing
Vote on this issue by adding a 👍 reaction.
To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already).

This is related to a change AWS "released" on January 5th. All new buckets created after that date will automatically be encrypted.
Source: https://docs.aws.amazon.com/AmazonS3/latest/userguide/default-encryption-faq.html
If I had to guess, then I'd say that the AWS provider is not yet aware of this new default and therefore always reports a diff. The Pulumi state does not reflect this default, therefore causing the diff.

I expect we'll need to pull https://github.com/hashicorp/terraform-provider-aws/pull/28702 into our fork to address this.

This should now be fixed in v5.31.0 which should be released in the next couple of hours.

Thank you for this, so far so good! :)

This is problematic when adding your own bucket aws.s3.BucketServerSideEncryptionConfigurationV2 (Eg KMS specific encryption) directly will be passively removed by the diff on the bucket object here.


BREAKING CHANGE: Remove feature class for bordered Alert #DS-1230

Description

Additional context

Issue reference

coverage: 96.371% (+15.6%) from 80.734%
when pulling 16d688a15232f3d54fb976eba100b439b0163d60 on bc/ds-1230-remove-class-for-bordered-alert
into 7ffa4f7a69d4a7e624f118e248c9ad4439ce1f8e on integration/release-v2.


Error RuntimeError: Cannot decompress

Hi, i want to try but find exception like bellow

from pathlib import Path
from tinydb import TinyDB
from BetterJSONStorage import BetterJSONStorage
path = Path('test2.json')
with TinyDB(path, access_mode="r+", storage=BetterJSONStorage) as db:
...     dc = db.search(where("groups") != None)
...
Traceback (most recent call last):
File "", line 1, in
File "/home/doodlboks/riset/bispes/lib/python3.8/site-packages/tinydb/database.py", line 94, in init
self._storage: Storage = storage(*args, **kwargs)
File "/home/doodlboks/riset/bispes/lib/python3.8/site-packages/BetterJSONStorage/BetterJSONStorage.py", line 128, in init
self.load()
File "/home/doodlboks/riset/bispes/lib/python3.8/site-packages/BetterJSONStorage/BetterJSONStorage.py", line 170, in load
self._data = loads(decompress(db_bytes))
File "/home/doodlboks/riset/bispes/lib/python3.8/site-packages/blosc2/core.py", line 177, in decompress
return blosc2_ext.decompress(src, dst, as_bytearray)
File "blosc2_ext.pyx", line 404, in blosc2.blosc2_ext.decompress
RuntimeError: Cannot decompress

same here any solution found?

ok i found solution,
delete any old database, if you are trying to use db.json created with native lib re-create it.

I should probably mention it in the docs that you can't (easily) transfer databases created with other Storage types.


Gradle 8.x.x compatibility

@nicholaslee119 Hi, can you please review this mr, I'm waiting for updates, thanks

LGTM! I will release this as soon as possible!


Fix delegate schema

Pre-flight checklist

[x] I have read the Contributing Guidelines on pull requests.
[x] Commit messages follow the conventional commits spec
[x] If this is a code change: I have written unit tests.
[x] If this changes code in a published package: I have run pnpm changeset to create a changeset JSON document appropriate for this change.
[ ] If this is a new API or substantial change: the PR has an accompanying issue (closes #0000) and the maintainers have approved on my working plan.

Motivation
Currently people can create meta-transactions, but once they are relayed, the RPC answers Parse error: Failed to decode transaction: Unexpected variant tag: 131. This is because the transaction is being wrongly serialized since two fields are swapped in the Schema.
Test Plan
Added a test checking that the SCHEMA can deserialize a valid delegateAction, since the SCHEMA is the same for both serialization and deserialization, that should suffice
Related issues/PRs
#1313

@gtsonevv can we get this released ASAP? People cannot create meta-transactions :/


Add support for loading from Gen3 (resolves LOAD-4, LOAD-6)

This is in a preliminary phase but here's what's currently working:

TOPMed 107 open access data can be pulled from UChicago CDIS Gen3.
The repository contains a script to automate this process.

This data can be loaded into the HCA Data Storage System (DSS).
UUIDs and file versioning are fully supported

The loading code is tested. Unittests are up and running and Travis-CI is providing continuous integration :)

┆Issue Number: LOAD-13

@mikebaumann Wow!! looks great! We should talk more about style and standards and stuff so that you don't have to make all of these sorts of changes again afterwards.


Conditions do not cast parameters to Boolean while evaluating

When pipeline definition has the following YAML:
variables:
  isSourceBranchMaster: $[eq(variables['Build.SourceBranch'], 'refs/heads/master')]
  isSourceBranchDevelop: $[eq(variables['Build.SourceBranch'], 'refs/heads/develop')]
  publishArtifacts: $[ or( variables.isSourceBranchMaster, variables.isSourceBranchDevelop ) ]

Variable publishArtifacts is not evaluated according to this documentation. Here is the output:
  isSourceBranchMaster:
    Parsing expression: <eq(variables['Build.SourceBranch'], 'refs/heads/master')>
    Evaluating: eq(variables['Build.SourceBranch'], 'refs/heads/master')
    Expanded: eq('refs/heads/feature/update-file', 'refs/heads/master')
    Result: 'False'
  isSourceBranchDevelop:
    Parsing expression: <eq(variables['Build.SourceBranch'], 'refs/heads/develop')>
    Evaluating: eq(variables['Build.SourceBranch'], 'refs/heads/develop')
    Expanded: eq('refs/heads/feature/update-file', 'refs/heads/develop')
    Result: 'False'
  publishArtifacts:
    Parsing expression: <or( variables.isSourceBranchMaster, variables.isSourceBranchDevelop )>
    Evaluating: or(variables['isSourceBranchMaster'], variables['isSourceBranchDevelop'])
    Expanded: or('False', variables['isSourceBranchDevelop'])
    Result: 'True'

publishArtifacts variable evaluation result should be 'False'
I am using Azure DevOps Server Version 17.143.28912.1

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 3f151218-9a11-0078-e038-f96198a76143
Version Independent ID: 09c4d032-62f3-d97c-79d7-6fbfd89910e9
Content: Conditions - Azure Pipelines
Content Source: docs/pipelines/process/conditions.md
Product: devops
Technology: devops-cicd-process
GitHub Login: @juliakm
Microsoft Alias: jukullam

Potential workaround is to define the variable as following:
publishArtifacts: $[ or( eq(variables.isSourceBranchMaster, true), eq(variables.isSourceBranchDevelop, true) ) ]

But documentation then should be updated to do not confuse developers.

does that workaround work? i'd expect it to have to be eq(xx, 'True')

does that workaround work? i'd expect it to have to be eq(xx, 'True')

Using just true (vs 'True') works. Probably because it is a valid literal.

@ferrata id be careful since “False” evaluates to true since its non empty string

@drdamour,

id be careful since “False” evaluates to true since its non empty string

Yes, you are correct. It breaks if first argument is of a boolean type. According to the documentation eq converts second argument to match type of the first one. It works in my case above because it seems like variables always resolve to string, even if expression should return boolean.
Did some more digging. Here is what I understand happens:
variables:
  compareTrueToBoolean: $[eq(true, false)] # 'False', both arguments have same type (boolean)
  compareTrueToString: $[eq(true, 'false')] # 'True', second argument is treated as boolean True because it is non-empty string

  evaluatedTrue: $[eq('a', 'a')]
  compareEvaluatedTrueToBoolean: $[eq(variables.evaluatedTrue, false)] # 'False', second (boolean) argument gets converted to string
  compareEvaluatedTrueToString: $[eq(variables.evaluatedTrue, 'false')] # 'False', both arguments have same type (string)

@ferrata -- Alexander, thank you for your detailed feedback. It looks like you've encountered an issue with the product itself, rather than an issue with the documentation. To make sure it gets in front of the right people, please submit your bug here.
I am closing this issue now.  You are welcome to @ mention me for any followup.
We hope to hear from you again.
cc @chcomley for awareness


Add ability to use an empty config file

Adds the feature that an empty settings file is parsed like a normal empty dictionary. There are a number of reasons why this feature is useful, e.g. I don't want to create an empty json file and just want to pass in /dev/null/Nul.
Instead of hard coding /dev/null and Nul, it just allows any empty file to be parsed as {}.

I looked into changing the default value of the settings file parser to use to dev null, however the current behavior of add_settings_file to the argument parser already handles this by setting the settings file to required unless TERRA_SETTINGS_FILE is set, in which case it become optional. So I decided not to unexpectedly change this behavior for all Terra projects. If this is a desired feature, we can add a parameter to add_settings_file to support both scenarios.
So in cases where we want the settings file to be optional, we can set TERRA_SETTINGS_FILE to dev null in the project.env file, local.env, or other environment configuration to make it behave that way.

As per an offline discussion, I went ahead and added a flag to add_settings_file to allow /dev/null/Nul to be the default setting filename, which can be enabled on a per app basis.


quic: Quiche roll<PHONE_NUMBER>1042

Commit Message: Update QUICHE from dd22dd1a7 to 50f15e7a5 https://github.com/google/quiche/compare/dd22dd1a7..50f15e7a5
Risk Level: low
Testing: existing tests passes
Docs Changes: n/a
Release Notes: n/a
Platform Specific Features: n/a

/assign @RenjieTang

@htuch for dependency review.

/assign-from @envoyproxy/dependency-shepherds

/assign @moderation for dependency review.

/assign @moderation

Was travelling OS
/lgtm deps


Add Marquee HTML tag

Simple marquee tag implementation

Thanks so much for the PR.
What's the practical use of this? I don't think I've ever used a marquee tag in html.

Humm, I'm not convinced it really warrants a component here.
FastUI is definitely not trying to be a mirror of HTML in python.

Closing as I think this, while cool/retro isn't particularly useful, and sends the wrong signal - fastui isn't trying to implement all html tags.


Added pseudo-terminal control parameters

I tried using the Citadel library and swiftterm together to implement an SSH client, but I couldn't find a way to pass the "term_modes" parameter, which is used to display relevant information in a terminal emulator. Is there a plan to add this parameter in the future? Or if I want to add this functionality, where should I start?

Hello yesterday I discussed this with joannis on discord and I tried to modify the withTTY call method in the fork branch to work perfectly with swiftterm, like this
`@available(macOS 15.0, *)
public func withTTY(
envRequests: [SSHChannelRequestEvent.EnvironmentRequest] = [],
ptyRequset: SSHChannelRequestEvent.PseudoTerminalRequest? = nil,
perform: (_ inbound: TTYOutput, _ outbound: TTYStdinWriter) async throws -> Void
) async throws {
let (channel, output) = try await _shellExecuteCommandStream(envRequests:envRequests, ptyRequset:ptyRequset)
    func close() async throws {
        try await channel.close()
    }

    do {
        let inbound = TTYOutput(sequence: output)
        try await perform(inbound, TTYStdinWriter(channel: channel))
        try await close()
    } catch {
        try await close()
        throw error
    }
}`

`
internal func _shellExecuteCommandStream(
envRequests: [SSHChannelRequestEvent.EnvironmentRequest] = [],
ptyRequset: SSHChannelRequestEvent.PseudoTerminalRequest? = nil
) async throws -> (channel: Channel, output: AsyncThrowingStream<ExecCommandOutput, Error>) {
let (stream, streamContinuation) = AsyncThrowingStream<ExecCommandOutput, Error>.makeStream()
    var hasReceivedChannelSuccess = false
    var exitCode: Int?

    let handler = ExecCommandHandler(logger: logger) { channel, output in
        switch output {
        case .stdout(let stdout):
            streamContinuation.yield(.stdout(stdout))
        case .stderr(let stderr):
            streamContinuation.yield(.stderr(stderr))
        case .eof(let error):
            if let error {
                streamContinuation.finish(throwing: error)
            } else if let exitCode, exitCode != 0 {
                streamContinuation.finish(throwing: CommandFailed(exitCode: exitCode))
            } else {
                streamContinuation.finish()
            }
        case .channelSuccess:
            if !hasReceivedChannelSuccess {
        //         if let command {
        //             let commandData = SSHChannelData(
        //                 type: .channel,
        //                 data: .byteBuffer(ByteBuffer(string: command + ";exit\n"))
        //             )
        //             channel.writeAndFlush(commandData, promise: nil)
        //         }
                hasReceivedChannelSuccess = true
            }
        case .exit(let status):
            exitCode = status
        }
    }

    let channel = try await eventLoop.flatSubmit {
        let createChannel = self.eventLoop.makePromise(of: Channel.self)
        self.session.sshHandler.createChannel(createChannel) { channel, _ in
            channel.pipeline.addHandlers(handler)
        }

        self.eventLoop.scheduleTask(in: .seconds(15)) {
            createChannel.fail(CitadelError.channelCreationFailed)
        }

        return createChannel.futureResult
    }.get()

    for envRequest in envRequests {
        try await channel.triggerUserOutboundEvent(envRequest)
    }

    if let ptyrequset = ptyRequset {
        try await channel.triggerUserOutboundEvent(ptyrequset)
    }

    try await channel.triggerUserOutboundEvent(SSHChannelRequestEvent.ShellRequest(
        wantReply: true
    ))

    return (channel, stream)
}

`
Do this at call time
`
class SSHTerminalViewManage {
static let shared = SSHTerminalViewManage()
private init() {

}

var sshTermInstance: SshTerminalView?

public func getSSHTerminalView(client: SSHClient) -> SshTerminalView {
    if let sshTermInstance = sshTermInstance {
        return sshTermInstance
    }
    let sshterm = SshTerminalView(frame: NSRect.zero)
    sshTermInstance = sshterm
    Task {
        try await client.withTTY(
            envRequests:[SSHChannelRequestEvent.EnvironmentRequest(wantReply: true, name: "LANG", value: "en_US.UTF-8")],
            ptyRequset: SSHChannelRequestEvent.PseudoTerminalRequest(
                wantReply: true,
                term: "xterm",
                terminalCharacterWidth: 80,
                terminalRowHeight: 24,
                terminalPixelWidth: 0,
                terminalPixelHeight: 0,
                terminalModes: .init([.ECHO: 1])
            )

        ) {
            ttyOutput, ttyStdinWriter in
            await sshterm.seTtyStdin(ttyStdinWriter)
            try await withThrowingTaskGroup(of: Void.self) { group in

                group.addTask {
                    for try await value in ttyOutput {
                        switch value {
                        case let .stdout(stdout):
                            var mutableStdout = stdout
                            if let bytes = mutableStdout.readBytes(length: mutableStdout.readableBytes) {
                                // debugPrint(bytes)
                                let byteArray: ArraySlice<UInt8> = bytes[...]
                                await sshterm.feed(byteArray: byteArray)
                            }

                        case let .stderr(stderr):
                            var mutableStderr = stderr
                            if let bytes = mutableStderr.readBytes(length: mutableStderr.readableBytes) {
                                // debugPrint(bytes)
                                let byteArray: ArraySlice<UInt8> = bytes[...]
                                await sshterm.feed(byteArray: byteArray)
                            }
                        }
                    }
                }

                try await group.next()
                group.cancelAll()
            }
        }
    }
    return sshterm
}

}
`
This allows arbitrary Settings to be passed in at call time based on the user's needs, which worked perfectly in my requirements scenario. Of course, I'm just a beginner in swift. Is it possible to design an api this way?

I've updated the PR to have a withPTY call


grpcio package missing in requirements.txt

Minor

Thanks! This is fixed by https://github.com/src-d/ast2vec/pull/87/commits/823a9554cd207586ba04babcbd917dfccdf0cbbb Not closing until merged.

Merged: https://github.com/src-d/ast2vec/pull/87/


Change extension to plugin to match JetBrains Marketplace vernacular

also link to the plugin so user doesn't have to search

thanks!


Is this library dead?

this library is used in a react native package I'm trying to test, whenever i run the app after installing that package I'm getting the following error:
Could not resolve cn.aigestudio.wheelpicker:WheelPicker:1.0.3.
> Could not get resource 'https://www.jitpack.io/cn/aigestudio/wheelpicker/WheelPicker/1.0.3/WheelPicker-1.0.3.pom'.
> Could not GET 'https://www.jitpack.io/cn/aigestudio/wheelpicker/WheelPicker/1.0.3/WheelPicker-1.0.3.pom'. Received status code 401 from server: Unauthorized
Is there any solution for this issue, or is this library dead and I have to look for something else?

+1

happened to me as well but it is fixed now. not sure if that's the case for you.
i don't trust this library anymore though, i should implement it myself 😂

this artifact is not located on 'jitpack', it is located at Spring Plugins repository (https://repo.spring.io/plugins-release/) which is private
It would be possible to move to a public repository?

It is in this repository.
https://maven.scijava.org/content/repositories/public/cn/aigestudio/wheelpicker/WheelPicker/1.0.3/

Just inline it into your own project. Repo dependency is not an issue anymore ;)

Just inline it into your own project. Repo dependency is not an issue anymore ;)

Can you tell me please how to do that

Can you tell me please how to do that
Clone the repo, copy the folder of the library source code into your own project as "wheelpicker" and then add include :wheelpicker in your Gradle build file.

Can you tell me please how to do that

Clone the repo, copy the folder of the library source code into your own project as "wheelpicker" and then add include :wheelpicker in your Gradle build file.

Can you please be more specific about what I need to do to fix this issue.
been trying to fix this issue since 2 weeks.

Anyone facing the same issue? I managed to fix the issue by following the below steps.
Download the .aar file from (https://maven.scijava.org/content/repositories/public/cn/aigestudio/wheelpicker/WheelPicker/1.0.3/)
Create a folder named libs (node_modules\react-native-wheel-datepicker\android\libs) and place the downloaded .aar file inside this folder.
Replace (implementation "cn.aigestudio.wheelpicker:WheelPicker:1.0.3") with (implementation files("libs/WheelPicker-1.0.3.aar")) in build.gradle (node_modules\react-native-wheel-datepicker\android\build.gradle)

Can you tell me please how to do that

Clone the repo, copy the folder of the library source code into your own project as "wheelpicker" and then add include :wheelpicker in your Gradle build file.

Thank you so much
in my case, I download the source from https://maven.scijava.org/content/repositories/public/cn/aigestudio/wheelpicker/WheelPicker/1.1.2/
and add it to the package under node_modules
also, I need to get some missing sources from
https://github.com/AigeStudio/WheelPicker/tree/main/WheelPicker/src/main/res
and save the changes with patch-package


I cannot reset my default system settings after uninstall your app

I try to install your app on my device Huawei Mate 10 Pro, but it work partly, because the device keep always on the screen, but i cannot set any timeout neither with its app nor with the settings. Now i decide to unistall this app and i cannot open anymore the display setting. Please help me. I want to reset my phone.

The app does not change any of the phone settings. It just gets a wakelock from the system which prevents the system from turning the screen off. This could be bugged but I don't think the problem is because of Caffeine.
A simple restart to your phone should solve the issue if that's the problem. Sorry for not being able to to anything more.

i resolve it now. The restart of phone not work, but fortunally i use the optimise menu of battery's settings and it suggest me to reduce the timeout to 15 second, so i press the optimise's button and now all works. Try to make the app less invasive and reversible.

The app actually does nothing to invade your phone. As I said before, should be an OS bug or something. Sorry for the trouble.


Expose emval as a Rust Crate

Description:
I propose exposing emval as a standalone Rust crate to make its email validation capabilities accessible to Rust developers. This would broaden the library's usage beyond Python, allowing for integration into Rust-based applications and systems.
Key Benefits:

Wider Reach: Enable use in Rust ecosystems.
Performance: Leverage Rust's speed directly for email validation.
Flexibility: Allow for direct integration into Rust projects like web servers, CLI tools, and APIs.

Next Steps:
Refactor the library to expose a Rust API alongside the Python bindings and publish it to crates.io. Documentation and examples can be added to facilitate adoption.

Merged 🎉


documize-community: init at 2.2.1

Motivation for this change
Documize is an open-source alternative for wiki software like Confluence
based on Go and EmberJS. This patch adds the sources for the community
edition[1], for commercial their paid-plan[2] needs to be used.
For commercial use a derivation that bundles the commercial package and
contains a $out/bin/documize can be passed to
services.documize.enable.
The package compiles the Go sources, the build process also bundles the
pre-built frontend from gui/public into the binary.
The NixOS module generates a simple systemd unit which starts the
service as a dynamic user, database and a reverse proxy won't be
configured.
[1] https://www.documize.com/get-started/
[2] https://www.documize.com/pricing/
Things done

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

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[x] 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 nix-review --run "nix-review wip"
[x] 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
[x] Fits CONTRIBUTING.md.

@GrahamcOfBorg test documize


zip slip vulnerability

https://security.snyk.io/research/zip-slip-vulnerability
https://github.com/snyk/zip-slip-vulnerability

How to fix? 🤔

change filter: NameFilter = AllPassFilter default param?

https://github.com/sbt/io/blob/c0e002311523e1597063f7d75650a3bdb7fe2627/io/src/main/scala/sbt/io/IO.scala#L367-L386

add explicit filter param in user code?

https://github.com/sbt/sbt/blob/da41144f37c32cbc0a64e3a91b505ce568869166/main/src/main/scala/sbt/Resolvers.scala#L44
https://github.com/sbt/sbt/blob/da41144f37c32cbc0a64e3a91b505ce568869166/main/src/main/scala/sbt/internal/RemoteCache.scala#L416

another solutions?

I have a fix here - https://github.com/sbt/io/pull/360


Script isn't working!

I am getting the following error when I run the script manually.
Traceback (most recent call last):   File "./main.py", line 21, in <module>     gi.require_version('Notify', '0.7')   File "/usr/lib/python2.7/dist-packages/gi/__init__.py", line 102, in require_version     raise ValueError('Namespace %s not available' % namespace) ValueError: Namespace Notify not available

Read this documentation on libnotify if you get the same errors.
I installed the development packages too, it finally got working. Helped me out.
http://www.devdungeon.com/content/desktop-notifications-python-libnotify


multi: use Connect RPC for CUSF enforcer, move Dart gen to own folder

Use Connect RPC instead of gRPC for connecting to CUSF enforcer. Let's us drop the dependency on gRPC!
Split Dart generation out into its own generate file. It's more clean when each language has their own gen file, when there's different paths that should be generated for different languages.

Didn't know you could use connect like this, nice!


feat: implement single depth score computing

very simple way of looking at all possible moves, only considering the first level of moves

Opponent
Wins
Draws
Losses
Commit

EvilBot
80
811
109
cddf1f6

Stockfish (5)
4
73
423
cddf1f6

Stockfish (0)
1
91
408
cddf1f6

Stockfish (2)
2
103
395
cddf1f6

sorry - this is just way too bad :/


Class and file conventions

the status indicator does not follow the class convention.

busylight.lights.plantronics import status_indicator should be Status_Indicator

the fit statusb does not follow the file convention

fit_statUSB.py should be fit_statusb.py

conventions are extracted from the codebase

Pull request?

Also I can't find any instances of busylight.lights.plantronics import status_indicator in the code base.

I was wrong (properly need so sleep), there is indeed Status_Indicator.


nft: rename to useNftRewards and add hover on button

What does this PR do and why?
Provide a description of what this PR does. Link to any relevant GitHub issues, Notion tasks or Discord discussions.
Screenshots or screen recordings
If applicable, provide screenshots or screen recordings to demonstrate the changes.
Acceptance checklist

[ ] I have evaluated the Approval Guidelines for this PR.
[ ] (if relevant) I have tested this PR in all supported browsers.
[ ] (if relevant) I have tested this PR in dark mode and light mode (if applicable).

Current dependencies on/for this PR:

main

PR #3663

PR #3664

PR #3665

PR #3674

PR #3675

PR #3676

PR #3681

PR #3682   👈

This comment was auto-generated by Graphite.

@wraeth-eth started a stack merge that includes this pull request via Graphite.

Graphite rebased this pull request as part of a merge.

@wraeth-eth merged this pull request with Graphite.


display expire dates during order + refactor counting expire date

Codecov Report

Merging #93 into master will decrease coverage by 0.04%.
The diff coverage is 63.15%.

@@            Coverage Diff             @@
##           master      #93      +/-   ##
==========================================
- Coverage   76.41%   76.36%   -0.05%
==========================================
  Files          36       36
  Lines        1819     1828       +9
==========================================
+ Hits         1390     1396       +6
- Misses        429      432       +3

Impacted Files
Coverage Δ

plans/views.py
35.27% <0%> (-0.25%)
:arrow_down:

plans/models.py
82.44% <70.58%> (+0.05%)
:arrow_up:

Continue to review full report at Codecov.

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


convert TestNativeHistogram_Sum_Count_Add_AvgOperator into testing framework

related #13563

@beorn7 @NeerajGartia21
The pr is ready for review, thanks!

Looks good to me! But it would be better if you can delete the converted tests from engine_test.go file.


Add preview for pipeline tasks

Fix: #150
This PR add Open Pipeline preview to the Side command in editor title bar, which open pipeline preview webview.
In webview used cytoscape with dagre plugin (to render DAG tree), JS lib to render pipeline task execution diagram
Current demo:

First diagram on the demo is equal to diagram from tekton documentation
Things to do:

[x] Implement webview persistence, now all content lost when preview tab switched
[ ] Implement support of vscode theme switching
[x] Update diagram on pipeline editing

Codecov Report

Merging #160 into master will decrease coverage by 3.9%.
The diff coverage is 44.15%.

@@            Coverage Diff             @@
##           master     #160      +/-   ##
==========================================
- Coverage   75.73%   71.82%   -3.91%
==========================================
  Files          28       33       +5
  Lines        1624     1853     +229
  Branches      253      288      +35
==========================================
+ Hits         1230     1331     +101
- Misses        394      522     +128

Impacted Files
Coverage Δ

src/util/disposable.ts
10.52% <10.52%> (ø)

src/commands.ts
100% <100%> (ø)
:arrow_up:

src/extension.ts
88% <100%> (+0.37%)
:arrow_up:

src/pipeline/preview.ts
15.62% <15.62%> (ø)

src/pipeline/preview-manager.ts
15.62% <15.62%> (ø)

src/pipeline/pipeline-graph.ts
19.23% <19.23%> (ø)

src/pipeline/pipeline-preview.ts
68.18% <68.18%> (ø)

src/yaml-support/tkn-yaml.ts
97% <95.23%> (-0.14%)
:arrow_down:

... and 4 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 9919986...273c331. Read the comment docs.

cc @vdemeester @sthaha

Nice ! :heart_eyes_cat:

Update diagram preview on pipeline change in editor demo:

cc @siamaksade

Theme switching demo:

Theme switching demo:


Review all provided venue documents to locate fire safety and evacuation information.

Manchester: DF Capital document updated.


Fix TypeError: viewValue.match is not a function

This fixes an TypeError that happenes when the model is changed outside of the scope of the angularUnitConverter directive.
That was the case in my setup when the $resource object was saved and replaced with the recieved result from the REST api.
Test results:
Running "jasmine:src" (jasmine) task
Testing jasmine specs via PhantomJS

 Testing directive
   ✓ Should convert 25mm to 0.9842519685in
   ✓ Should convert 0.9842519685mm to 25in
   ✓ Should convert 25in to 635mm
   ✓ Should convert 635mm to 25in
   ✓ Should convert 12mi to 1931220cm
   ✓ Should convert 11mg to 0.00002425084884lb
   ✓ Should convert 0.00002425084884lb to 11mg
   ✓ Should convert 2.3kg to 81.1301125oz
   ✓ Should convert 81.13011255oz to 2.3kg

9 specs in 0.118s.
>> 0 failures

Done.

Just noticed that this needs further evaluation.
I managed to break it again by returning a viewValue parsed by Number.parseFloat(). I'm currently fiddling with locales and add my own $parsers and $formatters before. This works nice if the value is converted to String before angularUnitConverter gets it.
Basically this:
 return ''+viewValue; //converted

This happens when you set input(type="number") on the element too.

Ok, please submit a new PR when you're done so I can check it!


Bug: DELETE_CHARACTER_COMMAND pushes meaningless history

Lexical version: latest
Steps To Reproduce

press DELETE or BACKSPACE on the very first position (offset === 0) with collapsed selection, without any content and sibling.
then it pushes additional history per each DELETE_CHARACTER_COMMAND that has done nothing.

Link to code example: can reproduce it on playground.

The current behavior
https://github.com/facebook/lexical/assets/40269597/44603988-7473-4cf3-b74f-e019b8d6e43c
The expected behavior
It should work as it has some content:
DELETE or BACKSPACE command which does nothing doesn't push history
https://github.com/facebook/lexical/assets/40269597/ebce08ac-4cc1-4ef0-a682-705d889a4f7a

And also collapseAtStart of HeadingNode acts a bit weird for me to see it:
On collapseAtStart, it is implemented to replace with a new one when it has child. So it ends up with pushing history that does nothing as well.
https://github.com/facebook/lexical/assets/40269597/4908a9e4-da76-43fe-a654-21406e141ad1


[WIP] Massive architecture changes

Checklist:

[x] Move all frontend codebase to https://github.com/twi-project/twi-client
[x] Remove Next.js from project
[x] Move src/system and src/server to src directory and refactor all codebase
[x] Remove unused babel polyfills and presets. Now we're supporting Node.js from 7.6.x
[x] Restore build and CI commands.
[ ] Rewrite CLI, again 🌚

Codecov Report

Merging #13 into master will increase coverage by 3.92%.
The diff coverage is 100%.

@@           Coverage Diff            @@
##           master    #13      +/-   ##
========================================
+ Coverage   96.07%   100%   +3.92%
========================================
  Files          11      1      -10
  Lines         204      9     -195
========================================
- Hits          196      9     -187
+ Misses          8      0       -8

Impacted Files
Coverage Δ

src/core/helper/util/invariant.js
100% <100%> (ø)

bin/helper.js

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 b6d480f...6f274b8. Read the comment docs.


Add note that NU1605 is elevated to an error

Fixes https://github.com/NuGet/docs.microsoft.com-nuget/issues/2638

Docs Build status updates of commit 44668ac:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/reference/errors-and-warnings/NU1605.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

This is not ready to review.
No clue why GH automatically requested the review. I just created the branch and something to make sure I get it done.

Docs Build status updates of commit 047f9ef:
:warning: Validation status: warnings

File
Status
Preview URL
Details

docs/reference/errors-and-warnings/NU1605.md
:warning:Warning
View
Details

docs/reference/errors-and-warnings/NU1605.md

Line 98, Column 96: [Warning: file-not-found - See documentation] Invalid file link: '....\consume-packages\Package-References-in-Project-Files.md'.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings or suggestions unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 191758a:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/reference/errors-and-warnings/NU1605.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 7adb2fa:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/reference/errors-and-warnings/NU1605.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit a42f997:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/reference/errors-and-warnings/NU1605.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


--!strict type checking and small changes

Adds --!strict typechecking, any is used where something can't be typed.
Changes string pattern PC: %s to PC: %d
Simplified AND, OR implementations

We want to eventually fully type annotate Fiu and add strict typechecking with it, the way you did it with any being used doesn't really work for us. Also, could you avoid formatting it? We liked the way it was formatted before so we want to keep that the same.
I'll merge it when you make these changes I mentioned, specifically for the simplified AND, OR implementations which do look good to me.

yeah LGTM!


Improve performance

Replace Character with primitive char.
Converted ArrayList<String> & StringBuffer into StringBuilder
Dropped double and Math.pow for 1 << num.

This pull use <> operator not support in JDK6, thus change the original project jdk version compliance. Will a compliance to JDK6 be more appropriate?

Done!


Text From MP TG do not display

Text components generated from the multi point tactical graphic renderer are not being displayed.

if (cameraAltitude <= this.getMapInstance().getFarDistanceThreshold()) {
for(Renderable renderable: renderableLabelList) {
renderable.render(renderContext);
}
}
Above code hides it. Once you zoom in, you will see it.


nodejs 4.2.1 AccessDenied

Hello, today I updated to El Capitan, while runinng boxen it fails to install node 4.2.1, I've started it with --debug and noticed that it fails after donwloading the prebuilt image from https://boxen-downloads.s3.amazonaws.com/nodes/Darwin/default/10.11/4.2.1.tar.bz2
I've checked it with my browser and it shows:
AccessDeniedAccess Denied9E514C393D258937KAByFUmF8fgAwQT7p4Ouv4VYapUzlgJhNPFizDViB3VsQ4GBULR9YiRuLaFVK+8I
relevant output parts:
Debug: Trying to download precompiled node for 4.2.1
Debug: Executing 'curl --silent --fail https://boxen-downloads.s3.amazonaws.com/nodes/Darwin/default/10.11/4.2.1.tar.bz2 >/tmp/node-4.2.1.tar.bz2 && tar xjf /tmp/node-4.2.1.tar.bz2 -C /opt/nodes'
Debug: Executing '/opt/boxen/node-build/bin/node-build 4.2.1 /opt/nodes/4.2.1'
Error: install failed with a crazy error: Execution of '/opt/boxen/node-build/bin/node-build 4.2.1 /opt/nodes/4.2.1' returned 1: node-build: definition not found: 4.2.1 ["/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/util/execution.rb:203:in `execute'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/provider.rb:115:in `execute'", "/opt/boxen/repo/shared/nodejs/lib/puppet/provider/nodejs/nodebuild.rb:66:in `build_node'", "/opt/boxen/repo/shared/nodejs/lib/puppet/provider/nodejs/nodebuild.rb:45:in `create'", "/opt/boxen/repo/shared/nodejs/lib/puppet/type/nodejs.rb:5:in `block (3 levels) in <top (required)>'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/property.rb:197:in `call_valuemethod'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/property.rb:498:in `set'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/property.rb:581:in `sync'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/transaction/resource_harness.rb:204:in `sync'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/transaction/resource_harness.rb:128:in `sync_if_needed'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/transaction/resource_harness.rb:81:in `perform_changes'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/transaction/resource_harness.rb:20:in `evaluate'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/transaction.rb:204:in `apply'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/transaction.rb:217:in `eval_resource'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/transaction.rb:147:in `call'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/transaction.rb:147:in `block (2 levels) in evaluate'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/util.rb:327:in `block in thinmark'", "/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/benchmark.rb:296:in `realtime'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/util.rb:326:in `thinmark'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/transaction.rb:147:in `block in evaluate'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/graph/relationship_graph.rb:118:in `traverse'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/transaction.rb:138:in `evaluate'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/resource/catalog.rb:169:in `block in apply'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/util/log.rb:149:in `with_destination'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/transaction/report.rb:112:in `as_logging_destination'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/resource/catalog.rb:168:in `apply'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/configurer.rb:118:in `block in apply_catalog'", "/opt/boxen/repo/shared/boxen/lib/puppet/provider/package/hax.rb:12:in `benchmark'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/configurer.rb:117:in `apply_catalog'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/configurer.rb:222:in `run_internal'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/configurer.rb:132:in `block in run'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/context.rb:64:in `override'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet.rb:244:in `override'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/configurer.rb:131:in `run'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/application/apply.rb:297:in `apply_catalog'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/application/apply.rb:231:in `block in main'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/context.rb:64:in `override'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet.rb:244:in `override'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/application/apply.rb:193:in `main'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/application/apply.rb:154:in `run_command'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/application.rb:384:in `block (2 levels) in run'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/application.rb:510:in `plugin_hook'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/application.rb:384:in `block in run'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/util.rb:488:in `exit_on_fail'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/application.rb:384:in `run'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/util/command_line.rb:146:in `run'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/util/command_line.rb:92:in `execute'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/bin/puppet:8:in `<top (required)>'", "/opt/boxen/repo/bin/puppet:16:in `load'", "/opt/boxen/repo/bin/puppet:16:in `<main>'"]
Error: /Stage[main]/People::Nolith/Nodejs::Version[4.2.1]/Nodejs[4.2.1]/ensure: change from absent to present failed: install failed with a crazy error: Execution of '/opt/boxen/node-build/bin/node-build 4.2.1 /opt/nodes/4.2.1' returned 1: node-build: definition not found: 4.2.1 ["/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/util/execution.rb:203:in `execute'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/provider.rb:115:in `execute'", "/opt/boxen/repo/shared/nodejs/lib/puppet/provider/nodejs/nodebuild.rb:66:in `build_node'", "/opt/boxen/repo/shared/nodejs/lib/puppet/provider/nodejs/nodebuild.rb:45:in `create'", "/opt/boxen/repo/shared/nodejs/lib/puppet/type/nodejs.rb:5:in `block (3 levels) in <top (required)>'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/property.rb:197:in `call_valuemethod'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/property.rb:498:in `set'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/property.rb:581:in `sync'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/transaction/resource_harness.rb:204:in `sync'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/transaction/resource_harness.rb:128:in `sync_if_needed'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/transaction/resource_harness.rb:81:in `perform_changes'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/transaction/resource_harness.rb:20:in `evaluate'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/transaction.rb:204:in `apply'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/transaction.rb:217:in `eval_resource'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/transaction.rb:147:in `call'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/transaction.rb:147:in `block (2 levels) in evaluate'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/util.rb:327:in `block in thinmark'", "/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/benchmark.rb:296:in `realtime'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/util.rb:326:in `thinmark'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/transaction.rb:147:in `block in evaluate'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/graph/relationship_graph.rb:118:in `traverse'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/transaction.rb:138:in `evaluate'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/resource/catalog.rb:169:in `block in apply'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/util/log.rb:149:in `with_destination'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/transaction/report.rb:112:in `as_logging_destination'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/resource/catalog.rb:168:in `apply'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/configurer.rb:118:in `block in apply_catalog'", "/opt/boxen/repo/shared/boxen/lib/puppet/provider/package/hax.rb:12:in `benchmark'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/configurer.rb:117:in `apply_catalog'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/configurer.rb:222:in `run_internal'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/configurer.rb:132:in `block in run'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/context.rb:64:in `override'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet.rb:244:in `override'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/configurer.rb:131:in `run'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/application/apply.rb:297:in `apply_catalog'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/application/apply.rb:231:in `block in main'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/context.rb:64:in `override'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet.rb:244:in `override'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/application/apply.rb:193:in `main'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/application/apply.rb:154:in `run_command'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/application.rb:384:in `block (2 levels) in run'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/application.rb:510:in `plugin_hook'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/application.rb:384:in `block in run'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/util.rb:488:in `exit_on_fail'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/application.rb:384:in `run'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/util/command_line.rb:146:in `run'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/lib/puppet/util/command_line.rb:92:in `execute'", "/opt/boxen/repo/.bundle/ruby/2.0.0/gems/puppet-3.7.1/bin/puppet:8:in `<top (required)>'", "/opt/boxen/repo/bin/puppet:16:in `load'", "/opt/boxen/repo/bin/puppet:16:in `<main>'"]

@dgoodlad @mikemcquaid I've got no idea who owns these AWS buckets. Are you able to point me in the right direction here?

They are owned by GitHub but GitHub is no longer actively maintaining Boxen. Thoughts on what to do?

Do we have usage/cost details fot this bucket? Depending on the costs associated perhaps it's better to look at an approach of using the existing prebuilt binaries available and adjusting to that?

@jacobbednarz I do not. I would suggest adapting to an approach that doesn't need GitHub's bucket, yeh.

Depending on the costs I would see if it was worth pulling into it's own AWS account and seeing if Envato was interested in covering the costs since we use it internally.
I'll check out what precompiled versions are available and whether it's a suitable enough to do a swap over.

I'm a bit of an AWS noob so you'll need to let me know how to check e.g. specific costs for these files.

Without knowing too much about the setup in place, you'll need to get the usage (probably through cloudwatch) and then plug the values into http://calculator.s3.amazonaws.com/index.html. AWS is pretty crap with granular cost analysis below the service type level.

Also check out the AWS Billing section of the account - there might be more details in there to assist with this.

Closing due to this issue being stale. If you can still reproduce or would like to continue this discussion, please let me know and I'll reopen this.


Vua fails to download documentation

When downloading and building the documentation content Visual Studio Code returns the following error:

Did you download it here or via VSCode marketplace?

via the VSCode marketplace. I think I found out whats going on btw. It seems to happen when it renames data-temp ->data

If I pause execution, rename data-temp -> data and then add the .complete file it works fine

This was an issue due to the way writeFile was called, rather than providing a string/bytes like object, an object was passed. This has been corrected and a new update has been pushed v0.2.10.


Gabriella/ppp and fix diagram in dg

Codecov Report

Merging #280 into master will decrease coverage by 24.86%.
The diff coverage is 43.49%.

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


Using AndroidWorld with physical Android devices

Hello there, thank you for your impressive work on the AndroidWorld.
I've been running AndroidWorld and its agents on emulators successfully. But I wonder if there'd be any ways to make it work on physical devices as well?
The problem here should be the setup of a grpc bridge between the device and host machine, which is impossible to bypass if we wanna to access to the a11y tree I guess.
Do you have any experiences doing this? Any guidance would be appreciated. Thank you!

Hello @derekywk, I tested AndroidEnv (the underlying infra in AndroidWorld) on physical devices and it did work. As you said, you will need gRPC open (it's an egress connection from the point of view of the device), but once that's done, it should be able to connect.
We did have a few issues with the internal firewall in Android blocking connections in some devices, but after you disable that it should work.
Cheers,
Daniel

Hi Daniel, thank you for your prompt reply. Glad to hear that it worked. For the gRPC connection, since I don't have much experiment on such setup, may I ask if there is any opensource codebase that you used for the test? Thanks in advance!
Cheers,
Derek

Hi again, @derekywk. There was nothing special to handle gRPC. A11yGrpcWrapper already handles connecting to the device via gRPC and fetching A11y trees. It's mostly a configuration of the device itself to ensure that the connection can be established.

Hi Daniel, thank you for your previous response. I have installed the AccessibilityForwarder on my physical device, and, by default, the device doesn't have gRPC open. I wonder if the _configure_grpc function (specifically the following command) in A11yGrpcWrapper is sufficient to set up the gRPC server on the device from scratch?
adb shell am broadcast -a accessibility_forwarder.intent.action.SET_GRPC --ei port <port_number> -n com.google.androidenv.accessibilityforwarder/com.google.androidenv.accessibilityforwarder.FlagsBroadcastReceiver
My device still fails to connect via grpc.secure_channel() in _connect_to_emulator within emulator_simulator.py. I would greatly appreciate any guidance you could provide on resolving this issue.

Hi @derekywk, that function should set up gRPC, yes.
The reason it is this way is because, as of now, running gRPC servers on Android is not supported, so we run the gRPC server in Python (spawned by A11yGrpcWrapper) and the client in Android (AccessibilityForwarder app). There is no "discovery" mechanism, so this broadcast message tells the app which host and port number to connect to.
@crawles , we should increase the priority of releasing the source code of AccessibilityForwarder so that other people can see what goes on in there, and also to modify it (e.g. adding log lines etc).

Hi @kenjitoyama, thank you for your clarification. I now have the gRPC server and client set up, but the client on the physical device is still unable to send messages, whereas the same setup works on an emulator.. Below is the log from device. I suspect this might be related to proxy or internal firewall in Android you mentioned earlier. Since <IP_ADDRESS> only works for emulator, should we simply replace it with the local IPv4 address along with port forwarding? Also, to disable internal firewall, would rooting be absolutely necessary? Thanks in advance!

gRPC StatusException; are you sure networking is turned on?
extra: exception ['io.grpc.StatusException: UNAVAILABLE: End of stream or IOException']
tagSocket(101) with statsTag=0xffffffff, statsUid=-1
tagSocket(99) with statsTag=0xffffffff, statsUid=-1
tagSocket(100) with statsTag=0xffffffff, statsUid=-1

Hi there. I have successfully resolved the issue by adding an extra host <IP_ADDRESS> and using adb reverse. Thank you for your assistance and for releasing the source code of AccessibilityForwarder. Cheers! :)

Hi @derekywk , thanks for reporting it back to let us know that it worked. Good luck with your research!

Hi Dear @derekywk, I am currently exploring the use of physical devices. Would it be possible for you to share your code related to this aspect? Thanks a lot!!!

Hi @MaginaDai, you can change the server address with -es host <host>.
We really need to open source the code for the app, then it'll be clear how to do these things. For now please try with that flag.
Thanks

Hi @MaginaDai, you can change the server address with -es host <host>.
We really need to open source the code for the app, then it'll be clear how to do these things. For now please try with that flag.
Thanks

Hi,
Thanks for your reply.  I have set with --es host <host_ip>. I have also used adb reverse tcp:8554 tcp:8554 to set up the forward path from the device to the server.  Notice that in a11y_grpc_wrapper.py, the port is set as an arbitrary unused port (not 8554). I manually set it to 8554. But found there is still some error:
0-16 13:52:44.448 16370 16397 I AndroidRLTask: sending (blocking) gRPC request for tree.
10-16 13:52:45.455 16370 16397 W AndroidRLTask: gRPC TimeoutCancellationException; are you sure networking is turned on?
Could you please share some insights on this?

As a temporary workaround, until the forwarder is resolved, you can set the A11yMethod to use UIAUTOMATOR here. This bypasses the a11y_grpc_wrapper.py logic. However it is a bit slower, but should get you going

Hi, sorry this will be hard to debug from our end. In a nutshell, the accessibility forwarder app must be able to reach the grpc server running within the a11ygrpcwrapper. From our experience, most of the problems were related to the device's firewall blocking egress requests.
I am open sourcing the app in this pull request: https://github.com/google-deepmind/android_env/pull/232
You are welcome to compile it yourself and try it with more logging and different settings.

Hi, sorry this will be hard to debug from our end. In a nutshell, the accessibility forwarder app must be able to reach the grpc server running within the a11ygrpcwrapper. From our experience, most of the problems were related to the device's firewall blocking egress requests.
I am open sourcing the app in this pull request: google-deepmind/android_env#232
You are welcome to compile it yourself and try it with more logging and different settings.

Hi thanks for your quick reply.
During the debugging, another problem is we meet is that our PC sometimes fail to build the gRPC connection to the phone in the _connect_to_emulator function in emulator_simulator.py. I notice that the grpc server is initialized at a11y_grpc_wrapper.py, which is executed later than the _connect_to_emulator function. May I confirm whether the logic is correct?
However, this problem sometimes disappears by itself. I have no idea of what is happening

Hi again, I think there's a misunderstanding here. If you're using a physical device, you shouldn't be using EmulatorSimulator since that's for talking to an Android Emulator binary. In the specific case of AndroidWorld and a physical device, the agent can basically run blind wrt pixels and rely solely on a11y trees and events.
If you also need pixels from a physical device, then it would be necessary to grab them via the screen recording functionality (https://developer.android.com/media/grow/media-projection) in an app. But we haven't packaged that in an easy-to-use BaseSimulator implementation. Perhaps that would be a feature request for the AccessibilityForwarder app (but at that point it should probably be called something else), or it could be a separate app that could also connect to Python via gRPC.
Cheers


BUG: optimize: fixed sparse redundancy removal bug

Commit f2c31e3 "ENH: optimize: enhanced redundancy removal
reliability further" changed _remove_redundancy_sparse to
"choose very independent structural column to enter basis rather
than first one that meets tolerance." In practice, this made most
NETLIB benchmarks much slower. Reverted to original column
selection scheme.

Looks like Travis CI failure is not related to linprog.


Why complete helper stop when arguments on cmd

Hello,
I'm working on a tool that emulate an terminal online.
I have a simple dynamic function that list directory dynamically.
Example:
If user write "ls" without anything.
It will print (with autocompleter) the current directory in help.
But if the user writes : ls ..
The action blocks.
I have notice that the problem comes with the line 160 in the file complete_helper.go :
return doInternal(lineCompleter, tmpLine, len(tmpLine), origLine)
When I comment this line, it prints well the directory with new scope "..".
Why this return is here ?
My function =
func (k *Kernel) ListLocalFiles() func(string) []string {
	return func(line string) []string {
		names := make([]string, 0)
		dir, err := filepath.Abs(filepath.Dir(os.Args[0]))

		if err != nil {
			return names
		}

		arr := strings.Fields(line)
		if len(arr) > 1 {
			dir = arr[1]
		}

		files, _ := ioutil.ReadDir(dir)
		for _, f := range files {
			names = append(names, f.Name())
		}

		return names
	}
}

One possible fix (better than commenting line 160) is to do this =
tmpLine := make([]rune, 0, len(line))
	for i := offset; i < len(line); i++ {
		if line[i] == ' ' {
			continue
		}

		tmpLine = append(tmpLine, line[i:]...)

		if strings.Contains(string(line), "..") || strings.Contains(string(line), "/") {
			return doInternal(lineCompleter, nil, 0, origLine)
		}

		return doInternal(lineCompleter, tmpLine, len(tmpLine), origLine)
	}

Because I don't really get what this loop is mean for I just add a little check that if the line contains '..' or '/' then skip return doInternal(lineCompleter, tmpLine, len(tmpLine), origLine)
Explaining this point in details could allow me to work on a better fix (maybe new option in the complete helper ?)


Bug: suggestion of logging out secrets in the circle CI logs in readme

Is there an existing issue for this?

[X] I have searched the existing issues

Orb version
No response
Current behavior
The Readme suggests echoing out secret values I think as a demonstration, however, we should make clear not to do this. Echoing secret values out into circle CI logs does carry some security risks i.e. https://www.nightfall.ai/blog/use-case-ttp-capturing-secrets-from-environment-variables-via-circleci
while i think for us the risk for us is low, i do think its good to let others know so they are aware that this is not a good practice.
Minimum reproduction config
its the readme
Other
No response

Fixed in v1.5.4.


Audio delays in gaming mode

Using the latest version of Bazzite. There appears to be a significant delay in sound effects playing in gaming mode. Once the delay happens, the audio fixes itself but does seem to come back if the steam deck is left by itself for a little while, or if it wakes up from sleep mode.

Should be fixed in the build pushed this morning.

Wonderful to hear. Thank you!


Update Composer dependencies (2020-10-28-00-11)

Visual regression test passed!
View the visual regression test report


new one

Precondition that must be done
This is a sample precondition
Steps to Reproduce:
Step 3  [Pass]
Is a step
First step
Expected Result
First step result
Actual Result
It goes
Step 4  [Pass]
Is a step
Second one
Expected Result
Result
Actual Result
in deed
Step 5  [Pass]
Is a step
Third
Step 6  [Pass]
Is a step
Forth
Expected Result
Expected for fourth

Open Defect in TestQuality

Test Sample test in Run Run 543 (linked to Cycle All tests).


WritableBuffer.FlushAsync should complete if pipe length gets equal to lower max size

Right now less then check is used.

No comments recently. Closing.


#486 - Add git branch to statusbar

Add git branch indicator to status bar

Add getBranch() to Git in Services and expose it to plugins through Oni.services.git

Expose ui icon creation to plugins through Oni.ui.createIcon()

@Galbar: Thanks for picking up after me! Do you think you could potentially model this after the zsh git integration?

@bert88sta: How do you mean?

@Galbar: I'm not sure of the syntax exactly, I believe it's  * to indicate dirty, + to indicate commits or something along those lines. I'll get a link for you.

@Galbar:

Change looks great to me! Thanks @Galbar!
There are a few things we could look at as next steps:

@bert88sta 's feedback regarding additional status info (ie, files modified/uncomitted/etc) . We might be able to get some of this info from the output of the git
Detecting when the branch has changed, since currently we only update on entering a buffer (for example, a user changed branch in the terminal). We could potentially add an event on the Git shared object like branch-changed that the plugin could subscribe to.
A configuration option to enable / disable the statusbar (ie, git.statusBar.enabled)

But IMO we can tackle those points as separate issues and bring in the PR as-is, and continue to build on it. This is something I've missed in my workflow so I'm excited to have it back! Nice work! 👍 👍


Text element misplaced in the navbar of nearby.html page

In the navbar of nearby.html page there is written 'Find Nearby Clinics And Hospital' just below the logo, but I think the sentence is misplaced and I would like to reposition the element so that it would be easily visible to the users, and they would understand the objective of the nearby page.

@tushargupta1504 I would love to resolve the issue ASAP.


Update 0.10 metrics documentation to list upstream_latency

Summary
upstream_latency is a metric that is currently being sent by the logging plugins but such metric isn't listed in the documentation. See https://getkong.org/plugins/statsd/#metrics.

Hi @mgiorgio - please open an issue on that website's repo https://github.com/Mashape/getkong.org/issues or make a PR to improve the relevant pages, like https://github.com/Mashape/getkong.org/blob/master/app/plugins/statsd.md - thanks!


Selecting JIRA ticket takes you to https://digitransit.atlassian.net/ regardless of search URL

This appears to be hard coded so whilst I can search another JIRA it always takes me to a ticket at that URL

Hi, sorry it took some time to fix this. This is fixed in 1.0.0.
Note, you have to configure Jira search REST url like this https://{host.domain}/
e.g. https://issues.sonatype.org/


Support for buffer/texture memory mapping

Following @eddyb request and @nical comment, we need to provide the mapping ability for our GPU containers. RAII would be great.

There's some concerns with GL versions on buffer mapping. It seems the mapping system is implemented for the GL backend, but does it handle ES2 which has no mapping method or GL2 which doesn't accept glMapBufferRange?

I believe this is implemented now in a series of PRs by @Bastacyclop , finishing on the screenshot logic in the example in #1478


Font Detector

Description of the new feature / enhancement
It can detect font from anywhere like from a Video or from a Website like taking a screenshot.
Scenario when this would be used?
It can be used anywhere we liked the font but don't know which font is that
Supporting information
No response

/dup #20670


Use plugin linking, instead of descriptors

This PR removes all functionality that does not exist in kubectl v1.12:

Plugin descriptors
KUBECTL_* env variables
Change resolve plugin function
Add linking functions to install,update,remove,list

Codecov Report

Merging #42 into master will decrease coverage by 0.45%.
The diff coverage is 34.93%.

@@            Coverage Diff             @@
##           master      #42      +/-   ##
==========================================
- Coverage   42.05%   41.59%   -0.46%
==========================================
  Files          12       12
  Lines         478      488      +10
==========================================
+ Hits          201      203       +2
- Misses        243      247       +4
- Partials       34       38       +4

Impacted Files
Coverage Δ

pkg/installation/move.go
27.96% <0%> (+1.13%)
:arrow_up:

pkg/installation/upgrade.go
0% <0%> (ø)
:arrow_up:

pkg/environment/environment.go
24.24% <23.07%> (-27.38%)
:arrow_down:

pkg/installation/install.go
21.53% <40%> (+21.53%)
:arrow_up:

pkg/installation/util.go
60% <52.17%> (+1.09%)
:arrow_up:

Continue to review full report at Codecov.

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

Thanks a lot @lbb.
I think the comments are addressed, although I might be missing a few. If we catch them again we can send smaller patches.
Did I check off the right items in #33?


Broken Deployment

Hi @dinxsh
When I checkout where you deployed, I'm greeted by this nice little broken deployment message. Might wanna look into it.

Sorry for the delayed response.
I'm Sri Vamsi Rajesh, a programmer who also worked on texuto. Due to Vercel's 15-day free trial offer for organization repo hosting, the deployment is broken. And from this point forward, we won't host it through any other hosting company.
Thank you
@Itsfoss0


Fix issue #795

/ok-to-test
/lgtm
thanks @jr00n !

4.0 install did not get off the ground with the last e2e-aws-jenkins failure


RBAC: Make it possible to use regex for values

Issue submitter TODO list

[X] I've searched for an already existing issues here
[X] I'm running a supported version of the application which is listed here and the feature is not present there

Is your proposal related to a problem?
No response
Describe the feature you're interested in
RBAC to support regex values, so you could use<EMAIL_ADDRESS>emails to match the roles without having to populate the users with roles
Describe alternatives you've considered
No response
Version you're running
27c5e61
Additional context
No response

TODO:

OauthAuthorityExtractor: consider subject.getValue() being regex values
Consider building patterns for subject values the same way they're built for Permission#compiledValuePattern

Hello @Haarolean,
this issue is already assigned but i would like to propose a PR as we're waiting this feature.
How to get authorized to push a new branch ?

@francoisvandenplas you can fork the repo and raise a PR

OK
should other extractors support regex values ?


started different box types through templates

Also sorry to be a pedant but can we clang-format? I can add it as a pre-commit hook if you want.


Support custom Docker registry

Ending support for Centos 7 - vagrant test currently fails and won't be fixed
Add configuration option to pull Docker image from a custom registry. See README for the new variables.

also remove centos7 from vagrant file and test.yml


Sort alphabetically by name

This is something we do quite a lot at DefinitelyTyped.
E.g.  the following:
	interface IWorkspaceViewStatic {
		new ():IWorkspaceView;

		version: number;
		configDefaults:any;
		content():any;
    }

will become:
	interface IWorkspaceViewStatic {
		new ():IWorkspaceView;

		configDefaults:any;
		content():any;
		version: number;
    }

Only relevant for .d.ts file IMHO.

What does this mean?

@csnover added an example :+1:


fix the problem that redis vector store will change metadata with val…

Description: This commit fixed the problem that Redis vector store will change the value of a metadata from 0 to empty when saving the document, which should be an un-intended behavior.
Issue: N/A
Dependencies: N/A

cc @Spartee

thank you @dandanwei!


Missing thermostat cluster or temperature sensor example (TZ-355)

Question
Hi, is there any documentation or example code that describes how to configure and use the thermostat cluster?
I see in the zb_zcl_thermostat header files that this cluster is done differently than other ones and has some init_server and init_client functions which I don't really get, and I did not find any sufficient description on how to use them.
Is there any reason why there are no "esp_zb_thermostat_cluster_create" and "esp_zb_thermostat_cluster_add" functions in the esp_zigbee_cluster.h file?
I would like to create a thermostat device, which includes a temperature sensor, humidity sensor, and a heating element.
I also did not manage to run the temperature sensor endpoint with ESP_ZB_DEFAULT_TEMPERATURE_SENSOR_CONFIG from the HA standard. In my SmartThings app, it appears as a "Zigbee Thing" with no attributes.
I tried to send some measurements from the device, it looks like a success but nothing appears in the app.
This is my update function:
void zb_update_temp(int temperature)
{
    static esp_zb_zcl_report_attr_cmd_t temp_measurement_cmd_req = {};
        temp_measurement_cmd_req.zcl_basic_cmd.src_endpoint = 10;
        temp_measurement_cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT;
        temp_measurement_cmd_req.clusterID = ESP_ZB_ZCL_CLUSTER_ID_TEMP_MEASUREMENT;
        temp_measurement_cmd_req.cluster_role = ESP_ZB_ZCL_CLUSTER_SERVER_ROLE;

    /* Write new temp */
    esp_zb_zcl_status_t state = esp_zb_zcl_set_attribute_val(10, ESP_ZB_ZCL_CLUSTER_ID_TEMP_MEASUREMENT, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE, ESP_ZB_ZCL_ATTR_TEMP_MEASUREMENT_VALUE_ID, &temperature, false);

    /* Check for error */
    if(state != ESP_ZB_ZCL_STATUS_SUCCESS) {
        LOG_ERROR("Setting temp attribute failed!");
        return;
    }

    /* Request sending new phase voltage */
    esp_err_t state1 = esp_zb_zcl_report_attr_cmd_req(&temp_measurement_cmd_req);

    /* Check for error */
    if(state1 != ESP_OK) {
        LOG_ERROR("Sending temp attribute report command failed!");
        return;
    }
    LOG_WARNING("Setting temp success");
    return;
}

Thank You in advance for any help
Additional context.
I'm using an ESP32-C6 devboard with esp-idf v5.1.1.
And an Aeotec Smart Home Hub with SmartThings mobile App

Hello @patryk-belka-wizzdev
The thermostat device has been supported in latest esp-zigbee-sdk, you can refer to thermostat cluster and thermostat device.

I am also building a temperature measurement device.
If possible, I would also really appreciate an example of how to read temperature from a sensor.

Unfortunately, I'm still struggling with the thermostat cluster. I've followed the HA_color_dimmable_light example (which works fine) to create the thermostat endpoint but I still see it in my mobile app as a "Zigbee Thing" with no attributes to receive or set.
This is the esp_zb_task I've created:
static void esp_zb_task(void *pvParameters)
{
    /* initialize Zigbee stack */
    esp_zb_cfg_t zb_nwk_cfg = {};
    zb_nwk_cfg.esp_zb_role = ESP_ZB_DEVICE_TYPE_ROUTER;
    zb_nwk_cfg.install_code_policy = INSTALLCODE_POLICY_ENABLE;
    zb_nwk_cfg.nwk_cfg.zczr_cfg.max_children = 10;
    esp_zb_init(&zb_nwk_cfg);

    esp_zb_thermostat_cfg_t thermostat_cfg = ESP_ZB_DEFAULT_THERMOSTAT_CONFIG();
    esp_zb_ep_list_t *esp_zb_thermostat_ep = esp_zb_thermostat_ep_create(10, &thermostat_cfg);
    esp_zb_device_register(esp_zb_thermostat_ep);
    esp_zb_core_action_handler_register(zb_action_handler);
    esp_zb_set_primary_network_channel_set(ESP_ZB_TRANSCEIVER_ALL_CHANNELS_MASK);
    ESP_ERROR_CHECK(esp_zb_start(false));
    esp_zb_main_loop_iteration();
}

Hello @patryk-belka-wizzdev ,
I believe you have created the thermostat device from the above code. However, I am unsure whether this device is connected to your app or not. Could you please check the connection status between the device and your app? This information would be helpful in explaining how the mobile app can retrieve and set attributes for the thermostat device.

Sorry if I missed that information. The mobile app is correctly finding the device and pairing is successful.
Logs similar to these appear:

The device is online in the mobile app. But in contrast to the HA_dimmable_light example, where I can set multiple things in the app and receive them on the device, with the thermostat I can't do anything in the mobile app. I only see that a Zigbee Thing is connected and whether it's online or offline.
So no problems with pairing and adding to the mobile app, works every time. The only thing I had to change here was the primary_network_channel to ESP_ZB_TRANSCEIVER_ALL_CHANNELS_MASK. But I think it is not connected with my issue.

Hello colleagues!
Please share a complete code example for obtaining temperature values from the Tuya temperature sensor.
I tried all the combinations from all the examples, the sensor is successfully added to the zigbee network by the gateway on the ESP32-C6, but there are no events in the stack from it, so it is not clear how to see the temperature values. Other sensors, such as leaks or doors, work great.
Thank you!

@iamalek What do you mean how to get the temperature value on the Zigbee Coordinator role? I think you can reference the code: https://github.com/espressif/esp-zigbee-sdk/blob/main/examples/esp_zigbee_customized_devices/customized_client/main/esp_HA_customized_switch.c#L172

@iamalek: My TUYA temperature sensor does not respond to requests by design.
To safe battery, it only wakes up every 300 seconds to transfer data. Or, when I push the small button.

esp_zb_cluster_list_add_identify_cluster(esp_zb_cluster_list, esp_zb_identify_client_cluster, ESP_ZB_ZCL_CLUSTER_CLIENT_ROLE);
en....
The code here will let the program crash, I run on esps3, run through rcp mode, after the program runs for a period of time, the program self-opened, I do not know what to do, the program code is consistent with the author, I am a novice, I am anxious to deal with this problem.

Hello colleagues! one more question, how do I support multiple zigbee devices, I'm currently running a gateway demo. Now, I want to support multiple zigbee links to me at the same time, how can I let multiple sub-devices join the gateway at the same time? When I see the gateway code, I don't know how to deal with it, I can't find help in the zigbee gateway code, if you can provide an example of this, it will be good. I really appreciate it.

I have trace enabled, but my debug log has the following print:
I (9060) ZBOSS: macsplit/zb_macsplit_proto.c:361   rx body byte 0x33 received_bytes 51
I (9070) ZBOSS: macsplit/zb_macsplit_proto.c:361   rx body byte 0x2d received_bytes 52
I (9080) ZBOSS: macsplit/zb_macsplit_proto.c:361   rx body byte 0x31 received_bytes 53
I (9090) ZBOSS: macsplit/zb_macsplit_proto.c:361   rx body byte 0x30 received_bytes 54
I (9100) ZBOSS: macsplit/zb_macsplit_proto.c:361   rx body byte 0x2d received_bytes 55
I (9110) ZBOSS: macsplit/zb_macsplit_proto.c:361   rx body byte 0x33 received_bytes 56
I (9120) ZBOSS: macsplit/zb_macsplit_host.c:171   >radio boot indication
I (9120) ZBOSS: macsplit/zb_macsplit_host.c:173   boot indication
I (9130) ZBOSS: macsplit/zb_macsplit_host.c:213   Unexpected zb_mlme_dev_reset_conf - seems, device is asserted
I (9140) ZBOSS: common/zb_error_indication.c:93   >> zb_error_raise severity 254, err_code -2561
I (9150) ZBOSS: common/zb_error_indication.c:59   Error is not handled: severity 254, err_code -2561
I (9160) ZBOSS: common/zb_debug.c:64   Assertion failed /home/xieqinan/ESP/esp-zboss/components/zboss_stack/zboss/common/zb_error_indication.c:81
abort() was called at PC 0x4201a79f on core 0
0x4201a79f: zb_assert at ??:?
Backtrace: 0x403759da:0x3fca5a30 0x4037b22d:0x3fca5a50 0x40380e0e:0x3fca5a70 0x4201a79f:0x3fca5ae0 0x420713af:0x3fca5b10 0x42071403:0x3fca5b40 0x42068815:0x3fca5b70 0x42021a2a:0x3fca5c20 0x42054b5b:0x3fca5c70 0x4200f7d3:0x3fca5c90 0x4200b63a:0x3fca5cb0 0x4037dad1:0x3fca5cf0
0x403759da: panic_abort at C:/Espressif/frameworks/esp-idf-v5.1.1/components/esp_system/panic.c:452
....
emm...
....
I don't know what to do next, my log happened on esp32s3, using rcp mode to communicate with esph2, please give me some tips, so that I know how to deal with it, OK?

@teleger Could you please file separate GitHub issue for each topic? It would be easier to follow up, thanks.

@teleger Could you please file separate GitHub issue for each topic? It would be easier to follow up, thanks.

ok，  I will submit a new question，Thank you for your quick reply

The thermostat and temperature exampes are available now: https://github.com/espressif/esp-zigbee-sdk/tree/main/examples/esp_zigbee_HA_sample.
Please file new issues if any follow up questions.


Add tureal locations plugin

I'm doing a lot of slayer points boosting and I'm constantly switching between screens to find the location of the required task.
Quickly made a simple plugin which kind of extends the original slayer plugin, and adds a new counter next to the regular one with a new hover where to find the NPC and some extra info like cannonable.

CI is failing because it's expecting a file named LICENSE (while yours is named in lowercase)

This PR has been failing CI for 10 days. I just merged another plugin with the same purpose, Turael Skipping by BrastaSauce. I recommend checking that out first, and you can resubmit your plugin once it is fixed if you would still like it added.


Feature Request: Icons for Advanced Mobile Toolbar

Feature Requested
Right now, all features appear with a generic ? icon in Advanced Mobile Toolbar. Makes them unusable on mobile.
Relevant Screenshot
No response
Which editor are you using?

[ ] New Editor
[ ] Legacy Editor

Checklist

[X] I have checked that there isn't another hotkey plugin that does what I want.
[X] The feature would be useful to more users than just me.

The Advanced Mobile Toolbar allows you to set custom icons though?

I think what OP meant was to have these icons pre-set after installing the plugin. Some plugins do this, like Advanced Tables, icons are already set for some commands:


Better OTA Handling

This will backup the file if exists.

There's a handle leak in your patch. Consider using stat() or calling close() on the fd. (Not that it matters since the process dies after the jailbreak was successful.)
@meyer9:

Currently, we are just unlinking the file. Not deleting it.
Please read the manual on what the unlink syscall does.

Using unlink will delete the file on reboot?

Unlink will not delete the OTA daemon it will only be disabled in a jb state so there's no need for this commit afaik

@nerdtron123 Each file stored is assigned both a name and an inode number, which is an integer that is unique within the filesystem.  The directories(special type of files) associates file names with inodes.
Unlink frees the inode of the file stored in Inode table(Dandling name also gets removed). Yes it does delete file's existence from a directory but doesn't actually do anything to the data on disk. Yet still it's not consider a best option to relink file's inode to a name after unlink.
Mark your file gone-> using unlink will delete the file on reboot.
@LordVader197  True, OTA daemon will remains safe, it will just not start itself upon boot.


Update README for 0.2.x examples

In the README not all examples are described. Do we want to have an updated list there or just remove these information from the README (I vote for latter, as it easier to maintain and people can easily go through the examples own their own and see whats there)
Right now its outdated, what is not that great... ;-)

By now you have to add an example and one line to the README. I agree that an outdated README is bad. But the idea was to give new users an overview what are the topics of the examples. Sometimes it is hard to find the right example. A list of all modulestring would be great (sphinx?).


Enhancement/toggle switch

Remove darkmode + Show foreign fund CTA

I can't click back to "all funds" -- test it? here the button doesn't toggle you back.

I can't click back to "all funds" -- test it? here the button doesn't toggle you back.

For some reason, the url in the DOM is also incorrect. Checking this out.


 When I made a cfg it was fine. Got VAC banned. Made another acc. Started playing and the scaling was way too big. Got VAC banned anyways :(

Boy i have solution for your problem
https://www.grammarly.com/blog/to-too/

First of all english is not my main language.  But thank you, you are so kind.

np XD


double-beep: Watch topessayservices.com

double-beep requests the watch of the watch_keyword topessayservices\.com. See the MS search here and the Stack Exchange search here.

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

Approved by Makyen in Charcoal HQ