Addition of /editor command?

Issue
Over at https://github.com/llm-workflow-engine/llm-workflow-engine I've implemented a very handy /editor command that:

Opens the CLI editor as specified in the $EDITOR environment variable, right within the context of the running program
Upon close/save of the editor, pipes the final editor contents back to the program as input

As a Vim/Neovim user, this is super handy for working on more complex prompts, as I have my full editor seamlessly integrated into my workflow.
While LWE and Aider serve completely different purposes, I noticed Aider also uses Prompt Toolkit, and I bet it would be fairly easy to lift the existing /editor command code from LWE and port it to Aider.
If you think this is a worthwhile feature addition, I might be willing to work on the PR to accomplish this, but I wanted to check for interest before I did any heavy lifting.
Version and model info
N/A

Thanks for trying aider and filing this issue.
That does sound like a handy feature, yes. You'd have /editor open up the $EDITOR to compose the next chat message for the user?

You'd have /editor open up the $EDITOR to compose the next chat message for the user?

Correct, it opens $EDITOR in the context of the app, then pipes the saved result to the input of the app.
I default to a tempfile with an .md extension, and in my Neovim setup, this gives me some nice syntax highlighting, including for code blocks. Plus I get the full power of all my Vim/Neovim editor commands, so if feels totally familar.
Check out this video, should give you a brief idea of the workflow:
editor-command-lwe.webm

I opened https://github.com/paul-gauthier/aider/issues/1818, but it was a duplicate of this. I will try to write a proposal here:
Description
Enable a switch that would allow Aider to receive individual message written in a custom text editor. We can refer to this as EXTERNAL EDITOR INPUT MODE.

You can switch to EXTERNAL EDITOR INPUT MODE in a sticky way with the /editor command. Or you can launch Aider with the --editor-mode switch.
You can disable EXTERNAL EDITOR INPUT MODE by entering the /editor command again.
When EXTERNAL EDITOR INPUT MODE is active, entering /architect, /ask or /code makes Aider open a temporary text file in the text editor set by the EDITOR environment variable (in line with how git commit work).
Once this is done, Aider waits for the user to type a custom message in the text editor, save it to the aforementioned temporary text file, and finally close the editor. When Aider detects that the user has closed the editor process, it reads the content of the temporary text file and uses it to send the chat message content.
Aider will try to perform all necessary cleanup steps, such as deleting the temporary text file.
The only requirement for the program to work properly is that the chosen message editor must open the temporary file in a blocking mode, which allows us to detect when the process of the editor that opened the temporary file is closed. This is true for vi, nano, etc, but we must remind the user that any other editor must support such mode. For example, to use kate, the path in the EDITOR variable must have the -b option (i.e. EDITOR="/usr/bin/kate -b").

Is it viable to consider an option to author the prompt itself in the VSCode editor window and the pass it to aider?

This would be viable if, when you tell vscode to open a temporary text file, vscode is able to open the temporary text file in a new subprocess that is closed when you are finished writing the message. This allows Aider to easily detect that the user has finished writing the message to the temporary text file. I don't know enough about how vscode works to know if it already works this way when you tell it to open a file.

@insilications having used the /editor command for a long time in https://github.com/llm-workflow-engine/llm-workflow-engine, I'm pretty sure you would not want to implement /editor as an on/off switch in Aider.
I think it's much cleaner to have /editor be an ad-hoc command, that, when you use it, opens an editor for that particular message to Aider. I find myself dancing back and forth between simple input mode and using /editor, and it's much more intuitive to just have /editor be an ad-hoc command, plus with tab completion it's just a few keystrokes to activate it.

@insilications having used the /editor command for a long time in https://github.com/llm-workflow-engine/llm-workflow-engine, I'm pretty sure you would not want to implement /editor as an on/off switch in Aider.
I think it's much cleaner to have /editor be an ad-hoc command, that, when you use it, opens an editor for that particular message to Aider. I find myself dancing back and forth between simple input mode and using /editor, and it's much more intuitive to just have /editor be an ad-hoc command, plus with tab completion it's just a few keystrokes to activate it.

Maybe you are right... I support any method, as long as we manage to add a way to open an editor for a particular /ask or /code message.
I really hate having to construct long messages in the terminal.

I really hate having to construct long messages in the terminal.

I nearly always construct my prompts in Obsidian (markdown note taking app) and copy/paste them into aider.
This also helps me track what I am doing and pick up where I left easily.
aider's terminal input is way too annoying with its constant autocomplete while typing, I personally cannot stand this.

I plan on submitting a PR for this feature, but there is some groundwork I have to do to make it work on Windows.

the SEARCH/REPLACE can be made more potent by the ancient unix command [s]ed and related, vi[m]
just ask your favorite model

Thanks again for this feature. I already fine it very useful.
I'm going to close this issue for now, but feel free to add a comment here and I will re-open. Or feel free to file a new issue any time.


make when friendly to void lambda

This is possible
List<Object> list = ...
when(() -> list.get(0));

However this is not
List<Object> list = ...
when(() -> list.clear());

made when method friendly towards lambdas returning void 6dab59a43fa33a745dd2fed5dcab82f2cc121f0c


fix all doctests and require doctests to pass on travis testing

Should we have another release of spint?


Simulacron startup (Csharp 609)

I've changed the title to reference CSHARP-609 (the reference to CSHARP-608 was unintended, right?).
About the ticket on JIRA, @landim can you reopen it again until merged?

thanks for all inputs. I all work on them and push asap.


[MRG] switch pip packages to conda-forge in conda buildpack

This pull request modifies the conda buildpack to install jupyterhub and nteract_on_jupyter from conda-forge instead of pip.
According to @ocefpaf "this can lead to dependencies installed with conda and cause problems. (Sometimes things just works but it is 50-50 change.)" And we are seeing this mixing currently in Pangeo environments built with repo2docker (https://github.com/pangeo-data/pangeo-cloud-federation/pull/305).
Described in detail https://github.com/jupyter/repo2docker/pull/714#issuecomment-505278413
Because we aren't changing versions here I suspect there aren't going to be issues, but let me know if I can add tests or other modifications.

Thanks for this. Let's wait a bit to see if @yuvipanda or others remember why we used the pip packages, otherwise we can merge this.
I'd prefer not to merge this while travis is red. I've created https://github.com/jupyter/repo2docker/issues/729 to investigate why this happens. All help and ideas welcome as this blocks all PRs. I don't have a good idea why we run into this.

The main reason to get jupyterhub from pip instead of conda is that the conda package (rightly) depends on nodejs, but we don't need that in our case (and indeed, we are getting nodejs from nodesource instead of conda). So that's just an image size question.
The other packages it was just a convenience since they weren't on conda yet, and I agree we should get packages from conda where available in the base env.
So I'm +1 to this change, and we can investigate getting at the size optimization for jupyterhub another way (especially since now CHP isn't the only proxy for jupyterhub)

Does this mean conda will bring in nodejs as well now?

I'm unsure. Right now I think if we switch jupyterhub to be a conda package then we will get nodejs from conda as well. There doesn't seem to be anything concrete that is broken by us doing this.
If both of those are correct I'd vote we stick with using the pip version of jupyterhub to keep the image smaller. Smaller images mean faster launches and right now it should all be about faster launches (I think).

Does this mean conda will bring in nodejs as well now?

Yes, it does. If size optimization is primary, keeping jupyterhub from pip is the way to go, at least until jupyterhub splits jupyterhub-singleuser into a standalone package (requires at least 3 packages for shared infrastructure/auth utils, singleuser, and the hub itself).

Just added a bit to the docs to clarify where the definition of the base environment lives. I suspect there might be a lot of binder repos out there that might specify a different jupyterhub version (for example https://github.com/pangeo-data/pangeo-stacks/blob/master/base-notebook/binder/environment.yml), resulting in even larger images due to nodejs brought in with both pip and conda.
I think it can be confusing to have these pip packages show up for someone who is expecting just the conda packages in their repo's environment.yml

I like the docs updated that clarifies things. If you move jupyterhub back to being a pip package we can merge this.

@betatim - I'm actually still in favor of sticking exclusively with conda :) So I'm going to try to articulate the rationale in more detail:

We're using repo2docker to generate our default environment images that run in jupyterhubs. It's common for users to update packages in the default environment or create new conda environments, and we've been running into some 'inconsistent environment' conda solver issues with the current setup (https://github.com/pangeo-data/pangeo-cloud-federation/issues/254)

I think the repo size changes will be small (I did a couple tests running locally and installing a basic environment.yml just w/ dask and the net difference in image size is less than 10Mb).

Even with the docs improvement I still find it odd to encounter many pypi packages in the resulting 'conda' environment. For example: https://github.com/scottyhq/pangeo-binder-test/tree/jhub-conda

Environments mixing conda and pip might not work. This is hard to test because the environment installs fine, but errors can manifest importing packages or running code. This article describes some issues https://www.anaconda.com/using-pip-in-a-conda-environment/ and the current conda docs still suggest "The differences between pip and conda packages cause certain unavoidable limits in compatibility but conda works hard to be as compatible with pip as possible."

Users could still specify pip packages if they want in their repo’s environment.yml

If the decision is between slightly smaller images or faster build times, versus better assurance of functioning environments I'd vote for the latter! Would the next step be to push new conda 'frozen' files to re-run tests if there is still interest?

If the size difference is only 10MB then that does seem like a trade-off worth making. Can you push one image built with master and one with this branch to docker hub for your test repo? That makes it easy to compare layers and sizes.
Is there a repo we can look at that doesn't build with master but does build with this PR? I always thought that there is a difference between conda install foo; pip install bar; conda install blah and listing foo, bar and blah as packages in an environment.yml. Namely that if a pip package is listed in the environment.yml conda can "see" it. Which I thought avoids most (all?) of the problems that the blog posts are hinting at. It would be interesting to have an example.
For my education why does https://github.com/pangeo-data/pangeo-stacks/blob/master/base-notebook/binder/environment.yml list jupyterhub as a dependency (without specifying a version) even though jupyterhub is already installed by repo2docker?
If we start installing node via conda we should do some archaeology to find out why we started installing node as a system package in the first place. This would (maybe) let us stop installing it to avoid the problem that two (different) versions of node end up being installed which will invariably lead to weird problems, this time not about pip and conda but the two node versions.

If the size difference is only 10MB then that does seem like a trade-off worth making. Can you push one image built with master and one with this branch to docker hub for your test repo? That makes it easy to compare layers and sizes.

Binder repos that link to Docker Images:
https://github.com/scottyhq/pangeo-binder-test/tree/dask-only-master (1.76GB)
https://github.com/scottyhq/pangeo-binder-test/tree/dask-only-pr (1.83GB)

Is there a repo we can look at that doesn't build with master but does build with this PR? I always thought that there is a difference between conda install foo; pip install bar; conda install blah and listing foo, bar and blah as packages in an environment.yml. Namely that if a pip package is listed in the environment.yml conda can "see" it. Which I thought avoids most (all?) of the problems that the blog posts are hinting at. It would be interesting to have an example.

Good point, I don't know if there is a difference in these approaches. Maybe @ocefpaf has a minimal example contrasting behavior?

For my education why does https://github.com/pangeo-data/pangeo-stacks/blob/master/base-notebook/binder/environment.yml list jupyterhub as a dependency (without specifying a version) even though jupyterhub is already installed by repo2docker?

Probably should have an explicit 1.0. But this is left over from trying out the latest available packages by not pinning versions, and an attempt to get everything from the conda-forge channel.

If we start installing node via conda we should do some archaeology to find out why we started installing node as a system package in the first place. This would (maybe) let us stop installing it to avoid the problem that two (different) versions of node end up being installed which will invariably lead to weird problems, this time not about pip and conda but the two node versions.

Yes. Is node as a system package to keep the version consistent across pip, conda, and other builds? I'm only familiar with needing it for jupyterlab extensions (https://jupyterlab.readthedocs.io/en/stable/user/extensions.html#extensions)
In any case, with this PR, conda brings in these versions:
jovyan@jupyter-scottyhq-2dpangeo-2dbinder-2dtest-2dxitd0vxz:~$ node --version
v11.14.0
jovyan@jupyter-scottyhq-2dpangeo-2dbinder-2dtest-2dxitd0vxz:~$ npm --version
6.7.0

In addition to the ones in /usr/bin/
jovyan@jupyter-scottyhq-2dpangeo-2dbinder-2dtest-2dzgb5nkin:~$ node --version
v10.16.0
jovyan@jupyter-scottyhq-2dpangeo-2dbinder-2dtest-2dzgb5nkin:~$ npm --version
6.9.0

A related issue: https://github.com/jupyter/repo2docker/issues/307#issuecomment-391372676

@GladysNalvarte or @minrk do you recall why we started installing npm as a system package?
@scottyhq thanks for the bump and refreeze. Do you have a repo which is broken with master and then fixed with this PR? So we can confirm that this change actually fixes the problem :)
I'd extend the npm test that is currently failing to check for the two npm's that are installed. Modulo removing the system npm based on the answer from Min or Gladys.

