python312Packages.papis: 0.13 -> 0.14

Papis had a recent minor release, the relevant parts of the 0.14 release
note are

Minimum required Python version bumped to 3.8
(#552).
Moved to pyproject.toml and removed setup.py completely. We use
hatchling as the build
backend.
Removed arxiv2bib in
favor of arxiv.py.
Removed tqdm dependency (using a progress
bar from prompt_toolkit instead).
Added platformdirs
dependency for platform-specific config locations.

I've added dependencies arxiv.py and sphinx-click which are mostly taken
from the upstream flake.
Initially I tried having fetchFromGithub on sphinx-click so in essence
having
diff --git a/pkgs/development/python-modules/sphinx-click/default.nix b/pkgs/development/python-modules/sphinx-click/default.nix
index 587618b5fcb5..6f02207abcf8 100644
--- a/pkgs/development/python-modules/sphinx-click/default.nix
+++ b/pkgs/development/python-modules/sphinx-click/default.nix
@@ -1,16 +1,18 @@
 {
   lib,
   buildPythonPackage,
-  fetchPypi,
+  fetchFromGithub,
   pbr,
 }:
 buildPythonPackage rec {
   pname = "sphinx-click";
   version = "5.1.0";

-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-aBLC22LT+ucaSt2+WooKFsl+tJHzzWP+NLTtfgcjbzM=";
+  src = fetchFromGitHub {
+    owner = "click-contrib";
+    repo = pname;
+    rev = version;
+    hash = "sha256-XDzJjxzHGnMWS/C60hQvfQCX7veMcXklpUjqDcJetM0=";
   };

   propagatedBuildInputs = [ pbr ];

However this fails with
Error parsing
Traceback (most recent call last):
  File "/nix/store/5kg9855711f90m0vczaxdjgd5spzgjy9-python3.12-pbr-6.1.0/lib/python3.12/site-packages/pbr/core.py", line 105, in pbr
    attrs = util.cfg_to_args(path, dist.script_args)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/5kg9855711f90m0vczaxdjgd5spzgjy9-python3.12-pbr-6.1.0/lib/python3.12/site-packages/pbr/util.py", line 272, in cfg_to_args
    pbr.hooks.setup_hook(config)
  File "/nix/store/5kg9855711f90m0vczaxdjgd5spzgjy9-python3.12-pbr-6.1.0/lib/python3.12/site-packages/pbr/hooks/__init__.py", line 25, in setup_hook
    metadata_config.run()
  File "/nix/store/5kg9855711f90m0vczaxdjgd5spzgjy9-python3.12-pbr-6.1.0/lib/python3.12/site-packages/pbr/hooks/base.py", line 27, in run
    self.hook()
  File "/nix/store/5kg9855711f90m0vczaxdjgd5spzgjy9-python3.12-pbr-6.1.0/lib/python3.12/site-packages/pbr/hooks/metadata.py", line 25, in hook
    self.config['version'] = packaging.get_version(
                             ^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/5kg9855711f90m0vczaxdjgd5spzgjy9-python3.12-pbr-6.1.0/lib/python3.12/site-packages/pbr/packaging.py", line 866, in get_version
    raise Exception("Versioning for this project requires either an sdist"
Exception: Versioning for this project requires either an sdist tarball, or access to an upstream git repository. It's also possible that there is a mismatch between the package name in setup.cfg and the argument given to pbr.version.VersionInfo. Project name sphinx-click was given, but was not able to be found.
error in setup command: Error parsing /build/source/setup.cfg: Exception: Versioning for this project requires either an sdist tarball, or access to an upstream git repository. It's also possible that there is a mismatch between the package name in setup.cfg and the argument given to pbr.version.VersionInfo. Project name sphinx-click was given, but was not able to be found.

As far as I can find over
the internet
pbr tries to figure out the version, probably in nix environment it fails to
do so.
Asking this around on matrix room, I was advised to stick by fetchPypi.
Note: First time contributor, comments & feedback highly welcome!
Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Thanks for the feedback @steeleduncan.

no with lib #208242

Done on all three packages mentioned.

refs/tags/${version} is safer should there be a branch with the same name as the tag

Unfortunately there is none 1.
--
octvs

Unfortunately there is none [1]. [1]: https://github.com/lukasschwab/arxiv.py/branches/all

Understood, but if one were to be added in the future it would not be clear what rev would refer to. The derivation could break in the admittedly unlikely case that the branch and the tag were not the same commit.
Specifying refs/tags/... is more precise, and leaves the derivation safe against such a change

Specifying refs/tags/... is more precise, and leaves the derivation safe
against such a change

Oh, I understood this one just now. Checking how github forms download links
for branches and tags, and then skimming over fetchFromGitHub source
clarified 1.
Thanks, fixed!

Since sphinx-click was added via 57e033c, I dropped commit adding it. Also
inspired by it I enabled tests on arxiv package.

  version = "2.1.0";
  pyproject = true;

As far as I understand from arxiv repo, they use setup.py, there is no
pyproject.toml present, should it be still set to true?

disabled = pythonOlder "3.7";

disabled = pythonOlder "3.8";

You can also just remove this line entirely. It is not that useful.

I couldn't find explanation of the behaviour of pythonOlder either through
google or greping through nixpkgs. Therefore wasn't sure if it is <= or
<.

disabled = pythonOlder "3.7";

disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "papis";
repo = pname;

    repo = "papis";

Just to learn it fully: is there a reason to avoid using pname variable
there?
Others have been fixed, thanks a lot for the feedback!

As far as I understand from arxiv repo, they use setup.py, there is no pyproject.toml present, should it be still set to true?

Yes, it should work nonetheless. (Although quite counter intuitive).

I couldn't find explanation of the behaviour of pythonOlder either through google or greping through nixpkgs. Therefore wasn't sure if it is <= or <.

pythonOlder litterally means "if older", so <. "3.11" is not older than "3.11", itself.

Just to learn it fully: is there a reason to avoid using pname variable there?

Yes, it could lead to a broken build if the name of the package is changed. It does not occur often, but this is considered as best practice.
Also, it is better to reply to the change requests directly in their individual message thread.

As far as I understand from arxiv repo, they use setup.py, there is no pyproject.toml present, should it be still set to true?

Yes, it should work nonetheless. (Although quite counter intuitive).

Now it fails to build with
$ nix build .#python3Packages.arxiv
warning: Git tree '/home/oct/git/nixpkgs' is dirty
error: builder for '/nix/store/wam7hlzgi1mcbfmzycbdns3sjzah4l3j-python3.12-arxiv-2.1.0.drv' failed with exit code 1;
       last 25 log lines:
       > writing requirements to arxiv.egg-info/requires.txt
       > writing top-level names to arxiv.egg-info/top_level.txt
       > reading manifest file 'arxiv.egg-info/SOURCES.txt'
       > adding license file 'LICENSE.txt'
       > writing manifest file 'arxiv.egg-info/SOURCES.txt'
       > Copying arxiv.egg-info to build/bdist.linux-x86_64/wheel/./arxiv-2.1.0-py3.12.egg-info
       > running install_scripts
       > creating build/bdist.linux-x86_64/wheel/arxiv-2.1.0.dist-info/WHEEL
       > creating '/build/source/dist/.tmp-51_34jd5/arxiv-2.1.0-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it
       > adding 'arxiv/__init__.py'
       > adding 'arxiv/arxiv.py'
       > adding 'arxiv-2.1.0.dist-info/LICENSE.txt'
       > adding 'arxiv-2.1.0.dist-info/METADATA'
       > adding 'arxiv-2.1.0.dist-info/WHEEL'
       > adding 'arxiv-2.1.0.dist-info/top_level.txt'
       > adding 'arxiv-2.1.0.dist-info/RECORD'
       > removing build/bdist.linux-x86_64/wheel
       > Successfully built arxiv-2.1.0-py3-none-any.whl
       > Finished creating a wheel...
       > Finished executing pypaBuildPhase
       > Running phase: pythonRuntimeDepsCheckHook
       > Executing pythonRuntimeDepsCheck
       > Checking runtime dependencies for arxiv-2.1.0-py3-none-any.whl
       >   - feedparser==6.0.10 not satisfied by version 6.0.11
       >   - requests==2.31.0 not satisfied by version 2.32.3
       For full logs, run 'nix log /nix/store/wam7hlzgi1mcbfmzycbdns3sjzah4l3j-python3.12-arxiv-2.1.0.drv'.

Somehow the ~= clauses on requirements.txt of arxiv 1 does get understood
as == which fails the build. It builds fine without pyproject=true.
Beyond the build failure, can one find the reasoning here maybe?

I couldn't find explanation of the behaviour of pythonOlder either through google or greping through nixpkgs. Therefore wasn't sure if it is <= or <.

pythonOlder litterally means "if older", so <. "3.11" is not older than "3.11", itself.

Thanks, should it rather be removed still?

Just to learn it fully: is there a reason to avoid using pname variable there?

Yes, it could lead to a broken build if the name of the package is changed. It does not occur often, but this is considered as best practice.

That makes sense, thanks for the explanation. Let me know if I should do the
same for the meta.changelog, which also refers back to meta.homepage.
Although I can't imagine a similar scenario for this case.

Somehow the ~= clauses on requirements.txt of arxiv [1] does get understood
as == which fails the build. It builds fine without pyproject=true.

The upstream used == as of version 2.1.0. https://github.com/lukasschwab/arxiv.py/blob/39b13caccf2e9b3b50732826e66d242379befc7f/setup.py#L14
Why not package the latest version, 2.1.3?

The upstream used == as of version 2.1.0. https://github.com/lukasschwab/arxiv.py/blob/39b13caccf2e9b3b50732826e66d242379befc7f/setup.py#L14

Yes, I accidentally checked the requirements.txt from 2.1.3, which has the
~=.

Why not package the latest version, 2.1.3?

I initially packaged arxiv version 2.1.0 following upstream flake at papis
repo 1. Testing papis locally with version 2.1.3 successfully gets
articles, so if you agree I can update the derivation with the following patch:
diff --git a/pkgs/development/python-modules/arxiv/default.nix b/pkgs/development/python-modules/arxiv/default.nix
index 56f0283dc8bd..d047ef923527 100644
--- a/pkgs/development/python-modules/arxiv/default.nix
+++ b/pkgs/development/python-modules/arxiv/default.nix
@@ -10,14 +10,14 @@
 }:
 buildPythonPackage rec {
   pname = "arxiv";
-  version = "2.1.0";
+  version = "2.1.3";
   pyproject = true;

   src = fetchFromGitHub {
     owner = "lukasschwab";
     repo = "arxiv.py";
     rev = "refs/tags/${version}";
-    hash = "sha256-2+Wyu4nQip9NDdJ1jHLRPcn21gpGFEfVz3zDruYZpeo=";
+    hash = "sha256-Niu3N0QTVxucboQx1FQq1757Hjj1VVWeDZn7O7YtjWY=";
   };

   build-system = [ setuptools ];

After applying this it builds even with the following:
diff --git a/pkgs/development/python-modules/arxiv/default.nix b/pkgs/development/python-modules/arxiv/default.nix
index 56f0283dc8bd..f503a3c307b8 100644
--- a/pkgs/development/python-modules/arxiv/default.nix
+++ b/pkgs/development/python-modules/arxiv/default.nix
@@ -22,11 +22,6 @@ buildPythonPackage rec {

   build-system = [ setuptools ];

-  pythonRelaxDeps = [
-    "feedparser"
-    "requests"
-  ];
-
   dependencies = [
     feedparser
     requests

Since those deps satisfy the version requirement. What is the best course
of action: To not use pythonRelaxDeps unnecessarily or to use it when
possible to "directly-translate" requirements.txt?

To not use pythonRelaxDeps unnecessarily or to use it when
possible to "directly-translate" requirements.txt?

Sorry, I'm not sure what you mean. If you don't need to use it, please don't use it.
Also, the build system (setuptools) understands install_requires passed to setup(), which may not always match requirements.txt.
See more details, https://packaging.python.org/en/latest/discussions/install-requires-vs-requirements/

Sorry, I'm not sure what you mean.

I was a bit confused, sorry as well.
With 2.1.0 the build failed with
$ nix build .#python3Packages.arxiv
...
       > Executing pythonRuntimeDepsCheck
       > Checking runtime dependencies for arxiv-2.1.0-py3-none-any.whl
       >   - feedparser==6.0.10 not satisfied by version 6.0.11
       >   - requests==2.31.0 not satisfied by version 2.32.3

Per your suggestions using 2.1.3 builds fine
$ nix build --option sandbox false .#python3Packages.arxiv

Since upstream relaxed the dependency version requirement 1.
The sandbox needs to be off since some tests submit http request to arxiv.
Thanks @natsukium, your suggestions are implemented!

Let's stick to this most simple and common implementation.

Done!

nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review pr 354823

x86_64-linux

:x: 8 packages failed to build:

papis (python312Packages.papis)
papis.dist (python312Packages.papis.dist)
python311Packages.arxiv
python311Packages.arxiv.dist
python311Packages.papis
python311Packages.papis.dist
python312Packages.arxiv
python312Packages.arxiv.dist

aarch64-linux

:x: 8 packages failed to build:

papis (python312Packages.papis)
papis.dist (python312Packages.papis.dist)
python311Packages.arxiv
python311Packages.arxiv.dist
python311Packages.papis
python311Packages.papis.dist
python312Packages.arxiv
python312Packages.arxiv.dist

x86_64-darwin

:x: 8 packages failed to build:

papis (python312Packages.papis)
papis.dist (python312Packages.papis.dist)
python311Packages.arxiv
python311Packages.arxiv.dist
python311Packages.papis
python311Packages.papis.dist
python312Packages.arxiv
python312Packages.arxiv.dist

aarch64-darwin

:x: 8 packages failed to build:

papis (python312Packages.papis)
papis.dist (python312Packages.papis.dist)
python311Packages.arxiv
python311Packages.arxiv.dist
python311Packages.papis
python311Packages.papis.dist
python312Packages.arxiv
python312Packages.arxiv.dist

These failed builds are due to test cases of arxiv.py which establishes
http connections to arxiv api, which in sandbox fails.
I built the package with
$ nix build --option sandbox false .#python3Packages.arxiv

Should I disable these tests on arxiv.py derivation or somehow disable
sandbox on build?

Should I disable these tests on arxiv.py derivation or somehow disable sandbox on build?

You can first try adding __darwinAllowLocalNetworking = true;. If it is not enough, then you can just add those tests to disabledTests.

If it is not enough, then you can just add those tests to disabledTests.

I've added tests that are touching network to the disabledTests. I can't run
nixpkgs-review locally since its memory usage climbs steadily until it would
crash just as any other described here1.
If the ofborg runs are done in the morning I can give another try to run it
locally.
But now it builds without --option sandbox false.

nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review pr 354823

x86_64-linux

:white_check_mark: 8 packages built:

papis (python312Packages.papis)
papis.dist (python312Packages.papis.dist)
python311Packages.arxiv
python311Packages.arxiv.dist
python311Packages.papis
python311Packages.papis.dist
python312Packages.arxiv
python312Packages.arxiv.dist

aarch64-linux

:white_check_mark: 8 packages built:

papis (python312Packages.papis)
papis.dist (python312Packages.papis.dist)
python311Packages.arxiv
python311Packages.arxiv.dist
python311Packages.papis
python311Packages.papis.dist
python312Packages.arxiv
python312Packages.arxiv.dist

x86_64-darwin

:white_check_mark: 8 packages built:

papis (python312Packages.papis)
papis.dist (python312Packages.papis.dist)
python311Packages.arxiv
python311Packages.arxiv.dist
python311Packages.papis
python311Packages.papis.dist
python312Packages.arxiv
python312Packages.arxiv.dist

aarch64-darwin

:white_check_mark: 8 packages built:

papis (python312Packages.papis)
papis.dist (python312Packages.papis.dist)
python311Packages.arxiv
python311Packages.arxiv.dist
python311Packages.papis
python311Packages.papis.dist
python312Packages.arxiv
python312Packages.arxiv.dist

Please leave a comment on why disable these tests.

Just done, thanks for the input.

Just done, thanks for the input.

@octvs I had force-pushed some (mostly cosmetic) changes to your branch. In your last-push you got rid of those changes.
Do you mind if I add them back ?

@octvs I had force-pushed some (mostly cosmetic) changes to your branch.

I've received an e-mail about that force-push, but I couldn't manage my way
around GitHub well enough to see any changes.

In your last-push you got rid of those changes.

Yeah I also force-pushed for @natsukium's feedback, without the knowledge of
your changes, so they got lost. Sorry.
As far as GitHub UI lets me see those changes 1, I will try to recover them.
diff --git a/pkgs/development/python-modules/arxiv/default.nix b/pkgs/development/python-modules/arxiv/default.nix
index 462090a9fd51..87628f6d2cb6 100644
--- a/pkgs/development/python-modules/arxiv/default.nix
+++ b/pkgs/development/python-modules/arxiv/default.nix
@@ -2,11 +2,17 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
+
+  # build-system
+  setuptools,
+
+  # dependencies
   feedparser,
+  requests,
+
+  # tests
   mock,
   pytestCheckHook,
-  requests,
-  setuptools,
 }:
 buildPythonPackage rec {
   pname = "arxiv";

I haven't encountered these comments on inputs before, but if it is
required/requested I will add them.
diff --git a/pkgs/development/python-modules/papis/default.nix b/pkgs/development/python-modules/papis/default.nix
index 135ad8498cd3..ed4045e381cf 100644
--- a/pkgs/development/python-modules/papis/default.nix
+++ b/pkgs/development/python-modules/papis/default.nix
@@ -1,6 +1,5 @@
 {
   lib,
-  stdenv,
   arxiv,
   beautifulsoup4,
   bibtexparser,
@@ -9,7 +8,6 @@
   click,
   colorama,
   configparser,
-  docutils,
   dominate,
   fetchFromGitHub,
   filetype,
@@ -28,11 +26,14 @@
   pythonOlder,
   pyyaml,
   requests,
-  sphinx,
-  sphinx-click,
   stevedore,
   typing-extensions,
   whoosh,
+
+  # tests
+  docutils,
+  sphinx,
+  sphinx-click,
 }:
 buildPythonPackage rec {
   pname = "papis";

stdenv is needed on L103 2. Either your local repo is outdated or GitHub is
messing with the information.
So the resulting patch looks like this
diff --git a/pkgs/development/python-modules/arxiv/default.nix b/pkgs/development/python-modules/arxiv/default.nix
index 462090a9fd51..87628f6d2cb6 100644
--- a/pkgs/development/python-modules/arxiv/default.nix
+++ b/pkgs/development/python-modules/arxiv/default.nix
@@ -2,11 +2,17 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
+
+  # build-system
+  setuptools,
+
+  # dependencies
   feedparser,
+  requests,
+
+  # tests
   mock,
   pytestCheckHook,
-  requests,
-  setuptools,
 }:
 buildPythonPackage rec {
   pname = "arxiv";
diff --git a/pkgs/development/python-modules/papis/default.nix b/pkgs/development/python-modules/papis/default.nix
index 135ad8498cd3..145920bf28c8 100644
--- a/pkgs/development/python-modules/papis/default.nix
+++ b/pkgs/development/python-modules/papis/default.nix
@@ -9,7 +9,6 @@
   click,
   colorama,
   configparser,
-  docutils,
   dominate,
   fetchFromGitHub,
   filetype,
@@ -28,11 +27,14 @@
   pythonOlder,
   pyyaml,
   requests,
-  sphinx,
-  sphinx-click,
   stevedore,
   typing-extensions,
   whoosh,
+
+  # tests
+  docutils,
+  sphinx,
+  sphinx-click,
 }:
 buildPythonPackage rec {
   pname = "papis";
@@ -85,8 +87,11 @@ buildPythonPackage rec {
   '';

   nativeCheckInputs = [
-    pytestCheckHook
+    docutils
     git
+    pytestCheckHook
+    sphinx
+    sphinx-click
   ];

   preCheck = ''

Let me know if you want me to push them.

Let me know if you want me to push them.

Ok no worry, I have just done it.
By the way, the code snippets in your messages don't show correctly:

nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review pr 354823

x86_64-linux

:white_check_mark: 8 packages built:

papis (python312Packages.papis)
papis.dist (python312Packages.papis.dist)
python311Packages.arxiv
python311Packages.arxiv.dist
python311Packages.papis
python311Packages.papis.dist
python312Packages.arxiv
python312Packages.arxiv.dist

aarch64-linux

:white_check_mark: 8 packages built:

papis (python312Packages.papis)
papis.dist (python312Packages.papis.dist)
python311Packages.arxiv
python311Packages.arxiv.dist
python311Packages.papis
python311Packages.papis.dist
python312Packages.arxiv
python312Packages.arxiv.dist

x86_64-darwin

:white_check_mark: 8 packages built:

papis (python312Packages.papis)
papis.dist (python312Packages.papis.dist)
python311Packages.arxiv
python311Packages.arxiv.dist
python311Packages.papis
python311Packages.papis.dist
python312Packages.arxiv
python312Packages.arxiv.dist

aarch64-darwin

:white_check_mark: 8 packages built:

papis (python312Packages.papis)
papis.dist (python312Packages.papis.dist)
python311Packages.arxiv
python311Packages.arxiv.dist
python311Packages.papis
python311Packages.papis.dist
python312Packages.arxiv
python312Packages.arxiv.dist

Hmm, looks like I am not able to force-push anymore... (permission denied)


Glossy: Allow concise entry definition

I went ahead, merge if you like
closes #13

Love this. Thanks! I'll get it merged today and then look at the other issues you posted.

Should be live once this is merged. Thank you very much for the PR. I'll take a look at the other suggestions from you in the next few days.


[Bug] Docker Build Fails

Describe the bug
Dear authors, thanks for this great and comrpehensive work.
I am having troubles replicating the conda environment, thus I have switched to the docker file. Disclaimer, I am a beginner with docker files.
The docker image does not build.
[here]
My Build command is:
sudo docker build -t openmixup
Which leads to:
62.95 Get:11 http://security.ubuntu.com/ubuntu bionic-security/restricted amd64 Packages [1688 kB]
63.87 Get:22 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages [3373 kB]
65.72 Get:23 http://security.ubuntu.com/ubuntu bionic-security/universe amd64 Packages [1637 kB]
66.05 Reading package lists...
66.76 W: GPG error: https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64  InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY A4B469963BF863CC
66.76 E: The repository 'https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64  InRelease' is not signed.
------
Dockerfile:11
--------------------
  10 |
  11 | >>> RUN apt-get update && apt-get install -y ffmpeg libsm6 libxext6 git ninja-build libglib2.0-0 libsm6 libxrender-dev libxext6 \
  12 | >>>     && apt-get clean \
  13 | >>>     && rm -rf /var/lib/apt/lists/*
  14 |
--------------------
ERROR: failed to solve: process "/bin/sh -c apt-get update && apt-get install -y ffmpeg libsm6 libxext6 git ninja-build libglib2.0-0 libsm6 libxrender-dev libxext6     && apt-get clean     && rm -rf /var/lib/apt/lists/*" did not complete successfully: exit code: 100

Could you help me solve it?
Thanks,
Stefano

Hi, @stsavian, thanks for using Openmixup and sorry for the bug in the Docker environment. We have updated the Docker file and you may try again.


Add option to always show word based suggestions

VSCode Version: 1.9.1

Steps to Reproduce:

Go to an empty TypeScript file
Enter fooBarBaz
Enter a new line and then type fooBa

Expected result: word based quick suggestions should show.
Actual result: no quick suggestions. Ctrl+space shows a popup with content 'No suggestions'.

Try the same in a JavaScript file and it works.
I would like IntelliSense and word based suggestions for my TypeScript.

After looking into this, I don't think JavaScript has word based suggestions in your example either. The result you see in the js case is actually a suggestion entry returned by TypeScript, not one provided by VSCode's word based suggestions.
The root cause:  the word based suggestion completion item provider is less specific than the JS and TS completion item providers. Our suggest logic only looks at the most specific completion provider that return a valid result: https://github.com/Microsoft/vscode/blob/master/src/vs/editor/contrib/suggest/common/suggest.ts#L66
This suggest logic is not specific to JavaScript or TypeScript and I can trigger the same sort of behavior in languages like python as well.
@jrieken and @alexandrudima: Is the lack of word based suggestions when a more specific suggestion provided returns results the designed behavior? I could see word based suggestions cluttering up the list in most cases where a language suggestion provider exists, but wanted to confirm that the current behavior is as-designed

Interesting, thanks for investigating. In my case the most specific provider returns no results, so in this case at least it should fallback to the word based provider?

Is the lack of word based suggestions when a more specific suggestion provided returns results the designed behavior?

Yes, but this is a good sample of it going wrong. The idea is that each provider gets a score based on its language selector, in short a full selector like typescript get 10 points whereas the * selector gets only 5 points. Then we start with those providers that have the highest score, ask them, and unless they produce a result, continue with the next bucket. We do this to prevent mixing good suggestions with word based suggestions.
This works well for cases like word-based suggestions in comments or when typing the name of a declaration because TS usually doesn't return anything then. The problem with the sample above is that TypeScript returns many suggestions after fooBa and that our logic doesn't do the filtering yet  (matching each suggestion with the text it wants to replace). Because we now have suggestions from a smart provider, we don't ask the word-based provider anymore.
Not yet sure what to do here...

Because we now have suggestions from a smart provider, we don't ask the word-based provider anymore.

Why don't you keep asking the word-based provider to complete the list of suggestions? The 'smart' provider is not always so smart, and word-based suggestions are enough most of the time. In this case there would still be some word-based suggestions even if the smart provider does not give any.

Why don't you keep asking the word-based provider to complete the list of suggestions?

It would result in many duplicates

I suggest to add option for allow word-based with compiler provider
no words is more big problem than if you have duplicates

it's possible to enable this at this moment only to modify
Microsoft VS Code\resources\app\out\vs\workbench\electron-browser\workbench.main.js
find
if(!h)return a.TPromise.join(r.map(function(r)
change to
return a.TPromise.join(r.map(function(r)

I have the same problem in my extension plsql.
I added some special snippets and all the suggestions of words were lost.
So I added a filter to return only the completion items starting with the current word.
How can I improve this?

Just wanted to comment to say that justnonamenoname's solution worked for me. I was able to make that change to the core code and it is now working perfectly for PHP files, etc.
I am now trying to figure out how to make this adjustment permanently until it gets fixed in the core base.

As an extension writer I would very much like to be able to fallback to word based suggestions.
It is going to take me a long time to be able to provide full smart completion, so it would be nice to be able to supplement the word based completion, not replace it.

I would very much like to be able to fallback to word based suggestions.

You can do that, simply return undefined, null, or an empty result set and it will fallback to word based suggestions

In addition to enabling both IntelliSense and word-based suggestions, there must be an option to enable only word-based suggestions.
In other words, the settings should be two independent Booleans:

Enable intelligent suggestions.
Enable word-based suggestions.

I think I found the solution to this. This extension does this feature.
https://marketplace.visualstudio.com/items?itemName=Atishay-Jain.All-Autocomplete

我想我找到了解决方案。此扩展程序具有此功能。
https://marketplace.visualstudio.com/items?itemName=Atishay-Jain.All-Autocomplete

Thanks for your answers.

It should be possible to specify when returning in provideCompletionItems that you would like to show the user word-based completions mixed with custom completions, but you should also be able to specify which type of completions are sorted above the other, e.g. word based > custom, or custom > word based.

It should be possible to specify when returning in provideCompletionItems that you would like to show the user word-based completions mixed with custom completions, but you should also be able to specify which type of completions are sorted above the other, e.g. word based > custom, or custom > word based.

It would be great if an extension could get the default word-based suggestion list and filter/modify it.

I would also greatly appreciate if this could be implemented somehow. I haven't looked at the code, but wouldn't it be possible to either filter out duplicates in the suggestion list before presenting it to the user or not add a new entry if it's already in the list?
I find myself wanting to autocomplete function and variable names from the code I'm working on more often than those in the language itself, but I still want to use language extensions for syntax highlighting, etc., so I would even be happy with an option to toggle an extension's autocomplete altogether and just use word suggestions.

TabNine can also provide alphabet result ( it can provide strings based on what you have in your workspace), but it also suffered from this bug:
https://github.com/codota/tabnine-vscode/issues/525
I think the reason behind this issue and that bug is the same, somehow extensions registered provider be overwritten by some other extension's registered provider.
SO this is a bug in VSCode.

anything new on this issue ? i come from TabNine-vscode and the fact that it override other suggestions is breaking the whole thing if it doesn't suggest the good one.

TabNine can also provide alphabet result ( it can provide strings based on what you have in your workspace), but it also suffered from this bug:
codota/tabnine-vscode#525
I think the reason behind this issue and that bug is the same, somehow extensions registered provider be overwritten by some other extension's registered provider.
SO this is a bug in VSCode.

@linonetwo 哪都有你

If this issue be fixed，js project completion experience will be improved greatly.

This issue is not exclusive to js/ts, right?
I do have the same issue with the C++ auto-completion. Sometimes semantic auto-completion takes quite a bit of time in larger C++ code-bases. Most of the time, I'd be happy with just word-based completion. However, like this issue points out, they don't seem to be merged into the same suggestion list.

Seems VSCode have better support for Microsoft's Github Copilot... Same issue never happened with it...

Changing my registration from monaco.languages.registerCompletionItemProvider("MyScriptNameHere", ...  to monaco.languages.registerCompletionItemProvider("*",... allowed me to see mixed word-based and custom suggestions for the DSL I'm creating an editor for.

That said, I agree that it would be nicer if this were configurable as suggested by others here. At the very least you should be able to assign a list of token types to be made available to suggest (e.g. my specific issue was that we lost suggestion of variable names when registering a CompletionItemProvider more specific than '*' which opened us up to too many 'fat finger' mistakes.)

Thanks, after all I can do my own document filtering.

My usecase for always wanting word-based completion: when writing code, I'll reference functions that don't exist, but which I am going to define later. When I do this, I need to type the function name twice, or copy and paste it. It would be great if I could auto-complete it!
def some_complex_function(x):
    tmp = some_utility_function(x)
    # ...other stuff...

def some_ut # it would be cool if this would autocomplete to `some_utility_function`

Amazing that vscode has this issue.
Many IDES (eclipse and the whole jetbrains suite to name a few) support the emacs word-completion "alt-/" and it's now hardwired in so many developer reptilian brains.
Why not make word completion a different shorcut?
Vscode is bogged down in that confusion: "suggestion=completion".  It doesn't have to be that way.

Any updates on this? 6 years passed since 2016, and we still to manually copy and paste the word...
And it's not just about Typescript, it's for any language or even plain text.

Any updates on this?

Any updates on this?

Don't wait. Folks are still in VisualBasic IDE mode.
Here is an extension that does the job.
https://marketplace.visualstudio.com/items?itemName=RahulSinha.hippie-completion


Custom headers on alertmanager_config

What this PR does
This PR adds custom headers for alertmanager_config
One use-case we have is to use the custom header to set Cloudflare Service auth token to bypass Cloudflare Tunnel
We have a custom header support for remote-read and remote-write earlier this year so I think It would be good to have support for alertmanager_config as well
Example configuration for Cloudflare Tunnel
alerting:
  alertmanagers:
    - scheme: https
      static_configs:
        - targets:
            - ""
      headers:
        CF-Access-Client-Id: <redacted>
        CF-Access-Client-Secret: <redacted>

Signed-off-by: Thanatchaya Kromsaeng<EMAIL_ADDRESS>

hello,
The headers on the remote read and write storage are there to pass a tenant, mainly for local debugging purpose.
This is not a way to pass authentication credentials as the example above.
We support many authorization methods which are secure (and therefore hidden from Prometheus API's). In your particular case, I understand that out oauth2 methoe might wotk with your service token:
https://developers.cloudflare.com/cloudflare-one/identity/users/validating-json

Thanks, @roidelapluie for getting back to me, we have fallen back to use basic authentication instead since https://developers.cloudflare.com/cloudflare-one/identity/users/validating-json is not work for us


⚠ Processors has degraded performance

In 7293688, Processors ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 93 ms

Resolved: Processors performance has improved in 98e537c.


Start multi-run server from gulp task?

Is there a way to start a karma server from a gulp task and reuse it by running the same task again? I tried with this code:
karma conf
module.exports = function (config) {
    config.set({
        basePath: __dirname,
        frameworks: ['jasmine'],
        files: [
            {pattern: 'src/nodelist.js', included: true},
            {pattern: 'tests/*.js', included: true}
        ],
        exclude: [],
        reporters: ['progress'],
        port: 9876,
        colors: true,
        logLevel: config.LOG_INFO,
        autoWatch: true,
        browsers: ['Firefox'],
        captureTimeout: 6000,
        singleRun: false
    });
};

gulp task
var karma = require("karma"),
    gutil = require("gutil");

module.exports = function (done) {
    var server = new karma.Server({
        configFile: "../../../karma.conf.js"
    });
    server.on("browser_error", function (browser, err) {
        gutil.log("Karma Run Failed: " + err.message);
        throw err;
    });
    server.on("run_complete", function (browsers, results) {
        gutil.log("Karma Run Complete: " + results.failed ? "Some of the Tests Failed" : "No Failures");
        done();
    });
    server.start();
};

The problem that the gulp task hang up by singleRun: false and only ctrl+c can stop it. I assume I have to put the server to a child process, but as far as I know karma does that for me. (Another problem that gulp throws and error by singleRun: true when the tests fail.)

I does not manage to do that, but using watch is a possible workaround:
karma conf
module.exports = function (config) {
    config.set({
        // ....
        singleRun: false,
        autoWatch: true
    });
};

gulp task
var karma = require("karma");

module.exports = function (done) {
    var server = new karma.Server({
        configFile: "../../../karma.conf.js",
        //...
        singleRun: true,
        autoWatch: false
    }, function (exitCode) {
        done();
    });
    server.start();
};

So if I need multi-run window for fast development then I use karma start manually from the webstorm terminal with file watch. I need single-run only by travis which can use gulp my-karma-task. This approach works perfectly.


Sorry,how to configure the value of capabilities.PAS?

PAS is a 6-bits field in capabilities,which means Physical Address Size supported by the IOMMU.But how can i configure this filed?

The capabilities register is used to report the capabilities of the IOMMU hardware. This is a read-only register used for enumeration and is not a configuration register. So the PAS (and other hardware capabilities) are not software configurable. Some hardware implementations, such as soft-IPs, may have build time configurations for the hardware and may also support mechanisms like straps/fuses to configure the hardware  at implementation time.

I hope that addressed the question. Please feel free to ask if there are further questions.

I got u.  if i set this field in 6'b0000_01，what does this mean?Physical Address Size is 4KiB or something ?
look forward to your advice:)

@augsug - a value of 6'b0000_01 implies 1-bit and a value of 6'b1110_00 implies 56-bit.


Create a .devcontainer and VSCode Build Tasks

The goal is to make it easy for people to spin up a local container (or via github codespaces) that has node ready to go.
The included build commands make it easy to make code changes and hit a shortcut to build. We could also include all of the Quartz commands in the task list. This is a slightly friendlier interface for folks who aren't as familiar with the command line.
I'll have a PR to resolve this, unless there are objections.

I'd close this for same reasons as the PR. I'd rather there be one canonical way to set things up as this actually reduces confusion the most. If you want to contribute one externally, you are free to and I would be happy to help signal boost


SAP SWPM failure during connection to SAP HANA

This error was seen during SAP S/4HANA OneHost install with SAP Maintenance Planner.
I used the following Terraform variables:
ibmcloud_api_key                  = "myapikey"

resource_tags                     = "mytag2"

resource_prefix                   = "myprefix1"

ibmcloud_resource_group           = "new"

ibmcloud_region                   = "us-east"

ibmcloud_iam_yesno                = "yes"

ibmcloud_vpc_subnet_name          = "new"

dns_root_domain                   = "mydomainlocal.com"

bastion_os_image                  = "rhel-8-4"

bastion_user                      = "myuser1"

bastion_ssh_port                  = "65500"

host_specification_plan           = "small_256gb"

host_os_image                     = "rhel-8-4-sap-hana"

disk_volume_capacity_software     = "200"

disk_volume_type_software         = "10iops-tier"

sap_software_download_directory   = "mysoftware"

sap_id_user                       = "Sxxxxxxxxxx"

sap_id_user_password              = "mysapidpw"

sap_hana_install_master_password  = "abcd@Abcde123"

sap_hana_install_sid              = "SA1"

sap_hana_install_instance_number  = "00"

sap_s4hana_install_sid            = "S4D"

sap_swpm_template_selected        = "sap_s4hana_2020_onehost_install"

sap_nwas_pas_instance_no          = "01"

sap_maintenance_planner_transaction_name = "MP_S4H_20xxxxxx_xxxxxx"

==========================================================================================
Below is the error:
│ INFO       2022-06-09 16:14:45.279 (root/sapinst) (startInstallation) [syuxcfile.cpp:216] id=syslib.filesystem.removedFile CSyFileImpl::removeEx(ISyFSErrorHandler *
│ pErrorHandler)
│ Removed file /tmp/sapinst_instdir/S4HANA2020/CORE/HDB/INSTALL/STD/ABAP/HdbStdout.txt."
│
│ ERROR      2022-06-09 16:14:45.355 (root/sapinst)
│ (startInstallation) [iaxxbjsmod.cpp:83] id=modlib.jslib.caughtException errno=MUT-03025"
│ Caught ESAPinstException in module call: Validator of step
│ '|NW_ABAP_OneHost|ind|ind|ind|ind|0|0|NW_Onehost_System|ind|ind|ind|ind|onehost|0|NW_GetSidNoProfiles|ind|ind|ind|ind|getSid|0|NW_getDBInfo|ind|ind|ind|ind|db|0|NW_HDB_getDBInfo|ind|ind|ind|ind|hdb_dbinfo|0|getDBInfo'
│ reported an error:"
│ The database connection with database user SYSTEM cannot be set up. Check that the database is online and the password of user SYSTEM is correct.",
│ "Start SAPinst in interactive mode to solve this problem."
│
│ ERROR      2022-06-09 16:14:45.430 (root/sapinst) (startInstallation) [CSiStepExecute.cpp:1104]
│ id=controller.stepExecuted errno=FCO-00011 CSiStepExecute::execute()
│ The step getDBInfo with step key
│ |NW_ABAP_OneHost|ind|ind|ind|ind|0|0|NW_Onehost_System|ind|ind|ind|ind|onehost|0|NW_GetSidNoProfiles|ind|ind|ind|ind|getSid|0|NW_getDBInfo|ind|ind|ind|ind|db|0|NW_HDB_getDBInfo|ind|ind|ind|ind|hdb_dbinfo|0|getDBInfo
│ was executed with status ERROR (Last error reported by the step: Caught ESAPinstException in module call: Validator of step
│ '|NW_ABAP_OneHost|ind|ind|ind|ind|0|0|NW_Onehost_System|ind|ind|ind|ind|onehost|0|NW_GetSidNoProfiles|ind|ind|ind|ind|getSid|0|NW_getDBInfo|ind|ind|ind|ind|db|0|NW_HDB_getDBInfo|ind|ind|ind|ind|hdb_dbinfo|0|getDBInfo'
│ reported an error:
│
│ The database connection with database user SYSTEM cannot be set up. Check that the database is online and the password of user SYSTEM is correct.
│ "Start SAPinst in interactive mode to solve this problem)."
│
│ INFO       2022-06-09 16:14:45.561 (root/sapinst) (startInstallation) [syuxcpath.cpp:441]
│ id=syslib.filesystem.creatingFile CSyPath::createFile()
│ Creating file /tmp/sapinst_instdir/S4HANA2020/CORE/HDB/INSTALL/STD/ABAP/INSTANA.XML.
│
│ INFO       2022-06-09
│ 16:14:45.631 (root/sapinst) (startInstallation) [syuxcpath.cpp:441] id=syslib.filesystem.creatingFile CSyPath::createFile()
│ Creating file
│ /tmp/sapinst_instdir/S4HANA2020/CORE/HDB/INSTALL/STD/ABAP/instslana.xml.
│
│
│ a /tmp/sapinst_exe.221200.1654791257/dev_selfex.out
│ a /tmp/sapinst_instdir/S4HANA2020/CORE/HDB/INSTALL/STD/ABAP/FormalPasswordCheck.1.log
│ a /tmp/sapinst_instdir/S4HANA2020/CORE/HDB/INSTALL/STD/ABAP/FormalPasswordCheck.log
│ a /tmp/sapinst_instdir/S4HANA2020/CORE/HDB/INSTALL/STD/ABAP/HdbCmdOut.log
│ a /tmp/sapinst_instdir/S4HANA2020/CORE/HDB/INSTALL/STD/ABAP/LogAnalyzer.html
│ a /tmp/sapinst_instdir/S4HANA2020/CORE/HDB/INSTALL/STD/ABAP/SECINSTTOOLS.log
│ a /tmp/sapinst_instdir/S4HANA2020/CORE/HDB/INSTALL/STD/ABAP/control.xml
│ a /tmp/sapinst_instdir/S4HANA2020/CORE/HDB/INSTALL/STD/ABAP/controllerKdbClient.dmp
│ a /tmp/sapinst_instdir/S4HANA2020/CORE/HDB/INSTALL/STD/ABAP/instana.xsl
│ a /tmp/sapinst_instdir/S4HANA2020/CORE/HDB/INSTALL/STD/ABAP/java.1.log
│ a /tmp/sapinst_instdir/S4HANA2020/CORE/HDB/INSTALL/STD/ABAP/java.log
│ a /tmp/sapinst_instdir/S4HANA2020/CORE/HDB/INSTALL/STD/ABAP/keydb.xml
│ a /tmp/sapinst_instdir/S4HANA2020/CORE/HDB/INSTALL/STD/ABAP/sapinst.log
│ a /tmp/sapinst_instdir/S4HANA2020/CORE/HDB/INSTALL/STD/ABAP/sapinst_dev.log
│ a /tmp/sapinst_instdir/S4HANA2020/CORE/HDB/INSTALL/STD/ABAP/sapinst_loginquirer.log
│ a /tmp/sapinst_instdir/S4HANA2020/CORE/HDB/INSTALL/STD/ABAP/start_dir.cd
│ a /tmp/sapinst_instdir/S4HANA2020/CORE/HDB/INSTALL/STD/ABAP/stepKeydbClient.dmp
│ a /tmp/sapinst_instdir/S4HANA2020/CORE/HDB/INSTALL/STD/ABAP/syslib_priv.log
│
│ INFO       2022-06-09 16:14:47.651 (root/sapinst) (startInstallation) [syuxcdir.cpp:147]
│ id=syslib.filesystem.removedDirectory CSyDirectoryImpl::sap_remove(ISyFSErrorHandler * pErrorHandler)
│ Removed directory /root/.sapinst/s4h01/221271.
│
│
│ RUNNING HANDLER [community.sap_install.sap_general_preconfigure : Reboot the managed node] ***
│
│ RUNNING HANDLER [community.sap_install.sap_general_preconfigure : Let the role fail if a reboot is required] ***
│
│ RUNNING HANDLER [community.sap_install.sap_general_preconfigure : Show a warning message if a reboot is required] ***
│
│ RUNNING HANDLER [community.sap_install.sap_general_preconfigure : Remount /dev/shm] ***
│
│ RUNNING HANDLER [community.sap_install.sap_general_preconfigure : Check if /dev/shm is available] ***
│
│ RUNNING HANDLER [community.sap_install.sap_general_preconfigure : Show the result of df -h /dev/shm] ***
│
│ RUNNING HANDLER [community.sap_install.sap_hana_preconfigure : Run grubby for enabling TSX] ***
│
│ RUNNING HANDLER [community.sap_install.sap_hana_preconfigure : Reboot the managed node] ***
│
│ RUNNING HANDLER [community.sap_install.sap_hana_preconfigure : Let the role fail if a reboot is required] ***
│
│ RUNNING HANDLER [community.sap_install.sap_hana_preconfigure : Show a warning message if a reboot is required] ***
│
│ PLAY RECAP *********************************************************************
│ <IP_ADDRESS>                 : ok=329  changed=90   unreachable=0    failed=1    skipped=183  rescued=0
│ ignored=5
│

=========================================================================================
Maintainer: do not raise issues within an issue. Ignoring these for reasons below I have few other observations that needs a closer look at though it is not related to my present issue that I am reporting as these limitations cause restrictions.

In IBM Cloud unless I mention new resource group, new subnet somehow script is failing. Maintainer: no data provided, cannot debug
Restrictions applied on S/4HANA Host and Bastion with Public Key what if a customer want to have their own methods to use public keys for such stuff where they have control. Maintainer: Terraform Templates are free to amend, for click-run a design principle is to always leverage a created Bastion even when re-using an existing network, to ensure security and reduce unpredictable results
Is there a process developed around this script that can help address not to destroy everything but what you really want. The split and use like step 1 Bastion, step 2 SAP Host and then how they work together once 2 resources are created. If I need to destroy, I can destroy either SAP or Bastion based on what I need to. Maintainer: please see existing Terraform documentation and blogs on Google, this can be achieved in two ways primarily (1) comment/remove from Terraform Template and terraform apply which will remove those resources or (2) use -target combined with terraform destroy see doc https://learn.hashicorp.com/tutorials/terraform/resource-targeting.

Edited original issue text for readability of the issue, and to address best practice of raising GH Issues.
Terraform Template identified from text:
sap_s4hana_single_node_install/ibmcloud_vs
Error identified from text:
The database connection with database user SYSTEM cannot be set up. Check that the database is online and the password of user SYSTEM is correct
This error usually appears on SWPM Unattended Mode when the wrong Database Schema name for SAP (inside the SAP HANA MDC Tenant) has been provided, so a connection cannot be established to perform the DB Restore during System Copy. To see this error with an installation from SAP Maintenance Planner is unusual.
I will re-run with the same Terraform Input Variables provided above, to see if I have the same result.

Hello Sean - Thank you for helping me on my issue. I will wait for your confirmation, try to destroy my deployment and recreate the instances once again. If I can preserve Bastion host while destroying and perform only remaining part of the deployment which is S/4 deployment that really saves my time. I will wait for your confirmation here.

I performed another deployment to correct for the software download directory being an incomplete path; as above comment describes.
Unfortunately after re-deployment, I was unable to replicate the issue. The Ansible execution triggered by Terraform, took 1h17m47s to deploy SAP S/4HANA from SAP Maintenance Planner.
Approximate breakdown:

Installation Media downloads: 51min approx
SAP hdblcm execution: 7min approx
SAP SWPM execution: 19min approx

module.run_ansible_sap_s4hana_install_maintplan["rjs4h01"].null_resource.ansible_exec[0] (local-exec):
FAILED - RETRYING: [<IP_ADDRESS>]: SAP SWPM - Wait for sapinst process to exit, poll every 60 seconds (981 retries left).

module.run_ansible_sap_s4hana_install_maintplan["rjs4h01"].null_resource.ansible_exec[0]:
Still creating... [1h17m20s elapsed]
module.run_ansible_sap_s4hana_install_maintplan["rjs4h01"].null_resource.ansible_exec[0] (local-exec):
ok: [<IP_ADDRESS>]

TASK [community.sap_install.sap_swpm : SAP SWPM - Verify if sapinst process finished successfully] ***
changed: [<IP_ADDRESS>]

TASK [community.sap_install.sap_swpm : SAP SWPM - Find last installation location] ***
changed: [<IP_ADDRESS>]

TASK [community.sap_install.sap_swpm : SAP SWPM - Verify if SWPM success file exists] ***
ok: [<IP_ADDRESS>]

TASK [community.sap_install.sap_swpm : SAP SWPM - Get success file] ************
changed: [<IP_ADDRESS>]

TASK [community.sap_install.sap_swpm : SAP SWPM - Display installation finished from success file] ***
ok: [<IP_ADDRESS>] => {
    "msg": [
        "NW_ABAP_OneHost|ind|ind|ind|ind finished 22_06_2022_17_47_43"
    ]
}

TASK [community.sap_install.sap_swpm : SAP SWPM Post Install - Set s4dadm to no expire] ***
changed: [<IP_ADDRESS>]

TASK [community.sap_install.sap_swpm : SAP SWPM Post Install - Firewall Setup] ***
skipping: [<IP_ADDRESS>]

TASK [community.sap_install.sap_swpm : SAP SWPM Deployment - Finished] *********
ok: [<IP_ADDRESS>] => {
    "msg": [
        "   SAP SWPM deployment successfully completed ",
        " ",
        "   SAP Product        -       NW_ABAP_OneHost:S4HANA2020.CORE.HDB.ABAP  ",
        "   SID                -       S4D ",
        "   Primary Instance   -       01 ",
        "   Host               -       s4h01 ",
        "   FQDN               -       s4h01.mydomainlocal.com  ",
        "   IP                 -       <IP_ADDRESS>  ",
        "   Master Password    -       abcd@Abcde123 ",
        "   DDIC 000 Password  -       abcd@Abcde123 "
    ]
}

As stated originally, error The database connection with database user SYSTEM cannot be set up. Check that the database is online and the password of user SYSTEM is correct is usually witnessed on SWPM Unattended Mode when the wrong Database Schema name for SAP (inside the SAP HANA MDC Tenant) has been provided, so a connection cannot be established to perform the DB Restore during System Copy.
To see this error with an installation from SAP Maintenance Planner is unusual. Given I cannot replicate this issue, I have to conclude this as an uncharacteristic error with SAP SWPM in this instance. Closing the issue.

I will correct variable definitions properly to reflect declaration standards, however it helps if we give default value and comments that can help improve the standard and these Hints either can be in readme.md or input.auto.tfvars.tf file to help.
I have a question regarding keeping mysoftware under /root that is not recommended. Can we have a way of keeping mysoftware in its own mount point?
I will try to work on your recommendations and come back to you with more comments.


The docker container for the ply2las transformer has a different command line signature

The current behavior or issue
The way the ply2las code works is different than the other transformers. This makes it harder to generalize a workflows as this becomes a special case
The steps taken to reproduce the behavior or issue, or specify a location where the steps were recorded
When running the script/container the --working_space parameter is used as the source of the files/data to process. The folder/files/data specifications should come after the command line options (just listed on the command line without any associated flags)
Expected behavior
The --working_space flag is not used to specify source data. Data to process is specified following all command line options
Screenshots
N/A
Add other supporting information that may be useful
See plot-clip transformer to see an example of the correct usage

Pull request https://github.com/AgPipeline/transformer-ply2las/pull/3


Shell-scripts for dynamic UDFs testing.

All test cases which we can not run in test framework.

This is not the right repository to merge these changes as the scripts contain commands which are specific to mapr. Lets move these to a mapr specific repository. Few more general comments

Do not hard code the path "/user/root/drill/udf". On my cluster zk.root is not drill(its drill-build instead) and hence the scripts will fail. If this cannot be scripted, let me know
Modify the script to create "logs", "results" directories if they do not exist or update the readme file
When I ran the tests on a single cluster some tests failed, I will have to look into them


Better filter expressions for hiding derived resources

In a (Typescript) React project it is common to have both .ts files and .tsx files all result in .js files in the end. It is possible to exclude some of these, but to my search it did not seem possible to hide both these types of files. It would be nice to be able to hide derived resources (JS files in this case) based on more sophisticated expressions.
One solution would be to allow multiple patterns. It might look something like:
"files.exclude": {
    "**/*.js": {
        "when": [ "$(basename).ts", "$(basename).tsx" ]
    }
},

Another way is to treat 'when' expression as regular expressions, like:
"files.exclude": {
    "**/*.js": {
        "when": "$(basename).ts(x?)"
    }
},

I think that the RHS should be a glob as well, so
"files.exclude": {
    "**/*.js": {
        "when": "$(basename).ts*"
    }
},

But I'm curious, can you not just exclude all *.js in the folder where your source is? Or do you have non-derived .js files mixed with derived .js files? I am not a fan of the sibling exclude feature in general.

I use a few libraries which are not in npm, so these are just straight .js files in my public folder, optimally these would not be hidden.

Isn't this a duplicate of https://github.com/microsoft/vscode/issues/1214 ?


Update programs-arangosh-examples.md

Mentioning an undocumented "feature" that was submitted as an issue here: https://github.com/arangodb/arangodb/issues/14457
CLA has already been provided by me to you.

Closing this PR because I noticed the info should be replicated to future and past version.


DeprecationWarning: Buffer() is deprecated due to security and usability issues in check-auth

Hello,
I am getting following error in check-auth lambda function, Using latest code with node js 12.x version.
2020-07-17T11:37:44.524Z	e3eb0320-90bb-4930-a588-f56ed4f273de	ERROR	(node:8) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
Is this some issue with reference lib in check-auth Lambda function ?  Please suggest.
Thanks,
Dilip

I think this dependency is the culprit: https://github.com/auth0/node-jwks-rsa/blob/d0c5787fd9ea51a4f7cb28ea71b2522ce3e23727/src/utils.js
They do a few times new Buffer(...) and would probably appreciate a PR to use the modern notation.

Thanks @ottokruse

Fixed upstream and included in #75


Vessel page - time not showing up

Boarding time on the vessel page says "Invalid date" when it should be an actual time.

This has been fixed in v23.


Add files via upload

Please follow the guide below

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

Before submitting a pull request make sure you have:

[ ] At least skimmed through adding new extractor tutorial and youtube-dl coding conventions sections
[ ] Searched the bugtracker for similar pull requests
[ ] Checked the code with flake8

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

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

What is the purpose of your pull request?

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

Description of your pull request and other information
Created a primitive GUI using python, based on the response i will be taking up other options in "Advanced Download" section.
Explanation of your pull request in arbitrary form goes here. Please make sure the description explains the purpose and effect of your pull request and is worded well enough to be understood. Provide as much context and examples as possible.

Simply execute test2.py after installing "command line Youtube Downloader"
command:
python3 test2.py


Move note about not sharing sensitive information inside the comment block

when opening new issues, this line would appear outside the comment block.

note: obfuscate all passwords, credentials or other confidential information

and hence appear in the issue description. Move it instead inside the template comment block and put it right at the top.

rebase and merge d2cf98e5b5e3b6eddc4253761fc9bc9de03c42be


Performance issues pushing with a large number of records in the store

In issue #22 @matthewnessworthy mentioned
I'm running into a separate unrelated issue at the moment relating to adding items to the store.
When there are a few thousand records in the store the time to push a record increases significantly,
from ±1ms with a few records up to 11sec (per push) when there are about 4000 records.
I've tried to mitigate this by wrapping bulk data pushes with store.beginPropertyChanges();
and store.endPropertyChanges(); which makes a huge difference, but I'm still running into
issues when the store gets larger.

He then put together a sample project to show this off. I wanted to start a new conversation here so we can stay focused on the problem he found/ work through a solution with the appropriate history.
https://github.com/matthewnessworthy/ember-cli-simple-store-perf

@matthewnessworthy could you clarify a few things for me when you get time? Is the core problem that doing a "bulk insert" is slow (as the size of the record set grows)? Or is the core issue that inserting a single record is slow (after the store has 4000+ records in it)?
I ask because in your example, if I push 3000 records in a "single push" is still speedy (just under 1 second). Originally when I got your message I assumed this situation was broken but now I'm beginning to think your original problem might have been the "push many"
Thanks for the input -just trying to better understand the problem you had/ need help with.

@toranb It's still single pushes that are affected. Perf varies depending on the number of computed properties depending on the store find results (like the belongs_to example you gave), where each record has a computed property referencing the same type of model (think recursive parent-child).
I'm getting responses of greater than 5 seconds when pushing blocks of 100 records on a store with 2000+ records, and the total time increases by about 50-250ms for each 100 records added after that

I've reached out to a member of the core team on this for some paid perf consulting. I honestly don't know how to tune the ArrayProxy myself but understand the need. I'll let you know what I find out in the coming days/weeks (sorry for the lack of knowledge on this @matthewnessworthy )

Sorry for the huge holiday sized delay on this one - I finally got some time w/ one of the ember core team and it was well worth the wait! In fact I threw together a quick spike just a few minutes ago to show what we discussed (and it does indeed speed things up -big time).
https://github.com/toranb/ember-cli-simple-store/commit/e475e4a3b82b9eb6498524e6dde95406cde635e5
The biggest challenge is that this work isn't trivial (level of effort anyway) and I almost need to have it sponsored (to ensure I have enough time/ and enough of a code base to test it to ensure we don't have any funky regressions/etc)
Can you look the commit above over when you get a few to see if it sounds logical? The basic idea is that we can't re-computed the ArrayProxy (when you filter using find) right away -instead we need to capture each filter (by type) and schedule a "set" using the run loop. In the end it seems to give the result you'd expect but I have to imagine the complete (and bug free) refactor will require some time.

No worries, end of the year always end up being more hectic than expected.
The main performance pain points are:

adding a large number of records without wrapping them in a beginPropertyChanges/endPropertyChanges
adding 1 or more records into a store that already contains a large number or records (compare perf adding a single record to an empty store compared to adding that same record with a store of 5000)

Regarding the commit https://github.com/toranb/ember-cli-simple-store/commit/e475e4a3b82b9eb6498524e6dde95406cde635e5, it can/should work, but how to you intend to schedule a filter recompute when records change or when existing records are added to the store (Store.push with a matching id, which doesn't call buildRecord)?

Great question - I have a few of my own that I'd like to drive out using a large code base. Below is a list of the requirements I have for the rewrite (this looks like the setup for v4.0.0)

improve performance for pushing models into the store
store.push for new records
store.push for existing records
related filters still recompute correctly*
keep all the functionality of the store as-is (no regressions)

*often in complex apps you have a relationship like this (example: one-to-many)
var User = Model.extend({
    role: Ember.computed.alias('belongs_to.firstObject'),
    belongs_to: Ember.computed(function() {
        let user_id = this.get('id');
        let store = this.get('store');
        let filter = function(role) {
            let users = role.get('users');
            return Ember.$.inArray(user_id, users) > -1;
        };
        return store.find('role', filter, ['users']);
    })
});

Here is a simple unit test to show the relationship above (and how the filter looks from the data structure view point). Notice role has an array with "users" //more on this below
test('role should return associated model or undefined', function(assert) {
    let user = store.push('user', {id: 1});
    store.push('role', {id: 2, name: 'Admin', users: [1]});
    let role = user.get('role');
    assert.equal(role.get('id'), 2);
    role.set('users', []);
    role = user.get('role');
    assert.equal(role, undefined);
});

The trick w/ this relationship (common in our apps) is that the find in user should recompute when the array on any role is updated. Today the spike I show above should in theory do this because the filter is on "role" and if users (the array on any role model) is changed we should update the ArrayProxy (at the end of the run-loop). I call this feature out because it's very critical to any app that grows beyond hello world (and if this rewrite is to be a success I'll need to focus on this first).
Any other questions or bullet points let me know. I'd like to keep this issue open until we truly land a v4.0.0-beta.1 or something (and I'd love your help identifying issues along the way).

Update
The reason that relationship I showed above is tricky is that we need to recompute when the array "users" on role is updated ... but we don't usually "push" to do that update. We normally just do a set (in the model like you see below). This would require some thought because the "quick fix" is to require a push for all setter changes like this (something I haven't even done myself) or some other hack that I haven't yet discovered. Any thoughts on this specifically?
var User = Model.extend({
    change_role: function(new_role_id) {
        let user_id = this.get('id');
        let store = this.get('store');
        let new_role = store.find('role', new_role_id);
        let new_role_users = new_role.get('users') || [];
        new_role.set('users', new_role_users.concat(user_id));
        //the set above won't force a re-compute :(
    }
});

I'm working to complete the v4.0.0 release this week and it will include the much desired/needed perf update you uncovered here @matthewnessworthy
I'm using my largest installed app to upgrade this privately first (so I can feel the pain/ work through any issues). I plan to release a version for you to play with some time Wed or Thursday at the latest.
I'll be sure to include a note in the README about upgrading from v3 to v4. At this time the changes are as follows

any time you do a push it will require an ember.run
any time you update a filtered on property you need to use push instead of a simple "set"

Any questions or concerns let me know! I'll update this issue as I learn more about the upgrade process

After a solid days work I've got the first iteration up in a commit worth looking at. I tested it heavily against your perf app and found I'm able to push 100 records at a time (w/ 4K in the store) and it takes between 126-148ms
https://github.com/toranb/ember-cli-simple-store/commit/69fe0ba936fa00859778d4c94572878c88a4f1ef
I'll take a run at upgrading a real application tomorrow and document the process here

@matthewnessworthy day 2 and so far it's looking good. I did a patch (beta.2) release this morning when I found another bug. The biggest pain point is upgrading the app itself to avoid using "set" all over.
Depending on the size of your app (and the amount of filters you've created) it might be a costly update (level of effort). I spent all day and made it through the most complex model we have (lots of m2m/one-to-many relationships). The good news is that I'm making progress w/out any real blockers to note.

@matthewnessworthy another quick update - I got our app completely up to date w/ no issues. The biggest lesson learned is that I should have created a base qunit test that just wrapped the inners w/ ember.run (would have saved me a ton of time). I plan to write up a short "guide" about what I learned but honestly the bulk was "update your unit tests as they don't wrap store.push w/ ember.run"
All the production code was already wrapped with ember.run. For example, beforeModel (ember managed), any closure action in ember 2.3+ (like onclick/ onchange) and all my ajax work was already wrapped w/ a base xhr mixin I've been using.
https://github.com/toranb/ember-promise/blob/master/addon/mixins/promise.js#L12
I've got 2 concerns worth talking about before the v4.0.0 release (stable).

because each ArrayProxy is "saved" and pushed into a list of filters I'd like to think we could reuse them when another filter (for the same time) comes in w/ the same function. This would be another performance win long term because you'd only need to update each filter (per type) once instead of multiple times.

because each ArrayProxy has a reference in the store now ... how could the app unsubscribe (or remove it when it's not needed any longer)? It might be the case that over a full day this isn't a problem but I can't help but think "each registered filter now has a reference that may/ or may not be active"

Would you mind taking a run at the upgrade to beta-2 in the next week or so and see if you find anything I didn't? If you are able to update w/out issue and I can solve issue one (maybe two) above I think a legit v4.0.0 could be published in January.

@matthewnessworthy another quick update - I got our app completely up to date w/ no issues. The biggest lesson learned is that I should have created a base qunit test that just wrapped the inners w/ ember.run (would have saved me a ton of time). I plan to write up a short "guide" about what I learned but honestly the bulk was "update your unit tests as they don't wrap store.push w/ ember.run"
All the production code was already wrapped with ember.run. For example, beforeModel (ember managed), any closure action in ember 2.3+ (like onclick/ onchange) and all my ajax work was already wrapped w/ a base xhr mixin I've been using.
https://github.com/toranb/ember-promise/blob/master/addon/mixins/promise.js#L12
I've got 2 concerns worth talking about before the v4.0.0 release (stable).

because each ArrayProxy is "saved" and pushed into a list of filters I'd like to think we could reuse them when another filter (for the same time) comes in w/ the same function. This would be another performance win long term because you'd only need to update each filter (per type) once instead of multiple times.

because each ArrayProxy has a reference in the store now ... how could the app unsubscribe (or remove it when it's not needed any longer)? It might be the case that over a full day this isn't a problem but I can't help but think "each registered filter now has a reference that may/ or may not be active"

Would you mind taking a run at the upgrade to beta-2 in the next week or so and see if you find anything I didn't? If you are able to update w/out issue and I can solve issue one (maybe two) above I think a legit v4.0.0 could be published in January.

Here is a quick hack for that qunit test I mentioned above (wraps the callback w/ ember.run for pure unit tests with a lot of store.push code)
import Ember from 'ember';
import {test as qunitTest} from 'qunit';
import {module} from 'qunit';

var test = function test() {
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; ++_key) {
    args[_key] = arguments[_key];
  }
  var callback;
  function wrapper() {
      let argz = arguments;
      Ember.run(function() {
          callback.apply(null, argz);
      });
  }
  callback = args.splice(1, 1, wrapper)[0];
  qunitTest.apply(null, args);
}

export { module, test };

@matthewnessworthy another update - had a chat w/ another run-loop expert and it looks like the queue (afterRender) may be a problem as it won't update filters (ArrayProxy) as you might expect. I'm planning to run this in sync or action instead. I'll report back when I know more :)

@matthewnessworthy cut another release today for beta 3
Some discoveries from yesterday.

I thought moving from afterRender to actions or sync would solve my "explicit run" problem but no
I could improve the calls to scheduleOnce further using ember.run.once in push/remove/clear
without an explicit action (regardless of queue) you won't flush relationships (inconsistent computed properties then plague you for ever)
wrapping the scheduleOnce w/ ember.run.once did help in testing a bit -unit tests can now be less verbose the commit below shows how I was able to cut out a ton of ember.runs from unit tests

https://github.com/toranb/ember-cli-simple-store/commit/bc4e52f0f90bf72594ea9dc39b8739adc18c6a57

@matthewnessworthy I landed the reuse feature today but sadly it won't work for the simple filter (object literal syntax for find). I'm toying with the idea of leaving it (vs deprecation for example). The only issue is that w/ the fork now it's not consistent. I assume the caching is valuable enough to remove the more simplified syntax but I'd like to put more time into it before changing the API
If you get time to look it over I just cut beta 4

@matthewnessworthy disregard -beta.4 is a bad build (just found this trying to run it against the app I'm working on). Avoid it if you can :)

After some thought/discussion with someone on the ember-data core team it's clear what I attempted to do in beta.4 (that failed) was "reuse" any ArrayProxy that gets spun up. Instead the approach I'll recommend to people going forward is that you cache a reference to this in your service/or repository like classes and manage the "reuse" yourself.
The question about "memory usage over time" was less eventful. Some discussion has gone around about this and one RFC worth reading is shown below. It wasn't implemented but some good discussion came out of the issue regardless.
https://github.com/emberjs/rfcs/pull/23
The core problem is that the store holds on to each "filtered ArrayProxy" so the garbage collector is prevented from reclaiming any ArrayProxy created (for filtering purposes) ... meaning this introduces a legit memory leak.
I honestly need more time to solve this problem and I thought originally users of this api could call a special "unsubscribe" or "destroy" like action w/ a given ArrayProxy when a route transitions away/or a component is destroyed for example. The problem is that most people would either 1) forget about it or 2) hate the boiler plate required to manage this manually (and I personally don't like either option myself).
For now I've published a beta.5 which is nothing more than a revert of the code previously included in the beta.4 that failed. @matthewnessworthy if you get time to run at this w/ beta.3 or beta.5 I'd love your feedback on the performance / what you found during the upgrade process.

Hey @toranb, I did a quick upgrade, and I was surprised at how straightforward it was. I haven't seen much in the way of breakage and things continue to work pretty much as expected.
I think part of the reason is because a lot of the stuff we are currently doing is, in one way or another, wrapped in run loops. Front your comments above I was expecting there to be quite a few broken sections, but honestly, everything is looking good.
On the performance side, the store is no longer the bottleneck. The performance is massively, especially when adding 1000's of records to an already partially populated store. Now most of the performance slowdowns I'm experiencing are rooted in rendering or other components.
Thanks for the great update!

@matthewnessworthy wow that's amazing! Was this w/ beta.5 or some other version from last week?

@toranb with the latest beta 5 from master

@matthewnessworthy awesome news! that is the primary RC for the first v4.0.0 (stable) release so great news! I'll look more into the memory leak issue mentioned above before I release it but it's good to know what we have now is solid!
Thanks again for all the testing/feedback/work you put in to get us this far!

It was my pleasure! Thanks for doing all the work ;)

@matthewnessworthy I learned a ton and wouldn't have been successful w/out help from 2 very performance minded folks in the ember community (Erik Bryn and Chris Thoburn).
Just glad to see that for the most part this library is still simple to use/ easy to build relationships with/etc

@matthewnessworthy the docs need a massive upgrade before the v4.0.0 final release so I'll need to look that over next week. If you have any input on that or anything else let me know. One part I want to rework completely is the relationship comments made as I've learned a lot in the last year about how to do m2m/ one-to-many with this library and it's not reflected in the documentation now.

One part I want to rework completely is the relationship comments made as I've learned a lot in the last year about how to do m2m/ one-to-many with this library and it's not reflected in the documentation now.

This is exciting, we're about to start porting an ED implementation to simple-store and this is the only challenge when I started to scope it all out.
Thanks for this great addon :+1:

@jasonmit @matthewnessworthy I've added an unsubscribe api that allows you to remove filtered Arrays (that are returned when you use find w/ a filter of any kind). This removes the memory leak mentioned above but the downside is that it's manual (in the tests below you can see I added a willTransition hook to my route to remove the filters setup in my model hook)
https://github.com/toranb/ember-cli-simple-store/commit/567d4b3436182f377c6966a25928e71d1f400f37
I haven't yet published this as beta.7 but I'm curious what you think -the big acceptance test I added shows the problem by example if you are unfamiliar w/ the issue.
At this time it looks like ember-data has this same memory leak and providing a way to "cleanup" after yourself easily is the least we could do if we take this to v4.0.0 stable later this month.

Just some bike shedding, but what if instead of keeping these records around and sharing references to it, that query returns a new instance each time it's invoked.  If anyone wants to opt into being notified when a record matching the query is added or removed, they subscribe to an event on the store.  They just also need to be proactive in unsubscribing.
This I think would eliminate the issue (if I am understanding the core issue correctly).

@jasonmit if this is something you have some time to spike out I'd love another set of eyes to prove this is possible w/out a huge departure from what the store looks like today. To this point I've spent time working with a performance benchmark to ensure filters run only once during a given run-loop.
I think the challenge with this approach (if I was to implement it myself) is that right now we don't invoke that function more than once. The returned value is an ArrayProxy that we observe changes with to get "the good parts" of 2WDB.
I've starting using another library (redux) recently that acts more like the event based approach you mention but I have a feeling this would be a big shift for ember developers (something I'm considering heavily as I look at 1 way data flow conceptually /what it means for those heavily invested in ember-data/and 2WDB libraries like this one).
To start, how would the event based approach work for my most common filter scenario (shown below)
the typical one-to-many with user and role
first we wire up a computed in the user model that will get an array proxy we can filter with. This filter also needs to "re-fire" when a model is added/ or updated via push (the public api of the store to add or update objects)
export default Model.extend({
    name: attr(),
    store: inject('main'),
    role: Ember.computed.alias('belongs_to.firstObject'),
    belongs_to: Ember.computed(function() {
        const user_id = this.get('id');
        const store = this.get('store');
        const filter = function(role) {
            const users = role.get('users');
            return Ember.$.inArray(user_id, users) > -1;
        };
        return store.find('role', filter, ['users']);
    })
});

a unit test to show this in action would look something like this
test('role returns associated model or undefined', function(assert) {
    let user = store.push('user', {id: 1});
    store.push('role', {id: 2, name: 'Admin', users: [1]});
    let role = user.get('role');
    assert.equal(role.get('id'), 2);
    store.push('role', {id: 2, users: []}); // requires ember.run in v4.0 now
    role = user.get('role');
    assert.equal(role, undefined);
});

@jasonmit after some additional thought I think it's worth sharing the real goal of the v4.0.0 release. But first a story :)
Back in the 3.x series I felt this library was "done" in the sense that every feature I needed day-to-day was present and bug free. The downside arrived when I learned of the harm something like a @each would do to a computed property in this library. The performance wasn't acceptable but as I started the rework required it was clear the store was suddenly "less" simple.
I understood the tradeoff but quickly found myself hating the api as every piece of production code doing "push" now required an ember.run to flush the queue for relationships to sync up as they did in 3.x. My fear with a large "re-think" is that this library suddenly isn't what I set out to create from the very beginning.
To your point about "subscribe" and "unsubscribe" => I still think it's close to the original use of simple store (w/ the added pain of ember.run all over). When you use a find w/ filter you are in a sense subscribing to changes (the ember 1.x way of thinking). Then later if you want to transition away you can simply unsubscribe to changes (the pain being that it's manually like objective-c all over again).
The problem I solved in the last few weeks was that if we could wait until the end of the run-loop to update each ArrayProxy we could still achieve the simple find/push like api but also the performance that's required to use this with a ton of objects in the store. The big failure on my part was the original implementation used.

I start by creating the ArrayProxy requested
I then add this proxy to a map in the store so we can look it up later
at the end of the run-loop I ask what types need an update (looking at what types have been pushed)
I then re-calculate the ArrayProxy content and set it (so this only occurs once instead of X times)

If it's possible to "set the content" using the ArrayProxy itself at the end of the run-loop this would completely eliminate this memory leak issue. I honestly should have spent more time investigating if this was possible and how it would work :)
Do you have any ideas about how we could do something like this or something similar that wouldn't require us holding a separate cache of "filters" to update later (the core problem in this case)?

@jasonmit one crazy thought off the top of my head

for filtered records we return a subclass of ArrayProxy we own*
in the scheduleOnce we ask this SimpleArrayProxy object to update itself
inside the new "updateYourself" method we ask if this type has been updated, if so set the content

*one entry point right now so this shouldn't be terribly painful to spike out
If we are able to get the same perf results w/ this we've completely eliminated the memory leak issue and kept the api "simple store" like (ember 1.x thinking about 2WDB /etc).
Is this a crazy /terrible idea to try out or ?

@jasonmit looks like a quick run at this wasn't terrible until I hit the "hard part". I need a way to call the "refresh" on each instance (object) from the parent (factory/prototype definition). First up -this is crazy /not sure it can be done but it was a fun take on the memory leak issue we face today.
Any way you can think to make this work from reopenClass ?
var SimpleStoreArrayProxy = Ember.ArrayProxy.extend({
}).reopenClass({
    refreshContent: function(z) {
        //how to invoke the instance of this on each proxy?
    }
});

I need a way to call the "refresh" on each instance (object) from the parent (factory/prototype definition).

I'm lacking some context so I don't fully understand the problem being solved.
I was thinking in my above proposal, you would receive a new array proxy each time you call query.  Reusing the array wouldn't be needed.  Whats the idea behind the method hanging off the constructor and what is the z argument?  Would it take an instance of SimpleStoreArrayProxy and return a new one?

You can ignore my crazy spike - I think your view of the ArrayProxy fix is the most important priority from my view. Would you have time to take a stab at the solution you proposed (or at the very least how that relationship would look in your view)?

@toranb yeah I can take a shot at it once I fully grok everything

@jasonmit awesome - really appreciate the second look. Sorry to dump 2 years of history on you :)

