Blacked out images

Using ImageProcessor version <IP_ADDRESS> and ImageProcessor.Web version <IP_ADDRESS>.
Also using Azure cache/cdn, so using CloudImageService.
Some images are returning completely blacked out, for example:
https://wrpmp-prod-euw-imageserver.azurewebsites.net/Uploads/Property/2598/Logos/Trip-Advisor-Rating-5-star-1.png?width=270&quality=85
Changing the width to a different size may or may not return the correct image. The blacked out ones appear to have the outline of the correct image.
Any ideas? Can provide config files if required.

I'm not seeing this.

P.S. Please don't delete the issue template.

We are having the same issue on Azure, in the local environment it works perfectly

@ThomasSkyldahl What version of the PostProcessor plugin are you using?
The image I shared above is the result of the following the exact link to the image listed by the OP so I'm assuming it is still on Azure

I can answer on Thomas' behalf; we use version <IP_ADDRESS> of the PostProcessor.

Thanks. @mhesselberg I need to investigate the issue with the tool I use there.

Just to add another example. We've observed the same issue occurring on Azure with package versions:

We had to downgrade to the following versions, which did not exhibit the issue:

From what we could find, only certain png images were affected.

Thanks @Reaction77
The issue here is actually directly related to https://github.com/JimBobSquarePants/ImageProcessor/issues/713
I'm going to have to switch out the png optimizer (the orignal has currently disappeared from the web) for another one.

Apologies, I've been away... Thanks for the update (#713) - like @Reaction77 we also downgraded and it resolved our issue (hence the reason you got the image ok).

I wouldn't recommend downgrading the entire system. You would be better off uninstalling the postprocessor for now.

We are also having this issue.

@JohnBergman I’m assuming you have the post processor installed?

Yes, I do.  Is there other info you need, this is 100% reproducible in my dev environment as well as the live environments.

Ok. I have a plan for this but it may take me a week or so to do.

@JimBobSquarePants Hey, I can see you have committed a fix for this issue. When do you think a new version including this fix will be published?
Just a rough idea.

@mhesselberg Next week I hope.

@JimBobSquarePants Did their end up being a fix for this one? We are also having the same issue.

@trentbraidner No release as yet.

@JimBobSquarePants are you any closer to releasing an update to fix this issue?

I'll try and do it tonight (Sydney time). I cannot promise anything but will keep the ticket updated.

@JimBobSquarePants did you have any luck getting to this?

Fixed in 1.5.0
https://www.nuget.org/packages/ImageProcessor.Web.PostProcessor/

Awesome will give it a try today!

No worries, just remember to clear your cache.


Tests not running but visible in the explorer list

On the testing window i am able to view all the tests listed in this way:

src
Accordion
....

When I try to run the tests, all, individually, from the code or from the list, I see the icon (stop) tuning briefly blue with a play symbol to turn then back gray (stop).
From the output: Jest(@my/componentname), I can see the following:

Running tests for '@my/componentname'

<EMAIL_ADDRESS>test
react-scripts test --env=jsdom "--testLocationInResults" "--json" "--useStderr" "--outputFile" > "C:\Users\me\AppData\Local\Temp\jest_runner_.json" "--testNamePattern" "^renders Accordion component with single item$" "c:\\some\\path\\src\\Accordion\\Accordion\.test\.js"

No tests found, exiting with code 1
Run with --passWithNoTests to exit with code 0
In C:\some\path
120 files checked.
testMatch: C:/some/path/src//tests//.{js,jsx,ts,tsx}, C:/some/path/src/**/.{spec,test}.{js,jsx,ts,tsx} - 22 matches
testPathIgnorePatterns: \node_modules\ - 120 matches
testRegex:  - 0 matches
Pattern: c:\\some\\path\\src\\Accordion\\Accordion\.test\.js - 0 matches

My file is located here
"C:\some\path\src\Accordion\Accordion.test.js"
The workspace root is located here
"C:\some\path"
The node_module .bin folder contains jest as required.
What am i doing wrong?
Why I can see the filename being broken from Accordion.test.js to Accordion\.test\.js?

I'm having the exact same problem. It seemed to be working for me last week, but this morning I get the behavior above. I can see all my tests in the explorer and click the run/debug buttons there. I can click Run or Debug in the editor view above a test. When I do, the icon goes blue as though running then immediately back to gray.
VSCode 1.72.0
vscode-jest-test-adapter 0.8.1

Just started using this test explorer and got the same behaviour here...
What I recognized now is that is running normal till at least 1 one test expectations fails. Then all get back to gray instead showing which one is red...
Very annoying to find out which one it is becaus you have to run every single test manually to see which one is now failing...
VSCode 1.72.2
vscode-jest-test-adapter 0.8.1


feh: 3.6.1 -> 3.6.2

Motivation for this change
Things done

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

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

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

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

8 packages built:

betterlockscreen
deco
feh
multilockscreen
python37Packages.pywal
pywal (python38Packages.pywal)
python39Packages.pywal
wpgtk

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

8 packages built:

betterlockscreen
deco
feh
multilockscreen
python37Packages.pywal
pywal (python38Packages.pywal)
python39Packages.pywal
wpgtk

Thank you for the bump! LGTM. I confirm that feh builds as it should and furthermore it appears to work. I also had a cursory look at the source diff between 3.6.1 and 3.6.2.

Thank you for the bump! LGTM. I confirm that feh builds as it should and furthermore it appears to work. I also had a cursory look at the source diff between 3.6.1 and 3.6.2.

Thanks!

Thanks!


UglifyJS gives "Unexpected token: name (NodeList)" in NodeList.js:12

$ npm run production

@ production /home/jaakkom/app
cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js

95% emitting
ERROR  Failed to compile with 1 errors                                                                                12:54:36
error
js/0.bb3de9b097a485b02e6d.js from UglifyJs
Unexpected token: name (NodeList) [./node_modules/vue-strap/src/utils/NodeList.js:12,0][js/0.bb3de9b097a485b02e6d.js:403,6]
Uglifyjs version: 2.8.29

I got the same issue


Preserve CL_UNPRIVILEGED locked flags during remount of bind mounts

Solves https://github.com/moby/buildkit/issues/4667

/ok-to-test


ci: use Eclipse Temurin

Shared runners have Temurin pre-installed. That helps to speed up build as the JDK download is no longer needed
For example, rather than :
Downloading Java 17.0.6+10 (Adopt-Hotspot) from https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.6%2B10/OpenJDK17U-jdk_x64_linux_hotspot_17.0.6_10.tar.gz ...
Extracting Java archive...
/usr/bin/tar xz --warning=no-unknown-keyword -C /home/runner/work/_temp/4888a6ec-1ae0-4fb7-9bcd-181c630a2b3c -f /home/runner/work/_temp/855c391a-da2b-4556-9b9c-665a6d0677a6

It will be:
Installed distributions
Resolved Java 17.0.6+10 from tool-cache
Setting Java 17.0.6+10 as the default
Creating toolchains.xml for JDK version 17 from temurin
Writing to /home/runner/.m2/toolchains.xml

See https://github.com/actions/setup-java/blob/main/docs/advanced-usage.md#hosted-tool-cache

@yeikel good catch, wasn't aware this was in the hosted tool cache!


Fix some grammar issues

Proposed changes
I'm "that guy" who is just making readme changes... 🙈
The readme is typically a "first impression" for the codebase. Let's make it as good as possible!
Types of changes
Purely grammatical changes to the readme.
Put an x in the boxes that apply

[ ] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist
Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.

[x] I have read the CONTRIBUTING doc
[ ] Lint and unit tests pass locally with my changes
[ ] I have added tests that prove my fix is effective or that my feature works.
[ ] I have added necessary documentation (if appropriate)

Further comments
I'm just learning Adonisjs... amazing work! Hope to contribute for real some day! 💯

Thanks! 💜


implement Laplacian preconditioning

The NiAl tutorial mentions implementing Laplacian preconditioning with
P = Diagonal(vcat(ACE1.scaling.(dB.basis.BB, rlap_scal)...))

but while "P" is just a dict field, the quantities needed to evaluate it are not available outside of ACE1pack ace_fit().  It would be helpful if there was something that could implement this preconditioning so it can be used with ACE1pack ace_fit()

I think that is possible ? Though not yet documented...
ACE1pack/fit.jl/fit_ace(params) can have
params["P"] = Dict(type => "laplacian", rlap_scal => 1.6)

which gets turned into your P as above by precon.jl/generate_precon() and passed onto lsqfit() as part of the solver dictionary.
test_precon.jl has a little example on how to get that outside of fit_ace().

Great.  I'll test that.

Can we close this? Or @bernstei I recall you saying something seemed off about it?

Well, so far it's not doing anything except making the resulting potential JSON file huge.  I get the impression that the latter problem is fixed, and I just need to update, so any bugs leading to the former may be moot as well.  I am going to close it given that, and will open a real issue if there's a problem with the latest version.


Added some needed basic security/filtering to the upload plugin.

It's not incredible - but better than spreading the completely insecure file at current.

I do not provide a backend script, it's juste a script for test purposes.

See: https://github.com/mrwigster/Trumbowyg/blob/ce44ac8dd230e80e19503e63408a4a3ad2bb71a9/plugins/upload/trumbowyg.upload.php#L11

That's fair enough - I just thought it may have been useful to share a script that was at least a tiny bit securer rather than the current.

That's just for the dev phase, not for production, if the code is too long, it's hard to be efficient on the Trumbowyg side.


Is it possible to change Tab Text's Typeface?

Is it possible to change Tab Text's Typeface?

@amanzan
Currently you can change the Typeface by CustomView.
Please Check demo/customview02. You can change the Typeface of TextView at ViewHolder's constructor


Move imports in buienradar component

Breaking Change:
None
Description:
Moved import from function to top-level as requested in #27284
Checklist:

[ ] The code change is tested and works locally.
[x] Local tests pass with tox. Your PR cannot be merged unless tests pass
[x] There is no commented out code in this PR.
[x] I have followed the development checklist

Note: imports sorted using isort

