Support metadata fields being sent from states

We need a way of setting arbitrary message metadata fields as part of the message created by a state.

@hodgestar @rudi Ready for review.
With this, you can set a state instance's helper metadata with state.helper+metadata.foo = 'bar'. We can think of more higher-level ways of exposing this when we have other use cases for it.
My first attempt implemented this using State\s .show(), but that didn't really seem the right way to do it, since .show() is meant for the state's text. helper_metadata seemed closer to State's continue_session property, since both are properties that eventually get added to the reply message.

Could we add an issue to update the documentation? Or is this supposed to be kept not documented, and the higher level ways will be documented?

:+1: from me otherwise

Left one suggestion but otherwise looks good.

@rudigiesler good question, intentionally undocumented, will add documentation once we expose some higher-level way for people to do this.

:+1:

Confirming that the outbound resouce does know to ignore null helper_metadata.

@justinvdm Tx for the reviewing. I added some direct tests for State.helper_metadata. Ready for (hopefully) last review.

:+1:


[icon4py,gt4py] How to interact with cmake to avoid full rebuilds?

Problem
cmake of icon-dsl checks if files changed in icon4py/gt4py, and only those changed are rebuilt.
With Spack you end-up with an installation, that is completely rewritten if you reinstall one of the packages.
Then this mechanism is not working anymore.
Solution 1
Test if one could use rsync as install for both python packages. Rsync would only change files that were modified.
Downside is that we hack an established install-method from Spack, this will fail/cause problems at some point for sure.
Solution 2
Figure out a smart mechanism using pip. Maybe the fancy Python world offers something.
Solution 3
Come up with a second version of the packages (py-gt4py-dev, py-icon4py-dev) that implement solution 1.
For basic users (non-developpers) the current situation is perfect. And don't want to add more complexity for the
least experienced users.

There will be a developer workflow that doesn't require spack.


Loading more than 100 posts?

I am having issues with loading more than 100 posts at a time. At the moment, the code that I am using to get an ArrayList of submissions is
`
        SubredditPaginator sp = new SubredditPaginator(redditClient, params[0]);
        sp.setLimit(25 * currentPage);

        ArrayList<Submission> posts = new ArrayList<>(sp.next());
        return posts;`

When the parameter for sp.setLimit is over 100, no additional posts are loaded into the ArrayList. What am I doing incorrectly?

Generally you want to keep your SubredditPaginator instance stored (which means that new SubredditPaginator() is only called once every time your app/program launches) if you're doing long-lived operations, for example in an Android app.
sp.setLimit() tells reddit to return n posts at a time. Every time you call sp.next() reddit will return 25 more posts, so the 2nd time you'd have 50 posts total, the 3rd 75 posts and so on.
Normally you save more time and bandwidth from setting sp.setLimit(100) to get 100 posts at a time rather than doing 4 calls with a 25 post limit to get 100 posts, so adjust this according to your needs.
Make sure that you also check for sp.hasNext() which will make sure more posts are actually available, for example:
if(sp.hasNext()) {
	 ArrayList<Submission> posts = new ArrayList<>(sp.next());
	 return posts;
}
return null; // You will need to check for null in the caller

You can see another example on how to use Paginators here
https://github.com/thatJavaNerd/JRAW/wiki/Paginators

Thanks for the answer and overall helpful tips! I didn't know that you just had to keep calling sp.next()


Fixed THREE not being required in transform

When using Browserify + the transform plugin THREE wasn't being pulled into scope.

fixed in #19 https://github.com/leapmotion/leapjs-plugins/pull/19/files


Search Suggestions display Class description rather than Method description

Issue Checklist:

[X] No matching Open Bugs
[X] No matching Closed Bugs
[X] I've read the Contributing Guide
[X] I'm following the Code of Conduct

What happened?
While testing #8 I noticed that the descriptions shown in the typeahead search are the class descriptions instead of the methods which are being presented.

Expected outcome is that the method's description (if available) would be displayed instead of the class description.
Which Browser(s) were you using?
Impacts All
Which Operating System(s) were you using?
Impacts All
Steps to produce this issue.

Navigate to https://sfccdocs.com/
Type: setTracking

This one is not really possible due to how the indexing works.  The search results that do have a full index can find the match, but not descriptions about those matches.

@sholsinger reopening this as I think I figured out a solution.  Not exactly what you are asking for, but way more helpful than not. Turns out I can grab the first line from the section that the resulting match was found in ( does mean I have to store that in the index, but if it's just the first line, it's not too bad.
Here's what it ends up looking like.  Let me know if this is good enough for you for this ticket :)

@sholsinger I can also go with the second line as it does look like most of the time, that is the description ... but ya, it's just a balance of storing more text in the indexer, but here is what that second line looks like for the same query

You're awesome!

This was deployed in release 0.6.0


Is it possible to attach roles for guest users?

I want to check permissions for guest users. Is it possible?

what's the difference between guest users?

@Redigast13 I don't think that's possible, But can you explain your scenario bit more? Like how would you like to check permission?

#651

@Redigast13 I don't think that's possible, But can you explain your scenario bit more? Like how would you like to check permission?
I would like to check permissions using authorization policies. LIke "$user->can('get-users');" in policy. I store permissions in DB using Zizaco\Entrust module.
But if user is not authenticated then the policy will not be executed.
I solved this problem using middleware, that login user as guest model if user is not authenticated.

public function handle($request, Closure $next)
    {
        if (!Auth::check()) {
            $guestUser = User::where('is_guest', 1)->first();

            if ($guestUser) {
                Auth::login($guestUser);
            }
        }

        return $next($request);
    }


docs: remove syntax highlight from help execution

Syntax highlight from type sh is interpreting the azion-cli output as shell script, highlighting text between quotes and words like command, help and for

I have read the CLA Document and I hereby sign the CLA


[FR] space between Chinese and English

requested by: 蹦跶的咖啡豆

support in Format space between words and symbols


Can we use 3DS ?

Hello,
Your plugin is wonderfull but unfortunatelly we have many fraudulent payments.
So we would use the 3D Secure but to do this i think we need a "source" connector :
https://stripe.com/docs/sources/three-d-secure
Is it possible to add it to use 3DS ?
Thank's for your great job !

You will be able to in the next version of this plugin. The plugin is outdated at the moment and it uses older SDK. I will keep this issue open and notify you when the new SDK is implemented. Thank you for your patience.

Is there any workaround to enable stripe 3D secure payment in cordova app. I need to get this asap. Thanks in advance... :)

Hi @ihadeed did you changed the old sdk with the new sdk  ?

+1

Can we help in some way?

@vipmonkey you can help by testing it as I don't use 3DS or the other sources that Stripe supports.
This is currently implemented for iOS in the v2 branch, still working on Android.

Ok, will implement it on a beta build and test it

@ihadeed  when we gonna get this plugin updated for 3ds?

any update?

So no updates?

Check the notice in the repo homepage/ readme.me
…
Sent from my iPhone
On Nov 11, 2020, at 12:50 PM, DARKGuy (Alemar) @.***> wrote:  So no updates? — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

Well, Capacitor is crap, Cordova is still way useful in the sense that we don't have to keep two repos with different codebases (plus installing Android Studio or XCode, etc) and besides, Cordova is still actively maintained, so it doesn't make sense at all.
Thanks for nothing though. I ended up making a webpage and calling it from an iframe...


iPad 6th Gen bootloop after restarting from sshrd (iPadOS 16.6.1)

Hi, after using sshrd the device will flash white with apple logo then reboot not getting into iOS
Really appreciate if someone knows a fix.

same thing, but on IOS 16.7.2 on Iphone 8. Used 15.6, 16.0 16.7.2 IPSW for ramdisk, but after rebooting it jumps straight to bootloop

@fpandroid @AlexChecker Can you get back to me? Have you done anything to resolve it? I'm not getting my device recognized by ANYTHING, no matter if I enter DFU or not, and it's starting to get a little worrying.


bump up version from 1.5.0 to 1.6.0 on master

Description
bump up version from 1.5.0 to 1.6.0 on master
bump up scala README.md 1.3.1 to latest stable 1.4.0
Checklist
Essentials
Please feel free to remove inapplicable items for your PR.

[ ] The PR title starts with [MXNET-$JIRA_ID], where $JIRA_ID refers to the relevant JIRA issue created (except PRs with tiny changes)
[ ] Changes are complete (i.e. I finished coding on this PR)
[ ] All changes have test coverage:
Unit tests are added for small changes to verify correctness (e.g. adding a new operator)
Nightly tests are added for complicated/long-running ones (e.g. changing distributed kvstore)
Build tests will be added for build configuration changes (e.g. adding a new build option with NCCL)
[ ] Code is well-documented:
For user-facing API changes, API doc string has been updated.
For new C++ functions in header files, their functionalities and arguments are documented.
For new examples, README.md is added to explain the what the example does, the source of the dataset, expected performance on test set and reference to the original paper if applicable
Check the API doc at http://mxnet-ci-doc.s3-accelerate.dualstack.amazonaws.com/PR-$PR_ID/$BUILD_ID/index.html
[ ] To the my best knowledge, examples are either not affected by this change, or have been fixed to be compatible with this change

@mxnet-label-bot add [pr-awaiting-review]

@roywei Can you resolve the merge conflicts in this PR ?

@mxnet-label-bot add [pr-work-in-progress]


feat: add support for aws ses

API PR Checklist
Pre-requisites

[x] I have gone through the Contributing guidelines for Submitting a Pull Request (PR) and ensured that this is not a duplicate PR.
[x] I have performed preliminary testing using the test suite to ensure that any existing features are not impacted and any new features are working as expected.
[x] I have updated the required api docs as applicable.
[ ] I have added/updated test cases to the test suite as applicable

PR Details
PR details have been updated as per the given format (see below)

[x] PR title adheres to the format specified in guidelines (e.g., feat: add admin login endpoint)
[x] Description has been added
[x] Related changes have been added (optional)
[ ] Screenshots have been added (optional)
[x] Query request and response examples have been added (as applicable, in case added or updated)
[x] Documentation changes have been listed (as applicable)
[ ] Test suite output is added (as applicable)
[ ] Pending actions have been added (optional)
[x] Any other additional notes have been added (optional)

Additional Information

[x] Appropriate label(s) have been added (ready for review should be added if the PR is ready to be reviewed)
[x] Assignee(s) and reviewer(s) have been added (optional)

Description:
Add support to send emails using AWS SES
Related changes:

Install @aws/ses node package
Create new channel type for SES
Create migration to populate master_provider details
Create new dto for SES request
Create module and service file for SES provider with all the relevant functions
Create consumer for SES to handle sending notification
Update validator and queue.service to handle SES
Run a query for aws ses to see if it is being processed properly
Add documentation with related links for the specified provider aws ses
Update postman collection with aws ses request queries

Screenshots:
Add any screenshots as required.
Query request and response:
curl --location 'http://localhost:3000/notifications' \
--header 'x-api-key: OsmoX-test-key' \
--header 'Content-Type: application/json' \
--data-raw '{
    "providerId": 12,
    "data": {
        "from"<EMAIL_ADDRESS>        "to"<EMAIL_ADDRESS>
        "subject": "Test subject",
        "text": "This is a test notification",
        "html": "<b>This is a test notification</b>",
        "replyToAddresses"<EMAIL_ADDRESS>    }
}'

