Opening Emoji picker on Android is very slow

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

Action Performed:

Navigate to any chat
click on Emoji picker
Select emoji

Expected Result:
Emoji picker should open quickly and paste
Actual Result:
Emoji takes longer to load
Workaround:
unknown
Platform:

Where is this issue occurring?

Android

Version Number: 1.1.57-0
Reproducible in staging?: Y
Reproducible in production?: Y
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://user-images.githubusercontent.com/43995119/166193111-845719ff-b537-4504-8ad1-7ca57d6b6773.mp4
Expensify/Expensify Issue URL:
Issue reported by: @cead22
Slack conversation: https://expensify.slack.com/archives/C01GTK53T8Q/p1649791658653949
https://expensify.slack.com/archives/C01GTK53T8Q/p1647905810766269
View all open jobs on GitHub

@cead22 can you please define "slow"? It feels pretty fast to me.

@flodnv this was reported by @kidroca so tagging him. I don't have an android, but it sounds like it isn't slow for you which is good. Could this be a device specific thing? What devices do you guys have?

Opening is a bit slow, but actually selecting an emoji is the thing that seem to hang
Maybe it doesn't hang, but for some reason the first tap is not detected
In the video from the description emojis are picked only after the 2nd tap
My test device is Samsung Galaxy S7 edge from 2017 so it's a bit old 😃

Thanks for the context

My test device is Samsung Galaxy S7 edge from 2017 so it's a bit old 😃

Given this, I'm thinking we should close unless we know it's happening on newer phones, but curious for your opinions as well, because I could see an argument that new dot should work well on older phones too, but I also know older phones and laptops tend to get slow no matter what

Couldn't hold my QA mind away from this one :) specially as I also have Samsung Galaxy S7
Here is a comparison SG S7 and SG S20 FE
Video is a bit backwards as It shot with upside laptop camera, but you can catch the device response speed (all other indicators are same - wifi, account, build)
https://user-images.githubusercontent.com/43995119/168209931-69d4abf3-535a-4463-a2ab-39aa4e2f83b0.MOV

https://user-images.githubusercontent.com/43995119/168210586-9e45dea3-1167-46ca-8144-92e8d40726d5.mp4

Nice one @mvtglobally 😄 I'd be interested in the same comparison in other apps like Slack or a simpler one like Whatsapp.
I kinda agree that ideally our app should run fast on old devices, although I am not sure how realistic that dream is (2017 is not actually old, what a world we live in...)

Making this monthly while I focus on this one https://github.com/Expensify/Expensify/issues/206455

@mvtglobally thanks for the side by side!
I'm closing this for now, I think it's more important to focus on all the N7 docs and the performance for newer devices first, and the difference here is pretty small


Update T_02_arguments_to_metaclasses.rst

This may be a typo

The class AddClassAttribute is defined, but not used.

The WithAttribute class is inheriting the AddClassAttribute :)
This example shows how __init_subclass__ can be an alternative to metaclasses in some cases

This's what I think so. but current code is: class WithAttribute(metaclass=AddClassAttributeMeta, a=1234):)

Ah, now I see what you mean. That won't work though, just try and run this:
>>> class AddClassAttribute:
...     def __init_subclass__(cls, **kwargs):
...         super().__init_subclass__()
...
...         for k, v in kwargs.items():
...             setattr(cls, k, v)

>>> class WithAttribute(AddClassAttributeMeta, a=1234):
...     pass


Unable to run tests locally on Node v6.7.0 & npm v3.10.3

Do you want to request a feature or report a bug?

Bug
What is the current behavior?
Cloned webpack, did npm i, ran npm t, errors out with
Error: Cannot find module 'webpack/lib/removeAndDo'
    at Function.Module._resolveFilename (module.js:455:15)
    at Function.Module._load (module.js:403:25)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/Users/neeharvenugopal/Development/javascript/webpack/node_modules/extract-text-webpack-plugin/ExtractedModule.js:30:42)

If the current behavior is a bug, please provide the steps to reproduce.
With Node v6.7.0 and npm v3.10.3
git clone git@github.com:webpack/webpack.git
cd webpack
npm i
npm t

What is the expected behavior?
Should run tests!
Please mention other relevant information such as the browser version, Node.js version, Operating System and programming language.
Looks like webpack has a devDependency on "extract-text-webpack-plugin": "^2.0.0-beta", which loads a lib from webpack here
This seems to be okay when using the plugin + webpack externally in other projects, but the plugin is also used for testing webpack itself. Hence the path webpack/lib/removeAndDo is broken when testing webpack locally.

Did you forget to run npm link && npm link webpack?

@TheLarkInn ah hah!  Thanks for helping correct the noob mistake 🍻


Update vagrant_setup.sh

I had an issue with this, because lines 27 and 29 had a space after VAGRANT_PATH. Removing the extra spaces fixed the issue.

Thanks for letting us know about your issue and providing a fix.


feat(form): support scroll-to-first-error

https://github.com/tusen-ai/naive-ui/issues/6012

Do not rely on class name if possible. It's preferred to locale error element in data layer.


restrict grep so that it works with displays with similar names

I have an internal display named DP1 and an external display eDP1. These are both detected as the same display since mons greps for the name and "DP1" is included in "eDP1". This PR restricts the grep so that it matches the whole name of a display.

Thanks for contribution.


question regarding best practices CITATION.cff and DOIs

Currently, there is an inconsistency in how we use CITATION.cff files and DOIs. The workflow is as follows:

For a given repository on GitHub, set up GitHub-Zenodo integration such that making a new release on GitHub triggers assigning a DOI by Zenodo
work on code until we're ready to make a new release, commit everything and push to GitHub
push the 'new release' button on GitHub
check what DOI was assigned to the release
update the CITATION.cff file on GitHub to have it point to the lastest release

There are a couple of problems with this workflow:

When resolving a DOI, you'll be directed to the Zenodo page, where

you will find that the doi key from the CITATION.cff file describes the previous release (if there is one)
you will find that the commit key from the CITATION.cff describes a previous commit
you will find that the metadata is likely not the same as what you entered in the CITATION.cff

After some searching, it seems that the codemeta people (e.g. @cboettig) and Zenodo people (e.g. @lhansen) are aware of this problem, see discussion here: https://github.com/codemeta/codemeta/issues/167, https://github.com/codemeta/codemeta/issues/24#issuecomment-164676080
There is a couple of ways in which we can work around this, none of which seem like complete solutions though:

(1/5) doi in CITATION.cff on GitHub should be the concept-doi
Under this option, you would have the CITATION.cff include a doi key that points to the concept-doi / 'cite all versions'-DOI.

pros

Easy to implement
No code changes necessary anywhere
the DOI on the frontend will be the concept doi, which could be argued is consistent with the fact that the software pages are versionless because they describe the brand, not a specific version

cons

the key name is doi, not concept-doi therefore it is expected that the entered value uniquely identlfies a software including its version/commit SHA. Entering a concept-doi in a key named doi feels like a square peg in a round hole.
Under this option, the Research Software Directory cannot help you cite a specific version of the software, even if you wanted to
Zenodo discourages the use of concept DOIs, because it hampers reproducibility

(2/5) CITATION.cff in GitHub repo but without version information
Store the CITATION.cff in the GitHub repository, but don't use the commit field because you can't commit the updated CITATION.cff without changing the commit SHA. If you would then release the software, that release's commit SHA listed in CITATION.cff will be inconsistent with what GitHub and Zenodo have labeled as the release's commit SHA. For similar reasons, you can also not include a doi in your CITATION.cff under this option, because it is only assigned after you make the release that should contain the DOI information.

pros

CITATION.cff information lives next to the actual software, i.e. where people/machines expecte it.
release mechanism using GitHub/Zenodo intergration as outlined above works: releases contain a CITATION.cff file in which the provided information is up to date (or at least it can be if the repo authors are diligent)

cons

Under this option, the Research Software Directory cannot help you cite a specific version of the software, even if you wanted to

(3/5) CITATION.cff in admin interface, not in repo
Under this option, the CITATION.cff information is not stored with the software, such that the DOI and commit information can be updated once the release has been made and a DOI has been assigned.

pros

allows for correct citation of (only) the latest version of the software, including a version-specific DOI

cons

CITATION.cff information does not live next to the actual software, i.e. where people/machines expect it.
does not allow for citing multiple versions.
Information in the Admin's CITATION.cff will likely be out of date when people make a new release on GitHub and forget to update the CITATION.cff information in the Admin interface.

(4/5) conceptdoi field in admin interface, CITATION.cff on GitHub but without version information
Have a new field conceptdoi or something in the admin interface, that contains the concept DOI of a software package (sidenote: we should check that the provided DOI is in fact a concept DOI). Then,

Use Zenodo's API to retrieve all versions, e.g. https://zenodo.org/api/records?q=conceptdoi:"10.5281/zenodo.597993"&all_versions=true. For each version,

visit GitHub, retrieve the CITATION.cff if there is one, generate the Bibtex and other formats ignoring any version information that is found in the CITATION.cff (doi, version, and commit keys).
also query the Zenodo API and retrieve the version specific DOI, version, and commit information.

Merge the information

The 'Cite this software' section should then only contain the dropdown version (GitHub tags/releases), the dropdown format ([BibTeX, RIS, EndNote], and a Download button). I don't see a use case for offering the DOI directly, only contained within the BibTeX, RIS, EndNote, whathaveyou.

pros

allows for citing the correct version of software, including a version-specific DOI

cons

Requires quite a lot of code changes
Possibly duplicate && inconsistent information in CITATION.cff files when people include the version, commit, or DOI keys (we could check against that, but by then it will be too late--the release has been made at that point)
multi-step workflow to acquire the necessary information (obscures the flow of information)
The metadata that you get after resolving the DOI is usually not the same as what you get from the CITATION.cff (although you have some control over it by placing a .zenodo.json in the root of your repo).

(5/5) Use manual upload on Zenodo, combined with its 'reserve a DOI' capability
...

pros

Full control of the meta information presented alongside a given release on Zenodo
Under this option, the DOI found in the CITATION.cff can be consistent with the release DOI because you can reserve a DOI

cons

Unlikely that people will keep this information up to date, there are a lot of things to fill in
The commit key when included in the CITATION.cff, will still be out of date with the release.

Replace citationCff with conceptDoi field, used for fetching release doi + cff (which gets stored in own collection by task)
Replace githubUrls with list of just urls, only used for fetching commmits.


Delay cutover feature

I would like to propose that we add a new feature to 'delay cutover'. This is currently supported by gh-ost, but not by Spirit.
For the implementation I propose that:

We create an additional table called the "cutover signal" (or something like that; TBD)
When copy and checksum phases have finished, spirit blocks waiting for the cutover signal to be dropped.
As soon as it is no longer present, the cutover phase is initiated.

The idea being that this will allow users to schedule their cutover (which requires an MDL lock) to an opportune time. Technically the checksum also requires an MDL lock, so we may need further discussion on that, but this is the basic idea.