I encounter issues now:
2019-10-19 15:05:18 ERROR (MainThread) [homeassistant.config] Platform error: weather
Traceback (most recent call last):
  File "~/src/projects/iot/home-assistant/homeassistant/config.py", line 755, in async_process_component_config
    platform = p_integration.get_platform(domain)
  File "~/src/projects/iot/home-assistant/homeassistant/loader.py", line 231, in get_platform
    cache[full_name] = importlib.import_module(
  File "~/.pyenv/versions/3.8.0/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 "~/src/projects/iot/home-assistant/homeassistant/components/buienradar/weather.py", line 31, in <module>
    from .sensor import BrData
  File "~/src/projects/iot/home-assistant/homeassistant/components/buienradar/sensor.py", line 53, in <module>
    from .weather import DEFAULT_TIMEFRAME
ImportError: cannot import name 'DEFAULT_TIMEFRAME' from partially initialized module 'homeassistant.components.buienradar.weather' (most likely due to a circular import) (~/src/projects/iot/home-assistant/homeassistant/components/buienradar/weather.py)

I did a bisect from my last change on the component.

Platforms should not depend on each other. That needs a refactor.

Platforms should not depend on each other. That needs a refactor.

Yup. Should perhaps been a part of this PR?
I do not have time to do that refactor + create minimal tests for the platforms (since just loading them would have caught this) right now.

The fastest way to resolve this is to revert this PR for now.

Sorry for breaking the component!
I will take a look into it in the next few days, maybe I can fix the problem

@Bouni it was an annoying error that you only find when actually running it (due to lack of smoke tests). I found time to fix it.
May have introduced more errors while doing so, opening pull request in a bit.


Multiple Weeks only works from Sunday ?

So I have the following  options set to select a week at a time, and also for my weeks to start from a Monday, not a Sunday.
week:1,
pickWeeks:true,
multiple:true,
But if I select a week it still starts from the Sunday instead of the Monday. Giving a screenshot.

Ah. I think it seems some bugs.
I will fix this problem right now. (Concentration)
Thank you @Hoinzey.

This issue was fixed at v1.4.20.
If you have any another issue.
Please make by a new issue.
Thank you for sending a issue :smile.


Update README.md

Requirements
Please take note of our contributing guidelines: https://laravel-excel-docs.dev/docs/3.0/getting-started/contributing
Filling out the template is required. Any pull request that does not include enough information to be reviewed in a timely manner may be closed at the maintainers' discretion.
Description of the Change
Docs correction
Why Should This Be Added?
Docs correction
Benefits
Docs correction
Possible Drawbacks
I may be mistaken
Verification Process
--
Applicable Issues
--

3.1 is not released yet and that part is only a quick draft for the docs. It will be removed from the readme anyway. But thanks for spotting.


[Ember.js] Unit Tests

Testing Ember with Casper.js #2989 will give us an overview of whether the admin is functioning as we expect. However, Ember apps also lend themselves well to unit testing, and there are certain sections of the admin which would benefit from being tested in this way.
Standard Ember unit tests use qunit, but Ghost makes heavy use of mocha, so it is preferable if the unit tests can be run using mocha.

There are now a bunch of unit tests for models, controllers, and components that can be used as a reference when adding more tests: https://github.com/TryGhost/Ghost/tree/master/core/test/client/unit

@jaswilli - Awesome!!

Going to consider this done. The system is in place and there is a set of tests that could do with expanding but we should write explicit issues for that.


Add two more cache directories to .travis.yml

I added the two following directories:

$HOME/.ivy2/ - This is where Ivy downloads it's dependencies to
$HOME/.m2/ - This is where Maven downloads, while I don't think it's used, it's not worse for wear to have it

I also removed the -Donline=true marker from the first-build command. I would rather see this fail to detect than overriding it.
Additionally, I cleaned up the output on OSX by removing the brew update output (it's not useful to begin with).
You can see the improved output from caching by comparing the first-build steps from: Build #242.1 to Build #244.1

I am happy to merge this ... I just would like a few lines of explanation of the benefits

Sure! I added the directories that Ivy downloads to. This means we won't be
downloading a lot of the dependencies unless it is necessary. This should
cut down around 45s per build (higher for slower connections).
On OSX, we were installing a useless package, so I removed it.
This only applies to Travis, though.
On Jan 29, 2016 3:02 PM, "TCLethbridge"<EMAIL_ADDRESS>wrote:

I am happy to merge this ... I just would like a few lines of explanation
of the benefits
—
Reply to this email directly or view it on GitHub
https://github.com/umple/umple/pull/706#issuecomment-176944559.


Get the API testing in Travis again

I'm hoping that warm caches alleviate the memory pressure.

This ran to completion (even without the fix!), so merging.


Page break fruitcake with a side of ragged

I've been trying to isolate an elusive problem with paragraph alignments in a long document and failing for months. I finally pinned it down to an MWE. There are two symptoms that can be reproduced here—a third that I think involves insertion splitting is still too jello-y to even describe.
\begin[papersize=a7,class=book]{document}
\script[src=packages/linespacing]
\set[parameter=linespacing.method,value=fit-font]
\set[parameter=linespacing.fit-font.extra-space,value=1.15ex plus 0.5pt minus 0.5pt]
A line of stuff in a paragraph here that wraps one line.

\hfill The undersigned,

\hfill John Hancock

\skip[height=14em] % Change this to 13 em and the next right align gets applied to the wrapped half of the paragraph preceding it

A line of stuff in a paragraph that wraps on the page following the one it started on.

\rightalign{The undersigned,}

\rightalign{John Hancock}

\skip[height=16em]

The problem with hfills on the next page doesn't repro if you try to do it on this page.

\skip[height=15em] % Change this to 14em and the next hfill breaks

A line of stuff in a paragraph that wraps not just one but two lines on the page following the one it started on.

\hfill The undersigned,

\hfill John Hancock

\end{document}

Here is the expected rendering:

Here it is again with a slightly different document shape that triggers broken renderings.

Possibly related to #262?

This can play out in really bizarre ways. Check out this two page spread:

The content on the left is from the previous chapter and should be left justified. The chapter title, subtitle and quotation at the chapter on the right is centered. At least they are centered for all the other 94 chapters in the book. This one seems to has passed it's center alignment to the wrapped line on the previous page and adopted the left justification for itself. It also picked up the line spacing settings from the previous chapter and applied them to the chapter title which should be in an isolated settings environment—explaining why the reference is overlapping the quote there.

Given the similarity in when nudging things around in the test case works and doesn't work, I can't imagine this not being related to #262.

The test seems to pass as of HEAD. (1d6b065) "The undersigned" stays on the right, in all three occurrences.

The test I put in the tests folder or the MWE above? Because the MWE was hacked to work and you have to change it to show the bug. The test I adjusted to fail, but it doesn't have an expect yet.

The test in the repo.

I just tested HEAD and the test is not displaying correctly for me. On page 2 the first line SHOULD NOT be right aligned and an page 4 the second line SHOULD be.

Here's what I got:
bug-301.pdf

That has rather different font and line metrics than my version and the breaks are coming at a different place.

Aargh, how can this be? I'm using original Gentium, version 1.03. What does your --debug=versions say?

For grins here is the output you requested, but the font version is not the problem:
❯❯❯ sile --debug=versions tests/bug-301.sil
This is SILE 0.9.4-unreleased
<tests/bug-301.sil>
[1]
! Overfull content for frame folio
[2]
! Overfull content for frame folio
[3]
! Overfull content for frame folio
[4]
! Overfull content for frame folio

Harfbuzz version: 1.2.7
Shapers enabled: graphite2, ot, fallback
ICU support enabled

Fonts used:
/usr/share/fonts/TTF/Gentium-R.ttf:0    Version 1.03; 2011; OFL 1.1 release

The reason you couldn't recreate this is because the way leading was calculated was massively different and you had a newer version of SILE (or Harfbuzz?) than I did at the time. I submitted a PR to fix the test so it's properly broken.


Tx signature verification unittest

This creates a new transaction and signs it as a publickey
of the previous transaction to create and validate the input.
Required PR : Implement transaction verification #60

There's a few issues with this PR:

The test code should not live here. It should live in agora.common.Transaction because it is self-contained and doesn't require networking code.
It does not need the "TransactionManager"
It doesn't seem to use the public key in the outputs array for testing the signature, instead it directly uses the key in the key_pairs array (PublicKey pubkey = key_pairs[0].address; assert(pubkey.verify(input.signature, inputHash[]));).

So I suggest moving unittest code to agora.common.Transaction, and writing something similar to:
/// This creates a new transaction and signs it as a publickey
/// of the previous transaction to create and validate the input.
unittest
{
    immutable(KeyPair)[] key_pairs;
    key_pairs ~= KeyPair.random();
    key_pairs ~= KeyPair.random();

    // first transaction (coinbase to first public key)
    Transaction tx0 =
    {
        inputs  : [Input(Hash.init, 0)],
        outputs : [Output(40_000, key_pairs[0].address)]
    };

    Input input =
    {
        previous : hashFull(tx0),  // hash of previous utxo
        index : 0  // first item in the outputs array
    };

    // Signs the previous hash value.
    Signature signature = key_pairs[0].secret.sign(hashFull(input)[]);
    input.signature = signature;

    Output output =
    {
        value : 20_000,
        address : key_pairs[1].address,
    };

    // second transaction (spends the utxo from the first transaction)
    Transaction tx1 =
    {
        inputs : [input],
        outputs : [output]
    };

    // Verify the transaction's only output
    assert(tx0.outputs[0].address.verify(
        tx1.inputs[0].signature,
        hashFull(tx1.inputs[0])[]));
}

@Geod24 please verify my logic in this unittest. But I think it should be reasonable..

@AndrejMitrovic agora.common.Transaction You're talking about me adding it to this file?

@AndrejMitrovic agora.common.Transaction You're talking about me adding it to this file?

Yes to move the unittest there. The source/agora/test folder is only for code that needs networking support.

I uploaded it again. I'll close this PR.


Performance: FindCompletedEligibleOffsetsAndRemove method try replacing with cache of incomplete offsets

TODO: This entire loop could be possibly redundant, if we instead track low water mark, and incomplete offsets as work is submitted and returned, then we don't need to scan through all the partition collections looking for them.

relates to: #53

Closing Issue


When github or Bitbucket intergation is present set remote to them

When doing platform get and a github or bitbucket integration is present we should probably keep the "platform" remote but change origin to the upstream.

++ for this.

I am glad to see I am not alone; this is exactly what I am doing in my own (private, sorry) extended version of the CLI.

@vincenzo pull request ;)

Hehe, @scotthooker, good point. If it were that easy.
I'll try. The thing is, I am developing my version as a fork, but as a wrapper that depends on the official version (long story, you don't need to know why). So what I did, I did it as a separate command that overrides the official one. I'll try and port my changes to the official command and make a pull request.
In fact, it's not just get that needs this, but also branch and checkout (in case one enabled the integration after the project has been already gotten).

One issue I am finding this is in the context of team work with team members that have different permissions. This is actually my team's setup and this is an issue I had to work around in my wrapper solution.
The API that checks for active integrations seems to require admin permissions (unless @pjcdawkins tells me otherwise?), whereas get, branch and checkout only need you to be a reader/contributor.
So if I were to add a check on integrations as part of the get command, this might not work if a non-admin user is actually invoking the command.
@pjcdawkins ?