do you recall why we started installing npm as a system package?

I'm pretty sure nodejs from nodesource is more widely used and kept better up-to-date (I maintain nodejs on conda-forge, and don't always keep up).
That said, as nodejs is increasingly likely to be pulled in as a conda dependency (e.g. by jupyterlab things), I think it probably makes sense to do this here.

@scottyhq thanks for the bump and refreeze. Do you have a repo which is broken with master and then fixed with this PR? So we can confirm that this change actually fixes the problem :)

@betatim here is an simple example environment.yml that results in a surprising situation on master, but not with this PR:
name: test
dependencies:
  - requests=2.21

on master we end up with requests                  2.22.0                   pypi_0    pypi! (which comes from pip install jupyter  but on this PR we end up with requests                  2.21.0                py37_1000    conda-forge. I'm haven't really dug into why this occurs, but I'm guessing the logic is we're doing a 'upgrade' to the existing environment and we already have a higher version?!
Here is another example you could run locally (conda 4.7.10) illustrating that solving for mixed conda and pypi packages doesn't always work:
name: broken
channels:
  - conda-forge
dependencies:
  - dask=2
  - pip:
    - sagemaker

Gives this error: ERROR: Cannot uninstall 'PyYAML'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
But this works:
name: fixed
channels:
  - conda-forge
dependencies:
  - dask=2
  - pyyaml=3
  - pip:
    - sagemaker

Finally, although I haven't encountered errors of this type via repo2docker I've been bitten a number of times with environments that mix pypi and conda packages for geospatial packages. See for example: https://github.com/mapbox/rasterio/issues/1244

updated the test, but might consider pinning the node version in repo2docker/buildpacks/conda/environment.yml to one of these in conda-forge (and re-freezing):
nodejs                       11.10.0      hf484d3e_0  conda-forge
nodejs                       11.11.0      hf484d3e_0  conda-forge
nodejs                       11.14.0      he1b5a44_0  conda-forge
nodejs                       11.14.0      he1b5a44_1  conda-forge
nodejs                        12.1.0      he1b5a44_1  conda-forge
nodejs                        12.3.0      he1b5a44_0  conda-forge

or removing the system package install (and associated tests) if that is the preferred approach?

This looks good to me. @scottyhq do you want to add a test for this environment:
name: test
dependencies:
  - requests=2.21

I'd consider what currently happens on master as a bug, so having a test to prevent this from coming back would be good. If you don't have time to add the test could you make a ticket instead so it doesn't get forgotten?


Udating AccessList will not reload nginx

Describe the bug

Access List doesn't work at all.  I have never managed to see an authentication box with or without custom location .
Force SSL doesn't work with custom location

To Reproduce

I created a Proxy Host with SSL, I have Force SSL set.  I can only visit with HTTPS.  Great.
Now I added an Access List with just one user and password and now my HTTPS is 403 Forbidden.  I am never prompted to authenticate it's always 403 Forbidden
If I change the Access List to "Satisfy Any" and add my IP with "<IP_ADDRESS>/24" it is still 403 Forbidden.
Either Access Lists don't work, or I don't understand them.
If I create a Custom Location for this Proxy so that accessing / goes to /folder

the Access List no longer generates 403 Forbidden and the site is open to all
Force SSL no longer works, I can browse with HTTP

As I've been typing this I've found the Access List not working with Custom Location bug report.  I see it's going back to last year.  For a security problem that's really a long time.  Now combine that with Force SSL also being broken, another security problem.  It had me convinced this project had become abandoned, yet there is life with multiple updates this year.  It's true that most apps do there own security, but I have a few like COPS that could benefit from a working Access List.  Please try and address these issues in the next release.

After playing around some more I've come to the realization that even though this offers a fancy GUI interface, changes to the Access List will not cause nginx to reload.  This is why the changes are not reflected. If you make changes to the Access List, you will need to save the Proxy as well to force nginx to reload.  There are no indications of what action will force a reload aside from looking at the logs.
After many days of struggling with this program that I thought would save me time from learning to configure nginx directly, I have downloaded Caddy, and with two simple lines in plain english my reverse proxy just worked.

Force SSL doesn't work with custom location
I had a similar problem with proxy_pass. maybe force ssl when you add include conf.d/include/force-ssl.conf;

my custon nginx configuration.
location / {
    include conf.d/include/force-ssl.conf;
    proxy_pass http://domain:port/url/;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $http_connection;
    proxy_http_version 1.1;
}

Any updates/work around on this? When using Access list it never prompted to authenticate it's always 403 Forbidden. It not consistent, some time it works some time not.

I also have this issue when adding a new proxy with access pointing to an existing Access List, Publicly accessible works just fine.

Hi all
I am (allmost) sure, that IP in acces lists only can contain public addresses.. IE your one public address will only allow your home Network to acces
Mary Christmas

Can someone confirm or refute @hsindrup's comment that only public IPs are allowed in the ACL?
We use private IP address ranges, but ran into issues (NGINX keeps "seeing" the public IP of the local requester and therefore denies access). I was convinced that this is more an issue of our local DNS Server, but after I read @hsindrup 's comment I'm not sure anymore about that. A clear statement about that would be great, so I will not continue to search for a solution at the wrong place.
This guy here also uses private IP address ranges: https://youtu.be/G9voYZejH48

@niklasdahlheimer
https://nginx.org/en/docs/http/ngx_http_access_module.html
I think it should work with local IP addresses.
I am struggling with Access List too. Using ss on the machine hosting the container, I can clearly see my IP adress which I am connecting to the Nginx Proxy Manager service with (port :81). This will hence be the IP address which will connect to the reversed service.
If I add this specific IP adresse to the Access list, I get "403 forbidden" - "<IP_ADDRESS>"
If I add the IP address with subnet range; <IP_ADDRESS>/24, I get "403 forbidden".
If I add <IP_ADDRESS>/16, it suddenly works.
I have to edit the Access List, and then go to the Proxy Host and click Save for any changes to take effect.
However, it works for the rest of the world too, with /16, which is not what I am trying to accomplish :) Although 10.0 is a private IP range. ..
I want to be able to dial home with a VPN before allowing access to my bitwarden instance.

@niklasdahlheimer
I can confirm it works with local/private IP addresses. A good tip is to find out which IP address is hitting the proxy through the log file. As for the solution to my problems, it was found here: https://github.com/containers/podman/discussions/10472
I am running NPM in rockylinux as a rootless container:
podman run -d -v ~/podman/npm/data/:/data/:Z -v ~/podman/npm/letsencrypt/:Z -p 80:80 -p 81:81 -p 443:443 --net=slirp4netns:port_handler=slirp4netns jc21/nginx-proxy-manager:latest

However, to the initial bug; yes - whenever I change the Access List, I have to go to the Proxy Host and click Save to make it refresh.

changes to the Access List will not cause nginx to reload

2 years later it still is the case, I was confused at first and had to restart my server which did not help, after poking around I manage to make it work the exact same thing that @spoolr did:

If you make changes to the Access List, you will need to save the Proxy as well to force nginx to reload.

Good thing my server is small

So I did some changes after configuring a VLAN and manage to find my comment almost a year after.
An update to this:

I was confused at first and had to restart my server which did not help

with v2.10.4, a server restart now works


Pressing escape key replaces selected text with a space character

Steps to reproduce:

Run super_editor's demo app on macOS
Select any piece of text (single character, multiple characters, multiple words, etc.)
Press escape key

Expected: either collapse selection or do nothing (seen both behaviors in different tools)
Actual: selected text is replaced by a space " "
https://user-images.githubusercontent.com/31278849/141998731-3add3127-ebaa-4a51-b68c-1cb9643e7e05.mov
Note: on web nothing happens when pressing escape.

@miguelcmedeiros dito

Still an issue in SuperEditor.
For Superlist we implemented on our side one of the two proposed behaviours (collapse selection).
@matthew-carroll, in case SuperEditor should adopt the same behaviour by default, I can open a PR with it.

