Fix Travis run on Mac

The build of google-cloud-java is consistently failing on Mac:
$ git clone -b travis `git config --get remote.origin.url` target/travis
Cloning into 'target/travis'...
error: RPC failed; curl 56 SSLRead() return error -36
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

This should be fixed.

The error shown above can be fixed/mitigated using travis_retry, as per this PR: https://github.com/GoogleCloudPlatform/google-cloud-java/pull/2384
However, this is not the only cause of build failure on OSX. So far I have identified that the Spanner suite seems to be the cause of the problem, but have not found a more specific reason yet.

See below for the truncated output of a failed Travis build on OSX. The build appears to hang after the Spanner SessionPoolStressTest. The next test is the SessionPoolTest.
-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Concurrency config is parallel='none', perCoreThreadCount=true, threadCount=2, useUnlimitedThreads=false
Running com.google.cloud.spanner.AbstractStructReaderTypesTest
Tests run: 72, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.841 sec
Running com.google.cloud.spanner.DatabaseAdminClientImplTest
Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.411 sec
Running com.google.cloud.spanner.DatabaseIdTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.007 sec
Running com.google.cloud.spanner.DatabaseTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.01 sec
Running com.google.cloud.spanner.GrpcResultSetTest
Tests run: 23, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.416 sec
Running com.google.cloud.spanner.InstanceAdminClientImplTest
Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.102 sec
Running com.google.cloud.spanner.InstanceConfigIdTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.004 sec
Running com.google.cloud.spanner.InstanceIdTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.024 sec
Running com.google.cloud.spanner.InstanceTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.056 sec
Running com.google.cloud.spanner.KeyRangeTest
Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.047 sec
Running com.google.cloud.spanner.KeySetTest
Tests run: 24, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.055 sec
Running com.google.cloud.spanner.KeyTest
Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.034 sec
Running com.google.cloud.spanner.MutationTest
Tests run: 23, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.133 sec
Running com.google.cloud.spanner.OperationTest
Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.041 sec
Running com.google.cloud.spanner.OptionsTest
Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.011 sec
Running com.google.cloud.spanner.ReadFormatTest
Tests run: 15, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.118 sec
Running com.google.cloud.spanner.ResultSetsTest
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.016 sec
Running com.google.cloud.spanner.ResumableStreamIteratorTest
Tests run: 13, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 6.378 sec
Running com.google.cloud.spanner.SessionImplTest
Tests run: 15, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.151 sec
Running com.google.cloud.spanner.SessionPoolOptionsTest
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.006 sec
Running com.google.cloud.spanner.SessionPoolStressTest
Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 45.602 sec

No output has been received in the last 10m0s, this potentially indicates a stalled build or something wrong with the build itself.
Check the details on how to adjust your build configuration on: https://docs.travis-ci.com/user/common-build-problems/#Build-times-out-because-no-output-was-received

The build has been terminated

We're moving integration tests to Circle. If we decide to switch unit tests to Circle too, then this would not be relevant any more.


Overloading a link with a more restrictive type does not work as described

EdgeDB Version: 5.6
EdgeDB CLI Version: 5.5.0
OS Version: macOS

Schema
module default {
  abstract type Entity {};

  type Individual extending Entity {
    full_name: str;
  };

  type Organization extending Entity {
    name: str;
  };

  abstract type Relationship {
    subject: Entity;
    object: Entity;
  };

  type OrgMembership extending Relationship {
    required role: str;
    required subject: Individual;
    required object: Organization;
  };
}

Error
edgedb migration create
edgedb error: SchemaError: link 'subject' of object type 'default::OrgMembership' cannot be cast automatically from object type 'default::Entity' to object type 'default::Individual'
  Hint: You might need to specify a conversion expression in a USING clause
edgedb error: cannot proceed until .esdl files are fixed

Nevermind! Forgot the overloaded keyword.

Still seems like a bad error message though


Update Icons and Animations to Reflect Brand Colors

Update the icons and animations to utilize brand colors for consistency.
1. Icons on portfolio page

Platform benefits icons on the portfolio page ( icons are shown when wallet is not connected)Designs

Create Strategy icon

2. Connect wallet animation

The green line animation on the top of the popup

3. Selected checkbox

Selected checkbox across entire app (wallet connect popup, filters, etc)

Closed by #1540


[Event Request] Report 699 "Calculate Plan - Req. Wksh." - New publisher

Hello, we need a new Event publisher on the Report Trigger OnPreReport. Can you please check that? Thank you!
trigger OnPreReport()
var
    ProductionForecastEntry: Record "Production Forecast Entry";
    IsHandled: Boolean;
begin
    OnBeforeOnPreReport(CurrTemplateName, CurrWorksheetName);

    Counter := 0;
    if FromDate = 0D then
        Error(Text002);
    if ToDate = 0D then
        Error(Text003);
    PeriodLength := ToDate - FromDate + 1;
    if PeriodLength <= 0 then
        Error(Text004);

    IsHandled := false;
    OnBeforeSetFiltersOnPreReport(ProductionForecastEntry, ReqLine, IsHandled);                      <====NewEvent====
    if not IsHandled then begin
        if (Item.GetFilter("Variant Filter") <> '') and
           (MfgSetup."Current Production Forecast" <> '')
        then begin
            ProductionForecastEntry.SetRange("Production Forecast Name", MfgSetup."Current Production Forecast");
            Item.CopyFilter("No.", ProductionForecastEntry."Item No.");
            if MfgSetup."Use Forecast on Locations" then
                Item.CopyFilter("Location Filter", ProductionForecastEntry."Location Code");
            if not ProductionForecastEntry.IsEmpty() then
                Error(Text005);
        end;

        ReqLine.SetRange("Worksheet Template Name", CurrTemplateName);
        ReqLine.SetRange("Journal Batch Name", CurrWorksheetName);

        Window.Open(
          Text006 +
          Text007);
    end;        <====PartOfNewEvent====
end;

New Event:
local procedure OnBeforeSetFiltersOnPreReport(var ProductionForecastEntry: Record "Production Forecast Entry"; var ReqLine: Record "Requisition Line"; var IsHandled: Boolean)
begin
end;

This will be an extension of OnBeforeOnPreReport, we will add requested params there and also dates so you can initialize them the way you want when skipping this trigger

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


RequestUtils getTableNames does not return multiple table names for sql join queries

For a query like
SELECT
  table1.foo,
  table2.bar
FROM
  table1
JOIN table2 ON table1.id = table2.id
LIMIT 10;

the method RequestUtils#getTablesNames will only return the table1 as table names from the query.
For context of usage, we use this method to track metrics on the tables we are querying, so it is quite useful to us.

Fixed in https://github.com/apache/pinot/pull/14554


Ensure that the test runner checks for the vendored third party libraries

Addresses this issue.
https://github.com/google/gae-secure-scaffold-python/issues/21

I signed it!


Updated signal names to latest web serial API spec.

Hey, great project - saved me a lot of time, thank you!
The current implementation of web-serial uses different signal names.
I also removed the filter by vendor so the user can freely chose which device he wants to connect to. I have an Arduino clone which has some random vendor ID, so I thought this "non" filter approach might be more inclusive.
Another thing I noticed is that I had to open the serial port with a baudRate of 115200 in order to be able to flash, it would not work with the default of 57600. I am not entirely sure if this might the different with a nano but maybe it's worth noting that in the README?

Thanks for this PR.
The part with new signal names seems OK.
For the vendorId filtering, I think it's better to let user choose if he wants filtering or not. I will fix this.
Also, the correct baudRate depends of your board I guess. As far as I remember with my old nano, it was 57600. I'll write a note in the Readme as you suggested.


Idea: refetching status

In swr mode expose a "fetching state" to let the app display a skeleton for example.

hmm i'm not sure if this would be justified as this would be identical behavior to not using the package and just passing the server data as a promise / using defer without clientLoader, could you give me an example of the use-case?

What if you are handling like a list of items (books?) the first time you hit the page serverLoader is going to fetch the data.
Let's in the backend you add 10+ items
The second time you are going to the app the clientLoader is serving the data from storage and behind the scenes the a fetch is still happening (swr mode). If the fetch is slow (or your network is bad) then the fetch takes some time to finish and then the app will display the new 10+ items but the UI effect will be kind of "appearing in a blink".
If the lib exposes a "isBackgroundFetchingStatus" then in the UI you could display a banner (or whatever) warning the user that some new data might appear in the coming seconds.
Amazing work btw!

@FKSI I see, okay, I think I've figured out how to add it


0.17.0 is checking for navigator even if there is no window

The Firefox check here should only occur in a context where window exists: https://github.com/STRML/react-grid-layout/blob/master/lib/ReactGridLayout.jsx#L100

Here is the same error for me. I fixed temporarily by fixing the version down to 0.16.6.

This change fixes it for me if you wanted to try it  https://github.com/STRML/react-grid-layout/issues/1057


Titlize language names

Aligned the case styles of the language names displayed on the language switch buttons.

Before

After

langs = ["English", "español", "français", "日本語", "português (Brasil)", "українська", "Ελληνικά", "Deutsch", "中文 (简体)", "中文 (繁體)", "русский", "עברית ", "Esperanto"]
for lang in langs: print(lang, "=>", lang.title())

English => English
español => Español
français => Français
日本語 => 日本語
português (Brasil) => Português (Brasil)
українська => Українська
Ελληνικά => Ελληνικά
Deutsch => Deutsch
中文 (简体) => 中文 (简体)
中文 (繁體) => 中文 (繁體)
русский => Русский
עברית  => עברית
Esperanto => Esperanto

If you have supporting information as to why this behavior should be changed and applicable to all the languages, even when the locales have changed, supply that here, and we can reopen the request.

I am not a native speaker of each language, so I don't know if it is necessary to write in different case, but I have confirmed from the language selectors of supposedly well-known websites in each language that it is OK to start with all uppercase letters.
español
https://administracion.gob.es/pag_Home/index.html

français
https://www.france.fr/fr/

português
https://www.parlamento.pt/sites/en/

українська
https://www.kmu.gov.ua/en

русский
http://en.kremlin.ru/

@miketheman I don't know why the Babel library changes the initial capitalization depending on the locale, but I can see from the aforementioned use cases for each language site that it would look more natural if the language names were unified by starting with all uppercase letters.

I agree that we should defer to whatever Babel does here. Looks like this is the upstream issue, which was closed as "wontfix": https://github.com/python-babel/babel/issues/544

Wouldn't it be acceptable if there was a motive to unify it as a “title case?”
Anyway, if you do not want to add extra processing to the page that is displayed each time it is accessed, or if it is easier to leave it to the library's recommended method, there is no need to make any changes.
Thank you for reviewing.


Creates master branch instead of main