Documentation changes:

Create documentation for AWS SES Provider
Update postman collection

Test suite output:
NA
Pending actions:
NA
Additional notes:

Official AWS documentation for SES integration: https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/ses-examples-sending-email.html#ses-examples-sending-emails-prerequisites
AWS SDK SendEmailCommand: https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/ses/command/SendEmailCommand/

Summary by CodeRabbit

New Features

Introduced AWS SES notifications functionality for sending emails.
Added detailed documentation for integrating AWS SES as a notification provider.
Expanded API capabilities with a new section for AWS SES notifications, including requests and validations.

Bug Fixes

Improved error handling for invalid API keys and missing fields in AWS SES notifications.

Tests

Added test suite for the AWS SES service to ensure basic functionality and existence.
Included comprehensive request tests and response validations for AWS SES notifications.

Chores

Updated dependencies to include AWS SDK for SES.

@kshitij-k-osmosys We need to keep a consistent format for users of OsmoX for all email providers. For example, Mailgun and SMTP have the same request body:

https://github.com/OsmosysSoftware/osmo-x/blob/main/apps/api/docs/channels/mailgun.md
https://github.com/OsmosysSoftware/osmo-x/blob/main/apps/api/docs/channels/smtp.md

However, as I see in your current PR, the request body data is different. Please address this.

@kshitij-k-osmosys I also do not see any support for attachments. Can that not be done?

@kshitij-k-osmosys I also do not see any support for attachments. Can that not be done?

According to the following documentation I did not see any attachment inputs

https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/ses/command/SendEmailCommand/
https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Interface/SendEmailCommandInput/


["Draw area" and "drop pin" tasks] "Current location" label potentially misleading

The location may not be the user's actual location, but rather the location at the center of the map.
To solve this, we can show "Current location" when the two locations are equal, or "Selected location" otherwise.
See also #2141 for future work.

Yes, this is now fixed.


CVAT Error working with very large resolution files (4096 x 3008). OpenH264 limitation.

I'm working with a very large resolution file that is over 4K standard resolution (4096x2304). I was able to upload the file to CVAT and perform annotations and work normally as expected. However, when trying to export the annotations, the cvat_worker_export  worker container encounters a libopenh264 error. This is what I see when I issue the command docker logs -f cvat_worker_export while everything is up and running:
[2024-02-01 18:51:02,040] ERROR libav.libopenh264: [OpenH264] this = 0x0x55ae68649c50, Error:ParamValidationExt(), width > 0, height > 0, width * height <= 9437184, invalid 4096 x 3008 in dependency layer settings!
[2024-02-01 18:51:02,040] ERROR libav.libopenh264: [OpenH264] this = 0x0x55ae68649c50, Error:WelsInitEncoderExt(), ParamValidationExt failed return 2.
[2024-02-01 18:51:02,040] ERROR libav.libopenh264: [OpenH264] this = 0x0x55ae68649c50, Error:CWelsH264SVCEncoder::Initialize(), WelsInitEncoderExt failed.
[2024-02-01 18:51:02,040] ERROR libav.libopenh264: Initialize failed

