test: increase code coverage

Related to #40

The one failing test is due to mocks relying on github.com/tonistiigi/fsutil/types. This is required for the mocks to work. More specifically, this is required for mocking the behaviour of this line:
https://github.com/project-copacetic/copacetic/blob/9da12469013f43505f91afab625b8351b5644fe2/pkg/buildkit/buildkit.go#L88

@MiahaCybersec could you try running "go mod tidy"?

Had to resolve some conflicts between my branch and main which forced a merge


easy-rsa over repository

@Nyr that would be a lot helpful to me, thanks.


add current state section to info page

rearrange logo and corresponding label for the wir-vs-virus hackthon project section

Furthermore moves the wirvsvirushackthon-project banner to footer component, together with link to GitHub repo and corresponding image.

8730119 also fixes #44


Window destroy on android and iOS

Description

This PR should provide window destroy (app exit) function for Android and IOS platforms
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Checklist:

[x] I signed the CLA.
[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] My changes generate no new warnings

[ ] New and existing tests pass locally with my changes
[ ] I have made corresponding changes to the documentation (if applicable)

Summary by Sourcery
This pull request introduces a new feature that allows the application to destroy the window (exit the app) on Android and iOS platforms. The implementation checks the platform and performs the appropriate action to close the app.

New Features:

Added window destroy functionality for Android and iOS platforms.

I have even found SystemNavigator.pop() to not always work on android, especially on google TV, exit(0) seems to be only reliable way to terminate app on android. On IOS I believe there is no way to terminate. exit(0) is next best thing there as well but should background it on that platform.


docopts: 0.6.3 -> 0.6.4

Motivation for this change
Version 0.6.3 was affected by a bug (https://github.com/docopt/docopts/issues/47) that has been resolved in 0.6.4.
Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.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

[x] Fits CONTRIBUTING.md.

Please target master first then backport to release-21.05.

Sorry everyone for the noise this created. I tried changing the base branch to master as asked in the comment but seems something went wrong (I got a 500 error).
Working on rebasing this.

Closing this as I'm not sure what is going on.
@bobby285271 I'm very sorry for the mess :(
I'll open a different PR targeting master as requested.

As mentioned in GitHub docs:

Code owners are automatically requested for review when someone opens a pull request that modifies code that they own. Code owners are not automatically requested to review draft pull requests.

Though I haven't opened a PR that targeted a wrong branch myself, I guess it will be a good idea to draft and maybe close the PR before changing the target branch. Also the release-* branch may contain commits that are not in master so you will need to do some rebases and force pushes when changing the target branch.


Disable API health check of downstream services

Fixes #2048
What is being addressed
We want to disable the logic where the API pings downstream services to test an assumption that those cause timeouts in the system.
Preliminary tests showed that they sometimes those take a long time and some are probably blocking so making the server unresponsive to other requests.
How is this addressed

Disable downstream services health check

/test

/test-force-approve
All tests passed (pr run and branch run) but for some reason the check wasn't marked so had to force it.

/test-force-approve

/test-force-approve


Bandit is not differentiating between pyCrypto and pyCryptodome import

Describe the bug
Bandit is blacklisting import from pyCryptodome thinking it is an import from pyCrypto.
blacklist: The pyCrypto library and its module AES are no longer actively maintained and have been deprecated. Consider using pyca/cryptography library.
Test ID: B413
Severity: HIGH
Confidence: HIGH
More info: https://bandit.readthedocs.io/en/latest/blacklists/blacklist_imports.html#b413-import-pycrypto
To Reproduce
Steps to reproduce the behavior:
Import AES from pyCrytodome as follows:
from Crypto.Cipher import AES
Expected behavior
This import shouldn't have been blacklisted as this is an import from white listed library.
https://bandit.readthedocs.io/en/latest/blacklists/blacklist_imports.html#b414-import-pycryptodome
Bandit version
1.6.2

I'm still finding the same bug almost two years later 😞 I'm using the following workaround:
bandit -r core/ -lll -s B413

I just have to manually confirm that pyCrypto is not installed on my project, which works but kinda defeats the purpose of using bandit in the first place.

The pyCrytodome library chose to reuse the same namespace as pyCrypto. As a result, I don't know of a way to distinguish the two using static analysis. Bandit is only examining the AST, not requirements/dependencies. But I'm open to suggestions.

Another workaround is to use pip install pycryptodomex as suggested:
https://pycryptodome.readthedocs.io/en/latest/src/introduction.html
As a result, the namespaces will be Cryptodome and not Crypto.

There's no good way to fix this from Bandit. However, there is a workaround, so closing for now.


Allow to override schematics files for default library individually

Bug Report or Feature Request (mark with an x)
- [ ] bug report -> please search issues before submitting
- [x] feature request

Command (mark with an x)
- [x] new
- [ ] build
- [ ] serve
- [ ] test
- [ ] e2e
- [x] generate
- [x] add
- [ ] update
- [ ] lint
- [ ] xi18n
- [ ] run
- [ ] config
- [ ] help
- [ ] version
- [ ] doc

Versions

node: v8.12.0
npm: 6.4.1
ng:

Angular CLI: 6.2.3
Node: 8.12.0
OS: win32 x64
Angular:
...

Package                      Version
------------------------------------------------------
@angular-devkit/architect    0.8.3
@angular-devkit/core         0.8.3
@angular-devkit/schematics   0.8.3
@schematics/angular          0.8.3
@schematics/update           0.8.3
rxjs                         6.2.2
typescript                   2.9.2

Desired functionality

I would like to override a single schematic in the default angular schematics. In my case, I would like to replace the spec files with a custom Jest optimized file instead of the Jasmine file. One thing I notice I could do with Jest, is to resolve promises using async/await, but the current schematics uses async function instead.
I don't want to create a package just to change one schematics, but just to configure the Angular CLI to read a custom schematic when it would create a file that I want to override.
Mention any other details that might be useful

I have almost the same exact use-case as you. I have some default stuff I want to change in the default templates, and I'd like to support everything the default templates do options/schema-wise, but just be able to tweak the output, but it doesn't seem as though this is possible. :(

The same use case here. Ideally, I'd like to change the way *.component.spec.ts files are generated.

Same issues here. I want my spec files to use Jest and Spectator, which is possible with spectator's schematics. However, in order to use the custom schematics, it requires a different command than the default. In this case, I have to generate my components with ng g cs <comp-name> instead of ng g c <comp-name>. It can be challenging to re-educate all the devs working on the project to use the different generator. It also means we only have whatever options are given by Spectator's schematic, which doesn't necessarily include all the options in the default component schematic. For example, Spectator's component schematic doesn't have a --spec-only flag, which I would find very useful.

We have a requirement to place spec files in a test folder outside of src/app.  It would be nice for developers to use the same generate commands e.g. ng g c <name> but have it use an overridden version of the default schematic.

any news, or possible workarounds for that? 👀
I also have the same situation - would love to just override spec file generation and still be able to use ng g c command

any news, or possible workarounds for that? 👀
I also have the same situation - would love to just override spec file generation and still be able to use ng g c command

Hi,
Changing a file in the default schematic can be done by extending the schematic.
Below is a simple example to filter out .spec.ts files and write other files which are located in ./files example.
export default function (options: ComponentOptions): Rule {
 const parsedPath = parseName(options.path, options.name);

  return chain([
    externalSchematic('@schematics/angular', 'component', options),
    filter(f => !f.endsWith('spec.ts')),
    mergeWith(apply(url('./files'), [ // Custom spec files are located here.
      template({...options}),
      move(parsedPath.path)
    ])),
  ]);
}

You can still use the same commands to run your custom schematic, etc.. IE: point ng generate component to your schematic. This can be done changing setting the defaultCollection to your schematic ex: ng config cli.defaultCollection @myorg/schematic.
For a real-world example see the @ngrx/schematics.
Docs: https://ngrx.io/guide/schematics
Sourcecode: https://github.com/ngrx/platform/blob/master/modules/schematics/collection.json

Hi,
Changing a file in the default schematic can be done by extending the schematic.
Below is a simple example to filter out .spec.ts files and write other files which are located in ./files example.
export default function (options: ComponentOptions): Rule {
 const parsedPath = parseName(options.path, options.name);

  return chain([
    externalSchematic('@schematics/angular', 'component', options),
    filter(f => !f.endsWith('spec.ts')),
    mergeWith(apply(url('./files'), [ // Custom spec files are located here.
      template({...options}),
      move(parsedPath.path)
    ])),
  ]);
}

You can still use the same commands to run your custom schematic, etc.. IE: point ng generate component to your schematic. This can be done changing setting the defaultCollection to your schematic ex: ng config cli.defaultCollection @myorg/schematic.
For a real-world example see the @ngrx/schematics.
Docs: https://ngrx.io/guide/schematics
Sourcecode: https://github.com/ngrx/platform/blob/master/modules/schematics/collection.json


Twitter (Firefox/Chromium): Pronouns appear under botsentinel ratings

Tested on Firefox & Chromium. This occurs when also using the botsentinel extension for either browser.
Expected behavior: Pronouns appear in the same line as other tweet/user info, and the botsentinel rating shows up on the next line.
A demo of what that would look like:

Actual behavior: Pronouns appear on a separate line, underneath the botsentinel rating.

What I'm pretty sure is happening is that botsentinel and pronoundb both just place their elements as the last one in the list. Since botsentinel's ratings show up on a second line, and the element also takes up that whole line, pronouns end up on a third line.
So ensuring that pronouns only get inserted after elements that are actually from twitter would probably fix this.
For quick access, here's the botsentinel extension for firefox and chrome

Version 0.8.0 is currently pending review in all stores; should be coming to Firefox very shortly, Chrome in a few hours and Edge in a few days.


Change behavior of prisma-fmt subcommand referential-actions - currently returns [] in too many cases

Source code https://github.com/prisma/prisma-engines/blob/master/prisma-fmt/src/actions.rs
This is problematic in the case of the language-server perspective.
What would be perfect in a language-server perspective:

sends a schema as stdin of prisma-fmt referential-actions
engine ignores validation of models (only reads datasource for provider & generator for preview flag)
return the possible referential actions

Note: maybe the engine could only read the datasource as the preview flag will go away soon.
Current implementation in language server is hardcoded, done via PR https://github.com/prisma/language-tools/pull/847
Because the engine validate the full schema and most of the time errors on "something" and return an empty array []

Also affects the native types command


Remove storage of stacks on context object

Fixes GH-111
This will be, in theory, less efficient since every time you call
get_stacks it will have to rebuild the Stack objets, but in the end it
saves the nasty memory issue we have, and it's simple.


Add Kafka broker and ZooKeeper services to coverage workflow

Description
Add Kafka broker and ZooKeeper services to coverage workflow. This should fix the coverage workflow.

Coverage passes with this change. Merging with admin privileges o//


[Documentation]Add documentation for setup CI/CD for Enterprise Template and VA

Is your feature request related to a problem? Please describe.
Add documentation for setup CI/CD for Enterprise Template and VA
Describe the solution you'd like
Customers need help setting up CI/CD for Enterprise Template + VA to have a better development & integration experience. We need to add documentation around that to provide guidance how to do that.
e.g.:

[ ] Build Pipeline
[ ] Refreshing Dispatch (via CLI?)
[ ] Unit Tests
[ ] Deployment

Linked to #932

Dupe of #932 targeted for shortly after build


Add error checks for database specs

NREL doesn't maintain the CEC module and inverter databases, but sometimes the specifications in the CEC databases are wrong. We encourage users to report the issues directly to the CEC; however, it might be nice to also have a few simple mechanisms in place to alert the user that the specs for the component they've chosen look suspicious.
For both the inverter and the modules, we could display some warnings (probably in the UI?) when specs are either not physical (negative or zero voltages, etc) or not self-consistent (voltage and current don't multiply to the same order of magnitude as power, etc). More thought is needed to figure out what we could check for, and how to best display it.

Hi Allen,
Thanks for offering to help!
The process we use to build SAM's module and inverter libraries from the data in the CEC lists is:

Download the appropriate Excel file (.xlsx) from the CEC Solar Equipment Lists website.

Manually process the Excel file to remove unneeded rows information and clean up some things like extraneous Greek characters, and tabs, commas and line breaks within cells.

Save the cleaned-up Excel file as CSV.

Run a script to convert the data in the CSV file to SAM's library format. This involves running code for each module or inverter to calculate model input coefficients from the datasheet parameters in the CEC data that are in SAM's library file but not included in the CEC data. (For example, the module coefficient generator calculates coefficients for the 6-parameter single diode module model like light current and reverse saturation current.)

Run a test script to identify any modules and inverters that cause simulation problems and manually remove them from the list. In this step, we do some checks on the inverter data to try to identify suspicious ones.

I am happy to share the scripts we use and more details of the process.
We have been wanting to convert these scripts from SAM's LK scripting language to Python with the PySAM package, but have not had time to do that.
One other note is that the CEC Solar Equipment Lists website mentions that they are changing the format of the equipment lists after October 31, 2021, so we will likely need to update our process to work with the new format: https://www.energy.ca.gov/programs-and-topics/programs/solar-equipment-lists.
Thanks,
Paul.

@allenlawrence94 pvlib includes a function showing how to access the SDK functions to run the parameter estimation code.. See fit_cec_sam here; maybe helpful for this effort.
A few years back @janinefreeman and I had some discussion about rehosting the parameter generation capability outside of SAM, and to smooth over some of the cracks between the SAM parameter files and other applications making use of those files. Some of that conversation is in this thread.  We set up a project here to contain a parameter generation engine but didn't get past that point. For my part I'm happy to help build and maintain that engine.
It is my opinion that a separate open-source engine translating the CEC database to model parameters would benefit the modeling community, including SAM developers and users.

@cwhanse - I think having a separate open source engine for this is an awesome idea! I'm mid-way through a prototype script for pv modules. Once I get in working order, how about I open a PR to pvlib/pvmodules?
Thanks for the guidance and support.

@cwhanse The SSC code (C++) that calculates the inverter model parameters ("coefficient generator" or "cg" in SAM lingo) is here: https://github.com/NREL/ssc/blob/develop/ssc/cmod_inv_cec_cg.cpp
The SSC code that calculates module model parameters for SAM's 6-parameter single-diode module model is here: https://github.com/NREL/ssc/blob/develop/ssc/cmod_6parsolve.cpp
These are SSC compute modules, so they can be accessed using any of the following methods:

In SAM, using the ssc_exec() function in SAM's LK scripting language.
In a Python script using the PySAM package
In any of the languages for which there is a wrapper in the SAM SDK

Sorry for the radio silence @cpaulgilman! @kanderso-nrel for visibility (thanks for reminding me about this).
I have a simple (and messy) notebook that generates coefficients for the CEC modules dataset using PySAM, but I never figured out how to handle all the missing/erroneous data. I've had to shift focus away from this, but I'll clean up and push what I currently have to pvmodules in case someone else can pick up my slack before I come back to this.

PR here: https://github.com/pvlib/pvmodules/pull/11

Scripts and instructions for the process NREL uses to generate module and inverter library CSV files from CEC Excel workbooks are here: https://github.com/NREL/SAM/tree/develop/samples/CEC Module and Inverter Libraries


Jobs cannot start due to PLATFORM_FAILURE

Organization Name:

Short summary about the issue/question: Jobs cannot start due to PLATFORM_FAILURE
Brief what process you are following:
Just submit the jobs as usual. Then failed with PLATFORM_FAILURE.
Exit Diagnositics:
[Exit Trigger Info]

ExitTriggerMessage: FailedTaskCount 1 has reached MinFailedTaskCount 1 in the TaskRole
ExitTriggerTaskRole: taskrole
ExitTriggerTaskIndex: 0

--------------------------------------------------------------------------------

[Exit Spec]

code: 1
phrase: PAIRuntimeExitAbnormally
issuer: PAI_RUNTIME
causer: PAI_RUNTIME
type: PLATFORM_FAILURE
stage: UNKNOWN
behavior: UNKNOWN
reaction: RETRY_TO_MAX
reason: 'PAI Runtime exit abnormally with undefined exitcode, it may have bugs'
repro:
  - PAI Runtime exits with exitcode 1
solution:
  - Contact PAI Dev to fix PAI Runtime bugs

--------------------------------------------------------------------------------

[Exit Diagnostics]

Pod failed: PodPattern unmatched:
containers:
  - name: init
    reason: Error
    message: >
      m framework.json

      + CHILD_PROCESS=PLUGIN_INITIALIZER

      + python /usr/local/pai/init.d/initializer.py
      /usr/local/pai/runtime.d/job_config.yaml
      /usr/local/pai/secrets/secrets.yaml
      /usr/local/pai/user-extension-secrets/userExtensionSecrets.yaml
      /usr/local/pai/token-secrets/token /usr/local/pai/plugins
      /usr/local/pai/runtime.d taskrole

      2021-06-06 09:43:22,673 - INFO - initializer.py:235 - loading yaml from
      /usr/local/pai/runtime.d/job_config.yaml

      2021-06-06 09:43:22,680 - INFO - initializer.py:173 - Starting to prepare
      plugin ssh

      2021-06-06 09:43:22,759 - INFO - initializer.py:52 - 2021-06-06
      09:43:22,758 - INFO - init.py:118 - Ssh runtime plugin perpared

      2021-06-06 09:43:22,765 - INFO - initializer.py:173 - Starting to prepare
      plugin teamwise_storage

      2021-06-06 09:43:23,078 - INFO - initializer.py:52 - This plugin is
      deprecated, will ignore this plugin

      + CHILD_PROCESS=PORT_CONFLICT_CHECKER

      + python /usr/local/pai/init.d/port.py
      /usr/local/pai/runtime.d/runtime_env.sh

      2021-06-06 09:43:23,161 - INFO - port.py:71 - runtime env from
      /usr/local/pai/runtime.d/runtime_env.sh

      Traceback (most recent call last):
        File "/usr/local/pai/init.d/port.py", line 81, in <module>
          main()
        File "/usr/local/pai/init.d/port.py", line 76, in main
          check_port_list_env(matches.group(1))
        File "/usr/local/pai/init.d/port.py", line 59, in check_port_list_env
          check_port(int(each))
        File "/usr/local/pai/init.d/port.py", line 44, in check_port
          ret = sock.connect_ex(('localhost', portno))
      socket.gaierror: [Errno -2] Name does not resolve

      + exit_handler

      + EXIT_CODE=1

      + '[[' 1 -eq 0 ]]

      + echo 'start execute exit handler'

      start execute exit handler

      + echo 'child process is PORT_CONFLICT_CHECKER, exit code is 1'

      child process is PORT_CONFLICT_CHECKER, exit code is 1

      + '[[' PORT_CONFLICT_CHECKER '=' FRAMEWORK_BARRIER ]]

      + '[[' PORT_CONFLICT_CHECKER '=' PORT_CONFLICT_CHECKER ]]

      + '[[' 1 -eq 10 ]]

      + '[[' PORT_CONFLICT_CHECKER '=' DOCKER_IMAGE_CHECKER ]]

      + echo 'Unknown exit code, platform error'

      Unknown exit code, platform error

      + exit 1
    code: 1
  - name: app
    code: 0