@miguelcmedeiros  Let's have Escape collapse the selection.
@ThangVuNguyenViet would you like to take on this ticket? When the ESC key is pressed on a hardware keyboard, a SuperEditor should respond by collapsing an expanded selection, or doing nothing if the selection is already collapsed. This change should include appropriate tests.

@matthew-carroll sure, I'd love to work on this


ISPN-6162 Deprecate Query.getResultSize() method

Please do not close the jira. This PR only deprecates the method in question.
https://issues.redhat.com/browse/ISPN-6162

Merged

-1
Indexed queries can compute the result size cheaply and has pagination built in, should we remove this because of non-indexed query (which is not really for production)?

We can undeprecate it any time @gustavonalle :)

@gustavonalle I imagine even for indexed query it's cheaper to return just a few results without counting all of them. Not sure how it works out in Lucene, but back when I was working with databases, we had a large dataset where it took < 10ms to get the first 10 results that we actually needed to display, and > 500ms on top of it to fetch the count so we could display the number of pages.

@danberindei Only a few documents are returned, the default is 10. But the total count is essential so that you can know how many results matched, and to paginate among them. When you have an index, you don't have to scroll thought all the results to do the count. In Lucene specifically, there's a data structure called 'inverted index' which is akin to a map keyed by lookup term with a list of document ids, so the query count is cheap to obtain


zork error when in git repo

Xork looks great but when I go into a git repo I get an error after each command being run.

-bash: 1m]±[e[0m]master: command not found
-bash: 1m]✗[e[0m]: command not found

Expected Behavior
There should be no errors
Current Behavior
There are errors printed after each command being run while in a git repo.
Your Environment

Bash-it version used: 2.1.3
List of enabled plugins, themes and aliases (use bash-it show (plugins/themes/aliases)):

plugins

alias-completion
base

aliases

general

bash-it doctor output:
└─▪ bash-it doctor
DEBUG: core: main: Loading libraries(except appearance)...
DEBUG: lib: helpers: Loading library file...
DEBUG: lib: log: Loading library file...
DEBUG: lib: preview: Loading library file...
DEBUG: lib: search: Loading library file...
DEBUG: lib: utilities: Loading library file...
DEBUG: vendor: Loading "preexec"...
DEBUG: core: reloader: Loading all enabled components...
DEBUG: aliases: general: Loading component...
DEBUG: plugin: base: Loading component...
DEBUG: completion: bash-it: Loading component...
DEBUG: completion: system: Loading component...
DEBUG: plugin: alias-completion: Loading component...
DEBUG: core: reloader: Loading "zork" theme...
WARN: themes: base: Command 'battery_percentage' does not exist!
DEBUG: core: main: Loading custom aliases, completion, plugins...
DEBUG: core: main: Loading general custom files...
DEBUG: custom: example: Loading custom file...
-bash: 1m]±[e[0m]master: command not found
-bash: 1m]✗[e[0m]: command not found

Bash version:
bash-4.4.19-12.el8.x86_64

Operating System and version:
Cenots 8

I could not reproduce this error, are you sure this is happening, even if you open a new terminal/ use bash-it restart?

I see. That's what I did wrong. Sorry. Closing...

Thats alright @daniejstriata, thanks for reporting and being invested in Bash-it :smile:


[v1] Update tekton storage backend to use Storer interface.

Changes
This is largely a refactor - this should not be a change in behavior for clients.
Part of #780

Submitter Checklist
As the author of this PR, please check off the items in this checklist:

[x] Has Docs included if any changes are user facing
[x] Has Tests included if any functionality added or changed
[x] Follows the commit message standard
[x] Meets the Tekton contributor standards (including
functionality, content, code)
[x] Release notes block below has been updated with any user facing changes (API changes, bug fixes, changes requiring upgrade notices or deprecation warnings)
[x] Release notes contains the string "action required" if the change requires additional action from users switching to the new release

Release Notes
NONE

/lgtm


ES6 syntax breaks build on CI server

After having installed ember-cli-webfontloader in our app, the CI build breaks on the following line in the addon:
Unexpected token (
.../node_modules/ember-cli-webfontloader/index.js:7
included(app) {
^

I checked that ember-cli-webfontloader has ember-cli-babel as a dependency so I'm not sure if this is a problem in ember-cli-webfontloader itself but after a 5-min research I haven't seen another Ember addon that uses the ES6 syntax in its index.js so I'm not sure. FWIW, the tests pass locally.

What CI system are you using? I'd prefer to not workaround an issue, but to find a real cause. For now, I guess, it would be wise to merge your pull request and move forward without ES6 initializer, but generally that would be awesome to get more details.

We use CodeShip.

@balinterdi Just tell Codeship to use Node 6.

Thanks, @lolmaus. As there is a solution for this, I close an issue.

@lolmaus @kuzzmi Thank you, guys.
I updated node to version 5.12.0 on Codeship and it now works with the ES6 function syntax in index.js that my PR has reverted a while ago. Should I create a new PR that restores the ES6 syntax in index.js?

Yes, please, that would be awesome!
On Tue, Nov 8, 2016 at 3:42 PM Balint Erdi<EMAIL_ADDRESS>wrote:

@lolmaus https://github.com/lolmaus @kuzzmi https://github.com/kuzzmi
Thank you, guys.
I updated node to version 5.12.0 on Codeship and it now works with the ES6
function syntax in index.js that my PR
https://github.com/kuzzmi/ember-cli-webfontloader/pull/4 has reverted a
while ago. Should I create a new PR that restores the ES6 syntax in
index.js?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kuzzmi/ember-cli-webfontloader/issues/3#issuecomment-259154024,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABpapBFYhcOPtzC_IT0eN2y7kwqDdERJks5q8IpGgaJpZM4I1QvE
.

Done: https://github.com/kuzzmi/ember-cli-webfontloader/pull/8


docs(changelog.md): update for release 0.30.0

Signed-off-by: Frederico Araujo<EMAIL_ADDRESS>What type of PR is this?
/kind documentation
Any specific area of the project related to this PR?
NONE
What this PR does / why we need it:
Additions to the CHANGELOG for Falco 0.30.0
Which issue(s) this PR fixes:
NONE
Special notes for your reviewer:
/milestone 0.30.0
Does this PR introduce a user-facing change?:
NONE

@araujof: You must be a member of the falcosecurity/maintainers GitHub team to set the milestone. If you believe you should be able to issue the /milestone command, please contact your Falco maintainers and have them propose you as an additional delegate for this responsibility.

In response to this:

Signed-off-by: Frederico Araujo<EMAIL_ADDRESS>What type of PR is this?
/kind documentation
Any specific area of the project related to this PR?
NONE
What this PR does / why we need it:
Additions to the CHANGELOG for Falco 0.30.0
Which issue(s) this PR fixes:
NONE
Special notes for your reviewer:
/milestone 0.30.0
Does this PR introduce a user-facing change?:
NONE

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: araujof
To complete the pull request process, please assign leogr after the PR has been reviewed.
You can assign the PR to them by writing /assign @leogr in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Welcome @araujof! It looks like this is your first PR to falcosecurity/falco 🎉

/hold

Hey @araujof
I addressed the first suggestion from @leodido. The other suggestion needs to be manually applied, IMO.

@leogr @leodido I regenerated the CHANGELOG, manually removed 1744 and 1688, amended and force-pushed my previous commit. Thanks for your help!

LGTM label has been added.  Git tree hash: 8e203edfcc108a14a94052f52fe28a640b1c016f

/approve

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: araujof, leogr
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [leogr]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/unhold


v2.0

A bunch of cleanups and updates, possibly some performance improvements

When will this be released?

I don't really remember why I didn't release it when doing the changes. I'll have a look at my notes and see if there was something that didn't get done.

Can you take my suggestion into account as well? I needed a way to shutdown Fortuna and cleanup the executors. :)

Definitely, I don't see a problem with adding that

Awesome! Thanks! :)

Nice!! Thanks! :) 👍

When will this finally get merged?!
Still waiting since last year. :D

I think right about now is good 😄


Unit test eating assertion fails....

Hi @TylerBrock,
i'm continuing to investigate #27, and i have a pr coming up real soon, but wanted to get your feedback on a question.
As part of digging into my most recent change and why it broke my tests, I was wondering why the tests didn't fail on parse-mockdb.  I then added a test that should have failed, but it didn't, ok.  That's when I noticed that the test wasn't using done().  Ok.  Fixed that, but then I see that when an assertion in a promise fails, it doesn't get caught by the test runner.
I created a branch to show what I mean. https://github.com/acinader/parse-mockdb/commit/292fa00eed7016f4947232c26ce7c209b4879ae5
In any event, it seems to me that Parse.Promise and mocha don't play well together.  Have you noticed what I am talking about?
I'm game to give it some thought, but before I waste our time, I figured I'd ask if this is in any way on your radar screen?

or am i just doing something completely wrong?

I think we got to the bottom of this, yeah?