2024-02-01 18:51:02,770 DEBG 'rqworker-export-0' stderr output:
[2024-02-01 18:51:02,767] ERROR cvat.apps.dataset_manager.views: [Task.id=213] [cvat.apps.dataset_manager.views @ export]: exception occurred
Traceback (most recent call last):
  File "/opt/venv/lib/python3.10/site-packages/datumaro/plugins/voc_format/converter.py", line 222, in save_subsets
    self._save_image(item, osp.join(self._images_dir, image_filename))
  File "/opt/venv/lib/python3.10/site-packages/datumaro/components/converter.py", line 250, in _save_image
    item.media.save(path)
  File "/opt/venv/lib/python3.10/site-packages/datumaro/components/media.py", line 163, in save
    save_image(path, self.data)
  File "/opt/venv/lib/python3.10/site-packages/datumaro/components/media.py", line 104, in data
    data = self._data()
  File "/opt/venv/lib/python3.10/site-packages/datumaro/util/image.py", line 283, in __call__
    image = self._loader(self._path)
  File "/home/django/cvat/apps/dataset_manager/bindings.py", line 1417, in <lambda>
    loader = lambda _: frame_provider.get_frame(i,
  File "/home/django/cvat/apps/engine/frame_provider.py", line 195, in get_frame
    chunk_reader = loader.load(chunk_number)
  File "/home/django/cvat/apps/engine/frame_provider.py", line 85, in load
    self.reader_class([self.get_chunk_path(chunk_id, self.quality, self.db_data)[0]]))
  File "/home/django/cvat/apps/engine/cache.py", line 60, in get_task_chunk_data_with_mime
    item = self._get_or_set_cache_item(
  File "/home/django/cvat/apps/engine/cache.py", line 52, in _get_or_set_cache_item
    item = create_function()
  File "/home/django/cvat/apps/engine/cache.py", line 62, in <lambda>
    create_function=lambda: self._prepare_task_chunk(db_data, quality, chunk_number),
  File "/home/django/cvat/apps/engine/cache.py", line 203, in _prepare_task_chunk
    writer.save_as_chunk(images, buff)
  File "/home/django/cvat/apps/engine/media_extractors.py", line 767, in save_as_chunk
    self._encode_images(images, output_container, output_v_stream)
  File "/home/django/cvat/apps/engine/media_extractors.py", line 777, in _encode_images
    for packet in stream.encode(frame):
  File "av/stream.pyx", line 164, in av.stream.Stream.encode
  File "av/codec/context.pyx", line 480, in av.codec.context.CodecContext.encode
  File "av/codec/context.pyx", line 289, in av.codec.context.CodecContext.open
  File "av/error.pyx", line 336, in av.error.err_check
av.error.UnknownError: [Errno<PHONE_NUMBER>] Unknown error occurred; last error log: [libopenh264] Initialize failed

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/django/cvat/apps/dataset_manager/views.py", line 85, in export
    export_fn(db_instance.id, temp_file, dst_format,
  File "/home/django/cvat/apps/dataset_manager/task.py", line 904, in export_task
    task.export(f, exporter, host=server_url, save_images=save_images)
  File "/home/django/cvat/apps/dataset_manager/task.py", line 785, in export
    exporter(dst_file, temp_dir, task_data, **options)
  File "/home/django/cvat/apps/dataset_manager/formats/registry.py", line 36, in __call__
    f_or_cls(*args, **kwargs)
  File "/home/django/cvat/apps/dataset_manager/formats/pascal_voc.py", line 26, in _export
    dataset.export(temp_dir, 'voc', save_images=save_images,
  File "/opt/venv/lib/python3.10/site-packages/datumaro/util/scope.py", line 158, in wrapped_func
    ret_val = func(*args, **kwargs)
  File "/opt/venv/lib/python3.10/site-packages/datumaro/components/dataset.py", line 1111, in export
    raise e.__cause__
datumaro.components.errors.ItemExportError: Failed to export item ('frame_000000', 'default')

Digging deeper into the issue, it appears I've hit a limit in the OpenH264 encoder that only supports up to 4k imagery. This is the actual check that fails:
https://github.com/cisco/openh264/blob/c59550a2147c255cc8e09451f6deb96de2526b6d/codec/encoder/core/src/encoder_ext.cpp#L515C81-L515C98
and this is the hard limit that Openh264 currently has:
https://github.com/cisco/openh264/blob/c59550a2147c255cc8e09451f6deb96de2526b6d/codec/common/inc/utils.h#L46
This seems to make sense as OpenH264 supports H264 spec up to 5.2, which according to this reference, means that only 4k is supported:
https://en.wikipedia.org/wiki/Advanced_Video_Coding#Levels
As such, this is probably not a CVAT error, more of an Openh264 encoder limitation. Wanted to reach out to the community for thoughts. It appears the Nvidia's NVENC H264 supports up to 8K, would it be feasible to use that instead of Openh264? Might it be a good idea to set a limit in CVAT where in standard OpenH264 mode, only videos 4k or below can be uploaded so that people don't run into this same problem? Am I missing something obvious that could make over 4k Openh264 encode video work as expected?
Thanks!
These are my specs:
OS:  Ubuntu 22.04 LTS, Linux kernel 5.15
CVAT tag release: 2.8
Docker version: 24.0.7

Hello, thanks for investigation. We do not have current plans regarding switching to another codec.
But if it is true and used H264 has 4K limitations it would be nice to have a better message when user tries to upload such files.
Workaround for you is t unpack you video into frames and upload as a set of images:
000001.jpg
000002.jpg
000003.jpg
....

Thanks for the quick response bsekachev.
Yes, a simple check on the dimension of the video file and an error message would be great to have.
Going forward we are going to chop up the video and upload the extracted image frames manually as you suggest. Another venue we are exploring is uploading uncompressed video files, although the storage trade off would be big.


Fix Emacs Company Mode for External Packages

Apply changes in https://github.com/mdempsky/gocode/issues/79 to emacs company-go mode so auto-completion of non-local packages works. Mirrors changes in https://github.com/nsf/gocode/pull/530. This way completion works if you just checkout this repo and point emacs to this instance of go-code.

Closing this PR, as it's nearly a year old. Please open a new one if something comes up.


After rotating image, it doesn't fit the parent

Hey! Great library, however I have an issue:
I have the image in it's full resolution, and I want it to fit it's parent, so I have:
<ExifOrientationImg
src={'foo'}
style={{maxWidth: '100%', maxHeight: '100%', display: 'block'}}
/>
so when I use the ExifOrientationImg component it gets correctly rotated, however the problem is that, after the rotation, it no longer adheres to the parent width and height, but overflows it completely... I could write some code to swap the values, except then I need to detect the orientation manually again, at which point I would no longer need this library.
The ideal solution would be the image swaps the values automatically or worst case scenario add a callback with the detected orientation so users can swap max values on their own.
Cheers!

I was getting the same issue. I got the Y component to show by setting overflow: -webkit-paged-y on the parent. However it still needs to fit to the width of the parent component.

It's because transformations applied to an element using transform CSS property happen after the layout has taken place. There is a trickery with CSS to solve that on StackOverflow, but it's hacky

Has any progress been made on this issue? I am currently also having this problem

the original issue is from 2018, you can consider this as won't be fixed, you can take a look here if you still want a hacky solution to your problem:
https://ospfranco.github.io/post/2019/08/27/react-rotating-image/

Hi all sorry, this project is not maintained anymore, I will archive it shortly. If someone wants to fork and take ownership of the package on npm, let me know. Thank you.

Thanks everyone. I actually solved this problem without the use of this project by using the CSS image-orientation: from-image;. It seems to be widely supported now.


Add StorageVolume crd spec

What does this PR do?

This PR adds the initial structure as per the schema for the StorageVolume

Enhancements to be taken up

Decide the subfields for some structs
Add more verbose documentation
Refine the constants to our use case

openebs.io/volume-source-protection
=> This finalizer makes sure that internal volume resource is not present at the time of volume CR deletion.


Files deployed have incorrect timestamps / time zone

The files deployed to Azure using this extension have incorrect timestamp, which is always off by the difference between UTC and the local computer time zone.

Hi @FranklinWhale
Could you share the logs that display the timestamps? Some of the log messages aren't coming from us, but rather they come from the deployment service (Kudu).
If it's coming from Kudu, there's not much that we can do about that.

I am not sure where I may get the logs, but here are some screenshots showing the problem:
The files are last-modified at 2023-12-15 03:10 +08:00:

After the files were deployed, the timestamp is 2023-12-15 11:10 +08:00 / 03:10 +00:00.

The incorrect timestamp is also used in the HTTP response of the file:

The timezone of the App Service is UTC:

I wonder if the ZIP file created by the App Service Extension has incorrect timestamp.


FEATURE(sla): Added endpoint to create a SLA Template from the DAM.

Added SLA Generation from the DAM. This is needed in the DAM Generation process. This commit adds:

Generation of template from DAM
Partial generation of agreement from template
REST endpoint to add template from DAM
REST endpoint to add agreement from template (TBF)

To test:

run sla service: java -jar jetty-runner.jar --path / sla-service/target/sla-service.war
post DAM: curl http://localhost:8080/seaclouds/templates -X POST --data-binary @"sla-generator/src/test/resources/DemoDAM.yml"

@andreaturli, could you finish the review? Thanks

sorry, don't have time to finish that. Could you suggest another reviewer?

Hi @rosogon and @andreaturli , I reviewed this PR since I was previously assigned to it. Just a comment on the dependency from Tower 4Clouds that maybe can be updated in this PR. The rest of the code looks fine at least to me.

@MicheleGuerriero : is it ok now?

+1


"Wrong layout state!" errors when opening the debugger

Sometimes when opening the debugger we get "Wrong layout state!" errors because of nested infinite elements.

This was addressed.


Add Rook-Ceph addon, and connect-external-ceph script

Based on and replaces #198

add new rook-ceph addon
implement microk8s connect-external-ceph command
automatically discover and integrate with microceph, if installed

Here is what testing went into the review:
# Setup microceph
sudo snap install microceph --channel=latest/edge
sudo microceph cluster bootstrap
sudo snap connect microceph:dm-crypt

# Prepare disks
for l in a b c; do
  loop_file="$(sudo mktemp -p /mnt XXXX.img)"
  sudo truncate -s 1G "${loop_file}"
  loop_dev="$(sudo losetup --show -f "${loop_file}")"
  # XXX: the block-devices plug doesn't allow accessing /dev/loopX
  # devices so we make those same devices available under alternate
  # names (/dev/sdiY) that are not used inside GitHub Action runners
  minor="${loop_dev##/dev/loop}"
  sudo mknod -m 0660 "/dev/sdi${l}" b 7 "${minor}"
  sudo microceph disk add --wipe "/dev/sdi${l}"
done

#check the status
sudo microceph.ceph status
sudo microceph disk list

# Do some magic to allow for single node setup
sudo microceph.ceph config set global osd_pool_default_size 2
sudo microceph.ceph config set mgr mgr_standby_modules false
sudo microceph.ceph config set osd osd_crush_chooseleaf_type 0

# Install microk8s, the addon and connect the external ceph
sudo snap install microk8s --classic --channel=latest/edge
sudo microk8s enable rook-ceph
sudo microk8s connect-external-ceph

Apply a manifest that uses the right storage class
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: myclaim
spec:
  storageClassName: ceph-rbd
  accessModes:
    - ReadWriteOnce
  volumeMode: Filesystem
  resources:
    requests:
      storage: 1Gi
---
kind: Pod
apiVersion: v1
metadata:
  name: test-pod
spec:
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: pvc-node-name
            operator: In
            values:
            - test-node
  containers:
    - name: test-container
      image: busybox
      command:
        ["/bin/sh", "-c", "while true; do date >> /mnt/dates; sleep 2; done"]
      volumeMounts:
        - name: volume
          mountPath: "/mnt"
  restartPolicy: "Never"
  volumes:
    - name: volume
      persistentVolumeClaim:
        claimName: myclaim

This should result into something like this:
$ microk8s.kubectl get pvc
NAME      STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
myclaim   Bound    pvc-3cac3f8c-0024-451f-924f-28a7277d53d8   1Gi        RWO            ceph-rbd       4m57s

Follow up work

We need an integration test. It does not need to be too elaborate. Maybe put the above manual steps in a pytest.
The single node configuration args seem like magic to me that I am not familiar with ceph. I suspect our users would like to give microceph a try too. So we need to address the need for:sudo microceph.ceph config set global osd_pool_default_size 2
sudo microceph.ceph config set mgr mgr_standby_modules false
sudo microceph.ceph config set osd osd_crush_chooseleaf_type 0

The Initializing RBD pool step in the import of a cluster may hang in a very ugly way (needs to be killed with -9) if ceph is not ready. We need to address this.


Improved prop chaining example fixes #10

Fixes #10, I might even argue that the second argument of the generic assertions should be removed.
Because that would have made it easier to understand from the beginning.

PR looks good to me, I'd suggest creating an issue with suggesting the removal of the second argument, I have not formed an opinion on this yet. Merging in this PR should not be blocked by that issue. 🙌

pr looks good :+1:


How to resolve the issue of different race of the same patient over different encounters

For patients with multiple encounters and different recorded races:
Count the frequency of informative non-white race entries (excluding non-informative categories such as "Prefer not to say", "Unknown", "Refused to answer," etc.).
Select the race entry with the highest frequency for each patient.
In case of a tie, choose the most recent informative entry.

@clif-consortium another approach is to move race_name and race_category to hospitalization

@sajor2000 says take the most recent one and map to race_name

Each site should take a specific approach based on their typical practices to identify one race_name per patient


Settings for recommended policies are missing or not rendered

Settings missing on recommended privileged pod policy.
Screencast from 2024-03-26 13-55-40.webm
Settings not rendered on privilege escalation policy.
Screencast from 2024-03-26 13-59-53.webm
UI extension: 1.4.1
Rancher: 2.8.2

@kravciak for the second item Settings not rendered on privilege escalation policy:
If it comes from the default policies, the problem lies with the fact that the UI elements only appear because they are interpreted from the questions part, hence why on creating CAP from the template Allow Privilege Escalation PSP, we get the questions part from the chart and the UI elements appear.
Now, during last friday's meeting, while editing a CAP created from the template Allow Privilege Escalation PSP, we got into this scenario where I wasn't expecting to get the UI elements, but turns out we have them because Jordon is fetching the questions part from ArtifactHub.
Now, the biggest question is why isn't this working for the default CAP's?
That's because we are missing the annotation for ArtifactHub...
CAP from defaults

CAP from template

Is it possible to include it on the default policies @viccuad @flavio ? does it need versioning of some sort?
If so, what adaptations are needed to current KW UI logic in order to get the version information correctly?
I think Jordon isn't taking that into account anywhere here: https://github.com/rancher/kubewarden-ui/blob/main/pkg/kubewarden/plugins/policy-class.js#L59-L77 🤔

Yep, the questions.yaml are added as artifacthub pkg annotations, for artifacthub to return them via their API (we do that in the policies here).
The questions-ui are tightly coupled with the policy binary (Wasm module);  each binary has a different ABI, and may accept different settings. Right now we are already making the assumption that the binary we push to the OCI registry, with a specific tag (e.g: :v1.1.0), matches that version. We could err here or suffer an attack. This is not a problem for policies under our control, could be for community policies from Artifacthub.
The ideal would be to include the questions into the metadata that gets backed into the binary itself, and in the UI pull the binary from the OCI registry and read the questions that way. We will not do that for now.

I think Jordon isn't taking that into account anywhere here: https://github.com/rancher/kubewarden-ui/blob/main/pkg/kubewarden/plugins/policy-class.js#L59-L77 🤔

That seems correct. From searching, it seemed to be added with https://github.com/rancher/kubewarden-ui/commit/5a3f6dd3e85a4504e5fcc089def84deba754bcc0.
On the Kubewarden policies side, for all, we don't add that artifacthub/pkg annotation. Neither the instantiated resources in cluster have that metadata.annotations. So I think it's added temporarily by the part of the UI that deals with creating the policy, and I think that's why we don't see it on the default policies.
Solutions that I can think of:

Add the metadata.annotations.artifacthub/pkg on the default policies template, on the kubewarden-defaults chart.
Example, by doing this for all policies:
https://github.com/kubewarden/helm-charts/compare/main...viccuad:helm-charts:add-artifacthubpkg-annot
One can try by upgrading kubewarden-defaults from this repo, https://github.com/viccuad/helm-charts branch add-artifacthubpkg-annot. Afterwards, one can see the settings.
Change the UI to always construct the artifacthub/pkg  name, to be able to query for questions for all artifacthub policies. Or maybe all those that are officially owned by Kubewarden. Hence the question settings will always be present for all policies regardless of how they were installed.

From those, I prefer number 2, as it is hacky but less hacky and more DRY than 1.
That is discounting that I am happy with current status quo  (if you want to change the policies, change the kubewarden-default values).

At the end, de decided to go with an option 3, adding the questions for the default policies in the questions of the kubewarden-defaults chart. This is done here: https://github.com/kubewarden/helm-charts/pull/427
With this, the default policies are configurable via the chart. And the questions will always be matching the specific version of the policy (we take care of this manually for this default policies).
The UI should, for these default policies, to not allow changes via the "Edit Policy" (this path). Instead, when clicking on the "Edit Policy", it should show a page saying that the policy is owned by the kubewarden-default helm chart, and/or redirect there (redirect to this path)
For knowing if a policy is one of the default ones, the UI can check the policy labels: (maybe already does, given that it shows a banner for these)
metadata.labels.app.kubernetes.io/part-of: kubewarden


Enable model events on demand

How to override the value in a generated Model
By using the C# new keyword

By overriding the Initialize method of BaseModel


fix(group): WinSeperator defined along side VertSplit

Relates to default colorscheme change in neovim #26334
Resolves: #386

Is sepErator a typo? Or is it supposed to be a different color after update?


Render hiking route relations

This one is similar or in some way an upgrade to this: #659
New users often add color or name of hiking route to the name field of the footway/path/road itself. One reason is that they want to have it shown in default OSM map, but also often they don't even know that there is a relation hiding on that path.
I would imagine that at some close enough zoom level iD would render a parallel line in color of the route (either taken from osmc:symbol or color tags) next to the path/footway itself. If the way is part of multiple relations then multiple parallel ways would be shown. Something similar what "OSMC hiking" mapstyle for JOSM is doing.

bonus: nice would be also to show the name of the trail from relation name tag
bonus2: to have two color routes (blue_red::blue_stripe:red_rectangle) rendered as alternating two-color dashed line

Thanks @Mashin6, I'd consider this part of #659 but we'll keep these ideas in mind.

Thanks @Mashin6, I'd consider this part of #659 but we'll keep these ideas in mind.


add programmatic hover

Fixes #38

Thanks @komninoschat! Unfortunately I didn't manage to get it working :thinking:
Could you update the ChartsAdvanced.vue example so I can see how it is intended to work? E.g. with a date in December 2018.
There is also a linter error preventing build btw.

Regarding the status of this PR:

I managed to programmatically highlight the dots on the graphs
In our current charts.js version(2.9.3), there is no API to programmatically show tooltips(and lines on the advanced graph which depend on them)

We have two options for (2):

Upgrade to charts.js 3.0.0. This PR which was merged on version 3.0.0-beta.5 adds the API we want. Also, this major release has been in the works for quite some time now and they are already on release candidate 6 so it's relatively stable. The downside to this is that we will have to immediately deal with the breaking changes.
Use the hack solution @silvester-pari wrote above.

I strongly suggest we follow (1) in order to reduce our technical debt, instead of further increasing it.

Great find, thanks! I think we should do 1) as you proposed!

Unfortunately, chartjs 3 is not yet compatible with the Vue wrapper (I think). Maybe it's best to use our original hack as described in #38 until it becomes available.


No mention of PrintDocument control

This code example also uses the PrintDocument control but makes no mention of it. I'd happily submit a PR but I'm not sure of the WPF equivalent.

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

ID: 586c8a82-ecb3-f8f9-dea9-b0b6a344210e
Version Independent ID: ce7d22a1-32d6-e117-6cc6-3dc94edadf16
Content: How to print a Windows Form - Windows Forms .NET
Content Source: dotnet-desktop-guide/net/winforms/printing/how-to-print-windows-form.md
Product: dotnet-desktop
Technology: dotnet-winforms
GitHub Login: @adegeo
Microsoft Alias: adegeo

You're right, that is totally missing! I fyou would like to contribute, we're totally open to it. The WPF and WinForms docsets are evolving at different speeds, so don't worry about WPF if you're working in th WinForms area.
And I'm remembering correctly, WPF uses an entirely different printing API.

Planning to improve and submit a PR in the next few days. 😄


Integration reports device unknown sporatically and floods log

Version of the custom_component
Version 0.4.3

Configuration
I have one device configured via UI and you do not use YAML for config

Describe the bug
I have just setup two ESPHome BT Proxies and I have no local BT device on HA. I have one noname small BLE iBeacon device.
At first the integration seems to work great and as expected. But then the device suddenly appear unknown and when that happens the HA log gets flooded as seen below
Debug log

2024-01-09 21:34:46.850 WARNING (MainThread) [custom_components.bermuda] Device changed TX-POWER! That was unexpected: f6:0a:34:1a:0d:03 10dB
2024-01-09 21:34:46.852 WARNING (MainThread) [custom_components.bermuda] Device changed TX-POWER! That was unexpected: cb:d1:5c:2e:17:0e -127dB
2024-01-09 21:34:51.652 WARNING (MainThread) [custom_components.bermuda] Device changed TX-POWER! That was unexpected: f6:0a:34:1a:0d:03 -127dB
2024-01-09 21:34:51.652 WARNING (MainThread) [custom_components.bermuda] Device changed TX-POWER! That was unexpected: fe:1f:3b:98:cc:e6 -127dB
2024-01-09 21:34:56.652 WARNING (MainThread) [custom_components.bermuda] Device changed TX-POWER! That was unexpected: f6:0a:34:1a:0d:03 10dB
2024-01-09 21:34:56.652 WARNING (MainThread) [custom_components.bermuda] Device changed TX-POWER! That was unexpected: fe:1f:3b:98:cc:e6 10dB
2024-01-09 21:34:56.652 WARNING (MainThread) [custom_components.bermuda] Device changed TX-POWER! That was unexpected: dd:7a:8c:77:be:df 10dB
2024-01-09 21:34:56.652 WARNING (MainThread) [custom_components.bermuda] Device changed TX-POWER! That was unexpected: cb:d1:5c:2e:17:0e 10dB
2024-01-09 21:35:01.652 WARNING (MainThread) [custom_components.bermuda] Device changed TX-POWER! That was unexpected: f6:0a:34:1a:0d:03 -127dB
2024-01-09 21:35:01.652 WARNING (MainThread) [custom_components.bermuda] Device changed TX-POWER! That was unexpected: dd:7a:8c:77:be:df -127dB
2024-01-09 21:35:01.652 WARNING (MainThread) [custom_components.bermuda] Device changed TX-POWER! That was unexpected: cb:d1:5c:2e:17:0e -127dB
2024-01-09 21:35:06.652 WARNING (MainThread) [custom_components.bermuda] Device changed TX-POWER! That was unexpected: d2:18:8c:f7:4f:93 -127dB
2024-01-09 21:35:06.653 WARNING (MainThread) [custom_components.bermuda] Device changed TX-POWER! That was unexpected: dd:7a:8c:77:be:df 10dB
2024-01-09 21:35:11.651 WARNING (MainThread) [custom_components.bermuda] Device changed TX-POWER! That was unexpected: d2:18:8c:f7:4f:93 10dB
2024-01-09 21:35:11.652 WARNING (MainThread) [custom_components.bermuda] Device changed TX-POWER! That was unexpected: dd:7a:8c:77:be:df -127dB
2024-01-09 21:35:16.652 WARNING (MainThread) [custom_components.bermuda] Device changed TX-POWER! That was unexpected: d2:18:8c:f7:4f:93 -127dB
2024-01-09 21:35:16.653 WARNING (MainThread) [custom_components.bermuda] Device changed TX-POWER! That was unexpected: dd:7a:8c:77:be:df 10dB
2024-01-09 21:35:16.653 WARNING (MainThread) [custom_components.bermuda] Device changed TX-POWER! That was unexpected: e7:b6:6a:84:73:bc -127dB
2024-01-09 21:35:16.653 WARNING (MainThread) [custom_components.bermuda] Device changed TX-POWER! That was unexpected: cb:d1:5c:2e:17:0e 10dB
2024-01-09 21:35:21.651 WARNING (MainThread) [custom_components.bermuda] Device changed TX-POWER! That was unexpected: d2:18:8c:f7:4f:93 10dB
2024-01-09 21:35:21.652 WARNING (MainThread) [custom_components.bermuda] Device changed TX-POWER! That was unexpected: f6:0a:34:1a:0d:03 10dB
2024-01-09 21:35:21.652 WARNING (MainThread) [custom_components.bermuda] Device changed TX-POWER! That was unexpected: e7:b6:6a:84:73:bc 10dB
2024-01-09 21:35:26.654 WARNING (MainThread) [custom_components.bermuda] Device changed TX-POWER! That was unexpected: dd:7a:8c:77:be:df -127dB
2024-01-09 21:35:26.655 WARNING (MainThread) [custom_components.bermuda] Device changed TX-POWER! That was unexpected: e7:b6:6a:84:73:bc -127dB
2024-01-09 21:35:26.655 WARNING (MainThread) [custom_components.bermuda] Device changed TX-POWER! That was unexpected: cb:d1:5c:2e:17:0e -127dB
2024-01-09 21:35:31.653 WARNING (MainThread) [custom_components.bermuda] Device changed TX-POWER! That was unexpected: dd:7a:8c:77:be:df 10dB
2024-01-09 21:35:31.653 WARNING (MainThread) [custom_components.bermuda] Device changed TX-POWER! That was unexpected: e7:b6:6a:84:73:bc 10dB
2024-01-09 21:35:36.652 WARNING (MainThread) [custom_components.bermuda] Device changed TX-POWER! That was unexpected: f6:0a:34:1a:0d:03 -127dB
2024-01-09 21:35:41.653 WARNING (MainThread) [custom_components.bermuda] Device changed TX-POWER! That was unexpected: d2:18:8c:f7:4f:93 -127dB
2024-01-09 21:35:41.654 WARNING (MainThread) [custom_components.bermuda] Device changed TX-POWER! That was unexpected: fe:1f:3b:98:cc:e6 -127dB
2024-01-09 21:35:41.655 WARNING (MainThread) [custom_components.bermuda] Device changed TX-POWER! That was unexpected: dd:7a:8c:77:be:df -127dB
2024-01-09 21:35:46.653 WARNING (MainThread) [custom_components.bermuda] Device changed TX-POWER! That was unexpected: d2:18:8c:f7:4f:93 10dB
2024-01-09 21:35:46.654 WARNING (MainThread) [custom_components.bermuda] Device changed TX-POWER! That was unexpected: f6:0a:34:1a:0d:03 10dB
2024-01-09 21:35:46.655 WARNING (MainThread) [custom_components.bermuda] Device changed TX-POWER! That was unexpected: fe:1f:3b:98:cc:e6 10dB
2024-01-09 21:35:51.652 WARNING (MainThread) [custom_components.bermuda] Device changed TX-POWER! That was unexpected: f6:0a:34:1a:0d:03 -127dB
2024-01-09 21:35:51.653 WARNING (MainThread) [custom_components.bermuda] Device changed TX-POWER! That was unexpected: cb:d1:5c:2e:17:0e 10dB

I have put back the integration.
I will add updates step by step.
It is the both distance and area sensors that occationally go to unknown. The device_tracker stays at "home" as it shoud. The unknown lasts only 1-2 seconds. It happens once a minute. There are no error logged for this.
I have monitored the log and the sensors do not always go unknown even though the log gets populated rapidly (I call that flood but English is not my first language so maybe it is too harch). It adds 30 lines to the log per minute. That is a lot when you try to find if there are other problems with the installation. I will downgrade it to debug by hacking the code. I can see what you did on github.
These iBeacons are powered by small 2032 coin cells.  Maybe the integration needs to expect a slower update rate from iBeacons than you have from devices with much more battery capacity like phones.
These beacons do not seem to change MAC. They are made to be recognized and tracked unlike iPhones.
It is my subjective and with no proof "feeling" that the integration is not patient enough before it declares it unknown. And we are talking seconds.
These tags are purchased on Aliexpress. They look like this. I printed the plastic housing myself

I will return with more that you asked for later

I have some more data. I put a beacon in the kitchen and one temporarily in my office where 4 computers were on. It is interference that jams the one in the office. The kitchen one does not change to unknown and its distance jumps between 0.4 and 1 meter (it is 0.3 m). The ofiice one (named living room) jumps between several meters and 0.5. Interference cannot be avoided. Bluetooth uses frequency hopping so interference is not constant. So you may consider a time out of a few seconds more before putting the state to unknown. That will help people doing automations based on area to avoid having to manage frequent unknown states

I realize that when I raised this bug I made a huge mistake. I wrote Unknown. The state is unavailable.
So to wrap up. There are two issues and they are totally independent.

the logging relates to bluetooth devices in my house that I never intended to track. Many are probably Hue light bulbs that run Zigbee and just polite the radio spectrum with bluetooth. Lowering the debug level to debug does it for me.

the unavailable issue. This is surely interference. After I relocated the proxy and put the iBeacon closer the states are stable and known now for 8 hours. If the interference is massive then unavailable is the right state. Otherwise we cannot recognize when the beacon leaves the house. But if the interference is just packets that are lost when the frequency hopping hits a wifi or thread or zigbee transmission, which is seen as unavailable for 1-2 seconds in the UI then I think the user is better off that the integration has a little hangtime before it reports unavailable. Or increase it if it already has one. An iBeacon should transmit at least one per second so we are taking very few seconds hangtime. Is there already one? If so I can experiment with increasing it

The logging won't be caused by zigbee packets, it's literally a bluetooth device sending an advertisement that includes a value specifying a certain power level, then sending another one where it says it is using a different tx power level - it's not interference in the logging case but the deliberate behaviour of some bluetooth devices. But that's solved for you now so we'll concentrate on the unavailable part.
tldr: Your Maximum Radius setting in Bermuda might be too low. Try 30 metres or more.
There's a few things to consider.

As you mention, bluetooth is using the shared 2.4GHz ISM spectrum, so we expect it to be an unreliable mechanism. Lost packets are normal and expected, and radio propagation above 900MHz is tightly bound with occult practices.
A single BLE Advertisement at the RF layer is typically a given packet, sent on the three advertising channels one after the other (so in the order of <6ms or so - there might be an exact number for that).
Devices may send an advertisement at any interval from 20ms to 10.24 seconds. (Interestingly, devices with advertising intervals higher than 1.8seconds are really difficult to connect to in linux)
A receiver like the ble proxy needs to decide how to listen, since it can only listen on one bluetooth channel at a time, and also in the case of ESP32 devices that are using Wifi, it also has to spend some of that time listening/sending wifi traffic instead, as they only have a single radio in them.

Soo... this leads us to:

What configuration are you using on the two ESPHome proxies? Specifically are you using defaults for interval and window under:

esp32_ble_tracker:
  scan_parameters:
    interval: 320ms
    window: 30ms

The above values are the defaults if you don't specify anything^esphomeble. The interval is the time between each window, and a window is the amount of time it spends listening to a single ble channel.
So we have three advertising channels (37, 38, 39) ^bleadv, and with the default values the ESP32 will spend 30ms listening on channel 37, then not listen for 290ms (it can do other tasks and wifi comms in that period), then listen to channel 38 for 30ms and so-on. So in bluetooth terms you get something like:
Time--->>>
|RX(37)|-----------------Deafness---------------|RX(38)|---------------Deafness---------------|RX(39)|----

Obviously this means it's going to miss A LOT of packets - since it's not even listening for 90% of the time! Transmitters will add a random delay between 0 and 10ms to each advertising interval, to ensure that devices don't (always) collide, and likewise the advertising interval should slide over the listening window over time.
This is ok-ish for things like a thermometer that advertises every second but the data stays relevant for many seconds, or a device that one intends to connect to and waiting a second or two for it to show up in a list is OK. But when we want to track things moving around (or if you have a BLE device sending a Switch command or  other transient event) it becomes more important to lose fewer packets.
In my experimentation I have found that configuring the ESP with an interval of 1000ms and a window of 900ms is "pretty good", I get packets at an interval of 2 to 4 seconds typically, perhaps up to 6 seconds if I'm unlucky (this is for my watch which transmits at ~ 1s intervals). If you set the window too close to the interval then the ESP won't have enough time to perform wifi tasks, and will start losing its connection, but any gap between them is dead-time that you're not listening for bluetooth packets. Using a large interval  increases one's chances of hearing every advert at least once in a single window, but the larger the interval the more likely some wifi stuff is to time out, or the amount of data (due to received BLE adverts) that needs to be sent via wifi might be too much to send in the available dead-time.
Of course an esp32 with ethernet could run with much tighter timings for minimum dead-time and quicker cycling between channels and quicker reports upstream (but the defaults aren't set up for that either). Bottom line: experimenting with window and interval is very worthwhile, but beware that as soon as you get away from the very conservative defaults your odds of not being able to connect to it via wifi (say, in order to flash it back to sensible values) might be unlikely. Flashing via usb/serial will always get you back, though.
I know that might be a lot more background than desired, but it's pretty important in order to understand what we're up against and the various places that our data likes to disappear on us!
So for a bit more info, I'd suggest:

Install NRFConnect on a phone, and use it to show you what the advertising interval is from your beacon. Eg, here's what it shows for my watch and a generic BLE Beacon tag:

Use the dump_devices service in Bermuda to look at what the interval history looks like for that device. Eg:

What is your Bermuda configuration? If you have CONF_MAX_RADIUS set to something small then it would be correct for the beacon to be marked Unknown if the estimated range is beyond that distance. If you want it to always read as near it's closest proxy regardless of how near, set it large. I use 30m:

I suspect that your max radius might be too small, because the way it should work is that we persist the closest measurement regardless of age, we only consider the freshness of the advert when choosing between two proxies, in which case a newer advert wins even if an older one is closer (within a certain age) - this will likely be modified soon, but the max_radius setting is what's probably hitting you right now.

By the way I like the printed key-fob case for the module! Looks sturdy but space-efficient.

Thanks for a very detailed follow up. The reference to Hue bulbs and the logging is that the hue bulbs are zigbee but they also run bluetooth and annouce their presence for those that want to control them by BT. I cannot imagine why anyone would do that. I would love to be able to turn the BT radio off in these bulbs but you cannot.
I will play with the settings tonight when I am home from work.
The BT proxy that give the Unavailable is actually the Ethernet wired one. It is using this setting
esp32_ble_tracker:
  scan_parameters:
    interval: 1100ms
    window: 1100ms
    active: true

which is default for the wired Olimax ESP installed via https://esphome.io/projects/?type=bluetooth
I will try and experiement as you suggests

Hi. I think I have some important info now - following your advice
I never touched any of the Bermuda defaults. I only added my two beacons. So the Max radius for simple Area detection was 3 meters. I increased that to 6 meters. And I moved the beacon to a distance of 1.1 meters instead of the 20 cms.
I have seen several reports of the distance peaking to above 3 meters. So that explains the Unavailable (which is actually shown as Unknown in the graphical presentation in HA so I was not complete idiot when I reported it).  So mayabe the integration should install with some larger defaults?
We agree that the logging is resolved with the downgrade to debug. But I know you really want to know what devices are reporting the TX power jumps. I installed the NRF Connect on an Android (I had it on iPhone but it does not allow to show MAC it seems). And the result is..... Tada.
ALL are Hue Bulbs. All. I did not find a single example that was not. The Hue bulbs create this spectrum polution. Yes the bluetooth is a feature so a newbie can pretend he has a smarthome by turning a few bulbs on and off using the Hue app with just BT. And yes it helps provisioning the bulbs. But I wish they would turn the Bluetooth radio off once they are paired with a Zigbee coordinator. But we cannot fix Philips Hue. We have to live with it.  But that is the root of those strange transmissions so now you know.
In summary

Logging fixed by downgrading to debug
The unavailable could be improved by shipping a larger default value for the area detect radius. But if the beacon really is too far away - the state is correct. It is unknown then.

Thanks for following up on this.
Good to know that it was the hue bulbs in your case that have the varying tx power.
The default for max radius has been 20 metres since about v0.3.1 in October, (it was 3m prior to that) so perhaps you had previously installed an older version and had an older default from back then? Since the current default is 20m that should take care of "most" installations. For those wanting a more reliable "assertion" that a device has left the area reducing it could be helpful, but I won't worry about tuning the default further until I do more work on the selection algo.
Glad we got to the bottom of it! I'll close this out now since new installs should be getting the 20m max radius by default.

Thanks. Maybe I changed the value to 3 m and forgot. I am only human. Thanks for all the help and for this cool integration. Adding my star


Propdef grammars should link each component value to its definition

Compare this version, in which each keyword or function in the propdef links to its property-specific definition
http://dev.w3.org/csswg/css-fonts/#font-variant-prop
to this one, in which only  get linked to their  definition
http://dev.w3.org/csswg/css-fonts/Overview.html#font-variant-prop

(This might require additional markup support from the author.)

There's nothing to do here on the Bikeshed side; it already has all the capabilities necessary.  I just marked it up differently than the original spec did.

No, this is not fixed. E.g. the 'ordinal' keyword in the propdef does not link to its definition, as it does in the non-Bikeshedded version.

Again:

There's nothing to do here on the Bikeshed side; it already has all the capabilities necessary. I just marked it up differently than the original spec did.

Can you mark it up in the way the Fonts editor wants it to be marked up then?

We don't do that for any other spec.

I'm not sure what's the problem here. jdaggett's linking scheme (each keyword in the propdef to its definition) is very clearly more useful. This is especially true for the Fonts spec, but I don't see why it wouldn't be more useful anywhere else. It seems to me that at least in most cases, we have enough information to do this linking. No?

Possibly.  Sometimes the important grammar term is a longer expression than a single keyword, but yeah, single keywords could probably link up automatically.

Right. I think what's needed here for parity is single keywords linking up as well as function names linking up. Is that fair?

I should be able to do that. Open up a new issue for it?

Um. That's exactly what this issue is about. Why not just reopen it?

Indeed it is.


Minified javascript/Release mode: cannot access "n" before initialization

Describe the bug
As time of writing, the culprit code sits on NewPermissionsSystem-Admin branch. This branch may have been merged to master or deleted at your time of reading.
Minified javascript throws "cannot access 'n' before initialization" error when you click in a dropdown list that is enhanced with Select2.
To Reproduce
Steps to reproduce the behavior:

Build the application in Release mode. See our documentation  to seed your local database.

Login as johndoe.

In main menu, click on 'Main' in section 'Administration'.

Click on 'Grant Global Permissions'.

Choose a value in the dropdown below "View assigned permissions for:"

There is a popup with javascript error.

At the right of screen, the assigned permissions look all messy.

They should rather display this way: a list of disabled Select2 dropdowns:

Expected behavior
Minified javascript should not throw an error, since non minified javascript works well (build the application in Debug mode).
Screenshots
See above
Environment:

OS: Windows 10
Browser: MS Edge, Chrome
Version: latest

Additional context
Help wished!

Two minified js files appear to be missing:

For the admin part, security_user_permissions is necessary because the viewselectedRole method called is part of this file:

Error is in

We need to change this for load minified file in release mode.

That fixed, a new 404 raised:

Please. Open New issue for this bug :)


Cannot create new 'Web App' with NPM on Windows 10

Sails version: 1.0.2
Node version: 8.9.4
NPM version: 6.1.0
DB adapter name: N/A
DB adapter version: N/A
Operating system: 10

 info: Starting app...

error: A hook (`userconfig`) failed to load!
error:
error: As of Sails v1, `sails.config.globals._` must be either `false` or a locally-installed version of Lodash (typically `require('lodash')`).  For more info, see http://sailsjs.com/config/globals

error: Could not load Sails app.
error:
error: Tips:
error:  • First, take a look at the error message above.
error:  • Make sure you've installed dependencies with `npm install`.
error:  • Check that this app was built for a compatible version of Sails.
error:  • Have a question or need help?  (http://sailsjs.com/support)

This is a recent problem having installed a running version of 'Web App' previously.
When using the the cmd line install the 'Web App' install looks like the 'Empty' version of the install.
I have updated npm and re-installed sails.
This user may have had this issue also https://github.com/balderdashy/sails/issues/4410

ok, fixed!

ok, fixed!

ok, fixed!

I got the same error on windows, but after an 'npm install', it lifted the web app. There is a script that's supposed to do this automatically, but it doesn't work for bash/windows.

@elipeters @streleck Hey, does this still occur for Sails v1.1.0 in Windows?

I just did a fresh install of sails version 1.1.0.  Dependencies didn't automatically install, giving an error running the install script
Failed to install dependencies. New app was generated successfully, but some dependencies in node_modules/ are probably still incomplete or missing.
Manually running npm install in the project worked and after that I was able to lift successfully.


Define format of language reference page

Currenlty pages describing a language supported by Codewars are quite comprehensive, but I think they could be both standardized and a bit richer. I thought about including following information:
✔ - already is there
⚠ - is there, but could be improved
❌ - is not there, IMO important
❓ - could be useful, but not sure

language slug/id used in code blocks and url routes ⚠  (it;s already there, but not labelled, so I did not even know that what I am looking at is language ID)
available runtimes and versions ✔
Timeout ✔
Test frameworks ⚠ it's already there, but often is missing a version, and it could use a link to the framework reference or something
Available packages ✔
Command line used for compilation and running ❌
How solution is prepared, built and run: files are concatenated, put in some module, etc. ❌
Some interesting details like path to solution file if tests would like to read it ❓
Icon used by Codewars ❌
Link to CW docs, tutorials and howtos related to the language: authoring translation into this language, creating tests in this language (they will be appropriately tagged, so maybe it's not needed?) ❓
Notes on frequently encountered issues or problems (can;t think of anything specific ATM, but I believe there are some) ❓

What do you think? What else would you add?

Some points might become redundant with tutorials about writing tests in that language (8 & 11 especially), so maybe just the link to the related page could be enough for those.

I can think of a couple of specific scenarios it would be helpful:

missing -O2 in C++ 14 would explain why solutions are terribly slow,
compiler command line for NASM would clarify some things, like 32bit vs 64 bit
-Wall for C++ would explain amount of compilation warnings
-Xmx and -Xms for Java would clarify amount of memory available
paths used by compiler and solution: working dir, solution file name (basically pt 8)
I believe there are many more interesting things to find there in current setup, for various languages.

Another benefit (?) would be that more details about runtime would be known, potentially making it easier to create some highly hermetic kata related to language internals, but it was not my initial intention behind this suggestion.

(I definitely don't do enough low language stuff... XD )
:+1:

4. Test frameworks :warning: it's already there, but often is missing a version, and it could use a link to the framework reference or something

The version depends on the language version so I was going to include them in packages.
Link to the website can be added and our docs will be listed in the sidebar.

6. Command line used for compilation and running

I'll add flags field.

7. How solution is prepared, built and run: files are concatenated, put in some module, etc.

:+1:

8. Some interesting details like path to solution file if tests would like to read it

This needs a dedicated page. It's always at /workspace/solution.txt for any language. Older language versions have /home/codewarrior symlinked to /workspace so /home/codewarrior/solution.txt works on those, but should be updated to /workspace/solution.txt.

9. Icon used by Codewars

I don't think it's that important, but nice to have. I should create a new repository for the language icons.

10. Link to CW docs, tutorials and howtos related to the language
11. Notes on frequently encountered issues or problems

Just include the language in languages field and it'll show up on the sidebar.

paths used by compiler and solution: working dir, solution file name (basically pt 8)
I believe there are many more interesting things to find there in current setup, for various languages.

I'm not going to document minor details because I wouldn't want kata tightly coupled with the current environment. I'll consider exposing some information in some general form (like environment variables) if the authors find them useful.


mips64: define SIGSTKSZ

r? @alexcrichton

@bors: r+

:pushpin: Commit 3490cfe has been approved by alexcrichton

:hourglass: Testing commit 3490cfe with merge 49d64ca...

:sunny: Test successful - status-appveyor, travis
Approved by: alexcrichton
Pushing 49d64cae0699ed9d9ed84810d737a26b0b519da8 to master...


trie value for except should not inherite if  [overlaps between except and allow CIDR] or [except is larger than allow CIDR] ; trie value for except should inherite if except is smaller than allow cidr

Issue #, if available:
Now there is an overlap between allow ip cidrs and except, here is the case:
  policyTypes:
  - Egress
  egress:
  - to:
    - ipBlock:
        cidr: <IP_ADDRESS>/24
    ports:
    - port: 8080
  - to:
    - ipBlock:
        cidr: <IP_ADDRESS>/16
        except:
        - <IP_ADDRESS>/24
    ports:
    - port: 8081

Here, the ebpf egress map is :
Key : IP/Prefixlen - <IP_ADDRESS>/24
-------------------
Value Entry :  0
Protocol -  TCP
StartPort -  8080
Endport -  0
-------------------
-------------------
Value Entry :  1
Protocol -  TCP
StartPort -  8081
Endport -  0
-------------------
*******************************
Key : IP/Prefixlen - <IP_ADDRESS>/16
-------------------
Value Entry :  0
Protocol -  ANY PROTOCOL
StartPort -  0
Endport -  0
-------------------
*******************************

Description of changes:
trie key <IP_ADDRESS>/24 should not have TCP 8081, which belongs to <IP_ADDRESS>/16 but except <IP_ADDRESS>/24.
We should first collect all the L4Info for nonHostCIDR, and then handle the exceptions. This is because when the eBPF program receives a packet, it matches against the smallest CIDR. If an exception is contained within a certain CIDR, then this exception should inherit the L4Info of that CIDR.
Therefore, after processing all the L4Info associated with the CIDRs, we will handle the exceptions:
For a specific exception (let's call it exceptA), we need to iterate through all the CIDRs and their L4Info. If:

A certain CIDR contains exceptA and the exceptions of this CIDR do not contain exceptA, then the Trie Value for exceptA should inherit the L4Info of this CIDR.
A certain CIDR contains exceptA, and this CIDR has an exception that includes exceptA, then the Trie Value for exceptA should not inherit the L4Info of this CIDR.
A certain CIDR does not contain exceptA, then exceptA should not inherit the L4Info of this CIDR.

Finally, we will process all the CIDRs and exceptions, using these as keys to write into the eBPF map's trie, and determine the corresponding L4Info. If the length of the L4Info is 0, we will write a RESERVE. If it is not 0, we will write the values according to the StartPort, EndPort, and Protocol of the L4Info.
after change，the ebpf egress map is:
Key : IP/Prefixlen - <IP_ADDRESS>/24
-------------------
Value Entry :  0
Protocol -  TCP
StartPort -  8080
Endport -  0
-------------------
*******************************
Key : IP/Prefixlen - <IP_ADDRESS>/16
-------------------
Value Entry :  0
Protocol -  TCP
StartPort -  8081
Endport -  0
-------------------
*******************************

port 8081 for <IP_ADDRESS>/16 but except <IP_ADDRESS> has been removed
For another case , which e :
  policyTypes:
  - Egress
  egress:
  - to:
    - ipBlock:
        cidr: <IP_ADDRESS>/24
    ports:
    - port: 8080
  - to:
    - ipBlock:
        cidr: <IP_ADDRESS>/16
        except:
        - <IP_ADDRESS>/25
    ports:
    - port: 8081

after change , we can get :
Key : IP/Prefixlen - <IP_ADDRESS>/24
-------------------
Value Entry :  0
Protocol -  TCP
StartPort -  8080
Endport -  0
-------------------
-------------------
Value Entry :  0
Protocol -  TCP
StartPort -  8081
Endport -  0
-------------------
*******************************
Key : IP/Prefixlen - <IP_ADDRESS>/24
-------------------
Value Entry :  0
Protocol -  TCP
StartPort -  8080
Endport -  0
-------------------
*******************************
Key : IP/Prefixlen - <IP_ADDRESS>/16
-------------------
Value Entry :  0
Protocol -  TCP
StartPort -  8081
Endport -  0
-------------------
*******************************

except <IP_ADDRESS>/25 is in allow cidr <IP_ADDRESS>/24, so L4Info should gather <IP_ADDRESS>/24'sport 8080 and <IP_ADDRESS>/16's port 8081.
and the last case:
  policyTypes:
  - Egress
  egress:
  - to:
    - ipBlock:
        cidr: <IP_ADDRESS>/24
    ports:
    - port: 8080
  - to:
    - ipBlock:
        cidr: <IP_ADDRESS>/16
        except:
        - <IP_ADDRESS>/23
    ports:
    - port: 8081

after change , we can get :
Key : IP/Prefixlen - <IP_ADDRESS>/24
-------------------
Value Entry :  0
Protocol -  TCP
StartPort -  8080
Endport -  0
-------------------
*******************************
Key : IP/Prefixlen - <IP_ADDRESS>/16
-------------------
Value Entry :  0
Protocol -  TCP
StartPort -  8081
Endport -  0
-------------------
*******************************
Key : IP/Prefixlen - <IP_ADDRESS>/23
-------------------
Value Entry :  0
Protocol -  RESERVERD
StartPort -  0
Endport -  0
-------------------
*******************************

we should block any packet that in <IP_ADDRESS>/23 but not in <IP_ADDRESS>/25, and if packet that in <IP_ADDRESS>/24, it matches <IP_ADDRESS>/24, allowing port 8080.
therefore, for an except cidr, if no other allow cidr (for except's parent allow cidr, L4Info should not inherit) contains it , we should deny all ports.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

We have a open PR under review to fix this same issue https://github.com/aws/aws-network-policy-agent/pull/344


[improve][function] Support Record<?> as WindowFunction output type

Motivation
Same as https://github.com/apache/pulsar/pull/16041 for WindowFunction
Modifications
Detect and unwrap Record type in getFunctionTypes if the class is a WindowFunction
Verifying this change

[ ] Make sure that the change passes the CI checks.

This change added tests and can be verified as follows:
Run FunctionCommonTest::testGetFunctionTypes
Does this pull request potentially affect one of the following parts:
no
If yes was chosen, please highlight the changes

Dependencies (does it add or upgrade a dependency): (yes / no)
The public API: (yes / no)
The schema: (yes / no / don't know)
The default values of configurations: (yes / no)
The wire protocol: (yes / no)
The rest endpoints: (yes / no)
The admin cli options: (yes / no)
Anything that affects deployment: (yes / no / don't know)

Documentation
Check the box below or label this PR directly.
Need to update docs?

[x] doc-required
(Your PR needs to update docs and you will update later)

[ ] doc-not-needed
(Please explain why)

[ ] doc
(Your PR contains doc changes)

[ ] doc-complete
(Docs have been already added)

Hi @cbornet This improvement is introduced in the 2.11 release. Did you have any plans for the doc update?

There doesn't seem to be a place where writing a Window function is documented so I don't know where to add this.

There doesn't seem to be a place where writing a Window function is documented so I don't know where to add this.

If it's a developer's task, you can consider adding it to the How to develop topic.
More relevant topics for X-ref linking:

Window function concept
Start a window function

@momo-jun I opened https://github.com/apache/pulsar/issues/18674 to add doc on how to write a window function


How do I have full control over tab labels in extension?

I am making my own extensions.
Register an arbitrary schema using registerFileSystemProvider,
FileSystemProvider and have the ability to display markdown files without substance.
Example
anyTest://test/1234
Is there any way to display an arbitrary string instead of 1234 when the above file path is opened?
Of course it is not fixed, each number will be a completely different content string.
I can't change the file path to something like anyTest://test/needleText.md because links like [/test/1111] already exist in my markdown text.
### Tasks

Thank you very much.
I was wondering if there was an API I was missing, but it helped to clarify that there wasn't one!


fix fix memory GC details and join probe catch bad_alloc

Proposed changes
Issue Number: close #xxx
Problem summary

Fix Redhat 4.x OS /proc/meminfo has no MemAvailable, disable MemAvailable to control memory.
vm_rss_str and mem_available_str recorded when gc is triggered, to avoid memory changes during gc and cause inaccurate logs.
join probe catch bad_alloc, this may apply for 64G memory at a time, avoid OOM.
Modify document doris_be_all_segments_num and doris_be_all_rowsets_num names.

Checklist(Required)

[ ] Does it affect the original behavior
[ ] Has unit tests been added
[ ] Has document been added or modified
[ ] Does it need to update dependencies
[ ] Is this PR support rollback (If NO, please explain WHY)

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 33.73 seconds
stream load tsv:          469 seconds loaded<PHONE_NUMBER>9 Bytes, about 152 MB/s
stream load json:         36 seconds loaded<PHONE_NUMBER> Bytes, about 62 MB/s
stream load orc:          68 seconds loaded<PHONE_NUMBER> Bytes, about 15 MB/s
stream load parquet:          28 seconds loaded 861443392 Bytes, about 29 MB/s
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20230221113952_clickbench_pr_101050.html

run buildall

run buildall

run buildall


Question: Generating JSON Definition File at Build and Release Stage

Do you have a way of generating the json definition file without the function being hosted e.g.
swagger tofile --output [output] [startupassembly] [swaggerdoc]
This would help greatly when doing the build and release pipelines

Hi @aimackenzie
Functions do not have a proper Entry Point, so it's a bit complicated to pass anything as a param and make them work as a simple CLI application.
You have 2 options here:

Reference the func app from another netcoreapp and make all the work there, proxying all the requests.
Run them with the help of https://github.com/Azure/azure-functions-core-tools (which I do)

func start --build
curl to swagger json endpoint.


Can't make llama-cpp-python run with GPU on an AWS EC2 instance!

Hi,
I am trying to install llama-cpp-python with GPU support on an AWS EC2 instance (g4dn.xlarge, Ubuntu 22.04).
I set the following environment variables before running the installation:
FORCE_CMAKE = 1
LLAMA_CUBLAS = 1
I am using the following command for installation:
CMAKE_ARGS="-DLLAMA_CUBLAS=on" FORCE_CMAKE=1 pip install llama-cpp-python --force-reinstall --upgrade --no-cache-dir
It doesn't work. I see BLAS = 0 in the output:

I was able to make llama-cpp-python run with GPU on my local machine (NVIDIA GeForce RTX 3060, Ubuntu 22.04) using these steps but for some reasons, it doesn't work on an AWS EC2 instance. If someone has experienced this issue, please advise. I can really use some help!
Thank you and let me know if you need anything additional.

I have already followed #576 but couldn't find a resolution.

@mzen17 @imwide Do you have any suggestions?

Nevermind! I was able to make it work. I needed to install nvidia-cuda-toolkit on the ec2 instance:
sudo apt install nvidia-cuda-toolkit


drivers: clock_control: stm32f3: Enable PWR clock to access BDCR

BDCR and PWR_CR could be required for LSE or RTC for instance. Enable it here as for now, no sophisticated PM handling is available on F0 and F3 series.
Fixes #56449
Fixup for #56505

Thanks for taking the time to submit a PR!
Please amend your commit so that it shows your proper name as author/sign-off https://docs.zephyrproject.org/latest/contribute/guidelines.html#commit-guidelines
https://github.com/zephyrproject-rtos/zephyr/actions/runs/4961157687


Cannot trigger auth flow

I have just installed using sudo pip install gcalcli on OS X 10.10.2 (Python 2.7.6). When I try and call an intial function in order to trigger the auth flow, I get the following output:
WARNING:root:This function, oauth2client.tools.run(), and the use of the gflags library are deprecated and will be removed in a future version of the library.
Traceback (most recent call last):
  File "/usr/local/bin/gcalcli", line 2457, in <module>
    BowChickaWowWow()
  File "/usr/local/bin/gcalcli", line 2296, in BowChickaWowWow
    client_secret=FLAGS.client_secret
  File "/usr/local/bin/gcalcli", line 582, in __init__
    self._GetCached()
  File "/usr/local/bin/gcalcli", line 691, in _GetCached
    calList = self._CalService().calendarList().list().execute()
  File "/usr/local/bin/gcalcli", line 648, in _CalService
    http=self._GoogleAuth())
  File "/usr/local/bin/gcalcli", line 637, in _GoogleAuth
    storage)
  File "/Library/Python/2.7/site-packages/oauth2client/util.py", line 137, in positional_wrapper
    return wrapped(*args, **kwargs)
  File "/Library/Python/2.7/site-packages/oauth2client/old_run.py", line 120, in run
    authorize_url = flow.step1_get_authorize_url()
  File "/Library/Python/2.7/site-packages/oauth2client/util.py", line 137, in positional_wrapper
    return wrapped(*args, **kwargs)
  File "/Library/Python/2.7/site-packages/oauth2client/client.py", line 1827, in step1_get_authorize_url
    return _update_query_params(self.auth_uri, query_params)
  File "/Library/Python/2.7/site-packages/oauth2client/client.py", line 435, in _update_query_params
    parts = urllib.parse.urlparse(uri)
AttributeError: 'Module_six_moves_urllib_parse' object has no attribute 'urlparse'

Output of pip list:
altgraph (0.10.2)
bdist-mpkg (0.5.0)
bonjour-py (0.3)
dateutils (0.6.6)
gcalcli (3.2)
google-api-python-client (1.4.0)
httplib2 (0.9)
macholib (1.5.1)
matplotlib (1.3.1)
modulegraph (0.10.4)
numpy (1.8.0rc1)
oauth2client (1.4.7)
pip (6.0.8)
py2app (0.7.3)
pyasn1 (0.1.7)
pyasn1-modules (0.0.5)
pyobjc-core (2.5.1)
pyobjc-framework-Accounts (2.5.1)
pyobjc-framework-AddressBook (2.5.1)
pyobjc-framework-AppleScriptKit (2.5.1)
pyobjc-framework-AppleScriptObjC (2.5.1)
pyobjc-framework-Automator (2.5.1)
pyobjc-framework-CFNetwork (2.5.1)
pyobjc-framework-Cocoa (2.5.1)
pyobjc-framework-Collaboration (2.5.1)
pyobjc-framework-CoreData (2.5.1)
pyobjc-framework-CoreLocation (2.5.1)
pyobjc-framework-CoreText (2.5.1)
pyobjc-framework-DictionaryServices (2.5.1)
pyobjc-framework-EventKit (2.5.1)
pyobjc-framework-ExceptionHandling (2.5.1)
pyobjc-framework-FSEvents (2.5.1)
pyobjc-framework-InputMethodKit (2.5.1)
pyobjc-framework-InstallerPlugins (2.5.1)
pyobjc-framework-InstantMessage (2.5.1)
pyobjc-framework-LatentSemanticMapping (2.5.1)
pyobjc-framework-LaunchServices (2.5.1)
pyobjc-framework-Message (2.5.1)
pyobjc-framework-OpenDirectory (2.5.1)
pyobjc-framework-PreferencePanes (2.5.1)
pyobjc-framework-PubSub (2.5.1)
pyobjc-framework-QTKit (2.5.1)
pyobjc-framework-Quartz (2.5.1)
pyobjc-framework-ScreenSaver (2.5.1)
pyobjc-framework-ScriptingBridge (2.5.1)
pyobjc-framework-SearchKit (2.5.1)
pyobjc-framework-ServiceManagement (2.5.1)
pyobjc-framework-Social (2.5.1)
pyobjc-framework-SyncServices (2.5.1)
pyobjc-framework-SystemConfiguration (2.5.1)
pyobjc-framework-WebKit (2.5.1)
pyOpenSSL (0.13.1)
pyparsing (2.0.1)
pyrtm (0.4.2)
python-dateutil (1.5)
python-gflags (2.0)
pytz (2013.7)
rsa (3.1.4)
scipy (0.13.0b1)
setuptools (1.1.6)
simplejson (3.6.5)
six (1.9.0)
Twisted (13.2.0)
uritemplate (0.6)
xattr (0.6.4)
zope.interface (4.1.1)

I can't reproduce this..  Can you try reinstalling six?
pip install -U --force-reinstall six
Also, are you passing anything to gcalcli when you invoke it?  (For reference, I'm testing on OSX 10.10.2, Python 2.7.9, Homebrew.  Few modules different, but nothing that looks related.
pyOpenSSL (0.14)
python-dateutil (2.4.1)
pytz (2015.2)
setuptools (12.0.5)

)

I just tried reinstalling six but getting the same error. I'm invoking with gcalcli list and others return same error (e.g. gcalcli calm)

Are you using Homebrew, MacPorts or just the native Python installed on OSX?

I'm using the native bundled Python

I can't reproduce this on 10.10.2 with Python 2.7.6:
 » /usr/bin/python --version
Python 2.7.6

 » /usr/bin/python /usr/local/bin/gcalcli list
WARNING:root:This function, oauth2client.tools.run(), and the use of the gflags library are deprecated and will be removed in a future version of the library.
Your browser has been opened to visit:

    https://accounts.google.com/o/oauth2/auth?scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Furlshortener&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2F&response_type=code&client_id=232867676714.apps.googleusercontent.com&access_type=offline

If your browser is on a different machine then exit and re-run
this application with the command-line parameter

  --noauth_local_webserver

Authentication successful.
 Access  Title
 ------  -----
  owner  Family
  owner  Birthdays
  owner  Brian Hartvigsen
 reader  Birthdays

 » /usr/bin/python
Python 2.7.6 (default, Sep  9 2014, 15:04:36)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> ^D

Couldn't install pip as it tried to overwrite homebrew... sigh so I just did sudo /usr/bin/easy_install python-gflags google-api-python-client to get the required dependancies.  From what I can tell from the logs I have:

python-gflags 2.0
google-api-python-client 1.4.0
uritemplate 0.6
six 1.9.0
oauth2client 1.4.7
httplib2 0.9
simplejson 3.6.5
rsa 3.1.4
pyasn1-modules 0.0.5
pyasn1 0.1.7

At this point I've got nothing...

OK thanks, I appreciate the effort to reproduce. Feel free to close the issue.

Closing pending someone else who can reproduce.

I'm getting this same issue
Installed via sudo pip install gcalcli
Running for the first time, never authorised and when calling gcalcli list (or any other command) I get the following;
WARNING:root:This function, oauth2client.tools.run(), and the use of the gflags library are deprecated and will be removed in a future version of the library.
Traceback (most recent call last):
  File "/usr/local/bin/gcalcli", line 2457, in <module>
    BowChickaWowWow()
  File "/usr/local/bin/gcalcli", line 2296, in BowChickaWowWow
    client_secret=FLAGS.client_secret
  File "/usr/local/bin/gcalcli", line 582, in __init__
    self._GetCached()
  File "/usr/local/bin/gcalcli", line 691, in _GetCached
    calList = self._CalService().calendarList().list().execute()
  File "/usr/local/bin/gcalcli", line 648, in _CalService
    http=self._GoogleAuth())
  File "/usr/local/bin/gcalcli", line 637, in _GoogleAuth
    storage)
  File "/Library/Python/2.7/site-packages/oauth2client/util.py", line 137, in positional_wrapper
    return wrapped(*args, **kwargs)
  File "/Library/Python/2.7/site-packages/oauth2client/old_run.py", line 120, in run
    authorize_url = flow.step1_get_authorize_url()
  File "/Library/Python/2.7/site-packages/oauth2client/util.py", line 137, in positional_wrapper
    return wrapped(*args, **kwargs)
  File "/Library/Python/2.7/site-packages/oauth2client/client.py", line 1827, in step1_get_authorize_url
    return _update_query_params(self.auth_uri, query_params)
  File "/Library/Python/2.7/site-packages/oauth2client/client.py", line 435, in _update_query_params
    parts = urllib.parse.urlparse(uri)
AttributeError: 'Module_six_moves_urllib_parse' object has no attribute 'urlparse'

result of pip list
altgraph (0.10.2)
bdist-mpkg (0.5.0)
bonjour-py (0.3)
Cheetah (2.4.4)
dateutils (0.6.6)
gcalcli (3.2)
google-api-python-client (1.4.0)
httplib2 (0.9)
macholib (1.5.1)
Markdown (2.5.1)
matplotlib (1.3.1)
modulegraph (0.10.4)
numpy (1.8.0rc1)
oauth2client (1.4.7)
parsedatetime (1.4)
pip (6.1.1)
py2app (0.7.3)
pyasn1 (0.1.7)
pyasn1-modules (0.0.5)
pyobjc-core (2.5.1)
pyobjc-framework-Accounts (2.5.1)
pyobjc-framework-AddressBook (2.5.1)
pyobjc-framework-AppleScriptKit (2.5.1)
pyobjc-framework-AppleScriptObjC (2.5.1)
pyobjc-framework-Automator (2.5.1)
pyobjc-framework-CFNetwork (2.5.1)
pyobjc-framework-Cocoa (2.5.1)
pyobjc-framework-Collaboration (2.5.1)
pyobjc-framework-CoreData (2.5.1)
pyobjc-framework-CoreLocation (2.5.1)
pyobjc-framework-CoreText (2.5.1)
pyobjc-framework-DictionaryServices (2.5.1)
pyobjc-framework-EventKit (2.5.1)
pyobjc-framework-ExceptionHandling (2.5.1)
pyobjc-framework-FSEvents (2.5.1)
pyobjc-framework-InputMethodKit (2.5.1)
pyobjc-framework-InstallerPlugins (2.5.1)
pyobjc-framework-InstantMessage (2.5.1)
pyobjc-framework-LatentSemanticMapping (2.5.1)
pyobjc-framework-LaunchServices (2.5.1)
pyobjc-framework-Message (2.5.1)
pyobjc-framework-OpenDirectory (2.5.1)
pyobjc-framework-PreferencePanes (2.5.1)
pyobjc-framework-PubSub (2.5.1)
pyobjc-framework-QTKit (2.5.1)
pyobjc-framework-Quartz (2.5.1)
pyobjc-framework-ScreenSaver (2.5.1)
pyobjc-framework-ScriptingBridge (2.5.1)
pyobjc-framework-SearchKit (2.5.1)
pyobjc-framework-ServiceManagement (2.5.1)
pyobjc-framework-Social (2.5.1)
pyobjc-framework-SyncServices (2.5.1)
pyobjc-framework-SystemConfiguration (2.5.1)
pyobjc-framework-WebKit (2.5.1)
pyOpenSSL (0.13.1)
pyparsing (2.0.1)
python-dateutil (2.4.2)
python-gflags (2.0)
pytz (2013.7)
rsa (3.1.4)
scipy (0.13.0b1)
setuptools (1.1.6)
simplejson (3.6.5)
six (1.9.0)
Twisted (13.2.0)
uritemplate (0.6)
vobject (0.6.6)
xattr (0.6.4)
zope.interface (4.1.1)

and as per the above suggestions I ran pip install -U --force-reinstall six which was successful, but made no difference.
OSX 10.10.3
Python 2.7.6

I had exactly the same issue. Removing 'everything' that pip installed:sudo pip freeze | sudo xargs pip uninstall -y and reinstalling gcalcli from sources fixed the problem.
>pip list
dateutils (0.6.6)
gcalcli (3.2)
google-api-python-client (1.4.0)
httplib2 (0.9.1)
oauth2client (1.4.10)
pip (6.1.1)
pyasn1 (0.1.7)
pyasn1-modules (0.0.5)
python-dateutil (2.4.2)
python-gflags (2.0)
pytz (2015.4)
rsa (3.1.4)
setuptools (1.1.6)
simplejson (3.7.1)
six (1.9.0)
uritemplate (0.6)

I got the same error on OS X 10.10.3. I tried uninstalling and reinstalling. I'm using HomeBrew installed Python 2.7.

Hi,
I uninstalled gcalcli, reinstalled it from source, restarted the terminal and it worked like a charm.

Same problem here: OS X 10.10.4, built-in Python, sudo easy_install pip, sudo pip install gcalcli, gcalcli agenda =>
WARNING:root:This function, oauth2client.tools.run(), and the use of the gflags library are deprecated and will be removed in a future version of the library.
Traceback (most recent call last):
  File "/usr/local/bin/gcalcli", line 2555, in <module>
    BowChickaWowWow()
  File "/usr/local/bin/gcalcli", line 2384, in BowChickaWowWow
    allDay=FLAGS.allday
  File "/usr/local/bin/gcalcli", line 603, in __init__
    self._GetCached()
  File "/usr/local/bin/gcalcli", line 728, in _GetCached
    self._CalService().calendarList().list())
  File "/usr/local/bin/gcalcli", line 684, in _CalService
    http=self._GoogleAuth())
  File "/usr/local/bin/gcalcli", line 673, in _GoogleAuth
    storage)
  File "/Library/Python/2.7/site-packages/oauth2client/util.py", line 137, in positional_wrapper
    return wrapped(*args, **kwargs)
  File "/Library/Python/2.7/site-packages/oauth2client/old_run.py", line 120, in run
    authorize_url = flow.step1_get_authorize_url()
  File "/Library/Python/2.7/site-packages/oauth2client/util.py", line 137, in positional_wrapper
    return wrapped(*args, **kwargs)
  File "/Library/Python/2.7/site-packages/oauth2client/client.py", line 1873, in step1_get_authorize_url
    return _update_query_params(self.auth_uri, query_params)
  File "/Library/Python/2.7/site-packages/oauth2client/client.py", line 442, in _update_query_params
    parts = urllib.parse.urlparse(uri)
AttributeError: 'Module_six_moves_urllib_parse' object has no attribute 'urlparse'

Feels like a PR with a note in the docs would make this go away?


Animated.loop API

cc @vjeux
We have some situations where we want to animate a value between a and b, and then start over and keep going from a => b.  The code to do this is possible but it's kind of awkward to do it.
I wonder if we can add an Animated.loop API that would handle this... something like this:
componentDidMount() {
  Animated.loop(this.state.anim, { start: 0, end: 1 }).start();
}

componentWillUnmount() {
  this.state.anim.stopAnimation();
}

render() {
  return (
    <Animated.View style={{
      transform: [{ scale: this.state.anim.interpolate({
        inputRange: [0, 0.5, 1],
        outputRange: [1, 2, 1],
      })]
    }}/>
  );
}

Thoughts?

Yes! I want Animated.loop. Ideally it should look like this
Animated.loop(
  Animated.Sequence([
    Animated.timing(this.state.anim, {toValue: 0, duration: 0}),
    Animated.timing(this.state.anim, {toValue: 1}),
  ]),
).start()

unfortunately, I sucked when I implemented the API and added as an invariant that you can only run an animation once, and built quite some logic on this assumption.
So, there are two ways to fix that:

Actually remove that invariant and refactor all the code to make it properly work (the best solution).

Have Animated.loop take a function instead.

Animated.loop(() => Animated.sequence(...)).start()

Implementing this version is super easy, loops something like
function loop(anim) {
  return {
    start: function(cb) {
      anim().start(cb => loop(anim).start(cb));
    }
  }
}

(PS: you don't need to stop the animation when the component unmounts, when the animated view is unmounted, it's going to decrease the ref counting of the animation, and if it goes to 0, it's going to stop the animation by itself)

how about a stop method:
import {Animated} from 'react-native';

Animated.loop = (function(stopped) {
  return function loop(anim) {
    stopped = false;

    return {
      start(cb) {
        anim().start(() => {
          if(stopped) {
            return cb && cb();
          }
          loop(anim).start(cb);
        });

        return this;
      },
      stop(value) {
        stopped = true;
      }
    }
  }
})();

export default Animated;


call bosma schedulter function from inside function!!

i want to call function from inside function in class, but dont working!
working only on main !
note:scheduling object is inside from member functio of class

Please provide an example of what you are trying to do.

i mean
inside file :main.cpp
classA objectA
//call function
objectA.functionC();
and in file ClassA implentation cpp file
file ClassA.cpp
.ClassA::functionA (){
//implementation
}
ClassA::functionB (){
//implementation
}
ClassA::functionC (){
unsigned int max_n_threads = 12;
Bosma::Scheduler s(max_n_threads);
/*!!!!! dont working !!!!!!/
s.in(std::chrono::seconds(1),  { std::cout << "in one seconcde" << std::endl; });
/*!!!!! dont working !!!!!!/
s.interval(std::chrono::seconds(1), this {
this->functionB();
std::this_thread::sleep_for(std::chrono::seconds(5));
});
}

i mean bosm::scheduler as local variable inside function

Your example is very poorly done. Please read over what you write and edit it next time. Your comments aren't valid C++, and your attempted lambda functions aren't valid C++. You may need to pick up a tutorial or a textbook, and I recommend going over anything you write (including the spelling of words) and ensuring it is all correct.
Here is how you can do what you are trying to do:
s.interval(std::chrono::seconds(6), [this]() {
  functionB();
});

By the way, sleeping for 5 seconds after the function call with a 1 second interval is the same thing as a 6 second interval, see example.cpp for an explanation.
Alternatively, you can use this syntax:
s.interval(std::chrono::seconds(6), &ClassA::functionB, this)
I recommend this way.


Webhook validation request context passthrough

/kind cleanup
/hold
This PR is rebased on #3785
This PR passes through the request context of the webhook server to admission functions. This is primarily for the approval plugin.
NONE

Hi! Seems to need a rebase, #3785 is merged now 👍

/lgtm

Ahh, I think it has a hold already- will leave it to Josh to unhold then :)

/hold cancel