[ENHANCEMENT] TensorAlgebra functionalities

This issue lists functionalities and feature requests for TensorAlgebra.
Issues

[ ] perf: when β is given to contract, the input array C is permuted twice: first to fit A * B, then back to its initial format. This is suboptimal, especially for non-abelian tensors where permutedims is the bottleneck and contractions are fast.
[ ] contracting zero axis crashes. I think it should return the outer product of two tensors.
[ ] some parts of contract code path are not compatible with FusionTensors due to loss of domain/codomain distinction, such as in splitdims!. We need to discuss at which parts of the API FusionTensors should reuse and which part would be better with a FusionTensors dedicated implementation. (MATT: I would very strongly prefer generalizing TensorAlgebra where needed rather than making too much specialized functionality in FusionTensors, that was the goal of the package to begin with (even though it isn't quite general enough right now). Let's discuss the issues that you come across and ways to design the code to make it more general.)

Feature requests

[ ] contract should allow a biperm as input
[ ] ideally, the compiler should be able to predict contract output type

Feature request: better error message when labels1 size does not match array
contract( (1,3,4), ones((1,1)), (1,2), ones((1,1)), (2,3,4))

displays a complicated stacktrace
ERROR: BoundsError: attempt to access Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}} at index [3]
Stacktrace:
  [1] getindex
    @ ./tuple.jl:31 [inlined]
  [2] #10
    @ ~/.julia/packages/TensorAlgebra/zXL7F/src/blockedpermutation.jl:101 [inlined]
  [3] map
    @ ./tuple.jl:356 [inlined]
  [4] #9
    @ ~/.julia/packages/TensorAlgebra/zXL7F/src/blockedpermutation.jl:101 [inlined]
  [5] map
    @ ./tuple.jl:356 [inlined]
  [6] blockpermute
    @ ~/.julia/packages/TensorAlgebra/zXL7F/src/blockedpermutation.jl:101 [inlined]
  [7] output_axes
    @ ~/.julia/packages/TensorAlgebra/zXL7F/src/contract/allocate_output.jl:15 [inlined]
  [8] allocate_output(::typeof(contract), biperm_dest::TensorAlgebra.BlockedPermutation{…}, a1::Matrix{…}, biperm1::TensorAlgebra.BlockedPermutation{…}, a2::Matrix{…}, biperm2::TensorAlgebra.BlockedPermutation{…}, α::Bool)
    @ TensorAlgebra ~/.julia/packages/TensorAlgebra/zXL7F/src/contract/allocate_output.jl:81
  [9] contract(alg::TensorAlgebra.Matricize, biperm_dest::TensorAlgebra.BlockedPermutation{…}, a1::Matrix{…}, biperm1::TensorAlgebra.BlockedPermutation{…}, a2::Matrix{…}, biperm2::TensorAlgebra.BlockedPermutation{…}, α::Bool; kwargs::@Kwargs{})
    @ TensorAlgebra ~/.julia/packages/TensorAlgebra/zXL7F/src/contract/contract.jl:121
 [10] contract(alg::TensorAlgebra.Matricize, biperm_dest::TensorAlgebra.BlockedPermutation{…}, a1::Matrix{…}, biperm1::TensorAlgebra.BlockedPermutation{…}, a2::Matrix{…}, biperm2::TensorAlgebra.BlockedPermutation{…}, α::Bool)
    @ TensorAlgebra ~/.julia/packages/TensorAlgebra/zXL7F/src/contract/contract.jl:111
 [11] contract(alg::TensorAlgebra.Matricize, labels_dest::Tuple{…}, a1::Matrix{…}, labels1::Tuple{…}, a2::Matrix{…}, labels2::Tuple{…}, α::Bool; kwargs::@Kwargs{})
    @ TensorAlgebra ~/.julia/packages/TensorAlgebra/zXL7F/src/contract/contract.jl:92
 [12] contract
    @ ~/.julia/packages/TensorAlgebra/zXL7F/src/contract/contract.jl:81 [inlined]
 [13] #contract#33
    @ ~/.julia/packages/TensorAlgebra/zXL7F/src/contract/contract.jl:62 [inlined]
 [14] contract
    @ ~/.julia/packages/TensorAlgebra/zXL7F/src/contract/contract.jl:52 [inlined]
 [15] contract(labels_dest::Tuple{…}, a1::Matrix{…}, labels1::Tuple{…}, a2::Matrix{…}, labels2::Tuple{…})
    @ TensorAlgebra ~/.julia/packages/TensorAlgebra/zXL7F/src/contract/contract.jl:52
 [16] top-level scope
    @ REPL[126]:1
Some type information was truncated. Use `show(err)` to see complete types.

Adding something like assert ndims(a1) == length(labels1) would make debug easier.


Add Flappy Boot to the gaming section

This PR adds a link to Flappy Boot. This is a small game that I built for the GBA using TinyGo. If you're interested you can also play the game on itch.io

Thanks for the addition @bjatkin now merging.


(OraklNode) Remove underscored naming for named imports

Description
In Go, it's generally recommended to avoid underscores in package names and aliases. This is because Go's naming conventions favor camelCase and all lowercase letters without underscores or hyphens.
Type of change
Please delete options that are not relevant.

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

Checklist before requesting a review

[ ] I have performed a self-review of my code.
[ ] If it is a core feature, I have added thorough tests.

Deployment

[ ] Should publish npm package
[ ] Should publish Docker image

LGTM


Codegen error when using PasswordType in tutorial

When running npm run codegen after adding the user schema from the tutorial with ent-starter, the following error occurs:
> docker-compose -f docker-compose.dev.yml run --rm app tsent codegen

Creating ent-starter ... done
Error:
  we require 1 primary key for each table. schemas had 0
Usage:
  tsent [command]

I have the following dependencies in package.json
  "dependencies": {
    "@snowtop/ent": "^0.1.0-alpha91",
    "@snowtop/ent-email": "^0.1.0-alpha1",
    "@snowtop/ent-password": "^0.1.0-alpha1",
    "@snowtop/ent-phonenumber": "^0.1.0-alpha1",
    "@types/express": "^4.17.9",
    "better-sqlite3": "^7.5.3",
    "express": "^4.17.1",
    "express-graphql": "^0.12.0",
    "graphql": "^16.5.0",
    "graphql-helix": "^1.12.0",
    "jest": "^29.1.2"
  }

hi, what files do you have?

Looks like when I ran codegen, it added schema.py - which matches the error.
~/code/ent-starter/src/schema on main [+!] $ ls
__pycache__    schema.py      user_schema.ts versions

From where should I be running npm run codegen?

hmm, all that seems fine. you should be running it from the root of your application e.g. in ~/code/ent-starter. are you running it there or in src/schema?

the other thing i can think of is, do you mind showing me what your user_schema.ts looks like?

import { EntSchema, StringType } from "@snowtop/ent";
import { EmailType } from "@snowtop/ent-email";
import { PasswordType } from "@snowtop/ent-password";

const UserSchema = new EntSchema({
  fields: {
    firstName: StringType(),
    lastName: StringType(),
    emailAddress: EmailType({ unique: true  }),
    password: PasswordType(),
  },
});
export default UserSchema;

When I comment out line 10, codegen works fine.

ok, weird. thanks for answering all my questions. will take a look

I think the issue is the wrong docker image. I need to update ent-starter:main to point to the right image.
can you change the first linedevelop.Dockerfile to
FROM ghcr.io/lolopinto/ent:0.1.0-alpha.28-nodejs-17-dev

Awesome, seems to have worked!  Added to the DB, but have a new error now:
~/code/ent-starter on initial_schema $ npm run codegen

><EMAIL_ADDRESS>codegen
> docker-compose -f docker-compose.dev.yml run --rm app tsent codegen
You're adding a new field 'password' to an existing Node 'User' which isn't nullable. This could result in database errors. Are you sure you want to do that? Y/N: Y
Error:
  auto_schema error: Can't locate revision identified by 'd96ebc42b8c7'

my guess is you deleted a previous schema file when you were trying to figure stuff out. did you delete a file from src/schema/versions/? or delete the entire folder previously?
https://github.com/lolopinto/ent/issues/999 exists to help with debugging missing hashes e.g. after deletion. plan to work on that soon
rm -rf .ent and wipe your db to start again since early in your explorations

Sounds good.  I'll take a look there.  Thank you for your help!

FYI I use git commit --amend a lot, guessing that messed up the identified revision ...

maybe...
it shouldn't since the revisions are stored on disk.
the underlying database migration system is https://alembic.sqlalchemy.org/en/latest/
ls src/schema/versions
# shows the list of revision files and the prefixes {revision_...*.py}


Inital Contributing guide

Initial contributing guide, inspired by sync-android's contributing.md
reviewer @mikerhodes
reviewer @brynh

:+1:

Remove the coding guidelines for now until we have a chance to fix up the whole repo.

Also, perhaps improve the docs so you don't have to have the .sample properties files.

I think we leave it for now, and make the docs better when we make it possible to configure test via system properties like sync-android

Cool :+1:


Missing instructions for Vert.x Web Client JS artifact

In Vert.x 4, the EventBus client JS artifact is no longer published to Maven Central.
There should be a section in the deprecation/breaking changes page explaining how to use the new artifact.

Added a note on web, and there was already a more detailed one on the stack breakages.


AssertionError when I use analyze () function in state-average calculations

Here is my code;
from pyscf import gto, scf, mcscf
mol = gto.M(atom="N 0 0 0; N 0 0 1", basis="ccpvdz")
mol.verbose = 4
mol.build()
mf = scf.RHF(mol).run()
mc = mcscf.CASSCF(mf, 6, 6)
mc.state_average_([0.5, 0.5])
mc.kernel()
mc.analyze()
Traceback (most recent call last):
  File "test.py", line 17, in <module>
    mc.analyze()
  File "/home/chenh/anaconda3/lib/python3.6/site-packages/pyscf/mcscf/casci.py", line 91, in analyze
    casdm1a, casdm1b = casscf.fcisolver.make_rdm1s(civec, ncas, nelecas)
  File "/home/chenh/anaconda3/lib/python3.6/site-packages/pyscf/mcscf/addons.py", line 650, in make_rdm1s
    dm1s = fcibase_class.make_rdm1s(self, ci0, norb, nelec, *args, **kwargs)
  File "/home/chenh/anaconda3/lib/python3.6/site-packages/pyscf/fci/direct_spin1.py", line 755, in make_rdm1s
    return make_rdm1s(fcivec, norb, nelec, link_index)
  File "/home/chenh/anaconda3/lib/python3.6/site-packages/pyscf/fci/direct_spin1.py", line 277, in make_rdm1s
    norb, nelec, link_index)
  File "/home/chenh/anaconda3/lib/python3.6/site-packages/pyscf/fci/rdm.py", line 101, in make_rdm1_spin1
    assert(cibra.size == na*nb)