nope :(
here's a branch i made to show what i mean https://github.com/acinader/parse-mockdb/tree/unit-test-madness  see this commit: https://github.com/acinader/parse-mockdb/commit/292fa00eed7016f4947232c26ce7c209b4879ae5
seems to me like it is something with parse promises?  but maybe its just something I am doing wrong.  I can investigate it further, but wanted to see if you're seeing the same behavior.

ok, i think i get it now, if fixed my branch with this commit: 788c9c5a
which I got from reading this: https://www.sitepoint.com/promises-in-javascript-unit-tests-the-definitive-guide/
the fix is to  don't use 'done', instead return the promise so mocha can handle.


Make xspec-177.xspec more portable

This pull request derives from #481. So needs to be handled after that.

This pull request makes test/end-to-end/cases/xspec-177.xspec more portable (more adaptable to XQuery).
No XSpec code change.

@cirulls
Merged this small improvement of test.


VS Code logo on the background (with no editors) is badly sized

/cc @misolori

/duplicate of #140400


Add Drag and drop function

Apple add some new Collection View delegate to support drag and drop function in iOS11.Could you update this lib to adapt it? https://developer.apple.com/ios/human-interface-guidelines/user-interaction/drag-and-drop/

I no longer have capacity to maintain this lib though. I love to merge a PR that does this.


Fix for 'Null check operator used on a null value'

The issue:
When GifView is loading a gif in list tiles, sometimes on scroll there are errors like this:
Null check operator used on a null value

#0      AnimationController.stop (package:flutter/src/animation/animation_controller.dart:785)
#1      AnimationController.value= (package:flutter/src/animation/animation_controller.dart:367)
#2      AnimationController.forward (package:flutter/src/animation/animation_controller.dart:465)
#3      GifViewState._loadImage (package:gif_view/gif_view.dart:274)
<asynchronous suspension>

The problem is that methods such as .forward should not be called on animation controller after it's been disposed.
This small fix should eliminate the problem.

Hi @oligazar !
Thanks for contribution!
LGTM!


[Feature Request] Support for downloading multiple files preferably .zip file or (.tar) file

Surely this would be an implementation you would do yourself on the backend?

out of scope

see: https://github.com/rndme/download/pull/117/files
Closed by:

#117
#118

While that could be handy for some, it would require breaking argument signature changes and massively bloat the smallish code size that we all love. I'm playing with a virtual filesystem idea, and downloading folders and multiple files could well be a part, I'll update this issue with a link if the project matures to a release worthy status.

@rndme you can join my project i launch https://opfs.zip

@rndme i also got cloud-fs.zip and a file explorer and tar zip support and a phar like format called .esar ecmascript archive opfs.zip will implement .esar support esar is a simple format contianing a stub and integrity framework.


Attribute values being converted to HTML entities (when they should not)

If there's a need to add inline style, with background property
class Nav < Phlex::HTML
  def template
    nav(class: "main-nav", style: "background: url('foo.jpg') no-repeat center center / cover;") {
      ul {
        li { a(href: "/") { "Home" } }
        li { a(href: "/about") { "About" } }
        li { a(href: "/contact") { "Contact" } }
      }
    }
  end
end

it's generating this HTML (indented for reading)

Home

About

Contact

where the background: url('foo.jpg') should not be transformed into html entities
any suggestion?
thank you
ps: running Phlex 1.10.1

Hey @fernandes, this is by design in order to protect against XSS attacks. If you had something like this in your code style: "background: url('#{user.profile_image_url}')", a user might be able to set their profile_image_url to something like this:
">

I opened #709 to explore how we might be able to escape just the double quotes, allowing you to use the other characters (single quotes, etc.) inside attribute values.

that's really good good information @brandondrew , absolutely works as a work around
@joeldrapper yes! totally makes sense, and it's good security in first place, I was thinking if possible to have so config/param to allow it (maybe a param to allow per single case)
at least, as @brandondrew said, can omit the quotes on the url , this solves for my case, so I'll leave it to you, to keep the issue open or not
thank you!

let me add another case here, and if worth, I open a new issue.. let's say I want to add the © symbol to a page
class Copyright < Phlex::HTML
  def template
    plain "#{company.name}©"
  end
end

it renders the copyright symbol Acme©, if I try to use html entities
  def template
    plain "#{company.name}©"
  end

phlex converts the & (ampersand symbol)
Acme&copy;

so the HTML will show Acme© on the browser
what's the best way to solve it? thank you

I think the best way to solve this is to use UTF-8 encodings. You can put UTF-8 characters in the Ruby files and in HTML if you use <meta charset="UTF-8">.

makes sense, thanks for the tip! 🙇


Projects with dependencies on readline fail to build

Details

Project URL: https://readthedocs.org/projects/pybel
Build URL: https://readthedocs.org/projects/pybel/builds/4882414/
Read the Docs username: cthoyt

Expected Result
I expected my documentation to build. It worked fine until I added the requirement of ontospy, which has the problematic dependency of readline
Actual Result
The documentation for my project was unable to build because it has a dependency on readline. Here is the relevant portion of the error log from the build:
Collecting readline (from ontospy->-r /home/docs/checkouts/readthedocs.org/user_builds/pybel/checkouts/latest/requirements.txt (line 10))
  Using cached readline-<IP_ADDRESS>.tar.gz
Requirement already satisfied (use --upgrade to upgrade): isodate in /home/docs/checkouts/readthedocs.org/user_builds/pybel/envs/latest/lib/python3.4/site-packages (from rdflib->ontospy->-r /home/docs/checkouts/readthedocs.org/user_builds/pybel/checkouts/latest/requirements.txt (line 10))
Building wheels for collected packages: readline
  Running setup.py bdist_wheel for readline: started
  Running setup.py bdist_wheel for readline: finished with status 'error'
  Complete output from command /home/docs/checkouts/readthedocs.org/user_builds/pybel/envs/latest/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-tqq52w8w/readline/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /tmp/tmpysufydl2pip-wheel- --python-tag cp34:

 ============ Building the readline extension module ============

  running bdist_wheel
  running build
  running build_ext
  building 'readline' extension
  creating build
  creating build/temp.linux-x86_64-3.4
  creating build/temp.linux-x86_64-3.4/Modules
  creating build/temp.linux-x86_64-3.4/Modules/3.x
  x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -fPIC -DHAVE_RL_CALLBACK -DHAVE_RL_CATCH_SIGNAL -DHAVE_RL_COMPLETION_APPEND_CHARACTER -DHAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK -DHAVE_RL_COMPLETION_MATCHES -DHAVE_RL_COMPLETION_SUPPRESS_APPEND -DHAVE_RL_PRE_INPUT_HOOK -I. -I/usr/include/python3.4m -I/home/docs/checkouts/readthedocs.org/user_builds/pybel/envs/latest/include/python3.4m -c Modules/3.x/readline.c -o build/temp.linux-x86_64-3.4/Modules/3.x/readline.o -Wno-strict-prototypes
  Modules/3.x/readline.c: In function ‘PyInit_readline’:
  Modules/3.x/readline.c:1179:34: warning: assignment from incompatible pointer type [enabled by default]
       PyOS_ReadlineFunctionPointer = call_readline;
                                    ^
  creating build/lib.linux-x86_64-3.4
  x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 build/temp.linux-x86_64-3.4/Modules/3.x/readline.o readline/libreadline.a readline/libhistory.a -lncurses -o build/lib.linux-x86_64-3.4/readline.cpython-34m.so
  /usr/bin/ld: cannot find -lncurses
  collect2: error: ld returned 1 exit status
  error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

  ----------------------------------------
  Failed building wheel for readline
  Running setup.py clean for readline
Failed to build readline
Installing collected packages: SPARQLWrapper, readline, ontospy
  Running setup.py install for readline: started
    Running setup.py install for readline: finished with status 'error'
    Complete output from command /home/docs/checkouts/readthedocs.org/user_builds/pybel/envs/latest/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-tqq52w8w/readline/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-t40s46a3-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/docs/checkouts/readthedocs.org/user_builds/pybel/envs/latest/include/site/python3.4/readline:
    running install
    running build
    running build_ext
    building 'readline' extension
    creating build
    creating build/temp.linux-x86_64-3.4
    creating build/temp.linux-x86_64-3.4/Modules
    creating build/temp.linux-x86_64-3.4/Modules/3.x
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -fPIC -DHAVE_RL_CALLBACK -DHAVE_RL_CATCH_SIGNAL -DHAVE_RL_COMPLETION_APPEND_CHARACTER -DHAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK -DHAVE_RL_COMPLETION_MATCHES -DHAVE_RL_COMPLETION_SUPPRESS_APPEND -DHAVE_RL_PRE_INPUT_HOOK -I. -I/usr/include/python3.4m -I/home/docs/checkouts/readthedocs.org/user_builds/pybel/envs/latest/include/python3.4m -c Modules/3.x/readline.c -o build/temp.linux-x86_64-3.4/Modules/3.x/readline.o -Wno-strict-prototypes
    Modules/3.x/readline.c: In function ‘PyInit_readline’:
    Modules/3.x/readline.c:1179:34: warning: assignment from incompatible pointer type [enabled by default]
         PyOS_ReadlineFunctionPointer = call_readline;
                                      ^
    creating build/lib.linux-x86_64-3.4
    x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 build/temp.linux-x86_64-3.4/Modules/3.x/readline.o readline/libreadline.a readline/libhistory.a -lncurses -o build/lib.linux-x86_64-3.4/readline.cpython-34m.so
    /usr/bin/ld: cannot find -lncurses
    collect2: error: ld returned 1 exit status
    error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

    ----------------------------------------
Command "/home/docs/checkouts/readthedocs.org/user_builds/pybel/envs/latest/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-tqq52w8w/readline/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-t40s46a3-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/docs/checkouts/readthedocs.org/user_builds/pybel/envs/latest/include/site/python3.4/readline" failed with error code 1 in /tmp/pip-build-tqq52w8w/readline/
You are using pip version 8.1.2, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

I believe the solution to this issue would be to install the readline C library on the server. While the notes from the RTD site said support is limited and would generally be unwilling to add C extension support, I believe readline is a common enough dependency (like those for numpy, scipy, and pandas) that many projects would benefit from its inclusion.

@cthoyt I'm not quite sure either - I got stuck on this point.
I think a more stable solution would be perhaps to allow RTD to ignore certain modules from the dependencies. That way you can maintain them there for normal installations but allow RTD to ignore them. Would something like that work?


Trailing spaces at the end of the logic app workflow action name don't get trimmed.

Describe the Bug with repro steps

Open any standard logic app's workflow designer.
Add or rename any action and add an empty space at the end of the action name
Save the workflow.
Check the action name that is saved in code view or designer view.

The action name is being saved with a trailing space, which causes significant issues during the automated testing of our logic apps. Testers rely on the displayed name in the designer and use the same name in automated tests. However, due to the trailing space left by the logic app developers, the tests frequently fail.
During the development process, we can take precautions to avoid leaving trailing spaces behind. But it will be cool if the logic app itself automatically remove it upon saving the workflow.

What type of Logic App Is this happening in?
Standard (Portal)
Are you using Preview Designer or GA Designer
Generally Available
Did you refer to the TSG before filing this issue? https://aka.ms/lauxtsg
Yes
Workflow JSON
No response
Screenshots or Videos

Automated test example

Browser
Microsoft Edge
Additional context
No response
AB#24434608

Designer will honor every character entered by user in the action name we replace space with underscore because of runtime behavior, we won't try to trim the values without user permission since it may be intentional by some other user. Please try to update your automation code to correctly pick the action names from definition for it to work.
Closing this issue as it won't be fixed.


Wrong repository language

Hi,
My repository (https://github.com/xLs51/Twemoji-Picker) is supposed to be tagged as JavaScript but it looks like my js/ folder is ignored.
Thanks.

Your JavaScript file is detected as generated, probably because of the very long lines.
It's probably better though, since it looks more like a data file ;)

As a jQuery plugin it's a bit weird to get tagged as CSS but yeah I should've put the data in a separated file.
Thanks :)


Wrong paths and ZIP structure

The current database.json has MPD and ZIP paths with an additional date in them. The same is the case for the ZIP file structure:
Current:
https://dash.akamaized.net/WAVE/vectors/avc_sets/12.5_25_50/t1/2022-01-17/stream.mpd
https://dash.akamaized.net/WAVE/vectors/avc_sets/12.5_25_50/t1/2022-01-17/t1.zip
/avc_sets/12.5_25_50/t1/2022-01-17/stream.mpd

Correct:
https://dash.akamaized.net/WAVE/vectors/avc_sets/12.5_25_50/t1/stream.mpd
https://dash.akamaized.net/WAVE/vectors/avc_sets/12.5_25_50/t1.zip
/avc_sets/12.5_25_50/t1/stream.mpd

I think the current strcuture matches what is has been agreed on https://github.com/cta-wave/dpctf-tests/issues/59
"https://dash.akamaized.net/WAVE/vectors/avc_sets/12.5_25_50/t1/stream.mpd" this will cause problem when there muiltple release to same streams.

I agree with @yanj-github .

I think the current strcuture matches what is has been agreed on cta-wave/dpctf-tests#59
"https://dash.akamaized.net/WAVE/vectors/avc_sets/12.5_25_50/t1/stream.mpd" this will cause problem when there muiltple release to same streams.

We agreed to include the dates in the paths in order to be able to upload new versions of the same content. As has been discussed before, the Akamai server doesn't handle updating files very well due to caching.

@FritzHeiden  We already use the CDN URLs with the date in the URL path since months and it is working fine.  This is what changed in the database.json in the last commit (also in screenshot). The position of the date in the URL path is moved which should be fine for us, but the ID (in the example below from avc_sets/12.5_25_50/t1 to avc_sets/12.5_25_50/t1/2022-01-17/) is changed and this causes the issue on our side. We use this ID for creating the filenames.  @rbouqueau can you change ID to the previous structure?

@FritzHeiden We already use the CDN URLs with the date in the URL path since months and it is working fine. This is what changed in the database.json in the last commit (also in screenshot). The position of the date in the URL path is moved which should be fine for us, but the ID (in the example below from avc_sets/12.5_25_50/t1 to avc_sets/12.5_25_50/t1/2022-01-17/) is changed and this causes the issue on our side. We use this ID for creating the filenames. @rbouqueau can you change ID to the previous structure?

moving the date to be after "avc_sets/12.5_25_50" was agreed in the issue referenced above so that updates to "avc_sets/12.5_25_50" are still under ""avc_sets/12.5_25_50".

@jpiesing Louay's request to remove the date from the ID seems reasonable. Any objection on me implementing this?
@jpiesing  Fritz's request to remove the date from the archive is debatable (and above all happens too late since the implementation of #59 is done and external contributors like Eurofins have already submitted content). I understand the rationale though. I'm looking for additional feedback as either me or Fritz will have to do some work anyway.

@jpiesing Louay's request to remove the date from the ID seems reasonable. Any objection on me implementing this?

No. This also means that updated content would be picked up on automatically.

@jpiesing Fritz's request to remove the date from the archive is debatable (and above all happens too late since the implementation of #59 is done and external contributors like Eurofins have already submitted content). I understand the rationale though. I'm looking for additional feedback as either me or Fritz will have to do some work anyway.

Now I'm confused. We made an intentional decision to move the date in the path to the MPD and media segments to the end.

@jpiesing Louay's request to remove the date from the ID seems reasonable. Any objection on me implementing this?

No. This also means that updated content would be picked up on automatically.

@jpiesing regardless if the ID includes a date or not, we will not use this date in the filename of the generated test e.g. sequential-track-playback__t1.html.  @rbouqueau  you can then keep the date in the ID and we update the generate script to only consider the content name e.g. t1 in the case of sequential-track-playback__t1.html.

@jpiesing Fritz's request to remove the date from the archive is debatable (and above all happens too late since the implementation of #59 is done and external contributors like Eurofins have already submitted content). I understand the rationale though. I'm looking for additional feedback as either me or Fritz will have to do some work anyway.

Now I'm confused. We made an intentional decision to move the date in the path to the MPD and media segments to the end.

@jpiesing  @rbouqueau  the structure is fine for us no need to change anything on your side and this agree in issue https://github.com/cta-wave/dpctf-tests/issues/59.

Ok, closing then.

Where is the structure documented? It seems like this debate should be resolved by, “Let’s review the spec for ID strings.”
Mike Bergman
Consumer Technology Association, producer of CES®
d: +1(703) 907-4366
m: +1(609) 865-4402
From: Louay Bassbouss @.>
Sent: Thursday, February 17, 2022 5:17 AM
To: cta-wave/Test-Content @.>
Cc: Subscribed @.***>
Subject: Re: [cta-wave/Test-Content] Wrong paths and ZIP structure (Issue #30)
@jpiesinghttps://github.com/jpiesing Louay's request to remove the date from the ID seems reasonable. Any objection on me implementing this?
No. This also means that updated content would be picked up on automatically.
@jpiesinghttps://github.com/jpiesing regardless if the ID includes a date or not, we will not use this date in the filename of the generated test e.g. sequential-track-playback__t1.html. @rbouqueauhttps://github.com/rbouqueau you can then keep the date in the ID and we update the generate script to only consider the content name e.g. t1 in the case of sequential-track-playback__t1.html.
@jpiesinghttps://github.com/jpiesing Fritz's request to remove the date from the archive is debatable (and above all happens too late since the implementation of #59 is done and external contributors like Eurofins have already submitted content). I understand the rationale though. I'm looking for additional feedback as either me or Fritz will have to do some work anyway.
Now I'm confused. We made an intentional decision to move the date in the path to the MPD and media segments to the end.
@jpiesinghttps://github.com/jpiesing @rbouqueauhttps://github.com/rbouqueau the structure is fine for us no need to change anything on your side and this agree in issue cta-wave/dpctf-tests#59https://github.com/cta-wave/dpctf-tests/issues/59.
—
Reply to this email directly, view it on GitHubhttps://github.com/cta-wave/Test-Content/issues/30#issuecomment-1042787655, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AFLKEDFQBLFMM4OTD7UVBEDU3TDKBANCNFSM5OPFHBXA.
Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you are subscribed to this thread.Message ID<EMAIL_ADDRESS>Disclaimer
The information contained in this communication from the sender is confidential. It is intended solely for use by the recipient and others authorized to receive it. If you are not the recipient, you are hereby notified that any disclosure, copying, distribution or taking action in relation of the contents of this information is strictly prohibited and may be unlawful.
This email has been scanned for viruses and malware, and may have been automatically archived by Mimecast Ltd, an innovator in Software as a Service (SaaS) for business. Providing a safer and more useful place for your human generated data. Specializing in; Security, archiving and compliance. To find out more visit the Mimecast website.

I'm not the right person to answer that. @haudiobe and @jpiesing, we need to keep documenting these details, is the DPCTF spec Annex A (test content annotations and related details) the correct place?


[nfs-provisioner] Add error check for endpoints list when validating …

Currently endpoints listing failure is marked as invalid service, which may be confusing when tracking problem.
Return the endpoints listing err as soon as it is captured.

/assign @jsafrane

/lgtm
/approve
Thanks, apologies for the months-long delay in review for a nice and simple fix.


Revert "Use cargo's sparse protocol"

This reverts commit ed42b2926f0317056aa65ce802964191e37fe5f5.
The sparse protocol is the default in Rust 1.70, so we can just leave it
to defaults across all our CI-tested versions.

bors r+


[BUG]  MapVolume.SetUpDevice failed for volume ... no such device or address

Describe the bug
While redeploying as Statefulset, the first Pod is unable to attach the volume with the following error message:
0s          Warning   FailedMapVolume    pod/aerospike-0         MapVolume.SetUpDevice failed for volume "pvc-e9e4a78d-82b5-4fdf-9e1b-c3af35b25250" : rpc error: code = Internal desc = failed to create file /var/lib/kubelet/plugins/kubernetes.io/csi/volumeDevices/staging/pvc-e9e4a78d-82b5-4fdf-9e1b-c3af35b25250/pvc-e9e4a78d-82b5-4fdf-9e1b-c3af35b25250: open /var/lib/kubelet/plugins/kubernetes.io/csi/volumeDevices/staging/pvc-e9e4a78d-82b5-4fdf-9e1b-c3af35b25250/pvc-e9e4a78d-82b5-4fdf-9e1b-c3af35b25250: no such device or address
The Volumes are in attached stage and is not showing any errors
To Reproduce

Expected behavior

Support bundle for troubleshooting

Environment
KubeAdm 1.27

Longhorn version: 1.60
Impacted volume (PV): pvc-e9e4a78d-82b5-4fdf-9e1b-c3af35b25250
Installation method (e.g. Rancher Catalog App/Helm/Kubectl): Helm
Kubernetes distro (e.g. RKE/K3s/EKS/OpenShift) and version: KubeAdm

Number of control plane nodes in the cluster:3
Number of worker nodes in the cluster:3

Node config

OS type and version: Ubuntu 22.04
Kernel version: 5.15.0-119
CPU per node: 2/4
Memory per node: 8/16GB
Disk type (e.g. SSD/NVMe/HDD): SSD
Network bandwidth between the nodes (Gbps): 100G

Underlying Infrastructure (e.g. on AWS/GCE, EKS/GKE, VMWare/KVM, Baremetal): VMWare
Number of Longhorn volumes in the cluster: Around 50

Additional context

Workaround and Mitigation

Is it a block volume mode PVC?

I... think I might be running into a similar problem?
Dynamically provisioned volume on block-mode storage using the v2 engine.
 MapVolume.MapPodDevice failed for volume "pvc-e53cfc8c-fdf5-4588-b212-f77856e7581c" : rpc error: code = Internal desc = failed to bind mount "/var/lib/kubelet/plugins/kubernetes.io/csi/volumeDevices/staging/pvc-e53cfc8c-fdf5-4588-b212-f77856e7581c/pvc-e53cfc8c-fdf5-4588-b212-f77856e7581c" at "/var/lib/kubelet/plugins/kubernetes.io/csi/volumeDevices/publish/pvc-e53cfc8c-fdf5-4588-b212-f77856e7581c/284dfa73-7bc7-4833-ac96-43275795e289": mount failed: exit status 32 Mounting command: mount Mounting arguments: -o bind /var/lib/kubelet/plugins/kubernetes.io/csi/volumeDevices/staging/pvc-e53cfc8c-fdf5-4588-b212-f77856e7581c/pvc-e53cfc8c-fdf5-4588-b212-f77856e7581c /var/lib/kubelet/plugins/kubernetes.io/csi/volumeDevices/publish/pvc-e53cfc8c-fdf5-4588-b212-f77856e7581c/284dfa73-7bc7-4833-ac96-43275795e289 Output: mount: /var/lib/kubelet/plugins/kubernetes.io/csi/volumeDevices/publish/pvc-e53cfc8c-fdf5-4588-b212-f77856e7581c/284dfa73-7bc7-4833-ac96-43275795e289: special device /var/lib/kubelet/plugins/kubernetes.io/csi/volumeDevices/staging/pvc-e53cfc8c-fdf5-4588-b212-f77856e7581c/pvc-e53cfc8c-fdf5-4588-b212-f77856e7581c does not exist. dmesg(1) may have more information after failed mount system call.

Restarting the node didn't help.

@phoenix-frozen Could you provide a support bundle and provide more information for your case?

@phoenix-frozen Could you provide a support bundle and provide more information for your case?

Support bundle, I cannot -- I just had to tear down the cluster and am currently rebuilding it.
What kind of information do you need? Happy to describe whatever you'd like; disk setup, cluster components, other services in the cluster, volume information...

Is it possibly related to https://github.com/longhorn/longhorn/issues/8009 or benefit from it? @derekbit @PhanLe1010

Happening again on my freshly installed cluster.
#8009 does not appear to be relevant. This happened on a node that took an outage, and my problem is happening on a fresh cluster with a newly-instantiated VM.
I am currently generating a support bundle.

I... guess the support bundle has been generated?

I... guess the support bundle has been generated?

Can you upload it here?

I... guess the support bundle has been generated?

Can you upload it here?

I'd love to, but... I didn't get an opportunity to download it anywhere. The modal on the webui just disappeared. Where am I supposed to find it?

I... guess the support bundle has been generated?

Can you upload it here?

I'd love to, but... I didn't get an opportunity to download it anywhere. The modal on the webui just disappeared. Where am I supposed to find it?

Can try this https://longhorn.io/kb/troubleshooting-create-support-bundle-with-curl/

Oh, sorry, I have it after all. It's also 700MiB in size, so I can't upload it here.

Oh, sorry, I have it after all. It's also 700MiB in size, so I can't upload it here.

Can upload it to somewhere and share the link

https://drive.google.com/file/d/1J3Ja-q26WCR7jV06vwBSl-DGFUaYDil5/view?usp=drive_link

...

...

@phoenix-frozen This is a private share link.


1.48 >>> 1.49

1.48 worked without problems, but since 1.49 the songs aren't scrobbled or only partly scrobbled. I've downloaded many times the older version, but Google update the extension after about few hours again automatically.

I just tried it on several sites and had no issues.  What website is not working for you?  You can also get more info by following this guide: https://github.com/david-sabata/web-scrobbler/wiki/How-to-debug-the-extension

I'm using XBOX Music, Bandcamp and YouTube.

What exactly are the symptoms?
Can you post logs? https://github.com/david-sabata/web-scrobbler/wiki/How-to-debug-the-extension

https://drive.google.com/file/d/0B2FXK0rhSzpAT1h3SlNodHhzSlE/view?usp=sharing

Microsoft rebrands Xbox Music to Groove and Grove won't be scrobbled.

related #681 and #677

Alright, I'll close this. @laurencebarnes505 please check if the issue persists on version 1.51 and if so, reopen this issue and post some more info.


Asking Alexa to increase / decrease

Hi!
Is there anyway to get home bridge to work with these commands after a "on" command?
The problem as I see it is that homebridge needs to be told the level of the device just turned on as it may have changed since the last "set" command homebridge issued?
Maybe add some additional boxes for the on / off URLs  to query (in my case) domoticz and get the current value?
This is all so I can control my home made Wi-Fi thermostat by asking Alexa to increase by 1 rather than asking her to set to a specific Temperature 😀

Is your thermostat a homebrew creation or by a thermostat company?
How are you controlling it?  API, RPi, Alexa skill?
Based on what's available to you, can you get the current setting when your control occurs?

Hi!
I made it myself using a sonoff (based on esp8266) and wrote a new espeasy plugin to control the relay based on time and DHT22 readings..
As such I wrote it to accept the usual domoticz/espeasy http json commands..

The ha-bridge does have update state ability.  It may be a silly loop, but you could have the ha-bridge first send a command to domoticz that fires both an update ha-bridge command, that also fires another command back to the ha-bridge that fires your current domoticz command to change the thermostat.  If that all makes sense?
It requires an http PUT, see here https://github.com/bwssytems/ha-bridge/blob/master/README.md#update-bridge-internal-light-state

Hi AF,
That command looks like what I need :)
Just got to figure out how to actually use it lol ...
http://<IP_ADDRESS>:8080/api/user/lights/20/bridgeupdatestate={"on":true,"bri":25}

@cherowley A couple of things to help you. To set the values for the call it is an HTTP PUT with the address http:///api//lights//bridgeupdatestate with a json body of '{"on":true,"bri":<your value between 0 and 254>}', the 254 is the high value and think of that as the 100 value when working with other things, just divide by 254.
Also, if you want to send multiple commands within one 'On' URL, use the multi-command feature: https://github.com/bwssytems/ha-bridge/blob/master/README.md#multiple-call-construct

Hmm, Ok So I tried this in my browser but no good :(
http://<IP_ADDRESS>:8080/api/lights/bridgeupdatestate.htm?{"on":false,"bri":20}
Response in chrome was:
HTTP ERROR: 404
Problem accessing /api/ights/bridgeupdatestate.htm. Reason:
Not Found

You cannot use a browser as all it does is HTTP GET when getting to a site. You will need a tool that does HTTP PUT and also you need to follwo the construct of Rest API: http://<ha-bridge ip and port>/api/<your username>/lights/<your light id>/bridgeupdatestate

Just a quick update, I'm still looking into this but haven't had time recently so please keep open :)

Any info on this?

Not as yet, still trying to figure out the exact command!
Using the chrome rest console
http://<IP_ADDRESS>:8080/api/che/lights/20/ - this is the target request URI
{"on":false,"bri":100} - this is the request body raw payload
But this is the response:

Error 404

HTTP ERROR: 404
Problem accessing /api/che/lights/20/. Reason:
    Not Found
Powered by Jetty:// 9.3.z-SNAPSHOT

You need to call POST http://<IP_ADDRESS>:8080/api/che/lights/20/state

That works many thanks :)
Can you confirm how the "remembering" of brightness level works in HA bridge please?
Does it internally remember the last brightness set between on/offs?
So If I say
Alexa set light to 20 percent
alexa turn light off
alexa turn light on
alexa increase light by 3
will the light be on at level 23 ?