barrier.log
I0606 09:43:22.550655      14 barrier.go:211] Initializing frameworkbarrier
I0606 09:43:22.550763      14 barrier.go:214] With Config:
kubeApiServerAddress: ""
kubeConfigFilePath: ""
frameworkNamespace: default
frameworkName: 979108637ba7a69e0cab6f52ddeacb19
barrierCheckIntervalSec: 10
barrierCheckTimeoutSec: 600
W0606 09:43:22.550780      14 client_config.go:549] Neither --kubeconfig nor --master was specified.  Using the inClusterConfig.  This might not work.
I0606 09:43:22.551656      14 barrier.go:227] Running frameworkbarrier
I0606 09:43:22.561792      14 barrier.go:322] BarrierPassed: 1/1 Tasks are ready with not nil PodIP.
I0606 09:43:22.561802      14 barrier.go:267] BarrierSucceeded: All Tasks are ready with not nil PodIP.
I0606 09:43:22.562893      14 barrier.go:350] Succeeded to dump the Framework object to local file: ./framework.json
I0606 09:43:22.562942      14 barrier.go:451] Succeeded to generate the injector script to local file: ./injector.sh
I0606 09:43:22.562963      14 barrier.go:459] ExitCode: 0: Exit with success.

init.log
+ CHILD_PROCESS=UNKNOWN
+ trap exit_handler EXIT
+ PAI_WORK_DIR=/usr/local/pai
+ PAI_CONFIG_DIR=/usr/local/pai-config
+ PAI_INIT_DIR=/usr/local/pai/init.d
+ PAI_RUNTIME_DIR=/usr/local/pai/runtime.d
+ PAI_LOG_DIR=/usr/local/pai/logs/6c17d723-6524-4856-a3e0-3f126f677981
+ PAI_SECRET_DIR=/usr/local/pai/secrets
+ PAI_USER_EXTENSION_SECRET_DIR=/usr/local/pai/user-extension-secrets
+ PAI_TOKEN_SECRET_DIR=/usr/local/pai/token-secrets
+ chmod a+rw /usr/local/pai/logs/6c17d723-6524-4856-a3e0-3f126f677981
+ find /usr/local/pai/logs/6c17d723-6524-4856-a3e0-3f126f677981 -maxdepth 1 -type f '!' -name init.log
+ LOG_FILES=
+ '[[' '!' -z  ]]
+ find /usr/local/pai -maxdepth 1 -mindepth 1 '!' -name logs -exec rm -rf '{}' ';'
rm: can't remove '/usr/local/pai/user-extension-secrets/..data': Read-only file system
rm: can't remove '/usr/local/pai/user-extension-secrets/userExtensionSecrets.yaml': Read-only file system
rm: can't remove '/usr/local/pai/user-extension-secrets/..2021_06_06_09_43_19.217927308/userExtensionSecrets.yaml': Read-only file system
+ mv ./__init__.py ./common ./init ./init.d ./package_cache ./plugins ./requirements.txt ./runtime ./runtime.d /usr/local/pai
+ cd /usr/local/pai
+ '[[' true '=' true ]]
+ CHILD_PROCESS=FRAMEWORK_BARRIER
+ echo 'frameworkbarrier start'
frameworkbarrier start
+ '[[' -f /var/run/secrets/kubernetes.io/serviceaccount/token ]]
+ unset KUBE_APISERVER_ADDRESS
+ /usr/local/pai/init.d/frameworkbarrier
+ tee /usr/local/pai/logs/6c17d723-6524-4856-a3e0-3f126f677981/barrier.log
I0606 09:43:22.550655      14 barrier.go:211] Initializing frameworkbarrier
I0606 09:43:22.550763      14 barrier.go:214] With Config:
kubeApiServerAddress: ""
kubeConfigFilePath: ""
frameworkNamespace: default
frameworkName: 979108637ba7a69e0cab6f52ddeacb19
barrierCheckIntervalSec: 10
barrierCheckTimeoutSec: 600
W0606 09:43:22.550780      14 client_config.go:549] Neither --kubeconfig nor --master was specified.  Using the inClusterConfig.  This might not work.
I0606 09:43:22.551656      14 barrier.go:227] Running frameworkbarrier
I0606 09:43:22.561792      14 barrier.go:322] BarrierPassed: 1/1 Tasks are ready with not nil PodIP.
I0606 09:43:22.561802      14 barrier.go:267] BarrierSucceeded: All Tasks are ready with not nil PodIP.
I0606 09:43:22.562893      14 barrier.go:350] Succeeded to dump the Framework object to local file: ./framework.json
I0606 09:43:22.562942      14 barrier.go:451] Succeeded to generate the injector script to local file: ./injector.sh
I0606 09:43:22.562963      14 barrier.go:459] ExitCode: 0: Exit with success.
+ CHILD_PROCESS=ERROR_SPEC
+ cp /usr/local/pai-config/runtime-exit-spec.yaml /usr/local/pai/runtime.d
+ CHILD_PROCESS=ENV_GENERATOR
+ python /usr/local/pai/init.d/framework_parser.py genenv framework.json
2021-06-06 09:43:22,595 - INFO - framework_parser.py:196 - loading json from framework.json
2021-06-06 09:43:22,596 - INFO - framework_parser.py:107 - task roles: {'taskrole': {'number': 1, 'ports': {'schedulePortStart': 15000, 'schedulePortEnd': 40000, 'ports': {'ssh': {'count': 1}, 'http': {'count': 1}}}}}
+ CHILD_PROCESS=CONFIG_GENERATOR
+ python /usr/local/pai/init.d/framework_parser.py genconf framework.json
2021-06-06 09:43:22,628 - INFO - framework_parser.py:196 - loading json from framework.json
+ CHILD_PROCESS=PLUGIN_INITIALIZER
+ python /usr/local/pai/init.d/initializer.py /usr/local/pai/runtime.d/job_config.yaml /usr/local/pai/secrets/secrets.yaml /usr/local/pai/user-extension-secrets/userExtensionSecrets.yaml /usr/local/pai/token-secrets/token /usr/local/pai/plugins /usr/local/pai/runtime.d taskrole
2021-06-06 09:43:22,673 - INFO - initializer.py:235 - loading yaml from /usr/local/pai/runtime.d/job_config.yaml
2021-06-06 09:43:22,680 - INFO - initializer.py:173 - Starting to prepare plugin ssh
2021-06-06 09:43:22,759 - INFO - initializer.py:52 - 2021-06-06 09:43:22,758 - INFO - init.py:118 - Ssh runtime plugin perpared
2021-06-06 09:43:22,765 - INFO - initializer.py:173 - Starting to prepare plugin teamwise_storage
2021-06-06 09:43:23,078 - INFO - initializer.py:52 - This plugin is deprecated, will ignore this plugin
+ CHILD_PROCESS=PORT_CONFLICT_CHECKER
+ python /usr/local/pai/init.d/port.py /usr/local/pai/runtime.d/runtime_env.sh
2021-06-06 09:43:23,161 - INFO - port.py:71 - runtime env from /usr/local/pai/runtime.d/runtime_env.sh
Traceback (most recent call last):
  File "/usr/local/pai/init.d/port.py", line 81, in <module>
    main()
  File "/usr/local/pai/init.d/port.py", line 76, in main
    check_port_list_env(matches.group(1))
  File "/usr/local/pai/init.d/port.py", line 59, in check_port_list_env
    check_port(int(each))
  File "/usr/local/pai/init.d/port.py", line 44, in check_port
    ret = sock.connect_ex(('localhost', portno))