@jasonmit just a heads up - I removed unsubscribe in favor of destroy (about to publish a new beta and didn't want to increase the api surface unless absolutely necessary)
https://github.com/toranb/ember-cli-simple-store/commit/d1eeeb62f628b70d7a396178df6beb293809087c

@jasonmit @matthewnessworthy I just released beta 7 (now the destroy method is available on any filtered ArrayProxy so you can remove it if you find the memory leak discovered above problematic at scale).
I just updated the perf app and it looks like the performance of what we have on master now is still rock solid in the example @matthewnessworthy threw together :)
If you guys could upgrade to beta 7 and report any issues - I only found 2 failing tests in a client project (I'll need to see if that's a regression here or w/ how the ObjectProxy was used)

@jasonmit any other ideas about how to avoid the memory leak we have today? I believe this is present in ember-data also but I'd love to hear some new ideas before we push the stable v4.0.0

@toranb the issue I thought was solved, it just requires the user to be conscious of it and to unsubscribe/destroy the live record array.  Short of that, I don't have anything else in mind right now.  Are there any other leaks?

@jasonmit the "destory" will help cut down on the leak but it's something developers will need to be aware of I'm sure. At this time I'm thinking of closing this issue (as the performance work was a success) and opening another w/ some targets for the v4.0.0 release