AssertionError

I love this software and i also want to know how to get the occupations and CI coefficients of each state in dmrg state-average calculation.

I'm not able to reproduce the error using the github head version. Which version do you see
python -c 'import pyscf; print(pyscf.__version__)'

My version is 1.6.1. I just tried again, and the same problem came up.

I also can't reproduce this error.  cibra.size and na*nb are both 400 when I run your example.  What do you get?  Can you include all of the output from your script, with high verbosity?  When cloning the latest version, did you also re-build?

Maybe it was because I overwrote the original file directly when I upgraded, and the problem disappeared after I uninstalled and reinstalled the latest version.


fromFHIR doesn't handle "is type" correctly

Example, from the spec as of ~ mcode 0.5:
Abstract Element:	ExistenceAssertion
Based on:			Finding
Description:		"An assertion of a relationship, situation, condition, or other phenomenon is present or absent, or an event has (or has not) taken place.
For assertions, the FindingTopicCode represents the thing asserted to be present or absent; i.e., the type of condition, event, relationship or phenomenon that is being asserted to exist or not exist."
FindingTopicCode is type ConditionOrDiagnosisCode

Generated ES6 class snippet:
    if (fhir['code'] != null) {
      inst.conditionOrDiagnosisCode = FHIRHelper.createInstanceFromFHIR('shr.base.ConditionOrDiagnosisCode', fhir['code'], shrId, allEntries, mappedResources, referencesOut, false);
    }

should be inst.findingTopicCode = ...

Fixed by #41


[QUESTION]

I have an error while running run.bat on my Windows.
I just downloaded this and tried running it and got this error:
"No suitable Python runtime found
Pass --list (-0) to see all detected environments on your machine
or set environment variable PYLAUNCHER_ALLOW_INSTALL to use winget
or open the Microsoft Store to the requested version.
Press any key to continue . . ."
Before this, I believe it said something about downloading python from python.org, so I did that, and now I have this. How do I fix this?

Which python version did you download?

Which python version did you download?

I got 3.11.5 on python's website.

Which python version did you download?

I got 3.11.5 on python's website.

Python 3.11 is not currently supported, only 3.10, make sure you have that version installed, you don't need to uninstall python 3.11 though, it's managed still.

Which python version did you download?

I got 3.11.5 on python's website.

Python 3.11 is not currently supported, only 3.10, make sure you have that version installed, you don't need to uninstall python 3.11 though, it's managed still.

So I was able to get it working, then it told me to download a different pip, which I did, but now when I try to run it, this is displayed over and over again until I close it.
Checking installs and venv + autodebug checks
Python version:  3.10.1 (tags/v3.10.1:2cd268a, Dec  6 2021, 19:10:37) [MSC v.1929 64 bit (AMD64)]
Webui version: 82dcef0e059661d496d8467be2303eed3510a657 - Fri Sep 8 20:09:30 2023 +0200
Found extensions:
activating venv

This usually happens when you're already in a venv, if you want to launch it while already in a venv, you can skip that part by adding --skip-venv to the launch flags.
If you're not already in a venv, and getting the repeated activations, i recommend manually activating a venv and then running with the --skip-venv flag, while technically you can use the flag without using a venv, in that case it will install the packages globally for python 3.10, which i do not recommend.

I apologize, but I am new to this kind of stuff. What is a venv and where do I input that command you sent?

Run the activate_only.bat, and type python main.py --skip-venv
the activate_only.bat will open a cmd which has the venv (virtual environment) activated, so within this cmd, running python will use the python version from the venv (3.10)
Then running python main.py --skip-venv will launch the webui, skipping the check for a venv (since we already have it activated)

If you want to clone your voice for text to speech, you can use bark in the text to speech models, and as the voice select the clone option.

Thank you. It is working now. I apologize for bothering you.


mini_portile2 fails when 'unlink'-ing temp log-file in Windows [install]

Have you read and followed the installation tutorial at http://www.nokogiri.org/tutorials/installing_nokogiri.html?

[x] Yes!

Although I'm trying to install an earlier version of Nokogiri (1.8.5, due to ~> 1.8.1 dependency of the main gem I'm trying to install -- which is in turn dependent on mini_portile2 v. 2.3.0), I believe the problem derives from code still present in the latest version of Mini_portile (2.8.0). So, please bear with me, to see whether you agree that this code-bit is problematic :)

(I reckon that if I'm right about the cause -- which I believe is a Windows-portability problem --  any fix you have for it may work on the earlier v. of mini_portile, potentially solving my problem ... In the meantime, though, I've suggested to the handlers of the "main gem I'm trying to install" that they might be able to shift to a >=1.11.0 version of Nokogiri, supporting native-gem installation on Windows thereby ;)

So, I'm trying to install Nokogiri 1.8.5 on my brand-new Windows 10 machine. My new Ruby 3.1.1 install is via Chocolatey ( https://community.chocolatey.org/packages/ruby ). For whatever reason, the 1.8.5 install on this machine wants to BUILD Nokogiri (though on my previous Windows 10 machine, I don't recall it needing to do so).
Thus, I found it necessary (or at least helpful) to install also the Chocolatey package for MSYS2 ( https://community.chocolatey.org/packages/msys2 ). After the latter install, I was able to use ridk install 1 2 3 to completion, receiving the message "Install MSYS2 and MINGW development toolchain succeeded".
But the gem-install depending on Nokogiri 1.8.5 hung (after "Building native extensions. This could take a while..."). An attempted install with
gem install nokogiri --version '1.8.5' -V
generated lots of ouput; but most helpfully, the following trace:
C:/tools/ruby31/lib/ruby/gems/3.1.0/gems/mini_portile2-2.3.0/lib/mini_portile2/mini_portile.rb:302:in `unlink': Permission denied @ apply2files - C:/tools/ruby31/lib/ruby/gems/3.1.0/gems/nokogiri-1.8.5/ext/nokogiri/tmp/x86_64-w64-mingw32/ports/libiconv/1.15/configure.log (Errno::EACCES)
    from C:/tools/ruby31/lib/ruby/gems/3.1.0/gems/mini_portile2-2.3.0/lib/mini_portile2/mini_portile.rb:302:in `block in log_file'
    from <internal:kernel>:90:in `tap'
    from C:/tools/ruby31/lib/ruby/gems/3.1.0/gems/mini_portile2-2.3.0/lib/mini_portile2/mini_portile.rb:301:in `log_file'
    from C:/tools/ruby31/lib/ruby/gems/3.1.0/gems/mini_portile2-2.3.0/lib/mini_portile2/mini_portile.rb:371:in `execute'
    from C:/tools/ruby31/lib/ruby/gems/3.1.0/gems/mini_portile2-2.3.0/lib/mini_portile2/mini_portile.rb:108:in `configure'
    from C:/tools/ruby31/lib/ruby/gems/3.1.0/gems/mini_portile2-2.3.0/lib/mini_portile2/mini_portile.rb:153:in `cook'
    from extconf.rb:365:in `block (2 levels) in process_recipe'
    from extconf.rb:257:in `block in chdir_for_build'
    from extconf.rb:256:in `chdir'
    from extconf.rb:256:in `chdir_for_build'
    from extconf.rb:364:in `block in process_recipe'
    from <internal:kernel>:90:in `tap'
    from extconf.rb:262:in `process_recipe'
    from extconf.rb:516:in `<main>'
ERROR:  Error installing asciidoctor-bibliography:
    ERROR: Failed to build gem native extension.

Now, to my mind, the most-informative line there is this one:
C:/tools/ruby31/lib/ruby/gems/3.1.0/gems/mini_portile2-2.3.0/lib/mini_portile2/mini_portile.rb:302:in 'unlink'' Permission denied @ apply2files - C:/tools/ruby31/lib/ruby/gems/3.1.0/gems/nokogiri-1.8.5/ext/nokogiri/tmp/x86_64-w64-mingw32/ports/libiconv/1.15/configure.log (Errno::EACCES)
The line of code this is pointing to is in this method from mini_portile.rb:
  def log_file(action)`
    @log_files[action] ||=`
      File.expand_path("#{action}.log", tmp_path).tap { |file|`
        File.unlink(file) if File.exist?(file)`
      }`
 end

Judging from the stack-trace, the build of nokogiri fails when the line
File.unlink(file) if File.exist?(file)
fails to unlink the 'configure.log' file, due to a Windows errno 'EACCES'.
I tried the first thing that comes to mind: to liberalise the permissions on the file itself; none of that solved the problem. But 'EACCES' doesn't pertain to that, necessarily; it has to do with an attempt to do anything to/with a file that is not permitted, by the nature or status of the file (e.g., trying to write to a read-only file). And in Windows that includes trying to delete (or "unlink") a file that's still open for any process (including the current one).
Which is why numerous posts say that if you're going to write Ruby in a Windows-compatible way, you have to be careful about this: e.g, you may decide to use Tempfile instead of File when you want to create (and then delete) a temporary-only file.
Interestingly, this same mini_portile.rb script DOES make use of Tempfile -- including Tempfile.close() -- but, only for the temporary files downloaded, NOT for this temporary log-file...
So, what do you reckon? Isn't Windows complaining, here, that mini_portile.rb is trying to delete (unlink) a file that it hasn't yet closed -- which prior closure Windows requires?
And, why not use Tempfile -- including Tempfile.close() -- in this case, as in other cases in the script?
If installation failed during compilation, what are the complete contents of the mkmf.log file generated during the failed installation?
Here I must apologize: Though in earlier attempts I did get a resulting mkmf.log file, the most recent runs (which were AFTER a successful native-gem install of the latest Nokogiri version) left an empty folder where that file should be -- and I didn't think to save the output of the file when it was being generated. I can tell you that there seemed, to me, nothing pertinent to this install-issue in the file's contents.
Tell us about your system!
What is the output from ruby -v?
ruby 3.1.1p18 (2022-02-18 revision 53f5fc4236) [x64-mingw-ucrt]
What is the output from gem -v?
3.3.7
What is the output from gem env?
RubyGems Environment:
  - RUBYGEMS VERSION: 3.3.7
  - RUBY VERSION: 3.1.1 (2022-02-18 patchlevel 18) [x64-mingw-ucrt]
  - INSTALLATION DIRECTORY: C:/tools/ruby31/lib/ruby/gems/3.1.0
  - USER INSTALLATION DIRECTORY: C:/Users/andyc/.local/share/gem/ruby/3.1.0
  - RUBY EXECUTABLE: C:/tools/ruby31/bin/ruby.exe
  - GIT EXECUTABLE:
  - EXECUTABLE DIRECTORY: C:/tools/ruby31/bin
  - SPEC CACHE DIRECTORY: C:/Users/andyc/.local/share/gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: C:/ProgramData
  - RUBYGEMS PLATFORMS:
     - ruby
     - x64-mingw-ucrt
  - GEM PATHS:
     - C:/tools/ruby31/lib/ruby/gems/3.1.0
     - C:/Users/andyc/.local/share/gem/ruby/3.1.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - C:\Program Files (x86)\Common Files\Oracle\Java\javapath
     - C:\tools\ruby31\bin
     - C:\Program Files\Antenna House\AHFormatterV72
     - C:\Windows\system32
     - C:\Windows
     - C:\Windows\System32\Wbem
     - C:\Windows\System32\WindowsPowerShell\v1.0\
     - C:\Windows\System32\OpenSSH\
     - C:\ProgramData\chocolatey\bin
     - C:\Strawberry\c\bin
     - C:\Strawberry\perl\site\bin
     - C:\Strawberry\perl\bin
     - C:\Users\andyc\AppData\Roaming\nvm
     - C:\Program Files\nodejs
     - C:\Program Files (x86)\PuTTY\
     - C:\Program Files (x86)\Microsoft SQL Server\120\DTS\Binn\
     - C:\Program Files (x86)\Microsoft SQL Server\Client SDK\ODBC\110\Tools\Binn\
     - C:\Program Files (x86)\Microsoft SQL Server\120\Tools\Binn\
     - C:\Program Files (x86)\Microsoft SQL Server\120\Tools\Binn\ManagementStudio\
     - C:\Users\andyc\AppData\Local\Microsoft\WindowsApps
     - C:\Users\andyc\AppData\Roaming\nvm
     - C:\Program Files\nodejs
     - C:\Users\andyc\AppData\Local\atom\bin
     - C:\Users\andyc\AppData\Local\GitHubDesktop\bin
     - C:\tools\msys64

@andrewcarver Thanks for opening this issue, and sorry you're having problems.
I'm a bit confused by your description -- were you able to install after deleting that temporary directory? That seems like the obvious thing to try if you haven't tried it already.
I suspect the file couldn't be deleted because it was still open (being written to) by a previous gem install subprocess that hadn't completed, or was terminated but didn't exit. I'm unable to reproduce this and that's the first possible cause that comes to mind.
If you can figure out how to reproduce this, and wanted to file a bug report upstream with mini_portile2 (which I also maintain) I'm open to taking a deeper look. Otherwise, though, I'm not going to spend time digging into this because the version of the software is quite old and there seems like an easy workaround (mentioned above).

@flavorjones Thanks for the prompt reply. Let me try to clarify, please:

I'm a bit confused by your description -- were you able to install after deleting that temporary directory?

No, I've not gotten the install (of 1.8.5) to succeed.
Sorry, which directory? I did try deleting the configure.log file and re-running, but all that returns different is to open a Windows Explorer window, to the now empty folder C:\tools\ruby31\lib\ruby\gems\3.1.0\gems\nokogiri-1.8.5\ext\nokogiri\tmp\x86_64-w64-mingw32\ports\libiconv\1.15, and to give me a Windows pop-up informing me that

Location is not available
C:\tools\ruby31\lib\ruby\gems\3.1.0\gems\nokogiri-1.8.5\ext\nokogiri\tmp\x86_6...\libiconv is unavailable. If the location is on this PC, make sure the device or drive is connected or the disc is inserted, and then try again. If the location is on a network, make sure you're connected to the network or Internet, and then try again. If the location still can't be found, it might have been moved or deleted.

So, it doesn't like that at all -- but nor does it end the process and give me back the command prompt. But if (after closing this command-window and opening another) I try the install again -- and even though the process hangs again -- before it hangs, it re-populates this folder, with three files (and a sub-folder), including configure.log.

I suspect the file couldn't be deleted because it was still open (being written to) by a previous gem install subprocess that hadn't completed, or was terminated but didn't exit.

Yes, that's my guess. And I thought it would be the process (whichever one it is) that creates (or, as I just mentioned, re-creates) the contents of the above folder ... But then, the fact that I can't even close my command-window with exit, after one of these runs, does make me wonder, "what's going on under the ground" ... and, the fact that I'm no longer even able to get the stack-trace, in any install-attempt with -V --: the screen-output just hangs, at the point where it's trying to do the Nokogiri build.
So, something seems to be still "hung", even after I Ctrl+C (just to get my command prompt back). But even after I close that command-window, or even re-boot the machine .... the next time I run the install, I get the same problem.

If you can figure out how to reproduce this ...

Reproduce it? I'm just trying hard NOT to reproduce it ... Not sure what you're asking, here?

P.S. If you can tell me exactly what section of the "temporary directory" folder-path you'd try deleting, I will (VERY) gladly try it. Many thanks!!
C:\tools\ruby31\lib\ruby\gems\3.1.0\gems\nokogiri-1.8.5\ext\nokogiri\tmp\x86_64-w64-mingw32\ports\libiconv\1.15

@andrewcarver I'm sorry that you're having this problem, but we've run Windows CI on every version of Nokogiri going back to 2015 and I've never seen this happen. When I ask for help reproducing it, I mean reproducing it in CI or in my Windows development VM.
I'm not a frequent windows user, so I unfortunately can't tell you how to figure out what process is reading that configure.log file and preventing mini_portile from cleaning it up.
If you are deleting the tmp directory before attempting to install the gem; and then during gem installation you get this error message, and there isn't another gem install process running simultaneously, then you may want to look at whether you have antivirus or something that is opening and scanning files and preventing mini_portile from cleaning up.
It's entirely possible that something that is under Nokogiri's or mini_portile's control could be changed; but you've established that you're unable to upgrade Nokogiri or mini_portile, even if a patch could be created (which I'm not willing to spend the time to do, given the age of these versions).
If you urgently need a workaround, I'd suggest monkeypatching mini_portile to avoid deleting this file. If you have more time and are willing to help write a test for mini_portile that reproduces this issue, then I will happily fix it in the current minor release of mini_portile. But I don't think this issue is actionable from the point-of-view of Nokogiri, and so I'm going to close it.
Please feel free to comment or ask questions and I'll do my best to respond to them here.

