Introduce Class generic

Make sure these boxes are checked before submitting your issue - thank you!
(If your issue is neither a both bug nor a request, please write in a free style)

[x] https://esdoc.org/manual/feature.html
[x] https://esdoc.org/manual/config.html
[x] https://esdoc.org/manual/tags.html
[x] https://esdoc.org/manual/api.html
[x] https://esdoc.org/manual/faq.html

Short summary of your issue
I would like to define a type as a type of a certain class. Couldn't we make a new generic with Class
Here is an example :
class Car {
     /**
      * @type {number}
      */
      size;

     /**
      * @type {number}
      */
      seats;

     /**
      * @type {number}
      */
      driveWheelsCount;
}

class Crossover extends Car {
    size = 5;
    seats= 5;
    driveWheelsCount = 2;
}

class Limo extends Car {
    size = 8;
    seats= 6;
    driveWheelsCount = 2;
}

class Bus extends Car {
    size = 12;
    seats= 30;
    driveWheelsCount = 2;
}

class CarBuilder {
    /**
     * @param {Class<Car>} CarType - the type of car to build
     */
    static build(CarType) {
        return new CarType();
    }
}

const bus = CarBuilder.build(Bus);

In CarBuilder, i would like to express that CarType is a type of Car (Class<Car>).
How would you do that ?

I think what you are looking for is
@param {Car} CarType

Hi,
Thanks for your anwswer !
@param {Car} CarType
Hmm, not exactly because i want to express that CarType is a Class type param and not an instance of Car. With CarType, i will create an instance of Car:
return new CarType();

ES6 classes are just syntactic sugar on top of classic constructor functions.

What you probably want is:
class CarBuilder {
  /**
   * @param {function} carConstructor - class definition/constructor of car to build
   */
  static build(carConstructor) {
    return new carConstructor();
  }
}


support marking of GenBank flat files in content stream

