Created automated tests that can  be run against a PASS environment

What?
Create automated tests that can be run against the different PASS environments.
There should be a set of read only tests for the production environment.
The write tests should include at the least deposit to JScholarship. The write tests should clean up after themselves to the extent possible. Need to make sure they won't negatively impact staging.
Why?
Automated testing will help give us confidence about code testing.
How?
Attempt to update pass-existing-testing to do end to end tests.
Acceptance Criteria
What must be true for this work to be considered complete and correct? Include if applicable.
Related Issues

Here are my initial thoughts:
Authentication
Authentication for the e2e tests (pass-acceptance-tests) in the live environment is probably the trickiest automation part of this because of JHU SSO login.  Here are a few proposals that I can think of:

Create a new authentication scheme that would only be used by e2e tests.  A new URL path with a query param or cookie containing a token for authentication (maybe JWT).  The token would be generated for each user.  A new security filter would detect this request and handle authentication using the token.  We could also add a switch in the app to enable and disable this authentication scheme so it would only be active while running e2e tests.
Create test users in JHU IDP.  See if there is a way to get the 2FA requirement disabled for these user accounts so tests can just do simple login.
Create test users in JHU IDP.  Setup 2FA and get key and use approach https://medium.com/@udarasembukuttiarachchi/can-we-automate-a-login-with-two-factor-authentication-1eb28ee5d729

If you have another idea, please comment.
Test Data

One time test reference data insertion:

Create a test grant.  It can be associated with real funder/policy.  Test will only be for jscholarship policy.  We don't want nihms deposits happening as part of these tests.
Create test users and put them on the test grant

Clean up data after tests:

We would ideally want to run our existing e2e tests that do read and write operations.  Therefore, we have to clean up any submission and deposit related data related to tests.
Before the test suite runs, a script would run to delete all submission and deposit related data associated to the test grant

By running this before the test, in cases where there are test failures, it will make it possible to see the data for analysis

Run a nightly job to clean all submission and deposit related data associated to the test grant to ensure test data is cleaned within 24 hours

Test Execution

The pass-acceptance-tests would be updated to run tests against an actual PASS environment (i.e. the domain in browser would be stage.pass.jhu.edu and app.pass.jhu.edu)
In the JHU deployment workflows:

When a Pass App deployment runs, we will also run pass-acceptance-tests

The clean up test data script will run as part of this job too

If the tests fail, the deployment will be marked as failed
Future, when we have blue green deployments, this same setup of running the pass-acceptance-tests will be used, except the tests will run against the Green environment before the switch happens

Couple more things related to first authentication approach of using JWT:

Spring security example of providing a way to get and authenticate with JWT: https://github.com/spring-projects/spring-security-samples/tree/main/servlet/spring-boot/java/jwt/login
We could setup a script to add the github action runner IP to a security group on the public LB for getting /token, and block every other IP address.  So only our e2e tests would be using the JWT authentication.
With this, we can add a new login script in the e2e tests to get a token for each test user and use it as a Bearer token.  Then when the tests are done, we would remove the github running IP from the aws sec group on the alb.

Note about second authentication approach, "Create test users in JHU IDP. See if there is a way to get the 2FA requirement disabled for these user accounts so tests can just do simple login.".
I checked with Jeff, and it does sound possible to create a service user account that we could use for our acceptance testing against deployed PASS.  For example, we would have<EMAIL_ADDRESS>created that we would login to PASS and execute tests.
I'm still analyzing, but this seems like the option that would require the least amount of change in pass-core.

To clarify, would we still be maintaining the current tests that run against the pass-docker environment on PRs and adding these deployment tests or would this be removing the on-PR tests in favor of the deployment tests?

@jabrah We would be adding to pass-acceptance-tests for the deployment tests.  The current acceptance tests that run against pass-docker on PRs would remain.  The tests may be slightly refactored for reuse, but the running of the acceptance tests against pass-docker on PRs would stay the same.


Need to show and record UK VAT for all invoices in 2018

Since VAT on conference tickets has to be charged in the country where the conference takes place, we will have to charge 20% UK VAT on tickets for EuroPython 2018. Going forward, we'll have to do the same for other countries.
This introduces a few challenges.
These are the invoice requirements for the UK:

General requirements for invoices: https://www.gov.uk/invoicing-and-taking-payment-from-customers/invoices-what-they-must-include
More requirements for VAT invoices: https://www.gov.uk/vat-record-keeping/vat-invoices

The second page mentions this important detail: "you must: show the total VAT payable in sterling on your VAT invoice if the supply takes place in the UK". Further down on the page it lists the officially allowed sources for exchange rates (FX rates).
After some research it's probably best to use this combination:

Python package forex-python: https://github.com/MicroPyramid/forex-python
Interface to ECB rates: http://fixer.io/
ECB rates: https://www.ecb.europa.eu/stats/policy_and_exchange_rates/euro_reference_exchange_rates/html/index.en.html

or go with a very light weight approach such as this direct interface to the ECB:

https://myridia.com/dev_posts/view/1955

In any case, the conversion tool must cache the exchange rate and use the cached rate in case the FX source fails for some reason. We may also need to have a config variable to a default exchange rate in case all fails.
Apart from the VAT total in GBP requirement, I believe we already cover all the other requirements from the above lists.
For VAT submission purposes, it is important to not only show the VAT in GBP on the invoices, but also record this in the database, since the field will need to serve as basis for the total amount to submit.
Furthermore, I believe this requirements (and probably more) will pop up in the future as well, so it's probably good to add not only a local_vat float field, but also a local_vat_currency text field holding the ISO3 name of the currency in question (GBP for EuroPython 2018) and a config variable to set the local currency.

This was implemented, and the 2018 conference is already closed. For future editions we always need to make sure (and possibly update) if we're compliant with local regulations.


Add ignoreAnnotated option to LongParameterList

Resolves #2563
This adds a new ignoreAnnotated option to LongParameterList, that allows for ignoring annotations within function/class/file scope.

Codecov Report

Merging #2570 into master will increase coverage by 1.65%.
The diff coverage is 5.88%.

@@             Coverage Diff              @@
##             master    #2570      +/-   ##
============================================
+ Coverage     25.11%   26.77%   +1.65%
+ Complexity      392      390       -2
============================================
  Files           378      378
  Lines          7391     6709     -682
  Branches       1221     1225       +4
============================================
- Hits           1856     1796      -60
+ Misses         5404     4782     -622
  Partials        131      131

Impacted Files
Coverage Δ
Complexity Δ

...bosch/detekt/rules/complexity/LongParameterList.kt
25.58% <5.88%> (-3.00%)
2.00 <0.00> (ø)

...itlab/arturbosch/detekt/api/internal/Validation.kt
33.33% <0.00%> (-16.67%)
0.00% <0.00%> (ø%)

.../gitlab/arturbosch/detekt/cli/console/Colorizer.kt
61.53% <0.00%> (-9.90%)
0.00% <0.00%> (ø%)

...h/detekt/api/internal/DisabledAutoCorrectConfig.kt
55.55% <0.00%> (-8.09%)
4.00% <0.00%> (ø%)

...otlin/io/gitlab/arturbosch/detekt/core/TaskPool.kt
33.33% <0.00%> (-6.67%)
3.00% <0.00%> (ø%)

...in/io/gitlab/arturbosch/detekt/api/SingleAssign.kt
60.00% <0.00%> (-6.67%)
3.00% <0.00%> (ø%)

...in/kotlin/io/gitlab/arturbosch/detekt/api/Issue.kt
50.00% <0.00%> (-5.56%)
2.00% <0.00%> (ø%)

...n/io/gitlab/arturbosch/detekt/api/ConsoleReport.kt
75.00% <0.00%> (-5.00%)
4.00% <0.00%> (ø%)

...tlab/arturbosch/detekt/api/internal/EmptyConfig.kt
66.66% <0.00%> (-4.77%)
4.00% <0.00%> (ø%)

...in/io/gitlab/arturbosch/detekt/cli/OutputFacade.kt
77.77% <0.00%> (-4.05%)
5.00% <0.00%> (ø%)

... and 259 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 adff475...2ef3379. Read the comment docs.


⚠ Bofrost.ch has degraded performance

