rand: make public/private chainging to primary be configurable, by using primary directly

rand: make public/private chaining to primary configurable
Add runtime configuration [random] chain = <bool> and build-time
configuration -DOPENSSL_RAND_CHAIN=int to control if public/private
DRBGs are chained to primary, or not. Defaults to chain, current v3+
behaviour.
This is useful for NIST ESV certification, as currently chained and
unchained entropy sources are considered to be distinct. Thus
operating without chaining, may allow reuse of an existing ESV
certificate for Linux kernel, or Jitter Entropy library without need
to re-submit a separate ESV certificate for linux+OpenSSL or
jitter+OpenSSL, as per current guidance.
Also note, future developments in Linux kernel may make un-chained
mode of operation particularly attractive with inclusion of getrandom
in vDSO in upcomming Linux kernel v6.11, potentially being quicker
than chaining with locks to a syscall. Thus there is performance
optimisations to this as well.
Note current chaining behaviour is preserved, and it is considered to
be behave better on low entropy systems.

Return primary drbg instead of public/private, when chain=0

This PR is alternative implementation of https://github.com/openssl/openssl/pull/25168
That other pr tried to still create public/private drbgs; chain them to seed-src; which was failing in FIPS callbacks.
This implementation instead simply uses public drbg whenever public/private is requested when chaining is turned off. This passes testing, and feel very fast - but I shall benchmark this more.
I am very curious to test this on top of 6.11 kernels with vDSO getrandom implementations. And see impact on threaded applications. As I wonder that maybe using unchained primary will yield better performance for both default and fips providers on modern systems. Or if for example unchained primary needs to become per-thread like public/private were.
This implementation is what is suggested in https://github.com/openssl/openssl/pull/25168#issuecomment-2287458998
This is not an implementation of https://github.com/openssl/openssl/pull/25168#issuecomment-2299982557
Also related, but for now rejected - https://github.com/openssl/openssl/pull/25220
I'd like this to be reviewed, I don't know if we want this merged for 3.4 or for 3.5; or if we want to instead work on getting  this design https://github.com/openssl/openssl/pull/25168#issuecomment-2299982557 done instead. I probably will need to use this in the interim, until something better is merged into openssl codebase.
(cc @paulidale @slontis @t8m )

I'd much prefer to figure things out properly and target 3.5 rather than introducing something which will then require supporting for an extended period.
Feature freeze for 3.4 is the 30th of August.

I missed the 3.4 freeze announcement. Time flies, thought I had more time.

I am pondering if i need this at all, given https://github.com/openssl/openssl/pull/25415 got merged.

It would be nice to have a more flexible way to arrange the DRBGs & seed source.  The rigidity of OpenSSL's setup has proven to be more of a hindrance than asset in several ways.  I'm not if the core of this suggestion is reusable or if there is a better approach.

Typo in PR title only AFAIS

Abandoning/closing this PR for now, in favor of https://github.com/openssl/openssl/pull/25615


feat: add RAG_EMBEDDING_OPENAI_BATCH_SIZE to batch multiple embeddings

Pull Request Checklist
Before submitting, make sure you've checked the following:

[x] Target branch: Please verify that the pull request targets the dev branch.
[x] Description: Provide a concise description of the changes made in this pull request.
[ ] Changelog: Ensure a changelog entry following the format of Keep a Changelog is added at the bottom of the PR description.
[ ] Documentation: Have you updated relevant documentation Open WebUI Docs, or other documentation sources?
[ ] Dependencies: Are there any new dependencies? Have you updated the dependency versions in the documentation?
[x] Testing: Have you written and run sufficient tests for validating the changes?
[x] Code review: Have you performed a self-review of your code, addressing any coding standard issues and ensuring adherence to the project's coding standards?
[x] Label: To cleary categorize this pull request, assign a relevant label to the pull request title, using one of the following:

BREAKING CHANGE: Significant changes that may affect compatibility
build: Changes that affect the build system or external dependencies
ci: Changes to our continuous integration processes or workflows
chore: Refactor, cleanup, or other non-functional code changes
docs: Documentation update or addition
feat: Introduces a new feature or enhancement to the codebase
fix: Bug fix or error correction
i18n: Internationalization or localization changes
perf: Performance improvement
refactor: Code restructuring for better maintainability, readability, or scalability
style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc.)
test: Adding missing tests or correcting existing tests
WIP: Work in progress, a temporary label for incomplete or ongoing work

Changelog Entry
Description
Add RAG_EMBEDDING_OPENAI_BATCH_SIZE that controls how many texts are batched together in a single OpenAI embedding call. OpenAI has a limit of 2048 in a single request.
This reduces the number of calls and thus latency of large number of embeddings, and is helpful when limited by the number of API calls instead of tokens embedded (such as Cohere's 5 RPM, 96 texts/embed or Geminis 150 RPM, 100 texts/embed)
Screenshots or Videos

LGTM!


Update httpbin certificate chain

Fixes failing certificate pinning tests.
Also, on the test called testCertificatePinningIsEnforcedForHTTPBinOrgPinnedCertificateWithCaseInsensitiveDomainNameValidationAgainstHTTPBinOrgServerTrust (note the CaseInsensitive part), I changed the domain string with a different case.

Awesome work, @reacuna. Thanks so much for your help!


Workflow diagram

PDF version of the diagram can be found here

Pull Request Test Coverage Report for Build 152

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

Totals

Change from base Build 149:
0.0%

Covered Lines:

Relevant Lines:
0

💛  - Coveralls


This change adds requirements for FIPS

This change ensures the infra-operator is built with FIPS compliance.

/recheck

recheck

recheck

rebased and adapated it to golang 1.20

Content provider still failing. We probably need to land https://github.com/openstack-k8s-operators/openstack-operator/pull/668 first

recheck

https://github.com/openstack-k8s-operators/openstack-operator/pull/668 merged so hopefully it helps here too

/test infra-operator-build-deploy-kuttl
The other two kuttl tests passed so this probably some race
=== CONT  kuttl/harness/redis
    logger.go:42: 14:02:04 | redis | Skipping creation of user-supplied namespace: infra-kuttl-tests
    logger.go:42: 14:02:04 | redis/1-deploy-redis | starting test step 1-deploy-redis
    case.go:364: failed in step 1-deploy-redis
    case.go:366: Internal error occurred: failed calling webhook "mredis.kb.io": failed to call webhook: Post "https://infra-operator-controller-manager-service.openstack-operators.svc:443/mutate-redis-openstack-org-v1beta1-redis?timeout=10s": dial tcp <IP_ADDRESS>:9443: connect: connection refused


[ZEPPELIN-1081] Extract spark.r setting from interpreter-setting.json on Spark interpreter mudule

What is this PR for?
Avoid setting spark.r without -Psparkr. This enables to use -Pr correctly.
What type of PR is it?
[Bug Fix]
Todos

[x] - Separate settings with profile

What is the Jira issue?

https://issues.apache.org/jira/browse/ZEPPELIN-1081

How should this be tested?

Build Zeppelin with -Pr
Run codes with R

Screenshots (if appropriate)
Questions:

Does the licenses files need update? No
Is there breaking changes for older versions? No
Does this needs documentation? No

Ready to review. This is related to #1077

I'll merge it into master and branch-0.6


Replace libxcb-ewmh-dev with libxcb-ewmh1-dev

The incorect package was added to the whitelist in 63554b0cf -
libxcb-ewmh-dev only exists in versions after Ubuntu Precise.
Precise uses libxcb-ewmh1-dev, so update the whitelist accordingly.
Fixes #1581

Ping @BanzaiMan

@BanzaiMan Any hope of this being merged?

Ping @BanzaiMan @meatballhat

Now Trusty builds using libxcb-ewmh-dev are broken. Can’t we just have both?


getSize() method to return actual value in inches/centimeters

Describe your idea
getSize() method to return actual value in inches/centimeters

currently returns value in pts
similarly for get getWidth() and getHeight()

How could this be implemented?
.getInchesSize()
.getCentimetersSize()
or
.getSize().inches()
.getSize().centimeters
What problem are you trying to solve?
I am trying to extract width and height property from my pdf (page size property)
Values are: 22.22 x 16.53 in
What I get from getSize() ?
1600 1190 (close but not precise)
Why does this matter to you?
I am working on a project where precision is a key and current getSize() could lead to a problem with larger PDF files
Would others find this helpful?
I couldn't find any other js library that would be able to read pdf page size accurately in inches/centimeters
Are you interested in implementing your proposal?
No
Why are you submitting a proposal?
I was wondering if there is a way this idea could be implemented
Additional Notes
Thanks for the consideration

Hello @simonhrmo! Thanks for the proposal. I'd be open to accepting a PR for this. It should be fairly straightforward to implement.
Some info for anybody interested in working on it: The values returned by all size-related methods are in "point" units. 1 point = 1/72 inch. See also https://github.com/Hopding/pdf-lib/issues/19#issuecomment-412275915.
A couple API possibilities come to mind:
// New methods for each size unit
page.getWidthInches()
page.getHeightInches()
page.getSizeInches()

// An option parameter denoting the desired unit
import { Unit } from 'pdf-lib'
page.getWidth({ unit: Unit.Inch })
page.getHeight({ unit: Unit.Inch })
page.getSize({ unit: Unit.Inch })

I'm leaning towards an option parameter atm.

hi! is anyone working on this API yet? or already implemented?
would love to try to contribute if not


Added the padding required at the footer and irregular size of the icons

hey I have fixed the issue kindly merge it and if there is any conflicts then let me know

Kindly merge my pull request! And tell me if there's any conflict. Thankyou Sir.

This branch has conflicts that must be resolved
Use the web editor or the  to resolve conflicts.
Conflicting files
index.html

conflicts are resolved.

@adithyapaib if there are any other conflicts then  let me know

Conflicting files
index.html
sad bro

Upsteam or fetch before making any changes


Rework csv-chatbot to use a SQL database

Currently, it uses Hibernate for inserting the data, I'm not completely sure we want that... But the code then looks nicer than raw JDBC usage, so perhaps keep it?

But the code then looks nicer than raw JDBC usage, so perhaps keep it?

:cough: StatelessSession :cough: :)

Uhmm, swapped EntityManager for StatelessSession :)

Amazing. I can even ask questions like
What's the average rating of movies in the database?

and it executes
SELECT AVG(imdb_rating) as average_rating
FROM movie;

and gives the correct answer. This wouldn't be possible with embeddings at all.

That's awesome!
To be honest I am not completely susprised because from what I have been reading, LLMs have been trained on a ton of SQL


Spell Debug and more

This one's big, gotta take some time to go through :)

Replaced DamageCritter
I think someone wanted to add a hook here - @doug1234 ? @anatoliy-savchak ? @Sagenlicht ?


frame length field does not match length

I try to decode with ./reader.py -v -t '764421042003377025071C5F722003377021042507180060054F9E79056282DB137F36127732F287DC99463D448F7AE638B54250D4D49255AF4CBF70FC5918CEBCEB3A9942507D02A7C7F8F11D4130F6C9C5FB4E48CE8B88E7381055B17F31C960B83F2EE219CD0E7200CA9ECA2D37CE3735AEAF7DAFCE9310BD54BD4D81CFDEC7153C5E600AFB80' but get an WARNING: frame length field does not match effective frame length! Decoding might be unreliable. Check your input. frame[0]:  118 len(frame)-1:  135 error.
I wonder if this could be an issue with reader.py instead? - When the same raw-message is parsed through another tool (FHEM, 36_WMBUS.pm), it's processed fine, without error.
Is this something you could have a look at?
Thanks!