If you can tell me exactly what section of the "temporary directory" folder-path you'd try deleting

C:\tools\ruby31\lib\ruby\gems\3.1.0\gems\nokogiri-1.8.5\ext\nokogiri\tmp

Ah ... which would explain why I didn't have this problem on my previous Windows 10 machine, still running Ruby 2.6.x ... Thanks!!

YEP!! It works with Ruby <IP_ADDRESS>. It even appears, from an old error-message I'd noted (but then, sadly, overlooked!), that version 1.8.5 doesn't like any Ruby older than 2.5.x:
ERROR:  Error installing asciidoctor-bibliography:
        The last version of nokogiri (~> 1.8.1) to support your Ruby & RubyGems was 1.8.5. Try installing it with `gem install nokogiri -v 1.8.5` and then running the current command again
        nokogiri requires Ruby version >= 2.2, < 2.6. The current ruby version is <IP_ADDRESS>.


[BUG] In dark mode, auto-populated fields are tough to see

Describe the bug
Input fields that are auto-populated by the browser, like a saved usernames, are too dark to see in the dark mode for both default and Next themes. That is because the "shades" are reversed in dark mode where $ouiColorLightestShade is in fact nearly black and $ouiColorDarkestShade is nearly while. The code below wrongly uses $ouiColorLightShade, which is a dark color, on a dark background.
https://github.com/opensearch-project/oui/blob/0365b429fd7935ef8b8e5b31f232c4e6a73c67e1/src/themes/oui-next/global_styling/mixins/_form.scss#L265-L277
$ouiColorDarkestShade or $ouiColorDarkShade are much more suitable for the dark themes input-fields.
Screenshots

I have new values that need to be implemented but was waiting for endpoint to return to verify. I'll be adding the correct values to the original issue.


-watchLifecycleEvents: is listening to the same notification for foreground/background.

Description
I was reading the code to understand more and found the issue I describe here.
Issue
#if TARGET_OS_TV || TARGET_IPHONE_SIMULATOR || TARGET_OS_IPHONE
    foregroundName = UIApplicationWillEnterForegroundNotification;
    backgroundName = UIApplicationWillEnterForegroundNotification;
    #elif TARGET_OS_MAC
    foregroundName = NSApplicationWillBecomeActiveNotification;
    backgroundName = NSApplicationDidFinishLaunchingNotification;
    #endif

Environment
Library versions:
master
it should be
backgroundName = UIApplicationDidEnterBackgroundNotification;

Hey @bolsinga, thanks for this report. We will take a look into this.

Hey @bolsinga, the fix for this has been released in v5.23.1


Fix encoding and add simple code line to red payment slips.

Hope to support you.

Hi @okaufmann ,
Thank you very much for your contribution, but this fork has been only created for a particular PR and is waiting for merging with the main project, then will be deleted.
Therefore, I can't accept your PR. You should fork the official project and create a PR.
Best regards,
Sébastien

Didn't noticed the open PRs. Just saw the original project didn't received updates since October last year.
I close the PR and will open a new one, once your PR was accepted.
Best regards


Circular references

Hi,
I'm using the v2.0.5, and I encouter this error:
PHP Fatal error:  Allowed memory size of 536870912 bytes exhausted (tried to allocate 32 bytes) in vendor/justinrainbow/json-schema/src/JsonSchema/Iterator/ObjectIterator.php on line 127
This error seems to be related to circular references.
Here is a minimal version of my 2 schemas:
Author.json  in some cases will return a collection of Posts
{
    "$schema": "http://json-schema.org/draft-04/schema",
    "id": "Author.json",
    "type": "object",
    "properties": {
        ...
        "posts": {
            "type": "array",
            "items": {
                "$ref": "Post.json#"
            }
        }
    }
}

Post.json in some cases will return an Author
{
    "$schema": "http://json-schema.org/draft-04/schema",
    "id": "Post.json",
    "title": "Post Schema",
    "type": "object",
    "properties": {
        ...
        "author": {
            "$ref": "Author.json#"
        }
    }
}

I just have two cases:

I want an author with a collection of posts

I want a post with his author

The circular cases (where I want an author with his posts+author) never happens in real life.
Not sure if i'm clear.
My question:
Is it a problem of the way I designed my schemas or is it a problem of your validation library?
Best regards,

@nicolas-t Can you check this issue #274 ? In my comment, I found that
In our code, we want to cache all the resolved schemas, so we write like this:
// This will cause infinite looping and crash
$refResolver = new RefResolver(new UriRretriever(), new UriResolver());
for ($schemas as $schema) {
  $resolved = $refResolver->resolver($schema);
  $cache[] = $resolved;
}

// but this will work ok
for ($schemas as $schema) {
  $refResolver = new RefResolver(new UriRretriever(), new UriResolver());
  $resolved = $refResolver->resolver($schema);
  $cache[] = $resolved;
}

It seems that every time you dereference a schema, you need to create a new RefResolver.

