Redirect the old http urls traffic to https?

Hi, I’ve created the cert in my cPanel, and in config changed the site_value to https and it has converted all the old http shortened links to HTTPS in yourls admin panel. But how can I redirect the old http links traffic to HTTPS? I think this option should be included in the default release.
Thanks

Make your webserver do it. (Plenty of similar tutorials available for whatever HTTP server you're using if you do a quick web search.)

Make your webserver do it. (Plenty of similar tutorials available for whatever HTTP server you're using if you do a quick web search.)

This is what .htaccess looks like
# BEGIN YOURLS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /yourls-loader.php [L]
</IfModule>
# END YOURLS

<Files 403.shtml>
order allow,deny
allow from all
</Files>

I've tried adding this line but it doesn't work.
RewriteRule ^.*$ https://domain.net/yourls-loader.php [L]

RESOLVED:
BEGIN YOURLS

RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS}  !=on              **//Added this line**
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /yourls-loader.php [L]

# END YOURLS
<Files 403.shtml>
order allow,deny
allow from all

No man, I'm getting 404 No Found error on https links. Could you send the solid solution for this?

we have this issue too
https access got not found
http access working fine

@IMExperts @mgilank : server conf issue, not YOURLS ...

This works for us:
`# BEGIN YOURLS

RewriteEngine On
RewriteRule .htpasswd$ - [F,L]
RewriteCond %{HTTPS} off
RewriteRule ^(.)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.$ /yourls-loader.php [L]

END YOURLS`

This works for us:

(stupid PASTE CODE does not work right, sorry)

This fixed the same issue for me. Thank you!

<Files ".htaccess">
Order Allow,Deny
Deny from all
</Files>

##AuthUserFile "/home/cur6co/public_html/.htpasswd"
##AuthName "Restricted"
##AuthType Basic
##require valid-user

# BEGIN YOURLS
<IfModule mod_rewrite.c>
RewriteEngine On
##RewriteRule \.htpasswd$ - [F,L]

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /yourls-loader.php [L]
</IfModule>
# END YOURLS

Pastable now...

Hi all, I've searched all over for this and I really need help. I've tried this above and similar solutions to no avail. My https links are forwarding correctly but my HTTP ones are not and just default to the catch all address. http://melm.co/scholars/?nocache=1 (doesn't work) https://melm.co/scholars/?nocache=1 (works). Any ideas?

theMelMills, why is this commented out?
# RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Without testing it myself, I think it needs to be there...

theMelMills, why is this commented out?
# RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Without testing it myself, I think it needs to be there...

It was commented out for troubleshooting as it had no effect. It's back in now and still same result.
`# BEGIN YOURLS

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/.well-known/pki-validation/[A-F0-9]{32}.txt(?:\ Comodo\ DCV)?$
RewriteCond %{REQUEST_URI} !^/.well-known/pki-validation/(?:\ Ballot169)?
 Comodo\ DCV)?$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/(?:\ Ballot169)?
RewriteRule ^/?$ https://themelmills.com [R=301,L]
`

YOURLS-doTLS

I know this thread is old, but for reference, here is the only solution that finally worked for me.
It uses, verbatim, the code from https://cwiki.apache.org/confluence/display/httpd/RewriteHTTPToHTTPS
Which means :
# BEGIN YOURLS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# Redirect HTTP to HTTPS - code from https://cwiki.apache.org/confluence/display/httpd/RewriteHTTPToHTTPS
RewriteCond %{HTTPS} !=on
# This checks to make sure the connection is not already HTTPS
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
# This rule will redirect users from their original location, to the same location but using HTTPS.
# i.e.  http://www.example.com/foo/ to https://www.example.com/foo/
# The leading slash is made optional so that this will work either in httpd.conf
# or .htaccess context

# YOURLS rewrites
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /yourls-loader.php [L]
RewriteRule "(^|/)\.(?!well-known\/)" - [F]
</IfModule>
# END YOURLS

I guess the trick resides in "The leading slash is made optional".

The line RewriteCond %{HTTPS} !=on as stated in the doc https://yourls.org/docs/guide/server-configuration#redirect-everything-from-http-to-https broke my config (for subdirectory usage of yourls).
I wasted a couple of hours until I figured out it was due to this line. Quite frustrating, you can't expect everyone to be an apache expert, maybe disclaim the line.

I have tried every permutation of the .htaccess file listed here and none of them work.  I am still getting the 404 whenever I try to go to any shortened link.


Output is combined with input command

Signed-off-by: Russell Bunch<EMAIL_ADDRESS>Description

Checklist Before Merging

[ ] If I added any command snippets, the steps they belong to follow the prompt conventions (see example).
[ ] If I added a new directory, I also updated .github/CODEOWNERS with the corresponding team in Cray-HPE.
[ ] My commits or Pull-Request Title contain my JIRA information, or I do not have a JIRA.

/backport main


We need to support css nesting

see:
https://www.w3.org/TR/css-nesting-1/
and
https://developer.chrome.com/articles/css-nesting/

I'm not sure the support should be added at this stage: https://caniuse.com/css-nesting
On top of that, the effort is quite big.

two of the 3 main ones already support it.
edge also uses blink, so it will also be in next version.
surely firefox will follow.

i aldo think, this would maybe need a complete rewrite. the simple approach with regexes maybe will not work


External Button as "Clear All"

hi i have create my own link button outside the editor , called "Clear All", how can i clear / refresh the wysiwyg ?

Thanks i already solved this 👍


Validating the next data script

This is one of two problems related to contracts that span multiple transactions. By "contract" I mean a set of contract endpoints that spend and produce outputs to some script address. By "span multiple transactions" I mean that the contract results in at least one transaction that consumes outputs from and produces outputs to the contract address (this is not true for the crowdfunding campaign).
The problem
We can think of the contract as a state machine, with states of type S and inputs of type I. The state is kept in the data script, and the input is supplied as the redeemer script. The transition function t :: S -> I -> S is the validator (throwing an error if the transition is not allowed).
In order for this work, we need a transaction tx that spends an output from the script address (this output determines t and the current state s :: S) using a redeemer with the input i :: I. tx also produces a new output to the script address, with a data script s' :: S such that s' = t s i. How can the validator script ensure that the new data script is actually t s i, and not some other state? If it can't, then the contract can be manipulated very easily, by providing a different data script. This is the "validating the next data script" problem.
It is a problem because inside the validator script we only know t s i :: S and hash(s') :: ByteString, so we're either missing the actual s' :: S in non-hashed form, or a way to compute hash(t s i) :: ByteString.
Possible solutions

Implement a hashing function inside PlutusTx.
Allow the validator script to look at the values of the data scripts of tx.
Change the encoding of the state machine so that the validator gets hash(t s i) from the slot leader.

For (1), we need to make sure that we are computing the correct hash. The hash(s') that the validator script can see is really the hash of the serialised PLC term s', including the (program ...) tag. So the thing that's actually necessary in Plutus is a function serialiseS :: S -> ByteString that produces exactly the same output. We could potentially generate serialiseS using Template Haskell, similar to makeLift.
For (2) we need to consider that we don't know the type of the data scripts produced by tx in the validator script (they may all be of different types). So we would need something like the Data.Dynamic module.
For (3) we can change the signature of the validator function to v :: (S, I) -> (S, I) -> (). (Note that the data and redeemer scripts have the same type now). If we assume that the first element of the first argument is the current state, the first element of the second argument is the new state, and the second element of the second argument is the input then we can transform the old state machine into this format: v (currentState, _) (newState, input) = if t currentState Input == newState then checkHashes else error where checkHashes compares the hashes of the redeemer and the new data script (both hashes are available as part of the tx data supplied by the slot leader). This works already, without requiring any changes to the language. But it means that every (state, input) pair is put on the chain twice.

I'd like to keep this open, I'm not really happy with (3) and I think it's generally going to be important for the validator to have access to the data script of the spending transaction.

In order for this work, we need a transaction tx that spends an output from the script address (this output determines t and the current state s :: S) using a redeemer with the input i :: I. tx also produces a new output to the script address, with a data script s' :: S such that s' = t s i. How can the validator script ensure that the new data script is actually t s i, and not some other state? If it can't, then the contract can be manipulated very easily, by providing a different data script. This is the "validating the next data script" problem.

I've been thinking a while about this and I still do not understand the current design. We have a "black-box" transaction that outputs something that we need to verify even though we exactly know what it's supposed to be. Why? Can we change something and not produce a data script in the transaction, so that we don't need to verify it and can just compute the next state using the redeemer?

We are computing the next state in validator using the redeemer. But we can not pass this computed state into the next validator script other than via data script. And the validator script can not produce the output data script, it can only verify the transaction already contains a valid (equal to computed) data script.

@nau, thanks!

And the validator script can not produce the output data script, it can only verify the transaction already contains a valid (equal to computed) data script.

Is there any way to change the current design, so that it makes sense to allow the validator script to produce the output data script? I understand it's not what we have right now, but can we change that somehow?

Won't we get issues with closures then?
Imaging a produced data script containing a function that encloses some values from the validator.
We would need to store the whole context. Is this feasible in our case?

Is there any way to change the current design, so that it makes sense to allow the validator script to produce the output data script?

Yeah we could change the return value of the validator from Bool to whatever the data script is.
But I agree @nau about closures, we would have to replay all validator scripts from the beginning of the contract whenever we want to know the current state.

@nau,

Won't we get issues with closures then?
Imaging a produced data script containing a function that encloses some values from the validator.
We would need to store the whole context. Is this feasible in our case?

I assumed, our data scripts are always closed right now? So we can just ban data scripts that reference some internal state of the validator. Or we can allow that and automatically let-bind the values (which essentially makes the data script closed), if it's necessary for some reason, and let the user decide whether it's feasible or not in their particular case.

But I agree @nau about closures, we would have to replay all validator scripts from the beginning of the contract whenever we want to know the current state.

We already have to replay all the events of the blockchain in order to know its current state. As long as computing the state of the validator happens off-chain, it seems to align well with other parts of the system.
But can we allow the validator to somehow publish its data script? Like trigger a separate kind of transactions, I don't know.
I very well understand that I'm probably asking completely nonsensical questions here, I just feel really weird about verifying that what you got is what you already have and so I think it's natural to ask whether there is any way to avoid this by changing the design of the system.
Also, if the data script contains functions, how are we going to check equality of them?

What if a data script is hard to calculate but easy to validate?
With current design it's the job of a transaction producer to do all the heavy computations, otherwise every node/wallet would have to replicate it.

What if a data script is hard to calculate but easy to validate? With current design it's the job of a transaction producer to do all the  heavy computations, otherwise every node/wallet would have to replicate  it.

Regarding the problem that we discuss here, we always have to calculate the next data script in the validator in order to check that the redeemer's one is correct. There are cases where we don't need state machines and thus don't need to verify that the redeemer contains a valid state and we certainly should handle those cases somehow, but with the current design it seems we can't handle the dual situation where we have a data script that is easy to calculate, but hard to check that what was calculated and put into the redeemer is indeed correct. See:

Also, if the data script contains functions, how are we going to check equality of them?

@effectfully wrote,

We already have to replay all the events of the blockchain in order to know its current state. As long as computing the state of the validator happens off-chain, it seems to align well with other parts of the system.
But can we allow the validator to somehow publish its data script? Like trigger a separate kind of transactions, I don't know.

No, we cannot do that. The two things you mention are exactly the two things that Ethereum allows and Bitcoin-style UTxO doesn't: (1) publish the result of computation inside the validator (i.e., change the state of the blockchain as a result of validator computation) and (2) issue new transactions from inside the validator.
Changing this would fundamentally change the blockchain. One of the core concepts of Extended UTxO is that it adds some extra information to outputs and validator invocation, but it leaves the structure and dataflow of UTxO the exact same as before.
Apart from that, I think, it wouldn't be a good idea, going back on this is nothing we could decide uni-laterally as it has a serious impact on Cardano core. It would also have implications on the whole discussion on execution costs, killing the purity we just talked about in Miami.

I very well understand that I'm probably asking completely nonsensical questions here, I just feel really weird about verifying that what you got is what you already have and so I think it's natural to ask whether there is any way to avoid this by changing the design of the system.

These are perfectly legit questions. However, we do what we do for a very good reason (what I wrote above). Yes, doing the data script validation in the validator is a bit of a hassle, but it is the validator after all and a bit of hassle here is a minor inconvenience compared to impacting the fundamental ledger structure.

I see. Thanks a lot for the explanations, Manuel.

See also https://github.com/input-output-hk/plutus/issues/1436, which may avoid this problem entirely.

We've now implemented #1436, so I'm going to close this (yay!).


Cannot use clipboard write API on pages hosted on hlx.live

Description
The sidekick extension loads plugins within an iframe with the allow: clipboard-write attribute.
I'm unable to use the clipboard API on pages hosting on hlx.live without explicitly providing the wildcard url value to the clipboard-write policy.
example
allow: clipboard-write *
It's unclear why this is needed for hlx.live and not for inner or outer CDN urls. It appears that the hosted version of the milo library all use either inner or outer CDN url's.. So that potentially explains why they have not encountered this issue yet.
To Reproduce
Works

Does not work

Error
The Clipboard API has been blocked because of a permissions policy applied to the current document. See https://goo.gl/EuHzyv for more details.
The fix

Expected behavior
A plugin loaded from hlx.live should be able to use the clipboard-write API.

:tada: This issue has been resolved in version 6.12.5 :tada:
The release is available on:

GitHub release
v6.12.5

Your semantic-release bot :package::rocket:


DATAJDBC-576 - Control test execution with missing licence via profile.

Running all tests with
./mvnw clean install -Pall-dbs

or similar now requires an appropriate container-license-acceptance.txt to be on the classpath.
In order to ignore the tests that require an explicit license acceptance one may add the maven profile ignore-missing-licence like so
./mvnw clean install -Pall-dbs,ignore-missing-licence

DATAJDBC-576.

That's merged and polished now.


Update x509 instruction with roles definition section

Update x509 client cert instructions with proper roles section

@dorbin  is it possible to merge this? or I can close pr?

Aughhh! Sorry, Kirill, I've been out of touch for a while, working on other stuff.
These changes are fine, as far as I'm concerned, but I don't have time right now to test it. I just need to find someone to do a quick tech review of it.
I'll try... @ezimanyi . Eric, can you take a quick look? Thanks!

I'm not overly familiar with generating SSL certificates, so I might not be the best person to review this.  But I'm not sure I understand why we need to re-define those fields in a separate extensions file when the are already defined in the above openssl.conf.

I'm not overly familiar with generating SSL certificates, so I might not be the best person to review this. But I'm not sure I understand why we need to re-define those fields in a separate extensions file when the are already defined in the above openssl.conf.
Because if you are signing the server without extensions role-based auth is not been applied and the process is not working.

@ezimanyi @dorbin  I found the same info in the spinnaker slack https://spinnakerteam.slack.com/archives/C99CEV2MA/p1551126207007500

@ezimanyi @dorbin anyone on this for review?

Maybe @jasonmcintosh can provide a review from the Security SIG perspective.  This isn't something I'm familiar enough with to provide a review on myself.

Yeah I’ll take a look after Christmas break. I’m pretty familiar with x509 and OpenSSL. Can we add the sig security label?  Thanks!


”Runcu Salvei” is listed in the drop-down menu

Description:
"Runcu Salvei" is listed in the drop-down menu alongside its corresponding county and commune, according to the law.
Precondition:
The website is up an running.

Step 1
Type "Runcu Salvei" in the search bar.

Expected results
The location is listed in the drop-down menu as "Runcu Salvei, Bistrița-Năsăud".


development environments has issue

when i click components's link, then an exception is thrown.

06:40:46 [vite] Internal server error: Missing "./component-meta/{component name}.json" export in "anu-vue" package

I ran two commands.

first

npx nr dev

second

npx nr docs:dev

Hi,
Sorry when we refactored the code we removed some of the code and due to that we are now getting errors. We fixed this in the latest commit 😊
Please give it a try and let us know.
Thanks for reporting.

Hi,
Sorry when we refactored the code we removed some of the code and due to that we are now getting errors. We fixed this in the latest commit 😊
Please give it a try and let us know.
Thanks for reporting.

ok now


Blocked file

The files are blocked and protected. I cannot modify them to give permission

Why would you edit the dll manually? You don't need it.
Use the convars provided by the script on your server configuration.

Sorry, I did not understand the explanation
Can you explain to me how I can modify the file?

If you want to modify the source code, clone this repo and build it.
If you want to configure the scripts, use the convars from the page that I posted.

It's good. I've set my own powers
But how can I get everyone to use this thing by default? They can not take out the weapons?
I apologize for the many questions

Have you actually seen the convars page? Because there is this one that changes the default activations:

simplepassive_default

Type: int
Default: 0

The default activation status of Passive Mode. A value of 0 will disable passive mode for new players, while anything else will enable it by default.

It worked for me
I did not read the post well
I read it now and it worked for me
Thank you

Can I get some of my modifications for money?

No. All of my projects are free under the MIT License for a reason.


Inconsistent behavior

On javascriptreact autorename never works, and sometimes when I try to open a tag shows this error

On typescriptreact neither autoclose nor autorename work
I use default config
require('nvim-ts-autotag').setup()

Sorry Can you run :checkhealth then run :TSInstall javascript and check again.

This is :checkhealth output

TSInstall javascript  typescript

Maybe it's a version incompatibility, I'm using tree-sitter-cli 0.19.4 that version was published this week.

I use a same version like you and it working
on javascript

[x ] autorename
[x ] autoclose

on typescript
It will not working if you not set the file type to typescriptreact(tsx) .It is because treesitter syntax of typescript don't have xml tag
If you see that error message above on javascript file can you give me that javascript code.

I'm using typescriptreact(tsx) for this
import React from 'react';
import Head from 'next/head';

const App = () => {

  return (
    <>
      <Head>
        <title>
          Something
        </title>
      </Head>
      <h1>
        Hello world
      </h1>
    </>
  );

}

export default App;

I tried on js jsx and tsx, These are the results:
tsx -> Nothing work neither autoclose nor autorename
jsx -> Only autoclose works
js -> Only autoclose works
The error on tsx when i try to close a div tag with >

I try on js and jsx autoclose is working but renaming simply does nothing

@windwp I have the same issue (only tried on typescript) and after some debugging I found out that vim.bo.filetype is returning 'typescript.tsx', so the is_jsx function is returning false. Adding 'typescript.tsx' to the table fixed it for me. I can open a PR if you want.

Thank @franjs
maybe another plugin set filetype to typescript.tsx. you can make a PR.

@pedro757 can you checkout it and test again.

@pedro757 can you checkout it and test again.

I checkout @franjs changes, Still the same, I tested on tsx, jsx and js.
tsx -> Nothing work neither autoclose nor autorename
jsx -> Only autoclose works
js -> Only autoclose works

check your filetype of tsx is typescriptreact.
Can you share a minimal config with that issue?

@pedro757 What do you get if you run :lua print(vim.bo.filetype) with those files opened?

@pedro757 What do you get if you run :lua print(vim.bo.filetype) with those files opened?

I tried that typescriptreact is the output

check your filetype of tsx is typescriptreact.
Can you share a minimal config with that issue?

Do you want my vim config files?

i think it come from your plugin or your setting.
The CI test is work with that config.
https://github.com/windwp/nvim-ts-autotag/blob/main/tests/minimal.vim

I tried with a minimal init.vim config file like this and shows the same error

" My init.vim config file
call plug#begin("~/.config/nvim/plugged")
  Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
  " Plug 'windwp/nvim-ts-autotag'
  Plug 'franjs/nvim-ts-autotag'
call plug#end()

:lua <<EOF
require'nvim-treesitter.configs'.setup {
  ensure_installed = "maintained",
  highlight = {
    enable = true
  },
}

require('nvim-ts-autotag').setup()
EOF

lol sorry i don't know what happen but can you install this plugin
https://github.com/nvim-treesitter/playground then run command TSPlaygroundToggle and see it have tag jsx_openning_element.

Thank you @windwp that plugin is awesome, I realized that typescript and tsx is not the same for treesitter, so I installed tsx with TSInstall tsx as it's describe here they are two different dialects.
The only problem then is autorename:
tsx -> Autorename is not working
jsx -> Autorename is not working
js -> Autorename is not working

lol You need to check it on your config. is that autorename work on html?

lol You need to check it on your config. is that autorename work on html?

I tried on html and it's the same, I think autorename is broken generally
tsx -> Autorename is not working
jsx -> Autorename is not working
js -> Autorename is not working
html -> Autorename is not working

@pedro757
Did your issue of autorename is solve?

No, autorename does not work

I found another bug, last updates of windwp/nvim-autopairs and windwp/nvim-ts-autotag messed up autotag in tsx files, jsx still works fine when autotag, None of them work with autorename :'(
When I disable this plugin windwp/nvim-autopairs autotag works in tsx.
This is my autopair config
local remap = vim.api.nvim_set_keymap
local npairs = require('nvim-autopairs')
npairs.setup()

-- skip it, if you use another global object
_G.MUtils= {}

vim.g.completion_confirm_key = ""

MUtils.completion_confirm=function()
  if vim.fn.pumvisible() ~= 0  then
    if vim.fn.complete_info()["selected"] ~= -1 then
      return vim.fn["compe#confirm"](npairs.esc("<c-r>"))
    else
      return npairs.esc("<c-n><c-y>")
    end
  else
    return npairs.autopairs_cr()
  end
end

remap('i' , '<CR>','v:lua.MUtils.completion_confirm()', {expr = true , noremap = true})
remap('i' , '<c-l>','v:lua.MUtils.completion_confirm()', {expr = true , noremap = true})

I don't know why autorename does not work

Hi you can update autopairs to fix that conflict issue.
 return vim.fn["compe#confirm"](npairs.esc("<c-r>"))  --  it should be ==> <cr> not <c-r>

I don't know what happen with auto rename on your config
better try to disable another plugin or share  a minimum config of autotag when auto rename is not work then i can test on that config

I updated again nvim-autopairs then autotag works again in tsx, autorename still does not work
I created this minimal config repo for you
https://github.com/pedro757/minimal-nvim-config

I found the problem, this plugin autorename on ESC, I always use Ctrl-c for everything, sorry

yeah ctrl-c is tell vim leave insert mode without event so my plugin don't know it
i map esc to caplocks. maybe you can try 😎

yeah ctrl-c is tell vim leave insert mode without event so my plugin don't know it
i map esc to caplocks. maybe you can try 😎

Should i map  to  . Will it cause any error ?

yeah ctrl-c is tell vim leave insert mode without event so my plugin don't know it
i map esc to caplocks. maybe you can try 😎

Should i map  to  . Will it cause any error ?

I did that, and it's ok for me I haven't need ever to leave insert mode without issuing an event


fix(credentials): fix credentials for feeds with space in url

fix issue with with missing credentials in case feed url contained spaces
fix #210

@jmyersmsft could you please approve this one more time?
accidentally dropped the previous branch and PR...

@jmyersmsft can you please merge this PR?

@jmyersmsft can you please merge this PR?


Fix react types dependency

Fixes #1896

These changes are the same changes that we patched in our monorepo via the .pnpmfile.cjs file and worked for us, thanks for fixing!


numeric instability with kl_estimator_k3

When I use kl_estimator_k3, sometimes abnormally large KL values appear, which can occasionally cause the training to crash.

@zhuzilin

insight from ChatLearn: using logits from vLLM can sometimes cause this issue, it will be mitigate a lot by let the token produced by vLLM pass through deepspeed/torch/megatron again.

How about
def compute_approx_kl(
    log_probs: torch.Tensor,
    log_probs_base: torch.Tensor,
    action_mask: Optional[torch.Tensor] = None,
    use_kl_estimator_k3: bool = False,
) -> torch.Tensor:
    """
    Compute the approximate KL divergence between two distributions.
    Schulman blog: http://joschu.net/blog/kl-approx.html

    Args:
        log_probs: Log probabilities of the new distribution.
        log_probs_base: Log probabilities of the base distribution.
        action_mask: Mask for actions.
    """

    log_ratio = log_probs - log_probs_base
    if action_mask is not None:
        log_ratio = log_ratio * action_mask

    # The k3 estimator is the non negative kl approximation in
    # http://joschu.net/blog/kl-approx.html
    # Besides non negative, it is also unbiased and have lower variance.
    if use_kl_estimator_k3:
        log_ratio = -log_ratio
        k3_log_ratio = log_ratio.exp() - 1 - log_ratio
        log_ratio = torch.where(log_ratio < 0, k3_log_ratio, torch.min(log_ratio, k3_log_ratio))

    return log_ratio
    ```


Set @epapbak as additional codeowner

Description
Update of CODEOWNERS file
Type of change

Documentation update (does not change source code nor configuration)

Codecov Report

Merging #191 (8587dd0) into master (12141bb) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #191   +/-   ##
=======================================
  Coverage   70.23%   70.23%
=======================================
  Files           9        9
  Lines         336      336
=======================================
  Hits          236      236
  Misses         81       81
  Partials       19       19

Continue to review full report at Codecov.

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

Codecov Report

Merging #191 (8587dd0) into master (12141bb) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #191   +/-   ##
=======================================
  Coverage   70.23%   70.23%
=======================================
  Files           9        9
  Lines         336      336
=======================================
  Hits          236      236
  Misses         81       81
  Partials       19       19

Continue to review full report at Codecov.

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


Make it possible to tell Pop exactly what to load when making a new instance

defaults to loading everything
if a table of values is passed, it only loads those elements, skins, extensions
ex: tbl = { elements = { "window", "element" }, skins = { "clearcut" } } would not load extensions and load specified elements and the one skin (make sure it errors if you tell it to load something that doesn't exist)

I'm going to leave this up to the user. They can remove parts of the library they don't want loaded.


Submit homework

Merge everything into the main branch and submit the homework.

Merge everything into the main branch and submit the homework.


Make :CodyAsk also use currently open files as context

Slack discussion: here
Tweet that triggered this: here
In short: it's pretty handy to be able to select an error message (in quickfix list or in terminal) and then use :CodyAsk to ask Cody about it. BUT: Cody doesn't know which other files I have open. So it'd great if the currently visible files (if they fit in the context window) could be used as context too. VS Code does the same thing (although implemented in a non-deterministic way that I don't like).

+1 for the integration of Code actions: FIX with Cody


Docker support for both libsql and sqlstudio

I am attempting to run both of these in docker via compose (not sure if it is a supported configuration?), but not having luck with libsql or local-libsql. Is there currently a way in which this can be accomplished?
version: "3"
services:
  # --| LibSQL Database ----------
  db:
    image: ghcr.io/tursodatabase/libsql-server:latest
    platform: linux/amd64
    ports:
      - "9080:8080"
      - "5001:5001"
    environment:
      - SQLD_NODE=primary
      - SQLD_HTTP_LISTEN_ADDR=<IP_ADDRESS>:8080
    volumes:
      - ./data/libsql:/var/lib/sqld
    networks:
      - libsql-network

  # --| SQL Studio ---------------
  sql-studio:
      image: frectonz/sql-studio
      ports:
          - "3030:3030"
      volumes:
        - ./data:/db
      command: # Tried with and without the --no-browser flag, just in case
          /bin/sql-studio --no-browser --no-shutdown --address=<IP_ADDRESS>:3030 # See below for options tried

        # libsql (http://db:8080 | libsql://db:5001)
        # Errors because no auth token

        # local-libsql /db/libsql/iku.db
        # 0: Failed to connect to database: `Unable to open connection to local database /db/libsql/iku.db: 14`

        # local-libsql http://db:8080
        # Failed to connect to database: `Unable to open local database http://db:8080 with Database::open()

        # local-libsql libsql://db:5001
        # 0: Failed to connect to database: `Unable to open local database libsql://db:5001 with Database::open()`
      networks:
          - libsql-network
      depends_on:
          - db

networks:
  libsql-network:
    name: libsql-network

Sorry, I am an idiot. I didn't realize in libsql's example that iku.db was a directory and not a db file. Apparently, I needed to point to /db/libsql/iku.db/dbs/default/data in order to point to an actual db file. It found that and was able to load. I am not sure that is how things are intended to be used, as it's my first time checking out both of these.


github pages not updating

@bilal-fazlani I've merged documentation updates to master but https://bilal-fazlani.github.io/commanddotnet/ hasn't updated.  There should be a V3 folder at the bottom.
I used the squidfunck docker image via dev-docker-mkdocs.sh to test the changes locally.
I don't have visibility of error logs.  Are you able to see if there are any errors?
https://help.github.com/en/articles/viewing-jekyll-build-error-messages

Hmmm, I think I misunderstood how this works.  I thought merging /docs to master would cause this to rebuild but now that I'm diving in more, I'm realizing mkdocs is not built by jekyll.  Are the docs served from the gh-pages branch?

Ohh hey sorry for late response. This is because I still haven’t automated doc deployment. We have two options,
We can either automate the existing process of deploying to github pages.
Or we can switch to hosting on readthedocs.
The advantage of switching to readthedocs is that we wont have to create a folder of v3. We can just continue to make changes to docs and keep tagging the releases. It will maintain docs of all tags(versions).

I will try and close this today

I am expecting something like akka.
https://doc.akka.io/docs/akka/2.5.24/general/index.html
If you replace 2.5.24 in the url with ‘current’, it takes you to latest documentation.
https://doc.akka.io/docs/akka/current/general/index.html

not built by jekyll. Are the docs served from the gh-pages branch?

Currently, yes

Thanks for hopping on this.  Having an automated process would be fantastic.  I was just cloning the repo 3rd time so I can have active branches for v3, master/docs & gh-pages.  Sounds like I could use just one again with readthedocs.  If so, that would be great.
Thanks,
Drew

while working on #173 it occurred to me that using tags for viewing historical documentation may not work as expected in our monorepo since tags are prefixed with a particular product.   As long as "Latest" is always available we'll be ok.  The other tags may be a bit confusing but we can probably explain it in the readme.  I think it will still be better than what we have.  What do you think?

Ohh I completely forgot about that. I guess it will still be better than
what we have now. Not the ideal solution but I think we can live with that
until we find a better solution.
Btw, I still haven't started the work to switch to rtd. Will try n get to
it very soon.
On Wed, Sep 25, 2019, 4:21 PM Drew Burlingame<EMAIL_ADDRESS>wrote:

while working on #173
https://github.com/bilal-fazlani/commanddotnet/pull/173 it occurred to
me that using tags for viewing historical documentation may not work as
expected in our monorepo since tags are prefixed with a particular product.
As long as "Latest" is always available we'll be ok. The other tags may be
a bit confusing but we can probably explain it in the readme. I think it
will still be better than what we have. What do you think?
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/bilal-fazlani/commanddotnet/issues/172?email_source=notifications&email_token=AAZ5FL7TL42GOWERYCJI4STQLM7DPA5CNFSM4IZIZWR2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD7RO6OA#issuecomment-534966072,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAZ5FL725SDCNZ77VF7AYSTQLM7DPANCNFSM4IZIZWRQ
.

no worries.  I've updated the gh-pages branch to show v3 changes.  Feel free to review and let me know if you find anything that's not clear or needs a fix'n.

Any chance you'll be able to follow up on this?  I'm about to start wrapping up the documentation.  Or, if you'd like to give me access to rtd, I could investigate as well.

Hi,
I am sorry I couldn't get to it. I can give you the access. What is the
username I should use to give you access?
On Thu, Oct 31, 2019, 11:39 PM Drew Burlingame<EMAIL_ADDRESS>wrote:

Any chance you'll be able to follow up on this? I'm about to start
wrapping up the documentation. Or, if you'd like to give me access to rtd,
I could investigate as well.
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/bilal-fazlani/commanddotnet/issues/172?email_source=notifications&email_token=AAZ5FL5PF6GY6FHLDD5HYDDQRMNPBA5CNFSM4IZIZWR2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOECYXRDA#issuecomment-548501644,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAZ5FL2KTUBIH4Y5NRNZKXDQRMNPBANCNFSM4IZIZWRQ
.

Looks like I didn't have a personal account.  Try again with 'drewburlingame'.

Hi,
It worked this time.
You should have access now.
Regards,
Bilal Fazlani
On Tue, Nov 5, 2019 at 2:11 AM Drew Burlingame<EMAIL_ADDRESS>wrote:

Looks like I didn't have a personal account. Try again with
'drewburlingame'.
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/bilal-fazlani/commanddotnet/issues/172?email_source=notifications&email_token=AAZ5FLZ7WA6JCQY6RS5RZ63QSCCHHA5CNFSM4IZIZWR2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEDAUM5I#issuecomment-549537397,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAZ5FL66FMMF5JOVZFJ4QLDQSCCHHANCNFSM4IZIZWRQ
.

--
Thanks & regards
Bilal Fazlani

@bilal-fazlani i'm in and it's working.  it looks like RTD only supports two themes: mkdocs & readthedocs.  It does not support material.  I used RTD locally and I like the look but I couldn't get the code examples to format correctly.

If you can give me access to github pages for the project, I can work on automating the deploy there.

If you can give me access to github pages for the project, I can work on automating the deploy there.

ohh the github pages is just a branch gh-pages, right? you should already have access to it..
Although we will have to check if travis ci has the rights to push to repo using mkdocs gh-deploy

@bilal-fazlani  After looking into this some more, it looks like the best approach would be using Travis's built-in GitHub Pages Deployment.  To do this securely, we'll need to setup a deploy key which requires admin access to the repo.  If you grant that to me, I can work on this, otherwise you'll need to configure it with travis and push the encrypted file to the repo.  https://docs.travis-ci.com/user/encrypting-files/
Someone's reference for configuring the deploy key file with Travis.

Ok, let me take a stab at it today. Will try to setup mkdocs automatic
publishing. If I can't do it, will send you the key and we can go with
built-in approach.

Ok, it works now.
https://travis-ci.com/bilal-fazlani/commanddotnet/builds/135782547
We have custom scripts to publish documentation. I have put a criteria of master branch.  If one wishes to push documentation files but not publish them, s/he can push those to other branch. Then merge to master whenever ready to be published.

@bilal-fazlani Thanks for doing this.  I like the way you implemented with the subtree.  Great thinking.
I've updated the script in the PR #180 to use docker and support publishing from a dev box.  I broke components out into functions so I could more easily comment out behavior while testing.
The big change with the PR is that it uses docker instead of installing all mkdocs requirements locally.   This makes a big difference for me and I think it will help ensure what we see during local dev is what is published.  What do you think?

Looks good 👍

I am thinking are there any use cases for publishing from dev box?
If you publish from dev box, and dont push, it might get overridden by an automated publish later. If you do push after publishing, it will get published again anyways.

Btw, i found this : https://zayd62.github.io/mkdocs-versioning-test/
I like it. Will give it a try later.

I am thinking are there any use cases for publishing from dev box?
If you publish from dev box, and dont push, it might get overridden by an automated publish later. If you do push after publishing, it will get published again anyways.

Good point. I was planning to publish my updates for v3 that way but you're correct, an unrelated merge to master can remove those.

Btw, i found this : https://zayd62.github.io/mkdocs-versioning-test/
I like it. Will give it a try later.

Looks interesting.  I like it.  It doesn't address the needs of the mono-repo so the version will always be for the overall mono-repo, which will generally be based on the CommandDotNet project version.  I think it will be useful.

I've fixed the build. Had to fix some permissions issues I don't run into on windows.
I looked into mkdocs-versioning a bit.  It assumes we'll update the version in mkdocs.yml every time we update the docs.  It won't update existing versions.  I think it's too strict for us, especially in our mono-repo world.  I initially thought we would define the versions in the source but that doesn't seem to be the case.
I've pushed most docs for significant update and new features.  My next step is to copy the existing v2 docs into the v3 folder and make necessary update so that v3 will be self-contained.  When we merge v3, the existing can be moved to a v2 folder and the v3 folder can be pulled up.


Refactor into monorepo

[ ] RippleAddressCodec
[ ] RippleBinaryCodec
[ ] RippleKeypairs
[ ] Xrpl

Name clashes where the namespace/folder is the same as the class, append Xrpl to the class name.
Client = XrplClient
Wallet = XrplWallet


Validator

Something that would great to have on the website, is a validator that implements all these recommendations.
Something like https://www.rssboard.org/rss-validator/

The Get Involved page links to the Podbase Validator which has a dedicated section for the Podcast Standards Project.


Add a license

Thank you very much for making this little helper, it saved me a lot of time and makes the DMA interface more accessible.
However it would be nice to have a (preferably free/open/libre/whatever) license associated with this repository to give people the possibility to use this in their own projects.

Many thanks for the feedback. I've now added an MIT licence to the repository (see LICENSE.md).


Add Import Feature

Import feature closes #3.
Users can import a JSON file, which overwrites their current contact list.

Codecov Report

Merging #39 (476e4b3) into master (7e5297e) will decrease coverage by 0.70%.
The diff coverage is 25.80%.

@@             Coverage Diff              @@
##             master      #39      +/-   ##
============================================
- Coverage     72.28%   71.58%   -0.71%
- Complexity      432      448      +16
============================================
  Files            75       76       +1
  Lines          1346     1404      +58
  Branches        133      141       +8
============================================
+ Hits            973     1005      +32
- Misses          338      363      +25
- Partials         35       36       +1

Impacted Files
Coverage Δ

...main/java/seedu/address/commons/core/Messages.java
0.00% <ø> (ø)

...va/seedu/address/logic/commands/CommandResult.java
80.00% <0.00%> (-8.89%)
:arrow_down:

...u/address/storage/JsonSerializableAddressBook.java
100.00% <ø> (ø)

src/main/java/seedu/address/ui/MainWindow.java
0.00% <0.00%> (ø)

...va/seedu/address/logic/commands/ImportCommand.java
29.16% <29.16%> (ø)

.../seedu/address/logic/parser/AddressBookParser.java
100.00% <100.00%> (ø)

...eedu/address/logic/parser/DeleteCommandParser.java
75.00% <0.00%> (-25.00%)
:arrow_down:

...va/seedu/address/logic/commands/DeleteCommand.java
100.00% <0.00%> (ø)

...ain/java/seedu/address/logic/parser/CliSyntax.java
85.71% <0.00%> (+2.38%)
:arrow_up:

Continue to review full report at Codecov.

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


test(Notification): expand test coverage for Notification

relates to #607

merged with c7b63d8, thanks @kwonoj


Help !

First of all thanks for the detailed note on how to install and bring up the application. I have quick question that lets say if I want to make any changes on insurance.router.js , that change will get updated instantly or do i have to run ./build_ubuntu.sh ? since most of my nodejs experience I have used gulp on my environment which does autoupdate for me.
Highly appreciated the help

@vkkan  - any change you make it will reflect back on your project but just make sure you clean up the previous containers to avoid confusions


docs: fix incorrect document URL

I hereby agree to the terms of the GreptimeDB CLA
What's changed and what's your intention?
I changed the documentation links for 'protocols and clients' because when I tried to open them earlier, they showed a 404 PAGE NOT FOUND error.
Checklist

[ ]  I have written the necessary rustdoc comments.
[ ]  I have added the necessary unit tests and integration tests.

Refer to a related PR or issue link (optional)

Good catch


Can hint text show the entire set of arguments?

I like having hint only mode vs the full window because it doesn't get in the way of reading the code above where I'm typing. The only issue I have with it is that it doesn't show the entire signature of the function, only the current argument. I there a way there can be a super compact mode like how hint works but still shows all the arguments?

You can either set floating_window to false and use virtual text only mode
Also you can set doc_lines=0 and border='none'  so the hint will be one line in height.

Similar to this issue, I would propose a mix between this mode and the current one. This mode would give you the current available options. For example, given a python function like this:
def addition(num: int, num2: int = 2, num3: int = 3):
    return num + num2 + num3

I would like to see num as the first argument, and then, once the default argument zone is reached, the current mode only displays num2. However, since these are optional, it would be a good idea to display my available options (which in this case, they are num2 and num3)

@tomleavy
You can use the api status_line() please check the README.md

Thanks, will give that a shot

@mflova
Seems that require LSP server supports. I tried pyright

The response does not show which parameter is optional.  It not a rival task for lsp-signature to identify the optional arguments.


Icecast on Safari 13.1.1, multiple connections

Browser: Safari 13.1.1
OS:  Mac OS Catalina 10.15.5
Clappr Version: 0.3.8
Steps to reproduce:

first step: go to http://clappr.io/demo/#dmFyIHBsYXllckVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGxheWVyLXdyYXBwZXIiKTsKCnZhciBwbGF5ZXIgPSBuZXcgQ2xhcHByLlBsYXllcih7CiAgc291cmNlOiAnaHR0cHM6Ly9zdHJlYW0yLnhkZXZlbC5jb20vYXVkaW8xczMtOC9zdHJlYW0vaWNlY2FzdC5hdWRpbycsCiAgbWltZVR5cGU6ICdhdWRpby9tcGVnJywKICBwb3N0ZXI6ICdodHRwOi8vY2xhcHByLmlvL3Bvc3Rlci5wbmcnLAogIG11dGU6IHRydWUsCiAgaGVpZ2h0OiAzNjAsCiAgd2lkdGg6IDY0MAp9KTsKCnBsYXllci5hdHRhY2hUbyhwbGF5ZXJFbGVtZW50KTsKCg==

open developer tools then select Network tab then Other tab

try to play and pause again play and pause

This issue make several connections..

Hi @fabioricali ! I couldn't reproduce the reported behavior. Did you make tests with the Clappr latest version too? Is this the only stream with the reported problem or you catch the same behavior on other streams?

Hi, I just made a video showing the problem. I have noticed however that it does this with all shoutcast and icecast audio streams.
https://www.youtube.com/watch?v=FVCVTc3UDF8

Hi @fabioricali, I reproduce the behavior in Safari 13.1.2 on clappr-core after I saw the video you uploaded.
In the HTML5Playback stop method, we remove the src attribute from the current element and call the load method to end the stream fetch. You can see this code here: https://github.com/clappr/clappr-core/blob/8f3253c36d66fe295e6be0321e5a8fd5241d28fa/src/playbacks/html5_video/html5_video.js#L308-L317
I spent some time investigating and was unable to find out why only on Safari this happens. In Chrome and Firefox, the expected behavior happens (to end the media fetch).
@towerz @leandromoreira @jhonatangomes, can you imagine any alternative to solve this unexpected behavior of Safari?

Hi @joaopaulovieira , there is a way to overwirte the stop method? So I try some solution?

Yes, it's possible. One example:
http://clappr.io/demo/#dmFyIHBsYXllckVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGxheWVyLXdyYXBwZXIiKTsKCmNsYXNzIEN1c3RvbUhUTUw1UGxheWJhY2sgZXh0ZW5kcyBDbGFwcHIuSFRNTDVWaWRlbyB7CiAgZ2V0IG5hbWUoKSB7IHJldHVybiAnaHRtbDUnfQogIHN0b3AoKSB7CiAgICBhbGVydCgnc3RvcCBidXR0b24gY2xpY2tlZCEnKQogICAgc3VwZXIuc3RvcCgpCiAgfQp9Cgp2YXIgcGxheWVyID0gbmV3IENsYXBwci5QbGF5ZXIoewogIHNvdXJjZTogJ2h0dHBzOi8vc3RyZWFtMi54ZGV2ZWwuY29tL2F1ZGlvMXMzLTgvc3RyZWFtL2ljZWNhc3QuYXVkaW8nLAogIG1pbWVUeXBlOiAnYXVkaW8vbXBlZycsCiAgYXV0b3BsYXk6IGZhbHNlLAogIGhlaWdodDogMzYwLAogIHdpZHRoOiA2NDAsCiAgcGx1Z2luczogW0N1c3RvbUhUTUw1UGxheWJhY2tdCn0pOwoKcGxheWVyLmF0dGFjaFRvKHBsYXllckVsZW1lbnQpOwoK

thank you 👍

Hi @fabioricali
I've tested on Safari Version 14.1 (166<IP_ADDRESS>.3) and it seems that the problem is solved. Can you try to reproduce the reported behavior and ping us back with the results?


Specifying versions for the dependencies

Based on the new implementation, all the dependencies are specified by the version. I have a concern and a question about this.
Question: The versions specified are the latest versions. So why shouldn't the docker images be based on the latest versions?
Concern: In case of any update to the dependecies, we need a bot to update the versions and start a pull-request. But then we have to check whether pyiron implementation is compatible with the latest version of the dependencies or not as well.

One of the use cases of Docker is to have full reproducibility, by fixing the version it is easier for others to look up the versions we used. When somebody said he is using the pyiron Docker from Oct 2020 we can easily look up the LAMMPS version he was using.
When the next LAMMPS version is no longer compatible to the current pyiron version we make sure our recipe is only updated  when we manually update it here. So anybody who might use the Dockerfile to build their own image always gets a working combination of packages.
Finally the bot would be a nice extension, but for the moment I guess we are fine updating the images manually. Moreover while building the images I am not even so sure if we need all of them of if a smaller number of images like pyiron/base, pyiron/lammps and pyiron/pyiron is sufficient.
I would suggest you do some more testing today and then you can present it in the developer meeting tomorrow to get some more feedback.


HmIPW(ired) Device Support - Discussion concerning multi-input-devices

Hi,
Currently, I am working on extending pyhomematic to support the Homematic IP Wired components that will come out soon.
The Switch / Relais Devices HmIPW-DRS4 and HmIPW-DRS4were rather easy and I already got them to do what they are supposed to.
Now: Working on the HmIPW-DRI32 proves as a bit more of a conceptual challenge for me and I need your input.  The HmIPW-DRI32 is a 32-channel input device...
It can handle the following attached devices:

switches (perma-off, perma-on)
buttons (short / long press)
reed contact sensors.
In the XML, these three are not distinguishable, although they are configurable in the webUI.

My underlying question however: where to put that device?  It is neither an actor, nor a sensor ?!
My gut feeling was to place it in sensors, but wanted to check-in with you before, @danielperna84.  I'm also asking, because I could not explicitly find the input channels of e.g. the HMW-IO-12-Sw7-DR
Cheers!

I think the HMW-IO-12-Sw14-DR is similar. It detects how the channels are configured (I'm sure you can get the configuration from the MASTER paramset somehow) and dynamically adjusts the channels. In this case they can also be configured in different ways. However, not all cases can be replicated. Some channel configurations will just not work.
The HMW-IO-12-Sw7-DR works because it has the HelperEventRemote helper. When subclassing that helper the events will be passed on to the Home Assistant event bus. That's how buttons (short/long press) would be implemented if I recall correctly.

Thanks!
So, I managed to add the HmIPW-DRI16/32 devices as an actor.
All fun and games, until I want to check the channel mode and feed that intel to Homeassistant.
The function getParamset() seems to have issues on HMIP devices ... at least, I am not able to call this function on the proxy for any of my HMIP(W) devices without getting a FAULT form the RPC.  It is OK for HM(W) devices!  Calling getParamset() from outside of HomeAssistant in a simple script works, as long as Homeassistant is not connected to the CCU3.
The code:
`
def init(self, device_description, proxy, resolveparamsets=False):
super().init(device_description, proxy, resolveparamsets)
self._hmipw_keys = []
self._hmipw_binaries = []
    for chan in self.ELEMENT:
        address_channel = "%s:%i" % (self._ADDRESS, chan)

        try:
            channel_paramset = self._proxy.getParamset(address_channel, "MASTER", 0)
            channel_operation_mode = channel_paramset.get("CHANNEL_OPERATION_MODE") if "CHANNEL_OPERATION_MODE" in channel_paramset else 1
            if channel_operation_mode == 1:
                LOG.debug("IPWInputDevice: Added %s as ACTION KEY", address_channel)
                self._hmipw_keys.append(chan)
            elif channel_operation_mode in [2, 3]:
                LOG.debug("IPWInputDevice: Added %s as BINARY_SENSOR", address_channel)
                self._hmipw_binaries.append(chan)
        except Exception as err:
            LOG.error("IPWInputDevice: Failure to determine input channel operations mode of HmIPW input device %s: %s", address_channel, err)

    self.ACTIONNODE.update({"PRESS_SHORT": self._hmipw_keys,
                            "PRESS_LONG": self._hmipw_keys})
    self.BINARYNODE.update({"STATE": self._hmipw_binaries})

`
The error in home-assistant.log for each channel:
2019-02-14 22:53:43 ERROR (Thread-19) [pyhomematic.devicetypes.actors] IPWInputDevice: Failure to determine input channel operations mode of HmIPW input device 001234567:01: <Fault -1: 'Generic error'>
No log is shown on the CCU3.  No additional information is given by any of the platforms.
Any ideas?  Even ideas on how to debug this further are greatly appreciated.
Cheers!

It is OK for HM(W) devices!

So you can confirm, that the flow generally is working? I did not implement this on my own since I don't have any wired devices, and I don't knoe how thoroughly it has been checked. So I don't know if it has been broken all the time.
Regarding you observations: In this issue for the HmIP-MOD-RC8 the same problem seems to be present. Apparently there's some problem to use the same approch for HmIP devices. I don't know what a reasonable solution for this would be. My guess is, that during startup there are too many requests, and the CCU can't handle them all at once. That's why the proxy object already uses locking. But for HmIP devices this seems to not be enough.
As a general improvement that could help to put less stress on the CCU the DEVICEFILE could be implemented in Home Assistant.
Maybe also a general caching for values similar to what has been done here might help.
The key seems to be to find out a method to resolve the paramsets programatically, which does work when done manually. And nobody knows why it does not work when done from pyhomematic. 😞

Soo ... I did some digging ...
0) found out how the port-routing works and who is the master process:
# cat /etc/lighttpd/conf.d/proxy.conf
[...]
#-------------------------------------------
# crRFD Legacy XmlRpc TLS (:42010 -> :32010)
#-------------------------------------------
$SERVER["socket"] == ":42010" {
  include "/etc/lighttpd/conf.d/sslsettings.conf"
  proxy.server = ( "" => ( "localhost" => ("host" => "<IP_ADDRESS>", "port" => 32010)))
  include "/var/lighttpd_auth.conf"
}
$SERVER["socket"] == "[::]:42010" {
  server.use-ipv6 = "enable"
  include "/etc/lighttpd/conf.d/sslsettings.conf"
  proxy.server = ( "" => ( "localhost" => ("host" => "<IP_ADDRESS>", "port" => 32010)))
  include "/var/lighttpd_auth.conf"
}
[...]

And netstat -tlnp | grep 32010 in combination with ps -ef reveals that 32010 is keyed to our hm main thread:
  624 root     28:43 java -Xmx128m -Dos.arch=arm -Dlog4j.configuration=file:///etc/config/log4j.xml -Dfile.encoding=ISO-8859-1 -Dgnu.io.rxtx.SerialPorts=/dev/mmd_hmip -jar /opt/HMServer/HMIPServer.jar /etc/crRFD.conf /etc

1) cranked up the log levels of the ccu in /etc/config/log4j.xml to DEBUG
==> Nothing to be found in the logs concerning our Generic Fault -1 or anything else where any of the logs would indicate any reaction to the getParamset.
2) connected strace to the main java process
==> Also no luck.  It would make sense to have strace actively running, if a process or thread would crash to see something.  But nothing crashes, so strace ain't helpful here, imho
Preliminary conclusion
Seems to have something todo with the overall pyhm <-> ccu communication and/or some timing issues.  Will have an eye out for more intel on this and will dig deeper in the rpc server to maybe find something there.
Side notes
Observations alongside the debugging endeavours:

Restart the CCU and use a variation of example.py to call getParamset works flawlessly
Let the CCU running, connect pyhomematic from homeassistant --> both homeassistant as well as the example.py variation will fail (gerneric Fail -1 after some long seconds of waiting)
Stop the homeassistant server and try the example.py to call getParamset will fail again (gerneric Fail -1 after some long seconds of waiting)
During that time, the CCU appears to have slowed down.  However, there is no impact on CPU / RAM consumption or anything measurable outside of the JVM on os/hardware level

2) connected strace to the main java process
==> Also no luck. It would make sense to have strace actively running, if a process or thread would crash to see something. But nothing crashes, so strace ain't helpful here, imho