Right, integrations are for the project admin only. Defining a workflow around integrations is very manual at the moment - for example when a GitHub integration is present, the Platform.sh 'Branch' and 'Merge' actions probably should not be available, but they are...

@pjcdawkins Do you reckon that the API behind integration:get is likely to be made accessible to readers and contributors?

@vincenzo that seems unlikely - there could be reasons why only a project admin would be allowed to read that. Similarly on Bitbucket/GitHub themselves, you can only configure a repository's integrations if you're an admin.
So I think we'd need another solution for this - it's about being able to define some kinds of shared workflow settings on the project (perhaps dependent on integrations, but perhaps based on other things).

@pjcdawkins I don't suppose anything is changed re this?


[Breaking Change Tracking]

Subscribe to this issue to track breaking changes to auto-session!
I try my best to not break things along the way but sometimes that is not possible and sometimes I make mistakes, either way, when planned for or unforeseen breaking changes happen, I'll update this issue with comments on it!

I introduced a breaking change in #320  where auto-session will now, by default, try to restore a session if launched with a single parameter that's a directory. You can disable this behavior by setting 'args_allow_single_directory = false'. More info here:
rmagatti/auto-session#argument-handling

#334 was just merged and while it is largely compatible with existing setups, it does include some breaking changes (as discussed in #257) with how vim commands work with arguments. It also includes a new session filename format (percent encoding some characters) but it transparently handles converting between the old format (e.g. %some%dir on *nix/MacOS and C++-some-dir on Windows) and the new percent encoding (%2Fsome%2Fdir format on both on all platforms)
Command Overhaul
How the commands work with arguments has been updated. The argument to any function (Save/Restore/Delete) is strictly a session name, which means either a named session (e.g mysession) or a path (e.g. /my/proj). It is no longer possible to specify a directory to save in and a session name all in one argument. That was necessary because it was impossible to make that consistent in all cases. The benefit is that arguments to the commands and what you see in the session picker are all consistent. See "/my/proj" as the session name in the session picker? Great, you can restore it with :SessionRestore /my/proj
:SessionSave " saves a session based on the `cwd` in `auto_session_root_dir`
:SessionSave my_session " saves a session called `my_session` in `auto_session_root_dir`

:SessionRestore " restores a session based on the `cwd` from `auto_session_root_dir`
:SessionRestore my_session " restores `my_session` from `auto_session_root_dir`

:SessionDelete " deletes a session based on the `cwd` from `auto_session_root_dir`
:SessionDelete my_session " deletes `my_sesion` from `auto_session_root_dir`

I also added a :SessionSearch command that will pop the Telescope picker if it's installed and vim.ui.select otherwise. DisableAutoSave was renamed to SessionDisableAutoSave to make it consistent with the rest of the commands and I added a toggle cmd useful for a keymap:
:SessionSearch " open a session picker, uses Telescope if installed, vim.ui.select otherwise

:SesssionDisableAutoSave " disables autosave
:SesssionDisableAutoSave! " enables autosave (still does all checks in the config)
:SesssionToggleAutoSave " toggles autosave

In addition, RestoreSessionFromFile has been removed as a vim command because it's no longer necessary.
I decided not to expose SessionSaveToDir/SessionRestoreFromDir/SessionDeleteFromDir versions as vim cmds as they seem like more niche uses cases and they clutter the autocomplete list. That functionality is available in Lua, tho, as SaveSessionToDir, RestoreSessionFromDir, DeleteSessionFromDir.
As a little bonus, :SessionRestore/:SessionDelete also now get session name completion when you're typing.
New session filename format
Session file names are now percent encoded rather than the custom and different escaping methods used between *nix/MacOS and Windows. The new format is the same across all platforms and will percent encode all /\:*?"'<>+ |.% characters. The immediate benefit is supporting session names with dashes on windows and some slightly better git branch naming. This should mean fewer encoding related issues going forward.
When restoring a session, it will transparently move an old format session file to the new format and all places the search/delete sessions are able to read both formats.
current_session_name
The return from require('auto-session.lib').current_session_name is now the full session name, consistent with what is displayed in session search and used for save/restore. That means if it's a session that was automatically named after the cwd, it will be longer than was previously returned. To get just the last part of the session name (like the previous behavior), just pass true as an argument. For example, for the session named /some/dir/myproj, then require('auto-session.lib').current_session_name(true) will return just myproj
Fixes
Fixes: #55, #73, #148, #195, #204, #242, #250, #257, #262
#116: Addresses 1-4 but not 5 or 6.
#273: Doesn't fully address, especially the way we're handling git branches, but the simplicity of just having a session file without requiring a mapping table is desirable enough that I think it's worth seeing if this is good enough. If not, we can add a mapping layer on top.


Fix scope editing

There was a slight bug, editing scopes wasn't working.
Also, sanitized the string inputs a bit (since I often type "com.myscope, com.myscope2"), now trimming the strings and ignoring empty entries (e.g. "com.myscope,").

Thank you for this PR


Filter by name - UI and usability improvement

First, thank you very much for the new filter by name function , I highly appreciate it.
I have two aspects that could be improved from my point of view.

Different UI Design to access this feature. If looking at other apps, this feature is normally available via the magnifying glass at the top right of the app and not via the dot menu. If changing this for the main screen, it would also be more consistent with the magnifying glass which is displayed when copying or moving pictures to albums. I understand that you want to keep the UI clean but I think it is more understandable and easier to use this way.

Examples:
Signal:

Mail:

Tasks:

Usability improvement: When having an active name filter applied and clicking on an album and returning from the album view back to the main view, the filter is not applied anymore. I guess it is more intuitive to keep the filter applied and this is also helpful when browsing through a set of albums, like all all albums from a specific year.

Thanks!

I though about issue 1, but there is already a Search menu item there, though I assume not a very welcome feature. 🤣
For issue two, there will be a fix.


Add a note about the importance of correct combination of context flavors

As asked in https://t.me/grammyjs/81154 and many times before

@KnorpelSenf I dont know why my vscode will merge bot-feats into this branch, can you please rebase to 9c7a673 then I start over Chinese part?

I prefer not to force-push because that makes it hard to understand what happened. We squash-merge anyway, so the main branch will have a clean history. I reverted all changes and undid everything since 9c7a6737d4c2f5e6506c0ce34d8e9ab0538f5744 in a single commit.

Or maybe I did not do that? 🤔

Ah I cannot undo merges, that's unfortunate. Then I'll make an exception and force-push …

@WingLim you can now hard-reset your branch to the remote and do it again :)

Ah I cannot undo merges, that's unfortunate. Then I'll make an exception and force-push …

It already confuse me. Anyway, I push back the EN, ID and ZH changes of contenxt.md to this branch.

Ah I cannot undo merges, that's unfortunate. Then I'll make an exception and force-push …

It already confuse me. Anyway, I push back the EN, ID and ZH changes of contenxt.md to this branch.

Is it a GitHub bug? Why this branch contain #521 commits.

I am honestly not sure what is going on here.


Ad support for Logical Volumes

There are fields related to logical volume sizes which can be good to track. The data is in the XML response, just needs to be added to the VolumeSpaceAttributes struct

thanks!


Create an inventory system

Most adventure games have an inventory of some kind. Detailed descriptions of the various options can be found in The Transfer and Extension of Concepts from Classical Point & Click Adventures for Smartphones and Tablets, chapter 2.4.3 and Appendix A.4, but they basically boil down to:

only one item can be held at a time
a large (sometimes unlimited) number of items can be held at any time

The second option has variations in visibility; in some cases the inventory items are always visible, in other cases they are only visible upon request.
Here is what that may look like:

The inventory system in "Simon the Sorcerer" (here in the iOS version, though the interface is identical to any other version) is always visible and could hold an unlimited number of items.
The inventory system in "Edna & Harvey: The Breakout" (PC version) is only visible upon request.  In the iOS version, this was implemented slightly differently but the essential functionality stayed the same.
In "Puzzle Quest" there is no inventory as such; instead, there is a notebook containing topics about which the protagonist can try to speak with NPCs.
In "Plum" (a game prototype for a contest held by the people behind Visionaire Studio in 2012), the main character could only ever carry a single item above his head. (Windows only, and since I don't currently have a Windows PC available... If interested, I've uploaded the game here.)

Nowadays, most modern adventure games feature an inventory which can hold several items (as many as are required to solve the tasks at hand) which can be displayed on request but is normally hidden behind an icon of some kind. This would be my suggestion for what the Hero Engine should support.
As soon as a decision has been made, we'll need a reference room implementation of such a system.

Whatever is chose, it should definitely tie into the game. Like for "Puzzle Quest" it was a great idea like holding up a notepad in real life because you need it to write important info down. Since the game uses an integreated command line, maybe it will be like "Simon the Sorcerer"? where the terminal is always visible and we hit certain commands to show the inventory and other stuff?

I agree with @steaksauce-. The functionality for storing items, and maby add parameters for maximum amount of items that can be stored in the inventory. And ofc add functionality to fetch a list of items in inventory, remove items etc. Then the game developer can choose how to display the inventory and how the items shall be used/consumed


refactor: #309, added Alert (antd) when endDate < startDate

Description
Added Alert (antd) when endDate < startDate, in the dashboard page, and gaps-patterns page.
added it to the translation module:)
screenshots

Does someone know how I can fix the ci errors?
It seems to me I am missing a package-lock.json, well, that's because I deleted it :)

I'm closing this one because I realized I missed something basic here:)
I will open it again after I will make some changes


Appstudio update test-component-pac-djjk

Pipelines as Code configuration proposal
To start the PipelineRun, add a new comment with content /ok-to-test
For more detailed information about running a PipelineRun, please refer to Pipelines as Code documentation Running the PipelineRun
To customize the proposed PipelineRuns after merge, please refer to Build Pipeline customization

Pipelines as Code CI/test-component-pac-djjk-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
10 seconds
init

✅ Succeeded
20 seconds
clone-repository

✅ Succeeded
25 seconds
build-container

✅ Succeeded
15 seconds
inspect-image

✅ Succeeded
15 seconds
deprecated-base-image-check

✅ Succeeded
3 minutes
clair-scan

✅ Succeeded
45 seconds
clamav-scan

✅ Succeeded
13 seconds
sbom-json-check

✅ Succeeded
8 seconds
label-check

✅ Succeeded
9 seconds
optional-label-check

✅ Succeeded
3 seconds
show-sbom

✅ Succeeded
5 seconds
show-summary

Pipelines as Code CI/test-component-pac-djjk-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
10 seconds
init

✅ Succeeded
20 seconds
clone-repository

✅ Succeeded
25 seconds
build-container

✅ Succeeded
15 seconds
inspect-image

✅ Succeeded
15 seconds
deprecated-base-image-check

✅ Succeeded
45 seconds
clamav-scan