socket.gaierror: [Errno -2] Name does not resolve
+ exit_handler
+ EXIT_CODE=1
+ '[[' 1 -eq 0 ]]
+ echo 'start execute exit handler'
start execute exit handler
+ echo 'child process is PORT_CONFLICT_CHECKER, exit code is 1'
child process is PORT_CONFLICT_CHECKER, exit code is 1
+ '[[' PORT_CONFLICT_CHECKER '=' FRAMEWORK_BARRIER ]]
+ '[[' PORT_CONFLICT_CHECKER '=' PORT_CONFLICT_CHECKER ]]
+ '[[' 1 -eq 10 ]]
+ '[[' PORT_CONFLICT_CHECKER '=' DOCKER_IMAGE_CHECKER ]]
+ echo 'Unknown exit code, platform error'
Unknown exit code, platform error
+ exit 1

How to reproduce it:

OpenPAI Environment:

OpenPAI version: v1.6.0
Cloud provider or hardware configuration: NA
OS (e.g. from /etc/os-release):  Ubuntu 18.04.5 LTS (Bionic Beaver)
Kernel (e.g. uname -a): 4.15.0-144-generic
Hardware (e.g. core number, memory size, storage size, GPU type etc.):
Others:

Anything else we need to know:

I found the problem, my /etc/hosts file is damaged.

@siaimes   I have similar error ， please  how did you solved your problem?
@

@poetryben88  Repair your /etc/hosts and /etc/resolv.conf of this node.

@poetryben88
Your error is this:
Failed to get Framework object from ApiServer: Unauthorized
My error is this:
socket.gaierror: [Errno -2] Name does not resolve

Do not the same!

@siaimes   thanks  ,  anyway!  Maybe  help me a lot.


[kube-prometheus] Helm chart won't deploy without TPR/CRDs in place

What did you do?
helm repo add coreos https://s3-eu-west-1.amazonaws.com/coreos-charts/stable/
helm install coreos/kube-prometheus

What did you expect to see?
Prometheus deployed
What did you see instead? Under which circumstances?
Error: apiVersion "monitoring.coreos.com/v1" in kube-prometheus/charts/exporter-kubernetes/templates/servicemonitor.yaml is not available

Environment
Kubernetes 1.8 with RBAC

Kubernetes version information:

Client Version: version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.5", GitCommit:"cce11c6a185279d037023e02ac5249e14daa22bf", GitTreeState:"clean", BuildDate:"2017-12-07T16:16:03Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"8+", GitVersion:"v1.8.4+coreos.0", GitCommit:"4292f9682595afddbb4f8b1483673449c74f9619", GitTreeState:"clean", BuildDate:"2017-11-21T17:22:25Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}

Kubernetes cluster kind:

kube-aws

Manifests:

Used the Helm chart.

Discussion:

Looks like a chicken and egg problem with the chart and CRDs. Could we have a helm/README.md that gives us the steps to deploy with Helm? Maybe a Helm chart just to create the CRDs, then a second chart to actually deploy?

Closing this issue because we provide the instruction on how to skip the error, this should be fixed in helm not here. https://github.com/kubernetes/helm/issues/2994

Would it be an option to use the Helm hook called crd-install to deploy the Prometheus CRDs?
If I understand it right, then Helm would use that hook and create the CRDs first to prevent this issue?
See https://docs.helm.sh/developing_charts#defining-a-crd-with-the-crd-install-hook


analyze_deps should discover true incompatibilities, versus differing version specifiers

Example:

azure-storage-blob takes dependency on azure-core<2.0.0,>=1.0.0b3
azure-keyvault-secrets takes dependency on azure-core<2.0.0,>=1.0.0b2

There are no true incompatibilities here, 1.0.0b3 will work with azure-keyvault-secrets. Can our dependency analysis check the actual incompatibility of the selected versions instead of whether or not the version specifiers match?
I spoke with @bsiegel for additional context after a quick discussion with @chlowell and @lmazuel . Our understanding is that this was a deliberate choice by the higher-ups to keep things straightforward. This was the reason that the analyze_deps was implemented this way.