Describe the bug
Hi, I created a repository from stackblitz, and was a little surprised to see that the default branch is called master, whereas most new repositories in GitHub use main instead.
Link to the blitz that caused the error
https://stackblitz.com/edit/vitejs-vite-ccuzee?file=vite.config.js,package-lock.json,package.json,main.jsx,app.jsx&terminal=dev
Steps to reproduce
Create a stackblitz, turn it into a repo, notice that it's using master.
Expected behavior
The default branch should be named main.
Parity with Local

[X] I have run the project in my local machine and I could not reproduce the issue.

Screenshots
No response
Platform
No response
Additional context
No response

Hey @IanVS, thanks for reaching out! It's fixed now and all projects being connected to GitHub from now on will use main.
Thanks again for reporting this issue 🙏


Cannot aggragate sum

Here is my code :
$str_uang = Investor::where('project_id', $id)->sum('nominal');
It can't get sum value, just sum function while count is working.
What happened?
Is it because I save 'nominal' value as a string in a collection?
Btw how can I save 'nominal' value type as double, not a string

yes you have save it as string that's why i have faced same issue.

you should change the filed to integer or double type with shell command first
db.collection.updateMany({}, [ {$set:{ "total_value_usd" : {$toDouble:
"$total_value_usd"}}} ], {multi:true})


adding static_framework set to true

this is required for transitive dependencies.
https://github.com/flutter/flutter/issues/14161

Coverage remained the same at 93.333% when pulling 04b9d63fe6217cebf8c97f0ccf41719d44554c70 on dlutton:master into 64b2fbf86f8a1e7f835b8fce9150acec3bd69adc on roughike:master.


Create a lint for infinitely recursive getters

It is easy to accidentally write code like the following:
class C {
  int _field = 0;
  int get field => field;
}

(The getter ought to return the value of the field, but actually invokes itself.) It would be good to have a lint to catch such cases.

@alexeieleusis (In case you're interested in working on this one.)

Can you please assign this issue to me? I can't.

Nope. I can't either.
@kevmoo Can we get Alexei whatever permissions are needed to be able to have issues assigned to him?

Thank you!

Does this cover setters as well?
I got a quite unhelpful stack overflow exception because I forgot the _ in propName = value; inside set propName(dynamic value) {...}

It does not. Is this for  a setter without a getter? Otherwise you should probably expose the field itself. Could you please create a new issue to keep track of this?


Abandon adopting orphaned jobs

Closes https://github.com/TheRacetrack/racetrack/issues/163
Closes https://github.com/TheRacetrack/racetrack/issues/134
Summary of changes:

Racetrack doesn't adopt "orphaned" jobs any longer. Lifecycle-supervisor just prints the warning log about the orphaned job.
a new Prometheus metric is exposed - the number of jobs by status.
This metric is the first metric of lifecycle-supervisor, so it was added to prometheus config.
In Grafana dashboards, there's a new panel monitoring the number of jobs with the particular status.

Yeah, agree that making such documentation is energy costly, and we should be conserving energy. Also docs get outdated faster than comments, so what you propose here is ok for me. But if I may clarify something, I didn't mean putting details of all functions in the docs, just high level overview, ie. https://rep.erst.dk/git/kubernilla/recordkeeper/-/tree/master/graph_builder#implementation-details


Provide capability to opt-in for Azure Event Grid events

Is your feature request related to a problem? Please describe.
Provide the capability to opt-in for Azure Event Grid events to create scaling awareness.
Describe the solution you'd like
Every scaling action should emit an event that includes the old & new tier/instance count.
Based on the scaling action, there are different event types so we can easily filter out to only what we want to have.
Describe alternatives you've considered
N/A
Additional context
Happy to help where I can, for example designing the event payloads.

Any progress on this?


Are we counting negatives in the Number type text fields?

Hi everyone,
This is really amazing. :zap:
I was walking through the components section and found the text field example labeled as Numbers..
I tried entering negative number in it, and it resulted in "Input is not a number!".
I can feel that you people won't like me for filing such an issue, as then irrational numbers also come under Numbers, but labelling that field as Positive Number would prevent this mislead I think.
The pattern it uses is [0-9]*, so changing it to -?[0-9]* would do this, if we want both positive and negative numbers.
Again, please don't kill me if I'm being too silly here. :octocat:

Negative numbers are definitely not a far-fetched request. Floats might also be relevant (price tags?).
@addyosmani @sgomes WDYT? -?[0-9]*(\.[0-9]+)?

Well, it's a demo, so we're free to do what we want! :dancer:
I agree it makes sense to cater for negative and floating point numbers; developers can tweak the regex if they just need integers.

it's a demo
I literally did not notice. I thought this would be an upstream fix. :facepunch:

I’ll whip up a PR then :)

Plus this is just a demo... People shouldn't copy & paste and expect it to work 100% in their context. :tongue:

They shouldn't :D But they will :tongue:


EarthqakeData, id issue

{"type":"Feature","properties":{"mag":6.2,"place":"38km W of Petrolia, CA","time":1640031019100,"updated":1640430417695,"tz":null,"url":"https://earthquake.usgs.gov/earthquakes/eventpage/nc73666231","detail":"https://earthquake.usgs.gov/earthquakes/feed/v1.0/detail/nc73666231.geojson","felt":4372,"cdi":7,"mmi":6.936,"alert":"yellow","status":"reviewed","tsunami":1,"sig":1350,"net":"nc","code":"73666231","ids":",ew1640031020,nc73666231,at00r4fk16,us6000gdxq,","sources":",ew,nc,at,us,","types":",dyfi,focal-mechanism,general-text,ground-failure,impact-link,losspager,moment-tensor,nearby-cities,oaf,origin,phase-data,scitech-link,shake-alert,shakemap,","nst":118,"dmin":0.2951,"rms":0.22,"gap":224,"magType":"mw","type":"earthquake","title":"M 6.2 - 38km W of Petrolia, CA"},"geometry":{"type":"Point","coordinates":[-124.727,40.314,14.85]},"id":"nc73666231"}
seems nc73666231 is not working

seems like bug, ncnc73666231 is the id used in Mathematica

seems like bug, ncnc73666231 is the id used in Mathematica

reported this bug, it seems fixed


Risk Scoring Module failed on Out of Office Module statusCode 400

Steps to repeat:

Add Out of Office Module to Sample playbook
Add Out of Office Module body to Risk Scoring Module

Risk Scoring Module ScoringData field:
[
  {
    "ModuleBody": @{body('AAD_Risks_Module')},
    "ScoreLabel": "AAD Risks",
    "ScoreMultiplier": 1,
    "ScorePerItem": true
  },
  {
    "ModuleBody": @{body('Related_Alerts_Module')},
    "ScoreLabel": "Related Alerts",
    "ScoreMultiplier": 1,
    "ScorePerItem": true
  },
  {
    "ModuleBody": @{body('Threat_Intel_Module')},
    "ScoreLabel": "TI Module",
    "ScoreMultiplier": 5,
    "ScorePerItem": true
  },
  {
    "ModuleBody": @{body('Out_of_Office_Module')},
    "ScoreLabel": "OOF Module",
    "ScoreMultiplier": 1,
    "ScorePerItem": false
  }
]

Result:

Out of Office Module completes successfully and adds comment
Risk Scoring Module fails with statusCode = 200 and following error:

{
    "statusCode": 200,
    "headers": {
        "Transfer-Encoding": "chunked",
        "Date": "Fri, 04 Oct 2024 21:30:02 GMT",
        "Content-Type": "application/json",
        "Content-Length": "248"
    },
    "body": {
        "AllUsersInOffice": true,
        "AllUsersOutOfOffice": false,
        "DetailedResults": [
            {
                "ExternalMessage": "",
                "InternalMessage": "",
                "OOFStatus": "disabled",
                "UPN": "xxxValidUpnxxx"
            }
        ],
        "UsersInOffice": 1,
        "UsersOutOfOffice": 0,
        "UsersUnknown": 0
    }
}

@NobleWolf at present we don't support that module as an input to the score (https://github.com/briandelmsft/SentinelAutomationModules/wiki/Modules#supported-module-inputs)
We didn't really have have a good approach to using the out of office information to impact the score.  We mainly intended it as information to the analyst, for example if their message says they're travelling on business that may be useful to know in some incidents.
We can easily make the scoring module not fail when it's added but not have an impact on the score.  If you have thoughts on how it should influence the score we'd love to hear them

@briandelmsft thank you for the explination. I can see scenarios when being Out of Office and your account being used would be suspicious, but if you left your computer on and Outlook syncs it could create an authentication log. So I guess being OOO + suspicious activity would still be a human decision. So I understand why this decision was made.
It would be helpful if the error message could be updated.
Current error in Risk Scoring Module:
{
    "statusCode": 400,
    "headers": {
        "Transfer-Encoding": "chunked",
        "Date": "Fri, 04 Oct 2024 20:53:30 GMT",
        "Content-Type": "application/json",
        "Content-Length": "1678"
    },
    "body": {
        "Error": "Failed to score the module None with label Out of Office",
        "InvocationId": "62d87bbf-6a6c-437c-a67a-db5815043563",
        "SourceError": {
            "Error": "Incorrectly formatted data or data from an unsupported module was passed to the Scoring Module, module name: None"
        },
        "Traceback": [
            "Traceback (most recent call last):\n",
            "  File \"/home/site/wwwroot/modules/scoring.py\", line 21, in execute_scoring_module\n    score_module(score, module, module_body, per_item, multiplier, label)\n",
            "  File \"/home/site/wwwroot/modules/scoring.py\", line 82, in score_module\n    raise STATError(f'Incorrectly formatted data or data from an unsupported module was passed to the Scoring Module, module name: {module}')\n",
            "classes.STATError: Incorrectly formatted data or data from an unsupported module was passed to the Scoring Module, module name: None\n",
            "\nDuring handling of the above exception, another exception occurred:\n\n",
            "Traceback (most recent call last):\n",
            "  File \"/home/site/wwwroot/modules/__init__.py\", line 19, in main\n    return_data = coordinator.initiate_module(module_name=module_name, req_body=req_body)\n",
            "  File \"/home/site/wwwroot/shared/coordinator.py\", line 13, in initiate_module\n    return_data = scoring.execute_scoring_module(req_body)\n",
            "  File \"/home/site/wwwroot/modules/scoring.py\", line 23, in execute_scoring_module\n    raise STATError(f'Failed to score the module {module} with label {label}', {'Error': str(e)})\n",
            "classes.STATError: ('Failed to score the module None with label Out of Office', {'Error': 'Incorrectly formatted data or data from an unsupported module was passed to the Scoring Module, module name: None'})\n"
        ]
    }
}

I think a more descriptive error would be helpful.
Current error message: Incorrectly formatted data or data from an unsupported module was passed to the Scoring Module, module name: None
Possible Updated message: Incorrectly formatted data or data from an unsupported module was passed to the Scoring Module, module name: Out of Office Module. See Risk Scoring Module's Supported Module Input list.
I understand the updated message suggestion does duplicate the "unsupported module" information, but my first instinct was to assume the error was due to "incorrectly formatted data" because the original message ended with ... module name: None making me think it was an input data error.