add deprecation for the 3rd param of the public find api (to make it clear this argument is not used)
upgrade each example project referenced in the readme
mention destroy and why it's useful now in v4.0
rewrite the relationship section of the readme to show a one-to-many/m2m example
any other misc readme /documentation updates

Anything else you can think of?

  I'm just unsure how references will be freed up within ember.  For example, the models usually stay refenced on inactive controllers/routes.

@jasonmit what would a weakmap look like exactly?
With ember 2.0 (components) you often have the route fetching data for active routes but in a parent/child scenario any cleanup that you kick off in willTransition would occur when you "transition" from parent to child (even when that child route and parent are both in view). It becomes even more difficult if we want to maintain support for ember 1.13 because controllers are singletons that never get thrown out (so far as I know anyway).
After reading this RFC from ember-data it seems clear that we don't have any easy out for this issue. I think at this time we can let the app using simple-store decide when it's done w/ a given array and if they want to call "destroy" it will allow them to reclaim memory.
https://github.com/emberjs/rfcs/pull/23

@jasonmit what would a weakmap look like exactly?

Unsure, when I went to implement it I realized we need to enumerate over the filterMaps which wouldn't work with the pattern I was trying for.  Another alternative would be a mixin factory, where we return an Ember.Mixin and hook into the destroy method of the object to release all of the associated record arrays.
That would look something like this:
import { filter, FilterBuilder } from 'ember-cli-simple-store/find';