Our dependency story has basically two phases.
Phase 1: All libraries within an SDK must use the same version range / specifier for a given dependency. Deviations / overrides are permitted temporarily but must be resolved before GA. This is the easiest way to enforce that we ship libraries that will work together correctly (both technically, and it's the easiest policy to reason about), but it adds some burden / overhead on the library developers when one library needs a newer version of a dependency. We are in Phase 1 right now.
Phase 2: All libraries within an SDK should use the same version range / specifier for a given dependency. Permanent deviations are permitted as long as the alternate version range / specifier remains compatible with the specifier(s) used by all other libraries in the SDK. Incompatible deviations are permitted temporarily but must be resolved before GA. We want to get to here but most likely after GA of Track 2.

And it will be great that

If the dependencies are compatible, we don't stop the check in.
If the dependencies does not perfectly match, we generate a report and developers can decide how to fix it.

We discussed this a bit at length on Monday and it sounds like we may decide not to go this route. We'll have further discussions but it sounds like the policy of keeping exact dependency version specifiers in sync for all libraries in an SDK may not change.

It makes total sense that we have same dependency version within an SDK when we release.  And I don't think there is a conflict between release one version vs we allow different versions in the development mode(temporarily). If we use incompatibility check during the development mode and enable the strict check in the release pipeline. Do you think it make sense?

Investigate using poetry tool to solve this problem.

We still want a warning thrown from the analyze_deps step if the version specifiers don't match. Just because they're compatible does not mean that we shouldn't keep these up to date.

I spoke with @johanste this afternoon. I am removing the blocking_release label as this is not actually blocking release right now. The issue stays open and should be addressed much sooner rather than later.

Resolved in #29224!


Fix spelling mistakes in documentation

Summary
There are some spelling mistakes in the docstrings, documentation, and code for the latest commit of Qiskit Experiments. This PR corrects these errors.
Details and comments
Words were checked against en_GB and en_US, but some mixed usage still exists. This appears to be consistent with the rest of Qiskit documentation, where some en_GB wording exists alongside en_US. There are two corrections which I am not fully confident with, as they may be different words that are context specific. I have highlighted them as comments in this PR and quoted them below.

kargs to kwargs which I assumed stood for “keyword arguments”. My understanding is that the standard in Python is to name these kwargs.
signle to signal instead of single? Here I am not sure about which was intended, but signal made more sense for me.

I didn't notice that this branch was not up-to-date with main. I have merged in the latest version of the main branch so that this PR can be merged.


[Feature Request] Support multi-proxy.

Hi!
Thanks for developing such a great tool. Would be great to support multiple proxies, as wfuzz does for example.
Not sure how complex would be, but HTTP and SOCKS5 proxies and cycling each request by a different proxy would be great.

Thanks for opening the feature request. Handling a pool of HTTP proxies probably wouldn't be too much work, but using SOCKS proxies would probably need a bit more work.

This is what I do when I want to force ffuf to use multiple proxies while this feature is not available.

Configure the proxies I want to use in proxychains (https://github.com/rofl0r/proxychains-ng)
Use proxychains to start a local instance of proxy.py (https://pypi.org/project/proxy.py/)
Use ffuf single proxy feature (-x) to point it to my local proxy.py instance

It's not ideal but it works =]

Would it be possible to leverage proxychains for rotating socks proxies instead?


Set offset goal in cross case

Look through all the examples, the goals have been set as AABB, mirror, point. However, I want to set the goal as a offset of the initial position.
like this

I've check the source code and found that there is a goalselectoffset file. I was wondering how I could add that into xml file?
Now, I am using AABB, however, the simulator will never stop.
`

<State name="WalkHorizontal" final="0" >
	<GoalSelector type="explicit" goal_set="0" goal="0"/>
	<!-- <GoalSelector type="mirror" mirror_x="1" mirror_y="0"/> -->
	<VelComponent type="goal" />`

sorry for the confusion of the color above. Currently, the goal above is set to be mirror like. However, it should be a constant offset of the initial position.

As I look at your image, I believe that there is not currently a specific goal selector/goal set that will give you what you want.
In principle, the mirror goal selector will reflect the initial positions to the same relative configuration on the left. This assumes that these two configurations are centered on the simulation world's origin.
However, I also see a vertical offset. So, what it really looks like is that the initial position is mirrored over the y-axis around some point (which may or may not be the world origin) and then offset vertically in the +y direction.
As for the question of whether the simulator stops, have you set a goal for reaching that goal and set it to final="1"?
Do I interpret that picture correctly?

Sorry for the confusion of the image.
Let's say we have a grid of agents, and their initial positions are listed below (I am using a XML notation here):
<Generator type="rect_grid"  					anchor_x="-5" anchor_y="-1"  					offset_x="0.75" offset_y="1"  					count_x="8" count_y="3"  					/>
I want the corresponding goals to be like:
<Generator type="rect_grid"  					anchor_x="5" anchor_y="-1"  					offset_x="0.75" offset_y="1"  					count_x="8" count_y="3"  					/>
Basically, the goal is a 10 offset of the initial position on x axis, and 0 offset on y axis.

as for the question of stop of the simulator: yes, the stop state is set to be final="1"

Sorry to make you repeat yourself -- I realized I'd focused on the picture and missed your follow-up comment about the misleading nature of the picture.
Fortunately, there is a very simple solution to your problem. There is an offset goal selector type. In looking through the examples, I realize it is not included in any of the examples which is an oversight that needs to be addressed. However, it is exactly the functionality you want.
You can learn about the parameters here. Let me know if you have any questions.

Thanks for the quick reply. I also noticed this 'offset' function and it could solve the problem quite straightforward. The problem is I don't know how to write the actual XML code to implement it. Thanks.

For example, the mirror case, <GoalSelector type="mirror" mirror_x="1" mirror_y="0"/>, the parameters and related values are not mentioned in the goalselectmirror function. How should we implement the offset goal?

It takes a "2D vector distribution" attribute. Essentially, you'll add a 2D vector to the initial position. What 2D vector gets added depends on the distribution. So, you can get the following:
Offset every agent by exactly <10, 0>
<GoalSelector type="offset" dist="c" x_value="10", y_value="0"/>

Create small box (with length of side = 1) centered at a location <10, 0> away from the initial position and create the goal by offset the initial position a point drawn from this box with uniform probabilities.
<GoalSelector type="offset" dist="u" min_x="9.5" max_x="10.5" min_y="-0.5" max_y="0.5"/>

Oops -- forget the comma in the first example.

Thanks for the reply. It works!
Regarding the problem of "simulator does not stop", a similar problem is, when agent reaches the goal, it doesn't immediately stops, it looks like it travels ahead a bit and then come back to the goal which results in some oscillation as shown below:

I am using ORCA method. Is it because of some parameters in AgentProfile or somewhere I can tune to make agent stop immediately the first time it reaches the goal?

In its simplest configuration, there will be oscillation. This is due to a couple of reasons:

There is a max_accel value that means they may not be able to stop instantaneously.
If another agent is moving towards a "stopped" agent and there is an apparent risk of collision, the stopped agent will move. This is part of the ORCA model (and most pedestrian model). The stopped agent doesn't know that the oncoming agent will stop before hitting.

You could add a property setting action in the final state which increases the priority of a stopped agent. Then they'll be better able to ignore agents that haven't stopped yet.

Thanks. How do I set the priority in the stop state below in XML file? (there is no example)
	<State name="Stop" final="1" > 		<GoalSelector type="identity" /> 		<VelComponent type="goal" /> 	</State>

You can see an example of it in the tradeshow example. In that example, when the agents reach the "Arrive" state, they temporarily set their priority to 1 (with the understanding that everyone defaults to zero).
Curiously, the action has exit_reset="0" which surprises me. I'll have to look into why that is. For your purposes, it doesn't matter since you'd be doing this in a state with no outward transitions.

Addendum: technically, the tradeshow doesn't set the priority, it adds 1 to the priority. If you want to set it to a specific value, you'd use type="set_property" instead of type="offset_property".

I've set the max_accel to be large (=10), and also set priority to the stop state to be 10. The oscillation still happens as when these parameters were not set before.

max_accel has an effect which lower value has larger oscillation, but 5 and 10 makes no big difference. And priority has no effect to oscillation.

Oops. It won't affect ORCA. But if you run it with the pedvo model instead, it should make a difference. PedVO is a derivative of ORCA which includes, among other things, respect for priority.
You can set priority just to 1. Given two agents with priority a and b, the different in their priority is always clamped to a maximum value of 1. So, if you have 0 and 10 or 0 and 1, you'll get the same effect.

In this case, it looks like ORCA is not good at stopping at a goal immediately.

Quick test -- if there's only one agent, does it stop?

Stopped right away.

And using -m pedvo in conjunction with the Action in the final state doesn't cause them to behave any differently?

In pedvo method, priority makes difference that in some case, the stopped agent will never be pushed by moving agents, and agents can always stop immediately once reaches the goal no matter this priority is enabled or not. However, in ORCA case. the agents always move overhead a bit, and then go back to goal in multi-agent case.

Yeah. ORCA doesn't understand priority. It always assumes that agents are equal and they all have to share to avoid perceived collisions. PedVO is a variant of ORCA that understands priority and reapportions the responsibility for avoiding collision based on relative priority.
I do have to admit to some surprise that the stopped agents get pushed sometimes. I'll have to look into that.

Thanks for your reply! I will close this issue.


Add documentation into the code

Describe the idea you had
Maybe we could find out module names and then add them into the code with some kind of self flag ... with symbol based on a calculated slice.
Additional context
Question behind it: can be improve the system documentation with that?

Some ideas on this are already in the wiki


Show what was upgraded after activation

cf.
❯ > nix store diff-closures /nix/var/nix/profiles/system-151-link /nix/var/nix/profiles/system-152-link
Agda: -1755.7 KiB
ChasingBottoms: -20.8 KiB
JuicyPixels: -97.2 KiB
aeson: +84.2 KiB
aeson-pretty: -8.6 KiB
attoparsec: +18.9 KiB
bifunctors: +33.1 KiB
blaze-html: +8.1 KiB
boring: ∅ → 0.2.1
cmdargs: ∅ → 0.10.22
darwin-system: 23.05.20230406.0e19daa+darwin4.87b9d09 → 23.05.20230411.3fb8eed+darwin4.87b9d09
digest: <IP_ADDRESS> → <IP_ADDRESS>
doclayout: 0.4 → <IP_ADDRESS>, +50.5 KiB
...

https://gitlab.com/khumba/nvd

We could as well add an upgrade command:
nix run .#upgrade

That does the following:

Update the nixpkgs (and home-manager, etc.) inputs
Run a build of the configuration
Run nvd to inform user of changes
Do actual activation if they accept


update ppp

Codecov Report

Merging #160 (50cffdf) into master (8a61b06) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #160   +/-   ##
=========================================
  Coverage     57.35%   57.35%
  Complexity      501      501
=========================================
  Files           101      101
  Lines          1937     1937
  Branches        222      222
=========================================
  Hits           1111     1111
  Misses          763      763
  Partials         63       63

Continue to review full report at Codecov.

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


spkl not detecting plugins inheriting from an abstract class.

I have a base abstract class that directly implements IPlugin, and use that to simplify my plugin development in a particular project I am working on. The issue I am seeing is that the spkl batch files are not finding any plugins unless they directly implement IPlugin, and I can confirm it does work fine when they do.

Hi, Dave - right you are!
There is a regex that detects the plugin class names https://github.com/scottdurow/SparkleXrm/blob/master/spkl/SparkleXrm.Tasks/CodeParser.cs#L26
I guess to support custom base classes (I currently have support for the DevelopToolkit base class) we'll need to add an additional parameter on the task. Feel free to fork and send a pull request 😄

I see how it works now thanks! I can rename the base class "PluginBase" and it should work fine.


fix(component): throttle scroll listener

fix this: https://github.com/CassetteRocks/react-infinite-scroller/issues/106

Please see https://github.com/CassetteRocks/react-infinite-scroller/issues/14, as it may be similar.
Because this component is very simple it doesn't control how you make requests and when and when not to trigger. Therefore, you have to make sure that the items are loaded in and the container has a computed height (if you're floating elements, use clear: both).


Doctest failed on aarch64

https://download.copr.fedorainfracloud.org/results/remilauzier/trash/fedora-rawhide-aarch64/02451115-rust-trash/builder-live.log.gz
failures:
---- src/lib.rs - os_limited::list (line 314) stdout ----
Test executable failed (exit code 101).
stderr:
thread 'main' panicked at 'called Result::unwrap() on an Err value: Unknown { description: "Path: '"/builddir/.local/share/Trash/info"'. Message: No such file or directory (os error 2)" }', src/lib.rs:5:26
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace
failures:
src/lib.rs - os_limited::list (line 314)
test result: FAILED. 4 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.86s

#36 should fix this issue. Please test it if you can, or let me know if you can't. Thanks!

I won't be able to test it since i don't have a aarch64 machine at disposition. I can only test it when the code is release on crates.io since that where fedora take the source.

Testing pr is way above what copr can do sadly.

The new version with the fix is now published


Modernizr minify causes "Unterminated RegExp Literal" error.

Not sure if this is the same issue as #19,
but Modernizr is a popular enough project that this seems to be a real problem.
require 'open-uri'
require 'smurf'

modernizr = open("https://raw.github.com/Modernizr/Modernizr/master/modernizr.js")

Smurf::Javascript.new(modernizr.read)

# RuntimeError: Unterminated RegExp Literal
# from ~/.rvm/gems/ruby-1.9.3-p0@global/gems/smurf-1.0.8/lib/smurf/javascript.rb:168:in `action'

note:
I fixed this for myself, by building a minified version (I then minify it again with smurf)

Hi @matthewrudy, thanks for reporting the issue. Based on your test it could very well be a problem with the comments. Feel free to fork and submit a pull request if you have the time. Thanks.


feature request: Use lorri with buildFHSUserEnv

Feature description
That is more a question than a request, but a request if not supported.
I would like lorri to enter my buildFHSUserEnv environments as it does with mkShell.
Is that possible?
It seems to work well with all my mkShell shells, but for my python projects in which I use buildFHSUserEnv, lorri just enters the directory and drop me in a regular shell without any packages or modifications.
I've found this guy on reddit with the same problem and no solutions.
Target users
Python developers who need to use pipenv or virtualenv and packages with compiled binaries that expects FHS file-system.

I agree, this would be great !

Did anyone find a solution for that in the meantime. I am facing exactly the same issue and would really appreciate any help :slightly_smiling_face: .

I can see the appeal, but as I understand it, buildFHSUserEnv relies on containerization to do its thing, right? I'd be happy to work through some design for this but the issue I see is that Lorri primarily works with Direnv to do its thing, which sets environment variables in the running shell.
There are Lorri sub-commands that also run a shell, which might be able to be adapted to work with a containerized shell, but at that point you don't get a huge benefit over just using nix-shell.
(Sadly, the reddit post has been deleted.)
So I guess my question is: what are you hoping to have Lorri do with buildFHSUserEnv?

Thanks for the response. I am sorry, but I do not know how buildFHSUserEnv works internally, but I can explain my use-case.
I want to use Python virtual environments for development and with respect to the NixOS Wiki this is achieved by using buildFHSUserEnv. Moreover, you might need to set some environment Variables as explained here (I know, this example uses pkgs.mkshell, but it also works with buildFHSUserEnv).
This use-case can already be realized by just calling nix-shell working in this dev-shell. However, it would be great if Emacs could jump automatically in such a shell using direnv-mode, when working on a python project.
I think, I could also just workaround all of that by starting Emacs in the dev-shell, but this does not feel comfortable. Nevertheless, if it is not a simple switch to turn for making buildFHSUserEnv work with Lorri, I would say that it is most probably not worth the effort.


Added basic CI file for spring boot.

Quickly merging in the skeleton we need for setting up spring boot on master (to support pipeline generation).

@mitchdenny this pipeline has pretty much been failing since you'd checked in yesterday https://dev.azure.com/azure-sdk/public/_build?definitionId=1326&_a=summary

That's deliberate (although the YAML syntax error wasn't so thanks for fixing that). I needed this ci.yml file in to trigger automatic pipeline generation but the spring boot bits will be done on a separate branch.


Update host for Hesan.He3 1.3.0

#163422

Microsoft Reviewers: Open in CodeFlow

[Policy] Reset Labels - Intentionally didn't update manifest version


Documentation bug: web-worker does not declare @bugsnag/core as a dependency.

Describe the bug
According to this documentation, Bugsnag web worker can be used standalone, but it requires install of @bugsnag/core as well.
https://docs.bugsnag.com/platforms/javascript/web-workers/
Steps to reproduce
Attempt to run typescript compiler on documented example code.
  Bugsnag.start({
    apiKey: config.bugsnag_key,
  })

produces error because of missing type defintions from bugsnag core.
Object literal may only specify known properties, and 'apiKey' does not exist in type 'WorkerConfig'.

Environment

Bugsnag version: 7.25.0

Example code snippet
See example code above.

Hi @subdavis
Our engineers are investigating this. We will be sure to let you know of any updates or fixes.


Unregister Push Token

Checklist

[X] I have read the contributing guidelines
[X] This issue hasn't been addressed in an existing issue or pull request

Description
I can't find a way to unregister a user's push token if they opt out of push notifications after opting in once.

Proposed Solution
Implement unregisterPushToken method that calls the `unregister client push token` api and removes the push notification from Klaviyo.

Alternatives Considered
There's an unregister client push token api (https://developers.klaviyo.com/en/reference/unregister_client_push_token). The api requires the user's Klaviyo profile but there's no client api to fetch it. It would be great if there was a way to fetch the current profile too.

Additional Context
No response

Hey! Thanks for this request. This is something we plan on implementing some time in the future. We are not sure of the timeline but will update this issue whenever we have any updates!

We also need this implemented.

I am facing this issue as well. Is there any update here?

@AhmadNaeemK did you find a workaround? @ajaysubra any progress?

@invctusdotco I found a way to call the unregister api by making several other api calls to klaviyo but that's not usable. because of rate limits on them.

Hey, folks! Sorry for the delay in responding. Unfortunately, there are no updates on this front yet. We plan to address this issue but do not have a timeline currently. I will post updates as and when we have them.
In the meantime, if it's not too much to ask, would you all be able to highlight the specific use case that you are trying to address with this SDK method? If users opt out of push notifications at the OS level (i.e., within the device's notification settings), Klaviyo will automatically opt that device out of push notifications the next time the user opens the app. Does that functionality not suffice for your use case? Do you have a notification preference in your app settings that will opt the profile out of notifications (in theory) across all devices? If you can provide any specific examples, that would be incredibly helpful. Thanks!