@NobleWolf thanks, we'll fix that
issue is the module class doesn't define a name like other modules do, so it's missing on the output
https://github.com/briandelmsft/STAT-Function/blob/a56eaa361601d3d2229ed823a6b3236c780175e3/classes/__init__.py#L304


usb_update_sn_string_descriptor generates only even-length strings

Describe the bug
When CONFIG_USB_DEVICE_SN is set to odd-length string (e.g. "CHANGEMEPLZ" :), which is 11 characters):

the usb_update_sn_string_descriptor generates  1 byte too long (12 chars)
failing usb_fix_ascii_sn_string_descriptor check for string length equality
the generated USB serial remains compilation-time set fixed.

To Reproduce
Steps to reproduce the behavior:
0. Take any USB sameple (e.g. samples/subsys/usb/console)

Add to prj.conf line CONFIG_USB_DEVICE_SN="CHANGEMEPLZ"
build & run
See the connected device usb serial -- it would be "CHANGEMEPLZ"

Expected behavior
It should be some random string by default, e.g "A1B2C3D4E5F".
Impact
Annoyance
Additional context
The easiest fix is to add to the default usb_update_sn_string_descriptor implementation line:
sn[sizeof(CONFIG_USB_DEVICE_SN)-1] = 0;

right before the final return, which will make string length right -- at expense of not using the lowest entropy bits.
Alternate solution is to change the return to:
return &sn[1-sizeof(CONFIG_USB_DEVICE_SN)%2];

which will use string of the right length and use the lowest entropy bits, but looks little bit cryptic.

I understand it's low priority, the only question I have: do anyone care (i can send the fix), or it's legacy USB stack that gets phased away anyway (and it'll be removed)?

@datacompboy What are your thoughts on this one?
diff --git a/subsys/usb/device/usb_descriptor.c b/subsys/usb/device/usb_descriptor.c
index 325989dc7fd..a55f621d1b4 100644
--- a/subsys/usb/device/usb_descriptor.c
+++ b/subsys/usb/device/usb_descriptor.c
@@ -347,12 +347,11 @@ static void usb_fix_ascii_sn_string_descriptor(struct usb_sn_descriptor *sn)
        default_sn_len = strlen(CONFIG_USB_DEVICE_SN);

        if (runtime_sn_len != default_sn_len) {
-               LOG_ERR("the new SN descriptor doesn't have the same "
+               LOG_WRN("the new SN descriptor doesn't have the same "
                        "length as CONFIG_USB_DEVICE_SN");
-               return;
        }

-       memcpy(sn->bString, runtime_sn, runtime_sn_len);
+       memcpy(sn->bString, runtime_sn, MIN(runtime_sn_len, default_sn_len));
 }

Thanks for the update! Yes, that should fix the issue (well, potentially losing the last byte of the random generated).
But I gave it a little of thoughts, and actually feel like there little more there than just odd/even case.
The Zephyr now have two ways to set the serial:

CONFIG_USB_DEVICE_SN configuration constant
Auto-generation of whole SN; using usb_update_sn_string_descriptor

Right now it looks like as long as the board has uniq entropy source, CONFIG_USB_DEVICE_SN is just sets the length of the serial, but not the serial itself -- the usb_update_sn_string_descriptor.
Which means, what should be intended behaviour?
Doing search thru github doesn't reveal use cases for the CONFIG_USB_DEVICE_SN, but obviously most of the use would be in private repositories...
I think the right behaviour should be explicit:

CONFIG_USB_DEVICE_SN_TEMPLATE => something like "SN######" where only ##### part has to be replaced with the board-specific values
CONFIG_USB_DEVICE_SN_DEFAULT => default value to use when no board entropy available
CONFIG_USB_DEVICE_SN_REWRITE => Boolean, enables template processing
CONFIG_USB_DEVICE_SN => if defined, generates build error with migration path to definition of TEMPLATE/DEFAULT/REWRITE depending on what developer expects here (as there is no way to know the original intention).

or do you think this is overkill?

Right now it looks like as long as the board has uniq entropy source, CONFIG_USB_DEVICE_SN is just sets the length of the serial, but not the serial itself -- the usb_update_sn_string_descriptor.

This has historically been the case and is a placeholder.
https://github.com/zephyrproject-rtos/zephyr/blob/c211cb347e0af0a4931e0e7af3d93577bcc7af8f/subsys/usb/device/Kconfig#L43-L49

Which means, what should be intended behaviour? Doing search thru github doesn't reveal use cases for the CONFIG_USB_DEVICE_SN, but obviously most of the use would be in private repositories...
I think the right behaviour should be explicit:
* `CONFIG_USB_DEVICE_SN_TEMPLATE` => something like "SN######" where only ##### part has to be replaced with the board-specific values

* `CONFIG_USB_DEVICE_SN_DEFAULT` => default value to use when no board entropy available

* `CONFIG_USB_DEVICE_SN_REWRITE` => Boolean, enables template processing

* `CONFIG_USB_DEVICE_SN` => if defined, generates build error with migration path to definition of TEMPLATE/DEFAULT/REWRITE depending on what developer expects here (as there is no way to know the original intention).

or do you think this is overkill?

Yes. And I do not want to introduce new Kconfig options or new features for this part.
Application can also have its own implementation where it obtains SN.
https://github.com/zephyrproject-rtos/zephyr/blob/c211cb347e0af0a4931e0e7af3d93577bcc7af8f/subsys/usb/device/usb_descriptor.c#L304

This has historically been the case and is a placeholder.

Thanks, that makes sense now.


I use Text element, When set to blank or empty line breaks, will crash!

I use Text element, When set to blank or empty line breaks, will crash!

Got it been fixed in 5.x


Fix cluster-TC association id variable

Describe the bug
Currently tc_cluster_id is being used during sample production and for TC association to clusters. We should use tc_multicluster_id instead.
Additional information
An explanation of all "id-like" variable follows to avoid confusions:

cl3d_id is the ID of the 3D cluster, which is defined as the ID of the seed TC
tc_cluster_id is the ID of the "2D cluster" to which this TC belongs
tc_multicluster_id is the ID of the 3D cluster to which this TC belongs
tc_id is the ID of this TC

To be noted that there is no 2D step with the current clustering algo version, so "2D clusters" are effectively single TCs in that case. To be noted also that "seed TC" doesn't have a real meaning with the current algo. Effectively this is the first TC that has been used to build the cluster.
The above clarification was kindly provided by @jbsauvan.

@mchiusi I believe #44 fixes the above.


Add 32-bit installer for beta MSVC

r? @aturon
(rust_highfive has picked a reviewer for you, use r? to override)


Implement kustomizeOptions

Allows passing flags equivalent to --enable-alpha-plugins and --enable-helm
Closes #105

@dhaiducek are there any security repercussions with this approach? I'm thinking in particular that when running in App Sub, the Helm execution would end up using App Sub's service account but don't know for sure.

@dhaiducek are there any security repercussions with this approach? I'm thinking in particular that when running in App Sub, the Helm execution would end up using App Sub's service account but don't know for sure.

I was wondering about input on security implications. The risks feel similar to enabling Kustomize. I'm thinking it's toggled on by the user, and I think would call the internal Helm CLI, but that doesn't exist in App Sub, so it'd just fail in that case. (I just tried executing into the subscription container, and helm came up empty.)
That said, I suppose I'll have to do some more digging around ArgoCD, but the situation there might be similar.

hi @dhaiducek .. this just "works" in argocd .. as it has helm and kustomize support already i.e. in the argocd-repo-server pod they have helm in /usr/local/bin/helm

@ch-stark and @dhaiducek , how about we require the user setting an environment variable to enable Helm in Kustomize? That way they opt-in to this feature and ensure it is secure to do so.
In Application Subscription, we can probably enable this by default and document it for ArgoCD.

@ch-stark and @dhaiducek , how about we require the user setting an environment variable to enable Helm in Kustomize? That way they opt-in to this feature and ensure it is secure to do so.
In Application Subscription, we can probably enable this by default and document it for ArgoCD.

That works for me--I've been thinking we just need to get this feature out there, and having a higher-level opt in sounds like a good way to go.

/hold for reviews

@dhaiducek could you please add documentation of the environment variable in the read me?

Updating the README.md caused a really weird rebase (maybe because this PR was originally in stolostron?), but I think it's sorted now...

/unhold


For some methods, the 'data integration' and 'dimensionality' subworkflows coinside and/or are reversed.

For harmony for example dimred comes first then integration.
We could either move these two blocks together, or indicate that there are multiple paths from source to destination

Done, integration pipelines are now documented separately.


Maintenance

This useful repo seems not maintained anymore. Too bad to still lose commits 1 year after a fix was proposed.

Hi, I took care of library maintenance and negotiated some time as part of my job. So expect som serious work soon :)


JuliaCon 2020 | Loop Analysis in Julia | Chris Elrod

JuliaCon 2020 | Loop Analysis in Julia | Chris Elrod, https://www.youtube.com/watch?v=qz2kJdVDWi0
I highly admire Chris Elrod so I need to make timestamps for his talk. I hope that there are good enough.
00:00 Welcome!
00:19 Loop vectorization and LoopVectorization.jl
01:43 Current limitations of LoopVectorization.jl
02:48 First main part of intra-core parallelism: Single Instruction Multiple Data (SIMD)
03:46 Loading and storing vectors
06:34 Second main part of intra-core parallelism: super scalar parallelism
08:23 Example: summing a vector
10:31 Problem: no all vectors have length that is multiple of 32
13:02 Vectorization of loop with @avx
13:51 @avx and functions like log from stdlib
14:34 @avx and StructArrays.jl
15:27 Eliminating redundant operations
19:56 LoopVectorization.jl and generated functions
20:48 Redundancy in convolutions
23:08 Internal working of LoopVectorization.jl

Done, thanks!


Raise a prompt when user attempts to navigate away while uploading

This change has the browser create a prompt while a user is uploading a
file if they attempt to navigate away from the page. This helps prevent
the accidental cancellation of uploads.

 [general-81] Navigating away from Repo upload terminates the upload (Opened)


NIFI-2772: Unsecure RAW Site-to-Site fails with User DN is not known

+1 verified site-to-site functionality for secure and un-secure, with raw and http, will merge to master


LocationManager.Logger.isEnabled is not public

There is currently no way to change the value of LocationManager.Logger.isEnabled since it is declared as an internal variable.
Happy to make a pull request if necessary.

It would be nice to have solved because, we receive a tremendous amount of logging not needed.


keyPath support for indexed-db adapter

Hi - would be very useful if indexed-db adapter offered support for making use of the keyPath param that IndexedDb is supposed to support.