Well, it's basically an encoded message, so I had to add the AES key to reader.py. However, the issue remains. Any thoughts?

From what i found the data needs to have CRCs stripped form data an header


feat(navigation): add screen reader text to hamburger button

describe your changes...
Added screen reader text to the navigation hamburger button to improve accessibility.

[x] Read and sign the CLA. PRs that haven't signed it won't be accepted.
[x] Make sure your PR complies with the writer's guide.
[x] Review the diff carefully as sometimes this can reveal issues.
[x] Do not abandon your Pull Request: Stale Pull Requests.

This text should not be visible.


Allow ignore_decorators to pass to pydocstyle.

This will pass parameters to pydocstyle, retrieve ignore_decorators if it exists, and then use it.
There was also a bug with ini_path always having been stringified in my testing, so that is also checked now.

Coverage remained the same at 77.445% when pulling 3b83a604779957e2313a0179d4c15606bfc8006f on GrandVizierOlaf:develop into 8daaa42a6bd62197d11beae0e7d1139412816a14 on klen:develop.

This is meant to fix #106.

@GrandVizierOlaf Thank you!


List of services (Base/Standard/Premium) for which Service Tags are available

It helps to have a list of Azure offerings (Base/Standard/Premium) for which Service Tags are available. We got a customer query regarding this.
For e.g.
Service Tags are not available for Standard Service Bus Messaging - only for Premium.
Service Tags are available for Event Hubs.

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

ID: 5e905802-0b08-4b3b-25ec-0f88c023bc32
Version Independent ID: f31325e5-49ea-b28c-336e-10f2a3fc12b4
Content: Azure security groups overview
Content Source: articles/virtual-network/security-overview.md
Service: virtual-network
GitHub Login: @jimdial
Microsoft Alias: jdial

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

#in-process

Please ignore above reference as this was a result of testing. Thanks.

Hi @axisc
I'm helping out with some of Jim Dial's GitHub issues. Checking into the scope of this ask with my team.

Hi @axisc
I should have responded a while ago. There are four GitHub issues on service tags, and the team committed to the work. Following up now to see if we can close this.

@malopMSFT I see that premium still isn't called out for service bus, per the original issue. Should it be?  If so, can you make the change and close this issue?

@jispar can you help to include the change on the next update for service tags

created a PR with a comment for service bus tag
https://github.com/MicrosoftDocs/azure-docs/pull/26113
#please-close


Use of Dinktopdf lib in .Net framework  app unbalances the stack

I have a .Net Framework 4.8 app and in it I need to convert some html/css into pdf.
I have sampled a demo project of DinkToPdf. This worked in .NET core app and in Xamarin Forms app (where I ocasionally get Memory accsess violation Exception), but cannot get it to function in a .Net Framewrk app.
I have added DinkToPDF v1.0.8 to my project's reference folder via NugetPackageManager. I have looked into package dependencies and made shure that all are up to required versions. There is a native lib that I needed to copy to my projects root becouse the DinkToPdf uses it: libwkhtmltox.dll (I have tryed different versions of this) I have also tryed RndUsr0.DinkToPdf package, which "Upgraded to .NET Standard 2.0, .NET Core 2.1, wkhtmltopdf v0.12.5." but had no beter results.
What happens: When my app calls basicConverter.Converet(HtmlToPdfDocument doc)I get an Exception:"DinkToPdf.WkHtmlToXBindings::wkhtmltopdf_init' has unbalanced the stack. This is likely because the managed PInvoke signature does not match the unmanaged target signature. Check that the calling convention and parameters of the PInvoke signature match the target unmanaged signature.' "
public static void ConvertToPdf()
    {
        //load native lib libwkhtmltox.dll
        var architectureFolder = (IntPtr.Size == 8) ? "64 bit" : "32 bit";
        var wkHtmlToPdfPath = Path.Combine(AppContext.BaseDirectory, $"wkhtmltox\\v0.12.4\\{architectureFolder}\\libwkhtmltox.dll");//here a libwkhtmltox.dll needs to be stored
        IntPtr pDll = NativeMethods.LoadLibrary(wkHtmlToPdfPath);
        if (pDll == IntPtr.Zero)
        {
            throw new FileNotFoundException("-- Cannot load libwkhtmltox == a dll used for html to pdf convertion --");
        }
        var converter = new BasicConverter(new PdfTools());
        var doc = new HtmlToPdfDocument()
        {
            GlobalSettings = {
                ColorMode = ColorMode.Color,
                Orientation = Orientation.Portrait,
                PaperSize = PaperKind.A4,
            }
        };
        ObjectSettings objectSettings = new ObjectSettings()
        {
            PagesCount = true,
            HtmlContent = html,
            WebSettings = { DefaultEncoding = "utf-8"}
        };
        doc.Objects.Add(objectSettings);
        byte[] pdf = converter.Convert(doc);//!!! THIS IS THE POINT THAT THROWS UP
        string outputFile = Path.Combine(AppContext.BaseDirectory, "ImageFromHtmnl.pdf");
        using (FileStream stream = new FileStream(outputFile, FileMode.Create))
        {
            stream.Write(pdf, 0, pdf.Length);
        }
    }
 static class NativeMethods
    {
        [DllImport("kernel32.dll"/*,CallingConvention = CallingConvention.Cdecl*/)]
        public static extern IntPtr LoadLibrary(string dllToLoad);

        [DllImport("kernel32.dll")]
        public static extern IntPtr GetProcAddress(IntPtr hModule, string procedureName);

        [DllImport("kernel32.dll")]
        public static extern bool FreeLibrary(IntPtr hModule);

        public static string GetLibraryPathname(string filename)
        {
            // If 64-bit process, load 64-bit DLL
            bool is64bit = System.Environment.Is64BitProcess;

            string prefix = "Win32";

            if (is64bit)
            {
                prefix = "x64";
            }

            var lib1 = prefix + @"\" + filename;

            return lib1;
        }
    }

To conclude: I would expect the DinkToPdf nuget package with libwkhtmltox.dll native lib to function in a .NET Framework app just as well as it functions in a .NET Core app. But it does not.
What have I missed?

Hi @fashrista have you found a solution to use DinkToPdf in .NET Framework 4.8?

Hi @fashrista have you found a solution to use DinkToPdf in .NET Framework 4.8?

No. As far as I can recall we finally decided to use a different lib sharpPDF to create pdfs. I think it was in a Unity project so probably the migradoc plugin with .net2.0 wasu used. Just remember it was really basic and it was alot of work and hacky solutions to implement. But it got the job done.

Nice! In my case, I decided to use OpenHtmlToPdf. I built all the content in HTML and then passed it to the library to generate the PDF.
Cheers!


Supporting current version of react

Love this lightweight component; are there any plans to allow support for react 0.13.x?

Thanks! :) What issues do you have? I thought it already worked flawlessly with React 0.13 ;)

Getting a peer depency issue thrown from npm; looks like its a bad requirement in package.json
peerDependencies": {     "react": ">=0.12 <0.13"   }

Aha, silly me:) I've changed it to
 peerDependencies": { "react": ">=0.12" }

Looking at the code, I see that I'm using getDOMNode. I'll create a version that uses findDOMNode if that's available and getDOMNode is not (for 0.13 compatibility)

Happy to submit a PR with the patches for everything :)
Mark

@markthethomas everywhere

On Jun 3, 2015, at 3:24 AM, Sven Anders Robbestad<EMAIL_ADDRESS>wrote:
Looking at the code, I see that I'm using getDOMNode. I'll create a version that uses findDOMNode if that's available and getDOMNode is not (for 0.13 compatibility)
—
Reply to this email directly or view it on GitHub.

:+1:

@svenanders how about using ">=0.12 || 0.14.0-rc1" in range? Did you already test stickydiv with 0.14rc?


contains template #default Syntax coloring

contains template #default Syntax coloring

please offer a minimum reproduce code snippet instead a screenshot

<template>

            <template #default={row}>

            </template>

</template>

minimum reproduce snippet

So you can reproduce it

Volar： v0.29.8

VsCode： 1.62.3

appVersion: "5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.55
Safari/537.36"

<template>

            <template #default={row}>

            </template>

            <template #default={row}>

            </template>

            <template #default={row}>

            </template>

</template>

Just add in the position of the deconstruction " It's good

#default="{row}"
<template>

            <template #default="{row}">

            </template>

            <template #default="{row}">

            </template>

            <template #default="{row}">

            </template>

</template>

i wrote a sematic token extension MVP here https://github.com/IWANABETHATGUY/volar-semantic-token-demo,
maybe we could integrate this in volar so that we could reduce the syntax highlighting issue

@johnsoncodehk any thought about this ?

This is a tmLanguage issue, and may not be suitable to be solved by semitic token, because vscode relies on tmLanguage to parse embedded language. This will affect the language configuration of autoClosingPairs, wordPattern, code snippet... in interpolation.

It should modify here to resolve. html tmLanguage has resolved it already and I will refer to.
https://github.com/johnsoncodehk/volar/blob/b71700d1ce0ff8be7fda857b022530e02a58f2bd/extensions/vscode-vue-language-features/syntaxes/vue.tmLanguage.json#L783-L794

This is a tmLanguage issue, and may not be suitable to be solved by semitic token, because vscode relies on tmLanguage to parse embedded language. This will affect the language configuration of autoClosingPairs, wordPattern, code snippet... in interpolation.
It should modify here to resolve. html tmLanguage has resolved it already and I will refer to.
https://github.com/johnsoncodehk/volar/blob/b71700d1ce0ff8be7fda857b022530e02a58f2bd/extensions/vscode-vue-language-features/syntaxes/vue.tmLanguage.json#L783-L794

agree, but tmLang seems more complicated and unpredicatable, we only use semantic token for html template, leave other with tmLang. semantic could be a experimental feature and disabled by default.What's more tree-sitter is incremental parser and parsing after every keystroke only took a few ms (normally 1-5ms) no matter how big the file is.

agree, but tmLang seems more complicated and unpredicatable

Yes, even though I rewrote vue tmLanguage, I still don't fully understand how it works. :S

What's more tree-sitter is incremental parser and parsing after every keystroke only took a few ms (normally 1-5ms) no matter how big the file is.

It will not be so fast in real world, because the semantic token will be implemented based on the LSP request. All LSP performance problems will affect the semantic token. For example, the request blocking problem caused by the long diagnosis time, the user may see that the semantic token is updated only after the diagnosis is updated.

the request blocking problem caused by the long diagnosis time, the user may see that the semantic token is updated only after the diagnosis is updated.

need to test on real project and open this feature on demand, so i don't think this would be a big problem

agree, but tmLang seems more complicated and unpredicatable

Yes, even though I rewrote vue tmLanguage, I still don't fully understand how it works. :S