I am working on this in https://github.com/kolbe/spirit/tree/defer-cutover
I'm using the term "deferred cutover", as "delay" to me sounds like it would have a specific time associated with it.
I chose to call the signal table a "sentinel".
The current behavior is to check every 1 second for 48 hours and then exit with an error if the sentinel table has not been dropped. If spirit is then restarted, it should resume from checkpoint and quickly start waiting again for the sentinel to be dropped.
The primary missing piece of functionality right now is in handling a situation where spirit is killed or times out waiting for the sentinel table to be deleted, following which an operator might remove the sentinel table before running spirit again. At present, spirit will re-create the sentinel table (assuming the --defer-cutover flag is used again) and block again waiting for it to be deleted.

/assign


License:  Finetune CHAI1 weights with DFT loss?

Want to finetune {openfold,alphafold,chai,esmfold} with quantum chemistry labels.  Does the CHAI1 license permit this, or can I only do this for {openfold,alphafold,esmfold}?
(openfold and alphafold is expected to become opensource soon)

Hi Alexander,
fine-tuning requires permission, see https://github.com/chaidiscovery/chai-lab/issues/125#issuecomment-2430455069


HBASE-24991 Replace MovedRegionsCleaner with guava cache

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m 26s
Docker mode activated.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
6m  2s
the patch passed

+1 :green_heart:
compile
1m 36s
the patch passed

+1 :green_heart:
javac
1m 36s
the patch passed

+1 :green_heart:
shadedjars
9m 44s
patch has no errors when building our shaded downstream artifacts.

-0 :warning:
javadoc
0m 55s
hbase-server in the patch failed.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
5m 46s
the patch passed

+1 :green_heart:
compile
1m 35s
the patch passed

+1 :green_heart:
javac
1m 35s
the patch passed

+1 :green_heart:
shadedjars
9m 21s
patch has no errors when building our shaded downstream artifacts.

-0 :warning:
javadoc
0m 55s
hbase-server in the patch failed.

_ Other Tests _

-1 :x:
unit
277m 49s
hbase-server in the patch failed.

320m 23s

Subsystem
Report/Notes

Docker
Client=19.03.12 Server=19.03.12 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2357/2/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/2357

Optional Tests
javac javadoc unit shadedjars compile

uname
Linux b1f1936696a1 4.15.0-112-generic #113-Ubuntu SMP Thu Jul 9 23:41:39 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
master / be984cc8d4

Default Java
2020-01-14

javadoc
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2357/2/artifact/yetus-jdk11-hadoop3-check/output/branch-javadoc-hbase-server.txt

javadoc
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2357/2/artifact/yetus-jdk11-hadoop3-check/output/patch-javadoc-hbase-server.txt

unit
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2357/2/artifact/yetus-jdk11-hadoop3-check/output/patch-unit-hbase-server.txt

Test Results
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2357/2/testReport/

Max. process+thread count
2952 (vs. ulimit of 12500)

modules
C: hbase-server U: hbase-server

Console output
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2357/2/console

versions
git=2.17.1 maven=(cecedd343002696d0abb50b32b541b8a6ba2883f)

Powered by
Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m 40s
Docker mode activated.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
4m  2s
the patch passed

+1 :green_heart:
compile
1m  6s
the patch passed

+1 :green_heart:
javac
1m  6s
the patch passed

+1 :green_heart:
shadedjars
6m 40s
patch has no errors when building our shaded downstream artifacts.

-0 :warning:
javadoc
0m 41s
hbase-server in the patch failed.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
5m  4s
the patch passed

+1 :green_heart:
compile
1m 21s
the patch passed

+1 :green_heart:
javac
1m 21s
the patch passed

+1 :green_heart:
shadedjars
7m 37s
patch has no errors when building our shaded downstream artifacts.

-0 :warning:
javadoc
0m 48s
hbase-server in the patch failed.

_ Other Tests _

-1 :x:
unit
213m 45s
hbase-server in the patch failed.

246m 51s

Subsystem
Report/Notes

Docker
Client=19.03.12 Server=19.03.12 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2357/4/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/2357

Optional Tests
javac javadoc unit shadedjars compile

uname
Linux 4dee60031fcc 4.15.0-112-generic #113-Ubuntu SMP Thu Jul 9 23:41:39 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
master / 2e96a5b2d3

Default Java
2020-01-14

mvninstall
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2357/4/artifact/yetus-jdk11-hadoop3-check/output/branch-mvninstall-root.txt

javadoc
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2357/4/artifact/yetus-jdk11-hadoop3-check/output/branch-javadoc-hbase-server.txt

javadoc
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2357/4/artifact/yetus-jdk11-hadoop3-check/output/patch-javadoc-hbase-server.txt

unit
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2357/4/artifact/yetus-jdk11-hadoop3-check/output/patch-unit-hbase-server.txt

Test Results
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2357/4/testReport/

Max. process+thread count
3593 (vs. ulimit of 12500)

modules
C: hbase-server U: hbase-server

Console output
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2357/4/console

versions
git=2.17.1 maven=(cecedd343002696d0abb50b32b541b8a6ba2883f)

Powered by
Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

Failures look sporadic and unrelated. Re-running build to make sure.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m 28s
Docker mode activated.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
7m 27s
the patch passed

+1 :green_heart:
compile
2m  9s
the patch passed

+1 :green_heart:
javac
2m  9s
the patch passed

+1 :green_heart:
shadedjars
12m  3s
patch has no errors when building our shaded downstream artifacts.

-0 :warning:
javadoc
1m 17s
hbase-server in the patch failed.

_ Other Tests _

-1 :x:
unit
343m  2s
hbase-server in the patch failed.

398m 40s

Subsystem
Report/Notes

Docker
Client=19.03.12 Server=19.03.12 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2357/5/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/2357

Optional Tests
javac javadoc unit shadedjars compile

uname
Linux edc889be24f6 4.15.0-112-generic #113-Ubuntu SMP Thu Jul 9 23:41:39 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
master / f36c55c6e8

Default Java
2020-01-14

javadoc
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2357/5/artifact/yetus-jdk11-hadoop3-check/output/branch-javadoc-hbase-server.txt

javadoc
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2357/5/artifact/yetus-jdk11-hadoop3-check/output/patch-javadoc-hbase-server.txt

unit
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2357/5/artifact/yetus-jdk11-hadoop3-check/output/patch-unit-hbase-server.txt

Test Results
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2357/5/testReport/

Max. process+thread count
3176 (vs. ulimit of 12500)

modules
C: hbase-server U: hbase-server

Console output
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2357/5/console

versions
git=2.17.1 maven=(cecedd343002696d0abb50b32b541b8a6ba2883f)

Powered by
Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

Oops, failed again, seems unrelated but let me take a look

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m 27s
Docker mode activated.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
4m 47s
the patch passed

+1 :green_heart:
compile
1m 14s
the patch passed

+1 :green_heart:
javac
1m 14s
the patch passed

+1 :green_heart:
shadedjars
7m 36s
patch has no errors when building our shaded downstream artifacts.

-0 :warning:
javadoc
0m 47s
hbase-server in the patch failed.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
5m 50s
the patch passed

+1 :green_heart:
compile
1m 46s
the patch passed

+1 :green_heart:
javac
1m 46s
the patch passed

+1 :green_heart:
shadedjars
8m 53s
patch has no errors when building our shaded downstream artifacts.

-0 :warning:
javadoc
0m 56s
hbase-server in the patch failed.

_ Other Tests _

+1 :green_heart:
unit
249m 41s
hbase-server in the patch passed.

289m 17s

Subsystem
Report/Notes

Docker
Client=19.03.12 Server=19.03.12 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2357/7/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/2357

Optional Tests
javac javadoc unit shadedjars compile

uname
Linux 610d42714dc0 4.15.0-112-generic #113-Ubuntu SMP Thu Jul 9 23:41:39 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
master / a393fc594c

Default Java
2020-01-14

javadoc
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2357/7/artifact/yetus-jdk11-hadoop3-check/output/branch-javadoc-hbase-server.txt

javadoc
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2357/7/artifact/yetus-jdk11-hadoop3-check/output/patch-javadoc-hbase-server.txt

Test Results
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2357/7/testReport/

Max. process+thread count
3686 (vs. ulimit of 12500)

modules
C: hbase-server U: hbase-server

Console output
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2357/7/console

versions
git=2.17.1 maven=(cecedd343002696d0abb50b32b541b8a6ba2883f)

Powered by
Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.


Added DAC with basic features

Includes builtin DAC trait that would ideally be in embedded-hal. Missing noise and tri wave features (commented-out and partially implemented) and triggers, but I think it's worth merging even without.

The 12-bit left mode doesn't work; probably needs bit arith on the value word integer.
edit: Added triggers and (probably broken) tri wave and noise.

I'm not sure why it's failing the Travis. Eg pac::DAC exists.

Added a modified version of https://github.com/stm32-rs/stm32f3xx-hal/pull/93, with many of the review requests added. (Will add more later).
That module is badly in need of getting added. I understand it's not perfect, but it's good enough. I got rid of LSI/HSE support as requested, to avoid exposing the extra RCC regs, per the discussion.

Could you please split the DAC and RTC implementations into two self-contained PRs? This will make it easier to keep track of these two features and increase the chances that somebody finds time to review one or both of them.

The other PR showed no progress, and I accidentally committed the rtc file and modified rcc file since I use it in my projects. I would be thrilled if that were merged.
I added most of your review changes to that PR, but don't know how to justify the unsafe blocks. Would you be willing to merge that PR if it were modified to reflect what I have in this one? How would you like to proceed?

I would suggest you open a new PR that duplicates #93 with the RTC-related changes from here. Make sure all CI checks pass, then I'll review it and if it looks good, we can merge and close #93.
And from this PR here, just remove all the RTC-related changes (by rewriting the history and force-pushing) so it contains only the DAC feature. And then the same procedure: Make sure the CI tests pass, the maintainers will review, and if everything looks good we'll merge it.
Hope that clears it up.

Any idea why it's failing CI? ##[error]Unable to create clippy annotations! Reason: HttpError: Resource not accessible by integration.