Yes, the ha-bridge remembers the state between calls. I believe Alexa uses just dim and bright for the commands and the ha-bridge will act accordingly.

Ah this doesn't quite work.
Asking Alexa to increase light only works after you have first asked Alexa to set light to level.
So if you
Alexa turn on light
Alexa increase light
Doesn't work but
Alexa turn on light
Alexa increase light
Alexa decrease light
Will increase it - seems to be one command behind or something?

Unfortunately, the bridge does not know the state of the device until it is primed. There is a command to prime it, but you still have to know when to do it and what to set it to.

Ah but if  the bridge is storing the level then it is primed?
Store the last used level then it will work?
Once a set command has been done once then all further commands should work until the bridge is restarted and the variable holding the last level is initiated?

When the bridge first starts, all devices are off and have 0 setting for brightness.
Turning a device "on" sets it state to on and the brightness at full (even if the device being activated has some previous memory of a level that is not full)
So, priming involves setting the device to a specific setting that you can work from... So, the on command should set the device to on and at it's fullest value. Then subsequent commands will work.

That all makes sense but doesn't seem to quite work for me, after turning on the first increase or decrease command does nothing.
The system will have already been primed by previous set, increase and decrease commands before the off command.
I will try putting the dim URL into the on URL..

OK that works as you said :)
Could the design be changed so that the on command goes to the last level instead of 100? It would be WAY more useful not to have lights blasting at 100% when turning on but coming back on at the last level 😀

