Any way to add dependency on IntelliJ classes without adding the buildPlugin etc. tasks?

I tried something like
repositories {
  maven {
    url 'https://www.jetbrains.com/intellij-repository/releases'
  }
}

dependencies {
  compileOnly group: 'com.jetbrains.intellij.idea', name: 'ideaIC', version: '2020.1.1'
}

but this doesn't seem to actually add the dependency (classes still invisible to the compiler); so I ended up doing sth like:
      apply plugin: 'org.jetbrains.intellij'

    // disable all tasks
      buildPlugin.enabled = false
      buildSearchableOptions.enabled = false
      downloadRobotServerPlugin.enabled = false
      jarSearchableOptions.enabled = false
      patchPluginXml.enabled = false
      prepareSandbox.enabled = false
      prepareTestingSandbox.enabled = false
      prepareUiTestingSandbox.enabled = false
      publishPlugin.enabled = false
      runIde.enabled = false
      runIdeForUiTests.enabled = false
      verifyPlugin.enabled = false

      intellij {
        version intellijVersion
     }

but this feels like an ugly workaround at best :/

no, it's not supposed to remove tasks declared in the plugin and I don't think there should be a "pretty way" for doing this.

Hmmm but what about subprojects of an IntelliJ plugin project? You only ever want to have buildPlugin etc. tasks available in the root project (and not in subprojects); but still, you most likely need access to IntelliJ APIs in some/all of the subprojects.
What would be the canonical/idiomatic setup for IntelliJ dependencies then? or is such project structure discouraged for IntelliJ plugins for some reason?

You only ever want to have buildPlugin etc. tasks available in the root project (and not in subprojects);

There is nothing wrong with having buildPlugin task in subprojects, don't run it if you don't need it. Most of the tasks will be disabled anyway because of missing plugin.xml.

What would be the canonical/idiomatic setup for IntelliJ dependencies then?