That error is related to the Github Action we are using (see https://github.com/actions-rs/clippy-check#limitations) and is not the reason clippy fails, so you can ignore it.
The clippy error is:
error: unused import: `panic_semihosting`
 --> examples/dac.rs:4:5
  |
4 | use panic_semihosting;
  |     ^^^^^^^^^^^^^^^^^
  |
  = note: `-D unused-imports` implied by `-D warnings`

error: this import is redundant

Replace that line with:
use panic_semihosting as _;

Can anyone figure out why this line doesn't work, but its equivalent for right-hand work? It's probably bit arithmetic I'm missing.
DacBits::TwelveL => self.regs.dhr12l1.modify(|_, w| unsafe { w.bits(val) }),

Moved away from trait-based approach, since I don't think it's general enough to make it into EH.

@ra-kete What is your intention/thoughts regarding this PR? We are thinking about merging the SingleChannelDac trait into embedded-hal. See: https://github.com/rust-embedded/embedded-hal/pull/247

@eldruin I would like to merge the PR as soon as the remaining open review comments have been addressed.

@ra-kete Sounds good. I will hold the merge in embedded-hal then.

Ready for merge. This represents an improvement to the crate by adding missing functionality.

@eldruin No worries, I will squash anyway when I merge.
@David-OConnor Please don't just mark review comments as "resolved" without at least commenting why you think they can be ignored.

I did a squash, and now the Files changed tab is reflecting changes from other PRs.

A squash is simply the act of collecting multiple commits into a single one, it shouldn't pull in other changes. If you can't make it work, please just reset back to the state before. I'll do the squash when merging.

I marked the comments resolved when I asked you questions and you didn't respond to them.

Okay, there seems to be some communication issue here. I am not aware of any questions you asked me. I normally would expect such questions as comments under my review comments. Where did you ask me?

Thanks - squash fixed! For the questions, they're in the review comments.

I recommend merging, then fixing the minutae in a separate PR.

I think I already made clear my view that code we merge should be of high quality and production-ready. This crate has enough code that needs refactoring already, no reason to willingly add more.
I don't see why we can't just fix the few known issues in this PR? None of them look very difficult to me. If you don't feel up to it, let me know. I can fix them myself in this PR.

I quite frankly don't. I'm willing to make things work, but I'm not willing to play  this game any more.

I've updated the PR to the best of my knowledge. @strom-und-spiele, @David-OConnor, would be good if you could look at it again to ensure I didn't mess up any of the finer DAC details.

LGTM.
Making Commits based on topics made it easy to understand what you did each step.
Selecting channels based on the Pin pulls down complexity and allows for ergonomic handling.
On Monday I'll set an oscilloscope up in my office to check triangle and LSFR generation. If I can make it work with the given code in a reasonable amount of time I'd vote for adding it to the example and keeping it.
Apart form that: thanks @David-OConnor and @ra-kete  for you work.

Looks good!

@strom-und-spiele Okay, sounds good! I'm all for keeping this functionality if we can verify it. I'll hold off merging until you have the results then.

Updated the required features for all examples that were still referencing stm32f303 as this is conflicting with setting up the pins correctly.
Playtime for today is over. Couldn't make the current example work. This is the error I was stuck with last:
$ cargo run --example dac --features stm32f303xc
    Finished dev [unoptimized + debuginfo] target(s) in 0.11s
     Running `arm-none-eabi-gdb -q -x openocd.gdb target/thumbv7em-none-eabihf/debug/examples/dac`
Reading symbols from target/thumbv7em-none-eabihf/debug/examples/dac...
0x080065de in ?? ()
openocd.gdb:10: Error in sourced command file:
Dwarf Error: Cannot find DIE at 0x940 referenced from DIE at 0x8e5 [in module /home/bastian/tmp/stm32_dac/stm32f3xx-hal/target/thumbv7em-none-eabihf/debug/examples/dac]

I think this is missing a free() method to give back ownership of the Pin, see C-FREE

Good catch, I will add that. I think for this I'll have to make the Dac abstraction generic over the output pin.
@strom-und-spiele Looks like you're building in debug mode. Have you tried --release?

--release made the example build with an output of ~1.3 V. This might be b.c. the multimeter on my desk is not that precise, the input is too low or the reference voltage on the board is not 3V but lower. If I'm quick with the stuff I have to do for what I'm getting paid for here I'll try it again later today or tomorrow ;)

So I hooked it up to the osci and I get the following with a freshly out-of-the-box STM32F3DISCOVERY and v_ref =3.3 (as in the example code)
set_value   - measured Volts
128         - 1.49
255         - 2.915
256         - 0 (do we want this to happen?)

set_voltage - measured volts
1.0         - 0.9
1.5         - 1.3
3.0         - 2.7
3.3         - 2.915
5.0         - 1.5 (do we want this to happen?)

changed v_ref to 2.915 and got:
set_voltage - measured volts
1.0         - 1.0
1.5         - 1.5
2.5         - 2.5
5.0         - 2.1 (do we want this to happen?)

Need to rush home now but will try the dropped patterns tomorrow.

So I hooked it up to the osci and I get the following with a freshly out-of-the-box STM32F3DISCOVERY and v_ref =3.3 (as in the example code)
set_value   - measured Volts
128         - 1.49
255         - 2.915
256         - 0 (do we want this to happen?)

Seems like an u8 (256) bit overflow?

So I hooked it up to the osci and I get the following with a freshly out-of-the-box STM32F3DISCOVERY and v_ref =3.3 (as in the example code)
set_value   - measured Volts
128         - 1.49
255         - 2.915
256         - 0 (do we want this to happen?)

Seems like an u8 (256) bit overflow?

sorry, I was in a rush and just c&p'ed the same phrase over and over. This is definitely an overflow issue. the implied question was whether the expected behavior is for the value to overflow.
Say the ref voltage is 2V. If I set the output voltage to 3.3V the actual output voltage will be 1.3V. This might be what I wanted but it might as well be totally wrong. IMHO the best reaction would be to abort during compile time and force the user to apply a "mod 2" operation explicitly in the calling code.

IMHO the best reaction would be to abort during compile time and force the user to apply a "mod 2" operation explicitly in the calling code.

As set_voltage() and set_value() can not fail they should not fail. Tricks like these should be included in the infallible version.
If this overflow error is not preventable, e.g. value > v_ref, then set_value() and set_voltage() should fail.

Couldntt make the wave generation work on short notice. I advise merging without them.
However I noticed that there was no way to actually trigger the software trigger, so I added it.

I implemented/responded to all remaining review comments, except for the issue of handling invalid voltages/values.
There is not much we can do at compile time. We could limit setting an 8-bit value to a u8, but for setting 12-bit values Rust doesn't provide us a fitting data type. IMO it's better to handle both cases uniformly be returning a Result. Same is true for setting a voltage, I don't see what we could do at compile time to ensure no invalid value can be set.
So I propose making both set_value and set_voltage fallible. This would also work well with the SingleChannelDac trait, which already assumes that conversions can fail.

There is not much we can do at compile time. We could limit setting an 8-bit value to a u8, but for setting 12-bit values Rust doesn't provide us a fitting data type. IMO it's better to handle both cases uniformly be returning a Result. Same is true for setting a voltage, I don't see what we could do at compile time to ensure no invalid value can be set.

While nothing stops us from using a twelfe bit type I agree that uniformity is nicer here.


Add pdp and ebm contracts

Hi @wamartin-aml,
This looks good! Will merge it for this coming release.


Tracking: Implement getblocktemplate RPC

Motivation
Mining pools use the getblocktemplate RPC method.
Scope
getblocktemplate supports about 10 different alternative options or modes:
https://zcash.github.io/rpc/getblocktemplate.html
Some of these modes don't work for Zcash, or are very difficult to implement. So we might want to just implement the modes that are actually used by mining pools.

[x] #5451
[x] #5452
[x] #5455
[x] #5579
[x] #5453
[x] #5454
[x] #5456
[x] #5495
[x] #5466
[x] #5473
[ ] #5686
[x] #5720

Optional
We're not sure if we need to implement these tickets yet:

[ ] #5472

Here are some example getblocktemplate responses:

mainnet, some mempool: https://github.com/ZcashFoundation/zebra/issues/5235#issuecomment-1285189453
mainnet, empty mempool: https://github.com/ZcashFoundation/zebra/issues/5235#issuecomment-1285174731
testnet, empty mempool: https://github.com/ZcashFoundation/zebra/issues/5235#issuecomment-1285153640

Mining Pool Usage
s-nomp calls getblocktemplate from this code:

https://github.com/s-nomp/s-nomp/blob/bb42440d63339960641e70dcac67ba8e822ed712/libs/profitSwitch.js#L545
https://github.com/s-nomp/node-stratum-pool/blob/d86ae73f8ff968d9355bb61aac05e0ebef36ccb5/lib/pool.js#L625

Draft Design Notes

getblocktemplate

parameters:

rules: segwit - not in Zcash

fields:

height
version
curtime
bits

new state request

previousblockhash
target

same state request as bits

transactions - get from mempool, needs consistency fix

data
hash
txid

coinbaseaux - undocumented constant
coinbasevalue - calculation based on consensus rules
default_witness_commitment - not in Zcash (required by SegWit)

Error Handling
Do we need to return an error if Zebra is still syncing, and not at the chain tip yet?
Testing

[ ] Snapshot the output of the RPC
[ ] Test calling the RPC from the mining pool software
[ ] Manually compare the zcashd and zebrad RPC output using https://github.com/ZcashFoundation/zebra/blob/main/zebra-utils/zcash-rpc-diff

Hey team! Please add your planning poker estimate with Zenhub @arya2 @conradoplg @dconnolly @oxarbitrage @teor2345 @upbqdn

Some potentially useful documentation from bitcoin: https://en.bitcoin.it/wiki/Getblocktemplate

This is the default getblocktemplate response from zcashd.
It contains the following undocumented fields:

capabilities: fixed value proposal
transactions.*.authdigest: possibly fixed value ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
coinbasetxn: format is undocumented, appears to be the same as a single entry in transactions

This makes it more likely that other parts of the documentation are out of date.
$ zcash-cli -testnet getblocktemplate
{
  "capabilities": [
    "proposal"
  ],
  "version": 4,
  "previousblockhash": "065f6320634754f3e5fbc93ffbde1d4100b96d6a3f3dd552d5b56a015e5b78dd",
  "blockcommitmentshash": "95c502ddc997e79266943e3fcef3f83d496dc2716c3c762f706f73455e754014",
  "lightclientroothash": "95c502ddc997e79266943e3fcef3f83d496dc2716c3c762f706f73455e754014",
  "finalsaplingroothash": "95c502ddc997e79266943e3fcef3f83d496dc2716c3c762f706f73455e754014",
  "defaultroots": {
    "merkleroot": "8cd693cd20e239426327ea06a64558afbddc7637e67884ee17f4ee1d53b63c63",
    "chainhistoryroot": "cdb17ded03160eeed581a7c5f0378d98f820a218856a0251cb0b6ac921c960d8",
    "authdataroot": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
    "blockcommitmentshash": "95c502ddc997e79266943e3fcef3f83d496dc2716c3c762f706f73455e754014"
  },
  "transactions": [
  ],
  "coinbasetxn": {
    "data": "0400008085202f89010000000000000000000000000000000000000000000000000000000000000000ffffffff050385d21f00ffffffff0480b2e60e000000001976a914054d6009cb52b13b812bfa6fcf4bc7495b65a89c88ac286bee000000000017a9140c0bcca02f3cba01a5d7423ac3903d40586399eb8738c94d010000000017a9145d8b6cb94fb7d99363ae0e7114be5208f47924508740787d010000000017a91471e1df05024288a00802de81e08c437859586c87870000000085d21f000000000000000000000000",
    "hash": "8cd693cd20e239426327ea06a64558afbddc7637e67884ee17f4ee1d53b63c63",
    "authdigest": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
    "depends": [
    ],
    "fee": 0,
    "sigops": 1,
    "required": true
  },
  "longpollid": "065f6320634754f3e5fbc93ffbde1d4100b96d6a3f3dd552d5b56a015e5b78dd77311",
  "target": "029b220000000000000000000000000000000000000000000000000000000000",
  "mintime":<PHONE_NUMBER>,
  "mutable": [
    "time",
    "transactions",
    "prevblock"
  ],
  "noncerange": "00000000ffffffff",
  "sigoplimit": 20000,
  "sizelimit": 2000000,
  "curtime":<PHONE_NUMBER>,
  "bits": "20029b22",
  "height": 2085509
}

This is the default mainnet getblocktemplate response from zcashd.
$ zcash-cli getblocktemplate

{
  "capabilities": [
    "proposal"
  ],
  "version": 4,
  "previousblockhash": "00000000005a92b9c568345fbb04e80d1d8f6bbcbd5c623ed1163e58806d28ab",
  "blockcommitmentshash": "f086a03f0ab071e8d20c2f9515253b14cfcb76cfbba34e0cb5314c99ffc8a311",
  "lightclientroothash": "f086a03f0ab071e8d20c2f9515253b14cfcb76cfbba34e0cb5314c99ffc8a311",
  "finalsaplingroothash": "f086a03f0ab071e8d20c2f9515253b14cfcb76cfbba34e0cb5314c99ffc8a311",
  "defaultroots": {
    "merkleroot": "3a8f3244e15670a623a08d9b95db69d29ba48d1e8f6bdee970fe1ab39b3f4f9a",
    "chainhistoryroot": "6adb3762fbefc6d49c6a472d71d87fe7e0c4d1adc1a4a97a3a165474d65e1cf8",
    "authdataroot": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
    "blockcommitmentshash": "f086a03f0ab071e8d20c2f9515253b14cfcb76cfbba34e0cb5314c99ffc8a311"
  },
  "transactions": [
  ],
  "coinbasetxn": {
    "data": "0400008085202f89010000000000000000000000000000000000000000000000000000000000000000ffffffff050364381c00ffffffff0480b2e60e000000001976a914dc38751362cd527d2295064f1a6fac6685e7a14488ac40787d010000000017a914931fec54c1fea86e574462cc32013f5400b891298738c94d010000000017a914a409be939aede71e3e1fa5e2d594161101e7147687286bee000000000017a914d45cb1adffb5215a42720532a076f02c7c778c90870000000064381c000000000000000000000000",
    "hash": "3a8f3244e15670a623a08d9b95db69d29ba48d1e8f6bdee970fe1ab39b3f4f9a",
    "authdigest": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
    "depends": [
    ],
    "fee": 0,
    "sigops": 1,
    "required": true
  },
  "longpollid": "00000000005a92b9c568345fbb04e80d1d8f6bbcbd5c623ed1163e58806d28ab10",
  "target": "000000000135fb00000000000000000000000000000000000000000000000000",
  "mintime":<PHONE_NUMBER>,
  "mutable": [
    "time",
    "transactions",
    "prevblock"
  ],
  "noncerange": "00000000ffffffff",
  "sigoplimit": 20000,
  "sizelimit": 2000000,
  "curtime":<PHONE_NUMBER>,
  "bits": "1c0135fb",
  "height": 1849444
}

This is the default mainnet getblocktemplate response from zcashd, with some mempool transactions.
I replaced the transaction data with ....
$ zcash-cli getblocktemplate | jq '(.transactions[].data) |= "..." '

{
  "capabilities": [
    "proposal"
  ],
  "version": 4,
  "previousblockhash": "00000000001be30d82561462528b56a61c0a5e921960760edd6e325557ecdcbb",
  "blockcommitmentshash": "18d46472afb5d45985c23b0fb1404ae3f5cc002a463b9f44b11091483bd0cc09",
  "lightclientroothash": "18d46472afb5d45985c23b0fb1404ae3f5cc002a463b9f44b11091483bd0cc09",
  "finalsaplingroothash": "18d46472afb5d45985c23b0fb1404ae3f5cc002a463b9f44b11091483bd0cc09",
  "defaultroots": {
    "merkleroot": "7742ba54ab1a130de3a60020b4e56a45d1a25d0b6776ae9d49091c43aad176d0",
    "chainhistoryroot": "b03c4bea6583d9c35bdbea4de9435fd487f6c8a253c119481f15ee0c2bb7fbe6",
    "authdataroot": "7f5d36e82fcc84267c4cca93a2800cdcfe26b6f0f03566907739c07cda00ef14",
    "blockcommitmentshash": "18d46472afb5d45985c23b0fb1404ae3f5cc002a463b9f44b11091483bd0cc09"
  },
  "transactions": [
    {
      "data": "...",
      "hash": "610dbcbb639dd02a0958a9a7f2cec4a65bdcbe96b96c0f99c74382b7b1f39e35",
      "authdigest": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
      "depends": [],
      "fee": 245,
      "sigops": 2
    },
    {
      "data": "...",
      "hash": "07ebe4606ced7a3ad952115ceb999f73fdaeb147c4c5aa00084d4f1856fe4806",
      "authdigest": "e2f90dec876601b63412f966b6544a8a7392cfc50ddd421d076ad85e9445ec84",
      "depends": [],
      "fee": 1000,
      "sigops": 0
    }
  ],
  "coinbasetxn": {
    "data": "0400008085202f89010000000000000000000000000000000000000000000000000000000000000000ffffffff050366381c00ffffffff045db7e60e000000001976a914f72070b750eba1b327a268a8f68ab5c05834ef6788ac40787d010000000017a914931fec54c1fea86e574462cc32013f5400b891298738c94d010000000017a914a409be939aede71e3e1fa5e2d594161101e7147687286bee000000000017a914d45cb1adffb5215a42720532a076f02c7c778c90870000000066381c000000000000000000000000",
    "hash": "201d369050ab59cfdc9cd016ea642997943827bc9633de16522ce32469836308",
    "authdigest": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
    "depends": [],
    "fee": -1245,
    "sigops": 1,
    "required": true
  },
  "longpollid": "00000000001be30d82561462528b56a61c0a5e921960760edd6e325557ecdcbb22",
  "target": "00000000013bf900000000000000000000000000000000000000000000000000",
  "mintime":<PHONE_NUMBER>,
  "mutable": [
    "time",
    "transactions",
    "prevblock"
  ],
  "noncerange": "00000000ffffffff",
  "sigoplimit": 20000,
  "sizelimit": 2000000,
  "curtime":<PHONE_NUMBER>,
  "bits": "1c013bf9",
  "height": 1849446
}

Draft of the split we want to do to implement this method:
Goal : Create a default getblocktemplate RPC implementation.
6 tickets total.
This split was chosen because after we introduce a very basic getblocktemplate RPC call with an empty response (1-) then most of the tickets can be worked in parallel.
1- Introduce getblocktemplate
Tasks:

Add a getblocktemplate RPC method behind the getblocktemplate-rpcs rust feature.
The method should have no arguments.
Create the response structure BlockTemplate : https://github.com/ZcashFoundation/zebra/issues/5235#issuecomment-1285174731
Always return an empty BlockTemplate
Test the rpc method is callable and returns a Blocktemplate type.

No dependencies.
2- Populate Blocktemplate responses with fixed values data.
Several BlockTemplate  fields introduced in 1- are fixed values.
Tasks:

Identify fixed values fields and add them to the response of the getblocktemplate RPC call.
Update the test created at 1- so it can also test for fixed values in the responses.

Depends on 1.
3- Populate BlockTemplate  fields with functional values.
Whatever is not fixed values(1-), coinbase transaction(4-) or mempool transaction(5-) will be functional values.
Tasks:

Identify  functional values.
Return functional values in the getblocktemplate RPC method response.

Depends on 1.
Can depend on 2 for identification.
4- Populate the coinbase transaction data of GetBlockTemplate.
The coinbasetxn  field of the BlockTemplate is a struct:(https://github.com/ZcashFoundation/zebra/issues/5235#issuecomment-1285174731) and can be complex enough to implement it in a separated ticket.
Tasks:

Create CoinBaseTxn struct.
Populate on getblocktemplate response.
Test: TODO

Depends on 1.
5- Populate transactions of GetBlockTemplate.
The transactions field of the GetBlockTemplate  response is an array of GtBlockTemplateTx structure with the transaction data and other fields.
Tasks:

Create GetBlockTemplateTx
bring transactions from the mempool and populate the transactions.data fields. https://github.com/ZcashFoundation/zebra/issues/5235#issuecomment-1285189453
Populate the additional fields of GtBlockTemplateTx

Depends on 1.
6- Add a miner address config option.
Tasks:

Add a config containing the miner address to zebrad.toml, probably in a new [mining] section.
Hide the whole mining section in the getblocktemplate-rpcs feature if this is possible?

No dependencies.

Based on #5235 (comment) i created 6 tickets:

I just checked the s-nomp code, getblocktemplate also needs to return an error if Zebra isn't synced yet:

#5466

Removing estimate from issue as it is a tracking issue, estimates of sub-tasks to be taken into account instead

Moving #5686 to #5937

Closing this for now, implementation is done and testing is being tracked under #5937


Glow squid has no animation, like in vanilla Minecraft

I believe this also applies to Squid as well. I will reopen #4 and mark this as a duplicate of that. If you want to contribute to that issue, feel free.


What is an archived post?

I'm trying to have a bot vote on posts of certain users.
I keep getting an exception about not being able to vote on archived posts.
I'm searching google and I can't find anything about what is an archived post on Steem.
Can someone explain the code block below:
        # Test if post is archived, if so, voting is worthless but just
        # pollutes the blockchain and account history
        if self.get('net_rshares', None) == None:
            raise VotingInvalidOnArchivedPost
        return self.commit.vote(self.identifier, weight, account=voter)

https://github.com/steemit/steem-python/blob/master/steem/post.py#L247-L251

Currently, an "archived" post is one which is older than 7 days, and can no longer be voted on. Are these posts you are trying to vote on within the 7 day range, or older?

No apparently the code I posted is the fixed version but it isn't on pip.

Closing as issue is open for that here https://github.com/steemit/steem-python/issues/27


using recompose with enzyme

My enhance it's look like this
const enhance = compose(
  withState('labelText', 'setLabelText', ''),
  withState('hover', 'hovering', false),
  withState('labelLeft', 'setLabelLeftPosition', 0),
);

When I use enyzme to test component and I console.log the props like this
const wrapper = shallow(<Toolbox />);
console.log(wrapper.props());

It's show only first props { labelText: '', setLabelText: [Function] }
Did you know what is happening?

Yes I know. Please read about what is higher order components.

use mount instead of shallow

@Isaddo When I change shallow to mount I got output {} from console

Just think about this
  const C = ({ propA, propB }) =>
{propA + propB}

  const B = ({ propA }) => <C propB={'propB'} propA={propA} />
  const A = () =>
  const wrapper = shallow()

It is almost the same what you have with enhancers. Every enhancer here - HOC creates a new Component so at top level component you have props only from top enhancer

To test all the props you need to use something like
  const ToolboxClass = toClass(Toolbox) // otherwise won't work with stateless

  const Blabla = compose(
    withState('labelText', 'setLabelText', ''),
    withState('hover', 'hovering', false),
    withState('labelLeft', 'setLabelLeftPosition', 0)
  )(ToolboxClass)

  const wrapper = mount(<Blabla />)

  console.log(wrapper.find(ToolboxClass).props())

I did it! Thank you so much @istarkov

@istarkov  Have anyway to access Base Component if I import a Composed Component?

I always export base component, enhancer and enhanced component,
it allows me to reuse them, and also to use code above for tests

Just for completeness this is what worked for me.
// Toolbox.js

export const enhance = compose(
  withState('labelText', 'setLabelText', ''),
  withState('hover', 'hovering', false),
  withState('labelLeft', 'setLabelLeftPosition', 0)
);

export Toolbox = /* ... */

export default enhance(Toolbox);

// Toolbox.test.js

import { Toolbox as ToolboxComponent, enhance } from './Toolbox';

const ToolboxClass = toClass(ToolboxComponent); // otherwise won't work with stateless
const Toolbox = enhance(ToolboxClass);

const wrapper = mount(<Toolbox />);

console.log(wrapper.find(ToolboxClass).props());

@marcusstenbeck this is really helpful. I 've searched a while to find this. I have one question if you don't mind. What if I want to pass some dummy props in my tests. For example let's say i have prop A and B and I use a boolean prop C injected by withProps after making some calculations with A and B.
export const enhance = compose(
  pure,
  withProps(({ A, B }) => ({
    C: ...
  })),
  withHandlers({
    onClick: () => e => (
    ...
    ),
  }),
);

export const Component = ({
  A,
  B,
  C,
  onClick,
}) => (

{C ? 'C is truthy' : 'C is falsy'}

);

UserResponse.propTypes = {
  A: PropTypes.arrayOf(PropTypes.string),
  B: PropTypes.string,
  C: PropTypes.bool,
  onClick: PropTypes.func,
};

export default enhance(Component);

Here without recompose i 'd use some dummy A, B and then i would test the final outcome accordingly. Now i am creating C with recompose (by using A and B) and the outcome is based on C. So now that C is also a prop how should i test this component? How can i inject these props in your example above?

I prefer to test my smart recomposed component. Because often, there is logic there that needs testing.
I use this until helper to easily "dive" past all the HOCs to the Base Component that I'm ultimately wrapping.
So if you have a src file of:
// ToolBox.js
const enhance = compose(
  withState('labelText', 'setLabelText', 'my label'),
  withState('hover', 'hovering', false),
  withState('labelLeft', 'setLabelLeftPosition', 0),
);

export const ToolBox = enhance(
  ({ labelText, hover, labelLeft, ...etc }) =>

{ labelText }{ hover }{ labelLeft }

);

You can have a test file of (I'm writing an example here, not sure if this is working, but this is what my tests basically look like):
// ToolBox.spec.js
it('has the props', () => {
  // shallow the entire component, recompose and everything.
  // I do still use mount sometimes for testing lifecycles or other reasons, but rarely.
  // I'm using the ::until syntax (it is stage-0) but you can also add to ShallowWrapper.prototype
  // ::until('ToolBox') will continue to shallow render single children until it finds the matcher
  const wrapper = shallow(<ToolBox />)::until('ToolBox');

  expect(wrapper.text()).toEqual('my label false 0')
});

You have to mix that approach with solid HOC mocks for common HOCs like connect from react-redux. Here is my mock for connect, it's the most basic version of connect you could write, so it still maps state and dispatch to props but in a very basic way that means you don't have to worry about Provider errors. I also typically just mock selectors but sometimes I'll use the setTestState helper to mock out the redux state (though I'm using that less and less).
// __mocks__/react-redux.js

import React from 'react';

let state = { };

const setTestState = (newState) => { state = newState; };

const connect =
  (mapStateToProps, mapDispatchToProps) => (BaseComponent) => {
    return (props) => {
      const mappedState = typeof mapStateToProps === 'function'
        ? mapStateToProps(state, props)
        : {};

      const mappedDispatchToProps = typeof mapDispatchToProps === 'function'
        ? mapDispatchToProps((action) => action, props)
        : mapDispatchToProps;

      return (
        <BaseComponent
          {...props}
          {...mappedState}
          {...mappedDispatchToProps}
        />
      );
    };
  };

module.exports = {
  setTestState,
  connect
};


RKE2 template test

Release testing PR for rke2 templates.
Issue: https://github.com/rancher/qa-tasks/issues/542

LGTM Sam! great work!
Two questions (nits?):

on line 42 of rke2template.go, the following line of code is seen: k8sversions, err := kubernetesversions.Default(client, "rke2", nil), do we want to store the string "rke2" as a const? -- its unclear to me what our convention around this is, or if we have a procedure in place around what is acceptable for params, so just pointing that out
second point is also in rke2teamplate.go, I noticed "fmt" is being imported instead of logrus.  Is this intentional? doesn't cause alarm on my end, and i vaguely remember issues myself where logrus.Error was having a linter meltdown when i tried returning that in previous qa-tasks, but I also recall we decided sometime back to use logrus whenever possible. So just wanted to point that out as well, and see if there was a specific reason "fmt" was being used 🙂

@susesgartner this requires back ports right?


Carousel transition flicker on mobile

I have a number of sites using bootstrap 4 carousel, which used to be fine, but recently they have all started to show a flicker on transition, this happens randomly.  This is happening on fully up to date iPhone and iPad on safari and firefox, and also on chrome anf firefox on android tablets, although the flicker seems to be less extreme on that.  Upon investigation I have found that the exact same thing occurs with the bootstrap example on https://getbootstrap.com/docs/4.5/examples/carousel/ so I know it's nothing I am doing.  Video of what i see the bootstrap carousel example do on my iphone is in the attched zip.
bootstrapcarouselissue.zip

can't reproduce on iPhone 7 / iOS 13.5.1. could it be you're running an older version, or have some different configuration?

As I said in my OP, all devices fully up to date with OS.  Experiencing it on iPhone SE/iOS 13.51, and iPad (6th gen) IOS 13.5.  If configuration, what, because this is the standard bootstrap demo on a standard iOS device.

i now also tried on an iPhone SE / iOS 13.5.1, and I still can't see the same issue as in your video when going to https://getbootstrap.com/docs/4.5/examples/carousel/ - works completely smoothly for me with no flicker/jumps/etc. so ... not quite sure why you're experiencing that problem. could it be a slow connection? no other app running that might be interfering somehow?

Shouldn't be a connection speed issue - measurements indicate 49Mb/s.  Nothing else running, have restarted device.  Weird.  Not only happening on the bootstrap example, but on any example I can find on the net that is using bootstrap carousel - like any site built with Mobirise for example (it's sliders use bootstrap).  So something about my devices doesn't like bootstrap or vice versa, but what it is I have no idea.  I've been investigating this for over 2 months, have tried all the suggestions people had about fiddling with z-index and backface visbility etc but none of them work.  I've even ripped out bits of html and css on a line by line basis to see if it has any effect.  There is no consistent behaviour.  I'm presuming it must be a race condition going on, but I can't figure it out, so am probably going to have to abandon using bootstrap carousel and find an alternative as I can't be 100% sure any sites I build are behaving correctly.

Happy to look at any WebKit/Safari issues related to animations, but I'd rather issues were filed on bugs.webkit.org so that we can fix the bug appropriately. That said, just like @patrickhlauke, I couldn't reproduce the reported issue with an iPhone 11 Pro running iOS 13.6 beta.


Fixed spelling/grammar error

Changed Configuration your report server

@gerryaobrien : Thanks for your contribution! The author(s) have been notified to review your proposed change.


Frontend-only security list management and explicit security list config

Adds loadbalancer.securityListManagementMode config option that configures how the CCM should manage security lists.
Depreciates loadbalancer.disableSecurityListManagement in favour of loadbalancer.securityListManagementMode: None.
Adds loadbalancer.securityLists config option to allowexplicit configuration of the security lists managed by the CCM on a per subnet basis.

Resolves: #164
E2E tests (both loadbalancer.securityListManagementMode: {Frontend, All}):
Ran 9 of 9 Specs in 462.843 seconds
SUCCESS! -- 9 Passed | 0 Failed | 0 Pending | 0 Skipped PASS

Ginkgo ran 1 suite in 7m52.77316247s
Test Suite Passed

What happens if they specify a subnet id in the security list map then remove it later? That'd cause the CCM to ignore existing rules and put all new rules in a new security list.

@jhorwit2 Do you think its unresonable to expect the user to clean up orphaned security list rules in that case? I can't think of a simple way in which to track this across CCM restarts and it seems like a bit of an edge case.


Valid Wasm module fails validation

test.wasm.gz
(module
  (type (;0;) (func))
  (type (;1;) (func))
  (import "" "" (global (;0;) (mut i32)))
  (func (;0;) (type 1)
    (local f64)
    loop  ;; label = @1
      loop  ;; label = @2
        unreachable
        global.get 0
        global.get 0
        br_if 0 (;@2;)
        global.set 0
        unreachable
      end
      unreachable
    end
    unreachable))

I need to double check the spec and how unreachable code is validated, but all of wasm2wat, wasm-validate, and wasm-dis accept this module as valid, while wasmparser's validator returns an error.

It looks like our handling of br_if is accidentally un-setting the stack polymorphic bit on the block here.

Tried #29c41f2 , fails at
https://github.com/WebAssembly/testsuite/blob/645d8fcf9cab495cfc8f3772a2318480d646b43e/unreached-invalid.wast#L689-L709


Feature/fleet page Setup

Added Add plane functionality, edit plane functionality, admin priveleges for those features, however functionality involving the new entity models isn't done(validating the data & updating csv/pulling from csv)

didn't write #close because this pr doesn't close a ticket entirely

Looks great Clint I particularly like the minimal styling.


Plugin Support: Notion-Like Tables

Issues with the plugin
the buttons are too big
Relevant Screenshot

Link to the Plugin
https://obsidian.md/plugins?id=notion-like-tables

closing this, as this is much better than it was before

has this been solved on the plugin's end or what happened?

I don't know, I thought it was you. In any case, it appears like that in the latest release.


[MINOR] Establish published api

Move factory methods to main pynction library so that clients do not know the implementation details of the library.

Codecov Report

Merging #9 (a796200) into main (72cade9) will increase coverage by 0.15%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main       #9      +/-   ##
==========================================
+ Coverage   96.40%   96.55%   +0.15%
==========================================
  Files           4        5       +1
  Lines         250      261      +11
==========================================
+ Hits          241      252      +11
  Misses          9        9

Impacted Files
Coverage Δ

pynction/monads/either.py
100.00% <ø> (ø)

pynction/monads/try_monad.py
87.67% <ø> (ø)

pynction/streams/stream.py
100.00% <ø> (ø)

pynction/__init__.py
100.00% <100.00%> (ø)

pynction/monads/maybe.py
100.00% <100.00%> (ø)

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 72cade9...a796200. Read the comment docs.


Add automatic status check: Dockerfile Version Increment

If someone submits a PR with an update to the Dockerfile, must check that the version number has been incremented.
Could look at different ways to check the version increment. Perhaps it could build the Dockerfile and check for differences with what's on airlab-storage.

Implemented in 23ab4e3


incorrect read w/10bit addr and clock stretching

I'm trying to do a 10bit addressed read on a device that requires a delay between the read and the response data.  This is definitely a bit of a corner case for pigpio but I think that the underlying support is present (which is really cool).
The read command is Read(0x055) D1.  I implement it in bb_i2c_zip as:
(count, data) = pi.bb_i2c_zip(SDA, [4, 0x78, 2, 7, 1, 0x55, 4, 0x78, 2, 6, 1, 3])
Effectively I setup a 1 byte write of 0x55 Write to 7bit addr 0x78, send a START, then read from 0x78 of 1 byte.  I think this ends up correctly emulating a proper 10bit address read, and the scope looks right, but the returned value given to me is wrong and pigpio is clocking in more than receive 1 byte.
Here is the setup for the read on scope...

Here is the response being clocked in after the stretched SCL.  Notice more than one byte is clocked, and the returned value isn't what is seen on scope...

The call above actually returns: count:1 data:[e0]
A couple things that might be relevant:

I have other 7bit non-stretched things communicating properly using basically this setup.
I am using GPIO 2,3 (HW I2C disabled) so that the pulls are setup properly in HW.
Init is pi.bb_i2c_open(2, 3, 1000).

Thank you,
Hunter

Work around: If you terminate every transaction with a "0", then things operate correctly.  In the example for bb_i2c_zip I see multiple transactions without a "0" after each stop, but in my case I do not get proper results without terminating each transaction with "0".

Add this to the project's Wiki under available work-arounds.


Accept range value for VAST Midroll timer

If setup a VAST Midroll ad with e.g. timer=120 and the user clicks from video position 1min40 to 2min30 in the progress bar the Midroll ad is not loaded/displayed.
Is there a possibility to display it anyway? In this case at 2min30 = timer 150)