✅ Succeeded
3 minutes
clair-scan

✅ Succeeded
13 seconds
sbom-json-check

✅ Succeeded
9 seconds
optional-label-check

✅ Succeeded
8 seconds
label-check

✅ Succeeded
3 seconds
show-sbom

✅ Succeeded
5 seconds
show-summary

Pipelines as Code CI/test-component-pac-djjk-on-pull-request has successfully validated your commit.


Fail the CI if certain warnings are found

Is your feature request related to a problem? Please describe.
This feature request was mentioned on cfe-dev mailing list and the use-case is already supported by scan-build: http://lists.llvm.org/pipermail/cfe-dev/2019-June/062495.html
Describe the solution you'd like
It should be possible to treat certain checkers or compiler warnings as compilation errors.
Describe alternatives you've considered
Alternatively one could use parse to get the list of warnings from the run and process the result with a script. This is, however, not user friendly at all. We should not require the users to maintain additional scripts for such a simple task.

the use-case is already supported by scan-build

I'm also missing scan-build's
 --status-bugs

   By default, the exit status of scan-build is the same as the executed build
   command. Specifying this option causes the exit status of scan-build to be 1
   if it found potential bugs and the exit status of the build itself otherwise.

Presumably it would be a flag to analyze sub-command.

@bruntib Looks like this can be closed now?
Hurray!


[BUG] MouseButtonPressed, MouseButtonReleased events are redefined

'Ember::EventType MouseButtonPressed': redefinition

'Ember::EventType MouseButtonReleased': redefinition

Bug fixed


[Obsidian] ...

Extension
https://www.raycast.com/KevinBatdorf/obsidian
Description
Error:
Error: Worker terminated due to reaching memory limit: JS heap out of memory

NodeError:errors:405:5
[kOnExit]:worker:287:26
Worker.<computed>.onexit:worker:209:20

Steps To Reproduce
Searching notes
Current Behaviour
Doesn't return results
Expected Behaviour
No response

Is this issue solved? Thank you

Do you still see the error? The extension needs to rewrites to manage memory a bit better, but I'm looking into ways to add some tests first so I can safely make larger updates like this.
I suspect you have a lot of notes right?

Hi Kevin,
Yes, I still get it. I have around 5000 notes.


Cheerypy threads log rotation

From this HN discussion:
https://hypernews.cern.ch/HyperNews/CMS/get/webInterfaces/1555.html
the way we use and rotate the log files is not ideal. A thread keeps writing to the same file as of
when it was started, and the log rotation happens at midnight (I suppose) by appending the date to the log file, which is then also transferred to vocms022.
I guess we cannot use the logrotate for several of these WMCore services, since most of them spawn several threads, though I don't know exactly how that works :) Ideally our logs should follow the same behaviour as the mongdb service, for instance.

@amaltaro in the patch you provided for this on line 80 of WMLogging is a reference to codecs which does not exist anywhere. I'm reopening this for you to fix. :-)

Thanks Eric, my mistake too. I miss that.

It wasn't me :P Thanks again!


Add support for operator and manager roles

Broadly, the new roles work as follows:
The manager role is a role that manages users and groups, with the
notable exception that a Manager cannot add or remove the Operator
and Admin attributes on a group, nor add those groups to a user.
In effect, this means that a Manager can only add or remove a useri
from non-permission granting groups, or to the Manager group.
The operator role is a role designed to help with management of
EyeDP itself, granting no control of users not groups, but allowing
changing Settings and Identity Service Providers. This means that
an Operator can create and edit SAML or OpenID Connect Applications,
and they can manage Certificates for the same, as well as updating
Settings such as the application's base URI or templates for emails.
Ad admin continues to have full permission for all activities.
Closes: #199

Coverage increased (+0.3%) to 83.365% when pulling 1fc638e6f17c2de11b57874f3ae8916e8b023986 on feature/user-permissions into f1b4387fd2414f0bb4138980ba67ace269b02295 on master.


Join us form validation

Issue that this pull request solves
Closes: #506
Proposed changes
Brief description of what is fixed or changed
Used joi-browser to handle the form validation
Types of changes
Put an x in the boxes that apply

[ ] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation update (Documentation content changed)
[ ] Other (please describe):

Checklist
Put an x in the boxes that apply

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] My changes does not break the current system and it passes all the current test cases.

Screenshots

Other information
Any other information that is important to this pull request

I created a new branch this time, but I don't know why is it showing my previous commits also. Really sorry for that.

Hey @garvitgupta13 thanks for quickly fixing it. For the dark theme for multi-select you can overridding the class of multiselect component based on the theme or you can try once this see if any of these works for you and let me know.

Dark Theme:

Light Theme

Hey, @Kajol-Kumari please let me know these changes are fine.

Hey @garvitgupta13 can you please push the dark theme changes?
Also that black scroll kind of thing appear in the multi-select box, can we please remove it?

Mam, I tried to best to remove of that scroll, but in the documentation there is no method defined for it. And the scroll looks fine in firefox. I guess it might be some browser issue
FireFox:

The changes are not reflcted in webpage


Once Wiremock is up, we have to have a response for FCM

@josemigallas @ziccardi @odra
please review

I think over the break I will check out the FCM proxy from QE team, so we have both from there, instead of wiremock

LGTM

@matzew this is already done in the bash script. It creates a fcm-send.json with the response.

ah :-)


Unity 2020.1 XR Input System not receiving Vive controller inputs

Unity 2020.1.7f1
Input System 1.0.0
XR Interaction Toolkit 0.94 (preview)
XR Plugin Management 3.2.16
SteamVR 1.14.16
SteamVR Plugin 2.6.1
HTC Vive
Check 1: SteamVR environment -> Inputs work
After setting up a new Unity project and importing the mentioned plugins, I can generate the SteamVR controller actions and start the Interaction Sample scene. Tracking and inputs are doing fine.
Check 2: Unity XR Input System
Create a new empty scene and place a XRRig in the hierarchy. Create an empty GameObject and add a script with the following code:
protected List<InputDevice> leftHandDevices = new List<InputDevice>();
protected List<InputDevice> rightHandDevices = new List<InputDevice>();

private void Update()
{
    InputDevices.GetDevicesAtXRNode(XRNode.LeftHand, leftHandDevices);
    InputDevices.GetDevicesAtXRNode(XRNode.RightHand, rightHandDevices);

    bool isPressed;

    Debug.Log(leftHandDevices.Count);

    if(leftHandDevices.Count >= 1)
    {
        if(leftHandDevices[0].TryGetFeatureValue(CommonUsages.triggerButton, out isPressed))
        {
            Debug.Log("Left Trigger Pressed");
        }
    }

    if (rightHandDevices.Count >= 1)
    {
        if (rightHandDevices[0].TryGetFeatureValue(CommonUsages.triggerButton, out isPressed))
        {
            Debug.Log("Right Trigger Pressed");
        }
    }
}

Expected:
Console writes "1" because Unity XR System detects one left controller device.
Console writes "Left/Right Trigger Pressed" once the trigger button on the correct Vive controller gets pressed completely.
Behaviour:
While the first Debug.Log writes "1" in the console as expected, the trigger input is not noticed by the new Unity input system.
What could cause this issue?

I also checked the Input Debug and there is no changes of "value" once I press the trigger:

I noticed that all the controller buttons and states don't even appear in the XR interaction Debugger. Is that normal?

Hello @NilsBernatzki, please see the discussion on https://github.com/ValveSoftware/unity-xr-plugin/issues/16#issuecomment-662708512, Unity XR Input is not supported. There are some other options discussed on that issue report.


MF-1308 - Use IETF Health Check standard

Signed-off-by: Manuel Imperiale<EMAIL_ADDRESS>Resolves #1308
Resolved in UI repo here: https://github.com/mainflux/ui/pull/233
Resolved in devops repo here: https://github.com/mainflux/devops/pull/97
Resolved in docs repo here: https://github.com/mainflux/docs/pull/119
Since we wanted to have information about the build time and the corresponding commit hash of the version we added build_time and commit fields. However these fields are non standard and we should decide what to do about in this issue: https://github.com/mainflux/mainflux/issues/1549

I like this implementation. For now it looks maybe redundant, as version was functioning well, but I think in the future we will add some of the fields. For example, I think that uptime would be useful. Also, I find it more logical that we test status of the service via /health endpoint, rather than via /version endpoint.
On the other hand, I would like to hear from @nmarcetic and @dusanb94 does this change add the value, or maybe complicates things without particular benefit. @mteodor and @blokovi also - what do you think?

I like this implementation. For now it looks maybe redundant, as version was functioning well, but I think in the future we will add some of the fields. For example, I think that uptime would be useful. Also, I find it more logical that we test status of the service via /health endpoint, rather than via /version endpoint.
On the other hand, I would like to hear from @nmarcetic and @dusanb94 does this change add the value, or maybe complicates things without particular benefit. @mteodor and @blokovi also - what do you think?

@drasko I checked the code of the repo that you proposed and I prefered to use it as example than add it in the vendor. We were almost using nothing from there and the standard is not so cimplicated to follow.

Codecov Report

Merging #1541 (247d5b4) into master (aa014c2) will decrease coverage by 1.40%.
The diff coverage is 60.86%.

:exclamation: Current head 247d5b4 differs from pull request most recent head f439983. Consider uploading reports for the commit f439983 to get more accurate results

@@            Coverage Diff             @@
##           master    #1541      +/-   ##
==========================================
- Coverage   67.54%   66.14%   -1.41%
==========================================
  Files         133      139       +6
  Lines       10979    11215     +236
==========================================
+ Hits         7416     7418       +2
- Misses       2955     3189     +234
  Partials      608      608

Impacted Files
Coverage Δ

bootstrap/api/logging.go
0.00% <ø> (ø)

bootstrap/api/metrics.go
0.00% <ø> (ø)

http/api/logging.go
0.00% <ø> (ø)

http/api/metrics.go
0.00% <ø> (ø)

pkg/sdk/go/sdk.go
100.00% <ø> (ø)

provision/api/transport.go
0.00% <0.00%> (ø)

readers/api/logging.go
0.00% <ø> (ø)

readers/api/metrics.go
0.00% <ø> (ø)

pkg/sdk/go/health.go
46.66% <46.66%> (ø)

bootstrap/api/transport.go
93.10% <100.00%> (ø)

... and 13 more

Continue to review full report at Codecov.

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

Just for reference, we should see if this can be used in Dockerfile for HEALTCHECK instruction: https://docs.docker.com/engine/reference/builder/#healthcheck
We already use this instruction in VerneMQ Dockerfile

I find this very interesting. Do we have to change our Dockerfile for this?
What is K8s looking for in the response - only status code?

I find this very interesting. Do we have to change our Dockerfile for this?
What is K8s looking for in the response - only status code?