Cleanup subformulae downloads

I just updated to the latest version of git:
(gps ~)$ brew info git
git: stable <IP_ADDRESS>, HEAD
http://git-scm.com
/usr/local/Cellar/git/<IP_ADDRESS> (1267 files, 26M) *
https://github.com/mxcl/homebrew/commits/master/Library/Formula/git.rb
==> Options
--with-blk-sha1
Compile with the block-optimized SHA1 implementation
--with-pcre
Compile with the PCRE library
==> Caveats
The OS X keychain credential helper has been installed to:
/usr/local/bin/git-credential-osxkeychain
The 'contrib' directory has been installed to:
/usr/local/share/git-core/contrib
zsh completion has been installed to:
/usr/local/share/zsh/site-functions
and noticed that running brew cleanup did not remove git-manpages-<IP_ADDRESS>.tar.gz. It removed the outdated formula and the htmldocs but left manpages. Is there a reason cleanup left  it?

We don't really use subformulae any more and this is broadly encompassed by https://github.com/Homebrew/brew/issues/568.


Support flushing pending timers in a WidgetTester test

To test the first scenario described in https://github.com/flutter/flutter/issues/30340 I need to write a test that executes code after a timer is scheduled but before the next frame.
The current way to get timers to invoke in a widget test is by calling WidgetTester#pump, but this call also schedules a frame.
This can be done for AutomatedTestWidgetFlutterBinding by exposing a method that calls FakeAsync#flushTimers, I'm not sure whether this can be done for LiveTestWidgetFlutterBinding.

WIP patch here: https://github.com/amirh/flutter/commit/7968324c0ae7dc97a1f828da860c9f8eb775367b

Duplicate of https://github.com/flutter/flutter/issues/24166


HttpParser throw exception with request from Chrome

terminate called after throwing an instance of 'nz::HttpParserException'
what():  Unknow Method
Aborted

Error configuration of Chrome


Error

The purpose of cell (54) is to convert loaded color images into gray_scale (only if one has already loaded color images using some other code).
If you look at the jupyter notebook in the repo, this (cell 54) is a commented code as you don't need to perform color conversion operation, because the images are already loaded in gray-scale (cell 53).
In the notebook, this was done using: cv2.imread(imagePath,0) in the previous cell (53).
I hope this helps clarify your doubt. I'll add some comment around that cell so that it becomes self-explanatory for all.
PS. it would be helpful if you could rename the issue to Error: name 'images' in not defined or something in those lines as it gives the users a brief idea about the issue and helps them search among other issues easily.


Update HTMLang.js

Make print Be Able to print more then one tag

What print?

you can now use Hello,World this was not supported earlier

i forgot that you added the new call function


[Traefik Plugin Catalog] Plugin Analyzer has detected a problem.

The plugin was not imported into Traefik Plugin Catalog.
Cause:
failed to run the plugin with Yaegi: the function `New` of test produce a panic: panic during the call of the function: failed to read file for version "ipv4" and country "DE": open ./test-data/ipv4/de.cidr: no such file or directory

Traefik Plugin Analyzer will restart when you will close this issue.
If you believe there is a problem with the Analyzer or this issue is the result of a false positive, please fill an issue on piceus repository.

Hi,
If im not too wrong about it, i believe this line is the issue:
https://github.com/JonasSchubert/traefik-allow-countries/blob/main/.traefik.yml#L24
your test-data is in a folder name ./.test-data and .traefik.yml it has ./test-data
This should allow for it to be installed in traefik.

Hi,
If im not too wrong about it, i believe this line is the issue:
https://github.com/JonasSchubert/traefik-allow-countries/blob/main/.traefik.yml#L24
your test-data is in a folder name ./.test-data and .traefik.yml it has ./test-data
This should allow for it to be installed in traefik.

Thanks @aalmenar! I adjusted it.


Fix incorrect error messages

Codecov Report
Base: 75.52% // Head: 75.51% // Decreases project coverage by -0.01% :warning:

Coverage data is based on head (002d700) compared to base (16c5b1d).
Patch coverage: 100.00% of modified lines in pull request are covered.

Additional details and impacted files
@@             Coverage Diff              @@
##             master     #280      +/-   ##
============================================
- Coverage     75.52%   75.51%   -0.02%
  Complexity      714      714
============================================
  Files           108      108
  Lines          2051     2050       -1
  Branches        251      251
============================================
- Hits           1549     1548       -1
  Misses          439      439
  Partials         63       63

Impacted Files
Coverage Δ

...va/tuthub/logic/commands/DeleteCommentCommand.java
100.00% <ø> (ø)