Created an internal ticket to implement this as a new feature


SELECT component: display issue in IE11

When using the SELECT component in IE11, the scrollbars do not appear, and items spill outside the dropdown instead. I see this behavior both in my test page and in the official demo (https://marcosmoura.github.io/vue-material/#/components/select). See attachment for a screenshot.

Oh. Yeah, this is definitely a bug. A sad one, right?
The select component it's being rebuilt using md-menu. This new menu component is already finished. I will start to rework select on top of this menu pretty soon. Both will be released in the next minor version (v0.3.0).
I'm sorry to make you wait for that. Meanwhile I will find a workaround for you. I will post it here.
Thank you for reporting this!

Thank you for being so responsive, and, most importantly, thank you for building this library and giving us a way to make our apps 1000% better-looking with little effort!

@cheresier I have found the problem. IE 11 have too much trouble to render flexbox. On Edge those problems were fixed.
For now the workaround is not that good. You have to add a custom css with those properties:
.md-select-menu .md-select-menu-container {
  overflow: auto;
  max-height: 256px; //This size needs to be like that, for now
}

I tested this on selects with few options and worked. With a lot of options, like the combo of fonts, the scrollbar was applied. This is not gonna happen on the new md-select.
Thank you!

Awesome, thanks again!

Already implemented and will be shipped on the very next release (v0.3.0)


Cannot read property 'editing' of undefined

Hello,
I'm getting an error when i try to load file second time
Cannot read property 'editing' of undefined
What could it possibly be ?

Sorry, my bad, i've done something wrong.
Btw, is it possible to get latlngs from imported .kml ?
Thanks.

Hi, you can access all the imported layers properties through the event.layer properties in the loaded event. Please see an updated example in the README -> Usage -> Events part.


Update changelog for v0.3.0

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 87.473%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
405

Relevant Lines:
463

💛  - Coveralls


added università Amedeo Avogadro

@vlakius file/lib/domains/it/unipo/studenti.txt: Your request has an incorrect file path format, please ensure the request follows     the repository rules set out at the bottom of this page and change     it accordingly or start a new one.     If you are unable to make a pull request with the instructions provided, please send an email to<EMAIL_ADDRESS>mentioning the URL of this request in the message.

@vlakius file/lib/domains/it/unipo/studenti.txt: Your request has an incorrect file path format, please ensure the request follows     the repository rules set out at the bottom of this page and change     it accordingly or start a new one.     If you are unable to make a pull request with the instructions provided, please send an email to<EMAIL_ADDRESS>mentioning the URL of this request in the message.

@vlakius I renamed the file for you to have it in correct format, but the website of your university returns Internal Server Error. Please ask your system administrator to fix the error, or provide us with:

the school official website URL, if different from the domain you are submitting
an URL of a page on the official website where an IT-related long-term (>1 year) course is offered by the school
an URL of a page or another proof (.pdf or a screenshot are OK) showing that the school recognizes the domain which you are submitting as an official email domain for the students.

@vlakius I have to close this request without merging, because you requested to add a non-existent domain to this repository: Host studenti.unipo.it not found: 3(NXDOMAIN) Please ensure that you are familiar with this repository rules located at the bottom of this page and submit a new request with the correct information. Thank you for understanding!


[BUG] [vue3-webcomponent-wrapper] append rendered custom component to another node, it won't display any more

Is the issue already present in https://github.com/cloudera/hue/issues or discussed in the forum https://discourse.gethue.com?
NO
Describe the bug:
append rendered custom component to another node, it won't display any more
Steps to reproduce it?

define a custom element（such as: custom-element）
created that element on page.（document.querySelector('#some-wrapper').append(document.createElement('custom-element'))）
it renderd successfully
move it to antoher node.（document.body.append(document.querySelector('custom-element'))）
it disapperd!

F12 shows:
[Vue warn]: App has already been mounted.
If you want to remount the same app, move your app creation logic into a factory function and create fresh app instances for each mount - e.g. const createMyApp = () => createApp(App)

I found another way to do the same thing


dnsproxy: 0.37.6 -> 0.37.7

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/AdguardTeam/dnsproxy/releases.
meta.description for dnsproxy is: "Simple DNS proxy with DoH, DoT, and DNSCrypt support"
meta.homepage for dnsproxy is: "https://github.com/AdguardTeam/dnsproxy"
meta.changelog for dnsproxy is: ""
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

/nix/store/myqmqi2rj7y2vl3gs6pk6r11n9k7fzzd-dnsproxy-0.37.7/bin/dnsproxy passed the binary check.

1 of 1 passed binary check by having a zero exit code.

0 of 1 passed binary check by having the new version present in output.

found 0.37.7 with grep in /nix/store/myqmqi2rj7y2vl3gs6pk6r11n9k7fzzd-dnsproxy-0.37.7

found 0.37.7 in filename of file in /nix/store/myqmqi2rj7y2vl3gs6pk6r11n9k7fzzd-dnsproxy-0.37.7

directory tree listing: https://gist.github.com/51f7bf17a2bafd5cd5f9405321c42dde

du listing: https://gist.github.com/fc8d739de71c058d02a34cede4597273

Rebuild report (if merged into master) (click to expand)

4 total rebuild path(s)

1 package rebuild(s)

1 x86_64-linux rebuild(s)
1 i686-linux rebuild(s)
1 x86_64-darwin rebuild(s)
1 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
dnsproxy

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/myqmqi2rj7y2vl3gs6pk6r11n9k7fzzd-dnsproxy-0.37.7 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A dnsproxy https://github.com/r-ryantm/nixpkgs/archive/548cc15a89d23a3bb2e5184253e9aad53c79bb87.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/myqmqi2rj7y2vl3gs6pk6r11n9k7fzzd-dnsproxy-0.37.7
ls -la /nix/store/myqmqi2rj7y2vl3gs6pk6r11n9k7fzzd-dnsproxy-0.37.7/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

dnsproxy

Maintainer pings
cc @contrun @kalbasit for testing.

Result of nixpkgs-review pr 127859 at 548cc15a run on aarch64-linux 1

1 package built successfully:

dnsproxy

1 suggestion:

warning: unclear-gpl
gpl3 is a deprecated license, please check if project uses gpl3Plus or gpl3Only and change meta.license accordingly.
Near pkgs/tools/networking/dnsproxy/default.nix:21:5:
   |
21 |     license = licenses.gpl3;
   |     ^


Updated patternfly-sass and angular-patternfly to v2.6.0

@simaishi ack please

@zeari FYI

LGTM

@skateman Thanks! This is going to save us a lot of code.


Organise testing utils

Fixes #564
Moves many mock device test fixtures and utility functions to a central place under src/, so that they can easily be reused by application code
Instructions to reviewer on how to test:

See that no tests are broken

Checks for reviewer

[ ] Would the PR title make sense to a scientist on a set of release notes
[ ] If a new device has been added does it follow the standards
[ ] If changing the API for a pre-existing device, ensure that any beamlines using this device have updated their Bluesky plans accordingly

never mind, this is too hard, I now think it's better to just copy and paste stuff everywhere


Governance support for IBC actions

Why this feature is required pre- mainnet
Subjecting IBC to governance is necessary for the IBC implementation on Penumbra to be suitable for handling real-world funds. N.B. this feature overlaps with the Governance and Upgrades planning projects.
What we need to implement

[x] https://github.com/penumbra-zone/penumbra/issues/2173

Duplicate of #2173


Tidy up annotations in gistMeasure ontology

Tidy up annotations in gistMeasure ontology according to consistent stylistic guidelines to be specified as part of issue https://github.com/semanticarts/gist/issues/253

Closed due to irrelevance after de-modularization. I've created a single issue for cleaning up all annotations #314.


BUG on integers

When an integer, which is longer than 32 bit, is read from a JSON file, it will be truncated to 32 bit.

Thanks for reporting, @retcheverry has provided a PR to fix this. It is now merged.
Please give a try and come back to us in case of error.
Cheers,

@dxma can you update the code on metacpan?

sure, I will cut a new release.


boto3 requests not being auto traced in 3.7

Description
When using python3.7 runtime, requests made via boto3 are not being auto traced. When changing the runtime to 3.6 it started tracing
Steps to reproduce the issue:
client = boto3.client('s3')
client.list_buckets()

Describe the results you received:
Nothing showing up in the tracing tab
Describe the results you expected:
The s3 call to list all buckets be auto traced

It looks like botocore is no longer using requests and implements it's own HTTP wrapper now. Will need to reimplement/revise the monkey patching for newer versions.


NoneType exception during egg writing

I'll try to dig deeper, but I get this stack trace relatively often:
Traceback (most recent call last):
  File "/Users/magregor/Library/Application Support/Blender/2.79/scripts/addons/io_scene_egg/yabee_libs/egg_writer.py", line 1737, in write_out
    file.write(gr.get_full_egg_str())
  File "/Users/magregor/Library/Application Support/Blender/2.79/scripts/addons/io_scene_egg/yabee_libs/egg_writer.py", line 187, in get_full_egg_str
    return ''.join(self.get_full_egg_str_arr(level))
  File "/Users/magregor/Library/Application Support/Blender/2.79/scripts/addons/io_scene_egg/yabee_libs/egg_writer.py", line 220, in get_full_egg_str_arr
    egg_str.append( ch.get_full_egg_str(level + 1) )
  File "/Users/magregor/Library/Application Support/Blender/2.79/scripts/addons/io_scene_egg/yabee_libs/egg_writer.py", line 187, in get_full_egg_str
    return ''.join(self.get_full_egg_str_arr(level))
  File "/Users/magregor/Library/Application Support/Blender/2.79/scripts/addons/io_scene_egg/yabee_libs/egg_writer.py", line 213, in get_full_egg_str_arr
    for line in self._yabee_object.get_full_egg_str().splitlines():
  File "/Users/magregor/Library/Application Support/Blender/2.79/scripts/addons/io_scene_egg/yabee_libs/egg_writer.py", line 947, in get_full_egg_str
    self.get_polygons_str()))
  File "/Users/magregor/Library/Application Support/Blender/2.79/scripts/addons/io_scene_egg/yabee_libs/egg_writer.py", line 939, in get_polygons_str
    polygons = '\n' + ''.join(self.collect_polygons())
  File "/Users/magregor/Library/Application Support/Blender/2.79/scripts/addons/io_scene_egg/yabee_libs/egg_writer.py", line 912, in collect_polygons
    tref(f, attributes)
  File "/Users/magregor/Library/Application Support/Blender/2.79/scripts/addons/io_scene_egg/yabee_libs/egg_writer.py", line 740, in collect_poly_tref
    if material.use_nodes:
AttributeError: 'NoneType' object has no attribute 'use_nodes'

Looks like this isn't safe if there are empty textures anywhere in the project, even if they aren't actually applied to models afaict:
from yabee_libs/egg_writer.py around line 740
            material = None
            if face.material_index < len(self.obj_ref.data.materials):
                material = self.obj_ref.data.materials[face.material_index]

            if material:

Looks like this is a bit unsafe:
from yabee_libs/egg_writer.py under the cycles_materials_export branch:
            textures = []

            # Find the material assigned to that polygon:
            # First, check if that polygon has a material at all
            material = None
            if face.material_index < len(self.obj_ref.data.materials):
                material = self.obj_ref.data.materials[face.material_index]

            matIsFancyPBRNode = False
            if material.use_nodes:
                nodeTree = material.node_tree
                if nodeTree.nodes.get("Panda3D_RP_Diffuse_Mat"):
                    matIsFancyPBRNode = True
            if material:

That material.use_nodes should be dropped below if material:

Fixed in #42


Migrate testsuite tests to JUnit 5

https://github.com/netty/netty/issues/10757#issuecomment-848445551

This is a work-in-progress - Epoll and KQueue modules depend on this module, and will thus require changes.

@kashike please fix the build error: https://github.com/netty/netty/pull/11320/checks?check_run_id=2680698278