How did you work with strace? I can generate a Generic error when manually running a pyhomematic session without opening the firewall on my windows machine. The CCU therefore isn't able to send the answer for listDevices. It's not the same error, but it generates an error. And I can see that in strace, which tells me that a connection has timed out (this shows up in the hmserver.log as well). The command I use is ./strace -f -s 256 -o trace.out -p $thejavapid. I just leave that running, and from another terminal start the pyhomematic session. Afterwards I search the trace.out file for Generic. And not too far above from that I see the timeout messages.

Thanks!  Tried again yesterday:
Method:

started it via ./strace -f -s 256 -o /tmp/trace.out -p $thejavapid
left it on for about 15min
started the requests from both homeassistant and the example.py

Observations:

strace connected to a total of 53 sub processes
trace.out grew to measure 15MB
There are a LOT of timeouts present, even if no action / connection is happening to the CCU3:

# egrep -i timeout /tmp/trace.out | wc -l
7680

The Generic Error is thrown once upon calling getParamset from homeassistant:

# egrep -i generic /tmp/trace.out
681   writev(95, [{"HTTP/1.0 200 OK\r\nContent-Length: 257\r\n\r\n", 40}, {"<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?><methodResponse><fault><value><struct><member><name>faultCode</name><value><i4>-1</i4></value></member><member><name>faultString</name><value>Generic error</value></member></struct></value></fault></methodResponse"..., 257}], 2) = 297