@brianleroux, would you be in favor of this being added to all adapters?  Currently, the unique identifier is assumed to be 'key' so making default value of 'keyPath' to be 'key' should work perfectly.  I can handle updating the SQLite and probably IndexedDB adapters, but I don't have the time to do localStorage (and sessionStorage) and DOM storage too.
Although I see the benefit of adding 'keyPath' support and the benefit of adding it across all adapters, I have to say that IndexedDB is the biggest waste of everything: typical code size is 40+% bigger, it attempts to "replace" technology which can do almost everything it can do, it lacks the decades of implementation, documentation, and understanding of SQL, etc.  I fully believe IndexedDB was developed for the sole purpose of restarting the browser DB race.

absolutely

Okay, so the keyPath pull request is ready for discussion and testing (@demaniak).  I am still learning Git so I may have produced an unnecessary branch in the process.

Coolio @MarkMYoung  - gonna have a look now!

Ok, nothing is breaking.
AND it seems that keyPath is behaving as expected (meaning if a save a retrieved object with keyPath value "123", and an object already exists, then it seems that object gets updated - perfect!).
One comment then (perhaps should be logged as different issue) - the "fall through to first valid adapter" does not seem to work as expected?
I had the adapters linked in this order (yes, I'm greedy, I want to have it all, don't judge me!):

Lawnchair.js
indexed-db.js
webkit-sqlite.js
gears-sqlite.js
blackberry-persistent-storage.js
dom.js
chrome-storage.js
touchdb-couchdb.js

I ended up with some adapter that was NOT indexedDb.
Anyway, after commenting out all other adapters, indexedDb kicked in, and things seem...coherent.
So, @MarkMYoung - with limited testing (which I continue with, since I'm pulling this into a real live project): all seems well!

Glad to hear it.  I think I should let @brianleroux add analogous changes to all the other adapters before merging this branch.  Actually, I only knew which lines of code to change because of comments I added to local changes I made over a year ago to serialize non-string keys.
You know, now that you mention it, I include IndexedDB as an alternate storage implementation, but it is listed first (alphabetically) so it should've been used all this time.  I guess you should open that as another issue and list any differences in results when you list adapters in the constructor options.

@MarkMYoung  - cool, I will chase the adapter selection weirdness again when I have some time.
In the meanwhile, what is the protocol here? Do I close this issue (since I got what I wanted :p ), does the project owner close the issue? Or the change author?
I could have sworn @brianleroux had some comments on the change still - should those first be addressed, if they were not retracted (since I can't find them now...)?

Well, @brianleroux made a couple comments (directly to me I guess since I don't see them here).  I addressed his code formatting issue (with a commit this morning).  His other concern was the number of lines required to achieve this feature.  So, I might be making it into a plug-in (maybe called custom-keyPath).  Since I wasn't 100% sure how I should do that since it includes methods not used by any other plug-in/adapter, I suggested a methodology for doing that and I'm awaiting his response.
In the meantime, you can use this branch to get what you want.  Either the owner or the assignee typically close them.  Your testing was greatly appreciated!

why not bake all this into just the indexeddb adapter to isolate the code to the thing it works with?

It works in the SQLite adapter too (in this branch) and can work in any adapter.  People have been asking to be able to customize the primary key for a while (some want 'id', some want it not added to the object, etc.).  Although I would've just made it a customizable string to a top-level property, IndexedDB's specification is the greatest common factor.
I don't think 145 lines of code isn't too bad for what you get.  Not only does it allow for a custom key, it allows for 1) multiple properties to be keys 2) at multiple levels and 3) formalizes key value comparison.  I'll commit an update with it as a plugin and you let me know what you think.  All that the other adapters need to do is hook into the 'key*' methods

👍👌👏🎉🍺
On Tue, Mar 10, 2015, 8:02 AM Mark M. Young<EMAIL_ADDRESS>wrote:

It works in the SQLite adapter too (in this branch) and can work in any
adapter. People have been asking to be able to customize the primary key
for a while (some want 'id', some want it not added to the object, etc.).
Although I would've just made it a customizable string to a top-level
property, IndexedDB's specification is the greatest common factor.
I don't think 145 lines of code isn't too bad for what you get. Not only
does it allow for a custom key, it allows for 1) multiple properties to be
keys 2) at multiple levels and 3) formalizes key value comparison. I'll
commit an update with it as a plugin and you let me know what you think.
All that the other adapters need to do is hook into the 'key*' methods
—
Reply to this email directly or view it on GitHub
https://github.com/brianleroux/lawnchair/issues/211#issuecomment-78058599
.


bug: Ionic native scroll flickering 1.2.1 (Amsterdam)

Type: bug
Platform: ios 8 webview
Hi,
I want to report a issue with 1.2.1 (amsterdam release).
It's flickering when menu(sidebar) button is pressed.

My sensors indicate that you need to update your issue through our custom issue form. We are now requiring all issues to be submitted this way, to ensure that we have all of the information necessary to fix them as quickly as possible.
Click Here To Update Your Issue
I will have no choice but to close this issue if it is not resubmitted through the form. Please fill out the rest of the form, so that I may use my friendly robot powers to assist you.
Thank you!

yes. something similar for me. working on a chat module and when I get into the room which has some messages (i scroll down automatically), i see a black screen first, then the screen loads sometime it scroll down after that but most of the times it does not.
from xcode debugger -
2015-12-27 21:45:12.778 myApp[599:88735] -[WebActionDisablingCALayerDelegate setBeingRemoved:]: unrecognized selector sent to instance 0x15d75180
2015-12-27 21:45:12.780 myApp[599:88735] *** WebKit discarded an uncaught exception in the webView:willRemoveScrollingLayer:withContentsLayer:forNode: delegate:  -[WebActionDisablingCALayerDelegate setBeingRemoved:]: unrecognized selector sent to instance 0x15d75180
i have something like
$scope.$on('$ionicView.enter', function() {
$timeout(function() {
footerBar = document.body.querySelector('#userMessagesView .bar-footer'); //console.log(footerBar);
scroller = document.body.querySelector('#userMessagesView .scroll-content'); //console.log(scroller);
txtInput = angular.element(footerBar.querySelector('textarea')); //console.log(txtInput);
}, 0);
});
also i have this after the messages are loaded....
$timeout(function() {
viewScroll.scrollBottom();
}, 10);
hope this helps.
it happens only in ionic 1.2.1... works fine in 1.1.1
switching back to 1.1.1 for now.

i have the same problem with native scroll.
You can update to 1.2.1 and set
.config(function($ionicConfigProvider) {
    $ionicConfigProvider.scrolling.jsScrolling(true);
})

or add class:
.scroll-content {
    overflow-y: auto !important;
}

@mlynch Can it be fixed in 1.2.2?
Thank you.

Kind of a lesser of two evils situation. Toggling overflow-scroll: hidden causes a flicker, so I disabled that for now. The alternative is to actively block scroll so I'm looking into that but I'd rather kill the flicker at the expense of scrolling happening.

Okay, just pushed several fixes for this, can you try master and let me know how it works?

@mlynch
i checked with 1.2.4 release.... and i still see a black screen just before it navigates to another page, for a sec.
but if i go back and navigate again, that black screen do not appear. looks like it comes only first time, (rare case 2nd time). but the errors in the console are gone. if i go back to ionic 1.1.1 black screen never appears.
i also tried with
.config(function($ionicConfigProvider) {
$ionicConfigProvider.scrolling.jsScrolling(true);
}) with 1.2.4 but output is same.


Typescript errors for optional nested fields

Hey,
First of all, thank you for your amazing work. This library and valibot are very well designed libraries that I really enjoy using. Thanks!
Probably related to #144 and #173, I have Typescript errors when using optional nested fields.
You can find a reproduction here.
You should be able to see the errors I'm talking about in automation.tsx:

The Field type is inferred to undefined for a nested field.
The setValue value argument is never.

If you remove the optional suffix for schedule, everything works as expected.
This is not a blocking issue obviously but it messes up with the great DX of this library.

Hey, sorry for the late reply. I am very busy with other things at the moment and am not able to look at it. I am very sorry for that. I hope to find some time towards the end of the year.

Were you able to resolve the issue in the meantime? If not, I can try to look into it by the end of the year.


Not working in neovim Termux

it's not working in neovim termux, on the statusline it says ON but the autocomplete never appears.
but when i run my laptop in termux under ssh it's working, Maybe there are dependencies that are not installed yet in termux, but I don't know

Unfortunately we don't work on Termux, see https://github.com/Exafunction/codeium.vim/issues/8.


Create funding-manifest-urls

In applying for the FOSS Funding, we needed to make a funding.json which includes the GrapesJS preset as a project.
To link to this repo we have to make a .well-known folder with a file which links to the manifest, documented here: https://floss.fund/funding-manifest/.
This PR adds that file/directory.

@RCheesley did you consider adding the json directly to the Github repository? I think then we don't need the funding-manifest-urls.

For repository hosting platforms like GitHub, the manifest can be checked into the project repository directly, eg: https://github.com/example/coolapp/blob/main/funding.json

I have already added a PR for mautic/mautic for the funding.json file, see https://github.com/mautic/mautic/pull/14206. But we need to have every project we're mentioning which isn't on this GitHub repo have the funding manifest URLs file, otherwise it rejects them. See the docs I linked to:

If the manifest references URLs, such as a project's webpage, that are not on the same domain as the funding.json manifest itself, then the wellKnown URL must point to a /.well-known/funding-manifest-urls file. This file should contain URL (one or more) of the funding.json manifest URLs that reference it. This establishes provenance and verifies that that the publisher of the manifest is authorised to solicit funding on behalf of the URLs (entity, projects) described in the manifest. This follows the .well-known convention. An example scenario is described below.

When I try to submit the funding.json it tells me that we need to add the well-known on every project we reference. Hence the PR.


Identifiers validation failed for dataset Colección científica del Museo de Historia Natural Alfredo Dugés

Identifier validation failed for the dataset Colección científica del Museo de Historia Natural Alfredo Dugés:

Crawler attempt: 269
Publishing organization: Comisión nacional para el conocimiento y uso de la biodiversidad
Publishing country: MEXICO
Installation: IPTCONABIO
Number of occurrences indexed for this dataset at the time of the issue: 1883
Cause: GBIF IDs hit maximum allowed - 50%, duplicates - 100%, total records count 4841, absent records count 4841
Pipelines execution steps: http://api.gbif.org/v1/pipelines/history/execution/3073387/step