@kashike please fix the build error: https://github.com/netty/netty/pull/11320/checks?check_run_id=2680698278

See my comment above. :)

This is a work-in-progress - Epoll and KQueue modules depend on this module, and will thus require changes.

@kashike lets do the changes for these two modules in this PR as well then.

@normanmaurer This PR is ready now - it migrates the following modules:

[x] testsuite
[x] transport-native-epoll
[x] transport-native-kqueue
[x] transport-native-unix-common-tests

windows-x86_64-java11-boringssl action appears to be failing due to codec-http2, which was unchanged in this PR - can probably be ignored?

Scratch that - all tests passing now.


what is the particular reason (constraint) to have examples for consuming and producing in different projects?

where to find simple demonstration of how to inject RabbitMQ client into service?

There is a directory  with examples.
You can inject IProducingService inside your service or controller simply doing this
namespace Examples.AdvancedConfiguration.Controllers
{
    [ApiController]
    [Route("api/example")]
    public class ExampleController : ControllerBase
    {
        private readonly ILogger<ExampleController> _logger;
        private readonly IProducingService _producingService;

        public ExampleController(
            IProducingService producingService,
            ILogger<ExampleController> logger)
        {
            _producingService = producingService;
            _logger = logger;
        }

        [HttpGet]
        public async Task<IActionResult> Get()
        {
            _logger.LogInformation($"Sending messages with {typeof(IProducingService)}.");
            var message = new { message = "text" };
            await _producingService.SendAsync(message, "consumption.exchange", "routing.key");
            return Ok(message);
        }
    }
}