Checking PID 681 in this file shows a timout in the futex call:

# egrep -i "^681 " /tmp/trace.out | egrep -i generic -A10 -B10
681   epoll_wait(28, {{EPOLLIN, {u32=26, u64=7606579873707982874}}, {EPOLLIN, {u32=95, u64=7539843726969929823}}}, 4096, 38182352) = 2
681   read(26, "\1", 128)               = 1
681   read(95, "POST /RPC2 HTTP/1.0\r\nHost: <IP_ADDRESS>:42010\r\nAuthorization: Basic aGFfdXNlcjpBbEtwUVdJYUphcXpFejFhYXhJeWxYdXBNV3lyVEZDWUF0SXJrUkhyTDdSdFBnRW1rbVVTVVlTcXBBWmVjMUNU\r\nAccept-Encoding: gzip\r\nContent-Type: text/xml\r\nUser-Agent: Python-xmlrpc/3.5\r\nContent-Length:"..., 1024) = 669
681   futex(0x75281a6c, FUTEX_WAKE_PRIVATE, 1) = 1
681   futex(0x68d29e94, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
681   <... futex resumed> )             = 1
681   epoll_wait(28,  <unfinished ...>
681   <... epoll_wait resumed> {{EPOLLIN, {u32=26, u64=7606579873707982874}}}, 4096, 29999) = 1
681   read(26, "\1", 128)               = 1
681   write(27, "\1", 1)                = 1
681   writev(95, [{"HTTP/1.0 200 OK\r\nContent-Length: 257\r\n\r\n", 40}, {"<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?><methodResponse><fault><value><struct><member><name>faultCode</name><value><i4>-1</i4></value></member><member><name>faultString</name><value>Generic error</value></member></struct></value></fault></methodResponse"..., 257}], 2) = 297
681   getsockopt(95, SOL_SOCKET, SO_LINGER, {onoff=0, linger=0}, [8]) = 0
681   dup2(12, 95)                      = 95
681   epoll_ctl(28, EPOLL_CTL_DEL, 95, 68a2e7c0) = -1 ENOENT (No such file or directory)
681   close(95)                         = 0
681   epoll_wait(28, {{EPOLLIN, {u32=26, u64=7606579873707982874}}}, 4096, 38162337) = 1
681   read(26, "\1", 128)               = 1
681   epoll_wait(28,  <unfinished ...>
681   <... epoll_wait resumed> {{EPOLLIN, {u32=26, u64=7606579873707982874}}}, 4096, 38162336) = 1
681   read(26,  <unfinished ...>
681   <... read resumed> "\1", 128)     = 1