Something to look at. Just need to know when it is first called to prime it.

Would be great as I can then use it to control the heating, at present every time I ask it to turn on the heating would go into the tropics lol 😂

Since I use the ha-bridge to control my X10 equipment.  My CM11A controller only tracks on/off and if was dimmed, but not dim level.  Being able to use or have access to last on bright level would be great.

I looked at the code again, and the only time it sets the bri  value to 254 automatically, is when on is called and the value is 0; This should be working properly in the current versions.


Add some more awakening prefixes

Note that we can't have any nicknames that start with - due to #412; this is relevant for -50 and -rcv, -atk, -hp awakenings

Note that we can't have any nicknames that start with - due to #412; this is relevant for -50 and -rcv, -atk, -hp awakenings


ErrorCode:AuthorizationPermissionMismatch when using get_blob_tags() method.

I upgraded azure-storage-blob because I need to use the get_blob_tags() method, but unsurprisingly something went wrong.
$ pip freeze | grep 'azure-storage-blob'
azure-storage-blob==12.4.0

Here's how I create the BlobClient:
from azure.storage.blob import BlobClient
blob = BlobClient(...)

this command:
blob.get_blob_properties()

works well (as it used to), but this:
blob.get_blob_tags()

throws:
File "C:\Users\paolo\AppData\Local\Programs\Python\Python36\lib\site-packages\azure\storage\blob_shared\response_handlers.py", line 147, in process_storage_error
raise error
azure.core.exceptions.HttpResponseError: This request is not authorized to perform this operation using this permission.
RequestId:xxx
Time:2021-11-09T15:35:07.7037425Z
ErrorCode:AuthorizationPermissionMismatch
Error:None

Thanks for the feedback, we’ll investigate asap.

Can you please look at https://docs.microsoft.com/en-us/azure/storage/blobs/storage-manage-find-blobs?tabs=azure-portal#setting-blob-index-tags
Its not clear which auth type you are using but Tags requires special permissions if you are using SAS.

@LazzariPaolo let us know if your issue is resolved.

Apologies for the late response.
This is how I'm building the BlobClient object:
signature_container = generate_container_sas(
            account_name=subscription_client.account_name,  # name of storage account
            account_key=storage_account_key,  # storage account key
            container_name=container_name,  # name of container
            permission=AccountSasPermissions(read=True, list=True),
            expiry=expiry,  # VHD sas valid for 7 days.
            start=start,  # Set start date to yesterday.
        )

source_blob = BlobClient(
            subscription_client.url,
            container_name=path_vhd,
            blob_name=vhd_name,
            credential=signature_container,
)

which permissions do I need to add to the AccountSasPermissions call? @amishra-dev