IntelliJ dependency is not a thing actually. IntelliJ is a huge zip archive with many jars and binaries inside. If you need a particular small dependency (like testFramework from https://www.jetbrains.com/intellij-repository/releases, for example), you can depend on it as on a regular Maven-dependency.

or is such project structure discouraged for IntelliJ plugins for some reason?

Sorry, I don't understand what's the structure you're talking about.

Okay, that clarifies the issue, thanks for the quick response!

no problem, sorry that couldn't help


Fix github.actor examples

Why:
if: github.actor == "dependabot[bot]" will fail; [bot] must be interpreted as a string literal.

What's being changed (if available, include any code snippets, screenshots, or gifs):

Check off the following:

[x] I have reviewed my changes in staging (look for the "Automatically generated comment" and click the links in the "Preview" column to view your latest changes).
[x] For content changes, I have completed the self-review checklist.

Writer impact (This section is for GitHub staff members only):

[ ] This pull request impacts the contribution experience

[ ] I have added the 'writer impact' label
[ ] I have added a description and/or a video demo of the changes below (e.g. a "before and after video")

@JonZeolla Thanks so much for opening a PR! I'll get this triaged for review :zap:


DataFactor QuickStart Python page is not up-to-date with latest authentication libraries

The example no longer works as printed here. When running as-is, it will fail when accessing Azure resource for the first time with AttributeError: 'ClientSecretCredential' object has no attribute 'signed_session'.
Root cause is given here: https://github.com/Azure/azure-sdk-for-python/issues/16520

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 06b12410-3d72-8cc9-be6c-3b8e8521b90d
Version Independent ID: 9ef477fb-8321-4763-d340-0fee977f4beb
Content: Quickstart: Create an Azure Data Factory using Python - Azure Data Factory
Content Source: articles/data-factory/quickstart-create-data-factory-python.md
Service: data-factory
GitHub Login: @dcstwh
Microsoft Alias: weetok

@ant0nsc  Thanks for the feedback! I have assigned the issue to the content author to evaluate and update as appropriate.

The example was already updated. Do check the latest Python examples

Thank you @ant0nsc for reporting this issue.  As this appears to be resolved now I will close the issue out, but if you still encounter problems or need to continue the discussion, feel free to respond here and we can still continue the conversation further if necessary.
#please-close


Concurrent Movement

Hi,
I've been looking for a Godot starter/sample code that solves the problem of concurrent animated tile movement.
If you have a tile between you and a monster, and both of you intend to move to the same tile at the same time, one should move and one shouldn't.  How can I accomplish something like that, with his code?
I tried a couple of approaches, but to no avail; what's that's the right approach? Any suggestions?
What I tried:

Keeping a separate data structure of which tiles will be occupied next move
Checking each movable thing's next move (expensive if done repeatedly)
Temporarily moving the current mover's collision rectangle to the new spot
Adding a new collision rectangle in the new spot while we move to it

If anyone else is looking for a solution to this, there's one here, with very minimal functionality: https://github.com/deengames-prototypes/roguelike-base/tree/299d0f6d4bc6e2a7b4701941177744c0f0be5607
TL;dr all entities inherit from a base BaseEntity class. It has a static Array2D that clears each turn, and keeps track of who is going to move into what spot. When things move, they mark their spot in the array, and right before moving, check if that spot is still available. If not, they back off.
Simple, clean, and works fine (other than static variables which are global state which I hate). Good enough for now, considering I've tried (and failed) several times to solve this problem cleanly and simply.


Fix a shutdown hanger because of a collection status lock.

Testing & Verification
The PR can only be tested by observing if we have sporadic shutdown hangers
in the next few weeks.

http://jenkins01.arangodb.biz:8080/view/PR/job/arangodb-matrix-pr/6322/

http://jenkins01.arangodb.biz:8080/view/PR/job/arangodb-matrix-pr/6323/


Fix output chunks in regrid

Pull Request Checklist:

[ ] This PR addresses an already opened issue (for bug fixes / features)

This PR fixes #xyz

[x] (If applicable) Documentation has been added / updated (for bug fixes / features).
[x] (If applicable) Tests have been added.
[x] This PR does not seem to break the templates.
[ ] CHANGES.rst has been updated (with summary of main changes).

[ ] Link to issue (:issue:number) and pull request (:pull:number) has been added.

What kind of change does this PR introduce?

Fix out_chunks to output_chunks in regrid's special argument treatment.
Add tests for regridding.
datablock_3d now returns correct lat/lon for curvilinear coordinates (rotated_pole or oblique_mercator)

Does this PR introduce a breaking change?
No.
Other information:
Hmm, no regridder tests... I guess its now my job...

Indeed, the other instance was wrong to.


EDID: v_sync offset/width are 6-bit values

Fix assumption that both h_sync and v_sync offset/width are 10-bit values, which resulted in the v_sync offset being sent as if it were 0; h_sync offset/width are 10-bit values, but v_sync offset/width
are 6-bit values.
t->v_sync_offset_width_l part of the change tested with read-edid in https://github.com/timvideos/HDMI2USB-litex-firmware/issues/478; t->hv_sync_offset_width_h part of the change only compiled.  (HackFest building logistics mean I can't test it with read-edid now, but by inspection the 4-bit/2-bit split seems more correct than the 8-bit shifts that were there before.)
v_sync_offset of 720p set back to recommended 5 lines value (from https://github.com/timvideos/HDMI2USB-litex-firmware/issues/478) now that it's actually being sent properly rather than as zero.
For a summary of the packing of the timing section of EDID bit see:
https://en.wikipedia.org/wiki/Extended_Display_Identification_Data#Detailed_Timing_Descriptor
Note that this did not make the Decimator accept the HDMI2USB output yet; so it's clearly not the only thing the Decimator didn't like :-(

Just FYI - this change will have no effect on the signals that board generates. This will only effect the information seen by the laptops connected to the board.

Just FYI - this change will have no effect on the signals that board generates. This will only effect the information seen by the laptops connected to the board.

Thanks for the confirmation.  That was my guess too, but we weren't sure if the HDMI out on the Opsis was regenerated sync, or if it was passing through bit-for-bit the received signal when, eg, input0 was connected to output0, and thus potentially the (speaker) laptop signal was being sent with marginally correct v_sync that was passed through and thus confusing the Decimator.   It sounds like maybe the Opsis generates its own h_sync/v_sync for the output (rescanning from a frame buffer?).
Ewen

There is no connection between the input and outputs. Inputs write to memory, outputs read from memory. To get an input on an output you use the correct memory address. Also why the output continues when there is no input.

FYI - This is the reason the Opsis can accept either 720p60 and 720p50 when the output is set to 720p60 or 720p50.

There is no connection between the input and outputs. Inputs write to memory, outputs read from memory.

Thanks, that's useful to know -- ie, that there's a frame buffer and sync-(re)generation on output in between.   (CC @futaris FYI)
Ewen

FYI - The output is always going when configured.

The output mode is configured here -> https://github.com/timvideos/HDMI2USB-litex-firmware/blob/5f5064789c1a579eb8c2dee2657c73c9c41a3638/firmware/processor.c#L526

It /could/ be worth connecting an oscilloscope to the sync pin and looking at the stability. It should be rock solid.

The output mode is configured here ->
https://github.com/timvideos/HDMI2USB-litex-firmware/blob/5f5064789c1a579eb8c2dee2657c73c9c41a3638/firmware/processor.c#L526

Based on that, it looks like the modeline timing change in processor.c would then apply to the configured output (see https://github.com/timvideos/HDMI2USB-litex-firmware/pull/482/files#diff-66a6e00147360f6e8cdf86606bc53602), which IIRC affects the 720p@60Hz output (the 720p@50Hz output appeared to have exactly the recommended values you'd mentioned in #478, so I didn't change that).  It looks to me like the same tables in processor.c are used both to feed the EDID generation and to feed the configuration of the output scan out / sync generation.
(Definitely agree that scoping the output to look at the sync would be useful; unfortunately no one at the "Hackfest" had a scope with them, so arranging to do that would take some more organisation....)
Ewen

FTR, Opsis flashed with firmware built with this patch returns EDID:
ewen@parthenon:/sys/class/drm/card0-DP-1$ cat edid | parse-edid
Checksum Correct

Section "Monitor"
	Identifier "HDMI2USB-2"
	ModelName "HDMI2USB-2"
	VendorName "OHW"
	# Monitor Manufactured week 0 of 2015
	# EDID version 1.3
	# Digital Display
	DisplaySize 200 110
	Gamma 1.80
	Option "DPMS" "false"
	Horizsync 31-68
	VertRefresh 50-60
	# Maximum pixel clock is 80MHz
	Modeline 	"Mode 0" 74.25 1280 1720 1760 1980 720 725 730 750 +hsync +vsync
	Modeline 	"Mode 1" 74.25 1280 1500 1540 1650 720 725 730 750 +hsync +vsync
EndSection
ewen@parthenon:/sys/class/drm/card0-DP-1$

which seems correct to me: 720/725/730/750 vertical sync values seem like what we were aiming for in https://github.com/timvideos/HDMI2USB-litex-firmware/issues/478#issuecomment-513833976.
So I think this patch helps the EDID sent to the presenter laptop.
Ewen
PS: I've also verified I'm getting output to a 720p display from the Opsis with this build, so I don't think it's broken the output side changing the output sync timing either.

FTR, Carl reports that the JPEG encoder happens to work in this issue (see https://github.com/timvideos/HDMI2USB-litex-firmware/issues/465 for background), and obviously this newer build has a bunch of the features he's been trying to add this year, so he's suggested running the Opsis (which are only doing camera capture this year, because reasons) on this bleeding edge build including this fix (from my laptop, given Travis is failing for what looks like unrelated issues).
Being tested today at the TechSpace staging area, and if it works it'll probably be in production on Monday.  (It'd be good to get Travis's git checkout issues so that there's a pre-built version as a result, which we can actually use in future.)
Anyway this is further evidence that the JPEG encoder issue is, eg, gateware synthesis layout randomisation related, as I didn't change anything related to that.
Ewen

FWIW, the builds seem to be failing for an unrelated reason (git submodule version issue), eg,
https://travis-ci.com/timvideos/HDMI2USB-litex-firmware/jobs/274128704#L1034-L1051
which seems to be minvera-verilog:
fetching submodule litex/soc/cores/cpu/minerva/verilog
warning: redirecting to https://github.com/enjoy-digital/minerva-verilog/
warning: redirecting to https://github.com/enjoy-digital/minerva-verilog/
fatal: remote error: upload-pack: not our ref<PHONE_NUMBER>dd7a551cac5758d9171a24d0c1578fs/master
The command "$PWD/.travis/setup.sh" failed and exited with 1 during .

And IIRC i had similar problems at one point when trying to update/fetch either litex-buildenv or HDMI2USB for my laptop.  So possibly that submodule needs fixing up first, before Travis can build anything?
(All the ones I looked at in Travis failed for that same reason.)
Ewen

FWIW, the builds seem to be failing for an unrelated reason (git submodule version issue), eg,
https://travis-ci.com/timvideos/HDMI2USB-litex-firmware/jobs/274128704#L1034-L1051
which seems to be minvera-verilog:

Ah, there's a trailing s on the end of the git commit hash for the minerva-verilog submodule, which is causing it to fail to check out.  I'm not sure where that's coming from:
(LX P=arty T=base F=micropython) ewen@parthenon:/src/fpga/litex-buildenv/third_party/litex$ git submodule | grep minerva
<PHONE_NUMBER>dd7a551cac5758d9171a24d0c1578f litex/soc/cores/cpu/minerva/verilog (0518621)
(LX P=arty T=base F=micropython) ewen@parthenon:/src/fpga/litex-buildenv/third_party/litex$ git submodule | grep minerva | grep<PHONE_NUMBER>dd7a551cac5758d9171a24d0c1578fs
(LX P=arty T=base F=micropython) ewen@parthenon:/src/fpga/litex-buildenv/third_party/litex$ git submodule | grep minerva | grep<PHONE_NUMBER>dd7a551cac5758d9171a24d0c1578f
<PHONE_NUMBER>dd7a551cac5758d9171a24d0c1578f litex/soc/cores/cpu/minerva/verilog (0518621)
(LX P=arty T=base F=micropython) ewen@parthenon:/src/fpga/litex-buildenv/third_party/litex$

Ewen

Ah, there's a trailing s on the end of the git commit hash for the minerva-verilog submodule, which is causing it to fail to check out. I'm not sure where that's coming from:

Digging further the root cause seems to be that Travis noticed I have a fork of litex, so it's trying to use that:
https://travis-ci.com/timvideos/HDMI2USB-litex-firmware/jobs/274128652#L583-L620
but unfortunately that's an ancient fork of litex, which doesn't have the right commits in it (and it's not what I'm using).
I'm going to try updating my fork of litex to the upstream master and see if that makes things happier :-)
Ewen

@mithro Could you force Travis to retry that build?  I don't want to change that commit, as the commit hash is in the LCA2020 AV Team notes.  And creating a trivial second commit to force a rebuilt seems likely just to create extra noise....
Apparently there's an option if you're signed in to Travis:
https://stackoverflow.com/questions/17606874/trigger-a-travis-ci-rebuild-without-pushing-a-commit
Ewen

Forced travis to rerun.


Differences from other livewire datatables

Hey Ramon,
Thanks for the awesome package, I like the simplicity and low overhead of this package.
I was wondering if you can explain some of the differences between this package and the other Livewire datatables, and maybe the motivations behind building yet another package for the same purpose. That might help developers relate, and make their minds to choose this one instead. Would love to hear your perspective :)

Hi @Omranic,
Thanks for the interest in the package! As there are alternative packages available, I'll gladly explain why.
One of the main reasons why I've created this package is because of the simplicity. By keeping the package simple and minimal, I try to make it as easy as possible to implement in new and existing Livewire projects. Having a low overhead makes it easier to understand as well.
Another goal is customizability. Although the package is fully featured out of the box and can be used as is, it can also act as a template. When the views are published, it is up to the developer how to make it look and feel, making it basically blend into any project. This is also a recommended approach as it gives the most flexibility. It is also the reason why this package does not have any settings for the layout, classes or styles. Once again, keeping the basis simple and minimal. Additional functionalities are easily implemented as well this way, as it is still a Livewire component at the end of the day.
Lastly, performance is also an important factor. Keeping the query performant is done by minimizing any unnecessary operations and making use of the ORM of Laravel. This also applies for searching, sorting and filtering to efficiently browse the data, while still having the ability to override any default behavior.
I hope I gave you enough insights about the reason why I've created this package!

Thank you for the detailed explanation! It's clear that simplicity, customizability, and performance were at the forefront of your design decisions. I appreciate your dedication to making the package so user-friendly and adaptable. Keep up the great work!


[Spotify Beta] Browse playlist folders using "Your Library"

Extension
https://www.raycast.com/mattisssa/spotify-beta
Description
I have a lot of playlists and organized them using playlist folders. When I switch into "Your Library", I can see the playlists I have/follow that I haven't put into a folder, but I cannot see the ones that are moved into a playlist folder.
It would be nice if I could select playlists that are inside a playlist folder, because it would make the action of selecting a playlist from Spotify inside Raycast more usable.
Who will benefit from this feature?
Anyone who has playlist folders.
Anything else?
No response

Hey, thanks, unfortunately that's a limitation of the Spotify API. People have been asking for this since 2015 :/

Okay, I see.. Well that's too bad unfortunately. Thanks anyway for making a great extension!


Codegen with 2 outputs: 1 succeeds, 1 fails but both not written to file

Describe the bug
I have two outputs, one schema-ast, the other typescript types.
both run in the same config, the schema completes with a green checkmark, the typescript fails (as expected, because of an intentional code error). But the schema is not written to file although it says it did.

As you can see, 2 outputs, one finishes with success, the other fails. but the successful output is not written to file either. It is important the schema outputs correctly even though the typescript output does not, because i use the schema for eslint/vscode-autocompletion to fix the error.
To Reproduce
Just use 2 outputs have one fail the other succeed.

My GraphQL schema:

# not relevant

My GraphQL operations:

# not relevant

My codegen.yml config file:

schema:
  # Stitch all other microservices schemas into one
  # We are being as specific as we can, not to watch hundreds of files, because then CPU goes 100%
  - '../gqlgen/**/*.graphql'
  # Define Apollo custom directives that eslint doesn't know about so we don't get errors
  - './apolloFederationSpec.graphql'
overwrite: true
generates:
  ./schema.generated.graphql:
    plugins:
      - 'schema-ast'
    config:
      includeDirectives: true
<EMAIL_ADDRESS>    documents:
      - './src/**/*.{ts,tsx}'
      # Exclude the generated files, so we don't get duplications
      - '!./src/@generated/**'
    plugins:
      - typescript
      - typescript-operations
      # for useQuery hooks:
      - typescript-react-apollo
      # for client-side mocks in apollo
      - typescript-resolvers
    # See: graphql-code-generator.com/docs/plugins/typescript-react-apollo#configuration
    config:
      # scalar => TS type mapping
      scalars:
        DateTime: number
        JSON: string
      withHOC: false
      withHooks: true
      withComponent: false
      reactApolloVersion: 3

Expected behavior

Environment:

OS: Mac OS 10.15.4
NodeJS: 12.14.1
"@graphql-codegen/cli": "^1.13.3",
"@graphql-codegen/introspection": "1.13.3",
"@graphql-codegen/schema-ast": "^1.13.3",
"@graphql-codegen/typescript": "1.13.3",
"@graphql-codegen/typescript-operations": "1.13.3",
"@graphql-codegen/typescript-react-apollo": "1.13.3",
"@graphql-codegen/typescript-resolvers": "^1.13.3",

@kamilkisiela I think this is because we run everything in listr, and then do a single fs after it's done, right? maybe the fs write should be part of the listr flow?

I'm running into the same issue with a very comparable codegen file. The reason why I want the GraphQL json schema still written to the file system even when the other output fails is that I use vscode-graphql which uses the GraphQL json schema to show the errors from the other output file in vscode.

Hello, I have the same problem. Is there any way to solve this problem?

Hi @alSergey, could you provide a simple reproduction repo? And I help you!

@B2o5T hi ,I created a repository for you, where I described all the problems that I find while using code generation

@B2o5T hi, have you looked at the repository I sent you?

@alSergey, I do reproduce the issue which is linked to the current design of codegen.
I'm moving this issue to our v3 roadmap so we can take a closer look and consider it.


add missing lang tags

This is expected to require work for many published resources. Some of this work may be outside the scope of 'cleanup' because it requires some research. For example, what is the appropriate BCP-47 tag for Russian names in Latin script?
See also uwlib-cams/uwlswd_vocabs#30 .
Properties that should have lang tags:

rdfs:label
skos:prefLabel
skos:definition
schema:disambiguatingDescription
dct:title
dct:alternative
dct:description
dc:creator
dc:publisher
dc:contributor
any other properties with literal values values which could not be assigned a numeric datatype such as xsd:dateTime, xsd:decimal, etc.; that is, literal values with linguistic content

Add/update list of resources to cleanup here:

@briesenberg07
I added a list of properties that should have lang tags - does this seem accurate to you?

I think it's a good list. The last bullet is a helpful catch-all, but we aren't talking about literal values like "2023-12-22" so I edited it to read:

any other properties with literal values values which could not be assigned a numeric datatype such as xsd:dateTime, xsd:decimal, etc.; that is, literal values with linguistic content

That makes sense!
As far as updating resources themselves - would it be better to make a complete list here, or make an issue per repository?

Probably an issue per repo is better. Thank you!

This is more of a conceptual question, but is including the dc:language property and xml:lang attributes for each literal value containing linguistic content repetitive? Is there a purpose or reason that we include both?

My understanding, such as it is:
<resource> dct:language "en" ;
   rdfs:label "a thing"@en ;
   dct:description "an information resource"@en .

<resource> dct:language "en" . indicates that the resource as a whole is... "in English", is an English-language resource. So this would indicate that human-readable data about the resource will be in English overall.
Given this, it might seem repetitive to add language tags to each literal value, but I believe it's a good practice.
Also, perhaps some resources are published in more than one language! In this case, literal values certainly need lang tags.
<resource> dct:language "en" , "ja" ;
   rdfs:label "a thing"@en ;
   rdfs:label "一つのこと"@ja ;
   dct:description "an information resource"@en ;
   dct:description "情報リソース"@ja .

This has been split into individual issues per repository


why can not use "--network host" to run ?

why can not use "--network host" to run

I do not understand what you want to do. Please elaborate what you want to do or i will close this issue.

I use this command "docker run --rm -dit --network host grokzen/redis-cluster:3.2.11", but the redis cluster run is error.

Can you post the error?

You probably have issues with the IP lookup code in the bash script that helps the redis cluster to find out the IP address to use for CLUSTER MEET command.  I have no plans to solve this myself as this is not something i think is needed by default. If you however want to submit a Pull Request with some changes that is compatible with the old solution that will enable you to run on host network, i will review and consider it if it is sane.


refactor: upgrade react native to v0.65.0

Acceptance criteria
The app must pass Q/A with the latest react-native version (v0.65.0)

Project is currently building, but it won't install on the app because of missing permissions, haven't figured out why. Will update this comment with the solution

I am using this tool: https://react-native-community.github.io/upgrade-helper/?from=0.59.9&to=0.65.1
To get the diff between versions


inheritdoc

inheritdoc is a great option, but currently need to be written on each item.
is it possible to globally enable inheritdoc ?

Yes. I want to implement this because it's the default Solidity behavior.
Are you using the rewrite that is currently in beta? This would probably be added there only.

we actually just started to use the master.
how stable is the rewrite? should we use that ?

Implemented inheritdoc by default.


OP 0.8.11 devel-staging cruiseMismatch

Describe the bug
With new version OP 0.8.11 i often get cruiseMismatch . Never happened in previous release.
I have a Honda Civic Bosch Diesel
I dont have a route bcs i deactivated Logs and Uploads
What hardware does this issue affect?
comma two
Provide a route where the issue occurs
N/A
openpilot version
0.8.11
Additional info
No response

Duplicate of #22903


Updated AMI and other changes

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Uploading taskcat_outputs.zip…


Markdown code input isn't rendering as expected.

I noticed that the blog template is not converting the inline code function from markdown to HTML. It's displaying the backtick and putting it and the content after in bold. I thought it might have been me, but I checked the demo page, and it also exhibits the same issue.
Example:
https://blist.vercel.app/en/blog/markdown-syntax/
The inline markdown within tables shows this.
Am I missing something? Should I be modifying my config.toml with something additional to support single backtick quotes?

Exactly what I was thinking.

You can see that the code is showing as bold with backtick.
The html looks like this:
<code>
::before
"code"
::after
</code>

It takes values from styles.min.17b0bf9e9feefdbeec26bf09f165d3dd6e88a2690d0e05678797d446f5fb0f67.css
.prose code::before {
    content: "`";
}

.prose code::after {
    content: "`";
}

It should be simple fix.
I am just worry that in case of technical writing, this could lead to disliking the blog.

It'd be good to get this fixed, to keep inline code blocks tidy without displaying the back ticks.


ImportError: cannot import name 'RequestsTransport' from 'azure.core.pipeline.transport'

I am trying to follow this tutorial:
https://learn.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-python?tabs=managed-identity%2Croles-azure-portal%2Csign-in-azure-cli
When I get to this line of code:
from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient
I get the following error [ImportError: cannot import name 'RequestsTransport' from 'azure.core.pipeline.transport']
I can import and reference the azure core pipeline transport e.g.
import azure.core.pipeline.transport as acpt
but if I try from azure.core.pipeline.transport import RequestsTransport I get the same error
The version of azure-core I had installed was 1.26.4. I tried downgrading to 1.26.3 but it made no difference. The version of python I have installed should be 3.7 (I am using Anaconda.)
I found that this issue was previously discussed here but don't see any solutions I can use to fix my issue. I'd appreciate any help. Thanks!

Hi @b-gonzalez, I'm not able to reproduce the issue. I suggest creating a new virtual environment and reinstalling the packages to see if that resolves the import error.
Also, since you mentioned Anaconda, there can sometimes be issues with using pip to install packages in conda environments. I recommend following the best practices outlined here: https://www.anaconda.com/blog/using-pip-in-a-conda-environment
Let me know if this helps.

Exactly the same problem here. I'm trying to deploy an Azure Batch with a start up task running the following commands:
command_list = ["sudo apt-get install unzip",                 "sudo apt-get install zip",                 #"sudo apt-get install python3-pip -y",                 "sudo apt-get install python3.8 -y",                 "sudo apt-get install python3.8-distutils -y",                 "wget https://bootstrap.pypa.io/get-pip.py",                 "python3.8 get-pip.py",                 "python3.8 -m pip install --upgrade pip",\                 "python3.8 -m pip install -r requirements.txt",\                 "python3.8 -m pip install --upgrade cryptography",                 "python3.8 -m pip install --upgrade geopandas"                 #"python3.8 -m pip install geobr --ignore-installed geopandas"                 #"python3 -m pip install --upgrade pip",\                 #"python3 -m pip install -r requirements.txt",\                 #"python3 -m pip install --upgrade cryptography"                               ]
And with the following libs in the requirements:
numpy geopandas pandas azure-core azure-common azure-storage-blob azure-batch fastparquet pyarrow unidecode scikit-learn psutil libpysal
Then, exactly the same error pointed by @b-gonzalez occurs.

I fixed it by including "requests" and "pyOpenSSL" in the requirements and updating "pyOpenSSL" in the start up task:
command_list = ["sudo apt-get install unzip",                 "sudo apt-get install zip",                 "sudo apt-get install python3.8 -y",                 "sudo apt-get install python3.8-distutils -y",                 "wget https://bootstrap.pypa.io/get-pip.py",                 "python3.8 get-pip.py",                 "python3.8 -m pip install --upgrade pip",\                 "python3.8 -m pip install -r requirements.txt",\                 "python3.8 -m pip install --upgrade PyOpenSSL",\                 "python3.8 -m pip install --upgrade cryptography",\                 "python3.8 -m pip install --upgrade geopandas"                ]


Show graph for the number of current active cases (total cases - recorvered cases) by day for the entire country as well for each state

Fixed in #936

Duplicates #825


Memoization of functions is awkwardly sensitive to irrelevant source code changes

Describe the bug
Sometimes functions are passed as parameters to app functions, and so are used as material for the memoization hash (task_record['hashsum']). This does not work well, resulting in apparently-irrelevant changes to source code causing memoization to miss previously computed results.
This can happen both in when a user passes in a function (for example a wrapper function) explicitly, but more importantly happens when the raw app function is passed into one of the several internal parsl wrapper functions - so even if a workflow user does not pass in a function explicitly, function memoization happens.
The current master behaviour is to checkpoint functions using the default serialization-based mechanism, registered here:
@id_for_memo.register(types.FunctionType)
def id_for_memo_serialize(obj, output_ref=False):

which in turn uses CannedFunction from parsl/executors/serialize/canning.py which in turn uses the code pickling in parsl/executors/serialize/codeutil.py.
codeutil.py includes lots of fields into this result:
    args = [co.co_argcount, co.co_nlocals, co.co_stacksize,
            co.co_flags, co.co_code, co.co_consts, co.co_names,
            co.co_varnames, co.co_filename, co.co_name, co.co_firstlineno,
            co.co_lnotab, co.co_freevars, co.co_cellvars]

so at the very least, the memoization for a function depends on the line number at which it is defined, and so adding a one line comment at the top of a source file invalidates the memoization hash of every function defined in that source file.
Expected behavior
This is up for debate.
My favoured option at the moment is that function memo hashing should be quite tolerant, maybe using just the function module/name, and not be dependent at all on how that function is defined. Dependencies on the code inside the function mean that changing a function definition directly causes memo invalidation, but changing any helper functions used by that function do not cause a memo invalidation. This is unintuitive.
I've modified the lsst-dm-202002 branch to have a lighter form of function memo hashing that only looks at module and name, and have been using that with @tomglanzman

PR #1766 switches function memoization to using only function name and module (usually, the python source file, but I'm unsure how that works in notebooks)

I agree that memoization should not be dependent on the line no of the function, or its docs, and various other notebook related variables.
I'm not convinced that we should be ignoring the function body. We do not interrogate the code in depth to check if the functions being called have changed, so there are ways for the user to make changes without Parsl noticing. That's okay, there are limits to what we can interrogate. But a change made at the function body where we could easily say the function has changed should not be ignored and should invalidate the usage of previous results. I see two options here:

Let the user mark functions to ignore function body
Check code and ignore comments/docs to make sure we only look at code changes. I don't know if this solves the issue.

I like Ben's suggestion of the default model using only the app name.  I think this puts the decision on the user to manage whether or not they want to use checkpoints for a particular app.  We could offer an option to hash the body, but as described there are so many limitations there that it feels like something users need to understand fully before enabling.

Under @benclifford's model, what is the proposed way of dealing with situations where you have a large, partially processed workflow, and you need to make a change to an intermediate app? You'd like to re-run those results, but you don't want to disable caching (to force it to re-run), because after it is re-run the first time, you want it to be checkpointed. Do we expect users to change the name of their app every time they tweak the code?

@annawoodard I've been deleting my checkpoint files.
There are also usecases where we've wanted to continue from a checkpoint with an app changed, without throwing away earlier work.
Targeted invalidation of specific checkpoints is something harder (if you want to delete results for just one particular app, for example - because that info isn't stored in the checkpoint DB in unhashed form) and is a problem if you change your app by (for example) upgrading executables in any of the implementations we've talked about.
My main goal is that I want to user-facing rules for when checkpoints are invalidated to be simple to understand and reason about.

cc @charmoniumQ


README update

Great work!! Gonna be taking a look at the actual script next. Very helpful.

Fixed an issue that broke the script somehow. The issue was with line
 $runtime = (NEW-TIMESPAN –Start $starttime –End (GET-DATE)).TotalSeconds
and
$runtime = (NEW-TIMESPAN –Start $starttime –End (GET-DATE)).TotalSeconds

Sorry, didn't mean for this to all be in one PR. I can fix it if you want.
TODO:
[] better handling for multiple consecutive runs - put time in file path.


python312Packages.aiomysensors: 0.3.14 -> 0.3.15

Diff: https://github.com/MartinHjelmare/aiomysensors/compare/refs/tags/v0.3.14...v0.3.15
Changelog: https://github.com/MartinHjelmare/aiomysensors/releases/tag/v0.3.15
Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 308454 run on x86_64-linux 1

4 packages built:

python311Packages.aiomysensors
python311Packages.aiomysensors.dist
python312Packages.aiomysensors
python312Packages.aiomysensors.dist


Downloading media not working

Shows that the media has been downloaded but unable to locate it on the device. Tried even after manually providing storage permission.

Hi,
downloading media from whatsapp web is not supported by the current webview. I have a few ideas on how to solve this, but no time to do it yet

No problem :)

Found a way. If everything works out, it will be included in the next release :)

That's great. Eagerly waiting!

Found a way. If everything works out, it will be included in the next release :)

Where is the update ?
Have you found it

Found a way. If everything works out, it will be included in the next release :)

Where is the update ?
Have you found it

Unfortunately there is no update yet.
It involves more work than expected an currently I don't have the time to dig into it. It's still on the todo list though.

Unfortunately there is no update yet.
It involves more work than expected an currently I don't have the time to dig into it. It's still on the todo list though.

Fixed!!!

Currently the download is being triggered twice. Once this is fixed, I'll release the new version

Ok 👌 I will have a look at it as well  thanks for your understanding 😁
BR
The Genius
On Tue, May 25, 2021, 4:07 PM Leonhard Künzler @.***>
wrote:

Currently the download is being triggered twice. Once this is fixed, I'll
release the new version
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/92lleo/WhatsappWebToGo/issues/19#issuecomment-848224855,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AUBBB4NTUCD756YJMZ2V7N3TPP7Q7ANCNFSM4NC6V5GQ
.

Hey at the moment am working on a way to get notification working in the
project but I would like to no if sending you the counter appeal for the
DMCA claim is a good idea or is there a other way to get my apps back and
running soon as day come back online it will be taken down and  updated
with your credentials please let me know am not trying to get my self in
any lawsuit against you honestly i just want to be fear it's not about the
money but the strikes against my account I understand that you were very
upset with me hope you see that am not a bad person i  just had lack of
knowledge towards these licenses is there another way to get this done or
do I have to send the appeal ? am literally waiting on your response please
here my cry  please reply ;(
BR
Markie
On Tue, May 25, 2021, 4:16 PM markie foreman @.***> wrote:

Ok 👌 I will have a look at it as well  thanks for your understanding 😁
BR
The Genius
On Tue, May 25, 2021, 4:07 PM Leonhard Künzler @.***>
wrote:

Currently the download is being triggered twice. Once this is fixed, I'll
release the new version
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/92lleo/WhatsappWebToGo/issues/19#issuecomment-848224855,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AUBBB4NTUCD756YJMZ2V7N3TPP7Q7ANCNFSM4NC6V5GQ
.

@all Please check the new release 1.7.0
For newer android versions the permission is broken. If you can't download files, set the storage permission manually for the app. I'll fix this asap!

Yup that's why I had added it for you the first time👌
On Sun, Jun 6, 2021, 5:37 PM Leonhard Künzler @.***>
wrote:

@ all Please check the new release 1.7.0
For newer android versions the permission is broken. If you can't download
files, set the storage permission manually for the app. I'll fix this asap!
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/92lleo/WhatsappWebToGo/issues/19#issuecomment-855466868,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AUBBB4JE7BZ3FS6BTSWSWX3TRPTCZANCNFSM4NC6V5GQ
.

I kept the permission, I just moved it to the right places, so it does only ask when you really need it. Besides that, the logic is working until Android 10 (included). For 11 it's broken as the permission scheme changed. I'll work on that

Workaround for missing permission request on android 11 is live with Release 1.7.1.
Fixing permission requests for Android 11 is further tracked in #46
-> Closing


Failed tasks provide no context on the errors

For example, cloning one of the repositories that I own gives me this:

I have no idea what this means or what I should do about it. Clicking on the card with the error does nothing. I can't even copy the error message and have to manually write it out in the search engine, which is somehow a Windows Store error?

Why do I get a store error when cloning a Git repo? 🤔

Hello.  We are aware of the lack of information on the error messages and how frustrating it is to not find the correct solution.  This is a part of DevHome that we're aware of.  Adding issue-feature to get PM eyes on this.

Closed as fixed in #1509


Resize embedded YouTube video for mobile

Extends out beyond the page on mobile. May just be a property of the embedded code?

On the Responsive_iframe branch, I have included the youtube video three times. The first one is how we had it inside section2 of the components.md. That is not detected by the gatsby-remark-responsive-iframe and has no responsive div automatically placed around it.
The second video is putting the iframe tag in the body of the components.md file as just markdown which is detected by the responsive iframe plugin and has a styled div around it.
The last video is putting the iframe tag on the ComponenetsPage.js inside two divs and adding CSS rules to those divs. These CSS rules I though was what Content.css was using to keep iframes responsive, but turns out the css regarding iframes in Content.css wasn't applying at all to iframes as commenting them out didn't break the responsive iframes across the website.
Going forward we also have to consider that from the end-user perspective whether it's inside a template or just part of the markdown, the code displays as just an  tag. We will need to create a template, so they only need to upload a video and we just insert that into the source of an iframe tag.

I am busy until this wednesday, so I effectively can't continue work on this during this development cycle. If anyone wants to go ahead, otherwise we should adapt one of the two responsive embedded video on the master branch for the presentation.  #11 is related to this. Instead of the menu being missing, you have to scroll down and find it due to the large screen size created by the video.

As far as I can tell, the iframe in the section2 field is the same iframe code in the body, but the one in the body is actually responsive? I wonder if it's because the fields are converted to strings, and that the iframe is a valid enough string to display but it loses some sort of actual functionality. I think that if we could get the code working as a field itself that it would be more sustainable than the CSS. Perhaps we have to make sure the field is cast explicitly to code.

I think I figured it out. It does have iframe styling built in and the Content--Iframe is its css class. However, it is the formatting of the field that is an issue.
section2: |-
  ## You can use videos, images and text.

This is our intended video. If you look at the current components.md's section2, you see
section2:

The important thing is not the spacing, it's the |-. I've noticed weird things like that which I don't know the function of, but they are evidently important for formatting an recognition of either the data type or css class.

Edit: In fact, it's about stripping end of string whitespace. That could be all that is wrecking the recognition of it as a validly formatted iframe. See "Chomp Modifiers" from "YAML Tutorial: Everything You Need to Get Started in Minutes" by Eric Goebelbecker.

Wow, two characters. Two very significant characters. Amazing Find Michael!!

I'm just wondering how they are automatically placed in or not. Those kind of characters came in the template but after some edits were not consistently there, though that may have been not from editing in the CMS but rather blindly cutting all the field content in the straight up markdown. Next time I have a reason to push up a change to the components page I will try to embed a different video and see if it automatically enters that.


Release v. 0.0.1

Archives were uploaded to Maven Central Repository. We're waiting for Maven Sync.

Done.


adjusting ESTBeaconRegion size

Is there a way I can set my beacon region to be smaller for a given beacon (certain major or minor or both)?
Alternatively, is there a way to only trigger the didRangeBeacons, or didEnterRegion/diExitRegion for a region radius that is smaller than that of the one given to a standard beacon?
I would like to be able to register a ping of beacon while the app is in the background, when the iOS device is very close to a certain beacon.
Thanks

Hi @jsanders67,
To make beacon region smaller you can play with beacons power (using AppStore app or SDK Examples). Smaller the power smaller the range. There is no mechanism provided by Apple that allows you to ping in defined distance. You can use only monitoring in background and enter/exit events are fired always when you came into range of beacon - so the power setting is the only option here.


All ServerBuilder's setters return 'this'

Sorry for waiting, it took me some time to set a proper CLA management for Rapidoid.

I've signed the CLA, but the check is still pending...

Force pushed the branch to restart checking. Looks like it works now.

Thanks for your contribution!


Lexer error: can't match any token

Whenever I evaluate anything with this library that has a -: in it, it breaks and gives me the error in the title, please help me. For example, if I try to evaluate 1(1)/(5)-:-1(1)/(3) it throws Lexer error: can't match any token.

A : is not valid syntax. What behaviour would you expect from 1(1)/(5)-:-1(1)/(3)?

I expect division from -:

Touché. Evaluatex only supports the operations described in its manual --- that's not even close to the full feature set of AsciiMath or LaTeX --- because it sufficed for the use case I had for it at the time.
I imagine that the minimum viable change to implement the -: operator would be modifying the lexer to recognize the -: token and emit a / token instead.
Note to self: this is an excellent reason to split the current lexer into AsciiMath and LaTeX lexers, and have them emit a common IR for the parser. Be wary of situations like -:- where the sequence should be interpreted as -: -.
I wish I had the free time to work on Evaluatex, although I would welcome a PR with test cases for the various AsciiMath features. Either way, thanks for bringing up this deficiency.


FIX: fix for empty event durations

@ociepkam - Try if this works for you.
Reference issue
Fixes #8383.
What does this implement/fix?
It seems some eeglab files contain empty durations - these are read as empty errays from matlab files and cause error when trying to set the durations array.
I'll add a test later.

It works. Thank you!

@cbrnr Thanks for the comments, I'll return to this tomorrow.

@mmagnuski can you add a what's new? thx +1 for MRG

Can we add a test for this please? :)

@agramfort Sure!
@hoechenberger of course, by "I'll add a test later" I meant later in the time scope of this PR. :)

