hcloud-python not recognized

Bug Report
I wanted to play around with Ansible+hcloud and pretty much copied the example from this tutorial. Executing the playbook gives an error (see below) that hcloud-python is missing even tough it is installed and pip3 show hcloud confirms it. Unfortunatly I'm not familiar with Python and don't know what the problem might be.
Current Behavior
user:~$ ansible-playbook hcloud.yml
ERROR! The Hetzner Cloud dynamic inventory plugin requires hcloud-python.

Environment

OS: Fedora 31
Python Version: 3.7.6
Hcloud-Python Version: 1.6.3 (installed with pip3 install --user hcloud)

Additional context/Screenshots
Playbook content:
---
# hcloud.yml
- name: Create a Server and a Volume with server
  hosts: localhost
  connection: local
  gather_facts: False
  user: root
  vars:
    hcloud_token: "{{ hcloud_token_testing }}"
  tasks:
    - name: Create a basic server
      hcloud_server:
          api_token: "{{ hcloud_token }}"
          name: my-server
          server_type: cx11
          image: ubuntu-18.04
          state: present
      register: server
    - name: Create a volume
      hcloud_volume:
          api_token: "{{ hcloud_token }}"
          name: my-volume
          size: 10
          server: "{{ server.hcloud_server.name }}"
          state: present

ansible.cfg contains this:
[inventory]
enable_plugins = hcloud

Ansible comes with a own python binary (and own pip). You need to lookup the ansible path. In there is a python binary.

Ansible comes with a own python binary (and own pip). You need to lookup the ansible path. In there is a python binary.

Thanks for the fast reply. Unfortunately it is of no help for me.

@dimejo Did you ever figure this out and find a solution? I'm having the same symptom, that same error message despite having installed hcloud-python using pip install hcloud as per https://hcloud-python.readthedocs.io/en/latest/installation.html :(

@dimejo Did you ever figure this out and find a solution?

Unfortunately not. I was unable to find Ansible's own python binary and spending hours to find a solution wasn't worth it for me.
But as you are using Docker you could try switching to Arch Linux as base image and see if the python-hcloud package from the community repos works.

Thanks @dimejo for your input. I've dug a bit further and will document any solutions I find here:

The first and probably simplest way to fix the problem is to install ansible using pip instead of apk. So instead of apk install ansible just make it pip install ansible- this made it work for me and installed a slightly newer version of ansible than what apk had, although it's worth noting that the apk installed ansible might be better tailored to the operating system and perhaps also more secure, I don't know. It's on the hand older in my case.


Various file types for Pages

What problem does this feature solve?
I have markdown files that I would like as pages. I can add a loader that compiles .md files to Vue components, but adding a page.md file in the pages directory doesn't seem to get registered as a page.
What does the proposed changes look like?
Agnostic file type/extension for pages as long as there's a loader that can compile it into a Vue component.