Result
This strengthens the idea that something times out somewhere.  However, I cannot tell how or why.  Will try again w/ the new original firmware version as well as the new RaspMatic, once it is available.
Ideas welcome ;)
Stay tuned 😇

Hhmm, so this is something within the Java Process. Maybe thread-related and doesn't work well with parallel work.

This is all very odd. Maybe @jens-maus from RaspberryMatic got some idea here?
In a nutshell: calling getParamset fails on the CCU side, when called from a Thread spawned off of pyhomematic / home assistant.  Unfortunately, the CCU is insufficiently verbose to actually tell us what is going on.  Maybe you, Jens, got an idea on how to dig this up further?
Meanwhile, I'll go on and try to get a lead somewhere.

Would you mind creating a PR just for the HmIPW-DRS4 and HmIPW-DRS4? You said you got them working already, and support for 2 devices is better than none at all. 😉

Absolutely.  As soon as I have moved to the new home, I can finalise the PR and send it your way : )

Hey, a few months have passed now, so I wanted to bring this issue back to your attention. I had a look at your pyhomematic fork, but you haven't pushed anything to it yet. For now we still don't have any support for HmIPW. Would be nice to hear back from you. 👍

Anyone?

Is anyone working on this issue? To avoid multiple developments, it would be great to coordinate.
I will receive my HmIPW Actors in the next 2-3 weeks, and if no one is working on it, i would start trying to implementing it.
I will have following HmIPW Actors:

HmIPW-DRBL4
HmIPW-DRD3
HmIPW-DRI32
HmIPW-DRS8,
HmIPW-FIO6
HmIPW-BCC

@p0l0
I guess no one will mind if you give it a shot. 👍

Hey,
Yeah, that didn't go quiet as planned ... sorry about that.
As a reference, I will push my take on DRI16/32 as well as the DRS4/8
The logic implemented by me appears to work now with HM/CCU3 Firmware >= 3.49.17
@p0l0, you can build on top of this (once pushed), if you feel like it.
Caveat: Pls note that I did not push the related changes to the homeassistant addon to incorporate the new sensors/switches.

@henningweiler it would be great that you push your changes.
I just received my Actors and I will start installing and configuring everything as soon as possible, so that I probably will be able to start with the development this weekend.

@p0l0 things are merged to devel now. Good luck!

I have implemented successfully the HmIPW-DRD3, HmIPW-SPI and HmIPW-DRBL4 actor.
Unfortunately for HmIPW-DRI32 and HmIPW-FIO6, I have the same problem with "Generic error".
I'm using a Raspberry Pi 3B with RPI-RF-MOD and piVCCU, using an SD Card. What I noticed, on startup of HomeAssistant, is that the WebUI and XML-RPC is not responding until the whole HomeAssistant initialisation has finished.
This is only my current Test setup, I will change it in the next weeks to run on an USB SSD and will use raspbian+debmatic. Maybe the failure is due to lack of ressources.
@danielperna84 if you want I can do the pull request for HmIPW-DRD3, HmIPW-SPI and HmIPW-DRBL4, including the changes in the Homeassitant Integration.