const FindFoos = FilterBuilder({
  bars: filter('bars'),
  foos: filter('foos', function() {
    return {
      account_id: this.get('model.account_id')
    };
  })
});

export class Ember.Component.extend(FindFoos, {
  layout: hbs`
    {{#each foos as |foo|}}
      <strong class="foo">
        {{foo.name}}
      </strong>
    {{/each}}
  `
});

Thanks for the feedback / example. I think the part I'm not in love with...  now your component needs to mixin another object responsible for fetching the array data. In my daily work I never have components fetch data like this (it's almost always the route) so it feels strange to see that personally.
It's also possible that we could leave this implementation detail up to the consumer (as this addon is much smaller in scope and often avoids boiling the ocean) -so if they do decide to "fetch data" from a component (and not the route) they can decide to add a mixin/or cleanup in a way that works for them. If instead a dev (like me) would fetch data in the route, they could implement a route mixin (for willTransition lets say).
At this time I think we ship v4.0.0 stable and just make it clear in the docs that a memory leak does exist when you use the "filters" overload for find and how you can manage this w/ destroy. Thoughts ?

Agreed, lets just stick with what we have and continue to think about the issue.  Maybe some collaboration with the ember-data guys since we all seem to be solving the same thing. :+1:


Unable to resolve module fs from node_modules\firebase-admin\lib\firebase-namespace.js: fs could not be found within the project