Ok, by looking at this documentation page:
https://docs.microsoft.com/en-us/python/api/azure-storage-blob/azure.storage.blob.accountsaspermissions?view=azure-python
I can see that there is an explicit permission for tags.
The following works:
signature_container = generate_container_sas(
            account_name=subscription_client.account_name,  # name of storage account
            account_key=storage_account_key,  # storage account key
            container_name=container_name,  # name of container
            permission=AccountSasPermissions(read=True, list=True, tag=True),
            expiry=expiry,  # VHD sas valid for 7 days.
            start=start,  # Set start date to yesterday.
        )

source_blob = BlobClient(
            subscription_client.url,
            container_name=path_vhd,
            blob_name=vhd_name,
            credential=signature_container,
)

a bit of a weird decision to have tag as a standalone permission. I assumed, and I imagine others will too, that it would fall under list (for getting them) and under create (for crating them)


reproducible qemu_x86_64 SMP failures

#29618 has a new kernel work queue API that works very nicely, but intermittently fails its tests with SMP enabled.  To narrow down the problem https://github.com/pabigot/zephyr/commits/nordic/20201201a has a replacement hello_world sample that simulates the basic functionality: work items are placed on a queue which is monitored by a thread that removes the items, does something with them, and marks them as complete.
The main thread repeatedly submit items and spins until the completion signal is detected.
When run under qemu_x86_64 the application fails with no diagnostics after a varying number of iterations.  Rarely, the failure exhibits as a deadlock (the program stops displaying but does not terminate).
This behavior can be observed on master, and when run with (rebased) #29668 that fixes potential problems with thread resumption.
The code is simple enough it seems correct, and the behavior is not within the realm of expectation.  This may be related to  #28105 as failures in the real test case sometimes exhibited the same "Attempt to resume un-suspended thread object" diagnostic.

https://github.com/pabigot/zephyr/commits/pr/29668 is on the rebased #29668 and adds a commit that changes the volatile int used to communicate work state to an atomic_t.  This has no visible effect on the failures.  (A hypothesis was that the atomic instructions do not work correctly between processors in qemu_x86_64, regardless of GCC's sequential consistency promise.  That has not been ruled out.)

Are you sure this isn't just a race in the test?  I see two threads modifying the same flags bitfield using standard C syntax without locking.  Those operations aren't atomic.  Can you repeat using either a spinlock around the bit operations or the atomic bit operations API and still see the problem?

A version with atomics is at https://github.com/pabigot/zephyr/commits/pr/29668 and has no affect.  In any case, any race condition doesn't explain why the application aborts.

FYI: This appears to be a qemu issue: when the pr/29668 version is run on up-squared it works just fine.

This is actually the same as #28105.
If you enable CONFIG_TEST=y, you can see the exception print out. So closing this one as a duplicate to #28105.

This is actually the same as #28105.
If you enable CONFIG_TEST=y, you can see the exception print out. So closing this one as a duplicate to #28105.


Use std::variant for DataContainer class.

[x] Use a type safe union like std::variant or std::any in inexor::entity_system::DataContainer class.

This will replace the overhead of managing class members of different types as data containers.

[x] Implement exception handling for type casting in inexor::entity_system::DataContainer.

The ExperimentalDataContainer class will be discarded due to performances problems.
It's just so much slower than the DataContaner class.

The amound of memory saved by std::any is fully negligible compared with the performance loss!

Assigned to @Fohlen.

@Fohlen made the suggestion to use std::variant for now since its easier to use it saves us time.
We can work on improving the performance later on if neccesary.
@aschaeffer already pointed out that finding a good solution for multi type data containers is a long discussion because there is no perfect solution.

Also we will remove unneccesary data types.
The entity-system should support the following data types for now:

Integer
Bool
Float
Double
std::string


Passwords stored in plain text for employees and lots of duplicate employee info

Employees' password are currently stored in plain text in the database. They should not be for security reasons. Further, lots of information is stored two or three times for employees: things like name and address should only be stored once, in the Contacts table.

Resolved in pull request #52


proposal: reflect: rename ArenaNew as NewFrom

CL 423361 adds reflect.ArenaNew to allocate a new Value from an arena.
As a form of bikeshedding, I think the "Arena" prefix is unfortunate since it means related functionality will not sort well in godoc. Perhaps we should establish a convention for a suffix that indicates the use of an *arena.Arena?
I propose using From as a suffix to indicate that the allocation was made from an allocator:
func New(Type) Value
func NewAt(Type, unsafe.Pointer)
func NewFrom(Type, *arena.Arena) Value

as it would coexist nicely with the New function with an At suffix.
You can imagine other related functionality added in the future:
MakeSlice(Type, int, int) Value
MakeSliceFrom(Type, int, int, *arena.Arena) Value

MakeMap(Type) Value
MakeMapFrom(Type, *arena.Arena) Value

MakeMapWithSize(Type, int) Value
MakeMapWithSizeFrom(Type, int, *arena.Arena) Value

MakeChan(Type, int) Value
MakeChanFrom(Type, int, *arena.Arena) Value

MakeSliceFrom needs to allocate the slice header (not just the backing array) somewhere. I believe the correct behavior is to also allocate the header from the arena.
With the acceptance of #48000, we could also add:
func (Value) Grow(int)
func (Value) GrowFrom(int, *arena.Arena)

Notably missing from the list is the arena variants of Append and AppendSlice. If we put the arena.Arena argument at the end, it would not work well with Append, which has a variadic argument. Also, the From suffix seems ambiguous whether it is referring to the arena or the source slice. I think this omission is okay since the implementations for those two functions are relatively easy to implement yourself given the existence of Value.GrowFrom.
Other considerations: Having these functions take in an *arena.Arena make it such that supporting a different allocator in the future would require expanding the API surface again. Is there an interface we could accept? Would there ever be a different allocator implementation?
\cc @danscales @mknyszek @cherrymui

I'm personally not a huge fan of "From" because it feels too generic of a namespace to take for arenas, especially given this scenario:

Is there an interface we could accept? Would there ever be a different allocator implementation?

Such an interface would only ever come after multiple such allocators exist, I think. I also don't think there are any other ideas currently being seriously considered for memory allocators.
What about a suffix like "InArena"? It's a bit verbose, but it gets the point across.

Alternatively, we could try and go for an allocator interface:
type Allocator interface {
    New(p any)                 // where p is a **T
    MakeSlice(p any, int, int) // where p is a *[]T
    MakeMap(p any, int)        // where p is a *map[K]V
    MakeChan(p any, int)       // where p is a *chan T
}

However, I'm not sure how much performance cost will be lost going through a virtual method call in the interface.

Actually, if we declared those methods on arena.Arena, I'm not sure we need to expand the "reflect" API surface at all.

Given that #51317 has not been accepted and this API is not in any published Go release, nor is it planned to be any time soon, I don't think we need to fine-tune the names of the symbols the experiment defines. Closing this as a duplicate of #51317.

I understood that this issue was about an extension to the arena proposal, rather than an extension to the GOEXPERIMENT. Arguably this could be posted on the original issue, but that issue is still locked, I think. (I'm not sure if @dsnet is able to reply there.)


Catalog: Integer field deletes itself after 11th digit

Describe the bug
While typing into "ID number" which is an integer field, once you type the 11th number the field auto-deletes all the contents.
Component
SDC gallery app
To Reproduce
Steps to reproduce the behavior:

Select "Text field" in catalog app
Select "ID number" field
Enter an 11 digit number

Expected behavior
Field does not delete itself.
Screenshots
https://user-images.githubusercontent.com/7772901/201771093-4cbd5ca1-d353-482b-a687-06c4d6e8a194.mp4
Smartphone (please complete the following information):

Device: Pixel 4

Additional context
Different than #1594 - the auto-delete behavior is new, in 1594 the text just scrolls so it's not visible.

This needs to be fixed first, in order to fix https://github.com/google/android-fhir/issues/1594

The reason this happens because integer type has an upper limit of 2,147,483,647 (10 digits)
https://build.fhir.org/datatypes.html#integer

@shelaghm what's your preferred behavior for this case?
Show error when limit is exceeded and/or show the max integer value instead or something else.

I will be on exam leave for some weeks, will continue the work after I come back.
@f-odhiambo @jingtang10

@FikriMilano My suggestion is to show an error message such as Maximum 11 numbers and adjust the error message based on the maximum # allowed. This let's people know how to fix the issue.
I'm not sure what the best term to use is and if number is the right one to use in this context, but I'm assuming integer and digit are less familiar terms for frontline health workers? If anyone has thoughts on this, please add a comment.
I also recommend using EntryFormat to display '11 digits' so people know when they are completing the form how many numbers to enter.

@shelaghm The actual issue isn't the number of digits but the value; any number larger than 2,147,483,647 will break things, so a 10 digit number like 2,147,483,648 can also fail. It was a coincidence that the test case 1,234,567,890 is smaller than the magic number.
I'm not sure what a good error message would be though, "value must be smaller than 2,147,483,648"  is a little awkward.

@williamito @FikriMilano Ohhh, got it. Thanks for clarifying. In that case I think we should explain it as number must be smaller than 2,147,483,648 so that it is more clear what the constraints are.

Thanks! @shelaghm @williamito
Resuming on this

Hi @shelaghm, here's a demo of the solution.
Please check if this behavior is to your liking, just to make sure if we are on the same page.
Demo Integer Limit.webm

@FikriMilano Looks great, one small change is to use a comma , instead of a period . for the number 2,147,483,647. Thanks!

@FikriMilano Looks great, one small change is to use a comma , instead of a period . for the number 2,147,483,647. Thanks!

@shelaghm - commar or period is a localization issue - we need to use the correct system api to format the number in the correct locale.
for example, 2,147,483,647 makes sense to me, but I don't think it makes sense in mainland Europe, I think they do 2.147.483.647.

@jingtang10 @FikriMilano
Good point. Did not realize this is a localization issue. Next steps sound good to me 👍

@FikriMilano Are you working on this?


[[RegisteredIntersectionObservers]] setup is broken

This might be related to #35.
[[RegisteredIntersectionObservers]] is defined on Document and used in https://rawgit.com/slightlyoff/IntersectionObserver/master/index.html#3-3-event-loop, but nobody ever adds to it or removes from it.
In contrast, another [[RegisteredIntersectionObservers]] is defined on Element and modified by IntersectionObserver's methods, but nobody ever reads from it.
Again it might be worth consulting what Mutation Observers do here.

Note: I am pretty sure there is no need to do the compound microtask business that mutation observer does; queuing a task is fine. But consulting the data structure and where things are stored seems prudent.

IntersectionObserver intentionally doesn't want to mimic MutationObserver's microtasks. One of the intentions of IntersectionObserver is that it can run asynchronously and allow the user agent to deliver the events at a time less likely to affect the page.
I can drop the [[RegisteredIntersectionObservers]] is from Document if I say Document has to iterate over all of its Elements, and for each element, iterate over the  [[RegisteredIntersectionObservers]]. I think it's probably going to work out better from an implementation standpoint to have the shortcut that Document tracks registered observers too.. does it make sense to update the processing steps to include keeping that up to date, or let each UA define it for themselves?

How MutationObserver does it is store a list of MutationObserver objects on each unit of related similar-origin browsing contexts. The mutation records are then stored on the MutationObserver objects themselves, and the event loop iterates over all MutationObserver objects and dispatches the records. Note how the queue is also kept individually on each MutationObserver, instead of using [[PendingIntersectionObserverCallbacks]] on document. A similar setup seems workable here, and I believe observably equivalent to your current setup.
But yeah, if that's not preferable, then iterating over all elements seems reasonable. Any implementation-specific caches don't need to be specced if they are not observable.
/cc @annevk in case he has any opinions.

I think it would be better not to have non-observable optimization paths in the specification other than non-normative notes.


MsalInterceptor

Core Library
MSAL.js (@azure/msal-browser)
Core Library Version
3.0.2
Wrapper Library
MSAL Angular (@azure/msal-angular)
Wrapper Library Version
3.0.2
Public or Confidential Client?
Public
Description
MSAL interceptor doesnt function correctly when used in conjuction with an app route data resolver AND the browser is subsequently refreshed
Error Message
No errors shows anywhere
Msal Logs
No response
MSAL Configuration
{
      clientId: environment.msalConfig.auth.clientId,
      authority: environment.msalConfig.auth.authority,
      knownAuthorities: environment.msalConfig.auth.knownAuthorities,
      redirectUri: '/',
      postLogoutRedirectUri: '/auth/logout',
    },
    cache: {
      cacheLocation: BrowserCacheLocation.SessionStorage,
    },
    system: {
      allowNativeBroker: false, // Disables WAM Broker
      loggerOptions: {
        loggerCallback,
        logLevel: LogLevel.Error,
        piiLoggingEnabled: false,
      },
    },
  });