Yes, change in Dockerfile is needed.
That Docker healthcheck has not been integrated in the Kubernetes, there we can use Liveness and readiness probes

In this PR we have only the version  of service and do not have any other health check status or metrics  like uptime, CPU usage , other component status.
Example Output : https://tools.ietf.org/id/draft-inadarei-api-health-check-04.html#rfc.section.5
It seems to  be similar to the version endpoint

In this PR we have only the version of service and do not have any other health check status or metrics like uptime, CPU usage , other component status.
Example Output : https://tools.ietf.org/id/draft-inadarei-api-health-check-04.html#rfc.section.5
It seems to be similar to the version endpoint

@arvindh123 Indeed, for now we only have 3 standard endpoint status, version, and description. build_time and commit are custom fields. I didn't want to add it in this PR but we can maybe open another issue to talk about this check field. However, as previously discussed maybe this can be solved with docker.

@manuio @dusanb94 I have merged this PR, I think it is very useful and that we have it. Once @inadarei or someone else reacts on https://github.com/inadarei/rfc-healthcheck/issues/76 we'll see how to progress with https://github.com/mainflux/mainflux/issues/1549


Failed to create or update Component

Error when creating a client spring-boot component no exposing microservice and using the code generator, details here:
 hal component create client-sb
? Runtime spring-boot
? Version 2.1.6.RELEASE
? Expose microservice No
? Use code generator Yes
? Group Id dev.snowdrop
? Artifact Id myproject
? Version 1.0.0-SNAPSHOT
? Package name dev.snowdrop.myproject
? Env variable in the 'name=value' format, simply press enter when finished
❯ Selected Name: client-sb
 ✓  Successfully created 'client-sb' component
 amunozhe  ~  git  demo  oc get cp
NAME        RUNTIME       VERSION         AGE       MODE      STATUS    MESSAGE                                                                                REVISION
client-sb   spring-boot   2.1.6.RELEASE   5s        dev       Failed    failed to create or update Component 'client-sb': Service "client-sb" is invalid: [spec.ports[0].port: Invalid value: 0: must be between 1 and 65535, inclusive, spec.ports[0].targetPort: Invalid value: 0: must be between 1 and 65535, inclusive]