What's more tree-sitter is incremental parser and parsing after every keystroke only took a few ms (normally 1-5ms) no matter how big the file is.

It will not be so fast in real world, because the semantic token will be implemented based on the LSP request. All LSP performance problems will affect the semantic token. For example, the request blocking problem caused by the long diagnosis time, the user may see that the semantic token is updated only after the diagnosis is updated.

IIRC, vscode will fallback to regex based highlight when semantic token is hanging. We could also add a switch to control it ,
open it as needed.


Use the same date format for different services

from Megan:
For UAVSAR and Seismicity, I noticed the format to input dates are mm/dd/yyyy but for GPS it is yyyy-mm-dd is it possible to change the GPS to mm/dd/yyyy? I kept getting an error message and then realized I had it in the wrong format.

for seismicity: https://earthquake.usgs.gov/fdsnws/event/1/#parameters
 All times use ISO8601 Date/Time format. Unless a timezone is specified, UTC is assumed. Examples:

    2022-04-27, Implicit UTC timezone, and time at start of the day (00:00:00)
    2022-04-27T14:27:26, Implicit UTC timezone.
    2022-04-27T14:27:26+00:00, Explicit timezone.

so shall switch seismicity to yyyy-mm-dd


data not persistent

Hi,
I've been using this template and I found that when running ddev restart the solr data get cleared.
After digging, I found that the volume path used for is wrong, and the real data is saved in other location.

I created this PR: https://github.com/ddev/ddev-drupal9-solr/pull/20

This issue appears to be obsolete. Closing.


plots: Add support for plotly as backend for render plots

plotly is a set of Open Source Graphing Libraries for building "I_nteractive charts and maps for Python, R, Julia, ggplot2, .NET, and MATLAB®_".
The "high level" concept is very similar to vega-lite (the current DVC plots backend): Both are javascript libraries based on d3.js using JSON to describe the plot "schema" and provide "bindings" to generate plots in different languages (altair would be the vega-lite Python equivalent). See a more detailed comparison
It would be nice to extend DVC plots to support plotly as an alternative backend. The following is a non-exhaustive list of what I consider advantages (in DVC context) of adding support to plotly:

Wider adoption

As a non exhaustive example, see differences between python bindings stats plotly / altair

Better default interactivity

Try plotly line chart / vega-lite line chart
This is especially relevant for some complex plots like iterative/dvc#4455 , where plotly provides many relevant interactions by default (i.e. reordering columns, selecting subsets) that seem quite complicated  to add (if even possible) in vega-lite:
plotly parallel coordinates / vega-lite parallel coordinates

It seems fairly easy to implement 👼

After reviewing the internal dvc.render module and discussing it with @pared , it looks that it won't require too many changes on DVC to add support to plotly.
Edit by @dberenbaum to start a tasklist here of possible future plotly enhancements:
- [ ] Better smoothing (https://github.com/iterative/dvc-render/issues/135)
- [ ] Log-linear plots (https://github.com/iterative/dvc-render/pull/136)
- [ ] Zooming and panning (https://github.com/iterative/vscode-dvc/issues/4530)
- [ ] Responsive sizing (https://github.com/iterative/vscode-dvc/issues/3757)
- [ ] Better / TB-like tooltips https://github.com/iterative/vscode-dvc/issues/4532

Another reason plotly would be useful: it has built-in support for more ML/DS/analytical visualizations, like smoothing (see https://github.com/iterative/vscode-dvc/issues/3837).

I could start moving this forward in the CLI first and trying to get something working on Studio by myself (probably with  som help) after

If we can start trying to build towards it being a drop-in replacement for vega-lite, I think it would be nice.

I've started looking at this from the VS Code perspective.
I can see in #88 (not sure if that PR is active or not) that the current idea is for DVC to hold the required data in the same format for both Vega & Plotly. Might it make sense to change that approach given that dvc-render/vscode-dvc/studio would all have to contain the same(-ish) logic to convert the datapoints from that format into what is required by Plotly? If the idea is to keep the data decoupled from the render is there a better/more general format to hold it in?
For the extension it would be good to get the contents of data / layout provided separately under the --split option through plots diff. My suggestion for the json output from plots diff for Plotly plots would be:
{ "data": {
    "dvc.yaml::name": [
      {
        "type": "plotly",
        "revisions": ["workspace"],
        "layout": {LAYOUT},
        "data": {DATA},
       }]
}}

That way we'll be able to update the marker.color (or equivalent) for each experiment where appropriate (e.g. linear/scatter plots). We can also continue to hold the equivalent of templates/data separately internally.
LMK what you think. If we can agree on the approach I have the capacity to make contributions here and in DVC to get this moving.

Might it make sense to change that approach given that dvc-render/vscode-dvc/studio would all have to contain the same(-ish) logic to convert the datapoints from that format into what is required by Plotly?

I can see this would be a more involved change because Studio reaches directly into DVC and calls repo.plots.collect() here:
https://github.com/iterative/studio/blob/355dbe2e0ffdbdd63089bf29ccc381bcc140cf3d/backend/repos/parsing/dvcmeat.py#L182

Might it make sense to change that approach given that dvc-render/vscode-dvc/studio would all have to contain the same(-ish) logic to convert the datapoints from that format into what is required by Plotly?

I can see this would be a more involved change because Studio reaches directly into DVC and calls repo.plots.collect() here:
https://github.com/iterative/studio/blob/355dbe2e0ffdbdd63089bf29ccc381bcc140cf3d/backend/repos/parsing/dvcmeat.py#L182

The draft P.R.'s motivation was to keep the "status quo" of Vega implementation, introducing Plotly in a transparent way for DVC.
Doubts about the right approach (and capacity of the teams to work on ot) for the UIs (VSCode, Studio) were the reason for not continuing the work on it.

For the extension it would be good to get the contents of data / layout provided separately under the --split option through plots diff. My suggestion for the json output from plots diff for Plotly plots would be:

For the --split option, we can do whatever postprocessing we want for the extension. We are already "breaking" the internal format used today for Vega.

LMK what you think. If we can agree on the approach I have the capacity to make contributions here and in DVC to get this moving.

I will do a minor update to the dvc-render P.R. , as it is currently missing the layout part.
Then we can discuss how to handle the --json and --split in DVC. It would be great if we could think of a way to unify how VSCode and Studio (FE) do the postprocessing of the plots, so we can update Studio (BE and FE).
We also need to decide how/when to enable Plotly. Options from the top of my mind:
A) Have a feature flag in DVC like dvc config plots.plotly True
B) Do a silent drop-in replacement for default plots. Just start rendering using plotly in case there is no custom template.
C) Allow users to explicitly enable plotly for some plots (i.e. introduce and handle special template names like plotly_linear)

I am going to catch up with @daavoo today about this (thanks for sending an invite David).
The plan for me right now is to build a thin vertical slice along the lines of option B above. Ideally in the next two sprints, I'd like to be able to replace the smooth/linear/scatter templates with Plotly implementations (feels ambitious).
Findings so far:
I have been playing around with Plotly and the biggest difference with respect to Vega seems that the data and template are much less separate and get mangled together in order to create the desired output. As the "smooth" template seems to be the hardest of the three to generate I've been working on that.
I've managed to adapt the below examples to generate a demo of what is possible in terms of "smoothing" (not worrying about style yet)
https://plotly.com/javascript/sliders/#add-a-play-button-to-control-a-slider
https://plotly.com/javascript/gapminder-example/#animating-with-a-slider
https://github.com/iterative/dvc-render/assets/37993418/0ac1cd29-ccad-4535-853b-71db735ea8c5

Code for the demo
function smoothTriangle(data, degree) {
  const triangle = [
    ...Array(degree + 1).keys(),
    ...[...Array(degree).keys()].reverse()
  ] // up then down
  const smoothed = []

  for (let i = degree; i < data.length - degree * 2; i++) {
    const point = data
      .slice(i, i + triangle.length)
      .map((x, j) => x * triangle[j])
    smoothed.push(
      point.reduce((a, b) => a + b) / triangle.reduce((a, b) => a + b)
    )
  }

  // Handle boundaries
  const halfDegree = Math.floor(degree / 2)
  const leftBoundary = Array(halfDegree + 1).fill(smoothed[0])
  const rightBoundary = Array(data.length - smoothed.length).fill(
    smoothed[smoothed.length - 1]
  )
  return [...leftBoundary, ...smoothed, ...rightBoundary]
}

const y = [
  0.2707333333333333, 0.40696666666666664, 0.4991833333333333,
  0.6582666666666667, 0.5437333333333333, 0.6674, 0.6644, 0.6833166666666667,
  0.7272, 0.68985, 0.7435333333333334, 0.6868166666666666, 0.76165,
  0.7097833333333333, 0.7694, 0.7323666666666667, 0.7824166666666666,
  0.7494666666666666, 0.7894, 0.7608166666666667, 0.7819833333333334,
  0.7650833333333333, 0.7718833333333334, 0.7713, 0.7773166666666667, 0.77915,
  0.7855166666666666, 0.7837166666666666, 0.7916333333333333,
  0.7893666666666667, 0.7960833333333334, 0.7940166666666667,
  0.7951333333333334, 0.7986333333333333, 0.7998666666666666, 0.80405,
  0.8076333333333333, 0.8097, 0.8160333333333334, 0.81405, 0.82245,
  0.8198166666666666, 0.8292666666666667, 0.8251166666666667,
  0.8348666666666666, 0.8303333333333334, 0.8397333333333333,
  0.8357833333333333, 0.8434, 0.8401166666666666, 0.8468333333333333,
  0.8441833333333333, 0.8502, 0.8476833333333333, 0.8530833333333333, 0.8513,
  0.8561666666666666, 0.8553166666666666, 0.85905, 0.8595666666666667,
  0.8616666666666667, 0.8631, 0.8645833333333334, 0.8659666666666667,
  0.8678833333333333, 0.86965, 0.87255, 0.8734, 0.8752666666666666,
  0.8785333333333334, 0.8778166666666667, 0.8829833333333333,
  0.8794166666666666, 0.8860833333333333, 0.8793666666666666,
  0.8881166666666667, 0.8799666666666667, 0.8906, 0.8814666666666666,
  0.8921166666666667, 0.8832333333333333, 0.8939333333333334,
  0.8849333333333333, 0.8918666666666667, 0.8869, 0.8937833333333334,
  0.8885333333333333, 0.8953166666666666, 0.8903833333333333,
  0.8961166666666667, 0.8915333333333333, 0.89725, 0.8925, 0.8984333333333333,
  0.8935333333333333, 0.8996666666666666, 0.8948333333333334,
  0.9006833333333333, 0.8959, 0.9020166666666666
]

const trace2 = {
  y,
  x: [
    0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
    21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
    40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
    59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
    78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
    97, 98, 99
  ],
  mode: 'lines',
  name: 'workspace',
  line: {
    color: 'rgb(255, 217, 102)'
  },
  type: 'scatter'
}

const trace2A = {
  y,
  x: [
    0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
    21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
    40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
    59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
    78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
    97, 98, 99
  ],
  mode: 'lines',
  opacity: 0.1,
  type: 'scatter',
  showlegend: false
}

var data = [trace2,trace2A];

Plotly.newPlot('myDiv', {data,
    layout:{
    sliders: [{
      pad: {t: 30},
      x: 0.05,
      len: 0.95,
      currentvalue: {
        xanchor: 'right',
        prefix: 'degree: ',
        font: {
          color: '#888',
          size: 20
        }
      },
      transition: {duration: 500},
      // By default, animate commands are bound to the most recently animated frame:
      steps: [
        {
        label: '0',
        method: 'animate',
        args: [['0'], {
          mode: 'immediate',
        transition: {duration: 300},
        frame: {duration: 300, redraw: false},        }]},
               {
        label: '1',
        method: 'animate',
        args: [['1'], {
          mode: 'immediate',
        transition: {duration: 300},
        frame: {duration: 300, redraw: false},        }]},
              {
        label: '2',
        method: 'animate',
        args: [['2'], {
          mode: 'immediate',
        transition: {duration: 300},
        frame: {duration: 300, redraw: false},        }]},
        {
        label: '3',
        method: 'animate',
        args: [['3'], {
          mode: 'immediate',
        transition: {duration: 300},
        frame: {duration: 300, redraw: false},        }]
      }, {
        label: '4',
        method: 'animate',
        args: [['4'], {
          mode: 'immediate',
        transition: {duration: 300},
        frame: {duration: 300, redraw: false},        }]
      }, {
        label: '5',
        method: 'animate',
        args: [['5'], {
          mode: 'immediate',
        transition: {duration: 300},
        frame: {duration: 300, redraw: false},        }]
      }]
    }],
    updatemenus: [{
      type: 'buttons',
      showactive: false,
      x: 0.05,
      y: 0,
      xanchor: 'right',
      yanchor: 'top',
      pad: {t: 60, r: 20},
      buttons: [{
        label: 'Play',
        method: 'animate',
        args: [null, {
          fromcurrent: true,
          transition: {duration: 300},
          frame: {duration: 500, redraw: false}        }]
      }]
    }]
  },
  // The slider itself does not contain any notion of timing, so animating a slider
  // must be accomplished through a sequence of frames. Here we'll change the color
  // and the data of a single trace:
  frames: [
    {
    name: '0',
    data: [{
      y
  }],
  },{
    name: '1',
    data: [{
      y: smoothTriangle(y,1)
  }],
  },{
    name: '2',
    data: [{
      y: smoothTriangle(y,2)
  }],
  },

    {
    name: '3',
    data: [{
      y: smoothTriangle(y,3)
  }],
  }, {
    name: '4',
    data: [{
      y: smoothTriangle(y,4)}]
  }, {
    name: '5',
    data: [{
      y: smoothTriangle(y,5)
    }]
  }]
});

This does use the triangular moving average function mentioned previously (shown here) but that function is something that we have to implement on our own. We can also forgo the play button but it seems that in order to show different smoothed options we have to calculate all of the new y values ourselves and load each set of values into distinct frames. The second example above shows how this can be done programmatically but it is going to get complicated when we add multiple data sources + revisions (seems like ordering is the only thing that ties them together).

Today I've been looking at Vega. I have opened the above PR to add zoom/pan to plots in VS Code and have been able to come up with these tooltips for linear plots.
PTAL and LMK what you think/if this changes anything.

@mattseddon Is your point that we should reconsider plotly?

@mattseddon Is your point that we should reconsider plotly?

I am really not sure. I think both Vega and Plotly have their own benefits and constraints.
Let's chat about whether or not we still want to take this on when we meet this week.
In the meantime, I am going to attempt to update the default templates to add zoom + pan and new tooltips. E.g. for smooth/linear, we will end up with:
https://github.com/iterative/dvc-render/assets/37993418/aebdff1f-e589-40dc-9122-75cb7bde3f30
As you can see from the above screen recording the template is not perfect as the tooltip contains {rev::filename::field} as an identifier. Right now this is the only way we can get around the fact that all templates are generalised.
I am also going to look further into the Studio/DVC code. Whatever we decide we need to start on removing parts of the legacy process.

For anyone following this issue:
This has been temporarily deprioritised whilst https://github.com/iterative/dvc/issues/9940 is worked on.

The main reasons to migrate to plotly would be:

It's a more popular library, especially with the ML community.
It opens options for users to eventually develop custom plots using the familiar plotly python api and visualize them with dvc.

A distant 3rd reason is UI improvements over vega lite, but I think we can already see that there will likely be as many drawbacks as advantages to the plotly UI. I think the first 2 points are strong enough that it's worth moving, but I don't think we have time to work towards the 2nd point now, and we have already put a ton of time into plots, so I would consider plotly a "nice to have" rather than an urgent priority.

@shcheklein I think @dberenbaum summed it up well in the last comment. Plotly would not be a silver bullet and I don't think we can justify the effort for the benefits that we would get right now.


fix: Incorrect path to fetch the routeAfterAuthentication property in the config object

Simple fix to properly get the routeAfterAuthentication property from the config object upon application load.

I think this might be a misunderstanding – we actually want the configuration to be
'ember-simple-auth': {
  routeAfterAuthentication: '/some-route'
}

in config/environment.js. Scoping an addon's config to its name prevents clashes with other addons that might have the same settings.

@marcoow I made this pr because in the app folder of the addon fir the initializer, it is grabbing the ember simple auth config and not the entire ENV config object. If it was the latter, then ember-simple-auth.routeAfterAuthentication would be correct but since you are grabbing the config for ember simple auth, to make it work currently you have to do
'ember-simple-auth:{
    'ember-simple-auth:{
        routeAfterAuthentication: 'some-route'
     }
}