...java/tuthub/logic/commands/FindByEmailCommand.java
100.00% <ø> (ø)

...ava/tuthub/logic/commands/FindByModuleCommand.java
100.00% <ø> (ø)

.../java/tuthub/logic/commands/FindByNameCommand.java
100.00% <ø> (ø)

...java/tuthub/logic/commands/FindByPhoneCommand.java
100.00% <ø> (ø)

...ava/tuthub/logic/commands/FindByPrefixCommand.java
100.00% <ø> (ø)

...ava/tuthub/logic/commands/FindByRatingCommand.java
100.00% <ø> (ø)

.../tuthub/logic/commands/FindByStudentIdCommand.java
100.00% <ø> (ø)

...n/java/tuthub/logic/commands/FindByTagCommand.java
100.00% <ø> (ø)

...ogic/commands/FindByTeachingNominationCommand.java
100.00% <ø> (ø)

... and 13 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


[Bounty] Help prevent data loss

PSA: Always back up your server folder!!
For some time, there have been rare reports of server owners suddenly losing Quests data. Whether that be saved quests or player data, these reports have been difficult or impossible to substantiate. There is no apparent pattern—it can allegedly occur during a version upgrade, while the server is restarting, or as a player is completing a quest. Using file-based YAML or remote MySQL does not appear to matter. There are no consistent signs or symptoms of the issue and the existence of this bug borders on rumor.
Although the Quests project provides no warranty, it is of interest to see this matter put to rest. If you, or someone you know, has experienced this issue, please comment below with as much detail as possible. Developers whom are able to demonstrably replicate a situation where this could occur may be eligible for monetary compensation. Please join our community Discord if you are able to reproduce and/or submit a pull request for this bug.
This is not an offer of employment.

This just happened to me. Here's a rundown:
(PB line 16) Created a new quest. Set ask message to "4" by accident. Set NPC start option. Edited ask message again to correct text, then set a complete message.
(PB line 137) Created stage 1 with a password + answer, a start message, and (by mistake) a complete message containing just the number "17".
(PB line 337) Created stage 2, set deliver 64 diamonds to NPC, added start message. Saved stage. Went back to editing stage 2, added a complete message. Saved stage.
(PB line 609) Attempted to "finish and save" quest. Sent a "1" in chat to confirm, no response from the plugin. Thinking it was lag, I sent a "1" again. The 2nd "1" sent as a normal chat message.
Thinking the server just had a stroke and forgot to send a response, I did command /questadmin reload, to see the quest changes in the server. Plugin returned a "Quest data reloaded    0 quests loaded." message. It should've been 5, as before creating this quest I had 4 others (you can see these other 4 in PB line 11). Tried selecting the option to edit a quest, server returns a blank "list" (PB line 635). I anyway tried to enter an old quest name (TOT), it says "Quest 'TOT' not found."
All quests were wiped, no other warning or errors. No players were completing a quest at the same time. Server didn't reload, update, close, etc. It just had a hiccup while saving this newly made quest, then all data is gone.
Here is a pastebin of my relevant logs from the .minecraft folder in my PC. It's quite spammy, but it's the only thing I have to show the timeline of what happened. https://pastebin.com/Z9vC9cDe
My apologies for the long message, but I hope this can help somehow.


Losing transcripts during analyses

This may already have been discussed elsewhere...
It appears that I am loosing a bunch of genes/transcripts during the Velocyto analysis, and I am trying to figure out what is going on. After running Velocyto, there are approximately 5000 final filtered transcripts (presumably ones used for the vector calculation). However, several genes/transcripts of interest that should be highly expressed in most cells (seen using software like Seurat) are not listed in the final filtered genes. Thus, I am suspecting that many genes/transcripts are, for some reason, being lost during Velocyto calculation.
Does Velocyto filter out genes that are not differentially expressed (namely, genes/transcripts that are not useful to plot vector)?
My cells are captured using Fluidigm.
Very much appreciated.

Sorry, are you referring to https://github.com/theislab/scvelo? Scanpy does not have any builtin function regarding RNA velocity.

Closing as this seems specific to velocyto

Closing as this seems specific to velocyto


[BUG] Inner Hits for nested knn search always 1

What is the bug?
A clear and concise description of the bug.
Tried putting knn vector inside a nested object since the use case need to embed large passages on the same document. Tried a nested knn query,
GET document_index/_search
{
"query": {
"nested": {
"path": "chunk_embeddings",
"query": {
"chunk_embeddings.embedding": {
"vector": [....], # a 384 dim vector
"k": 10
}
},
"inner_hits": {
"size": 5
}
}
}
}
The inner hits however is always 1. No more matchers to nested embeddings come up.
How can one reproduce the bug?
Steps to reproduce the behavior:

Create and index with nested knn vectors.
Do a nested knn query.
Inner hits always 1.

What is the expected behavior?
i would expect more number of inner hits so that i can find increase relavence of documents with higher knn matches
What is your host/environment?

OS: AWS Opensearch Managed cluster
Version 2.5
Plugins knn

Do you have any screenshots?
Apologies. This is in a sandboxed environment.

Setting "score_mode" resolved the issue.

@Junaid986 Is the issue resolved after setting "score_mode"? Could you close the issue then?


Reinitialise on SIGHUP

It would be great if I can send a SIGHUP to let kubefwd restart its main loop and reinitialise itself. Right now I manually have to go to the terminal window, Ctrl-C it and rerun the command. With a proper handling of the signal it'd be possible to do a single-line deployment, e.g. helm upgrade && sudo pkill -HUP kubefwd. Currently on SIGHUP kubefwd just quits. It could partially solve the problem in #21

#21

I will look at supporting this. However I think retry is still needed even in this case since the Pods may not be up that quickly.

#95 should remove the need for sending a SIGHUP. kubefwd 1.11.0 watches the Pod backing a Service and reconnects when new a Pod comes online.


Missing instructions for hosted WASM

Right now this page seems to describe only the standalone Blazor WebAssembly app (when you switch to Blazor WebAssembly on top of the page). How is the procedure when there are separate Client and Server projects in a hosted Blazor WebAssembly app?

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 15e7c51d-1839-1849-813a-23c4d21c64ae
Version Independent ID: d6f07538-228e-9f96-680f-6c324caf11d6
Content: ASP.NET Core Blazor globalization and localization
Content Source: aspnetcore/blazor/globalization-localization.md
Product: aspnet-core
Technology: aspnetcore-blazor
GitHub Login: @guardrex
Microsoft Alias: riande

Hello @Flachdachs ... The Client project of a hosted Blazor WebAssembly solution is a served Blazor WebAssembly app. Therefore, apply the guidance from the "WebAssembly" pivot of this doc to the Client project.
Leave this issue open. I'll make an update to the document to call this out. This issue will close automatically when the PR merges.


Use CxChild instead of closures to balance begin/end

I am going to close this, with thanks and a bit of regret. After discussion on Zulip, it's not clear this is a win for ergonomics, as there are problems with unclear scope, ergonomic papercuts such as the requirement of &mut cx in some build argument positions, and reliance on either shadowing or different names for cx. It was very much a worthy exploration though.
If we run into actual problems with the closure form, there's a good chance we'll come back to this.
Thanks again, and apologies the first experiment in optimistic merging was more half-empty than half-full.


removed (weird ?) aside

I propose to remove this <aside> as the result is really ugly, more difficult to read, and I don't remember seeing them in the first version of the handbook

Yeah, looks like this mixes badly with some CSS which also uses aside - we've been using blockquotes everywhere else, I'll switch them over - thanks


Coding style guide ambiguous definition

Thanos, Prometheus and Golang version used:
Thanos: v0.31.0
What happened:
Style guide definition conflict.

Recommendation to do something and hanle error
https://github.com/thanos-io/thanos/blob/v0.31.0/docs/contributing/coding-style-guide.md?plain=1#L94

runutil.CloseWithErrCapture(&err, f, "close file")

Recommendation to avoid do something and hanle error
https://github.com/thanos-io/thanos/blob/v0.31.0/docs/contributing/coding-style-guide.md?plain=1#L401

 s.doSomethingAndHandleError()

What you expected to happen:
No definition conflict

Hello @omgnull i want to work on this issue.

Hi @omgnull i want to work on this issue.

Hmm, so I think the first style guide definition, is to guide around how to handle errors in defer statements, where you can't return the error, so you should use runutil methods, so handle them explicitly, and not ignore them
And the second is to avoid having shallow functions and to inline them to avoid unnecessary cognitive load.
I don't exactly see how those two conflict?

Thanks for the report, but I think you might have misunderstood the point 1.
With
runutil.CloseWithErrCapture(&err, f, "close file")