Great, looking forward!

Thanks for reminding @hoechenberger, I'm on low time budget recently, sorry for delays (but, hey, it's been only 18 days! ;) )
I'll get to this today.

@mmagnuski Great! And no worries, I can very much relate.

I don't understand why codecov is angry at me... :(

@larsoner - less smoke now and we can see the green CI fields. :)

I killed most CIs as we can safely ignore them (I just changed latest.inc -- left CircleCI running just to be safe)

Thanks for the corrections!

Thanks @mmagnuski !

Thanks @larsoner @cbrnr @agramfort @hoechenberger ! 🚀


Maintainer wanted

I'm not using Sinatra nor Active Record anymore, and already have other open source projects I'm deeply committed to, so I would like to pass sinatra-activerecord maintenance over to someone else.
Any volunteers?

@jobro has volunteered to take over maintenance of sinatra-activerecord 🎉  Thank you @jobro 🙏

Happy to!

There hasn't been any new activity since I've given @jobro push access, so I'm reopening this issue in search for another volunteer.

Hi @janko , is this still open? I am happy to be a maintainer as I am using Sinatra and Sinatra Active Record for my own side project, and want to fix several issue like #83 and #89
Thanks for maintaining this repository!

@cupnoodle Great! I've invited you to the organization. Please let me know your RubyGems.org email address so that I can give you gem push access.