GenBank flat files https://github.com/epam/NGB/issues/441 and https://www.ncbi.nlm.nih.gov/genbank/samplerecord/ are used to represent GenBank records.
The flat files begins with a line starting with LOCUS and ends with a line that only has // on it.
GenBank publishes gzipped data packages with a bunch of these flat files in them (see https://github.com/globalbioticinteractions/globalbioticinteractions/issues/904).
Suggested feature would help do something like:
preston ls\
 | preston genbank-alias-stream

which would produce some stream of statements like:
<https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nuccore&id=U49845&rettype=gb&retmode=text> <...hasVersion> <line:gz:hash://sha256/abcdef1234...!/some.gz!/L345-L456>

where
https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nuccore&id=U49845&rettype=gb&retmode=text

is a url to a dynamic ncbi web service query that (may) retrieves a GenBank flat file by accession id, and line:...!/L345-L456 is the exact location of an associated accession record in some content.

e.g.,
<https://ftp.ncbi.nlm.nih.gov/genbank/gbpln363.seq.gz> <http://purl.org/pav/hasVersion> <hash://sha256/7e23b7cc1d00f9c9c305e2d88bb7331bcd34fe7c8cee0ac2127bf7e5643512e7> <urn:uuid:7846a965-bd87-461d-9d60-056452867ff1> .

contains a (giant) record associated with accession LR828119 -
preston cat 'line:gz:hash://sha256/7e23b7cc1d00f9c9c305e2d88bb7331bcd34fe7c8cee0ac2127bf7e5643512e7!/L11-L9943512'\
 | head

LOCUS       LR828119           592249714 bp    DNA     linear   PLN 28-JUL-2020
DEFINITION  Hordeum vulgare subsp. vulgare genome assembly, chromosome: 5H.
ACCESSION   LR828119
VERSION     LR828119.1
DBLINK      BioProject: PRJEB35952
            BioSample: SAMEA6435256
            Sequence Read Archive: ERR3808563, ERR3808564, ERR3808565,
            ERR3808566, ERR3808567, ERR3808568, ERR3808569, ERR3808570,
            ERR3808571, ERR3808572, ERR3808573, ERR3808574, ERR3808575,
            ERR3808576, ERR3808577, ERR3808578, ERR3808579, ERR3808580,

in comparing the results from the webservice and associated data package,
$ preston cat 'line:gz:hash://sha256/510ea17a974eaf35504ca24ad57e9be708196d38189353487eb312426ed9f0b4!/L11-L58' > AB000001.gb
$ curl --silent "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nuccore&id=AB000001&rettype=gb&retmode=text" > AB000001.gb.2
$ diff AB000001.gb AB000001.gb.2
48c48,49
< //
\ No newline at end of file
---
> //
>

so, it appears that the files only differ by a newline character. This may be a side effect of implementing the line syntax for preston. (fyi @mielliott) .
Which is confirmed by the matching sha256 signatures after manually adding a \n character -
$ cat <(preston cat 'line:gz:hash://sha256/510ea17a974eaf35504ca24ad57e9be708196d38189353487eb312426ed9f0b4!/L11-L58') <(echo -e "\n") | sha256sum
69c0fe025c8e088e714c20af09e4c68b1c681abfa6610b060006c889008cc601  -
$ cat AB000001.gb.2 | sha256sum
69c0fe025c8e088e714c20af09e4c68b1c681abfa6610b060006c889008cc601  -

This means that we've created an citable, offline-enabled, version of the
https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nuccore&id=AB000001&rettype=gb&retmode=text

functionality.

@mielliott thanks for sharing your notes. Any intuitions on desired intuitive behavior?

Well, the fact that preston cat [alias] behaves differently from `preston cat [hash]' is definitely naughty.
For the line: stuff, I suppose that depends on whether \n marks the beginning of the line or the end of one. The head command treats it as the end of a line:
$ echo "haha" | head -n1 | wc -c
5
$ echo -n "haha" | head -n1 | wc -c
4

Not sure if there's an official stance on whether \n is the beginning or end of a line. Maybe Google knows

So far the chat bots are in favor of \n being the end of a line, not the beginning
https://www.perplexity.ai/search/aeb7961b-5698-465c-b1c4-a0e05c3fff48

The character sequence "\n" represents a newline character, which is used to signify the end of a line of text and the start of a new one[1][2]. It is always used at the end of a line of text to indicate that the next character(s) should be printed on a new line. Therefore, "\n" is the end of a line, not the beginning[3][2].
In programming, the newline character is often used to format text output, and it is usually represented by the escape sequence "\n"[3][2]. In Python, for example, the print() function automatically adds a newline character at the end of its output, but you can also use the "\n" escape sequence to manually insert a newline character[3][2].
It is worth noting that the "^" and "$" symbols are sometimes used to denote the beginning and end of a line, respectively, in regular expressions and some programming languages[4][5]. However, this is a different concept from the newline character represented by "\n".
Citations:
[1] https://en.wikipedia.org/wiki/Newline
[2] https://www.idtech.com/blog/what-is-n-in-python
[3] https://www.freecodecamp.org/news/python-new-line-and-how-to-python-print-without-a-newline/
[4] https://unix.stackexchange.com/questions/510770/when-and-why-did-and-take-on-their-meanings-of-beginning-of-line-and-end
[5] https://www.regular-expressions.info/anchors.html
By Perplexity at https://www.perplexity.ai/search/aeb7961b-5698-465c-b1c4-a0e05c3fff48

Sorry, I meant that the question is about whether "\n is part of the line" vs. "\n is a separator between lines". I don't think anyone's advocating for treating \n as the beginning of a line.

Thanks for the digging and generating texts using general language models (how do you cite these models again?).
Sounds like \n (if present) is considered to be part of the line.
Wanna take a stab at implementing this? Or are you still busy writing your proposal?

I'd cite the conversation with ChatGPT as a "personal correspondence".
Sure, I can take a look at it, I'll holler if something comes up though
Just to make sure we're on the same page @jhpoelen - preston's current behavior with line: is to remove the trailing endline, and this is causing records plucked from ncbi's web service outputs to have a different hash than their GenBank-packaged flat file counterparts? So having preston line: retrievals include the trailing \n should fix this issue, and it's a win-win because we'd prefer that preston doesn't strip off the \n anyway
Note https://github.com/bio-guoda/preston/issues/128#issuecomment-1110034753 might explain any deja vu

Yes, line: retrievals including \n sounds like a good ol' win-win. Thanks for articulating the desired / current behavior.

With current additions, the following genbank "flat file" -
LOCUS       KT156259                 329 bp    DNA     linear   PLN 31-MAY-2018
DEFINITION  [Chrysosporium] lobatum strain CBS 624.79 elongation factor 3 gene,
            partial cds.
ACCESSION   KT156259
VERSION     KT156259.1
KEYWORDS    .
SOURCE      [Chrysosporium] lobatum
  ORGANISM  [Chrysosporium] lobatum
            Eukaryota; Fungi; Dikarya; Ascomycota; Pezizomycotina;
            Eurotiomycetes; Eurotiomycetidae; Onygenales; Onygenaceae;
            Chrysosporium.
REFERENCE   1  (bases 1 to 329)
  AUTHORS   Stielow,J., Dukik,K., Goeker,M. and deHoog,G.
  TITLE     Phylogenetic revision of the order Onygenales
  JOURNAL   Unpublished
REFERENCE   2  (bases 1 to 329)
  AUTHORS   Stielow,J., Dukik,K., Goeker,M. and deHoog,G.
  TITLE     Direct Submission
  JOURNAL   Submitted (03-APR-2015) Medical Mycology and Extremophile Fungi,
            CBS-KNAW Fungal Biodiversity Centre, Uppsalalaan 8, Utrecht,
            Utrecht 3584 CT, The Netherlands
COMMENT     ##Assembly-Data-START##
            Assembly Method       :: Biolomics v. 7
            Coverage              :: 1X
            Sequencing Technology :: Sanger dideoxy sequencing
            ##Assembly-Data-END##
FEATURES             Location/Qualifiers
     source          1..329
                     /organism="[Chrysosporium] lobatum"
                     /mol_type="genomic DNA"
                     /strain="CBS 624.79"
                     /isolation_source="skin crust; Gallus gallus"
                     /culture_collection="CBS:624.79"
                     /db_xref="taxon:85844"
                     /country="Romania"
                     /collected_by="I. Alteras"
     mRNA            <1..>329
                     /product="elongation factor 3"
     CDS             <1..>329
                     /codon_start=1
                     /product="elongation factor 3"
                     /protein_id="AMQ77042.1"
                     /translation="KMKLALCRAVFEKPDILLLDEPTNHMDVKNVAWLEQYLINSPCT
                     SIIVSHDSKFLNNVIQHVIHYERFKLRRYRGNLTEFARRLPSARSYFELGASELEFKF
                     PEPGFLDG"
ORIGIN
        1 aagatgaagc tcgctctctg ccgtgctgtg tttgagaagc ccgatatctt gcttcttgac
       61 gagcccacca accacatgga cgtgaagaac gtcgcctggt tggagcagta tcttatcaac
      121 tctccttgca cttccatcat cgtctcccac gacagcaagt tcttgaacaa cgtcatccag
      181 cacgttattc attacgagcg cttcaagctc cgccgttacc gcggtaactt gaccgagttc
      241 gccagacgtc tcccatccgc tcgctcgtac tttgaactcg gtgcctctga gctcgagttc
      301 aagttccctg agcccggttt cctcgacgg
//

is now exposed as -
{
  "accession": "KT156259",
  "definition": "[Chrysosporium] lobatum strain CBS 624.79 elongation factor 3 gene, partial cds.",
  "organism": "[Chrysosporium] lobatum",
  "db_xref": "taxon:85844",
  "country": "Romania",
  "http://www.w3.org/ns/prov#wasDerivedFrom": "line:gz:hash://sha256/8efca32f6aa1837303c1d8ea409eef8f0837ca743bddd02001bd1819d4504ed0!/L11-L63",
  "http://www.w3.org/1999/02/22-rdf-syntax-ns#type": "genbank-flatfile"
}

First version of gb-stream included in v0.6.4

Also see https://github.com/jhpoelen/obi-genbank .


Linking Items Not Working? (Sukiyaki 2.3 JP)

Hi! So I added all the linking items there are in the game (The Sushi Pillow for Sushijiba, the Tempura Pouch for Tenkoma, the Ganso Bell for Jibanyan S, the Honke Pouch for Komasan S, the Shin'uchi Pouch for Komajiro S, the Puni Egg for Tamago no Kimi, the Punipuni Orb for Puninyan and Punikoma, the Red Cat Membership Card and White Dog Membership Card for B Jibanyan, B Komasan, and B USApyon, and the Oomaru Momoman for the Sangokushi Yo-Kai.) but whenever I go the the places said Yo-Kai should appear, they don't show up. Please help me figure out why? I really want to get these Yo-Kai but I can't link the games together.

(related issues: #7 and #19)

Please help me figure out why?

To make them appear in the game, you need another steps.
DLC Yo-kai
To befriend Tamago no Kimi, Puninyan, Punikoma, Sushijiba, Tenkoma, and USAdofu, you need to have the title 0004008c00191000 installed. To make the title loaded correctly you might need to set the region and language of the console to JPN/JA. (Luma3DS will work)
Other Yo-kai (http://www.youkai-watch.jp/yw3/rendou/)
Change the values at 0x19, 0x1A of the section 1 as following:
00 00 → F0 03

(tested on Tempura, but should work on other versions)

By Section 1, does that mean the section labeled 241?

Is this the areas you are referring to? http://prntscr.com/esrk8x

No.

Ahh, I see! Thank you so much!


(Community problem) The Discord invite on the website expired

Where you get the link? We don't have Discord server anymore and the link already removed from the README.

@ultimaweapon The Discord icon is on the top-right corner of the website.

As far as I know, they don't host a website currently. You probably went to an unofficial one.
Devs, may I suggest that you add a section in the README, that you don't currently have a website?
Unless, of course, I'm wrong, and you do have a site?

We have one but it is outdated. I guess it should be better to take it down until we are ready for end-users.


Suggestion: Distribute via open upm & unity package manager

Have you considered distributing unity releases via https://openupm.com?
This way it's much easier to maintain inside unity projects via the package manager. It's minimal effort I believe, I think they have a CI for automated releases from github, so once it's setup it should be able to detect new releases automatically
I think the directory structure may need to be tweaked though. I realise it's not just a unity library of course.

i think its a good idea.but as the README.md shown, "Always use library sources instead of precompiled DLL files ( because there are platform specific #ifdefs and workarounds for unity bugs )" ,it may cause some problems.(Of course, i dont know about the details,maybe it can works well)

It's also possible to distribute via the UPM via git now. I've opened a PR to enable that.

you can now add to manifset.json "com.revenantx.litenetlib": "https://github.com/RevenantX/LiteNetLib.git?path=/LiteNetLib#upm"

FYI I have added the package available on the UPM branch to OpenUPM: https://openupm.com/packages/com.revenantx.litenetlib/
The only issue is that there is a discrepancy between the UPM package version (shown as v1.0.1-1) and the library version (v.1.1.0), as the version number in package.json was not bumped until after the v1.1.0 tag which OpenUPM uses to build the UPM package version. To avoid this going forward, package.json simply needs to have its version number updated in line with the library so that when future release Git tags are created, the UPM and library versions are in sync.
Cheers!

Actually, as it turns out, OpenUPM support isn't quite so straightforward. As the Unity .meta files only exist in the UPM branch, they don't get included in the package build OpenUPM produces, as the Git tags it uses to detect versions to build are on master.
A solution would be to tag releases on the UPM branch with a special prefix, e.g. upm-v1.1.0 to enable OpenUPM to be configured to only build releases from those tags :

https://openupm.com/packages/com.revenantx.litenetlib/?subPage=readme


Spend Hangs, Makes Other Calls Also Hang

Using an IPFS rebase node, I attempted to send some LTC to another IPFS rebase node using a spend call.
{"feeLevel":"NORMAL","memo":"","wallet":"LTC","address":"LdhW7cu46aiteq9uuSaURPWPK43Cdhh4ru","amount":2073846}

That call is still pending and waiting for a response from the go server after 30 minutes. Most other calls, like listings or exchange rates, are working normally, but attempting a purchase after that resulted in the purchase call also hanging indefinitely.

The server ignored attempts to shut it down with control C after this, though that could be do to the normal bug with trying to shut servers down.
^C16:46:17.655 [NOTICE] [main/func1] Received interrupt
16:46:17.655 [INFO] [main/func1] OpenBazaar Server shutting down...
16:46:17.656 [INFO] [client/Close] closing client (btc.blockbook.api.openbazaar.org)...
16:46:17.657 [WARNING] [client/func2] websocket disconnected: btc.blockbook.api.openbazaar.org
16:46:17.657 [WARNING] [client/guardWebsocket] reconnecting stopped websocket (btc.blockbook.api.openbazaar.org)
16:46:17.657 [INFO] [client/Close] closing client (bch.blockbook.api.openbazaar.org)...
16:46:17.657 [WARNING] [client/func2] websocket disconnected: bch.blockbook.api.openbazaar.org
16:46:17.658 [INFO] [client/Close] closing client (zec.blockbook.api.openbazaar.org)...
16:46:17.658 [WARNING] [client/func2] websocket disconnected: zec.blockbook.api.openbazaar.org
16:46:17.658 [WARNING] [client/guardWebsocket] reconnecting stopped websocket (zec.blockbook.api.openbazaar.org)
16:46:18.278 [INFO] [client/setupListeners] Connected to websocket endpoint btc.blockbook.api.openbazaar.org
16:46:18.281 [INFO] [client/setupListeners] Connected to websocket endpoint zec.blockbook.api.openbazaar.org

After killing the server and restarting it, a spend to the same 2nd server worked normally.


Finesse proof posting buttons.

@keybase/react-hackers, this is ready for review.
It makes the first step (posting to whatever service) the primary button instead of a link, and then it shows the “OK posted! Check for it!” after you've pressed the button for the first action.

@cecileboucheron, how does this look?

@keybase/react-hackers and @cecileboucheron, bump.

I'd just kill this verbose and do:
Post your proof to Facebook, and make sure the post is _public_.
WDYT?

I think a brief explanation on why might alleviate any concerns. What about:
Post your proof to Facebook. Make sure it's _public_, or we won't be able to read it.

Are we dropping the GIF?

Sure. No I would keep the GIF but some time we should make a better one...


propagate config vars to ansible inventory yaml file

if a defaults/kinds/node section has a .config.vars section it makes sense to copy it to the ansible invenotory, so that ansible scripts could use those vars
/cc @jrokeach

🙏 Number 1 use case in my mind for this is to provide a ansible_docker_host variable with the container name, to be used with the Ansible docker connection plugin
Actually if this is something that were automatically generated by containerlab, that'd be even better.
Thanks so much for the great tool!

Hi @tobbbles
If I understand the plugin purpose correctly (run commands inside containers) then I think you don't need this special variable set. The current inventory hostnames are the fully qualified container names, so you should be able to run docker commands with them

Visiting that now, that's true, however for the hostname to work we actually need to remove the ansible_host var, as here https://github.com/srl-labs/containerlab/pulls?q=is%3Apr+ansible+#issuecomment-1047270956
Would we want something to extend this config section of a node to inform containerlab to not generate teh ansible host, and instead leave just the inventory_hostname to take precedent?


Refs #26610 -- Changed CITextField's base class to TextField.

max_length isn't used by the database and shouldn't be required.
https://groups.google.com/d/topic/django-developers/jud-n1cBzdg/discussion

This line should be updated too: https://github.com/django/django/blob/master/docs/ref/contrib/postgres/fields.txt#L260

As discussed on the mailing list, this probably isn't a desired change after all.


Unable to detect scenarios hosted in root folder

Molecule scenarios are not exclusively hosted inside roles as they can span across multiple roles or apply to standalone playbooks as well.
Based on my testing it seems that current discovery logic is to look only inside roles/ folder for scenarios and ignore repositories that have molecule folder at root.
For example the discovery logic I used with pytest-molecule allowed it to discover all scenarios, regardless if they were hosted at root or deeper level. Still, that implementation is dependent on pytest one so we cannot use it here.
One good example of complex repository that has scenarios in multiple places can be seen at https://github.com/rdo-infra/ci-config/ -- that being one actively used by our team.

So currently the code branches based on the presence of galaxy.yml - if it finds it in the root folder, it assumes we're in a collection and only looks under ./roles/*/molecule/*/molecule.yml for scenarios. Otherwise it checks for the existence of ./tasks/main.yml to see if it is in a role and, if so, pulls scenarios from ./molecule/*/molecule.yml.
It's probably incorrect to assume that one or the other of those must be true. Also, there is an if/elif conditional that limits it to only supporting one or the other scenario, and not both.
There is lots of breadth for improving the discovery of scenarios.

Another discovery approach that is used by ansible-lint itself can be seen at https://github.com/ansible/ansible-lint/blob/42e682dba3fe8b358caf008cc64040555c06453c/lib/ansiblelint/utils.py#L668 -- basically it uses git to retrieve all yaml files and filters them. I suggest doing the same and looking for the official molecule/*/molecule.yml pattern inside.


Fixed word auto-correction in TextInput.js

Before:

After:

This looks good to merge.

@ide Thanks for the review. Will the website be updated automatically?

@prathamesh-sonpatki yes, once your commit is merged the website HTML will be regenerated from the JS source code.


Added explicit extra-android-support travis dependency

Still not exactly sure why Travis is not able to find certain classes in the support library. Without being able to reproduce locally this may take some testing inside a pull request.

Approved

Approved

doc-23 did it?


008: add dct:hasFormat triples

dct:hasFormat triples were left out of the 008 vocabs. Add those (they should point to the json, nt, ttl, and rdfa formats of the data) and re-serialize.

All 008 vocabs now have dct:hasFormat triples, added during serialization using uwlswd/main.py


Power consumption over the roof

Hey, on 17th of August around 9pm my HA Glow went haywire and start measuring 183 kW power consumption alp day (my daily over some is ~12 kWh).

Since then my Energy board in HA is completely wrong. From 0.31 kWh I have 0.64 kWh base consumption. From ~12 kWh a day I have 23 kWh. Anyone seen this behaviour?
INFO ESPHome 2023.8.2
INFO Reading configuration /config/esphome/home-assistant-glow.yaml...
WARNING GPIO4 is a Strapping PIN and should be avoided.
Attaching external pullup/down resistors to strapping pins can cause unexpected failures.
See https://esphome.io/guides/faq.html#why-am-i-getting-a-warning-about-strapping-pins
INFO Detected timezone 'Europe/Prague'
INFO Starting log output from home-assistant-glow.local using esphome API
INFO Successfully connected to home-assistant-glow.local
[19:33:48][I][app:102]: ESPHome version 2023.8.2 compiled on Aug 21 2023, 21:03:02
[19:33:48][I][app:104]: Project klaasnicolaas.home-assistant-glow version 3.1.0
[19:33:48][C][status_led:019]: Status LED:
[19:33:48][C][status_led:020]:   Pin: GPIO5
[19:33:48][C][wifi:543]: WiFi:
[19:33:48][C][wifi:379]:   Local MAC: 08:3A:F2:59:A0:C4
[19:33:48][C][wifi:380]:   SSID: [redacted]
[19:33:48][C][wifi:381]:   IP Address: <IP_ADDRESS>
[19:33:48][C][wifi:383]:   BSSID: [redacted]
[19:33:48][C][wifi:384]:   Hostname: 'home-assistant-glow'
[19:33:48][C][wifi:386]:   Signal strength: -75 dB ▂▄▆█
[19:33:48][C][wifi:390]:   Channel: 2
[19:33:48][C][wifi:391]:   Subnet: <IP_ADDRESS>
[19:33:48][C][wifi:392]:   Gateway: <IP_ADDRESS>
[19:33:48][C][wifi:393]:   DNS1: <IP_ADDRESS>
[19:33:48][C][wifi:394]:   DNS2: <IP_ADDRESS>
[19:33:48][C][logger:301]: Logger:
[19:33:48][C][logger:302]:   Level: DEBUG
[19:33:48][C][logger:303]:   Log Baud Rate: 115200
[19:33:48][C][logger:305]:   Hardware UART: UART0
[19:33:48][C][template.number:050]: Template Number 'Puls rate - imp/kWh'
[19:33:48][C][template.number:051]:   Optimistic: YES
[19:33:48][C][template.number:052]:   Update Interval: 60.0s
[19:33:48][C][gpio.output:010]: GPIO Binary Output:
[19:33:48][C][gpio.output:011]:   Pin: GPIO2
[19:33:48][C][gpio.output:010]: GPIO Binary Output:
[19:33:48][C][gpio.output:011]:   Pin: GPIO4
[19:33:48][C][template.text_sensor:020]: Template Sensor 'Glow - Installed version'
[19:33:48][C][template.text_sensor:020]:   Icon: 'mdi:label-outline'
[19:33:48][C][light:103]: Light 'Red'
[19:33:48][C][restart.button:017]: Restart Button 'Restart - Glow'
[19:33:48][C][version.text_sensor:021]: Version Text Sensor 'House - ESPHome Version'
[19:33:48][C][version.text_sensor:021]:   Icon: 'mdi:new-box'
[19:33:48][C][pulse_meter:067]: Pulse Meter 'House - Power Consumption'
[19:33:48][C][pulse_meter:067]:   Device Class: 'power'
[19:33:48][C][pulse_meter:067]:   State Class: 'measurement'
[19:33:48][C][pulse_meter:067]:   Unit of Measurement: 'W'
[19:33:48][C][pulse_meter:067]:   Accuracy Decimals: 0
[19:33:48][C][pulse_meter:067]:   Icon: 'mdi:flash-outline'
[19:33:48][C][pulse_meter:068]:   Pin: GPIO13
[19:33:48][C][pulse_meter:070]:   Filtering rising edges less than 13 µs apart
[19:33:48][C][pulse_meter:074]:   Assuming 0 pulses/min after not receiving a pulse for 300s
[19:33:48][C][total_daily_energy:023]: Total Daily Energy 'House - Daily Energy'
[19:33:48][C][total_daily_energy:023]:   Device Class: 'energy'
[19:33:48][C][total_daily_energy:023]:   State Class: 'total_increasing'
[19:33:48][C][total_daily_energy:023]:   Unit of Measurement: 'kWh'
[19:33:48][C][total_daily_energy:023]:   Accuracy Decimals: 3
[19:33:48][C][total_daily_energy:023]:   Icon: 'mdi:circle-slice-3'
[19:33:48][C][homeassistant.time:010]: Home Assistant Time:
[19:33:48][C][homeassistant.time:011]:   Timezone: 'CET-1CEST,M3.5.0,M10.5.0/3'
[19:33:48][C][captive_portal:088]: Captive Portal:
[19:33:48][C][web_server:161]: Web Server:
[19:33:48][C][web_server:162]:   Address: home-assistant-glow.local:80
[19:33:48][C][mdns:112]: mDNS:
[19:33:48][C][mdns:113]:   Hostname: home-assistant-glow
[19:33:48][C][ota:093]: Over-The-Air Updates:
[19:33:48][C][ota:094]:   Address: home-assistant-glow.local:3232
[19:33:48][C][api:138]: API Server:
[19:33:48][C][api:139]:   Address: home-assistant-glow.local:6053
[19:33:48][C][api:143]:   Using noise encryption: NO
[19:33:48][C][improv_serial:032]: Improv Serial:
[19:33:48][C][wifi_info:009]: WifiInfo IPAddress 'House - IP Address'
[19:33:48][C][wifi_info:009]:   Icon: 'mdi:wifi'
[19:33:48][C][wifi_info:011]: WifiInfo SSID 'House - Connected SSID'
[19:33:48][C][wifi_info:011]:   Icon: 'mdi:wifi-strength-2'
[19:33:48][C][wifi_signal.sensor:009]: WiFi Signal 'House - WiFi Signal'
[19:33:48][C][wifi_signal.sensor:009]:   Device Class: 'signal_strength'
[19:33:48][C][wifi_signal.sensor:009]:   State Class: 'measurement'
[19:33:48][C][wifi_signal.sensor:009]:   Unit of Measurement: 'dBm'
[19:33:48][C][wifi_signal.sensor:009]:   Accuracy Decimals: 0
[19:33:48][D][esp32.preferences:114]: Saving 1 preferences to flash...
[19:33:48][D][esp32.preferences:143]: Saving 1 preferences to flash: 0 cached, 1 written, 0 failed
[19:33:59][D][sensor:094]: 'House - Total Energy': Sending state 24.20400 kWh with 3 decimals of accuracy
[19:33:59][D][sensor:094]: 'House - Power Consumption': Sending state 401.73999 W with 0 decimals of accuracy
[19:33:59][D][light:036]: 'Red' Setting:
[19:33:59][D][light:047]:   State: ON
[19:33:59][D][sensor:094]: 'House - Daily Energy': Sending state 27.37893 kWh with 3 decimals of accuracy
[19:33:59][D][sensor:094]: 'House - Total Energy': Sending state 24.20600 kWh with 3 decimals of accuracy
[19:33:59][D][sensor:094]: 'House - Power Consumption': Sending state<PHONE_NUMBER>5 W with 0 decimals of accuracy
[19:33:59][D][light:036]: 'Red' Setting:
[19:33:59][D][sensor:094]: 'House - Daily Energy': Sending state 27.38229 kWh with 3 decimals of accuracy
[19:34:00][D][light:036]: 'Red' Setting:
[19:34:00][D][light:047]:   State: OFF
[19:34:00][D][light:036]: 'Red' Setting:

got the same problem

Duplicate of #301?

Did you try recalibrating the sensor to fix the issue?
Sometimes the big updates mess with the calibration but often times than not, for me, the two-sided tape that is holding the sensor on the panel starts melting and the sensor slips out of place.
I have an off-white enclosure and when the red light hits the sensor in an angle then the readings can get messy. I just had my sensor go haywire at 5 am this morning starting with 8000w readings and getting to 300,000 in a few hours with correct readings in between.

Since the sensor needs to be quite sensitive for the red light to trigger it then any bouncing light seems to make it read it twice. As has been suggested in previous issues then recalibrating and, if needed, a further filter implemented to get correct readings from the panel.

Duplicate of #301?

To be honest...I don't know. I don't know when I upgraded to 2023.8.x but yeah, could be. I will go over the the #301 again to try understand it. But from what I get is more ESPHome issue then the HA Glow.

Did you try recalibrating the sensor to fix the issue? Sometimes the big updates mess with the calibration but often times than not, for me, the two-sided tape that is holding the sensor on the panel starts melting and the sensor slips out of place. I have another piece of tape going accross but it seems that the outer case is held in place but it slowly slides underneath where the enclosure meets.
I have an off-white enclosure and when the red light hits the sensor at an angle then the readings can get messy. I just had my sensor go haywire at 5 am this morning starting with 8000w readings and getting to 300,000 in a few hours with correct readings in between.
Since the sensor needs to be quite sensitive for the red light to trigger it then any bouncing light seems to make it read it twice. As has been suggested in previous issues then recalibrating and, if needed, a further filter implemented to get correct readings from the panel.
In case this is important - HASS 2023.8.4 and ESPhome 2023.8.2

I did not. I will try reposition the sensor over the LED. I have checked it visually and it seemed fine - green led on electrometer flashed and immediatelly the red one on the HA Glow flashed too. So I reckoned that the measuring is working. But getting the flashing twice as it move slightly down could be the problem.
Is there any more recalibration possible? Or just repositioning?
Thank you!

@Proche72 Seems like its been running smooth ever since? If so then please close the topic with a positive resolution :)
Have a happy friday!

its not acurate when using the delay, so it is not fixed, why wont you see that many people have this problem it is a software change somewhere

Then you should rather raise this with ESPHome and not here, if it is a software problem 😉

@Proche72 Seems like its been running smooth ever since? If so then please close the topic with a positive resolution :) Have a happy friday!

Sorry, I was nit at home until today.
Repositioning and recalibrating (I chanfe the settings on it) helped. Now I am getting normal values in consumption (500W). Hopefully it is correct.

Just recap with solution:
Repositioning - the adhesive I used was foamy and it moved bit down on the foam.
Recalibrating - change the settings on the dial by one lower


Angular usage

I'm trying to use datebook but i can't figure it out how to do it in Angular.
I get the error that the library isn't compiled correctly and i should add it to files or include in tsconfig.app.json.
Any solution ?

@adamalexandru4 there was an issue where the build was not including the *.ts files in the dist/ folder. It's been fixed as of v6.3.1 and will probably fix your issue.

@adamalexandru4 there was an issue where the build was not including the *.ts files in the dist/ folder. It's been fixed as of v6.3.1 and will probably fix your issue.


Add 'GHOSTED' status

The following changes have been made:

ReminderCommand: Previously, the ReminderCommand merely took into consideration internship applications with application date within 7 days, now it can take into account both interview and internship application dates.

Addition of 'GHOSTED' status to indicate internship applications that are have been inactive for a while + display the last stage that an internship application failed at (APPLIED/ INTERVIEW/ OFFERED) before it's status was changed to GHOSTED/ REJECTED

Looks good, thanks!


Add RSS validation to testing script

Short description of the problem/feature request
Adding RSS validator to the testing script so that the code is also tested.
Expected behavior
The code that generates the RSS feed in the testing script should also execute a test of the RSS validator.
Affected systems (if relevant)
All systems

Resolved.


Jumbo blob support

Single block limit goes up to 4000MB . This has been tested without changing existing code.
Single datalake append limit goes up to 4000MB. Chunk size in datalake has been parametrized.

Opened https://github.com/Azure/azure-sdk-for-python/issues/11044 as testing revealed that streaming single block is capped by python's http client.

It looks great! Thanks for answering my questions!
Approved, but please don't merge it until we know what happended to the pylint(I know it's not because of this pr) ^_^


Module not found

In the model.data.init.py file, the import line "from inducing_layer_dgp.torch.data.dataloader import dataloader" creates ModuleNotFoundError on inducing_layer_dgp.

Thanks for mentioning that. One file was missing. Solved


Can it be used for higher-order catastrophe integrals?

The program is super great!
I would like to know if extending the phase coefficients can make z exponentially -2.
Or it can realize double integrals, which are useful for higher-order catastrophe integrals， such as elliptic umbilic canonical integrals and hyperbolic umbilic canonical integrals.

Thank you for the kind words!
I will answer each question one by one:

I'm not sure what you mean by "make z exponentially -2"? Can you explain?
Double integrals are not something we are thinking about currently - it's too hard. You can of course evaluate integrals with separable phase g(x,y) = X(x) + Y(y) easily already - but I expect what you have in mind is trickier than this.
We are working on an extension to rational phase functions, which could be applied to the single integral form of the Umbrillic catastrophes. This is quite tricky, though, and it will probably not be for another year at least... so don't wait on us!

Andrew

Dear Andrew,

I'm sorry I didn't describe the first question well. The phase function I need to solve might be in the form shown in the picture.

I don't know how to input this phase function into the program, because of the third term. The exponent of x is negative 2. As if it couldn't be implemented via polyCoeffs in the program. I have not yet tried whether the third term in the phase function can be implemented by building a custom function in f. If this project can extend the functionality of negative exponents or more complex phase functions, it will have a wider application in related fields.

Yeah, it's true. The high-order catastrophe integrals are pretty tricky. Thank you for your suggestions.

Best,
Malibiea


Unable to run project: can't resolve 'fsevents' and find child_process/fs dependencies

Versions

nuxt: ^2.15.3
node: 14.16.0 and 12.21.0

Reproduction
I'm not able to reproduce this issue in the fresh new nuxt project.
My package.json
...
"author": "kojot",
  "private": true,
  "scripts": {
    "dev": "nuxt --port 8081",
    "dev:host": "nuxt --hostname <IP_ADDRESS> --port 8081",
    "build": "nuxt build",
    "start": "nuxt start",
    "generate": "nuxt generate",
    "export": "nuxt export",
    "serve": "nuxt serve"
  },
  "dependencies": {
    "@nuxtjs/auth": "^4.9.1",
    "@nuxtjs/axios": "^5.13.1",
    "@nuxtjs/proxy": "^1.3.3",
    "babel-polyfill": "^6.26.0",
    "cross-env": "^5.2.0",
    "element-ui": "^2.15.1",
    "lodash": "^4.17.21",
    "nuxt": "^2.15.3",
    "nuxt-i18n": "^6.21.0",
    "polish-plurals": "^1.1.0",
    "rsocket-core": "0.0.25",
    "rsocket-flowable": "0.0.25",
    "rsocket-websocket-client": "0.0.25",
    "uniqid": "^5.3.0",
    "vee-validate": "^3.4.5",
    "vue-cal": "^3.10.0",
    "vue-recaptcha": "^1.3.0",
    "vuex-map-fields": "^1.4.1"
  },
  "devDependencies": {
    "@nuxtjs/google-analytics": "^2.4.0",
    "@nuxtjs/moment": "^1.6.1",
    "@nuxtjs/vuetify": "^1.11.3",
    "nodemon": "^1.11.0"
  }
}

Steps to reproduce
I just run my project with npm run dev command.
What is actually happening?
I see compile errors:
× Client
  Compiled with some errors in 12.53s

 WARN  Compiled with 2 warnings                                                                                friendly-errors 16:32:21

 WARN  in ./node_modules/nodemon/lib/version.js                                                                                friendly-errors 16:32:21

Critical dependency: the request of a dependency is an expression                                                                                friendly-errors 16:32:21
                                                                                friendly-errors 16:32:21

 WARN  in ./node_modules/chokidar/lib/fsevents-handler.js                                                                                friendly-errors 16:32:21

Module not found: Error: Can't resolve 'fsevents' in 'C:\JDeveloper\mywork\Vue\my-project-fronted-test\node_modules\chokidar\lib'                                                              friendly-errors 16:32:21
                                                                                friendly-errors 16:32:21

 ERROR  Failed to compile with 13 errors                                                                                friendly-errors 16:32:21

These dependencies were not found:                                                                                friendly-errors 16:32:21
                                                                                friendly-errors 16:32:21
* child_process in ./node_modules/nodemon/lib/version.js, ./node_modules/nodemon/lib/monitor/run.js and 1 other                                                                                friendly-errors 16:32:21
* fs in ./node_modules/chokidar/index.js, ./node_modules/chokidar/lib/fsevents-handler.js and 8 others                                                                                friendly-errors 16:32:21
                                                                                friendly-errors 16:32:21
To install them, you can run: npm install --save child_process fs                                                                                friendly-errors 16:32:21
i Waiting for file changes                                                                                16:32:21
i Memory usage: 449 MB (RSS: 633 MB)                                                                                16:32:21
i Listening on: http://localhost:8081/                                                                                16:32:21

 WARN  Error from chokidar (C:\): Error: EBUSY: resource busy or locked, lstat 'C:\hiberfil.sys'                                                                                16:32:22

and after opening it in the browser I see a lot of these errors:
ERROR in ./node_modules/nodemon/lib/version.js
Module not found: Error: Can't resolve 'child_process' in 'C:\JDeveloper\mywork\Vue\my-project-fronted-test\node_modules\nodemon\lib'
ERROR in ./node_modules/nodemon/lib/spawn.js
Module not found: Error: Can't resolve 'child_process' in 'C:\JDeveloper\mywork\Vue\my-project-fronted-test\node_modules\nodemon\lib'
ERROR in ./node_modules/nodemon/lib/monitor/run.js
Module not found: Error: Can't resolve 'child_process' in 'C:\JDeveloper\mywork\Vue\my-project-fronted-test\node_modules\nodemon\lib\monitor'
ERROR in ./node_modules/pstree.remy/lib/index.js
Module not found: Error: Can't resolve 'child_process' in 'C:\JDeveloper\mywork\Vue\my-project-fronted-test\node_modules\pstree.remy\lib'
ERROR in ./node_modules/pstree.remy/lib/tree.js
Module not found: Error: Can't resolve 'child_process' in 'C:\JDeveloper\mywork\Vue\my-project-fronted-test\node_modules\pstree.remy\lib'
ERROR in ./node_modules/pstree.remy/lib/utils.js
Module not found: Error: Can't resolve 'child_process' in 'C:\JDeveloper\mywork\Vue\my-project-fronted-test\node_modules\pstree.remy\lib'
ERROR in ./node_modules/chokidar/index.js
Module not found: Error: Can't resolve 'fs' in 'C:\JDeveloper\mywork\Vue\my-project-fronted-test\node_modules\chokidar'

I've been stuck with this for 2 days and I really don't know what happened. I've tried different node versions, clearing node_modules folder, removing package-lock.json, even switching back to the older nuxt version like 2.14.12 - still see this error and cannot run my project. Of course npm install --save child_process fs doesn't change anything.
I use Windows 10 Pro.
Can anyone point me where the problem may be and what could I do to run this project again?

 I found out that in one of my vuex store files I have this:
import {
  reset
} from "nodemon";

Of course, I didn't write it, it had to be added by some of my VSC plugins when I was writing mutation called reset()... The compilation error was so meaningless that I've spent 2 days finding this bug.

@kkojot My sympathies!


Add initial Hello World AZP

Signed-off-by: Andrew Grimberg<EMAIL_ADDRESS>

Great!

And AZP Pipeline is now live


Update README.md

Please contribute to my project!!
I hope you like the mod!
https://github.com/3xMoha/AttractingContributors-movies

Have already merge a pull request by the terminal.
I already contribute to your project.


OD Points to Line or Bezier curve

Do we need a node to convert directed straight lines into directed Bezier curves?

Dialog Options:

Source column
Target column
Line type (Line or Bezier curve)
Number of sample points (advanced only visible for Bezier)
Degree of the curve (advanced only visible for Bezier)

Input:

Two columns with GeoPoints

Input:

Input table with a new column appended that contains the bezier curve as GeoLine connecting the two input points.

Rename node to Directed Bezier Curve
Remove line option
Revise dialog setting names (Origin and Destination) and also parameter nodes
Dialog settings and node description spelling and capitalization
Check if the input table already contains a column with name Curve and make the new column name unique see KNIMEUtils function


meta image

Issue number
Relevant issue number (e.g. #404): Resolves #
Please check the following

[ ] Do the tests still pass? (see Run the Tests)
[ ] Is the code formatted properly? (see Linting (Formatting))
For New Features:

[ ] Have tests been added to cover any new features or fixes?
[ ] Has the documentation been updated accordingly?

Please describe additional details for testing this change

@itsalaidbacklife are we updating package lock also 😬

@itsalaidbacklife are we updating package lock also 😬

Actually no. package-lock updates whenever we npm install which means we can use it to tell when was the last time we updated deps, which I think is handy. So we manually update package.json and leave package-lock until we install deps

@itsalaidbacklife  we should talk about that at some point. It’s recommended you keep those two synced. See https://docs.npmjs.com/cli/v9/commands/npm-version which would also make tags for us, and we might want to also start doing “releases” of the app when it’s stable in GitHub.

@itsalaidbacklife  we should talk about that at some point. It’s recommended you keep those two synced. See https://docs.npmjs.com/cli/v9/commands/npm-version which would also make tags for us, and we might want to also start doing “releases” of the app when it’s stable in GitHub.

Yeah good call. I'd never found anything definitive on it so I'd made up that policy a while back with no real basis -- we should discuss. Releases is an interesting concept though I wonder how to think about them when were releasing every merge


Documentation unclear

The readme of sbt-tc-logger says: "You don't need this plugin if you use TeamCity SBT runner with 'Auto' installation mode."
But In the comments of https://youtrack.jetbrains.com/issue/TW-40415 it is stated that "Finally there is no needs to have this logger directly added." although the ticket is about a custom SBT instance.
What is correct? Is it true that the plugin doesn't have to be added in both cases (auto, custom) to plugins.sbt anymore?

TeamCity SBT runner made several steps in its evolution. Now there is no needs to add sbt-tc-logger neither with Auto nor with Custom installation mode.
We will fix the documentation, sorry for the inconvenience.


Make packaging-common module

Started the packaging-common module and integrated into the tasks that used the npm-common module, then removed the npm-common module. This is because the amount of copied & pasted code between the packaging modules is unsustainable, and I'll soon be adding a new feature shared between various packaging tasks.
I also took this opportunity to fix the proxy issue in getFeedRegistryUrl in the npm task.

VSTS.Tasks.PR-Linux failed due to an unrelated test timeout


Laravel 8.50.0 Shift

This pull request includes updates for the recent minor version release of Laravel as well as updates to your package dependencies. Feel free to commit any additional changes to the shift-ci-v8.50.0 branch.
Before merging, you need to:

Checkout the shift-ci-v8.50.0 branch
Review all pull request comments for additional changes
Run composer update
Test your application (no tests?)

:warning: You are running version 4.6.0 of spatie/laravel-translatable. The latest version is 5.0.0. You should review this dependency to see if you can upgrade to the latest version.

:information_source: The Shift build servers run PHP 8. If you are still running PHP 7.4 or lower be sure to run composer update locally to ensure you have the proper versions of your dependencies to reflect your PHP 7 environment.


[ISSUE #4165] add new line in sendMsgStatus

Make sure set the target branch to develop
What is the purpose of the change
#4165
Brief changelog
XX
Verifying this change
XXXX
Follow this checklist to help us incorporate your contribution quickly and easily. Notice, it would be helpful if you could finish the following 5 checklist(the last one is not necessary)before request the community to review your PR.

[x] Make sure there is a Github issue filed for the change (usually before you start working on it). Trivial changes like typos do not require a Github issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[x] Format the pull request title like [ISSUE #123] Fix UnknownException when host config not exist. Each commit in the pull request should have a meaningful subject line and body.
[x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[x] Write necessary unit-test(over 80% coverage) to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add integration-test in test module.
[x] Run mvn -B clean apache-rat:check findbugs:findbugs checkstyle:checkstyle to make sure basic checks pass. Run mvn clean install -DskipITs to make sure unit-test pass. Run mvn clean test-compile failsafe:integration-test  to make sure integration-test pass.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

Coverage decreased (-0.05%) to 52.0% when pulling c9311be8ea3153291dedf3e05d8a575bc0b62e1b on yuz10:develop4 into 93edad2cb3de29839ee0c67daf41d2b27cff30e7 on apache:develop.

Coverage decreased (-0.05%) to 52.0% when pulling c9311be8ea3153291dedf3e05d8a575bc0b62e1b on yuz10:develop4 into 93edad2cb3de29839ee0c67daf41d2b27cff30e7 on apache:develop.

Codecov Report

Merging #4166 (203d6da) into develop (93edad2) will decrease coverage by 0.12%.
The diff coverage is 0.00%.

@@              Coverage Diff              @@
##             develop    #4166      +/-   ##
=============================================
- Coverage      48.01%   47.89%   -0.13%
+ Complexity      5015     4999      -16
=============================================
  Files            635      635
  Lines          42506    42504       -2
  Branches        5567     5568       +1
=============================================
- Hits           20411    20358      -53
- Misses         19605    19652      +47
- Partials        2490     2494       +4

Impacted Files
Coverage Δ

...tmq/tools/command/broker/SendMsgStatusCommand.java
34.28% <0.00%> (ø)

...rocketmq/broker/filtersrv/FilterServerManager.java
20.00% <0.00%> (-14.29%)
:arrow_down:

...va/org/apache/rocketmq/store/FlushDiskWatcher.java
81.25% <0.00%> (-9.38%)
:arrow_down:

...apache/rocketmq/remoting/netty/ResponseFuture.java
85.00% <0.00%> (-5.00%)
:arrow_down:

...ache/rocketmq/common/stats/MomentStatsItemSet.java
39.13% <0.00%> (-4.35%)
:arrow_down:

...ketmq/common/protocol/body/ConsumerConnection.java
95.83% <0.00%> (-4.17%)
:arrow_down:

...rocketmq/remoting/netty/NettyRemotingAbstract.java
46.88% <0.00%> (-4.03%)
:arrow_down:

...ava/org/apache/rocketmq/filter/util/BitsArray.java
59.82% <0.00%> (-2.57%)
:arrow_down:

...rocketmq/common/message/MessageClientIDSetter.java
71.42% <0.00%> (-2.39%)
:arrow_down:

...va/org/apache/rocketmq/logging/inner/Appender.java
34.83% <0.00%> (-2.25%)
:arrow_down:

... and 13 more

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 93edad2...203d6da. Read the comment docs.


V0p3p3c

Codecov Report

Merging #81 (dfa4bee) into master (0a8f91f) will decrease coverage by 0.98%.
The diff coverage is n/a.

:exclamation: Current head dfa4bee differs from pull request most recent head 9776676. Consider uploading reports for the commit 9776676 to get more accurate results

@@            Coverage Diff             @@
##           master      #81      +/-   ##
==========================================
- Coverage   80.08%   79.09%   -0.99%
==========================================
  Files           5        5
  Lines         487      464      -23
==========================================
- Hits          390      367      -23
  Misses         97       97

Impacted Files
Coverage Δ

src/IndividualDisplacements.jl
100.00% <ø> (ø)

src/read.jl
30.76% <ø> (-21.24%)
:arrow_down:

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 0a8f91f...9776676. Read the comment docs.


docs: update code owners

This is to declare the code owner for this repository to be @EzequielPostan .

@EzequielPostan , I see that Peter has not the access to this repository. Should he have the access to review the specs from his view?

thank you @mkbreuningIOHK


Tool for Automated API Migration and Deprecation Handling

The project aims to enhance the developer experience by introducing a tool to assist with API migrations. This tool would identify deprecated API calls and automatically apply fixes to update the code to the latest API methods. Inspired by Rust's Clippy, the tool would provide a openai migrate command to streamline code compatibility with new API versions, reducing manual effort and improving code quality.
Main ambitions of this issue:

[ ] Find a ways to automatically inform users that they use deprecated calls, and establish standardized way of annotating it.
[ ] Develop or integrate a tool that can automatically apply fixes to migrate deprecated API calls to the new methods.

Action Items:

[ ] Research and Evaluation:

[ ] Investigate existing tools in the JavaScript/TypeScript ecosystem that offer deprecation flagging and auto-fix capabilities.
[ ] Evaluate the feasibility of integrating such tools into our development workflow.
[ ] Consider the possibility of developing a custom solution if existing tools do not meet our requirements.

[ ] Annotating Deprecation:

[ ] Implement a system to mark deprecated API methods within the codebase.
[ ] Ensure that developers are notified of deprecations during the build or development process.
[ ] Document the deprecation process and guidelines for developers.

[ ] Applying Auto-fix for Deprecations (Breaking Change):

[ ] Develop or integrate a tool that can automatically apply fixes to migrate deprecated API calls to the new methods.
[ ] Create a command, such as cargo clippy --fix, to execute the migration process.
[ ] Test the tool to ensure it accurately identifies deprecations and applies the correct fixes.

Motivation:
The motivation for this tool is to emulate the functionality of cargo clippy --fix in the Rust ecosystem, which automatically applies fixes for deprecated functions. By providing a similar solution for JavaScript/TypeScript, we aim to simplify the migration process, maintain consistency across the codebase, and enhance overall developer productivity.

TypeDoc, which we use for our autogenerated API documentation has the deprecated tag. This will inform the docs but not elsewhere.

I'm not sure this is right for us right now.
API migration is a huge feature in it's own right, this may be something we want to visit from v1 -> v2 but our journey to v1 seems like a much more natural progression that I don't think warrants the need for a tool. We've made massive improvements to our release notes with migration in mind.
Tagging @FuelLabs/sdk-ts for comment.


iCub-CRIS training 2021/06/10

A first run of the traning based on the material on this repo will be done on 2021/06/10 on IIT. The slides used will be:
2021-06-09-conda-for-scientific-robotics-software-research-and-development.pdf

Training done, notes:

For the next time before the training check the network, I did the dry run on Wi-Fi and for some reason instead the wired network was way slower
Switch to mamba for docs and presentation: the slow speed of conda is problematic for interactive presentation
Document that command prompt is the suggested shell on Windows due to Gazebo and ROS problems (see https://github.com/conda-forge/gazebo-feedstock/issues/42 and https://github.com/RoboStack/ros-noetic/issues/21) @ste93.
For several users it was not possible to start Gazebo installed from conda @Hosam @ines . @GiulioRomualdi then suggested to remove the setup.sh from robotology-superbuild installed with apt, and probably we need to add this in the docs.

@HosameldinMohamed @isorrentino can you report the problems you were having?

@Giulero feel free to report the zsh problem.

@HosameldinMohamed @isorrentino can you report the problems you were having?

@traversaro what we did after creating the environment and installing icub-models and gazebo-yarp-plugins is open 2 terminals, activate the environment in both run yarpserver in one of them and gazebo in the other one.
Gazebo crashes and gives this error
 >> gazebo --verbose
Gazebo multi-robot simulator, version 11.5.1
Copyright (C) 2012 Open Source Robotics Foundation.
Released under the Apache 2 License.
http://gazebosim.org

[Msg] Waiting for master.
Gazebo multi-robot simulator, version 11.5.1
Copyright (C) 2012 Open Source Robotics Foundation.
Released under the Apache 2 License.
http://gazebosim.org

[Msg] Waiting for master.
[Msg] Connected to gazebo master @ http://<IP_ADDRESS>:11345
[Msg] Publicized address: <IP_ADDRESS>
[Err] [server_main.cc:57] Ogre Error:ItemIdentityException: Resource with the name Console already exists. in ResourceManager::add at /home/conda/feedstock_root/build_artifacts/ogre_1612037790705/work/OgreMain/src/OgreResourceManager.cpp (line 157)

But this is not producible every time I try it. After the training I've tried it many times. In some times Gazebo was starting normally.
Note: I have already Gazebo installed from the source.

Thanks @HosameldinMohamed ! Two comments:

Did you removed the sourcing of setup.sh of the robotology-superbuild compiled with apt dependencies as suggested by @GiulioRomualdi ?
Can you try to remove the ~/.gazebo directory, as this already created problem in the past, and see if the problem disappears (see https://github.com/osrf/gazebo/issues/2604)?

@drdanz reported that it would be useful to know what Miniconda and mamba is. The latter explanation will be necessary especially if we switch to use mamba in the instructions.

Thinkg to add:

Generate/consume environment files
Generate a Docker image out of an environment file
Generate a Singularity image out of an environment file

Link to the video registration: https://youtu.be/DF2aZa1GhYo .

@Giulero feel free to report the zsh problem.

@traversaro sure!
When I type conda activate robenv (but also with base) I get this output:
pathremove:5: bad substitution
pathremove:5: bad substitution
pathremove:5: bad substitution

If I type it again, in the same terminal (I guess it calls the reactivate command):
pathremove:5: bad substitution
pathremove:5: bad substitution
pathremove:5: bad substitution
pathappend:3: bad substitution
pathappend:3: bad substitution
pathappend:3: bad substitution

Maybe the issue comes from the lines added in the .zshrc:
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/icublap127/miniconda3/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/home/icublap127/miniconda3/etc/profile.d/conda.sh" ]; then
        . "/home/icublap127/miniconda3/etc/profile.d/conda.sh"
    else
        export PATH="/home/icublap127/miniconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda initialize <<<

and
conda() {
    if [ "$#" -lt 1 ]; then
        "$CONDA_EXE" $_CE_M $_CE_CONDA
    else
        \local cmd="$1"
        shift
        case "$cmd" in
            activate|deactivate)
                __conda_activate "$cmd" "$@"
                ;;
            install|update|upgrade|remove|uninstall)
                CONDA_INTERNAL_OLDPATH="${PATH}"
                __add_sys_prefix_to_path
                "$CONDA_EXE" $_CE_M $_CE_CONDA "$cmd" "$@"
                \local t1=$?
                PATH="${CONDA_INTERNAL_OLDPATH}"
                if [ $t1 = 0 ]; then
                    __conda_reactivate
                else
                    return $t1
                fi
                ;;
            *)
                CONDA_INTERNAL_OLDPATH="${PATH}"
                __add_sys_prefix_to_path
                "$CONDA_EXE" $_CE_M $_CE_CONDA "$cmd" "$@"
                \local t1=$?
                PATH="${CONDA_INTERNAL_OLDPATH}"
                return $t1
                ;;
        esac
    fi
}

present in miniconda3/etc/profile.d/conda.sh, more precisely in __conda_activate and __conda_reactivate.
__conda_activate is defined as:
__conda_activate() {
    if [ -n "${CONDA_PS1_BACKUP:+x}" ]; then
        # Handle transition from shell activated with conda <= 4.3 to a subsequent activation
        # after conda updated to >= 4.4. See issue #6173.
        PS1="$CONDA_PS1_BACKUP"
        \unset CONDA_PS1_BACKUP
    fi

    \local cmd="$1"
    shift
    \local ask_conda
    CONDA_INTERNAL_OLDPATH="${PATH}"
    __add_sys_prefix_to_path
    ask_conda="$(PS1="$PS1" "$CONDA_EXE" $_CE_M $_CE_CONDA shell.posix "$cmd" "$@")" || \return $?
    rc=$?
    PATH="${CONDA_INTERNAL_OLDPATH}"
    \eval "$ask_conda"
    if [ $rc != 0 ]; then
        \export PATH
    fi
    __conda_hashr
}

@traversaro

Did you removed the sourcing of setup.sh of the robotology-superbuild compiled with apt dependencies as suggested by @GiulioRomualdi ?

Not when i wrote this https://github.com/dic-iit/training-conda-robotics/issues/2#issuecomment-858548856.

Can you try to remove the ~/.gazebo directory, as this already created problem in the past, and see if the problem disappears (see osrf/gazebo#2604)?

Doing both requests doesn't solve it. Again, some times Gazebo starts normally and others the error happens.

@traversaro

Did you removed the sourcing of setup.sh of the robotology-superbuild compiled with apt dependencies as suggested by @GiulioRomualdi ?

Not when i wrote this #2 (comment).

Can you try to remove the ~/.gazebo directory, as this already created problem in the past, and see if the problem disappears (see osrf/gazebo#2604)?

Doing both requests doesn't solve it. Again, some times Gazebo starts normally and others the error happens.
Note: I am not sure if it's relevant, but I am not using Ubuntu based OS. I am using Manjaro!

Ok, this bug officially graduated to its own discussion: https://github.com/conda-forge/gazebo-feedstock/issues/81 . Please continue the discussion there.

Just to clarify, if this @HosameldinMohamed problem was not fixed by removing the superbuild's setup.sh, probably it is a problem different from the problem of @isorrentino or @GiulioRomualdi ?

@Giulero feel free to report the zsh problem.

@traversaro sure!

Thanks! This error are similar to the one experienced by @lrapetti in https://github.com/robotology/robotology-superbuild/issues/779, let's continue the discussion there. My the way, there is any reason why you install miniconda instead of miniforge as suggested in the docs?

there is any reason why you install miniconda instead of miniforge as suggested in the docs in this repo

Not really. I was just using miniconda before the training. It's time for a change!

I just tested zsh after the fixes in https://github.com/robotology/robotology-superbuild/pull/810 and everything seems to work, no pathremove:5: bad substitution error anymore. I just fixed a bit the installation guide in https://github.com/robotology/robotology-superbuild/pull/839, zsh users feel free to review it @lrapetti @Giulero .

Switch to mamba for docs and presentation: the slow speed of conda is problematic for interactive presentation

This will be fixed by https://github.com/robotology/robotology-superbuild/pull/847 .

For several users it was not possible to start Gazebo installed from conda @HosameldinMohamed @isorrentino . @GiulioRomualdi then suggested to remove the setup.sh from robotology-superbuild installed with apt, and probably we need to add this in the docs.

This are actually two distinct problem:

Clarify that it is better to remove any apt-based setup.sh  from the environment if you are using conda
A peculiar problem in brand-new distribution, that @HosameldinMohamed experienced. On this, the related issue is https://github.com/conda-forge/gazebo-feedstock/issues/81 , and there was a change discussed in https://github.com/conda-forge/gazebo-feedstock/issues/81#issuecomment-893402590 .

* Document that command prompt is the suggested shell on Windows due to Gazebo and ROS problems

Will be fixed by https://github.com/robotology/robotology-superbuild/pull/850 .


Add network information to ha data

Prepare API to add network information to the glances integration as requested here: https://github.com/home-assistant/core/issues/93381
Updated unit test

@fabaff Can this PR get merged?


name 'audio_array' is not defined

Heya Moises, I'm getting an error in the training step when importing audio files:
name audio_array is not defined
Looks like you might be missing a library include in the python but I tried out the first two things that came to mind: import simpleaudio and import numpi with no luck.
I ensured that I'm using 16 bit, 44.1k audio files, all batch converted to mono which seemed most appropriate.
(btw I copied the file path from a terminal pwd so I'm pretty sure its not just a miss-write :p )

Actually scrap that, I just made a silly mistake on an earlier step hahah


Linker error: Metal isn't linked

Seems swift-create-xcframework misses linking a system library (Metal in this case). I'm not sure what is different about my project.
swift-create-xcframework version: master branch (0be3a68c84987493a7d7298027274a0862bc5ccd)
Swift version: swift-driver version: 1.62.15 Apple Swift version 5.7.2 (swiftlang-<IP_ADDRESS>.5 clang-14<IP_ADDRESS>) Target: x86_64-apple-macosx13.0
Environment: Xcode 14.2 (14C18), macOS 13.1 (22C65)
Checklist

[x] If possible, I've reproduced the issue using the master branch of this package
[x] I've searched for existing GitHub issues

Steps to Reproduce

Clone https://github.com/halfspace-llc/MetalKernels
run swift create-xcframework

Expected behavior
Successfully creates an xcframework, since the swift package builds.
Actual behavior
Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_MTLComputePipelineDescriptor", referenced from:
      objc-class-ref in CompactKernel.o
  "_OBJC_CLASS_$_MTLLinkedFunctions", referenced from:
      objc-class-ref in CompactKernel.o
  "_OBJC_CLASS_$_MTLVisibleFunctionTableDescriptor", referenced from:
      objc-class-ref in CompactKernel.o
ld: symbol(s) not found for architecture x86_64

swift-create-xcframework hasn't changed since filing so this issue still applies.

swift-create-xcframework hasn't changed since filing so this issue still applies.


Noticeable overhead in crossbeam-epoch under many Locals

Hi, nice to meet you and thanks for maintaining this crate. :)
I found some kind of performance issue spanning cross-crate code interactions, ultimately resulting in many cpu cycles being wasted at crossbeam-epoch. And I'm wondering where the proper fix could be placed across those related crates.
In short, there are circumstances where crossbeam-epoch's epoch bookkeeping code exposes significant overhead. And our production code was hit at it.
Dirtiest hack would be reducing frequency of gc collection (= global().collect(&guard);) by increasing PINNINGS_BETWEEN_COLLECT like this:
$ git diff
diff --git a/crossbeam-epoch/src/internal.rs b/crossbeam-epoch/src/internal.rs
index de208b1..0394c03 100644
--- a/crossbeam-epoch/src/internal.rs
+++ b/crossbeam-epoch/src/internal.rs
@@ -387,7 +387,7 @@ fn local_size() {
 impl Local {
     /// Number of pinnings after which a participant will execute some deferred functions from the
     /// global queue.
-    const PINNINGS_BETWEEN_COLLECT: usize = 128;
+    const PINNINGS_BETWEEN_COLLECT: usize = 128 * 128;

     /// Registers a new `Local` in the provided `Global`.
     pub(crate) fn register(collector: &Collector) -> LocalHandle {

However, I'm not fully sure this is the right fix (esp, regarding its ramifications due to reduced garbage collections).
Let me explain the rather complicated context a bit.
Firstly, crossbeam-epoch is used by crossbeam-deque (duh), which in turn by rayon (task scheduler library) as task queues , then by solana-validator (which experinced the performance issue; https://github.com/solana-labs/solana/issues/22603).
so far, so good. it's just normal use case of rayon for multi cores by an application code.
The twist is that solana-validator is holding many rayon thread pools managed by its internal subsystems. So, it's well exceeding system's core count by great factor like 2000 threads on a 64 core machine.
(We know this is a bit silly setup. But every subsystem isn't 100% cpu persistently. Rather they're mostly idling. On the other hand, we want to maximize processing throughput/minimize latency at the time of peak load. Also, casual top -H instropection and granular kernel thread priority tuning is handy. Lastly, sharing a single or several thread pool would introduce unneeded synchronization cost across subsystems and implementaion complexities in solana-validator code. All in all, each independent thread pools makes sense to us at least for now.)
So, that whopping 2000 (rayon) threads means that all of them are registering as Locals to the singleton crossbeam-epoch's Global. Then, global().collect() suddenly become very slow because it's doing linear scan over the Locals (= O(n))...
(Then, this affects all indepedent rayon pools inside a process. That's because of the use of the singleton Global. This seemingly-unrelated subsytem's performance degradtion was hard to debug, by the way...)
Regarding the extent of the overhead, I observed certain rayon-heavy subsystem is ~5% faster with the above 1-line hack alone in walltime. And, I also saw 100x reduction of overhead by Linux's perf.
Possible solutions:

Accept this dirty hack as is?
... or polish it so that the gc frequency could be adaptive to the number of Locals?
Adjust rayon to use separate Globals for each thread pools as a kind of scope?
Introduce background gc collection thread like jemalloc?
Reduce thread pool in solana-validator?

oh, also, i have a small reproducible program and monkey-patched crossbeam-epoch and rayon. please let me know if it's needed to drive this issue forward.

Possible solutions:
...

Yet another solutions would probably be starting to accept a new type parameter (with default type to be compatible) over Global/Local. And that type parameter will be responsible to provide singleton storage for all those registered Locals.
So that, each thread pool is isolated from each other in terms of crossbeam-epoch instances. so, the overhead won't happen to begin with. Also, maybe we can configure PINNINGS_BETWEEN_COLLECT via the new trait.
maybe, this impl strategy is similar std::HashMap's S = RandomState type param or Vec's A = Allocator type param.

@taiki-e hey, I know your status show busy. But I waited for a week. Could you take a look at this issue, if possible? Or, could you refer this to other maintainers? thanks :)

If we handle this on our end, it seems increasing PINNINGS_BETWEEN_COLLECT or to make it configurable is okay. Which should be chosen depends on what the adverse effects of increasing it would be.
(That said, I'm not sure why you are using a thread pool specifically intended for expensive CPU-bound computations like rayon to handle a large number of tasks that are mostly idling.)

Adjust rayon to use separate Globals for each thread pools as a kind of scope?

cc @cuviper: Any thoughts on this idea (or this issue)?

With the caveat that I only have a rough intuition of how crossbeam-epoch actually works... :sweat_smile:

Adjust rayon to use separate Globals for each thread pools as a kind of scope?

This sounds like it could be fine for stuff that's really internal to the pool, like the thread-specific deques, but is it a problem to delay collection for stuff that straddles that boundary? I'm thinking of the pool's injector which may be pushed from outside the pool and popped within, or anything that the user brings themself that crosses the pool. If that pool goes idle while the rest of the process is still working heavily, there could be memory in that pool Global that's not reclaimed. Maybe that's an issue for the internal deques too, I don't know.

Yet another solution would probably be starting to accept a new type parameter (with default type to be compatible) over Global/Local. And that type parameter will be responsible to provide singleton storage for all those registered Locals.

I think this could make sense for the thread deques, if we create them with a pool Global and have a bounded number of attached Local just for each thread in the pool. No other thread needs to touch those deques.

oh, also, i have a small reproducible program and monkey-patched crossbeam-epoch and rayon.

Which solution is that, just the increased constant?

... or polish it so that the gc frequency could be adaptive to the number of Locals?

That also sounds like a reasonable idea to me.

really appreciate for spending on this issue. :)

If we handle this on our end, it seems increasing PINNINGS_BETWEEN_COLLECT or to make it configurable is okay.

thx for confirmation. i'm thinking to submit a pr to make it configurable.

Which should be chosen depends on what the adverse effects of increasing it would be.

as far as i tested increasing PINNINGS_BETWEEN_COLLECT even with the 128x factor. i saw no noticeable difference, just saw the nicely greatly-reduced overhead. Originally, i expected large mem consumption. Maybe, solana-validator's rayon task queue's element byte size isn't significant in general.
it looks like PINNINGS_BETWEEN_COLLECT = 128 is chosen somewhat arbitrarily as far as i looked git/github, right? Is there some past discussions, can i refer to? Also, is there a bench specially regarding this constant?

(By the way, I'm not sure why you are using a thread pool specifically intended for expensive CPU-bound computations like rayon to handle a large number of tasks that are mostly idling.)

Well, recent rayon can park nicely with no outstanding tasks. (very much kudo to @cuviper, ref: https://github.com/rayon-rs/rayon/blob/master/RELEASES.md#release-rayon-140--rayon-core-180-2020-08-24 ) So, we want to maximize burst task throughput utilizing all cores and rayon is very handy for that with various ecosystem .par_iter() support across crates. :)

Maybe, solana-validator's rayon task queue's element byte size isn't significant in general.

Rayon's queues only deal with opaque JobRefs, which are just two pointers each.

Maybe, I'll introduce EpochGroup trait and EpochGroup::global() or something at crossbeam-epoch and pass the type parameter way up to the application code via crossbeam-deque and rayon.

I made this work locally. However, I'm pivoting to the new feature flag approch due to...:

The whole change set is kind of large due to the need of passing new type parameter across board rayon->crossbeam-{deque, epoch}, which is tough for both me and both of reviewers (you).
Also, application code must be adjusted to use the newly-introduced apis with the type parameter, which is again tedious.
all in all, i think solana's problem is quite rare and niche, considering no one complained and seeing no outsider reaction to this issue. so not worth for the right-but-large solution, imo.

So, I want to take the lazy man's approach #862 along with rayon's corresponding pr (https://github.com/rayon-rs/rayon/pull/958)
@taiki-e, @cuviper: could you take a quick glance to decide this kind of ad-hoc feature addition would be ever merged into your crates? Certainly, I want to avoid vendoring... Or, do you have some stamina to review my original approach prs?

fyi, the original approch's newer api would look like this:
use crossbeam_deque::{CustomCollector, Collector, LocalHandle};

static MY_COLLECTOR: Lazy<Collector> = Lazy::new(Collector::new);

thread_local! {
    static MY_HANDLE: LocalHandle = MY_COLLECTOR.register();
}

struct MyCustomCollector;

impl CustomCollector for MyCustomCollector {
    #[inline]
    fn collector() -> &'static Collector {
        &MY_COLLECTOR
    }

    #[inline]
    fn handle() -> &'static std::thread::LocalKey<LocalHandle> {
        &MY_HANDLE
    }
}

fn foo() {
    let pool = rayon::ThreadPoolBuilder::<_, MyCustomCollector>::new()
        ...;
    pool.install_for_iters(|type_marker| { // this is new! type_marker is parameterized with CustomCollector
        vec.
           .into_par_iter()
           .install_type(type_marker) // this is the new! we need to propagate static collector type to actual iters.
           .map(...)
        ...
    }
}

@adamreichold thanks for chiming in. :) loves collective wisdom. your idea sounds doable. so, i created https://github.com/solana-labs/solana/pull/26555


solve bug off pt and pts

when phpstrom pt & pts write then tab click the result is not exactly that show in your README.md file . i solve the problem . see this

README.md lists all template of the latest version.
If you local version do not work like the doc, please download the latest version.


How do i sort the data using laravel-translatable. and the data to be sorted is in its translations table?

when i try to sort the data using the field present in the translations table it gives the error saying the column not found and it i use the db joins it says translate() method not found. how can i solve this problem? any help would be appreciate. Thank  you

You can not just sort by the translation because it is in a separate table. To sort you would have to merge the translations with your main table. See an example here


Few Q's for yah on OIDC

@Trojan295 Hey, we have chatted in the past and I felt like circling back to this plugin to discuss a few points with your OIDC implementation vs our current implementations. I may end up using this plugin in a few circumstances for sure!
Our current code base for reference: https://github.com/Optum/kong-oidc-auth
Now onto some q's:

So when that first transaction comes through, user in browser hits gateway, then gateway recognizes no session/cookie. Next steps is to redirect over to your authorize url provided by the IDP(ping federate) in our case. Do the dance, and then userInfo comes back to the gateway. gateway preps that info to send to backend api service. Now in the response DUE to the redirect that occurred to the IDP the raw data payload from that back-end would be spat out to a users browser rather than to the SPA(Single Page Application) that initiated the call in the first place. Now our fix to get around that was after that first authentication takes place with a user we do a redirect back to a users "dashboard" page with their application. Then at this point subsequent calls will have the users cookie attached on calls and no redirection occurs and its a simple proxy transaction to the back-end so the SPA gets the data back and opposed to the users browser getting redirected around.

Our param for this was:
app_login_redirect_url

Did you solve this situation in a similar manner?
I am also just wondering what other flows/use cases there are besides SPA applications, is there ever a circumstance where the application won't need that redirect_url on the first proxy since OIDC is always a user browser driven event?

I see you have a few varieties of cache mechanisms on the readme, how are these configured?

shared-memory|memcache|redis.

I did not see anything in the plugin schema to pick between them? In our implementation we enable caching to the Kong singletons shm I am sure you have familiarized yourself with :) . Where we just do a key-> value of cookie->userInfo returned from the IDP for lookup on subsequent proxy calls.

Does your implementation call out to the IDP frequently to get that userInfo back or is it a one time thing generally where you cache the userInfo as well for a set ___ amount of time? I feel caching the info is important as it would be inefficient to call the userInfo endpoint every time.

I have been pondering a neat idea for OIDC with Kong, not sure if Nokia has this use case but consider a proxy that could be fronted by multiple OIDC IDP's. We for instance have a requirement that a special header value is passed then we need to use a different oidc provider, any chance you can point me to the meat of the code(file/line number) where I could add that if header = ___ value check use this IDP /.well-known/... endpoint?

Overall just circling back to this plugin the more I understand Kong + OIDC this Nokia plugin is impressive! I like the idea of just passing the /.well-known/... endpoint to resolve all these other details. For the longest time our IDP internally didn't mention they had such an endpoint so our code base requires explicitly setting those hah. We also went the route of not having a library dependency mainly because we have to explicitly set a few things our IDP requires such as "pfidpadapterid" for environment staging, and there are some weird query params we have been provided to play with such as "&prompt=none" which will look into if there is already another session established from other internal IDPs it auto-logs users in without requiring user action.
Thanks!
-Jeremy

In case of SPA's we implemented the introspection feature. You can set the config introspection_endpoint and authenticate your application directly with the IDP using the Implicit grant. You loose a bit of the SSO, though. You can check #54, for support of other grant types.

To be honest I don't know who put that information there... The only mechanism we have here is storing the tokens in an encrypted cookie on the browser side. The underlying plugin support the other ones (https://github.com/zmartzone/lua-resty-openidc), but we don't have in the plugin option to configure them.

You would check how the https://github.com/zmartzone/lua-resty-openidc library handles it. I took a quite look and it caches also the Userinfo in the session and refreshes it only after the tokens expire.

The IDP are identified by the discovery document and the URL for that is passed as an argument to a function in the lua-resty-openidc library (https://github.com/nokia/kong-oidc/blob/master/kong/plugins/oidc/handler.lua#L50). You would need to change it dynamically based on your headers. Remember also that other parameters would need to be changed as well (i.e. client_id, client_secret).

@Trojan295 Thanks for the prompt response! Yeah on #4 I will make sure the client_id/_secret are the same too or if not will recode the plugin to accept a list in some sort of Fork(since this is specialized and not really a feature many would want). The 3. point makes sense, if it caches it and updates only as often as the token expires is a performant method as well(our plugin caches for 8 hours internally the same userInfo as long as the user is active and proxying within a 30 min window), bother implementations work and I never cared to implement refresh token logic so this plugin has the edge on me there with a proper refresh implementation 👍  . Take care man.

@Trojan295 Any reason you decided to base64 encode the header recently? Had issues leaving as raw json or just felt it to be best practice? Also we noticed this plugin returns 502 bad gateway when the idp throws a 400 with errors on the token endpoint with things like invalid grant type. we ended up actually modifying the underlying dependency code like so to account for that and to throw something more like 401 and error from the IDP:
-- parse the JSON result from a call to the OP
local function openidc_parse_json_response(response)

  local err
  local res

  -- check the response from the OP
  if response.status ~= 200 then
    err = "response indicates failure, status="..response.status..", body="..response.body
    --End the plugin now returning known issue to client
    oidc_error = {status = ngx.HTTP_UNAUTHORIZED, message = err}
responses.send(oidc_error.status, oidc_error.message)

We had to do so because some reason we were seeing connection reset in our logs coming after from the client call to ping fed even though we got the 400 response with error. and some how that connection reset was triggering the gateway to return a 502 bad gateway to the client.
now returns like:


                  Please assign me this work !!!Please

I have added both Simon game and drum kit within the same pull request

assign me under hacktoberfest'24


Obsoletion request: GO:0006807    nitrogen compound metabolic process

Please provide as much information as you can:

GO term ID and Label

GO:0006807    nitrogen compound metabolic process
GO:0051171    regulation of nitrogen compound metabolic process
GO:0051172    negative regulation of nitrogen compound metabolic process
GO:0051173    positive regulation of nitrogen compound metabolic process

Reason for deprecation Put an x in the appropriate box:

[ ]  The reason for obsoletion is that this term was an unnecessary grouping term.

"Replace by" term (ID and label)
If all annotations can safely be moved to that term

related GO:0008152   metabolic process

"Consider" term(s) (ID and label)
Suggestions for reannotation

Are there annotations to this term?

How many EXP:

Are there mappings and cross references to this term? (InterPro, Keywords; check QuickGO cross-references section)

Is this term in a subset? (check the AmiGO page for that term)

Any other information

Checklist for ontology editor
Check term usage and metadata in Protégé

[ ] check term usage in the ontology
[ ] check internal mappings: RHEA, EC, MetaCyc
[ ] check subset usage
[ ] check taxon constraints

Check annotations

[ ] create Annotation Review spreadsheet

Annotation Review template: https://docs.google.com/spreadsheets/d/1izV3q1jnq_Ybg5MJ53O_b5BCTkGtjl_Fi-cOg3-7eBE/edit#gid=0

Instructions: https://wiki.geneontology.org/Annotation_Review_Request

[ ] create annotation review ticket: https://github.com/geneontology/go-annotation/issues/new?assignees=&labels=annotation+review&template=annotation-review-for-obsoletion.md&title=Review+annotations+to+[INSERT+GO+TERM]
[ ] find external mappings (via IEAS), include in obsoletion notice
[ ] tag curators in Annotation Review ticket. Responsible annotator for each group: https://github.com/geneontology/go-site/blob/master/metadata/group-contacts.csv

Notification

[ ] create obsoletion announcement
[ ] announce to GO friends<EMAIL_ADDRESS>[ ] paste the text in the ontology ticket

change parent
GO:0006807    nitrogen compound metabolic process to
GO:0008152    metabolic process
for
GO:0051171    regulation of nitrogen compound metabolic process	regulates
GO:1902061    betaine aldehyde metabolic process	is_a
GO:0019326    nitrotoluene metabolic process	is_a
GO:0019329    ammonia oxidation	is_a
GO:0071941    nitrogen cycle metabolic process	is_a
GO:0008291    acetylcholine metabolic process	is_a
GO:0019330    aldoxime metabolic process	is_a
GO:0044597    daunorubicin metabolic process	is_a
GO:0044598    doxorubicin metabolic process	is_a
GO:1901119    tobramycin metabolic process	is_a
GO:1901564    organonitrogen compound metabolic process	is_a
GO:0034641    cellular nitrogen compound metabolic process	is_a
GO:0018937    nitroglycerin metabolic process	is_a
GO:0018916    nitrobenzene metabolic process	is_a
GO:1901150    vistamycin metabolic process	is_a
GO:0043603    amide metabolic process	is_a
GO:0018954    pentaerythritol tetranitrate metabolic process	is_a
GO:0018952    parathion metabolic process	is_a
GO:0051173    positive regulation of nitrogen compound metabolic process	positively_regulates
GO:0018960    4-nitrophenol metabolic process	is_a
GO:0019666    nitrogenous compound fermentation	is_a
GO:1901742    2-deoxystreptamine metabolic process	is_a
GO:2001057    reactive nitrogen species metabolic process	is_a
GO:0051172    negative regulation of nitrogen compound metabolic process	negatively_regulates
GO:0097164    ammonium ion metabolic process	is_a
GO:0018887    4-carboxy-4'-sulfoazobenzene metabolic process


Rename WaveorderReader to ImageReader

This PR does a shallow renaming: the legacy WaveorderReader class is now ImageReader. Otherwise API remains the same.

Thanks for the deprecation warning, @ziw-liu.
What do you think about reducing the default log_level to logging.WARNING, too? At least for the ImageReader?
I think it's really important to alert users that are currently using WaveorderReader (@talonchandler, @edyoshikun , @Soorya19Pradeep) that merely changing WaveorderReader to ImageReader does not finish the migration to our long term iohub solutions. There's more work to do to change to the ngff readers.

What do you think about reducing the default log_level to logging.WARNING, too? At least for the ImageReader?

I just realized that I'm not using that custom logger in other parts of the code. So despite being a sub-optimal state the deprecation warning does show up if you invoked it in __main__ (e.g. a script). We should figure out unified logging too though.

the deprecation warning does show up if you invoked it in main (e.g. a script)

If I run this script:
import logging
from iohub.reader import ImageReader
reader = ImageReader('20200812-CardiomyocyteDifferentiation14-Cycle1.zarr')
print('done')

with python test.py from a terminal I only see done. But if I add log_level=logging.WARNING to ImageReader then I receive the expected
[WARNING: zarrfile:  33 2023-02-15 10:32:08,104] `iohub.zarrfile.ZarrReader` is deprecated and will be removed in the future. For OME-NGFF (OME-Zarr) v0.4 datasets please use `iohub.ngff.open_ome_zarr` instead.
done

with python test.py from a terminal I only see done. But if I add log_level=logging.WARNING to ImageReader then I receive the expected

Thanks for testing this! I tested in ipython and assumed the same behavior for a script. Then we do need to change log level in this PR.


Sentence with parenthesis incorrectly starts with ) in Arabic PDF

Describe the Bug

When an arabic page is exported to PDF, a sentence which contains (      ) start with ).
Steps to Reproduce

Go to an arabic page which contains a sentence or title in form of <German expression>(<arabic expression>) for exmample IBZ Sprache und Beruf (مركز استشارات الاندماج للغة والمهن) / FiBA 2 (اللاجئون في العمل والتدريب التأهيلي)
Export as PDF in Arabic
See error

Expected Behavior

Sentence starts with a normal letter.
In canse of the above exmaple: like in the right one in the attached foto
Actual Behavior

Like in the left one in the attached foto.
Additional Information

The same problem probably exist also on Farsi.
Analyse this problem wither this can be fixed in our repository. If not, a contribution in xhtml repository is the way.

@PeterNerlich why is this issue blocked?

why is this issue blocked?

To summarize for future reference: Because it is part of the issues that have to be fixed in the upstream library.
While a few of them are already implemented and released, we are currently holding off of upgrading the dependency because it also introduces regressions in other aspects.


Insertion merge

This issue closes #67

Seems that test code as well as well as .gitignore updates were included in this pr


feat: Generify map functions

Also making MapKeys a bit more efficient.
My use case is using a map[string]bool as a set and then convert to a []string.

/cc ankitm123 tomhobson babadofar


use sslmod=require for database connection

https://www.postgresql.org/docs/9.1/libpq-ssl.html#LIBPQ-SSL-SSLMODE-STATEMENTS
Context
Changes proposed in this pull request
We have ssl enforced on the server, use the require mode on client as well.
use sslmode=require
Guidance to review
Link to Trello card
Things to check

[x] This code doesn't rely on migrations in the same Pull Request
[x] If this code includes a migration adding or changing columns, it also backfills existing records for consistency
[x] API release notes have been updated if necessary
[x] New environment variables have been added to the Azure config

Looks like docker-compose's postgres as-is doesn't support SSL. Which seems fair enough — dev envs shouldn't need to either. Maybe we should set this in prod only?

I'll try and enable ssl in docker-compose, unless we prefer to have it just in production?

I'll try and enable ssl in docker-compose, unless we prefer to have it just in production?

I think it might be a bit of a pain to set up — & I'm not sure there's any advantage to having it in test?

+1 for limiting this to prod only for now instead of adding SSL to docker-compose 👍


"Open With" support

The last big thing that is preventing me from using Oni full time is proper integrations into my OS as an editor.
For me this means:

Oni registered as a file editor

This seems to already be the case.

"Open With" support.

Ie, I can double click a text file and it opens in Oni.

"Recent File" support.

This looks to be implemented, since I've got it in my Windows 10 start menu, but clicking the files doesn't actually open them. I expect this is due to the above bullet point.

Really, its just the "Open With" support. With that, I can drop using Notepad++ on Windows 10 and start using Oni for my poking around files and such.
Is this a Windows specific issue, or just that its not been implemented? I can have a look into how you are supposed to do this with Electron, but I'm not the most knowledgeable with it.

Hi @CrossR ! Thanks for logging this issue. These sorts of blockers are really helpful to call out, as I'm sure this is a blocker for others as well.
On Windows, the 'Open With' functionality is controlled by a registry key. So we'd need to update our installer to build up those associations. There's a stackoverflow thread here:
https://stackoverflow.com/questions/26536030/inno-setup-file-association
And some more information about the tooling used to create our setup program (InnoSetup): http://www.jrsoftware.org/ishelp/
On OSX, it's controlled by a plist file - this has some more info:
https://stackoverflow.com/questions/28222787/mac-os-x-file-association-works-but-file-icon-not-changed

With that, I can drop using Notepad++ on Windows 10 and start using Oni for my poking around files and such.

That would be awesome! 😄

Looks like getting the registry keys added isn't so bad, its just a few lines in the setup.template.iss file.
What is awkward is that you need to duplicate those lines for each and every extension you want to support...
If you look at the VSCode .iss file here, you can see its just massive : https://github.com/Microsoft/vscode/blob/master/build/win32/code.iss
Since its so easy to add yourself (Right Click -> Open With -> Look for another app on PC -> Point at oni.exe), I think what makes most sense is just adding a few for now, and then add to it as language servers are added?
That all said, even after Oni is registered as the editor, it doesn't open any files when I double click a file, even when I've said to open with Oni.
I'm less sure how I should go about doing this linking, it looks like on Windows at least the file path you want to load is stored in argv[1], so I need to grab that somewhere and then open the file it says. Just can't work out where the code actually enter when I use the open with dialog.

Looks like getting the registry keys added isn't so bad, its just a few lines in the setup.template.iss file.
What is awkward is that you need to duplicate those lines for each and every extension you want to support...

Cool, nice find! It looks like most of the entries are duplicates, except for the file extensions.... Since we already use a javascript script to generate our iss file, we could probably reduce that duplication and just have like a javascript array of supported extensions.

That all said, even after Oni is registered as the editor, it doesn't open any files when I double click a file, even when I've said to open with Oni.

I just tried this too. I think as you mentioned this is due to some differences in how process.argv works in both scenarios.
When starting oni from the command-line, from npm link, require("electron").remote.process.argv returns ["C:\oni\node_modules\electron\dist\electron.exe", "C:\oni\main.js", "TODO.md"] (3 arguments), whereas if it is from the executable, it looks like: ["C:\Program Files (x86)\Oni\Oni.exe", "TODO.md"] (2 arguments)
So I believe we might not be handling the arguments correctly... we might be assuming there are always two arguments prior to the file, but in this case there is actually only one.

Cool, nice find! It looks like most of the entries are duplicates, except for the file extensions.... Since we already use a javascript script to generate our iss file, we could probably reduce that duplication and just have like a javascript array of supported extensions.

That made a lot more sense so I've swapped to that instead. From checking out the VSCode implementation I also realised how easy it was to add Oni to the Windows Path (#344) so I've done that too.

So I believe we might not be handling the arguments correctly... we might be assuming there are always two arguments prior to the file, but in this case there is actually only one.

Yep, thats the case, in main.js we do createWindow(process.argv.slice(2), process.cwd()). I'm not fully sure how to go about sorting that though.
There is two cases when there is two arguments:

When using open with you have the .exe and the file.
If you call Oni from the command line with no file to open, you have electron.exe and main.js

So we can't just check if there is two arguments and use the second, since the second could either be a file, or main.js. The easy approach is just check if the first argument is oni or electron, but not sure if thats a smart thing to do either.

Windows support for this was added with #613.
I'm probably not the best person to implement this on the Mac side, as I have no devices to test this on.

I'll close this out, since there are Mac issues being tracked in #636  and #346 , and this fixed the windows piece. Makes sense to split these out per-platform.


Now we can no longer view cost analysis.

We had an operational cost analysis of the Google Cloud environment. Now we can no longer view cost analysis.
Description
[NOTE]: We had an operational cost analysis of the Google Cloud environment. Now we can no longer view cost analysis.
Steps to Reproduce
[NOTE]: # We create the Workload and all the steps below:
Create the workload of entities to optimize
Create a collection of workload(s) to target
Click the 'Run' action in the table row to optimize your collection
Click 'Results' to view your optimization history
Improve your stack how you see fit
Expected Behaviour
In the tab it ishow that it is complete, but when we click on the result, it does not show cost analysis.

Hi @Edpiment , are you able to temporarily add my user<EMAIL_ADDRESS>to your account, and let me know the name of the workload and collection you created. Will help me debug the issue a fair bit quicker.
If not then will take some time to determine what could be the issue for this one.

Hi @Kav91 . How are you? You need some additional information. Before it was working normally, after updates no more.

Hi @Edpiment good thanks, we had a long weekend in Sydney, so I have not completed my investigation yet. Will try and provide an update or patch before the end of the week if possible.

Hey @Edpiment can you please try your workload again or view the latest result I ran. Pricing should appear now, let me know if this has resolved your issue.
This was due to a bug on how the google cloud regions were being parsed in the backend.

Hey @Kav91 , Thank you very much for your support and attention, the N2 instance models do not show the values and model of the instance.


#534 Issue Solved - Added Translator Tool

Solves - #534

Japanese

@hars-21  Check if it works all fine, I've resolved conflict but please check if website works all fine

@hars-21  Why don't you merge it after approving, as more time you time you take more conflicts would arise it's been more than 3 days???