Relevant Code Snippets
{
      provide: HTTP_INTERCEPTORS,
      useClass: MsalInterceptor,
      multi: true,
    },

together with

{
    path: 'app',
    component: AdminLayoutComponent,
    resolve: {
      initialData: InitialDataResolver,
    },

with the data resolver going to

  resolve(): Observable<any> {
    return this._appConfigService.getAppConfig();
  }

with app config a service

Reproduction Steps
Add data resolver to app routes
Expected Behavior
browser refresh should function as expected
Identity Provider
Azure AD / MSA
Browsers Affected (Select all that apply)
Chrome, Firefox, Edge, Safari
Regression
No response
Source
External (Customer)

Can you please expand on "MSAL interceptor doesnt function correctly "? What is the behavior you see versus the behavior you expect to see?

@tnorling I'm under a similar situation. I have an app that depending on user permissions loads a different amount of remote modules (we're using NX in this case). The way we achieve this is by calling a remote endpoint that lists all the loadable modules under APP_INITIALIZER, and then serve that to the angular router so it knows what urls it has available.
That request requires of authentication, and if it fails, the route will be handled as if it didn't exist. To add the token I'm using the MsalInterceptor (in my case through the configuration provider), but when the http request should happen, the request never completes and a message of
 []<EMAIL_ADDRESS>: Error - Interceptor - acquireTokenSilent rejected with error. Invoking interaction to resolve.

appears in the console.
The issue seems to be gone if the url that the user is loading has the MsalGuard as canActivate (the expected behaviour or following interactionType happens)-


Add vips

Link
https://github.com/naqvis/crystal-vips
Checklist

[x] - Shard is at least 30 days old.
[x] - Shard has CI implemented.
[x] - Shard has daily/weekly periodic builds (ideally with Crystal latest and nightly).

Should the name be CrystalVips rather than vips?

@kojix2 ah yes, let's make it consistent please 👍

@kojix2 please feel free to re-open if you still want to merge this.


Look into test debugging stability/configuration

Use python debugger in testing. (https://github.com/microsoft/vscode-python-debugger/issues/112)

Verification steps:

Install python and python debugger extension
Create a simple unittest
Add launch.json config for testing, like this one   {
       "name": "Python: Debug Tests",
       "type": "debugpy",
       "request": "launch",
       "program": "${file}",
       "purpose": ["debug-test"],
       "console": "integratedTerminal",
       "justMyCode": true,
       "env": {
         "PYTHONPATH": "${workspaceFolder}"
       }
   }

Make sure that the test is using the config that you have

In my workspace, I have tests/test_hello.py with the following
import unittest

def hello():
	return 'Here is my test file'

class TestHello(unittest.TestCase):
	def test_hello(self):
		self.assertEqual(hello(), 'Here is my test file')

if __name__ == '__main__':
	unittest.main()

In .vscode/launch.json, I have the following
{
	"name": "Python: Debug Tests",
	"type": "debugpy",
	"request": "launch",
	"program": "${file}",
	"purpose": ["debug-test"],
	"console": "integratedTerminal",
	"justMyCode": true,
	"env": {
	  "PYTHONPATH": "${workspaceFolder}"
	}
}

Nothing happens when I press the "Debug using launch.json" option.

Now, I have tests/test_hello.py with the following
import unittest

def hello():
	return 'Here is my test file'

class TestHello(unittest.TestCase):
	def test_hello(self):
		self.assertEqual(hello(), 'Here is my test file')
		for i in range(5):
			print(i)
			self.assertEqual(i, i)

if __name__ == '__main__':
	unittest.main()

Paula helped me fix my .vscode/launch.json file to the following:
{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Debug Tests",
            "type": "debugpy",
            "request": "launch",
            "program": "${file}",
            "purpose": ["debug-test"],
            "console": "integratedTerminal",
            "justMyCode": true,
            "env": {
              "PYTHONPATH": "${workspaceFolder}"
            }
        }
    ]
}

I was able to verify the issue successfully after that.


[pthreads] remove a double installation of lib

The port installs itself in two different locations, with the second one added manually at the end of the portfile. It  uses unexpected (and identical, without a 'd' postfix for the debug one) file names.
There's no explicit reason why it is needed and this behaviour breaks CMake find_library() and select_library_configurations() functions, so I propose to remove the manual-link copy

Thanks for the PR!
I believe the reason for the multiple names is in order to support users that expect
find_library(PTHREADS_LIB pthreads)

to work in a single-configuration generator context.
If you intend to use select_library_configurations(), you can search for pthreadsVC2 and pthreadsVC2d and it should work fine and not be obstructed by the existance of pthreads.lib. What issue am I missing here?

In the case of this specific library, I think it is reasonable. The idea is to make pthreads available under the name pthreads, because -lpthreads is just so common.
Symlinks would be abstractly better (less disk usage), however due to Win7 issues with symlinks I don't think those are a good idea right now.

ok, understood. I also verified that my problem was solved anyway even without this fix, so closing the PR


adds useAutoAnimate vue composable

useAutoAnimate is a Vue composable that:

Enhances TypeScript experience (v-auto-animate doesn't type-check or autocomplete custom options, but useAutoAnimate does)
Closely matches the React useAutoAnimate API and usage
Doesn't have the (admittedly very small) naming collision risk of v-auto-animate

Example usage can be seen here: https://stackblitz.com/edit/vue-useautoanimate?file=src%2FActualVueApp.vue

@AlexVipond This looks nice — I'm going to merge it as is, but if you're up for it adding a small blurb and example to the vue documentation would be great. If you do, please try to come up with a unique example instead of copying the already existing ones, we're trying to have each example on the page be unique.

Cool, definitely can add docs and examples! Will PR again when ready


Add Signature Expiry

Should be configurable, but mandatory.
Default could be 6 month.

Not yet configurable, but added. I suggest doing the configuration in #30..


one drive link for GQA dataset and GQA pretrained object detector is not working

I cannot find any files in the GQA dataset split link and GQA pretrained object detector OneDrive link.
Can you check please? Thank you.

You can check the GQA200 dataset here https://github.com/jkli1998/DRM/blob/main/DATASET.md.


GroupEffect and SequenceEffect: support parent timing, specifically iteration count

E.g. this should be possible:
new SequenceEffect([
  new KeyframeEffects(target1, keyframes1, {iterations: 2}),
  new KeyframeEffects(target2, keyframes2, {iterations: 2}),
],
{
  iterations: 3
})

Where keyframes1 and keyframes2 would play 6 times each. Per spec:

If an iteration count is specified for the children of a group as well as for the group itself, the effect is as if the iteration count of the group was multiplied with the iteration count of the children.

I'm asking this question now because I'd like to gauge the polyfill feasibility - this appears to be pretty hard to do.

I think you mean 6 times? Yes, that should be possible.

@birtles Yes! Definitely 6 times. I updated the description. How would you approach this? Especially if iterations: 3 becomes iterations: Inifinity? Is it polyfillable in all cases?

@dvoytenko I thought there was a version of the polyfill that did this?
I'm not sure what you're trying to do -- polyfill using the native version or KeyframeEffect or write a JS-only implementation -- but in either case I'd just go about it the way the spec describes: calculate the transformed time of the group using the same time calculations used for KeyframeEffects and then feed that in to each child effect as the inherited time.

The current polyfill doesn't implement parent iterations, at least not for when native Element.animate is available. But I also can't see an easy path to polyfilling it in in this scenario.

If you're trying to polyfill using Element.animate I'd just make a separate Animation with a KeyframeEffect and no target element, let the Animation represent the group, read off its progress values from animation.effect.getComputedTiming().progress, convert them to a transformed time, convert that to a local time for each of the child Animations (by working out what their respective start times should be), then use that to set each child's animation.currentTime accordingly.

@birtles I'm pretty sure this would work for most timing properties, except iterations count. You'd basically have to restart said Animation in the end of each iteration and take a risk of desynchronization. Right?

@dvoytenko you don't need to restart the Animation -- just drive its currentTime. If you want to avoid interrupting playback on the compositor then you could just do a comparison between your calculated currentTime and the actual one and avoid setting it if they match.
That said, I believe Shane and Doug found they could collapse most parent timing onto children with the main exception being things like overlapping timing functions.

Cool. In this case this is just a feature request then. Looks like my concern might be unfounded then.