In 0eb2709, Bofrost.ch (https://www.bofrost.ch) experienced degraded performance:

HTTP code: 200
Response time: 4687 ms

Resolved: Bofrost.ch performance has improved in 6b5e5df.


Are hookdeck_connection.rules updated or replaced?

When expanding a filter rule, this is the diff I see;

OpenTofu used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  ~ update in-place

OpenTofu will perform the following actions:

  # module.source_event_bus.module.connection["mixpanel"].hookdeck_connection.this will be updated in-place
  ~ resource "hookdeck_connection" "this" {
      + disabled_at    = (known after apply)
        id             = "web_RYbMhvPqwXav"
      + paused_at      = (known after apply)
      ~ rules          = [
          - {
              - filter_rule = {
                  - headers = {
                      - json = jsonencode(
                            {
                              - ce-type = {
                                  - "$or" = [
                                      - "network.keyring.smart-contract.call.trace.v1",
                                      - "network.keyring.session.start.v1",
                                      - "network.keyring.session.end.v1",
                                      - "network.keyring.page.view.v1",
                                      - "network.keyring.admin-app.session.start.v1",
                                      - "network.keyring.admin-app.session.end.v1",
                                      - "network.keyring.admin-app.page.view.v1",
                                      - "network.keyring.admin-app.user.login.v1",
                                      - "network.keyring.admin-app.redirect.v1",
                                      - "network.keyring.admin-app.ticket.created.v1",
                                      - "network.keyring.admin-app.new.entity.added.v1",
                                      - "network.keyring.admin-app.entity.deleted.v1",
                                      - "network.keyring.admin-app.entity.updated.v1",
                                      - "network.keyring.user-app.session.start.v1",
                                      - "network.keyring.user-app.session.end.v1",
                                      - "network.keyring.user-app.page.view.v1",
                                      - "network.keyring.user-app.user.login.v1",
                                      - "network.keyring.user-app.redirect.v1",
                                      - "network.keyring.user-app.ticket.created.v1",
                                      - "network.keyring.user-app.new.entity.added.v1",
                                      - "network.keyring.user-app.entity.deleted.v1",
                                      - "network.keyring.user-app.entity.updated.v1",
                                      - "network.keyring.user-app.onboarding.started.v1",
                                      - "network.keyring.user-app.onboarding.continued.v1",
                                      - "network.keyring.user-app.onboarding.page.submitted.v1",
                                      - "network.keyring.user-app.onboarding.file.uploaded.v1",
                                      - "network.keyring.user-app.onboarding.member.kyc.started.v1",
                                      - "network.keyring.user-app.onboarding.member.kyc.completed.v1",
                                      - "network.keyring.user-app.onboarding.questionnaire.completed.v1",
                                      - "network.keyring.user-app.onboarding.email.collected.v1",
                                      - "network.keyring.user-app.onboarding.completed.v1",
                                      - "network.keyring.user-app.onboarding.confirming.v1",
                                      - "network.keyring.user-app.zkcredentials.proof.created.v1",
                                      - "network.keyring.user-app.zkcredentials.update.credential.v1",
                                      - "network.keyring.user-app.zkcredentials.update.credential.successful.v1",
                                      - "network.keyring.user-app.zkcredentials.wallet.check.v1",
                                      - "network.keyring.user-app.zkcredentials.attestation.signed.v1",
                                      - "network.keyring.user-app.zkcredentials.identity.signed.v1",
                                      - "network.keyring.user-app.zkcredentials.add.trading.wallet.v1",
                                      - "network.keyring.user-app.tlsn.proof.creation.started.v1",
                                      - "network.keyring.user-app.tlsn.proof.creation.success.v1",
                                      - "network.keyring.user-app.tlsn.proof.creation.failure.v1",
                                      - "network.keyring.user-app.tlsn.proof.creation.retry.v1",
                                      - "network.keyring.user-app.tlsn.proof.creation.cancel.v1",
                                      - "network.keyring.user-app.tlsn.proof.submitted.v1",
                                    ]
                                }
                            }
                        ) -> null
                    } -> null
                } -> null
            },
          + {
              + filter_rule = {
                  + headers = {
                      + json = jsonencode(
                            {
                              + ce-type = {
                                  + "$or" = [
                                      + "network.keyring.onboarding.onboarding.started.v1",
                                      + "network.keyring.onboarding.onboarding.completed.v1",
                                      + "network.keyring.onboarding.onboarding.completed.v2",
                                      + "network.keyring.smart-contract.call.trace.v1",
                                      + "network.keyring.session.start.v1",
                                      + "network.keyring.session.end.v1",
                                      + "network.keyring.page.view.v1",
                                      + "network.keyring.admin-app.session.start.v1",
                                      + "network.keyring.admin-app.session.end.v1",
                                      + "network.keyring.admin-app.page.view.v1",
                                      + "network.keyring.admin-app.user.login.v1",
                                      + "network.keyring.admin-app.redirect.v1",
                                      + "network.keyring.admin-app.ticket.created.v1",
                                      + "network.keyring.admin-app.new.entity.added.v1",
                                      + "network.keyring.admin-app.entity.deleted.v1",
                                      + "network.keyring.admin-app.entity.updated.v1",
                                      + "network.keyring.user-app.session.start.v1",
                                      + "network.keyring.user-app.session.end.v1",
                                      + "network.keyring.user-app.page.view.v1",
                                      + "network.keyring.user-app.user.login.v1",
                                      + "network.keyring.user-app.redirect.v1",
                                      + "network.keyring.user-app.ticket.created.v1",
                                      + "network.keyring.user-app.new.entity.added.v1",
                                      + "network.keyring.user-app.entity.deleted.v1",
                                      + "network.keyring.user-app.entity.updated.v1",
                                      + "network.keyring.user-app.onboarding.started.v1",
                                      + "network.keyring.user-app.onboarding.continued.v1",
                                      + "network.keyring.user-app.onboarding.page.submitted.v1",
                                      + "network.keyring.user-app.onboarding.file.uploaded.v1",
                                      + "network.keyring.user-app.onboarding.member.kyc.started.v1",
                                      + "network.keyring.user-app.onboarding.member.kyc.completed.v1",
                                      + "network.keyring.user-app.onboarding.questionnaire.completed.v1",
                                      + "network.keyring.user-app.onboarding.email.collected.v1",
                                      + "network.keyring.user-app.onboarding.completed.v1",
                                      + "network.keyring.user-app.onboarding.confirming.v1",
                                      + "network.keyring.user-app.zkcredentials.proof.created.v1",
                                      + "network.keyring.user-app.zkcredentials.update.credential.v1",
                                      + "network.keyring.user-app.zkcredentials.update.credential.successful.v1",
                                      + "network.keyring.user-app.zkcredentials.wallet.check.v1",
                                      + "network.keyring.user-app.zkcredentials.attestation.signed.v1",
                                      + "network.keyring.user-app.zkcredentials.identity.signed.v1",
                                      + "network.keyring.user-app.zkcredentials.add.trading.wallet.v1",
                                      + "network.keyring.user-app.tlsn.proof.creation.started.v1",
                                      + "network.keyring.user-app.tlsn.proof.creation.success.v1",
                                      + "network.keyring.user-app.tlsn.proof.creation.failure.v1",
                                      + "network.keyring.user-app.tlsn.proof.creation.retry.v1",
                                      + "network.keyring.user-app.tlsn.proof.creation.cancel.v1",
                                      + "network.keyring.user-app.tlsn.proof.submitted.v1",
                                    ]
                                }
                            }
                        )
                    }
                }
            },
            # (2 unchanged elements hidden)
        ]
      ~ updated_at     = "2024-11-05T15:36:40Z" -> (known after apply)
        # (4 unchanged attributes hidden)
    }

Plan: 0 to add, 1 to change, 0 to destroy.

The diff would indicate that the old rule will be removed and new one added, instead of existing one updated. That would be highly undesirable if true.

@alexluong - how does the provider determine if the filter rule has changed?

The diff would indicate that the old rule will be removed and new one added, instead of existing one updated.

@lijok I don't quite see the difference here. Can you help clarify how one is better than the other?
From the API point of view, rules are a field in connection, so when making changes the only way to update is to override the old rules with new rules.

how does the provider determine if the filter rule has changed

@leggetter in our Terraform schema, rules is a Set

So sounds like we're doing an actual update rather than a delete + create?

Yes, it will be a PUT request on the hookdeck_connection resource.

@lijok yes, it's a PUT request. You can also see TF indicating that it's an update instead of delete + create here
OpenTofu used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  ~ update in-place


sqlite persistence

An initial api to write logs to a local sqlite database.

Things to decide:

putting the ground truth for each datapoint in the same table (does away with table joins) vs creating a different one (cleaner, all log operations will just append data, makes it easy to write to other formats - duckdb, parquet, etc.)
Making this thread/multiprocessing safe.
user facing methods (both log/log_many needed? querying interface?)
allowed inputs (also allow dataframes?)

Some initial thoughts:

With time, I am expecting users to demand integration with their own data warehouses. Keeping that in mind, the 1st one i.e. having different tables seems like a better choice as it allows extendability

Opening up an issue for the same

Let's define those as we integrate this with the framework

We can handle it at framework ie framework converts any data format -> standardized dictionary format which will be consumed by SQLite. I am making those changes in a different PR

@vipgupta - todo: Let's create a separate folder for tests (outside of core) and move test_datastores there. Opening an issue


[BUG] Client v0.20.1 cannot update endpointip

Problem
The Endpoint IP for all clients were not automatically getting set and even trying to manually set them via UI wasn't working.

I recreated my entire AWS VPN bastion network using 0.20.1. My guess is based on the image above, there's an issue communicating with turn? I'm not familiar enough.
Workaround
Downgrade the client to 0.20.0 via install script and endpointip works great again.
Both netmaker and netmaker-ui can remain 0.20.1. So far haven't noticed any issues.
Expected Result
v0.20.1 works the same as v0.20.0 - endpointip is automatically updated and/or be manually updated via UI.
https://github.com/gravitl/netmaker/issues/2378 - Original issue that I opened thinking the problem was over there.

what is output of
docker inspect netmaker | grep STUN
when run on netmaker server

@mattkasun the output of that:
root@ip-172-31-50-8:/home/ubuntu# docker inspect netmaker | grep STUN
                "STUN_PORT=3478",
                "STUN_LIST=stun.netmaker.internal-wireguard.jenfi.com:3478,stun1.netmaker.io:3478,stun2.netmaker.io:3478,stun1.l.google.com:19302,stun2.l.google.com:19302",

https://github.com/gravitl/netmaker/issues/2381

Same issue here. Netclient is not recognizing change of external IP and seems not to update the host on netmaker server. I rolled back to v0.20.4 and will observe if this issue persists.
Further, I can confirm netclient v0.20.0 is syncing the IP properly.

Same issue here. Netclient v0.20.5 is not recognizing change of external IP and seems not to update the host on netmaker server. I rolled back to v0.20.4 and will observe if this issue persists. Further, I can confirm netclient v0.20.0 is syncing the IP properly.

Have you had this issue on v0.20.4 yet?

Yupp same issue on v0.20.4 and also on latest release v0.20.6
I started digging deeper and found tons of errors "wireguard_linux.go 146" in the log.

Also I could figure out the IP update is triggered by
a) rebooting machine
b) restarting netclient service
c) using netclient pull command
However it is not picking up the change of IP on its own.
Any advice?

Issue of not updating external IP persists further with v0.21.0 on several machines.
I am wondering if this can be caused by DNAT setup? How does netclient catches the external IP?
@mattkasun Can you give any advice?

Netclient uses stun to set the public ip

With further testing I could figure out there is something strange since v.0.20.1.
Netclient v0.20.0 is the last working version (for me), recognizing and pushing external IP to Netmaker server correctly.

Tested on

Debian 11
Debian 12
Ubuntu 22.04
--> Result: OS has no influence on issue

Tested with different DNS resolvers

Adguard Home active
Adguard Home inactive
using <IP_ADDRESS> and <IP_ADDRESS> directly
--> Result: DNS has no influence on issue

Outcome of journal -xe | grep netclient

Version v.0.20.0

Version v0.21.0

I am missing the "endpoint has changed" message

Want to provide an update on this topic.
Bad news is that issue still exists on version 0.21.1
The good news, it only appears on Debian distros. Ubuntu is syncing as intended now.


Django1.11 compatibility

fix issue 21
This change resolves Django1.11 Incompatibility with retrocompatibility

I believe we'll be addressing this with the 0.0.4 release shortly


[master-rebranch] Merge in master resolving conflicts

@swift-ci please smoke test

@swift-c please smoke test


Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid parameter not satisfying: storage != nil'

I have need to addUser  in roster and addUser function is in xmppRoster.m class so I need to create object of xmppRoster by writing xmppRoster() but whenever this method(xmppRoster()) runs its gives the error
"Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid parameter not satisfying: storage != nil'"
So may I get the solution.

Hello @chetansrm, You have to specify an XMPPRosterStorage to the xmppRoster before using it. This is not related to the project, so i'm closing it.

Hie #baoluo Thanks it worked for me.

Nice to hear :)

it also worked for me, Thanks


AvaloniaUI: Custom fonts from resources

How can I use my own fonts in ScottPlot, which are located in application resources? For example, there is the PDFsharp  library. It has a font substitution mechanism that allows you to get a font in any available way. It looks something like this (very simplified):
using Avalonia.Platform;
using PdfSharp.Fonts;

namespace TestApp.Main;

internal sealed partial class PdfDocument {
    private sealed class CustomFontResolver : IFontResolver {
        public byte[]? GetFont(string faceName) {
            using (var memory = new MemoryStream()) {
                using (var asset = AssetLoader.Open(new Uri(faceName))) {
                    asset.CopyTo(memory);
                    memory.Position = 0;
                    return memory.ToArray();
                }
            }
        }

        public FontResolverInfo? ResolveTypeface(string familyName, bool isBold, bool isItalic) =>
            new($"avares://TestApp.Fonts/Assets/NotoSans-{(isBold ? "Bold" : "Regular")}.ttf");
    }
}

Is there something similar for ScottPlot?
ScottPlot Version: 5.0.25

The issue was resolved, although not in the best way (using reflection).
public static class PlotHelper {
    private static readonly FieldInfo? LabelCachedTypeface = typeof(Label).GetField("CachedTypeface", BindingFlags.NonPublic | BindingFlags.Instance);
    private static readonly SKTypeface? CachedTypeface = CreateTypeface();