Thanks !
yes I saw your comment before opening this issue, but in my code i'm not looping over schemas.
$refResolver = new JsonSchema\RefResolver(new JsonSchema\Uri\UriRetriever(), new JsonSchema\Uri\UriResolver());
$schema = $refResolver->resolve('file://mySchema.json'));

$validator = new JsonSchema\Validator();
$validator->check($json->data, $schema);

So i'm not sure how to use your example.

Should be solved with #277 and is available in 3.0.0


Some kind of bug with escaped quotes inside strings in an object

...that doubles the escape character, which then causes syntax errors trying to read again.
Don't have a small fail case yet, but using @s formatting on a map/object where the embedded strings have escaped double quotes.

Here is a small(-ish) example:
cssPosition: "89,-1,-1,120,70,20",
customProperties: "design:{ otherElements:\"'help,exit,search'\", extraInfoElementName:\"'lblHelpNo'\", lookupName:\"'HelpCode'\" }",
dataProviderID: "prevNo",
name: "txtHelpNo",
onDataChangeMethodID: "723EF460-707D-439E-8709-EEB73DFCDBAF",
typeid: 4,
uuid: "964EB2B4-BE4C-4B88-9365-1128265BD3B1"

Read and process with this script:
json = eval('{' + read('sample.json') + '}')
text = `${json@-s}`
text@q

Give this result:
{cssPosition:"89,-1,-1,120,70,20",customProperties:"design:{ otherElements:\\"'help,exit,search'\\", extraInfoElementName:\\"'lblHelpNo'\\", lookupName:\\"'HelpCode'\\" }",dataProviderID:"prevNo",name:"txtHelpNo",onDataChangeMethodID:"723EF460-707D-439E-8709-EEB73DFCDBAF",typeid:4,uuid:"964EB2B4-BE4C-4B88-9365-1128265BD3B1"}

which gives this error trying to read it again with "ppj":
Error: Syntax error at position 78: missing '}' at ''help,exit,search'' at line 1.
Which goes away if we undo the double backslashes.

Problem might be in "quoteControl" ...

Add the test/workaround code to the unit tests after #464 is done.


every registered and logged in player can edit his own profile page (and only his own)

Couldn't be completed since we lost a group member in the beginning.
Please find further explanation in the group report.


RTL Support

Describe the bug
when the website or mobile is on rtl the confetti doesnt appear.
To Reproduce
in html tag add dir="rtl"
fire confetti event
You can try on https://party.js.org/ example template
Expected behavior
confetti should appear when an event is fired whether its ltr or rtl

@yiliansource is there a solution for this?

Hi, sorry, uni exams got the better of me.
I'll have to look into this, I'm not too familiar with the effects of dir="rtl". I'll let you know what I'll come up with.

its doesn't work also with: body{ direction: rtl; }

My solution was to put the rtl property on the text div directly. The most simple solution for this would be to add dir="ltr" to the div containing the canvas element directly in the library, this should not have any effect for ltr sites as far as I can tell.
For now, here is a code snippet to fix this for anyone else, just paste it anywhere...
party.forceInit()
setTimeout(
() =>
	document
		.getElementById("party-js-container")
		.setAttribute("dir", "ltr"),
500
)

This is obviously very crude but it works for me, I might open a fix pr later.


Files leaked to github by using vscode

Hello,
i am using vscode for my c/c++ development and recently a very strange thing happened.
one of my source files was sent to public internet(Microsoft, github) without my consent. I have a monitoring app on my machine to alert me when security risks are exposed and that's how i found out about this incident.
the command which triggered this file upload was:
/usr/bin/git->/vscode/code --nolazy --inspect 13242 /vscode/resources/app/out/bootstrap-fork --type=extensionHost
Version: 1.38.1
Commit: b37e54c98e1a74ba89e03073e5a3761284e3ffb0
Date: 2019-09-11T13:30:08.229Z
Electron: 4.2.10
Chrome: 69.0.3497.128
Node.js: 10.11.0
V8: 6.9.427.31-electron.0
OS: Linux x64 3.10.0-693.11.6.el7.x86_64
i wonder if this is related to a crash or some other activities in vscode
thanks
Ali

/needsMoreInfo
Are you sure that a source file has been send? That would be surprising and concerning. From your repot It's a little hard to understand if the process in question was git or code? If the latter then your information hints towards the extension host, e.g any extension can in theory do that. So, I'd check the list of installed extensions.
In case this was not a source file, just VS Code contacting the internet, revisit the list of setting that control online services (telemetry etc). Select the Gear Icon > Online Service Settings to revisit and disable them.

the leak was a source file plus some git related file from .git folder. Report exactly points to the file and its location.
at the time of incident i had 3 extensions installed: C/C++ and GItLens.
after this incident i disabled all telemetry stuff and non Microsoft extensions
the file has been leaked to these ip addresses
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>

/usr/bin/git->/vscode/code --nolazy --inspect 13242 /vscode/resources/app/out/bootstrap-fork --type=extensionHost

Ok, can then please explain this line then? How should I read/understand this? Is /usr/bin/git the executable accessing the file or /vscode/code?


Lua program crashes when using delegates instead of function pointers