[READ] Step 1: Are you in the right place?

For issues related to the code in this repository file a Github issue.
If the issue pertains to Cloud Firestore, read the instructions in the "Firestore issue"
template.
For general technical questions, post a question on StackOverflow
with the firebase tag.
For general Firebase discussion, use the firebase-talk
google group.
For help troubleshooting your application that does not fall under one
of the above categories, reach out to the personalized
Firebase support channel.

[REQUIRED] Step 2: Describe your environment

Operating System version: _____
Firebase SDK version: _____
Firebase Product: _____ (auth, database, storage, etc)
Node.js version: _____
NPM version: _____

[REQUIRED] Step 3: Describe the problem
Steps to reproduce:
What happened? How can we make the problem occur?
This could be a description, log/console output, etc.
Relevant Code:
// TODO(you): code here to reproduce the problem

fs is a core Node.js module. If the runtime cannot find it, you're likely running in an environment that doesn't provide core Node.js modules (like a browser environment).

hey i got the same issue... what should i do


[EUWE] Fix spinner when creating new role

This fixes a missing .png for 100/feature_* in rbac_tree. (Ops > Access Controll > Roles > Add a New Role)
Passing an image name without extension to image_path works, but triggers an asset-rebuild the first time the name is encountered :) .. added the extension back.
Cc @hayesr (because https://github.com/ManageIQ/manageiq/pull/13577)
https://bugzilla.redhat.com/show_bug.cgi?id=1440701

@miq-bot add_label blocker, bug, ui

Ugh, thanks @himdel


Add eslint to node bindings

No code changes were included.
note: I coped the eslint configuration from @chainsafe/blst-ts
Inclusions

Add industry standard eslint
Run format
Add command to makefile

If you removed Typescript to keep the bindings less verbose in terms of tooling, adding eslint kind of completely reverses that idea right?

referencing https://github.com/ethereum/c-kzg-4844/pull/260

I was talking with @jtraglia and he asked about some linting in the C code so I put up #268 and asked if I should add eslint for the TS/JS.  I do not feel strongly about this inclusion and am ok with either merging or closing this.  What are your thoughts @asn-d6

There are merge conflicts from the last merge and there will be another round when the #268 gets merged.  I will fix them all in one go after that one is good to go.

Let's do it!


Message broker interpretations on the spec ambiguities

Description
We need to research on the items specified on the following link and decide on our interpretations regarding those items.
https://www.rabbitmq.com/amqp-0-9-1-errata.html

Field types fixed in #387


Remove unwanted dependencies

I'm submitting a ...
[ ] bug report
[ x] feature request
[ ] question about the decisions made in the repository

Do you want to request a feature or report a bug?

Feature for submenu libraries info.
For instance if I remove maps i will remove the maps library.
What if I want to remove editor, ui from the menu. How do I know which dependencies to remove for them if i no longer need them?

What is the current behavior?

If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem via
https://plnkr.co or similar (you can use this template as a starting point: http://plnkr.co/edit/tpl:AvJOMERrnz94ekVua0u5).

What is the expected behavior?

What is the motivation / use case for changing the behavior?

To bundle files and use have less memory in production

Please tell us about your environment:

Angular version: 2.0.0-rc.X
Browser: [all | Chrome XX | Firefox XX | IE XX | Safari XX | Mobile Chrome XX | Android X.X Web Browser | iOS XX Safari | iOS XX UIWebView | iOS XX WKWebView ]

Other information (e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, eg. stackoverflow, gitter, etc)

Closing due to inactivity.


Update README.md

Issue [#13]

Hey @dp221125, please read the Contribution Guide. You need to update the YAML file and run the regeneration script.

I'm Sorry.
I'm bundle install, and run script. but i got a error
"./generate.rb:4:in <main>': undefined method error' for main:Object (NoMethodError)"

can you run ruby generate.rb instead of running with ./ ?

Umm..I got a same error..

It shouldn't fail but the fact it does means you don't have csv2md installed. Are you sure you properly ran bundle install ?
Can you manually open the ruby script and remove the line that starts with error(... and try running it again?


implement Array.mote_to

coverage: 94.479% (+0.02%) from 94.462%
when pulling 9f4211df62843c0b88d0a2adedf3e1fc6001be41 on array_move
into 765f1cc0d9da64e7d03b820d148ce2fa6dbbab2b on main.


Workers coloring implementation.

[x] Logs with deployment names
[x] Different colors for all the workers
[x] Handling data races

@HeeManSu I tried deploying the apps which were already present in the .metacall/faas/apps, and when one of the apps named mailchimp-dynamodb-example thrown error, you can see that same application id got different color in different lines.
Also Some logs are getting repeated, if you see the starting lines for mailchimp app logs, you will see that it says "Script loaded correctly" for 2 times
Please look into these issues, thanks
I deployed this example: https://github.com/metacall/mailchimp-dynamodb-example

@Creatoon You are getting repeated logs (Script loaded correctly) because the Mailchimp example has two languages to run Metacall (Static Files and NodeJS).
They create two JSON files, metacall-file.json for Static Files and metacall-node.json for NodeJS.
The metacall-file.json is getting deployed successfully but metacall-node.json  throwing an error.
I think the error is related to dependencies.

@HeeManSu there's conflicsts in:
src/utils/autoDeploy.ts
src/utils/logger.ts

Resolve them please.


K8SSAND-1799 ⁃ Update container registry from Docker Hub to something else

What is missing?
Docker Hub has instituted pull limits for authenticated and anonymous users. This can lead to issues if a pull secret is not configured and used within Kubernetes.
Why do we need it?
Users may run into the issue of images not being pulled due to hitting their rate limit

Cass Operator version:

Any
Anything else we need to know?:
We should make the change to the major / minor branches in addition to master.
┆Issue is synchronized with this Jira Task by Unito
┆friendlyId: K8SSAND-1799
┆priority: Medium

We should not remove Docker Hub, it will break everything. We can publish to additional ones, but not remove Docker Hub.

PR #412 pushes to Github Repository also (ghcr.io)

Though I have to say, I don't understand how people hit limitations with cass-operator pulls.

FWIW I'm not looking to remove Docker Hub. I should make that more clear in the ticket. There will just be a new default. The PR I'm hacking on just adds the new location in addition to Docker Hub.


gosu does not install on Debian Sid

Gist of data is at
https://gist.github.com/russel/b33cf00b06247811e8bef481ce521ad6
Let me know what other experiments/data to provide to help sort this out and I shall provide.

Linuxbrew does not currently have proper support for Java 8. See https://github.com/Linuxbrew/brew/issues/509
Your best bet forward would be to ask the upstream developers of gosu to add support for Java 9.
You can try…
brew unlink jdk
brew install jdk@8
brew link --force jdk@8
brew install gosu

which may get you further, but no promises.

Understood. Wilco.
BTW Java 10 is the current version of Java! So if Gosu requires Java 8, it is so far behind the line, it is become irrelevant.

Issue posted at https://github.com/gosu-lang/gosu-lang/issues/131


希望它是这个样子，并且可以在边界隐藏。

感谢您增加了这些功能。
我希望它是这个样子，并且可以在边界隐藏，供您参考。
谢谢。

can you please translate in english

using Google Translate, after some attemps, I've understood that you were trying to set the toolbar like your drawing. the orignal capabilities to customize the toolbar are limited. What I can propose you is the capability to set the pens on two lines(Beta version attached) In order to set the buttons as you are proposing, you just have to modify the buttons templates and put them in ppInk folder.
ppInk64_15a.zip
Give me your feedbacks

without feed back I close this issue. feel free to reopen it if you have new inputs


Maximum search results?

I am setting the From parameter in my search to go through all results, but when I get to 1000 results I get an error that "BadRequestThe maximum allowed page size is 1000"
How do I page past 1000 items?

Hi @catmanjan this isn't a good place to ask general Microsoft Graph how-to questions. There's a Microsoft Graph section on Q&A that is a better forum.


Update parser readme

Hi @Geal ,
This (trivial) PR does some maintenance on the README file:

remove Redis, not using nom
add more references to various parsers

Note that I added my pcap(and pcapng) parser even if there are others, those are not maintained, and do not cover the entire format specifications.

Coverage decreased (-0.1%) to 87.694% when pulling 4a1a149c243b11fd975e1ab511787503764899a6 on chifflier:update-parser-readme into 41f461f0a19ce537dc17322e244bca3af695cc68 on Geal:master.

great, more parsers :)


"PropagationPolicy" What should it be translated into?

What would you like to be added:
Standard "PropagationPolicy " of the Chinese language.
like: 分发策略、传播策略
Why is this needed:
In the Chinese open platform:

In our documents:

@Poor12 @RainbowMango

I would vote for 分发策略 and we can't control how people translate it.

+1

agree +1

分发策略 +1


PR #12799 from dmipx: l4t: uvc patch fix localversion

w/o setting an empty localversion, the make script was concatenating a # to the new kernel name, and this caused the script to miss the required kernel name.
This hack fix it

What does this do? What was the problem? At least add a description...

What does this do? What was the problem? At least add a description...

Updated