    public static void SetPlotTypeface(AvaPlot control) {
        if (LabelCachedTypeface is null || CachedTypeface is null) {
            return;
        }

        foreach (var axis in control.Plot.Axes.GetAxes()) {
            LabelCachedTypeface.SetValue(axis.TickLabelStyle, CachedTypeface);
        }
    }

    private static SKTypeface CreateTypeface() {
        using (var asset = AssetLoader.Open(new Uri("avares://TestApp.Fonts/Assets/NotoSans-Regular.ttf"))) {
            return SKTypeface.FromStream(asset);
        }
    }
}

This is working at the moment, but things may change in the future if the font caching implementation is revised  (See 1, 2). For a normal solution, it is necessary to review the implementation of some classes, at least:

Fonts
FontStyle
Label
FontStyler

@kebox7 thanks for following-up with the solution! I'm going to re-open this issue and use it to track adding a custom font example to the demo app to make this more discoverable in the future 👍

EDIT: I can also try to rework the files you listed to add true custom font support instead of relying on reflection

@swharden It would be great! Cross-platform development often requires embedding fonts (so that they look the same everywhere), rather than using system fonts. The ability to get fonts in various ways (directly from a file, from resources, etc.) is an excellent extension of functionality.

@kebox7 Could you share how you implemented the solution you provided? I have been trying for a while now, however, I was unable to implement your solution. :/
For Context, I'm just using a simple plot in an Avalonia UserControl

Hi, @nicki419. I didn't need labels for the axes, so the font is not specified for them. But this can be easily modified, just change the method SetPlotTypeface:
public static void SetPlotTypeface(AvaPlot control) {
    if (LabelCachedTypeface is null || CachedTypeface is null) {
        return;
    }

    foreach (var axis in control.Plot.Axes.GetAxes()) {
        LabelCachedTypeface.SetValue(axis.LabelStyle, CachedTypeface); // <-- Added
        LabelCachedTypeface.SetValue(axis.TickLabelStyle, CachedTypeface);
     }
}

Thanks @kebox7 for your useful code samples here! I'm now adding a FontFile property to live alongside FontName, and if it's null (default) it's ignored but if it's populated, the specified font will be used.
I also am adding a SetTypeface() method which can be useful for assets which may not be stored as files on disk, but note that it's cleared whenever other font properties are changed.
I see there's a TODO here to wrap all the font caching in its own class, and perhaps when that happens the API will be a bit more elegant, but for now it seems to be working and I'm creating a demo app too 👍

string fontPath = "Fonts/ShadowsIntoLight/ShadowsIntoLight-Regular.ttf";

formsPlot1.Plot.Title("Plot Using Custom Fonts");
formsPlot1.Plot.Axes.Title.Label.FontFile = fontPath;
formsPlot1.Plot.Axes.Title.Label.FontSize = 36;

formsPlot1.Plot.XLabel("Horizontal Axis");
formsPlot1.Plot.Axes.Bottom.Label.FontFile = fontPath;
formsPlot1.Plot.Axes.Bottom.Label.FontSize = 24;
formsPlot1.Plot.Axes.Bottom.TickLabelStyle.FontFile = fontPath;
formsPlot1.Plot.Axes.Bottom.TickLabelStyle.FontSize = 18;

formsPlot1.Plot.YLabel("Vertical Axis");
formsPlot1.Plot.Axes.Left.Label.FontFile = fontPath;
formsPlot1.Plot.Axes.Left.Label.FontSize = 24;
formsPlot1.Plot.Axes.Left.TickLabelStyle.FontFile = fontPath;
formsPlot1.Plot.Axes.Left.TickLabelStyle.FontSize = 18;

Can we use avares:// paths?

Is there an example on how to load a font using avares:// ?

Is there an example of how to load a font using avares://?

Does this get the job done? https://github.com/ScottPlot/ScottPlot/issues/3722#issuecomment-2076781698


Feature.packaging enhancement 980

Issues:
Fixes #980
Via peripheral, this may be (and can be edited later if it does not) fixing:
#915
#849
#596
Problem:
The issues that this addresses are as follows:

Introduces a 'single source of truth' file location for dependencies in a supportable manner

The setup.py introduces issues with attempting to import and extract values without the Setup Utils taking over and attempting to apply a build
Issue addressed here is #596
This can be migrated later to a different solution as needed

I've isolate this code to the stand-alone script construct_setups.py

This addresses both the construction of the setup.cfg and the stdeb.cfg files (rpm and deb respectuflly)
Other solutions that might work would be a pipfile, tox.ini, etc.
I used the requirements.txt format because it was the easiest to parse by hand, which is a requirement on the testing side
Making testing as bare-to-the-native OS as possible for testing purposes and best validation for customers who might not have the parsing tools installed

Introduces a more generic means of testing packages that is not environment-specific

Thus anyone could put their git repo clone anywhere on their machine, and running this will simply build and test
This also allows you to take the code and port it over into a different github repo and run it, and it should work there as well

As long as the *-dist/scripts and *-dist/Docker/<os>/<os_version> and *-dist/Docker/<os>/install_test/ structures are in place

Performs auto-handling of 'ceiling' requirements for dependency versions
Integrates well with .travis.yml testing as it should exit with a non-zero status within the installation portion of the Travis processing

Thus, it should notify a pull requestor if/when the package building portion breaks

I'm not saying that this solves all problems here for all folks involved's requirements; however, we can say that this is a good starting point.  That is to handle building and testing the packages.
Analysis:
The following address the following issues and have the following specifications:

The .travis.yml change

Puts the one build/test script at the installation level

Thus any non-0 exiting script should cause a 'break' in the test