Publisher email
Hello,
I am contacting you from the GBIF Secretariat about a dataset published by the Colección científica del Museo de Historia Natural Alfredo Dugés : https://doi.org/10.15468/ledqy2.
We noticed that the occurrenceIDs were changed. We have temporarily paused the ingestions of this dataset.
As you might already know, when an occurrence record has a new occurrenceID for a given dataset, our system considers it to be a new occurrence.
This means that it will be given a new gbifid and a new occurrence URL (like this one: https://www.gbif.org/occurrence/1252968762) and the old gbifid and URL will be deprecated.
In this case, this means that the occurrence URLs would be deprecated when ingesting the newest versions of these datasets.
We would like to check with you if those changes were intentional. Do you know if this is the case?
Please let us know, thanks! We are happy to resume the dataset ingestion.
Note that some users rely on those occurrence URLs and gbifids (like https://bionomia.net for example). In an attempt to improve
the stability of the occurrence URLs and gbifids, we have implemented a warning system to detect these type of changes in datasets (see this news item).
If the data publisher can provide us with a list of old and new occurrenceIDs per record, we can avoid the identifier and URL changes. Could that be an option?
Please let us know if you have any question. Thanks!
All the best,

You can skip/fix identifier validation using the registry UI.

Identifier validation still  failing for the dataset Colección científica del Museo de Historia Natural Alfredo Dugés:

Crawler attempt: 272
Publishing organization: Comisión nacional para el conocimiento y uso de la biodiversidad
Publishing country: MEXICO
Installation: IPTCONABIO
Number of occurrences indexed for this dataset at the time of the issue: 1883
Cause: GBIF IDs hit maximum allowed - 50%, duplicates - 100%, total records count 4841, absent records count 4841
Pipelines execution steps: http://api.gbif.org/v1/pipelines/history/execution/3094537/step

Publisher email
Hello,
I am contacting you from the GBIF Secretariat about a dataset published by the Colección científica del Museo de Historia Natural Alfredo Dugés : https://doi.org/10.15468/ledqy2.
We noticed that the occurrenceIDs were changed. We have temporarily paused the ingestions of this dataset.
As you might already know, when an occurrence record has a new occurrenceID for a given dataset, our system considers it to be a new occurrence.
This means that it will be given a new gbifid and a new occurrence URL (like this one: https://www.gbif.org/occurrence/1252968762) and the old gbifid and URL will be deprecated.
In this case, this means that the occurrence URLs would be deprecated when ingesting the newest versions of these datasets.
We would like to check with you if those changes were intentional. Do you know if this is the case?
Please let us know, thanks! We are happy to resume the dataset ingestion.
Note that some users rely on those occurrence URLs and gbifids (like https://bionomia.net for example). In an attempt to improve
the stability of the occurrence URLs and gbifids, we have implemented a warning system to detect these type of changes in datasets (see this news item).
If the data publisher can provide us with a list of old and new occurrenceIDs per record, we can avoid the identifier and URL changes. Could that be an option?
Please let us know if you have any question. Thanks!
All the best,

You can skip/fix identifier validation using the registry UI.


fix(Textarea): match experimental spec

Closes IBM/carbon-components-react#2035
This PR incorporates feedback from the March 2019 textarea component audit
Changelog
New

disabled classes for form label and helper text
experimental invalid state support

Changed

refactor invalid textarea prop logic

Is adding the character count something that is needed to be added for v10? This seems like a feature enhancement and may be out of the scope of aligning vanilla / react styles. We would need to update the vanilla component again as well.

@tw15egan Yeah that is what I was wondering. We can add that as a post v10 thing for now!

Great! Definitely something I want to add, but not a trivial addition and want to make sure we flesh it out for all use-cases

the error outline will be resolved in https://github.com/IBM/carbon-components/pull/2151
@laurenmrice just double checking, are the last 3 points found issues or just reminders? I believe they are already resolved since it directly inherits those from vanilla

@emyarod Sounds good about  error outline issue and counter. Yes the last three points were just to check on, but if they are correct then I will review the latest link.

@laurenmrice changes from https://github.com/IBM/carbon-components/pull/2151 are in, ready for another review!


New keysSet function for Data.VMap

Closing.  I ended up not using this new function.

@newhoggy I left my review just in case you will change your mind on this PR :wink:


Have redundant-existence-check include function args

Fixes #1226

@srenatus not sure I understand. Where's the existence check in fun(false)? 🙂

Excuse my brevity, the test in this PR included this rego:
fun(foo) if {
  foo # line 2
}

the "existence check" in line 2 doesn't seem redundant to me if I feed false into fun().

@srenatus ah, gotcha. I'll amend the docs for the rule to mention that case, and how being explicit for that case (e.g. foo == false/foo != false is a better solution anyway.


Add openMM checkpointing to VanillaMDSimulator

We should be able to stop and start simulations to use short queue-times rather than having to schedule enough time to

This may not be easy with dask, but worth seeing if it is doable.


Multi-line chart click events and sharp edges

Hi I am using chartist-js multi-line chart. For me, the edges of the data points in the graph are not sharp. Is it possible to do that? Also, can we give click events to data points?

Hi @sabithapopuri 👋
By listening for draw events that get emitted by the Chartist chart (example) we can put click events on points when they are being created.


Selective isolation for pass-through components

Imagine three components, A, B and C. Component A is the root-level "app" component. B is a delegator of sorts; it exists as a child component doing work involving http requests and some other things that require isolation, but does not generate a vtree; it just passes through a vtree from its own child, component C. Because of the way isolation works, event selectors inside C stop working because they're expecting namespaced elements to exist due to isolation in B. But seeing as B never generated a vtree, and so the scope for B does not exist in the final vtree, the DOM selector fails to match on any specified events because it's including the namespace from B in the selector.
I need a way to selectively isolate a component; i.e. in my case I want it to perform isolation on everything except the DOM source/sink. For the moment I'm considering just copying the isolate source code into my project and modifying it, but this is an edge case that may crop up with isolation for other users as well. I would be happy to submit a pull request if we agreed on what an options argument might look like.
I'd propose an overload of sorts. Currently you have this:
const component = isolate(MyComponent, scope);

... where scope is an optional string. If passing the scope argument as a string could be considered shorthand for { scope }, then it would allow for additional options. We could then have this:
const component = isolate(MyComponent, {
    include: ['http']
});

or:
const component = isolate(MyComponent, {
    exclude: ['DOM', 'router']
});

The ideal approach would be automatically avoiding scoping the selector if we're only passing a child vtree through to the parent, but because selection has to be done in advance before it's clear that a vtree is in fact not being generated by component B, I'm not seeing a way that could be done automatically, hence specifying a source/sink whitelist or blacklist as an argument when calling the isolate function.

I thought carefully about this one. I'm extra cautious about adding new APIs (= more API surface), but I couldn't find a problem with this suggestion. Obviously it can still be achieved manually, by calling isolateSink for each desired source type, but then some boilerplate reduction is necessary, and it would end up looking like this anyway.
So, approved. :+1:
If you want to help with a PR, just remember to add tests and documentation, besides the implementation itself. :)

probably should take not only string names but also driver object as well as arguments.
const component = isolate(MyComponent, {
    exclude: [DOM, router]
});

@whitecolor That probably wouldn't work because isolation usually takes place before the sources object is available. It might be possible if performing isolation on the fly, but I'd suggest that doing so would probably be an inefficient approach to isolation.

Yeah, has to be strings, as far as I can see.

@staltz I've now written the code for this, but will have to find some time in the next few days to write the tests before I submit a pull request.

@axefrog

isolation usually takes place before the sources object is available
why? isolate is called inside component function, are params to this function not available at start?

const main = ({DOM, router}) => {
  const component = isolate(MyComponent, {
    exclude: [router]
  });
}

why this may not work?

I was thinking more in terms of pre-isolation.  That function is something you then call at a later time, when you're ready to instantiate the component. I see that you're doing it inline which, in your case I guess is valid. Is this behaviour that you're suggesting something you would want to use yourself?

usually (and actually correctly) pre-isolation is done this way, using wrapping function:
const MyComponentIsolated = ({DOM, router}) =>
   isolate(MyComponent, {
      exclude: [router]
    })({DOM, router})({DOM.router})

creating isolated component just with isolate not with wrapper can lead to incorrect behaviour.

I think this would be a very good way to help with the growing complexities of Cycle applications :+1:
I think we should use strings for now as destructuring is required with the other approach, which may not always be desired, and may not always be available etc

Destructing of sources is not required for this simantically, beside this is more explicit and readable:
const MyComponentIsolated = (sources, ...rest) =>
  isolate(MyComponent, {
    exclude: [sources.router]
  })(sources, ...rest)

Is there any code smell using source objects instead their string names or what?

Also such could be supported:
const MyComponentIsolated = (sources, ...rest) =>
  isolate(MyComponent, ['router'])(sources, ...rest)

would be the same as
const MyComponentIsolated = (sources, ...rest) =>
  isolate(MyComponent, {
    include: ['router']
})(sources, ...rest)

If using objects directly can work then :+1:
Regardless of whatever way it ends up being implemented I think its a good addition.

const MyComponentIsolated = (sources, ...rest) =>

isolate(MyComponent, ['router'])(sources, ...rest)
I'd rather not have this API. Too much overloading and starts to be less readable. But I agree with all the rest that was said above.

This is the code I wrote. Have been too busy to write the tests yet, but will submit a PR when I get a chance.
https://gist.github.com/axefrog/b2f4ff4ae5aeb0b47ddb0bf758615e2d

I'm not sure if this API really needed, if the need is cased only by this problem https://github.com/cyclejs/core/issues/290
And you can do it not without some boilderplate but if this need is rare is not so much:
Say you want to exlude DOM and have sources input:
const isolatedChild =
  isolate(scoped => Child({...scoped, DOM: sources.DOM}))
      ({...sources, DOM: {}})

or if you use destructed sources it looks more simple:
const isolatedChild =
  isolate(scoped => Child({...scoped, DOM}))({HTTP, storage})

If you want to just include one HTTP in isolation:
const isolatedChild =
  isolate(({HTTP}) => Child({...sources, HTTP}))({HTTP: sources.HTTP})

Or with destructed:
const isolatedChild =
  isolate(({HTTP}) => Child({DOM, storage, HTTP}))({HTTP})

I'm not sure if this API really needed, if the need is cased only by this problem https://github.com/cyclejs/core/issues/290
And you can do it not without some boilderplate but if this need is rare it is not so much code:
Say you want to exlude DOM and have sources input:
const isolatedChild =
  isolate(scoped => Child({...scoped, DOM: sources.DOM}))
      ({...sources, DOM: {}})

or if you use destructed sources it looks more simple:
const isolatedChild =
  isolate(scoped => Child({...scoped, DOM}))({HTTP, storage})

If you want to just include one HTTP in isolation:
const isolatedChild =
  isolate(({HTTP}) => Child({...sources, HTTP}))({HTTP: sources.HTTP})

Or with destructed:
const isolatedChild =
  isolate(({HTTP}) => Child({DOM, storage, HTTP}))({HTTP})

And intutivly I feel that "partly isolated" component may be a bad pattern in general.

Agreed.

I don't actually disagree. I'll hold off on this pending further discussion on #290 and #226.

Both #290 and #226 should be fixed by Cycle DOM v10 (release candidate). I recommend trying it out

Awesome, well that means that this "fix" is no longer relevant, so I'll close this issue.


Add 'legacy' tag for tests

'legacy' tag marks rules that have no longer sense in recent Ansible
code. I.e. using constructs checked by the rule is syntactically wrong
in recent version of Ansible.
'legacy' is like a regular tags, but it is enabled by default.
If needed it can be enable using the -t option.
ANSIBLE0001 (DeprecatedTemplateBracketsRule) is tagged 'legacy'.

To be honest, I'd accept you removing the check altogether. Ansible handles this check better than ansible-lint does.

I've removed ANSIBLE0001

I've considered your code change for ignoring legacy rules, but I think I'd rather just let people use -x legacy if we have further legacy rules in future.


How to generate inline html ?

Hello, I am new to Markdig and I have the following use-case:
I am trying to write a UI similar to Chat GPT's when the assistant is responding,  with a string of characters followed by a circle. Here is the simplified code:

         @((MarkupString)Markdig.Markdown.ToHtml(MessageViewModel.Text))

         X

-> The issue that I have is that Markdig generates block elements. Is there a way to configure the behavior so that the "X" in the code above appears on the same line as the html generated by Markdig ?
Thanks a lot for your help.

I don't think it's a bug on markdig. You can achieve what you want in CSS, using display: flex rather than display:inline, with with align-items: flex-end. Here's details: https://css-tricks.com/snippets/css/a-guide-to-flexbox/

Agreed, not really a bug or an issue with markdig, but HTML/CSS related.


Remove default algs, BIKEr2; add BIKEr3

Pursuant https://github.com/open-quantum-safe/openssl/pull/313
@bhess: When doing this (assumed simple) update I had to notice that the new NIDs you created "extra" now clash with those we had to make up in oqs-openssl to keep "s2n history"... Please check out #26 for a first cut at resolving this issue: Would you want to make a suggestion how to fix things now? Either "registering" your new hybrid NIDs via an amend-commit to https://github.com/open-quantum-safe/openssl/pull/313 or amend #26 (change extra-NIDs) here. I'd prefer the latter (updating extra NIDs) to not make things more complicated in oqs-openssl.

I'm ok with the latter option as well, updating the extra NIDs in #26.
Looking at https://github.com/open-quantum-safe/openssl/pull/313, what changes are some 3rd round code points (which can be updated by running generate.py, BIKEr3 with ecx hybrids (which is new for oqs-provider), and the Kyber ecx hybrids (which is now conflicting with oqs-provider). For Kyber-ecx it's ok with me to just update the code point here.

OK, shall I then simply chose different NIDs in generate-extras.yml or would you want to propose a change to those as a commit-update to this PR?

OK, shall I then simply chose different NIDs in generate-extras.yml

Thanks, yes that would be fine for my side.


Ensure that at least one of ApplicationLayer features are enabled

Description

For PR author

[ ] Tests for change.
[ ] If changing pkg/apis/, run make gen-files
[ ] If changing versions, run make gen-versions

For PR reviewers
A note for code reviewers - all pull requests must have the following:

[ ] Milestone set according to targeted release.
[ ] Appropriate labels:

kind/bug if this is a bugfix.
kind/enhancement if this is a a new feature.
enterprise if this PR applies to Calico Enterprise only.

You need to figure out how to set this by adding a comment in api/v1/applicationlayer_types.go or else the changes will be removed when the CRDs are regenerated.
Though I don't think that we should make this change, it would mean that a previous valid resource would now fail/be invalid.
@caseydavenport WDYT?

Need to check this one.. I seem to recall requesting this type of validation in the past for this CR, so if we don't currently have it there's probably a reason we opted against it :sweat_smile:
@radixo could you share some context as to why you're opting to make this change now? What prompted this PR?

closed due to age / staleness -- please reopen when there's new updates!


Custom code example templates and renderers

This PR address #170
Adds a new config option: code_example_templates. If a user wants to change the way code examples are rendered in the styleguide, they can add custom templates to this folder. Hologram will look for the following 4 templates:

markup_example_template.html.erb - used for html, haml and slim examples
markup_table_template.html.erb - used for multiple html, haml and slim examples layed out in a table
js_example_template.html.erb - used for js examples
jsx_example_template.html.erb - used for jsx examples

As an example, the markup_example_template looks like this:

    <%= rendered_example %>

        <%= code_example %>

Hologram will fall back on default templates if a user doesn't specify a folder for code_example_templates in their config file (or if certain template files are not found). So this isn't a breaking change :dancer:
This PR restructures the BlockCodeRenderer (again... :cold_sweat: ), but I think that the code is now much more modular. I think this new code will make it easier to get Hologram to the point where users can add their own languages in a simpler way.
Best!
Geoff (cc/ @stubbornella @bebepeng @pivotal-plech)

Okay, I thought what I was adding would be a simple change. Instead this PR got a little crazy. Let me know if it's too much, and I can try to break it up a bit.
This PR now adds the ability for users to add their own custom code example renderers.
For example, let's say I want to render coffeescript examples in my styleguide. Instead of modifying the BlockCodeRenderer, I can use the (new) code example renderer factory:
require 'coffee-script'

Hologram::CodeExampleRenderer::Factory.define('coffee') do
  example_template 'js_example_template'
  table_template 'js_table_template'

  lexer { Rouge::Lexer.find(:coffee) }

  rendered_example do |code|
    CoffeeScript.compile(code)
  end
end

This code is placed in a ruby file in my code\_example\_renderer folder
(a new config option). E.g. this file could be called
(i.e. ./code_example_renderers/coffee_renderer.rb)
.
Now I can render coffeescript examples in my styleguide.
We can render single coffeescript examples...
```coffee_example
$('#myDiv').click ->
	alert 'Oh wow we are rendering coffee script'
```

Or we can render coffeescript tables...
```coffee_example_table
#code goes here
```

Details on how to use the factory are in the readme.
This resulted in lots of code changes (sorry it's kind of crazy), but I think this interface is pretty clean and allow the styleguide to be extremely customizable without having to do crazy things with the block code renderer. Let me know what you think! :grin:

Okay, I thought what I was adding would be a simple change. Instead this PR got a little crazy. Let me know if it's too much, and I can try to break it up a bit.
This PR now adds the ability for users to add their own custom code example renderers.
For example, let's say I want to render coffeescript examples in my styleguide. Instead of modifying the BlockCodeRenderer, I can use the (new) code example renderer factory:
require 'coffee-script'

Hologram::CodeExampleRenderer::Factory.define('coffee') do
  example_template 'js_example_template'
  table_template 'js_table_template'

  lexer { Rouge::Lexer.find(:coffee) }

  rendered_example do |code|
    CoffeeScript.compile(code)
  end
end

This code is placed in a ruby file in my code\_example\_renderer folder
(a new config option). E.g. this file could be called
(i.e. ./code_example_renderers/coffee_renderer.rb)
.
Now I can render coffeescript examples in my styleguide.
We can render single coffeescript examples...
```coffee_example
$('#myDiv').click ->
	alert 'Oh wow we are rendering coffee script'
```

Or we can render coffeescript tables...
```coffee_example_table
#code goes here
```

Details on how to use the factory are in the readme.
This resulted in lots of code changes (sorry it's kind of crazy), but I think this interface is pretty clean and allow the styleguide to be extremely customizable without having to do crazy things with the block code renderer. Let me know what you think! :grin:

Seems like a very good way to go, it was one of the reasons I stopped using Hologram, but I think I'm about to take another look...

Seems like a very good way to go, it was one of the reasons I stopped using Hologram, but I think I'm about to take another look...

Overall, this looks like a great change, it seems like it will make it a lot easier to add custom renderers and accept PRs for custom renderers without feeling like it will complicate the basic setup. That said, holy enormous PR @gpleiss! This broke my brain.

How can we be certain we've maintained backwards compatibility? For teams that are using hologram out of the box? What about those that already wrote custom renderers like we did?

@stubbornella if a team has written a custom MarkdownRenderer, they'll bypass all the files added/modified as part of this PR. So they won't be able to write their own custom code renderers, but they're current code shouldn't break.
In addition, if a team doesn't have a custom_code_templates folder, Hologram will use default templates. I tested this PR out on Pivotal UI, which didn't have a custom_code_templates folder and everything worked.

I updated the documentation based on the comments from @stubbornella @pmeskers and @bebepeng

Very solid pull request, this will definitely be handy to a lot of users.


Add lpdc-management micro-service

Add lpdc-management-service and the corresponding needed migrations to support loading LPDC concepts and instances.
Loading a completely new LPDC instance is currently not working due to an issue that needs to be investigated.

The lpdc-management functions seems to all work without issues, with the exception of a Virtuoso 42000 Error SR186:SECURITY: No permission to execute dpipe DB.DBA.L_O_LOOK_NE with user ID 107, group ID 107 issue that others seem to be encountering as well with Virtuoso:1.1.0 and Virtuoso:latest.


Reinforce groups do not function correctly

A change to CopLogicIdle._chk_relocate with the addition of Death Sentence in U173 forces enemies with a defend_area objective to immediately move away if there isn't a criminal in their objective area, which means instead of reinforcing an area as intended, they just rush the player.

Ouch, that's a pretty significant downgrade in their AI.
Thanks a lot for bringing it to my attention! I'll do my best to fix this (and more) in the next update.

Fixed. Thanks again for the report!


Singnificant increase in tx mining from ~1 minute up to ~ 180 - 360 minutes (3 - 6 hours) over last 5 days

Hello Dev Team,
I just noticed the significant increase in tx mining from ~1 minute up to ~ 180 - 360 minutes (3 - 6 hours) over last 5 days. Does any recent changes from you side cause it?
Yesterday I faced with issue my working code start throw timeout exception:
Transaction receipt was not generated after 600 seconds for transaction: 0xb92c3df992ea0ad240ae0e1ed46da932d0db2725759137b417524e9c86d69677
I had been debugging the code for a bug, but today morning I found the tx appears on etherscan after 3-6 hours when it had been mined. https://goerli.etherscan.io/address/0x3106248FBB449ED92b03d6f93F43f464CD95b74d.
10-6 days ago it took near a minute to get tx receipt and found out the tx on etherscan.
Possibly linked to this issue: https://github.com/eth-clients/goerli/issues/126

duplicate of #126

@q9f, would you assign #126 on yourself to start work on it? Could you please share a context behind this issue (what had caused it?) and estimate on time the issue would be solved&released?

This repository is used to coordinate the testnet configurations and initiatives, not to resolve issues with infrastructure providers. I'll leave #126 open to allow facilitating a discussion, but there is not much more I can offer as this is not an issue with the network itself.

Thank you for feedback. Does it mean you are as testnet
developers/stakeholders did not release any updates the goerly testnet
during the past ten days? Does it mean due decentralized nature of the
technology there's no way to communicate with infrastructure providers aka
nodes regarding this or similar issue? (actually there is should be one,
otherwise there wouldn't be a way to do such updates like the recent 'the
merge')
On Tue, Oct 25, 2022, 7:58 PM Afri @.***> wrote:

This repository is used to coordinate the testnet configurations and
initiatives, not to resolve issues with infrastructure providers. I'll
leave #126 https://github.com/eth-clients/goerli/issues/126 open to
allow facilitating a discussion, but there is not much more I can offer as
this is not an issue with the network itself.
—
Reply to this email directly, view it on GitHub
https://github.com/eth-clients/goerli/issues/127#issuecomment-1290866898,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AADIDDXMEM5TUS3AK77MBPLWFAGRVANCNFSM6AAAAAARK6G2TY
.
You are receiving this because you authored the thread.Message ID:
@.***>


out of memory during restic prune

Output of restic version
restic 0.13.1 compiled with go1.18 on windows/amd64
How did you run restic exactly?
RESTIC_CACHE_DIR=F:\Restic
RESTIC_PASSWORD=C:\Restic\passwd.txt
RESTIC_REPOSITORY=C:\Restic\restic.txt
restic prune

What backend/server/service did you use to store the repository?
Wasabi S3 Storage (https://wasabi.com/)
Expected behavior
delete unused object from repository

Actual behavior
PS C:\> restic prune
repository 45f0f1a4 opened successfully, password is correct
loading indexes...
loading all snapshots...
finding data that is still in use for 57 snapshots
[0:46] 100.00%  57 / 57 snapshots...
searching used packs...
runtime: VirtualAlloc of 623902720 bytes failed with errno=1455
fatal error: out of memory

runtime stack:
runtime.throw({0x16394c0?, 0xc247e60000?})
        /usr/local/go/src/runtime/panic.go:992 +0x76
runtime.sysUsed(0xc225200000, 0x25300000)
        /usr/local/go/src/runtime/mem_windows.go:83 +0x1c9
runtime.(*mheap).allocSpan(0x1d75880, 0x12980, 0x0, 0x1)
        /usr/local/go/src/runtime/mheap.go:1279 +0x428
runtime.(*mheap).alloc.func1()
        /usr/local/go/src/runtime/mheap.go:912 +0x65
runtime.systemstack()
        /usr/local/go/src/runtime/asm_amd64.s:469 +0x4e

goroutine 1 [running]:
runtime.systemstack_switch()
        /usr/local/go/src/runtime/asm_amd64.s:436 fp=0xc18a84aa30 sp=0xc18a84aa28 pc=0xc32020
runtime.(*mheap).alloc(0x25300000?, 0x12980?, 0xc5?)
        /usr/local/go/src/runtime/mheap.go:906 +0x65 fp=0xc18a84aa78 sp=0xc18a84aa30 pc=0xbf7065
runtime.(*mcache).allocLarge(0x27750b4d6a8?, 0x25300000, 0x1)
        /usr/local/go/src/runtime/mcache.go:213 +0x85 fp=0xc18a84aac8 sp=0xc18a84aa78 pc=0xbe7305
runtime.mallocgc(0x25300000, 0x1584140, 0x1)
        /usr/local/go/src/runtime/malloc.go:1096 +0x5a5 fp=0xc18a84ab40 sp=0xc18a84aac8 pc=0xbdd6e5
runtime.newarray(0xc18a84aba0?, 0xbd7052?)
        /usr/local/go/src/runtime/malloc.go:1281 +0x52 fp=0xc18a84ab68 sp=0xc18a84ab40 pc=0xbddbf2
runtime.makeBucketArray(0xbd6dc5?, 0xa0?, 0xbd36fa?)
        /usr/local/go/src/runtime/map.go:363 +0x18e fp=0xc18a84aba8 sp=0xc18a84ab68 pc=0xbdea2e
runtime.hashGrow(0x1569b60?, 0xc03885f5f0)
        /usr/local/go/src/runtime/map.go:1049 +0x79 fp=0xc18a84abe8 sp=0xc18a84aba8 pc=0xbe0339
runtime.mapassign(0x15d0c80, 0xc03885f5f0, 0xc000472800?)
        /usr/local/go/src/runtime/map.go:658 +0xd4 fp=0xc18a84ac68 sp=0xc18a84abe8 pc=0xbdf2d4
github.com/restic/restic/internal/restic.BlobSet.Insert(...)
        /restic/internal/restic/blob_set.go:26
main.prune({_, {_, _}, _, {_, _}, _, _}, {{0x0, 0x0}, ...}, ...)
        /restic/cmd/restic/cmd_prune.go:222 +0x329 fp=0xc18a84b7e8 sp=0xc18a84ac68 pc=0x1410d09
main.runPruneWithRepo({_, {_, _}, _, {_, _}, _, _}, {{0x0, 0x0}, ...}, ...)
        /restic/cmd/restic/cmd_prune.go:162 +0x205 fp=0xc18a84b9a0 sp=0xc18a84b7e8 pc=0x1410925
main.runPrune({_, {_, _}, _, {_, _}, _, _}, {{0x0, 0x0}, ...})
        /restic/cmd/restic/cmd_prune.go:140 +0x213 fp=0xc18a84bb78 sp=0xc18a84b9a0 pc=0x1410573
main.glob..func18(0x1d4b920?, {0x162fe94?, 0x0?, 0x0?})
        /restic/cmd/restic/cmd_prune.go:35 +0x8a fp=0xc18a84bd08 sp=0xc18a84bb78 pc=0x140fc2a
github.com/spf13/cobra.(*Command).execute(0x1d4b920, {0x1db3930, 0x0, 0x0})
        /home/build/go/pkg/mod/github.com/spf13/cobra@v1.2.1/command.go:856 +0x67c fp=0xc18a84bde0 sp=0xc18a84bd08 pc=0xedb7bc
github.com/spf13/cobra.(*Command).ExecuteC(0x1d4d220)
        /home/build/go/pkg/mod/github.com/spf13/cobra@v1.2.1/command.go:974 +0x3b4 fp=0xc18a84be98 sp=0xc18a84bde0 pc=0xedbe34
github.com/spf13/cobra.(*Command).Execute(...)
        /home/build/go/pkg/mod/github.com/spf13/cobra@v1.2.1/command.go:902
main.main()
        /restic/cmd/restic/main.go:98 +0x32 fp=0xc18a84bf80 sp=0xc18a84be98 pc=0x1428c92
runtime.main()
        /usr/local/go/src/runtime/proc.go:250 +0x1fe fp=0xc18a84bfe0 sp=0xc18a84bf80 pc=0xc0925e
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1571 +0x1 fp=0xc18a84bfe8 sp=0xc18a84bfe0 pc=0xc34381

goroutine 6 [chan receive, 2 minutes]:
github.com/restic/restic/internal/restic.init.0.func1.1()
        /restic/internal/restic/lock.go:250 +0x77
created by github.com/restic/restic/internal/restic.init.0.func1
        /restic/internal/restic/lock.go:247 +0x25

goroutine 18 [syscall, 2 minutes]:
os/signal.signal_recv()
        /usr/local/go/src/runtime/sigqueue.go:151 +0x2f
os/signal.loop()
        /usr/local/go/src/os/signal/signal_unix.go:23 +0x19
created by os/signal.Notify.func1.1
        /usr/local/go/src/os/signal/signal.go:151 +0x2a

goroutine 8 [select]:
go.opencensus.io/stats/view.(*worker).start(0xc000162800)
        /home/build/go/pkg/mod/go.opencensus.io@v0.23.0/stats/view/worker.go:276 +0xad
created by go.opencensus.io/stats/view.init.0
        /home/build/go/pkg/mod/go.opencensus.io@v0.23.0/stats/view/worker.go:34 +0x8d

goroutine 9 [chan receive, 2 minutes]:
main.CleanupHandler(0x0?)
        /restic/cmd/restic/cleanup.go:59 +0x39
created by main.init.0
        /restic/cmd/restic/cleanup.go:21 +0x8b

goroutine 140 [select]:
github.com/restic/restic/internal/repository.(*Index).Each.func1.2(0xc06b0dff58)
        /restic/internal/repository/index.go:267 +0x196
github.com/restic/restic/internal/repository.(*indexMap).foreach(...)
        /restic/internal/repository/indexmap.go:59
github.com/restic/restic/internal/repository.(*Index).Each.func1()
        /restic/internal/repository/index.go:266 +0x1e2
created by github.com/restic/restic/internal/repository.(*Index).Each
        /restic/internal/repository/index.go:258 +0xe5

goroutine 25 [select, 2 minutes]:
main.refreshLocks(0x0?, 0xc0002ac300)
        /restic/cmd/restic/lock.go:77 +0xd1
created by main.lockRepository
        /restic/cmd/restic/lock.go:54 +0x1b1

goroutine 139 [select]:
github.com/restic/restic/internal/repository.(*MasterIndex).Each.func1()
        /restic/internal/repository/master_index.go:269 +0x279
created by github.com/restic/restic/internal/repository.(*MasterIndex).Each
        /restic/internal/repository/master_index.go:260 +0xe5

Steps to reproduce the behavior
just run restic prune after forgeting few snapshots

Do you have any idea what may have caused this?
maybe repository size 36TB
Do you have an idea how to solve the issue?
no
Did restic help you today? Did it make you happy in any way?
Restic is fantastic and I'm using it for few years on many projects.

36 TB is quite large for a repository. As a temporary workaround you could try to set the environment variable GOGC=20 which will make the garbage collector more aggressive. But you should consider splitting the repository if possible. How large is the index/ folder of the repository? How much memory does the host running restic have?

Many thanks for your suggestions... I've tried running prune with GOGC=20 and it seems like it helped a little bit, as it takes significantly longer until I got out of memory, but it still crashed.
My index/ takes 3.7GB and host has 16GB of RAM which should be good enough imho.
However I've increased memory to 24GB and it passed. I'm quite surprised how resource intensive the prune operation is and have doubts if it's effective.

Same here:
one day prune killed with 4 GB memory. Ater add +1Gb. runs fine. seems like wanted 4,5 GB for system.
restic 14.x with local repo. Repo not upgraded.
Stopped at "finding data that is stil in use for" get about 7xx from 890 snapshoots.
Index was 1.1 GB
Data arount 6TB..

Prune currently requires about 3 times the index size plus GC overhead = 3 * (1 + GOGC/100) = 6 (by default).
#3899 will reduce the first factor from 3 to 2.

@LuckyFrost How large is the index folder of the repository? I have a few ideas which could reduce the memory usage by a factor 4 compared to the current state. But everything beyond that will require a complete rework of the repository index.
How many files does the repository contain? 100 million files?

Sorry for such a long lack of response.
Cleared the repository completely and made new backups.
Here's what it looks like now:
36,67TB
105 snapshots
In storage (s3): 1 223 343 files
Repo v2, compressed
Additional backup options:
--pack-size 32
63GB RAM used at step "loading indexes"
Then, at some point at the same stage, it dropped to 40GB
Then on step
"loading all snapshots...
finding data that is still in use for 25 snapshots"
It gradually grew up to 85GB
At step "repacking packs" the amount of memory consumed increased to 105GB

How large is the index folder? And how many files does a snapshot contain? Reducing the memory usage below the 40GB used after loading the index requires a complete rearchitecture of the index (in addition to making prune more memory efficient). And that won't happen anytime soon.

After the previous cleaning, the repository has not yet gained the previous size (36TB), but at the moment with 26TB in use:

How large is the index folder?
Total Objects: 1665
Total Size: 10.9 GiB

And how many files does a snapshot contain?
I'm not sure if I understood the question correctly, but probably 1 file because all data is from stdin

I'm not sure if I understood the question correctly, but probably 1 file because all data is from stdin

So you're essentially passing nearly 1TB files to restic via stdin? Otherwise I can't get anywhere near the repository size for that number of snapshots.
The number of files is a snapshot is useful to estimate how many file blobs restic has to manage in the index. When assuming very large files, we can assume all blobs have the minimum chunk size, which would yield 52 million blobs for a 26 TB repository.
At about 225 bytes per entry (index size / blob count) that number would be a good fit for a v1 repository, but we're missing a factor 3-4 for a v2 repository.

For greater accuracy, I will say that xtrabackup (mysql backup tool) is used in this case. How much is added is also attached
xtrabackup --backup --socket=/var/lib/mysql
/mysql.sock  --stream=xbstream --target-dir ./ | /usr/bin/restic --password-file /xxxx -r s3:http://yyyy:8081/xxx-db-backup-restic backup --cache-dir=/zzz --stdin --pack-size 16"

Files:           1 new,     0 changed,     0 unmodified
Dirs:            0 new,     0 changed,     0 unmodified
Added to the repository: 1.365 TiB (266.317 GiB stored)

processed 1 files, 4.633 TiB in 1:29:04

processed 1 files, 4.633 TiB in 1:29:04

Oh, that is larger than I've expected. That basically means that the directory metadata, which contains the single file from stdin, is about 700MB large when serialized on disk. In memory its probably quite a bit larger. That is probably also what causes the higher than expected memory usage. As the server likely also has quite a few CPU cores, it might help to set the environment variable GOMAXPROCS=4 to limit restic to 4 CPU cores when running prune. That should also reduce the memory usage a bit especially during the repack step of prune.
The next restic version will also reduce the memory usage during prune quite a bit (approx 30% less), but won't magically make that high memory usage disappear. Once #2446 is fixed, the memory usage should peak before the repack step. But the main problem still remains, that restic is not optimized for multi-TB files so far. Changing that is more of a long-term project as it will require changes to the repository format.

36 TB is quite large for a repository. As a temporary workaround you could try to set the environment variable GOGC=20 which will make the garbage collector more aggressive. But you should consider splitting the repository if possible. How large is the index/ folder of the repository? How much memory does the host running restic have?

I didn't see any documentation for Restic about what could be considered large, or potentially too large, for a repository size. Is this something you could elaborate on? I'd like to know if I'm going to have potential problems executing a prune or other commands.
I'm not yet a Restic user. I did a test yesterday to back up a smaller number of files to a Backblaze B2 bucket (using the S3 API) and I was happy with the result. I was planning on going all-in with Restic in the next few days.
I did see the documentation on increasing the pack size. I settled on 128 MB for that. However, I don't know how having larger pack files will affect a command like prune if at all.
For context: I currently have a 500 GB OS drive, and three other 4 TB drives. I want all of these backed up to B2 using Restic. From your comment I gather it's ideal to have a separate repo for each drive. However, the main thing that drove me to look into cloud backups and to find Restic was my desire to replace two of those 4 TB drives with 16 TB drives. If I am using 1 repo per drive I want to know if, in the future, I'll have trouble with at least 16 TB of data in a B2 repo.

I didn't see any documentation for Restic about what could be considered large, or potentially too large, for a repository size. Is this something you could elaborate on? I'd like to know if I'm going to have potential problems executing a prune or other commands.

restic is currently probably most suitable for single digit TB size repositories, double digit TB will probably work too, but a few performance limits may start to show up.
The larger a repository is, the more memory restic will require, a very rough estimate would be 200MB per 1 million files and also per 1 TB of data. There are few exceptions like multi-TB files or folder which directly (i.e., not in a subfolder) contain millions of files, which can lead to higher memory usage.
The larger a repository is, the more time prune/check will take. As these currently prevent concurrent access to the repository, this is also something you might want to take into account.

The larger a repository is, the more memory restic will require, a very rough estimate would be 200MB per 1 million files and also per 1 TB of data. There are few exceptions like multi-TB files or folder which directly (i.e., not in a subfolder) contain millions of files, which can lead to higher memory usage.

I don't think I'll have a problem with memory usage them. One of my drives would reach 1 GB of memory by this metric, which is perfectly fine. I would suggest including this in the documentation though. It's important to know.

The larger a repository is, the more time prune/check will take. As these currently prevent concurrent access to the repository, this is also something you might want to take into account.

When you say larger do you mean in terms of file count or file size? I was intending to do a 1% check per day, which would keep my data retrieval charges to a reasonable level with B2. When it comes to prune, if it's something that can be done a few hours overnight every week or month then it isn't an issue.
Can you think of a good metric for estimating the amount of work needed for a prune? I realize the total time would be subject to network bandwidth and CPU usage, so that would be more difficult to estimate.
Here is my current drive layout if it is helpful at all:
C: 302.0 GB used of 464.3 GB, 2,200,000 files
E:   3.2 TB used of  13.0 TB,   119,000 files
F:   3.6 TB used of  13.0 TB,   707,000 files
G:   2.7 TB used of   3.6 TB, 2,600,000 files

As I said, I'll have a separate repo for each drive. Two of them were recently upgraded in capacity, and the vast majority of new data on them will be video files for TV and movies, so hundreds of MB to several GB in size.

Here is my current drive layout if it is helpful at all
Rather not very helpful. If you don't have a lot of changes in the files, then the size of the repository will grow insignificantly with every backup. And repacking will also not be very long.
On the other hand, if you change all the contents every day, then after a certain number of backups your repository will grow to huge sizes and its repacking will be very long.

Rather not very helpful. If you don't have a lot of changes in the files, then the size of the repository will grow insignificantly with every backup. And repacking will also not be very long.
On the other hand, if you change all the contents every day, then after a certain number of backups your repository will grow to huge sizes and its repacking will be very long.

You're right, I do need to keep the number of changes in mind. Fortunately, I don't make that many changes, and I don't plan on keeping any snapshots beyond a month. I don't anticipate any issues here.
Thanks for the information.

Prune currently requires about 3 times the index size plus GC overhead = 3 * (1 + GOGC/100) = 6 (by default).
#3899 will reduce the first factor from 3 to 2.

With https://github.com/restic/restic/pull/4353 and https://github.com/restic/restic/pull/4354 the overall overhead will decrease to about 1.5 times the index size. This yields the following memory usage graph (generated using gcvis), for a repository with 5 million blobs.

The initial memory usage peak occurs while loading the index, which requires some additional scratch space. Finding all used blobs requires no additional memory. Afterwards, during the repack phase, the memory usage slowly increases. This is caused by the new index entries added for the rewritten blobs. This additional memory usage is proportional to the amount of rewritten blobs and thus should be unproblematic in general.
What's much more problematic, is the memory usage spike at the end. Before compression each index blob has about 20-30MB, multiply that with the compression overhead and the parallelism of 16 CPU cores and 5 threads (16+5), and the result is a memory usage spike by 1.3 GB in this case. This overhead is largely independent of the repository size.
To reduce that overhead we have three options:

reduce concurrency, the current level is probably a bit too much.
reduce the size of an individual index. A smaller index requires less memory to compress and upload.
Unload the repository index and process the individual index files one after another.

The first two options are rather simple to implement, whereas the third option requires a rewrite of how the index is rebuilt. This would also be useful for https://github.com/restic/restic/issues/3806 .

Prune currently requires about 3 times the index size plus GC overhead = 3 * (1 + GOGC/100) = 6 (by default).
#3899 will reduce the first factor from 3 to 2.

looks like version 0.11.0 doesn't have #3899?
#> restic prune ...
load all snapshots
find data that is still in use for 155 snapshots
runtime: out of memory: cannot allocate 310378496-byte block<PHONE_NUMBER> in use)

size of index folder is 1.07 GB. I don't see a GOGC env variable on my system (raspbian on arm with 4 GB ram, 16 GB swap)
Running prune from a different machine with more memory for now, but hoping for #3899.

Fixed via https://github.com/restic/restic/pull/4812 and #4354. See https://github.com/restic/restic/pull/4354#issuecomment-2120475965 for a memory usage graph. The memory usage should now be rather similar to that of the backup command.


migrate examples to openApi part 12; affects [GitHub Gist]

Refs #9285
I'm not going to repeat the same blurb. In this one I am still tackling easier cases (all path params) but I'm now moving on to the ones with a description/documentation string of some kind.

There are a couple of failing github tests on the most recent run, but they're unrelated to the changes on this branch


feat: Allow deserialize into existing value

serde-bridge only provides API like T::from_value(v) -> T, we need to supports deserialize into existing value like parse_value(&mut T, v).

Can't supported as deserializer.


Bug after update

Updated apexcharts on the latest version. After that markers on all charts are not displayed. Tried to remove chartOptions that default settings were exposed, but it did not help. Also the line which appears when targeting is not displayed.

Couldn't reproduce on my side. Markers displays as expected on all my sample charts.
Can you create a codepen so I can look at the configuration?

Solved. The new version do not work with numbers as strings.


Add components sample for CloudFormation

Adding Components sample for CloudFormation
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Got offline approval.


Ionic side menu opens 2 views when using state.resolve with a delayed promise

I've reported this as an Ionic Issue but I now suspect it's actually a ui-router issue.  I've had a closer look at the code for the Ionic side menu directive I really doubt that this bug is there.
I've created a Plunker example based on the side bar starter app for

Ionic v1.1.0   (http://code.ionicframework.com/1.1.0/js/ionic.bundle.js)
AngularJS 1.4.3

I've  modified the Ionic starter app so that the  app.playlist state uses a resolve attribute to return the playlists array using a $q promise with a 1000 ms delay.  I found that this issue occurs when the delay is >= 300ms.
Steps to reproduce:

Start Plunker Demo

Select Browse menu option

Browse view displays normally

Select Playlist menu option

Displays Browse view (!) with header menu button
1 sec later it then pushes the Playlist view showing both menu button and now also a <Back button !

In general it always displays the most recently selected view and then the selected view after the promise resolves.

Looks like correct behavior from the UI Router side. I'm guessing the behavior you want is for the menu not to close until the promise resolves. Is that correct?

Yes ... Otherwise the menu fires twice - once on 1st click and then again when the promise resolves.

Yeah, sounds like it's probably an Ionic issue then. The ion-side-menu close animation needs to block until the transition is complete. I'll leave this open in case anything comes up on the Ionic side we need to address.

+1

Closing due to inactivity and not hearing anything more