Unfortunately for HmIPW-DRI32 and HmIPW-FIO6, I have the same problem with "Generic error".

Is you version of piVCCU recent enough to be comparable to the 3.49.17 CCU firmware? According to @henningweiler's statement here, a newer firmware resolves the issue.

@danielperna84 if you want I can do the pull request for HmIPW-DRD3, HmIPW-SPI and HmIPW-DRBL4, including the changes in the Homeassitant Integration.

Sure, go ahead. 👍

My piVCCU is version is the latest, 3.51.6. I have a feeling, that it's a ressource problem, because nothing works in the WebUI and XML-RPC (using Postman) until it finishes. I will give it a try with the new setup as soon as it's ready.

@danielperna84 should I wait until new pyhomematic release is created before making the pull request for the Home Assistant integration or can I do it already without updating the dependency version?

Is there more to it than just adding the new classes in Home Assistant? I usually do that when I do the update for pyhomematic in Home Assistant.

No, just added the classes:
https://github.com/p0l0/home-assistant/commit/5fc29542ea02cf199b3c795637fad5a1bcb823e9

I have copied the diff to your PR here. When releasing the new version I'll see that and replicate those changes in Home Assistant. 👍

The error with "Generic error" responses is now solved, it was a lack of system resources. With USB Boot and debmatic (CCU Version - <IP_ADDRESS>), everything is working like expected. I will finish the implementation of HmIPW-FIO6 and then push the changes, including the change for MotionDetection to be a sensor instead of actor.

@danielperna84 Unfortunately the "Generic error" is back. I implemented HmIPW-FIO6, but due to the "Generic error", I only was able to test the output Channels, the input channels should work, but aren't tested.
I commited the changes to my fork, if you want I can make a merge request, but Input Channels for HmIPW-FIO6, DRI16 and DRI32 are not usable as long as CCU is returning the "Generic error".
I'm trying to find out were the error comes from, but as I'm not using a "real" CCU3, there is also no support from EQ-3 and they are not accepting the issue request.

Maybe the stability will improve once there is progress with this issue. Even though it seems unrelated, maybe solving the buffering problem could fix other parts of the API. 🤷♂

@p0l0  – were you able to solve the issue?
I also have DRI32 but cannot get it up and running. It is part in the XML from HM, but does not show in Lovelace.

@timniemeier I'm will be move into our new House in the next 2-3 weeks, for that I'm setting up everything (HA, CCU, HmipWired). I will give an update as soon, as I have finished with the setup.

any update @p0l0 ?
i have the same status like @timniemeier
So if someone need assistance i can help :)

any update @p0l0 ?
i have the same status like @timniemeier
So if someone need assistance i can help :)

I could not resolve it after all. In HASS I cannot get into the docker container to debug, so I left my toggles aside.

I could not resolve it after all. In HASS I cannot get into the docker container to debug, so I left my toggles aside.

any update @p0l0 ?
i have the same status like @timniemeier
So if someone need assistance i can help :)

Im not getting the errors anymore for the DRI32, and if I configure a channel as "switch" (schalter) or as "contact" (kontakt), the channels appear automatically as a binary sensor in HA.
But channels configured as "button" (taster), which is the default configuration for each channel, seem to be ignored and are not shown in HA. There are no errors in the logs. As I currently dont have any use case to use it as a "button", I dindt have time to research why it is not working.

But channels configured as "button" (taster), which is the default configuration for each channel, seem to be ignored and are not shown in HA. There are no errors in the logs. As I currently dont have any use case to use it as a "button", I dindt have time to research why it is not working.

As a hint: buttons are never displayed in the UI. This is mentioned in the documentation.
To make HA listen for pressed buttons, the channel needs one or more of: HelperEventPress, HelperEventRemote, HelperActionPress. Which one depends on what the device is capable of, and if it should be possible to simulate buttons presses by automations.

Thank you for your contributions to the homematic integrations!
I have only one issue:
For the HMIPW-SPI device, I only see the entities:

current_illumination and
illumination
I don't get the motion information from this sensor into home asssistant (which is for me the most relevant information from this sensor). Within the CCU3, this information is available.
According to the information above, this device should be supported. That's why I'm adding my comment here.
If there are any additional information that could support, please let me know. Thank you!