Thanks @janko ! My RubyGems.org email is<EMAIL_ADDRESS>

Let me know after you have given the gem push access.
I just found out that the version pushed to RubyGems doesn't match the version in Github (2.0.14 on RubyGems on September 2019, but 2.0.13 on Github)  , sorry for the double bump 😅

Done, you should now have gem push access ✅ Thank you for jumping in!


Configurable Inertia/Acceleration for the Minecart Feature

This is a suggestion, not an issue. We're attempting to replicate a Mario kart style racing game, and this Minecart feature is near perfect, so a few suggestions that I'm not sure the feasibility of each one, so feel free to shoot stuff down.
It would be really cool if we could get the boat mechanics of inertia (sliding) and acceleration configurable for when you're riding minecarts.
Another side request (I'm pretty sure this isn't possible due to hitboxes but worth a shot), would it be possible to configure the seating positions on the rideable mobs?

I'm open to the idea of getting the sliding to work, but it's honestly beyond me. I've tried it before and I can't get it right. PRs are definitely welcome if anyone knows how to do it correctly ^_^
As for the seat height, that's actually client controlled. I had a client mod I was working on for this (PurpurClient), but due to lack of interest and time I have since abandoned it.


Support @sap/cds 5

Due to changes on the structure cds-pg currently doesn't work with @sap/cds 5. Maybe @sjvans can guide us.

@gregorwolf https://github.com/sapmentors/cds-pg/pull/140 should help a bit. i don't have the setup running locally to verify, though.

All automated tests run fine for #140. Will merge as soon as the issue with GitHub Actions is resolved and the tests in GitHub also work.

Fixed with #140

i don't have the setup running locally to verify, though.

time to do that :) and it's easypeasy: https://github.com/sapmentors/cds-pg/blob/main/docs/CONTRIBUTING.md#setting-up-the-development-environment
thanks for your support on cds 5!


[FEATURE] Comment webhook