I could update the initializer to just use the entire Env config if that is what you were going for.

Tell if this is what you were going for.
app/initializers/ember-simple-auth.js
import ENV from '../config/environment';
import Configuration from 'ember-simple-auth/configuration';
import setupSession from 'ember-simple-auth/initializers/setup-session';
import setupSessionService from 'ember-simple-auth/initializers/setup-session-service';
import setupSessionRestoration from 'ember-simple-auth/initializers/setup-session-restoration';

export default {
  name: 'ember-simple-auth',

  initialize(registry) {
    Configuration.load(ENV);

    setupSession(registry);
    setupSessionService(registry);
    setupSessionRestoration(registry);
  }
};

addon/configuration.js
import { getWithDefault } from '@ember/object';

const DEFAULTS = {
  rootURL: '',
  routeAfterAuthentication: 'index',
};

/**
  Ember Simple Auth's configuration object.
  @class Configuration
  @extends Object
  @module ember-simple-auth/configuration
  @public
*/
export default {
  /**
    The root URL of the application as configured in `config/environment.js`.
    @property rootURL
    @readOnly
    @static
    @type String
    @default ''
    @public
  */
  rootURL: DEFAULTS.rootURL,

  /**
    The route to transition to after successful authentication.
    @property routeAfterAuthentication
    @readOnly
    @static
    @type String
    @default 'index'
    @public
  */
  routeAfterAuthentication: DEFAULTS.routeAfterAuthentication,

  load(config) {
    this.rootURL = config.rootURL || config.baseURL || DEFAULTS.rootURL;
    this.routeAfterAuthentication = getWithDefault(config, 'ember-simple-auth.routeAfterAuthentication', DEFAULTS.routeAfterAuthentication);
  }
};

@marcoow Based on your comment, I reverted back how the test was and passed in the Entire ENV config object.

Ah, sorry my comment was wrong of course and what you were saying initially is completely correct – this is in fact a bug. Can you remove the last commit though? I think the original fix is better. Sorry for the confusion!

@marcoow Alright, I've reverted to the previous commit as you asked.

@marcoow Any chance we could get a new release with this fix?


Kiali can't get meshpolicies.authentication.istio.io

Bug description
When installing and accessing Kiali via a Helm deploy I'm getting the following error message.

This can also be seen in the Kiali logs.

I0807 14:38:42.179426       1 kiali.go:67] Kiali: Version: v0.20.0, Commit: 140969bc2ef1a77ca7387b47f8b23dcbd4818bd0
I0807 14:38:42.182276       1 kiali.go:68] DEBUG: Kiali: Command line: [/opt/kiali/kiali -config /kiali-configuration/config.yaml -v 4]
I0807 14:38:42.183506       1 config.go:461] DEBUG: Reading YAML config from [/kiali-configuration/config.yaml]
I0807 14:38:42.187114       1 kiali.go:203] Using authentication strategy [login]
I0807 14:38:42.189746       1 kiali.go:88] Kiali: Console version: 0.20.0
E0807 14:38:42.196942       1 kiali.go:106] Jaeger is not available : Get http:///api/services: http: no Host in request URL
I0807 14:38:42.198614       1 server.go:49] Server endpoint will start at [:20001/]
I0807 14:38:42.198649       1 server.go:50] Server endpoint will serve static content from [/opt/kiali/console]
I0807 14:38:42.198666       1 metrics_server.go:18] Starting Metrics Server on [:9090]
I0807 14:38:42.200218       1 kiali.go:135] Secret is now available.
I0807 14:40:08.297545       1 client.go:180] DEBUG: Rest perf config QPS: 175.000000 Burst: 200
I0807 14:40:08.298061       1 client.go:180] DEBUG: Rest perf config QPS: 175.000000 Burst: 200
I0807 14:40:08.404006       1 versions.go:140] DEBUG: Detected Istio version<EMAIL_ADDRESS>I0807 14:40:08.407193       1 discover.go:107] DEBUG: Kiali is looking for Tracing/Jaeger service ...
I0807 14:40:08.407343       1 discover.go:117] DEBUG: Kiali didn't found Tracing/Jaerger
W0807 14:40:08.601051       1 istio_rules_service.go:114] Querying template got an error: istio-system doesn't return a logentries list
W0807 14:40:08.606517       1 istio_rules_service.go:114] Querying template got an error: istio-system doesn't return a listentries list
W0807 14:40:08.612860       1 istio_rules_service.go:114] Querying adapter got an error: istio-system doesn't return a opas list
W0807 14:40:08.615699       1 istio_rules_service.go:114] Querying adapter got an error: istio-system doesn't return a fluentds list
W0807 14:40:08.626997       1 istio_rules_service.go:114] Querying adapter got an error: istio-system doesn't return a kubernetesenvs list
W0807 14:40:08.628208       1 istio_rules_service.go:114] Querying template got an error: istio-system doesn't return a edges list
W0807 14:40:08.632096       1 istio_rules_service.go:114] Querying adapter got an error: istio-system doesn't return a deniers list
W0807 14:40:08.632283       1 istio_rules_service.go:114] Querying template got an error: istio-system doesn't return a metrics list
W0807 14:40:08.632390       1 istio_rules_service.go:114] Querying template got an error: istio-system doesn't return a quotas list
W0807 14:40:08.632671       1 istio_rules_service.go:114] Querying template got an error: istio-system doesn't return a authorizations list
W0807 14:40:08.632784       1 istio_rules_service.go:114] Querying adapter got an error: istio-system doesn't return a stdios list
W0807 14:40:08.632900       1 istio_rules_service.go:114] Querying adapter got an error: istio-system doesn't return a listcheckers list
W0807 14:40:08.633318       1 istio_rules_service.go:114] Querying adapter got an error: istio-system doesn't return a statsds list
W0807 14:40:08.633444       1 istio_rules_service.go:114] Querying adapter got an error: istio-system doesn't return a cloudwatches list
W0807 14:40:08.633565       1 istio_rules_service.go:114] Querying adapter got an error: istio-system doesn't return a signalfxs list
W0807 14:40:08.633650       1 istio_rules_service.go:114] Querying adapter got an error: istio-system doesn't return a rbacs list
W0807 14:40:08.633751       1 istio_rules_service.go:114] Querying adapter got an error: istio-system doesn't return a redisquotas list
W0807 14:40:08.633853       1 istio_rules_service.go:114] Querying adapter got an error: istio-system doesn't return a stackdrivers list
W0807 14:40:08.633882       1 istio_rules_service.go:114] Querying template got an error: istio-system doesn't return a checknothings list
W0807 14:40:08.634007       1 istio_rules_service.go:114] Querying template got an error: istio-system doesn't return a apikeys list
W0807 14:40:08.634101       1 istio_rules_service.go:114] Querying template got an error: istio-system doesn't return a tracespans list
W0807 14:40:08.633949       1 istio_rules_service.go:114] Querying adapter got an error: istio-system doesn't return a noops list
W0807 14:40:08.634298       1 istio_rules_service.go:114] Querying adapter got an error: istio-system doesn't return a dogstatsds list
W0807 14:40:08.634349       1 istio_rules_service.go:114] Querying adapter got an error: istio-system doesn't return a circonuses list
W0807 14:40:08.634403       1 istio_rules_service.go:114] Querying adapter got an error: istio-system doesn't return a zipkins list