@ivo7B4
Please share the device details as explained here: https://github.com/danielperna84/pyhomematic/issues/28#issue-162335385
Apart from that, the integration is done here: https://github.com/danielperna84/pyhomematic/blob/97e1a4114845bafdbf791db19fdeaffe5a9fa2f6/pyhomematic/devicetypes/sensors.py#L549
If you look at the data you're getting from the script, you might be able to fix the issue yourself. 👍

@danielperna84
Thank you for your reply.
I've also checked the binary_sensor and I don't find it (actually, I've checked all the listed entities with integration homematic that I have).
I'll follow the instructions as you've described in #28 (comment)
I'm just still rather new in home assistant. I thus don't know yet whether I can start this python script directly in my home assistant installation or wether I'll need to install it with the VM as is described in the refereneced link. I'll probably get more familiar with home assistant first, then with Pyhton (I know other programming languages) and then try to get this information. It thus might take a while until I have the device information or can even fix the issue myself.

@ivo7B4
You can execute the script on any machine that has the Python 3 interpreter installed and is allowed to connect to your CCU.

@danielperna84
Thank you, I've just posted these 4 files here.
I hope this helps. Please let me know if those would not be the right files.
Thank you very much for your support and your explanations.
Please apologyze as the following is a very basic question but I just don't find any information that explains the difference:
From the documentation in https://www.home-assistant.io/integrations/homematic/ i get to this GitHub: https://github.com/home-assistant/core/tree/dev/homeassistant/components/homematic
Here I get to this github: https://github.com/danielperna84/pyhomematic
Are these the same or two different? If they are different, is there also a description on how to install/configure phyhomematic?
Or does one include the other?
Thank you!

Closing this issue, as all devices should be working with the new integration.


typeahead doesn't work with [formControl]

When using reactive forms, it is possible to bind typeahead's value to a formGroup's control with formControlName attribute, but not to a standalone control with [formControl] attribute. If you attempt to set [formControl] attribute you get an error:
Can't bind to 'typeahead' since it isn't a known property of 'input'.

it should be possible https://github.com/valor-software/ng2-bootstrap/blob/development/src/typeahead/typeahead.directive.ts#L23
are you sure you have imported TypeaheadModule.forRoot() like described in docs?

I'm sure. I just confirmed it by creating a fresh angular-cli project. Installed bootstrap and ng2-bootstrap.
app.module.ts:
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { ReactiveFormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import { TypeaheadModule } from 'ng2-bootstrap/typeahead';

import { AppComponent } from './app.component';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    ReactiveFormsModule,
    HttpModule,
    TypeaheadModule.forRoot()
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

app.component.ts
import { Component } from '@angular/core';
import { FormControl, FormGroup } from '@angular/forms'

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})
export class AppComponent {
  public myControl: FormControl = new FormControl();
  public myForm: FormGroup = new FormGroup({ 'myControl': this.myControl });
  public myOptions: string[] = ['a', 'b', 'c'];
}

app.component.html
<div>
  <input [formControl]="myControl" [typeahead]="myOptions" typeaheadOptionsLimit="7" typeaheadMinLength="0" placeholder="Typeahead inside a form"
    class="form-control">
</div>
<!--<form [formGroup]="myForm">
  <input formControlName="myControl" [typeahead]="myOptions" typeaheadOptionsLimit="7" typeaheadMinLength="0" placeholder="Typeahead inside a form"
    class="form-control">
</form>-->

This gives the error:
Can't bind to 'typeahead' since it isn't a known property of 'input'.
However, if you delete the typeahead input and uncomment the form, it works just fine.
Is that line of yours missing the [typeahead][formControl] entry?

please try v1.3.3

Fixed. Thank you very much!


🐛 Bug Report: Cannot read properties of null (reading '_location') issue on unit tests after upgrade to v1.8.3

📜 Description
I got some weird unit tests issue after upgrade backstage from 1.5.1 to 1.8.3. I followed the instruction and upgrade helper to do this.
The error happens when I run yarn test:all, and my own backend plugin router.test.ts can't pass the unit tests. I followed the approach from backstage, which is to use express and supertest to mock the api call. (eg: https://github.com/backstage/backstage/blob/master/plugins/scaffolder-backend/src/service/router.test.ts#L180)
👍 Expected behavior
It should pass the unit tests like before as I didn't change any code except the upgrading part and dependency versions
👎 Actual Behavior with Screenshots
Here is the error stack for the error of router.test.ts:
TypeError: Cannot read properties of null (reading '_location')

      at Window.get location [as location] (../../../node_modules/jsdom/lib/jsdom/browser/Window.js:376:79)
      at getRequestCookies (../../../node_modules/msw/src/utils/request/getRequestCookies.ts:31:14)
      at setRequestCookies (../../../node_modules/msw/src/utils/request/parseIsomorphicRequest.ts:17:26)
      at parseIsomorphicRequest (../../../node_modules/msw/src/utils/getResponse.ts:32:4)
      at NodeClientRequest.resolver (../../../node_modules/msw/src/node/createSetupServer.ts:65:11)
      at NodeClientRequest.<anonymous> (../../../node_modules/@mswjs/interceptors/src/interceptors/ClientRequest/NodeClientRequest.ts:130:28)
      at step (../../../node_modules/@mswjs/interceptors/lib/interceptors/ClientRequest/NodeClientRequest.js:48:23)
      at Object.next (../../../node_modules/@mswjs/interceptors/lib/interceptors/ClientRequest/NodeClientRequest.js:29:53)
      at ../../../node_modules/@mswjs/interceptors/lib/interceptors/ClientRequest/NodeClientRequest.js:23:71
      at Object.<anonymous>.__awaiter (../../../node_modules/@mswjs/interceptors/lib/interceptors/ClientRequest/NodeClientRequest.js:19:12)
      at ../../../node_modules/@mswjs/interceptors/src/interceptors/ClientRequest/NodeClientRequest.ts:130:11
      at Object.<anonymous>.exports.until (../../../node_modules/@open-draft/until/lib/until.js:10:28)
      at NodeClientRequest.Object.<anonymous>.NodeClientRequest.end (../../../node_modules/@mswjs/interceptors/src/interceptors/ClientRequest/NodeClientRequest.ts:130:5)
      at Test.end [as _end] (../../../node_modules/superagent/src/node/index.js:1261:9)
      at Test._end [as end] (../../../node_modules/superagent/src/node/index.js:987:8)
      at Test.end (../../../node_modules/supertest/lib/test.js:118:11)
      at end (../../../node_modules/superagent/src/request-base.js:285:12)
      at Test.Object.<anonymous>.RequestBase.then (../../../node_modules/superagent/src/request-base.js:267:31)

The weird thing is  that when I run yarn test:All most time it happens in one backend plugin, but sometimes another backend plugin also has this issue. Occationally the test can pass.
👟 Reproduction steps
No idea how to reproduce it as we do have a bunch of own plugins.
📃 Provide the context for the Bug.
Seems the issue maybe from the race condition of jest and supertest. So I modified the test:all to use --testNamePattern to only run those particular router test suits then run the rest unit tests.
...
"test:all": "yarn test:all:router && yarn test:all:non-router",
"test:all:router": "backstage-cli repo test --coverage --testNamePattern=RouterTest",
"test:all:non-router": "backstage-cli repo test --coverage --testNamePattern='^(?!.*RouterTest).*$' --testPathIgnorePatterns=packages/componenttest",
...

It's working now but I think it's just a temporary solution
🖥 Your Environment
node: v16.16.0
yarn: 1.22.15
cli:  0.21.1 (installed)
backstage:  1.8.3

Dependencies:
  @backstage/app-defaults                                  1.0.8
  @backstage/backend-common                                0.15.2, 0.16.0
  @backstage/backend-plugin-api                            0.1.4
  @backstage/backend-tasks                                 0.3.7
  @backstage/catalog-client                                1.1.2
  @backstage/catalog-model                                 1.1.3
  @backstage/cli-common                                    0.1.10
  @backstage/cli                                           0.21.1
  @backstage/config-loader                                 1.1.6
  @backstage/config                                        1.0.4
  @backstage/core-app-api                                  1.2.0
  @backstage/core-components                               0.12.0
  @backstage/core-plugin-api                               1.1.0
  @backstage/dev-utils                                     1.0.8
  @backstage/errors                                        1.1.3
  @backstage/integration-react                             1.1.6
  @backstage/integration                                   1.4.0
  @backstage/plugin-api-docs                               0.8.11
  @backstage/plugin-app-backend                            0.3.38
  @backstage/plugin-auth-backend                           0.17.1
  @backstage/plugin-auth-node                              0.2.7
  @backstage/plugin-badges-backend                         0.1.32
  @backstage/plugin-badges                                 0.2.35
  @backstage/plugin-catalog-backend-module-msgraph         0.4.4
  @backstage/plugin-catalog-backend                        1.5.1
  @backstage/plugin-catalog-common                         1.0.8
  @backstage/plugin-catalog-graph                          0.2.23
  @backstage/plugin-catalog-import                         0.9.1
  @backstage/plugin-catalog-node                           1.2.1
  @backstage/plugin-catalog-react                          1.2.1
  @backstage/plugin-catalog                                1.6.1
  @backstage/plugin-explore-react                          0.0.23
  @backstage/plugin-explore                                0.3.42
  @backstage/plugin-github-actions                         0.5.11
  @backstage/plugin-jenkins-backend                        0.1.28
  @backstage/plugin-jenkins-common                         0.1.10
  @backstage/plugin-jenkins                                0.7.10
  @backstage/plugin-kubernetes-backend                     0.8.0
  @backstage/plugin-kubernetes-common                      0.4.4
  @backstage/plugin-kubernetes                             0.7.4
  @backstage/plugin-org                                    0.6.1
  @backstage/plugin-permission-common                      0.7.1
  @backstage/plugin-permission-node                        0.7.1
  @backstage/plugin-permission-react                       0.4.7
  @backstage/plugin-proxy-backend                          0.2.32
  @backstage/plugin-scaffolder-backend-module-cookiecutter 0.2.13
  @backstage/plugin-scaffolder-backend                     1.8.0
  @backstage/plugin-scaffolder-common                      1.2.2
  @backstage/plugin-scaffolder                             1.8.0
  @backstage/plugin-search-backend-module-pg               0.4.2
  @backstage/plugin-search-backend-node                    1.0.4
  @backstage/plugin-search-backend                         1.1.1
  @backstage/plugin-search-common                          1.1.1
  @backstage/plugin-search-react                           1.2.1
  @backstage/plugin-search                                 1.0.4
  @backstage/plugin-tech-radar                             0.5.18
  @backstage/plugin-techdocs-backend                       1.4.1
  @backstage/plugin-techdocs-module-addons-contrib         1.0.6
  @backstage/plugin-techdocs-node                          1.4.2
  @backstage/plugin-techdocs-react                         1.0.6
  @backstage/plugin-techdocs                               1.4.0
  @backstage/plugin-user-settings                          0.5.1
  @backstage/release-manifests                             0.0.7
  @backstage/test-utils                                    1.2.2
  @backstage/theme                                         0.2.16
  @backstage/types                                         1.0.1
  @backstage/version-bridge                                1.0.2