Dear developers,
I'm currently working on setting up Jenkins CI to build certain repositories and their Pull Requests hosted via Gogs. To achieve this, I added a post-receive hook to the main repository, which is correctly triggered each time a PR is opened.
Now, the PR may needs to be updated several times to comply with the standards, but the following commits to the PR branch will not be covered in CI as the post-receive hook only triggers once.
Because of that and as otherwise a massive build queue could be created (in the case post-receive ws triggered with each new commit), I found a webhook for PR comments to be a good idea. The hook could be caught by Jenkins and checked for the string "Jenkins, build this." or whatever (checked on CI side, no need for Gogs to do anything) to queue a build when really desired.
As I don't have enough skill in the Go language and because I barely know the inner workings of Gogs, I would be happy if someone who has the time and skills needed to look into this. Thank you very much.

Thanks your feedback!
But I think this is duplicated to https://github.com/gogits/gogs/issues/2319

Yes, you are right
I specifically searched for PRs, so this one did not pop up.
Thanks! :)


Custom menu: Some small UI glitches

Elementary Loki (Ubuntu 16.04)
Version: 1.26.0-insider
Commit: c86cab2
Date: 2018-08-02T05:18:18.450Z

the right arrow for the sub menus is too prominent. A little smaller would be more elegant
the checkmark (see Auto Save) is barely visible
the characters with mnemonice seem to use a different font (e.g. see thel in Save All)
the submenus upper left corner seems to be round, while other corners are not
the black menu on the back background is hard to see. On ElementaryOS the menu background color is normally white, which works quite well. Maybe it would make sense to read out the OS colors?

Most of these have their own issues. I will rename as I think one does not.
The roundedness of the top left is an illusion. This is much more obvious in a light theme. As for the color, the menus are themable so this is user choice.

Also repros on Windows


Fix ASAN detected crash in test_LogUtils.

This is an ASAN fault in test_LogUtils during shutdown. Not itself a real problem, but it does pollute any ASAN output when looking for real bugs, so best to clean it up.
This is caused by double linking BufferWriterFormat.cc, so don't do that. The result is a static in BufferWriterFormat.cc gets globally destructed twice, the second time causing a "use-after-free" ASAN error. @shinrich verified this fixes the ASAN error.

[approve ci autest]


Error initializing partition when already initialized a partition with later address (IDFGH-6681)

Environment

Development Kit: [none]
Module or chip used:  [ESP32-WROOM-32D]
IDF version: [v4.2.2-dirty]
Build System: [idf.py]
Compiler version: [xtensa-esp32-elf-gcc (crosstool-NG esp-2020r3) 8.4.0]
Operating System: [Windows]
Environment type: [ESP Command Prompt].
Using an IDE?: [No]
Power Supply: [3.3V]

Problem Description
I'm developing an application that uses one partition for logging events and another for settings:

partition.csv

# ESP-IDF Partition Table
# Name,   Type, SubType, Offset,  Size, Flags
nvs,     data, nvs,  0x9000,   16k,
otadata, data, ota,  0xd000,   8K,
factory,app,factory, 0x10000,  0x160000,
ota_0,app,ota_0, 0x200000, 0x160000,
ota_1,app,ota_1, 0x400000, 0x160000,
report, data, nvs, 0x600000,  0x160000,
config, data, nvs, 0x770000,   32k,

The status of the partitions when the problem occurs. Note that there is already data in the partitions. Without data I can successfully initialize.

Partition:'config'

UsedEntries = (458)
FreeEntries = (550)
AllEntries = (1008)

Partition:'report'

UsedEntries = (15008)
FreeEntries = (29344)
AllEntries = (44352)

I get a problem when I run:
err = nvs_flash_init_partition("config"); // (ESP_OK)
err = nvs_flash_init_partition("report"); // (ESP_ERR_NO_MEM)

But it runs fine when I reverse the sequence:
err = nvs_flash_init_partition("report"); // (ESP_OK)
err = nvs_flash_init_partition("config"); // (ESP_OK)

Log error when CONFIG_HEAP_ABORT_WHEN_ALLOCATION_FAILS=y_
Memory allocation failed

Backtrace:0x40087012:0x3ffbddc0 0x400874f5:0x3ffbdde0 0x400d302b:0x3ffbde00 0x400810e3:0x3ffbde20 0x400810fd:0x3ffbde40 0x4008b6fd:0x3ffbde60 0x4016f5f5:0x3ffbde80 0x400edee3:0x3ffbdea0 0x400ee142:0x3ffbdf00 0x400ef1af:0x3ffbdf60 0x400ef222:0x3ffbdf90 0x400ed43f:0x3ffbdfb0 0x400e1102:0x3ffbdfd0 0x400d37ec:0x3ffbe040
0x40087012: panic_abort at C:/esp32/esp-idf/components/esp_system/panic.c:341

0x400874f5: esp_system_abort at C:/esp32/esp-idf/components/esp_system/system_api.c:106

0x400d302b: heap_caps_alloc_failed at C:/esp32/esp-idf/components/heap/heap_caps.c:67

0x400810e3: heap_caps_malloc at C:/esp32/esp-idf/components/heap/heap_caps.c:155

0x400810fd: heap_caps_malloc_default at C:/esp32/esp-idf/components/heap/heap_caps.c:177

0x4008b6fd: malloc at C:/esp32/esp-idf/components/newlib/heap.c:32

0x4016f5f5: operator new(unsigned int, std::nothrow_t const&) at /builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp32-elf/src/gcc/libstdc++-v3/libsupc++/new_opnt.cc:43

0x400edee3: nvs::Storage::populateBlobIndices(intrusive_list<nvs::Storage::BlobIndexNode>&) at C:/esp32/esp-idf/components/nvs_flash/src/nvs_storage.cpp:46

0x400ee142: nvs::Storage::init(unsigned int, unsigned int) at C:/esp32/esp-idf/components/nvs_flash/src/nvs_storage.cpp:128

0x400ef1af: nvs::NVSPartitionManager::init_custom(char const*, unsigned int, unsigned int) at C:/esp32/esp-idf/components/nvs_flash/src/nvs_partition_manager.cpp:71
 (inlined by) nvs::NVSPartitionManager::init_custom(char const*, unsigned int, unsigned int) at C:/esp32/esp-idf/components/nvs_flash/src/nvs_partition_manager.cpp:57

0x400ef222: nvs::NVSPartitionManager::init_partition(char const*) at C:/esp32/esp-idf/components/nvs_flash/src/nvs_partition_manager.cpp:52

0x400ed43f: nvs_flash_init_partition at C:/esp32/esp-idf/components/nvs_flash/src/nvs_api.cpp:163

0x400e1102: app_init_partition_report at c:\users\user\desktop\connect\display\esp32-dsp-inc-connect\build/../main/_modules/_NVS/NVS_V1.0.c:58
 (inlined by) app_nvs_init at c:\users\user\desktop\connect\display\esp32-dsp-inc-connect\build/../main/_modules/_NVS/NVS_V1.0.c:121
 (inlined by) app_main at c:\users\user\desktop\connect\display\esp32-dsp-inc-connect\build/../main/main.c:870

0x400d37ec: main_task at C:/esp32/esp-idf/components/esp32/cpu_start.c:609