...we don't just do something and handle error. We actually "do something" and return error. Just the error can't be easily returned as @saswatamcode mentioned in the defer, plus we might have existing error in err. For this reason we might need this special pattern to return the error for closing (or attach an extra error) to the returned function error (err).
What would be the improvement to style guide in terms of wording to improve the next reader understanding of this? (:


Add the azure-identity-extensions to the azure-sdk-bom

Description
Add the com.azure:azure-identity-extensions to the azure-sdk-bom. https://github.com/Azure/azure-sdk-for-java/issues/32359#issuecomment-1340240958.
All SDK Contribution checklist:

[x] The pull request does not introduce [breaking changes]
[x] CHANGELOG is updated for new features, bug fixes or other significant changes.
[x] I have read the contribution guidelines.

General Guidelines and Best Practices

[x] Title of the pull request is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[x] Pull request includes test coverage for the included changes.

@g2vinay, could you help review this PR?


Pull request for the system/libraries/Profiler.php

In this pull request I have separated the Profiler presentation from the logic by creating a profiler_template.php View for the presentation, and the Profiler Library just creates and passes along the variables to it.  The only thing I have added is a protected $_profiler_view property to change the template if desired.  Otherwise, it looks and behaves exactly the same.  This code was highly inspired by Lonnie Ezell, and the work he has done at Bonfire.  It is genius.  I'm surprised he hasn't submitted this himself.

And what's the point really? The resulting view isn't any nicer to work with - it's spaghetti code without context, which is at least the one thing you have when it is inside the library.

The point is to be able to get rid of all the spaghetti code, and allow others to improve on the looks and functionality of it.  As it stands, it is impossible to work on without hacking the core.  This pull request makes the information accessible so that it can be presented however one pleases by either modifying the default template, or overriding it with their own.

Since there are specified sections and a lot of checks wouldnt it make sense to just add a config file for this and set the html that wraps each section? If you want to make it a template file like that, wouldnt it make more sense to use phps alternative syntax for control structures and just close/reopen php tags where needed instead of concatenating the entire string and echoing it at the end? It still looks like crud but I think it is a lot nicer looking then a bunch of concatenated html

In a config file you wouldn't be able to loop through arrays would you?  As for the alternative syntax, that would work too.  But in the library it was all placed into strings and concatenated together at the end, so I was just trying to stay as true to the original as possible to make a one to one comparison more feasible.  I've got no bones about it looking like crud, but at least now the meat is separated from the carcass.

You wouldnt include the loops in the config file. You just include the HTML Wrappers.
I used something like this for a nav control in VB once...
I set MenuItemTemplate to {{text}} and MenuTemplate to
{{menu_items}}
.
Then I create a string called GeneratedMenuItems, loop through all menu items, replace {{text}} in MenuItemTemplate with the anchor text I wanted, and append the new string to GeneratedMenuItems. Then I replaced {{menu_items}} in MenuTemplate with GeneratedMenuItems.

Well, I guess that's another way to do it then.

@paralogizing I updated my example to use code from this library so it actually makes a little sense, sorry about babbling a little

What about something like this? Obviously it would need a lot of work but, I couldnt spend too much time on it, but it works.
My config file
http://pastebin.com/eC5tJhT7
Stuff I added/updated in system/libraries/Profiler.php
http://pastebin.com/TQfeEbMG
The _compile_benchmarks function returns
array(
	'title' => 'BENCHMARKS',
	'items' => array(
		array(
			'key' => 'Loading Time: Base Classes',
			'value' => '0.0850',
		),
		array(
			'key' => 'Controller Execution Time ( Welcome / Index )',
			'value' => '0.0090',
		),
		array(
			'key' => 'Total Execution Time',
			'value' => '0.0940',
		)
	)
);

Using the above data as an example...
The run function loops over that data.
The first key is a string so it grabs this sections base template and replaces the matching key, {{title}}, with the value "BENCHMARKS".
Next it finds items which is an array. it finds the items key in this sections template array, loops over each key value pair, substitutes those values in the sections "items" template, and appends the new section to $sections_output.
After all sections have been processed it replaces {{profiler_data}} in $config['profiler_template'] with $sections_output

Does this mean you have something against views?  That's fine, but this could be better implemented by creating a MY_Profiler.php and rewriting the run method to do whatever you like (in my opinion).  If this is how the CodeIgniter gurus-that-be what to approach it then great.  All I am saying is that the presentation (html) should be separated from the logic (arrays).

Oh no, sorry! I am definitely NOT a CI guru lol
I was just trying to offer my input because I really want to help around here. I thought it offered a nice level of separation from view and code like narf would like and it changed the output of the compile functions from html to objects like you said you wanted.

Yes, it looks awesome!  You did a really good job.  I would happily swap views with you.  What do you think narf?  I guess until he speaks we'll never know.

@ZombieProtectionAgency's pastebin code is certainly an improvement over what you're suggesting.
However, this is a major BC break for anybody using the Profiler, and for that alone I just cannot merge it in the current version tree, sorry.

How is it a major BC break?  It works exactly the same without anyone changing anything.  The only thing it introduces is a new view.  If anyone has extended it, they would have had to of done so drastically, and I doubt even they would be affected.

If 3.0.0 requires nothing for this to work, and then you change it in 3.0.1 to require a view, how is it not a BC break?

Well it includes the view automatically, but okay.  When would be a better time for me to re-submit?

@paralogizing
You can take that view if you would like. Also, I think that generally the upgrade process is "Replace your system folder". The view file would be there for anybody doing a fresh install but for people who just update it would break. If you want to re-submit this then I think you would have to wait for CI 4 at the very least and I think that even then, they prefer to avoid BC breaks at all costs so it might not be OK still.
@narfbg Would it still count as a BC break if the Profiler library were edited to output the values in a simple table if the view was not present? It would function fine, It just wouldn't be pretty unless you download the view file when you update.

@paralogizing 2 months ago ... The next chance for that would be 3.1 or 4.0, both of which are way too far away from now.
@ZombieProtectionAgency Perhaps, but there would still be a lot of questions about that ... I closed this because I simply can't accept a BC break for 3.0.1, but that doesn't mean it's the only thing to have in mind.
If you'd still be outputting directly from the class, why do you care about an optional view?
If that's for better styling, why do you care for styling at all? It's a profiler, not something that you display to your website's visitors.
And that last one is double sided ... even if this wasn't a BC break and it still required a view, what would be the point in that, given that it's a development tool only?

Okay, thank you narf.  The reason I have for styling it is for the administrative backend at BootPress.  I want it to look good for my clients.  Lonnie did the same thing at Bonfire.  I guess we just want our applications to look professional, and for the profiler to be a little more useful than the default is.

Well, that makes sense I guess ... but it has to happen in a way that doesn't require a view or additional configuration.

Well you've got me there.  I'll have to think about that and try again come 3.1.  Thanks again.

@paralogizing You can always override it and use the view I posted if you think it would make your life a little easier, if it would anyways. I doubt this library will see too many updates lol
@narfbg Thank you for the input. I like paralogizings reasoning and I think it would be nice to have a little more control, by default. I did consider the last point. That was why my original suggestion was to use config options to style it. What is your opinion on using the built in template engine with config values containing the HTML for each section? If the values weren't set it would just print the data in a simple table like I suggested before.
I think a config layout like I posted before would work well (maybe leaving out the heredoc declarations). All templates for each section would be in an array in the config['templates'] array.

I'm an anti-fan of template engines, and here you wouldn't even be working with a template, but with some config variables ...

Hmm, I liked the idea of letting the end user completely control the layout. Another option would be to have a list of pre and post html for each variable/area. That would be much simpler to work with in the Profiler library too... Do you think that sounds reasonable?
Something like...
$config['layouts'] = array(
	'benchmarks' => array(
		'section_prefix' = '',
		'title_prefix' = '',
		'title_suffix' = '',
		'item_prefix' = '',
		'item_suffix' = '',
		'section_suffix' = ''
	),
	'get' => array(
		'section_prefix' = '',
		'title_prefix' = '',
		'title_suffix' = '',
		'item_prefix' = '',
		'item_suffix' = '',
		'section_suffix' = ''
	)
);


WFLY-10738 Upgrade Hibernate ORM to 5.3.3.Final and Hibernate Search to 5.10.3.Final

https://issues.jboss.org/browse/WFLY-10738
Passed the full integration test suite (-DallTests) on the Hibernate CI: http://ci.hibernate.org/view/Personal runs/job/wildfly-yoann/1/
@scottmarlow may want to make additional changes to further improve backward compatibility within Wildfly, but I think it can be done in a separate ticket.

I approve this change, thanks @yrodiere


tor unavailable

I'm not sure if you're still developing this but it doesn't seem to be working for me. Just wanted to let you know.
I'm using OSX 10.8.2, Ruby 1.9.3, and Tor <IP_ADDRESS>.
After gem install tor is successful, I get the following:
require 'rubygems'
require 'tor'

Tor.avaialble? #=> false
Tor.version.class #=> NilClass

I get:
[1] pry(main)> Tor.available?
=> true
[2] pry(main)> Tor.version
=> nil
with
❯ ruby -v
ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-linux]
❯ tor --version
Tor version <IP_ADDRESS> (git-99d0579ff5e0349f)

@bendiken: I believe this issue should now be closed. I've tested the latest codebase with the latest version of Tor and everything works as expected.

Thanks, @tuckerwales!


sulu logo

Hello, how can i modify sulu logo in admin and browser link ?

There is a favicon placed in the web folder, I guess that's what you mean by browser link.
And I am afraid to tell you, that it is currently not possible to modifiy the sulu logo in the admin...

@Doum-Super
Maybe this could help http://blog.sulu.io/how-to-develop-a-bundle-in-the-sulu-admin-2 ;
As sulu logo is set in admin via css; you could follow the above link and add your own css to the admin (via a simple admin bundle) that would overwrite the logo image url.
Something like
// file: Resources/public/js/main.js
require.config({
    paths: {
//        examplenews: '../../examplenews/js',
        examplenewscss: '../../examplenews/css'
    }
});

And then in examplenews/css/style.css
.logo{
    background-img: url('path/to/your/logo.png') !important;
}

However I don't know if this is ok with Sulu philosophy. It looks hacky. @danrot could give his view.

@stefann-sasori Yeah, that solution would probably work, but it is indeed quite hacky, and not what this mechanism is thought for... We would have to introduce a configuration to set the path to the logo.


🐞 - Incorrect tui-input-date-time value after several clicks

Playground Link
https://stackblitz.com/edit/angular-eqzw9r-nbmcuf?file=src%2Fapp%2Fapp.component.ts
Description
Screencast from 31.05.2024 10:45:57.webm
Date becomes incorrect with several clicks on the input. Occurs if the [max] value is specified as [TuiDay, TuiTime]
Angular version
17.0.8
Taiga UI version
3.60.0
Which browsers have you used?

[X] Chrome
[ ] Firefox
[ ] Safari
[ ] Edge

Which operating systems have you used?

[ ] macOS
[ ] Windows
[X] Linux
[ ] iOS
[ ] Android

Duplicates:

https://github.com/taiga-family/taiga-ui/issues/7586


Generalize the modal window to the entire documentation

[x] Use the Blog modal window in the entire documentation
[x] Simplify their initialization (create the modal div only once, instead of once per image)
[x] Support thumbnail maximization (the original image is loaded in the modal window in case of thumbnails).

Preview: https://cyberbotics.com/doc/guide/samples-environments?version=feature-modal-window-generalization

test me

Build Passed :ok_hand:
You can safely merge 'feature-modal-window-generalization' into 'develop'.

👍

My first attempt was to use the ladybug GIF but it was too small to be good looking: its white background is problematic.
Therefore the present solution was the quickest to have a good looking solution.
But if you agree, I can spend more time to include the lady bug animation.

Yes, that would be nice. Thank you.

Ok, it was easier than I thought, because I have a CSS rule for this image:

Although I cleared my cache, I don't get the nice rounded white rectangle visible on your screenshot... I also tried to purge webots-doc.css on jsDelivr to no avail...

Yes, webots-doc.css has not been refreshed yet.
I just discussed with the jsdelivr dev team, they told be the purge is not working in case we use the branch name in the url. In this case, we need to wait that the cache is cleared on their server and that can take hours. They plan to solve this, but they don't told me delays.

Sorry for the inconvenience, but meanwhile to solve this, this PR could be tested locally (my last modification is very safe).
👍

The cache has just been updated :-D This is now testable in the preview url.

OK, that looks great. Thank you. But can't we avoid duplicating this load animation file? Why not referring to the original load_animation.gif file instead of copying it?

The doc is supposed to work offline. All resources should be included.

OK, in that case, shouldn't we have webots.js use the load.gif of the doc instead of https://github.com/omichel/webots/blob/master/resources/web/wwi/images/load_animation.gif? That would avoid a redundancy of this file.

In my opinion, creating a bidirectional dependency link between webots.min.js and the doc for a such minor topic is a bad idea.

OK, I understand. But at least we should use the same file name (as it has the same content).