And I use "supertest": "^6.3.3" and<EMAIL_ADDRESS>from<EMAIL_ADDRESS>👀 Have you spent some time to check if this bug has been raised before?

[X] I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

Are you willing to submit PR?
Yes I am willing to submit a PR!

Sorry to hear that you're having trouble. From the stacktrace this looks suspiciously "frontend" with jsdom and accessing of location from window. Is there possibly a mix in your tests that can be causing trouble?

Sorry to hear that you're having trouble. From the stacktrace this looks suspiciously "frontend" with jsdom and accessing of location from window. Is there possibly a mix in your tests that can be causing trouble?

Hi @jhaals , thanks for the reply. Yeah it's weird.
And I feel there shouldn't be a mix in the test. Following is the unit test of one router:
import { ConfigReader } from '@backstage/config';
import express from 'express';
import request from 'supertest';
import * as snykReport from '../snyk/report';

jest.mock('../snyk/report');
import { createRouter } from './router';

describe('createRouter', () => {
  let app: express.Express;

  beforeAll(async () => {
    const GROUP_ID = 'test-group-id';
    const TOKEN = 'test-token';
    const baseUrl = 'https://localhost:8080';
    const uiBaseUrl = 'https://localhost:80';
    const config = new ConfigReader({
      twg: {
        snyk: {
          baseUrl,
          uiBaseUrl,
          token: TOKEN,
          groupId: GROUP_ID,
        },
      },
    });

    const router = await createRouter({
      logger: getVoidLogger(),
      config,
    });
    app = express().use(router);
  });

  beforeEach(() => {
    jest.resetAllMocks();
  });

  describe('RouterTest', () => {
    describe('GET /snyk/:componentName/report-url', () => {
      it('return response as 200 status', async () => {
        jest.spyOn(snykReport, 'getReportUrl').mockResolvedValue('report-url');
        const response = await request(app).get('/snyk/abc/report-url');
        expect(response.status).toEqual(200);
        expect(response.body).toEqual({ url: 'report-url' });
      });
    });
  });
});```
If you test it individually via `backstage-cli repo test` it's always fine. Tho when I use `backstage-cli repo test --coverage` to test all unit tests, these our own `router.test.ts` test suits MAYBE happen the issues above.

What is the role set to in the package.json of the failing test's package?

What is the role set to in the package.json of the failing test's package?

It's backend-plugin

I'm feeling this might be related to MSW teardown, perhaps MSW is still active an hooked into the request path when re-using the Jest workers for followup tests?
Are you using the setupRequestMockHandlers(server) utility from @backstage/backend-test-utils or otherwise calling server.close() after the tests are done in all places where you use MSW?

I use setupRequestMockHandlers from @backstage/test-utils and its version is 1.2.3


feat: Issue 4

Describe your changes
Please include a summary of the change, a relevant motivation and context.
https://github.com/AxisCommunications/go-dpop/issues/4
Added:
-utils.go
-utils_test.go
Includes a HashEquals function which takes an input and output string and a possible user-determined crypto.Hash function (default is SHA256 according to DPoP standard) and determines equality.
Updated:
-errors.go
Utility error functions to make life easier for debugging and housekeeping
Code quality attempted to match library standard. If housekeeping is needed send back with clarifying statements
Issue ticket number and link
Attempt to fix https://github.com/AxisCommunications/go-dpop/issues/4 (Issue 4)
Checklist before requesting a review

[X] I have performed a self-review of my own code
[X] I have verified that the code builds perfectly fine on my local system
[X] I have added tests that prove my fix is effective or that my feature works
[X] I have commented my code, particularly in hard-to-understand areas
[X] I have verified that my code follows the style already available in the repository
[?] I have made corresponding changes to the documentation

Thank you very much for your contribution!
This PR misses the mark a little bit. What we really need is to break out the actual hashing to a function that can be reused. The PR does this, but in the HashEquals method. It would be helpful if the hashing itself was to be its own method, with the equals function may still be there but make it call on the Hash-function.

This is almost complete, I don't have access to a computer and can't check coverage.
Just make sure that coverage is complete and we'll look at merging this.

Not sure if there is a programmatic way to see coverage in the repo/ide atm. I think that covers everything though. I updated the validate function, since I felt some of the changes would miss the original target of making a default hash function for users..


Correction for raw affiliation INRA, UMR AMAP, F-3400 Montpellier, France; INRA, UMR1092, Laboratoire d’Étude des Ressources Forêt-Bois (LERFoB), Centre INRA de Nancy, F-54280 Champenoux, France

Correction needed for raw affiliation INRA, UMR AMAP, F-3400 Montpellier, France; INRA, UMR1092, Laboratoire d’Étude des Ressources Forêt-Bois (LERFoB), Centre INRA de Nancy, F-54280 Champenoux, France
raw_affiliation_name: INRA, UMR AMAP, F-3400 Montpellier, France; INRA, UMR1092, Laboratoire d’Étude des Ressources Forêt-Bois (LERFoB), Centre INRA de Nancy, F-54280 Champenoux, France
new_rors: ;020nks034
previous_rors:
works_examples: W2068342111
contact: 4ec6bd9ffec9a5207cd3b67bd7b33665:3fecdb68f2870bd27542d3254e0afd55df0e @ inrae.fr

This issue was accepted and ingested by the OpenAlex team on 2024-11-18. The new affiliations should be visible within the next 7 days.


Crash while creating world

Hi, i got the same issue than "jeviuss " : https://github.com/aidancbrady/Mekanism/issues/3152
And u answered : "Fixed in dev :)" so, i downloaded <IP_ADDRESS>7 for 1.7.10 version.
And i got again the issue.What i need to do then ?
Sorry for my bad english.

The development branch has not yet been pushed to master.  The issue has been fixed, don't worry- expect a release soon.

Ok, thank you very much.Waiting the release for my server :)


Newlines in messages bodies not rendered

It seems like messages that include newlines are not rendered correctly in the UI.
Message as sent from Studio

As shown on Dev Phone

In this case the message is correctly shown on multiple lines in the messaging app on my phone so I think this is a bug in dev-phone.
Test Cases
Single newline
The following should appear with newlines for inbound and outbound sms.
press 1 for sales
press 2 for customer service

Multiple newlines
Asa sender and recipient of a text message, I expect that all newlines in the middle are preserved.
scroll to the bottom

Press Y to opt-in

The TextArea Component in Paste might be helpful here?


[fix][webmail] imap login failed on mail sort

Coverage decreased (-31.5%) to 52.615% when pulling d9d67ffeae6d7610aca2f99898c3a2c7ffbfd5cf on fixup2-webmail-sort into dc177f212100bcdc1ff700f2e097e4aa1d690a70 on master.


Use SQS => Lambda instead of dispatcher

to: @ryandeivert
cc: @airbnb/binaryalert-maintainers
resolves: #75
resolves: #126
Background
AWS finally added SQS as a Lambda event source!! Lambda will automatically poll the queue, invoke the target function, and delete the message once processed successfully.
This allows to get rid of the dispatcher Lambda function completely and simplify lots of other logic.
Changes

Remove the dispatcher Lambda function
Invoke the analyzer and the downloader via SQS events

Testing

Deployed to a test account both with and without the downloader

Coverage decreased (-0.5%) to 92.042% when pulling f918fdfc36c0741eaea03baaca7dceb8c6013724 on austin-delete-dispatcher into 6dfcaaf25c2c411176b048cb05a7a75f155e13c2 on master.


E5108 Attempt to call method 'byte'

Describe the bug
After the last update the following error happens when opening a .clj file:
Error detected while processing FileType Autocommands for "*":
E5108: Error executing lua vim.lua:372: attempt to call method 'byte' (a nil value)
stack traceback:
        vim.lua:372: in function 'region'
        ...ar/neovim/0.6.1/share/nvim/runtime/lua/vim/highlight.lua:35: in function 'range'
        ...rt/.vim/plugged/nvim-ts-rainbow/lua/rainbow/internal.lua:62: in function 'update_range'
        ...rt/.vim/plugged/nvim-ts-rainbow/lua/rainbow/internal.lua:85: in function 'fn'
        ...1/share/nvim/runtime/lua/vim/treesitter/languagetree.lua:194: in function 'for_each_tree'
        ...rt/.vim/plugged/nvim-ts-rainbow/lua/rainbow/internal.lua:84: in function 'full_update'
        ...rt/.vim/plugged/nvim-ts-rainbow/lua/rainbow/internal.lua:147: in function 'attach'
        .../plugged/nvim-treesitter/lua/nvim-treesitter/configs.lua:459: in function 'attach_module'
        .../plugged/nvim-treesitter/lua/nvim-treesitter/configs.lua:482: in function 'reattach_module'
        [string ":lua"]:1: in main chunk

Steps to reproduce
Open a .clj file with the latest version of this plugin and treesitter active.

Same. My nvim is v0.6.1 the nightly version.

Same

Same!!!

I have updated to latest commit but still see this error

I did

If you use neovim nightly you need to update neovim

I am on the latest version of nightly, i literally compiled it now and i am still getting this error.
Can someone please suggest a fix that works?

I do not use neovim nightly, I am using neovim 0.6

@Chaitanyabsprip can you open another issue


Add test to check Buildbot master config

A few things in this PR (in separate commits):

Refactor the Buildbot states to standard paths, use more Jinja templating
Switch the Buildbot master service to not restart automatically. It will need to be restarted manually if there are configuration changes. This should alleviate the need for state.apply.
Use the buildbot checkconfig command to confirm the syntax of the Buildbot master configuration, and run it on Travis. This can be run via ./test.py sls.buildbot.master, but note that this won't work locally - it needs to be run in an environment where the Buildbot master states have run, i.e. Travis or Vagrant.

cc @larsbergstrom @edunham

This change is

@bors-servo r+
Thank you! This looks great!

:pushpin: Commit d5f50b0 has been approved by edunham

:hourglass: Testing commit d5f50b0 with merge 566c5ba...

This is awesome - great work @aneeshusa!

:sunny: Test successful - travis


Aliasfalse alerts invasions baro darvo

[x] Alerts
[x] Invasion
[x] Baro
[x] Darvo
[x] Sorties
[x] Syndicates
[x] Conclave
[x] Flash Deals
[x] Fissures

@nspacestd if you want to take a look from this side before I release this and  add the version to hubot-warframe