But if for some reason you want to use IConsumingService you can inject it the same way as a IProducingService.

I actually wanna add few more examples both for the documentation section and for examples directory.


Update documentation for delete_user & $last_seen

Also a word of caution: this undocumented behavior will currently only work if you reimport more or less immediately after deletion. Sometime within the subsequent 24 hours deleted profiles should be wiped completely. Makes me think that exposing this in the README is going to cause more trouble than help...

IMHO, Ted's original intuition ("deleted users don't have last-seen times") is correct, and where the current observable behavior differs from that intuition, it's indicative of a backend bug, not a problem with the intuition. You should not rely on the last-seen time of a deleted user getting preserved across deletion-and-recreation. As for the bug, now that it's on our radar, I would hope to see it fixed by the end of this coming week. If you see this patch reverted soon, it'll probably indicate that the underlying issue has been fixed. :)

Thanks all. I found this out when talking to a mixpanel support engineer. It is definitely an important bug, as I was trying to wipe & delete user records for a somewhat new account, since I passed in some badly named fields. Since the data is immutable, deleting and re-creating the user records was the only option, and I was unable to do so because I didn't pass in that extra param apparently.
If the patch is reverted, can you confirm back when that happens that it's fixed on backend? Thanks!


GH/Dyn: Align handling of "null" values

How we handle null values varies between connectors. Our most strict implementation is GH, which directly prevents pushing null objects on a data tree.
Dynamo apparently has no inconvenient on sending null values.
The main reason behind disallowing null values in GH was to prevent index shifting in lists of objects, as the null values where never serialized: [0,null,1] became [0,1] after serialization/deserialization.
There's quite a debate in the team on wether they should be allowed or not, but we should handle all cases in a consistent manner.

Nulls in Dynamo will often break things when they're used further down the line (depending on whether each specific node was built to handle them).
Perhaps we could give users the option?

@OliverEGreen Is there any way to filter out null values in dynamo like you do in gh?

Hi @iltabe in Dynamo? I'd normally use List.Clean for that, with preserveIndices set to false.
If I remember right, there's also another popular package with a List.RemoveNulls node.

Then can an input with null values be cleaned after received from speckle, if needed?

Yeah that should work on the Dynamo side. I can't speak for Grasshopper!

Great, Grasshopper can handle it the same way :)

Coming back to this, I have the necessity to add empty lists or null values to objects.
If it helps, I think it's very limitative to rely on the user of having always super consistent objects.
It's totally possible to have for instance a Beam.Screws: a container, a list of screws... screws that could be there or not in same edge cases...
As an example, I have to cut some beams with same planes. Not all the beams though.
I'm doing some experiments.

Empty list
Empty list is correctly assigned and converted to speckle. But when I expand the data tree, I then have inconsistent trees because the empty trees are missing. And this is dangerous because when you do data tree operation, grasshopper match the trees without looking to match the paths.
Empty nested list or dictionary
An empty IronPython List (or dict) - assigned in the py component - is properly serialized and the conversion ToSpeckle works nicely. I get a null value where the list is empty which I can filter out. The conversion "ToNative" instead fails.

Null Plane
The best workaround i found is to add a Rhino.Geometry.Plane.Unset where I don't have any cutplane.
It seams both toNative and toSpeckle are working... and hopefully null planes are well supported in ghp.

Closing as stale. I'm pretending to be a bot; will reopen when we have the bandwidth.