Affected product area (please put an X in all that apply)
[x ] Configuration Infrastructure
[ ] Docs
[x ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ x] Security
[ ] Test and Release
[ ] User Experience
[x ] Developer Infrastructure
Expected behavior
To see the Istio MeshPolicy. This was working until recently.
Steps to reproduce the bug

Uninstall Istio
Uninstall Istio-Init
Remove Istio CRDs
Delete istio-system namespace
Reinstall Istio-Init
Reinstall Istio

Version (include the output of istioctl version --remote and kubectl version)

client version: 1.2.2
citadel version: 1.2.3
galley version: 1.2.3
ingressgateway version: 1.2.3
pilot version: 1.2.3
policy version: 1.2.3
sidecar-injector version: 1.2.3
telemetry version: 1.2.3

Client Version: version.Info{Major:"1", Minor:"12", GitVersion:"v1.12.1", GitCommit:"4ed3216f3ec431b140b1d899130a69fc671678f4", GitTreeState:"clean", BuildDate:"2018-10-05T16:46:06Z", GoVersion:"go1.10.4", Compiler:"gc", Platform:"windows/amd64"}
Server Version: version.Info{Major:"1", Minor:"12+", GitVersion:"v1.12.10-eks-2e569f", GitCommit:"2e569fd887357952e506846ed47fc30cc385409a", GitTreeState:"clean", BuildDate:"2019-07-25T23:13:33Z", GoVersion:"go1.10.8", Compiler:"gc", Platform:"linux/amd64"}

How was Istio installed?
Helm
Environment where bug was observed (cloud vendor, OS, etc)
AWS EKS

We are facing the exact problem in our EKS cluster. We installed everything using Helm.

Same here on Azure AKS. We installed using Kiali Operator.

Some work very recently went into meshpolicies / servicemeshpolicies (mainly for Maistra integration).
@lucasponce can you look at this and see what you think?
This seems like the installation is just missing some permissions, but I am not sure if that's all that is happening here.

Kiali 1.2 has the meshpolicies permissions:
https://github.com/kiali/kiali/blob/v1.2/operator/roles/kiali-deploy/templates/kubernetes/role.yaml#L109-L119
Kiali 0.20 does as well:
https://github.com/kiali/kiali/blob/v0.20/operator/roles/kiali-deploy/templates/kubernetes/clusterrole.yaml#L108-L118
Note that both are valid only if you installed via the Operator.
Istio 1.2 helm chart has it, too:
https://github.com/istio/istio/blob/release-1.2/install/kubernetes/helm/istio/charts/kiali/templates/clusterrole.yaml#L109-L119
So it doesn't seem to be a permissions issue.

I believe this is a dup of this issue: https://github.com/kiali/kiali/issues/1337

related issue https://github.com/kiali/kiali/issues/1337

@stevehipwell @bhavyanshu @jaygridley Can you please provide you AKS/EKS versions?

I've tried on Kubernetes 1.13.9 and 1.14.5 with Kiali 1.3.1/1.1.0/0.20 all with same issue.

My cluster is:
Istio 1.2.2
Kubernetes Version: 1.13
Platform Version : eks.2

Client Version: version.Info{Major:"1", Minor:"13+", GitVersion:"v1.13.7-eks-fa4c70", GitCommit:"fa4c703fa1706fac99d00d7f1f2080e9d4cc7eed", GitTreeState:"clean", BuildDate:"2019-07-23T03:14:24Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"13+", GitVersion:"v1.13.8-eks-a977ba", GitCommit:"a977bab148535ec195f12edc8720913c7b943f9c", GitTreeState:"clean", BuildDate:"2019-07-29T20:47:04Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}

Yes, this issues is related kiali/kiali#1337.
A fix has already sent https://github.com/kiali/kiali/pull/1346

This issue was fixed in https://github.com/istio/istio/pull/16993


Step through "locations" you visited in the code

It would be very useful if one was able to retrace ones steps/locations in the code based on what members/code chunks you have clicked on. This is very useful if you go through the code and ctrl+click on a function, object reference or extension that make you jump to the new file/place directly and you then want to find you way back. Also being able to go step by step forward again can be very handy. A little bit like "back" and "forward" in a web browser.

@seigan this should work using Alt cursor left and right. Are you looking for something different?

or search for the setting named "workbench.action.navigateBack" in File > Preferences > Keyboard Shortcuts and check the key binded to this setting. That should do it.


Update wrapper following 7.4 RC1 release

@bot-gradle test and merge

OK, I've already triggered a build for you.


Starting a brush may emit a brush event.

Currently we call emit.start at the start of a brush gesture:
https://github.com/d3/d3-brush/blob/8aed2b3cec0d5cb1bd64aaa49f0128e392efdd2e/src/brush.js#L357
If the brush is already started, then this does not emit a start event. However, it should emit a brush event, because the brush region may have changed.

Instead of this:
start: function() {
  if (this.starting) this.starting = false, this.emit("start");
  return this;
}

I think we want this:
start: function() {
  if (this.starting) this.starting = false, this.emit("start");
  else this.emit("brush");
  return this;
}


Quick fix for a bug causing show_observation to fail if not logged in

Should have written a test that failed before fixing it, but I'm in a hurry.  And I don't care about robots!

Coverage remained the same at 93.02% when pulling<PHONE_NUMBER>51f2858d68b68c62b2eec1b69565dd on quick-fix into 95cc2ab2f8c18fee09a50b60ce27bacc4f53d833 on master.


Remove vendored Regex

Fixes #8

@rkallos what sort of tests would you run? it would make sense to start adding pony tests at this point and have a unit test for this functionality.

So far the only code path that tests this is via corral update. It seems to work?
Running with my Franken-clone of pony-crdt:
FINE: tags for [1] github.com/jemc/pony-jason.git: 0
FINE:
FINE: result err:
FINE: tags for [0] github.com/mfelsche/ponycheck.git: 6
FINE:   tag:0.2.0
FINE:   tag:0.3.0
FINE:   tag:0.4.0
FINE:   tag:0.4.1
FINE:   tag:0.5.0
FINE:   tag:0.5.1

I like this change.

@rkallos we have no tests so I'm good with you merging this whenever you are comfortable.

I added the beginning of a test suite. As a result, I had to expose a parse_tags method that does the iteration over the lines from stdout. On the bright side, it looks like it works :)

Looks like I need to update settings to run CI for forked repos.

ok, ive turned on CI running for PRs from forked repos.

Can you force a build on this branch, or should I push an empty commit to trigger it?

Nice!
I would suggest adding more lines with different formats that git show-ref outputs, such as this example from the ponyc repo:
b0b68f7a394ca6cd13198f2fdf7240bf7a116d8e refs/heads/master
329dda3c3db8f75c1186da9cf4fb05da183c389b refs/heads/2852-changelog
329dda3c3db8f75c1186da9cf4fb05da183c389b refs/remotes/origin/2852-changelog
b0b68f7a394ca6cd13198f2fdf7240bf7a116d8e refs/remotes/origin/HEAD
45a1d66ee94108f58ce5525e411c716871fcb37f refs/remotes/origin/MinGW64
cefc960800ba619e2a750fe49da06eb7408dc07b refs/remotes/origin/bionic-source-instructions
4d7087e672a3c056bbe2e01a54df3dcaa1b1bba5 refs/tags/0.1.0
652c628ed96dbdcdc36622c9b6e01981b0a066a7 refs/tags/0.1.1
4e26ed4fd55ce7f02a589d5dda4128e3c5003d55 refs/tags/0.1.2
d3f64c921b6d6355427caa46820f712cd4911928 refs/tags/0.1.3
41051c06abb768ecc041421adbbc192e76961c7c refs/tags/0.1.4
cb82ac111edb1a32d42fc8cf8fccbc77908a752a refs/tags/0.1.5
dcf27b504214ad30198c828ae4db2512862bed78 refs/tags/0.1.6
90989eb597967edc5ac6fca97c1b68cc2fc6b471 refs/tags/0.1.7

Good idea! Done :)

@rkallos nice! test ran.

Sweet. In that case, I think this is ready for merging. Any objections?

No objection from me.

Now that this is merged, I believe the nightly builds should start working.


HHH-11131 - Fix exporting Envers generated ordered sequence for Oracle databases.

https://hibernate.atlassian.net/browse/HHH-11131

merged upstream


Redux is using the wrong webpack NODE_ENV

