Memory placed into .noinit section occupies space in flash/binary image (IDFGH-12505)

Answers checklist.

[X] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
[X] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

IDF version.
v5.2.1-188-ge759833c44
Operating System used.
Windows
How did you build your project?
Command line with idf.py
If you are using Windows, please specify command line type.
CMD
What is the expected behavior?
I expect that variables placed in .noinit RAM sections do not occupy space in the binary image
What is the actual behavior?
When a new variable is placed in .noinit RAM the size of the binary image is increased by the size of the variable
Steps to reproduce.

Build the hello_world example and run idf.py size. Observe the size of the sections.
Add a large data variable to hello_world_main.c and ensure it is linked eg.
uint8_t data[50*1024];
void app_main(void) { data[1] = 5; [...]
Build and observe the size of the sections - it is unchanged. This is expected - BSS does not occupy space in flash.
Change the type of the large data variable to .noinit
__NOINIT_ATTR uint8_t data[50*1024];
Build and observe the size of the sections - the total image size has increased by 50kB

Build or installation Logs.
C:\Espressif\development\hello_world>idf.py size-components
Executing action: size-components
Running ninja in directory C:\Espressif\development\hello_world\build
Executing "ninja all"...
[1/4] cmd.exe /C "cd /D C:\Espressif\development\hello_world\build\esp-idf\espto.../partition-table.bin C:/Espressif/development/hello_world/build/hello_world.bin"
hello_world.bin binary size 0x2b620 bytes. Smallest app partition is 0x100000 bytes. 0xd49e0 bytes (83%) free.
[1/1] cmd.exe /C "cd /D C:\Espressif\development\hello_world\build\bootloader\es...der 0x1000 C:/Espressif/development/hello_world/build/bootloader/bootloader.bin"
Bootloader binary size 0x6860 bytes. 0x7a0 bytes (7%) free.
Running ninja in directory C:\Espressif\development\hello_world\build
Executing "ninja size-components"...
Total sizes:
Used static DRAM:   62156 bytes ( 118580 remain, 34.4% used)
      .data size:    8716 bytes
      .bss  size:    2240 bytes
 DRAM other size:   51200 bytes
Used static IRAM:   51106 bytes (  79966 remain, 39.0% used)
      .text size:   50079 bytes
   .vectors size:    1027 bytes
Used Flash size :  117759 bytes
           .text:   79339 bytes
         .rodata:   38164 bytes
Total image size:  228781 bytes (.bin may be padded larger)
Per-archive contributions to ELF file:
            Archive File DRAM .data & 0.bss .noinit IRAM0 .text & 0.vectors ram_st_total Flash .text & .rodata & .appdesc flash_total
               libmain.a          0       0   51200           0           0        51200         304         0          0       51504
                  libc.a        260     316       0           0           0          576       42290      3194          0       45744
         libesp_system.a        480     283       0        3975           0         4738        7609     25999          0       38063
           libfreertos.a       3100     741       0       13778           0        17619         372       982          0       18232
     libesp_hw_support.a         80      80       0        5150           0         5310        6209       867          0       12306
                libhal.a       1995       8       0        5773           0         7776        2018        98          0        9884
               libheap.a          4       8       0        5328           0         5340        2957      1544          0        9833
          libspi_flash.a       1112      24       0        6904           0         8040         735       401          0        9152
                libvfs.a        308      72       0           0           0          380        6743       490          0        7541
             libesp_mm.a         12     124       0         812           0          948        2631       214          0        3669
             libxtensa.a       1044       0       0        1789         424         3257         119        36          0        3412
             libnewlib.a        152     200       0        1418           0         1770        1190        95          0        2855
             libdriver.a         56      12       0           0           0           68        2119       256          0        2431
          libesp_timer.a         32      24       0         936           0          992        1199        80          0        2247
 libbootloader_support.a          0       0       0        1793           0         1793          94        40          0        1927
         libesp_common.a          0       0       0           0           0            0          51      1742          0        1793
                libsoc.a          0       0       0          37           0           37           0      1444          0        1481
        libesp_ringbuf.a          0       0       0        1024           0         1024           0        97          0        1121
      libesp_partition.a          0       8       0           0           0            8         946        37          0         983
                liblog.a          8     272       0         229           0          509         546        21          0         804
             libxt_hal.a          0       0       0         443           0          443           0        32          0         475
     libesp_app_format.a          0      10       0           0           0           10         184         4        256         444
            libpthread.a          8      12       0           0           0           20         284         0          0         292
         libapp_update.a          0       4       0           0           0            4         147        30          0         177
                libgcc.a          0       0       0           0           0            0           0       160          0         160
            libesp_rom.a          0       0       0         102           0          102           0         0          0         102
                   (exe)          0       0       0           0           3            3           3        12          0          18
              libefuse.a          0       0       0           0           0            0          17         0          0          17
                libcxx.a          0       0       0           0           0            0           5         0          0           5
            libesp_phy.a          0       0       0           0           0            0           5         0          0           5
   libnvs_sec_provider.a          0       0       0           0           0            0           5         0          0           5
         libmbedcrypto.a          0       0       0           0           0            0           0         0          0           0
[0/1] cmd.exe /C "cd /D C:\Espressif\development\hello_world\build && C:\Espressif\tools\cmake\3.24.0\bin\cmake.exe -D IDF_SIZE_TOOL=C:/Espressif/python_env/idf5.2_py3.11_env/Scripts/python.exe;-m;esp_idf_size -D IDF_SIZE_MODE=--archives -D MAP_FILE=C:/Espressif/development/hello_world/build/hello_world.map -D OUTPUT_JSON= -P C:/Espressif/frameworks/esp-idf-v5.2.1/tools/cmake/run_size_tool.cmake"

More Information.
Variables placed in .noinit RAM (internal or external) should not have initialisation data occupying space in flash. This seems like a small thing until you have 1MB of noinit RAM for logs, you are running out of flash space and your OTA updates have blown out to 1MB larger than they should be.

@dvosully I think you are right that there is a bug here, but not the one you suspect.
If you just look at the output from idf.py size you should see that the total flash size actually do not increase. (section is correctly marked as NOLOAD in the linkerscript)
The issue seems to be in esp-idf size when we sum up the flash total. As we can see here we exclude bss but not noinit. We'll take a look and fix this.

Thanks for the rapid response @ESP-Marius, I see you are correct. When I look at the generated binary on disk its size is not increased.

Hello @dvosully ,
yes, I believe @ESP-Marius  is right and this  seems like a  bug in esp-idf-size. IIUC the problem is that .noinit section is accounted into total image size here. Thank you for this report, I will look into this and provide a fix. Note, as a workaround, you can try to set ESP_IDF_SIZE_NG=1 in the cmd shell.  With this env. var. set, the refactored esp-idf-size(>=1.0.0)  version should be used by default and it  actually considers only PROGBITS sections when counting the total image size if the elf file is available.
Thank you


Improve Visual Hierachy and Alignment on the Landing Page

I worked on the alignment and hierarchy of the landing page
Improved the Create an account button placement within the margin and the navigation content was center aligned.
Improved the arrow in the text button in was changed from a decimal to a whole number, because decimals are not advised in designs to ease the work of developers when implementing the design.
Improved The arrow underneath the text from decimal to a whole, and made to have consistent height and width.
Improved the user flow, there is meant to be a “wishlist icon” not “an add to cart icon” because this a P2P platform where there is no form of payment to be done on the app.
Improved the contents in the footer were changed to be properly aligned with the margin.
Improved the logo in the footer from “Martz” to “techmart”

Closes #123

Good to merge
Next time name your new branch according to the changes it implies, develop is the main branch name, don’t use it next time


add info about puppet-strings

This should not be merged before https://github.com/voxpupuli/modulesync_config/issues/397 is solved. We need to regenerate some of those docs. Not all are currently online/up2date

[ ] puppet-selinux
[ ] puppet-autofs
[ ] puppet-mumble
[ ] puppet-cassandra
[ ] puppet-rabbitmq
[ ] puppet-virtualbox
[ ] puppet-nginx
[ ] puppet-rabbitmq
[ ] puppet-lldpd

We need to do an initial publish of the docs before we merge this PR. Afterwards they will be autogenerated on each release as discussed in https://github.com/voxpupuli/modulesync_config/issues/397

I'm going to close this one since we don't publish docs anymore at github


[bug] footer: All grid-template-areas show gap regardless of existing

Primary links uses grid auto rows to account for 2 rows by default.  Side effect is that grid gap adds and extra row of spacing.
Current mitigation
rh-footer::part(links) {
    grid-template-rows: initial;
}

could we solve with <region>.isEmpty { display: none; }?

Unfortunitely not for this case, the region will have links in it.  We are using CSS Grid to layout the links into not only column based layouts but also row based layouts.  So this is the culprit:
[part="base"]:not(.isMobile) .links {
   display: grid;
   grid-template-columns: repeat(1fr, 25%);
   grid-template-rows: repeat(2, min-content auto);

This was working when we were adding margins / negative margins to separate the first row from the second row of primary links.  But now that we switched to using row-gap it's adding an extra gap to account for the fake second row specified by: grid-template-rows: repeat(2, min-content auto);.
My solution is to get rid of row-gap in this instance and switch to a quantity query in the lightdom.
[slot="links"]:is(h1, h2, h3, h4, h5):nth-of-type(n+5) {
  --_link-header-margin: calc(var(--rh-space-2xl, 32px) - var(--rh-space-lg, 16px));
}

I'm not overly excited about this solution as it will only work with lightdom css but it's a fix for now.  I'm wondering if there is a pattern for sub grid patterns or something?

let's run with it


HTTP client caching uses lot of memory, leading to 'Java heap space' error

We are running our Ballerina applications in memory-restricted (limit set to 350MB) containers. Recently, we discovered the HTTP client caching causes java.lang.OutOfMemoryError: Java heap space  for a response payload of around 25KB (Sample payload https://jsonplaceholder.typicode.com/todos). This is a simple service that calls another endpoint and sends the response to the caller. When we disable the client caching, the application works without any issue.
Is there anything we can do to tune the memory utilization when running in containers? Currently, we increased the heap memory percentage using JVM param MaxRAMPercentage.
Steps to reproduce

Create a test directory mkdir -p /tmp/bal-test && cd /tmp/bal-test

Add sample code
cat <<EOF > test.bal
import ballerina/http;

service on new http:Listener(8090) {
    resource function get todo(http:Caller caller, http:Request req) {
        http:Client httpEndpoint = new ("https://jsonplaceholder.typicode.com/todos");

        http:Response getResponse = <http:Response>checkpanic httpEndpoint->get("/");

        var jsonPayload = checkpanic getResponse.getJsonPayload();

        checkpanic caller->respond(jsonPayload);
    }
}
EOF

Run the application with limited memory docker run -v /tmp/bal-test/test.bal:/home/ballerina/test.bal -p8090:8090 --memory 350m ballerina/ballerina:swan-lake-preview8.1 ballerina run test.bal

Call the endpoint curl localhost:8090/todo -v

Additional Information

We are currently using Ballerina slp8.1

We can see the following logs inside the ballerina-internal.log
[2021-02-18 05:12:54,767] SEVERE {b7a.log.crash} - Java heap space
java.lang.OutOfMemoryError: Java heap space
        at java.base/java.util.concurrent.ConcurrentHashMap.initTable(ConcurrentHashMap.java:2293)
        at java.base/java.util.concurrent.ConcurrentHashMap.putVal(ConcurrentHashMap.java:1017)
        at java.base/java.util.concurrent.ConcurrentHashMap.put(ConcurrentHashMap.java:1006)
        at org.ballerinalang.stdlib.cache.nativeimpl.Cache.externPut(Cache.java:46)
        at ballerina.cache.2_0_4.cache.externPut(cache.bal:275)
        at ballerina.cache.2_0_4.$value$Cache.put(cache.bal:155)
        at ballerina.cache.2_0_4.$value$Cache.call(cache.bal)
        at ballerina.http.1_0_4.caching_http_cache.addEntry(caching_http_cache.bal:174)
        at ballerina.http.1_0_4.$value$HttpCache.put(caching_http_cache.bal:64)
        at ballerina.http.1_0_4.$value$HttpCache.call(caching_http_cache.bal)
        at ballerina.http.1_0_4.caching_http_caching_client.getCachedResponse(caching_http_caching_client.bal:371)
        at ballerina.http.1_0_4.$value$HttpCachingClient.get(caching_http_caching_client.bal:198)
        at ballerina.http.1_0_4.$value$HttpCachingClient.call(caching_http_caching_client.bal)
        at ballerina.http.1_0_4.$value$Client.get(http_client_endpoint.bal:191)
        at ballerina.http.1_0_4.$value$Client.call(http_client_endpoint.bal)
        at $value$$anonType$_0.$get$todo(test.bal:7)
        at $value$$anonType$_0.call(test.bal)
        at io.ballerina.runtime.api.Runtime.lambda$invokeMethodAsync$1(Runtime.java:95)
        at io.ballerina.runtime.api.Runtime$$Lambda$88/0x0000000100216840.apply(Unknown Source)
        at io.ballerina.runtime.internal.scheduling.SchedulerItem.execute(Scheduler.java:546)
        at io.ballerina.runtime.internal.scheduling.Scheduler.run(Scheduler.java:283)
        at io.ballerina.runtime.internal.scheduling.Scheduler.runSafely(Scheduler.java:251)
        at io.ballerina.runtime.internal.scheduling.Scheduler$$Lambda$24/0x00000001000ab040.run(Unknown Source)
        at java.base/java.lang.Thread.run(Thread.java:834)

JFR before the fix for sequential continuous request
BALLERINA_MAX_POOL_SIZE = 2
Xmx = 350m

JFR after the fix for sequential continuous request
BALLERINA_MAX_POOL_SIZE = 2
Xmx = 350m

Update on the testing :
Created two service by mocking both covid19 and world bank 2 APIs (getStatusByCountry() and getPopulationByCountry()) deployed in separate docker containers
Created passthrough service as same as the above tested code, and the only change is that the Client is created with mock URLs and deployed in docker.Java heap size is configured to -xmx=350M inside the docker.
covid19:Client covid19Client = check new (serviceUrl = "http://<IP_ADDRESS>:9090");
covid19:CovidCountry statusByCountry = check covid19Client->getStatusByCountry(country);

Source can be found here: https://github.com/chamil321/perf-resources/tree/main/swanlake_5_7_oom_issue_test
To confirm the setup, I initially ran passthrough service using swanlake-alpha5.7 version, then within a few mins the OOM occurred.

Then built the image using the swanlake-alpha5.8 version and used the following vegeta cmd to run for 2 hours with the rate of 30.
echo 'GET http://localhost:8090/stats/LK' | vegeta attack -rate 30 -duration 120m -output=attack5.bin

I used
    -Xlog:gc:GC_LOGS_FILE.txt \
    -Xlog:gc* \

As alternative to the aforementioned flags and got the logs as attached

GC_LOGS_FILE_5.txt
{
   "latencies":{
      "total":4303727912967,
      "mean":19924666,
      "50th":19618442,
      "90th":23177354,
      "95th":24633269,
      "99th":27356303,
      "max":1831278187,
      "min":12946688
   },
   "bytes_in":{
      "total":16416000,
      "mean":76
   },
   "bytes_out":{
      "total":0,
      "mean":0
   },
   "earliest":"2021-07-03T02:11:31.407415971+05:30",
   "latest":"2021-07-03T04:11:31.369112233+05:30",
   "end":"2021-07-03T04:11:31.386042132+05:30",
   "duration":7199961696262,
   "wait":16929899,
   "requests":216000,
   "rate":30.000159599757396,
   "throughput":30.00008905792688,
   "success":1,
   "status_codes":{
      "200":216000
   },
   "errors":[

   ]
}

After running the same test for 6 hours with the enabled  JFR
Summary
Requests      [total, rate, throughput]         648000, 30.00, 30.00
Duration      [total, attack, wait]             6h0m0s, 6h0m0s, 32.871ms
Latencies     [min, mean, 50, 90, 95, 99, max]  13.098ms, 24.789ms, 21.77ms, 35.197ms, 37.299ms, 42.652ms, 30.002s
Bytes In      [total, mean]                     49247685, 76.00
Bytes Out     [total, mean]                     0, 0.00
Success       [ratio]                           100.00%
Status Codes  [code:count]                      0:1  200:647994  500:5
Error Set:
500 Internal Server Error
Get "http://localhost:8090/stats/LK": context deadline exceeded (Client.Timeout exceeded while awaiting headers)

We see that 5 requests have failed with 500 responses

GC_LOGS_FILE_6.txt

Update with 0.5 cpu usage
Used flags - --cpus=".5" --memory="350m"
Ran the test for a few minutes with the passthrough service which built on swanlake-alpha5.7 version, then within a few mins the OOM error occurred.

Built the image using the swanlake-alpha5.8 version and ran for 2 hours with the rate of 30.
Requests      [total, rate, throughput]         216000, 30.00, 29.99
Duration      [total, attack, wait]             2h0m0s, 2h0m0s, 17.768ms
Latencies     [min, mean, 50, 90, 95, 99, max]  87.931µs, 52.896ms, 20.128ms, 31.672ms, 33.234ms, 56.961ms, 11.487s
Bytes In      [total, mean]                     16409144, 75.97
Bytes Out     [total, mean]                     0, 0.00
Success       [ratio]                           99.96%
Status Codes  [code:count]                      0:86  200:215907  500:7
Error Set:
Get "http://localhost:8090/stats/LK": dial tcp: lookup localhost: no such host
500 Internal Server Error

We see that 7 requests have failed with 500 responses which needs to be investigated

The root cause of this issue is due to a misconfiguration in the default cache capacity value. Here the capacity means the number of entries in the map. But it has been accidentally set thinking the capacity here refers to bytes, which led to a large number of entries which takes around 60 MB.
Therefore, when services are written in such a way that http clients are created and then thrown away for each request, it creates a lot of garbage which eventually leads to OOM.
The PR linked to this issue corrects the default cache capacity value.

We will add this as part of our long/running perf test scenarios which will avoid such incidents. https://github.com/ballerina-platform/ballerina-standard-library/issues/1681


UN-489: Update ArticlePage to utlise TopicalPageMixin

Ticket URL: https://national-archives.atlassian.net/browse/UN-489
About these changes
In this PR:

A data migration to copy the existing topic and time_period values over to the PageTopic and PageTimePeriod link tables, then removes the original fields.
Another migration to remove the old topic and time_period fields
Changes to get_datalayer_data() to include multiple topic and time period names joined by a semi-colon
Replaced the old templates/includes/related-ce-content.html include template with the one that was newly created for Record articles (reducing duplication)

How to check these changes
I guess the only thing I'm uncertain about here is the include/component change for the topic and time period links. Does this look okay on your machine?
Before assigning to reviewer, please make sure you have

[x] Checked things thoroughly before handing over to reviewer.
[x] Checked PR title starts with ticket number as per project conventions to help us keep track of changes.
[x] Ensured that PR includes only commits relevant to the ticket.
[x] Waited for all CI jobs to pass before requesting a review.
[x] Added/updated tests and documentation where relevant.

Hi Andy, I'm getting this error:

When trying to access the /admin page. I've deleted and rebuilt my containers etc, and it's doing the same thing. Do I need to run any extra commands or anything?

@jamesbiggs Have you run python manage.py migrate?

@ababic yeah, I ran it after building everything - but it gets run by fab pull-staging-data by default as well

@jamesbiggs Looks like you may have a different version of Wagtail installed or something. It doesn't look like anything to do with these changes specifically

@ababic I shouldn't do - I completely deleted all my containers/images/volumes and rebuilt it from your branch. I'll have a look :)

@ababic I'm running wagtail 4.1.2, same as this branch/PR. Just deleted and rebuilt again, getting the same outcome..


Added Book Allocation problem under Hacktoberfest

I am Anjali and i have written this content for the famous book allocation problem using binary search.
Problem;
An array containing n number of books is given . Each location in the array denotes the number of pages the books have.
such that ith book have arr[i] pages. Now the divide the books to k students such that "the MAXIMUM number of pages , allocated to a student is MINIMUM ".
Approach: binary search
Time Complexity: O(nlogn)
space Complexity:O(1)

@ritikbanger please review my PR

@Ritik-Banger-Biz4group  @ritikbanger please review my PR

@Ritik-Banger-Biz4group @ritikbanger
please review my pr


cri: diable snapshotter usage collector by default

Signed-off-by: Wei Fu<EMAIL_ADDRESS>
Ⅰ. Describe what this PR did
If there is config for pouchd, the default value for command flag won't
work. For this case, we should change Disable to Enable.
Ⅱ. Does this pull request fix one issue?

none
Ⅲ. Why don't you add test cases (unit test/integration test)? (你真的觉得不需要加测试吗？)
no need
Ⅳ. Describe how to verify it
manually check.
Ⅴ. Special notes for reviews

LGTM


sinks/influxdb: allow retention policy name to be set

Allow influxdb retention policy name to be configured with a new rpname URL option. This has the added benefit of allowing events and metrics to live in the same database but with different retention periods if desired.

This change is

I signed it!

cc @acobaugh

/ok-to-test

Heapster is now deprecated, so no new features or sinks will be added.  Please see https://github.com/kubernetes/heapster/blob/master/docs/deprecation.md#initial-deprecation-kubernetes-111 for more information.  I apologize for any in-progress sinks or features that will not be merged.


net::ERR_PROXY_CONNECTION_FAILED

/needsMoreInfo

when check for VS updates net::ERR_PROXY_CONNECTION_FAILED it  problem  started from npm
npm ERR! code ENOTFOUND
npm ERR! errno ENOTFOUND
npm ERR! network request to https://registry.npmjs.org/gatsby-cli failed, reason: getaddrinfo ENOTFOUND proxyhostname
npm ERR! network This is a problem related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network
npm ERR! network If you are behind a proxy, please make sure that the
npm ERR! network 'proxy' config is set properly.  See: 'npm help config'

Can you give reproducible steps (1... 2... 3...) that cause the issue? Where do you see this problem?


Dataset class to save matplotlib figures to images locally

Description
A dataset class to save matplotlib figures/plt objects to images locally, MatplotlibWriter. Currently I cannot think of a usecase for reading images into matplotlib, and as such, I've not included any support for load.
Context
In the process of making documentation of features, programmatically making plots of all features in a standardised way and embedding links in .md files has been a big timesaver.
Possible Implementation
# Copyright 2018-2019 QuantumBlack Visual Analytics Limited
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND
# NONINFRINGEMENT. IN NO EVENT WILL THE LICENSOR OR OTHER CONTRIBUTORS
# BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY, WHETHER IN AN
# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF, OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# The QuantumBlack Visual Analytics Limited (“QuantumBlack”) name and logo
# (either separately or in combination, “QuantumBlack Trademarks”) are
# trademarks of QuantumBlack. The License does not grant you any right or
# license to the QuantumBlack Trademarks. You may not use the QuantumBlack
# Trademarks or any confusingly similar mark as a trademark for your product,
#     or use the QuantumBlack Trademarks in any other manner that might cause
# confusion in the marketplace, including but not limited to in advertising,
# on websites, or on software.
#
# See the License for the specific language governing permissions and
# limitations under the License.

"""
``AbstractDataSet`` implementation to save matplotlib objects as image files.
"""

import os.path
from typing import Any, Dict, Optional

from kedro.io import AbstractDataSet, DataSetError, ExistsMixin

class MatplotlibWriter(AbstractDataSet, ExistsMixin):
    """
        ``MatplotlibWriter`` saves matplotlib objects as image files.

        Example:
        ::

            >>> import matplotlib.pyplot as plt
            >>> from kedro.contrib.io.matplotlib import MatplotlibWriter
            >>>
            >>> plt.plot([1,2,3],[4,5,6])
            >>>
            >>> single_plot_writer = MatplotlibWriter(filepath="docs/new_plot.png")
            >>> single_plot_writer.save(plt)
            >>>
            >>> plt.close()
            >>>
            >>> plots = dict()
            >>>
            >>> for colour in ['blue', 'green', 'red']:
            >>>     plots[colour] = plt.figure()
            >>>     plt.plot([1,2,3],[4,5,6], color=colour)
            >>>     plt.close()
            >>>
            >>> multi_plot_writer = MatplotlibWriter(filepath="docs/",
            >>>                                      save_args={'multiFile': True})
            >>> multi_plot_writer.save(plots)

    """

    def _describe(self) -> Dict[str, Any]:
        return dict(
            filepath=self._filepath,
            load_args=self._load_args,
            save_args=self._save_args,
        )

    def __init__(
        self,
        filepath: str,
        load_args: Optional[Dict[str, Any]] = None,
        save_args: Optional[Dict[str, Any]] = None,
    ) -> None:
        """Creates a new instance of ``MatplotlibWriter``.

        Args:
            filepath: path to a text file.
            load_args: Currently ignored as loading is not supported.
            save_args: multiFile: allows for multiple plot objects
                to be saved. Additional load arguments can be found at
                https://matplotlib.org/api/_as_gen/matplotlib.pyplot.savefig.html
        """
        default_save_args = {"multiFile": False}
        default_load_args = {}

        self._filepath = filepath
        self._load_args = self._handle_default_args(load_args, default_load_args)
        self._save_args = self._handle_default_args(save_args, default_save_args)
        self._mutlifile_mode = self._save_args.get("multiFile")
        self._save_args.pop("multiFile")

    @staticmethod
    def _handle_default_args(user_args: dict, default_args: dict) -> dict:
        return {**default_args, **user_args} if user_args else default_args

    def _load(self) -> str:
        raise DataSetError("Loading not supported for MatplotlibWriter")

    def _save(self, data) -> None:

        if self._mutlifile_mode:

            if not os.path.isdir(self._filepath):
                os.makedirs(self._filepath)

            if isinstance(data, list):
                for index, plot in enumerate(data):
                    plot.savefig(
                        os.path.join(self._filepath, str(index)), **self._save_args
                    )

            elif isinstance(data, dict):
                for plot_name, plot in data.items():
                    plot.savefig(
                        os.path.join(self._filepath, plot_name), **self._save_args
                    )

            else:
                plot_type = type(data)
                raise DataSetError(
                    (
                        "multiFile is True but data type "
                        "not dict or list. Rather, {}".format(plot_type)
                    )
                )

        else:
            data.savefig(self._filepath, **self._save_args)

    def _exists(self) -> bool:
        return os.path.isfile(self._filepath)

Possible Alternatives
Thought of writing from inside of pipelines, but this seemed hacky. Not including the multifile option seemed technically viable but in terms of the nature of implementation, it seems a required feature.
Checklist
Include labels so that we can categorise your issue:

[X] Add a "Component" label to the issue
[ ] Add a "Priority" label to the issue

@williamashfordQB Really minor comment--the following:
        self._mutlifile_mode = self._save_args.get("multiFile")
        self._save_args.pop("multiFile")

can be condensed to:
        self._mutlifile_mode = self._save_args.pop("multiFile")

True, I will raise the PR with this amendment

@williamashfordQB Sweet! I'll (hopefully) try it out myself this week. :D

Link to PR https://github.com/quantumblacklabs/kedro/pull/34

@williamashfordQB Could we add dpi or any savefig-kwargs to the _save method?

Merged in https://github.com/quantumblacklabs/kedro/pull/34


Parallel animation

The sync flag allows in and out animations to happen simultaneously.
With some opposite effects (left/right, up/down), it is easy to have a slider (horizontal or vertical).
Notes:

As this works better with display:block, this PR needs the previous PR preserving css display mode (at least for the demo)
"sync" is perhaps not the best choice for the flag name, as it is more "simultaneous", "parallel" or "concurrent". Unfortunately, I couldn't think of any better "short" name.
Since elements are position: absolute, the parent needs to have some height. I set the height to those of the first element, there is a lot of room to improve this.

Sorry I haven't had time to look into this. It's a relatively big change. I'll try to look into it in the coming days.


Musixmatch search skipping results?

It seems sometimes Musixmatch doesn't give the desired results. I've had this issue with David Bowie's Blackstar before, but as I was writing the issue for the first time, it appeared in the manual search, so I scrapped it. I've now ran into the same issue looking for Stevie Wonder's Isn't She Lovely. The plugin doesn't seem to see those lyrics, from Songs in the Key of Life (even when searching with no album name), but it sees this result from a different album.
Steps to (hopefully) reproduce

Open manual lyrics search for a track.
Search for "Isn't She Lovely" from the "Songs in the Key of Life" album by "Stevie Wonder".
Only result from Musixmatch appears to be the one by Nigel Kennedy.

Expected behavior
Open Lyrics correctly finds the correct result.
Versions

foobar2000 version: v2.0
OpenLyrics version: v1.6

Debug logs
WARN-OpenLyrics: Failed to download darklyrics.com page http://darklyrics.com/lyrics/steviewonder/songsinthekeyoflife.html: Object not found

Additional information
I've tried searching multiple times, haven't been able to get the right result.

Could you please add logs with the extra "debug logging" enabled? That should give a bit more info on why the musixmatch results were ignored. (I should really add this to the issue template):
Preferences -> OpenLyrics -> Display -> Debug logging enabled.
I can take a look, but if the correct lyric doesn't show up in manual search then there probably isn't much we can do.

Sorry, I didn't see the debug logging option. Here's the log:

Debug log
INFO-OpenLyrics: Searching for lyrics using custom parameters...
INFO-OpenLyrics: Querying for track ID from https://apic-desktop.musixmatch.com/ws/1.1/track.search?user_language=en&app_id=web-desktop-app-v1.0&subtitle_format=lrc&q_artist=Stevie%20Wonder&q_album=Songs%20in%20the%20Key%20of%20Life&q_track=Isn%27t%20She%20Lovely&usertoken=
INFO-OpenLyrics: Querying for song ID from https://music.163.com/api/search/get?s=Stevie%20Wonder+Isn%27t%20She%20Lovely&type=1&offset=0&sub=false&limit=5...
INFO-OpenLyrics: Querying for lyrics from https://www.azlyrics.com/lyrics/steviewonder/isntshelovely.html...
INFO-OpenLyrics: Querying for lyrics from http://darklyrics.com/lyrics/steviewonder/songsinthekeyoflife.html...
INFO-OpenLyrics: Searching for lyrics in tag: 'SYNCEDLYRICS'
INFO-OpenLyrics: Querying for song ID from https://c.y.qq.com/splcloud/fcgi-bin/smartbox_new.fcg?inCharset=utf-8&outCharset=utf-8&key=Stevie%20Wonder+Isn%27t%20She%20Lovely...
INFO-OpenLyrics: Save file name format 'Lyrics/%filename%' with directory class 'TrackFileDirectory' evaluated to 'file://D:\Music\Stevie Wonder - Songs In The Key Of Life (1976)\Lyrics\11. Isn't She Lovely'
INFO-OpenLyrics: Querying for lyrics in file://D:\Music\Stevie Wonder - Songs In The Key Of Life (1976)\Lyrics\11. Isn't She Lovely.lrc...
INFO-OpenLyrics: Querying for lyrics in file://D:\Music\Stevie Wonder - Songs In The Key Of Life (1976)\Lyrics\11. Isn't She Lovely.txt...
INFO-OpenLyrics: Found 1 lyrics in local files: file://D:\Music\Stevie Wonder - Songs In The Key Of Life (1976)\Lyrics\11. Isn't She Lovely
INFO-OpenLyrics: Lookup local-file file://D:\Music\Stevie Wonder - Songs In The Key Of Life (1976)\Lyrics\11. Isn't She Lovely.lrc for lyrics...
INFO-OpenLyrics: Successfully retrieved lyrics from file://D:\Music\Stevie Wonder - Songs In The Key Of Life (1976)\Lyrics\11. Isn't She Lovely.lrc
INFO-OpenLyrics: Loaded lyrics already form a valid UTF-8 sequence
INFO-OpenLyrics: Parsing LRC lyric text...
INFO-OpenLyrics: Expanding lyric text...
WARN-OpenLyrics: Failed to download darklyrics.com page http://darklyrics.com/lyrics/steviewonder/songsinthekeyoflife.html: Object not found
INFO-OpenLyrics: Successfully retrieved lyrics from https://www.azlyrics.com/lyrics/steviewonder/isntshelovely.html
INFO-OpenLyrics: Loaded lyrics already form a valid UTF-8 sequence
INFO-OpenLyrics: Parsing LRC lyric text...
INFO-OpenLyrics: Get Musixmatch lyrics lyrics from https://apic-desktop.musixmatch.com/ws/1.1/track.lyrics.get?user_language=en&app_id=web-desktop-app-v1.0&commontrack_id=1140285&usertoken=
INFO-OpenLyrics: Page https://genius.com/stevie-wonder-isnt-she-lovely-lyrics retrieved
INFO-OpenLyrics: Successfully retrieved lyrics from https://genius.com/stevie-wonder-isnt-she-lovely-lyrics
INFO-OpenLyrics: Loaded lyrics already form a valid UTF-8 sequence
INFO-OpenLyrics: Parsing LRC lyric text...
INFO-OpenLyrics: Loaded lyrics already form a valid UTF-8 sequence
INFO-OpenLyrics: Parsing LRC lyric text...
INFO-OpenLyrics: Get QQMusic lyrics for song ID 00311dwe43P0ak from http://c.y.qq.com/lyric/fcgi-bin/fcg_query_lyric_new.fcg?g_tk=5381&format=json&inCharset=utf-8&outCharset=utf-8&songmid=00311dwe43P0ak...
INFO-OpenLyrics: Get NetEase lyrics for song ID 21612684 from https://music.163.com/api/song/lyric?tv=-1&kv=-1&lv=-1&os=pc&id=21612684...
INFO-OpenLyrics: Loaded lyrics already form a valid UTF-8 sequence
INFO-OpenLyrics: Parsing LRC lyric text...
INFO-OpenLyrics: Found LRC offset: 0ms
INFO-OpenLyrics: Get QQMusic lyrics for song ID 001vP5XY3PMjoV from http://c.y.qq.com/lyric/fcgi-bin/fcg_query_lyric_new.fcg?g_tk=5381&format=json&inCharset=utf-8&outCharset=utf-8&songmid=001vP5XY3PMjoV...
INFO-OpenLyrics: Loaded lyrics already form a valid UTF-8 sequence
INFO-OpenLyrics: Parsing LRC lyric text...
INFO-OpenLyrics: Get NetEase lyrics for song ID 21612837 from https://music.163.com/api/song/lyric?tv=-1&kv=-1&lv=-1&os=pc&id=21612837...
INFO-OpenLyrics: Loaded lyrics already form a valid UTF-8 sequence
INFO-OpenLyrics: Parsing LRC lyric text...
INFO-OpenLyrics: Loaded lyrics already form a valid UTF-8 sequence
INFO-OpenLyrics: Parsing LRC lyric text...
INFO-OpenLyrics: Get NetEase lyrics for song ID 1936975 from https://music.163.com/api/song/lyric?tv=-1&kv=-1&lv=-1&os=pc&id=1936975...
INFO-OpenLyrics: Loaded lyrics already form a valid UTF-8 sequence
INFO-OpenLyrics: Parsing LRC lyric text...
INFO-OpenLyrics: Get NetEase lyrics for song ID 21612952 from https://music.163.com/api/song/lyric?tv=-1&kv=-1&lv=-1&os=pc&id=21612952...
INFO-OpenLyrics: Loaded lyrics already form a valid UTF-8 sequence
INFO-OpenLyrics: Parsing LRC lyric text...
INFO-OpenLyrics: Get NetEase lyrics for song ID 21612755 from https://music.163.com/api/song/lyric?tv=-1&kv=-1&lv=-1&os=pc&id=21612755...
INFO-OpenLyrics: Loaded lyrics already form a valid UTF-8 sequence
INFO-OpenLyrics: Parsing LRC lyric text...
INFO-OpenLyrics: Finished loading lyrics from a custom search

There appears to be an endpoint which is capable of retrieving more lyrics, at least in some cases. For example 100 gecs - xXXi_wud_nvrstøp_ÜXXx fails with the one openlyrics uses, but works with another one.
INFO-OpenLyrics: Querying for track ID from https://apic-desktop.musixmatch.com/ws/1.1/track.search?user_language=en&app_id=web-desktop-app-v1.0&subtitle_format=lrc&q_artist=100%20gecs&q_album=1000%20gecs&q_track=xXXi_wud_nvrst%C3%B8p_%C3%9CXXx&usertoken=
https://apic-desktop.musixmatch.com/ws/1.1/macro.subtitles.get?user_language=en&app_id=web-desktop-app-v1.0&subtitle_format=lrc&q_artist=100%20gecs&q_album=1000%20gecs&q_track=xXXi_wud_nvrst%C3%B8p_%C3%9CXXx&usertoken= - returns lyrics correctly


feat: read only for code editor

PR Type
What kind of change does this PR introduce?
[x] Feature

What is the new behavior?
This PR is added read-only on code editor.

Thanks for the PR! Can you describe the motivation behind the feature? I'm wondering what's the use case for a read-only mode since you can already achieve that by using just prism js.

Thank for quick responding. I was trying to make a documentation example using docz where I want to show the code only readable, not editable. Thanks in advance.

If you don't need your code to be editable, you can use prism directly:
<pre dangerouslySetInnerHTML={{ __html: highlight(code, languages.js) }} />`

Any reason that is not preferable for your use case? It'll save you few extra kbs if you don't need the features of this library.


feat(List): Support bulk action/multiple selection

Add a column of checkbox so user can do multiple selection, and call functions like 'Delete selection'

I am closing this because pr #95 has been merged.


[Bug]: Nested Params reference in queries and APIs is showing errors even though the functionality is working correctly

Is there an existing issue for this?

[X] I have searched the existing issues

Description
Use the binding {{this.params.something.something}} in any query, the input box is showing error with red outline even though the binding is working correctly. The developer thinks there is a bug in their code.
Steps To Reproduce

Public Sample App
No response
Environment
Production
Severity
High (Blocker to building or releasing)
Issue video log
No response
Version
1.27

I believe this is a general problem with linting. @ashit-rath will we fix this with packages?


Search and index FAQs

you can search just on FAQs, e.g. to find that pesky chrome problem

this is awesome @hexylena !


How to use GPG ?

Hi,
I have imported my public and private key into RainLoop.
When I receive an encrypted mail, it appears like this :  https://lut.im/LXnEz6aZ/DLzcIlu9
It doesn't ask me for my passphrase... How to decrypt the message ? (it's woking on other clients)

Hi, try to click a lock icon.

Then the message become red... What does it mean ?

It means that something went wrong :)

Oh thank you that is helping me a lot ^^

You may check an error description, just hover your mouse on a lock icon.

Yep it' says it can't decrypt the message. But I have the public key of my contact and my private key. I do not see where is the problem

Hello,
I have the same problem.
My configuration :
PHP Version 5.4.41-0+deb7u1
ownCloud 7.0.4
Apache/2.2.22
Debian 7
Thanxs

Same problem here. It was working fine before <IP_ADDRESS>3.
I have been trying to reload my keys but decryption is failing. Encryption is working fine.
Also, to import keys, only option is Copy & Paste. Could be handy to have an "Upload Key" button.

Check the latest version (<IP_ADDRESS>3)

It's working ! :D

Yes, it's working!
Thank you!!!


Add v1.1 capabilities validation.

Explain the meaning of test parameters.  Factor out methods for convenience and readability.
@antiagainst @AWoloszyn @dneto0 @Qining PTAL.

Discussed offline. It would be nice to add some high level comments to explain how the capability tests are structured to achieve their purposes. Now it takes quite some time to grasp by jumping in fresh or coming back after not touching this code for a while.

Feedback addressed.

Much clear to me now, thanks!
Just two more nits.

OK, reworded again.  PTAL.

Cool! +2.

Squashed and merged to master via 3732d6c.


chore: @typescript-eslint/parser

Could anyone please provide me with a hint on the failing ExportMap.get?

Coverage decreased (-0.5%) to 93.651% when pulling 163bbdcf7acbfa1bed000a9bd73dde453ebe00fd on mightyiam:@typescript-eslint/parser into af976b90d1cb7c25e4ba1c18a673da355e9ad717 on benmosher:master.

Would you mind if we support TypeScript only on ESLint =< 4 and Node.js =< 8 ?

FYI, I've added similar changes in:
https://github.com/benmosher/eslint-plugin-import/pull/1304

@mightyiam eslint 4+, that sounds fine; i'm not sure why it wouldn't work on node 4 and 6?

closing to defer to #1304, thanks for this though!


Added info message regarding adb reverse

In order to be able to run adb reverse you need Android 5.0

Thanks!


Group workshop updates

Howdy, thanks for the repo! We used this for a set of AI writing workshops here at the Center for Art & Media Karlsruhe (ZKM) during the AI on the Couch event back in November 2023: https://zkm.de/en/event/2023/11/ai-on-the-couch
The workshop was built around groups taking turn writing their own parts between "folding" so I made some changes to how the interaction works as well added command line options to control this. If no options are specified, the original behavior is preserved.
A overview changelog:

added Makefile and wrapper run script to make venv creation and usage easier
added command line options
added "unfold" mode where text stays hidden after folding, this was needed when passing between people so they could not see if ChatGPT had answered before they wrote
added option to insert writer tags: <human> or <ai> which can then be revealed after the text is revealed (they are always saved in output file)
added dummy mode for testing without OpenAI account
config and instructions can be overridden on command line, this make it easier for using a set of different configurations
added get text locale support with translations (currently EN and DE)
added key bindings for most actions
changed references from "Poem" to "Text" since instructions can be changed to produce free form / non-poetry output (ie. story)
updated attribution
various small UI improvements
a few bugfixes
probably a few other things I am forgetting after a couple months, skim the README and git history

For reference on the options and some of the new functionality added, here is the current -h/--help output:
% ./exquisite -h
usage: exquisite.py [-h] [--config CONFIGFILE] [--fontsize FONTSIZE] [-u] [-r] [--randomai RANDOM_AI] [-d] [-b] [-t] [--maxwords MAX_WORDS] [-s SLEEP] [-v] [INSTRUCT]

Exquisite Corpse, according to ChatGPT

positional arguments:
  INSTRUCT              custom ChatGPT instructions txt file

options:
  -h, --help            show this help message and exit
  --config CONFIGFILE   custom ChatGPT configuration json file
  --fontsize FONTSIZE   textbox font size in points, default: 12
  -u, --unfold          enable interim "unfolded" state to hide previous input, ie. when used within a group
  -r, --random          randomly choose between ai and human when folding
  --randomai RANDOM_AI  percent chance to get an ai response 0-100, default: 50
  -d, --dummyai         use dummy ai text instead of ChatGPT (saves money when testing)
  -b, --breaks          force line breaks between folds
  -t, --tags            prepend writer tag lines per fold: <ai> or <human>, adds Reveal Writers menu item
  --maxwords MAX_WORDS  max allowed words for prev line, useful for story text which may not use line breaks, default: 0 (allow all)
  -s SLEEP, --sleep SLEEP
                        delay to sleep after a human folds in seconds when --unfold is enabled, default: 0 (none)
  -v, --verbose         enable verbose printing

For our usage, we focused on simple story writing in German, so the instructions and config were modified and we used the following options in a run script:
./exsquisite --unfold --random --randomai 15 --breaks --tags --fontsize 16 --maxwords 15 --sleep 4 --config gpt_config.json instructions.txt

Overall, it worked pretty well and the response from participants was enthusiastic.

Here is a demo development video from November showing the fold/unfold behavior and writer tagging: https://zkm.cloud/s/6bm3XTQAxkP5Wpm

Oh, I forgot that we tested this only on macOS. The key bindings and menu accelerators should probably be checked on Windows / Linux.

Wow! I am amazingly flattered and pleased to see that you used the code for your AI writing workshops! I am really glad that someone has made use of (an enhanced) my project. Thank you for all your contributions.

Would there be recordings of some of the sessions online by chance? It sounds like it was a fascinating program.

Would there be recordings of some of the sessions online by chance? It sounds like it was a fascinating program. I wish I could have been there!

There are some photos but they are not organized yet. I can get back to you if/when they are available.


[Feature Request] Add javascript function showAll() to Accordion Menu

Accordion Menu currently has a hideAll() function, but there is no showAll() function.  This would be helpful when implementing Collapse All / Expand All options.
Current workaround:
Initially I tried to implement showAll() using the existing hideAll() function as inspiration and simply doing the opposite by calling slideDown() on all of the submenu items.  This appeared to work at first glance, but after more careful examination I realized that some of the attributes end up in an inconsistent state.  In particular, aria-hidden= is not always reset properly after calling slideDown().
I ended up with the following solution that calls up() and down() instead of slideUp() and slideDown().  I'm not 100% sure this is the best approach, but I haven't run into any issues so far:
        var menu = new Foundation.AccordionMenu($('#myMenu'));

        $("#expandAll").click(function () {
            menu.down(menu.$element.find('[data-submenu]'));
        });

        $("#collapseAll").click(function () {
            menu.up(menu.$element.find('[data-submenu]'));
        });

So, there are two takeaways:

It would be helpful to include a showAll() in the plugin.

The current hideAll() function calls slideUp() instead of up().  Someone may want to confirm that using slideUp() in this situation is not causing any issues that haven't been discovered yet since doing the reverse does seem to cause trouble.

@Owlbertz @crbranch with #8743 merged into 6.3, can we close this issue?

From my understanding, yes.

Looks good to me.  Thanks!


Could not download some video from tiktok

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I intentionally remove or skip any mandatory* field

Checklist

[X] I'm reporting that yt-dlp is broken on a supported site
[X] I've verified that I have updated yt-dlp to nightly or master (update instructions)
[X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
[X] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X] I've searched known issues and the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue
[X] I've read about sharing account credentials and I'm willing to share it if required

Region
Russia
Provide a description that is worded well enough to be understood
Youtube dl could not download some video from tiktok
For example https://www.tiktok.com/@russk0e_kin0/video/7346145736842595590
Provide verbose output that clearly demonstrates the problem

[X] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[X] If using API, add 'verbose': True to YoutubeDL params instead
[X] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
./yt-dlp -vU https://www.tiktok.com/@russk0e_kin0/video/7346145736842595590
[debug] Command-line config: ['-vU', 'https://www.tiktok.com/@russk0e_kin0/video/7346145736842595590']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>from yt-dlp/yt-dlp [615a84447] (zip)
[debug] Python 3.11.4 (CPython x86_64 64bit) - Linux-6.1.0-11-amd64-x86_64-with-glibc2.36 (OpenSSL 3.0.9 30 May 2023, glibc 2.36)
[debug] exe versions: ffmpeg 5.1.4-0 (setts), ffprobe 5.1.4-0
[debug] Optional libraries: brotli-None, certifi-2023.05.07, requests-2.29.0, sqlite3-3.41.2, urllib3-1.26.16
[debug] Proxy map: {}
[debug] Request Handlers: urllib
[debug] Loaded 1803 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version<EMAIL_ADDRESS>from yt-dlp/yt-dlp
yt-dlp is up to date<EMAIL_ADDRESS>from yt-dlp/yt-dlp)
[TikTok] Extracting URL: https://www.tiktok.com/@russk0e_kin0/video/7346145736842595590
[TikTok]<PHONE_NUMBER>842595590: Downloading video feed
WARNING: [TikTok] Expecting value in '': line 1 column 1 (char 0). Retrying... (attempt 1 of 4)
[TikTok]<PHONE_NUMBER>842595590: Downloading video feed
WARNING: [TikTok] Expecting value in '': line 1 column 1 (char 0). Retrying... (attempt 2 of 4)
[TikTok]<PHONE_NUMBER>842595590: Downloading video feed
WARNING: [TikTok] Expecting value in '': line 1 column 1 (char 0). Retrying... (attempt 3 of 4)
[TikTok]<PHONE_NUMBER>842595590: Downloading video feed
WARNING: [TikTok]<PHONE_NUMBER>842595590: Failed to parse JSON (caused by JSONDecodeError("Expecting value in '': line 1 column 1 (char 0)")); trying with webpage
[TikTok]<PHONE_NUMBER>842595590: Downloading webpage
[debug] [TikTok] Found universal data for rehydration
ERROR: [TikTok]<PHONE_NUMBER>842595590: Video not available, status code 10204; please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
  File "/opt/tg_bots/telegram_video_convert_bot/./yt-dlp/yt_dlp/extractor/common.py", line 732, in extract
    ie_result = self._real_extract(url)
                ^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/tg_bots/telegram_video_convert_bot/./yt-dlp/yt_dlp/extractor/tiktok.py", line 735, in _real_extract
    raise ExtractorError(f'Video not available, status code {status}', video_id=video_id)

update your package

yt-dlp --update-to nightly
see pinned issues
duplicate of #9441


Simplification build for arm64 python docker image

Is there a possibility to get a python package for arm64 python docker image?
I'm working on M1 Mac and all of our services are containerized.
To reproduce (on M1 Macs) you can use following commands:
docker run -it --entrypoint bash python
# then inside the container
pip install simplification

I get following output:
ERROR: Could not find a version that satisfies the requirement simplification (from versions: none)
ERROR: No matching distribution found for simplification

Last time I checked, there wasn't a suitable arm64 manylinux docker image available to build https://github.com/urschrei/rdp, which is a blocker, unfortunately.

Doesn't work for me. In the simple PyPI index link I can't see wheel for manylinux2014_aarch64

There hasn't been any progress on an aarch64 Linux wheel. Aarch64 is currently only supported on macOS.

Also interested in arm64 for linux. Looks like we may have this arch for simplification as easy as for mac. https://github.com/pypa/cibuildwheel/blob/61999a886bc05c7d09faaed78fd259f27849d259/docs/options.md with CIBW_ARCHS_LINUX arg


Search -"Hmm... it's not here" briefly appears after re-signing in via search URL

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

Version Number: v9.0.47-1
Reproducible in staging?: Y
Reproducible in production?: N
Email or phone of affected tester (no customers<EMAIL_ADDRESS>Issue reported by: Applause Internal Team
Action Performed:

Sign in to the staging environment of Expensify and navigate to the search page.
Copy the URL of the search page.
Go to Account Settings and sign out.
Paste the copied URL into the browser and press enter.
Sign in again and observe the behavior.

Expected Result:
After signing in, the search page should appear directly after a loading animation, without briefly displaying the "Hmm... it's not here" message.
Actual Result:
The "Hmm... it's not here" page is briefly displayed before the search page loads when signing in through the search URL.
Workaround:
Unknown
Platforms:

[ ] Android: Native
[x] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/4183e772-5ee2-4e69-a074-6ad28bd1bade

View all open jobs on GitHub

THis isn't a blocker, checking off the list.
FYI @luacmartins.

cc @adamgrzybowski @WojtekBoman it seems like we are redirected to https://staging.new.expensify.com/Search_Bottom_Tab?q=type%3Aexpense%20status%3Aall%20sortBy%3Adate%20sortOrder%3Adesc when this happens and we fail to parse the query:
SearchUtils.ts:548 Error when parsing SearchQuery: "undefined" TypeError: Cannot read properties of undefined (reading 'charAt')
    at et (searchParser.js:1097:16)
    at We (searchParser.js:473:10)
    at searchParser.js:1140:16
    at Object.qe (SearchUtils.ts:539:24)
    at da (SearchPageBottomTab.tsx:63:25)
    at fo (react-dom.production.min.js:160:137)
    at vA (react-dom.production.min.js:289:337)
    at Il (react-dom.production.min.js:279:389)
    at ml (react-dom.production.min.js:279:362)
    at al (react-dom.production.min.js:267:300)

Proposal
Please re-state the problem that we are trying to solve in this issue.
Make it load without "Hmm... it's not here" when re-singing in via search URL
What is the root cause of that problem?
The SCREENS.ts BOTTOM_TAB is redirecting to 'Search_Bottom_Tab' but what we pasted on the search url is only 'search'
What changes do you think we should make in order to solve the problem?
Edit the search BOTTOM_TAB on the SCREENS.ts from
BOTTOM_TAB: 'Search_Bottom_Tab',
to
BOTTOM_TAB: 'search',
What alternative solutions did you explore? (Optional)

Does this error still occur or are there any additional conditions to perform to reproduce this? I tested it locally and on staging and it seems to work well. A pop-up window appears in the video and at this point we can see the error, perhaps it's a precondition to reproduce that.
https://github.com/user-attachments/assets/34aa3eca-5170-4856-9598-025e72551cc5

@WojtekBoman not sure. I was able to reproduce once yesterday with the steps in the OP. Let me try again.

Hmm just tried to reproduce now and I also couldn't. @IuliiaHerets could you please re-test?

This has been labelled "Needs Reproduction". Follow the steps here: https://stackoverflowteams.com/c/expensify/questions/16989

Weird, shouldn't be overdue, it's weekly and was posted on 3 days ago, awaiting retest.

@luacmartins Issue is not reproducible now
https://github.com/user-attachments/assets/956b5cbf-07da-476c-9040-9f7603c44a7e

Cool, gonna close the issue since it's not reproducible anymore.


Add option for max daemons

Expected Behavior

Would you please add option for setting max daemon instances? For example in gradle.properties:
org.gradle.max-daemons=3

So when Gradle tries to start new daemon, it should check current active daemons and proceed to next step, which can be configured as well:

org.gradle.max-daemon-response: can be wait (wait for a free slot to be available) or break (stop the build).

Current Behavior

There's no option to control max daemons.
Context

It would help me a lot. My machine is not capable of handling 3+ daemons at a time.
Your Environment

Gradle 4.4.1.
Thanks,

This would still be a very useful feature. I have a few different projects that use different gradle versions (not every project using gradle wrapper uses the same version), and some of them use different JVM args for the gradle JVM (because it needs about 3GB heap to do a fresh gradle build, no way around that), and sometimes even using different JVM (different java version, and IDEs using gradle to import project structure).
After some time, memory usage tends to grow to about 800MB per daemon instance on average, and I have seen daemon count as high as 8 (!), while usually I have about 3 running daemons.
What I would expect it to do, is to start more daemons as needed, but the only keep one of them running in the background (last used one?). Instead, all of them are kept running because there is something different about them.
I don't care about the CPU usage, but the memory usage, combined with just about everything using insane amount of memory, means that even with 16GB of RAM in my system, I still do run out of it.
Unfortunately, even if this is implemented, I don't see how I would benefit from it, if it doesn't actually work in older gradle versions.

Indeed, the number of Gradle build up with if you work with multiple projects, many project version which require different Gralde arguments and so on. I really want that feature, especially I'd really like if the old unused daemon could be replaced by the new one, currently i need to manually call gradle --stop before switching the project to save system resources

I have an IntelliJ workspace with 41 Gradle projects added to it. When I launch a Gradle refresh, 41 daemons spin up, fill my RAM, and crash the system. I have 32 GB RAM installed. I think this issue is because I have set -Xmx=5g for my other project which needs that for a single build. So my workaround is to temporarily set -Xmx=150m, but it would be much more desirable for Gradle to implement a daemon limit, because then each project would build and become ready more quickly, in order, and without needing to temporarily set a Gradle JVM property or fork my Gradle properties, which have lots of other stuff in them.
$ gradle --status
   PID STATUS   INFO
 24735 BUSY     7.5.1
 24669 BUSY     7.5.1
 24727 BUSY     7.5.1
 24512 BUSY     7.5.1
 24806 BUSY     7.5.1
 24718 BUSY     7.5.1
 24703 BUSY     7.5.1
 24611 BUSY     7.5.1
 24587 BUSY     7.5.1
 24693 BUSY     7.5.1
 24709 BUSY     7.5.1
 24743 BUSY     7.5.1
 25065 BUSY     7.5.1
 24989 BUSY     7.5.1
 24775 BUSY     7.5.1
 25028 BUSY     7.5.1
 25085 BUSY     7.5.1
 24856 BUSY     7.5.1
 24914 BUSY     7.5.1
 24976 BUSY     7.5.1
 25169 BUSY     7.5.1
 24887 BUSY     7.5.1
 25046 BUSY     7.5.1
 24951 BUSY     7.5.1
 24967 BUSY     7.5.1
 25334 BUSY     7.5.1
 25368 BUSY     7.5.1
 25298 BUSY     7.5.1
 25192 BUSY     7.5.1
 25136 BUSY     7.5.1
 25114 BUSY     7.5.1
 25213 BUSY     7.5.1
 25242 BUSY     7.5.1
 25304 BUSY     7.5.1
 25476 BUSY     7.5.1
 25404 BUSY     7.5.1
 25504 BUSY     7.5.1
 25437 BUSY     7.5.1
 25540 BUSY     7.5.1
 25565 BUSY     7.5.1

Even worse, with so many daemons, it seems you get errors like this:
2: Task failed with an exception.
-----------
* What went wrong:
Timeout waiting to lock artifact cache (/home/duncan/.gradle/caches/modules-2). It is currently in use by another Gradle instance.
Owner PID: 24989
Our PID: 24669
Owner Operation:
Our operation:
Lock file:
...


Is JUMP uses any other protocol other than HTTP.

Hi
Is there an option provided by jump to use another protocol (UDT/UDP) in background/foreground rather than HTTP.

Hi Rajitha. The standard code was designed to use HTTP based on AFNetworking. You should implement your own network transporter in order to do that.

Hi
How Can I implement HTTP implementation with UDT using JUMP.
Can anyone provide sample code for do this?
I tried in many ways, But I am unable to implement, I have strucked in My project because of this.
Please anyone help me to get out of this issue.
Thanks


Incorrect Channel Indicated in ReferenceGrant Docs

What happened:
The ReferenceGrant doc states:

The ReferenceGrant resource described below is currently only included in the "Experimental" channel of Gateway API. For more information on release channels, refer to the related documentation.

However, ReferenecGrant is part of the standard channel:
diff -w config/crd/experimental/gateway.networking.k8s.io_referencegrants.yaml config/crd/standard/gateway.networking.k8s.io_referencegrants.yaml
7c7
<     gateway.networking.k8s.io/channel: experimental
---
>     gateway.networking.k8s.io/channel: standard

/assign
/tag docs


Update naming-a-file.md

corrected namespace to "http"

Thanks for your contribution @Josh-Curry.  I've merged your changes and they should be live soon.


slugification: handle unicode whitespace properly

This was tripping up on (letting through) nbsp's.

Where is _make_slug used with unicode input in submissions? I think the approach we agreed on with @samuelhwilliams was to generate slug from question.id, which should be ASCII only, and later we'll try to adopt the same thing in briefs.

I'm getting nbsp's coming through in section ids in @cathrooney's g-cloud-9-supplier-declaration frameworks branch. Possibly that's a copy-paste error, but it seemed simpler to just make it robust to this kind of thing than to go round lecturing people every time this happened...?


can be installed

Microsoft PowerToys version
0.63.0
Running as admin

[ ] Yes

Area(s) with issue?
Installer
Steps to reproduce

Unfortunately, setup failed
what can I do?
✔ Expected Behavior
No response
❌ Actual Behavior
log file is:
[3890:43EC][2022-10-14T15:03:52]i001: Burn v<IP_ADDRESS>26, Windows v10.0 (Build 18363: Service Pack 0), path: C:\Users\Lenovo\AppData\Local\Temp{4A803CC9-B287-4336-B485-9929ACEC5F38}.cr\PowerToysSetup-0.63.0-x64.exe
[3890:43EC][2022-10-14T15:03:52]i000: Initializing string variable 'InstallFolder' to value '[ProgramFiles64Folder]PowerToys'
[3890:43EC][2022-10-14T15:03:52]i000: Initializing string variable 'MsiLogFolder' to value '[LocalAppDataFolder]\Microsoft\PowerToys'
[3890:43EC][2022-10-14T15:03:52]i000: Initializing version variable 'DetectedPowerToysVersion' to value '<IP_ADDRESS>'
[3890:43EC][2022-10-14T15:03:52]i000: Initializing version variable 'TargetPowerToysVersion' to value '0.63.0'
[3890:43EC][2022-10-14T15:03:52]i000: Initializing version variable 'DetectedWindowsBuildNumber' to value '0'
[3890:43EC][2022-10-14T15:03:52]i009: Command Line: '-burn.clean.room=C:\Users\Lenovo\Downloads\PowerToysSetup-0.63.0-x64.exe -burn.filehandle.attached=760 -burn.filehandle.self=764'
[3890:43EC][2022-10-14T15:03:52]i000: Setting string variable 'WixBundleOriginalSource' to value 'C:\Users\Lenovo\Downloads\PowerToysSetup-0.63.0-x64.exe'
[3890:43EC][2022-10-14T15:03:52]i000: Setting string variable 'WixBundleOriginalSourceFolder' to value 'C:\Users\Lenovo\Downloads'
[3890:43EC][2022-10-14T15:03:52]i000: Setting string variable 'WixBundleLog' to value 'C:\Users\Lenovo\AppData\Local\Temp\powertoys-bootstrapper-msi-0.63.0_20221014150352.log'
[3890:43EC][2022-10-14T15:03:52]i000: Setting string variable 'WixBundleName' to value 'PowerToys (Preview) x64'
[3890:43EC][2022-10-14T15:03:52]i000: Setting string variable 'WixBundleManufacturer' to value 'Microsoft Corporation'
[3890:1E38][2022-10-14T15:03:52]i000: Setting numeric variable 'WixStdBALanguageId' to value 1033
[3890:1E38][2022-10-14T15:03:52]i000: Setting version variable 'WixBundleFileVersion' to value '<IP_ADDRESS>'
[3890:43EC][2022-10-14T15:03:52]i100: Detect begin, 4 packages
[3890:43EC][2022-10-14T15:03:52]i000: Product or related product not found: {42B84BF7-5FBF-473B-9C8B-049DC16F7708}
[3890:43EC][2022-10-14T15:03:52]i000: Setting version variable 'DetectedPowerToysVersion' to value '<IP_ADDRESS>'
[3890:43EC][2022-10-14T15:03:52]i000: Setting string variable 'DetectedWindowsBuildNumber' to value '18363'
[3890:43EC][2022-10-14T15:03:52]i000: File search: wfs7B27E752F96D79C837FD5CEA2F14D667, did not find path: C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\6.0.9\System.Xaml.dll
[3890:43EC][2022-10-14T15:03:52]i000: Setting numeric variable 'HasDotnet609' to value 0
[3890:43EC][2022-10-14T15:03:52]i000: Registry key not found. Key = 'Software\Microsoft\EdgeUpdate\Clients{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}'
[3890:43EC][2022-10-14T15:03:52]i000: Setting numeric variable 'HasWebView2PerUser' to value 0
[3890:43EC][2022-10-14T15:03:52]i000: Setting numeric variable 'HasWebView2PerMachine' to value 1
[3890:43EC][2022-10-14T15:03:52]i052: Condition 'HasDotnet609' evaluates to false.
[3890:43EC][2022-10-14T15:03:52]i052: Condition 'HasWebView2PerMachine OR HasWebView2PerUser' evaluates to true.
[3890:43EC][2022-10-14T15:03:52]i101: Detected package: TerminatePowerToys, state: Absent, cached: None
[3890:43EC][2022-10-14T15:03:52]i101: Detected package: DotnetRuntime6, state: Absent, cached: None
[3890:43EC][2022-10-14T15:03:52]i101: Detected package: WebView2, state: Present, cached: None
[3890:43EC][2022-10-14T15:03:52]i101: Detected package: PowerToysSetup_0.63.0_x64.msi, state: Absent, cached: None
[3890:43EC][2022-10-14T15:03:52]i052: Condition 'TargetPowerToysVersion >= DetectedPowerToysVersion OR WixBundleInstalled' evaluates to true.
[3890:43EC][2022-10-14T15:03:52]i052: Condition 'DetectedWindowsBuildNumber >= 19041 OR WixBundleInstalled' evaluates to false.
[3890:43EC][2022-10-14T15:03:52]e000: This application is only supported on Windows 10 version v2004 (build 19041) or higher.
[3890:43EC][2022-10-14T15:03:52]e000: Error 0x81f40001: Bundle condition evaluated to false: DetectedWindowsBuildNumber >= 19041 OR WixBundleInstalled
[3890:43EC][2022-10-14T15:03:52]i199: Detect complete, result: 0x0
Other Software
No response

Thank you for your report!
Here is the issue:
[3890:43EC][2022-10-14T15:03:52]e000: This application is only supported on Windows 10 version v2004 (build 19041) or higher.
[3890:43EC][2022-10-14T15:03:52]e000: Error 0x81f40001: Bundle condition evaluated to false: DetectedWindowsBuildNumber >= 19041 OR WixBundleInstalled
Please, update your Windows version to 19041 or higher and it should resolve the issue.

@crisovna what build of Windows are you on?  hit winkey and just type winver and you'll see a dialog pop up.

19041 is our min version currently. https://github.com/microsoft/PowerToys#requirements

Is there any reason for requiring v2004 and newer? I am currently running v1909 and have no plan on upgrading due to a software that I use does not work on v2004 and newer at all. Would also be appreciated if there is a way to work around or bypass this requirement.


Update entitlements for bte target

Why:
Currently we have the same entitlements file for both the BTE and GPS
targets in ios.
This commit:
Creates a new entitlements file for both versions of the app.

Outdated, will open a new pr


[Ray] basic rerun subtask for ray backend

What do these changes do?
This PR generally adds support of basic rerun subtask for ray backend, and is basically the subsequent work for #2198. The details are as follows.

Fix the hanging problem when recovering ray sub pool.
Raise a ServerClosed when sub pool dies, which is the same as the original backend.
Fix the wait_actor_pool_recovered logic.

Note: This PR changes back to one way channel for ray backend communication, which can have some side effects. If there are better ways to achieve the ServerClosed support, it's ok to change this.

Still some issue with codacy: https://app.codacy.com/gh/mars-project/mars/pullRequest?prid=7861162
And coverage is a bit low, try to increase it.

@qinxuye Thanks for helping. I'm working on improving it.

Will review ASAP, we plan to release v0.8.0a1 as well as v0.7.0 soon enough, hope this could be merged soon after that.

Thanks for your contribution, look forward to seeing more contributions from you.

Thanks for your contribution, look forward to seeing more contributions from you.


az storage blob generate-sas returns double url-encoded sas token

Describe the bug
sas token returned is incorrectly double url-encoded in azure-cli 2.0.62
To Reproduce
az storage blob generate-sas --container-name foo --name bar --account-name baz --expiry 2020-04-10T10:44:56Z --permissions r
returns
"se=2020-04-10T10%253A44%253A56Z%26sp=r%26sv=2018-03-28%26sr=b%26sig=[omitted]"
Expected behavior
Previously in azure-cli                         2.0.61 it returned
"se=2020-04-10T10%3A44%3A56Z&sp=r&sv=2018-03-28&sr=b&sig=[omitted]"
Environment summary
Confirmed broken installing 2.0.62 via curl -L https://aka.ms/InstallAzureCli | bash and apt-get install azure-cli on Ubuntu 16.04

Thanks for the quick fix.  In the interim, as a workaround, I've been manually url decoding the current token and it usually works.  Sometimes however, I've noticed if the token contains a / (forward slash) it is doubled as //.  Is that also fixed with this commit?  Or is that a separate issue?

Another potential workaround is to use the new --full-uri flag (if you need to full URI) as that does not double escape the token.


sensors/bh1749nuc: add support for the new sensor framework

Summary
sensors/bh1749nuc: add support for the new sensor framework
Impact
Testing
thingy53

@raiden00pl please fix the conflicts

@acassis done


have metrics on how much request we make to cloudflare API

We might want to use prometheus

Fixed via https://github.com/crowdsecurity/cs-cloudflare-bouncer/commit/0327cafb69a5e35488d9154739c829e2fab1de51


Points are shown in the margin area despite clip: true

https://observablehq.com/d/a166d3f519bc948c

you could also try clamp (a scale option ;-) )

You can also specify clip as a top-level plot option.

I got tricked by the AI Assistent … Thanks!


[IMPROVEMENT] Add s3 ObjectStore adoption to Longhorn telemetry

With the introduction of s3 ObjectStore native support in Longhorn, we would like to monitor the s3 ObjectStore adoption by adding it into Longhorn telemetry

This is not directly necessary as such - s3gw already includes telemetry itself (and can report whether it's hosted on LH, that could be passed in via the controller if needed?): https://github.com/aquarist-labs/s3gw/issues/202

Seeing how many s3gw instances are hosted on LH or integrated with LH is different from seeing how many LH instances have an object store and/or how many object stores there are per LH instance.
In order to do the latter, LH needs to report at least if, and preferably how many, object stores there are deployed.
It's also good for cross-checking our interpretation of the s3gw telemetry. E.g. an outlier installation of LH with many s3gw instances may skew our perception, especially while adoption is still low.
Certainly a nice-to-have.

Right, that would be a good metric to add to LH core, and then we can pass the telemetry on/off setting via the controller to the object store instances for more detailed reporting. Good point, thanks.

Let's revisit this later.


leadingDigits dbgen - busted

There's a fairly serious bug in the db generator. Some of the  elements have multiple  children. When nodes.text is called in text_or_nil they end up getting concatenated together, which obviously isn't correct. See Korea (KR) for an example. I don't have the full pull request but you can fix this by adding something like this to database_generator.rb:
      def leadingDigits(node)
        nodes = node.search("leadingDigits")
        case nodes.length
        when 0 # nop
        when 1
          nodes.text
        else
          nodes.map { |i| "(?:#{i.text)})" }.join("|")
        end
      end

Not sure if this is the fix you're looking for, but it's definitely an issue. I'm happy to put together a full pull request if there's interest in this fix.

I know this was a long time ago so you've probably found a way around using this gem - but if you are still using it can you write a failing test case so I can better understand the issue? I'll reopen if I have a way of reproducing this or you want to open a PR.


improve send_limit_order + bump version

If you run ariadne-codegen here (see bottom of README), does this client.py file get overwritten?

It does not


Consider tagging releases

Tank you so much for sharing your preset with us, it has really made my ThinkPad P14S Gen1 sound much better.
I use Nix, so I would really appreciate if you tag specific commits whenever you update. I should also get a notification on GitHub when you release an update/fix. Thank you!

Hey @spikespaz , I'm glad to hear that you like the preset!
I just pushed two tags, let me know if you need anything else.


Belarus not supported

According the everything, Belarus should be supported as of v0.0.10. But when I test the example provided in the object, invalid is returned.
It seems the issue is with the test page. It doesn't appear to be using the latest version of iban.js

Demo was just updated to use latest published version of the lib, thanks for reporting the issue.


renderExpandableRow callback re-renders every expanded row

The renderExpandableRow callback re-renders every expanded row instead of the row that was just expanded.
I would like to fetch data and populate the row that was just expanded, however the current functionality means I will have to fetch data for every row that is already expanded.
Is this expected functionality?

Tech
Version

MUI-datatables
2.3.0

React
16.8.6

It looks like this is the way this works for now, but not sure what you mean by fetching data. I expect the performance hit here to be relatively small compared to other performance issues. If you are fetching data on row expand, you can add logic to store those values and then check if they exist in the callback to avoid duplicate requests.

This is a huge problem for me.
I have 500 rows with 12 columns each and pagination turned off.
Expanding a row takes more than 5 seconds.

@mingfang That sounds like a long time, even with a double render. Care to recreate your circumstances in a codesandbox so that it can be looked into more thoroughly?


Some enhancement suggestions

First of all congrats and thank you for making such a beautiful theme. I am quite critical of everything and rarely praise but this is really good theme both in terms of looks and basic features(SEO) that are generally ignored by other themes.
Please list this theme in astro website, i accidentally discovered it.
Here are some enhancement suggestions to make it perfect for small business

Add support for internationalization i18n is already supported in latest astro. This is not only for enabling this theme for people wanting to use it in other languages but also because adding internationalization at a later stage becomes difficult if support is not there.
Add support to share blog articles on social media. This helps readers to share the content on other channels.
Add support for toc on the side in blog article. For long articles navigating becomes difficult if toc is not present.
Add support for docs. Docs and blog articles have slightly different navigation and features(search) and almost every saas requires  docs page. Integrating it to this theme would make it one stop solution for all the things home/blog/docs.

@newbeelearn, thank you for your feedback and suggestions for enhancing the theme!
Your suggestions are fantastic and will surely contribute to making the theme even better. I'll definitely consider them and look into updating the template accordingly.
Regarding the listing, the template was recently added to the  Astro Themes website.
Thanks again for your input!

I just found this theme by chance a couple days ago, and I agree that it is quite impressive. Great work and thanks for sharing! 🌟

I thought it'd be good to summarize the progress after a week:

Some new components were added to the theme: social share button, bookmark functionality, post feedback block, and a neat icon component.
Starlight now serves as a docs theme, complete with i18n support and some other tweaks.
Big thanks to @newbeelearn for the PRs - we've had a solid refactoring session that made components way more reusable and tidied up the architecture a bit.
On the roadmap: integrating i18n with the main site, adding toc for posts, and more refactoring.

FYI, i wrote an article on why i chose this theme
article
I was thinking if we should put Who is using the theme somewhere in readme and link to sites using this theme. It will act as social proof.

Nice article! And yes, we can include it once we have enough sites to showcase.


Row select bug

I think I've found a peculiar bug. I need to enable and disable row selection dynamically. I wasn't able to do this in any way so I opened an issue.
This is the code:
`const selectRowProp = {
mode: "checkbox",
onSelect: this.handleSelect,
onSelectAll: this.handleSelectAll,

selected: this.props.selectedSchemas

};`
<BootstrapTable data={schemas} search condensed striped hover insertRow deleteRow 	selectRow={this.props.filter ? selectRowProp : {}} 	options={options} cellEdit={cellEditProp}>

You can see the exception that is thrown when I disable the filter checkbox which should remove row selection checkboxes in the react-bootstrap-table. I presume this is due to some internal state in the react-bootstrap-table

I also tried:
`const selectRowProp = {
mode: "none",
onSelect: this.handleSelect,
onSelectAll: this.handleSelectAll,
selected: this.props.selectedSchemas
};`
<BootstrapTable data={schemas} search condensed striped hover insertRow deleteRow selectRow={selectRowProp} options={options} cellEdit={cellEditProp}>

@marin101, sorry for lately reply due to busy job...  from your behavior you mentioned above, is that you want to select/de-select all of the rows? if yes, could you please show me how you did it? thanks

@AllenFang, this is the desired behaviour :
Enabled rows selection (you can see the checkboxes on the left)

Disabled rows selection (no checkboxes on the left)

My use case demands that I have two modes of operation: when I have row selection enabled and when there is no point in selecting rows. Change between the two modes of operation occurrs dynamically when user selects/deselects the filter option listed in the table header.
I managed to circumvent this bug(if it is a bug) by conditionally rendering two different tables(one has selectRow prop, the other one doesn't) for now.

@marin101, sorry for reply late, I'll check this out, I guess this maybe a bug, but need some time to process it, I'm pretty busy, sorry guy.

Fixed on v3.1.4, please have a look, thanks


Json array result isn't mapped from $http using "tns-core-modules": "^1.6.0"

Should this be a new issue? I'm not sure how visible the closed issues are ... It is the same problem as the last one.
I can still see the result as a string, but the ".Json()" command is still an object that is not an array.
previous issue 41
response
            .map(response => response.json())
            .subscribe((items : Array<IProvider>) => {
                this.list = items; //<- items is a object ?

                // items.forEach((item) => {
                //     this.logger.Notify("item");
                //     this.logger.Notify(item.Name);
                // });

                 this.logger.Notify("items available:" + items.length);
            },(error) => {
                this.logger.Error("Could not map items");
                this.logger.Error(error);
            });

Thanks, Matt

I just tested a similar example and change the sample-ng-http code to return a JSON array from the API, and it works fine. The code looks the same as above, and I get a real array.
https://github.com/NativeScript/sample-ng-http/blob/master/mobile/app/main-page.ts#L37-L40
Could it be that your API returns the array wrapped in some intermediate object?

Could it be because I call call .Text() before .Json() ?
That would be the only significant difference left. I do not have cli setup on this computer at the competition ... but if I find some more free time then I could probably test it.
Component:

ask the service for an observable

Service ...

get the response
add a subscription for logging only
pass back the observable to the component to subscribe to use the data

Component

add a subscription mapping the json
add a subscription to check text and json (debug reasons)...

Fiddler:
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Length: 230
Content-Type: application/json; charset=utf-8
Expires: -1
Server: Microsoft-IIS/8.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Set-Cookie: ARRAffinity=170e38c71d59efb5dfca6f0eaa2fd85ce28c52449f5051b1f95fe4abb6901d8a;Path=/;Domain=breakouttrampoliningwebservices.azurewebsites.net
Date: Sat, 20 Feb 2016 11:30:06 GMT

[{"Id":1,"Name":"BUCS","Logo":"content/logos/bucs-logo.jpg","CompetitionCount":3},{"Id":2,"Name":"SUTL","Logo":"content/logos/sutl.jpg","CompetitionCount":8},{"Id":1008,"Name":"South East Region","Logo":null,"CompetitionCount":4}]

I've updated my fork: https://github.com/matt4446/sample-ng-http. The Web version works but mobile does not. I tried http & https to see if there was a difference but the mobile version still failed.
Android - Mobile (Genymotion): - Failed
Usual problem: undefined.
Web - Chrome: - Success.
I've updated the web version to include 'ngFor', which worked correctly. Listing the Name property in each item in the array.

h:\test\sample-ng-http\sample-ng-http\mobile>tns run android
Executing before-prepare hook from h:\test\sample-ng-http\sample-ng-http\mobile\hooks\before-prepare\nativescript-dev-typescript.js
Found peer TypeScript 1.8.2
node_modules/angular2/src/facade/promise.d.ts(1,10): error TS2661: Cannot re-export name that is not defined in the module.
Project successfully prepared

:config phase:  createDefaultIncludeFiles
...
removed
...
BUILD SUCCESSFUL

Total time: 9.466 secs
Project successfully built
Successfully deployed on device with identifier '<IP_ADDRESS>:5555'.
JS: Page loaded
JS: BOOTSTRAPPING...
JS: DEPRECATION WARNING: 'enqueueTask' is no longer supported and will be removed in next major release. Use addTask/addRepeatingTask/addMicroTask
JS: HTTP: [object Object]
JS: Angular 2 is running in the development mode. Call enableProdMode() to enable the production mode.
JS: ANGULAR BOOTSTRAP DONE.
JS: items: [{"Id":1,"Name":"BUCS","Logo":"content/logos/bucs-logo.jpg","CompetitionCount":4},{"Id":2,"Name":"SUTL","Logo":"content/logos/sutl.jpg","CompetitionCount":8},{"Id":1008,"Name":"South East Region","Logo":null,"CompetitionCount":4}]
JS: DEPRECATION WARNING: 'dequeueTask' is no longer supported and will be removed in next major release. Use removeTask/removeRepeatingTask/removeMicroTask
JS: EXCEPTION: Error trying to diff '[{"Id":1,"Name":"BUCS","Logo":"content/logos/bucs-logo.jpg","CompetitionCount":4},{"Id":2,"Name":"SUTL","Logo":"content/logos/sutl.jpg","CompetitionCount":8},{"Id":1008,"Name":"South East Region","Logo":null,"CompetitionCount":4}]' in [people in MainPage@4:11]
JS: ORIGINAL EXCEPTION: Error trying to diff '[{"Id":1,"Name":"BUCS","Logo":"content/logos/bucs-logo.jpg","CompetitionCount":4},{"Id":2,"Name":"SUTL","Logo":"content/logos/sutl.jpg","CompetitionCount":8},{"Id":1008,"Name":"South East Region","Logo":null,"CompetitionCount":4}]'
JS: ORIGINAL STACKTRACE:
JS: Error: Error trying to diff '[{"Id":1,"Name":"BUCS","Logo":"content/logos/bucs-logo.jpg","CompetitionCount":4},{"Id":2,"Name":"SUTL","Logo":"content/logos/sutl.jpg","CompetitionCount":8},{"Id":1008,"Name":"South East Region","Logo":null,"CompetitionCount":4}]'
JS:     at new BaseException (/data/data/org.nativescript.helloworldng/files/app/tns_modules/angular2/src/facade/exceptions.js:15:23)
JS:     at DefaultIterableDiffer.diff (/data/data/org.nativescript.helloworldng/files/app/tns_modules/angular2/src/core/change_detection/differs/default_iterable_differ.js:102:19)
JS:     at NgFor.ngDoCheck (/data/data/org.nativescript.helloworldng/files/app/tns_modules/angular2/src/common/directives/ng_for.js:94:40)
JS:     at AbstractChangeDetector.ChangeDetector_MainPage_0.detectChangesInRecordsInternal (viewFactory_MainPage:119:48)
JS:     at AbstractChangeDetector.detectChangesInRecords (/data/data/org.nativescript.helloworldng/files/app/tns_modules/angular2/src/core/change_detection/abstract_change_detector.js:105:18)
JS:     at AbstractChangeDetector.runDetectChanges (/data/data/org.nativescript.helloworldng/files/app/tns_modules/angular2/src/core/change_detection/abstract_change_detector.js:82:14)
JS:     at AbstractChangeDetector._detectChangesInViewChildren (/data/data/org.nativescript.helloworldng/files/app/tns_modules/angular2/src/core/change_detection/abstract_change_detector.js:189:18)
JS:     at AbstractChangeDetector.runDetectChanges (/data/data/org.nativescript.helloworldng/files/app/tns_modules/angular2/src/core/change_detection/abstract_change_detector.js:86:14)
JS:     at AbstractChangeDetector.detectChanges (/data/data/org.nativescript.helloworldng/files/app/tns_modules/angular2/src/core/change_detection/abstract_change_detector.js:71:73)
JS:     at ChangeDetectorRef_.detectChanges (/data/data/org.nativescript.helloworldng/files/app/tns_modules/angular2/src/core/change_detection/change_detector_ref.js:21:73)
JS: ERROR CONTEXT:
JS: [object Object]

usual undefined output.

TJ ran into the same problem with Android by the looks of it. The code below works on mobile. I could obviously do without the JSON.parse(items) line.
public ngOnInit() {
        this.http.get('http://breakouttrampoliningwebservices.azurewebsites.net/Api/Providers/List/Enabled')
            .map(response => {
                return response.json()
            })
            .subscribe((items: any) => {
                console.log('items: ' + items);
                items = JSON.parse(items)
                this.people = items;
            }, error => console.dump(error))
    }

Hey @matt4446
We have released a hot-fix for a similar issue in the NativeScript modules with this PR. It is already included in the current (0.0.33) of the nativescript-angular package. Can you try to update to this version to see if the problem is healed.

I have a correct length for the array ... I shall take a look a closer look after work, but I believe it is fixed now. Thanks.


SetKeepAlive and Timeout

I left those values to default, but it isn't working.
A player could have driver problems which would probably lead to the client crashing. but the server doesn't detect this and shows to all players he is still online.

You'll need to implement some sort of every couple seconds ping pong.


My account has been suspended

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Smartphone (please complete the following information):

Device: [e.g. Google Pixel]
OS: [e.g. Android 11]
Version [e.g. 1.0.7]

Additional context
Add any other context about the problem here.

+1 Also had my account suspended

+1 Also had my account suspended

+1 Also had my account suspended

You were warned about this when you created your account through the app. This is not an issue with the app.

You were warned about this when you created your account through the app. This is not an issue with the app.
This is also not because it is an android edition it has nothing to do with that.

 IPhone this will happen. But this has nothing to do with programming and has nothing to do with Android phones


Replaced RelativeItem and ConstantItem with RelativeColumn and ConstantColumn in table section

Is the note "Important: this example uses extensions methods presented in extending-dsl" still relevant in the column definitions section?

Thank you for noticing this issue 😁 Updating documentation with find/replace tools does not always work that great...

Is the note "Important: this example uses extensions methods presented in extending-dsl" still relevant in the column definitions section?

Yes, I think so. Invocations ValueCell and LabelCell come from this DSL example. Any thoughts?

No I have no thoughts for ValueCell and LabelCell. I've been using QuestPDF for 2 days so I'm not familiar with the project yet. So far I really like it.

Good 😁 Once you know the library by heart, it is hard to present everything clearly in the documentation. So, if you have any suggestions, please feel free to share your feedback. Have a great day and once again, thank you for this fix!


Break out cloud info to separate topic for filtering.

Part of #9033.

This change is

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/fdb88cb0dd25a2efd0f7fdcfa46c3cfab5c13d5b/
Edited pages:

v21.1/bulk-delete-data.md
v21.1/connect-to-the-database-cockroachcloud.md
v21.1/connect-to-the-database.md
v21.1/connection-parameters.md
v21.1/connection-pooling.md
v21.1/delete.md
v21.1/developer-guide-overview.md
v21.1/force-index-selection.md
v21.1/hash-sharded-indexes.md
v21.1/indexes.md
v21.1/install-client-drivers.md
v21.1/limit-offset.md
v21.1/pagination.md
v21.1/query-order.md
v21.1/schema-design-database.md
v21.1/schema-design-indexes.md
v21.1/schema-design-overview.md
v21.1/schema-design-schema.md
v21.1/schema-design-table.md
v21.1/schema-update-modify-objects.md
v21.1/schema-update-remove-objects.md
v21.1/secure-a-cluster.md
v21.1/selection-queries.md
v21.1/start-a-local-cluster.md

@ericharmeling I had to merge in the latest from master to get the correct CC params include, and that's why this is a gigantic PR. The only essential files are:
v21.1/connect-to-the-database-cockroachcloud.md
v21.1/connect-to-the-database.md
The good news is that it merged cleanly....

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/ddb685b44e816865a5e2ed3ae198da0e7be1f5ca/
Edited pages:

v21.1/bulk-delete-data.md
v21.1/connect-to-the-database-cockroachcloud.md
v21.1/connect-to-the-database.md
v21.1/connection-parameters.md
v21.1/connection-pooling.md
v21.1/delete.md
v21.1/developer-guide-overview.md
v21.1/force-index-selection.md
v21.1/hash-sharded-indexes.md
v21.1/indexes.md
v21.1/install-client-drivers.md
v21.1/limit-offset.md
v21.1/pagination.md
v21.1/query-order.md
v21.1/schema-design-database.md
v21.1/schema-design-indexes.md
v21.1/schema-design-overview.md
v21.1/schema-design-schema.md
v21.1/schema-design-table.md
v21.1/schema-update-modify-objects.md
v21.1/schema-update-remove-objects.md
v21.1/secure-a-cluster.md
v21.1/selection-queries.md
v21.1/start-a-local-cluster.md

The good news is that it merged cleanly....

I merged from master into dev-guide-v2 just before the redesign work went in - so I think a lot of the new stuff is from the redesign work.
In any case, that's amazing there were no conflicts.

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/fb2856c78a8e7f04b79d8e70f2277a6a0856c4ef/
Edited pages:

v21.1/bulk-delete-data.md
v21.1/connect-to-the-database-cockroachcloud.md
v21.1/connect-to-the-database.md
v21.1/connection-parameters.md
v21.1/connection-pooling.md
v21.1/delete.md
v21.1/developer-guide-overview.md
v21.1/force-index-selection.md
v21.1/hash-sharded-indexes.md
v21.1/indexes.md
v21.1/install-client-drivers.md
v21.1/limit-offset.md
v21.1/pagination.md
v21.1/query-order.md
v21.1/schema-design-database.md
v21.1/schema-design-indexes.md
v21.1/schema-design-overview.md
v21.1/schema-design-schema.md
v21.1/schema-design-table.md
v21.1/schema-update-modify-objects.md
v21.1/schema-update-remove-objects.md
v21.1/secure-a-cluster.md
v21.1/selection-queries.md
v21.1/start-a-local-cluster.md


[FLINK-23097][tests] Harden test_queryable_state_restart_tm.sh

This commit hardens the test_queryable_state_restart_tm.sh e2e test by only writing the
count value of state entries on notifyCheckpointComplete. Before we have written out uncommitted
information out that led to test failures.

Thanks for the review @zentol. Merging this PR now.


Added support for pretty printing predicate

I have a few json formats that contain a lot of primitive data arrays, and the current pretty printing features would either add too many or too few newlines to make them human-readable. To take the example from the unit test, I want this:
{
  "foo": [1,2,3]
}

instead of the 'too compressed' {"foo":[1,2,3]} or the 'too spacious'
{
  "foo": [
    1,
    2,
    3]
}

This PR proposes injecting a custom predicate into dump to let the user decide when to pretty print with indentation and when not to. This way, the user can define predicates based on the contents (e.g. arrays with all primitive types, or objects with just one key or anything beyond indentation level 6).
I'm pretty happy with the changes to serializer, except for the name dump_configured, but I'm not too happy with the quasi duplication in basic_json, but I did not want to resort to SFINEA to select the correct overload. Should the old overload instead call the new one?

Pull request checklist
Read the Contribution Guidelines for detailed information.

[x]  Changes are described in the pull request, or an existing issue is referenced.
[x]  The test suite compiles and runs without error.
[ ]  Code coverage is 100%. Test cases can be added by editing the test suite.
[ ]  The source code is amalgamated; that is, after making changes to the sources in the include/nlohmann directory, run make amalgamate to create the single-header files single_include/nlohmann/json.hpp and single_include/nlohmann/json_fwd.hpp. The whole process is described here.

Please don't

The C++11 support varies between different compilers and versions. Please note the list of supported compilers. Some compilers like GCC 4.7 (and earlier), Clang 3.3 (and earlier), or Microsoft Visual Studio 13.0 and earlier are known not to work due to missing or incomplete C++11 support. Please refrain from proposing changes that work around these compiler's limitations with #ifdefs or other means.
Specifically, I am aware of compilation problems with Microsoft Visual Studio (there even is an issue label for this kind of bug). I understand that even in 2016, complete C++11 support isn't there yet. But please also understand that I do not want to drop features or uglify the code just to make Microsoft's sub-standard compiler happy. The past has shown that there are ways to express the functionality such that the code compiles with the most recent MSVC - unfortunately, this is not the main objective of the project.
Please refrain from proposing changes that would break JSON conformance. If you propose a conformant extension of JSON to be supported by the library, please motivate this extension.
Please do not open pull requests that address multiple issues.

Coverage decreased (-0.02%) to 99.983% when pulling 0a92a3615b3b2cef2e2e035748c1f89aa94c1ede on ltjax:configurable_pretty_print into a3e6e26dc83a726b292f5be0492fcc408663ce55 on nlohmann:develop.