:-(

Hey @iltabe if you think this is still an issue let's chat next week!

Hey @teocomi, more than an issue I see it as an enhancement.
Let's say we have objects with custom properties that belong to the same family (i.e walls?). I have a gut feeling that having consistent objects + null values handling (when required) it's better then break this consistency dealing with objects that don't have same attributes anymore.
What if some walls have openings and other not? wall.Openings will fail for some objects instead of returning an empty list.
Maybe I'm missing something tho. Let's chat!

Adding this to the next sprint, we should close it once for good as it seems to be affecting various new users.
Potential solutions:

support nulls (this will require some changes in core I believe), my preference
do not support nulls (will require changes in most connectors so that the users can be informed and will know what to expect)

Just pinging you @iltabe to let you know we're adding null support (finally)!
Got a PR ready for review. If you feel like testing it out I'd be happy to let you know when it makes it to the beta release (or feel free to build it out yourself and try it 🙂 )

Good to know @AlanRynne !
I might have the chance to test it since I'm designing a digital workflow using speckle at the moment.

The current implementation is incomplete we should also support Base objects that have null properties.
Re-opening and changing the title for clarity.


Problem in creating LG

It seems there is a problem during k2.intersect(L, G) due to the disambiguation symbols. I'll fix it, if needed.

Is the error caused by k2?

No, it's because you prepared L.fst which has no disambiguation symbol
self-loops.
L_disambig.fst has them.
We don't need LG for training of CTC, just L for now.
On Mon, Nov 16, 2020 at 7:59 AM Fangjun Kuang<EMAIL_ADDRESS>wrote:

Is the error caused by k2?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/k2-fsa/snowfall/issues/12#issuecomment-727660830, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAZFLOYZSUBSLCH53SW2P2LSQBTM7ANCNFSM4TWOAK4A
.

@jimbozhang you should sync your local branch with remote master, as @danpovey said, we don't need G in CTC training and we have removed that in latest scripts. Will close this issue.

mm, found that I have no permission to close issues of this repo.

invited you
On Mon, Nov 16, 2020 at 11:19 AM Haowen Qiu<EMAIL_ADDRESS>wrote:

mm, found that I have no permission to close issues of this repo.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/k2-fsa/snowfall/issues/12#issuecomment-727711100, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAZFLO7X3RD7BX5ZK4LSGOTSQCK55ANCNFSM4TWOAK4A
.

Thanks


Errors crash the miner, we should really recover

An error should be recoverable with a retry or something. The current way of handling is to panic, which stops mining.
FATA[0015] An error in OPR was encountered               error="Missing Chain Head"

@Emyrk break this out into two separate issues, one for what we can fit in pM1 and one for actually fixing the issue.


Please Provide a Sample for MediaClip.CreateFromSurface() in the MediaEditing sample

There are no samples for how to use the MediaClip.CreateFromSurface() API in the Media Editing sample.  Please add one as there is no good documentation on how to use this API in a UWP app.

Thanks, I've passed this feedback along to the team.


VNF from text3d()

Is your feature request related to a problem? Please describe.
Documentation states that from text() or text3d() we can get an vnf but no function is defined.
Describe the solution you'd like
If possible, make that happen.
Describe alternatives you've considered
I don't think there are alternatives to that. As some functions are very useful with vnf structures.
I've considered to process the font externally to get the 2D paths.
Example Code
vnf = text3d("example text");

Additional context
No additional context

This is not possible, at least as things stand.  There is no way to get the information out of geometry, so when openscad creates text, that's it---there is no way to access it.  So you would have to do like you said and produce the text externally somehow.

The synopsis needs to corrected not to say that you can get a VNF.

@adrianVmariano yes, it should be updated as text(), text3d(), and path_text() all says that you can access the vnf. Thank you for answering. I hope this is possible in the future.

Thanks for identifying the offenders...though I can't find such a reference for text().   I fixed the other two and pushed a PR.

You're right, I think I did hallucinate that one.


chore(client): pass transport as string in electron, to the extent possible

This PR makes the Electron code stop digging into the transport configuration to the extent possible. It includes the communication with the Go code, and the tunnel storage. We still need to dig into it to extract the host to bypass routing. We need to fix that.
/cc @sbruens

FYI, I verified that this change works by building both windows and linux, and testing it on Linux with a tun-only mode.


SLL mode does not serve HTTP request

Hi,
I would like to know how can I redirect all my http requests to https.
Now I start my server like this:
http-server -a <IP_ADDRESS> --cert self-signed.crt --key self-signed.key -d false -p 4041 -c-1 --ssl
The log:
Starting up http-server, serving ./ through https Available on:   https://<IP_ADDRESS>:4041   https://<IP_ADDRESS>:4041   https://<IP_ADDRESS>:4041 Hit CTRL-C to stop the server
I routing works on https:// URLs but not on http:// URLs. How can I automatically redirect all http:// URLs to https:// URLs.
Do I need to use NGINX or is there something I can do with http-server configuration?
Thank you for great development.
Olivier

@BigBlueHat @Qism0 Do we already have this option in http-server? or some pending PR's which I can try.
I wanted to redirect http://<IP_ADDRESS>:8080 to https://<IP_ADDRESS>:80443
Thanks in advance for you suggestion.

+1


Documentation doesn't include any information on how to manage a global tag list by context

The current documentation focuses only on tags that are attached (or being attached) to objects. What I cant find much mention of is how to add/edit/delete tags (within a particular context) from a global list of tags regardless of whether they are attached to any model at that particular time. This is useful in instances where you dont want your users to create their own tags and need them to pick from a set list.
Any examples on how this can be done would be appreciated. For example, how can I put together a simple CRUD for a master list of tags within a particular context?

Before I reinvent the wheel - did any of you guys (@taimoorq, @nathanpsouza, @DaniG2k) manage to find an example of this somewhere?

Not I

Don't have time to write up the full solution i went with right now, but basically I added the awesome nested set gem to my application and then managed the tags table with it. I had to update the forms that allow tagging to only allow selection form a predefined list and that list was a nested tree from the tag table.

This would be really useful.


Handle null fields in avro schema in StreamlineEvent

This issue is raised as a follow up to the discussion that took place at https://github.com/hortonworks/streamline/pull/775
Avro schema with null fields should be handled correctly and a contract should be established so Custom Processors, UDFS, UDAFs, etc can all work relying on that contract.
Marking it as a bug since master does not have a fix for null fields. The fix from the PR 775 was only pushed to HDF-3.0-maint branch for the next release.

@priyank5485 , I cherry picked 70c8237b5bfac1a82103c53a244afb5c0fdd0068 into master since I was trying to merge the master to HDF-3.1 and keeping both in sync and noticed the difference. I realized you have a raised a github issue here later.
You can close this issue if you think the commit addresses the issue or if you plan to address it in a different way, raise a new issue and apply on top of your fix.


Will no longer be updated to the Raku ecosystem

Hello,
Thank you for the time and effort you have put in what is now the Raku Programming Language.  The language and its ecosystem are moving forward.
This means that these distributions:

https://github.com/adaptiveoptics/ajs/perl6-Math-Arrow
https://github.com/adaptiveoptics/ajs/perl6-Math-Sequences

will no longer be checked for updates by the Raku ecosystem.
This means that you will need to move your module to the zef ecosystem on the next update you make to these distributions.  Otherwise your update will simply not be seen by the ecosystem.
If you are no longer interested in maintaining these distributions, you can have these distributions moved to Raku Community Modules Adoption Center, where members of the Raku Community will take care of them.
This can be as easy as confirming that in a response to this issue.
Again, thank you for your time and efforts!
On behalf of the Raku Steering Council,
Elizabeth Mattijsen

I have migrated both modules to Raku Community modules and removed them from the p6c ecosystem.
I would be interested in having you move the Math-Sequences repository to the raku-community-modules nonetheless to preserve the large number of outstanding issues that people reported.
Thank you!  Closing this now.


Improve pickling

Use proper exception types in pickling
Rename CodecError/SerializationFailed/DeserializationFailed -> ClientError
Add Readme section on error hadnlign

I merged all the exception types we had into ClientError. Looks strange at the first glance, but this allowed to handle error in a nice and readable way:
future.handle {
  case ClientError(wat) => transport error at the client side
  case ServerError(wat) => transport error at the server side
  case ServerApplicationError(wat) => user code error
}

Looks good to me! :+1:


Add citation link to troubleshooting-macos-for-too-many-open-files section

Better if there is a link refer to the original page How to Change Open Files Limit on OS X and macOS in this section.

Thanks @rayw000 . Thanks for this pull request.
Are you able to squash your commits into a single commit?

Thanks @kbhawkey . Commits are squashed.

/approve

/lgtm


Race condition accessing todos

First of all, I liked your blog post about the app! Thank you for that.
I believe the app contains a possible race condition. The todos property in AppState is accessed from SwiftUI on the main thread. In fact, because it uses @Published, it may only be modified from the main thread. However, in debounceSave(), you access it from a background thread:
      DispatchQueue.global(qos: .background).async { [weak self] in
        print("Saving after debounce")
        if let self {
          self.dataStore.saveTodos(todos: self.todos)
        }
      }

I believe, this may cause a race condition when todos is accessed at the same time it is written by SwiftUI.

I believe the code could be made thread-safe like this:
      DispatchQueue.global(qos: .background).async { [todos, weak self] in
        print("Saving after debounce")
        if let self {
          self.dataStore.saveTodos(todos: todos)
        }
      }

Thanks Stephen. I had assumed that the debounce would avoid race conditions unless the save took longer than n0.5 seconds, but I'll add your fix into the next release, just in case.


Need exportAs in NgxPopperjsDirective to export directive so that it can be used like template reference in template.

This was already provided in Mr Frankel's ngx-popper repo.
Reference: https://github.com/MrFrankel/ngx-popper/blob/master/src/popper-directive.ts#L17-L19
How it helps/ Where is usage:

Pop

Here i am getting the directive reference using  #popperRef="popper" and passing same to the my customDir, which has custom functionality around popper.
Can we add same in NgxPopperjsDirective? That would be really helpful. I know the other workaround but if we use exportAs it will keep code simple and will reduce the lines of code needed for workaround.

Hello @pavandixit93
yes I guess I can throw in the exportAs in the next release...
Altough I don't really see the upside. What "other workaround" are you talking about?

Hi @tonysamperi Thanks for the update, The change is simple and i hope that will come soon.
Other workaround cab be by using ViewChild as shown below, but doing this increases the lines of code.
custom-popper.component.ts:

@ViewChild('popperRef', {read: NgxPopperjsDirective}) popperRef: NgxPopperjsDirective

custom-popper.component.html:

Pop

I'll give you a hint, there's a much much simpler solution without using ViewChild 😉
Anyway I'm dealing with a few things at this time, but I'll try to release an update in about 1 month...
Bye!

Actually let's keep this open to track the resolution.


Add related libraries section

Just a thought, completely understand if we don't want to add this.

As you implied, we don't want this for some reasons, like not having review process.
For now, let's do what did in zustand.
Would you create a wiki page like https://github.com/pmndrs/zustand/wiki/3rd-Party-Libraries with the disclaimer, and create a PR to add a link to the wiki page?
Hope you find some other libraries than yours, and list them. (I personally do have one.)

Oh no problem, I'll make a wiki like that :)

Done. :) https://github.com/pmndrs/valtio/wiki/3rd-Party-Libraries


[otbn,dv] Add rf_base_we_err to bad_internal_cg

Related with https://github.com/lowRISC/opentitan/issues/14540
Signed-off-by: Canberk Topal<EMAIL_ADDRESS>

Ah, the rf_base_spurious_we_err_q <= rf_base_spurious_we_err_d inside always_ff is missing (as pointed out by CI)

This seems like a coverage-only change. Is there a corresponding change in CSR bits for this fault?

You can ignore my previous comment, since there is no need for CSR changes to justify enhancing the coverage model.


updated webstorm (2016.1)

I didn't see #19892 when using cask-repair. I'm closing this PR as it's a duplicate of #19892


fix: Some files have bad carriage return

Those 4 files :
src/fonts/Roboto-Bold.ttf
src/fonts/Roboto-Light.ttf
src/fonts/Roboto-Thin.ttf
src/images/angular2-seed-logo.png
have carriage return defined for windows and git wants to convert them.
It is also a problem with rebase (blocked).
git reset --hard HEAD doesn't do anything (???)

Fixed by https://github.com/ghpabs/angular2-seed-project/commit/1c08a1499248535efa2dd4f83b72a76e1815a29a


test: add benchmark

Summary by CodeRabbit

New Features

Introduced benchmarking for text insertion and formatting functionalities using the Benchee library.
Added performance evaluation scenarios for text insertion and formatting, allowing developers to assess efficiency under different conditions.

Chores

Added benchee library as a development dependency to enhance performance benchmarking capabilities.

coverage: 85.357%. remained the same
when pulling ff2c35068ffa741b3ea7cbdddf3024269a4ea4d4 on benchmark
into e434fca8398f4367face7f9dbe62483ca84f6aaf on main.


Fizzbuzz solution

I had to make use of two websites to figure out the solution.
http://www.w3schools.com/js/js_output.asp
http://ditam.github.io/posts/fizzbuzz/
There were a few other solutions I tried out as well but this was the one that I got the closest to on my own.

Good work, Mac! 👍  💯


fix: solo relays command is not working

Description
This pull request changes the following:

fix: solo relays command is not working
change solo relays install/uninstall to solo relays deploy/destroy for consistency with solo mirror deploy/destroy
update README with command output
auto-format *.md files

Related Issues

Closes #185

:tada: This PR is included in version 0.23.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket: