Crash after adding first recordings

I can use the add-on with one or two words but then it stops working. I use it to import Uzbek pronunciation.
Error
An error occurred. Please start Anki while holding down the shift key, which will temporarily disable the add-ons you have installed.
If the issue only occurs when add-ons are enabled, please use the Tools>Add-ons menu item to disable some add-ons and restart Anki, repeat until you discover the add-on that is causing the problem.
When you've discovered the add-on that is causing the problem, please report the issue on the add-ons section of our support site.
Debug info:
Anki 2.1.40 (cf446733) Python 3.8.6 Qt 5.14.2 PyQt 5.14.2
Platform: Windows 10
Flags: frz=True ao=True sv=1
Add-ons, last update check: 2021-03-03 10:52:31
Caught exception:
Traceback (most recent call last):
File "aqt\webview.py", line 35, in cmd
File "aqt\webview.py", line 124, in onCmd
File "aqt\webview.py", line 569, in onBridgeCmd
File "aqt\editor.py", line 443, in onBridgeCmd
File "C:\Users\ioann\AppData\Roaming\Anki2\addons21\858591644_init.py", line 158, in on_editor_btn_click
proceed(config_lang.value)
File "C:\Users\ioann\AppData\Roaming\Anki2\addons21\858591644_init.py", line 91, in proceed
results = Forvo(query, language, editor.mw)
File "C:\Users\ioann\AppData\Roaming\Anki2\addons21\858591644\Forvo.py", line 77, in load_search_query
self.html = BeautifulSoup(page, "html.parser")
UnboundLocalError: local variable 'page' referenced before assignment

Thanks for the report! I'll look into it ASAP.

I believe I am also having a similar issue.  I am trying to add Persian pronunciation audio.  When I try I receive a similar error message.
Error
An error occurred. Please start Anki while holding down the shift key, which will temporarily disable the add-ons you have installed.
If the issue only occurs when add-ons are enabled, please use the Tools > Add-ons menu item to disable some add-ons and restart Anki, repeating until you discover the add-on that is causing the problem.
When you've discovered the add-on that is causing the problem, please report the issue on the add-on support site.
Debug info:
Anki 2.1.35 (84dcaa86) Python 3.8.0 Qt 5.14.2 PyQt 5.14.2
Platform: Mac 10.16
Flags: frz=True ao=True sv=2
Add-ons, last update check: 2021-04-05 07:54:28
Add-ons possibly involved: anki-forvo-dl  Forvo Downloader fully automatic with bulk-add mode
Caught exception:
Traceback (most recent call last):
File "/Users/michaelscottspencerii/Library/Application Support/Anki2/addons21/858591644/init.py", line 172, in handle_lang_select
proceed(d.selected_lang)
File "/Users/michaelscottspencerii/Library/Application Support/Anki2/addons21/858591644/init.py", line 99, in proceed
raise Exception()
Exception

I believe I found something on that matter. If I leave a space after a word (e.g. when copying it) the add-on might crash. It looks like it doesn't like it at the end or beginning of the word or phrase.

I double checked and it seems to still give me the same error message

Oh I'm sorry, I forgot about this issue 😬
@ioculus Are you on the latest version? I think I fixed your crash at some point. Please check if you have any updates:

If it still doesn't work, I'll look into it again 👍
@msspencer2 It looks like you're experiencing a different issue. I'll have a look at it, thanks for the report! 👍

My version is the up to date one and it works much better, thanks :)
Pozdrawiam
Jan Oko
blog: http://ioannesoculus.com/
On Tue, 6 Apr 2021 at 20:59, Marius @.***> wrote:

Oh I'm sorry, I forgot about this issue 😬
@ioculus https://github.com/ioculus Are you on the latest version? I
think I fixed your crash at some point. Please check if you have any
updates:
[image: image]
https://user-images.githubusercontent.com/38134006/113764183-eb721c00-971a-11eb-9571-ed0241a2f170.png
If it still doesn't work, I'll look into it again 👍
@msspencer2 https://github.com/msspencer2 It looks like you're
experiencing a different issue. I'll have a look at it, thanks for the
report! 👍
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/realmayus/anki_forvo_dl/issues/15#issuecomment-814365749,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACTKTC6LZZHPXUCLOJUMD7DTHNK2NANCNFSM4YREB6GQ
.


Documentation update - Tekton chains using Vault

Feature request
I'm having an issue trying to figure out all of the correct settings to be able to sign images using a key stored in vault.  I don't believe I am the only one based on some of the comments in #609
Use case
A documentation update would allow for greater adoption of this feature

Using hashivault:// with signers.kms.kmsref will probably be easier to work with (and doesn't require privileged CSI driver).
I'll try and whip together a quick getting started guide next week!

/assign @wlynch


[e2e]: nodejs release main default slsa3

Repo: https://github.com/slsa-framework/example-package/tree/v40.0.409
Run: https://github.com/slsa-framework/example-package/actions/runs/10897409439
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.nodejs.release.main.default.slsa3.yml
Workflow runs: https://github.com/slsa-framework/example-package/actions/workflows/e2e.nodejs.release.main.default.slsa3.yml
Trigger: release
Branch: v40.0.409
Date: Tue Sep 17 06:07:17 UTC 2024

Repo: https://github.com/slsa-framework/example-package/tree/v40.0.410
Run: https://github.com/slsa-framework/example-package/actions/runs/10916465884
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.nodejs.release.main.default.slsa3.yml
Workflow runs: https://github.com/slsa-framework/example-package/actions/workflows/e2e.nodejs.release.main.default.slsa3.yml
Trigger: release
Branch: v40.0.410
Date: Wed Sep 18 06:09:39 UTC 2024
Tests are passing now. Closing this issue.


merge from arlac77/npm-package-template

package.json

chore(scripts): cover@#overwrite c8 -x 'tests/**/*' --temp-directory build/tmp ava && c8 report -r lcov -o build/coverage --temp-directory build/tmp
chore(package): add main from template
docs(package): remove keyword null
chore(package): set $.ava.require='esm' as in template
chore(package): set $.ava.files='tests/*-test.mjs' as in template
chore(package): set $.ava.extensions='mjs' as in template
chore(package): remove unknown value for main ({{main}})

Coverage remained the same at 36.367% when pulling 782f34185d7efae97939b14a7386148de4f5f0b4 on npm-template-sync/1 into c2264f04ae90b17fd594fe353911d7189b1f607d on master.

Codecov Report

Merging #688 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #688   +/-   ##
=======================================
  Coverage   92.14%   92.14%
=======================================
  Files           7        7
  Lines         649      649
  Branches       86       86
=======================================
  Hits          598      598
  Misses         50       50
  Partials        1        1

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 c2264f0...782f341. Read the comment docs.


Support "much greater than" using "mgt"

This fixes https://github.com/asciimath/asciimathml/issues/96 using "much greater than" and "much lower than" unicode characters

Any reason this hasn't been merged yet? Would be quite useful and I see no drawbacks.

To be honest, I just forgot.  I don't have reason to come to this repo often.


Verilog frontend: Do not include semicolon in behavioral_stmt location.

See issue #1855.

I think this is a PR for this comment https://github.com/YosysHQ/yosys/issues/1855#issuecomment-609846010 right?
In which case, I think the better fix would be to include the semi-colon for the block and the assignment. Otherwise, what does the semicolon belong to?
Hypothetically, if an application down the line was to use these locations to rewrite the design, then wouldn't there be a stray semicolon left behind?
I may have got the wrong end of the stick, in which case a minimal test would be helpful to understand what you're fixing here please, as well as ensure it stays fixed.

I think this is a PR for this comment #1855 (comment) right?
Yep.

I don't think a trailing semicolon should be included in anything, in fact.  Semicolons are not meaningful in the design except as a way to separate items for the parser.

Hypothetically, if an application down the line was to use these locations to rewrite the design, then wouldn't there be a stray semicolon left behind?

I actually already have an application using these locations to rewrite the design (based off a very old and quite diverged fork, not upstreamed except for these source locations).
What that application does is use the location information (and other stuff) to permute the AST after parsing but before translation to RTLIL.  If you want a Verilog circuit to look at, you can just use write_verilog as normal.  So there is no semicolon left behind.
I can think of other potential applications that do not use a full-blown parser to rewrite a file, but:

If Yosys is helping to rewrite the design, then ideally Yosys itself will do the rewriting, and Yosys doesn't care about source locations internally.  Yosys has a lot of commands to manipulate the design, so quite a lot of modifying applications should be fine to implement as a Yosys script (unless they need control flow).
If the application cannot be implemented in Yosys, one can still use the Yosys Verilog frontend to make a robust application.  And this is a good idea not just because of semicolon BS :).
Just how blindly is this application going to be copying/rewriting things?  If I know I am about to emit an if(), I know I don't need to also emit a semicolon.  Or, if I know I'm about to emit an assign, I will just emit a semicolon afterwards.

The application I mean when I say rewrite is to rewrite the original source file on disk, not any in memory representation. For example, the preservation of comments, #ifdefs, etc. minimising diff delta, would all be require surgical text modifications. Let's try and be open minded instead of discarding everything it just because you don't see a need for it.
Let's take a step back and think about what source locations are used for. They are used for human debugging (in which case a semicolon doesn't make a difference), IDEs (where it could make a difference), and text manipulation applications (where this does matter).

Let's try and be open minded instead of discarding everything it just because you don't see a need for it.

I don't think that's a fair characterization of my position.  In my post above I argued for not including semicolons, yes, but I laid out a three-point breakdown of why I believed that any sort of source-to-source transformation would not be seriously affected by a decision not to include semicolons.
To be clear, my arguing for a position does not mean I do not keep an open mind.  It just means I would like a refutation of my arguments or an example of something I did not consider.

the preservation of comments, #ifdefs, etc. minimising diff delta, would all be require surgical text modifications

Preservation of comments and #ifdefs is unrelated to including semicolons in source locations, no?  If I see there's a behavioral_stmt at the half-open range 1.3-1.15, the only confusion is whether or not that includes the trailing semicolon.  Unless there are comments and #ifdefs between the behavioral_stmt and the trailing semicolon, there should be no relation.
Minimizing diff deltas is a good example I did not foresee.  In that case you may really be concerned about potential whitespace or comments between a behavioral_stmt and the trailing semicolon.  I still think this is not a big problem, though.  If you want to remove a behavioral_stmt, you know that there is a trailing semicolon and, assuming there are not comments between the behavioral_stmt and the trailing semicolon, you can find it simply by reading characters from the file until you get a semicolon.  I agree this is not ideal, but it's not that bad.

They are used for human debugging (in which case a semicolon doesn't make a difference), IDEs (where it could make a difference), and text manipulation applications (where this does matter).

One of those text manipulation applications might require mapping back from source location to the actual string from the Verilog file.  It just seems more logical to me that mapping from the location of a behavioral_stmt would give e.g. a = 4'b1010 vs. potentially a = 4'b1010  /*magic number?*/;.
Also, it's relatively easy to go from the former to the latter: Just keep reading until you get a semicolon, skipping over comments.  But going from the latter to the former is a bit more complicated: You start at the semicolon, then read backwards, looking ahead for comments, until you find the first character that's not whitespace or part of a comment.  The location of that character is one before the end location of the behavioral_stmt if the semicolon were not included.
Ultimately I think this is a matter of preference.  For some applications it doesn't matter, while for others it matters a bit, but some applications are more naturally implemented with semicolons included in source locations, and some are more naturally implemented with them excluded.


Organize tests

Codecov Report

Merging #120 (850f411) into master (c6c91fc) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #120   +/-   ##
=======================================
  Coverage   94.22%   94.22%
=======================================
  Files          27       27
  Lines         797      797
=======================================
  Hits          751      751
  Misses         46       46

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


investigate: long find lsn for timestamp operations

Follow-up from recent incident which has stopped causing end-user problems with #7585. We still don't know why so many tenants have long times for the query. It is not limited to only many timelines case, because single timeline tenants show it as well.
Guesses so far:

branch is created but never receives writes in Lsn area where there is high commit density => the area is difficult to search through every time

assumption is that multiple branches make this N times harder
cache should help, but is insufficient when one search takes a long time, then cache has churned before the next similar timeline

#7755 shows that configuration change bring a particularly bad bisection from 90s to 13s.
I think that there are still cases where we end up doing a lot more work than should reasonably be done:

the prod project with 777 branches, assuming they had "backup alike branches" would had searched for the PITR Lsn over the same pages multiple times

with high slru count this would had been prohibitively long
"backup alike branches" as in branches where last_record_lsn == ancestor_lsn
perhaps we should special case the last_record_lsn == ancestor_lsn case -- we currently do not have metrics on how many timelines have never progressed beyond their ancestor_lsn

even if the many timelines were able to find different PITR lsns (from their branch), we could still do duplicate work if we need to reconstruct past ancestor_lsn

I think this is what we ultimately saw during the bug of image layering only the first partition
then/there the cost of reconstructing the clog pages at the parent was prohibitive

Probably not going to be investigated anymore.
Problem was fixed by vectored reads, but the underlying reason why non-vectored reads were performing poorly is left uninvestigated.


Video: SageWorks Pipeline

Make a video that shows the step-by-step process of creating a pipeline in sageworks

This is done, we'll obviously make another one when the functionality moves forward.


publish ngx-slice-kit docker image to github public registry

to remove: https://github.com/rovergulf/ngx-slice-kit/blob/main/.github/workflows/build_publish_gcr.yml
reference: https://docs.github.com/en/actions/publishing-packages/publishing-docker-images
to add:
ghcr.yml
name: Create and publish a Docker image

on:
  push:
    tags:
      - 'v*.*.*'

env:
  REGISTRY: ghcr.io
  IMAGE_NAME: ${{ github.repository }}

jobs:
  build-and-push-image:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      packages: write

    steps:
      - name: Checkout repository
        uses: actions/checkout@v3

      - name: Set env
        run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV

      - name: Log in to the Container registry
        uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
        with:
          registry: ${{ env.REGISTRY }}
          username: ${{ github.actor }}
          password: ${{ secrets.GITHUB_TOKEN }}

      - name: Extract metadata (tags, labels) for Docker
        id: meta
        uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38
        with:
          images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
          tags: ${{ env.RELEASE_VERSION }}

      - name: Build and push Docker image
        uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc
        with:
          context: .
          push: true
          tags: ${{ steps.meta.outputs.tags }}
          labels: ${{ steps.meta.outputs.labels }}

#523


Font family with all weights available

Hi i'd like to ask what font should we use in order to get all font weights : medium 500, semibold 600, bold : 700, extrabold: 800 and black: 900?
The closest i'm getting is Roboto with font weights 500, 700 and 900.

There are plenty of fonts that cover most or all from 100-900 font weights.
On one common and free source of fonts: google fonts; You can filter by the number of styles and crank it way up. If a font has 18+ styles it's likely going to be all the weights and their italic versions.
https://fonts.google.com/?stylecount=18&sort=popularity

i spent like the last hour searching and haven't got anything! thanks for the immediate reply!
google fonts gave me Montserrat and it has all weights! thank you very much!!


Cleanup removes embedded Python before reboot command is issued

context

IA is running a bash root script in userland
Using master and embedded python
reboot command is issued and present in IA log w/o errors
[InstallApplications] Triggering reboot

workaround

issuing the same command via bash in the subprocess call works as expected
/sbin/shutdown -r now
have IA check for a installed item/sha and then exit 0 after restart
not ideal, hence workaround

further investigation

moved installapplications to Library
ran test.py to simply test the python reboot call

#!/Library/installapplications/Python.framework/Versions/3.8/bin/python3
...
subprocess.call(['/sbin/shutdown', '-r', 'now'])
...

that worked as expected

hypothesis

cleanup(0) being triggered prior to a reboot breaks embedded python

    cleanup(0)

    if reboot:
        iaslog('Triggering reboot')
        subprocess.call(['/sbin/shutdown', '-r', 'now'])

so calling the embedded python at /Library/installapplications/Python.framework/Versions/3.8/bin/python3 would fail
it doesn't exist, since we just cleaned it up
but this script is still in memory so it works?

@erikng
I pulled fixrebootpy3 and deployed.
The process ended in a reboot as expected.

Did everything cleanup?
Was the last log event after the reboot a cleanup entry?

Yes, verified:

/Libraryinstallpllications/* was removed
LaunchAgent and LaunchDaemon were removed.

Logs appeared as expected:
...
Python[107:1419] [InstallApplications] Starting root script: /Library/installapplications/script.sh
Python[107:1419] [InstallApplications] Running Script: /Library/installapplications/script.sh
Python[107:1419] [InstallApplications] Attempting to remove LaunchDaemon: /Library/LaunchDaemons/com.erikng.installapplications.plist
Python[107:1419] [InstallApplications] Attempting to remove LaunchAgent: /Library/LaunchAgents/com.erikng.installapplications.plist
Python[107:1419] [InstallApplications] Targeting user id for LaunchAgent removal: 0
Python[107:1419] [InstallApplications] Attempting to remove LaunchAgent: com.erikng.installapplications
Python[107:1419] [InstallApplications] Attempting to remove InstallApplications directory: /Library/installapplications
Python[107:1419] [InstallApplications] Attempting to remove LaunchDaemon: com.erikng.installapplications
Python[107:1419] [InstallApplications] Cleanup done. Exiting.

Hm, could have sworn on the branch there should have been a reboot log event prior to the last message.

Addressed with https://github.com/erikng/installapplications/pull/59


Linux build fails after pulling from repo

Prerequisites

[X ] Put an X between the brackets on this line if you have done all of the following:

Reproduced the problem in Safe Mode: http://flight-manual.atom.io/hacking-atom/sections/debugging/#using-safe-mode
Followed all applicable steps in the debugging guide: http://flight-manual.atom.io/hacking-atom/sections/debugging/
Checked the FAQs on the message board for common solutions: https://discuss.atom.io/c/faq
Checked that your issue isn't already filed: https://github.com/issues?utf8=✓&q=is%3Aissue+user%3Aatom
Checked that there is not already an Atom package that provides the described functionality: https://atom.io/packages

Description
After cloning Github repo for Linux source build, subsequent build attempts fail.
[Description of the issue]
Building from fresh checkout proceeds fine.  But after pulling changes, a series of errors occurs with ENOENT, e.g.
npm ERR! enoent ENOENT: no such file or directory, rename '/home/brianc/atom/apm/node_modules/atom-package-manager/node_modules/npm/node_modules/ansicolors' -> '/home/brianc/atom/apm/node_modules/atom-package-manager/node_modules/npm/node_modules/.ansicolors.DELETE' npm ERR! enoent This is related to npm not being able to find a file.
Steps to Reproduce

Do a fresh checkout from Github
Build without problems
Next day, pull changes from repo
Build now fails in a section that appears to rename a series of directories
Fixing one such error (e.g. from above, creating the ansicolors directory, leads to another and then another, all of the same ilk.

Expected behavior: [What you expect to happen]
Clean build.
Actual behavior: [What actually happens]
Build fails as noted.
Reproduces how often: [What percentage of the time does it reproduce?]
Always.
Versions
Current checkout from master; this has been happening for about a week.  Build system is Linux Slackware 14.2 (current),  Node v8.2.1, npm v3.10.10

Thanks for the report - I don't have a Linux install to test with right now but have you tried running a script/clean before building again?

That does indeed solve the issue, although it seems at the cost of an increased build time.  Thanks.

The fix that's worked for me is to remove any package-lock files that npm may have generated before building again.  It seems like npm is still working out some issues with those files.


feat: adding quotes of motivational and philosophical category

Added 5 Quotes in Quotes.js based on motivation and philosophy.

please merge my pr under hactoberfest2023


How can I scalable independently services such as fronted services?

I see the docus, in the concepts of clusters.  It says that "a real-life production deployment can have 5 Frontend, 15 History, 17 Matching, and 3 Worker Services per cluster."   But I don't see the specific operation steps.   If I install Temporal CLI using cURL in my self-host, where can I scalable the services, in which config docus(I can't find some) or in the other way?   I hope someone can teach me that.

Thanks for reaching out!  It's great that you are interested in scaling Temporal.
The documentation you referenced mentions a recommended configuration for production environments, but doesn't specify exact operational steps.  You can learn about how to scale your Temporal deployment with the Self-Hosted guide or by using Temporal Cloud.
Since you're using Temporal CLI, I would recommend learning more about how to configure and deploy a self-hosted Temporal Service.
Temporal Cloud can also be used to scale your Temporal deployment.  Learn more about Temporal Cloud.
Temporal is powerful, and you can choose what deployment works best for you.

Thanks for reaching out!
You're looking for information on how to scale Temporal services.  The documentation you linked to does mention that a production Temporal Service can have a specific number of services running for each type.  However, it doesn't have detailed steps on how to scale in a self-hosted setup.
I'd suggest taking a look at the Self-hosted guide for more in-depth information on setting up a production-ready Temporal Service.  The Temporal Helm charts repository provides detailed information on deploying Temporal services to Kubernetes.  You can also refer to the Scaling Temporal: The Basics blog post.
If you have more questions, feel free to ask!


Detailed install instructions.

Being new to HHVM, Hack, and PHP, I struggled a bit on the install.

Thanks, though I think we need something more involved on docs.hhvm.com instead, over at github.com/hhvm/user-documentation
This is because:

this isn't xhp-lib specific
a lot more detail is really needed, e.g. how to install hhvm-autoload, what it does, why you shouldn't have public/ in your roots and want something else instead - the latter is touched on in https://docs.hhvm.com/hhvm/installation/docker#building-a-docker-image-for-a-website__best-practices , but isn't docker-specific

This'll probably end up being part of the 'getting started' documentation, especially as hhvm-autloaded is needed for the Hack Standard Library.

That sounds good, any details / guidance in docs would be appreciated. The instructions in the hhvm are similar to those in this README.
The 2.4 xhp-lib dependencies installed hhvm-autoload. I only created hh_autoload.json and filled out roots to squelch install / run errors. It didn't seem to create any sensitive files in public. I figured it meant root of what was being served. I'll change that to the root of the project.
Thanks!

I think we should change from “this is how you make  work” to “this is how you get everything we recommend working” - with stuff like this on advanced pages


Add Payment details Uri for Domestic Standing Order

Description
Add Payment details Uri for Domestic Standing Order in OBApiReference.
Acceptance criteria

[ ] GET /domestic-standing-orders/{DomesticStandingOrderId}/payment-details is shown in RS Discovery

Will be added in https://github.com/SecureBankingAccessToolkit/SecureBankingAccessToolkit/issues/331


Create nogales.txt

added a new university

@hhpedrazaitn First stage of verification passed, official domain is itnogales.edu.mx as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision. Proof of domain ownership: http://siabuc.itnogales.edu.mx/CatalogoBasico/Home/Contacto

@philipto good day let me know if necessary anything else please, I'm very happy using your tools

@hhpedrazaitn Thank you for your patience while waiting for a review and processing your request. Pull request merged.


ignoreAdditionalCalls (ignoreMultipleCalls?)

Hi, basvodde and arstrube
My colleagues raised an requirements for "ignore additional (multiple, extra) calls".
Here, we have ignoreOtherCalls which does not ignore the expected one.
Then, we add a feature ignoreAdditionalCalls which behaviors like below. What I concern is the name "ignoreAdditionalCalls". Is this name a good one?
Thanks!
TEST(MockCallTest, ignoreAdditionalCallsExceptForTheExpectedOne)
{
mock().expectOneCall("foo");
mock().ignoreAdditionalCalls();
mock().actualCall("foo");
/* The following calls will not fail, because the additional calls for expected is ignored. */
mock().actualCall("foo");
mock().actualCall("foo").withParameter("foo", 1);

mock().clear();

}

Coverage increased (+0.0005%) to 99.874% when pulling 7231844e3725b436d8cadd19caddb5e491364e37 on maxilai:issue_ignoreAdditionalCalls into 7ea6f14e2e984d03d4911c65402b30bedc1fd487 on cpputest:master.

I'm somewhat uncomfortable with this feature as I don't know in what case you would want to use it. Could you explain that to me? It feels it opens the door to making a lot weaker tests.

I'm not comfortable either.
The thing is. In they test cases, they call a mocked function many times.
They don't care how many times the calling happens. They just care
the behaviors of production code as expected based the returned value from
this mocked function.
In the production code, they will call this mocked function many times.
like below:
while (condition)
{
...
importantValue = p->foo(parameters); // Here, the mocked funciton will
be called.
...
otherImportantValue = whatEverFunctions();
condition = caculatingCondition(importantValue, otherImportantValue);
}
Here, they just want to call the mocked function in order to get a
important value. But they don't care how many times this mock function are
called.
When they make some change from whatEverFunction() or any other related
functions. The times of happening of the mocked function will change. They
have to change the test code to revise the parameter amount from
expectNCalls method for lots of test cases. So , they raise this
requirement.
With ignoreOtherCalls and ignoreAdditionCalls, programmers will be able to
have cpputest to only check what they specified by expectedOne(N/No)Calls.
They want 5 calls, the cpputest will only check the first 5 calls, ignore
the 6th and 7th etc.
Or, do you guys have any good suggestion?
Thanks
Max MA
Chengdu Design Center, MSI
(86)28-8789-2373, (86)18602867063
2016-05-20 9:44 GMT+08:00 Bas Vodde<EMAIL_ADDRESS>
I'm somewhat uncomfortable with this feature as I don't know in what case
you would want to use it. Could you explain that to me? It feels it opens
the door to making a lot weaker tests.
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_cpputest_cpputest_pull_973-23issuecomment-2D220497329&d=CwMCaQ&c=q3cDpHe1hF8lXU5EFjNM_A&r=FVxCMeE3ZYygueFGtwMh7hYD5ccLcrx20IyPZhBafNI&m=YJ4dpoZRX5r5cNcAkDupWrs4HMClsbMfhSfR20jo7rI&s=lem2AUJc5oIeVMzIltvAyGattrKuqPLGWQTxClV2A3Y&e=