after building and deploying the production bundle, I get this error:
You are currently using minified code outside of NODE_ENV === 'production'. This means that you are running a slower development build of Redux. You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify or DefinePlugin for webpack (http://stackoverflow.com/questions/30030031) to ensure you have the correct code for your production build.
anyone else encountered it?

I have the same problem when building on production, I'm not a pro on Webpack config but the DefinePlugin seems to be the solution:
SO: Passing environment-dependent variables in webpack

If anyone could look into it and help us on this issue it would be great

Define plugin wont help, because the process.env.NODE_ENV is correct.
It seems that Redux version which is bundled inside the project doesn't recognize it.

Closing due to merged solution. If the problem persists, please feel free to reopen this issue. Thanks! :smile:

Thank you!


⚠ Mobitopup has degraded performance

In 4f92a7f, Mobitopup (https://napcard.voz.tech) experienced degraded performance:

HTTP code: 200
Response time: 4960 ms

Resolved: Mobitopup performance has improved in 6f5f5c2.


What’s the Extended Source Code?

Hi there! I would really appreciate the info what to expect for the paid "Extenden Source Code"
Thank you very much for this and everything you do on YouTube!

I converted it to standard unity physics, making it much easier to use and incorporate into your game.
It's even smoother to play than the current version.

Added dash and double jump (more planned).
And of course better support.

Can you show a little bit of the extended code? I'd like to know what it's like before I "buy" it.

You can play the output of the extended controller here: https://tarodev.itch.io/extended-ultimate-2d-controller
It's a bit outdated as it has additional features now, but it gives you a good idea of the upgrade.

can I get that on the $3.50 patreon? or $8 only


Auto-populate end time when 'End Encounter' button is clicked and remove the end encounter button on edit encounter page

Few things to clean up in encounter pages.
In Scope
New Encounter

Currently, in the flow to create a new habitat form, the initial mandatory encounter page is called New Encounter page, and after habitat is created, when completing the remaining encounter form, the page is titled Edit Encounter, this needs to be changed to New encounter with 3 buttons at the bottom of the page - Cancel, Save & End and Save as it is currently.
When required fields are not filled in, the message in encounter overview page should read "Please complete all required fields in encounter data sheet before ending the encounter"
In the encounter overview page, when 'End encounter' is clicked, auto populate the current time in the 'End time' and current date as the 'End Date' field in encounter form, if the field is empty, and calculate elapsed time.
In new encounter form, when 'Save & End' is clicked, auto populate the current time in the 'End time' field, if the field is empty, and calculate elapsed time.
In new encounter form, when 'Save' is clicked, DO NOT auto populate the current time in the 'End time' field.

Edit Encounter

In edit encounter form, remove "Save & End" button and keep 'Cancel' and 'Save' buttons which will link to encounter overview page.
When editing an encounter, in the encounter overview page instead of a button that shows "End encounter" change it to a link that shows "Return to encounter list page"
Design same as the view encounter - Wireframe for view encounter - https://drive.google.com/drive/folders/1uKHXZovMhH_8NhEIhdQlVPDxtEs8Hukl

There should be a hasEnded boolean (or undefined) property on habitats and encounters in order to determine whether new or edit should be shown.
Tasks:

Refactor habitat form:

[x] make "end habitat" button add a hasEnded: true property to the habitat.

Encounter form:

[x] make "end encounter" button add a hasEnded: true property to the encounter.
[x] make "end encounter" button add endTime, endTimestamp and elapsedTime
[x] make sure "end encounter" adds hasEnded flag and elapsedTime but doesn't populate endTimestamp and endTime if it's already defined
[x] use hasEnded flag to determine whether new or edit should be shown.
[x] improve end date can't be 72 hours after start date error message ("End date must be within 3 days of start date")
time group

[x] startTimestamp, startTime, endTimestamp, endTime and elapsedTime should be in a group together in the encounter completion section.
[x] change the elapsedTime component to just render text and not an input field if startTimestamp, endTimestamp and endTime are available. If the values are not there, a placeholder (--) should be rendered.
[x] if endTimestamp or endTime is filled out, but not the other, an error should appear for the entire group.
[x] if elapsedTime is greater than 3x24x60 then another error should appear for the entire group
[ ] if current dateTime is 72 hours after startDateTime it should not be possible to end the encounter. It should open a modal. When closing the modal, the endTimestamp and endTime fields and the elapsedTime validation should be shown.

Encounter List:

[x] if current dateTime is 72 hours after startDateTime it should not be possible to end the encounter. A modal should be shown with a link to EditEncounter
[x] make "end encounter" button add a hasEnded: true property to the encounter.
[x] make "end encounter" button add endTime, endTimestamp and elapsedTime
[x] fix bug that habitatUseEntries is added as a field to the database

[ ] check everything works when importing into microsoft access

Questions:

what happens if user sets end date to the day before but doesn't add an end time? we only set the end time? -- We've decided that the user must fill both endDate and endTime or nothing at all.
user ends encounter and then goes to edit and removes end date and time - should we display "end encounter"? -- NO. An encounter can only be ended once. -- maybe create a flag (eg. "hasEnded": true/false)? if so should we do the same for habitat use?

Tasks:

[ ] if encounter does not have an end date & time

[ ] page title should always be 'new encounter' (instead of 'edit encounter')
[ ] change the behavior of the 'save and end' button (in edit encounter page) and 'end encounter' button (in encounter overview page) to populate the end date and time (if not already set) with current date and calculate the elapsed time
[ ] if current end date/time is 72 hours after the start date/time, disable 'save & end' btn and show error message (modal, next to the field?? TBC)

[ ] if encounter has an end date & time

[ ] page title should be 'edit encounter'
[ ] remove 'save and end' button (keep 'cancel' and 'save') in the edit encounter page
[ ] remove 'end encounter' button in encounter overview page
[ ] add a link in the encounter overview page to the encounter list page (as per wireframe)

Modal message: Not invalid, over 72 hours


Fix NavigationMesh baking AABB Editor handling and visuals

Fixes handling and visuals for Navigation Mesh baking AABB in the Editor.
Closes https://github.com/godotengine/godot-proposals/issues/3811

Thanks!


Hosting alternatives

Right now, we're using VPS on Rackspace on production. The VPS was configured from scratch by @pbanaszkiewicz. This has a lot of disadvantages:

Deployment (and release) procedure is pretty complicated. This results in few big milestone instead of frequent small releases. The consequences is that we lose traction and we postpone releasing v1.10 indefinitely.
As far as infrastructure is concerned, our bus factor is zero -- I couldn't configure a new VPS server for AMY as Piotr did (I'm not sure about @narayanaditya95).
amy-dev has completely different configuration (we just use ./manage.py runserver), so we cannot test i.e. consequences of deployment of a new version or restoring a backup. The same applies to our local configurations.
We have no procedure for restoring from a backup.
We make backups, but we didn't test if our backups are correct and if we actually can restore from a backup.
A lot of configuration was done manually, but we're not DevOps. It'd be better (safer) to use tools provided by a PaaS.
Using PaaS makes it easier to move to PostgreSQL.

I'd like to research alternatives. Important factors are:

Supports Python 3.
Possibly something that requires minimal customization and is already configured for Django + Sqlite3 (so PaaS is better then IaaS).
Something that has easy deployment and restore from backup procedures (possibly one shell command).
Something that can automatically make backups as we already do.
Free or cheap or willing to make an exception for us.
Compatible with our data privacy policy (issue raised by @rgaiacs).

@pbanaszkiewicz what is our current approach to making backups? Where do they live? What does trigger making regular backups (cron job?)? How do we actually backup (just copy .sqlite3 file?)?

Alternatives:

Heroku
Google App Engine
Gondor
PythonAnywhere
OpenShift
AWS Elastic Beanstalk
Stackato
Dotcloud

@chrismedrela Thanks for all your contribution and for raising this issue. About the alternatives, we need to be careful to check that they are compatible with our data privacy policy.

About Heroku:

Supports Python 3.6
Has review apps which replaces dev and stagging servers.
According to some blogs, Heroku is the easiest one to configure.
Migration can be part of deployment, so that db and code are always in sync. However, you may hit some issues 'cause migrate command is interactive.
Has maintenance mode, which we can turn on when deploying new version.
Deployment is as simple as pushing to heroku remote.
Does not have persistent file system by default. File system is an addon that you have to configure.
Supports release rollbacks, so that we can always switch back to earlier version of source code.
Supports PostgreSQL by default. SQlite3 is not standard, so probably we'd need to migrate to PostgreSQL.
Has great support for PostgreSQL backups. Creating and restoring from a backup are one-line command. Backups can be scheduled. You can also download backups to another machine.
Good documentation:

getting started for Django app
high-level explanation how Heroku works
tutorial about migrating existing Django app to Heroku

Serving static files by using whitenoise
We get application metrics
Easy to scale horizontally.
I got trouble with running tests on Heroku due to permission error in db.
Pricing: $16/month on hobby plan:

$7/month for one dyno (we'll have only one), 512 MB RAM
plus 9$/month for PostgreSQL up to 10M records (the free option is to 10K records).
For comparision, the total cost of standard plan is $34/month.

@rgaiacs, where can I find our data privacy policy?

https://software-carpentry.org/privacy/

Disclosure of personal information
We will not disclose any information we collect to any third party unless it is:

Specifically authorized by you; or
Necessary to perform the functions requested by you (and only to the extent absolutely necessary to perform the function); or
Required to check for fraud or other misuse of SCF resources; or
Required by law.

In particular, we may release the information we collect to third parties when we believe it is appropriate to comply with the law, to enforce our legal rights, to protect the rights and safety of others, or to assist with industry efforts to control fraud, spam or other undesirable conduct.
If the SCF contracts with a third party to provide a particular service, we may release the information we collect to that third party, provided that the third party has agreed to use at least the same level of privacy protections described in this Privacy Policy, and is permitted to use the information only for the purpose of providing services to us.

@chrismedrela backups are made roughly every 30 or 60 minutes by alternating servers (server A every hour, server B every hour but shifted 30 minutes).
Backups are only DB files copies.
@chrismedrela I agree with your points, but this is @jduckles decision to make. There was supposed to be a devop (even part-time) but I don't think there's one.
Personally I think the best would be to have PaaS at Rackspace since we're already using them and for free. I don't know if Rackspace provides this kind of service, though.

FWIW, I am more in favour of staying with a IaaS solution (more flexibility). Most of the issues raised by @chrismedrela can be resolved if we make the deployment pipeline automated using tools like Ansible.

Thank you all for considering alternatives, as @pbanaszkiewicz says, getting hosting for free right now is an important consideration.
Whatever system to choose, @chrismedrela brings up an excellent point, it is probably worth it to document the process for installing a new server, and at the same time we can likely create something like a Dockerfile which we'd need if we move to heroku or anywhere really.  Most of these services are beginning to use Docker as their underlying infrastructure, so that is a good stable target for us to move toward.
It seems that to do this most generally we need to:

Make the move to PostgreSQL
Document the dependencies of AMY (pretty normal I think)
Document other things such as SSL key installation and the like that AMY depends on

Once we've done that we have have the option to move pretty much anywhere and quickly should we need to.
Did I miss anything?

:+1: for Dockerfile, because this is a pretty lightweight solution for running PostgreSQL.
With the switch to PostgreSQL we have to rethink backups (is it DB only? Or maybe the whole server, including e.g. generated certificates).

Switching to Postgres also means rethinking off-line access. Right now it's easy to scp a sqlite file -- how will we access the Postgres db?

I've run AMY with fake data on Heroku. See #1167 PR to see what we would need to change if we wanted to move to Heroku.
@pbanaszkiewicz

Personally I think the best would be to have PaaS at Rackspace since we're already using them and for free. I don't know if Rackspace provides this kind of service, though.

unfortunately Rackspace doesn't provide PaaS.
@narayanaditya95

FWIW, I am more in favour of staying with a IaaS solution (more flexibility). Most of the issues raised by @chrismedrela can be resolved if we make the deployment pipeline automated using tools like Ansible.

Yes, we could stay with IaaS and develop our own scripts for deployments, backups etc., but it'd take much more time (especially that we're not DevOps) and would be more insecure than using PaaS. The benefit of using PaaS over IaaS is that we outsource most of DevOp work.
I agree that IaaS gives more flexibility. But AMY is a very typical Django app. We even don't use filesystem as data storage yet.
@jduckles

and at the same time we can likely create something like a Dockerfile which we'd need if we move to heroku or anywhere really.

I don't think Dockerfile is necessary. All dependencies (including gunicorn and PostgreSQL) can be enumerated in requirements.txt. I didn't have to write any Dockerfile to run AMY on Heroku. I believe that other PaaS works in the same way.

Make the move to PostgreSQL

We don't have to actually use PostgreSQL on production, but we need to make sure that we could switch to PostgreSQL easily and quickly. So I proposed in #1168 to run tests on both SQLite3 and PostgreSQL in Travis CI (as well as to fix existing bugs that prevent us from switching to PostgreSQL). As long as we use VPS on Rackspace (or any other IaaS), I'd like not to move to PostgreSQL because of the hassle of configuring automatic backups, changes in deployment procedure etc.

Document the dependencies of AMY (pretty normal I think)

It's already done in requirements.txt.

Document other things such as SSL key installation and the like that AMY depends on

I've started a discussion what exactly we need to document in #1171.
@pbanaszkiewicz

:+1: for Dockerfile, because this is a pretty lightweight solution for running PostgreSQL for development.

Installing PostgreSQL in development is as easy as runningpip install psycopg2 plus one command line  to configure PostgreSQL (sorry, I don't remember now what exactly the command is).

With the switch to PostgreSQL we have to rethink backups (is it DB only? Or maybe the whole server, including e.g. generated certificates).

As long as all data lives in database, it's enough to backup only db. And we decided that certificates will be generated on the fly and cached on a filesystem, not stored there.
@maneesha

Switching to Postgres also means rethinking off-line access. Right now it's easy to scp a sqlite file -- how will we access the Postgres db?

Django has dumpdata and loaddata commands that are backend agnostic. For example, you can run dumpdata on production with PostgreSQL and run loaddata on your local machine with SQLite3.

The latest update on this issue: we continue to run on Rackspace, on a VPS, but we need to move forward to newer Ubuntu.


Transition support

Add support for passing next router transition options, eg { shallow: true, scroll: false ... }.
Options for choosing just "push" or "replace" may not be enough in some cases.

Yes, this is what I described in #205. Let's keep the discussion there, if you have API suggestions.


Modernize Travis configuration

Proposed Changes

before_script is really install
php --version is already in Travis images
Travis images already do composer self-update
hhvm is a thing of the past
--optimize-autoloader could be done during other operations

This change is

Coverage remained the same at 80.786% when pulling d932669ee779b0364c40c3b40872f21080bb5801 on szepeviktor:patch-2 into 5445d44086ea7b53dcd6dd1b182ae5bdcb1fbb07 on voku:master.


Show errors on quiz screens

fixes #467 on usd-integration branch

the toast is quite small.. is there a better way to show these errors perhaps?


Add path expanded flag

Problem
When processing concrete attribute paths, it's not known if they were originally
concrete, or if they were expanded (from a wildcard or group path). This is necessary
because handling may need to differ based on whether the concrete path was
expanded or not (e.g. if access is denied).
Change overview
Add an expanded flag to ConcreteAttributePath. It can be a boolean fit in between
other larger member variables, so alignment means it shouldn't typically use more
space.
The expanded flag defaults to false. It's effectively "optional". (Only some code will
care what it's set to.)
It's set to true by the AttributeExpandPathIterator based on the ClusterInfo it's currently
iterating.
It's logged in the log statement in ReadSingleClusterData.
Testing
How was this tested? (at least one bullet point required)

Build and run chip-all-clusters-app using chip-repl
Test reading specific endpoint specific cluster logs expanded=0
Test reading any endpoint specific cluster logs expanded=1
Test reading specific endpoint any cluster logs expanded=1

/rebase


API_PATH not set

I used the npm build to build ketcher
I  build  ketcher using the following command
npm run build -- --api-path=server-url
so i would expect  API_PATH to be equal to server-url
my browser requests /ketcher/API_PATH/info  which returns a 404
do i have to install the indigo docker image or is there an alternative to docker ?

One can set --api-path=/v2 to use absolute path on the same server and configure nginx to run the service and ketcher
see instructions here
https://lifescience.opensource.epam.com/indigo/service/index.html

nginx should be run separately. The reason for the environment with separate web server is that ketcher static files and indigo-service should be hosted on the same server and port. Otherwise REST API will not work because of CORS

One can run nginx or any other http server which supports uwsgi (e.g. Tomcat)

Also please see #1 for some options to run nginx

i used sudo npm run build --api-path=/v2
still not working is there a place in the generated buil i could check

Hi @jaohbib
Did you install docker image and configure nginx for the same endpoint according to the instructions above?
Thanks
Aleksandr

I used the following compose file
version: '3'
services:
nginx:
image: nginx:1.17.10-alpine
ports:
- 8081:80
volumes:
- ./docker/nginx/conf.d:/etc/nginx/conf.d:ro
links:
- indigo_service
depends_on:
- indigo_service
indigo_service:
image: epmlsop/indigo_service
environment:
- PYTHONPATH=${INDIGO_SERVICE_PYTHONPATH:-/srv/indigo-python}
- INDIGO_UWSGI_RUN_PARAMETERS=--plugin python3 --py-autoreload=1
- PYTHONDONTWRITEBYTECODE=1
ports:
- 8002:8002
command: supervisord -n
I can reach the indigo enpoint under <IP_ADDRESS>:8081
But i do not understand why the ketcher build process  ignors my input

It seems that there is no ketcher in your nginx docker setup, so you need to change the api path to the host where the 8081 is accessible
Please try to set
api_path=$your_host:8081/v2

are there plans to maintain a ketcher container  which contains an nginx and ketcher ?

Dear @jaohbib ,
the option you  are referred to is planned to be implemented in  the one of upcoming releases.
Best regards,
Ketcher team


refactor(native-filters): refactor code of native filters

SUMMARY

No feature implemented
Refactor native filters code:
a. Split filter bar to different components
b. All code of native filters splitted to modal and filter bar

BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

TEST PLAN

ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Changes UI
[ ] Requires DB Migration.
[ ] Confirm DB Migration upgrade and downgrade tested.
[ ] Introduces new feature or API
[ ] Removes existing feature or API

Codecov Report

Merging #12889 (0846f72) into master (2adfb85) will decrease coverage by 1.51%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master   #12889      +/-   ##
==========================================
- Coverage   64.89%   63.38%   -1.52%
==========================================
  Files        1024      489     -535
  Lines       50168    30198   -19970
  Branches     5148        0    -5148
==========================================
- Hits        32557    19140   -13417
+ Misses      17433    11058    -6375
+ Partials      178        0     -178

Flag
Coverage Δ

cypress
?

javascript
?

python
63.38% <ø> (-0.70%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

superset/sql_validators/postgres.py
50.00% <0.00%> (-50.00%)
:arrow_down:

superset/views/database/views.py
62.50% <0.00%> (-25.07%)
:arrow_down:

superset/databases/commands/create.py
83.67% <0.00%> (-8.17%)
:arrow_down:

superset/databases/commands/update.py
85.71% <0.00%> (-8.17%)
:arrow_down:

superset/sql_validators/base.py
93.33% <0.00%> (-6.67%)
:arrow_down:

superset/db_engine_specs/base.py
79.59% <0.00%> (-6.38%)
:arrow_down:

superset/db_engine_specs/presto.py
82.25% <0.00%> (-6.28%)
:arrow_down:

superset/db_engine_specs/sqlite.py
90.62% <0.00%> (-6.25%)
:arrow_down:

superset/views/database/forms.py
83.33% <0.00%> (-5.56%)
:arrow_down:

superset/databases/commands/test_connection.py
84.78% <0.00%> (-4.35%)
:arrow_down:

... and 523 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 38a21bf...0846f72. Read the comment docs.


⚠ AGEG website (redirect) has degraded performance

In 8ef33b1, AGEG website (redirect) (https://ageg.ca/) experienced degraded performance:

HTTP code: 200
Response time: 2495 ms

Resolved: AGEG website (redirect) performance has improved in 9f9771f.


Log executed commands

I would like to see logging feature, especially logging of custom actions; there's no way to debug and see the output of the command
Git command logging should also be useful and may help with bug reports
For starters, a simple log to file will work (Serilog or NLog), but an in-app log viewer could be added later

If a git command fails, SourceGit shows the output of it (except progress lines) as error message.
I'll consider how to handle and show logs of custom action.

Git 命令日志记录也应该很有用，

对于初学者可以学习，点击之后的命令。个人认为非常有用

If a git command fails, SourceGit shows the output of it (except progress lines) as error message.

This is true, but sometimes there is no error, but git fails in some way, like it was in #449, I believe logging will help to debug
I think simple file-based logging is enough, if you write them to logs/ inside the SourceGit data dir, the user can access them with "Open App Data Dir". The logs can be separated into custom-actions-YYYYYMMDD.log and git-YYYYMMDD.log.

对于初学者可以学习，点击之后的命令。个人认为非常有用

I'm not sure if this will be usable for newbies as some of the commands executed are very long and verbose. To make it really useful, something like "Git Console" needs to be added to show only "useful" commands. In my opinion, not some git command log with no descriptions, but the progit book (or any other of your choice) is a better study material :grin:

One of the questions I considered was when to delete the log files. After a period of accumulation, the log files may take up a lot of space. And this is hard for most users to notice.
The problem with #449 will not actually be solved by adding the log. The key reason of it is that the output of git diff is empty due to an external diff driver.
For custom actions, SourceGit currently captures the output of stderr, and if the action fails (e.g. the exit code of it is not 0), an error message will pop up.


The following parts are still needed

[ ] Strings
[ ] Error handling
[ ] Threading
[ ] Classes
[ ] Time and date
[ ] Sorting
[ ] Regular Expressions
[ ] JSON
[ ] XML
[ ] Hashes
[ ] Base64 Encoding
[ ] Reading Files
[ ] Writing Files

Moved it to be a discussion


RPC error message for malformed authorization is incorrect

$ cat request.json
{
  "jsonrpc": "2.0",
  "method": "Filecoin.ChainHead",
  "params": [],
  "id": 0
}
$ curl -X POST -H 'Content-Type: application/json' -d @request.json http://<IP_ADDRESS>:2345
{"jsonrpc":"2.0","id":0,"result": ... }
$ curl -X POST -H 'Content-Type: application/json' -H 'Authorization: bad' -d @request.json http://<IP_ADDRESS>:2345
{"jsonrpc":"2.0","id":0,"error":{"code":-32600,"message":"Invalid request"}}

The authorization is failing, but we send a -32600, which is the error code for valid JSON, but an invalid Request Object.
We should send a more helpful message, as this confused me when trying the cross-client test suite :)

Unit tests or Integration tests to ensure no regressions here.


get error "Could not parse CSS stylesheet" when CSS file contains nested rules

Describe the bug
When testing a component that imports a CSS file that contains nested CSS rules, I get the error "Could not parse CSS stylesheet". Support for nested CSS rules is fairly new, so maybe the parser that vitest uses to parse CSS just doesn't support nested rules yet.
Reproduction
Here is a simple example of CSS that will trigger this error:
.foo {
  .bar {
    color: red;
  }
}

System Info
System:
    OS: macOS 14.2
    CPU: (10) x64 Apple M1 Pro
    Memory: 47.48 MB / 32.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 18.19.1 - /usr/local/bin/node
    Yarn: 1.22.5 - /usr/local/bin/yarn
    npm: 10.2.4 - /usr/local/bin/npm
    pnpm: 7.30.1 - /opt/homebrew/bin/pnpm
    bun: 1.1.6 - ~/.bun/bin/bun
    Watchman: 2<IP_ADDRESS> - /usr/local/bin/watchman
  Browsers:
    Chrome: 124.0.6367.208
    Edge: 118.0.2088.46
    Safari: 17.2
    Safari Technology Preview: 17.4
  npmPackages:
    @vitejs/plugin-react-swc: ^3.6.0 => 3.6.0
    @vitest/coverage-v8: ^1.4.0 => 1.5.1
    vite: ^5.2.6 => 5.2.10
    vitest: ^1.4.0 => 1.5.1

Used Package Manager
yarn
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

Not sure if I missed something, but I couldn't reproduce https://stackblitz.com/edit/vitest-dev-vitest-mdakvj?file=test%2Frepro.css
Can you provide a runnable example?


Unit tests for file go

Description
Unit tests for file go
Fixes #93
Type of change

Unit tests (no changes in the code)

Testing steps
Done on CI
Checklist

[ ] make before_commit passes
[ ] updated documentation wherever necessary
[ ] added or modified tests if necessary
[ ] updated schemas and validators in insights-data-schemas in case of input/output change

Codecov Report

Merging #97 (b73ce09) into master (9ace94a) will increase coverage by 3.86%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master      #97      +/-   ##
==========================================
+ Coverage   51.87%   55.73%   +3.86%
==========================================
  Files           7        7
  Lines         802      802
==========================================
+ Hits          416      447      +31
+ Misses        359      319      -40
- Partials       27       36       +9

Impacted Files
Coverage Δ

file.go
60.60% <0.00%> (+60.60%)
:arrow_up:

csv.go
64.70% <0.00%> (+64.70%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 9ace94a...b73ce09. Read the comment docs.

ok


Feature request: Make it easier to delete more than 1 report at a time

Thank you for creating this great software, it is very useful to us. Could you make it easier to delete more than 1 report at a time?

I'm currently busy with ezXSS 4. I will add this feature to that release. Thanks for the request.

+1 for this suggestion
@ssl is there a reason why you aren't pushing the development of ezXSS to Github as a branch where we could help with features/bugs? I've manually updated a few things myself but would be willing to help out with some development on the tool.

Hi @Marshall-Hallenbeck,
This is because I am not sure yet about the structure. Once I have a good start I will push to the public repo.

I've added this in 3.4. Thanks for your suggestion.
https://github.com/ssl/ezXSS/releases/tag/3.4

@geeknik Excellent, thank you very much! Could you allow multi select? Currently when I hold down the shift key and select an unchecked box further down whilst leaving some unchecked, it highlights the text fields instead of selecting all of the unchecked boxes in between. Would be a great tweak.
Added this to master.

Not really working with Firefox. I also can't copy any text from manage/reports now. Multi-select works in Brave, but copying from the URL or IP columns does not.

I saw something online about Firefox breaking this feature. I will try to check for an other solution. If you know any let me know.

The copying text issue is fixed in the new release.
The multi-select with shift not working is a Firefox issue. I will close this ticket for now but if you have any working suggestions for Firefox let me know.

Multi-select isn't broken in Firefox, it works just fine with Protonmail and Gmail and other sites that have multiple check boxes.

Multi-select works fine with normal checkboxes. In the reports page I make use of a custom checkbox using a label and span. For some reason this does not work in Firefox. https://www.google.com/search?q=firefox+shift+click+checkbox+label

Makes sense now, thank you.


Feature idea: enable better SPA integration

Context
I have integrated this wonderful library in several SPA made with Aurelia. I wrapped Datatables API behind a custom element and now I can do stuff like:
<data-table source='myArray' pageSize='20'>
  <column data='id'></column>
  <column data='name'></column>
</data-table>

It's great!
There is juste one area where the integration falls short: templating the cells content. The main problem is that Datatables does not reliably notify when a cell is removed from DOM, which means bindings would not be cleaned up, which implies leaks. So this is not an option.
I did wrap simple expression evaluations from Aurelia into column.render, which enables stuff like:
  <column render='firstname + " " + lastname'>
  <column render='birthdate | dateFormat:dd.MM.yyyy'>

It's nice, but it doesn't come close to what would be enabled with real templates, see below for cool examples.
Feature proposal
I suggest the addition of two new events in a column definition. Names are just ideas, could be different.
bind would be called when a cell td is created or its row data changes. The handler is responsible for managing the cell contents. If this is handled, Datatables does not touch the cell contents ever, render(display) is never called.
unbind would be called when a cell is destroyed or its row data changes. This gives a chance to the client code to perform some clean-up like unhooking events.
Enabled use-cases
If those two events are reliably called, then we could create the cell contents as Aurelia templates bound to a viewmodel (the row data, basically). With this we could get all of those features for free:

Two-way bindings: live data update in the cell as model changes. No need for redraw calls and only the impacted UI is redrawn.
Two-way bindings: put a textbox in a cell and have the model updated live as the user types.
Complex cell contents: templates can easily use any HTML element, including complex custom elements such as DatePickers, auto-completes, and more.
Interactive elements such as buttons, that can easily call back into ViewModel code when clicked.
All of this seamlessly integrated with the application framework.

I'm saying "Aurelia" a lot because this is my SPA of choice, but the two additions are really framework-agnostic and could be used to instantiate Knockout, Angular templates or others.

Thanks for this - this is an excellent idea and inline with my thinking for how to move events forward in DataTables. The update and delete specifically are very lacking (nonexistent). The reason for this is performance - at the moment DataTables uses jQuery's event handling for events, which is superb and its namespace abilities are excellent, but if you are rendering a table with a lot of nodes it can really hurt to trigger lots of events.
This is something that I plan to address in the next major version of DataTables and introduce new events for create, update and delete. I'm unsure about remove (i.e. detach from the DOM) since the row can be added back in future, and I would expect it to remain as it was.
At the moment you could use preDrawCallback and drawCallback to remove and add event listeners as rows and cells are added to and from the DOM.
But longer term, yes, events are the way forward!

At the moment you could use preDrawCallback and drawCallback to remove and add event listeners as rows and cells are added to and from the DOM.

Maybe I am mistaken but I don't think this will cut it.
What I intend to do is enable usage like that:
<data-table>
  <column>
    <input value.bind="model" />
  </column>
</data-table>

Where the contents of <column> is a template that Aurelia/Angular/Vuejs/... can compile and instantiate in each cell, with live bindings to the underlying JS objects.
Correct me if I am wrong but:

drawCallback is called a lot, basically any time I change something somewhere in the grid. What I would like, is that once the cell is created and the template injected, Datatables does NOT change its content anymore.
preDrawCallback is called before a draw. This makes a bit a bad place to unhook stuff. For example if I navigate to another "page" (SPA so client-side) the table is destroyed but this event will never be called. Without a chance to clean up the injected views, we can easily have leaks.

I don't think that either of those are currently possible.
BTW, I asking for callbacks on the columnDef, no need for full-blown DOM events there.

Ah I see - sorry. Yes you are correct in that case!
There is columns.createdCell, but there is no callback for update or delete at the moment. Those will be added as events in future (probably pseudo events - i.e. no need to involve the DOM, but they are callbacks that can be added like events as that is really convenient).
There is one other possible option for this - you can pass in an object instance for the row's data - e.g.
data = [
  new Car( 'Ford', 'Red' ),
  new Car( 'Nissan', 'Blue' )
];
// Yup - I know nothing about cars :-)

If they then have methods to get the properties to display in the table you can do:
columns: [
  { data: 'make()' },
  { data: 'colour()' }
]

Then, if the host change's the value of one of those data points it could call row().invalidate() to tell DataTables to reread the data (since DataTables caches some of the data for performance - e.g. sorting, filtering and display).
There is a binding I wrote for Knockout a while back that I can't find atm, but will try to dig it out. it used this sort of approach.

Thanks for the tips!
If you look at my original post again, you'll see I did something similar, where I have full support for any Aurelia expression inside a cell. It's cool and it works great!
It has drawbacks, though, as it's not real template and bindings + you have to invalidate / redraw manually.
Still wishing we could go the next step and use full templates. The benefits listed in Enabled use cases are awesome!

Its not possible to have a custom binding that will do the invalidation for you? That's what the knockout binding did (haven't had a chance to look for it yet).
I'm not entirely sure I understand what benefit DataTables emitting update and remove events would be for that. If the data changes in the model, the model needs to tell DataTables does it not? Or are you looking for the ability to change the data with the DataTables API and it tell the model that this has happened?

Let me explain again with Knockout.
What I would love is the possibility to have full control over cell contents, which means:

I am notified after a cell is created;
Datatables does not touch the cell contents ever again, even during redraw.
I am notified before a cell is destroyed.
If Datatables recycles cells (e.g. in a virtualized scenario or when the full table is rebuilt), I would need to be notified that the row object changed.

With this, I would be able to insert inside the cell a Knockout DOM fragment that is bound to the row data.
The goal is to create a KO component that might look like this:
<data-table params='source: arrayOfObjects'>
  <column field='name'></column>
  <column>
    <div data-bind='css: { warning: isLate }'>
      <date-picker params='value: startDate'></date-picker>
    </div>
  </column>
</data-table>

Notice how the column contents can be described using a KO template.
This would be awesome because now I can seamlessly use the full power of Knockout inside table cells.

warning class would automatically be applied whenever isLate changes.
startDate field would change in the model whenever the user picks a date in the UI.
I can use complex templates that include my own KO components, such as <date-picker>.

Understood. Thanks for the clarification! Hopefully the events / callbacks I will be adding in future will address this (they certainly should from your description).
It might be a little while before I can implement that though as there are a number of other things I'm working on at the moment.

No pressure! I understand this requires significant effort for niche users.
I can totally do without it at the moment, just thought that I would suggest it.

Its a great idea. Very much appreciate the feedback and your insight. Using external renders is something that I feel I've dropped the ball on a bit.


[SQL Index and Data Source Cache] [OAP-1557] [OAP-1525] Update doc for Plasma

What changes were proposed in this pull request?
update doc, address plasma performance issue(OAP-1557) and plasma don't support index cache(https://github.com/Intel-bigdata/OAP/issues/1525).

cc @winningsix @zhixingheyi-tian


API Request Failed

Which API Provider are you using?
Anthropic
Which Model are you using?
Sonnet
What happened?
Connection error.
Steps to reproduce

Connection error.
Relevant API REQUEST output
Connection error.

Additional context
Connection error.

I'm experiencing the exact same thing randomly. Everything has been fully functional until now.

Resolved.

Reoccurrence

It seems like Anthropic is having server issues. I suggest using OpenRouter in the meantime.


[release-1.10] fix multiple egress hosts select same service error

This is an automated cherry-pick of #33766

@googlebot I consent.

@istio/release-managers-1-10 PTAL.