Core Dump
================= CORE DUMP START =================
dCsAAAABAAAHAAAAaAEAAAAAAAA=
f0VMRgEBAQAAAAAAAAAAAAQAXgABAAAAAAAAADQAAAAAAAAAAAAAADQAIAAQACgA
AAAAAA==
BAAAADQCAAAAAAAAAAAAAKAQAACgEAAABgAAAAAAAAA=
AQAAANQSAAD04Ps/9OD7P2gBAABoAQAABgAAAAAAAAA=
AQAAADwUAAAA3fs/AN37P9wDAADcAwAABgAAAAAAAAA=
AQAAABgYAAAU8Ps/FPD7P2gBAABoAQAABgAAAAAAAAA=
AQAAAIAZAABg7vs/YO77P5wBAACcAQAABgAAAAAAAAA=
AQAAABwbAACE6Ps/hOj7P2gBAABoAQAABgAAAAAAAAA=
AQAAAIQcAADQ5vs/0Ob7P5wBAACcAQAABgAAAAAAAAA=
AQAAACAeAAC0+vs/tPr7P2gBAABoAQAABgAAAAAAAAA=
AQAAAIgfAAAQ+fs/EPn7P4wBAACMAQAABgAAAAAAAAA=
AQAAABQhAABs+/o/bPv6P2gBAABoAQAABgAAAAAAAAA=
AQAAAHwiAACg+fo/oPn6P7QBAAC0AQAABgAAAAAAAAA=
AQAAADAkAACMzPs/jMz7P2gBAABoAQAABgAAAAAAAAA=
AQAAAJglAADgyvs/4Mr7P5QBAACUAQAABgAAAAAAAAA=
AQAAACwnAACsxfs/rMX7P2gBAABoAQAABgAAAAAAAAA=
AQAAAJQoAADgw/s/4MP7P7QBAAC0AQAABgAAAAAAAAA=
BAAAAEgqAAAAAAAAAAAAABQBAAAUAQAABgAAAAAAAAA=
CAAAAEwCAAABAAAA
Q09SRQAAAAA=
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9OD7PwAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFXAIQCADBgDgwgBA9sIAQAAAAAAcAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPh0CIDA3fs/
KAFAPywAAAAAAAAAAAAAAPj//T8BAP//AAAAAAEAAACsRPs/AQAAAPz///8AAAAA
/P////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAA
CAAAAEwCAAABAAAA
Q09SRQAAAAA=
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFPD7PwAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApjwYQCAABgBsxABAd8QAQP////8AAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPhBDYAg7/s/
AAAAACMABgAgAAYAIwAGAKxE+z9U//s/IwAGABTw+z8BAAAA//8/sxQAAAClAAAA
pQAAACMABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAA
CAAAAEwCAAABAAAA
Q09SRQAAAAA=
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhOj7PwAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApjwYQCAJBgBsxABAd8QAQP////8AAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPhBDYCQ5/s/
AAAAAP//P7MUAAAApQAAAKUAAAAjAAYAIwAGABTw+z8AAAAA//8/sxQAAAClAAAA
pQAAACMABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAA
CAAAAEwCAAABAAAA
Q09SRQAAAAA=
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtPr7PwAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4BcIQCAMBgAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGGhCIDQ+fs/
AAAAAPRE+z8ERfs/AAAAAAEAAACcRfs/4BcIgLD5+z/cAPA/AQAAAEQC+z8IRfs/
AwAAACMABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAA
CAAAAEwCAAABAAAA
Q09SRQAAAAA=
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbPv6PwAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4BcIQCAABgAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJqqCIBg+vo/
AAAAAP/////4Fvs/kEf7PwMAAAAjAAYA4BcIgED6+j/cAPA/AQAAAEQC+z8jAAYA
/v7+/gEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAA
CAAAAEwCAAABAAAA
Q09SRQAAAAA=
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjMz7PwAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmqoIQCACBgAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFcwCICgy/s/
CMj7PwAAAABcyPs/CMj7PwEAAAAsyPs/mqoIgIDL+z8BAAAA//////gW+z+UR/s/
pQAAAJxF+z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAA
CAAAAEwCAAABAAAA
Q09SRQAAAAA=
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArMX7PwAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4BcIQCAABgAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJqqCICgxPs/
AAAAAP/////4Fvs/kEf7P6xE+z+8+vs/4BcIgIDE+z/cAPA/AQAAAEQC+z8jAAYA
AwAAACMBBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAA
INz7P3Dg+z/Ozs7OuEX7P7hF+z/04Ps/sEX7PxgAAADEx/s/xMf7P/Tg+z8AAAAA
AQAAACjT+z9tYWluAM7Ozs7Ozs7Ozs4AAAAAANzg+z8FAAAAzs7OzgEAAAABAAAA
AAAAAAAAAAChax4AAAAAACTp+j+M6fo/9On6PwAAAAAAAAAAAQAAAAAAAAAAAAAA
AAAAAEgdAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O
776t3hVwCEAwAwYA+HQIgMDd+z8oAUA/LAAAAAAAAAAAAAAA+P/9PwEA//8AAAAA
AQAAAKxE+z8BAAAA/P///wAAAAD8/////////xwAAAAdAAAAAAAAAODCAED2wgBA
AAAAAPz///8AAAAAECEIQEBd9z8AAAAAAAAAAAAAAAD//z+zAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAADwMD4Dg3fs/oDRoALze+z8uMA2A4N37PygBQD8cAAAA
oDRoACAAAAAAAAAANB37P+YQCIAA3vs/HAAAAAAYAABQQ/4/IAAAAAAg9D8AAAQA
ABEIgCDe+z8cAAAAABgAAFgBQD8AAAAAAAAAAAAAAAAAtwiAQN77PxwAAAD/////
AwAAAAAAAAAIAAAAAAAAAPj1FoBg3vs/HAAAALze+z8IAAAAnEX7P2gHAAA0Hfs/
5t4OgIDe+z8cAAAAIFtEPyAAAAAAAAAASAAAAEze+z9F4Q6AoN77PyEAAAAAAAAA
nPnWrCQAAAAAAAAAvN77P7LxDoAA3/s/iM77PwAAAID/AAAA/wAAAP8AAAABAAAA
d+EOgODe+z8jAAAAAUgB/8NjOVowMzE2MAAAAAAAAAAAAAAAHAAAAAEA//+c+das
/wAAAAAAAAAQ3/s/FDX8PyXyDoBg3/s/bP37P9AGQD//AAAA/wAAACwAAAAg3vs/
VEr9P9j//z9FDgAAAUgB/7S9lq0wNDUwNQAAAAAAAAAAAAAAHAAAAAEA//+c+das
AwAAACRK/T8AAAAAAQAAAELUDoCQ3/s/bP37P9AGQD9C1A6AkN/7P2z9+z8QAAAA
AAYAAGABAACIzvs/AAAAAAURDoCw3/s/0AZAPxwCAABQ/fs/AAAAAAEAAAAg/fs/
7zcNgNDf+z8cG/s/fDNAP0B++z8AAAAA8DFAP/ADAAAAAAAAQOD7PwAAAAAAAAAA
J0ANgADg+z8BAAAAEAAAANQ3DYDwMUA/PAAAAAAAAADw//o/ygEAACYCAADwAwAA
BAAAAAAAAADw//o/IwAGAAAAAABA4Ps/AAAAAJz51qwsZ/s/8DFAPwoAAADQBkA/
AAAAAHDg+z8AAAAAAAAAAAAAAAAAgPQ/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfOD7PwAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
YO77P5Dv+z/Ozs7OpEX7P4zo+z8U8Ps/nEX7PxkAAADOzs7Ozs7OzhTw+z8AAAAA
AAAAAADq+z9JRExFMQDOzs7Ozs7Ozs4AAQAAAPzv+z8HAAAAzs7OzgAAAAAAAAAA
AAAAAAAAAAAWOAwAAAAAACTp+j+M6fo/9On6PwAAAAAAAAAAAQAAAAAAAAAAAAAA
AAAAAEgdAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O
dCEIQKY8GEAwAAYA+EENgCDv+z8AAAAAIwAGACAABgAjAAYArET7P1T/+z8jAAYA
FPD7PwEAAAD//z+zFAAAAKUAAAClAAAAIwAGAAAAAAD//wAAAAAAAGzEAEB3xABA
/////3gjCEClAAAA9IIIQGBs9z8AAAAAAAAAAAAAAAD//z+zAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAP//P7MAAAAAAAAAAAAAAAAyiAiAQO/7P5hE+z8BAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAABg7/s/LEX7PwEAAACYRPs/AAAAAAAAAAD//z+z
AAAAAJDv+z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+Bb7PwAAAAAwRfs/
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnO/7PwAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
0Ob7PwDo+z/Ozs7OHPD7P6RF+z+E6Ps/nEX7PxkAAADOzs7Ozs7OzoTo+z8AAAAA
AAAAAHDi+z9JRExFMADOzs7Ozs7Ozs4AAAAAAGzo+z8GAAAAzs7OzgAAAAAAAAAA
AAAAAAAAAAAkKgAAAAAAACTp+j+M6fo/9On6PwAAAAAAAAAAAQAAAAAAAAAAAAAA
AAAAAEgdAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O
dCEIQKY8GEAwCQYA+EENgJDn+z8AAAAA//8/sxQAAAClAAAApQAAACMABgAjAAYA
FPD7PwAAAAD//z+zFAAAAKUAAAClAAAAIwAGAAAAAAD//wAAAAAAAGzEAEB3xABA
/////3gjCEClAAAA9IIIQNBk9z8AAAAAAAAAAAAAAAD//z+zAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAP//P7MAAAAAAAAAAAAAAAAyiAiAsOf7P3hE+z8BAAAA
//8/swAAAAAAAAAAAAAAAAAAAADQ5/s/LEX7PwAAAAB4RPs/AAAAAAAAAAD//z+z
AAAAAADo+z8AAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAA+Bb7PwAAAAAwRfs/
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOj7PwAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
EPn7PzD6+z8AAAAAfEX7P3xF+z+0+vs/dEX7PwoAAAC88fs/vPH7P7T6+z+08fs/
DwAAAKDy+z9UbXIgU3ZjAM7Ozs7Ozs4AAAAAAJz6+z8IAAAAzs7Ozg8AAAAAAAAA
AAAAAAAAAAAnAAAAAAAAACTp+j+M6fo/9On6PwAAAAAAAAAAAQAAAAAAAAAAAAAA
AAAAAEgdAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O
dCEIQOAXCEAwDAYAYaEIgND5+z8AAAAA9ET7PwRF+z8AAAAAAQAAAJxF+z/gFwiA
sPn7P9wA8D8BAAAARAL7PwhF+z8DAAAAIwAGAAAAAAD//wAAAAAAAAAAAAAAAAAA
AAAAAHgjCEAIRfs/9IIIQAB39z8AAAAAAAAAAAAAAAD//z+zAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8Pn7P5hH+z8AAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAw+vs/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAEAAACcR/s/pEf7PwAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAA8+vs/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAA
oPn6P/D6+j/Ozs7OlMz7P7TF+z9s+/o/GEX7PwMAAAAE6/o/BOv6P2z7+j/86vo/
FgAAAEjr+j9lc3BfdGltZXIAzs7Ozs4AAAAAAFT7+j8BAAAAzs7OzhYAAAAAAAAA
AAAAAAAAAAAYAAAAAAAAACTp+j+M6fo/9On6PwAAAAAAAAAAAQAAAAAAAAAAAAAA
AAAAAEgdAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O
dCEIQOAXCEAwAAYAmqoIgGD6+j8AAAAA//////gW+z+QR/s/AwAAACMABgDgFwiA
QPr6P9wA8D8BAAAARAL7PyMABgD+/v7+AQAAAAAAAAD//wAAAAAAAAAAAAAAAAAA
AAAAAHgjCEAjAAYA9IIIQMB39j8AAAAAAAAAAAAAAAD//z+zAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAPD6+j8AAAAAAAAAAAAAAAAnQg2AgPr6P9jq+j8AAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAADA+vo/AAAAAKBE+z8AAAAAAAAAAAAAAAD/////
AAAAAAAAAAAAAAAAAAAAACzr+j/Y6vo/AQAAAPzq+j8AAAAA8Pr6PwAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAJhE+z8AAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAD8+vo/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAA==
4Mr7PxDM+z/Ozs7OIEX7P3T7+j+MzPs/GEX7PwEAAAA0yPs/NMj7P4zM+z8syPs/
GAAAAHjI+z9pcGMxAM7Ozs7Ozs7Ozs4AAQAAAHTM+z8DAAAAzs7OzhgAAAAAAAAA
AAAAAAAAAABJZBIAAAAAACTp+j+M6fo/9On6PwAAAAAAAAAAAQAAAAAAAAAAAAAA
AAAAAEgdAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O
dCEIQJqqCEAwAgYAVzAIgKDL+z8IyPs/AAAAAFzI+z8IyPs/AQAAACzI+z+aqgiA
gMv7PwEAAAD/////+Bb7P5RH+z+lAAAAnEX7PwAAAAD//wAAAAAAAAAAAAAAAAAA
AAAAAHgjCECUR/s/9IIIQOBI9z8AAAAAAAAAAAAAAAD//z+zAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAPgW+z+UR/s/pQAAAJxF+z8AAAAA4Mv7PwQAAADMfPs/
BEX7PwAAAAAAAAAA/////wAAAADgy/s/AAAAANQHAABcyPs/CMj7PwEAAAAsyPs/
AAAAABDM+z8AAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAC8fPs/yHz7P7R8+z9EQAhA
IBYIgIB9/j8AAQAAAAAAAAAAAAAAAAAAHMz7PwAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAA=
4MP7PzDF+z/Ozs7OdPv6PyBF+z+sxfs/GEX7PwEAAABUwfs/VMH7P6zF+z9Mwfs/
GAAAAJjB+z9pcGMwAM7Ozs7Ozs7Ozs4AAAAAAJTF+z8CAAAAzs7OzhgAAAAAAAAA
AAAAAAAAAABMBgAAAAAAACTp+j+M6fo/9On6PwAAAAAAAAAAAQAAAAAAAAAAAAAA
AAAAAEgdAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O
dCEIQOAXCEAwAAYAmqoIgKDE+z8AAAAA//////gW+z+QR/s/rET7P7z6+z/gFwiA
gMT7P9wA8D8BAAAARAL7PyMABgADAAAAIwEGAAAAAAD//wAAAAAAAAAAAAAAAAAA
AAAAAHgjCEAjAAYA9IIIQABC9z8AAAAAAAAAAAAAAAD//z+zAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAADDF+z8AAAAAAAAAAAAAAABXMAiAwMT7PyjB+z8AAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAxfs/AAAAAMh8+z8AAAAAAAAAAAAAAAD/////
AAAAAAAAAAAAAAAAAAAAAHzB+z8owfs/AQAAAEzB+z8AAAAAMMX7PwAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAALh8+z/IfPs/sHz7PwAAAACWFQiAwDv+PwBF+z/8Q/s/
AAAAAAAAAAA8xfs/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAA==
FAAAAEgAAABKIAAA
RVNQX0NPUkVfRFVNUF9JTkZPAAA=
AAEAADAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
DAAAAJQAAAClAgAA
RVhUUkFfSU5GTwAA
9OD7P+gAAAAdAAAA7gAAAAAAAADCAAAAAAAAAMMAAAAgAwYAxAAAAAAAAADFAAAA
AAAAAMYAAAAAAAAAsQAAALl5CECyAAAAAAAAALMAAADzvwBAtAAAAAAAAAC1AAAA
AAAAALYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAA==
QWyB6A==
================= CORE DUMP END =================

My notes

If CONFIG_HEAP_ABORT_WHEN_ALLOCATION_FAILS is disabled, after err = nvs_flash_init_partition("report"); // (ESP_ERR_NO_MEM) , the heap memory gets exhausted.