@metacosm
I cant set neither assignees nor labels to this issue :-(

Duplicate of https://github.com/halkyonio/hal/issues/59


Zcash Explorer enhancements

Great work, cool that such a tool added to the Zcash ecosystem
Zcash has credible blockchain data and it is important to show holders
Some of this data can be borrowed from Blockchair, they have an API
Of course it would be cool to get that data ourselves without a third party API, but I think that's overkill at this stage

Overview data

price
circulation
market cap
trading volume
dominance

Price charts

1 week/ 1 month / 1 year / All time
ROI vs BTC/USD

24h statistics

transactions
average transactions fee with charts 1 month / 3 months / 1 year / all time
blocks
avg.time between blocks
hashrate

Total data

blocks (total + 24h)
latest block
height / hash / time / miner / transaction count
outputs
addresses

Mempool

transactions
transactions per second
outputs

All about Zcash blockchain

blockchain size with charts
network nodes
latest block (n minutes ago)
difficulty with charts 1 month / 3 months / 1 year / all time

Thank you for your feedback. Our vision for the initial version of the block explorer was a minimal, light weight explorer accessible for mobile wallets too.
For a network overview and several features mentioned you've mentioned, check out https://www.zdash.info
We will consider your suggestions to accommodate them in a privacy preserving way in a future update.


Deprecation warning due to Node 16

Node 16 is now deprecated. Because of this, when using this action, you'll see warnings.
Please update the action to Node 20.

Thanks @Piedone . We'll add it to our plan.

Thank you!

cc/ @manidharanupoju24 (Another action that will need updating when a new Node 20 version is released).

A new version will be released soon or just the current will be updated?

anyone maintaining this action?

Please, prioritize this upgrade task.
This action is used by tenth of thousands of different project, and deprecation has been announced in 09/2023.

@YanaXu can we prioritize this ? Thank you

Would be great to get this solved. 🙏

Thanks for the feedback and your patience, there are some challenges related to this that we need to solve as we address this issue. We will prioritize this work in our upcoming sprints and will report our ETA shortly.

I just want to point out that this is emitting warnings in everyones workflows...

...there are some challenges related to this that we need to solve...

Can you elaborate @dcaro? Because it looks like its literally as simple as changing node16 to node20 in the action.yml file. I see there are already two PR's with this code change that you could probably merge in a couple minutes. But if you could elaborate on the concerns perhaps the pepople willing to do pull requests could address those changes?
It seems like just slapping a v2 onto it could help, no?

does anybody else see the irony in all this?

Ran a test this morning to confirm this. I'm still getting a warning. Do we need to flip a version number or something?

Any ETA on release?

Hi @martincostello , @tlchaffi , @onionhammer , we're working on this and the PR is merged. Please wait for the release.

Hi @martincostello , @tlchaffi , @onionhammer , we're working on this and the PR is merged. Please wait for the release.

is there any timeline for release?

Hi @ViktorDronov , we're testing it offline and working on the release date. It will happen soon. Please be patient for a few more days.
We didn't close this issue manually. It's closed because the related PR is merged. The issue's closure is automatically triggered by GitHub. Please be aware of this, if an issue is closed by a PR merge, it only works after a new release.

Thread bump to make sure the issue doesn't go stale.
@YanaXu any update on the QA cycle, and an ETA?

Hi @tim-chaffin, we'll release it next week.

Nudge @YanaXu
Its been a few weeks now. Bumping this so its not forgotten. Any ETA?

It's out

Good call out @onionhammer , I didn't see the new tag.
For anyone who finds this issue, the fix was released here: https://github.com/Azure/login/releases/tag/v2.0.0
Syntax: uses: azure/login@v2 to resolve.

Perhaps you can nudge your colleagues here? https://github.com/Azure/webapps-deploy/issues/372


TypeError: Cannot create property 'vx' on string '615'

I am new to GUAC.  I did ./bin/guacone query known package<EMAIL_ADDRESS>from the command line.  The command showed two tables and two links, the last link being http://localhost:3000/?path=3288,3287,615,614,82902 .
At that link I see the error Unhandled Runtime Error / TypeError: Cannot create property 'vx' on string '615' with a call stack that includes packages d3-force-3d, force-graph, and kapsule but no guac.
I run the visualizer with npm run dev and GUAC with docker compose up.  GUAC has collected:
./bin/guacone collect files ../guac-data/docs
./bin/guacone collect files ../guac-data/top-dh-sboms/vault.json

GUAC version
git log
commit 46b012f426894ef044a36a56917f9d225e5ceeb0 (HEAD -> main, origin/main, origin/HEAD)

GUAC-visualizer version
git log
commit 1714eea9f69df177f19489375aa8e0e1b211d806 (HEAD -> main, origin/main, origin/HEAD)

By any chance are you running stuff through Lima/Colima on m1 Mac?

8-Core Intel Core i9, macOS Ventura 13.3.1.

Are you using docker desktop or something else like Colima for running docker compose?

Docker Desktop for compose (4.14.1; Engine 20.10.21; Compose v2.12.2).
npm version 9.6.3 on macOS for guac-visualizer.

Thanks Ed, we’ll try to replicate it.
On Sat, May 27, 2023 at 12:18 PM Ed Snible @.***> wrote:

Docker Desktop for compose (4.14.1; Engine 20.10.21; Compose v2.12.2).
npm version 9.6.3 on macOS for guac-visualizer.
—
Reply to this email directly, view it on GitHub
https://github.com/guacsec/guac-visualizer/issues/26#issuecomment-1565569478,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAXLDBUZBGCYG3JM3SLIPOTXIISN5ANCNFSM6AAAAAAYREHGE4
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

https://github.com/guacsec/guac-visualizer/pull/27 fixed this issue @esnible. Please try it again.


Hovering over any java source element causes WebKitWebProcess crash

Fedora release 28 (Twenty Eight)
Eclipse SDK
Version: 2018-12 (4.10)
Build id: I20181010-0600
The executable seems to be /usr/libexec/webkit2gtk-4.0/WebKitWebProcess . I also recall running into this prior to updating to the 2018-12 flatpak.
Hovering over the element does bring up the shell, but the content isn't populated.

Yep, I noticed this too. I also observe the following in the that may be related:
SWT WebkitGDBus.java: Lost GDBus name. This should never occur

** (WebKitWebProcess:93): ERROR **: 14:23:09.323: SWT web extension: Call failed because 'GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: org.freedesktop.DBus.Error.ServiceUnk
nown.'

SWT WebkitGDBus.java: Lost GDBus name. This should never occur

** (WebKitWebProcess:93): ERROR **: 14:23:09.323: SWT web extension: Call failed because 'GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: org.freedesktop.DBus.Error.ServiceUnk
nown.'

So SWT's Webkit2 implementation works by having a main SWT webkit instance, and a separate process called a webextension. The webextension handles stuff like JavaScript, so its created as soon as that sort of content is dealt with by the main SWT webkit instance.
The SWT webkit instance runs a DBus server. Upon creation of the webextension process, SWT will pass its (SWT's) DBus server name to the extension. The extension will initialize, and then "phone home" to SWT via the DBus information it was supplied. This is the part that is breaking, i.e. the extension can't reach the SWT DBus server at the address/name it was given, so the extension is crashing.
My guess is that the SWT DBus/Webkit instance is killed somewhere between extension creation and initialization. Why this only happens in flatpak is a bit of a mystery...

IMHO it's flatpak sandboxing breaking the dbus. Mat, in case you haven't open dbus entirely (--socket=session-bus) please do so for now.

By default Flatpak routes dbus through a filtering proxy and I was only allowing calls through the filter to specific dbus interfaces that Eclipse needed:

org.freedesktop.Flatpak -- For launching processes on the sandbox host
org.freedesktop.secrets -- For gnome keyring integration

If SWT if providing a dbus interface, then AIUI the sandbox by default is only allowed to own its own app id, and sub-names on the bus, i.e. "org.eclipse.Sdk" or "org.eclipse.Platform" for the two Flatpaks that are built currently.
This means that we likely need a way to set the name of the interface that SWT is providing on a per-Flatpak basis; having SWT interrogate an environment variable might be the most convenient way to do this.

If SWT if providing a dbus interface, then AIUI the sandbox by default is only allowed to own its own app id, and sub-names on the bus, i.e. "org.eclipse.Sdk" or "org.eclipse.Platform" for the two Flatpaks that are built currently.
This means that we likely need a way to set the name of the interface that SWT is providing on a per-Flatpak basis; having SWT interrogate an environment variable might be the most convenient way to do this.

I think this is definitely doable.

https://bugs.eclipse.org/bugs/show_bug.cgi?id=540060

This is worked around downstream by granting access to the whole session bus, for details of upstream work, please follow this bug:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=540060


suppot for ActiveQuery::EVENT_AFTER_FIND

if we query with  asArray to return an array instead of AR object,  the ActiveRecord::EVENT_AFTER_FIND no longer trigger .
should we add an event ActiveQuery::EVENT_AFTER_FIND ?
As a preliminary idea, it can be trigger at  https://github.com/yiisoft/yii2/blob/master/framework/db/ActiveQuery.php#L222
such as:
        if (!$this->asArray) {
            foreach ($models as $model) {
                $model->afterFind();
            }
        } else {
            // trigger ActiveQuery::EVENT_AFTER_FIND  here
            foreach ($models as $key => $model) {
                $models[$key] => $this->afterFind($model);
            }
        }

Duplicates #10427


Heisenburg factory lift bug

Iv just killed the man with the spinning saw. And am trying to use the crane lift to take me up but the A button doesnt show up on the prompt. Is there a fix?

I used gamepad and got it working


Expose BayeuxClient state check methods

We use the isDisconnected() method in a spring boot HealthIndicator to alert if the clients gets disconnected.

Already done with #24


New neural OT solver ENOT

This pull request includes a new method (solver) for Neural OT training, called ENOT. It solves the dual OT problem in d-dimensional Euclidean spaces with the use of specific expectile regularization on the Kantorovich potentials.
The method is similar to W2NeuralDual (already implemented in the repository) but extends its functionality with the ability to use different cost functions, and eliminates the need for computationally intensive fine-tuning with conjugate optimizers.
Our paper arXiv:2403.03777 provides a detailed description of the method and its experimental evaluation.  ENOT outperforms previous state-of-the-art approaches on the Wasserstein-2 benchmark tasks by a large margin (up to a 3-fold improvement in quality and up to a 10-fold improvement in runtime).
We have also included in this pull request a detailed tutorial, demonstrating how our method works. Please find the source code with ENOT implementation and the tutorial with applications on some 2D datasets by the following links:
https://github.com/nazarblch/ott/blob/dev/src/ott/neural/solvers/expectile_neural_dual.py
https://github.com/nazarblch/ott/blob/dev/docs/tutorials/ENOT.ipynb

Hi @nazarblch , thanks a lot for the contribution! Will give it a review in the upcoming days!

Hi @nazarblch , I started looking into this PR, could you please adapt to the new structure as introduced in introduced #468 ?

@nazarblch thanks a lot for the contribution! Still need to finish looking at _loss_fn and _euclidean_loss_fn's implementation + the notebook, but left other comments.

This is a short confirmation that I have read the comments and am working on them.

@michalk8, I have corrected the code and updated the repository. Also we uploaded a new version of the paper into arxiv with additional image to image translation experiments.


Issue 1126 Net Core Sql connection connect timeout  less than 15 not working

The original comment around this area of code is:
// UNDONE: (DB Mirroring Reconnect) Old behavior of not truly honoring timeout presevered
// for non-failover, non-MSF scenarios to avoid breaking changes as part of a QFE.  Consider fixing timeout
// handling in next full release and removing ignoreSniOpenTimeout parameter.

It's not clear why anyone would want to ignore the specified timeout just from this comment. I would think users would want the ability to have a responsive timeout, so I'm inclined to be okay with "fixing" this issue.


Refactor TableView.data() method

This is by far the most complex piece of Datasette - the TableView.data() method is over 500 lines long and is increasingly getting in the way of cleanly implementing new features (e.g. #615 and #613).
Need to break it up into smaller, cleaner pieces.

Here's the current monstrosity:
https://github.com/simonw/datasette/blob/f9c146b893856a48afa810ebcce1714f30d0d3a2/datasette/views/table.py#L210-L780

This is what the code does:

Check if the table name is actually a canned query - if so execute that
Turn the table + querystring parameters (?foo=bar, ?bar__contains=baz, ?_where=, _sort= etc) into a SQL query
Figure out pagination (apply limit, and handle keyset pagination)
Calculate suggested facets against the non-paginated version of the query
Calculate facet counts against the non-paginated version of the query
Execute the query
Expand any foreign key references from the results

A clean starting point would be to refactor out the "take a table and a bunch of querystring parameters and turn them into a SQL query" portion.

The function that builds the query could go in a new datasette.utils.sql module.
I can design it to only take simple arguments (the table name, list of columns, list of primary keys and a list of key/value tuples from the query string). This will make it really easy to test (and means it won't need to be async since it won't have to use queries to retrieve those values).

As noted in https://github.com/simonw/datasette/issues/621#issuecomment-552253208 a common pattern in this method is blocks of code that append new items to the where_clauses, params and extra_human_descriptions arrays. This is a useful refactoring opportunity.
Code that fits this pattern:

The code that builds based on the filters: where_clauses, params = filters.build_where_clauses(table) and human_description_en = filters.human_description_en(extra=extra_human_descriptions)
Code that handles ?where=: where_clauses.extend(request.args["_where"])
The _through= code, see #621 for details
The code that deals with ?_search= FTS

The keyset pagination code modifies where_clauses and params too, but I don't think it's quite going to work with the same abstraction that would cover the above examples.

I experimented with a table_filter() plugin hook a while ago which looks very much like the abstraction I'm now talking about here: https://github.com/simonw/datasette/commit/5116c4ec8aed5091e1f75415424b80f613518dc6

That table_filter() plugin hook should probably be renamed though, since it could now apply to the regular custom SQL view as well as the table view.

I made some comments on an annotated version of this method a few days ago: https://gist.github.com/simonw/66aca058195d77bae5f614ef73352eb5

This work is now happening in #1518


restrict acl:mode, accessToClass, agentClass range definition in ontology

The current ACL ontology has
acl:mode a rdf:Property;
    :comment "A mode of access such as read or write.";
    :domain acl:Authorization;
    :label "access mode";
    :range :Class .

The :range here is defined as any instance of rdfs:Class
This is defined as
rdfs:Class a rdfs:Class ;
	rdfs:isDefinedBy <http://www.w3.org/2000/01/rdf-schema#> ;
	rdfs:label "Class" ;
	rdfs:comment "The class of classes." ;
	rdfs:subClassOf rdfs:Resource .

That is the range of :mode allows the class of Flying Saucers as range too.
Clearly this should be restricted to the class of subclasses of acl:Access.
which is defined as
acl:Access a :Class;
     :comment "Any kind of access to a resource. Don't use this, use R W and RW";
     acl:label "access"@en .

And indeed that is how Read, Write, Control, ... are defined.
acl:Read a :Class;
    :comment "The class of read operations";
    :label "read"@en;
    :subClassOf acl:Access .

One suggestion would be to fix this with
acl:mode :range [ a owl:Restriction ;
   owl:onProperty   :subClassOf ;
   owl:hasValue  acl:Access
 ] .

As described in the comment below the same reasoning applies to the range definitions of acl:accessToClass and acl:agentClass.

That is the range of :mode allows the class of Flying Saucers as range too.

rdf:rage doesn't actually restrict or allow anything it just allow to infer that object of the statement also has certain class.
https://github.com/solid/web-access-control-spec#authorization-schema has clear way of restricting valid values using ShEx
cl:mode [acl:Read acl:Write acl:Control]+ ;

In WAC the ontology is the primary document we always worked from.
The ShEx statements are  restrictions added post-hoc that are not agreed upon, and that furthermore, as shown above for the :agentClass, are overly restrictive and also wrong. The same is true for that acl:mode.
The ontology  allow new acl:Access subclasses such as acl:Delete or acl:Create. The point is not to argue here that we should use those, just that the ontology clearly means that to be possible, but does not state it clearly enough.

https://github.com/solid/web-access-control-spec#authorization-schema has clear way of restricting valid values using ShEx

Cool. Nice try. Please read the whole section.. starting with the very first sentence:

This section is non-normative. ( Issue: https://github.com/solid/specification/issues/169 )

I've accepted the PR https://github.com/solid/web-access-control-spec/pull/77 from Eric (which you were also a participating in) conditionally.

Indeed, the rdf:range on acl:mode should allow the reasoner to infer that the object of the statement is a subclass of acl:Authorization but it does not. The proposed fix would allow that to be inferred.

I don't see how that helps with case suggested by your previous statement:

That is the range of :mode allows the class of Flying Saucers as range too.

One could still use ex:FlyingSourcers as value. Maybe I misunderstood OWL reasoning but your restriction would just imply ex:FlyingSourcers rdfs:subClassOf acl:Access which technically seems fine as long as reasoner doesn't get statements like
 []  rdf:type     owl:AllDisjointClasses ;
     owl:members  ( acl:Access  ex:FlyingSourcers ) .

In other words I don't think it can address https://github.com/solid/specification/issues/169 while a Data Shape, ether ShEx or SHACL does.
I don't have objections to having suggested OWL restriction added to the vocab. I just don't see where it would come useful.

While we are at it we could also fix acl:accessToClass and acl:agentClass in the same way. These are currently defined as:
 acl:accessToClass     a rdf:Property;
         :comment "A class of information resources to which access is being granted.";
         :domain acl:Authorization;
         :label "to all in";
         :range :Class .

acl:agentClass     a rdf:Property;
         :comment "A class of persons or social entities to being given the right";
         :domain acl:Authorization;
         :label "agent class";
         :range :Class .

But it would be more correct for them to be:
 acl:accessToClass rdf:range [  rdf:type   owl:Restriction ;
   owl:onProperty   :subClassOf ;
   owl:hasValue  ldp:Resource
 ] .

 acl:agentClass   rdf:range [  rdf:type   owl:Restriction ;
   owl:onProperty   :subClassOf ;
   owl:hasValue  foaf:Agent
 ] .

@elf-pavlik:

I don't have objections to having suggested OWL restriction added to the vocab.

Good.

I just don't see where it would come useful.

It allows us to think more clearly about modeling issues.
For example, in the case of acl:agentClass the model allows usages such as that described in issue 176 to describe classes of agents by attribute, such as age, possession of a credential, etc...

In https://github.com/solid/authorization-panel/pull/178#discussion_r587447559

@bblfish: note: the acl Ontology would be a lot clearer if it restricted the range of acl:mode to the subclasses of acl:Access. See issue #187

And in initial comment here

@bblfish: That is the range of :mode allows the class of Flying Saucers as range too.

In on of later comments

@bblfish: Furthermore, as shown in the discussion of :agentClass in the wac-acp-diff PR we see how Shape expressions can easily be overly-restrictive and wrong.

I just want to make sure that we all are on the same page. Neither rdfs:range or rdfs:domain restrict or allow anything. It just implies something specific by providing grounds for reasoner to infer additional statements that were not explicitly asserted.
Even if we use class defined using owl:Restriction for rdfs:range or rdfs:domain when defining a predicate it still doesn't serve as any form of restriction or allowance on valid values for object or subject respectively in statements using that predicate.
I don't think we can say that data shapes definitions are more restrictive and RDFS (range & domain) are less restrictive. The later have nothing to do with restricting valid values so we can't directly compare them.

@elf-pavlik

Neither rdfs:range or rdfs:domain restrict or allow anything. It just implies something specific by providing grounds for reasoner to infer additional statements that were not explicitly asserted.

Say we define the infinite set of numbers divisible by 3  using the following description
Tr = { x |  x % 3 == 0 }

This set includes the numbers {0, 3, 6, 9, ... }.
Now, with the current ontology I can state that
[] acl:mode :Tr .

And that would allow us to infer that that :Tr :subClassOf :Class which is true, since it :Tr is a set of numbers.
But what the proposed change would allow us to conclude is that
:Tr :subClassOf acl:Access.

which is false, since a set of numbers is not an access mode.  Indeed there is no interpretation where we have a reasonable definition of acl:Access where that is true.
So for people who value true statements, that means that the second option is out of bounds.
As such it does restrict what it is possible to express truthfully.
This restriction is very helpful, even if it is not fully automatiseable: for one it helps make the intent of the ontology clearer. For example it makes it clear that acl:Delete or acl:Create would be quite reasonable things to have as the value of an acl:mode. I believe those modes have been proposed recently by the ACP group. I think we should be clear that the ACL ontology is compatible with such extensions. (But not with numbers - not everything goes).

I think it is fine to infer that :x is an rdfs:subClassOf acl:Access if :x is the object in a statement where acl:mode is the predicate.
That would be simply expressed by amending the ACL ontology statement acl:mode rdfs:range rdfs:Class to acl:mode rdfs:range acl:Access.
@bblfish I believe that your proposed change would actually mean that :x as defined above would be infered as a rdfs:subclassOf a blank node that happens to be an owl:Restriction. So I don't think it is correct.

I think it is fine to infer that :x is an rdfs:subClassOf acl:Access if :x is the object in a statement where acl:mode is the predicate.

ok, great! That is the main thing I was hoping to get agreement on.

That would be simply expressed by amending the ACL ontology statement acl:mode rdfs:range rdfs:Class to acl:mode rdfs:range acl:Access.

I had considered that but the problem I think is that the range of acl:mode is not an instance of an acl:Access, but a subclass of acl:Access. That is acl:Read is defined as
 acl:Read     a :Class;
         :comment "The class of read operations";
         :label "read"@en;
         :subClassOf acl:Access .

So if you look at how foaf:knows is defined
   foaf:knows     a rdf:Property,
                owl:ObjectProperty;
         :domain foaf:Person;
         :range foaf:Person.

Then you use it like this:
<#Jim> a foaf:Person.
:i foaf:knows <#Jim>.

Here the object of the above foaf:knows instance <#jim> is an instance of a Person, not a subclass of Person.
Subclass of foaf:Person could be :Man, :Woman, :Child, etc....
So what I was hoping to say with
acl:mode :range [ a owl:Restriction ;
   owl:onProperty   :subClassOf ;
   owl:hasValue  acl:Access
 ] .

is that the range of acl:mode is anything that is a :subClassOf the class acl:Access.

@bblfish I believe that your proposed change would actually mean that :x as defined above would be infered as a rdfs:subclassOf a blank node that happens to be an owl:Restriction. So I don't think it is correct.

I think I have it right, but I think it definitely needs careful checking.

The triple P rdfs:range C states that P is an instance of the class rdf:Property, that C is an instance of the class rdfs:Class and that the resources denoted by the objects of triples whose predicate is P are instances of the class C.
-- https://www.w3.org/TR/rdf-schema/#ch_range

Therefore if you say :p rdfs:range :ParentClass and :x :p :y, you get the triple :x a :ParentClass inferred.

A triple of the form: C1 rdfs:subClassOf C2 states that C1 is an instance of rdfs:Class, C2 is an instance of rdfs:Class and C1 is a subclass of C2. The rdfs:subClassOf property is transitive.
-- https://www.w3.org/TR/rdf-schema/#ch_subclassof

So similarly, if you say :ChildrenClass rdfs:subClassOf :ParentClass and :x a :ChildrenClass, you get the triple :x a :ParentClass inferred.
I guess what you're talking about might be inferring :ChildrenClass rdfs:subClassOf :ParentClass if :x :p :ChildrenClass which I don't think is very doable (and not what would result from a blank node object in an rdfs:range statement).
I don't see the text in the OWL 2 primer that suggests you can use blank nodes in the way you describe with rdfs:range. Is it something you might quote or pinpoint?

The triple P rdfs:range C states that P is an instance of the class rdf:Property, that C is an instance of the class rdfs:Class and that the resources denoted by the objects of triples whose predicate is P are instances of the class C.
-- https://www.w3.org/TR/rdf-schema/#ch_range

Therefore if you say :p rdfs:range :ParentClass and :x :p :y, you get the triple :x a :ParentClass inferred.

A triple of the form: C1 rdfs:subClassOf C2 states that C1 is an instance of rdfs:Class, C2 is an instance of rdfs:Class and C1 is a subclass of C2. The rdfs:subClassOf property is transitive.
-- https://www.w3.org/TR/rdf-schema/#ch_subclassof

So similarly, if you say :ChildrenClass rdfs:subClassOf :ParentClass and :x a :ChildrenClass, you get the triple :x a :ParentClass inferred.

yes. Agree with all the above.
What we want to specify is the range of :mode, where it is used like this:
<#Rule> :mode :Read

:Read is a subclass of acl:Access, so the range of :mode has to be sets of classes, not sets of individuals.

I guess what you're talking about might be inferring :ChildrenClass rdfs:subClassOf :ParentClass if :x :p :ChildrenClass which I don't think is very doable (and not what would result from a blank node object in an rdfs:range statement).
I don't see the text in the OWL 2 primer that suggests you can use blank nodes in the way you describe with rdfs:range. Is it something you might quote or pinpoint?

Here is an example from the the OWL Primer
:Parent  owl:equivalentClass  [
   rdf:type            owl:Restriction ;
   owl:onProperty      :hasChild ;
   owl:someValuesFrom  :Person
 ] .

That is the class :Parent is the set of all things that have a relation :hasChild to some :Person.  That is an owl:Restriction defines a class, via relations that objects have to other objects. It is denoted by a blank node, but that is for some complex logical reason I would need to study to understand fully. That is why one uses the owl:equivalentClass relation there to name that class.
I could make it clearer by doing the same and name the class of access class.
 :ClassOfAccessModes owl:equivalentClass [ a owl:Restriction ;
   owl:onProperty   :subClassOf ;
   owl:hasValue  acl:Access
 ] .

acl:mode :range  :ClassOfAccessModes .

:ClassOfAccessModes is not a particularly good name, but I hope it gets the idea across.

The owl:equivalentClass expressed as an owl:Restriction over owl:someValuesFrom is described as "existential quantification" which allows us to infer, for example, as per the OWL Primer that someone that is a parent has at least one child. So indicating a potentially untold/unknown statement.

The predicate you use in your owl:Restriction axiom: "owl:hasValue"; is meant to describe classes of individuals that are related to one particular individual via a predicate. In other words, by defining the owl:equivalentClass of rdfs:subClassOf acl:Access, you are defining the class of subclasses of acl:Access.
However:

...the subclass relationship between classes is transitive.  Besides this, it is also reflexive, meaning that every class is its own subclass...
-- https://www.w3.org/TR/2012/REC-owl2-primer-20121211/#Class_Hierarchies

An axiom EquivalentClasses( CE1 CE2 ) is equivalent to the following two axioms: SubClassOf( CE1 CE2 ) SubClassOf( CE2 CE1 )
-- https://www.w3.org/TR/owl2-syntax/#Equivalent_Classes

Maybe the most important bit is that the subclass relationship is reflexive and that every class is its own subclass. Therefore, the class of subclasses of acl:Access is acl:Access.
There is no need for an owl:equivalentClass over an owl:Restriction here.
I think what we want is: acl:mode rdfs:range acl:Access.

you are defining the class of subclasses of acl:Access.

yes. The difference in functional programming is the difference between a function that has a range of A and one that has as range Set[A] ie Sets of As. In mathematics it is the difference between a range of A and a range of the PowerSet of A, noted 𝒫(A). Note that the sets of a Powerset are all ordered by subset inclusion ⊆ which is transitive and reflexive, so that if A ⊆ B and B ⊆ C then A ⊆ C. You can order the subsets of a Powerset by subset inclusion with the empty set at the bottom and the full set at the top. This forms a category.
It is a bit tricky to see how to model this in a type safe language like Scala.
But perhaps the following gives an idea. The idea is that Read specifies a subclass of Access
and Work a subclass of Agent.
trait AcessControlRule {
   type Mode <: Access
   type A <: Agent

   def allow(agent: A, accessTo: Uri, mode: Mode): Boolean
}

trait Access {
   def request(req: HttpRequest): Boolean
}
class Read extends Access {
    def request(req: HttpRequest): Boolean = req.method == GET
}
class Write extends Access {
    def request(req: HttpRequest): Boolean = req.method == PUT
}

object ReadAccessOnDocs {
   type Mode  = Read
   type A = Work

   def allow(agent: A, accessTo: Uri, mode: Mode): Boolean = accesstTo.path.startsWith("/docs/")
}

Let me try to ask a simple question: Are you trying to express that the range is all the subclasses of acl:Access but not acl:Access itself?

No, the range is the Powerset of acl:Access, ie. 𝒫(Access) not Access. An element of 𝒫(Access) is a set like Read, not an instance like an individual request event.

[@bblfish] This is ok because acl:Access ∈ 𝒫(acl:Access) just like acl:Read ∈ 𝒫(acl:Access).

If I'm understanding the rest of this right, it seems that last should be acl:Read ∈ 𝒫(acl:Read), not acl:Read ∈ 𝒫(acl:Access)...?

@TallTed it is also true that acl:Read ∈ 𝒫(acl:Read), but my point was to say that :ClassOfAccessModes is really equivalent to 𝒫(acl:Access), which is I think expressed by the following:
:ClassOfAccessModes owl:equivalentClass [ a owl:Restriction ;
   owl:onProperty   :subClassOf ;
   owl:hasValue  acl:Access
 ] .

The reason I come to thisconclusion is that acl:Read,  acl:Write and acl:Control are all subclasses of acl:Access in the ontology. So that would be compatible with the object of a  :mode relation being any subclass of acl:Access.

There is nothing distinguishing :ClassOfAccessModes from acl:Access.
The only thing you gain is a couple of inferences that are probably not useful or welcome. To be clear, neither rdfs:range nor owl:Restrictions are actual restrictions, they are classifiers.
With acl:mode rdfs:range acl:Access, if :x acl:mode :Y, then :Y a acl:Access.
With your axiom, if :Y rdfs:subClassOf acl:Access AND :x acl:mode :Y, then :Y a :ClassOfAccessModes as well as :Y a _:BlankNodeOfTheRestrictionClass. Besides, the first statement holding means that  :Y a acl:Access (since :Y is a subclass of acl:Access).
I don't see how that's an improvement and it is confusing.

the object ?obj of a <#x> :mode ?obj relation being any subclass of acl:Access.

Yes, absolutely. That is exactly what acl:mode rdfs:range acl:Access expresses.

I see nothing relevant distinguishing :ClassOfAccessModes from acl:Access.

Do you see a difference between A and 𝒫(A)?
It's the same difference.
Say you have the type Person and the type 𝒫(Person) .
In the first case members of Person are actual people like you and me. E.g.  Henry: Person
In the second case we have groups of people, E.g. Adults: 𝒫(Person).
Those are two different types.

With your axiom, if :Y rdfs:subClassOf acl:Access AND :x acl:mode :Y, then :Y a :ClassOfAccessModes as well as :Y a _:BlankNodeOfTheRestrictionClass. Besides, the first statement holding means that :Y a acl:Access (since :Y is a subclass of acl:Access).

(Let's ignore the blank node comment that a good reasoner will resolve)
What you are saying is that :Y rdfs:subClassOf acl:Access  implies :Y a acl:Access.
But that is to confuse  membership (written ∈) and inclusion (written ⊆).
If we have  a set of 3 Friends F = { Alice, Ben, Camille} then Alice ∈ F but not {Alice, Ben}  ∈ F, even if {Alice, Ben} ⊆) F.
On the other hand {Alice, Ben} ∈ 𝒫(F).
That is because  𝒫(F) = { {}, {Alice}, {Ben}, {Camille}, {Alice, Ben}, {Alice, Camille}, {Ben, Camille}, {Alice, Ben, Camille}}`

Do you see a difference between A and 𝒫(A)?

Yes, and everything you say makes sense from a functional programming perspective.

What you are saying is that :Y rdfs:subClassOf acl:Access implies :Y a acl:Access.
But that is to confuse membership (written ∈) and inclusion (written ⊆).

It's not an implication or a confusion, it's basic inference. It's how RDF works.
RDF is not a strongly typed functional programming language and rdfs:range is a simple classifier, not a restriction. All it does is help you infer some statements.

Can you translate with a few statements what you are trying to do in RDF?
We have currently a few Access Modes acl:Read, acl:Write, acl:Append and acl:Control they all happen to be of rdf:type acl:Access and acl:Append is also of rdf:type acl:Write. We can also imagine having a future Access Mode x:Y and when used in a statement of the form :x acl:mode x:Y, then an inference engine would deduct that x:Y rdf:type acl:Access.
What is your expected inferencing behaviour?

Do you see a difference between A and 𝒫(A)?

Yes, and everything you say makes sense from a functional programming perspective.

What you are saying is that :Y rdfs:subClassOf acl:Access implies :Y a acl:Access.
But that is to confuse membership (written ∈) and inclusion (written ⊆).

It's not an implication or a confusion, it's basic inference. It's how RDF works.

Ok, so I think we need to go straight to the source here. Let's look at the inference rules from RDF 1.1 Semantics.
We have as rule 9, translated to N3 for readability the inference
{ ?xxx rdfs:subClassOf ?yyy .
   ?zzz rdf:type ?xxx . } => {?zzz rdf:type ?yyy}

This is different from the rule you are asserting which would be written
{ ?xxx rdfs:subClassOf ?yyy . } => {?xxx rdf:type ?yyy}

Rule 9, states that the instances of the subClass are instances of the superclass.
This is not the same as stating that subclasses of the superclass are members of the superclass.

Henry, thank you for your patience. I have to say that you are right. I didn't think the distinction would hold, but it does.
Given a graph:
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix : <https://example.com/>

:mode rdfs:range :Access .
:x :mode :Read .

The following statements hold:
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix : <https://example.com/> .

:Access
  a rdfs:Class, rdfs:Resource;
  rdfs:subClassOf rdfs:Resource, :Access .

:Read
  a rdfs:Resource, :Access . # The Read class is inferred to be of rdf:type :Access

:mode
  a rdf:Property, rdfs:Resource;
  rdfs:range :Access;
  rdfs:subPropertyOf :mode .

:x
  a rdfs:Resource;
  :mode :Read .

Given a graph:
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix : <https://example.com/>

:mode rdfs:range [
    a owl:Restriction ;
    owl:onProperty   rdfs:subClassOf ;
    owl:hasValue  :Access ;
 ] .
:x :mode :Read .

The following statements hold:
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix : <https://example.com/> .

_:node0
  a rdfs:Class, rdfs:Resource, owl:Restriction;
  rdfs:subClassOf _:node0, rdfs:Resource;
  owl:hasValue :Access;
  owl:onProperty rdfs:subClassOf .

:Access
  a _:node0, rdfs:Class, rdfs:Resource;
  rdfs:subClassOf rdfs:Resource, :Access .

:Read
  a _:node0, rdfs:Class, rdfs:Resource; # The Read class is inferred to be of rdf:type _:node0 (not :Access)
  rdfs:subClassOf rdfs:Resource, :Access, :Read . # The Read class is inferred to be rdfs:subClassOf :Access

:x
  a rdfs:Resource;
  :mode :Read .


Update flutter_login_facebook.podspec to fix conflict with facebook_app_events 0.19.2

to fix the following build error:
[!] CocoaPods could not find compatible versions for pod "FBSDKCoreKit":
In Podfile:
facebook_app_events (from .symlinks/plugins/facebook_app_events/ios) was resolved to 0.0.1, which depends on
FBSDKCoreKit (~> 17.0)
flutter_login_facebook (from .symlinks/plugins/flutter_login_facebook/ios) was resolved to 1.9.0, which depends on
FBSDKLoginKit (= 16.2.1) was resolved to 16.2.1, which depends on
FBSDKCoreKit (= 16.2.1)

Version 17.0 requires support of the Limited login feature. See #108 for details. I'm closing this PR for now.


Current precipitation source does not save

What happened?
Unable to save the "Current precipitation" source, it defaults to blank sensor.
How to reproduce
Go to Sensor Groups page, and enter a sensor entity for the Current precipitation.
Then navigate away from this page, then navigate back.
The field is empty.
Even if I select another source, like Weather service or Static value, when navigating away and back, the values are reset to Sensor with empty Sensor entity.
https://github.com/user-attachments/assets/2cc1f494-3853-4905-8b38-0ac280d84123
Relevant log output
No response
Which version are you running?
v2024.8.2
Diagnostics file

[X] I have attached a diagnostics file

Additional information
Diagnostics file: config_entry-smart_irrigation-54a29ef14b286103055503f5030ddb5a.json

My buckets haven't been updating for a few weeks and I noticed this as well. I created a new Sensor Group and noticed the Current precipitation sensor actually moves position in the list. I then set up my sensors in the new one and deleted the original sensor group and all the settings stayed. I am now waiting to see if my bucket updates now. Hopefully that fixed things.

My buckets haven't been updating for a few weeks and I noticed this as well. I created a new Sensor Group and noticed the Current precipitation sensor actually moves position in the list. I then set up my sensors in the new one and deleted the original sensor group and all the settings stayed. I am now waiting to see if my bucket updates now. Hopefully that fixed things.

Well that didn't fix anything. My buckets are still showing empty. I have done all the sensors and they all have data in them but they are not filling and we have had no rain for 2 weeks.

@clau-bucur I can't reproduce this unfortunately. Can you install the latest version and try again?

@jeroenterheerdt it works with 2024.10.1. I was able to set the Current precipitation to a sensor and it got saved. Thank you!
What is the recommended value for this sensor for the Use the ___ of sensor values to calculate duration?

see: https://jeroenterheerdt.github.io/HAsmartirrigation/configuration-sensor-groups.html


Replace ADO.NET 2.0 tokens

Thank for making the additional changes, @NextTurn. I'll merge your PR now.


Unable to create Graph instance with specified port

I am running my RedisGraph on a port other than 6379. I confirmed via redis-cli that the instance is operating as expected. When I try to use redisgraph.js as follows to create a client with a specified port, it failed as follows:
> const RedisGraph = require('redisgraph.js').Graph;
> new RedisGraph("g1", "localhost", "7070");
Thrown:
TypeError: Cannot create property 'path' on string '7070'
    at createClient (/private/tmp/node_modules/redisgraph.js/node_modules/redis/lib/createClient.js:63:26)
    at Object.exports.createClient (/private/tmp/node_modules/redisgraph.js/node_modules/redis/index.js:1089:41)
    at new Graph (/private/tmp/node_modules/redisgraph.js/src/graph.js:32:26)

Passing an instantiated RedisClient instance with the correct port also fails as follows:
> const rds = require('redis');
> const RedisGraph = require('redisgraph.js').Graph;
> let rc = rds.createClient({host:'localhost', port:7070});
> rc instanceof rds.RedisClient
true
> new RedisGraph("g1", rc);
Thrown:
TypeError: this.stream.setTimeout is not a function
    at RedisClient.create_stream (/private/tmp/node_modules/redisgraph.js/node_modules/redis/index.js:256:21)
    at new RedisClient (/private/tmp/node_modules/redisgraph.js/node_modules/redis/index.js:159:10)
    at Object.exports.createClient (/private/tmp/node_modules/redisgraph.js/node_modules/redis/index.js:1089:12)
    at new Graph (/private/tmp/node_modules/redisgraph.js/src/graph.js:32:26)

Edit: the following appeared to work fine:
> const RedisGraph = require('redisgraph.js').Graph;
> new RedisGraph("g2", {host:"localhost", port:7070});
Graph {
  _graphId: 'g2',
  _labels: [],
  _relationshipTypes: [],
  _properties: [],
  _labelsPromise: undefined,
  _propertyPromise: undefined,
  _relationshipPromise: undefined,
  _sendCommand: [Function: bound ]
}

Did I misread the documentation at https://redisgraph.github.io/redisgraph.js/Graph.html, which appears to specify each parameter as a function argument?

@abawany
Thanks for reporting, I will issue a fix soon


fix build without mbedtls submodule initialized, and fix deoptimized debug build

Thanks - that explains why I had to do a clean build with this change I guess


Added definitions for Cases for iPhones 8 through 11

reverted as these cases are not devices - the cases currently in the project are magsafe cases with A numbers