As a matter of interest, how do they determine pass / fail? I assume they have some way to check the value of condition in the test?
One thing I don't really understand is, if the first N calls influence the value of condition, how come the rest of the calls don't? This seems kind of strange to me.
Would it solve their problem if they set default return values for these mocks and then used disable() - enable()` to switch of mocking altogether, while the function under test is executed?

@maxilai It feels a bit like a hack to patch poorly written unit tests, so I'm very hesitant to add it. Even if we would add it, the way it is suggested now is generic so that it is for all expectations. That would make even less sense as you mentioned the ignoreAdditional calls ought to be per function.
I'd love to hear others opinion, but for me so far, it feels a bit wrong. Perhaps you could come up with an actual concrete test, so we could look at that?

Thanks for the advice from all of you.
I will contact with my colleagues to get more information about their test cases. Thanks again.

As a matter of fact, this behavior can be achieved with the functionality added in PR #1018, but in a more controlled way expectation by expectation instead of allowing all the expectations to get additional calls (which might be inadequate for some tests).


Max Length Size

Currently in version 18.2, our node is not accessible due to its size.
Talking about over 100K png inscriptions in hundreds of different wallets.
getting this error:
error: wallet failed get outputs: Failed to buffer the request body: length limit exceeded
Is there a way to increase this limit

This one is pretty easy, we need to configure axum to allow a longer request body size:
https://docs.rs/axum/latest/axum/extract/struct.DefaultBodyLimit.html


Compilation failed, what was the environment for your program? Much thanks

@bgshih Dear author
As we are trying the reproduce your work, we found that the program is no longer compatible with latest folly, fbthrift, thpp, and fblualib.
Solution in #1 is no longer workable either due to that version is no longer compatible with latest Ubuntu 16.04.
If update your program to the latest thpp, fblualib, folly and fbthrift requires too much effort, can you let us know what was the environment for your program?
The version of: linux (ubuntu 14.04, 15.04, 16.04, etc.?)
torch (torch 7?)
folly (roughly which time period?)
fbthrift (roughly which time period?)
thpp (roughly which time period?)
fblualib (roughly which time period?)
cuda
cudnn
Thank you

@Suyuanhang ：The correct versions is as follows, and I have try that :
you can take it as a shell file and just run it :
#!/bin/bash
git clone https://github.com/facebook/folly.git
git clone -b v2<IP_ADDRESS> https://github.com/facebook/fbthrift.git
git clone https://github.com/facebook/thpp
git clone https://github.com/facebook/fblualib
cd thpp
git reset --hard ebb4fcbb4a9b3310ac0a36eb37775a45f111448b
cd ..
cd fblualib
git reset --hard bdcf94bb835c41b5d822371fb6f7b75c1d53efbc
cd ..
cd folly
git reset --hard 0fdbb61ecd5679f0cd2bf13f867e9b72212ec371
cd ..

@Suyuanhang  cuda 7.5 and cudnn 5 (and later) work!

I use the one-step installation script to install and compile  folly, fbthrift, TH++, and FBLuaLib on my machine.  The demo runs well.
curl -sk https://raw.githubusercontent.com/facebook/fblualib/master/install_all.sh | bash
The environment for this program:
Ubuntu 14.04
Torch7
Cuda 7.5
Cudnn 5 (and later)

@lvpengyuan Thank you for the comments. I can get the code compiled under your system specifications.
BTW, I used gcc 4.8.

I got this error in trying to build crnn (after adding the path to the thrift library)
In file included from /usr/local/include/folly/io/IOBuf.h:32:0,                  from /usr/local/include/thrift/lib/cpp2/protocol/Protocol.h:25,                  from /home/kapitan/torch/install/include/thpp/if/gen-cpp2/Tensor_types.h:10,                  from /home/kapitan/torch/install/include/thpp/Storage.h:22,                  from /home/kapitan/torch/install/include/thpp/Tensor.h:14,                  from /home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:8: /usr/local/include/folly/FBVector.h: In lambda function: /usr/local/include/folly/FBVector.h:1432:49: error: parameter packs not expanded with ‘...’:            M_construct(start, std::forward<Args>(args)...);                                                  ^ /usr/local/include/folly/FBVector.h:1432:49: note:         ‘args’ In file included from /home/kapitan/torch/install/include/thpp/if/gen-cpp2/Tensor_types.h:13:0,                  from /home/kapitan/torch/install/include/thpp/Storage.h:22,                  from /home/kapitan/torch/install/include/thpp/Tensor.h:14,                  from /home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:8: /usr/local/include/folly/io/Cursor.h: In member function ‘size_t folly::io::detail::CursorBase<Derived, BufType>::cloneAtMost(std::unique_ptr<folly::IOBuf>&, size_t)’: /usr/local/include/folly/io/Cursor.h:443:13: error: ‘make_unique’ is not a member of ‘std’        buf = std::make_unique<folly::IOBuf>();              ^ /usr/local/include/folly/io/Cursor.h:443:13: note: suggested alternative: In file included from /usr/local/include/thrift/lib/cpp/Thrift.h:23:0,                  from /usr/local/include/thrift/lib/cpp2/Thrift.h:20,                  from /home/kapitan/torch/install/include/thpp/if/gen-cpp2/Tensor_types.h:9,                  from /home/kapitan/torch/install/include/thpp/Storage.h:22,                  from /home/kapitan/torch/install/include/thpp/Tensor.h:14,                  from /home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:8: /usr/local/include/folly/Memory.h:63:1: note:   ‘folly::make_unique’  make_unique(Args&&...) = delete;  ^ In file included from /home/kapitan/torch/install/include/thpp/if/gen-cpp2/Tensor_types.h:13:0,                  from /home/kapitan/torch/install/include/thpp/Storage.h:22,                  from /home/kapitan/torch/install/include/thpp/Tensor.h:14,                  from /home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:8: /usr/local/include/folly/io/Cursor.h:443:42: error: expected primary-expression before ‘>’ token        buf = std::make_unique<folly::IOBuf>();                                           ^ /usr/local/include/folly/io/Cursor.h:443:44: error: expected primary-expression before ‘)’ token        buf = std::make_unique<folly::IOBuf>();                                             ^ /home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp: In instantiation of ‘int {anonymous}::forwardBackward(lua_State*) [with T = float; lua_State = lua_State]’: /home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:194:16:   required from ‘const luaL_Reg {anonymous}::Registerer<float>::functions_ [3]’ /home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:203:44:   required from ‘static void {anonymous}::Registerer<T>::registerFunctions(lua_State*) [with T = float; lua_State = lua_State]’ /home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:210:24:   required from here /home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:22:76: error: conversion from ‘thpp::TensorBase<float, thpp::Storage<float>, thpp::Tensor<float> >::Ptr {aka thpp::TensorPtr<thpp::Tensor<float> >}’ to non-scalar type ‘const thpp::Tensor<float>’ requested      const thpp::Tensor<T> input     = fblualib::luaGetTensorChecked<T>(L, 1);                                                                             ^ /home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:23:78: error: conversion from ‘thpp::TensorBase<int, thpp::Storage<int>, thpp::Tensor<int> >::Ptr {aka thpp::TensorPtr<thpp::Tensor<int> >}’ to non-scalar type ‘const thpp::Tensor<int>’ requested      const thpp::Tensor<int> targets = fblualib::luaGetTensorChecked<int>(L, 2);                                                                               ^ /home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:25:76: error: conversion from ‘thpp::TensorBase<float, thpp::Storage<float>, thpp::Tensor<float> >::Ptr {aka thpp::TensorPtr<thpp::Tensor<float> >}’ to non-scalar type ‘thpp::Tensor<float>’ requested      thpp::Tensor<T> gradInput       = fblualib::luaGetTensorChecked<T>(L, 4);                                                                             ^ /home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp: In instantiation of ‘int {anonymous}::naiveDecoding(lua_State*) [with T = float; lua_State = lua_State]’: /home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:194:16:   required from ‘const luaL_Reg {anonymous}::Registerer<float>::functions_ [3]’ /home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:203:44:   required from ‘static void {anonymous}::Registerer<T>::registerFunctions(lua_State*) [with T = float; lua_State = lua_State]’ /home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:210:24:   required from here /home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:153:73: error: invalid initialization of reference of type ‘const thpp::Tensor<float>&’ from expression of type ‘thpp::TensorBase<float, thpp::Storage<float>, thpp::Tensor<float> >::Ptr {aka thpp::TensorPtr<thpp::Tensor<float> >}’      const thpp::Tensor<T>& input = fblualib::luaGetTensorChecked<T>(L, 1);                                                                          ^ /home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp: In instantiation of ‘int {anonymous}::forwardBackward(lua_State*) [with T = double; lua_State = lua_State]’: /home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:194:16:   required from ‘const luaL_Reg {anonymous}::Registerer<double>::functions_ [3]’ /home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:203:44:   required from ‘static void {anonymous}::Registerer<T>::registerFunctions(lua_State*) [with T = double; lua_State = lua_State]’ /home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:211:25:   required from here /home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:22:76: error: conversion from ‘thpp::TensorBase<double, thpp::Storage<double>, thpp::Tensor<double> >::Ptr {aka thpp::TensorPtr<thpp::Tensor<double> >}’ to non-scalar type ‘const thpp::Tensor<double>’ requested      const thpp::Tensor<T> input     = fblualib::luaGetTensorChecked<T>(L, 1);                                                                             ^ /home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:23:78: error: conversion from ‘thpp::TensorBase<int, thpp::Storage<int>, thpp::Tensor<int> >::Ptr {aka thpp::TensorPtr<thpp::Tensor<int> >}’ to non-scalar type ‘const thpp::Tensor<int>’ requested      const thpp::Tensor<int> targets = fblualib::luaGetTensorChecked<int>(L, 2);                                                                               ^ /home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:25:76: error: conversion from ‘thpp::TensorBase<double, thpp::Storage<double>, thpp::Tensor<double> >::Ptr {aka thpp::TensorPtr<thpp::Tensor<double> >}’ to non-scalar type ‘thpp::Tensor<double>’ requested      thpp::Tensor<T> gradInput       = fblualib::luaGetTensorChecked<T>(L, 4);                                                                             ^ /home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp: In instantiation of ‘int {anonymous}::naiveDecoding(lua_State*) [with T = double; lua_State = lua_State]’: /home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:194:16:   required from ‘const luaL_Reg {anonymous}::Registerer<double>::functions_ [3]’ /home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:203:44:   required from ‘static void {anonymous}::Registerer<T>::registerFunctions(lua_State*) [with T = double; lua_State = lua_State]’ /home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:211:25:   required from here /home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:153:73: error: invalid initialization of reference of type ‘const thpp::Tensor<double>&’ from expression of type ‘thpp::TensorBase<double, thpp::Storage<double>, thpp::Tensor<double> >::Ptr {aka thpp::TensorPtr<thpp::Tensor<double> >}’      const thpp::Tensor<T>& input = fblualib::luaGetTensorChecked<T>(L, 1);                                                                          ^ CMakeFiles/crnn.dir/build.make:86: recipe for target 'CMakeFiles/crnn.dir/ctc.cpp.o' failed make[2]: *** [CMakeFiles/crnn.dir/ctc.cpp.o] Error 1 CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/crnn.dir/all' failed make[1]: *** [CMakeFiles/crnn.dir/all] Error 2 Makefile:83: recipe for target 'all' failed make: *** [all] Error 2 cp: cannot stat '*.so': No such file or directory
I used the one line installation script to install the dependcies folly, wangle, fbthrift, thpp, and fblualib:
curl -sk https://raw.githubusercontent.com/facebook/fblualib/master/install_all.sh | bash
The environment for this program:
Ubuntu 16.04
Torch7
Cuda 8
Cudnn 5 (and later)

I got this error in building ctc.cpp
/home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp: In instantiation of ‘int {anonymous}::forwardBackward(lua_State*) [with T = float; lua_State = lua_State]’:
/home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:194:16:   required from ‘const luaL_Reg {anonymous}::Registerer<float>::functions_ [3]’
/home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:203:24:   required from ‘static void {anonymous}::Registerer<T>::registerFunctions(lua_State*) [with T = float; lua_State = lua_State]’
/home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:210:24:   required from here
/home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:22:76: error: conversion from ‘thpp::TensorBase<float, thpp::Storage<float>, thpp::Tensor<float> >::Ptr {aka thpp::TensorPtr<thpp::Tensor<float> >}’ to non-scalar type ‘const thpp::Tensor<float>’ requested
     const thpp::Tensor<T> input     = fblualib::luaGetTensorChecked<T>(L, 1);
                                                                            ^
/home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:23:78: error: conversion from ‘thpp::TensorBase<int, thpp::Storage<int>, thpp::Tensor<int> >::Ptr {aka thpp::TensorPtr<thpp::Tensor<int> >}’ to non-scalar type ‘const thpp::Tensor<int>’ requested
     const thpp::Tensor<int> targets = fblualib::luaGetTensorChecked<int>(L, 2);
                                                                              ^
/home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:25:76: error: conversion from ‘thpp::TensorBase<float, thpp::Storage<float>, thpp::Tensor<float> >::Ptr {aka thpp::TensorPtr<thpp::Tensor<float> >}’ to non-scalar type ‘thpp::Tensor<float>’ requested
     thpp::Tensor<T> gradInput       = fblualib::luaGetTensorChecked<T>(L, 4);
                                                                            ^
/home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp: In instantiation of ‘int {anonymous}::naiveDecoding(lua_State*) [with T = float; lua_State = lua_State]’:
/home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:194:16:   required from ‘const luaL_Reg {anonymous}::Registerer<float>::functions_ [3]’
/home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:203:24:   required from ‘static void {anonymous}::Registerer<T>::registerFunctions(lua_State*) [with T = float; lua_State = lua_State]’
/home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:210:24:   required from here
/home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:153:73: error: invalid initialization of reference of type ‘const thpp::Tensor<float>&’ from expression of type ‘thpp::TensorBase<float, thpp::Storage<float>, thpp::Tensor<float> >::Ptr {aka thpp::TensorPtr<thpp::Tensor<float> >}’
     const thpp::Tensor<T>& input = fblualib::luaGetTensorChecked<T>(L, 1);
                                                                         ^
/home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp: In instantiation of ‘int {anonymous}::forwardBackward(lua_State*) [with T = double; lua_State = lua_State]’:
/home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:194:16:   required from ‘const luaL_Reg {anonymous}::Registerer<double>::functions_ [3]’
/home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:203:24:   required from ‘static void {anonymous}::Registerer<T>::registerFunctions(lua_State*) [with T = double; lua_State = lua_State]’
/home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:211:25:   required from here
/home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:22:76: error: conversion from ‘thpp::TensorBase<double, thpp::Storage<double>, thpp::Tensor<double> >::Ptr {aka thpp::TensorPtr<thpp::Tensor<double> >}’ to non-scalar type ‘const thpp::Tensor<double>’ requested
     const thpp::Tensor<T> input     = fblualib::luaGetTensorChecked<T>(L, 1);
                                                                            ^
/home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:23:78: error: conversion from ‘thpp::TensorBase<int, thpp::Storage<int>, thpp::Tensor<int> >::Ptr {aka thpp::TensorPtr<thpp::Tensor<int> >}’ to non-scalar type ‘const thpp::Tensor<int>’ requested
     const thpp::Tensor<int> targets = fblualib::luaGetTensorChecked<int>(L, 2);
                                                                              ^
/home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:25:76: error: conversion from ‘thpp::TensorBase<double, thpp::Storage<double>, thpp::Tensor<double> >::Ptr {aka thpp::TensorPtr<thpp::Tensor<double> >}’ to non-scalar type ‘thpp::Tensor<double>’ requested
     thpp::Tensor<T> gradInput       = fblualib::luaGetTensorChecked<T>(L, 4);
                                                                            ^
/home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp: In instantiation of ‘int {anonymous}::naiveDecoding(lua_State*) [with T = double; lua_State = lua_State]’:
/home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:194:16:   required from ‘const luaL_Reg {anonymous}::Registerer<double>::functions_ [3]’
/home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:203:24:   required from ‘static void {anonymous}::Registerer<T>::registerFunctions(lua_State*) [with T = double; lua_State = lua_State]’
/home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:211:25:   required from here
/home/kapitan/Desktop/Jerome/crnn/src/cpp/ctc.cpp:153:73: error: invalid initialization of reference of type ‘const thpp::Tensor<double>&’ from expression of type ‘thpp::TensorBase<double, thpp::Storage<double>, thpp::Tensor<double> >::Ptr {aka thpp::TensorPtr<thpp::Tensor<double> >}’
     const thpp::Tensor<T>& input = fblualib::luaGetTensorChecked<T>(L, 1);

I used the one line installation script to install the dependcies folly, wangle, fbthrift, thpp, and fblualib:
curl -sk https://raw.githubusercontent.com/facebook/fblualib/master/install_all.sh | bash
The environment for this program:
Ubuntu 16.04
Torch7
Cuda 8
Cudnn 5 (and later)

@selcouthlyBlue
Use Ubuntu 14.04 instead of 16.04, I used cuda 7.5, not sure if cuda 8.0 works.

Using the above one step installation
curl -sk https://raw.githubusercontent.com/facebook/fblualib/master/install_all.sh | bash
i got error in the thpp installation in TensorSerialization.cpp.o
any help ?
i am using ubuntu 14.04 and Cuda 7.5


[python-package] Add type hints to the callback file

What I did

Added type hints for callback.py as per https://github.com/microsoft/LightGBM/issues/3756.
Verified that there were no additional errors when running mypy.

Note

I ran into a problem from mypy where function attributes raise errors. I implemented a workaround as suggested in the discussion thread (https://github.com/python/mypy/issues/2087).

@jameslamb Can you please confirm if I need to resolve these failed tests or if they're not caused by my patch?

Some of the failures are unrelated to this PR's changes and should be fixed by merging the most recent master (https://github.com/microsoft/LightGBM/pull/4095).
However, I think the check-docs failure is probably related to this pull request.

[autosummary] generating autosummary for: Python-API.rst

Warning, treated as error:
[autosummary] failed to import 'lightgbm.Booster': no module named lightgbm.Booster

That error from Sphinx is not very informative but it usually is caused by a legitimate underlying problem, for example https://github.com/microsoft/LightGBM/pull/3192#issuecomment-754231716.
Can you please provide the specific mypy error(s) that this PR attempts to fix with CallbackWithAttributes?

Here is an example of a mypy error that CallbackWithAttributes resolves:
python-package\lightgbm\callback.py:86: error: "Callable[[CallbackEnv], None]" has no attribute "order"
I did import an additional package (typing_extensions) which I guess is what caused the problem. Removing the package and one associated type hint resulted in no errors.

I'm afraid decorator will hurt performance as callback functions are called on each iteration.

Removing the decorator results in 5 additional errors from mypy:
python-package\lightgbm\callback.py:71: error: "Callable[[CallbackEnv], None]" has no attribute "order"
python-package\lightgbm\callback.py:102: error: "Callable[[CallbackEnv], None]" has no attribute "order"
python-package\lightgbm\callback.py:142: error: "Callable[[CallbackEnv], None]" has no attribute "before_iteration"
python-package\lightgbm\callback.py:143: error: "Callable[[CallbackEnv], None]" has no attribute "order"
python-package\lightgbm\callback.py:240: error: "Callable[[CallbackEnv], None]" has no attribute "order"

Thanks! I agree with @StrikerRUS and I didn't think about the overhead before. In this first round of adding type hints to the library, I think it's desirable to only make changes that don't negatively affect the performance of lightgbm.
Can you please add # type: ignore comments for the lines you've mentioned in https://github.com/microsoft/LightGBM/pull/4093#issuecomment-811067338?

Cool, didn't know I could do that.

Cool, didn't know I could do that.

oh, yep! This is super useful. Python is a really flexible language, so there are a lot of situations that are hard for mypy to understand. It's just a static analyzer and doesn't run your code.
By the way, I think there needs to be two spaces between the end of the line and the comment
x = something()  # type: ignore

We resolved a few blocking issues in continuous integration today, so I've updated this with the changes from the latest master. Will merge once it builds. Thanks again for the help!


.toml question

How can I solve the problem of missing pyproject.toml file when installing edgewaresetup.bat

I haven't heard of a problem like this before, can you provide any error messages or logs?


fix(harper_ls): filetype "csharp" -> "cs"

need sanity check from @elijah-potter

Looks good to me. Thanks for catching that.


Documentation

I have a few suggestions to improve documentation per openjournals/joss-reviews#2094
Concerning the tutorial:

[x] Specify matlab, mtex, and gmsh versions required (potentially gcc underlying gmsh)
[x] Data initialization should have a heading and code block formatting (currently only done for the "Improve" section), ideally pointing out this examples from mtex are being used
[x] Link to doc page in README (maybe add image)
[x] In the "Mesh" and "Customize" sections the figures are not directly from code examples - either be very clear about this or add how to obtain these images as part of the tutorial

The example cases are easy to follow and seem to cover the extent of the intended uses, but unit testing is missing. Some recently accepted joss papers using matlab have what seems to be an offline-automated test suite

[ ] Add unit tests

I did not see any API documentation (maybe I am forgetting how to access this in matlab)

[x] Add API docs

Finally, make sure to add a CONTRIBUTING.md file for Github contributors

[x] CONTRIBUTING.md

Thank you @streeve for your quick review. All the points you mentioned have been taken into consideration.
Just to mention, the unit test are not that easy to implement on MATLAB. As far as I know, Code Ocean is the easiest way to provide offline test for reproducibility. The link to the related Capsule has been added in README.md.
Considering the API docs, I am not sure to understand its meaning in the MATLAB scripting context. All functions and methods are provided along with help sections (in addition to documentation). For instance, juste type
help gmshGeo

to get help about the gmshGeo constructor.

Great, thanks
The Code Ocean online environment is quite nice. My only objection is that (as far as I can tell) it only tests one case. Something like https://github.com/vitorsr/SIHR/blob/master/utils/automated_testing.m could work

For the API docs, a section just mentioning both help (thank you, I haven't actively used matlab in a while) and methods to make it easy to explore all options in the class

I have added a file named unitTest. It sums up all the examples given in the eponymous folder, plus it plots the geometry in each case.

Alternatively, I have update the code on code Ocean, following your recommendations (that is, provide multiple examples).
Tell me if if need to keep the aforementioned unitTest.m or/and the reference to the capsule.

I think unitTest.m is exactly what you want: it runs the main examples, is easy to extend, and you can run on Code Ocean or locally


For Tutorial, are we missing passing in AWS-managed provisioning role?

@niallthomson or @clareliguori ... thanks for your work on this plugin.
I followed the tutorial, including setting up a analect-gitops-aws-proton-user with the appropriate aws-proton policies, as mentioned in this issue.  For now, I have added the same policies to my gitops user, in order to be able to work through the tutorial fully.
As part of the aws-proton setup wizard, you are asked to set up a provisioning pipeline role (see below).

It seems this is required to setup a proton environment (using the UI approach, at least).

Since I think the tutorial template is seeking to do this programmatically, then we are somehow not passing that arn-role for the pipeline-role into the docs/tutorial-assets/fargate-nginx-template/template.yaml file somewhere?
Perhaps this is related to why I am getting an error with missing permissioning for createServiceLinkedRole.

To address that temporarily, I added a new policy, although I'm not sure if that is superfluous if there is some fix to what I mention above.
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:CreateServiceLinkedRole",
            "Resource": "arn:aws:iam::*:role/aws-service-role/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeAccountAttributes"
            ],
            "Resource": "*"
        }
    ]
}

On re-running the task, I then get blocked by the absence of the fargate-env ... whose creation I presume should be automated by this task ... but somehow it doesn't know about the pipeline-role.  If you can offer any guidance for me to get this resolved. Thanks.

By the way, this was the ProtonRolePolicy-analect-io-aws-proton-pipeline-role, as generated by the Wizard.
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "cloudformation:CancelUpdateStack",
                "cloudformation:ContinueUpdateRollback",
                "cloudformation:CreateChangeSet",
                "cloudformation:CreateStack",
                "cloudformation:DeleteChangeSet",
                "cloudformation:DeleteStack",
                "cloudformation:DescribeChangeSet",
                "cloudformation:DescribeStackDriftDetectionStatus",
                "cloudformation:DescribeStackEvents",
                "cloudformation:DescribeStackResourceDrifts",
                "cloudformation:DescribeStacks",
                "cloudformation:DetectStackResourceDrift",
                "cloudformation:ExecuteChangeSet",
                "cloudformation:ListChangeSets",
                "cloudformation:ListStackResources",
                "cloudformation:UpdateStack"
            ],
            "Resource": "arn:aws:cloudformation:*:xxxxxx:stack/AWSProton-*"
        },
        {
            "Effect": "Allow",
            "NotAction": [
                "organizations:*",
                "account:*"
            ],
            "Resource": "*",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "aws:CalledVia": [
                        "cloudformation.amazonaws.com"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "organizations:DescribeOrganization",
                "account:ListRegions"
            ],
            "Resource": "*",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "aws:CalledVia": [
                        "cloudformation.amazonaws.com"
                    ]
                }
            }
        }
    ]
}

With these policies against my user analect-gitops-aws-proton-user, I was able to move forward.

However, this tutorial seems to rely on the fargate-env environment already being in place - something I had to manually perform in the UI.
I was then able to run the task from within the Backstage UI.
However, on the backend in AWS, the requisite AWS Proton service never got created and was stuck in an 'in progress' state forever.  On examining the CloudFormation stack, I'm assuming the failed service creation is reflected in the AWS::ECS::Service. I ended up having to delete both CloudFormation stacks (prod and dev) before it would allow me to delete the AWS Proton service.

Maybe one of the authors can confirm that this tutorial still works. I'd be glad for any guidance.
In terms of meta-data on various resources created in AWS reported back to backstage - the AWS Proton Service card has a URL (https://eu-west-1.console.aws.amazon.com/proton/home?region=eu-west-1#/services/detail/my-service) under the View Source hyperlink ... but is any other meta-data captured back on Backstage ... that perhaps allows you to see all the resources created by a CloudFormation stack?  It seems to me that that would be helpful to map inter-dependent AWS resources on Backstage. Thanks

Hi @Analect, I pushed some clarifications to the tutorial guide, but generally speaking, the tutorial assumes that you successfully complete the Proton getting started guide in the UI before using the Backstage plugin.  As you saw, the getting started guide includes setting up a service-linked role.  The permissions needed for setting up Proton in the UI are different from the more limited permissions needed for the Backstage plugin.  For example, the Backstage plugin does not create service-linked roles, create environments, etc, so it does not need those permissions.  For the Proton UI, you can use the AWSProtonFullAccess policy for permissions.
https://github.com/awslabs/aws-proton-plugins-for-backstage/blob/main/docs/tutorial.md#create-prerequisite-aws-resources

Recreated fargate-env which resolved VPC issue.
However, the ECS Service creation seems unstable and keeps restarting, somehow.

The result is that the CloudFormation process kicked off by AWS Proton never completes ... and the AWS Proton back in Backstage is perpetually stuck 'in progress'.

I doubt this is specific to me. Have you been able to run this tutorial successfully recently?

@Analect can you try the fix in 15eb66ec377ff1d2d15cf543b88c0a24f64281f1 - I confirmed on my end that I was able to complete the tutorial successfully with that fix

Thanks @clareliguori ... that port fix got me a bit further.  However, there are issues with the pipeline build. I'm deferring to your superior knowledge here in terms of what might be going wrong.  It seems the directory referenced in the variable $CODEBUILD_SRC_DIR doesn't exist. See the logs at the bottom. I retried a few times to re-run that step of the pipeline, but it keeps failing here.
/codebuild/output/tmp/script.sh: line 4: cd: /codebuild/output/src987597623/src/ecs-static-website: No such file or directory

Ah I did not check whether the pipeline succeeded.  This commit should fix it: 7db1c7f6114dc0f39f5c13dd27a0d28ccd02c104

@clareliguori  ... I finally got things working with your fixes.
I suppose I was wondering if the plugin has scope to bring back more resource meta-data from AWS than is currently the case, for Backstage to be able to give better context around these resources.
For now, there is a single entry-point to AWS from the 'VIEW SERVICE' hyperlink on the AWS Proton Service card.  There's obviously lots of moving parts that underlie that service (captured in the red rectangles) in my mockup ...
Are the basic building-blocks in place with your plugin to be able to bring back more meta-data and ideally build out that graph component to give a better picture of the resources that go to make up this service?  Is that beyond the scope of your plugin?

On a related matter, can the AWS Proton plugin serve as a blueprint for accessing AWS Batch workloads? Thanks.

That does seem beyond the scope of this plugin.  Proton can ensure tags like "aws:proton:service" get propagated to your CloudFormation-provisioned resources, but it doesn't "know" what resources were provisioned by CloudFormation - you need to query CloudFormation or create a Resource Group for that tag to find that out.
Since you were able to successfully use the tutorial with those fixes (yay!), I'm going to close this issue out

Thanks again for your assistance with this.


Manage created crowdsale contracts - display real data

This PR is the third step towards in the completion of #323

Crowdsale address has to be manually added to the CrowdsaleStore to be able to load manage/ url
Information being displayed is the information that can be retrieved from the blockchain

I'm getting a TypeError: Cannot set property 'rate' of undefined error when I input the rate in step three.

@fernandomg, please, resolve conflicts. They appear after merging https://github.com/poanetwork/ico-wizard/pull/407.


Connection problem over insecure url

Hi
I received complaints from some of my app users telling me that they are sometimes unable to connect and they get the following error could not establish signal connection
My website is secure but I noticed that it's not secure on their ends. After investigation I found that they are using old operating systems especially Windows 7 which do not recognize my website ssl certificate
I found a tutorial about fixing this issue on Windows 7. After I sent it to them they became able to connect.
I think that the PreJoinPage.tsx should handle this situation in the connectToRoom function by adding something like this
  const connectToRoom = async () => {
   ....

  if (
      window.location.protocol === 'http:' &&
      !url.startsWith("ws://localhost")
    ) {
      alert('Your OS/Browser couldn't recognize our ssl certificate, Please update your OS security ');
      return;
    }
   .......
  };

@merazgasalim that logic doesn't seem to be right.
In any case, I'm glad to hear you found the issue. SSL certificates and their validity are outside of the scope of this project.


Refused to connect to... URL was permanently blocked by the user

Hello!
As you can see in the screenshot below, i am not able to see the ratings of Rotten Tomatoes and Letterboxd in IMDb pages.

Sites:
IMDb https://www.imdb.com/title/tt0068646/
RT https://www.rottentomatoes.com/search?search=The Godfather
Letterboxd https://letterboxd.com/film/the-godfather/
Versions:
Google Chrome 101.0.4951.67 64 bits
Tampermonkey 4.16.1
All adblockers and other scripts are deactivated in IMDb site.
Console:

VM590:26 Refused to connect to "https://letterboxd.com/imdb/0068646": URL was permanently blocked by the user
(anônimo) @ VM590:26
VM590:26 Refused to connect to "http://www.omdbapi.com/?i=tt0068646&apikey=3fdb9c5a&plot=full&tomatoes=true": URL was permanently blocked by the user
I don't know why the connections are been refused. When I click in the links, I am able to connect.
Thank you.

I tested your link all ratings work there [on Waterfox].
Did it worked for you before?

Before "Refused to connect to" there is triangle, try to press it for more info.
Maybe you are blocking connections with Tampermonkey's settings.
Try another script manager like Violentmonkey.

I added an asterisk * in the user domain whitelist as instructed and now all ratings are working.
Thank you for your help.
Here are the screenshots in case other users eventually have this problem in the future.


PowerToys Run - Alfred Style "Snippets" auto expansion

Description of the new feature / enhancement
In PowerToys Run, it is possible to type in a URL and open it in the browser. This is similar to but not as expansive as a tool for MacOS known as Alfred, and its feature called "Snippets". The "Snippets" feature will allow you to define a text keyword that will be expanded once typed. The snippet can contain variables that are helpful in customizing the expansion.

User Input
Description

!google
Launch google.com

!google weather
https://www.google.com/search?q={{$1}}

Scenario when this would be used?
Use Case Example:
Say you are attempting to quickly launch YouTube and get to the channel of a specific user.
Currently:

Initiate the keyboard shortcut for PowerToys Run
type YouTube.com
Launch in browser
Navigate to the channel via search or other means.

Desired:

Initiate the keyboard shortcut for PowerToys Run
Type !youtube <channel name>
Launch in browser (goes to https://www.youtube.com/c/)

Create a Jira Ticket

Initiate the keyboard shortcut for PowerToys Run
type !jira 1 ABC-123
Launch in browser (goes to https://x.atlassian.net/secure/CreateIssue.jspa?issuetype={{$1}}&pid={{$2}})

Supporting information
https://www.alfredapp.com/help/workflows/
https://www.alfredapp.com/help/features/snippets/
https://github.com/alfred-workflows/awesome-alfred-workflows

I second this. But also make it more generic to include regular text expansion just like Espanso, Text expander, etc.

/dup https://github.com/microsoft/PowerToys/issues/5074


[DASH] Possibility of playback freezes when switching streams in the middle of StreamingEngine updates (fetchAndAppend_()).

Have you read the FAQ and checked for duplicate open issues?
Yes.
If the problem is related to FairPlay, have you read the tutorial?

N/A.
What version of Shaka Player are you using?

main
Can you reproduce the issue with our latest release version?
Yes.
Can you reproduce the issue with the latest code from main?
Yes.
Are you using the demo app or your own custom app?
Custom cast receiver app for Paramount+.
If custom app, can you reproduce the issue using our demo app?
No, as constructing test content to reproduce this scenario is difficult outside of the test environment provided directly from Paramount+.
It is a 3 hour DVR window, live, multiperiod, DRM, DAI, DASH stream.
What browser and OS are you using?
Chrome / CastOS (reproducible on all Cast devices).
For embedded devices (smart TVs, etc.), what model and firmware version are you using?
Google Nest Hub Max / Google Chromecast with TV (4K), latest production firmware.
What are the manifest and license server URIs?

N/A (this was reproduced using internal test content generated by Paramount+).
What configuration are you using?  What is the output of player.getConfiguration()?

{
  "abr": {
    "defaultBandwidthEstimate": 2000000,
  },
  "drm": {
    "retryParameters": {
      "maxAttempts": 4,
      "baseDelay": 400,
      "backoffFactor": 2,
      "timeout": 30000
    },
    "servers": {
      "com.widevine.alpha": [REDACTED]
    },
    "advanced": {
      "com.widevine.alpha": {
        "audioRobustness": "HW_SECURE_CRYPTO",
        "videoRobustness": "HW_SECURE_ALL"
      }
    }
  },
  "manifest": {
    "retryParameters": {
      "maxAttempts": 4,
      "baseDelay": 400,
      "backoffFactor": 2,
      "timeout": 30000
    },
    "dash": {
      "disableXlinkProcessing": true
    }
  },
  "streaming": {
    "rebufferingGoal": 10,
    "retryParameters": {
      "maxAttempts": 4,
      "baseDelay": 400,
      "backoffFactor": 2,
      "timeout": 30000
    },
    "stallThreshold": 5,
    "stallSkip": 1.1
  },
  "mediaSource": {
    "codecSwitchingStrategy": "reload"
  }
}

What did you do?

Cast the Paramount+ live content on any Cast device.

What did you expect to happen?

The live stream to play without playback freezing / stalling indefinitely.

What actually happened?

Playback freezes when an ABR switch occurs in the middle of an ongoing StreamingEngine.fetchAndAppend_().
To be more specific, when the above happens, the switchInternal_() logic (which gets triggered from the ABR switch) closes the SegmentIndex of the old stream:
https://github.com/shaka-project/shaka-player/blob/01545f4c3eb540d6cc32c11a91874d53ddf92386/lib/media/streaming_engine.js#L575-L581
In the context of DASH, eventually this leads to the clearing of the references array, which holds things like the uris of each segment:
https://github.com/shaka-project/shaka-player/blob/01545f4c3eb540d6cc32c11a91874d53ddf92386/lib/media/segment_index.js#L89
This can be problematic if the old stream's segment index closes before the fetch() happens, since everything in reference no longer exists:
https://github.com/shaka-project/shaka-player/blob/01545f4c3eb540d6cc32c11a91874d53ddf92386/lib/media/streaming_engine.js#L1672-L1673
As a result, a PendingRequest object with no URI will be created downstream:
https://github.com/shaka-project/shaka-player/blob/01545f4c3eb540d6cc32c11a91874d53ddf92386/lib/media/streaming_engine.js#L2587-L2597
https://github.com/shaka-project/shaka-player/blob/01545f4c3eb540d6cc32c11a91874d53ddf92386/lib/net/networking_engine.js#L326-L327
When the presentation time eventually reaches the media start time of the failed segment request, playback stalls.

Here is a snippet of the console logs illustrating the error I see:

Are you planning send a PR to fix it?
Yes. The plan is to defer the closing of a stream's SegmentIndex to the next onUpdate_() call when an ABR switch happens during a update, similar to how Shaka can defer clearing of the buffer:
https://github.com/shaka-project/shaka-player/blob/01545f4c3eb540d6cc32c11a91874d53ddf92386/lib/media/streaming_engine.js#L595-L603
I will guard this change with a new config defaulting to turned off, since it's a core StreamingEngine change and may not necessarily be a problem on some platforms.

A regression was reported in video-dev.org Slack, and they narrowed it down to the PR that closed this issue.  Playing https://d24rwxnt7vw9qb.cloudfront.net/v1/dash/e6d234965645b411ad572802b6c9d5a10799c9c1/All_Reference_Streams/4577dca5f8a44756875ab5cc913cd1f1/index.mpd with this PR, reportedly:

playback stops rendering with a warning "cannot find segment endTime" just a few seconds prior to the rendering alt.

This was initially observed on Samsung TVs, but then later on LG and even in Chrome.
I'm reverting the PR and reopening the issue.

Another note from the reporter:

It happens on any content on our end as long as it had many variants. When the player starts bumping to the upper variant in resolution, after the buffer time is exhausted, the playback halts at this frame.

Thanks for reverting it Joey - I was able to reproduce it as well, and the root cause is due to only calling segmentIndex.release() within handleDeferredCloseSegmentIndexes_(), but not setting segmentIndex = null;.
Since checking the nullability of segmentIndex is how StreamingEngine determines if it should create a new segmentIndex for the active stream, the "cannot find segment endTime" error can commonly occur if:
1. We switch from stream A -> B during an update
2. Update finishes, so call A.release() only
3. Regular playback resumes...
4. We decide to switch back to A (regardless of whether an update is currently happening or not)
5. StreamingEngine sees A.segmentIndex is NOT null, since we never actually set it to null
6. StreamingEngine therefore never populates A.segmentIndex with new references,
   so A.segmentIndex is completely empty for the rest of the playback session
7. We get the "cannot find segment endTime" error perpetually

IIRC the reason we decided to only call release() was from this past conversation within the reverted PR. But my response was incorrect; even if we switch in an A -> B -> A manner during an update + considering the second paragraph statement, there will always only be one, distinct instance of segmentIndex for A.
In other words, the initial iteration of the reverted PR would be the corrected version. I will send out another PR in a bit with better unit tests to check against this behavior.


play-contrib: Fixed classloading of worker module and cleanups

Fixed dependency resolution of worker classpath.
The collected classpath of the worker module was limited to
only use the worker module.
But this misses all transitive dependencies of the worker.
This is probably because of older limitiations in mill builds,
which also included the mill API itself.
Now, mill uses compileModuleDeps for the mill API and we have
clean and usable transitive module and worker classpaths.
Fixed use of mills utility classloader by settings the correct parent classloader.
Using the classloader of the module as parent makes the shared API modules
(which need to be already loaded by the mill build) visible.
The perviously used default was using the classloader which loaded the
mill build (and the ammonite script), which misses the play API module
(loaded via $ivy import).

As a person that doesn't know a lot about Mill internals (but a bit more than the average user), I struggled a lot to find which one of you changes actually fixed the classloader bug in the playlib module.
I now understood how dangerous is getClass.getClassloader.. It's output radically changes when you move it to a different class!
I think you should split your work here in multiple PRs to address the different issues. It serves as good documentation for people in the future that would face similar issues.
Trying to apply your changes one by one on current master, I found this as the minimal diff to fix the bug, without doing any refactoring:
diff --git a/contrib/playlib/src/mill/playlib/RouteCompilerWorkerApi.scala b/contrib/playlib/src/mill/playlib/RouteCompilerWorkerApi.scala
index 3b632a68..5b2cfe06 100644
--- a/contrib/playlib/src/mill/playlib/RouteCompilerWorkerApi.scala
+++ b/contrib/playlib/src/mill/playlib/RouteCompilerWorkerApi.scala
@@ -21,6 +21,7 @@ private[playlib] class RouteCompilerWorker {
         val cl = mill.api.ClassLoader.create(
           toolsClassPath,
           null,
+          sharedLoader = getClass().getClassLoader(),
           sharedPrefixes = Seq("mill.playlib.api.")
         )
         val bridge = cl
diff --git a/contrib/playlib/src/mill/playlib/RouterModule.scala b/contrib/playlib/src/mill/playlib/RouterModule.scala
index 4c0efd6b..4be78bf8 100644
--- a/contrib/playlib/src/mill/playlib/RouterModule.scala
+++ b/contrib/playlib/src/mill/playlib/RouterModule.scala
@@ -79,7 +79,6 @@ trait RouterModule extends ScalaModule with Version {
       workerKey,
       s"mill-contrib-playlib-worker-${playMinorVersion()}",
       repositoriesTask(),
-      resolveFilter = _.toString.contains("mill-contrib-playlib-worker"),
       artifactSuffix = playMinorVersion() match {
         case "2.6" => "_2.12"
         case _ => "_2.13"

Can we have a PR with just this diff to solve the bug first?

Yeah, makes sense.

I amended my commit and will move other improvments to a new PR.
@lolgab Would be nice if you could validate, this really fixes the issue.

I'm going to do it!
Can you refactor the the PR description too and move the other parts to the new PR?

Can you refactor the the PR description too and move the other parts to the new PR?

Already done. :-D

Already done.

I confirm it works!
I'm asking myself if it's possible to make an integration test fail in cases like this. Why our tests pass in first place?

I'm asking myself if it's possible to make an integration test fail in cases like this. Why our tests pass in first place?

That's because we don't use mills (ammonites) loading mechanism but just run the tests in the test classloader. This is a limitation but speeds up mills integration tests a lot.
But it's one of the reasons I prefer mill plugins in their own repos and integration test them with https://github.com/lefou/mill-integrationtest plugin (shameless plug). That's slower but catches such kind of problems. Also, you can better test compatibility to different mill versions.


configure as HMLGW (HM LAN Gateway)

Hello,
I am facing the issue that after setting the piVCCU into LAN gateway modus status with the HMLGW file in /usr/local/ directory, the system still boots up with the standard webfront end. Also the two systems can not communicate with each other. The status in the master ccu shows "not connected".
Doing this on the RaspberryMatic directly on an PI it worked fine.
Am I doing anything wrong?
Please let me know if any additional information or logs are needed.
thx
Oliver

HMLGW is not part of piVCCU nor the CCU firmware. But you can install it without piVCCU directly on Raspbian, see https://homematic-forum.de/forum/viewtopic.php?f=18&t=27705

Thx for the feedback. I'll try it with your provided link/description.
I thought this would work like described here https://homematic-guru.de/raspberrymatic-als-homematic-lan-gateway-einsetzen
Thx
Oliver


Add configuration option to reset HRID settings

[ ] Add task configuration for resetting hrid settings, meaning this needs to be set per task.
[ ] When resetting, just reset the numbers to the FOLIO default original values for that specific object type. Honor any other setting.

@branchedelac @bltravis @banerjek
What do we mean with "resetting" in this context?
resetting to the FOLIO defaults is easy, but for all other cases, I do not know.
Should we honor the prefixes always as well as the 0-settings?

Proposal in the description.

I wonder if the scripts should be touching the HRID settings Start number at all? FOLIO doesn't increment it when generating an HRID, so it is a bit confusing that our scripts do.

This is what the numbers look like after we've loaded instances, holdings and items.

Bugfest does not honor them either. Very weird

I asked about if this is being a bug or not.


Add .gitattributes file

This change will fix the appearance of git changes even when there was no change when collaborating between different operating systems.
I had that happen several times in the last game jam I attended since I am working on a Mac and my teammates were using Windows.
See for more information the official docs

Amazing, thanks!


Fix(Scroll-to-Search)

Fixed Scroll view to Search View #147

Hi Shashank, could you please raise the PR to the development branch? This(master) would go to production directly.

hi, yes sure..

Rejecting since another one was raised for development


Fixed ECEF to USD transform calculation

We were doing the ECEF to USD maths wrong which was causing us issues when we tried to do the inverse USD to ECEF.
const auto primUsdWorldTransform = computeUsdWorldTransform(primPath);

This is actually giving us the Local to World transformation, rather than what we needed, the World to Local transformation. Inverting it gives us what we want.
Additionally, I swapped over to using affineInverse for the slight speed benefit. Doubt it will matter but we'll see.

I can see why this order of transformations makes sense in the context of globe anchors, but I don't think changing computeEcefToUsdTransformForPrim is the right thing to do.
computeEcefToUsdTransformForPrim is meant to go from ECEF -> USD local -> USD world so that stage transforms on the tileset prim are handled correctly. By swapping the order, it causes the transforms to be inverted like shown in this video:
https://github.com/CesiumGS/cesium-omniverse/assets/915398/b9edb25a-89fc-403f-be20-26987cc32a6b

@lilleyse Yup, nice catch. I missed this. Let me play around with a few potential fixes. I think it's plausible that we may be trying to do too much with this one function, and I'm not terribly confident that our nomenclature here makes a lot of sense.

computeEcefToUsdTransformForPrim is meant to go from ECEF -> USD local -> USD world so that stage transforms on the tileset prim are handled correctly.

Very good point, we have the same situation in Unity, and are now implementing it in Unreal as well. For exactly the reason you've stated.
There are subtleties, though! And maybe that's where you're running into problems. The transformation is always, as you've said, ECEF -> USD local -> USD world. However, the USD local -> USD World for a globe anchored object is actually the parent's local->world. It does not and must not include the transformation of the anchored object itself.
Let's say you have an attachment hierarchy like this (sorry, I don't know the Omniverse terminology):
CesiumGeoreference
↳ Cesium World Terrain

Let's break this down a bit more, as much to make sure I'm thinking about it correctly as anything. Let's say we have this hierarchy:
CesiumGeoreference
 ↳ Parent
    ↳ Child (has a CesiumGlobeAnchor)

Now in the steady state where nothing is changing, each of these objects has a Transform and they're composed in the normal way. If the user changes the CesiumGeoreference transform, or the Parent transform, or even the Child transform, this will impact their position/orientation/scale in the game engine world exactly in the normal way that users would expect.
But there are two kinds of important changes that might happen:

The game engine transform changes: this requires recomputing the ECEF transform from the game engine Transform.
The CesiumGeoreference origin changes: this requires recomputing the game engine Transform from the ECEF transform.

The game engine Transform changes
A CesiumGlobeAnchor maintains an anchored object -> ECEF matrix. In the case of the Child transform to Parent changing, this is computed from the game engine transform very simply:
const LocalHorizontalCoordinateSystem& georeference = /*Local Horizontal coordinate system defined by the CesiumGeoreference origin*/
GlobeAnchor anchor = GlobeAnchor::fromAnchorToLocalTransform(georeference, childToParentTransformation)
glm::dmat4 anchorToEcef = anchor.getAnchorToFixedTransform();

Note that this does not in any way involve the transformations of Parent to CesiumGeoreference, or of CesiumGeoreference to game world!
This may seem surprising, but it's intentional. With this setup, by moving the CesiumGeoreference, we move the whole globe in the game world. By moving Parent within CesiumGeoreference, we move a subset of the globe within the game world. It's usually not very useful for an object like Parent to have a non-identity Transform, but it sometimes can be to, for example, offset one photogrammetry dataset to line up with another. Think about the case where Parent is a Cesium3DTileset, and Child is an individual Tile within it.
Of course, I'm still not 100% sure we have this right. This issue explains one way it's not great:
https://github.com/CesiumGS/cesium-unity/issues/132
Offsetting a tileset in terms of game world coordinates is kind of wrong. Lifting Melbourne up in the +Z direction so CWT doesn't poke through it is fine when the origin is in Melbourne. But if the georeference origin changes such that +Z isn't up in Melbourne anymore, that +Z transformation on the Melbourne tileset will become useless or harmful.
But that issue essentially proposes solving this by making it so that a GlobeAnchor on Child affects the transform of Parent when the Georeference changes, which is likely to be even more confusing for users. Maybe for a Tileset it's ok. Maybe. But not for an arbitrary parent.
The CesiumGeoreference origin changes
Similar to the above, a changing georeference origin only impacts the game engine Transform of objects that have a globe anchor. So the game engine transform on CesiumGeoreference and Parent stay the same. It looks like this:
GlobeAnchor anchor = GlobeAnchor::fromAnchorToFixedTransform(anchorToEcefComputedPreviously);
const LocalHorizontalCoordinateSystem& georeference = /*Local Horizontal coordinate system defined by the CesiumGeoreference origin*/
glm::dmat4 newChildTransform = anchor.getAnchorToLocalTransform(georeference);


apiproduct-operations setup script fails

Describe the bug
when i try to run the apiproduct-operations script setup-apiproduct-operations.sh, it always fails.  here is a partial output.
><EMAIL_ADDRESS>test
> npx cucumber-js --publish-quiet test/

Environment variables [APIGEE_HOST, SAMPLE_PROXY_BASEPATH, VIEWER_CLIENT_ID, CREATOR_CLIENT_ID, ADMIN_CLIENT_ID, VIEWER_CLIENT_SECRET, CREATOR_CLIENT_SECRET, ADMIN_CLIENT_SECRET] must be set before the tests can be run.
Missing: [SAMPLE_PROXY_BASEPATH, VIEWER_CLIENT_ID, CREATOR_CLIENT_ID, ADMIN_CLIENT_ID, VIEWER_CLIENT_SECRET, CREATOR_CLIENT_SECRET, ADMIN_CLIENT_SECRET]

Please set the Environment variables and try running the command again.

Error: setup-apiproduct-operations.sh failed!

i think what's happening here is that the "setup-apiproduct-operations" script contains a mixture of "setup commands" and "test commands".  it looks like some of the test commands require the setting of environment variables whose values are printed by the "setup commands".  is it the intention that the user would read the output from the "setup commands" and then paste them into the current environment?  but since both the setup and test are being run from the one script, there is no opportunity for the user to do this.
assuming the above is correct, i think the cleanest solution would be to move the "test" commands into a separate script.
an alternative would be to automate the passing of environment variables, so the setup script can run without intervention.
it would also help if the README file had a description of the expected value of each and every environment variable.  currently SAMPLE_PROXY_BASEPATH is not explained.
To Reproduce
run setup-apiproduct-operations.sh
Expected behavior
the setup script should exit with status 0 and no error messages.
after this, i should be able to run the test script, with all tests passing.
after this, i should be able to run the cleanup script, and repeat.

@DinoChiesa - can you pls take a look?

Works as expected


Changed fetcher and syncer Histogram metric to Observer

[ ] I added CHANGELOG entry for this change.
[ ] Change is not relevant to the end user.

Changes

Changed fetcher and syncer Histogram metric to Observer. So that depending project (ie. Cortex) could plug in HistogramVec with customized labels
Verification

The e2e test seems to be consistently failing. Could it be related to this change?

I think it's unrelated and because of the infamous https://github.com/thanos-io/thanos/issues/4866 😢 , not sure why it's popping up again so often


vaccination (distributed & adminstered) counts for 2 doses

Thinking about use case of determining % of population that has been fully vaccinated (for Pfizer/BioNTech & Moderna vaccines requiring 2 doses).
Any indication yet if provinces will create a new data point for people that have received 2nd dose, as opposed to recording 2nd dose adminstered as just another single dose administered?

Hi There-- this is not consistently being reported by all provinces so we are looking for ways to best capture this information and display it in a systematic format. We are a volunteer-run group, so have to prioritize overall data collection processes before we can add new and updated numbers. Thank you for your message!

Hi There-- this is not consistently being reported by all provinces so we are looking for ways to best capture this information and display it in a systematic format. We are a volunteer-run group, so have to prioritize overall data collection processes before we can add new and updated numbers. Thank you for your message!


Can it remember the details and not ask for password every time

It's very annoying having to type username and password every time I want to share the password.

Not currently aware of a way to pass credentials to the macOS security utility used by the app to obtain the wi-fi passwords stored in the system keychain.

New flag --always-allow added to prevent future password prompts.
 -a, --always-allow    Disables future confirmation prompts to access this password. Sudo required

Very cool, thx


Cannot update a component from inside the function body of a different component

After upgrading to React 16.13.0 I started getting the warning of the following kind:

I suppose, the first lines are referenced to React Core and the very next line is for the use-global-hook lib. Could you please check if there is an error occurs with the latest React version.

Hi @misha-panyushkin
I will take a look on it on the weekend.

See https://github.com/facebook/react/issues/18178 and many similar issues around the internet. The simplest solution is to wrap the setState that is causing the problem with useEffect. That way the global state will be updated after the render is finished, which is how it should be done.
I don't think there is anything the library itself could do maybe apart from artificially delaying all updates with useEffect or similar. Also worth noting that updates from callback and event handler should be fine since they happen outside of the render cycle.


WIP: resizes thumbnails and sidebar

Reducing the size of the Editor Page Sidebar to give more screen area to the asset currently being tagged. First part of Sidebar restyling.
AB#17652

screenshot of before and after for comparison

New, even smaller slide viewer, following Tyler's specs exactly:


Add ConceptScheme to each entry of the dimensions

This is probably the case for most but we should have some validations that this is correct for all of them

All schema.org now, shapes will follow later.


Cross check all did-doc data model from the w3c spec

https://www.w3.org/TR/did-core/#did-document-properties

id: https://www.w3.org/TR/did-core/#did-subject
controller:  https://www.w3.org/TR/did-core/#did-controller
alsoknownus: https://www.w3.org/TR/did-core/#also-known-as
verification method: https://www.w3.org/TR/did-core/#verification-methods
authenticaion:  https://www.w3.org/TR/did-core/#authentication
assertion:  https://www.w3.org/TR/did-core/#assertion
keyagreemetn: https://www.w3.org/TR/did-core/#key-agreement
capability invocation: https://www.w3.org/TR/did-core/#capability-invocation
capability delegation : https://www.w3.org/TR/did-core/#capability-delegation
services : https://www.w3.org/TR/did-core/#services

List of DID Doc examples: https://www.w3.org/TR/did-core/#examples

The fields have been implemented. However, there are issues with label need-to-come-back that needs to be reflect upon later.


Issues with Python support

Issues in running the python code with omnitrace. Is this due to python version mismatch or something else?
Python version: Python 3.8.16
ROCM version: 5.6.0
Python path: /$BASE_DIR/omnitrace/lib/python/site-packages
Python interpreter: libpyomnitrace.cpython-38-x86_64-linux-gnu.so
  /opt/conda/envs/py_3.8/lib/python3.8/site-packages/torch/functional.py(7): <module>
  <frozen importlib._bootstrap>(219): _call_with_frames_removed
  <frozen importlib._bootstrap_external>(843): exec_module
  <frozen importlib._bootstrap>(671): _load_unlocked
  <frozen importlib._bootstrap>(975): _find_and_load_unlocked
  <frozen importlib._bootstrap>(991): _find_and_load
  /opt/conda/envs/py_3.8/lib/python3.8/site-packages/torch/__init__.py(1382): <module>
  <frozen importlib._bootstrap>(219): _call_with_frames_removed
  <frozen importlib._bootstrap_external>(843): exec_module
  <frozen importlib._bootstrap>(671): _load_unlocked
  <frozen importlib._bootstrap>(975): _find_and_load_unlocked
  <frozen importlib._bootstrap>(991): _find_and_load

  File "/opt/conda/envs/py_3.8/lib/python3.8/site-packages/torch/__init__.py", line 1382, in <module>
    from .functional import *  # noqa: F403
  File "/opt/conda/envs/py_3.8/lib/python3.8/site-packages/torch/functional.py", line 7, in <module>
    import torch.nn.functional as F
  File "/opt/conda/envs/py_3.8/lib/python3.8/site-packages/torch/nn/__init__.py", line 1, in <module>
    from .modules import *  # noqa: F403
  File "/opt/conda/envs/py_3.8/lib/python3.8/site-packages/torch/nn/modules/__init__.py", line 2, in <module>
    from .linear import Identity, Linear, Bilinear, LazyLinear
  File "/opt/conda/envs/py_3.8/lib/python3.8/site-packages/torch/nn/modules/linear.py", line 7, in <module>
    from .. import functional as F
RecursionError: maximum recursion depth exceeded while calling a Python object
Exception - maximum recursion depth exceeded while calling a Python object

Can you post the script you are running? I feel like I've seen something like this when the script being profiled executes as the file is being loaded instead of having a "main" function, e.g.:
import torch

torch.run()

instead of:
import torch

def run():
    torch.run()

if __name__ == "__main__":
    run()

I believe omnitrace python profiling capabilities generally need the latter to work properly

@jrmadsen Thank you. You are right, the coding style you suggested resolved the issue.


fix scc template to line up with kube default

Signed-off-by: Will Kutler<EMAIL_ADDRESS>https://github.com/open-cluster-management/backlog/issues/16207

/hold

/unhold


build: support podman for load/pushing container images

By default docker is tried, and then podman.
Support is simplistically verified with the exit code from --version.
First choice can be overridden with DOCKER env variable.

Making the same changes on all repos would be a pain, so instead I'm adding a common release script which all repos can make use of: https://github.com/openebs/mayastor-dependencies/pull/88

bors try

bors merge

bors merge


Fix problem with the negation in TextView/libswoc

ABS_MIN is<PHONE_NUMBER>854775808
intmax_t(ABS_MIN) is -9223372036854775808
negation of that is overflow for intmax_t data type with max value of<PHONE_NUMBER>854775807
And I think that's not the intention as well.
So I need to make this change.

This is needed for the problem found in oss fuzz - https://oss-fuzz.com/testcase-detail/5196561539530752

/src/trafficserver/lib/swoc/src/TextView.cc:66:16: runtime error: negation of -9223372036854775808 cannot be represented in type 'intmax_t' (aka 'long'); cast to an unsigned type to negate this value to itself

[approve ci]

Created https://github.com/SolidWallOfCode/libswoc/pull/92


how to add namespace description?

Namespaces occupy a prominent place in the docs now, and they have a nice list of Interfaces and Classes.  But they always say "No description available" underneath the namespace name at top.
I've tried adding variants of the @namespace tag as shown at http://usejsdoc.org/tags-namespace.html but nothing has worked so far.
It's unclear where that tag would be added, however when I click on the "show source" button it takes me to the goog.provide statement of one of the classes of the namespace and I've tried adding the @namespace tag there.  For the myphysicslab.lab.app namespace:
/** Helper classes for applications
@namespace
*/
goog.provide('myphysicslab.lab.app.EventHandler');

I've also tried
/** Helper classes for applications
@namespace myphysicslab.lab.app
*/
goog.provide('myphysicslab.lab.app.EventHandler');

You can't add a namespace description. I should probably change that to not output anything when a description is missing.
If you use goog.module (or an ES6 module), it will use the block comment with a @fileoverview tag as the module description. We can't do that for namespaces since you could have multiple goog.provide statements in a file.
With respect to the @namespace tag - is that recognized by the compiler? I want the code you run through dossier to be valid input for the closure compiler without extra tag declarations.

With respect to the @namespace tag - is that recognized by the compiler? I want the code you run through dossier to be valid input for the closure compiler without extra tag declarations.

You can use the compiler option --extra_annotation_name which specifies "a whitelist of tag names in JSDoc."

A set of extra annotation names which are accepted and silently ignored when encountered in a source file.

So do you just ignore @fileoverview tags in files using goog.provide?
Many of the closure-library files have useful @fileoverview's, that seem to disappear in the docs. For example:
https://github.com/google/closure-library/blob/master/closure/goog/dom/animationframe/animationframe.js#L99
Maybe you could attach them to the first provided namespace? Or even all of them?