This feature request is available on Nuxt.js community (#c7151)

probably not what you are looking for but there is a nuxt module called nuxtent that allows .md files in pages

@uptownhr I checked them out and it doesn't seem like their pages support .md files; it just seems like they have Vue files that import .md files from the ~/components dir, which I can already do by simply adding a loader to the webpack config.


Added license scanning info

Preview here

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (521f59c) 78.50% compared to head (8af208b) 77.92%.
Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #674      +/-   ##
==========================================
- Coverage   78.50%   77.92%   -0.58%
==========================================
  Files          82       82
  Lines        5890     5890
==========================================
- Hits         4624     4590      -34
- Misses       1068     1100      +32
- Partials      198      200       +2

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

I am making a few minor changes to the interface after a discussion with rex https://github.com/google/osv-scanner/issues/671#issuecomment-1823770821 and will review this once that is merged!

Got it. Thanks @josieang. I will follow up with a few questions tomorrow.


Updating knownhosts to avoid warning when connecting over the CLI the first time

Hi,
When using the CLI, I'd like to get rid of the warning about the fingerprint. I would like to add a key in the knownhosts but I cannot find the host key on the server. Can anyone tell me how I can retrieve it?
F.
get_netconf_dir: Configuration directory "/root/.netopeer2-cli" did not exist, created.
load_config: No saved history.
load_config: No saved configuration.
> connect --login user1
The authenticity of the host 'localhost' cannot be established.
ssh-rsa key fingerprint is 2e:64:93:6d:7a:ce:39:cc:93:70:24:0b:6e:fe:3b:e3:31:46:4d:17.
Are you sure you want to continue connecting (yes/no)?

In fact, editing ~/.ssh/config to disable strict host key checking does that very well. Sorry for the noise.

Right, that would not have been my advice but it makes sense, libssh reads the config file and applies most of the parameters.


bugfix: lib/camping/reloader.rb

line 107 in function reload!
consider changing return if @mtime >= mtime to return if @mtime >= mtime rescue nil
this fixes a weird exception i get due to Eclipse uploading files with a strange initial mtime. Camping initially chokes on the nil value from #mtime but this suppresses that choking with no apparent ill side effects.

Thanks. I've fixed this as a part of a larger Reloader-refactoring.


CI: Add Python 3.10 and 3.11, update actions

A bit of CI maintenance:

Add Python 3.10 and 3.11 runs, and update the PyPy run to PyPy 3.9
Update the used actions to the latest versions
Also run on pushes, when manually triggered (workflow_dispatch)

I could not rebase and reuse the old PR https://github.com/bndr/pipreqs/pull/334

Codecov Report
All modified lines are covered by tests :white_check_mark:

:exclamation: No coverage uploaded for pull request base (next@cebc3f7). Click here to learn what that means.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##             next     #398   +/-   ##
=======================================
  Coverage        ?   86.97%
=======================================
  Files           ?        2
  Lines           ?      261
  Branches        ?        0
=======================================
  Hits            ?      227
  Misses          ?       34
  Partials        ?        0

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

You should mention the PR (and the author) in the commit. According to Alan's suggestion in https://github.com/bndr/pipreqs/pull/396#issuecomment-1742992660.

https://docs.python.org/3.12/whatsnew/3.12.html
add python 3.12 please

actually, please use all supported pythonv ersions and remove unsupported ones
https://devguide.python.org/versions/


WFLY-8656: External bean archives - support all bean discovery modes.

https://issues.jboss.org/browse/WFLY-8656
Test is taken from the original PR: https://github.com/wildfly/wildfly/pull/9978

retest this please

Retest this please


ListView in CarouselView

Hi,
When a ListView contains more items in the CarouselView. The ListView is very difficult to scroll up and down. Are there any properties from the CarouselView that I can use to make the ListView work correctly? I tried disabled the Carousel but it was still not working.
Thanks!

If you like this plugin you may set star 🌟


Request Statistics comparison table headers shows ms instead of %

Hi,
Table's headers shows [ms] while we compare statistics and switch to percentage
Should be [%]

Thank you

Hi @yobshans!
I am aware of it, thats why it read: The values show are in %. But I agree it would be better to change the units in the headers.

Done.


Use in ReactJs

Is possible to use this lib in React Web? If yes, is possible to show an example?

@RobinHerbots I can create the component, but when I use it, I don't make any mask. Do you have any other examples?

@RobinHerbots I managed to use it, but when I go to use it passing a string array in the mask property, it doesn't work as it should. Only apply the mask to the first mask of the array

Take a look at this example:
https://codesandbox.io/s/ant-design-inputmask-77wund
See if you can simulate the following errors:

If I type 123 it will return 123.* and it's correct, but if I try to delete it, nothing happens.
If I type 1234 it will return 123.4 and it's correct, but if I try to delete it, nothing happens.
If I type<PHONE_NUMBER>1 it will return 123.456.789-01 and it's correct, however if I type one more character, it doesn't change the mask.

hey @renerlemes this library implements inputmask with react fro u:
https://github.com/eduardoborges/use-mask-input/

@renerlemes ,
Is this solved?  Your example isn't accessible enymore.

@RobinHerbots It is now accessible again. You have inputmask version 5.0.0, if you update to 5.0.8 you will see the problem

import { Form, Input, Typography } from "antd";

import Inputmask from "inputmask";

export default function App() {
  const [value, setValue] = useState("");
  const [form] = Form.useForm();
  const inputRef = useRef();

  useEffect(() => {
    Inputmask({
      mask: ["999.999.999-99", "99.999.999/9999-99"],
      jitMasking: true
    }).mask("replacemewithinputref");
  }, []);

  const handleChange = (e) => {
    setValue(e.target.value);
  };
  return (
    <Form form={form}>
      <Form.Item label="No Mask" name="CpfCnpj" rules={[{ required: true }]}>
        <Input id="replacemewithinputref" inputRef={inputRef} onChange={handleChange} />
      </Form.Item>
      <Typography.Text>Mask: {value}</Typography.Text>
    </Form>
  );
}

This will do, ....
The problem with your example is that the jitMasking will format 123 to 123., .... so if you delete the . you will get the same value as before.
The question is, should the jitMasking behavior render the dot beforehand or only after typing the 4 in this case.
I guess after typing 4 except when the ; would be the last character of the mask.

It worked now! Thanks


better check on dmpro blueprints creation

added 2 tweaks on MC as well. Reason why GUI patches cannot be protected is because we change the terms. If we protect them and MC disabled the tooltip on hero will produce a NULL as it expects 3 parameters with this mod.


Laravel 5.5 ReflectionException: php artisan translator:flush

I get next exception:
[ReflectionException]
Method Waavi\Translation\Commands\CacheFlushCommand::handle() does not exist

Could you suggest something?
composer.lock:
{
            "name": "waavi/translation",
            "version": "2.3.1",
            "source": {
                "type": "git",
                "url": "https://github.com/Waavi/translation.git",
                "reference": "c89d1023cef62f26c2cbc431511fd8c08af69617"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/Waavi/translation/zipball/c89d1023cef62f26c2cbc431511fd8c08af69617",
                "reference": "c89d1023cef62f26c2cbc431511fd8c08af69617",
                "shasum": ""
            },
            "require": {
                "doctrine/dbal": "^2.5",
                "laravel/framework": "~5.5"
            },
            "require-dev": {
                "mockery/mockery": "^0.9.9",
                "orchestra/testbench": "~3.5",
                "phpunit/phpunit": "~6.0"
            },
            "type": "library",
            "autoload": {
                "psr-4": {
                    "Waavi\\Translation\\": "src/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Waavi",
                    "email"<EMAIL_ADDRESS>                    "homepage": "http://waavi.com"
                }
            ],
            "description": "A Translation package for Laravel 5 with database and cache support",
            "keywords": [
                "laravel",
                "laravel-translator",
                "localization",
                "translation",
                "translator",
                "waavi"
            ],
            "time": "2017-09-01T15:24:21+00:00"
        }

Maybe it is important to note: PHP 7.1

I renamed "fire" to "handle" in the CacheFlushCommand and it looks fixed

The same with: Waavi\Translation\Commands\FileLoaderCommand

Yes we need a 2.3.1 fix for the above, since artisan removed the support of fire() instead to use handle() now.

2.3.3 fixes this issue.


CDN notify scheduler task has been cleaned

Description

Related Issue

Motivation and Context

Screenshots (if appropriate)
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Documentation Update (if none of the other choices apply)

Checklist

[ ] Code compiles correctly.
[ ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

Codecov Report

Merging #1223 (5e7d29e) into main (bdca38b) will increase coverage by 0.23%.
The diff coverage is 19.51%.

:exclamation: Current head 5e7d29e differs from pull request most recent head bc791c3. Consider uploading reports for the commit bc791c3 to get more accurate results

@@            Coverage Diff             @@
##             main    #1223      +/-   ##
==========================================
+ Coverage   46.05%   46.28%   +0.23%
==========================================
  Files         133      134       +1
  Lines       10566    10606      +40
==========================================
+ Hits         4866     4909      +43
+ Misses       5154     5140      -14
- Partials      546      557      +11

Flag
Coverage Δ

Object-compatibility-e2etests
?

e2etests
?

unittests
46.28% <19.51%> (+0.23%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

cdn/supervisor/task/subscriber.go
0.00% <0.00%> (ø)

cdn/supervisor/task/task.go
42.85% <ø> (ø)

internal/dynconfig/dynconfig.go
57.37% <0.00%> (-4.03%)
:arrow_down:

internal/dynconfig/dynconfig_local.go
62.50% <0.00%> (-8.93%)
:arrow_down:

internal/dynconfig/dynconfig_manager.go
70.00% <0.00%> (-2.42%)
:arrow_down:

cdn/supervisor/task/manager.go
23.07% <22.22%> (-1.47%)
:arrow_down:

cdn/config/config.go
48.78% <100.00%> (+2.62%)
:arrow_up:

cdn/rpcserver/rpcserver.go
61.30% <100.00%> (+0.70%)
:arrow_up:

client/daemon/peer/piece_broker.go
89.74% <0.00%> (-2.57%)
:arrow_down:

client/daemon/rpcserver/subscriber.go
47.82% <0.00%> (-1.74%)
:arrow_down:

... and 4 more


Add FileName/Object key in error logging

Description of change
InodeError is logged mutliple times directly at error level. So, added Filename in FileDoesNotExist type. Could not add InodeErrorInfo for InodeDoesNotExist error type because it is called by get() of SuperBlockInner. It only has Inode number as a parameter.
Also added object key in UploadWriteError types.
For rest of the errors added object key wherever it was available.

Relevant issues:
#555
Does this change impact existing behavior?
No, it does not impact existing behaviour.

No breaking changes

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license and I agree to the terms of the Developer Certificate of Origin (DCO).

Closing this PR as new PR #665 is implemented in a new way to log filename in error messages.


chore: move unity project to folder

The basic idea is to have a folder structure like this, so the JS stuff doesn't get mixed with the Unity project:
.
unity-renderer\
unity-interface\
docs\

I won't see the 5000 files changed, if you make it pass the build I will happily approve it


[CodeCompletion] Reject all UserInaccessible decl attributes

Generalize a fix that removes __consuming from Code Completion to all inaccessible decl attributes.

@swift-ci please smoke test

Thanks!

After Ben gives this the thumbs up I’ll nominate for 4.2

⛵


update to docker_services.stop function

stop was not supported in current release of https://github.com/lovelysystems/lovely-pytest-docker, so we used accessed private functions, which is not ideal:
https://github.com/orchestracities/ngsi-timeseries-api/blob/d9d6cdf5cca31cd2756fae5c7ba6d2f95d7bb39e/src/translators/tests/test_health.py#L25
when a new release of lovely-pytest-docker including our contribution is available, let's fix this around.

There's a workaround developed as part of the work q:

https://github.com/orchestracities/ngsi-timeseries-api/blob/master/src/utils/tests/docker.py

I was going to open a PR w/ lovely docker but then I ran out of time, so I took a shortcut :-)
Example usage:

https://github.com/orchestracities/ngsi-timeseries-api/blob/master/src/wq/tests/conftest.py

Notice we can leverage the approach to get rid of shell scripts and avoid duplication...


[enhancement]support different topic in a messageBatch

FEATURE REQUEST

Please describe the feature you are requesting.
support different topic in a messageBatch

we are using ddmq as a rocketmq proxy to manager topic and sub relationships, but now we find ddmq needs rocketmq to support multiple topic in a messagebatch(of course you must have noticed than didi changed rocketmq source code to support this feature). is there any plan to support this?

There is no such plan for the time being

It is not a good practice tor union many topics in one message batch operation.


Add a CI job that builds against DAML’s ghc-lib

Initially, I would just add some sanity check that at least checks that things still build. I probably wouldn’t bother with tests at least for now. We get those once we bump the version in the DAML repo.

We have a CI job that builds against ghc-lib now. Not our patched ghc-lib but that shouldn’t really matter so I’m happy to consider this done.


How Can i get 1 date & last date Of month When i scroll?

Current month : 31 july 2017
Now When I Scroll To August month then i Want to 1 aug & 31 aug in any particular method?
Why ?
Becaz when I change my month then i want to get first month & last month then i want to pass in webservice. how can i do that

This should start you off.
calendar.delegate = self

func calendarCurrentPageDidChange(_ calendar: FSCalendar) {

        let firstOfMonth = calendar.currentPage

}


Update README.md

Introduction link was giving 404, changed to introduction/BeginnerTutorial.html

thanks!


ux: should azd display "skipped" when user deploy <service> or deploy within service directory?

azd shows "Skipped: Packaging api" when I run azd package in the web directory, or when I run azd package web.

Current wonders:

When I run azd package web -> This shows clear user intention that I indeed meant to deploy web -- does it make sense to show "Skipped: Packaging api" here?
When I run azd package in the web directory -> Perhaps the extra context is useful here. I feel that a different way we can mitigate this concern is by highlighting the color of the text web.

When I run azd package web -> This shows clear user intention that I indeed meant to deploy web -- does it make sense to show "Skipped: Packaging api" here?

FWIW, I also found this a bit surprising when I run into it.


V-rep error when generating data

Thanks for your good work!
There is a error while I run dataset_generator.py:
Process 0 failed collecting task set_clock_to_time (variation: 2, example: 0). Skipping this task/variation.
The call failed on the V-REP side. Return value: -1
And same error caused in all tasks you have given in your repo of RLbench.
While it seems to be some error in Pyrep, but I can successfully run most of the examples in Pyrep. So how can I solve this problem?

@dljzx, sorry I am not sure. This does look like a PyRep issue. Have you seen these threads?

ARM: https://github.com/stepjam/ARM/issues/2
RLBench: https://github.com/stepjam/RLBench/search?q=The+call+failed+on+the+V-REP+side.+Return+value%3A+-1&type=issues
PyRep: https://github.com/stepjam/PyRep/search?q=The+call+failed+on+the+V-REP+side.+Return+value%3A+-1&type=issues

set_clock_to_time is something I created, but if all the tasks are failing, then something else is wrong with PyRep or CoppeliaSim. You probably have check with PyRep issues.

@dljzx, sorry I am not sure. This does look like a PyRep issue. Have you seen these threads?
* ARM: [Code crashes when trying to run. stepjam/ARM#2](https://github.com/stepjam/ARM/issues/2)

* RLBench: https://github.com/stepjam/RLBench/search?q=The+call+failed+on+the+V-REP+side.+Return+value%3A+-1&type=issues

* PyRep: https://github.com/stepjam/PyRep/search?q=The+call+failed+on+the+V-REP+side.+Return+value%3A+-1&type=issues

set_clock_to_time is something I created, but if all the tasks are failing, then something else is wrong with PyRep or CoppeliaSim. You probably have check with PyRep issues.

Thanks for your reply. I test the tasks you have given in your version of rlbench. About half of these tasks can successfully generate data, while others still meet the same question mentioned above.
Looking forward to your docker!

@dljzx, can you tell me which of these tasks fail:
open_drawer
slide_block_to_color_target
sweep_to_dustpan_of_size
meat_off_grill
turn_tap
put_item_in_drawer
close_jar
reach_and_drag
stack_blocks
light_bulb_in
put_money_in_safe
place_wine_at_rack_location
put_groceries_in_cupboard
place_shape_in_shape_sorter
push_buttons
insert_onto_square_peg
stack_cups
place_cups

Also, can you post the full stack-trace of the VREP error?

@dljzx, can you tell me which of these tasks fail:
open_drawer
slide_block_to_color_target
sweep_to_dustpan_of_size
meat_off_grill
turn_tap
put_item_in_drawer
close_jar
reach_and_drag
stack_blocks
light_bulb_in
put_money_in_safe
place_wine_at_rack_location
put_groceries_in_cupboard
place_shape_in_shape_sorter
push_buttons
insert_onto_square_peg
stack_cups
place_cups

Also, can you post the full stack-trace of the VREP error?

After I generate tasks with with the taskid you have listed above, four tasks cannot successfully started which are open_drawer, light_bulb_in, place_wine_at_rack_location and put_item_in_drawer. And also turn_tap stopped in episode 4 with almost same problem that I mentioned above.
OStandardPaths:XDG RUNTIME DIR not set， defaulting totmp/runtime- rootProcess 0 failed collecting task open drawer (variation: l, example: 0). Skipping this task/variation.The call failed on the V-REP side. Return value: -1
Process 0 // Task: turn tap // Variation: 1 // Demo: 0
Process 0 // Task: turn tap // Variation: 0 // Demo: 0
[1206 14:15:35.295553<PHONE_NUMBER>52448 task enviromentpy:153] Bad demo. The call failed on the v-RE side. Return value: -1 Atempts left; 9Process 0 // Task: turn tap // Variation: 0 // Demo: 0
[1206 14:15:36275046<PHONE_NUMBER>52448 task enviromentpy:1531 Bad demo, The call failed on the v-REP side. Return value: -1 Atempts left:9Process 0 // Task: turn tap // Variation: 0 // Demo: 0
[1206 14:15:37574196<PHONE_NUMBER>52448 task enviroment.py:153] Bad demo, The call failed on the V-REP side. Return value: -1 Atempts left; 9Process 0 // Task: turn tap // Variation: 0 // Demo: 0Process 0 // Task: turn tap // Variation: 1 // Demo: 0

@dljzx, it looks like the motion-planner is failing to reach waypoints in the demonstration. It could be due to PyRep and CoppeliaSim mismatch. Make sure they match.
Also, does Demo: 0 ever increase to Demo: 1?  It should discard that scene and move on. But if Demo: 0 never increases, then it's an issue.

@dljzx, it looks like the motion-planner is failing to reach waypoints in the demonstration. It could be due to PyRep and CoppeliaSim mismatch. Make sure they match.
Also, does Demo: 0 ever increase to Demo: 1?  It should discard that scene and move on. But if Demo: 0 never increases, then it's an issue.

PyRep and CoppeliaSim I install by following the pyrep github page, CoppeliaSim 4.1.0 with PyRep <IP_ADDRESS>. While I ran the code within docker container that I created. Maybe I think trouble comes from the docker image . It is glad that if you can share your docker on hub or DockerFile as well


Handle missing columns in geojoin

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 85.93%. Comparing base (c8fb007) to head (7d9b871).

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #126      +/-   ##
==========================================
+ Coverage   85.92%   85.93%   +0.01%
==========================================
  Files          21       21
  Lines         959      960       +1
==========================================
+ Hits          824      825       +1
  Misses        135      135

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Project setting added via GUI is removed when reset to default

Tested versions
Found as far back as 4.1.1 - couldn't test any earlier version (editor froze when opening any dropdown menu, old Wayland problems maybe, doesnt matter)
System information
Godot v4.3.dev5 - EndeavourOS SMP PREEMPT_DYNAMIC Fri, 08 Mar 2024 01:59:01 +0000 - Wayland - Vulkan (Forward+) - integrated AMD Radeon Graphics (RADV RENOIR) () - AMD Ryzen 7 5825U with Radeon Graphics (16 Threads)
Issue description
Project settings created manually within the settings menu will be removed when reset to their default value
Steps to reproduce
When creating a custom project setting (using the project settings dialogue), it will show up as not being at its default value (which is weird because it actually is, in theory) - see image 1.

Then, resetting it to the default will cause it to be deleted from the project settings, with the editor printing a few copies of the same warning:
core/config/project_settings.cpp:352 - Property not found: x/y
where x/y is whatever path was chosen for the setting:

However, it will still show up in the settings GUI until it is closed and reopened:

Minimal reproduction project (MRP)
Basically impossible to have an MRP, as the whole bug is something being unexplicably deleted. A completely empty project suffices.

This is likely because default values are not stored to the file, and therefore lost

My suspicion as well, but then the project should store custom settings then, regardless of defaults


New release?

It'd be great to have a new version of reduce tagged & release that includes c929e4f263bfc2f4512ea3126cf5460f4d5bfa2c
It'd allow deduplicating object-keys in my bundle and make things a little smaller ❤

Sure, I can do that in the next day or three.

v1.0.2 released.

Thank you!


Focus is landing on non-interactive elements after activating the 'Show a simple' Adaptive cards button.

Please reference the following bug for repro steps and videos:
https://github.com/Microsoft/BotFramework-WebChat/issues/1340

Fixing this one should partially/fully fix the following issues:

https://github.com/microsoft/BotFramework-WebChat/issues/3084
https://github.com/microsoft/BotFramework-WebChat/issues/3086

This is also been identified as part of our Accessibility test pass ADO #23950535

@shalinijoshi19 to sync with @dclaux on getting this fixed.

@shalinijoshi19 is there an ETA on the fix and when that'd be available in the release.
Thanks
Rohini

@dclaux for updates here. Thanks

I have been looking at this today and here are my findings:

The apparently desired behavior calls for removing the tab stop on the root card container
That would indeed be a better for anyone that has no disability and is able read and see the card
But removing that tab stop makes narrator not stop on the card, and thus not read it. That seems really bad to me when it comes to actual accessibility

So my conclusion:

"Fixing" this issue would favor power users over people with disabilities who use narration
I do not believe there is a fix; we need to keep the root card as a tab stop

I think we'll need to look into other ways to solve this if it is critical (is it?)
Thoughts and comments welcome.

@compulim FYI; please take a look at @dclaux's response above..

@dclaux fixing this is indeed high priority. @compulim could you take a look at @dclaux's comments above?

This bug will be fixed in the next release, but will require callers to to set GlobalSettings.setTabIndexAtCardRoot to false if the desired behavior is for us not to emit a tabstop.


fix jedis can not get host info when use jedis 3.3.x+ sdk

[x] If this pull request closes/resolves/fixes an existing issue, replace the issue number. https://github.com/apache/skywalking/issues/10768
[x] Update the CHANGES log.

I think you need to add 3.3 to the versions of test scenarios.

ok , i will add test from 3.3.0 use new jedis init way


typo: in system-metrics.md

Description
Changed from components that doesn't to components that don't.

Seems like a build error.
@Erik-McKelvey, can you try to raise a new PR again.


Public package to NPM

https://github.com/manufac-analytics/inchi/packages/813308

https://www.npmjs.com/package/@manufac-analytics/inchi


Security issue with libde265 on 3.11 bullseye image

AWS Inspector is pointing the following CVEs which affect the current version of libde265 installed on the images: CVE-2022-47655, CVE-2021-36409, CVE-2022-43237, CVE-2022-43245, CVE-2021-36410, CVE-2022-43241
Currently, tag 3.11 (bullseye) have libde265 version 1.0.8:
root@b46cc2f971dc:/# apt list --installed | grep -i libde265

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

libde265-0/now 1.0.8-1 amd64 [installed,local]

Bulleye already have an update available for that. After update and dist-upgrade:
root@b46cc2f971dc:/# apt list --installed | grep -i libde265

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

libde265-0/stable-security,now 1.0.11-0+deb11u1 amd64 [installed,automatic]

Version 1.0.11 should be OK for all of those CVEs.

Background:

Tags in the [official-images] library file[s] are only built through an update to that library file or as a result of its base image being updated (ie, an image FROM debian:buster would be rebuilt when debian:buster is built).
-https://github.com/docker-library/official-images/tree/2f086314307c04e1de77f0a515f20671e60d40bb#library-definition-files

Official Images FAQ:

Though not every CVE is removed from the images, we take CVEs seriously and try to ensure that images contain the most up-to-date packages available within a reasonable time frame
- https://github.com/docker-library/faq/tree/0ad5fd60288109c875a54a37f6581b2deaa836db#why-does-my-security-scanner-show-that-an-image-has-cves

Since our build system makes heavy use of Docker build cache, just rebuilding the all of the Dockerfiles won't cause any change. So we rely on periodic base image updates.

We strive to publish updated images at least monthly for Debian. We also rebuild earlier if there is a critical security need. Many Official Images are maintained by the community or their respective upstream projects, like Ubuntu, Alpine, and Oracle Linux, and are subject to their own maintenance schedule.
- from the same FAQ link


Make repository public

Blocked by #14
The Onyx repository should be made public so that it can be cloned by other developers.

Repository is now public with some basic descriptions here and there!


AttributeError: 'int' object has no attribute 'astype'

Traceback (most recent call last):
File "trainval_net.py", line 209, in
imdb.num_classes, training=True)
File "/home/wuwenfu/faster-rcnn.pytorch-master/lib/roi_data_layer/roibatchLoader.py", line 54, in init
self.ratio_list_batch[left_idx:(right_idx+1)] = torch.tensor(target_ratio.astype(np.float64)) # trainset ratio list ,each batch is same number
AttributeError: 'int' object has no attribute 'astype'
why got a error? how can I do after?

this may help:
target_ratio = np.float64(target_ratio)

this may help:
target_ratio = np.float64(target_ratio)

thanks I fix this questions

it worked.
now i am getting :
File "/content/drive/My Drive/fasterrcnn18nov/faster-rcnn.pytorch/lib/model/rpn/proposal_target_layer_cascade.py", line 133, in _sample_rois_pytorch
labels = gt_boxes[:,:,4].contiguous().view(-1).index((offset.view(-1),)).view(batch_size, -1)
AttributeError: 'Tensor' object has no attribute 'index'

def cluster_acc(y_true, y_pred):
"""
Calculate clustering accuracy. Require scikit-learn installed.
(Taken from https://github.com/XifengGuo/IDEC-toy/blob/master/DEC.py)
# Arguments
y: true labels, numpy.array with shape (n_samples,)
y_pred: predicted labels, numpy.array with shape (n_samples,)
# Return
accuracy, in [0,1]
"""
y_true = y_true.astype(np.float)
assert y_pred.size == y_true.size
D = max(y_pred.max(), y_true.max()) + 1
w = np.zeros((D, D), dtype=np.float)
for i in range(y_pred.size):
w[y_pred[i], y_true[i]] += 1
ind = linear_assignment(w.max() - w) # Optimal label mapping based on the Hungarian algorithm
return sum([w[i, j] for i, j in ind]) * 1.0 / y_pred.size

give error in int object has no atribute astype.i change it on float bhut not resolve.how solve this?

didnt work
self.transformer.n_samples_seen_.astype(np.float64(np.int64))


Lower Python version requirement to allow 3.8.10

Hi Greykite Team,
It seems that greykite 0.5.1 ONLY support python 3.10+. Which is great and we are excited to use python 3.10!
However, lots of other packages we use are not that advanced yet and does not currently support python 3.10.
We were wondering if it is possible that we could loosen the python version requirement to allow lower versions of python, say 3.8.10?
Thank you!

Hi @KathyGCY
Unfortunately we no longer provide support for <3.10. Many new dependencies
now require 3.10. Python 3.10 was released almost 2 years ago and we
decided to upgrade.


Private Cloud - announcing support for new Kubernetes and Postgres versions [no release date]

We have completed Mx4PC compatibility testing with the latest Kubernetes and Postgres versions, and can now officially announce that they are supported by the latest version of Mx4PC.
This PR updates documentation to include all supported Postgres and Kubernetes versions and is not linked with any upcoming release - any customers already running the latest Operator version can directly proceed to upgrade their Postgres database and Kubernetes.

Thank you @MarkvanMents! Can you publish these changes now?


filter_remapped_reads.py

The latest version of filter_remapped_reads.py now gives the following error:
Traceback (most recent call last):
File "/WASP/mapping/filter_remapped_reads.py", line 307, in
main(options.to_remap_bam, options.remap_bam, options.keep_bam)
File "/WASP/mapping/filter_remapped_reads.py", line 301, in main
write_reads(to_remap_bam, keep_bam, keep_reads, bad_reads, cigar_strings)
File "/WASP/mapping/filter_remapped_reads.py", line 275, in write_reads
if (read.cigarstring in cigar_strings[read.qname][0]):
TypeError: 'set' object is not subscriptable
The previous version of the script runs as expected with the following output:
keep_reads: 2097757
bad_reads: 65912
discard_reads: 59095 (of which 52359 remapped with a different cigar)
Any thoughts on how to troubleshoot this issue?
Thanks!
Parker

Hi Parker,
Thank you for catching this. It was a bug introduced with the latest update and only affected single-end reads. I have made a fix and pushed it to the repo.
Thank you,
Graham

Here is the fix:
https://github.com/bmvdgeijn/WASP/commit/d3b8447fd7719fffa00b856fd1f27c845554693e


Cannot reproduce the monusac result

Hi. I found the result that was applied your model to monusac test dataset the below website.
We tried to reproduce the result but we couldn't.
Could you tell me how to reproduce the result. Is there problem our command ? The code is cloned from this github.
https://monusac-2020.grand-challenge.org/Data/
Command and color pattern
command
!python run_infer.py \
--nr_types=5 \
--type_info_path=PATH_TO_JSON \
--batch_size=48 \
--model_mode=fast \
--model_path=PATH_TO_hovernet_fast_monusac_type_tf2pytorch.tar \
--nr_inference_workers=16 \
--nr_post_proc_workers=16 \
tile \
--input_dir=PATH_TO_IMAGES \
--output_dir=PATH_TO_OUT

color pattern
{
    "0" : ["background", [255,   255,  255]],
    "1" : ["Epithelial", [255,   0,   0]],
    "2" : ["Lymphocyte", [0  , 255,   0]],
    "3" : ["Macrophage", [0  ,   0, 255]],
    "4" : ["Neutrophil", [255, 255,   0]]
}

Dataset
https://drive.google.com/file/d/1G54vsOdxWY1hG7dzmkeK3r0xz9s-heyQ/view?usp=sharing
Our result

Your result from the web site (L1 - TIA Lab result)

For some reason, the MoNuSAC test images are saved as BGR. You will need to convert them back to RGB before processing. You can do this simply be applying img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB).
Try that and let us know how you get on :)

Thanks for your reply !
I tried to convert color order and I got the result.
The first and second images are be able to be reproduced, but it seems that the third one is not enough.
Is there any another reason ?

@simongraham

The first and second images are able to be reproduced, but it seems that the third one is not enough.
Is there any another reason ?

What do you think about this ?

The results look fine to me. Macrophages were a real challenge in MoNuSAC because we were required to segment the cytoplasm as well as the nuclei.
I think your results are good. We used cross validation and averaged the results over multiple runs to get the final result. This strategy was used by other competitors too and is commonly used to get a performance boost in challenges.

Regarding PQ, the challenge has its own version of PQ. I remember it is a variant and may not be the same. Additionally, the PQ in this repository has a default IoU threshold of 0.5 (any less is set to FP), if you set it to 0.0 (exhaustive matching of everything), the results will likely go up.

You can refer to this repo for an implementation of multi class PQ which was done in the same way as MoNuSAC

Thanks I got it. I'll try the metrics code for calculating PQ.

@simongraham @vqdang
I tried to calculate the each class PQ value. The result is as below.
The monusac checkpoint can't segmentate "Macrophage", "Neutrophil".
How did you make the multi fold dataset ?
Train PQ
["Epithelial", "Lymphocyte", "Macrophage", "Neutrophil"] = [0.2795611797333212, 0.28338360815602187, 0.0, 0.0]
Test PQ
["Epithelial", "Lymphocyte", "Macrophage", "Neutrophil"] = [0.3003146014641786, 0.2530428906209276, 0.0, 0.0]

Something seems wrong here, you shouldn't be getting 0 values for macrophage and neutrophil. In fact we got quite high PQ values for neutrophil. You should go over your evaluation code to make sure everything is correct.

@simongraham @vqdang
You said that you are able to detect neutrophils and macrophages, is this a case of multifold?
We evaluated the results using a single fold checkpoint that is provided from you in this repository, and the results are shown here.

We were still able to detect neutrophils and macrophages with single fold. Have you looked at your results visually to make sure they line up with the stats? It seems from your previous visual results that in fact you are detecting neutrophils, which makes me suspect that there is something not quite right with the evaluation code you are using.

I notice that your model is trained with panuke pre-trained weights, I wonder if not using pre-trained weights or just using ImageNet pre-trained weights, what are the results for MoNuSac dataset? Because I recently trained the MoNuSac dataset using the pytorch hover-net codes, but get very pool results on  "Macrophage", and "Neutrophil" types as well.


Enhance about us page

🚀 Feature
Enhance the about us page and make it more minimalistic.

@wasimreja good luck!
if you're taking this up kindly add few more tiles in about us.

dedicated to GDSC JGEC
Hacktoberfest participation
JWOC participation

All right!


Feature/pdct 1565 add mcf landing page content components

What's changed
UI fixes
Additional Homepage Content - Contextual Search/ About CPE
Adding Methodology Page
Adding Terms of Use Page
Proposed version
Please select the option below that is most relevant from the list below. This
will be used to generate the next tag version name during auto-tagging.

[ ] Skip auto-tagging
[x] Patch
[ ] Minor version
[ ] Major version

Visit the Semver website to understand the
difference between MAJOR, MINOR, and PATCH versions.
Notes:

If none of these options are selected, auto-tagging will fail
Where multiple options are selected, the most senior option ticked will be
used -- e.g. Major > Minor > Patch
If you are selecting the version in the list above using the textbox, make
sure your selected option is marked [x] with no spaces in between the
brackets and the x


Joystick

Does anyone have a circuit diagram to wire in an atari db9 type joystick.   Was looking at trying an asteroids type program.  Also any example of code to use a joystick.  I'm sure it will come up with other developers
All my best

Pretty sure someone mentioned it on the Agon Facebook group. Are you on that?


Feature/#375 umbrella helm research

Created Helm Chart for AASX Submodel Server, using Docker image adminshellio/aasx-server-blazor-for-demo:v2023-11-17.alpha
Added data provider Helm Chart including EDC, DTR and Submodel Server as dependency
Added Umbrella Helm Chart for demo of adding multiple data providers to one chart

Closing this PR.
See https://github.com/eclipse-tractusx/item-relationship-service/issues/403 and https://github.com/eclipse-tractusx/item-relationship-service/issues/469


Playground can't be imported from Skypack

If you try to import Playground from https://cdn.skypack.dev/playground-elements/, two related problems occur:
404s
We get 404 errors occur for playground-typescript-worker.js and playground-service-worker-proxy.html, because we dynamically load them from URLs computed relative to import.meta.url, which in the Skypack case will be a URL like:
https://cdn.skypack.dev/-/playground-elements@v0.5.0-H1hgWmaoTWZ1PV7dQcrR/dist=es2020,mode=imports/optimized/playground-elements.js

These optimized URLs only serve files from the optimized JS bundle they are generated for, so these two other assets don't exist there.
Broken worker transform
If we import playground-typescript-worker.js from a standard Skypack URL, it gets transformed in a broken way:
import require$$0 from 'perf_hooks';
import require$$1 from 'fs';
import require$$2 from 'path';
import require$$3 from 'os';

These are caused by require calls in the typescript module we import, like this:
try{var r=require("perf_hooks"); ... }

We just want these try statements to fail. (It would be nice to remove them altogether, but that's a tricky optimization we can maybe do sometime later).
Solution
Add special handling to force Skypack raw mode.
When resolving URLs for the worker/proxy assets, check if import.meta.url is a skypack.dev URL, and if so replace mode=imports/optimized with mode=raw. Example:
Before:
https://cdn.skypack.dev/-/playground-elements@v0.5.0-H1hgWmaoTWZ1PV7dQcrR/dist=es2020,mode=imports/optimized/playground-typescript-worker.js

After:
https://cdn.skypack.dev/-/playground-elements@v0.5.0-H1hgWmaoTWZ1PV7dQcrR/dist=es2020,mode=raw/playground-typescript-worker.js

Hey @FredKSchott! We're hitting this issue importing from Skypack. We have a simple workaround, but I wonder if you have any thoughts about handling this on the Skypack side?
Would it make sense for the /optimized/ URL space to fall back to serving raw package assets if a path isn't one of the generated bundle files?
cc @justinfagnani


Update travis to include tests

Updated the script to run the tests.
Unnecessary ./gradlew clean is removed.
"Licenses" part is also removed. It is only needed for special licenses. The default license is automatically approved by Travis.

looks good thanks for contributing!

Thank you 👍
The library seems very interesting. Looking forward to try it out.


Extract update_current_obs function to utils

For consistency reasons and in order to make the code cleaner I suggest to move the current_obs function to utils. In general, I think it is good to avoid inline functions and code repetition as much as possible.

Looks good to me!
Merged.
Sorry for the delays with the RNN MLP PR.


Added Binary Search In Ruby

Binary Search In Ruby

@AnkDos : It would be great if you can add the description along with the issue number.
Feel free to use our contribution guidelines (https://github.com/fnplus/interview-techdev-guide/blob/master/CONTRIBUTING.md) for reference

Thanks for contributing!


Display "Cannot find module '@azure/functions' " for a TS project in 'Problems' window

OS: Win10\Mac
Build Version: 20190603.1
Repro Step:
Create a TS project --> Check the 'Problems' window.
Expect:
No error displays.
Actual:
Display "Cannot find module '@azure/functions' ".

More Info:

Func version: V2.7.1158
Node version: V10.15.3
Npm version: V6.4.1

Closing as duplicate of https://github.com/microsoft/vscode-azurefunctions/issues/1026


.NET 8: Tracking for TFM trimming, and elimination of net4* targeting in source-build

Description
Tracking for https://github.com/dotnet/source-build/issues/2901. Requires https://github.com/dotnet/source-build/issues/3013
The purpose of this operation is twofold:

[ ] Reduce the number of TFMs present overall in .NET's build, potentially improving build time.
[ ] Eliminate framework TFMs, drastically reducing the size of the source build repository size.

When TFMs other than the latest .NET Core TFM are targeted in source-build, the reference assets for that TFM must be provided via a source build reference package. This is a 'text only' package that is assembled from IL at the beginning of the build to satisfy the required reference assets. In Microsoft's build, these would be restored from the internet, but in source build this is not allowed.
These SBRPs are large. All told, the total size contribution for just the netframework 4* TFMs is around 3GB. Not only does this have a significant contribution to the source build repo size, but it also affects build time. For Linux source build, we spend large amounts of time building assets that are simply thrown away at the end.
An 'ideal' would be a single TFM used throughout all of the .NET build, source build or otherwise. This is not possible. There are legitimate reasons to target older TFMs, especially netstandard. However, we should be able to justify each additional TFM.
To complete this work, repositories will use the tooling provided via https://github.com/dotnet/source-build/issues/2901 to identify the TFMs in use in their repository. For each TFM, they should do the following:

[ ] If the TFM can be eliminated, upgraded to latest (e.g. target the latest netcore explicitly, or use net472), do so
[ ] If the TFM is a framework TFM, it should be conditionalized out in source build.

For example, this arcade project conditionalizes away net472 when building from source:
<TargetFrameworks Condition="'$(DotNetBuildFromSource)' != 'true">net472;netstandard2.0</TargetFrameworks>
<TargetFrameworks Condition="'$(DotNetBuildFromSource)' == 'true">netstandard2.0</TargetFrameworks>

Repositories

[ ] arcade
[ ] aspnetcore
[ ] command-line-api
[ ] deployment-tools
[ ] diagnostics
[ ] format
[ ] fsharp
[ ] installer
[ ] linker
[ ] runtime
[ ] msbuild
[ ] NuGet
[ ] razor-compiler
[ ] roslyn-analyzers
[ ] roslyn
[ ] runtime
[ ] sdk
[ ] sourcelink
[ ] symreader
[ ] templating
[ ] test-templates
[ ] vstest
[ ] xdt
[ ] xliff-tasks

@MichaelSimons Here is the bones of the tracking issue I'm going to open in the repos, can you take a look?
@ericstj For non-source-build cases where we need to target netframework, and any netframework TFM will do, is there a preferred TFM? I'm mostly thinking of non-shipping packages or tooling, as this would be a breaking change otherwise.

For non-source-build cases where we need to target netframework, and any netframework TFM will do, is there a preferred TFM

In dotnet/runtime we have a preference for libraries - the minimum last supported framework which we define as NetFrameworkMinimum.  There is likely a different preference for things that are part of VS and that's whatever VS's pre-requisite framework is.  I'm not certain what that is, but I do see the SDK targeting net472.  cc @marcpopMSFT @ViktorHofer

In dotnet/runtime, all libraries target NetCoreAppCurrent and that refers to the .NETCoreApp version currently being developed. Packages target additional frameworks like net6.0, net7.0, net462, netstandard2.0 and netstandard2.1.
IMHO if feasible, for source build, we should only build NetCoreAppCurrent. In dotnet/runtime we already support building just a slice of the graph but as NuGet still restores all target frameworks we would need to rewrite the TargetFrameworks property to trim the other frameworks out.

IMHO if feasible, for source build, we should only build NetCoreAppCurrent. In dotnet/runtime we already support building just a slice of the graph but as NuGet still restores all target frameworks we would need to rewrite the TargetFrameworks property to trim the other frameworks out.

What about internal tooling or non-shipping packages? Do we have any cases where we are building framework bits in runtime today?
It would be awesome to code up the TargetFrameworks properties in such a way that it's globally overridable on the runtime side. It is less ideal to have a ton of conditionals in every project.

Yes, we have msbuild tasks that target .NET Framework but those target .NETCoreApp as well. For source build I guess it's OK to not build the .NET Framework msbuild tasks.

Do you think that the framework tasks are still required at all?

That said, the feasibility question regarding repositories only relying on $(NetCoreAppCurrent) assets still stands. We in dotnet/runtime are technically able to only produce $(NetCoreAppCurrent) assemblies and packages but if dependent repositories require other target frameworks like net6.0 or .NETStandard then this wouldn't work.

I think we should keep netstandard where we actually want to release a package as netstandard. Downstream repos should not be targeting net6 (for various reasons) in source build. Those binaries going to be running on a net7 runtime, regardless of whether they want net6 or not.

I think we should keep netstandard where we actually want to release a package as netstandard.

How many of those packages do we have? As .NETStandard's public api surface is limited I noticed that many/most packages that offer a .NETStandard asset, multi-target to benefit from newer .NETCoreApp features. I would be surprised if we have many packages that are .NETStandard only. It might make sense for the stack to always target the very latest. (That's what we do in runtime).

Do you think that the framework tasks are still required at all?

They should not be required. Also FWIW msbuild was considering making it possible to load .NETCoreApp tasks in the .NET Framework version of msbuild and inside VS so that we can remove the .NETFramework task variants.

How many of those packages do we have? As .NETStandard's public api surface is limited I noticed that many/most packages that offer a .NETStandard asset, multi-target to benefit from newer .NETCoreApp features. I would be surprised if we have many packages that are .NETStandard only. It might make sense for the stack to always target the very latest. (That's what we do in runtime).

Roger that. At least we need a way to evaluate what we are producing and then we can make decisions.

@NikolaMilosavljevic - What work remains here?  Can this be closed?


Not able to build Chem package

Latest chem package version fails on build with following error message
ERROR in /Users/user/Documents/Projects/intuence/public/js-api/dg.ts(7,21)
      TS2307: Cannot find module 'wu' or its corresponding type declarations.

Steps to reproduce:

checkout lastest master branch (commit: 38cb6c66534259eef623ebc99c49342955ef0c20)
navigate into packages/Chem
execute setup script: . setup.sh
try to build: npm run build

Expected behaviour: new build is created
Actual behaviour: Error shown in console (see above) and built failed!
I already tried to manually re-install following package (obviously with no luck):

wu
@types/wu

Could you try the following:
npm install
npm run build
?

Just got more issues related to datagrok/ui
ERROR in /Users/userid/Documents/Projects/intuence/public/packages/Chem/src/widgets/toxicity.ts
./src/widgets/toxicity.ts 2:20-37
[tsl] ERROR in /Users/userid/Documents/Projects/intuence/public/packages/Chem/src/widgets/toxicity.ts(2,21)
      TS2307: Cannot find module 'datagrok-api/dg' or its corresponding type declarations.
 @ ./src/package.ts 23:0-52 402:20-34

214 errors have detailed information that is not shown.
Use 'stats.errorDetails: true' resp. '--stats-error-details' to show it.

Also tried to install manually before calling npm run build again but this ended again with a lot of issues?

OK, it could be that chem is in some kind in the middle of development.
 I was just going to make sh.
The purpose is to go through all the libraries and js-api and run npm install and npm link, and also build local libraries

Also, we have a Package Manager, but, sadly, it has issues with your on-site settings of NPM. May be, it's a good moment for fixing it!

Reverting back to commit 75c9c7976bc6d37b1ea87efb5a26f5f6cb54e502 worked, however I also had to delete and install dayjs and wu manually again for the js-api.

This seems to be resolved now; please reopen if needed.


(WIP) Base interface class and Generic class for outgoing webhooks.

Automated message from Dropbox CLA bot
@vabs22, it looks like you've already signed the Dropbox CLA. Thanks!

Merged!  Thanks @vabs22!


Style guide improvements

Add new section Recommendations
Add rule for SKIP and LIMIT
Add table of contents
Add recommended file extension .cypher

@Mats-SX I have added a few more comments

@petraselmer Made changes according to comments. WDYT about the new sections?

@Mats-SX the new sections look really good, as do the other changes - much more readable! Thanks - and merging...


generator as arg to sum?

this used to work (a generator as argument to sum):
# a diversity measure, hamming distance
def hamm(x, y):
    return sum(x != y)

x = intvar(0,3, shape=2)
m = Model(x[0] > x[1])

store = []
while m.solve():
    print(len(store), ":", x.value())
    m += ~all(x == x.value()) # block solution
    store.append(x.value())
    # maximize number of elements that are different
    m.maximize(sum(hamm(x, sol) for sol in store))

now only if using an explicit list on the last line:
# a diversity measure, hamming distance
def hamm(x, y):
    return sum(x != y)

x = intvar(0,3, shape=2)
m = Model(x[0] > x[1])

store = []
while m.solve():
    print(len(store), ":", x.value())
    m += ~all(x == x.value()) # block solution
    store.append(x.value())
    # maximize number of elements that are different
    m.maximize(sum([hamm(x, sol) for sol in store]))

a regression that we should fix?

In summary, this is what goes wrong:
x = boolvar(shape=5, name="x")
sum(var for var in x)
output: sum([x[1], x[2], x[3], x[4]])

sum([var for var in x])
output: sum([x[0], x[1], x[2], x[3], x[4]])

So somewhere the generator is polled once before reaching the sum() construct


profit loss with profit and loss percentage

We can add profit and loss percentage on mentioning cost price and the selling price
Kindly assign this to me I will work on this issue as soon as i complete previously assigned issues
I will complete this by 24th

Go ahead
Feel free to ask your doubts, if any
Deadline 25 March,2021 (11:59 PM IST)

@sairish2001 Added a profit loss calculator Have look!


fixes #402 - closed accounts and accounts with tosViolation are detected again

During the investigation I found two root causes that are fixed in this changeset

lichess api does not provide the engine and booster tags anymore,we only get tosViolation. I have adapted the mappings and the allowed values for Player.account_status.
lichess api does not provide a 'perfs' tag for closed accounts, which leads to an exception in the Player.update_profile when we try to get the classical information from 'perfs'. This changeset handles the exception now.

Aside from the minor comment about issuing a single query to update the records, this seems fine for me. @cyanfish ?

Awesome, looks good to me.


Error disabling software write protect range when trying to install UEFI

This is a similar error to this issue, but I am using the scripts found on mrchromebox.tech.

I have tried running the script in both a live-cd and full install of GalliumOS.  I have also tried setting the GBB flags and removing the bitmaps, but ran into similar errors.

please exit the script and provide the output of the following two commands from the terminal:
sudo flashrom --wp-status
sudo flashrom --wp-range

I'm also getting the same error. I have flashed about 20-30 of the same type of chromebook and have only seen this error on 2 of them so far.

After doing a bit more digging, it looks like the firmware write protect screw had not been removed, but the script had reported that it had been disabled, as you can see from my screenshot.

I no longer have access to a chronos login since I blew away the partitions when I did a full ISO install of GalliumOS.  I was able to find able to find flashrom in /tmp and here are the results:

ok, so the problem is software WP is enabled but my script isn't disabling/able to disable it. I'll see if any recent changes may have caused this

@lordgasmic this is what I expected. Your hardware WP is still enabled, preventing the script from disabling software WP.

Thank you

For prosperity's sake, I was able to remove the firmware screw and install the UEFI firmware with no issues.  I couldn't quickly find an image or instructions on how to remove the screw for my laptop so I added it here hoping to help others.
Acer Chromebook 15 CB3-532 hardware firmware screw:

thanks, I was about to upload it to my site and realized I already had one for Banon, just didn't link it on the devices page. It's there now though :)