I didnt try with a clean app but with my engine it crashes (only for other people, I couldn't reproduce it) when i use
// LuaState lua
LuaTable table = lua.newTable();
table["derp"] = () { return player.x; };

When I use derp frequently by calling the lua function which calls derp it will eventually crash after some undefined time. However when I create a function for that and then reference that, it will never crash. Maybe its something with the D garbage collector deleting the lambdas because it thinks it isnt used. So this works:
// LuaState lua
LuaTable table = lua.newTable();
int derp() { return player.x; }
table["derp"] = &derp;

Anonymous functions and (non-static) nested functions should behave exactly the same - they are both delegates, and they both produce closures when that delegate is escaped. Maybe your second example isn't true to exactly what they tried when it worked?
Anyway, LuaD should be handling the GC problem by calling GC.addRoot on the userdata pointer created for delegates (see luad/conversions/functions.d#237). It is then GC.removeRooted in Lua's __gc metamethod which is the finalizer callback for Lua's own GC.
However, I'm not 100% sure how the conservative D GC handles manually added roots and ranges. Maybe it should be addRooting func.ptr (the context pointer of the delegate) instead?
Maybe some other issue is at play?

This is the fixed version:
class Game3D : RenderLayer
{
    private LuaTable playerTable;
    private Player player;

    ... // Player initialization, Asset loading etc

    private int getX() { return player.x; }
    ... // More functions

    public void setLua(LuaState lua)
    {
        playerTable = lua.newTable();

        playerTable["getX"] = &getX;

        auto plugins = dirEntries("plugins/", SpanMode.shallow, false);

        foreach(string file; plugins)
        {
            if(file.endsWith(".lua"))
            {
                try
                {
                    lua.doFile(file); // file containing my code
                }
                catch(LuaErrorException e)
                {
                    Logger.errln(e);
                }
                Logger.writeln("Loaded plugin from ", file);
            }
        }
    }
}

Indeed, (non-static) member functions have a different delegate context. I think maybe the fix would be to change GC.addRoot(udata); with GC.addRange(udata, T.sizeof); - I think currently it could be missing the context pointer, depending on whether the context pointer or the function pointer is first in a delegate.


Add EYK CLI to the image workspace-full x86, minor fix

Your Pull Request has been selected for a project-agnostic code review by Aurea Central Reviewers Team.
Please consider using Analyzer UI extension to catch issues in pull requests.
More information
This is an initiative to improve overall code quality. If your change is urgent, you don't have to wait for our review.
NOTE: This review does not replace your team's review.


the course is outdated

the topic transformers should be remove imo i dont think all the latest stuff of transformers is covered in this , corrct me if i am wrong

Can you be more specific?

let me just rephrase it, the course should get updated with latest stuff

Can you be more specific?

i feel like the course is outdated it should contain more new stuff ...

Can you be more specific?

i feel like the course is outdated it should contain more new stuff ...

Saying "new stuff" doesn't help much.
It would be better to list specific places where things are wrong or broken.
Not simply "do things better"

Can you be more specific?

i feel like the course is outdated it should contain more new stuff ...

Saying "new stuff" doesn't help much.
It would be better to list specific places where things are wrong or broken.
Not simply "do things better"

OKAY GIVE ME TIME .. I WILL GO THROUGH THE COURSE

Chapter 2 Using Transformers > Models > Saving Methods (Using Pytorch)
Does not save these two files:
ls directory_on_my_computer
config.json pytorch_model.bin
Instead it saves these two files:
ls directory_on_my_computer
config.json model.safetensors

Chapter 2 "End of Chapter Quiz" does not allow you to click the "Complete Chapter" link because it detects that the user hasn't finished the Quiz. If you look at the column on the right hand side of the screen it shows there are two Exercises #10. I'm guessing this must be the problem.

@CodingVoyagerPrincess please make a new pull issue dont trash talk here please i request humbly!


feat: Progress Bar component

Adding progress bar component

react component
macro
examples
tests
docs

Does the component work in a scenario where the progress bar is completed ? If so, can we add a story showing that ?


enancement: add flag for webhook validation

Overview
When developing locally you currently have to comment out code in order to get the server to allow you to enable/disable repos.  This pr adds a new flag for disabling webhook validation.
VELA_ENABLE_WEBHOOK_VALIDATION - default: true

Code coverage issue wasn't caused by my changes- please see the +0.01% increase

@jbrockopp I moved the variable to the docker-compose file.   During my development there was a docker-compose file provided by @JordanSussman that included a worker and the ui- it feels like we should include that as well so when we docker-compose up we have a fully functional local environment.  Even though the docker-compose is pointing to static images (ui -     image: target/vela-ui, worker- image: target/vela-worker:v0.6.0) I think it provides a better OOB experience than what is there today.
Would you be open to including those changes as well in the docker-compose file?
For reference:
# Copyright (c) 2020 Target Brands, Inc. All rights reserved.
#
# Use of this source code is governed by the LICENSE file in this repository.

version: '3'

services:

  server:
    container_name: server
    build:
      context: .
      dockerfile: Dockerfile
    networks:
      - vela
    environment:
      VELA_ADDR: 'http://localhost:8080'
      VELA_WEBUI_ADDR: 'http://ui:80'
      VELA_DATABASE_DRIVER: postgres
      VELA_DATABASE_CONFIG: postgres://vela:zB7mrKDTZqNeNTD8z47yG4DHywspAh@postgres:5432/vela?sslmode=disable
      VELA_LOG_LEVEL: trace
      VELA_QUEUE_DRIVER: redis
      VELA_QUEUE_CONFIG: redis://redis:6379
      VELA_QUEUE_WORKER_ROUTES: large,small,docker,large:docker,small:docker
      VELA_PORT: ":8080"
      VELA_SECRET: zB7mrKDTZqNeNTD8z47yG4DHywspAh
      VELA_SOURCE_DRIVER: github
      VELA_SECRET_VAULT: "true"
      VELA_SECRET_VAULT_ADDR: http://vault:8200
      VELA_SECRET_VAULT_TOKEN: vela
    env_file:
      - secrets.env
    restart: always
    ports:
      - "8080:8080"
    depends_on:
      - postgres
      - redis
      - vault

  worker:
    container_name: worker
    image: target/vela-worker:v0.6.0
    networks:
      - vela
    environment:
      VELA_BUILD_LIMIT: 1
      VELA_BUILD_TIMEOUT: 30m
      VELA_LOG_LEVEL: trace
      VELA_QUEUE_DRIVER: redis
      VELA_QUEUE_CONFIG: redis://redis:6379
      VELA_QUEUE_WORKER_ROUTES: large,docker,large:docker
      VELA_RUNTIME_DRIVER: docker
      VELA_SERVER_ADDR: http://server:8080
      VELA_SERVER_SECRET: zB7mrKDTZqNeNTD8z47yG4DHywspAh
    restart: always
    ports:
      - "8081:8080"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock"
    depends_on:
      - server

  ui:
    container_name: ui
    image: target/vela-ui
    networks:
      - vela
    ports:
      - "8888:80"
    environment:
      VELA_API: "http://localhost:8080"
    depends_on:
      - server

  redis:
    container_name: redis
    image: redis:5-alpine
    networks:
      - vela
    ports:
      - "6379:6379"

  postgres:
    container_name: postgres
    image: postgres:12-alpine
    networks:
      - vela
    environment:
      POSTGRES_DB: vela
      POSTGRES_PASSWORD: zB7mrKDTZqNeNTD8z47yG4DHywspAh
      POSTGRES_USER: vela
    ports:
      - "5432:5432"

  vault:
    image: vault:latest
    container_name: vault
    command: server -dev
    networks:
      - vela
    environment:
      VAULT_DEV_LISTEN_ADDRESS: <IP_ADDRESS>:8200
      VAULT_DEV_ROOT_TOKEN_ID: vela
    ports:
      - "8200:8200"
    cap_add:
      - IPC_LOCK

networks:
  vela:


Make logging directory configurable

In the process of configuring systemd to run iroh, I am attempting to use a "dynamic user" to run the service. This effectively sandboxes the service by making the full filesystem read-only except for a specific "state directory" (/var/lib/iroh in my configuration). When attempting to run the service with this configuration I see the error:
Error: failed to create log directory: Read-only file system (os error 30)

I would like to configure iroh to write logs to /var/log/iroh, which I will make writable by the systemd "dynamic user" that ends up running the service. Would it be possible to expose the log output directory as a configuration knob?

@crimeminister please give https://github.com/n0-computer/iroh/pull/2391 a go if you have the bandwidth to do so

Do we know if there's other files read/written from iroh with non-configurable locations? We'd need to make sure everything is configurable to solve OP's use-case IIUC.

Do we know if there's other files read/written from iroh with non-configurable locations?

All other files should be written into the main iroh folder, which is a single configurable place. I am surprised our logs don't go in there by default

our logs go in the iroh folder. The use case here is that he wants logs to go somewhere else instead, different to the iroh folder

Thanks for this, everyone! I appreciate the quick and helpful response.


Full screen content is not always letterboxed

Checklist:

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

Release with the issue:
v3.0.0.
Last working release (if known):
N/A
Browser and Operating System:
Windows 10, Firefox 103.0b4 and Chrome 103.0.5060.66
Description of problem:
When going full screen, the camera feed is stretched to the maximum, cutting much of the feed:

I would rather expect that it fits height instead of width. Is this per design or is there some config option I need to change?
Additional information:
My config:
 - type: custom:frigate-card
   cameras:
     - camera_entity: camera.main_2
     - camera_entity: camera.garage_2
     - camera_entity: camera.garden_2
   view:
     default: live
     timeout_seconds: 0
     update_cycle_camera: true
     actions:
       double_tap_action:
         action: custom:frigate-card-action
         frigate_card_action: fullscreen
   dimensions:
     aspect_ratio_mode: dynamic
     #aspect_ratio: '1/1'
   card_mod:
     style:
       .: |
         ha-card {
           border-radius: 4.75% !important;
         }
         .container {
           border-radius: 4.75% !important;
         }

The stream is 2560x1920, screenshot from ultrawide monitor.

Hi @anarion80, the expected behavior is that it fills the screen without losing any content by letterboxing the content. I can't tell from the screenshot, but presumably that is not happening here and you're losing content off the bottom (so I agree this sounds like a bug).
As a quick try, can you use the latest build just to confirm whether or not you see the same beahvior in your usecase: https://github.com/dermotduffy/frigate-hass-card/releases/tag/v4.0.0-rc.2

Thanks for the reply. Yes, the problem was that feed was cut off at the bottom.
After switching to v4.0.0.-rc.2 the situation is fixed:

Thanks for support!
I will close the issue, but I have one more possibly related question. Is there a way to make the card fill entire view (so fill height)?
I have square 'buttons' that I want to show the feed.
So how to make this:

into this:

?

@anarion80 Just to clarify, I think your request is:

Could the camera live view intentionally be clipped (losing content) in order to fill both dimensions (width & height) without letterboxing (the black strips).

If that's the request, this is not possible today.

Yes, it's the first one - intentionally clip on both sides just to fill both dimensions.

@anarion80 Do you imagine this is something you'd like to set differently per camera, or once for the whole card?

In my use case - it would be per card.

* Could the camera live view _intentionally_ be clipped (losing content) in order to fill both dimensions (width & height) without letterboxing (the black strips).

I was about to request something similar to this! My request is the ability to 'crop in' on the live video feed coupled with the ability to utilize the aspect ratio changer on the card to allow a "full mobile screen" of my front door.
My regular front door feed with WebRTC:

The cropped feed that would take up more of the screen on my mobile app:

I was thinking in terms of use case, I'd have this 'cropped stream dashboard' appear when tapping a motion detection or doorbell press notification. It would make the HA experience more akin to the Nest Doorbell.
Today I've achieved a cropped feed by using the camera proxy built into HA, but this is a very low quality feed, isn't WebRTC and doesn't have audio etc.
camera:
  - platform: proxy
    entity_id: camera.amcrest_camera
    name: My cropped camera
    mode: crop
    image_top: 0
    image_left: 230
    max_image_width: 360
    max_image_height: 950
    max_stream_width: 360
    max_stream_height: 1000
    stream_quality: 100
    force_resize: true

Still planning to experiment with this!
I think we can do some of this by allowing the user to control the object-fit and object-position of the various forms of media the card supports. Notably absent is "zoom" / scale, I can't find a clever way to do that that doesn't result in the whole video component being scaled (i.e. including the video controls, possibly cutting them off, etc).
In short: I think this would cover @anarion80's usecase, and at least some of @conorlap's ...

This is now implemented, see https://github.com/dermotduffy/frigate-hass-card/tree/release-4.0.0#changing-the-media-layout for examples of usage. You'll need to build your own version to test it out, or wait for the next official build.

Working a treat here @dermotduffy - thank you!! 🎉

I finally got around to using this further, and it works here as well. Big thanks @dermotduffy !

However, I'm probably missing some config value, because now the button looks stretched as it should, but when double clicking on it, the full screen view is also streched to fit width, so now cutting a lot...
How do I disassociate the setting for the card and its full screen view?

@anarion80 I think that's working as intended, but I think you're asking (essentially) for a different configuration depending on whether you're in fullscreen or not. Am I understanding correctly? If yes, you might be able to override the config -- mind sharing your configuration and I'll take a look?

Yes, here's the card config:
- type: custom:frigate-card
  cameras:
    - camera_entity: camera.main_2
      live_provider: ha
    - camera_entity: camera.garage_2
      live_provider: ha
    - camera_entity: camera.garden_2
    - camera_entity: camera.main_2
      live_provider: webrtc-card
      title: Front Door (WebRTC)
      webrtc_card:
        url: 'rtsp://user:pass@<IP_ADDRESS>:554/h264Preview_01_main'
      id: front-door-webrtc
  view:
    # scan:
    #   enabled: false
    default: live
    timeout_seconds: 300
    update_seconds: 5
    update_force: false
    actions:
      double_tap_action:
        action: custom:frigate-card-action
        frigate_card_action: fullscreen
  live:
    layout:
      fit: cover
    controls:
      thumbnails:
        mode: none
      title:
        mode: none

For the fullscreen I would like it to be exactly like in 3rd post in this thread ;)

@anarion80 This kind of thing should work, play around with overrides as shown below:
type: custom:frigate-card
cameras:
  - camera_entity: camera.landing
  - camera_entity: camera.living_room
  - camera_entity: camera.sitting_room
view:
  default: live
  timeout_seconds: 300
  update_seconds: 5
  update_force: false
  actions:
    double_tap_action:
      action: custom:frigate-card-action
      frigate_card_action: fullscreen
live:
  layout:
    fit: cover
  controls:
    thumbnails:
      mode: none
    title:
      mode: none
overrides:
  - conditions:
      fullscreen: true
    overrides:
      live:
        layout:
          fit: contain

Give it a shot. Note that I found a bug on coming out of fullscreen in this configuration, it doesn't reset correctly back (filed: https://github.com/dermotduffy/frigate-hass-card/issues/830 ). You may or may not run into the same issue.

And it does work indeed! Thank you very much!


[ISSUE #3201]Optimize remote service related code

Fixes #3201
Motivation
Explain the content here.
Explain why you want to make the changes and what problem you're trying to solve.
Modifications
Optimize remote service related code
Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)
If a feature is not applicable for documentation, explain why?
If a feature is not documented yet in this PR, please create a followup issue for adding the documentation

@mytang0  After this PR is merged, I will submit a formatting PR to format the Java code in the project according to the eventmesh-code-style.xml code style.

@mytang0 After this PR is merged, I will submit a formatting PR to format the Java code in the project according to the eventmesh-code-style.xml code style.

Ok.

@mytang0  I have resubmitted this pr, PTAL~

@mytang0  I resolved the conflict and resbumit it


[HOLD for payment 2023-04-10] [$1000] Priority mode doesn't sync between devices

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Login with 2 accounts in different devices (or browsers).
From first browser, open Profile => Preferences => Priority Mode.
From second browser, open Profile => Preferences => Priority Mode and change the Priority mode.
Notice that the priority mode doesn't change in the second browser.

Expected Result:
Priority mode should sync correctly between account.
Actual Result:
Priority mode doesn't sync between account
Workaround:
unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: 1.2.90-4
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://user-images.githubusercontent.com/43996225/228287242-c29f1628-8c5c-4eac-ae52-722ac86c99c1.mp4
https://user-images.githubusercontent.com/43996225/228287262-cdaa3aeb-41b5-4f68-8be9-1f2e004e163e.mov
Expensify/Expensify Issue URL:
Issue reported by: @hungvu193
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1679983175277379
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~018d6cac234b95da24
Upwork Job ID:<PHONE_NUMBER>961441792
Last Price Increase: 2023-03-29

Triggered auto assignment to @slafortune (Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details.

Looks good 👍

Job added to Upwork: https://www.upwork.com/jobs/~018d6cac234b95da24

Current assignee @slafortune is eligible for the External assigner, not assigning anyone new.

Triggered auto assignment to Contributor-plus team member for initial proposal review - @fedirjh (External)

Triggered auto assignment to @flodnv (External), see https://stackoverflow.com/c/expensify/questions/7972 for more details.

Proposal
Please re-state the problem that we are trying to solve in this issue.
The selected option is not updated when the priority mode is changed while the user is on the PriorityModePage,
What is the root cause of that problem?
PriorityModePage uses OptionList component which has list of OptionRaw and OptionRaw component renders only if these cases are satisfied
this.state.isDisabled !== nextState.isDisabled
    || this.props.isDisabled !== nextProps.isDisabled
    || this.props.isSelected !== nextProps.isSelected
    || this.props.shouldHaveOptionSeparator !== nextProps.shouldHaveOptionSeparator
    || this.props.showSelectedState !== nextProps.showSelectedState
    || this.props.showTitleTooltip !== nextProps.showTitleTooltip
    || !_.isEqual(this.props.option.icons, nextProps.option.icons)
    || this.props.optionIsFocused !== nextProps.optionIsFocused
    || this.props.option.text !== nextProps.option.text
    || this.props.option.alternateText !== nextProps.option.alternateText
    || this.props.option.descriptiveText !== nextProps.option.descriptiveText
    || this.props.option.brickRoadIndicator !== nextProps.option.brickRoadIndicator
    || this.props.option.shouldShowSubscript !== nextProps.option.shouldShowSubscript
    || this.props.option.ownerEmail !== nextProps.option.ownerEmail
    || this.props.option.subtitle !== nextProps.option.subtitle
    || this.props.option.pendingAction !== nextProps.option.pendingAction;

And because we change PriorityMode and the list above doesn't include any key that is related with PriorityMode.
What changes do you think we should make in order to solve the problem?
I suggest to add the check of, for example customIcon property, in shouldComponentUpdate method  for rerendering OptionRaw component.
!_.isEqual(this.props.option.customIcon, nextProps.option.customIcon)
What alternative solutions did you explore? (Optional)
None

Sounds good, thanks!

📣 @hoangzinh You have been assigned to this job by @flodnv!
Please apply to this job in Upwork and leave a comment on the Github issue letting us know when we can expect a PR to be ready for review 🧑💻
Keep in mind: Code of Conduct | Contributing 📖

Reviewing label has been removed, please complete the "BugZero Checklist".

The solution for this issue has been :rocket: deployed to production :rocket: in version 1.2.93-4 and is now subject to a 7-day regression period :calendar:. Here is the list of pull requests that resolve this issue:

https://github.com/Expensify/App/pull/16724

If no regressions arise, payment will be issued on 2023-04-10. :confetti_ball:
After the hold period is over and BZ checklist items are completed, please complete any of the applicable payments for this issue, and check them off once done.

[ ] External issue reporter
[ ] Contributor that fixed the issue
[ ] Contributor+ that helped on the issue and/or PR

As a reminder, here are the bonuses/penalties that should be applied for any External issue:

Merged PR within 3 business days of assignment - 50% bonus
Merged PR more than 9 business days after assignment - 50% penalty

@hungvu193 @fedirjh @hoangzinh  - I've rehired you all 👍

Thanks for the ping. This regression test feels quite niche to me, but maybe it's fine? Let's ask QA what they think @slafortune ?

@flodnv I had already created the GH for Applause - should I have a conversation in the BugZero room or is Applause empowered to decide the regression check is not needed while they decide where they're going to put it?

You can ask them in the GH you created for them 🙃

Great - Done and I will carry on the conversation there and close this out 👍


Es 223 config

Updated pykob.config and the Configure CLI to support the auto_connect property.
Also updated MKOB (in kobmain) to use the value to automatically connect (or not).
Closes #223

See comments in #223 for change descriptions reasons for changes.

See comments in #223 for change descriptions reasons for changes.

Removed redundant configuration values from kobconfig and used the values from config. Left the GUI specific values.

Removed redundant configuration values from kobconfig and used the values from config. Left the GUI specific values.

@pwdirks Did you put a review comment in the file? I don't see one, but maybe just missing it. Where am I missing an 'R'?
Would like to get this submitted & merged so you can use it in the config dialog.

@pwdirks Did you put a review comment in the file? I don't see one, but maybe just missing it. Where am I missing an 'R'?
Would like to get this submitted & merged so you can use it in the config dialog.

@pwdirks Did you put a review comment in the file? I don't see one, but maybe just missing it. Where am I missing an 'R'?

There's probably a better way in GitHub for me to provide this kind of feedback, but line 71 in kobmain.py reads
if connected and emote:

I was waiting for this to be fixed before providing my review.
~Les

@pwdirks Did you put a review comment in the file? I don't see one, but maybe just missing it. Where am I missing an 'R'?

There's probably a better way in GitHub for me to provide this kind of feedback, but line 71 in kobmain.py reads
if connected and emote:

I was waiting for this to be fixed before providing my review.
~Les

Sorry - I put the comment in but must’ve forgotten to hit “Finish review”.  Les is right - that’s the spot where the “r” was missing.
73, -Patrick.

On Jan 13, 2021, at 9:55 AM, Les Kerr<EMAIL_ADDRESS>wrote:
@pwdirks https://github.com/pwdirks Did you put a review comment in the file? I don't see one, but maybe just missing it. Where am I missing an 'R'?
There's probably a better way in GitHub for me to provide this kind of feedback, but line 71 in kobmain.py reads
if connected and emote:
I was waiting for this to be fixed before providing my review.
~Les
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/MorseKOB/PyKOB/pull/225#issuecomment-759616068, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALTAYK6WR6YD6EOMELUGWFDSZXM7JANCNFSM4V2BIHZQ.

Sorry - I put the comment in but must’ve forgotten to hit “Finish review”.  Les is right - that’s the spot where the “r” was missing.
73, -Patrick.

On Jan 13, 2021, at 9:55 AM, Les Kerr<EMAIL_ADDRESS>wrote:
@pwdirks https://github.com/pwdirks Did you put a review comment in the file? I don't see one, but maybe just missing it. Where am I missing an 'R'?
There's probably a better way in GitHub for me to provide this kind of feedback, but line 71 in kobmain.py reads
if connected and emote:
I was waiting for this to be fixed before providing my review.
~Les
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/MorseKOB/PyKOB/pull/225#issuecomment-759616068, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALTAYK6WR6YD6EOMELUGWFDSZXM7JANCNFSM4V2BIHZQ.

Okay. I'll fix that.
Yes, maybe just didn't submit. I'm sure you know you can click on a line in the code review and type in a comment.

Okay. I'll fix that.
Yes, maybe just didn't submit. I'm sure you know you can click on a line in the code review and type in a comment.

Updated.

Updated.

On trying to connect I get this error:
C:\Users\Les\Documents\GitHub\PyKOB>py mkob.pyw
PyKOB 1.2.14
MorseKOB 4.0.16
Tcl/Tk 8.6/8.6
2021-01-14 09:26:44 INFO:       Interface for key and/or sounder on serial port 'COM3' not available. Key and sounder will not be used.
2021-01-14 09:26:44 INFO:       Record to 'Session-20210114-0926.json'
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\Les\AppData\Local\Programs\Python\Python37\lib\tkinter\__init__.py", line 1705, in __call__
    return self.func(*args)
  File "C:\Users\Les\Documents\GitHub\PyKOB\kobactions.py", line 120, in doConnect
    km.toggle_connect()
  File "C:\Users\Les\Documents\GitHub\PyKOB\kobmain.py", line 151, in toggle_connect
    Internet.connect(config.wireNo)
AttributeError: module 'pykob.config' has no attribute 'wireNo'

Here's my current configuration:
C:\Users\Les\Documents\GitHub\PyKOB>py configure.py
======================================
        System Information
======================================
User: Les
User Home Path: C:\Users\Les
User Configuration File: C:\Users\Les\AppData\Local\pykob\config-les.ini
App Configuration File C:\ProgramData\pykob\config_app.ini
OS: nt
System: Windows
Version: 10
Platform: win32
PyKOB: 1.2.14
Python: 3.7.2
PyAudio: 0.2.11
PySerial: 3.4
Host: Kerr-SurfacePro
======================================
          Configuration
======================================
Serial serial_port: 'COM3'
--------------------------------------
Auto Connect to Wire: OFF
Code type: AMERICAN
Interface type: LOOP
Invert key input: OFF
Remote send: ON
KOB Server URL: mtc-kob.dyndns.org:7890
Sound: ON
Sounder: ON
Spacing: CHAR
Station: AC - Les - Seattle, WA
Wire: 105
Character speed 18
Words per min speed: 30

On trying to connect I get this error:
C:\Users\Les\Documents\GitHub\PyKOB>py mkob.pyw
PyKOB 1.2.14
MorseKOB 4.0.16
Tcl/Tk 8.6/8.6
2021-01-14 09:26:44 INFO:       Interface for key and/or sounder on serial port 'COM3' not available. Key and sounder will not be used.
2021-01-14 09:26:44 INFO:       Record to 'Session-20210114-0926.json'
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\Les\AppData\Local\Programs\Python\Python37\lib\tkinter\__init__.py", line 1705, in __call__
    return self.func(*args)
  File "C:\Users\Les\Documents\GitHub\PyKOB\kobactions.py", line 120, in doConnect
    km.toggle_connect()
  File "C:\Users\Les\Documents\GitHub\PyKOB\kobmain.py", line 151, in toggle_connect
    Internet.connect(config.wireNo)
AttributeError: module 'pykob.config' has no attribute 'wireNo'

Here's my current configuration:
C:\Users\Les\Documents\GitHub\PyKOB>py configure.py
======================================
        System Information
======================================
User: Les
User Home Path: C:\Users\Les
User Configuration File: C:\Users\Les\AppData\Local\pykob\config-les.ini
App Configuration File C:\ProgramData\pykob\config_app.ini
OS: nt
System: Windows
Version: 10
Platform: win32
PyKOB: 1.2.14
Python: 3.7.2
PyAudio: 0.2.11
PySerial: 3.4
Host: Kerr-SurfacePro
======================================
          Configuration
======================================
Serial serial_port: 'COM3'
--------------------------------------
Auto Connect to Wire: OFF
Code type: AMERICAN
Interface type: LOOP
Invert key input: OFF
Remote send: ON
KOB Server URL: mtc-kob.dyndns.org:7890
Sound: ON
Sounder: ON
Spacing: CHAR
Station: AC - Les - Seattle, WA
Wire: 105
Character speed 18
Words per min speed: 30

@leskerr Looking at your error.

@leskerr Looking at your error.

I hit the same testing my config changes for the removal of kobconfig.py.  The ‘config’ option is ‘config.wire’.  I thought I had it right in my branch?  Was this before the merge of my change?
73, -Patrick.

On Jan 14, 2021, at 11:58 PM, Ed Silky<EMAIL_ADDRESS>wrote:
@leskerr https://github.com/leskerr Looking at your error.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/MorseKOB/PyKOB/pull/225#issuecomment-760719960, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALTAYK7VIDOTMXGFMW2JH2TSZ7YRTANCNFSM4V2BIHZQ.

I hit the same testing my config changes for the removal of kobconfig.py.  The ‘config’ option is ‘config.wire’.  I thought I had it right in my branch?  Was this before the merge of my change?
73, -Patrick.

On Jan 14, 2021, at 11:58 PM, Ed Silky<EMAIL_ADDRESS>wrote:
@leskerr https://github.com/leskerr Looking at your error.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/MorseKOB/PyKOB/pull/225#issuecomment-760719960, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALTAYK7VIDOTMXGFMW2JH2TSZ7YRTANCNFSM4V2BIHZQ.

I fixed it in my branch and pushed as-is. Now I'm going to merge your branch in to resolve the conflicts.
I tested with the CLI apps and MKOB and all work now. MKOB also auto-connects if the option is set to ON.

I fixed it in my branch and pushed as-is. Now I'm going to merge your branch in to resolve the conflicts.
I tested with the CLI apps and MKOB and all work now. MKOB also auto-connects if the option is set to ON.

@leskerr @pwdirks I merged the current master into this and resolved conflicts. For most I took master. There were a couple that I took mine because I changed config.wire to be an int value, so there is not a need to cast/convert it when it is used.

@leskerr @pwdirks I merged the current master into this and resolved conflicts. For most I took master. There were a couple that I took mine because I changed config.wire to be an int value, so there is not a need to cast/convert it when it is used.

Ah, but now in testing I get an error. I'll track that down and post a change.

Ah, but now in testing I get an error. I'll track that down and post a change.

Okay, works now. For some reason (operator error) one of my merged files didn't get picked up.

Okay, works now. For some reason (operator error) one of my merged files didn't get picked up.


Trouble running tests in debug mode

Describe the bug
When using VSCode in debug mode or node with the --inspect flag the network is never finishing startup
To Reproduce
Expected behavior
Should be able to run tests in debug mode using VSCode or node --inspect
cc: @carsonfarmer

With the latest version of this lib included in the js-tableland tests, I can run tests with the --inspect-brk flag and inspect all the tests using the Chrome browser.
@carsonfarmer is there a specific vscode extension or adapter for typescript test debugging you like to use?

I've been using this one: https://marketplace.visualstudio.com/items?itemName=nilobarp.javascript-test-runner

But it is actually using this https://marketplace.visualstudio.com/items?itemName=ms-vscode.js-debug default, built-in debugger.

Thanks! Looks like the registry deploy contract process is getting a debugger attached and it might not be letting the deploy process close normally.

I think that is correct, but I also isolated the problem to this throw: https://github.com/tablelandnetwork/local-tableland/blob/main/src/util.ts#L139. If I comment out that throw, the tests continue to run, and I can use breakpoints etc in the IDE. It appears that the debugger is actually logging its own information to stderr for some reason?

Closed via #110


Sqlalchemy OperationalError

Encountering an OperationalError when attempting to query the user table. The error suggests that the user table does not exist in the SQLite database, which prevents querying user data. The user is getting this operational error when clicking on the login button.

Fixed with error with flask db init, flask db migrate and flask db upgrade on the first week. The error was repeated when the repo was forked.


Create acceptance test harness

As discussed, closing in favor of https://github.com/vagrant-landrush/landrush/issues/136


@conda-forge-admin, please add user @jan-janssen

Additional comment:
@conda-forge-admin, please add user @jan-janssen

Hi! This is the friendly automated conda-forge-webservice.
I just wanted to let you know that I added user @jan-janssen in conda-forge/blueqat-feedstock#2.


🚀 Feature Request: Allow specifying which port to proxy for wrangler pages dev

Describe the solution
In my current project, I'm trying to use Wrangler in front of my static site to enable the use of functions for generation of dynamic pages.
The project is using a site generator of my own that's exposing changes to the client (and back) using web sockets. The web socket server runs on port 8080 while the development server runs on 3000.
The problem is that once I run wrangler pages dev -- deno task start, it picks up the web socket server first automatically and tries to proxy it since it's the server that's running first in my setup. Instead, in my use case it would be far better if it was able to proxy 3000 instead since that's where I serve my static assets.
To solve the issue, I would propose adding some form of manual control for the port to proxy. I.e. if I was able to say wrangler pages dev --proxy 3000 -- deno task start and it would proxy specifically port 3000 then, that would be enough for my use case.

It turns out, there's a flag for this already at https://github.com/cloudflare/wrangler2/blob/main/packages/wrangler/src/pages/dev.tsx .
Sorry for the noise. :)


Send message to specific channel on build failure

As a developer I would like to receive private messages from jenkins on specific build status
Example: I have a channel #A where jenkins sends build status, however this channel can be muted since this is a little bit annoying to read MOSTLY useless notifications(by "useless" I mean it's not useful to receive message that build is successful 50 times per day), but this messages still needed just to know that build is running by schedule.
I want to receive private message when build is failure
Is it possible to add ability to configure notification for different build status?

with declarative pipeline or scripted pipeline using slackSend yes.
Using a freestyle project: no


can not download  _tagui_delta files

when use rpa-python for the first time, in setup process,following error happened:
[RPA][ERROR] - failed downloading from https://raw.githubusercontent.com/tebelorg/Tump/master/TagUI-Python/tagui...

network can not access, change the hosts file.


Add a check for console errors in e2e

We should check if there are any console errors in the browser for the app e2e.
According to https://github.com/getgauge/taiko/issues/913, https://github.com/saikrishna321/taiko-diagnostics#logconsoleinfo-command should do it.

taiko-diagnostics can print the logs, but doesn't expose them for checks. Logged a feature request: https://github.com/saikrishna321/taiko-diagnostics/issues/149

https://github.com/saikrishna321/taiko-diagnostics/issues/149

I used it in https://github.com/filipesilva/create-cljs-app/pull/30 and it works great, thank you!


No on-firebase-value in firebase-query

It would be awesome if there is a listener like on-firebase-value in the firebase-query.
This on-firebase-value is working in GoogleWebComponents/firebase-element/firebase-collection.html but not in this Polymerfire repo.
Use case

Hide the paper-toast when the data is loaded.

Firebase is built around the idea that there's no such thing as "loading" -- once you start receiving child added events you should consider the data live and architect your app as such. Adding a value listener is more expensive and not recommended for collection querying.


support auto import of kebab-case tsx component

Clear and concise description of the problem
My kebab-case tsx component in src/components fail to use
Suggested solution
kebab-case tsx component in src/components fail to use, and the config has contained extensions:['vue', 'tsx'].
when i build a new component with pascal-case,the same config will be successful.
open components.d.ts file,the component has been successfully imported.

config:

component define:

usage:

Alternative
No response
Additional context
No response
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guide.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

done! my fault


What is the format of the hd-bet code file in the folder?

What is the format of the hd-bet code file in the folder?

What folder and what file are you referring to?


Added cursor icon support

Currently the cursor icon does not change at all, for example when resizing a window within egui.
Here's some code to get the cursor icon changing as egui requests with egui::Output.
To change the icon requires a &Window, I wasn't really sure the best way to do this so I just passed it as an argument to end_frame and handled it there - I'm still not sure if this is the best way as it's a breaking change so I'm open to criticism.
This may not be the only integration that requires access to Window (for example egui::Output has text_cursor_pos which is used for IME, and Window has set_ime_position which may be related, although I'm not sure what IME is so I could be wrong), so maybe there should be some kind of update_window function? I'm open to discussion on this.

I think it's fine were you put it for now. I will close the PR though, since I implemented if with some corrections and cleanups in 1908838c4da336eba7c93d7ccc220bda6e78e355. I also made the window optional, because it may break some peoples integration otherwise.


Failed to download out of all possible locations

Getting error while trying to install.
E:\elasticsearch\elasticsearch-1.5.0\bin>plugin --install org.codelibs/elasticsearch-dataformat/1.5.0
-> Installing org.codelibs/elasticsearch-dataformat/1.5.0...
Trying http://download.elasticsearch.org/org.codelibs/elasticsearch-dataformat/elasticsearch-dataformat-1.5.0.zip...
Trying http://search.maven.org/remotecontent?filepath=org/codelibs/elasticsearch-dataformat/1.5.0/elasticsearch-dataformat-1.5.0.zip...
Trying https://oss.sonatype.org/service/local/repositories/releases/content/org/codelibs/elasticsearch-dataformat/1.5.0/elasticsearch-dataformat-1.5.0.zip...
Trying https://github.com/org.codelibs/elasticsearch-dataformat/archive/1.5.0.zip...
Trying https://github.com/org.codelibs/elasticsearch-dataformat/archive/master.zip...
Failed to install org.codelibs/elasticsearch-dataformat/1.5.0, reason: failed to download out of all possible locations..., use --verbose to get detailed information

Please check if you can download https://oss.sonatype.org/service/local/repositories/releases/content/org/codelibs/elasticsearch-dataformat/1.5.0/elasticsearch-dataformat-1.5.0.zip on the network environment.

I manage to download the zip file via the link that you have given by using Browser. But I am not able to install it via plugin command.
E:\elasticsearch\elasticsearch-1.5.0\bin>plugin --install org.codelibs/elasticsearch-dataformat/1.5.0  --timeout 1m --verbose
-> Installing org.codelibs/elasticsearch-dataformat/1.5.0...
Trying http://download.elasticsearch.org/org.codelibs/elasticsearch-dataformat/elasticsearch-dataformat-1.5.0.zip...
Failed: SocketTimeoutException[connect timed out]
Trying http://search.maven.org/remotecontent?filepath=org/codelibs/elasticsearch-dataformat/1.5.0/elasticsearch-dataformat-1.5.0.zip...
Failed: SocketTimeoutException[connect timed out]
Trying https://oss.sonatype.org/service/local/repositories/releases/content/org/codelibs/elasticsearch-dataformat/1.5.0/elasticsearch-dataformat-1.5.0.zip...
Failed: SocketTimeoutException[connect timed out]
Trying https://github.com/org.codelibs/elasticsearch-dataformat/archive/1.5.0.zip...
Failed: IOException[Can't get https://github.com/org.codelibs/elasticsearch-dataformat/archive/1.5.0.zip to e:\elasticsearch\plugins\dataformat.zip]; nested: FileNotFoundException[https://github.com/org.codelibs/elasticsearch-dataformat/archive/1.5.0.zip]; nested: FileNotFoundException[https://github.com/org.codelibs/elasticsearch-dataformat/archive/1.5.0.zip];
Trying https://github.com/org.codelibs/elasticsearch-dataformat/archive/master.zip...
Failed: IOException[Can't get https://github.com/org.codelibs/elasticsearch-dataformat/archive/master.zip to e:\elasticsearch\plugins\dataformat.zip]; nested: FileNotFoundException[https://github.com/org.codelibs/elasticsearch-dataformat/archive/master.zip]; nested: FileNotFoundException[https://github.com/org.codelibs/elasticsearch-dataformat/archive/master.zip];
Can I just unzip it to  plugins folder? Will that work?
After I unzip to plugins folder, I run:
curl -o c:\temp\data.xls -XGET 'localhost:9200/quote3/quote/_data?format=csv&source={"query":{"match_all":{}},"fields":["order_id"]}'
I get another error:
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
Dload  Upload   Total   Spent    Left  Speed
100    63  100    63    0     0   1682      0 --:--:-- --:--:-- --:--:--  2423
'source' is not recognized as an internal or external command, operable program or batch file.

It might be a problem for http proxy...

Can I just unzip it to plugins folder? Will that work?

Yes.

'source' is not recognized as an internal or external command, operable program or batch file.

I do not think it's elasticsearch plugin problem.
Please check usage of curl or cmd.

I get the following error
[root@localhost vagrant]# /usr/share/elasticsearch/bin/plugin --install org.codelibs/elasticsearch-dataformat/1.5.0 --verbose
-> Installing org.codelibs/elasticsearch-dataformat/1.5.0...
Trying http://download.elasticsearch.org/org.codelibs/elasticsearch-dataformat/elasticsearch-dataformat-1.5.0.zip...
Failed: IOException[Can't get http://download.elasticsearch.org/org.codelibs/elasticsearch-dataformat/elasticsearch-dataformat-1.5.0.zip to /usr/share/elasticsearch/plugins/dataformat.zip]; nested: FileNotFoundException[http://download.elasticsearch.org/org.codelibs/elasticsearch-dataformat/elasticsearch-dataformat-1.5.0.zip]; nested: FileNotFoundException[http://download.elasticsearch.org/org.codelibs/elasticsearch-dataformat/elasticsearch-dataformat-1.5.0.zip];
Trying http://search.maven.org/remotecontent?filepath=org/codelibs/elasticsearch-dataformat/1.5.0/elasticsearch-dataformat-1.5.0.zip...
Failed: SSLException[java.security.ProviderException: java.security.KeyException]; nested: ProviderException[java.security.KeyException]; nested: KeyException;
Trying https://oss.sonatype.org/service/local/repositories/releases/content/org/codelibs/elasticsearch-dataformat/1.5.0/elasticsearch-dataformat-1.5.0.zip...
Failed: SSLException[java.security.ProviderException: java.security.KeyException]; nested: ProviderException[java.security.KeyException]; nested: KeyException;
Trying https://github.com/org.codelibs/elasticsearch-dataformat/archive/1.5.0.zip...
Failed: SSLException[java.security.ProviderException: java.security.KeyException]; nested: ProviderException[java.security.KeyException]; nested: KeyException;
Trying https://github.com/org.codelibs/elasticsearch-dataformat/archive/master.zip...
Failed: SSLException[java.security.ProviderException: java.security.KeyException]; nested: ProviderException[java.security.KeyException]; nested: KeyException;
Failed to install org.codelibs/elasticsearch-dataformat/1.5.0, reason: failed to download out of all possible locations..., use --verbose to get detailed information

This is not a problem for our plugin.
I think that elasticsearch-analysis-phonetic comes from http://download.elasticsearch.org/.
Third party plugins are provided at Maven repository.
So, you need to fix the following problem(SSLException):

Trying http://search.maven.org/remotecontent?filepath=org/codelibs/elasticsearch-dataformat/1.5.0/elasticsearch-dataformat-1.5.0.zip...
Failed: SSLException[java.security.ProviderException: java.security.KeyException]; nested: ProviderException[java.security.KeyException]; nested: KeyException;

Any ideas on how I can fix that?

It's because the path is incorrect. If you notice the first attempt is at http://download.elasticsearch.org. This attempt fails Failed: IOException[Can't get http://download.elasticsearch.org...]. This means that the path to the file is incorrect. When the install doesn't find the file, it moves on and attempts to download it from the maven site. Check the plugin path and try again.

May be upgrading nss can help.

@jitenkumar's suggested blog post worked for me! thx!
The commands I ran (do note it's for a different Elasticsearch plugin):
sudo yum -y upgrade nss
cd /usr/share/elasticsearch && sudo bin/plugin --install mobz/elasticsearch-head --verbose

This was on a CentOS 6.5 VM.


Errors for both IntelliJ and Jacoco coverage in android studio

Describe the bug
Enabling kover for an android project on 0.7.0-alpha (and previous) I get errors when running with coverage in intellij. It works fine generating HTML and XML reports
Errors
No errors in "errors" directory.
When I try and run with IntelliJ coverage I get this error repeatedly and useKoverTool:
Could not stop org.gradle.internal.actor.internal.DefaultActorFactory$NonBlockingActor@49f9dd8.
org.gradle.internal.dispatch.DispatchException: Could not dispatch message [MethodInvocation method: processTestClass(DefaultTestClassRunInfo(com.elt.passsystem.ui.screens.task.IsReadyToSubmitUseCaseTest))].
	at org.gradle.internal.dispatch.ExceptionTrackingFailureHandler.dispatchFailed(ExceptionTrackingFailureHandler.java:35)
	at org.gradle.internal.dispatch.FailureHandlingDispatch.dispatch(FailureHandlingDispatch.java:32)
	at org.gradle.internal.dispatch.AsyncDispatch.dispatchMessages(AsyncDispatch.java:87)
	at org.gradle.internal.dispatch.AsyncDispatch.access$000(AsyncDispatch.java:36)
	at org.gradle.internal.dispatch.AsyncDispatch$1.run(AsyncDispatch.java:71)
	at org.gradle.internal.concurrent.InterruptibleRunnable.run(InterruptibleRunnable.java:42)
	at org.gradle.internal.operations.CurrentBuildOperationPreservingRunnable.run(CurrentBuildOperationPreservingRunnable.java:42)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: org.gradle.process.internal.ExecException: Process 'Gradle Test Executor 171' finished with non-zero exit value 1
	at org.gradle.process.internal.DefaultExecHandle$ExecResultImpl.assertNormalExitValue(DefaultExecHandle.java:415)
	at org.gradle.process.internal.worker.DefaultWorkerProcess.onProcessStop(DefaultWorkerProcess.java:145)
	at org.gradle.process.internal.worker.DefaultWorkerProcess.access$000(DefaultWorkerProcess.java:42)
	at org.gradle.process.internal.worker.DefaultWorkerProcess$1.executionFinished(DefaultWorkerProcess.java:98)

When I change to coverage with Jacoco and useJacocoTool:
	at java.base/java.lang.ClassLoader.defineClass1(Native Method)
	at java.base/java.lang.System$2.defineClass(System.java:2131)
	at java.base/java.lang.invoke.MethodHandles$Lookup.defineClass(MethodHandles.java:962)
	... 13 more
FATAL ERROR in native method: processing of -javaagent failed, processJavaStart failed
*** java.lang.instrument ASSERTION FAILED ***: "result" with message agent load/premain call failed at src/java.instrument/share/native/libinstrument/JPLISAgent.c line: 422
Exception in thread "main" java.lang.reflect.InvocationTargetException
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:513)
	at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:525)
Caused by: java.lang.reflect.InvocationTargetException
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.jacoco.agent.rt.internal_3570298.core.runtime.InjectedClassRuntime$Lookup.defineClass(InjectedClassRuntime.java:134)
	at org.jacoco.agent.rt.internal_3570298.core.runtime.InjectedClassRuntime.startup(InjectedClassRuntime.java:54)
	at org.jacoco.agent.rt.internal_3570298.PreMain.premain(PreMain.java:53)
	... 6 more
Caused by: java.lang.LinkageError: loader 'bootstrap' attempted duplicate class definition for java.lang.$JaCoCo. (java.lang.$JaCoCo is in module java.base of loader 'bootstrap')
	at java.base/java.lang.ClassLoader.defineClass1(Native Method)
	at java.base/java.lang.System$2.defineClass(System.java:2131)
	at java.base/java.lang.invoke.MethodHandles$Lookup.defineClass(MethodHandles.java:962)
	... 13 more

It runs when I do not do either of the "use" methods, but then coverage does not display correctly
Expected behavior
To connect to Android Studio and display coverage
Reproducer
Not sure exactly what is causing it, I cannot share the project
Reports
If applicable, report files or screenshots.
Environment

Kover Gradle Plugin version: 0.7.0-alpha
Gradle version: [e.g. 7.5.1] 7.5.1
Kotlin project type: [e.g. Kotlin/JVM, Kotlin/Multiplatform, Kotlin/Android] android
Coverage Engine version (if customized in build script): See above
Other context important for this bug: [e.g. OS version]

Hi,
at the moment, Kover is not supported in IDEA and Android Studio, so when running tests with coverage from IDE, it is recommended to disable Kover instrumentation.
e.g. you may configure Kover
kover {
    disabledForProject = hasProperty("disableKover")
}

and pass -PdisableKover arguments into IDE args
Duplicates #267 and #7

Closed as a duplicate

It is worth mentioning you will get the same bootstrap duplicate error if your android build config is also setting coverage to true.
val Project.androidCoverage: Boolean
    get() = project.hasProperty("androidCoverage") && checkNotNull(findProperty("androidCoverage")).toString().toBoolean()

android {
  buildTypes {
    debug {
      enableAndroidTestCoverage = androidCoverage
      enableUnitTestCoverage = false // managed by kover
    }
  }
}

kover {
  // Disable when android test instrumentation is enabled so it doesn't double instrument
  disabledForProject = androidCoverage
  // Sonarcloud only understands jacoco xml reports :(
  useJacocoTool()
}

// Sonarcloud only understands jacoco xml reports :(

@trevjonez, the Kover XML report should be as similar as possible to the JaCoCo report, what was the discrepancy?

@trevjonez, the Kover XML report should be as similar as possible to the JaCoCo report, what was the discrepancy?

@shanshin It seems I made a bad assumption that the structure was different. Comparing the two now and it looks like it might work. I will test it and post back once I see what falls out.
Only thing suspect as I look at this now is that the kover report is missing the line param on the method elements.