[wac-ucr] initial use cases

Initial set of use-cases for web access control.
This pull request supersedes #83, which introduced the definitions that were used extensively in the use cases included in this pull. Consequently, the branch of #83 was merged into this one so the use cases could be authored. Discussions and/or feedback from #83 should/will continue in this PR.

On the whole I find this document to be very helpful. I think there is enough experience to justify quite precise use cases, and so the reference to legacy implementations also makes sense (one wants to take those into account, as those provide 10 years of experience).
@csarven this is a first version. I think it is fine to add use cases if you feel that something more general is missing. (I thought that a use case for helping minimise privacy of the client was missing so I mentioned that yesterday).
I will review in more detail too.

@bblfish I would not have classified them as legacy or failure of the prior WAC in that case. No need to mention "Legacy".
My general point is that when something like this is defined:

A resource controller is an agent with fully permissioned access and control over one or more resources residing on a resource server on the Web.

and referred right from the beginning of the UC section, it pretty much sets everything there is to follow. It already has the requirements and scope in mind, and what follows is filling in the blanks. So, the issue is not so much about adding use cases but coming to consensus on which ones to remove. And I'm genuinely concerned that this is going to be bloated, and even more concerned that the requirements that will come out of this may not align well with the foundations in other parts of the ecosystem.
As for individual use cases, I'd like to see votes documented as proposed in https://github.com/solid/specification/issues/9#issue-464920092 .
To have a fair and well representative voting, I'd suggest that people working on implementations (and voting +1) indicate what they are working on so that we don't have an overwhelming support of a use case that's of interest to one implementation/team but not to others.

Is there some word other than "Legacy" that would more neutral? Maybe "conventional"?
I have two reasons that I like including the conventional WAC:

swaps some people in very quickly, and those some people are most of the people working on this.
it helps us understand why we're bothering with this exercise.
I agree that we shouldn't let conventional WAC define or constrain our solution but I'm in favor of whatever we can include that accelerate this process. IIRC, the LDP WG used the existing OSLC infrastructure to ground our conversations. None of that persistent into the final drafts but it was very useful in early drafts.

@ericprud I thought "conventional" is not quite right. Perhaps "deployed"

I can't believe I had to wait most of a minute for your response.

@csarven

First, please address #83 (comment)

Description text of this PR has been updated to reference back to #83, which was closed when this replaced it.
From https://github.com/solid/authorization-panel/pull/83#discussion_r452461263:

The UCR should have no knowledge about the things that's being defined here.

I'm not sure it's possible to write good use cases for a web-based authorization system without using common terms for an authorization system. In the live review in yesterday's panel session, the definitions proved quite helpful in grounding the intended meaning of these terms in the context they were written. At this stage of the draft, it's probably in our best interest to ensure we all mean the same thing when using particular terms.
From https://github.com/solid/authorization-panel/pull/83#discussion_r452461263:

When this is defined, it is reverse-engineering the UCR where it should instead work from its own needs to come up with the requirements.

I disagree - these are pretty vanilla definitions of an authorization system. Sure there is a slight bend to known elements given that we're not creating this in a vacuum (we do have an existing scheme that we're looking to improve), but if you asked someone to sit down and write out the elements of a generic access control system, the list would probably look a lot like this.
From https://github.com/solid/authorization-panel/pull/83#discussion_r452461263:

Why is the UCR defining terminology instead of referring to where they are actually defined?

To make the text as consumable as possible to the reader, and ensure that there's no ambiguity in the terms used in the text. This is the same strategy used by the Verifiable Credentials WG, and the Decentralized Identifiers WG, which are in a complementary space and share some related subject matter:

DID Use Cases and Requirements - Concepts of Decentralized Identity
Verifiable Credentials Use Cases - Terminology

I fail to see how Requirements can precede Use Cases. Even the document title follows an intuitive order UC->R.

Moved requirements to follow use cases in https://github.com/solid/authorization-panel/pull/84/commits/b7cd84e0496f85284981e2418f3a527ae4738472.

Why would this UCR need to mention the "Legacy" mechanism? Did any of the sample UCRs listed in solid/specification#9 (comment) make a similar contrast?

Not that I'm aware of, but I suspect it's because they weren't written after the fact, so there wasn't a prior (legacy) version in the field to compare to. I believe that makes this particular situation unique, and I think it is helpful context for the reader to understand the use cases that aren't believed to be satisfied by what is in the field. I don't know if it should live in this document long-term, but for now it seems to be helpful context.

As mentioned before, there are bits and pieces in this UCR that indicate that what's being documented feels like reverse-engineering the desired outcome

It would be more constructive to provide specific examples, or propose specific adjustments. As written this is difficult to respond to. These are pretty vanilla use cases.

Are there any UCs or Rs in this document that's marked as out of scope?

TLDR; No. There are no Rs submitted yet - only use cases. I would imagine that scoping wouldn't be appropriate until we start writing requirements at the earliest, if not during authoring of the specification text.

Did we genuinely write everything here and found out that everything was exactly what we needed in the whole Web access control domain? That'd be pretty impressive though :)

Assuming this is a rhetorical statement. Per the description in the pull request - this is an initial set of use cases. I'm not aware of any statements to the contrary. I'd be happy to correct them if there are. A sincere effort was made to capture as many unique use cases as possible, including ones that were provided by panel members in the recent weekly sessions.

My general point is that when something like this is defined:

A resource controller is an agent with fully permissioned access and control over one or more resources residing on a resource server on the Web.
and referred right from the beginning of the UC section, it pretty much sets everything there is to follow. It already has the requirements and scope in mind, and what follows is filling in the blanks.

I honestly don't know how we can write precise and detailed use cases for authorizing access to resources without an actor that has permission to authorize access to resources. I don't believe this is over-prescribing given the focus is use cases for web access control.

So, the issue is not so much about adding use cases but coming to consensus on which ones to remove.

I'm not sure I see a world where we can remove things from WAC and do anything practical. As it stands, there are several key pieces of functionality typical of most authorization systems that WAC doesn't provide, and some real hurdles in the current inheritance algorithm. This document was deliberately organized to avoid redundancy so that we could zero in on the minimal set of requirements for a viable system.

And I'm genuinely concerned that this is going to be bloated, and even more concerned that the requirements that will come out of this may not align well with the foundations in other parts of the ecosystem.

If you see specific use cases that you’re concerned about being bloated, please refer to them.  I share your focus on the entire ecosystem, but thus far I don’t see anything here that raises alarms. That said, I am more than willing to dig into anything specific that concerns you at this point.

As for individual use cases, I'd like to see votes documented as proposed in solid/specification#9 (comment) .

That is the intent here. They have to be documented for people to give feedback. The panel voted to produce this text and iterate on it. I don't think it's productive to file every single one of these in a separate ticket and look at them in a vacuum. When designing an authorization system, the context of a given use case or need in relation to the others is as important as the need itself.

The use cases here are very well described. The definitions are really useful for having a common vocabulary to discuss this, but I share @csarven's concerns that they go too far towards solution engineering. For example:

An authorization statement is an expression included in an acl resource that identifies permitted access modes to authorization targets by authorization subjects.

Why does an authorization statement necessarily need to be in an acl resource? Why is the authorization statement the unit that pulls together authorization targets and authorization subjects?
I can come up with an alternative model that meets all (or most) of the use cases described here, but which doesn't conform to the definitions, which seem like a problem with the definitions.
Similarly:

An acl resource is a resource that includes one or more authorization statements applied to one or more resources.

This is solution engineering. A specification that defines a formal model for authorization structures could have a definition such as this, but in the context of use cases and requirements, there are too many assumptions about structure bleeding through this sentence. Something better might be "An acl resource is a special resource that defines how authorization is enforced for a resource or set of resources". Do you see the difference?
Most of the definitions are hard to disagree with, but everything that starts with "An authorization X is a ..." strikes me as problematic.

Most of the definitions are hard to disagree with, but everything that starts with "An authorization X is a ..." strikes me as problematic.

@acoburn I can see where the specific definitions you describe are overly prescriptive. I think  I have addressed these concerns now in https://github.com/solid/authorization-panel/pull/84/commits/146c3c1b7987e86cd0592ca1e5b8f2cc495ed4dd.

@justinwb :

That is the intent here. They have to be documented for people to give feedback. The panel voted to produce this text and iterate on it. I don't think it's productive to file every single one of these in a separate ticket and look at them in a vacuum. When designing an authorization system, the context of a given use case or need in relation to the others is as important as the need itself.

What you're citing is not relevant to why voting on each use case is important, which is at the core of what I'm trying to draw attention to. I don't think that the way to collect and analyse as you've raised and argued against is the only one. An alternative: any single document including all of the proposed use cases with votes, names and intent will suffice, and there are number of ways to achieve that.
It shouldn't be seen as a burden but something we should definitely be taking advantage of in order to get a better understanding as to what's significant, needs prioritisation, determine in/out of scope. If it helps, think of it as a filter to see what will most likely get implemented - again, people voting +1 on use cases and claiming they'll implement in good faith is a useful signal to pursue those use cases. Use cases that are less attractive or have no interest in getting implemented helps us to document and de-prioritise them - at least for the short term. Consequently, the group neither has to invest further energy on them or come up with technical requirements, thereby keeping the spec to the essentials. Moreover, having a basic sense of what will get implemented helps to ensure that the specs can advance to - the roughly equivalent of - "Candidate Recommendation" and actually receive implementation reports for the required features. As part of the "Exit Criteria", the features that do not have sufficient number of implementations will get removed.
These are all critical social and technical wins as I see it.
Lastly, in order for the Solid Community Group to produce (technical) reports based on open discussion and consensus, we should be recording how we got there as best as we can. Capturing the votes per use case contributes to that goal.
The above applies to all panels or otherwise producing UCRs and specs.

What you're citing is not relevant to why voting on each use case is important, which is at the core of what I'm trying to draw attention to. I don't think that the way to collect and analyse as you've raised and argued against is the only one. An alternative: any single document including all of the proposed use cases with votes, names and intent will suffice, and there are number of ways to achieve that.

@csarven There's an implication that I'm arguing against consensus or voting. I'm not. My point was that a use case needs to exist first before you can vote on it. We've taken the first step in the process by drafting some. I am happy to raise a case by case vote to the panel in the next session.

FWIW, here is my 👍 to the use cases recorded here.

3.1 Basic resource access

I am planning to implement and foresee no issues with the 3.2 use cases.

3.2 Basic collection access

I am planning to implement and foresee no issues with the 3.2 use cases.

3.3 Inheritance

I am planning to implement and foresee no issues with the 3.3 use cases

3.4 Conditional access

This is a really interesting set of use cases. I can imagine ways to implement these, but this would not have the same level of priority as the 3.1 - 3.3 use cases. I would want to consider how this impacts cacheability.

3.5 Permissioning applications

This is really important, but we need to clarify how applications are able to strongly identify themselves. If that can be spec'ed out (it involves interaction with the authN flows) and if we can ensure that application identifiers are not easily spoofable, then I would certainly implement this. We'd also want to consider cacheability for this.

3.6 Privacy

I am planning to implement and foresee no issues with the 3.6 use cases.