Field Value : Default behaviour (trimming, and empty values)

By default, no action is applied to the value of a field (without formatter or anything), when you get.
In case of a string value, shouldn't it be trimmed at least ?
Also, if empty after trim, shoudn't the value be change to null, so it does trigger the validation in case of required: true ?

@Hartorn
We use to do something like that but the problem is to be able to turn it off.
Please make a PR with:
It should be a function such as transform

trim
escape
-..
cc @Tommass @Bernardstanislas

From what I found, the _getEntity in action-behaviour does not do any actions on the data, only reading them, so only the 'input'-type components should be targetted no ?
So maybe changing the default formatter and unformatter in the default props would do the job.
And to turn it off, just put identity back as formatter and unformatter.
It depends if you want to disable it globally, or punctually ?
Punctually, you can by giving another formatter/unformatter.
Globally, it would it more difficult : either adding an option to parametrize the behaviour, or creating a custom component extending the default, overloading the formatter.

I would have seen something else than a formatter maybe a transform function which will be called before the formatter`.

@Hartorn  PR?

Hello, I revive this topic after this morning meeting.
For the moment, I use a validator which makes the user change its input :
export default {
    type: 'function',
    value: data => {
        return data.length === data.replace(/\s\s+/g, ' ').replace(/^\s+|\s+$/g, '').length;
    },
    options: {
        translationKey: 'domain.validation.trimIt'
    }
}

It handles the multiple spaces.
It would be great to have them automatically removed.

@pierr @Hartorn  what do we do with this issue ?

@Hartorn I think you propably know better than me, if this issue is closed.


[just a recommand] plugins.cordova.io will be deprecated in the near future

hi @initialxy
according to these
http://phonegap.com/blog/2015/05/26/npm-plugins-available/
http://cordova.apache.org/announcements/2015/04/21/plugins-release-and-move-to-npm.html
so...just want to inform you that your plugin should be move to npm in the future...

Thanks for bringing this to my attention. I will look into it.

thanks @initialxy

Done!

Good Job @initialxy


decodeBytes on 32-bit systems is susceptible to an overflow bug sneak and can incur an OOM or runtime panic due to unproperly checked size

Reading through the code in encoding.go, we've got this interesting pattern of code https://github.com/cosmos/iavl/blob/f5c104d6591ea3ec0c4933f5a00c530632d471a5/encoding.go#L15-L25
In that code block, you'll notice that:
a) size, n, err := decodeUvarint(bz []byte) (uint64, int, error) --> size is a uint64 containing the size aka length of the buffer to be allocated
b) To check for overflows, we use int(size): which checks if uint64->int returns a negative value
c) Unfortunately: make([]byte, size) uses the plain uint64 value unfettered and unchecked
Point b) masks a problem with overflows; Point c) is where the problem is, and to cause this disruption, I can Uvarint encode any size larger than 32-bit ranges, the overflow will wrap around to it and given the fallacious check yet naked transmission to make, it'll panic with out of memory
Implications
Given that int's range is (-2147483648 to<PHONE_NUMBER>) on 32-bit systems, and (-9223372036854775808 to<PHONE_NUMBER>854775807) on 64-bit systems, on 32-bit systems, any value with a wrap around of greater than (1<<32), e.g. (int32(uint64(1<<32)+2)) == 2; will return that value so to falsely make all those checks pass and then poison the code with an OOM or runtime panic, I can do this
package iavl

import (
        "encoding/binary"
        "testing"
)

func TestDecodeBytesBlow(t *testing.T) {
        // Attack works on a 32-bit computer, and causes an OOM.
        buf := make([]byte, 1<<63-1)
        _ = binary.MaxVarintLen64
        n := binary.PutUvarint(buf, (1<<33)+2)
        // n:    ~> 5
        // size: ~> 2, given that on a 32-bit computer: int(uint64(1<<33)+2) == 2 :-(
        nx := copy(buf[n:], "abcde")
        println("n+nx", n+nx)
        if _, _, err := decodeBytes(buf); err == nil {
                t.Fatal("Failed to decode bytes")
        }
}

Recommendation
For robust checks we can do the following:
a) Ensure that size never exceeds the max value of int on either of 32-bit or 64-bit architecures
b) Ensure that make receives the same truncation used, so size is passed in as int(size) -- in fact just the lone change would have masked the problem
diff --git a/encoding.go b/encoding.go
index 27c10fe..40c9d73 100644
--- a/encoding.go
+++ b/encoding.go
@@ -19,10 +19,14 @@ func decodeBytes(bz []byte) ([]byte, int, error) {
 	if int(size) < 0 {
 		return nil, n, fmt.Errorf("invalid negative length %v decoding []byte", size)
 	}
+	// ^uint(0) >> 1 will help determine the max int value variably on 32-bit and 64-bit machines.
+	if size >= uint64(^uint(0)>>1) {
+		return nil, n, fmt.Errorf("invalid out of range length %v decoding []byte", size)
+	}
 	if len(bz) < n+int(size) {
 		return nil, n, fmt.Errorf("insufficient bytes decoding []byte of length %v", size)
 	}
-	bz2 := make([]byte, size)
+	bz2 := make([]byte, int(size))
 	copy(bz2, bz[n:n+int(size)])
 	n += int(size)
 	return bz2, n, nil

I believe this is a high value DOS vector that can take down various components

Kindly /cc-ing @alessio @alexanderbez @aaronc @erikgrinaker.

Good catch, thanks! Opened #340 for this.

Thank you for the fix @erikgrinaker! Actually I just re-ran some thoughts and also fuzzed and alas identified a vector that crashes as well with the same runtime out of range error when the length is saved as<PHONE_NUMBER>854775806 and it cleverly circumvents the checks given that the code
 if len(bz) < n+int(size) {
 	return nil, n, fmt.Errorf("insufficient bytes decoding []byte of length %v", size)
 }

n+int(9223372036854775806) on 64-bit systems --> -X
e.g. if n = 9, we get size<PHONE_NUMBER>854775806 int(size)<PHONE_NUMBER>854775806 n 9 len(bz) 9 -9223372036854775801.
However, the PR #340 does fix this problem, thus I'd like to retitle this bug as for both 32-bit and 64-bit systems aka agnostic and we should perhaps issue updates to code using this ASAP.
For reference: it took me 10min-1hr(writing repros, examining call sites) to mentally calculate through this problem but it took the fuzzer less than 1 second to find it, thus more reason to fuzz our code :-) You'll like this @okwme

You're right, thanks again for this.
This bug was introduced with 0.15.0, which was released three weeks ago, and is not used in any stable Cosmos SDK releases. Also, this can only be exploited via ValueOpDecoder and AbsenceOpDecoder, and the Cosmos SDK no longer uses these (it uses commitment proofs instead). The other uses of decodeBytes() are only for internal database data, and can only be exploited by a used with write access to the database file.
I'll submit updated release notes shortly.

Thank you @erikgrinaker for the proactive, fast action, and for all your work!

Sigh, the previous "fix" for decodeBytes() overflow had another overflow bug. 🤦♂ Specifically the left-hand addition here:
if uint64(n)+s >= uint64(^uint(0)>>1) {
	return nil, n, fmt.Errorf("invalid out of range length %v decoding []byte", uint64(n)+s)
}

Which of course can overflow such that the sum is less than both n and the max integer. This then causes an out of bounds error where we're taking a slice of e.g. bz[n:n+(-3)].
Submitted another fix in #347, would appreciate a review.

Sounds good, thank you @erikgrinaker. For testing we can do:
a) binary.PutUvarint(1<<63-2), bz=9 random bytes
b) The seed I provided in the original bug report above


[patreon] add support for patreon-hosted video embeds

Please follow the guide below

You will be asked some questions, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your pull request (like that [x])
Use Preview tab to see how your pull request will actually look like

Before submitting a pull request make sure you have:

[x] Searched the bugtracker for similar pull requests
[x] Read adding new extractor tutorial
[x] Read youtube-dl coding conventions and adjusted the code to meet them
[x] Covered the code with tests (note that PRs without tests will be REJECTED)
[x] Checked the code with flake8

In order to be accepted and merged into youtube-dl each piece of code must be in public domain or released under Unlicense. Check one of the following options:

[x] I am the original author of this code and I am willing to release it under Unlicense
[ ] I am not the original author of this code but it is in public domain or released under Unlicense (provide reliable evidence)

What is the purpose of your pull request?

[x] Bug fix
[x] Improvement
[ ] New extractor
[ ] New feature

Description of your pull request and other information
The current Patreon extractor does not support videos that are embedded/encoded/hosted by Patreon itself. It only supports videos that are attached to posts, like file uploads. Patreon-native videos may use a hash check on the CDN URL, requiring the user to log in for certain paywalled content. I have re-enabled (and updated/fixed) the login code, and added support for these types of embeds.

this fixes #26940

this fixes #26940

thanks for the quick review. fixed the convention issue and just dropped using sanitized_Request which is no longer needed with the more robust download_webpage helper function. also there is actually no need for the query params on the patreon login page so i dropped those.

thanks for the quick review. fixed the convention issue and just dropped using sanitized_Request which is no longer needed with the more robust download_webpage helper function. also there is actually no need for the query params on the patreon login page so i dropped those.

For further review you have to provide account credentials with access to paywalled video.

For further review you have to provide account credentials with access to paywalled video.

Can you provide more specific instructions? Posting private paid Patreon
account to a github page is not a good idea.
On Wed, Jan 27, 2021 at 2:33 PM Sergey M<EMAIL_ADDRESS>wrote:

For further review you have to provide account credentials with access to
paywalled video.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ytdl-org/youtube-dl/pull/27917#issuecomment-768559064,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAASBT2O4ZRJO32SFCDRSYLS4B2CDANCNFSM4WOBWCJQ
.

Can you provide more specific instructions? Posting private paid Patreon
account to a github page is not a good idea.
On Wed, Jan 27, 2021 at 2:33 PM Sergey M<EMAIL_ADDRESS>wrote:

For further review you have to provide account credentials with access to
paywalled video.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ytdl-org/youtube-dl/pull/27917#issuecomment-768559064,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAASBT2O4ZRJO32SFCDRSYLS4B2CDANCNFSM4WOBWCJQ
.

I tested your paywalled test case providing patreon cookies with --cookies and I get a 404 from vimeo. I am subscribed to the creator of that video and I can view it in my webbrowser.


Failed to create a ref_ts res on www

We just noticed this error on www.

@pkdash  @hyi
I could reproduce the error locally. Looks like something changed in hs_core broke it??? You know any recent changes may contribute to this?
Traceback (most recent call last):
  File "/hydroshare/ref_ts/views.py", line 199, in create_ref_time_series
    metadata=metadata)
  File "/hydroshare/hs_core/hydroshare/resource.py", line 426, in create_resource
    hs_bagit.create_bag(resource, fed_zone_home_path=fed_zone_home_path)
  File "/hydroshare/hs_core/hydroshare/hs_bagit.py", line 242, in create_bag
    istorage = create_bag_files(resource, fed_zone_home_path)
  File "/hydroshare/hs_core/hydroshare/hs_bagit.py", line 97, in create_bag_files
    out.write(resource.get_metadata_xml())
  File "/hydroshare/hs_core/models.py", line 1511, in get_metadata_xml
    return self.metadata.get_xml(pretty_print=pretty_print)
TypeError: get_xml() got an unexpected keyword argument 'pretty_print'

@hyi @pkdash
OK...I compared the get_xml() in Ref_TS code with other res_types' code, Ref_TS had a missing parameter "pretty_print=True" in get_xml(). I added it and seems it fixed this error.
Looks like that parameter had been missing in Ref_TS for a while until some recent changes finally exposed this issue.

@zhiyuli Should this be closed?

fixed on www


Check for uppercase at each position when adding keyboard edits

This addresses a retext-spell issue I've discovered that is fundamentally an nspell issue.
I'm including a concrete example of the problem for reference.
Differences from main are bolded:
One Example I've tested

assume the input word is "Twinz"
assume character ais "t" at index 0

We ignore that "T" is uppercase in "Twinz".
The first group is "qwertzuop".

We know the position of "t" in the group is 4.
We split the word "Twinz" at position 4 into before="Twin" and after = ""
We iterate thrice to group character b="e"

We select lowercase "e" for index 4 because "z" was lowercase at index 4

This is how we (confusingly) arrive at the correct suggestion of "Twine".
Ignoring a bigger problem
In main, the notion of "Keyboard groups" doesn't really make sense as it replaces at a position (of a in group) that is unrelated to the original position (of a in word). This solution ignores that "root problem."
For another solution, see my related PR.
Following the approach of main, this solution splits the word at the unrelated position of character a in the keyboard group. Working within that constraint, this solution uses the case of character that will be replaced to decide the case of the replacement character. See my review comments.

This PR only fails #46, and it matches the expected value more closely for this test than the does the other PR.

This PR only fails #46, and it matches the expected value more closely for this test than the does the other PR.

I'm closing this PR in favor of PR #39, which now passes the tests just as well as this PR does.

I'm closing this PR in favor of PR #39, which now passes the tests just as well as this PR does.

I'm closing this PR in favor of PR #39, which now passes the tests just as well as this PR does.

I'm closing this PR in favor of PR #39, which now passes the tests just as well as this PR does.


[formrecognizer] Skip bad model ID copy test

Currently this test case is returning an InternalServerError, will follow up with the service team.
Tracking https://github.com/Azure/azure-sdk-for-python/issues/27099

API change check
API changes are not detected in this pull request.


The Read method cannot be called when another read operation is pending.

Sometimes we get the following in our test-suite when running lots of parallel
tests through Neo4jClient.
The tests seems to hang for a long time before the following exception is
thrown. I suspect a timeout on the socket as it takes a long time. Looks like
some sort of race-condition.
Not really sure how to best create a reproducible case... We basically do:
do {
  using (new TransactionScope(FollowAsync)) {
    var neo = new Graph();
    // Test case goes here
  }
  // Rollback called on dispose
} while (deadLockExceptionThrown) // if a deadlock was detected, run the entire test again

The Read method cannot be called when another read operation is pending.

   at Neo4j.Driver.Internal.Transaction.TransactionConnection.OnError(Exception error)
   at Neo4j.Driver.Internal.Connector.DelegatedConnection.Sync()
   at Neo4j.Driver.Internal.Protocol.BoltProtocolV1.RollbackTransaction(IConnection connection)
   at Neo4j.Driver.Internal.Transaction.RollbackTx()
   at Neo4j.Driver.Internal.Transaction.Dispose(Boolean isDisposing)
   at Neo4j.Driver.Internal.StatementRunner.Dispose()
   at Neo4jClient.Transactions.BoltNeo4jTransaction.Dispose(Boolean isDisposing) in C:\Users\xsien\code\Neo4jClient\Neo4jClient.Full.Shared\Transactions\BoltNeo4jTransaction.cs:line 37
   at Neo4jClient.Transactions.BoltNeo4jTransaction.Dispose() in C:\Users\xsien\code\Neo4jClient\Neo4jClient.Full.Shared\Transactions\BoltNeo4jTransaction.cs:line 44
   at Neo4jClient.Transactions.BoltTransactionPromotableSinglePhasesNotification.Rollback(SinglePhaseEnlistment singlePhaseEnlistment) in C:\Users\xsien\code\Neo4jClient\Neo4jClient.Full.Shared\Transactions\Bolt\BoltTransactionPromotableSinglePhasesNotification.cs:line 89
   at System.Transactions.DurableEnlistmentAborting.EnterState(InternalEnlistment enlistment)
   at System.Transactions.TransactionStateAborted.EnterState(InternalTransaction tx)
   at System.Transactions.EnlistableStates.Timeout(InternalTransaction tx)
   at System.Transactions.Bucket.TimeoutTransactions()
   at System.Transactions.BucketSet.TimeoutTransactions()
   at System.Transactions.TransactionTable.ThreadTimer(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.TimerQueueTimer.CallCallback()
   at System.Threading.TimerQueueTimer.Fire()
   at System.Threading.TimerQueue.FireNextTimers()

Hi @simendsjo,
The Read method cannot be called when another read operation is pending. message makes me think that the Session and/or Transaction object is being used concurrently by different threads - each trying to read some data from it. Session and Transaction objects are not thread-safe and thus should not be used concurrently.
A blocking operation was interrupted by a call to WSACancelBlockingCall seems also related as it points to a closed socket although another thread is still reading.
Both issues may be related with how Neo4j Driver is used in Neo4jClient project and as such I'm closing this issue since it would make more sense to open an issue at Neo4jClient rather than here.
Thanks.


Configuration detection / specification

In my test setup we have multiple Neos Settings.yaml

Configuration/Settings.yaml (no DB settings)
Configuration/Development/Settings.yaml (yes, has DB settings, but the local ones)
Configuration/Production/Settings.yaml (correct production DB settings)

synco-serve automatically took the ones from the Development/Settings.yaml, which is wrong.
After I deleted them, it took Settings.yaml, not Production/Settings.yaml
It would be nice to have a way to configure synco which environment it should take and optionally that it does merge the corresponding context and sub-context settings.

@skurfuerst :facepalm: I've tried FLOW_CONTEXT=Production curl .. instead of export FLOW_CONTEXT=Production; curl ...
But could still be interesting to have an option and config file server side.
To make it a no brainer.


introduce SetNameMapper to be used instead of assigning to NameMapper

Document assigning to NameMapper still works only before sqlx is first used.
Remove the mprMu lock from mapper(), avoid comparing reflect.Value instances.
The result of such comparison is implementation specific.

This is something I really want to do, and in general, I think the global things that sqlx exposed early on have all been frustrating limitations.  However, I'm reluctant to break compatibility :(

This looks like a potential candidate for a new major version.


Finnish strings for 1.10

@valtlai , there was some issue with the release branch and we had to revert the latest changes done in release. Cold you please raise this PR again targeted to release branch.
Sorry for the inconvenience.

@saurabh95 Yeah, here’s it: #13511


Configure cups: failed to validate

Describe the bug
The Configure cups task fails with: failed to validate
Playbook
---
--
- name: Additional features
  hosts: web:&{{ env }}
  become: yes
  roles:
    - { role: robertdebock.cups, tags: [printer] }

Output
TASK [robertdebock.cups : Configure cups] **************************************
fatal: [staging-2.localdomain]: FAILED! => {"changed": false, "checksum": "4bcc5dff4c0183708e300b6c69624ddbdb203991", "exit_status": 1, "msg": "failed to validate", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}

fatal: [staging-2.localdomain]: FAILED! => {
    "changed": false,
    "checksum": "4bcc5dff4c0183708e300b6c69624ddbdb203991",
    "diff": [],
    "exit_status": 1,
    "invocation": {
        "module_args": {
            "_original_basename": "cupsd.conf.j2",
            "attributes": null,
            "backup": false,
            "checksum": "4bcc5dff4c0183708e300b6c69624ddbdb203991",
            "content": null,
            "dest": "/etc/cups/cupsd.conf",
            "directory_mode": null,
            "follow": false,
            "force": true,
            "group": null,
            "local_follow": null,
            "mode": "0640",
            "owner": null,
            "remote_src": null,
            "selevel": null,
            "serole": null,
            "setype": null,
            "seuser": null,
            "src": "/home/admin/.ansible/tmp/ansible-tmp-1695691360.9995403-26245-83999800941144/source",
            "unsafe_writes": false,
            "validate": "cupsd -t -c %s"
        }
    },
    "msg": "failed to validate",
    "stderr": "",
    "stderr_lines": [],
    "stdout": "",
    "stdout_lines": []
}

Environment

Control node OS: Ubuntu 22.04.3 LTS
Control node Ansible version: ansible [core 2.15.0]
Managed node OS: Ubuntu 20.04.5 LTS

This is the generated file that is passed to cupsd -t -c for validation (which fails validation with non-zero exit code):
#
# Ansible managed
#

MaxLogSize 0
#
# Configuration file for the CUPS scheduler.  See "man cupsd.conf" for a
# complete description of this file.
#

# Log general information in error_log - change "warn" to "debug"
# for troubleshooting...
LogLevel warn

# PreserveJobHistory specifies whether metadata is preserved after a job is
# printed.
PreserveJobHistory Yes

# Only listen for connections from the local machine.
ServerAlias *
Listen localhost:631
Listen /run/cups/cups.sock

# Show shared printers on the local network.
Browsing Off
BrowseLocalProtocols dnssd

# Default authentication type, when authentication is required...
DefaultAuthType Basic

# Web interface setting...
WebInterface Yes

# Restrict access to the server...
<Location />
  Order allow,deny
  Allow @LOCAL
</Location>

<Location /admin>
  Order allow,deny
  Allow @LOCAL
</Location>

<Location /admin/conf>
  Order allow,deny
  AuthType Default
  require user @SYSTEM
  Allow @LOCAL
</Location>

<Location /admin/log>
  Order allow,deny
  AuthType Default
  require user @SYSTEM
</Location>

# Set the default printer/job policies...
<Policy default>
  # Job/subscription privacy...
  JobPrivateAccess default
  JobPrivateValues default
  SubscriptionPrivateAccess default
  SubscriptionPrivateValues default

  # Job-related operations must be done by the owner or an administrator...
  <Limit Create-Job Print-Job Print-URI Validate-Job>
    Order deny,allow
  </Limit>

  <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document>
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>

  # All administration operations require an administrator to authenticate...
  <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default CUPS-Get-Devices>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
  </Limit>

  # All printer operations require a printer operator to authenticate...
  <Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
  </Limit>

  # Only the owner or an administrator can cancel or authenticate a job...
  <Limit Cancel-Job CUPS-Authenticate-Job>
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>

  <Limit All>
    Order deny,allow
  </Limit>
</Policy>

# Set the authenticated printer/job policies...
<Policy authenticated>
  # Job/subscription privacy...
  JobPrivateAccess default
  JobPrivateValues default
  SubscriptionPrivateAccess default
  SubscriptionPrivateValues default

  # Job-related operations must be done by the owner or an administrator...
  <Limit Create-Job Print-Job Print-URI Validate-Job>
    AuthType Default
    Order deny,allow
  </Limit>

  <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document>
    AuthType Default
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>

  # All administration operations require an administrator to authenticate...
  <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
  </Limit>

  # All printer operations require a printer operator to authenticate...
  <Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
  </Limit>

  # Only the owner or an administrator can cancel or authenticate a job...
  <Limit Cancel-Job CUPS-Authenticate-Job>
    AuthType Default
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>

  <Limit All>
    Order deny,allow
  </Limit>
</Policy>

# Set the kerberized printer/job policies...
<Policy kerberos>
  # Job/subscription privacy...
  JobPrivateAccess default
  JobPrivateValues default
  SubscriptionPrivateAccess default
  SubscriptionPrivateValues default

  # Job-related operations must be done by the owner or an administrator...
  <Limit Create-Job Print-Job Print-URI Validate-Job>
    AuthType Negotiate
    Order deny,allow
  </Limit>

  <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document>
    AuthType Negotiate
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>

  # All administration operations require an administrator to authenticate...
  <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
  </Limit>

  # All printer operations require a printer operator to authenticate...
  <Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
  </Limit>

  # Only the owner or an administrator can cancel or authenticate a job...
  <Limit Cancel-Job CUPS-Authenticate-Job>
    AuthType Negotiate
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>

  <Limit All>
    Order deny,allow
  </Limit>
</Policy>

Related: https://github.com/ansible/ansible/issues/19232

Let me check, thanks for the notification.

When I place a working config in /tmp:
cupsd -t -c /tmp/cupsd.conf
"/tmp/cups-files.conf" is OK.
"/tmp/cupsd.conf" is OK.

Especially /tmp/cups-files.conf does not exist. This role does not place it.
Maybe a validate command that also point so /etc/cups/cups-files.confascupsd -t -s /etc/cups/cups-files.conf -c %s` works better. Let me try.
By the way; I can't reproduce the issue. Can you past the variables fed to the role by your playbook/inventory/(group|host)_vars?

@robertdebock: Maybe this is an ansible version thing? The temporary file is shown when running ansible in verbose mode.
The issue is that ansible uses the path to the temporary file in validate.

Hm, the versions of Ansible. That sounds like a good lead.
I'm currently testing on Ansible 6, 7 & 8:
tox.ini:
    ansible6: ansible == 6.*
    ansible7: ansible == 7.*
    ansible8: ansible == 8.*

You're using Ansible-core 2.15.0, pretty recent.
And since you're using the default variable values, that's also what I'm testing. In other words, can't reproduce, so let's figure out what the differences are.
I'm not sure where to begin finding the difference between your setup and mine as you've explained all the details already.
I've added that cups-files.conf in the last push and converted some variables into booleans. (Was: "Yes", is yes).

Please try 3.0.0. Be are, some variables have changed type. Were string, are boolean.

@robertdebock: I provisioned with 3.0.0, but the error persists.
Ubuntu 22.04 LTS Server minimal base is the system used for this.
It appears that the cups package has additional permission checks built in for the config file validation?
(Side note: I use become: yes as otherwise Configure cups would fail with Destination /etc/cups not writable.)

That could be a lead; permissions on the (temporary) files. Let me work that out. Thanks for getting back!

On Ubuntu LTS 22.04 LTS server minimal base system:

Create file with valid cupsd configuration as ansible would under /home/admin/.ansible/tmp/ansible-tmp-1696464574.0848813-31244-201540201837497/source.
Validate that file with the command ansible would use: cupsd -t -s /etc/cups/cups-files.conf -c /home/admin/.ansible/tmp/ansible-tmp-1696464574.0848813-31244-201540201837497/source
Note that exit status is non-zero (1) and no success messages are printed.
Move that file into /etc and repeat the validation command.
Note that validation still fails.
Move that file into /etc/cups - file name does not matter, it can still be just source, and repeat validation command.
Note that validation now passes with zero exit status and success messages.

The actual validation code (upstream) for cups 2.4.1 (as used by Ubuntu 22.04 LTS ("jammy")):
https://github.com/OpenPrinting/cups/blob/v2.4.1/scheduler/main.c#L549
The validation code uses the return value from a general function for loading configuration files:
https://github.com/OpenPrinting/cups/blob/v2.4.1/scheduler/conf.c
As this function is apparently primarily used by cupsd daemon, error details during load are logged and not printed.
And finally, the syslog logs the following on a failed validation attempt (where the configuration file is outside of /etc/cups):
[...] audit[1964]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/cupsd" name="/tmp/source" pid=1964 comm="cupsd" requested_mask="r" denied_mask="r" fsuid=0 ouid=1002
[...]  cupsd[1964]: Unable to open "/tmp/source" - Permission denied
[...]  kernel: audit: type=1400 audit(1696465133.482:33): apparmor="DENIED" operation="open" profile="/usr/sbin/cupsd" name="/tmp/source" pid=1964 comm="cupsd" requested_mask="r" denied_mask="r" fsuid=0 ouid=1002

So apparmor denies cupsd access to files outside of /etc/cups. On Ubuntu 22.04 LTS apparmor is installed and enabled by default.

Super, that's good information and I am able to reproduce the issue now. Let me think of a solution. What comes up now:

Disable Apparmor, configure cups, enable Apparmor
Change the Apparmor profile for cups
Don't validate.

Awesome, managing Apparmor is the best way, but also the most ambitious!

@robertdebock: I tried the new adjustments, it appears that there is an incompatibility (shell interpreter? my ansible version?)
RUNNING HANDLER [robertdebock.cups : Load the AppArmor cups profile] ***********
fatal: [staging-3]: FAILED! => {"changed": true, "cmd": "set -o pipefail && cat /etc/apparmor.d/usr.sbin.cupsd | apparmor_parser -a", "delta": "0:00:00.005895", "end": "2023-10-05 18:20:23.481508", "msg": "non-zero return code", "rc": 2, "start": "2023-10-05 18:20:23.475613", "stderr": "/bin/sh: 1: set: Illegal option -o pipefail", "stderr_lines": ["/bin/sh: 1: set: Illegal option -o pipefail"], "stdout": "", "stdout

@robertdebock: On first provision using the new role (using a system snapshot where it had not been installed yet)
the configuration step works now, there is a warning though:
TASK [robertdebock.cups : Configure cups] **************************************
[WARNING]: Error deleting remote temporary files (rc: 1, stderr: })

On second provision there are no warnings.

This fix doesnt work, if the host is ubuntu, and run the molecule test. the centos 8 image havent appamor, but the host apparmor catch the cupsd, and denied the access at validation.

@elsoa-invitech: So apparmor requires a different configuration on CentOS?

Possible solution to change validate command: copy the temp file to etc/cups directory.
  validate: >-
    bash -c
    'cp $1 /etc/cups/cupsd-test.conf && cupsd -t -s /etc/cups/cups-files.conf -c /etc/cups/cupsd-test.conf || rm -f /etc/cups/cupsd-test.conf'
    - %s

Maybe you can add some randomisation for test file.

@elsoa-invitech: What exactly logs apparmor when it denies cupsd access? This can be used to adjust the apparmor profile for CentOS.
Is there a file /etc/apparmor.d/usr.sbin.cupsd on the CentOS system?

this is the dmesg log line:
[50956.691635] audit: type=1400 audit(1698156427.422:89): apparmor="DENIED" operation="open" class="file" profile="/usr/sbin/cupsd" name="/root/.ansible/tmp/ansible-tmp-1698156426.3260856-44738-266792785480578/source" pid=45148 comm="cupsd" requested_mask="r" denied_mask="r" fsuid=0 ouid=0

And there is no apparmor files in centos.  you can check it, if you run the molecule converge, and login into the container.

The ubuntu workaround breaks idempotency also, as it registers changes due to the disable/enable apparmor steps even when no updates are required. eg. from a 20.04 managed host:
TASK [cups : Disable AppArmor cups profile] **************************************************************************************************************************************************************
changed: [<IP_ADDRESS>]

TASK [cups : Flush handlers] *****************************************************************************************************************************************************************************

RUNNING HANDLER [cups : Reload disabled AppArmor cups profile] *******************************************************************************************************************************************
changed: [<IP_ADDRESS>]

TASK [cups : Configure cups] *****************************************************************************************************************************************************************************
ok: [<IP_ADDRESS>]

TASK [cups : Enable AppArmor cups profile] ***************************************************************************************************************************************************************
changed: [<IP_ADDRESS>]

TASK [cups : Flush handlers] *****************************************************************************************************************************************************************************

RUNNING HANDLER [cups : Load the AppArmor cups profile] **************************************************************************************************************************************************
changed: [<IP_ADDRESS>]


Updated Kafka broker image version (3.1.0->)3.1.2

Description
To fix vulnerabilities and incorporate patches.
Based on #774
Type of Change

[X] Bug Fix
~New Feature~
~Breaking Change~
~Refactor~
~Documentation~
~Other (please describe)~

Checklist

[X] I have read the contributing guidelines
[X] Existing issues have been referenced (where applicable)
[X] I have verified this change is not present in other open pull requests
[X] Functionality is documented
[X] All code style checks pass
[X] New code contribution is covered by automated tests
[X] All new and existing tests pass

Question: is this PR still needed given we have #1007 and #1006 ready to be merged?

I would say not required with those.
But if we need to wait for long before merging those PRs this could go in fast and have a fresher version by default in Koperator.


refactor(SetTheory/Cardinal/Aleph): aleph' → preAleph

This helps us move away from primes in theorems and definitions.
Suggested by Floris van Doorn.

Nope, not aware of any such script. I did take this opportunity to move all the deprecations to a single section for convenience.

Looks like it was only diffused among official reviewers. We'll soon PR to scripts.

Thanks!
bors merge


[Bug] docker.io image is arm64-only

Search before asking

[X] I searched in the issues and found nothing similar.

Version
https://hub.docker.com/layers/apachepulsar/pulsar/latest/images/sha256-5af72da140f3901bccc0a5b56de8764cd60f0d351011fd1b90c484a30889fbf8
Minimal reproduce step

skopeo inspect docker://apachepulsar/pulsar:latest | jq .Architecture

lists available architectures.  Check, that it's only arm64.
What did you expect to see?
No problems
What did you see instead?

podman pull apachepulsar/pulsar:latest
Trying to pull docker.io/apachepulsar/pulsar:latest...
Getting image source signatures
Copying blob 4ec3c7e54ba3 skipped: already exists
Copying blob bb52697e963b skipped: already exists
Copying blob 4f4fb700ef54 skipped: already exists
Copying blob 4ceb002a5484 skipped: already exists
Copying blob 463b5cffcd17 skipped: already exists
Copying blob 292a0452bbaa skipped: already exists
Copying blob 4f4fb700ef54 skipped: already exists
Copying blob 4df8ce073f12 skipped: already exists
Copying blob bfbe77e41a78 skipped: already exists
Copying config 6d1635dc29 done   |
Writing manifest to image destination
WARNING: image platform (linux/arm64) does not match the expected platform (linux/amd64)

Anything else?
No response
Are you willing to submit a PR?

[ ] I'm willing to submit a PR!

We just ran into this as well for our pulsar CI tests in https://github.com/vectordotdev/vector.


Broker side deduplication

Motivation
Context in PIP-6.
This PR contains the broker side changes to implement the deduplication using the logic described in the design doc.
This is not the complete feature. I will add unit tests after pushing the client library changes as well. All tasks are in the deduplication project
Modifications

Added APIs to enable/disable deduplication
Check for sequence ids to discard duplicates
Use the cursor properties to take snapshot of the sequence id map
Load the snapshot and replay the cursor when loading the topic

cc/ @sijie @zhaijack. Please take a look as well

@rdhabalia Updated addressing comments. Also added logic to check for original producer name in case of replicated messages.

retest this please

retest this please

I think we don't have a testcase for dedup..right?

@rdhabalia There's a test class at https://github.com/apache/incubator-pulsar/blob/d4a8c25bc00bc1d61e1a1f5b4ee34566cdacfe3d/pulsar-broker/src/test/java/org/apache/pulsar/client/api/ClientDeduplicationTest.java