The <project>-dist/<os>/<version>/* changes

Introduces a more generic means of building the packages in their native operating system
Has a higher level of sustainability as they are programmed in python, and the Docker file's generated containers should exit with a non-zero when things fail
Is executed from the build script via subprocess.check_call() and handled to report any failures via a non-0 exit status

The <project>-dist/<os>/install_test/* changes

Introduces a more sustainable version of the scripts that are not as argument dependent
Introduces a more generic handling of dependencies such that a package might require any number of tiers of packages from both F5 and the Linux community (apt-get or yum)

The <project>-dist/scripts/ introduces a go-to repository of build script material for importing and handling

The build_exceptions.py

A generic set of exceptions that use inspect traceback and frame handling to report on errors that are predictable
A means to grow this list of exceptions as needed via inheritence
At each level, uniquely-identifiable changes can be performed on the exceptions to make things more usable to programmers

The build_pkgs.py

A more generic build and test script that can be deployed (if with all of its requirements) to other repos and github repositories as needed

The constructs_setup.py

A standalone script that can be called on its own or used as a modulino to be imported by another script (how it's used by build_pkgs.py)
This uses the single source of truth dependencies file to generate a setup.cfg file for RPM's and a stdeb.cfg file for DEB's
Allows for version ranges for dependencies (both a ceiling and a floor) as needed.

The configure.py

Constructs a <project>-dist/scripts/config.JSON file that contains globals
This is the lever that is used throughout the rest of the code to identify where in file space the runtime is

The add_pkg_name.py

Script that allows the build scripts to "talk" to the test scripts communicating what the package names are
Depends upon the configure.py as a modulino that houses all things config.JSON
Can be made to lock the config.JSON file in the future for parallel processing the RPM and DEB builds/tests

The build_expectations.py

A simple class-holding module that contains Build() object
This object is used to derive a tuple([namedtuple('OperationSettings')]) as well as the namedtuple(OperationSettings) objects

These objects are used as a means of uniforming the format of what is used to determine what will be built/tested by both the build_pkgs.py and the isntall_test.py
The install_test.py

This too can be standalone to test the already-present packages
This script is used as a module by the build_pkgs.py script
Executes the tests to test the packages in their native OS/OS version

The setup_requirements.txt file as a "scarecrow" source of truth file for dependencies

Easily parsable via just re and also has a pip.req.parse_requirements function to parse this data as well

Tests:
This code, in and of itself, is a test; however, Travis is what executes it.
SIDE NOTE:
This code is broken out into several commits intentionally to address to the reviewer the code and what it does in smaller chunks.
Reviewer: @zancas

So this is runnable from a machine that has Docker installed, and the expected CLI feedback is:
f5-common-python$ ./f5-sdk-dist/scripts/build_pkgs.py
Successfully constructed /git/f5-common-python/setup.cfg and
/git/f5-common-python/f5-sdk-dist/deb_dist/stdeb.cfg
Building packages...
For Debian...
For Redhat...
Completed package builds...
Initiating install tests...
Testing Packages...
Package: ./f5-sdk-dist/deb_dist/python-f5-sdk_2.2.2-1_1404_all.deb Test succeeded!
Package: ./f5-sdk-dist/rpms/build/f5-sdk-2.2.2-1.el7.noarch.rpm Test succeeded!
Completed install tests
If something "bad" happens, it will be much more verbose if it fails during the testing or building phases for a package.  Further, it should always produce a Traceback upon failure.
Running this via time to get a clock count, I've got:
f5-common-python$ time !!
time ./f5-sdk-dist/scripts/build_pkgs.py
Successfully constructed /git/f5-common-python/setup.cfg and
/git/f5-common-python/f5-sdk-dist/deb_dist/stdeb.cfg
Building packages...
For Debian...
For Redhat...
Completed package builds...
Initiating install tests...
Testing Packages...
Package: ./f5-sdk-dist/deb_dist/python-f5-sdk_2.2.2-1_1404_all.deb Test succeeded!
Package: ./f5-sdk-dist/rpms/build/f5-sdk-2.2.2-1.el7.noarch.rpm Test succeeded!
Completed install tests
real	0m49.109s
user	0m0.381s
sys	0m0.279s
So just under a minute.  However, it will likely take longer for a machine that does not have a pre-existing docker image set for this... It takes roughly 2-3 minutes in the Travis testing to do so.  Let me know if you want me to test this from scratch.


fix Release analyze tasks once job finished

Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run feut

run buildall

run buildall

run buildall

https://github.com/apache/doris/pull/27486 Same PR has been merge for master, closed


Upgrade Keyboard Maestro to 7.0.3

Thank you for the contribution. It was merged directly as 91cc0ea6e3cdb180537df506440874b13bdf926b to keep commit history cleaner. Your contribution is still credited to you.


chore(ci): Skip CI runs if no code changes

The issue says whitelist, but I think blacklisting is much better. With
whilelisting items would prevent future code to be scanned if we add new
root directories or move/rename existing ones, for example moving
internal Go code under internal/ (to make it clear they are not
intended to be reused in external tools).
Ignored glob patterns:

doc/** (everything under doc/)
website/** (everything under website/)
*.md (all markdown files in the of the repo)

Closes #2061

You won't be able to merge these PRs, as they won't make PR CI Pipeline turn green.

@ozamosi : I think if it's "Skipped" it counts are green.

Hm. You seem to be right, given that it's been skipped right now after it's prerequisites failed, and there's still a merge button.


added export and import as base64 string function

Hi,
Here's the new version of import and export as base64 string. Hope this is fine.

@ahmdrz Why is the build failing? Doesn't seem to be my code, right?

Yes, it's not about your code.

Can you create a new release with the addition?

Okay, now V2.4.2 is ready to use.


CompilerMSL vertex entry point return void when rasterization disabled.

Add CompilerMSL::Options::disable_rasterization input/output API flag.
Disable rasterization via API flag or when writing to textures.
Disable rasterization when shader declares no output.
Add test shaders for vertex no output and write texture forcing void output.
Metal has an IFF relationship between pipeline rasterization and vertex shader void return.
Metal requires that vertex shaders have a void return on any of:

rasterization is disabled on the pipeline
writing to textures
writing to buffers
no output variables are declared

Furthermore...when a void return is declared by the shader for any of the above reasons, the runtime pipeline must disable rasterization...requiring feedback through the API of the void return.

Thanks.
Actually...I think I'll tweak the design to separate the feedback API of disabling rasterization from within the shader conversion...from the initial CompilerMSL::Options::disable_rasterization.
In thinking it through...it is kind of a confusing outlier to have one of the options change from within the shader conversion. It would probably be a better design to leave the option itself alone...and provide a separate CompilerMSL::is_rasterization_disabled() function.
I'll submit a separate PR for that.

BTW...enjoy your holiday! When are you returning?

Yes, the new PR makes sense. I'll be back August 7th.


Please publish the newest version of gz-transport-sys to crates.io

I was not able to compile because I got this Error: "gz-transport or ignition-transport not found", but when I tried cloning this repository and using a path dependency instead it worked.
I think you forgot to publish the newest version of the build script for gz-transport-sys to crates.io.

I have some questions.

What version of gazebo did you install?
Is pkg-config is installed? If no, would you install it and retry.

Gazebo Harmonic
Yes it is

This doesn't work:
[dependencies]
gz-msgs = { version = "0.6.0", default-features = false, features = [
    "harmonic",
] }
gz = "0.6.0"

This works:
[dependencies]
gz-msgs = { git = "https://github.com/eduidl/gz-rs", default-features = false, features = [
    "harmonic",
] }
gz = { git = "https://github.com/eduidl/gz-rs" }

I would prefer to use the crates.io versions instead of relying on git.

After completing the changes I was going to make, I took them and published them to crates.io as version 0.7.1.
It was necessary to make a major change in the package configuration to enable automatic feature selection, which was quite a big change.
If you have already written the code, it may need some changes, but we would like you to give it a try.

Tested it and it works great! Now I only have to depend on gz. Thanks!


Install rhos-release rpm as root

This PR has:

[ ] Appropriate testing (molecule, python unit tests)
[ ] Appropriate documentation (README in the role, main README is up-to-date)

/lgtm


MultiVM

Can we setup labs as custom as DevTestLabs with multiple VMs for students to log in, deploy, and use?

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

ID: d783b020-3c74-c54d-416d-cf8539f27309
Version Independent ID: 5da29795-6264-b4d5-57b2-c7dc94f4dc01
Content: Set up a classroom lab using Azure Lab Services
Content Source: articles/lab-services/tutorial-setup-classroom-lab.md
Service: lab-services
Product: unspecified
GitHub Login: @spelluru
Microsoft Alias: spelluru

@NigelbrownIBM Thank you for the feedback!  We are investigating this and will get back to you shortly.

Ah ok thank you - we are looking to setup SCCM labs for out team and this looked like a good option.

@NigelbrownIBM We are going to close this thread as resolved but if there are any further questions regarding this matter, please tag me in your reply and we will be happy to continue the conversation.


Using 'OR' condition in delta Merge operation.

Hi,
Our setup consist of:
Spark: 3.0.1
Python: 3.7
Delta: 0.8.0
Output Location: AWS S3
The above setup is running in
We are trying to understand the performance impact of 'OR' condition in a merge statement. The condition is based on partitions 'year' and 'month'. Sample data for the same maybe
id | year | month
'123' | 2020 | 1
'456' | 2020 | 2
'789' | 2021 | 3
'100' | 2021 | 4
The two queries which we used are below:
Option 1:
DeltaTable
  .forPath(sc, delta_path)
  .alias("t")
  .merge(data.alias("s"), "t.year in  (2020, 2021) and  t.month in  (1, 2, 3, 4) and t.pkey_id=s.pkey_id")
  .whenMatchedUpdateAll()
  .whenNotMatchedInsertAll()
  .execute()

Option 2:
DeltaTable
  .forPath(sc, delta_path)
  .alias("t")
  .merge(data.alias("s"), "((t.year = 2020 AND t.month = 1) OR (t.year = 2020 AND t.month = 2) OR (t.year = 2021 AND t.month = 3) OR (t.year = 2021 AND t.month = 4)) AND t.pkey_id=s.pkey_id")
  .whenMatchedUpdateAll()
  .whenNotMatchedInsertAll()
  .execute()

We noticed that the query in Options 2 was taking longer time than Option: 1, but we worry that since we are using multiple partition's in option: 1 it might be creating too many small files on every merge even though when the data has not changed for the partition e.g. year = 2020, month = 3 in the above example.
Can you let us know if there are alternate ways in which this can be done efficiently?
Regards,
Nimesh.

Merge rewrites only those files that have matches based on the merge condition. In both options, if the exact rows that satisfy the respective condition are the same, the files rewritten should be the same (assuming exact same data layout in both runs of the merge operation). So option 1 shouldn't rewrite files in partitions that have no matches.
Regarding why option 1 is faster, it could be because of how efficiently spark analyzes the condition and what kind of pruning and filtering it is able to do when reading the table data to find the matches. It's possible that Spark is able to do analyze the condition of option 1 and only read those partitions, compared to option 2 where it's ineffectively reading all the partitions.

Closing the issue. Please reopen if there are follow up questions.


Add support for hardhat stack traces

@thegostep Can you proide more details?
Do you mean https://github.com/OpenZeppelin/openzeppelin-upgrades/issues/137?

Do you mean #137?

Yes this seems to be the one


Exec tachikoma update<PHONE_NUMBER>2815

:hamster::hamster::hamster:   Strategy none
Powered by Interval Pull Request as a Service - Tachikoma.io Announcement: 2015-06-28 Updated permissions - Tachikoma.io

Can one of the admins verify this patch?


formula_versions: handle uncommitted formulae.

Otherwise an uncommitted formula can trigger an invalid brew audit result.
CC @ilovezfs
Fixes #1731.

@MikeMcQuaid this PR seems to have introduced a bug that causes a revision # that should be removed because the version is being bumped to go undetected. I noticed this because https://github.com/Homebrew/homebrew-core/pull/10180 still had revision 2 in it but it passed CI without a hiccup. git bisect led me here, and a revert fixes it.
iMac-TMP:homebrew-core joe$ brew pull https://github.com/Homebrew/homebrew-core/pull/10180
==> Fetching patch
Patch: https://github.com/Homebrew/homebrew-core/pull/10180.patch
==> Applying patch
Applying: crystal-lang 0.21.0
Applying: remove revision
Warning: crystal-lang has a bottle: do you need to update it with --bottle?
==> Patch closes issue #10180
Warning: Nonstandard bump subject: remove revision
Warning: Subject should be: crystal-lang 0.21.0
==> Patch changed:
 Formula/crystal-lang.rb | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)
iMac-TMP:homebrew-core joe$ git reset --hard @^
HEAD is now at 9226014 crystal-lang 0.21.0
iMac-TMP:homebrew-core joe$ cd /usr/local/Homebrew
iMac-TMP:Homebrew joe$ git reset --hard origin/master
HEAD is now at efd4d15 Merge pull request #2075 from rwhogg/java-requirement-extend
iMac-TMP:Homebrew joe$ brew audit crystal-lang
iMac-TMP:Homebrew joe$ git revert 35ae78f43d45369f86b8c56c04ccca1119fdb1d1
[master 215b144] Revert "formula_versions: handle uncommitted formulae."
 1 file changed, 10 insertions(+), 19 deletions(-)
iMac-TMP:Homebrew joe$ brew audit crystal-lang
crystal-lang:
  * 'revision 2' should be removed
Error: 1 problem in 1 formula

I'm now wondering how many of these have slipped through since this shipped, but oh well.

@ilovezfs Working on it.

@ilovezfs Opened PR to fix in https://github.com/Homebrew/brew/pull/2086.


Grpc.Tools - protoc fails on ubuntu 20.04.2 arm64 (but only when called by dotnet build)

What version of gRPC and what language are you using?
Grpc.Tools 2.37.0 / csharp
What operating system (Linux, Windows,...) and version?
Ubuntu 20.04.2 LTS aarch64 / Raspberry Pi4
What runtime / compiler are you using (e.g. python version or version of gcc)
.Net 5.0.202
What did you do?
Clone grpc/grpc-dotnet and cd to it.
Run source activate.sh
Edit build/dependencies.props to set example projects to use Grpc.AspNetCore 2.37.0
Cd to examples/Greeter/Server
dotnet build .
What did you expect to see?
Successful build (2.36 and below would fail as they lacked arm native tools)
What did you see instead?
Build fails with: grpc.tools/2.37.0/tools/linux_arm64/protoc" exited with code 139. (process stopped due to SIGSEGV?)
Debug log shows:
Task "ProtoCompile"
/home/username/.nuget/packages/grpc.tools/2.37.0/tools/linux_arm64/protoc --csharp_out=obj/Debug/net5.0 --plugin=protoc-gen-grpc=/home/username/.nuget/packages/grpc.tools/2.37.0/tools/linux_arm64/grpc_csharp_plugin --grpc_out=obj/Debug/net5.0 --grpc_opt=no_client --proto_path=/home/username/.nuget/packages/grpc.tools/2.37.0/build/native/include --proto_path=../Proto --dependency_out=obj/Debug/net5.0/830b0b44ffda90ec_greet.protodep --error_format=msvs ../Proto/greet.proto
1:7>/home/username/.nuget/packages/grpc.tools/2.37.0/build/_protobuf/Google.Protobuf.Tools.targets(280,5): error MSB6006: "/home/username/.nuget/packages/grpc.tools/2.37.0/tools/linux_arm64/protoc" exited with code 139. [/home/username/grpc-dotnet/examples/Greeter/Server/Server.csproj]
Done executing task "ProtoCompile" -- FAILED.

Running protoc using the logged commandline manually works and generates code - after this is done, dotnet build works.
I built protoc from latest github source and used that to replace the version shipped with Grpc.Tools 2.37.0, and the problem no longer occured on a clean build.
So it seems the tool only fails when both:

The binary shipped with NuGet package Grpc.Tools 2.37.0 is used
Its being run by a dotnet build

Anything else we should know about your project / environment?

Can you run ldd grpc.tools/2.37.0/tools/linux_arm64/protoc and compare to the version of protoc that works?

Nuget shipped version gives:
        linux-vdso.so.1 (0x0000ffff86baa000)
        libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000ffff86b4a000)
        libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000ffff86a9d000)
        libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000ffff8692a000)
        /lib/ld-linux-aarch64.so.1 (0x0000ffff86b7a000)

And the working one gives:
        linux-vdso.so.1 (0x0000ffffb6926000)
        libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000ffffb655d000)
        libstdc++.so.6 => /lib/aarch64-linux-gnu/libstdc++.so.6 (0x0000ffffb637a000)
        libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 (0x0000ffffb6355000)
        libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000ffffb61e2000)
        /lib/ld-linux-aarch64.so.1 (0x0000ffffb68f6000)
        libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000ffffb6135000)

Forgot to mention - the working one was built with ./configure LDFLAGS="-static".

I was able to explain why only dotnet calls to protoc are affected - the problem only affects the @<filename> option to pass arguments via a file, which dotnet build uses.
So on the affected system just running protoc @/dev/null should show the usage template, but instead gives a segfault.
Thread 3.1 "protoc" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xfffff7ff0040 (LWP 5072)]
0x00000000007c228c in std::locale::_Impl::_M_remove_reference() ()
(gdb) bt
#0  0x00000000007c228c in std::locale::_Impl::_M_remove_reference() ()
#1  0x00000000007c2308 in std::locale::operator=(std::locale const&) ()
#2  0x00000000007e1814 in std::ios_base::_M_init() ()
#3  0x00000000007bfb28 in std::basic_ios<char, std::char_traits<char> >::init(std::basic_streambuf<char, std::char_traits<char> >*) ()
#4  0x0000000000502108 in google::protobuf::compiler::CommandLineInterface::ExpandArgumentFile(std::string const&, std::vector<std::string, std::allocator<std::string> >*) ()
#5  0x00000000005051ec in google::protobuf::compiler::CommandLineInterface::ParseArguments(int, char const* const*) ()
#6  0x00000000005095a0 in google::protobuf::compiler::CommandLineInterface::Run(int, char const* const*) ()
#7  0x00000000004fe310 in google::protobuf::compiler::ProtobufMain(int, char**) ()
#8  0x0000fffff7da0090 in __libc_start_main (main=0x4fa958 <main>, argc=2, argv=0xfffffffff808, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>,
    stack_end=<optimized out>) at ../csu/libc-start.c:308
#9  0x00000000004fdbc0 in _start ()

Does that mean this system isn't compatible with the the statically linked libstdc++ in the nuget version of protoc?

I was able to explain why only dotnet calls to protoc are affected - the problem only affects the @<filename> option to pass arguments via a file, which dotnet build uses.
So on the affected system just running protoc @/dev/null should show the usage template, but instead gives a segfault.
Thread 3.1 "protoc" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xfffff7ff0040 (LWP 5072)]
0x00000000007c228c in std::locale::_Impl::_M_remove_reference() ()
(gdb) bt
#0  0x00000000007c228c in std::locale::_Impl::_M_remove_reference() ()
#1  0x00000000007c2308 in std::locale::operator=(std::locale const&) ()
#2  0x00000000007e1814 in std::ios_base::_M_init() ()
#3  0x00000000007bfb28 in std::basic_ios<char, std::char_traits<char> >::init(std::basic_streambuf<char, std::char_traits<char> >*) ()
#4  0x0000000000502108 in google::protobuf::compiler::CommandLineInterface::ExpandArgumentFile(std::string const&, std::vector<std::string, std::allocator<std::string> >*) ()
#5  0x00000000005051ec in google::protobuf::compiler::CommandLineInterface::ParseArguments(int, char const* const*) ()
#6  0x00000000005095a0 in google::protobuf::compiler::CommandLineInterface::Run(int, char const* const*) ()
#7  0x00000000004fe310 in google::protobuf::compiler::ProtobufMain(int, char**) ()
#8  0x0000fffff7da0090 in __libc_start_main (main=0x4fa958 <main>, argc=2, argv=0xfffffffff808, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>,
    stack_end=<optimized out>) at ../csu/libc-start.c:308
#9  0x00000000004fdbc0 in _start ()

Does that mean this system isn't compatible with the the statically linked libstdc++ in the nuget version of protoc?

Interesting find. We'd have to investigate this a little bit more.

FYI this is how the protoc artifacts for aarch64 current get build:
https://github.com/grpc/grpc/blob/9b87fb33bf61847ca05deb788532c2a182e93b26/tools/run_tests/artifacts/artifact_targets.py#L320
https://github.com/grpc/grpc/blob/9b87fb33bf61847ca05deb788532c2a182e93b26/tools/dockerfile/grpc_artifact_python_manylinux2014_aarch64/Dockerfile#L20

I can confirm this issue: https://github.com/grpc/grpc-dotnet/issues/1301

@jtattermusch @peterwishart
Wanted to share my latest findings.
I did this to compile protoc as close as possible to the nuget environment:
(maybe sudo docker run --rm --privileged multiarch/qemu-user-static --reset -p yes required in advance)
cd grpc
docker run --rm dockcross/manylinux2014-aarch64:20200929-608e6ac > ./dockcross
./dockcross bash
rm -rf cmake/build/*
LDFLAGS="-static-libgcc -static-libstdc++ -s" tools/run_tests/artifacts/build_artifact_protoc.sh
cmake/build/third_party/protobuf/protoc @/dev/null

This runs the protoc aarch64 binary directly inside the container and even there causes the crash:
qemu: uncaught target signal 11 (Segmentation fault) - core dumped
Segmentation fault (core dumped)

The crash happens here:
https://github.com/protocolbuffers/protobuf/blob/436bd7880e458532901c58f4d9d1ea23fa7edd52/src/google/protobuf/compiler/command_line_interface.cc#L1435
When changing the CMAKE_BUILD_TYPE=Debug in tools/run_tests/artifacts/build_artifact_protoc.sh like such:
cmake -DgRPC_BUILD_TESTS=OFF -DCMAKE_BUILD_TYPE=Debug ../..
and compiling with the -s option, it produces a binary that runs inside the Docker container as well as on the Raspberry (tested that protoc @/dev/null prints the manual)
The binary size is:
-rwxrwxr-x 1 dev dev 9.0M May 24 14:44 cmake/build/third_party/protobuf/protoc-<IP_ADDRESS>
When changing the CMAKE_BUILD_TYPE in tools/run_tests/artifacts/build_artifact_protoc.sh like such:
cmake -DgRPC_BUILD_TESTS=OFF -DCMAKE_BUILD_TYPE=MinSizeRel ../.. and compiling with the -s option,
the binary size is way smaller:
-rwxrwxr-x 1 dev dev 3.6M May 24 14:51 cmake/build/third_party/protobuf/protoc-<IP_ADDRESS>
and still the binary runs.
I thought that strip on the release build is the problem, but when building with cmake -DgRPC_BUILD_TESTS=OFF -DCMAKE_BUILD_TYPE=Release ../.. and removing -s, it crashes though.

Finally a general thought:
When linking libstd++ and libgcc statically (for better compatibility across environments), shouldn't the remaining libraries such as libpthread, libm, etc. also be linked statically?
This:
LDFLAGS="-static -static-libgcc -static-libstdc++ -s" tools/run_tests/artifacts/build_artifact_protoc.sh
and
cmake -DgRPC_BUILD_TESTS=OFF -DCMAKE_BUILD_TYPE=MinSizeRel ../..
gives me a totally self contained binary
ubuntu@rpi:/src/tmp$ ldd protoc
        not a dynamic executable

that for a reason I do not yet understand is even smaller:
-rwxrwxr-x 1 dev dev 3.0M May 24 15:01 cmake/build/third_party/protobuf/protoc-<IP_ADDRESS>

For those who have landed her looking for a work around:
Run dotnet build -v d and find where the proto building failed.
Copy the command in the debug output and run it
(e.g. in my case /home/aslab/.nuget/packages/grpc.tools/2.38.0/tools/linux_arm64/protoc --csharp_out=obj/Debug/net5.0/Protos --plugin=protoc-gen-grpc=/home/aslab/.nuget/packages/grpc.tools/2.38.0/tools/linux_arm64/grpc_csharp_plugin --grpc_out=obj/Debug/net5.0/Protos --proto_path=/home/aslab/.nuget/packages/grpc.tools/2.38.0/build/native/include --proto_path=. --dependency_out=obj/Debug/net5.0/1255d1a520d30ea4_gprc_predict_v2.protodep --error_format=msvs Protos/gprc_predict_v2.proto)
Copy the .cs files from obj/Debug/dotnet-5.0/PROTP_FOLDER_NAME into your project somewhere
Remove the proto itemgroup entries from the .csproj file

I don't fully understand the rootcause of this yet, but it definitely seems connected to statically linking libstdc++
(perhaps the statically linked libstdc++ from the dockcross docker image is somehow broken?). I think this issue https://github.com/grpc/grpc/issues/26279 could be caused by the same problem.

I just compiled protoc with full dynamic linking.
Then I copied the libstdc++.so* and the libgcc_s.so* from the toolchain to my Raspberry.
When running the binary linked against my Rasp's default libs, its fine.
When linking against the copied .so's, it crashes.
So I dare to say, there's something strange / wrong in the build toolchain in general, not only for the static libs.
In my previous experiments I also updated to the newest manylinux container, that has a newer gcc toolchain - with no difference.
For documentation:
ubuntu@rpi:/src$ ldd ./tmp/protoc-<IP_ADDRESS>
        linux-vdso.so.1 (0x0000ffff93f07000)
        libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000ffff93e95000)
        libstdc++.so.6 => /lib/aarch64-linux-gnu/libstdc++.so.6 (0x0000ffff93cb2000)
        libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000ffff93c05000)
        libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 (0x0000ffff93be0000)
        libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000ffff93a6d000)
        /lib/ld-linux-aarch64.so.1 (0x0000ffff93ed7000)

ubuntu@rpi:/src$ LD_LIBRARY_PATH=tmp ldd ./tmp/protoc-<IP_ADDRESS>
        linux-vdso.so.1 (0x0000ffffb699e000)
        libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000ffffb692c000)
        libstdc++.so.6 => tmp/libstdc++.so.6 (0x0000ffffb6833000)
        libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000ffffb6786000)
        libgcc_s.so.1 => tmp/libgcc_s.so.1 (0x0000ffffb6765000)
        libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000ffffb65f2000)
        /lib/ld-linux-aarch64.so.1 (0x0000ffffb696e000)

and
ubuntu@rpi:/src$ LD_LIBRARY_PATH=tmp ./tmp/protoc-<IP_ADDRESS> @/dev/null
Segmentation fault (core dumped)

ubuntu@rpi:/src$ ./tmp/protoc-<IP_ADDRESS> @/dev/null
Usage: ./tmp/protoc-<IP_ADDRESS> [OPTION] PROTO_FILES
Parse PROTO_FILES and generate output based on the options given:
  -IPATH, --proto_path=PATH   Specify the directory in which to search for
[...]

This should be fixed by https://github.com/grpc/grpc/pull/26416.
A nightly build of Grpc.Tools that has the fix should appear soon in package.grpc.io and in our dev nuget channel.
I also backported the fix to the latest release branch (https://github.com/grpc/grpc/pull/26423), so the fix will also be in v2.38.1 release (once it's published).


ACL enhancement.

Can one of the admins verify this patch?

Codecov Report

Merging #111 into master will decrease coverage by 0.05%.
The diff coverage is 0.58%.

@@             Coverage Diff             @@
##             master    #111      +/-   ##
===========================================
- Coverage     21.66%   21.6%   -0.06%
- Complexity     3857    3859       +2
===========================================
  Files           992     996       +4
  Lines         59797   59964     +167
  Branches       8653    8661       +8
===========================================
+ Hits          12954   12956       +2
- Misses        45645   45811     +166
+ Partials       1198    1197       -1

Impacted Files
Coverage Δ
Complexity Δ

...apache/kylin/common/persistence/ResourceStore.java
59% <ø> (ø)
25 <0> (ø)
:arrow_down:

...a/org/apache/kylin/rest/request/AccessRequest.java
100% <ø> (ø)
9 <0> (ø)
:arrow_down:

...pache/kylin/rest/security/springacl/AclRecord.java
0% <0%> (ø)
0 <0> (?)

...ache/kylin/rest/controller/TableACLController.java
0% <0%> (ø)
0 <0> (?)

...va/org/apache/kylin/rest/security/ManagedUser.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

...ylin/rest/security/springacl/MutableAclRecord.java
0% <0%> (ø)
0 <0> (?)

...pache/kylin/common/persistence/JsonSerializer.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

.../java/org/apache/kylin/rest/util/ValidateUtil.java
3.07% <0%> (-0.1%)
3 <0> (ø)

.../apache/kylin/rest/security/springacl/AceImpl.java
0% <0%> (ø)
0 <0> (?)

.../apache/kylin/rest/security/springacl/SidInfo.java
0% <0%> (ø)
0 <0> (?)

... and 20 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 1e7825b...fb633e4. Read the comment docs.

Pull Request Test Coverage Report for Build 3026

3 of 515 (0.58%) changed or added relevant lines in 19 files are covered.
19 unchanged lines in 7 files lost coverage.
Overall coverage decreased (-0.06%) to 23.606%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

server-base/src/main/java/org/apache/kylin/rest/security/springacl/LegacyAceInfo.java
0
1
0.0%

core-metadata/src/main/java/org/apache/kylin/metadata/acl/TableACLManager.java
0
1
0.0%

server-base/src/main/java/org/apache/kylin/rest/security/ManagedUser.java
0
1
0.0%

server-base/src/main/java/org/apache/kylin/rest/service/QueryService.java
0
3
0.0%

server-base/src/main/java/org/apache/kylin/rest/security/springacl/SidInfo.java
0
4
0.0%

server-base/src/main/java/org/apache/kylin/rest/controller/TableACLController.java
0
7
0.0%

server-base/src/main/java/org/apache/kylin/rest/service/AclTableMigrationTool.java
0
8
0.0%

core-common/src/main/java/org/apache/kylin/common/persistence/JsonSerializer.java
0
8
0.0%

server-base/src/main/java/org/apache/kylin/rest/util/ValidateUtil.java
0
8
0.0%

server-base/src/main/java/org/apache/kylin/rest/service/KylinUserService.java
0
16
0.0%

Files with Coverage Reduction
New Missed Lines
%

core-common/src/main/java/org/apache/kylin/common/persistence/JsonSerializer.java
1
0.0%

core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/MemDiskStore.java
1
78.12%

server-base/src/main/java/org/apache/kylin/rest/service/AclTableMigrationTool.java
1
0.0%

server-base/src/main/java/org/apache/kylin/rest/service/KylinUserService.java
2
0.0%

server-base/src/main/java/org/apache/kylin/rest/service/QueryService.java
2
0.0%

server-base/src/main/java/org/apache/kylin/rest/service/AccessService.java
6
0.0%

server-base/src/main/java/org/apache/kylin/rest/service/AclService.java
6
0.0%

Totals

Change from base Build 3020:
-0.06%

Covered Lines:
14155

Relevant Lines:
59964

💛  - Coveralls

retest this please.


Flappy Bird - updates required

@Etothepowerof26
Marquee needs updating
Doesn't work in vanilla gmod
Plays annoying sound when it loads

#23


New version: GLM v1.3.0

Registering package: GLM
Repository: https://github.com/JuliaStats/GLM.jl
Created by: @kleinschmidt
Version: v1.3.0
Commit: 567094bd39bde2fa7c7763d62ad839e058d9e4a6
Reviewed by: @kleinschmidt
Reference: https://github.com/JuliaStats/GLM.jl/commit/567094bd39bde2fa7c7763d62ad839e058d9e4a6#commitcomment-34171353

Can you also add
julia = "1"

to the [compat] section and retrigger?

One of these days I'll learn...


[zero-3] add support for new params added during fwd pass

/cc @stas00

Does this code also remove the old param that is no longer in the submodule?

new failure:
E             File "/mnt/nvme1/code/huggingface/transformers-ds-model-zoo-2/examples/pytorch/translation/run_translation.py", line 620, in <module>
E             File "/mnt/nvme1/code/huggingface/transformers-ds-model-zoo-2/examples/pytorch/translation/run_translation.py", line 620, in <module>
E                   main()main()
E
E             File "/mnt/nvme1/code/huggingface/transformers-ds-model-zoo-2/examples/pytorch/translation/run_translation.py", line 537, in main
E             File "/mnt/nvme1/code/huggingface/transformers-ds-model-zoo-2/examples/pytorch/translation/run_translation.py", line 537, in main
E               train_result = trainer.train(resume_from_checkpoint=checkpoint)
E             File "/mnt/nvme1/code/huggingface/transformers-ds-model-zoo-2/src/transformers/trainer.py", line 1316, in train
E               train_result = trainer.train(resume_from_checkpoint=checkpoint)
E             File "/mnt/nvme1/code/huggingface/transformers-ds-model-zoo-2/src/transformers/trainer.py", line 1316, in train
E               tr_loss_step = self.training_step(model, inputs)
E             File "/mnt/nvme1/code/huggingface/transformers-ds-model-zoo-2/src/transformers/trainer.py", line 1849, in training_step
E               tr_loss_step = self.training_step(model, inputs)
E             File "/mnt/nvme1/code/huggingface/transformers-ds-model-zoo-2/src/transformers/trainer.py", line 1849, in training_step
E               loss = self.compute_loss(model, inputs)
E             File "/mnt/nvme1/code/huggingface/transformers-ds-model-zoo-2/src/transformers/trainer.py", line 1881, in compute_loss
E               loss = self.compute_loss(model, inputs)
E             File "/mnt/nvme1/code/huggingface/transformers-ds-model-zoo-2/src/transformers/trainer.py", line 1881, in compute_loss
E               outputs = model(**inputs)
E             File "/home/stas/anaconda3/envs/py38-pt110/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1102, in _call_impl
E               outputs = model(**inputs)
E             File "/home/stas/anaconda3/envs/py38-pt110/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1102, in _call_impl
E               return forward_call(*input, **kwargs)
E             File "/mnt/nvme1/code/github/00optimize/deepspeed/deepspeed/runtime/engine.py", line 1606, in forward
E               return forward_call(*input, **kwargs)
E             File "/mnt/nvme1/code/github/00optimize/deepspeed/deepspeed/runtime/engine.py", line 1606, in forward
E               loss = self.module(*inputs, **kwargs)
E             File "/home/stas/anaconda3/envs/py38-pt110/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1120, in _call_impl
E               result = forward_call(*input, **kwargs)
E             File "/mnt/nvme1/code/huggingface/transformers-ds-model-zoo-2/src/transformers/models/m2m_100/modeling_m2m_100.py", line 1303, in forward
E               loss = self.module(*inputs, **kwargs)
E             File "/home/stas/anaconda3/envs/py38-pt110/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1120, in _call_impl
E               outputs = self.model(
E             File "/home/stas/anaconda3/envs/py38-pt110/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1120, in _call_impl
E               result = forward_call(*input, **kwargs)
E             File "/mnt/nvme1/code/huggingface/transformers-ds-model-zoo-2/src/transformers/models/m2m_100/modeling_m2m_100.py", line 1303, in forward
E               result = forward_call(*input, **kwargs)
E             File "/mnt/nvme1/code/huggingface/transformers-ds-model-zoo-2/src/transformers/models/m2m_100/modeling_m2m_100.py", line 1163, in forward
E               encoder_outputs = self.encoder(
E             File "/home/stas/anaconda3/envs/py38-pt110/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1120, in _call_impl
E               outputs = self.model(
E             File "/home/stas/anaconda3/envs/py38-pt110/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1120, in _call_impl
E               result = forward_call(*input, **kwargs)
E             File "/mnt/nvme1/code/huggingface/transformers-ds-model-zoo-2/src/transformers/models/m2m_100/modeling_m2m_100.py", line 776, in forward
E               result = forward_call(*input, **kwargs)
E             File "/mnt/nvme1/code/huggingface/transformers-ds-model-zoo-2/src/transformers/models/m2m_100/modeling_m2m_100.py", line 1163, in forward
E               embed_pos = self.embed_positions(input_ids, inputs_embeds)
E             File "/home/stas/anaconda3/envs/py38-pt110/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1120, in _call_impl
E               result = forward_call(*input, **kwargs)
E             File "/home/stas/anaconda3/envs/py38-pt110/lib/python3.8/site-packages/torch/autograd/grad_mode.py", line 28, in decorate_context
E               encoder_outputs = self.encoder(
E             File "/home/stas/anaconda3/envs/py38-pt110/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1120, in _call_impl
E               return func(*args, **kwargs)
E             File "/mnt/nvme1/code/huggingface/transformers-ds-model-zoo-2/src/transformers/models/m2m_100/modeling_m2m_100.py", line 177, in forward
E               self.make_weights(max_pos + self.offset, self.embedding_dim, self.padding_idx)
E             File "/mnt/nvme1/code/huggingface/transformers-ds-model-zoo-2/src/transformers/models/m2m_100/modeling_m2m_100.py", line 136, in make_weights
E               self.weights.requires_grad = False
E             File "/home/stas/anaconda3/envs/py38-pt110/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1168, in __getattr__
E               result = forward_call(*input, **kwargs)
E             File "/mnt/nvme1/code/huggingface/transformers-ds-model-zoo-2/src/transformers/models/m2m_100/modeling_m2m_100.py", line 776, in forward
E               return _parameters[name]
E             File "/mnt/nvme1/code/github/00optimize/deepspeed/deepspeed/runtime/zero/stage3.py", line 150, in __getitem__
E               assert len(zero_params) > 0
E           AssertionError
E               embed_pos = self.embed_positions(input_ids, inputs_embeds)
E             File "/home/stas/anaconda3/envs/py38-pt110/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1120, in _call_impl
E               result = forward_call(*input, **kwargs)
E             File "/home/stas/anaconda3/envs/py38-pt110/lib/python3.8/site-packages/torch/autograd/grad_mode.py", line 28, in decorate_context
E               return func(*args, **kwargs)
E             File "/mnt/nvme1/code/huggingface/transformers-ds-model-zoo-2/src/transformers/models/m2m_100/modeling_m2m_100.py", line 177, in forward
E               self.make_weights(max_pos + self.offset, self.embedding_dim, self.padding_idx)
E             File "/mnt/nvme1/code/huggingface/transformers-ds-model-zoo-2/src/transformers/models/m2m_100/modeling_m2m_100.py", line 136, in make_weights
E               self.weights.requires_grad = False
E             File "/home/stas/anaconda3/envs/py38-pt110/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1168, in __getattr__
E               return _parameters[name]
E             File "/mnt/nvme1/code/github/00optimize/deepspeed/deepspeed/runtime/zero/stage3.py", line 150, in __getitem__
E               assert len(zero_params) > 0

To reproduce:
git clone https://github.com/stas00/transformers/
cd transformers
git checkout ds-model-zoo-2
RUN_SLOW=1 pytest tests/deepspeed/test_model_zoo.py -k test_zero_to_fp32_zero3_trans_m2m_100 -sv

Thanks @stas00, I see the issue now. I think I know how we can address this, will give it a try. I was able to repro the issue with your script as well.
The current PR supports adding an entirely new parameter, however replacing an existing parameter is a slightly different case that it seems needs to be handled differently. Will update soon.

Additionally I wonder if someone may have a case where they don't replace but remove the pre-existing param and then add a new param with a different name. This is not the case I'm dealing with, but just suggesting that perhaps this could be another use-case.

a gentle ping

created an issue that this PR is trying to solve so that it's easier to track: https://github.com/microsoft/DeepSpeed/issues/1757

Can one of the admins verify this patch?

@jeffra Is this PR still relevant? If so I can revive these changes with the current master branch.


Trying to reach you

Hi Pavel, sorry for messaging you here but I was trying to reach you. This is Lukas that formerly used to work at Cloudhashing. Had a project I wanted to speak with you about. Please reach me on skype user name "Lukas Gilkey". Thanks and take care.

I don't use skype, you can email me<EMAIL_ADDRESS>


Update css for rolled up water sites

Passed https://travis-ci.org/github/base-cms-websites/endeavor-business-media/builds/670309420


DINT-407 add discount amount to product list items and to commerce.order on ca…

…rt-view AEP

Description
We are populating commerce.order.discountAmount for the cart view event.  Therefore need to make some properties of commerce.order type not required.  Also, we will be using discountAmount for individual products from the shoppingCart.items array, so updating types and functions as required to do so.
Related Issue
https://jira.corp.adobe.com/browse/DINT-407
Motivation and Context

How Has This Been Tested?

Screenshots (if appropriate):
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist

[x] I have signed the Adobe Open Source CLA.
[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

Closing in favor of new PR


The terminal process terminated with exit code: 1

I cannot overwrite in settings "terminal.integrated.shell.windows": "%COMSPEC%"

For "terminal.external.windowsExec": "%CURRENT_DIR%git-for-windows\\bin\\bash.exe"
I can
This is not help #7286, but it's dublicate: #7344 (it's not resolve)
But It's work: "terminal.integrated.shell.windows": "D:\\git-for-windows\\bin\\bash.exe"
Full path is working!
SET CURRENT_DIR=%~dp0
Found solution:
 SET COMSPEC=%CURRENT_DIR%git-for-windows\bin\bash.exe
and after that run VSCODE
But I cannot run terminal.external.windowsExec
And I have problem with bash, there are extra characters, the console behaves is abnormally. When I run bash outside, all is correct.

@CodeGenTeam sorry are you saying this issue is dup of #7344 ? If so I'd like to close this one and track it there.

This problem have another issue. bash isn't work correctly in wrapped terminal.

So environment variables being evaluated in the setting is tracked in #7344. Git bash does have some known issues on Windows in addition to some other shells, general git bash input issues are tracked in #7345.


Pathless directories after dynamic directory is not properly excluded in URL

Describe the bug
See discord discussion
See Reproduction

Navigate to New Layout Directory,
runtime pathname is /123/detail-layout/route2/123 but the route ID is /_auth/$teamId/_detail-layout, detail-layout is included in the URL
original layout route which is nested in _auth but not $teamId works as expected, with runtime path  /layout-a

This also causes issues when referring to the ID of the path name, i.e. from RouteApi because of the pathless directory mismatch
Your Example Website or App
https://stackblitz.com/edit/tanstack-router-cqjfmc?file=package.json
Steps to Reproduce the Bug or Issue
See above
Expected behavior
See above
Screenshots or Videos
No response
Platform
System:
OS: macOS 14.2.1
CPU: (10) arm64 Apple M1 Pro
Memory: 161.20 MB / 16.00 GB
Shell: 5.9 - /bin/zsh
Binaries:
Node: 21.5.0 - ~/.nvm/versions/node/v21.5.0/bin/node
Yarn: 1.22.21 - /opt/homebrew/bin/yarn
npm: 10.2.5 - ~/.nvm/versions/node/v21.5.0/bin/npm
pnpm: 8.14.1 - ~/Library/pnpm/pnpm
bun: 1.0.22 - /opt/homebrew/bin/bun
Browsers:
Brave Browser: <IP_ADDRESS>
Chrome: 120.0.6099.129
Edge: 120.0.2210.133
Safari: 17.2.1
Additional context
No response

The short term solution required a few fixes:

A type fix to properly infer file-based layout routes (just shipped)
A placeholder _auth.$teamId.tsx route that exports an empty Route:

import { FileRoute } from '@tanstack/react-router'

export const Route = new FileRoute('_auth/$teamId').createRoute({})

For now, this gives the _detail-layout route an actual route anchor, resulting in the detail route having a proper id: 'detail-layout' property, instead of a path.
Long-term, I'll work on a way to get the generator to auto generate this route for you.

I'm not sure this should be closed though. This is still a valid use-case. For instance, this doesn't work:


End export stream on completion.

I noticed that the Exporter stream doesn't actually end. This PR fixes that and also adds tests that removes this assumption, and also some timing assumptions. It also cleans up the overall DAG traversal logic.
I also switched us over to concat-stream from bl, just because the former handles object streams nicely too.

@diasdavid @nginnever ping for cr

This also includes directories in the Exporter. Previously they were omitted (unless the dir had no links), which is unlike go-ipfs, which includes the directories every time. I can split this change into a separate PR if it's easier to review!

ping @diasdavid @nginnever

This LGTM, just a few little comments. I also tried testing this in js-ipfs cat and get cli commands and cat seems to still function fine but get is failing again, but not due to the PR, it's another bug that I need to fix. get cli command will also need compressions options too so it needs to be revisited anyway.

This looks, having the hash prepended kind of grew on me :) Thank you!


[data/values] how to access keys with dash

Hi,
I'm trying to find a way in the docs how to load values of a key with dash in the name.
Here's the playground example:

Do I need to escape/quote something?

Hi @combor,
To use a key with a dash, you will need to use the getattr function, getattr(data.values, key1-a), otherwise, ytt will interpret the dash in the key name as a subtraction in the code.

Thanks, this works. Is this mentioned somewhere in the docs?

added to docs here: https://github.com/k14s/ytt/blob/5a9ad6050a5bc2d479faddcdc037ff43ba0d5e2b/docs/ytt-data-values.md#defining-data-values. in general though, i would recommend using snake case for data value names.

👍 thanks for the docs update and the recommendation.


Atom indents current line and next after semicolon

Hi,
there is a really strange autocompletion happening in omnisharp-atom when I enter a semicolon.
The current line and the next one always get indented.
Any ideas?
Cheers,
Thomas

Auto indent and format for the current line or block happens on ; and } keys.

Oops, my bad.
I got confused by the fact that the default indentation seems to be two tabs not one.
Is there a way to change that? I'd rather use a single tab.

Unfortunately, I believe that it's not possible to auto format using tabs from the omnisharp-roslyn side. 4 spaces is ubiquitous though :)
I think your best bet would be to disable the ; and } key binds in your own keymap.cson
'atom-text-editor:not([mini])[data-grammar~="cs"], atom-text-editor:not([mini])[data-grammar~="csx"]':
  ';': 'unset!'
  '}': 'unset!'

And you can change the default tab settings here in Atom settings

Argh, of course. It's set to "soft-tabs" so it's indeed set to four spaces like you say and the tab setting in the default atom settings fixes that I have to hit tab twice to enter those 4 spaces.
Guess I'm a little tired today, thanks for helping me out with this! :)


Fix descriptor yaml still required for IK controller even though it doesnt use it

Poor cleanup on Cem's part :)

Fixed here https://github.com/StanfordVL/OmniGibson/pull/990? @cremebrule can confirm


Add license headers to the source

This has been done and updated to 2021-2022 as of d427f4a208c2d448bd11bfc5d9e3e340a88762ed.


Use Jakarta EE 9 dependencies

This is required in order for the JAXB-RI project to use Jakarta EE 9 dependencies (specifically the new packages for Jakarta Activation and Jakarta JAXB).  The JAXB-RI is used in various other Jakarta EE projects - JAX-RS, for one, uses it for unit testing.

this is done


[GHSA-59j7-ghrg-fj52] Microsoft Security Advisory CVE-2024-21319: .NET Denial of Service Vulnerability

Updates

Affected products

Comments
Is this not a duplicate of https://github.com/advisories/GHSA-8g9c-28fc-mcx2? If it isn't I believe CVE-2024-21319 would still be the CVE-ID to refer to here, but I couldn't find a form field to add it.

Hi there @rbhanda! A community member has suggested an improvement to your security advisory. If approved, this change will affect the global advisory listed at github.com/advisories. It will not affect the version listed in your project repository.
This change will be reviewed by our Security Curation Team. If you have thoughts or feedback, please share them in a comment here! If this PR has already been closed, you can start a new community contribution for this advisory

Thank you for bringing this duplicate advisory to our attention @aried3r! We've withdrawn GHSA-8g9c-28fc-mcx2 as a duplicate and have published GHSA-59j7-ghrg-fj52 in it's place so that it aligns with the GHSA ID of the repository advisory.


Extend limb type down to uint8

Extend the limb type from (already implemented and tested) template instantiations of uint32_t and uint16_t down to also include limb type uint8_t.
Preliminary checks show some small bugs regarding precision of square roots, etc. These need to be found and corrected.

Solved a few problems in f950dfdc2106ebccbe0a949c7fa59ae4f8e0a3ae such as I/O streaming, overflow in multiplication N-by-N, etc.
Million digit pi calculation with limb type uint8_t still broken with problems around 2.5k decimal digits (TBD).


Update default k8s for test and buildkit

Please provide a description of this PR:
Update the default k8s for pre-submit to 1.26.1. This requires an equal change in istio/test-infra to move the post-submit test from 1.26 to 1.25.4. A PR in istio/test-infra for that is forthcoming.
Also update buildkit to v0.11.0

/retest

/cherry-pick release-1.17

@ericvn: new pull request created: #42969

In response to this:

/cherry-pick release-1.17

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.


DC-866: Change search API parameter to use domain id instead of name

Jira Ticket: https://broadworkbench.atlassian.net/browse/DC-866
What
The snapshot builder search API previously required the domain name as a parameter, and now it requires the domain's concept ID.
Why
Earlier it made sense to use the name, for backend purposes, but the backend can now match the concept ID to the name and no longer needs the UI to provide it.
Testing strategy
Unit tests

Have you tried running local instances of both backend and frontend branches together?

Have you tried running local instances of both backend and frontend branches together?

Yes, I tested this locally and it worked fine.


How get the request params from get or post

In trace，can not found the params，where see or not supported? version 5.0

We don't support that. If you dive a little deeper for this requirements, you will find actually this is complex. Such as

Decoding of the HTTP parameter is uncertain, if decode wrong, it will break the application.
Some stream reader doesn't allow pre-read.
Performance concern, this is possible only if you are a low throughput system. Tag this parameter will cost a lot of memory, network, and storage.

So, this requirement could be done only in your own env and change the certain plugin.


Moving docs

Moves docs to /docs directory
Stubs out mkdocs.yml with sane defaults
Renames Home.md to index.md for mkdocs standard

Excellent! I'll merge now, then we can work on sorting things and updating docs as part of #169 .


Italian data file added

It could be more convenient to add language data on diffent files in order to import only needed ones.

That is not a bad idea. It could reduce the memory footprint of the loaded golem drastically. I will look into how to do it properly.

First of all: thank you for your hard work Alberto.
I'm closing this pull-request because it has spread to include a bit of everything, and I don't agree with all the changes.
You have had lots of valuable suggestions, so the changes I agree with have been added to v2.0. I have also included a Contributors Hall of Fame in the Readme, where you are included.


how to use multiple gpus when using mxnet based keras?

As mxnet seems to support keras now, is there any interface to use multiple gpus? thanks.
For bugs or installation issues, please provide the following information.
The more information you provide, the more likely people will be able to help you.
Environment info
Operating System:
Compiler:
Package used (Python/R/Scala/Julia):
MXNet version:
Or if installed from source:
MXNet commit hash (git rev-parse HEAD):
If you are using python package, please provide
Python version and distribution:
If you are using R package, please provide
R sessionInfo():
Error Message:
Please paste the full error message, including stack trace.
Minimum reproducible example
if you are using your own code, please provide a short script that reproduces the error.
Steps to reproduce
or if you are running standard examples, please provide the commands you have run that lead to the error.

What have you tried to solve it?

This issue is closed due to lack of activity in the last 90 days. Feel free to reopen if this is still an active issue. Thanks!


Update THECA token tags #10279 failing automerge due to update #10380

Update THECA token tags #10279 failing.
Could we please get this manually approved? @keone
thank you

merged


Implementation of PurpleCaffeine client

Implement client for PurpleCaffeine.
This includes Trial class and LocalBackend.
Methods for Trial class
def add_metric(self, name: str, value: float):
   ...
def add_parameter(self, name: str, value: str):
   ...
def add_circuit(self, name: str, circuit: QuantumCircuit):
   ...
def add_backend(self, name: str, backend: Backend):
   ...
def add_operator(self, name: str, operator: Operator):
   ...
def add_artifact(self, name: str, path_to_file: str):
   ...

LocalBackend should save and retrieve data to/from given folder.
Purposed format to store data is json as it is human readable.
Issue in epic:

https://github.com/IceKhan13/purplecaffeine/issues/8
https://github.com/IceKhan13/purplecaffeine/issues/9
https://github.com/IceKhan13/purplecaffeine/issues/11
https://github.com/IceKhan13/purplecaffeine/issues/22
https://github.com/IceKhan13/purplecaffeine/issues/24

We can close this as main client is implemented! 🥳


Refactor sorting.pipe.ts

Seems like there is a lot of redundancy here: https://github.com/whyboris/Video-Hub-App/blob/main/src/app/pipes/sorting.pipe.ts#L196
Seems like I could create a dictionary from sortingType (e.g. timeAsc) to the sort property (e.g. duration) and reduce the whole if/then mess to a single "if in set of sortingType" perform the search with map.get("timeAsc") 🤔
ps - rename duplicateFinder.pipe.ts using kebab-case

Hi, can i take this issue ?

Thank you for the offer @NabilBouazzaoui 👍
I'm happy to answer any questions you have about making this change 🤝
If you write some code, feel free to submit your PR in whatever form you have - even partial work is a welcome contribution 😊


Fixed typo and removed unneeded blank spaces

Fixed a typo and removed unneeded blank spaces.

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

Thanks!


what i learnt in day 01 of web dev bootcamo

@Abbhiishek
Feedbacks

All Good 🔥

Wait for us to make your pull request merged !!
Happy Coding 💟


Label TextField outlined variant misaligned

[x] This is not a v0.x issue.
[x] I have searched the issues of this repository and believe that this is not a duplicate.

Expected Behavior
The label of the outlined variant of a TextField is aligned vertically centered with the line as it is in v3.3.
Current Behavior
The text is misaligned and appears to be aligned to hit the line at the top.

Steps to Reproduce
Links:

https://material-ui.com/demos/text-fields/

Context
This appears to be a regression introduced in v3.4.0. It is fixed by returning to v3.3.2.

Tech
Version

Material-UI
3.4.0

Browser
Firefox 63.0

Additional note, non-shrunken, the label also no longer appears vertically centered.

@Studio384 Thank you for raising! I think that we can remove the old workaround:
https://github.com/mui-org/material-ui/blob/c1db388873ff107cc3a76096c016c16cee197b50/packages/material-ui/src/OutlinedInput/NotchedOutline.js#L41-L46
Can you confirm it's fine without? Do you want to take care of it? :)

I'll take a shot at it. :)


Add a reference section to the detailed view

If an item has references the detailed view of said item should have a references section which displays the relevant references.

Closed with #124


Dict fingerprint (dev)

Codecov Report

Merging #535 (3dce7bd) into dev (5c6e4b1) will decrease coverage by 0.20%.
The diff coverage is 13.63%.

@@            Coverage Diff             @@
##              dev     #535      +/-   ##
==========================================
- Coverage   71.39%   71.19%   -0.21%
==========================================
  Files         118      118
  Lines       10653    10674      +21
==========================================
- Hits         7606     7599       -7
- Misses       3047     3075      +28

Impacted Files
Coverage Δ

assemblyline/remote/datatypes/__init__.py
69.49% <0.00%> (ø)

assemblyline/common/dict_utils.py
66.66% <14.28%> (-20.38%)
:arrow_down:

assemblyline/common/backupmanager.py
69.95% <0.00%> (-5.77%)
:arrow_down:

assemblyline/odm/randomizer.py
93.85% <0.00%> (+1.75%)
: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 5c6e4b1...3dce7bd. Read the comment docs.


One or multiple requirements per METS-element?

In CSIP15 and CSIP16 https://dilcisboard.github.io/E-ARK-CSIP/specification/implementation/metadata/#532-use-of-the-mets-header-element-metshdr (which is up to revision https://github.com/DILCISBoard/E-ARK-CSIP/issues/144) there are multiple requirements in a single CSIP requriement (where mandatory values are given in the decription of the requirement).
In https://dilcisboard.github.io/E-ARK-CSIP/specification/implementation/metadata/#533-use-of-the-mets-descriptive-metadata-section-element-dmdsec there are several CSIPs that goes for the same element, where the mandatory values have there own CSIP-IDs
I think the best way is to make sure that all requirements follow the "same structure".
(This issue is hard to formulate - please ask questions where it is unclear)

Have been taken care of in the METS profile.

The requirements table is totally broken.
Needs to be generated again or fixed manually.

Handled


Add plugin to composer core

Have you tried upstreaming this module? I think its worth including in the core, it reduced my installation times significantly. Are there e.g. corner cases not supported by this plugin?

Let me google it for you https://github.com/composer/composer/pull/5293

Thank you!


Option to choose between truncate and delete in data transfer task (SQL Server issue)

System information:

Windows 10
DBeaver version 7.2.5

Connection specification:

SQL Server v2019

Describe the problem you're observing:
In some cases, when target table is referenced by foreign key constraint, we can't truncate data. This is because SQL Server requires different approach to disable that kind of check (as opposed here https://github.com/dbeaver/dbeaver/issues/9396).
We can not simply disable constraints (i.e. ALTER TABLE <table> NOCHECK CONSTRAINT ALL) and get truncate to work. What is required, is that, we need to delete foreign key constraint completely and then recreate it after transfer is complete.
Now, I know it can be a lot of work for you, but what I'm suggesting is the option to delete data and re-seed the table.
DELETE from "<table>";
DBCC CHECKIDENT("<table>", RESEED, 0);

This way, data integrity check will pass without any alternation. Simple and easy solution given as an option.
Steps to reproduce, if exist:

create data transfer task to target  table referenced by foreign key constraint
check truncate target table option

Include any warning/errors/backtraces from the logs

@krasucki Thank you for the suggestion, we will look if it can be implemented

@Matvey16  Thank you, some things to consider:

can be slower than truncate
creates transactional log for each deleted row, therefore requires more disk space - unless transactions are skipped
can activate triggers (if any) - unless triggers are disabled

basically this is DML vs DDL operation

Sorry, but your idea is not clear for now.
You can use ALTER TABLE <table> NOCHECK CONSTRAINT ALL as "Disable referential integrity" in DBeaver data transfer settings. But it does not work in your case?

And you want another solution with this statement:
DBCC CHECKIDENT("", RESEED, 0);
But how does it work? As I can see it works for identity columns. It didn't help me with the foreign keys problem (value '5' is out of possible values):

For now, your request looks too specific for DBeaver universal data transfer to Implement.

@LonwoLonwo , I didn't saw option to disable integrity check in my version of DBeaver (I was using 7.2.5). Installed recent version, checked this option, but still it is not working as expected. I can recreate this issue using structure below.
The tables with '_src' suffix are source in the same database - just for simplification.
USE test_db;

create table building_src (
	id int IDENTITY(1,1) NOT NULL,
	address nvarchar(100),
	CONSTRAINT PK_building_src PRIMARY KEY (id)
)

create table dept_src (
	id int IDENTITY(1,1) NOT NULL,
	name nvarchar(100),
	building_id int not null,
	CONSTRAINT PK_dept_src PRIMARY KEY (id) ,
	CONSTRAINT FK_building_src FOREIGN KEY (building_id) REFERENCES building_src(id)
)

create table empl_src (
	id int IDENTITY(1,1) NOT NULL,
	name nvarchar(100),
	dept_id int NOT NULL,
	CONSTRAINT PK_empl_src PRIMARY KEY (id),
	CONSTRAINT FK_empl_src FOREIGN KEY (dept_id) REFERENCES dept_src(id)
)

create table building (
	id int IDENTITY(1,1) NOT NULL,
	address nvarchar(100),
	CONSTRAINT PK_building PRIMARY KEY (id)
)

create table dept (
	id int IDENTITY(1,1) NOT NULL,
	name nvarchar(100),
	building_id int not null,
	CONSTRAINT PK_dept PRIMARY KEY (id) ,
	CONSTRAINT FK_building FOREIGN KEY (building_id) REFERENCES building(id)
)

create table empl (
	id int IDENTITY(1,1) NOT NULL,
	name nvarchar(100),
	dept_id int NOT NULL,
	CONSTRAINT PK_empl PRIMARY KEY (id),
	CONSTRAINT FK_empl FOREIGN KEY (dept_id) REFERENCES dept(id)
)

INSERT INTO building_src (address) VALUES ('B1'), ('B2'), ('B3')
INSERT INTO dept_src (name, building_id) VALUES ('D1', 1), ('D2', 2), ('D3', 3)
INSERT INTO empl_src (name, dept_id) VALUES ('E1', 1), ('E2', 2), ('E3', 3)

Now, having sample data, create export task as follow:

Running this task gives me following error

As for the alternative way (delete-reseed) - it works, but requires specific order of execution, i.e
DELETE FROM empl
DBCC CHECKIDENT('empl', RESEED, 0)
DELETE FROM dept
DBCC CHECKIDENT('dept', RESEED, 0)
DELETE FROM building
DBCC CHECKIDENT('building', RESEED, 0)

and then insert in opposite way
INSERT INTO building (address) VALUES ('B1'), ('B2'), ('B3')
INSERT INTO dept (name, building_id) VALUES ('D1', 1), ('D2', 2), ('D3', 3)
INSERT INTO empl (name, dept_id) VALUES ('E1', 1), ('E2', 2), ('E3', 3)

hope this helps
One thing to note - after i received Task execution failed error, when I immediately enter task properties (Edit Task) I see some of the fields are greyed out. And this is random afaik :(

When I reopen the dialog everything is back to normal.