Fair enough, I change this.

test me

Build Passed :ok_hand:
You can safely merge 'feature-modal-window-generalization' into 'develop'.

👍

😃


Filtergroup of RunPageLink - Always 0?

Could you please clarify on this page that the Property RunPageLink is getting placed in the Filtergroup 0.
At least this is the behaviour I've seen so far. I cannot find any official documentation about this property and its filtergroup.
And maybe add this information on the page of the RunPageLink property, too?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 2049a29b-bb48-8d52-74a6-dfdfc761c504
Version Independent ID: 43738a03-e128-6a4f-d07f-39af3267b75a
Content: Record.FilterGroup([Integer]) Method - Business Central
Content Source: dev-itpro/developer/methods-auto/record/record-filtergroup-method.md
Service: dynamics365-business-central
GitHub Login: @SusanneWindfeldPedersen
Microsoft Alias: solsen

@SusanneWindfeldPedersen Is the the label needs more detail for internal tracking or do you need more details from my side?


Enhancement: View Real Time Workingspace

It would be great if you could see what is the current workingspace for each paralell plot. This could help optimize plotting in paralell.
For example, I have a 1TB SSD and can safely run 3 plots in paralell (staggered to optimize CPU/RAM usage). However, I know it is possible to run a 4th plot but it has to be timed correctly so it doesn't overfille the SSD.
There was someone that tracked it here:
https://www.reddit.com/r/chia/comments/mbjwbf/simple_plotting_resource_usage_graph/
It would be awesome if we can see or store the same type of information through Chia Plot Status
Great work keep it up!

Chia Plot Status is meant to be used to monitor multiple machines at once and this would only be possible for plots that are generated on the same system as Chia Plot Status is running on.
Chia Plot Status has no way to access the temp directories of all the other, possibly headless plotting rigs.
So this would only be possible if the information could be found in the logs.

Yes, you are right it seems a bit beyond the scope. However. I thought the logs did provide that info (where it says for example "Bucket 0 uniform sort 2.250Gib" etc. and if so, the log can use it. I'm happy to do a little more research on it to see if any info from the current logs is usuable in this way, as well as see if there's a chance additional resource usage can be added to logs

Bucket 104 uniform sort. Ram: 3.270GiB, u_sort min: 2.750GiB, qs min: 0.688GiB
In order:

Ram usable for sorting
Minimal required RAM for uniform sort
Minimal required RAM for quicksort

Have not found anything related to working space except at the end of the process.


Ability to specify 404 page/handler

For better or worse, I'm using react-router with browserHistory on a project which turns hash routes (devd.io/#/foo) into prettier urls (devd.io/foo). This functionality requires specific setup in the server software and I do not believe it is currently possible to configure devd to support this.
The recommended setup for nginx is to use the try_files directive to fall back on your react entry page if the file is not found (try_files $uri /index.html). I believe the simplest way to support this functionality in devd would be to allow for a 404 handler or fallback to be specified when the file server cannot find the specified resource. Perhaps a more robust way would be an extension to the routing syntax to allow for greater flexibility.
Thank you for your consideration

I understand the motivation (I use react-router in some of my own projects), and I do think that this should be catered for in devd. The simplest solution would be to just add a global specification that maps all 404s to a specific route. Let's consider whether something more general would be better. Do you have a concrete idea of what a routing syntax extension for this would look like?

Just brainstorming a bit, the global 404 handler would seem to break down when you have a multi-page app which would need to specify different react entry pages for different subtrees. With this in mind, maybe something like a [subtree]!=[endpoint] syntax could be used:
devd -ol . \
  /page2/!=./page2/index.html \
  !=./index.html # global handler (equivalent to /!=./index.html)

With such a syntax, any resource under /page2/ that is not found is served ./page2/index.html, all others are served ./index.html.
I know shells tend to not like the ! character, so this in particular might not work, but I think the general concept is simple enough to not over-complicate the tool but would still offer enough flexibility for these use cases.

This would also be useful for other js frameworks, e.g. angularjs.

I've been pondering this issue, and I have a proposal to run past interested parties. What if we add a --404file argument to devd, which specifies a file to look for in the same directory if a file could not be found. You can then use something like "ln -s" to redirect this to index.html if needed, or serve up something entirely different.
This lets us serve the use case without a really complex override mechanism with a route specification. I've played with a specification mechanism that might work here, but haven't come up with anything very satisfactory.

I feel like this would not really help for the intended use case.
We use devd for angular development to "join" a local directory with a rest API on a remote system. What you want in this case is to serve an index.html file if no local file is found. But if the rest API serves a 404 this might be intended functionality. So, there needs to be at least a 404 handler for each route.
About the ln -s idea: this would not work on windows systems. Also, it would be very tedious to create one symlink per directory.

Hi David - to be clear, my proposal here is for the --404file mechanism to only affect local filesystem routes, which means that in your example the REST interface 404s will be left untouched. If you really wanted, you could specify "--404file index.html" to redirect all 404s to the index. We could aso slightly elaborate the scheme, and say that we'll search for an index over-ride file in parent directories up to the root of the route. I think this quite flexibly covers what is needed, and also leaves room for situations where, for instance, the index file and the 404 override differ.
On windows (and in many use cases on all platforms) one might want to have an actual named over-ride file rather than a symlink.
Does that allay your concerns any?

Just as an idea: if --404file argument value starts with / (like "/404.html"), then it would look for file not in current directory but as global 404 page ?

@cortesi This would indeed solve the problem I described. But now, what if I use something like angular-cli or gulp serve to "host" my files already and this Webserver does not support wiring through a rest API or falling back to a default page. Then I would still need devd and I would also need a fallback behavior for one particular route, right? I'm just trying to point out that it might be more flexible to be able to configure a fallback/404 handler for each route. Or is this too contrived?

@davidbilge Just to make sure I understand - in this scenario, we have two upstream servers we're reverse proxying to, and you'd like to replace 404 responses from one of them with the contents of a different request? I'm hesitant about this, because I feel that 404 replacement for reverse proxied traffic would be brittle, complicated and rarely used. The feature makes a lot more sense for local files that we serve, however.
Thanks for taking the time to think through this with me.

I think you are right. Actually, angular-cli already seems to do the right thing when it comes to routes. Basically, when proxying a webserver, devd should rely on the webserver to behave correctly. When serving files, devd itself is the webserver, thus it should provide a means to resolve "file not found" problems.

Any updates on this?
Some of my project are SPAs written in Elm and I would like to do their routing without a hash sign in the URL. Any of the solutions discussed here would work.
Needless to say that I strongly prefer devd/modd, which works great for Elm development. No npm/webpack/whatnot clutter.

@ThomasWeiser I think we have a clear design for this now. I don't have time to implement it right at the moment, but would gladly merge a patch. If I don't get an external contribution, I'll turn to this before the next release.
Here's the rough design that I think serves all the use cases:

A --404file flag that specifies an over-ride when files are not found for static routes. Specifying an over-ride for a non-static route will be an error.

The format for the flag is similar to a route specification:
  [hostpath=]404filepath

If the 404filepath un-rooted or relative (e.g. "notfound.html", "./templates/notfound.html"), we will look for it up the tree to the base of the static directory

If the 404filepath is rooted (e.g. "/notfound.html"), we will only look for the file at the exact path from the static directory base.

So, some examples of valid specifications would be:
For all static routes, look for the file "override.html" in all directories:
--404file override.html

For all static routes, look for "override.html" only at the root:
--404file /override.html

For only the app virtual domain (i.e. app.devd.io) look for "override.html":
--404file app=override.html

Great! Thank you very much!
Unfortunately I cannot contribute any golang programming.

Could everyone interested in this ticket please take a look at the implementation I just pushed. The docs in the README explains it all.
One feature I'm thinking of adding here is to only serve an over-ride if its guessed MIME type matches the guessed MIME type of the request URL. That is, an over-ride that serves /index.html for all files not found will still return a 404 if the requested file was /foo.png, because the MIME types differ. Can anyone think of corner cases where this wouldn't work?

Direct link to the docs:
https://github.com/cortesi/devd#serving-default-content-for-files-not-found

The documentation for the 404-feature sounds really good and seems flexible enough.
MIME type matching seems useful to avoid serving the index.html instead of, say, a .js file or the favicon.ico. The MIME type for a directory request would have to be "text/html" of course. This would certainly cover 99% of the use cases. What if someone uses xml + xslt (is that still a thing?) or another technology that does not send html files to the browser as a default? That's the only corner case I can come up with.

This looks great!
Will try it as soon as possible, which will unfortunately be not before Monday. Thank you!

I have tested --notfound with my app in development. Works great, with one small limitation resulting from MIME type matching: The routes in our app are of the form /user/some-name, i.e. without a file extension and without a trailing slash. Seems to be the prevalent naming pattern for SPAs' routes.
I don't know what devd is guessing as the MIME type of /user/some-name, maybe text/plain, or maybe something else. But it certainly differs from text/html. So, --notfound /index.html has no effect here.
There is a simple workaround, using a filename without an extension like this:
ln -s index.html index
devd --notfound /index .

But, maybe devd could handle this special case in another way. Idea would be to match any unknown filetype in the URL with a default path of type text/html. I don't have much background in HTTP serving, so this solution may or may not feasible.
Then there is also a corner case, where the URL contains a dot that doesn't mark a file extension, like user/thomas.weiser. MIME guessing can completely go wrong here.
Another option coming to mind would be to extend the --notfound switch, like:
devd \
    --notfound /images=-
    --notfound /.==/index.html
    ...

The first switch would exclude the root /images from serving default content.
The second switch would turn off MIME checking for the root /..
This would also work for the mentioned user/thomas.weiser case.
Certainly some better syntax than =- and == would be necessary.

Excellent feedback, thanks. I've just changed the type matching to default to "text/html", unless we can positively establish otherwise. I think this covers off on pretty much all the issues you listed here. If possible, I'd like to get away without doing anything more complicated with the notfound routs - the routing situation in devd is already quite complex as it is.

Totally understandable. Defaulting to "text/html" will be sufficient for most scenarios.
Applications that may have a dot in the last URL part have to use a workaround by including a trailing slash, like /user/thomas.weiser/. Otherwise it might be misinterpreted as a file extension (not in this example, but there are many file extensions which have some associated MIME type).
Thanks for the update! It makes devd usable for many single page apps, which is a great thing!

Yes, the corner case where this doesn't work is if you end with a known extension, and don't have a trailing slash - i.e. /user/thomas.png. I think that's rare enough that we can expect developers to do a bit of extra work in this situation.

Yes, totally agree.
Do you plan to release this as v0.7 in the near future, or do you work on other features to be included in this release? I'm asking because I would like to introduce devd to my co-worker without asking him to build devd on his own. Thanks again!

I plan to release as soon as I have a few hours to spare, in the next few days.

Great, thank you very much!