If I change the function in the file nvs_page.cpp, in function esp_err_t Page::findItem(uint8_t nsIndex, ItemType datatype, const char* key, size_t &itemIndex, Item& item, uint8_t chunkIdx, VerOffset chunkStart), in the condition below, the problem gets solved:

from:

   if (nsIndex != NS_ANY && item.nsIndex != nsIndex) {
      continue;
   }

to:

   if (item.nsIndex != nsIndex) {
      continue;
   }

Apparently, if it returns an ESP_OK instead of continuing the loop, the null index causes the function Storage::populateBlobIndices(TBlobIndexList& blobIdxList), in nvs_storage.cpp, to try to allocate the entire program heap.

My questions are:
1 - When the partitions are empty, the partitions  initialization sequence doesn't take effect. When I have some data in the 'report' partition(around 30% used), the device stops booting and I have to change the initialization sequence. Why?
2 - What is the relationship between this issue and the "workaround" I made?
3 - Is my workaround a real solution?

Are you checking free heap?  The report partition is huge and the ram used for page metadata will be high due to nvs design limitations.  To support large partitions there should be a limited size cache for page metadata.

1 - When the partitions are empty, the partitions initialization sequence doesn't take effect. When I have some data in the 'report' partition(around 30% used), the device stops booting and I have to change the initialization sequence. Why?

@jonasgeremias I'm afraid that what @negativekelvin said is true. NVS allocates a certain amount or memory for each partition. The most important memory consumption probably stems from the instances of NVS page. Each one needs 84 bytes alone, with the hashed data much more. A page data structure is allocated in memory for each 4K of flash in the NVS partition. In the case of the report partition, this is (0x160000 / 4K) * 84 = 29568.0 bytes without the hashes. If there are items in a page, add another minimum of 128 bytes for that page (If I am right, cc @igrr). Hence, for large pages, the memory on an ESP32 might not be enough.

2 - What is the relationship between this issue and the "workaround" I made?

Well, you removed part of most probably necessary code in NVS. The host unit tests fail with your modification.

3 - Is my workaround a real solution?

The unit test "storage doesn't add duplicates within one page" fails on an assertion in the code, so I think no.

@0xjakob and @negativekelvin, thanks for helping me.
My ateration didn't work properly, I'm very sad.
I have enough heap to initialize all partitions.
The fact is that if I boot in the correct sequence ( 1 - 'report', 2 - 'config' ), 'report' uses ~70k and 'config' uses ~1.2k, leaving a lot of heap for the application.
But the opposite ( 1 - 'config', 2 - 'report'), the 'config' partition uses ~1.2k and 'report' allocates the whole heap.
But why if I initialize the partitions in order, start correctly?
Also, it takes a long time to write data to flash memory when don't have a key already created! In addition to using heap, recording is very slow! I wonder if there isn't a better way to write data to partitions? But let's solve one problem at a time hahahah.

Heap is not contiguous so you have to check the heap_caps_get_largest_free_block.  If you allocate the config memory first the largest free block probably shrinks below the size needed for report.

@jonasgeremias If you need to store just one large block of data, you can use a raw partition. However, that only works best if the device isn't experiencing sudden power losses.

I removed my change from the issue as it had no effect.
I added more data to the 'report' partition and the boot always fails.
Print the return of the heap_caps_get_largest_free_block function:
W (472) NVS: MALLOC_CAP_8BIT=130188
W (472) NVS: MALLOC_CAP_INTERNAL=130188
W (474) NVS: MALLOC_CAP_IRAM_8BIT=0
W (478) NVS: MALLOC_CAP_SPIRAM=0
E (2353) NVS: report initialization: ESP_ERR_NO_MEM
W (2353) NVS: Count: err = (ESP_ERR_NVS_NOT_INITIALIZED)

So it might be the memory allocation for the big partition.
My hardware suffers power loss all the time, so I made safeguards to protect old data in case of read and write failure:
but it doesn't make sense for me to have 16MB of memory and not be able to use it.
@negativekelvin, @0xjakob , here is a link to the test project where the issue occurs:
https://github.com/jonasgeremias/Material-ESP32/tree/master/NVS_MEMORY
How do I use all the flash memory on the chip? It could be native functions. If not using Heap (SPI only) it would be even better.
Is there a way to decrease the recording time when you have more keys? For me, it should be something like 20ms max.

@jonasgeremias Unfortunately NVS will not fit your use case if you require fast updates (20ms) and large partition size (>1MB). NVS uses between 128 and 640 bytes of RAM per 4kB page to maintain the item cache, which is required to speed up retrieval of values. From this, you can estimate how much RAM NVS will require depending on the partition size.

How do I use all the flash memory on the chip? It could be native functions. If not using Heap (SPI only) it would be even better.

For lower-level access to Flash, you can use partition API. You can define a large partition in the partition table and then use esp_partition_erase and esp_partition_write functions to write data into it.
If you need to write to the same sector of the partition a large number of times, you can also choose to use the wear levelling API. The wear levelling library will take care of shuffling the sectors in Flash to prevent excessive number of erase operations for any given sector.

@igrr thanks for your quick response!
I will review these workarounds and try to implement them.
Most applications in embedded systems do not have reliable power.
I think these topics could be more explicit in the documentation. Perhaps for the more experienced this is obvious, but my considerations are:
1 - This could be put as a warning in the IDF compilation as "partition too big, maybe heap is not enough to start NVS type partition".
2 - Consider using an external memory, if you still want to risk the internal flash:
3 - Always record 2 times in flash to ensure that one of them does not corrupt during recording and later reading;
4 - A data partition takes up a lot of HEAP with large partitions, so it might be a solution to create several smaller partitions and use one at a time.
5 - Recording time is too high when creating many keys, it can be up to 1s with the NVS library when in high positions of flash memory.
It would be very interesting to put this in the documentation so that more people can know about it!
We can close this issue for me.
Thank you friends!

Thank you for your suggestions! We will write a guide to introduce different storage APIs and explain the cases where they are applicable. The points you made are very useful, we will try to include them.


Reverts from track2 to track1 and rollback changes in the authentication

@anpaz, @anjbur: In addition to reviewing the code (which you can mostly skip the _client folder that only contains the generated track1 client), I need help to make sure the service principal and interactive authentication are working fine, in a console app and in a Jupyter notebook.

/azp run


Categorize SystemDS issue types

https://github.com/apache/spark/blob/a60c36458d6335e6787edd4d13635227e86927f3/dev/create-release/releaseutils.py#L150-L165
# Maintain a mapping for translating issue types to contributions in the release notes
# This serves an additional function of warning the user against unknown issue types
# Note: This list is partially derived from this link:
# https://issues.apache.org/jira/plugins/servlet/project-config/SPARK/issuetypes
# Keep these in lower case
known_issue_types = {
    "bug": "bug fixes",
    "build": "build fixes",
    "dependency upgrade": "build fixes",
    "improvement": "improvements",
    "new feature": "new features",
    "documentation": "documentation",
    "test": "test",
    "task": "improvement",
    "sub-task": "improvement"
}

CONTRIBUTING.md#tags

https://confluence.atlassian.com/advancedroadmapscloud/discovering-advanced-roadmaps-998650908.html


Change property step to person-in-property and add content

Add placeholder person-location step
Change the steps file to follow a new order as per request of designer/user researcher etc
https://jira.digital.homeoffice.gov.uk/browse/LCS-267
https://jira.digital.homeoffice.gov.uk/browse/LCS-287

LGTM, is this waiting for the Address Lookup Behaviour?

Thanks, no this one isn't waiting for changes from address lookup behaviour


dashboard/app: custom tags for bugs

Proposed on mailing list as "Column for keywords?":
https://groups.google.com/d/msg/syzkaller/SD0DZkuIXBU/4Ozmm12ACAAJ
Filing this to not lose track of the proposal.

Another idea by Ido:
https://groups.google.com/d/msg/syzkaller-bugs/79fgOLAX5co/kZnbgbG5BQAJ
is to use tags to mark incorrect bisection and then show it on the bug page.
Tags could also capture reason for incorrect bisection.

FTR, Debian bug tracker is fully-email-based full-fledged bug tracking system:
https://www.debian.org/Bugs/
We could look at features for inspiration of what may be useful, and maybe reuse some actual command syntax (if we like it) to not invent something completely new:
https://www.debian.org/Bugs/server-control
https://www.debian.org/Bugs/server-request
https://www.debian.org/Bugs/Developer

Another data point: NetBSD people want
Consistency and relevance of the "fixed bugs" history, so that we can get
a clear view of the most common types of bugs and mistakes without being
drowned in one-off stuff. For statistical purposes.

https://groups.google.com/d/msg/syzkaller/WDiHEcKVZWc/9RhdKVJPGwAJ
This can only be decided on manually. Currently we have to mark a number of fixed bugs as invalid to get them off the fixed bugs page.

Another usecase would be to tag bugs that are not actionable right now. For KCSAN, a lot of bugs are quite low priority, and it would be useful to simply classify bugs based on priority, and e.g. hide bugs that are tagged as low priority.
The other usecase for KCSAN would be classifying the type of race (ops involved, etc.), which can be useful to understand clusters of races better, or alternatively use to prioritize better.


Build basic / API integration for Ticket Tailor

Need sign-in details from Ticketing team

Have set up API key with following setting

Need to include personal data in response to get postcode

Have created basic extract to raw location. Currently very little data in dashboard


Better code for Tone() tutorial [imported]

This is Issue 443 moved from a Google Code project.
Added by 2011-01-01T08:42:15.000Z by<EMAIL_ADDRESS>Please review that bug for more context and additional comments, but update this bug.
Original labels: Type-Enhancement, Priority-Medium, Component-Examples
Original description
Addition of rest notes in melody[] by specifying a note with value 0.
Better name for noteDurations[], they are divisions, not durations.
Real melody as example.
Automatic counting of melody size with sizeof().
See attached file.

@cmaglie The attached file does not exist anymore. Is this issue still relevant or can we archive it?

@cmaglie The attached file does not exist anymore. Is this issue still relevant or can we archive it?

@kengdahl it is available from the Wayback Machine:
https://web.archive.org/web/20160708175612/http://code.google.com/p/arduino/issues/detail?id=443
Here are the contents of the file:
/*
 Melody

 Plays a melody

 circuit:
 * 8-ohm speaker on digital pin 8

 created 21 Jan 2010, oct 2010
 by Tom Igoe

 Modified 31-12-2010 by Frans van der Markt

This example code is in the public domain.

 http://arduino.cc/en/Tutorial/Tone

 */
#include "pitches.h"

int tonePin = 8;

// notes in the melody:

int melody[] = { // Hertog Jan, 0 is rest
   NOTE_C5, NOTE_C5,  NOTE_F5,  NOTE_F5, NOTE_G5, NOTE_G5, NOTE_A5, NOTE_G5, NOTE_F5, 0,
   NOTE_G5, NOTE_A5,  NOTE_F5,  NOTE_G5, NOTE_G5, NOTE_A5, NOTE_F5, NOTE_G5, 0,
   NOTE_C5, NOTE_F5,  NOTE_F5,  NOTE_G5, NOTE_G5, NOTE_A5, NOTE_G5, NOTE_F5, 0,
   NOTE_A5, NOTE_AS5, NOTE_C6,  NOTE_A5, NOTE_G5, NOTE_F5, NOTE_G5, NOTE_F5
};