3.7 Trust

This is another interesting one. Typically I would think about this as a server-level configuration, but supporting this at the resource level seems reasonable. I don't foresee significant implementation issues with this, though it wouldn't have the same priority as 3.1 - 3.3.

3.8 Validation

This seems quite sensible, and I don't foresee any significant issues with this. I could use ShEx or SHACL to validate the incoming RDF, though it may be even easier to use a simpler model for validation.

3.9 Capabilities

Another very interesting one. The VC use case is one that I'd put more into the authN realm and proceed using the existing authZ mechanisms, but there are many details to flesh out there. There are lots of ways to handle "possession of a link". As with some of the other use cases, I find this interesting though possibly not the highest priority from an implementation perspective.

Merging per the action item from the panel session on 7/22.


ImportError: cannot import name 'PhilipsOnOffCluster' from 'zhaquirks.philips'

Describe the bug
During startup of Home Assistant 2021.10.4 (using zha-quirks==0.0.62) the following error occurs:
2021-10-15 08:35:38 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry /dev/Zigbee for zha
Traceback (most recent call last):
  File "/srv/hass/lib/python3.8/site-packages/homeassistant/config_entries.py", line 304, in async_setup
    result = await component.async_setup_entry(hass, self)  # type: ignore
  File "/srv/hass/lib/python3.8/site-packages/homeassistant/components/zha/__init__.py", line 99, in async_setup_entry
    setup_quirks(config)
  File "/srv/hass/lib/python3.8/site-packages/zhaquirks/__init__.py", line 394, in setup
    importlib.import_module(modname)
  File "/usr/local/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 783, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/srv/hass/lib/python3.8/site-packages/zhaquirks/philips/llc011.py", line 25, in <module>
    from zhaquirks.philips import PHILIPS, PhilipsOnOffCluster
ImportError: cannot import name 'PhilipsOnOffCluster' from 'zhaquirks.philips' (/srv/hass/lib/python3.8/site-packages/zhaquirks/philips/__init__.py)

To Reproduce
Steps to reproduce the behavior:

sudo systemctl stop home-assistant@homeassistant
sudo systemctl start home-assistant@homeassistant
less home-assistant.log
scroll down until you reach the error

Expected behavior
Setup of /dev/Zigbee (my Zigbee dongle) is succesful
Screenshots
N/A
Additional context
configuration contains:
logger:
  default: info
  logs:
    homeassistant.components: info
    homeassistant.components.zha: debug
    bellows: debug
    zigpy: debug

but no additional information seems to be available
My Zigbee dongle is:
$ lsusb
[...]
Bus 001 Device 063: ID 1cf1:0030 Dresden Elektronik
[...]

And the UDEV rule is:
SUBSYSTEM=="tty", ATTRS{idVendor}=="1cf1", ATTRS{idProduct}=="0030", SYMLINK+="Zigbee"

Thus creating /dev/Zigbee
The installed zha-quirks version is:
$ pip3 list
Package                 Version
----------------------- -----------
[...]
zha-quirks              0.0.62
[...]

Your system is using one not compatible file in the HA container:
File "/srv/hass/lib/python3.8/site-packages/zhaquirks/philips/llc011.py", line 25, in <module>
    from zhaquirks.philips import PHILIPS, PhilipsOnOffCluster

The PhilipsOnOffCluster was removed in #993 and also in all remaining Philips quirk it have being deleted / updated, how your system is getting the /srv/hass/lib/python3.8/site-packages/zhaquirks/philips/llc011.py its little strange then its not in the dev brash and was not be the deleted quirks so somthing must have adding it in your system.
Do you have adding or modding quirks in the HA container or with local quirks ?

I am not using the HA container but the venv version. I will try to remove the zha-quirks completely and reinstall it to see if that solves the issue.
I have not modified anything within the HA installation, nor in the local quircks

I have used pip3 to remove the zha-quirks package and manually removed the directory /usr/local/lib/python3.8/site-packages/zhaquirks
Then I re-installed zha-quirks==0.0.62 and all seems to be working again.
Thanx for pointing me in the right direction!

I was searching github for llc011.py and i have not find any so its little strange how you was getting it in your system (if adding it local, is the updating not deleting it so it can being old as python 3.8 then running no docker install).
Great that you was getting it working and the quirk is up to date and not making more problems.


test sonarcloud ci

The CI with the malicious code is not executed. Instead, the CI uses the workflow file from the master branch. See https://github.com/maximskorik/matchms/actions/runs/3656112857/jobs/6178183169


Process predict_ncRNA (1) terminated with an error exit status (139)

Hello! I am attempting to replicate the results from the online portal with a local install. The pipeline will begin to run but will stop working at various steps. The most common failure I see when attempting to predict ncRNA and receive an exit status of 139. Sometimes the tip at the end of the error says to navigate to the work directory and "bash .command.out" which, when executed, will typically finish without error. Other times the tip says to "cat .command.out" but only displays alignment information that I'm not sure how to decode in this context of error. In either of these cases, I run the pipeline again and sometimes it fails at the same spot or sometimes it will fail later at the protein clustering step, but never completely finishes.
The reference data source was provided by the online portal after completion. I'm running Ubuntu 22.04LTS with ample resources.
Any thoughts on where I'm going wrong?

Hello, sorry you're having problems with Companion. Can you link me to the online portal job you're trying to replicate (if I understand correctly). Are you saying the same job ran on the web server successfully but only fails in your local environment?


how to convert pascal xml to coco json using python?

https://blog.csdn.net/watermelon1123/article/details/88990392
hope can help you.


Remove usage of f string formatting for SQL generation

Remove all usage of f string or other direct string manipulation when creating SQL functions. This is important both for SQL injection prevention, but it also allows asyncpg to better prepare/cache statements for performance. This is at least needed for layer/Function, but should do a review of the code base to check of other instances as well.

closed in #72


Navbar breakpoints

oh wow this was a long time ago 😅 No these changes are in the pattern library anyway now, I'll close the pr


FIX: SynthStrip preprocessing miscalculating new shape after reorientation

The calculation of the new shape within the preprocessing for SynthStrip was done in XYZ coordinates (i.e., extents for each physical axis were estimated and divided by the new 1mm pixel size). However, the new axis sizes did not account for data being stored with IJK -> XZY convention (corresponding to LIA).
This PR accounts for this miscalculation.
Resolves: #999.

cc/ @psadil could you give this a try?
Basically, you can do this offline with:
import nibabel as nb
from mriqc.synthstrip.cli import conform

conform(nb.load("input_image.nii.gz")).to_filename("conformed.nii.gz")

With the old code, you should see the wrong image shape (considering the reference that of synthstrip). With this PR you should see the shortest axis put before.
Let me know what you find.

I'm re-reading the original issue, and thought a bit about your solution:
    # ...calculate target_affine above here...
    # Get corner voxel centers in mm
    corners_xyz = np.abs(
        affine
        @ target_affine
        @ np.hstack((corner_centers_ijk, np.ones((len(corner_centers_ijk), 1)))).T
    )

This indeed works because it implicitly reorders the shapes. I feel my patch is more explicit and, therefore less prone to future regressions.

Confirming that, with the new changes, the original image I'd been working with has not been cropped. So, looks good to me


Make inferencing more user friendly

Hi this is an enhancement to the already great program to make it a bit more easier to use. It would be nice to have a "browse" button to select the audio file to be inferenced.
Also another good feature would be to auto detect the index file of a model so that when you switch models you don't have to input it again.

Good idea.


Fix server icon in server command

Make command work with animated server icon.
Code made by the author of this repository.

Thanks!


Warning: React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: object

Hi,
I keep getting this warning when using
const breadcrumbs = useBreadcrumbs(routes);
but doesn't show up if i use
const breadcrumbs = useBreadcrumbs();
my routes object is as follows.

const routes = [
  {
    path: "/",
    breadcrumb: "Overview",
    children: [
      {
        index: true,
        name: "Overview",
        Component: <Overview />,
        breadcrumb: { title: "Overview" },
      },
    ],
  },
  {
    path: "/items",
    children: [
      {
        index: true,
        name: "Items",
        Component: <Items />,
        breadcrumb: { title: "Items" },
      },
      {
        path: "add-item",
        name: "Add Item",
        Component: <AddItem />,
        breadcrumb: { title: "Add Item" },
      },
      {
        path: "edit-item",
        name: "Edit Item",
        Component: <EditItem />,
        breadcrumb: { title: "Edit Item" },
      },
    ],
  },
];

I wanted to pass an object for breadcrumb, this caused the issue. Can we have this as a feature?
i fixed this by
 {
        path: "edit-item",
        name: "Edit Item",
        Component: <EditItem />,
        breadcrumb: { title: "Edit Item" },
      },

to
 {
        path: "edit-item",
        name: "Edit Item",
        Component: <EditItem />,
        breadcrumb: "Edit Item" ,
      },


Unable to change avatar of a resource

Observed/problematic behavior
Unable to change avatar of a resource

Expected behavior
Able to change avatar of a resource
Steps to reproduce

Create organisation (unsure if this has any effect)
Create resource (under organisation – unsure if this has any effect)
Upload version (unsure if this has any effect)
Attempt to change avatar of the resource

Other
Possibly linked to #1010

Unsolved – I'm getting an internal server error.


Bug docker-compose.sh starts wrong server version

Problem
Executing this will cause issues:
$ ./sechub-api.sh user_signup "pauli"<EMAIL_ADDRESS>HTTP/1.1 400
{"status":400,"error":"Bad Request","message":"Validation failed for object='signupJsonInput'. Error count: 1","details":["Field 'emailAdress' with value 'null' was rejected. Invalid email adress"],"timeStamp":"Sat Mar 02 22:11:32 UTC 2024"}

Changing the bash function for generating
function generate_sechub_user_signup_data {
  cat <<EOF
{
  "apiVersion":"$SECHUB_API_VERSION",
  "userId":"$1",
  "emailAdress":"$2"
}
EOF
}

Results in:
$ ./sechub-api.sh user_signup "pauli"<EMAIL_ADDRESS>HTTP/1.1 200

Solution
With #2874 the email address was renamed properly to address with two ds across the entire code base. The current code:
function generate_sechub_user_signup_data {
  cat <<EOF
{
  "apiVersion":"$SECHUB_API_VERSION",
  "userId":"$1",
  "emailAddress":"$2"
}
EOF
}

should work. Otherwise what was the point of renaming it.
Impact
The getting started guide does not work: https://mercedes-benz.github.io/sechub/latest/sechub-getting-started.html

@de-jcup and @sven-dmlr please have a look.

The sechub-api.sh file must match the running server version.
But in sechub-solution/env is downloading of version "1.3.0" configured.
In order to be safe, the default build type should be changed to "build".

@sven-dmlr from my perspective changing the build type to "build" is not the best solution. It will take a lot more time to start the solution, because it needs to build everything. In addition, the build is done from the development branch, which makes issues beginners have much harder to replicate.

Yes: the first time it takes more time. All subsequent calls are as quick as before.
IMHO the build from the develop branch makes sense, because it's the default branch from where the sechub-api.sh script also stems.
For beginners this should be okay.
(It's a big effort to change the env file with every server release: extra issue+extra PR )
We discussed in the team that for the future we could use a local Kubernetes like Minikube for a quick start. So the existing container packages and Helm charts can be used.
Although for developing, Docker Compose could still make sense.


Error {message: "Input data given to 'mapbox-gl-draw-cold' is not a valid GeoJSON object."} with DragCircleMode

This seems to be a known issue for DragCircleMode. (https://github.com/iamanvesh/mapbox-gl-draw-circle/issues/21)
A potential fix for this - https://github.com/iamanvesh/mapbox-gl-draw-circle/pull/12/commits/71a3834265eb8717262bb44d337cd91d31307751
...   geojson.properties.active = (isActivePolygon) ? Constants.activeStates.ACTIVE : Constants.activeStates.INACTIVE;   if (state.polygon.properties.center.length > 0) return display(geojson);

As this problem is still present, can someone merge this?


Incoming advisors inherit super user permissions from their predecessors

When incoming advisors are assigned to their predecessor's advisor position, the incoming advisor inherits the advisor position's super user permissions (if the predecessor was a super user).
Advisors must be trained before they can have super user permissions.
There are many untrained super users.

Added to #2191


Add line_style to Theme

Note: this includes the recent changes to fix deprecated bindings.
Addresses: #392 and probably others.
Theme will now accept a line_style argument. If passed a vector, it converts into a sequence similar to this example. If passed a symbol, it will return a pre-defined vector for that symbol (or throw an error if there isn't a pre-defined value for that symbol).
For line/hline/vline, if there is a value in the Theme for line_style, it will add a strokedash argument to the compose call.
Example:
using Plots
plot(cumsum(randn(10,5),1)+5, w=8, style=:auto)
plot!(rand(1,10)*10, w=8, style=:auto, t=[:vline,:hline])

Thanks for doing this. A couple nit picks noted.

@tbreloff How should I use the line_style argument? I've tried the following, which didn't work:
using Gadfly
plot(x=rand(10), y=rand(10), Geom.line, Theme(line_style=:dash))

I found this works.
plot(x=rand(10), y=rand(10), Geom.line, Theme(line_style=Gadfly.get_stroke_vector(:dashdot)))

I'll just leave my comments, for any one who will need help.

Currently this is the best way. I only added the bare minimum to this PR to implement functionality I wanted through Plots.jl (which I recommend ;)

On Dec 3, 2015, at 10:12 AM, Changhyun Kwon<EMAIL_ADDRESS>wrote:
I found this works.
plot(x=rand(10), y=rand(10), Geom.line, Theme(line_style=Gadfly.get_stroke_vector(:dashdot)))
I'll just leave my comments, for any one who will need help.
—
Reply to this email directly or view it on GitHub.


Make changes to manual

Hi!
I suggest to make changes on main manual page in GitHub.
In article where described how to use self-signed sertificate wrote:
$result = $telegram->setWebhook($hook_url, ['certificate' => '/path/to/certificate']);
Use certificate path as array - is wrong and get error, because in sources (longman/telegram-bot/src/Telegram.php:701) path uses as string:
...
/**
 * Set Webhook for bot
 *
 * @param string       $url
 * @param string|null  $path_certificate
 *
 * @return \Longman\TelegramBot\Entities\ServerResponse
 */
public function setWebHook($url, $path_certificate = null)
{
...

Thanks!

Not sure what version of the code you're looking at.
The array parameter to pass the certificate has been the way to do it for a very long time.

Ok, i see array in master
but if i try install php-telegram-bot via composer (https://github.com/php-telegram-bot/core#require-this-package-with-composer) it installs 0.35.0 version :(

What version of PHP are you using?
Are there any other dependencies in your project? Maybe one of them is blocking a later version.

PHP 7.2
No, a took composer.json file from a manual as is.
upd: re-launch composer update is updated bot to 0.61.0
it's not my fault.. :)
Thank you!


Add a customization parameter to pager for window switcher titles

I'm not familiar with the X11WindowHandle type - would it be useful to have the windowSwitcherFormatter hook be in IO instead of pure?  Are there useful pure operations on X11WindowHandle?

Just for context, I'm in favor of the change - I just want to avoid breaking the API later when/if we decide that purity hurts there.

'm not familiar with the X11WindowHandle type - would it be useful to have the windowSwitcherFormatter hook be in IO instead of pure?

Possibly. X11Property might actually be better than IO. I thought about this, but decided I wanted to avoid making too many changes.

Are there useful pure operations on X11WindowHandle?

Basically just selecting which of the workspace, window class and window title you want to display and in what order.

Just for context, I'm in favor of the change - I just want to avoid breaking the API later when/if we decide that purity hurts there.

Yeah, generally speaking, I think that purity for these customization features can end up being a pain because its hard to foresee every single last piece of information that might be useful in the customization context.


Migrate to Ktor 2

This commit migrates the project to Ktor 2.
In Ktor 2, JsonFeature is deprecated and superseded by a client ContentNegotiation plugin, which results in the core serialization logic being shared between client and server:
https://ktor.io/docs/migrating-2.html#serialization-client Hence, as part of this migration, the client and server modules are combined into a single module which has no client-specific or server-specific dependencies.
Several other upgrades (Kotlin, Gradle, and Moshi) are included in this change, as they were directly or indirectly required for the Ktor 2 upgrade.
Closes #47
Closes #48

Sorry about all the pushes; I discovered a few things after I created the PR which I had to fix in the CI configuration and certain Gradle plugins due to the module consolidation and Gradle update.

Sorry for not responding earlier. Somehow I was only getting notified about mentions. I have some time now that will allow me to review this and get this project back into shape.

Thanks so much for doing this work. It seems like the only "issue" with the PR is the failing coverage checks. That config can specify a threshold to allow for the coverage to lower slightly (example). If you make that adjustment, the checks will pass and I'll merge the PR.

No problem, happy to help! I followed a similar pattern for the updated .codecov.yml as in the example you shared; if you think the target or threshold values should be different from what I added, please let me know and I can update them.


Fix spelling of "anything" in title

Thanks. Some files have moved around in the meantime so I've not merged the PR but the typo is fixed 😄


PDF annotations toolbar in angular

HI Team,
how can i get annotations toolbar in pdf.js?
I am using angular 4

We don't have any toolbar for annotations at the moment and I'm not sure what it means. When filing an issue, you need to fill out the entire template for issues to be actionable. In particular, include a screenshot of the desired functionality. However, we want to keep annotations simple in the viewer and we don't support adding/modifying annotations, only viewing them, so I don't see why we would need any toolbars for that.


💻 Chessboard enhancement

Description
💻 Chessboard enhancement
Fixes #12
Mentions
@hrushikeshrv
Screenshots of relevant screens

Developer's checklist

[x] My PR follows the style guidelines of this project
[x] I have performed a self-check on my work
[x] My changes in code generate no new warnings
[x] I have added relevant screenshots in my PR

Thanks for the PR. There are some redundant changes, so I'll add the hacktoberfest-accepted label and incorporate these changes in a new commit 👍🏻


Make not_line_ending polymorphic over input.

Make the function work with both &[u8] and &str.
Fixes #285.

Sorry, I rewrote those functions in 26754f3 to use the new traits. Thanks for your help anyway!


Update else.go

addcomment and edit import

Closing for similar reasons as other changes by this author.


add missing return

quick workaround until apache/spark#9336 is merged, so that we can deploy the new version!
@damnMeddlingKid

merge and deploy whenever you're good to go :)

:+1:

I added tests upstream, check this out: https://github.com/apache/spark/pull/9336/files#diff-ca4ec8dece48511b915cad6a801695c1R599

to run tests, you have to build the assembly maven module then run ./bin/spark-submit python/pyspark/streaming/tests.py

alternatively, if you've already built the whole project after merging this change, that should be fine.


[Feature Request] Threshold multi-sig controller

As an extension of #41, m-of-n multi-sig would be useful for control over a DID.
This also is referring to control over a DID document (so perhaps controller array and some threshold to meet).
Use-case examples:

Board of a company where the DID represents the company.
Building on #41, 2 parents controlling a child's DID.

Weighted votes would be even better - though this can become more cumbersome to express in a DID document (if it needs to).

this are interesting features, as you point out, the more complex the logic, the harder the implementation.
Depending on use case, and the precise level of expressiveness needed, there would be different ways to implement it. It will be good to get more use cases and refine their needs

Yeah, I feel like something like this could have endless use cases, particularly in a business or legal context, or something in the IoT space. I'll try to think up some concrete ones.
As mentioned in https://github.com/input-output-hk/prism-did-method-spec/issues/41#issuecomment-1472014180 we can at least achieve n-of-n multi-sig with an array for did.controller.
One possible solution to make this (non-weighted) threshold multi-sig is a new top level property such as did.controllerThreshold (with some enforcement that the integer makes sense, given the length of did.controller).
The more refined weighted threshold multi-sig is as I said, more cumbersome to express, at least at the top-level of the DID document. Something I need to think about - maybe that is adding too much complexity.

apologies here too for the delay
I think I should refer to the comment I left in #41 too
I think we should clarify that issue before this one.
Let me know @iFergal if I could close this issue or if I should keep it open. If inactive, I would prefer to keep it closed and reopen it once we have more input to add/discuss
Thank you again for the comments!

I am closing the issue to keep a clean view of active ones
Feel free to re-open if needed


Use tapioca to regenerate rbi files for gems

Current dependencies on/for this PR:

master

PR #2   👈

This stack of pull requests is managed by Graphite.


Transparent skins

Should we carry over transparency in avatars & renders when the skin is transparent, or should we render them black (as they do in game)?
We should replace transparency with black (not the overlay though)

+1 for in-game like

Just to clarify, this is rendering transparent (what we currently do):

For renders, we could add the rear sides of the skin so it doesn't look weird.
And this is rendering game-like:

I'm also +1 for game-like though.

Yeah I'm for game-like. It curently looks weird when showing a player list:

Same goes for head only of course.

Came across that exact page a few days ago and thought the image wasn't loading :P

@Gyzie have a look at #134. Transparent skins now render like this:

Which is how they should appear in game.

@jomo Nice! Looks way better.

Both renders and avatars should now look exactly as they do in game. (i.e. transparent = black, translucent = opaque color)


polybar update (arch linux)

unable to update polybar in arch linux without previously setting
git config --global user.name
and/or
git config --global user.email
after setting these, it worked normally.

Thanks for reporting, I'll fix this shortly


Memory Error in vibe.utils.memory / FreeListRef: Refcount is stored outside allocated Memory

I discovered this issue while using valgrind. On serving a file using serveStaticFile valgrind reports an invalid read of size 4 whenever the refcount of a FreeListRef is accessed.
I read the source code. It seems that the "+ int.sizeof" to allocate memory for storing ref count got lost with commit 6be547148f45f47020c516b5ac25283734a99d76 .
As far as I figured out:

the memory for FreeListRef is allocated by calling FreeListObjectAlloc

FreeListObjectAlloc allocates AllocSize!T bytes (line 639 / 616)

AllocSize is just the size of T (or the classInstanceSize if T is a class), so no memory for storing the refcount is allocated (line 672)

I have no time to figure out where the "+ int.sizeof" fits best (and therefore, can't create a PR).
Valgrind output:
==5411== Invalid write of size 4
==5411== at 0xC97B52: D4vibe5utils6memory110T11FreeListRefTS4vibe4core6stream12OutputStream12writeDefaultMFC4vibe4core6stream11InputStreammZ6BufferVbi0Z11FreeListRef11T6opCallZ6opCallFNbZS4vibe5utils6memory110T11FreeListRefTS4vibe4core6stream12OutputStream12writeDefaultMFC4vibe4core6stream11InputStreammZ6BufferVbi0Z11FreeListRef (../../.dub/packages/vibe-d-0.7.27/source/vibe/utils/memory.d:694)==5411== Address 0x1899e270 is 0 bytes after a block of size 65,552 alloc'd==5411== at 0x4C2AB80: malloc (in /usr/lib/valgrind/vgpreloadmemcheck-amd64-linux.so)
==5411==
==5411== Invalid read of size 4
==5411== at 0xC97AC2: D4vibe5utils6memory110T11FreeListRefTS4vibe4core6stream12OutputStream12writeDefaultMFC4vibe4core6stream11InputStreammZ6BufferVbi0Z11FreeListRef15checkInvariantsMxFNaNbNiZv (../../.dub/packages/vibe-d-0.7.27/source/vibe/utils/memory.d:753)==5411== Address 0x1899e270 is 0 bytes after a block of size 65,552 alloc'd==5411== at 0x4C2AB80: malloc (in /usr/lib/valgrind/vgpreloadmemcheck-amd64-linux.so)
==5411==
==5411== Invalid read of size 4
==5411== at 0xC97988: D4vibe5utils6memory110T11FreeListRefTS4vibe4core6stream12OutputStream12writeDefaultMFC4vibe4core6stream11InputStreammZ6BufferVbi0Z11FreeListRef5clearMFNbNiZv (../../.dub/packages/vibe-d-0.7.27/source/vibe/utils/memory.d:732)==5411== Address 0x1899e270 is 0 bytes after a block of size 65,552 alloc'd==5411== at 0x4C2AB80: malloc (in /usr/lib/valgrind/vgpreloadmemcheck-amd64-linux.so)
==5411==
==5411== Invalid read of size 4
==5411== at 0xC9798A: D4vibe5utils6memory110T11FreeListRefTS4vibe4core6stream12OutputStream12writeDefaultMFC4vibe4core6stream11InputStreammZ6BufferVbi0Z11FreeListRef5clearMFNbNiZv (../../.dub/packages/vibe-d-0.7.27/source/vibe/utils/memory.d:732)==5411== Address 0x1899e270 is 0 bytes after a block of size 65,552 alloc'd==5411== at 0x4C2AB80: malloc (in /usr/lib/valgrind/vgpreloadmemcheck-amd64-linux.so)

Thanks for taking this to GitHub. I saw the thread on the forum, but didn't manage to look into it, yet.
I'll make a quick bugfix release soon.


New version: 7S2P.Effie.CN version 3.2.1

Pull request has been created with WinGet Automation 🪟📦🤖
Microsoft Reviewers: Open in CodeFlow

Reset PR.

Close with reason: Merge Conflicts;


Self-deploy calcpad online ide

Is the calcpad online ide opensource? I want to deploy it on my own server, so that I can access it on all platform.

Sorry, currently the web version is not available open source.
We have not actually decided what to do with it and there is still a lot of work.
Probably, you can consider some remote desktop of app streaming solution to use the desktop version.
Anyway, once we port the UI to Avalonia, the full Calcpad will be available for all platforms.

Thanks for your response! Wish all the best for your project.


NTR: corn oil

Hi @amalik01 ,
May I please request a new CHEBI term for 'corn oil', similar to the existing CHEBI:140618 'castor oil':
CHEBI:NEW 'corn oil'
subclass of CHEBI:60004 'mixture'
See https://en.wikipedia.org/wiki/Corn_oil for definition and reference
Thanks,
Paola

Thank you @amalik01 !


How can we capture the Event for Add connection and Remove Connetion on a Port , or in any case

Trying to figure out how to get Add connection and Remove connection event on a port , as when user drag a link and connect to a port that time needs to execute my code.
its version 3.0
Even if there is any place where we can capture this link/unlink event either global level that will be fine.
Appreciate your support.

it is version 3.0

You have the general Diagram.Links.Added event, which should be your first step.
This event is triggered when a link is added, either manually or when the user starts dragging from a port.
To check if the link is new and its from a port, simply do newLink.Source is SinglePortAnchor && !newLink.Attached.
If you want to know when that link got attached, you have to use the link events Attached and TargetChanged

it worked perfectly the way i needed , sorry for disturbance , in absense of documentation i could not figure it out myself ,  you are love  :) thanks aloooooot


Something wrong after commit "install script libspotify-dev"?

Hello Everybody,
could it be, that the libspotify-dev in the sudo apt-get... part lead to an failure of the other packages? If I use the one-line installation, I got error messages, that php7.3 is not working, pip is unknown, git is unknown... and so on.
Best regards

Hi there,
I experienced the same issue. libspotify-dev cannot be found, this causes an error and stops the installation. If you install libspotify-dev before running the 1-line installation script, it should work:
I was able to install libspotify-dev by following https://docs.mopidy.com/en/latest/installation/debian/:
wget -q -O - https://apt.mopidy.com/mopidy.gpg | sudo apt-key add -
sudo wget -q -O /etc/apt/sources.list.d/mopidy.list https://apt.mopidy.com/buster.list
sudo apt update
sudo apt-get install libspotify-dev
It does however, not solve the problem reported here: https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/688
Kind regards

I think there are different problems, some of them caused by the workarounds. One is Python and the modules of Python. Also the existing scripts are mostly written for Python 2.0, but there are modules gone and these scripts should be updated. Sometimes it is something easy like missing ().
I will investigate some time in the future to help Micz. I must get well first ;-)

That would be great @splitti. I set up two jukeboxes from scratch on Monday and Tuesday (due to mopidy connection problems) using the one-line install sript for buster and the workarounds to install libspotify-dev (https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/700#issuecomment-570956201) and to downgrade mopidy and tornado (https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/688#issuecomment-571129900). Interestingly It worked fine right after setting them up (much better than previously with my old setup and the connection problems) but after a day mopidy wouldn't connect to spotify anymore. Installing mopidy 2.3.1-1 yet again setting up the etc/mopidy config file and enabling the mopidy service plus renewing the music library via the webapp makes it run fine for a day again but then at some point it suddenly doesn't connect any more again and I need to rerun the steps above to make it run again. Any idea what could be going on?
I am using two raspi 3B, one with a Hifiberry dac and one with an usb soundcard, gpio buttons and a rotary encoder.

That sound really strange, like loosing a token or something. I will buy a third box just for developing, so please wait a few days.
But try to check the status of the mopidy service after restarting and after trying to play a file:
sudo service mopidy status

@splitti As long as it is working, the mopidy status looks fine I think. It is active (running) and in the log section there are a lot of things loaded and Spotify is logged in with my username:

Jan 11 19:42:45 JukeboxM mopidy[4756]: INFO     Loading config from /etc/mopidy/mopidy.conf
Jan 11 19:42:45 JukeboxM mopidy[4756]: INFO     Loading config from command line options
Jan 11 19:42:45 JukeboxM mopidy[4756]: INFO     Enabled extensions: iris, mpd, http, stream, spotify, m3u, softwaremixer, file,
Jan 11 19:42:45 JukeboxM mopidy[4756]: INFO     Disabled extensions: none
Jan 11 19:42:46 JukeboxM mopidy[4756]: INFO     Starting Mopidy mixer: SoftwareMixer
Jan 11 19:42:46 JukeboxM mopidy[4756]: INFO     Mixer volume set to 30
Jan 11 19:42:46 JukeboxM mopidy[4756]: INFO     Starting Mopidy audio
Jan 11 19:42:46 JukeboxM mopidy[4756]: INFO     Starting Mopidy backends: StreamBackend, M3UBackend, FileBackend, LocalBackend,
Jan 11 19:42:46 JukeboxM mopidy[4756]: INFO     Audio output set to "alsasink"
Jan 11 19:42:46 JukeboxM mopidy[4756]: INFO     Loaded 6 local tracks using json
Jan 11 19:42:47 JukeboxM mopidy[4756]: INFO     Logged in to Spotify in online mode
Jan 11 19:42:47 JukeboxM mopidy[4756]: INFO     Logged into Spotify Web API as myusername
Jan 11 19:42:47 JukeboxM mopidy[4756]: INFO     Started spotify backend
Jan 11 19:42:47 JukeboxM mopidy[4756]: INFO     Starting Mopidy core
Jan 11 19:42:47 JukeboxM mopidy[4756]: INFO     Starting Mopidy frontends: MpdFrontend, HttpFrontend, IrisFrontend
Jan 11 19:42:47 JukeboxM mopidy[4756]: INFO     MPD server running at [::ffff:<IP_ADDRESS>]:6600
Jan 11 19:42:47 JukeboxM mopidy[4756]: INFO     HTTP server running at [::ffff:<IP_ADDRESS>]:6680
Jan 11 19:42:47 JukeboxM mopidy[4756]: INFO     Starting Iris 3.43.0
Jan 11 19:42:47 JukeboxM mopidy[4756]: INFO     Starting GLib mainloop
Jan 11 19:43:22 JukeboxM mopidy[454]: INFO     New MPD connection from [::ffff:<IP_ADDRESS>]:47164
Jan 11 19:43:22 JukeboxM mopidy[454]: INFO     New MPD connection from [::ffff:<IP_ADDRESS>]:47168
Jan 11 19:43:25 JukeboxM mopidy[454]: INFO     Loaded 46 playlists
Jan 11 19:43:27 JukeboxM mopidy[454]: INFO     Refresh Playlists took 15965ms
Jan 11 19:43:50 JukeboxM mopidy[454]: INFO     New MPD connection from [::ffff:<IP_ADDRESS>]:47172
Jan 11 19:43:55 JukeboxM mopidy[454]: INFO     New MPD connection from [::ffff:<IP_ADDRESS>]:47176

One of my Jukeboxes always has connection problems after booting. When it is not working, I think (from looking at the log file) the problem is that:

2020-01-11 15:14:34,819 ERROR [456:SpotifyEventLoop] spotify.session: Spotify login error: <ErrorType.OTHER_PERMANENT: 10>
2020-01-11 15:14:34,822 INFO [456:SpotifyEventLoop] spotify.session: Spotify logged out
2020-01-11 15:14:37,347 INFO [456:SpotifyBackend-7] mopidy_spotify.web: Logged into Spotify Web API as myusername

When I then swipe a card it adds this to the log file:

Jan 11 19:53:24 JukeboxM mopidy[455]: INFO     Failed to lookup "spotify:album:7yvYdDAsjPZNkavntJUOYh": Session must be logged in and online to load objects

I also found this on the log file:

2020-01-11 19:42:47,610 WARNING [4756:SpotifyBackend-7] py.warnings: /usr/lib/python2.7/dist-packages/spotify/session.py:239: UserWarning: Spotify broke the libspotify playlists API 2018-05-24 and never restored it. Please use the Spotify Web API to work with playlists.
"Spotify broke the libspotify playlists API 2018-05-24 "

Anyways, the problem above, I can fix by scanning the music library via the web app. Afterwards it works and the log looks good. Usually when I power on the jukebox it doesn't work and then after scanning the music library it works. In the beginning (first day) it worked totally fine.
However, sometimes (once per day last week), both Jukeboxes completely stop working. Then, the service as shown on the webapp is dead, IRIS webapp doesn't load and also when I check the status via systemctl it says the mopidy service doesn't extist. The log file doesn't show anything new. scanning the music library doesn't help. This is when I reinstall mopidy 2.3.1-1 to make it run again. Interestingly it tells me that it needs to downgrade mopidy as if it has updated to mopidy 3 in the background (autoupdates are turned off though). It also told me that there are a lot of packages that are not required any more after downgrading and that I can uninstall them. I ignored this the first couple of times but did run sudo apt autoremove the last time. After that the problem appeared once again so far and again I needed to downgrade and a few packages were left that I needed to uninstall. I did so (yesterday on one jukebox and today on the other). So far the severe problem has not appeared again yet (let's see) but the connection problems of the one Jukebox as described further up persist. What I also noted and what's curious is that in IRIS the Jukebox without connection problems shows anonymous as spotify user and the other one with connection problems shows the actual username. Also the design of both webapps looks a bit different although it is IRIS 3.43.0 on both boxes. Oh my, it is so confusing.

The PRs #789 and #793 have been merged to master and develop.
Could you please check, if the issue is fixed now?

We are upgrading to Mopidy 3 # 803, which should fiy some issues. PR #804 has been merged. Please try Mopidy 3 by using
cd; rm buster-install-*; wget https://raw.githubusercontent.com/MiczFlor/RPi-Jukebox-RFID/develop/scripts/installscripts/buster-install-mopidy3.sh; chmod +x buster-install-mopidy3.sh; GIT_BRANCH=develop bash ./buster-install-mopidy3.sh

hi @s-martin. I used your install lines for mopidy 3 and there were no errors in my installation.
Also Mopidy and Iris seem to be running smoothly. Spotify Integration is also working fine.
One thing i realized but i don't know if i can expect it for the spotify version to run is that local mp3s are not played in this installation - is this an unexpected behaviour?
kind Regards!

One thing i realized but i don't know if i can expect it for the spotify version to run is that local mp3s are not played in this installation - is this an unexpected behaviour?

Local mp3 should work also with the Spotify version.
You could try to play a mp3 file and post the logs again.

Mar  6 21:45:17 raspberrypi rsyslogd:  [origin software="rsyslogd" swVersion="8.1901.0" x-pid="332" x-info="https://www.rsyslog.com"] rsyslogd was HUPed
Mar  6 21:45:17 raspberrypi systemd[1]: logrotate.service: Succeeded.
Mar  6 21:45:17 raspberrypi systemd[1]: Started Rotate log files.
Mar  6 21:45:18 raspberrypi systemd[1]: phpsessionclean.service: Succeeded.
Mar  6 21:45:18 raspberrypi systemd[1]: Started Clean php session files.
Mar  6 21:45:20 raspberrypi systemd[1]: man-db.service: Succeeded.
Mar  6 21:45:20 raspberrypi systemd[1]: Started Daily man-db regeneration.
Mar  6 21:45:21 raspberrypi systemd[1]: apt-daily.service: Succeeded.
Mar  6 21:45:21 raspberrypi systemd[1]: Started Daily apt download activities.
Mar  6 21:45:21 raspberrypi systemd[1]: Starting Daily apt upgrade and clean activities...
Mar  6 21:45:22 raspberrypi systemd[1]: systemd-hostnamed.service: Succeeded.
Mar  6 21:45:23 raspberrypi systemd[1]: apt-daily-upgrade.service: Succeeded.
Mar  6 21:45:23 raspberrypi systemd[1]: Started Daily apt upgrade and clean activities.
Mar  6 21:45:56 raspberrypi systemd[1]: phoniebox-idle-watchdog.service: Succeeded.
Mar  6 21:48:22 raspberrypi systemd[1]: Created slice User Slice of UID 1000.
Mar  6 21:48:22 raspberrypi systemd[1]: Starting User Runtime Directory /run/user/1000...
Mar  6 21:48:22 raspberrypi systemd[1]: Started User Runtime Directory /run/user/1000.
Mar  6 21:48:22 raspberrypi systemd[1]: Starting User Manager for UID 1000...
Mar  6 21:48:22 raspberrypi systemd[1801]: Listening on GnuPG cryptographic agent and passphrase cache (access for web browsers).
Mar  6 21:48:22 raspberrypi systemd[1801]: Reached target Timers.
Mar  6 21:48:22 raspberrypi systemd[1801]: Listening on GnuPG cryptographic agent and passphrase cache (restricted).
Mar  6 21:48:22 raspberrypi systemd[1801]: Starting D-Bus User Message Bus Socket.
Mar  6 21:48:22 raspberrypi systemd[1801]: Reached target Paths.
Mar  6 21:48:22 raspberrypi systemd[1801]: Listening on GnuPG cryptographic agent (ssh-agent emulation).
Mar  6 21:48:22 raspberrypi systemd[1801]: Listening on GnuPG network certificate management daemon.
Mar  6 21:48:22 raspberrypi systemd[1801]: Listening on GnuPG cryptographic agent and passphrase cache.
Mar  6 21:48:22 raspberrypi systemd[1801]: Listening on D-Bus User Message Bus Socket.
Mar  6 21:48:22 raspberrypi systemd[1801]: Reached target Sockets.
Mar  6 21:48:22 raspberrypi systemd[1801]: Reached target Basic System.
Mar  6 21:48:22 raspberrypi systemd[1]: Started User Manager for UID 1000.
Mar  6 21:48:22 raspberrypi systemd[1801]: Starting Music Player Daemon...
Mar  6 21:48:22 raspberrypi systemd[1]: Started Session c1 of user pi.
Mar  6 21:48:24 raspberrypi mpd[1814]: exception: failed to open log file "/var/log/mpd/mpd.log" (config line 40): Permission denied
Mar  6 21:48:25 raspberrypi systemd[1801]: mpd.service: Main process exited, code=exited, status=1/FAILURE
Mar  6 21:48:25 raspberrypi systemd[1801]: mpd.service: Failed with result 'exit-code'.
Mar  6 21:48:25 raspberrypi systemd[1801]: Failed to start Music Player Daemon.
Mar  6 21:48:25 raspberrypi systemd[1801]: Reached target Default.
Mar  6 21:48:25 raspberrypi systemd[1801]: Startup finished in 2.559s.
Mar  6 21:49:09 raspberrypi python3[591]: 2020-03-06 21:49:09,664 - root - INFO - Trigger Play Cardid=0006414375
Mar  6 21:49:09 raspberrypi mopidy[595]: INFO     [MpdSession-15] mopidy_mpd.session New MPD connection from [::ffff:<IP_ADDRESS>]:45678
Mar  6 21:49:10 raspberrypi mopidy[595]: INFO     [MpdSession-16] mopidy_mpd.session New MPD connection from [::ffff:<IP_ADDRESS>]:45682
Mar  6 21:49:10 raspberrypi python3[591]: volume: 30%   repeat: off   random: off   single: off   consume: off
Mar  6 21:49:10 raspberrypi mopidy[595]: INFO     [MpdSession-17] mopidy_mpd.session New MPD connection from [::ffff:<IP_ADDRESS>]:45686
Mar  6 21:49:10 raspberrypi python3[591]: volume: 30%   repeat: off   random: off   single: off   consume: off
Mar  6 21:49:10 raspberrypi mopidy[595]: ERROR    [IrisFrontend-11] mopidy.listener Triggering event failed: tracklist_changed()
Mar  6 21:49:10 raspberrypi mopidy[595]: Traceback (most recent call last):
Mar  6 21:49:10 raspberrypi mopidy[595]:   File "/usr/lib/python3/dist-packages/mopidy/listener.py", line 40, in on_event
Mar  6 21:49:10 raspberrypi mopidy[595]:     getattr(self, event)(**kwargs)
Mar  6 21:49:10 raspberrypi mopidy[595]:   File "/usr/local/lib/python3.7/dist-packages/mopidy_iris/frontend.py", line 29, in tracklist_changed
Mar  6 21:49:10 raspberrypi mopidy[595]:     iris.ioloop.add_callback(functools.partial(iris.clean_queue_metadata))
Mar  6 21:49:10 raspberrypi mopidy[595]: AttributeError: 'NoneType' object has no attribute 'add_callback'
Mar  6 21:49:10 raspberrypi mopidy[595]: INFO     [MpdSession-18] mopidy_mpd.session New MPD connection from [::ffff:<IP_ADDRESS>]:45690
Mar  6 21:49:10 raspberrypi mopidy[595]: ERROR    [LocalBackend-7] mopidy_local.library Lookup error for local:track:benjaminBluemchen/imKrankenhaus/Benjamin%20Bl%C3%BCmchen%20-%20Im%20Krankenhaus%20%28Folge%2013%29%20%20%20H%C3%96RSPIEL%20DES%20MONATS%20FEBRUAR.mp3: no such table: tracks
Mar  6 21:49:10 raspberrypi python3[591]: loading: benjaminBluemchen % imKrankenhaus
Mar  6 21:49:10 raspberrypi mopidy[595]: INFO     [MpdSession-19] mopidy_mpd.session New MPD connection from [::ffff:<IP_ADDRESS>]:45694
Mar  6 21:49:10 raspberrypi python3[591]: volume: 30%   repeat: off   random: off   single: off   consume: off
Mar  6 21:49:10 raspberrypi mopidy[595]: INFO     [MpdSession-20] mopidy_mpd.session New MPD connection from [::ffff:<IP_ADDRESS>]:45698
Mar  6 21:49:10 raspberrypi python3[591]: volume: 30%   repeat: off   random: off   single: off   consume: off
Mar  6 21:49:10 raspberrypi mopidy[595]: INFO     [MpdSession-21] mopidy_mpd.session New MPD connection from [::ffff:<IP_ADDRESS>]:45702
Mar  6 21:49:10 raspberrypi python3[591]: OK MPD 0.19.0
Mar  6 21:49:10 raspberrypi python3[591]: OK

This is thelog of tail -n 500 /var/log/syslog after scanning an id for a local file.

What does pip3 show mopidy-iris show?

Name: Mopidy-Iris Version: 3.45.1 Summary: Fully-featured Mopidy frontend client Home-page: https://github.com/jaedb/iris Author: James Barnsley Author-email<EMAIL_ADDRESS>License: Apache License, Version 2.0 Location: /usr/local/lib/python3.7/dist-packages Requires: setuptools, Pykka, Mopidy Required-by:

What does pip3 show mopidy-iris show?

Name: Mopidy-Iris
Version: 3.45.1
Summary: Fully-featured Mopidy frontend client
Home-page: https://github.com/jaedb/iris
Author: James Barnsley
Author-email<EMAIL_ADDRESS>License: Apache License, Version 2.0
Location: /usr/local/lib/python3.7/dist-packages
Requires: setuptools, Pykka, Mopidy
Required-by:

It seems to be my mistake. After scanning the lib again and restart of mopidy also the local file is played - it seems that i have finally a fully functional box!
Regards of a happy kuesimon :-)

@JoeyRamone do you still encounter this problem?

@ZyanKLee Last Installation worked finde. I'll test it this weekend again with the current repository.

Issues were fixed, so I close this now.
If any similar problems occur, please open a new issue.


tried to uninstall this, but its still there?

I tried to uninstall  Amethyst, but its not totally gone.  I'm getting the below error when I open minecraft bedrock.  I can't access my more recent worlds and I can't upgrade minecraft bedrock.  Its stuck at 1.21.0. Please help

Never mind, I found the folder I needed to delete (I don't understand why it wasn't deleted when I uninstalled it) and then uninstalled and reinstalled minecraft windows and everything is working again.

Nice. Yeah there wasn't really an exit plan built into the launcher for if you want to get rid of its setup, bad idea in hindsight

For anyone trying to follow, since I ended up having to do this recently
Close amethyst launcher and any instances of the game
Copy any data from the games appdata folder if you want to keep saves
In windows search, search Minecraft and hit Uninstall in that search menu
Now hit Win + R and enter %AppData%, find the Amethyst folder, inside the versions folder, now delete the folder specific to the downloaded version
Now just reinstall game with Microsoft store or alternative launcher of choice.


Add support for OpenCage geocoder

OpenCage is an API for forward/reverse geocoding. This adds OpenCageGeocoderService for use with the Geocoder widget.
To test this, you'll need to open an account in order to get the API Key.
PS : I'll send the Signed CLA tomorow.

Thank you so much for the pull request @marrouchi! I noticed this is your first pull request and I wanted to say welcome to the Cesium community!
The Pull Request Guidelines is a handy reference for making sure your PR gets accepted quickly, so make sure to skim that.

:x: Missing CONTRIBUTORS.md entry.

Please add yourself to the contributors file!

:x: Missing CLA.

Please send in a Contributor License Agreement (CLA) and comment back here to let us know to check this!

Reviewers, don't forget to make sure that:

[ ] Cesium Viewer works.
[ ] Works in 2D/CV.
[ ] Works (or fails gracefully) in IE11.

I am a bot who helps you make Cesium awesome! Contributions to my configuration are welcome.
:earth_africa: :earth_americas: :earth_asia:

Thanks for the pull request @marrouchi!  At a glace, everything looks great. I'll do a more thorough review after we receive your CLA.

Just those comments.  Thanks @marrouchi!

Thank you @hpinkos for the code review. Please let me know if there's others issues.

Works great!  Thanks for the contribution @marrouchi!


test: 💍 Testing init

:tada: This PR is included in version 1.0.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


(Issue 1129) Ensure author can delete own message in a private discussion

... and folder
At the time of doing the "is creator" check, we didn't have a fully accurate canInteract check, only implicit. We need the explicit canInteract check at that time, therefore we may as well just do getEffectiveRole.

Note this affected both discussion and folders, content is not impacted, however Content has no canInteract protection at all, so it's not entirely clear if it does need it. I would guess yes, but how do we prioritize it?

Content has no canInteract protection at all, so it's not entirely clear if it does need it. I would guess yes, but how do we prioritize it?

@mrvisser : What would the canInteract protection for content provide? When we try to delete a message on a content item, we first of all do getContent, which will determine if the user is allowed to see the content item. If they are, they are essentially able to interact with the content item.

Left some minor feedback and a question. Back to @mrvisser for follow-up.

Would there be any value in running through the same test for a public, private and logged in discussion?

Probably, I'll add these test routines

What would the canInteract protection for content provide? When we try to delete a message on a content item, we first of all do getContent, which will determine if the user is allowed to see the content item. If they are, they are essentially able to interact with the content item.

That's not true. A less obvious but relevant example here is: If you are able to get to a public content item that is part of a private tenant (or a tenant not in your "network"), you can view it but cannot interact with it. In our current public+private model, this is possible when a public tenant becomes private later on.

I've followed up. Back to @nicolaasmatthijs

Coveralls really seem to like my work. I'm pretty sure I improved test coverage here :) @nicolaasmatthijs historically how accurate are these 0.01 coverage increase / decrease reports? Should I analyze this?

historically how accurate are these 0.01 coverage increase / decrease reports? Should I analyze this?

We're not entirely sure how accurate these increases/decreases really are. So far, we haven't worried about 0.01/0.02 decreases in PRs, so I wouldn't worry too much about it.

Left some really minor final feedback. Back to @mrvisser for follow-up.

Actually, nvm, I'll just make the changes and will merge

Followed up and merged.


Add 1990-11-12 and 1993-06-09 into Japan

Adding 2 days into Japan because these 1990-11-12 and 1993-06-09 are also national holidays in Japan according to CSV file published by Cabinet Office, Government of Japan.

Pull Request Test Coverage Report for Build 929

5 of 6 (83.33%)  changed or added relevant lines in 1 file are covered.
98 unchanged lines in 7 files lost coverage.
Overall coverage decreased (-1.1%) to 98.873%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

holidays/countries/japan.py
5
6
83.33%

Files with Coverage Reduction
New Missed Lines
%

holidays/countries/burundi.py
3
94.55%

holidays/countries/singapore.py
6
94.55%

holidays/countries/turkey.py
9
72.73%

holidays/utils.py
10
71.43%

holidays/countries/morocco.py
11
77.55%

holidays/countries/egypt.py
13
74.0%

tests.py
46
98.99%

Totals

Change from base Build 831:
-1.1%

Covered Lines:
8688

Relevant Lines:
8787

💛  - Coveralls

Hi,
thank you for your work.
Please review your code formatting and test coverage (should be 100%) in order to let us merge your code.
PS: when developing new features / bug fixes, it's required to target beta branch.
Please let me know, thx

Thanks. Will rework accordingly.


Configuration file deviceupdate-agent.service is marked executable

Expected Behavior
/lib/systemd/system/deviceupdate-agent.service should not be marked executable.
Current Behavior
/lib/systemd/system/deviceupdate-agent.service is marked executable.
Steps to Reproduce
Provide a detailed set of steps to reproduce the bug.

Install deviceupdate-agent 1.0.2
Observe /lib/systemd/system/deviceupdate-agent.service is marked executable
Execute systemd daemon-reload
Observe systemd warns: Configuration file /lib/systemd/system/deviceupdate-agent.service is marked executable. Please remove executable permission bits. Proceeding anyway.

Device Information

Host OS [e.g. Ubuntu 18.04, Windows Server IoT 2019]: 20.04
Architecture [e.g. amd64, arm32, arm64]: amd64
Provisioning Method: tpm
*DU Agent Version (run 'sudo -u adu /usr/bin/AducIotAgent -v'): 1.0.2

Logs
Nov 06 10:17:53 xxx systemd[1]: Configuration file /lib/systemd/system/deviceupdate-agent.service is marked executable. Please remove executable permission bits. Proceeding anyway.

@yuvalg-MSFT Needs further investigation by tracking internally.

What was your method of installation? apt-get from packages.microsoft.com, apt-get of local .deb file, other?  Could you check your umask -S?
we not able to repro--seeing this on 20.04 for ls -l /lib/systemd/system/deviceupdate-agent.service after apt install of .deb pkg:
-rw-r--r--  1 root root   528 Oct 31 07:55  deviceupdate-agent.service

Hey,
Here is a repro:
# syntax=docker/dockerfile:1
FROM ubuntu:20.04

# post-install script for deliveryoptimization-agent directly invokes
# systemctl rather than just using dh_systemd like a normal package,
# but that's another bug...
COPY <<EOF /usr/bin/systemctl
#!/bin/bash
exit 0
EOF

RUN <<EOF
    chmod +x /usr/bin/systemctl
    apt update
    apt install --no-install-recommends -y wget ca-certificates
    wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb
    dpkg -i packages-microsoft-prod.deb
    rm packages-microsoft-prod.deb
    apt update
    apt install --no-install-recommends -y deviceupdate-agent
    apt clean
EOF

CMD find / -name '*.service' -executable -ls

# 21992      4 -rw-r-xr--   1 root     root          528 Feb  4  2023 /usr/lib/systemd/system/deviceupdate-agent.service
#                    ^-- That's the problem

Just run it with docker build -t asd . && docker run --rm -it asd on a system with docker and docker buildkit enabled.

Hi @Gunni,
We have reproduced the issue with the device update agent in the Docker container, but as Jeff mentioned above, it does not occur in a virtual machine or on an RPi. May I ask about the necessity of running the device update agent in the Docker container? Is it for testing purposes?
Regarding the specific issue you’ve reported — the systemd warning about the executable permission bit on the deviceupdate-agent.service file — this is likely a result of how Docker handles file permissions and how systemd operates within a traditional Linux environment.
I suggest running our agent in a virtual machine or on a physical device's OS as a possible solution.

The dockerfile above is only a demonstration of the issue we have on our ubuntu machines.
When we install your package the .service file is marked executable. It should not.
I even demonstrated extracting the package to show that the file inside the package contains a service file with the executable flag set.
Please reopen as this is not solved.

This service file is still the only executable service file on our edge devices.
     7711      1 -rw-r-xr--   1 root     root          528 Jan  1  1970 /usr/lib/systemd/system/deviceupdate-agent.service

This ticket should be reopened


Set up continuous integration

A normal development cycle looks like:

checkout a branch
do some original and brilliant coding to make life better for our users who we love
submit a pull request
tests are run automatically by a continuous integration service
code review by a peer developer
merge to master

Once the test runner is added in, we need to get CircleCI running stuff for us.
Note that this relies on Issue #2 being completed.

PR for this (#21) went in on Friday


NOISSUE: update waiter in functests

- What I did
Update waitForFunction in tests:

don't close channel for result
use wrapper func, not goroutine
timeout on time.After, not timer

- How to verify it
Run tests

fixed this while was working on my PR


Use php 8.1, allow symfony 6 and require monolog 3

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

-1 of 30 (96.67%)  changed or added relevant lines in 5 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.2%) to 95.775%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/Monolog/Formatter/ExtendedFormatter.php
16
17
94.12%

Totals

Change from base Build<PHONE_NUMBER>:
-0.2%

Covered Lines:
136

Relevant Lines:
142

💛  - Coveralls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

29 of 30 (96.67%)  changed or added relevant lines in 5 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.2%) to 95.775%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/Monolog/Formatter/ExtendedFormatter.php
16
17
94.12%

Totals

Change from base Build<PHONE_NUMBER>:
-0.2%

Covered Lines:
136

Relevant Lines:
142

💛  - Coveralls


[ECOBEE] Fix missing target temperature

Description:
Fix missing target temperature by adding  SUPPORT_TARGET_TEMPERATURE_HIGH and SUPPORT_TARGET_TEMPERATURE_LOW
Related issue (if applicable): fixes #12048
Checklist:

[x] The code change is tested and works locally.

If the code does not interact with devices:

[x] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[x] Tests have been added to verify that the new code works.

Just tested this fix and can confirm that it fixes the issue with my Ecobee :+1:


Fix primality test for very small numbers

Add special cases for primes 2, 3, 5 and 7. Proceed to Miller-Rabin and
BPSW primality tests to get the correct primality result for other small
primes that are factors in the prime products, which are used in the
initial phase of primality testing.
Previously small prime numbers up to 14951 were incorrectly reported as
composite. As this primality test has never been used for so small
numbers, there were no issues in its usage.

Sure, I will add a test.


feat: Support syntax highlighting

Highlight syntax in post pages
My initial implementation was done using highlight.js, but decided to change to prismjs for  the following reasons:

Smaller bundle sike: prism-core and prism-autoloader are 7.07Kb together. hilight.js is 34.28kb.
Autoloader feature loads required scripts for languages on-demand. (No need to change index.clj and load a script for a language  whenever you want to highlight it)

The dark theme will highlight code using the okadia theme, while the light theme uses the default prism theme.
(you can find a live example here)

Hey, could you add the example you made in your gfm-syntax with the variation with and without the syntax highlight?

HI @rafaeldelboni, sure no problem!
Actually, my gfm-syntax is the exact same one compared to the main repo.
But if you think it's better I could add some more context around the code tags?
Something like
Syntax highlighting
Here’s an example of how you can use syntax highlighting with GitHub Flavored Markdown:
function fancyAlert(arg) {
  if(arg) {
    $.facebox({div:'#foo'})
  }
}

(syntax is hilighted using PrismJs)
You can also simply indent your code by four spaces:
function fancyAlert(arg) {
  if(arg) {
    $.facebox({div:'#foo'})
  }
}

(Be aware, it this case, as language is not defined prism won't know how to highlight this code)
(funny to see the GH comment has the exact same behavior).
Is that what you were looking for?

Exacly that, if you could would be amazing! :)

Thanks for your contribution @vloth ! :tada:


python311Packages.dvc: 3.16.0 -> 3.17.0, python311Packages.dvclive: 2.15.2 -> 2.16.0

Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 252301 run on x86_64-linux 1

10 packages built:

dvc (python310Packages.dvc)
dvc-with-remotes
dvc-with-remotes.dist
dvc.dist (python310Packages.dvc.dist)
python310Packages.dvclive
python310Packages.dvclive.dist
python311Packages.dvc
python311Packages.dvc.dist
python311Packages.dvclive
python311Packages.dvclive.dist


Some of feature files is not executed

Hi Folks!
I've encountered an issue related on the some feature files is not executed. I'm using buddy pipeline and with details:

using multiple parallel action to execute parallel command line (because on my side, I cannot accept regex folder so I tricked it with this to reduce the execution time)
using allure report
-  "cypress": "^9.5.2",   "cypress-cucumber-preprocessor": "^4.3.1",   "cypress-parallel": "^0.9.1",

I've monitored it and realized that the number of test cases is frequently different.
when I trace it, some of the feature files are not executed:

as in the picture, the feature file is listed but never executed.

Looks like the spec is not found. It only listed as searched.

Looks like the spec is not found. It is only listed as searched.

I think so, but the interesting part is, this sometimes happens.
so there is a case when all spec file has been executed, and there is a time when some spec file is missing.

Update, the inconsistency become more often when do the automation with Slow build .
so I need to rerun it, until now I still cannot get the workaround.

This is buddy pipeline that I set up:

Every action hold specify folder and run for parallel using cypress parallel.

I am also facing the same issue, I am using Cypress with Cucumber, Some feature files are not getting executed. I have updated this plugin to the latest version ("cypress-parallel": "^0.14.0"), Still I am facing the same issue on random basis, 1 out of 5 times some feature files are not executed.

Is there any update on this?


feat: port Order.Interval

Note that this file is out of sync. It would be good to use the latest mathport output here.


the remaining shapes need go inside the tools folder

I'd say the only exception to the move would be the noShape. That'd be a good, general fallback shape to display if a 3d model is missing(similar to how we have the warn mat). Everything else moving to tools makes sense to me though!

new PR https://github.com/GarageGames/Torque3D/pull/2042


.invite.me

Please accept me. I want to join here.

@KodaKDominus Hey! Welcome to openAOD. I will be sending an invite to join the organization shortly. Feel free to join our Discord server: https://discord.gg/wZ83xSJSsN .If you have any questions regarding the project or about contributions do contact me. Cheers. Have a great day.


creating new json with unlimited elements

I am trying to create a JSON where to append elements as they occur
var jsonTPXtest: JSON =  ["events": [:]]
for index in 0...20 {
jsonTPXtest["events"][index] = ["id":index,"x1":0,"x2":0]
}
But it doesn't seem to add any element to the JSON.

i did this:
`	func prependObjectToJSON(_ data:JSON, newdata:JSON) -> JSON {
let s = JSON(newdata.arrayObject! + data!)
return s
}
func appendObjectToJSON(_ data:JSON, newdata:JSON) -> JSON {
	let s = JSON(dataarrayObject! + newdata.arrayObject!)
	return s
}

`

Hey @alychyana. Sorry for the late response. From the code you given, I assume you are trying to set the [:] （which is a dictionary）
func testUnlimitedElements() {
        var jsonTPXtest: JSON = JSON(["events": [:]])

        for index in 0...20 {
            jsonTPXtest["events"]["\(index)"] = ["id":index,"x1":0,"x2":0]
            XCTAssertEqual(jsonTPXtest["events"]["\(index)"], ["id":index,"x1":0,"x2":0])
        }
    }

However, if you wanna set the array indeed, you would need to create a fixed size array.
func testUnlimitedElements() {
        var jsonTPXtest: JSON = JSON(["events": [[:], [:], [:], [:]]])

        for index in 0...4 {
            jsonTPXtest["events"][index] = ["id":index,"x1":0,"x2":0]
            XCTAssertEqual(jsonTPXtest["events"][index], ["id":index,"x1":0,"x2":0])
        }
    }


Fix headline levels in upgrade reference

Thanks @JosephSalisbury for reporting a bug and volunteering as a reviewer ;-)


6.0.0 version and breaking changes

Since the last version at least 2 breaking changes have been introduced:
#82 and #91 (not merged at the moment but approved).
Maybe it's time to create a major version with big changes and release all breaking changes at the same time.
I opened this issue to plan the next release and to ask if there are any other changes you have always wanted to introduce but were afraid because of breaking too many things.

I agree with you, the breaking API changes should mean a new major version.
Also agree that we should include other breaking changes that we were afraid of adding now that we're going to increase the major version number.
In the top of my mind I'd say that migrating all the other dispatcher functions (like message, text, callbackQuery, etc...) to the same approach we've implemented for command (https://github.com/kotlin-telegram-bot/kotlin-telegram-bot/pull/91) would be a good one (for consistency with the other changes and to improve the functionality provided). That shouldn't be a really hard or time consuming task (I could probably work on it and finish it this weekend).
There is nothing else in the top of my mind, but if I took a look to the project I may come up with some other changes. However, I wouldn't be able to take that look until the weekend. Is it ok from your side to wait until then?

I'm totally fine with that, we should take all the time we need to do this. 😄

Cool!
I have created an issue for the wish mentioned in the previous comment -> https://github.com/kotlin-telegram-bot/kotlin-telegram-bot/issues/96
Also, after taking a look to the project, I don't have anything else I would like to change that will mean a breaking API change.
So, once implemented the issue mentioned in the comment (and if there is not anything else) we could create the new major release.

Hello, guys!
When do you plan to release 6.0.0 version?

We've merged the main PR for this release today https://github.com/kotlin-telegram-bot/kotlin-telegram-bot/pull/103, so we'll probably release the new version soon

Still want to add a change related with the issue https://github.com/kotlin-telegram-bot/kotlin-telegram-bot/issues/113 (work in progress) that would slightly break the API compatibility in some parts of the library, so it would be nice to include it in 6.0.0 too

I'm going to release this now

Finally released https://github.com/kotlin-telegram-bot/kotlin-telegram-bot/releases/tag/6.0.0!
Closing the issue


html-encode text passed to Ext.Msg

Ext.Msg.alert doesn't automatically escape HTML special characters in the message, which can lead to display issues and could be a potential area for XSS.
The new htmlEncode function added errs on the side of caution by encoding all characters other than alphanumeric and space.

Codecov Report

Merging #2317 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #2317   +/-   ##
=======================================
  Coverage   79.62%   79.62%
=======================================
  Files          85       85
  Lines        8847     8847
  Branches     1893     1893
=======================================
  Hits         7044     7044
  Misses       1544     1544
  Partials      259      259

Continue to review full report at Codecov.

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

@cbowman0 - could you please take a peek on this PR, please? Thanks a lot!


Integrity check failed

Hi,
when trying to install ColorTranslator (either by using yarn or npn error saying that integrity check failed occures.
yarn add colortranslator
yarn add v1.22.15
[1/4] Resolving packages...
[2/4] Fetching packages...
error https://registry.yarnpkg.com/colortranslator/-/colortranslator-1.9.0.tgz: Integrity check failed for "colortranslator" (computed integrity doesn't match our records, got "sha512-6X1ilN5STXAyRosO3bEUq40oTTOJzzJE6xynkGAHKqOEXFJ6FZWx3SnE6BDBowoF5OOynUgXs8vnkC1OzVA2GQ== sha1-PTobSprMGPS/PdDzqOFRsq0xNaY=")

Hi @tomkys144, does it happen to you only with the last version?
What happens if you try to install the previous version?
npm install<EMAIL_ADDRESS>

Hi, I tried 1.9.0, 1.8.0 and 1.7.1 and only one failing is 1.9.0... Again same behavior with both npm and yarn

Hi @tomkys144, I‘ve published a patch version just changing the CHANGELOG. Try to install the latest package (1.9.1) and let me know if you have any issue.

Well, I don‘t know what happened there but good to know that the latest one is working properly for you :)
Regards and thanks for reporting!


Watch path error

when I pasted the image from outside into the project, the console reported an error. I need to restart the project.

@zhixiaotong I can't reproduce this issue in my project. Could there be some specific configuration causing it?

Please try version 2.2.5. If it works, kindly help me close this issue.

Please try version 2.2.5. If it works, kindly help me close this issue.

Thx, I‘ll try it later.

@nguyenbatranvan I tried pasting and removing the picture a few times, and there is no error again. Vite reloads normally. ^_^

@nguyenbatranvan I tried pasting and removing the picture a few times, and there is no error again. Vite reloads normally. ^_^

tks so much!!


Consider shipping release tarball with vendored dependencies

For example, dnscrypt-proxy does this by simply maintaining vendor directory. You can also setup CI to vendor dependencies into release tarball without needing to keep vendor directory within repository. Here is the command that can be used for this: go mod vendor
With vendored dependencies, i can build micro from source without internet connection by using this command: go build -mod=vendor

Vendored dependencies are also a requirement for some distributions to package software, namely Clear Linux which won't package micro until it has vendored dependencies: https://github.com/clearlinux/distribution/issues/2662


Video recordings playing from snapshot menu rather than video clips and playing from incorrect timeline

Checklist:

[ x] I updated to the latest version available
[ x] I cleared the cache of my browser

Release with the issue:
4.0.0
Last working release (if known):
not known
Browser and Operating System:
home assistant companion app and firefox 111.0 (64 bit) pop OS

Description of problem:
Video clips playing from incorrect timeline from snapshots via snapshot menu? (snapshot  taken @ 11:15am but when clicking on the snapshot to play the video, it plays a clip from 8:50am the same day 15/03/2023). seems to be random as to which video clip it picks.

Javascript errors shown in the web inspector (if applicable):

Additional information:
Maybe something awry with the back-end maybe?

Thank you for replying.
I have uploaded a video hopefully it gives the gist of the problem. It seems the video it chooses to play when i click a snapshot changes depending on if there are newer "video associated" snapshots since the last one that played. The clip that is played is always the same clip no matter which snapshot i choose. Only person object snapshots are played within a certain zone called "main drive" which is correct , the rest of the snapshots are of car objects  or person objects outside of this zone and do not have a video associated, this is also correct.
Unfortunately due to privacy I have had to mask out most of the video hopefully this is acceptable in order to troubleshoot this problem
In the video i go to the menu > snapshot , chose a snapshot at ~11:16, snapshot chosen is correct at 11:16:25 but when I click this image video that starts is from ~10:31. if another clip is added the video that plays is the a different clip, but again the same clip will play no matter which snapshot I choose in the timeline of that day.
I hope this makes some sense. It's almost like an indexing problem? And perhaps only pertinent to my frigate install on HASSIO as an add on?
https://user-images.githubusercontent.com/49276185/225390788-8d12fa58-abb1-4634-b9f3-f9f9925c9949.mp4

the bit where I say it plays the same clip no matter which snapshot i chose is not strictly true it seems to be be hit or miss. Sometimes

the same clip on some snapshots but wrong clip for the time.
the correct clip initially for the snapshot but for subsequent different snapshots in the timeline it plays the same clip.
it plays the correct clip for a snapshot and subsequent snapshots but after a few snapshots it does either 1. or 2. above

In the HASSIO frigate addon under events i can see the snapshot and corresponding video clip.
I can browse to this snapshot and the corresponding video clip and both are correct.

https://hassio.localdomain:8123/api/hassio_ingress/ziQWjtQhpRzzLLrQqSJhi4QjVZhWkU4PLinL_ViZ9fc//api/events/1678801852.863592-335txy/snapshot.jpg
https://hassio.localdomain:8123/api/hassio_ingress/ziQWjtQhpRzzLLrQqSJhi4QjVZhWkU4PLinL_ViZ9fc//api/events/1678801852.863592-335txy/clip.mp4

where as in the frigate card when i click on the snapshot that displays as above:
https://hassio.localdomain:8123/api/hassio_ingress/ziQWjtQhpRzzLLrQqSJhi4QjVZhWkU4PLinL_ViZ9fc//api/events/1678801852.863592-335txy/snapshot.jpg
but it plays a different clip and not
https://hassio.localdomain:8123/api/hassio_ingress/ziQWjtQhpRzzLLrQqSJhi4QjVZhWkU4PLinL_ViZ9fc//api/events/1678801852.863592-335txy/clip.mp4
so the backend seems ok?

The first thing that triggers my attention is why hassio_ingress is being used... in my understanding, the URL should actually be pointing to the integration proxy. /cc @dermotduffy

@dermotduffy You are correct those are URLs I am using to view the snapshot and corresponding clip manually  to check that it's not the back end.
this is what i see as a request  when i select a snapshot in the frigate card.
https://hassio.localdomain:8123/api/frigate/frigate/snapshot/1678801852.863592-335txy?authSig=
I will give v4.10 a try and let you know how I get on.

@dermotduffy I tried the following JS but still get similar symptoms.
frigate-hass-card.zip

@limitless-code That's still the old v4.0.0 codebase, you need the code from the v4.1.0 branch. The simplest way to tell is that the end result will build to multiple Javascript files, not a single file.
Here's the direct link to the build output from the v4.1.0 branch.

@dermotduffy I have downloaded and put file in the following path.

restarted HASSIO and cleared my browser cache. but getting the following error in HASSIO log:
`140450673869776] Error handling message: extra keys not allowed @ data['cameras']. Got [] (invalid_format) Owner from  (Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/111.0)
Failed to receive response from Home Assistant for request.[ Check troubleshooting](https://github.com/dermotduffy/frigate-hass-card#troubleshooting).

adding card shows the following:

{
  "request": {
    "type": "frigate/events/get",
    "instance_id": "frigate",
    "cameras": [],
    "limit": 50,
    "id": 93
  },
  "response": {
    "code": "invalid_format",
    "message": "extra keys not allowed @ data['cameras']. Got []"
  }
}

The good news: You got the new card codebase working!
The bad news: You're on an older version of Frigate itself.
I understand if you don't want to go further down the rabbithole here, but you'd need to upgrade:

Your Frigate integration to the latest beta: https://github.com/blakeblackshear/frigate-hass-integration/releases/tag/v4.0.0-beta4
Your Frigate backend to the latest beta: https://github.com/blakeblackshear/frigate/releases/tag/v0.12.0-beta9

(There's lots of new goodies anyway, so it might be worth it!)

The good news: I have a new backend and front and the integration is working. And I so far have not needed to change my frigate.yaml.
The bad new: I still have the same random problem with the snapshot gallery.
but there's more good-ish news: I found that if I use the 'Main Drive' filter in the snapshot gallery view i get consistent correct results.
However. the default snapshot view (filter) has a problem where it will play the same clip and then other clips in seamless succession, i.e it will play a clip from 13:39 and the clip will last 6 min 20sec and end with a clip at 15:39 and will keep playing this with the 3 other different snapshot i chose in this view.
If I chose person view (filter), it will play random clips, there's no appending of clips (if that is what it is doing in the default snapshot view?)
Main Drive view works perfectly so far. not sure if this worked in the old version, never used this filter.
The other date filters under ' This Month' and other date filters do not show the full list of videos it should.
The only option that works is Main Drive including when clicking on the date filter This month etc. Person or no filter (default snapshot view) have the above issues.

Whilst I still have no clue why you're seeing this, lets make sure you're on the right codebase first. That screenshot is definitely from the old card codebase -- that "folder" type view is gone entirely from the v4.1.0 codebase.
Is it possible you did not correctly install the card, or that it's being cached? (Try in an incognito window).

@dermotduffy Thank you for your replies. Yes you are correct, I had copied the 2 old frigate-hass-card.js(.gz) temporarily and completely forgot. Working well now after deleting those 2 files, placing the new 4.1.0 frigate-hass-card.js in the folder and clearing the cache.
It is showing the correct tooltip date and time of the clip and plays the corresponding clip correctly. Some of the thumbnails (not many) shows an incorrect corresponding  snapshot I don't think it's the cache but I'll double check that.

It is showing the correct tooltip date and time of the clip and plays the corresponding clip correctly. Some of the thumbnails (not many) shows an incorrect corresponding snapshot I don't think it's the cache but I'll double check that.

After checking this again. the frigate card is fine. Snapshots that "look wrong" in 4.1.0 are "I think" because these video clips are ones that were potentially stuck in progress. So the snapshot corresponds to the last clip where it has appended numerous clips to the first clip in the same event, so the tool tip date and time is from the time it started to record but the snapshot is from the last clip within the same event. This is all pulling correctly from Frigate as I have checked in events and  see the same behaviour.
Thank you for helping me resolve this issue it is much appreciated. I really like the evolution of Frigate and the frigate-hass-card. :+1:

Thank you for helping me resolve this issue it is much appreciated.

Thank goodness for that, was afraid it might all have been a wild goose chase. Enjoy!


Support media group/bundle

Feature request: Support media group/BUNDLE which is becoming popular especially in webrtc environments for multiplexing RTP streams on a single port. IETF draft https://tools.ietf.org/html/draft-ietf-mmusic-sdp-bundle-negotiation-54

thanks for your input.
The goal for baresip is to become fully compatible with WebRTC protocols.
(i.e. not a browser, but a webrtc endpoint).
so adding Bundle is one thing that we would have to do.
do you have any suggestions for other WebRTC related protocols
that we should add support for ?

Thanks for your reply. I am not aware of anything else that is missing.

Can you please describe a bit more details about your use-case and environment ?
This is useful to understand before we start implementing Bundle.
I added the item to the Roadmap:
https://github.com/alfredh/baresip/wiki/Roadmap

I am looking for a lightweight b2bua that can interwork webrtc and classic SIP and which includes bundle support. The only one I know of now is Asterisk.

have you tested baresip with webrtc? it might be good to test the basics first
and see if that is working, before adding bundle.
please note that the only signaling protocol supported (currently) is SIP.
are you also planning to run a SIP stack in your Web browser ?
it is not possible to make a pure webrtc connection (peer connection).
BTW: The Janus Gateway is a project for a gateway between WebRTC
and other protocols like SIP, have you tried this:
https://janus.conf.meetecho.com

thanks for your input, the feature request is now on the roadmap
so I will close this issue (issues are mainly for reporting bugs).


Add build docker image GitHub action

For each new PR, we want to build the Dockerfile using GitHub actions.
I attempted to add the dockerfile.rhel7 but the build failed.
Part of issue #68

I you can also add cron job to these actions - do we want to add this to this PR? Twice a week ?

For each new PR, we want to build the Dockerfile using GitHub actions.
I attempted to add the dockerfile.rhel7 but the build failed.
Part of issue #68

I think we might want to just remove the Dockerfile.rhel7 as it is for openshift.

you can also add cron job to these actions - do we want to add this to this PR? Twice a week ?

If we run test on every PR, would it be already sufficient?

btw, will this workflow also aim to push the docker image to github container registry?

you can also add cron job to these actions - do we want to add this to this PR? Twice a week ?

If we run test on every PR, would it be already sufficient?
I'd like to run it on a regular time cadence as well in case any dependencies that aren't locked to a version change and break NRI.

btw, will this workflow also aim to push the docker image to github container registry?

I think it would be better to have this in a separate workflow. The reason is we want a workflow for testing PRs / pushes but we don't want to build an image for each PR / pushes. I think having a separate workflow to accomplish github container pushes is a good idea which will push when we merge anything to master and also for new releases.

@martinkennelly Do we still need this PR given https://github.com/k8snetworkplumbingwg/network-resources-injector/pull/83 is merged?

@zshi-redhat I think #83 should not hinder this PR because it only builds images for tagged releases or merges to master. I think a case can definitely be made for  #72 (add e2e tests with KinD) because it will build the change and then run e2e tests. It doesn't seem necessary to also build again with this workflow. I will close because of this. LMK if you disagree.


Rename hack/scripts to scripts folder.

hack is golang specific but scripts will be used across the entire fleet of sdks

It was trivial so made change in PR. We can discuss it there.