// note types: 1 = whole note, 2 = half note 4 = quarter note, 8 = eighth note, etc.:
int noteDiv[] = {
   4, 4, 2, 2, 2, 2, 1, 4, 4,   4,
   2, 2, 2, 2, 2, 2, 2, 2,      4,
   2, 2, 2, 2, 2, 1, 4, 4,      4,
   4, 4, 2, 2, 4, 4, 2, 1

};

int num = sizeof(melody)/sizeof(int);

void setup() {
  // iterate over the notes of the melody:
  for (int thisNote = 0; thisNote < num; thisNote++) {

    // to calculate the note duration, take one second
    // divided by the note type.
    //e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc.
    int noteDuration = 1000/noteDiv[thisNote];
    if (melody[thisNote] > 0) {
       tone(tonePin, melody[thisNote], noteDuration);
    }
    // to distinguish the notes, set a minimum time between them.
    // value 50 seems to work well:
    int pauseBetweenNotes = noteDuration + 50;
    delay(pauseBetweenNotes);
    noTone(tonePin);
  }
}

void loop() {
  // no need to repeat the melody.
}

@kengdahl it is available from the Wayback Machine:
https://web.archive.org/web/20160708175612/http://code.google.com/p/arduino/issues/detail?id=443
Here are the contents of the file:
/*
 Melody

 Plays a melody

 circuit:
 * 8-ohm speaker on digital pin 8

 created 21 Jan 2010, oct 2010
 by Tom Igoe

 Modified 31-12-2010 by Frans van der Markt

This example code is in the public domain.

 http://arduino.cc/en/Tutorial/Tone

 */
#include "pitches.h"

int tonePin = 8;

// notes in the melody:

int melody[] = { // Hertog Jan, 0 is rest
   NOTE_C5, NOTE_C5,  NOTE_F5,  NOTE_F5, NOTE_G5, NOTE_G5, NOTE_A5, NOTE_G5, NOTE_F5, 0,
   NOTE_G5, NOTE_A5,  NOTE_F5,  NOTE_G5, NOTE_G5, NOTE_A5, NOTE_F5, NOTE_G5, 0,
   NOTE_C5, NOTE_F5,  NOTE_F5,  NOTE_G5, NOTE_G5, NOTE_A5, NOTE_G5, NOTE_F5, 0,
   NOTE_A5, NOTE_AS5, NOTE_C6,  NOTE_A5, NOTE_G5, NOTE_F5, NOTE_G5, NOTE_F5
};

// note types: 1 = whole note, 2 = half note 4 = quarter note, 8 = eighth note, etc.:
int noteDiv[] = {
   4, 4, 2, 2, 2, 2, 1, 4, 4,   4,
   2, 2, 2, 2, 2, 2, 2, 2,      4,
   2, 2, 2, 2, 2, 1, 4, 4,      4,
   4, 4, 2, 2, 4, 4, 2, 1

};

int num = sizeof(melody)/sizeof(int);

void setup() {
  // iterate over the notes of the melody:
  for (int thisNote = 0; thisNote < num; thisNote++) {

    // to calculate the note duration, take one second
    // divided by the note type.
    //e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc.
    int noteDuration = 1000/noteDiv[thisNote];
    if (melody[thisNote] > 0) {
       tone(tonePin, melody[thisNote], noteDuration);
    }
    // to distinguish the notes, set a minimum time between them.
    // value 50 seems to work well:
    int pauseBetweenNotes = noteDuration + 50;
    delay(pauseBetweenNotes);
    noTone(tonePin);
  }
}

void loop() {
  // no need to repeat the melody.
}


Drop support for PHP 7.0 and require PHP >= 7.1

@oliverklee You can now use the new PhpStan version


Add description to README explaining how to use the library

          In this review I have focused only on documentation - please improve it, plus add some description to README explaining how one can install and then use the library.

Originally posted by @tkornuta-semiotic in https://github.com/semiotic-ai/timeline_aggregation_protocol/pull/3#pullrequestreview-1320802421

Let's just "port" the content from GIP once it will be ready/approved

Fixed in #217


Support for placement strategies.

Right now, all new windows are added on top of each other.  I want to be able to specify different ways in which windows can appear.  Useful when multiple windows need to be added quickly at once.

Cascading windows. Something like in here http://www.functionx.com/vcnet/howto/images/mdi2.gif where even if specify all new windows to be in center, they will be placed just a little bit off so user can see each one properly and no window gets "lost". Not sure yet if should throw exceptions if too many are added beyond the boundaries or just add them somewhere else.
Left to right. Each new window will be placed on the right edge of the previous one. Will wrap when rich edge of parent to next row. Again, not sure what to do with exceptions when canvas is filled. Probably stop allowing
Top to bottom. Similar as before but placed at the bottom edge of the previous one and wrap to the top of the second column.

Added method to align the MdiWindow to the following position:
CENTER,
CENTER_LEFT,
CENTER_RIGHT,
TOP_CENTER,
TOP_LEFT,
TOP_RIGHT,
BOTTOM_LEFT,
BOTTOM_RIGHT,
BOTTOM_CENTER

Thanks for adding these positions earlier. They are very useful.
I created a branch for testing out ideas. It is not meant to be merged with master until some details are polished. Its there right now so you can review and hopefully can give some ideas.  Adjusting current code to support some old MDI style I remember using was pretty easy.  But I am not sure what to do when user moves the last placed window before adding new ones again. For example, if you select "cascading" strategy and start placing windows in top left corner, they will cascade down diagonally as expected.  This prevents the windows from covering each other and hard to find.  But if move the most recent window, where should next one go? If it continues to be placed based on position of last one, its not "top left corner" anymore.  I thought of resetting the pointer to lastplacedwindow when any one of them move, but that will cause bad overlaps again.
I also thought of always moving diagonally as long as there are no other windows in the way, but seemed difficult to find if some coordinate is free and if not find next blank space. Did not seem worth the big effort.
Or maybe care about "top left corner" or whatever initial position only during first placement and after first one is done, always continue cascading after the most recent one. User would have to manually go back to making the position selection.
There is also a question of canvas size.  Right now exception is thrown when coordinate is picked outside of the boundaries.  This is natural if the user attempts to control exact coordinates. But it does not seem appropriate when automated strategy decides where to place things.  I am thinking to show a popup warning dialog letting user know that the canvas has been filled and disable the new button until its cleared.  This makes sense for tiling management but not cascading since cascading strategy is free to go anywhere.
Finally, there is some problem with canvas sizing.  When multiple windows are opened and they cascade down, status bar moves beyond the screen boundaries (problem I saw from the beginning if child window is too large for the parent). Again, do not know how best to handle that. Prevent further windows from opening, or have new windows start cascading from top left corner when bottom is reached, or something else.
Would appreciate your feedback :)

After playing with some MDI demos from Microsoft .Net, unless you have better ideas, I think I will implement this scenario:

So if you quickly make several windows at TOP_LEFT, or CENTER, or anything not on right edge, window will cascade down-left. When reach the bottom it will go back to where first one is placed and put new one 20px under it and continue going diagonally again. This way, they will all appear to all come from same origin at least.
For the problem of resetting the origin when some of the first windows are moved, I can implement a drag handler that watches for MDIWindow position changes within the first 150x150 or whatever looks best (maybe even percentage of the window size).  If the drag handlers notice that all windows have been dragged away from that space around the origin (therefore, there would be lots of white space available again), cascader will reset and start placing them again in the true TOP_LEFT etc. position.
In all demos I tried there is eventually a point where too many windows are a problem. So I will add an optional parameter that limits how many windows can be allowed to be added.
How well this will work in real application won't be known until I resume making my email manager after I get this component functional enough to use it. Hope it will look good !
Let me know any thoughts you have on this.

I haven't seen any recent commits. Is this project still live?

From my side, indefinite hiatus. Too many jobs in area where I live deal with moving towards browser away from desktop. But current state of web development is getting very annoying, which motivates me to move towards desktop UI instead and pick this project up again, at least for personal utilities to make by jobs easier.
If you can make comments on forthmentioned proposal, at least makes coding time I have more productive. A massive chunk of time for OSS goes into figuring out direction, how to make API usable by others. That writeup and investigation alone takes weeks, before making any commits. If I am to sit and do this, I will spend extra time questioning everything I do with no feedback. Having some comments on my ideas, even if I do not agree with them, gives higher chance of a new release.


Continued big cleanup

Split up build enricher into a GitEnricher and a CdEnricher in order to separarte online and offline operation
Harmonized names to add a 'f8-' prefix.

LGTM

[merge]


1.20 it's been a month

1.20 has been released and no updates. You have literally made another project 2 days back. So just update the gradle.properties file and test. If it works just update it please.

Sorry I didn't know you were at vacation. Even then PLEASE make it 1.20 I'm telling you you will get al lot of downloads the reason most of my friends are not installing this is because it's not 1.20

Sorry for late reply, I was on a vacation, and took an extra few days to deal with jet lag.
Alright with that said, yes I will be releasing 1.20-0.8.6 soon!
Thanks for checking in on the project!

ClickCrystals has updated.


Removed "Tip" about OfferType parameter

@MarkMcGeeAtAquent,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot

#sign-off

@MarkMcGeeAtAquent : Thanks for your contribution to the Azure documentation! The author, @mimig1, has been notified to review your proposed change.

#sign-off


Number of jobs fix

This PR fixes the number of jobs for the 1% campaign and contains a bug fix for the script that does the shuffling of the input files for the Flash output concatenation.

Hi @soleti,
You have proposed changes to files in these packages:

MDC2020
CampaignConfig

which require these tests: build.
@Mu2e/fnalbuild-users, @Mu2e/write have access to CI actions on main.
:hourglass: The following tests have been triggered for efafdb093366ae511350eda8b0907146a1ce368f: build  (Build queue has 1 jobs)
About FNALbuild. Code review on Mu2e/Offline.

:sunny: The tests passed at efafdb093366ae511350eda8b0907146a1ce368f.

Test
Result
Details

merge
:white_check_mark:
Merged efafdb093366ae511350eda8b0907146a1ce368f at 2ce945280bd58ec38c55ebb6ca134556bf14853a

build (prof)
:white_check_mark:
Log file. Build time: 14 min 06 sec

ceSimReco
:white_check_mark:
Log file.

g4test_03MT
:white_check_mark:
Log file.

transportOnly
:white_check_mark:
Log file.

POT
:white_check_mark:
Log file.

g4study
:white_check_mark:
Log file.

cosmicSimReco
:white_check_mark:
Log file.

cosmicOffSpill
:white_check_mark:
Log file.

ceSteps
:white_check_mark:
Log file.

ceDigi
:white_check_mark:
Log file.

muDauSteps
:white_check_mark:
Log file.

ceMix
:white_check_mark:
Log file.

rootOverlaps
:white_check_mark:
Log file.

g4surfaceCheck
:white_check_mark:
Log file.

FIXME, TODO
:white_check_mark:
TODO (0) FIXME (0) in 0 files

clang-tidy
:white_check_mark:
0 errors 0 warnings

N.B. These results were obtained from a build of this Pull Request at efafdb093366ae511350eda8b0907146a1ce368f after being merged into the base branch at 2ce945280bd58ec38c55ebb6ca134556bf14853a.
For more information, please check the job page here.
Build artifacts are deleted after 5 days. If this is not desired, select Keep this build forever on the job page.