Reply URL section does not exist on the Portal

"In Reply URL, add https://localhost:44321/signin-oidc, and select Register" - in Step 1 (Manual way) there is no "Reply URL" - there are "Redirect URLs". Also, there isn't any "Register" option to be selected

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

ID: 479bff62-927a-9f71-c85f-4a1188c72bb2
Version Independent ID: df934d01-7a9d-f7f9-d9ea-320454e32d77
Content: Azure AD v2.0 ASP.NET Core web app quickstart
Content Source: articles/active-directory/develop/quickstart-v2-aspnet-core-webapp.md
Service: active-directory
GitHub Login: @jmprieur
Microsoft Alias: jmprieur

@Loreno10 Thank you for your query . We will investigate and update this thread further.

Hi @Loreno10,
I checked the same and I think you are referring to the "New registration" option on the App Registration (Preview ) page.

Once you click this one , it will take you a page where you require to provide the relevant details for your applications.

Reply url's are also refereed as Redirect URI's. Once you register the app, you can go to "Authentication" section and see the Redirect URIs and also you can add more redirect URIs and click on "Save" button.
Below is the screenshot:

I hope this clarifies the doubts . We will close this issue by tomorrow. Please tag me to your reply in case you have any further query after that and we can continue the conversation.
Thank you.

I'm having an issue once I deploy the application. It's not working with error: AADSTS50011: The reply url specified in the request does not match the reply urls configured for the application
And I can see that is sending redirect_url with http (not https). I tried adding the URL with http and the new(Preview) Azure registration doesn't let me, it requires https. Went to the old registration and I can put http, but then when I tried, it says it's using an non-secure URL. So either way I cannot get it to authenticate.
Is there a way to specify in appsettings.json the actual redirect url? Because I think it's trying to guess it, and because the app is running (internally) under docker, then it assumes http as the protocol.

Hi @nelfer ,
In the new(Preview) Azure registration, I am able to add http and https redirect_url. Below is the screenshot.

Could you please provide the exact url's that you are passing?
I hope the below documentation can help you.
https://msdn.microsoft.com/en-us/magazine/mt846465.aspx

Yes, for localhost it allows just HTTP. But now I have published the application on an Azure Web App (Linux) I need to put the actual site, say https://myapp.azurewebsites.net.
I put this, but then I get the error (below) that the URL doesn't match:

Now, with the old registration mechanism, I was able to put just http in the URL, but now the workflow doesn't work because Azure AD requires a secure schema to do the redirect (which makes sense):

And the problem is that the app (now from the Azure Web App) doesn't know is running in https (this is my assumption) because the URL that is sent to Azure AD is only HTTP. So that's why I was wondering if there's a way to tell the app exactly what callback URL to use (not just the path /signin-oidc)
If I put the full URL in the CallBackPath property, then the application crashes saying the value must start with a "/". So at this point, I don't know what else to try.

One additional note: If I manually modify the URL of the first error and put "https" instead of "http" in the redirect_uri parameter, everything works as expected. So this is an issue of the web app services that needs to send the proper URL (to known that it is running in HTTPS and not just HTTP)

I have come to the (possibly wrong) conclusion that ASP.Net Core with Azure AD 2.0 is not intended for Azure Web Apps (Linux). If I remove the code in Startup.cs and then instead I configure in the Azure Portal to use the Authentication from there, then it works. So in other words, the app didn't need to have any code or settings related to Azure AD, everything can be controlled from Azure Portal (all redirects and login happen as expected):

@nelfer : this should work on linux
We have a tutorial here: https://github.com/Azure-Samples/ms-identity-aspnetcore-webapp-tutorial
and make sure that the deployment URIs are also registered for your app.
https://user-images.githubusercontent.com/47346772/54819657-9a716580-4cc2-11e9-88f0-784481c4d484.png

Thanks @jmprieur
All of those tutorials work fine as expected, as long as I'm running them from my computer (localhost). But the moment I publish that app to an Azure Web App (Linux) the issue arises: The redirect URL is not sent properly to Azure AD end point, which causes the flow to stop.
This is because the Azure Web App (Linux) is running under a Docker container and the schema (internally) how the app process the request is "http", not "https". So the open ID builds the redirect URL based on that wrong schema and that's why it doesn't work.
This is because the URL is build using Request.Schema+Request.Host+CallbackPath and the issue is that Request.Schema is arriving with the wrong value.
https://github.com/aspnet-contrib/AspNet.Security.OpenId.Providers/blob/cb9ec951e4585a44b404b04a434c2541df962b48/src/AspNet.Security.OpenId/OpenIdAuthenticationHandler.cs
The closest that I've found to solve this issue is described in a similar issue here: https://medium.com/@reicheltp/deploying-a-net-core-app-to-azure-a-real-world-example-problems-ive-run-into-31210851d953
Although the app there is under a proxy, the symptoms are similar: OpenID URL is invalid because of the wrong schema. I'll try his solution and see if that solves it (forward headers)

I have commented in this issue, which is exactly the one that I'm facing: https://github.com/MicrosoftDocs/azure-docs/issues/11104

@jmprieur Could you please look into this issue ?

@shashishailaj : you might want to redirect to the ASP.NET Core team?

This is tracked here: https://github.com/aspnet/AspNetCore/issues/4135, including workarounds.

Fantastic! Thank you @Tratcher  and @jmprieur


ENH: add dd.DataFrame.resample

The existing resample machinery seems to work as is for dataframes, as I simply moved the resample method from Series to the base _Frame.
This gives only the basic resample (eg df.resample(freq).mean()), and not selecting columns on the Resampler object (like df.resample(freq)[['col1', 'col2']].mean() or more advanced agg specifications (like df.resample(freq).agg({'col1': 'mean', 'col2': 'first'}), but I don't think those are essential to start with.

but I don't think those are essential to start with.

Agreed. This won't support the new df.resample(on='column'). But that can be a followup.
+1 for merge if / when Travis passes.

Thanks Joris!


Temp for screenshot

          2 Errors

:no_entry_sign:
Please provide a summary in the Pull Request description

:no_entry_sign:
Please include a CHANGELOG entry.
You can find it at CHANGELOG.md.

          1 Warning

:warning:
Note: The file dangerfile_import_plugin.rb does not pass bundle exec danger plugins lint.

          1 Message

:book:
@dangermcshane is not a member of the Danger organisation, would you like an invitation? It's optional.

  Generated by :no_entry_sign: danger

Typo in screenshot ("auto-generated form" -> "auto-generated from") 😱🙈

Thanks! Fixed in https://github.com/danger/danger.systems/pull/48


HARVESTER: Fix Harvester v1.1.1 cluster members page is unavailable

Summary
Fix Harvester v1.1.1 cluster members page is unavailable

Occurred changes and/or fixed issues

https://github.com/rancher/rancher/issues/40663
https://github.com/harvester/harvester/issues/3515

Technical notes summary

The root cause is here, steve change to clusterroletemplatebinding, that makes v1.1.1 Harvester cannot obtain cluster RTB as expected.
For v1.1.1 Harvester is
    const steveBindings = await Promise.all(
      clusterRoleTemplateBindings.map(b => b.steve)
    );

For v2.7-head Rancher is
    clusterRoleTemplateBindings() {
     return this.normanClusterRoleTemplateBindings.map(b => b.clusterroletemplatebinding) ;
   },

Areas or cases that should be tested

Areas which could experience regressions

Screenshot/Video

@n313893254 There was an issue with a new dependency getting picked up which cause the extensions check to fail - this is now fixed, but you will need to rebase this PR with master to get that fix and for the gate to then pass


[OCaml] Cubic time complexity when processing pattern matching with large number of cases

Describe the bug
Topiary takes an unreasonable time to process the following function:
let big_match = function
  | 0 -> 0
  ...
  [repeat n times]
  ...
  | 0 -> 0

I've run topiary on a few files named ocaml_n.ml, which contain n repetitions of the pattern | 0 -> 0, as well as a real-life, 1200 lines long OCaml file containing a large pattern matching.
$ time ( topiary -s -i ocaml_real.ml > /dev/null 2>&1 )
real    0m17,029s
user    0m17,000s
sys     0m0,028s

$ time ( topiary -s -i ocaml_512.ml > /dev/null 2>&1 )
real    0m6,669s
user    0m6,661s
sys     0m0,008s

$ time ( topiary -s -i ocaml_1024.ml > /dev/null 2>&1 )
real    0m56,513s
user    0m56,489s
sys     0m0,021s

$ time ( topiary -s -i ocaml_2048.ml > /dev/null 2>&1 )
real    8m2,791s
user    8m2,752s
sys     0m0,009s

The results suggest there is an cubic behavior somewhere: doubling the number of cases multiplies the time by 8. Moreover, activating RUST_LOG=debug on ocaml_2048.ml produced a 540MB log file, containing over 2M lines.
To Reproduce

retrieve the ocaml_n.ml files from my branch , or produce them independently,
run time ( topiary -s -i ocaml_n.ml > /dev/null 2>&1 )
observe the unreasonable times

Expected behavior
We shouldn't take more than 0.1s to process a real-life, 1200 lines long OCaml file.
Environment

Ubuntu 22.04 + main on 2023-01-04 (https://github.com/tweag/topiary/commit/3a21fb5d982b77c75a7a4d4fdd859bccdac2fa34)

Additional context
I'm still trying to figure out if we have a query that produces an unreasonable number of nodes, a process that is unreasonably slow, or both.

It would be nice to see the flamegraph. If you can't get that working (by installing perf), you can send me a sample file.

Here is the flamegraph for ocaml_1024.ml:

It seems we spend most of the time in ts_query_cursor__compare_captures

You could run it without the idempotency check to make it easier to read, but unfortunately if something is cubic here, that seems to be tree-sitters query matching.
It's possible that we have one or more queries that could benefit from more . anchors to reduce the number of match permutations.

Might also be interesting to study ts_query_cursor__compare_captures and see if there is room for improvement there.

A simple huge win is to put an anchor between "|"* and (match_case) in line 626 of ocaml.scm.

@GuillaumeGen 's fix reduced the processing time of ocaml_2048.ml to 0.26s, and the time of ocaml_real.ml to 0.60s.
This is largely enough to close the issue.


Detecting left-to-right swipe on activeIndex 0

is there a way to detect an edge-swipe with this library? I'm basically trying to hook into a swipeRight event when already on activeIndex 0. Something like onSwiperMove, but only gets executed once & will give swipe direction.

you can compare swiper.touches.startX and swiper.touches.currentX properties to define the direction


Make SQL stats use sensible time buckets

Currently it uses bucket sizes that are powers of 10 millis, i.e.
                    // precision => bucket size
                    // DEFAULT: 0 => 1 ms
                    // HOUR:    6 => 1_000_000 ms (true hour: 3_600_000 ms)
                    // DAY:     7 => 10_000_000 ms (true day: 86_400_000 ms)
                    // MONTH:   9 => 1_000_000_000 ms (true 31day month = 2_678_400_000 ms)

It should be possible to make sql stats work in sensible time buckets, e.g. sec, min, hour, day.  This could also be done on a per stat basis, e.g. in the stat entity decide between powers of 10 or sensible time buckets.  Thus legacy stat data could be supported and a gradual transition over could happen.  It would just need a bit of change to stat aggregation to support both methods of time truncation and the code that subsequently queries it.

This could possibly be extended to allow offsetting of the time buckets, e.g. to allow for buckets that as not based on UTC days.
Also it may be possible for the stat entity to allow choice of the buckets in use and the age cutoffs for the bucket transitions, e.g. n days at hour granularity, m days at day granularity, etc.


Value not stored until second try

I am trying to store value (Date) in user defaults.
This is the key
   static let firstActivityDate = DefaultsKey<Date?>("firstActivityDate
And code responsible for storing
   func setActivityDate() {         if Defaults[AppRateDefaults.firstActivityDate] == nil {                 Defaults[AppRateDefaults.firstActivityDate] = Date()         }     }
I have to run it twice (in two sessions of application) to correctly store value. First attempt is showing value as long as app is up and running. After turning off and running once again it's once again empty. After second attempt value persists.
Edit:
It seems to be connected with thread. After running this part of code on the main it seems to work fine.

This looks like a classic case of NSUserDefaults not storing the value to the underlying storage. NSUserDefaults are persisted only when you manually call synchronize - which is not needed and not recommended, and at certain times during the lifecycle of the app automatically.
If you terminate the app (for example) by re-running it in the simulator the modified defaults are never persisted. Try sending the app to the background and then re-running it and see if it works.

I have the same issue, not exactly the same issue. For my part it's kinda random. Sometimes it works and sometimes not. I've tried to call the synchronize method even if it's not recommanded but it doesn't change anything. I've also tried to execute on the main thread but it change nothing.
Have you any idea to resolve my issue ?

Hey @jojo91, can you share how do you call SwiftyUserDefaults? Can you also specify which version do you use?
One thing to try would be to just use UserDefaults instead and see if the problem persists.

Hi @sunshinejr, i'm using the 4.0 version of the library.
Here is my code :
`
public static var dataKey: DefaultsKey<Data?> {
    return DefaultsKey<Data?>("data")
}

public static var stringKey: DefaultsKey<String?> {
    return DefaultsKey<String?>("string")
}

public static func saveData(myData: MyData, myString: String) -> Promise<Void> {
    return serialize(object: myData) // return an optional Data object
        .then { optionalData -> Promise<Void> in
            guard let data = optionalData else { return Promise(error: Error) }

            Defaults[dataKey] = data
            Defaults[stringKey] = myString
            return Promise()
    }
}

`

I've tried using only UserDefaults and I have the same issue.

@jojo91 Yeah, this is really hard to debug. This might be a synchronization issue - try to only save/fetch on one queue.

You mean on a specific queue or on the main queue ?

I suspect that you might be accessing the same propery from multiple threads - sp i would make sure that you are setting/fetching it from the same queue (can be main).


Overviews and lists still show stale records after deleting them from the database & index

Bug description
When I delete a publication or dataset from an overview list, the item isn't removed from the list until I manually reload the entire page.

I do see a toast that says "Dataset / publication succesfully deleted"
The item does get the status "deleted" in the database.

Expected behavior
The overview list / page is updated and the item is removed from the list / page.
Additional information
The delete handler for publication / dataset will send a hx-redirect response header commanding the browser to reload the entire page. However, this reload action is triggered before the elasticsearch index had enough time to sync up with the database. Since the displayed data originates from the index, the end-user gets an outdated view instead of the updated, new situation.
suggested solutions

Add a delay in the browser or in the app handler with a spinner, giving enough time to elasticsearch to update itself.
Wait / listen to the index until we have confirmation that its in sync with the database, only then reload the page.
UX: don't reload the entire page. Just refresh the view and grey-out the row that was deleted (visual cue). When the page is manually reloaded, it will be no longer there.

Had a short discussion with @netsensei about option 1:

Add a delay in the browser or in the app handler with a spinner, giving enough time to elasticsearch to update itself.

He showed me the impact of a short delay of 1250ms that could still be acceptable (if we can make it shorter would be great – between 400ms and 1000ms).

Visual feedback: we can give visual feedback in the form of a spinner on the delete button itself. That will improve the feeling of snappiness. I'll make an adaption of a spinning button (I only have one in draft now).

This will give visual feedback now for the improvised 1250ms delay,
If we get automatic feedback from elastic we can use this spinner to cover the actual waiting period.

In the future: we can buy some time with this temporary solution, so we can on the actual messaging system we need.

If needed I can still support by giving other design solutions (e.g. visual feedback in cards itself – but as I understood adding a class to the cards might also have annoying implications).

Closing this for now. Revisiting in the future when we build a more reactive interface / backend.


MongoDB takes too long to delete old revoked uvci

When the revoked certificates are too many (> 50000) MongoDB takes too long to delete the certificates (+ 2h), I found it more efficient to completely delete the database and download the new certificates instead of deleting them one by one, the clean up threshold can be set using the env variable VC19_MONGODB_CLEAN_THRESHOLD (default 50000).

Ciao @anversoft,
thank you for this PR, great catch! I think that a better and most efficient solution could be using deleteMany to delete entries, something like
this._dbModel.deleteMany({ id: { $in: deletedRevokedUvci }})

Try and let me know, in case could you please rewrite that part using deleteMany?

Ok, i tried a few times and now it works fine. I removed the env variable VC19_MONGODB_CLEAN_THRESHOLD because with deleteMany it is no longer necessary but I added the env variable VC19_UPDATE_HOURS to force the check of the clr since the revoked certificates are updated every 5/6 hours

Great @anversoft ! Thank you so much!


Add the function of specify the number of cores to use

In some cases when you are running a high demanding process you would like to use a limit number of cores to do not incapacitate a production server. So in that cases it would be usefull a setter like coreLimit or something.

Closed by #19


Add switch backbehavior examples

@slorber - can you resolve conflict?

fixed, forgot to rebase upstream before doing the pr :'(

👌


not using selected cursor

im using the nordic cursors, in minecraft the cursor is using kde classic cursor

this was fixed by changing the default cursor for xwayland apps even tho mc is not running on xwayland, idc, it worked thats all that matters


Setting GPU environment variables does not have the specified effect

Description
Hey everyone,
setting os.environ["XLA_PYTHON_CLIENT_PREALLOCATE"] = "false" does not have any effect. Jax still allocates ~90% of memory when the first jax call is made.
Setting os.environ["XLA_PYTHON_CLIENT_MEM_FRACTION"] = ".10" successfully leads to jax to only preallocate 10% of memory. However, with this I get OOM warnings and errors even though nvidia-smi says only ~10% are allocated.
What jax/jaxlib version are you using?
0.4.23 0.4.23
Which accelerator(s) are you using?
GPU
Additional system info?
1.26.3 3.11.5 (main, Sep 11 2023, 13:54:46) [GCC 11.2.0] uname_result(system='Linux', node='quasi-MS-7D43', release='6.2.0-39-generic', version='#40~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Thu Nov 16 10:53:04 UTC 2', machine='x86_64')
NVIDIA GPU info
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.129.03             Driver Version: 535.129.03   CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA GeForce RTX 3090        Off | 00000000:01:00.0  On |                  N/A |
| 56%   44C    P5              49W / 370W |   3644MiB / 24576MiB |     12%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|    0   N/A  N/A      2018      G   /usr/lib/xorg/Xorg                          365MiB |
|    0   N/A  N/A      2171      G   /usr/bin/gnome-shell                         73MiB |
|    0   N/A  N/A      2913      G   ...sion,SpareRendererForSitePerProcess      231MiB |
|    0   N/A  N/A      3575      G   ...irefox/2987/usr/lib/firefox/firefox      251MiB |
|    0   N/A  N/A     32033      G   gnome-control-center                          4MiB |
|    0   N/A  N/A     38977      C   ...a3/envs/deepreprlearning/bin/python     2694MiB |
+---------------------------------------------------------------------------------------+

Fixed in #19035


APT whitelist request for libgtop2-7

used here:
https://github.com/plicease/FFI-Platypus

Ran tests and found setuid bits. See https://travis-ci.org/travis-ci/apt-whitelist-checker/builds/72229225.

Are you sure?  All I see in that package is documentation that it uses setuid on Solaris and Digital Unix.  At least on my Debian it doesn't seem t have any setuid bits:
twin% dir /usr/lib/libgtop-2.0.so.7* /usr/share/doc/libgtop2-7/*
lrwxrwxrwx 1 root root   20 Apr 13  2012 /usr/lib/libgtop-2.0.so.7 -> libgtop-2.0.so.7.2.0
-rw-r--r-- 1 root root  71K Apr 13  2012 /usr/lib/libgtop-2.0.so.7.2.0
-rw-r--r-- 1 root root  106 Jun  1  2011 /usr/share/doc/libgtop2-7/AUTHORS
-rw-r--r-- 1 root root 4.3K Aug 30  2011 /usr/share/doc/libgtop2-7/NEWS.gz
-rw-r--r-- 1 root root  418 Jun  1  2011 /usr/share/doc/libgtop2-7/README
-rw-r--r-- 1 root root 6.6K Apr 13  2012 /usr/share/doc/libgtop2-7/changelog.Debian.gz
-rw-r--r-- 1 root root  28K Jun  1  2011 /usr/share/doc/libgtop2-7/changelog.gz
-rw-r--r-- 1 root root 3.3K Dec 14  2011 /usr/share/doc/libgtop2-7/copyright

Ran tests and found setuid bits. See https://travis-ci.org/travis-ci/apt-whitelist-checker/builds/72284749.

Sorry for the noise. It was a re-run.

Looks like the text is the only stuff that has offending strings. I'll re-run this shortly to get the list of packages.

Ran tests and found setuid bits by purely textual search. Further analysis is required.
If these are found to be benign, add:
libgtop-2.0-10 libgtop2-dev libgtop2-common libgtop2-doc gir1.2-gtop-2.0
See https://travis-ci.org/travis-ci/apt-whitelist-checker/builds/72404961.

This is an automated comment.
Ran tests and found setuid bits by purely textual search. Further analysis is required.
If these are found to be benign, examine http://github.com/travis-ci/apt-package-whitelist/compare/test-apt-package-whitelist-110 and its PR.
Packages found: libgtop2-7 libgtop2-dev libgtop2-common libgtop2-doc gir1.2-gtop-2.0
See https://travis-ci.org/travis-ci/apt-whitelist-checker/builds/439974707 for details.


[buildmgr] Extend installer for supporting arm64

Codecov Report

Merging #11 (0087746) into main (f32997f) will increase coverage by 24.75%.
The diff coverage is n/a.

:exclamation: Current head 0087746 differs from pull request most recent head c92970e. Consider uploading reports for the commit c92970e to get more accurate results

@@             Coverage Diff             @@
##             main      #11       +/-   ##
===========================================
+ Coverage   44.54%   69.30%   +24.75%
===========================================
  Files         115       49       -66
  Lines       19496     8847    -10649
  Branches    11032     5637     -5395
===========================================
- Hits         8685     6131     -2554
+ Misses       9125     1782     -7343
+ Partials     1686      934      -752

Flag
Coverage Δ

buildmgr-cov
75.08% <ø> (ø)

svdconv-cov
?

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

Impacted Files
Coverage Δ

tools/svdconv/SVDGenerator/src/FileIo.cpp

tools/svdconv/SVDModel/src/SvdDerivedFrom.cpp

tools/svdconv/SVDGenerator/src/MemoryMap.cpp

tools/svdconv/SVDModel/src/SvdAddressBlock.cpp

...ls/svdconv/SVDGenerator/src/HeaderData_PosMask.cpp

tools/svdconv/SVDModel/include/SvdEnum.h

...svdconv/SVDGenerator/src/HeaderData_Peripheral.cpp

tools/svdconv/SVDModel/src/SvdSauRegion.cpp

tools/svdconv/SVDGenerator/src/SfdData.cpp

tools/svdconv/SVDModel/include/SvdRegister.h

... and 56 more

Codecov Report

Merging #11 (c92970e) into main (f32997f) will increase coverage by 24.75%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##             main      #11       +/-   ##
===========================================
+ Coverage   44.54%   69.30%   +24.75%
===========================================
  Files         115       49       -66
  Lines       19496     8847    -10649
  Branches    11032     5637     -5395
===========================================
- Hits         8685     6131     -2554
+ Misses       9125     1782     -7343
+ Partials     1686      934      -752

Flag
Coverage Δ

buildmgr-cov
75.08% <ø> (ø)

svdconv-cov
?

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

Impacted Files
Coverage Δ

...s/svdconv/SVDGenerator/src/SfdData_SingleItems.cpp

tools/svdconv/SVDModel/include/SvdPeripheral.h

tools/svdconv/SVDModel/include/SvdDerivedFrom.h

tools/svdconv/SVDModel/include/SvdRegister.h

tools/svdconv/SVDModel/src/SvdAddressBlock.cpp

...s/svdconv/SVDGenerator/src/HeaderData_Register.cpp

tools/svdconv/SVDGenerator/src/HeaderGenerator.cpp

tools/svdconv/SVDModel/src/SvdItem.cpp

...ls/svdconv/SVDGenerator/src/HeaderData_Cluster.cpp

tools/svdconv/SVDModel/include/SvdEnum.h

... and 56 more

Codecov Report

Merging #11 (bb7da8e) into main (f32997f) will increase coverage by 24.75%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##             main      #11       +/-   ##
===========================================
+ Coverage   44.54%   69.30%   +24.75%
===========================================
  Files         115       49       -66
  Lines       19496     8847    -10649
  Branches    11032     5637     -5395
===========================================
- Hits         8685     6131     -2554
+ Misses       9125     1782     -7343
+ Partials     1686      934      -752

Flag
Coverage Δ

buildmgr-cov
75.08% <ø> (ø)

svdconv-cov
?

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

Impacted Files
Coverage Δ

tools/svdconv/SVDGenerator/include/HeaderData.h

tools/svdconv/SVDGenerator/src/HeaderGenerator.cpp

tools/svdconv/SVDModel/src/SvdInterrupt.cpp

tools/svdconv/SVDGenerator/src/HeaderData.cpp

tools/svdconv/SVDModel/include/SvdAddressBlock.h

tools/svdconv/SVDGenerator/src/SvdGenerator.cpp

tools/svdconv/SVDGenerator/src/SfdGenerator.cpp

tools/svdconv/SVDModel/include/SvdCluster.h

tools/svdconv/SVDModel/src/SvdPeripheral.cpp

...s/svdconv/SVDGenerator/src/HeaderData_Register.cpp

... and 56 more

Codecov Report

Merging #11 (224e1b4) into main (f32997f) will increase coverage by 24.75%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##             main      #11       +/-   ##
===========================================
+ Coverage   44.54%   69.30%   +24.75%
===========================================
  Files         115       49       -66
  Lines       19496     8847    -10649
  Branches    11032     5637     -5395
===========================================
- Hits         8685     6131     -2554
+ Misses       9125     1782     -7343
+ Partials     1686      934      -752

Flag
Coverage Δ

buildmgr-cov
75.08% <ø> (ø)

svdconv-cov
?

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

Impacted Files
Coverage Δ

tools/svdconv/SVDModel/include/SvdDimension.h

tools/svdconv/SVDModel/include/SvdSauRegion.h

tools/svdconv/SVDModel/src/SvdDimension.cpp

tools/svdconv/SVDGenerator/src/SfdData.cpp

tools/svdconv/SVDConv/include/SvdOptions.h

tools/svdconv/SVDModel/src/SvdModel.cpp

tools/svdconv/SVDGenerator/include/CodeGenerator.h

...dconv/SVDGenerator/src/HeaderData_RegStructure.cpp

...svdconv/SVDGenerator/src/HeaderData_EnumValues.cpp

tools/svdconv/SVDModel/include/SvdCExpression.h

... and 56 more

Codecov Report

Merging #11 (2c4d926) into main (f32997f) will increase coverage by 24.75%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##             main      #11       +/-   ##
===========================================
+ Coverage   44.54%   69.30%   +24.75%
===========================================
  Files         115       49       -66
  Lines       19496     8847    -10649
  Branches    11032     5637     -5395
===========================================
- Hits         8685     6131     -2554
+ Misses       9125     1782     -7343
+ Partials     1686      934      -752

Flag
Coverage Δ

buildmgr-cov
75.08% <ø> (ø)

svdconv-cov
?

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

Impacted Files
Coverage Δ

tools/svdconv/SVDModel/include/SvdCpu.h

tools/svdconv/SVDModel/include/SvdEnum.h

tools/svdconv/SVDGenerator/src/SfrccInterface.cpp

tools/svdconv/SVDModel/include/SvdPeripheral.h

tools/svdconv/SVDModel/src/SvdDevice.cpp

tools/svdconv/SVDModel/src/SvdModel.cpp

tools/svdconv/SVDModel/src/SvdPeripheral.cpp

tools/svdconv/SVDModel/src/SvdCExpression.cpp

tools/svdconv/SVDGenerator/src/FileIo.cpp

tools/svdconv/SVDModel/include/SvdDerivedFrom.h

... and 56 more


updating recipe for mercurial 4.0

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

Going to need a new re-rendering Miniconda download URLs were broken recently. Please update conda-smithy and then re-render. Can also explore the -c/--commit option.


RD_DATA width in tx_port_channel_gate_128

I am reading your code base to understand how it works. So i haven't run it yet to check if it works.
i am looking at version 2.2.1 (the latest one)
In the tx_port_128.v you specify a wire:
wire	[C_DATA_WIDTH:0] wGateData; // this is [128:0]
this wire connects tx_port_channel_gate_128 and tx_port_monitor_128.
However, the port definition of tx_port_channel_gate:
output [C_FIFO_DATA_WIDTH-1:0] RD_DATA,	// FIFO read data
is not matching the wGateData wire, also the internal signals rFifoData, _rFifoData are not matching it, even though rFifoData[128] is assigned a value.
Correctly, in tx_port_monitor_128, the port definition is:
input [C_DATA_WIDTH:0] EVT_DATA,			// Event data from tx_port_channel_gate
I don't know it this shows up as a bug when the circuit is used, but it is clearly a bug when reading the code.
Thanks,
David
PS: if you prefer, i can create a pull request with the fix for this.

I think this is actually okay. The reason is that C_DATA_WIDTH = 128, and C_FIFO_DATA_WIDTH = 129.
Does that answer your question, or am I not seeing the same issue?

Ok, you're right. then it was more a readability issue from my point.
Thanks, for your quick reply.


Has the latest version been tested with Raspberry Pi?

I can't seem to be able to run binaries directly. I get the following error when I try to execute ErpNet.FP.Server: "Could not execute because the specified command or file was not found."
However, if I build the binaries on the Raspberry I'm able to start the server, but then apparently there is some thread locking issue. Detecting printers never completes.

@rabchev Were you able to fix this? I'm having the same thread locking issue, detecting never completes.

Which Raspberry version are you using? It works fine on newer versions. I don't remember exactly but I think was testing with Raspberry Pi 3 and it didn't work, but it worked with 4 and 5.

Which Raspberry version are you using? It works fine on newer versions. I don't remember exactly but I think I was testing with Raspberry Pi 3 and it didn't work, but it worked with 4 and 5. Apparently, this is an issue with the .Net framework it self.

I'm using RP4 with  the latest Raspbian OS. When I run the ErpNet.FP.Server it starts up, but when I go to the localhost:8001 it says "Cannot get printers properties" and keeps detecting infinitely.
I've the installfppi.sh script to install everything as well and run the service but then I can't access the localhost page so it seems that doesn't work.


Orphaned adapter cleanup on config change

Mixer maintains a cache of initialized adapters. When configuration changes, an adapter instance may become orphaned.
Orphaned adapters should close() and be evicted from the cache.

@mandarjog in the new model controller is already doing that. We good with this bug


evaluate perf shifts caused by adopting ena in rustc

In https://github.com/rust-lang/rust/pull/47861, @sgrif recently switched rustc to use ena. This caused a huge perf regression, but for reasons unrelated to ena -- it was followed up by https://github.com/rust-lang/rust/pull/48666 which reverted the troublesome commit. Still, looking at the combined scores here shows a small (but measurable) regression of a few percent on certain tests:
perf comparison showing combined results of 47861 and 48666
It's a bit messy because that diff includes some other commits. These are the perf results we did before landing, in which that troublesome commit was excluded:
perf comparison from before landing
You can see that the changes there are all in the 1-3% range. Some things worth investigating:

Was the 11% clap-rs regression caused by these PRs or not? It wasn't measured before landing
In order to make things faster, we also removed congruence closure from ena before landing. However, that didn't seem to make as much affect as I was hoping. Was it necessary?
Are there improvements we can make to ease the smaller regressions?

On the last point: there were a few distinct steps that we changed in rustc in the course of adopting ena. For example, we moved the types into the unification table directly. It might be that this caused a slight shift in cache misses or other things. Worth evaluating. I was wondering if [reodering the fields in the VarValue struct might be a win]:
https://github.com/rust-lang-nursery/ena/blob/7768e8f2f3d942580c7d3cb62d267af487e67865/src/unify/mod.rs#L158-L161
Or potentially separating the value field into a separate vector.

Any news about the congruence closure's performance impact ? I'd be interested by that feature.


Emojis do not render in pango based apps (Gtk, etc).

Describe the bug
I am going mad trying to get emojis to work. They render fine in Firefox and apps like Telegram. They also work in st (the terminal emulator).
However, they do not work in apps like gedit, gnome-terminal, rofimoji, emotone, etc. I think this is a pango issue because when I run:
pango-view --font="Noto Color Emoji" ...

And pass strings or files with emojies they do not render properly, even though I've applied all fontconfig tweaks I could get my hold of on the internet.
Steps To Reproduce
pango-view --font="Noto Color Emoji" ...

Expected behavior
You see emojis.
Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 6.1.31, NixOS, 23.05 (Stoat), 23.05.553.e7603eba51f`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.13.3`
 - channels(root): `"nixos-23.05, nixos-18.03-18.03, nixos-18.09-18.09, nixos-19.03-19.03, nixos-19.09-19.09, nixos-20.03-20.03, nixos-20.09-20.09, nixos-21.11-21.11, nixos-22.05-22.05, nixos-22.11-22.11, nixos-23.05-23.05, nixos-unstable"`
 - channels(raskolnikov): `"nixgl, nixpkgs"`
 - nixpkgs: `/home/raskolnikov/.nix-defexpr/channels/nixpkgs`

I got a similar issue, although font didn't render at all when any emoji package from nixpkgs.
I've tried many things, including removing the default fonts, removing any emoji font from fonts.packages, without any luck, I just couldn't get it working.
A workaround I found is to download manually Noto Color Emoji from Google Fonts and place it under $HOME/.local/share/fonts/.

Do you have anti aliasing turned on for the emoji font?


Addition of MSP432E401Y EMAC driver

Third-party code for an MSP432E401Y NetworkInterface driver.
Description
This is an example driver for the Texas Instruments SimpleLink MSP432E401Y microcontroller with internal Ethernet transceiver.  Code to setup the driver is provided in the README.md file.  Additional middleware is also provided.
Some changes were made for robustness after some additional testing.
Test Steps
Tested using UDP and TCP sockets, ping floods, nmap and in the context of a FreeRTOS+TCP application.
Related Issue
https://forums.freertos.org/t/freertos-tcp-crashing-on-cortex-m4f-and-possible-bug-msp432e401y/11606/17
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Hello @nkinar!
Thank you for this PR and the interesting discussion on the freertos.org forums.
I see that the formatting check is failing. That check makes sure that the source is formatted similar to the FreeRTOS+TCP source files. Would you mind fixing the formatting? Or if you like, I will be more than happy to do it for you.
If you would like to do it yourself, then the below information will be useful:

A tool called Uncrustify is used for this check.
We do need a specific version of the tool -> 0.66.1
The config file can be found in the ./tools directory here.
All the source .[ch] files that are modified in this PR are required to be formatted with this tool.

Regards,
Aniruddha

@AniruddhaKanhere thanks for your help.  I ran uncrustify on the code and then added the updated commits.  The formatting is still failing - can you check and see where the fail is occurring?  I will update accordingly if required.

@nkinar - I see two files failing the check:
/portable/NetworkInterface/ThirdParty/MSP432/NetworkInterface.c
and
portable/NetworkInterface/ThirdParty/MSP432/NetworkMiddleware.c

@AniruddhaKanhere, sure that sounds good; thanks for your help.  Can you fix this?  Thanks.

@AniruddhaKanhere that is great!!  Thanks.

Hi @nkinar. Thank you for your contribution. We would like to merge it to main but can you please address the last few comments made?

@yourslab Thanks.  I am just testing the driver on the hardware and I can respond to the comments within the next few days.  I am so sorry about the delay.

No worries. Thanks for the hard work and getting it tested on hardware 🙂

See my comments inline for specific items.
General comment – it might be helpful to list all of the tasks this network interface creates and their purpose in the documentation (I counted 5 tasks). Also, would it be possible to combine some of the tasks related to checking link up/down, network state & reset, etc.? Each task requires a stack, so if some of these could be combined it could help app developers save memory.

Tasks created for the network interface and the purpose of each task are now listed in the documentation.
See the "List of Tasks" section.

I am also seeing that the formatting check is failing. I ran uncrustify on the files, but I am uncertain why the formatting check fails when run on the server.

Can you verify that you're using uncrustify 0.67 and using the follow uncrustify config? https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/blob/main/tools/uncrustify.cfg

@yourslab  I was using uncrustify 0.66 on Windows, and I am now using uncrustify 0.67.  I also downloaded the config file that you provided in the link.  Thanks.

@gkwicker Thanks for the comments.  I've now updated the code again and tested it on the hardware.

Hello @nkinar, thanks a lot for these contributions.
I am sorry that somehow we didn't get in touch earlier.
Normally, a Network Interface starts a single helping task, which takes care of reception, transmission, PHY status polling, clearing DMA descriptors after a packet has been sent.
There are a few reasons to use a single task, also called a "deferred interrupt handler":

You need less resources when creating less tasks
The peripheral can not be shared among tasks without introducing a mutex
Especially the PHY access must be protected against "parallel access"
No need for critical sections, no mutex.

The ETH (RX/TX/ERR) interrupts are kept as short as possible. They will set a flag and call a function like vTaskNotifyGiveFromISR() to wake up the handler.
About EMACPHYConfigSet() : if your PHY is 100 Mbps, you could also consider to use the generic PHY handler. You find an example of how it is used here.
>    interruptsMasked = false;

In FreeRTOS projects, the words true and false are normally coded as pdTRUE and pdFALSE. Also many C-compilers might not implement the type bool.
About xNetworkInterfaceOutput() : normally the sending is done within this function. After the function returns, you are not supposed to access pxDescriptor any more ( unless xReleaseAfterSend is true ).
When the function exits, the packet is queued for transmission, possibly in a DMA descriptor.
I suppose that you have read about xReleaseAfterSend? It indicates whether the ownership is passed to the driver or not. When ipconfigZERO_COPY_TX_DRIVER is 1, xReleaseAfterSend will always be true, meaning that the driver will own the network buffer.
    if( xTaskGetSchedulerState() == taskSCHEDULER_RUNNING )
    {
        FreeRTOS_NetworkDown();

Normally, all network interfaces may assume that the scheduler is running, otherwise xNetworkInterfaceInitialise() can not be called, it is called from the IP-task.
And also "normally", the function xNetworkInterfaceInitialise() is the first point of action in the driver: it initialises the EMAC, the PHY, DMADMA descriptors, and buffers.
        vTaskDelay( pdMS_TO_TICKS( ETH_UP_DELAY_MS ) );

There is no need to put a vTaskDelay() here, the IP-task already pauses 3 seconds between the calls:
#ifndef ipINITIALISATION_RETRY_DELAY
	#define ipINITIALISATION_RETRY_DELAY    ( pdMS_TO_TICKS( 3000U ) )
#endif

This is indeed correct:
if( ( checkLinkStatus == true ) && ( networkUP == false ) )
{
    networkUP = true;
}

meaning that xNetworkInterfaceInitialise() will return pdPASS only when the PHY link status is up.
About transmission: normally when the link status is low, all packets to be transmitted will be dropped. If you queue them for transmission you might get many DMA errors and see some long time-outs.
Finally I want to show an example of xNetworkInterfaceInitialise():
    BaseType_t xNetworkInterfaceInitialise( void )
    {
        BaseType_t xResult;

        if( xMacInitStatus == eMACInit )
        {
    		if( initialise_emac_and_phy() == pdPASS )
    		{
    			xMacInitStatus = eMACPass;
    		}
    		else
    		{
    			xMacInitStatus = eMACFail;
    		}
        } /* if( xMacInitStatus == eMACInit ) */

        if( xMacInitStatus != eMACPass )
        {
            /* EMAC initialisation failed, return pdFAIL. */
            xResult = pdFAIL;
        }
        else
        {
            xResult = ( xPhyObject.ulLinkStatusMask != 0U ) ? pdPASS : pdFAIL;
        }

        /* When returning non-zero, the stack will become active and
         * start DHCP (if configured) */
        return xResult;
    }

The above function xNetworkInterfaceInitialise() will be called from the IP-task.
It makes sure that initialise_emac_and_phy() will only be called once.
The MSP432E401Y is a nice CPU, and I think it is worth to give it a great network driver.
Thank you for this effort!
Hein

@htibosch thanks so much for your detailed comments; this is much appreciated.  However, due to other commitments, I do not have the time to make additional changes.  If you have the time and if you or anyone else would like to do so, then that would be great.  I do not mind if the code is not contributed to the kernel.  Thank you.

@htibosch thanks so much for your detailed comments; this is much appreciated. However, due to other commitments, I do not have the time to make additional changes.

All right, no problem.
I just went through NetworkInterface.c again and made some essential changes, and also a few changes to please MISRA checks, like the 'U' after a few constant values. And finally I inserted "static" in front of all static functions, some compilers could complain about that.
I uploaded the adapted NetworkInterface.c to my github repo.
Could you please have a look with e.g. Beyond Compare or WinMerge to check the changes? The most important change is in xNetworkInterfaceOutput().
Thanks,

@htibosch you are awesome.  Thank you so much my friend!  I will check the changes and also run a test on the hardware and then let you know.

@htibosch thanks for the intelligent changes to the code.  These are great.  I tested on actual hardware and had to make minor changes (as listed below).  IMHO, the MSP432 platform can be finnicky.

In prvCheckLinkUpOrDownNetStateTask, the vTaskDelay() had to be removed for the Ethernet plug event to be detected.  I think this is because when the EMAC phy register is read by polling via the isEMACLinkUp() function, and a delay causes the change in the register to be missed.  Unfortunately, there is no way on this microcontroller to set up an interrupt to detect the Ethernet plug event.

vPublicTurnOnEMAC() should not be static since it can be called from external code?  This is declared in NetworkInterface.h.

Thanks again so much for your expertise.

thanks for the intelligent changes to the code.

It has yet to be proven if the proposed changes are really intelligent :-)

In prvCheckLinkUpOrDownNetStateTask, the vTaskDelay() had to be removed for the Ethernet plug event to be detected.  I think this is because when the EMAC phy register is read by polling via the isEMACLinkUp() function, and a delay causes the change in the register to be missed.

Would it matter if you miss a short drop in the link status? I don't think so. Only if the Link Status drops for longer that a few seconds, I would respond to it.

Unfortunately, there is no way on this microcontroller to set up an interrupt to detect the Ethernet plug event.

Yes right, normally the PHY can trigger an interrupt. I have never used it though.
A while ago I played with a Xilinx Zynq. When I polled the PHY very frequently ( 100 Hz ), the transfers were heavily disturbed. When I lowered the PHY polling speed, the transfers were good again. And then I decided not to poll the PHY for as long as packets are being received. With that method there were zero disruptions left.
( I was testing this while running IPERF3 in 2 directions ).
I am not sure if this disturbance is observed in other EMACs as well.

vPublicTurnOnEMAC() should not be static since it can be called from external code?  This is declared in NetworkInterface.h.

I tend to make the deferred interrupt handler task the owner of the EMAC and the PHY. I wouldn't give direct access to the hardware from a public function.
PS. you have not implemented the following function:
BaseType_t xGetPhyLinkStatus( void )
{
    return networkUP;
}

It might be called from an application. Can you add it please?
@AniruddhaKanhere, I approve this PR!

@htibosch thanks for the comments; again this is much appreciated.

Would it matter if you miss a short drop in the link status? I don't think so. Only if the Link Status drops for longer that a few
seconds, I would respond to it.

For some bizarre reason, polling using the isEMACLinkUp function misses the plug event if a delay is added to the prvCheckLinkUpOrDownNetStateTask function.  I suspect that the Ethernet plug event register is automatically cleared in a few processor cycles by the hardware.  MSP432 is unique and there are often some strange things that occur that might be hardware or compiler-bug related.  We could definitely look into this for a future patch.

A while ago I played with a Xilinx Zynq. When I polled the PHY very frequently ( 100 Hz ), the transfers were heavily disturbed. When I lowered the PHY polling speed, the transfers were good again. And then I decided not to poll the PHY for as long as packets are being received. With that method there were zero disruptions left.
( I was testing this while running IPERF3 in 2 directions ).
I am not sure if this disturbance is observed in other EMACs as well.

I wish MSP432 was similar to the Zynq.  The plug event is detected by checking a bit in the Ethernet PHY Basic Mode Status register and it appears that the bit is automatically cleared after some processor cycles.

I tend to make the deferred interrupt handler task the owner of the EMAC and the PHY. I wouldn't give direct access to the hardware from a public function.

Yes, this is a good idea.  I changed the function names.
I also replaced all bool values with pdFALSE or pdTRUE.

Also, the xGetPhyLinkStatus has been added.

For some bizarre reason, polling using the isEMACLinkUp function misses the plug event if a delay is added to the prvCheckLinkUpOrDownNetStateTask function

phyHandler.c is using:
#define phyREG_01_BMSR          0x01U  /* Basic Mode Status Register. */

#define phyBMSR_AN_COMPLETE     0x20U  /* Auto-Negotiation process completed */
#define phyBMSR_LINK_STATUS     0x04U  /* PHY Link Status. */
#define phyBMSR_REMOTE_FAULT    0x10U  /* Remote fault. */

which corresponds to the TI definitions:
#define EPHY_BMSR               0x01  // Ethernet PHY Basic Mode Status

#define EPHY_BMSR_ANC           0x20  // Auto-Negotiation Complete
#define EPHY_BMSR_LINKSTAT      0x04  // Link Status
#define EPHY_BMSR_RFAULT        0x10  // Remote Fault

I just tested on a different board, an STM32Fxx DISCO, to observe the PHY handling.
When I disconnect the device from the LAN, the bits AN_COMPLETE and LINK_STATUS both drop.
The driver stops sending packets, and it will wait for the LINK_STATUS to become high again.
Once it is high, the device starts a new Auto Negotiation (AN).
The auto negotiation process typically lasts 1650 ms. AN_COMPLETE and LINK_STATUS both become high, and the device will re-program the PHY properties into the EMAC. These properties consists of speed (10/100) and (half/full) duplex,
Maybe, when you have time, you can drive a LED that follows the LINK_STATUS? I can not imagine that the EMAC has any knowledge about the attached PHY. It should provide you a transparent data bus to the PHY, and let the application do what it wants to do.
PS. phyHandler.c has always ignored BMSR_RFAULT, but it might be good to observe it as well.

@htibosch thanks, I will take a look at this next weekend.

I am also not sure why the CI Checks / formatting is failing since I am using uncrustify to format the files.

I am also not sure why the CI Checks / formatting is failing since I am using uncrustify to format the files.

I think my latest commit should fix that.

@AniruddhaKanhere thanks so much.  Uncrustify is really sensitive to whitespace!!

@htibosch, I set up the code to drive a LED that follows the LINK_STATUS.  The LED remains on when the network cable is plugged in, and off when the network cable is unplugged.
Here is what I now think is happening after some investigation.  The MSP432 architecture has a "Tickless" Low Power Operation (https://www.freertos.org/TI_MSP432_Free_RTOS_Demo.html).  Apparently when a sleep statement is added to the task that detects the plug event, the microcontroller can enter a power-saving state and the change in the LINK_STATUS is missed.  The transition between the power-saving state and the operational state occurs when there is an interrupt.  However, there is no interrupt that can be associated with the LINK_STATUS, so the microcontroller does not wake up.

@AniruddhaKanhere I would be happy to help integrate any code as required or provide tests on hardware.

@AniruddhaKanhere I would be happy to help integrate any code as required or provide tests on hardware.

@nkinar, @AniruddhaKanhere, I think that the driver is good as it is now, and that it can be merged with the main branch. Let's get experience with it, and please report if you find any issues.
Thanks, Hein

Thanks @htibosch, and we can definitely update as time goes along.  I will be using the driver for a number of projects, so the additional testing will continue to explore the operation.  @AniruddhaKanhere @gkwicker thanks for your reviews, help and comments; this is much appreciated.


fix: paths to lowercase

:tada: This PR is included in version 1.5.2 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Missing "properties" attribute in @Schema annotation

I'd like to define some properties as mentionned in https://swagger.io/docs/specification/data-models/data-types/#object
type: object
properties:
  myprop:
    type: string

The Schema class has the Map<String, Schema> properties attribute but the annotation doesn't support it.

Do we have any updates on this?

#4129 introduces support to define Schema properties via annotations. Please see this and this examples for usage scenarios.


Treating Series X Values like Series Y Values

Due to shenanigans I am having to go through the excel file I was working on and restructure it so that itcould make XYScatter Charts I created use X Y series pairings dynamically. For example say I have a table that contains columns for an identifier, a number, and a date and the values look like this:
ID      Num     Date
s3          1     13/08/2018
s3         30    14/08/2018
s3         16    15/08/2018
s3         21    16/08/2018
s3         17    17/08/2018
s5          2     13/08/2018
s5         12    16/08/2018
s7         20    13/08/2018
s7         40    15/08/2018
s7         20    17/08/2018
I want to make it so each series is grouped together by ID with the YRange being Num and XRange being Date. While normally I would just set my XRange to a set value for each series, this new logic wouldn't allow that as one series can have 7 values and the next will have 2. With YRange previously I could just do something like "Data!M3:M4", "Data!M5:M6" to declare my series but the same doesn't seem to apply to XRange. Instead, using the syntax above would produce a single set of data like this:

Is there a way to set an XRange as a series?

This can be done, I think but not with  Add-ExcelChart as it is written.
line Export-Excel.ps1 has this  (it's line 1449 in my version but that has some extra changes)
                $Series = $chart.Series.Add($YRange[$idx], $XRange)
If think you can change it to
if ($Yrange.count -eq $xrange.count) {
                $Series = $chart.Series.Add($YRange[$idx], $XRange[$idx])
}
else {
                $Series = $chart.Series.Add($YRange[$idx], $XRange)
}

Does that do what you need ?

Ah that is precisely what I needed, thank you.


Change the official name of Macedonia

Overview
In March of 2019 the country changed its name from The Former Yugoslav Republic
of Macedonia to North Macedonia. This commit updates our country code parsing
and model choice fields to match.
https://en.wikipedia.org/wiki/ISO_3166-2:MK
Connects #510
Demo

Testing Instructions

Run ./scripts/update to apply the migration
Log in and upload
macedonia.csv.txt
Run ./scripts/manage batch_process --list-id {the-id} --action parse and verify that all three rows are correctly parsed as North Macedonia
Verify that the country drop down on the main page contains North Macedonia

Checklist

[ ] fixup! commits have been squashed
[ ] CI passes after rebase
[ ] CHANGELOG.md updated with summary of features or fixes, following Keep a Changelog guidelines

Do we need to migrate instances with the old country name & code too?

We only every store the country code, MK, so no migration is required.

Thanks for the review.


AWS CDK support

AWS CDK is a new way to generate IAC, making easier the definition and deployment of infraestructures in AWS.
Also, security and best practices should be applied. So, KICS should analyze this type of files.

CDK will output a CloudFormation template, which is currently supported.
Try running cdk synth first, then targeting the resulting file(s) with kics.


Main properties added as additional Properties

When we have nested properties with additonal properties in one of them, the json serializes the innerbody first. Hence the main properties of the outer body gets added as additonal properties.
Example:
mainBody:
    type: object
    required: ['name', 'type']
    properties:
      name:
        type: string
      type:
        type: string
    additionalProperties: true

mainReadonly:
      type: object
      properties:
         createdTime:
               type: string

  wholeBody:
    allOf:
      - $ref: '#/definitions/mainBody'
      - $ref: '#/definitions/mainReadonly'

In this case, the assetReadonly properties also get added to the additonal properties since the swagger does the serializtion of assetbody first and sees it has additonal properties. So now my serialized params look like
type,
name
type
createdTime
additionalProperties: createdTime

I think this is a known jsonschema subtlety like described here. It is not clear to me what we are doing specifically wrong with go-swagger.


security: Fix comment about PKCS version.

[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[X] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
Pull Request Attributes
Please check any characteristics that apply to this pull request.
[X] Does not have any changes that may affect Istio users.

@justinpettit: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-pilot-multicluster-tests_istio
a9982ebcda2701ead661fac8f260f6e7413ca4e1
link
/test integ-pilot-multicluster-tests_istio

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. I understand the commands that are listed here.

/test integ-pilot-multicluster-tests_istio


WIP changing print for logging statements

Hello, thanks for this. However I'm not actually sure we should remove the print statements - that would mean that a user running the CLI would potentially see no output when they ran something. That could be confusing. (We would have to make sure logging was configured to show these to the user to.) To be honest it's the end of a long week here so I need to think about this again next week to make sure I'm not talking nonsense - have a good weekend!

I tried to follow Python's Logging suggestions https://docs.python.org/3/howto/logging.html, meaning not all print statements have been switched. I marked as WIP as it still needs to verify the logging conf is proper, and is set when using verbose flags. Take a look and let me know :)


Add ingest artifacts from dbt cloud

Ingest the artifacts for a specific job run.
Fixes #589 .

Note to self: Use env_vars for the dbt token stuff.


Non OBD Module fails Test 9.23 for DM1

Body Controller is not an OBD Module.
Body Controller faults should not be relevant.
 Fail if any ECU does not report MIL off or MIL not supported.
b. Fail if any ECU reports an active DTC.
c. Fail if no OBD ECU provides DM1.

DM1 are active DTCs. DM1: Previously Active

Preliminary review suggests this text is an isolated case, and not a general, systematic problem.  Often the example text is shown for test using DS queries to (all) OBD ECUs, where the responses are limited to OBD ECUs by the query text, and responses are thereby understood to be limited to OBD ECUs.  Non-OBD ECUs reliably do not respond to DS requests to OBD ECUs, so text revisions in such cases do not seem warranted.


Board Reports: Account for new fiscal year in solr facets

It's July 2017 - time to update the facets!

Added!...but #181 persists


Revert "Added routing to make prep prod finders be handled by special…

We ran out of time for our deploy and the rest of the
day is booked up, so we need to roll these changes back.

looks good to me 👍


Bug with publicationState

Hello, I've a problem with this plugin,
related to data from the blog article from strapi Build a static blog with Gatsby 4 and Strapi.
In this article the we can query articles (with publishedState) within the categories query (without publishedState) but the variable is not added to query vars :
the generated query:
CategoryQuery failed – Variable "$publicationState" is not defined by operation "CategoryQuery".

===== QUERY =====
query CategoryQuery($pagination: PaginationArg, $updatedAt: DateTime) {
  categories(pagination: $pagination, filters: {updatedAt: {gt: $updatedAt}}) {
    __typename
    data {
      __typename
      id
      attributes {
        __typename
        name
        slug
        articles(pagination: {limit: 1000}, publicationState: $publicationState) {
          __typename
          data {
            __typename
            id
          }
        }
        description
        createdAt
        updatedAt
      }
    }
    meta {
      pagination {
        total
      }
    }
  }
}
===== VARIABLES =====
{
  "pagination": {
    "start": 0,
    "limit": 1000
  },
  "updatedAt": "1990-01-01T00:00:00.000Z"
}
===== ERROR =====
 Variable "$publicationState" is not defined by operation "CategoryQuery".

this fix is not elegant but it works.
I've also added this fix for $locale  and $updatedAt, it probably suffer from same "bug"

LGTM


Execute Balea only in specific authentication schemes

Fix #12.

Hi @hbiarge
Thanks for your contribution! I've reviewed the PR and we have some TODOs:

[ ] Samples are not working.

InvalidOperationException: Cannot consume scoped service 'Balea.BaleaOptions' from singleton 'Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelFactory'.

[ ] UnauthorizedFallback is not working
[ ] Needs docs for the configuration schemes.

Regards!

Thanks for your contribution @hbiarge


[BEAM-5192] move metadata serialization configuration code to WriteFn setup to avoid doing the configuration for each element.

R: @hermes85pl regarding your comment in https://github.com/apache/beam/pull/10433
I know you're not a beam committer, but I just need a LGTM to self merge.
Please add a meaningful description for your change here

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

Run Java PreCommit


Bug when connecting nodes

I was working with a new workflow, and noticed that when I left-click off the input button, sometimes the SHOW TEXT node gets dragged with the cursor.
Also, after the first connection with a Show Text node, if I drag off of a clip node to automatically connect the Show Text node, Show Text drops without connecting..
link:
https://www.dropbox.com/s/8i1hcoqvp10sfu4/COMFYUI_LEFT_CLICK_CONNECTION_BUG_PYSSSS.mp4?dl=0

When this happens, are you able to go to the settings menu -> View Logs
And export the logs from there please
And what type of node is that positive prompt? It looks like a primitive? If so you cant connect primitives to "normal" nodes, this pr: https://github.com/comfyanonymous/ComfyUI/pull/1104 should hopefully fix that

Yup, it's a primitive. Apologies!
How would I integrate pr:#1104? (I've already updated to the latest comfy)

Personally I would wait for it to be merged into master else you're going to need to be managing your own branch.
As an alternative, you can use my reroute-primitive:

@rethink-studios The pending PR for ComfyUI has been merged so this issue should now be resolved


B

I am interested in testing this but as yet have found any documentation on how to sideload this on my home assistant instance. Could you point me in the right direction?


Fixed the TOC. Was not showing link. Now Works

@madskristensen
Even thou I used your new TOC addition to the Markdown Editor; it was not showing the links.  I had to remove the existing links in each heading. I also changed the Headings to just use # or ##.  ### and #### did not work for the TOC.
It now works, and is ready to merge.

Thanks


Contributing to the database

After the initial database is established (issue #4), a longer-term issue will be how others can contribute to the database.
The current approach would be that contributors would need to fork the repo, add their contribution, and make a PR. This likely is too involved for some and could be a barrier to contributions. That said, this approach is similar to the adding reviewer process at JOSS. However, there has been some discussion at JOSS about simplifying their process, and some suggestions may also be useful for the database contribution issue here (see https://github.com/openjournals/joss/issues/265 and https://github.com/openjournals/joss/issues/289).
Relatedly, perhaps the databases should be stored in a separate repo from the main site. This might be a situation for a submodule? (I've never used submodules before...)
More on submodules here:
https://github.com/blog/2104-working-with-submodules

Talking with @kevin-mattheus-moerman:
Maybe have people add via a Google Form, then CI to monitor and output a CSV for the database (#4)

The new submodule approach (#7) solves this somewhat, but it would still be nice to not require forking of the repo, for more novice contributors. A Google Form that someone oversees and periodically converts to the YML may a solution. (Or better yet, code that converts the Google Form entries to YML via a template.)

@cMadan could I be of help here? I have a lot of "automate on GitHub and never think about it again" things, and perhaps another thing like that or a generic template could be useful? Examples that might be relevant:

the rsepedia is a self updating database (weekly) see updates and we basically retrieve new "database" entries (json) and then from that run a small Flask app that we then save the pages for to generate https://rseng.github.io/software/. This works easily because the RSEPedia provided this flask app anyway for local annotation, and it was trivial to extend it to this automation. However an entire flask app (unless you have that use case) is probably overkill.
A component of the rsepedia is annotation - and this is a possible by way of having the "submit" button from any website you have submit to a GitHub issue with a particular format https://rseng.github.io/software/repository/github/0x0f0f0f/Metatheory.jl/annotate-criteria/. E.g., clicking that I get a populated issue with specific content, title, and label that a workflow then knows how to parse (and update the database).

Here is an actual example of an issue opened, and you can see the automated bot that addressed it  (and closed it) https://github.com/rseng/software/issues/186.

Google forms / sheets (as you mentioned) is also a good strategy - for US-RSE I built a workflow to update the graphic here https://us-rse.org/join/ by way of parsing a Google Sheet (csv endpoint) and then updating a jekyll site that populates that graphic. Similarly, the membership map grabs city/state/countries from a subset of the submission form (without personal info exposed) and then geolocates and submits a PR to update the map (once a month). Jobs is an example of semi-automated because a human submits to a Google form, but instead of just adding without review a human reviews and opens the PR. Merging then kicks in for more automation to post to Twitter and GitHub.
Another UI example is spack packages, which updates itself nightly based on generating json output for all spack packages from develop (and piping them into a UI). This sounds similar to what you might want to do (minus the submission bit?) https://packages.spack.io/. That site also provides json metadata for spack to appear in repology, and the spack cache works similarity (but different front end views, etc.) https://cache.spack.io/
I also have several automated catalogs that "discover" files of a particular type on GitHub - https://spack.github.io/spack-stack-catalog/ and https://singularityhub.github.io/singularity-catalog/. Those are reliant on having a good search query for the GitHub api (e.g. both file types being indexed are relatively unique). And you can customize with different visualizations (e.g., singularity shows a plot of base containers and spack has a clustering).
Opensource heartbeat is a good example of nightly update of a UI based on using the GitHub apis, but around users/ events. https://github.com/rse-ops/opensource-heartbeat.
rse-ops/docker-images is a good example of actually separate jobs updating the same UI. https://rse-ops.github.io/docker-images/. E.g., we have a workflow that updates containers in subfolders, and each subfolder updates its own markdown files to appear in that table.

So some common patterns:

if your thing has an actual web server, you can basically dump it into a site
a workflow with automation to generate markdown into a jekyll site, from really any kind of context, works really well
automation from user -> site works well with Google Forms -> csv -> nightly run
Static sites can serve apis too (e.g., I made one for US-RSE as one example) https://us-rse.org/wg/website/#json-feeds that feeds into https://pypi.org/project/usrse/
individual contributions (or a workflow) can be added to a site, more a la-carte
An event like a label (via issue or PR) is also a useful way to trigger a workflow, with some metadata coming from the issue or PR.

I'd be happy to help with any of this if y'all are interested! A workflow of Google Form -> workflow -> csv sounds easy, actually google forms can already output a csv so you really just need a nightly run to wget it :) But maybe you'd like a nice UI around that?


Update keycloak-core to 26.0.0 in scala-steward-dependencies

About this PR
📦 Updates org.keycloak:keycloak-core from 25.0.6 to 26.0.0 ⚠
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.keycloak", artifactId = "keycloak-core" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "org.keycloak", artifactId = "keycloak-core" }
}]

labels: library-update, early-semver-major, semver-spec-major, commit-count:1

Closing as no changes


Please remove My Hotspot from the Rejection List

Hotspot Name
Petite Plastic Grasshopper
Hotspot b58 Address
11FhCGouRPDxv561nkbVcQLrqkDeJwzokpbfXmVZ6Rzjys8NAft
Discord Handle
No response
Hotspot Manufacturer
Heltec Automation
Removal Reason
My hotspot and the real hotspots around me can be witnessed, but they are on the rejection list and asked to be removed
Modifications
Yes
Extra forwarders
Yes
Extra antennas
No
Additional Information

permaban


Fix CI Environment

CI has been failing for a while.. needs to be fixed so we can merge with confidence.

Recent Failure:
https://circleci.com/gh/blainekasten/enzyme-matchers/170?utm_campaign=build-failed&utm_content=failing-command&utm_medium=email#tests/containers/0/actions/14
Relevant:
https://github.com/facebook/jest/issues/535


New software can’t read all sensors on v1.1 boards

The Python code seems to read a bunch of sensors that the new Rust code can’t. Needs investigation when we get a v1.1 board back in the office.

Not fixing this.


Update to PHPStan 2.x and Rector 2.x

..work in progress...

Thanks :+1:  I'll merge and release new version


Update es-419.coffe

Added more lines in Spanish (Latin America)

Hello, @soffes! Thank you for contributing. Can you sign our CLA so that we can merge your pull request?

@Imperadeiro98 Done signin CLA


fix import errors

Summary
Fix linting errors from master
Release Note

NONE

/check-cla

Some CI checks are failing but all the tests and linting passed so I'm force merging

/cherry-pick cloud

Cherry pick is scheduled.


Ctrl+Shift+Tab gesture doesn't work on Linux

Describe the bug
Hello, I have following code:
<KeyBinding Gesture="Ctrl+Tab" Command="{Binding SomeCommand}" />
<KeyBinding Gesture="Ctrl+Shift+Tab" Command="{Binding SomeCommand}" />
<KeyBinding Gesture="Ctrl+Shift+P" Command="{Binding SomeCommand}" />
<KeyBinding Gesture="Tab" Command="{Binding SomeCommand}" />

All gestures except Ctrl+Shift+Tab work here on Linux. On Windows everything works fine. Anything I'm doing wrong?
Expected behavior
Ctrl+Shift+Tab should work as expected.
Desktop:

OS: Linux
Version: 0.10.0

On macos even Ctrl+Tab doesn't work for me


[Bug] nhentai won't open chapters

Device information

Tachiyomi version: 8.8.2
Android version: 14
Device: Nothing Phone (1)

Steps to reproduce

go to nhentai extension
Open any doujin chapter

Expected behavior
It should load chapters.
Actual behavior
Kicks me out back to chapter selection screen.
Other details
Doesn't show any errors, only small black box
Everything works when opened in web-view. Old doujins that I added into the library work fine.
recording:
https://github.com/user-attachments/assets/0884fe0c-3e1d-48a7-94e3-32f816b059a1

fixed in the dev build
https://github.com/az4521/TachiyomiAZ/commit/839056a959a69610d4611d56a64160f86f7aa727
get it here
https://crafty.moe/tachiyomiAZ.apk


Merge master-qa

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.2 out of 3 committers have signed the CLA.:white_check_mark: LucasBrazi06:white_check_mark: ClaudeROSSI:x: mahdibenromdhanemahdibenromdhane seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


[ITensors] [ENHANCEMENT] Fix svd and qr for empty input left or right indices

Description
Fix svd and qr for empty left or right indices, which previously errored. For example for svd, if the right indices are empty, it puts all of the indices of the input ITensor onto the U tensor, and the V tensor only has one Index shared with S.
This helps fix a bug in a variety of MPO functions like orthogonalize, truncate, contract, and apply which failed when there were no link indices.
Inspired by the ITensor Discourse question: https://itensor.discourse.group/t/apply-mpo-to-mps-that-changes-quantum-number/143
Minimal demonstration of new behavior
julia> using ITensors

julia> i, j = Index.(2, ("i", "j"))
((dim=2|id=533|"i"), (dim=2|id=925|"j"))

julia> A = randomITensor(i, j);

julia> U, S, V = svd(A, (i, j));

julia> inds(U)
((dim=2|id=533|"i"), (dim=2|id=925|"j"), (dim=1|id=994|"Link,u"))

julia> inds(S)
((dim=1|id=994|"Link,u"), (dim=1|id=525|"Link,v"))

julia> inds(V)
((dim=1|id=525|"Link,v"),)

julia> norm(A), norm(S)
(1.6926348501663182, 1.692634850166318)

and for a scalar ITensor:
julia> A = ITensor(3.5)
ITensor ord=0
NDTensors.Dense{Float64, Vector{Float64}}

julia> U, S, V = svd(A, ());

julia> inds(U)
((dim=1|id=974|"Link,u"),)

julia> inds(S)
((dim=1|id=974|"Link,u"), (dim=1|id=6|"Link,v"))

julia> inds(V)
((dim=1|id=6|"Link,v"),)

julia> norm(A), norm(S)
(3.5, 3.5)

But it still errors if you don't input any indices, which for now is left undefined:
julia> svd(A)
ERROR: Must specify indices in `svd`
Stacktrace:
 [1] error(s::String)
   @ Base ./error.jl:33
 [2] svd(A::ITensor; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
   @ ITensors ~/.julia/dev/ITensors/src/decomp.jl:149
 [3] svd(A::ITensor)
   @ ITensors ~/.julia/dev/ITensors/src/decomp.jl:149
 [4] top-level scope
   @ REPL[18]:1

How Has This Been Tested?
Tests for svd, qr, factorize, and a variety of MPO functions have been added.
Checklist:

[x] My code follows the style guidelines of this project. Please run using JuliaFormatter; format(".") in the base directory of the repository (~/.julia/dev/ITensors) to format your code according to our style guidelines.
[x] I have performed a self-review of my own code.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] I have added tests that verify the behavior of the changes I made.
[x] I have made corresponding changes to the documentation.
[x] My changes generate no new warnings.
[x] Any dependent changes have been merged and published in downstream modules.

@dylex the GPU Jenkins test have been failing recently, I see an error "The following signatures couldn't be verified because the public key is not available: NO_PUBKEY [...]". Do you know what's going on there?

Glad to see this.
Related to that same forum issue, I’ve been investigating a lot yesterday and today how to fix the AutoMPO issue in that question and maybe along the way also switch to a triangular form for the QN case. I’ll see if I can pull that off … need to do it eventually.

Those would both be great changes! A related change would be outputting the splitblocks representation by default.

Looks like nvidia updated their repo key, requiring an update to the base image.  Should be better now.

Codecov Report

Merging #917 (07b978f) into main (40fc8de) will increase coverage by 0.21%.
The diff coverage is 88.67%.

@@            Coverage Diff             @@
##             main     #917      +/-   ##
==========================================
+ Coverage   75.51%   75.73%   +0.21%
==========================================
  Files          76       76
  Lines        8053     8146      +93
==========================================
+ Hits         6081     6169      +88
- Misses       1972     1977       +5

Impacted Files
Coverage Δ

src/mps/abstractmps.jl
84.12% <0.00%> (-0.36%)
:arrow_down:

src/physics/sitetype.jl
90.65% <ø> (ø)

src/qn/qnindexset.jl
100.00% <ø> (ø)

src/index.jl
73.54% <50.00%> (+0.03%)
:arrow_up:

src/itensor.jl
86.26% <50.00%> (+0.03%)
:arrow_up:

src/qn/qnitensor.jl
84.82% <81.81%> (-0.25%)
:arrow_down:

src/mps/dmrg.jl
84.29% <85.71%> (ø)

src/indexset.jl
84.29% <90.00%> (+0.12%)
:arrow_up:

src/qn/qn.jl
90.14% <92.85%> (+0.19%)
:arrow_up:

src/qn/qnindex.jl
73.70% <95.00%> (+2.27%)
:arrow_up:

... and 6 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 ece285d...07b978f. Read the comment docs.


Multiple Views?

Hi,
Currently building a site with quite a few different view types, and wondering what the best structure would be for some of the 'unique' views to inherit a common set of events.
Wondering if adding multiple namespaces is a good solve?
Something like this (note the data-namespace attribute)...

Which would load both the 'common' view js (headers, sliders, etc), and also load the 'maps' events.
and another page could have

And in the Views, something like this:
let CommonView = Barba.BaseView.extend({

    namespace: 'common',

    onEnter: function() {

    },

    onEnterCompleted: function() {
        // init common page js
    },

    onLeave: function() {
      // destroy common page js

    },

    onLeaveCompleted: function() {

    },

});

let MapsView = Barba.BaseView.extend({

    namespace: 'maps',

    onEnter: function() {

    },

    onEnterCompleted: function() {
        // init maps js
    },

    onLeave: function() {
      // destroy maps js

    },

    onLeaveCompleted: function() {

    },

});

let HomepageView = Barba.BaseView.extend({

    namespace: 'homepage',

    onEnter: function() {

    },

    onEnterCompleted: function() {
        // init hompage js
    },

    onLeave: function() {
      // destroy homepage js

    },

    onLeaveCompleted: function() {

    },

});

or is there a better/recommended structure to achieve something like this?

Hi @samburgers,
Due to the way Barba parse DOM response (https://github.com/luruke/barba.js/blob/master/src/Pjax/Dom.js#L110-L126), you can't have multiple namespaces.
But you can keep single namespaces for your views and write common elements logics in their own files :
var Slider = {
  init: function () {
    Barba.Dispatcher.on('initStateChange', this.reset.bind(this));
    Barba.Dispatcher.on('newPageReady', this.setup.bind(this));
  },

  reset: function() {
    // reset sliders
  },

  setup: function(cs, ps, container) {
    // setup sliders in the new container
    // example :
    $(container).find('.sliders').each(function(element) {
      element.startSlider()
    })
  }
}

I generally use something like OOP for what you want to achieve, the main idea is to extend your own BaseView you write here CommonView:
let MapsView = CommonView.extend({

    namespace: 'maps',

    onEnter: function() {
        // init maps js

        // do not forget to call parent method
        CommonView.onEnter();
    },

    onEnterCompleted: function() {
        // init maps js

        // do not forget to call parent method
        CommonView.onEnterCompleted();
    },

    onLeave: function() {
        // destroy maps js

        // do not forget to call parent method
        CommonView.onLeave();
    },

    onLeaveCompleted: function() {
        // do not forget to call parent method
        CommonView.onLeaveCompleted();
    },

});

If you do not need to override a method, don't redefine it, simple.

@Djules, note that with your great approach, you can't deal with this.container or this.namespace because it's the child view that has correct data.
So it would be interesting to call common view methods with child view scope:
let HomeView = CommonView.extend({
    namespace: 'home',

    onEnter: function() {
        CommonView.onEnter.apply(this)

        // doing some other things...
    }
}

let CommonView = Barba.BaseView.extend({
    namespace: 'common',

    onEnter: function() {
        // let's do something common in all views except 'maps'
        // for example: instantiate parallax element

        if (this.namespace !== "maps") {
            let elements = this.container.querySelectorAll('[data-parallax]')
            if (elements) {
                // ...
            }
        }
    }
}


Demo site not online.

Site preview isn't available. please fix

Fixed :+1: thanks for reporting it!


Recalculate style / reflow when executing Skate

On skate version 0.9.0, when executing the skate javascript a reflow / recalculate style event occurs.
This might be due to the style element that's appended to the document, though I'm not 100% sure.

I think you're right in that it's because of that. That's one of the reasons that was removed from that minor dev version. From 0.10 on, style elements are no longer added to the DOM. It now uses something similar to how Polymer handles FOUC by adding / removing attributes on the element.
I'll leave this open until we can confirm that this is not happening in 0.10+.

I can't reproduce this in later versions so I'll close for now. If this happens in versions that aren't doing that silly style insertion then please reopen. Thanks!


Changed Ubuntu 21.10 to Ubuntu 22.04 LTS

Changed Ubuntu 21.10 to Ubuntu 22.04 LTS

Are all extension already available?

This change makes docker compose build --no-cache fail
Even pruned my docker fully with docker system prune -a and failed with the blow reverting the commit locally it builds fine on 8.1
#0 34.45 Reading package lists...
#0 34.97 Reading package lists...
#0 35.45 Building dependency tree...
#0 35.56 Reading state information...
#0 36.11 E: Unable to locate package php8.1-cli
#0 36.11 E: Couldn't find any package by glob 'php8.1-cli'
#0 36.11 E: Couldn't find any package by regex 'php8.1-cli'
#0 36.11 E: Unable to locate package php8.1-dev
#0 36.11 E: Couldn't find any package by glob 'php8.1-dev'
#0 36.11 E: Couldn't find any package by regex 'php8.1-dev'
#0 36.11 E: Unable to locate package php8.1-pgsql
#0 36.11 E: Couldn't find any package by glob 'php8.1-pgsql'
#0 36.11 E: Couldn't find any package by regex 'php8.1-pgsql'
#0 36.11 E: Unable to locate package php8.1-sqlite3
#0 36.11 E: Couldn't find any package by glob 'php8.1-sqlite3'
#0 36.11 E: Couldn't find any package by regex 'php8.1-sqlite3'
#0 36.11 E: Unable to locate package php8.1-gd
#0 36.11 E: Couldn't find any package by glob 'php8.1-gd'
#0 36.11 E: Couldn't find any package by regex 'php8.1-gd'
#0 36.11 E: Unable to locate package php8.1-curl
#0 36.11 E: Couldn't find any package by glob 'php8.1-curl'
#0 36.11 E: Couldn't find any package by regex 'php8.1-curl'
#0 36.11 E: Unable to locate package php8.1-imap
#0 36.11 E: Couldn't find any package by glob 'php8.1-imap'
#0 36.11 E: Couldn't find any package by regex 'php8.1-imap'
#0 36.11 E: Unable to locate package php8.1-mysql
#0 36.11 E: Couldn't find any package by glob 'php8.1-mysql'
#0 36.11 E: Couldn't find any package by regex 'php8.1-mysql'
#0 36.11 E: Unable to locate package php8.1-mbstring
#0 36.11 E: Couldn't find any package by glob 'php8.1-mbstring'
#0 36.11 E: Couldn't find any package by regex 'php8.1-mbstring'
#0 36.11 E: Unable to locate package php8.1-xml
#0 36.11 E: Couldn't find any package by glob 'php8.1-xml'
#0 36.11 E: Couldn't find any package by regex 'php8.1-xml'
#0 36.11 E: Unable to locate package php8.1-zip
#0 36.11 E: Couldn't find any package by glob 'php8.1-zip'
#0 36.11 E: Couldn't find any package by regex 'php8.1-zip'
#0 36.11 E: Unable to locate package php8.1-bcmath
#0 36.11 E: Couldn't find any package by glob 'php8.1-bcmath'
#0 36.11 E: Couldn't find any package by regex 'php8.1-bcmath'
#0 36.11 E: Unable to locate package php8.1-soap
#0 36.11 E: Couldn't find any package by glob 'php8.1-soap'
#0 36.11 E: Couldn't find any package by regex 'php8.1-soap'
#0 36.11 E: Unable to locate package php8.1-intl
#0 36.11 E: Couldn't find any package by glob 'php8.1-intl'
#0 36.11 E: Couldn't find any package by regex 'php8.1-intl'
#0 36.11 E: Unable to locate package php8.1-readline
#0 36.11 E: Couldn't find any package by glob 'php8.1-readline'
#0 36.11 E: Couldn't find any package by regex 'php8.1-readline'
#0 36.11 E: Unable to locate package php8.1-ldap
#0 36.11 E: Couldn't find any package by glob 'php8.1-ldap'
#0 36.11 E: Couldn't find any package by regex 'php8.1-ldap'
#0 36.11 E: Unable to locate package php8.1-msgpack
#0 36.11 E: Couldn't find any package by glob 'php8.1-msgpack'
#0 36.11 E: Couldn't find any package by regex 'php8.1-msgpack'
#0 36.11 E: Unable to locate package php8.1-igbinary
#0 36.11 E: Couldn't find any package by glob 'php8.1-igbinary'
#0 36.11 E: Couldn't find any package by regex 'php8.1-igbinary'
#0 36.11 E: Unable to locate package php8.1-redis
#0 36.11 E: Couldn't find any package by glob 'php8.1-redis'
#0 36.11 E: Couldn't find any package by regex 'php8.1-redis'
#0 36.11 E: Unable to locate package php8.1-swoole
#0 36.11 E: Couldn't find any package by glob 'php8.1-swoole'
#0 36.11 E: Couldn't find any package by regex 'php8.1-swoole'
#0 36.11 E: Unable to locate package php8.1-memcached
#0 36.11 E: Couldn't find any package by glob 'php8.1-memcached'
#0 36.11 E: Couldn't find any package by regex 'php8.1-memcached'
#0 36.11 E: Unable to locate package php8.1-pcov
#0 36.11 E: Couldn't find any package by glob 'php8.1-pcov'
#0 36.11 E: Couldn't find any package by regex 'php8.1-pcov'
#0 36.11 E: Unable to locate package php8.1-xdebug
#0 36.11 E: Couldn't find any package by glob 'php8.1-xdebug'
#0 36.11 E: Couldn't find any package by regex 'php8.1-xdebug'

#398 PR submitted after this PR
#398 PR changed from official of Postgresql repo to PPA  and PPA repo depends on libssl1 (OpenSSL 1)
we should only uses official repo for  Postgresql

This change makes docker compose build --no-cache fail
Even pruned my docker fully with docker system prune -a and failed with the blow reverting the commit locally it builds fine on 8.1
#0 34.45 Reading package lists...
#0 34.97 Reading package lists...
#0 35.45 Building dependency tree...
#0 35.56 Reading state information...
#0 36.11 E: Unable to locate package php8.1-cli
#0 36.11 E: Couldn't find any package by glob 'php8.1-cli'
#0 36.11 E: Couldn't find any package by regex 'php8.1-cli'
#0 36.11 E: Unable to locate package php8.1-dev
#0 36.11 E: Couldn't find any package by glob 'php8.1-dev'
#0 36.11 E: Couldn't find any package by regex 'php8.1-dev'
#0 36.11 E: Unable to locate package php8.1-pgsql
#0 36.11 E: Couldn't find any package by glob 'php8.1-pgsql'
#0 36.11 E: Couldn't find any package by regex 'php8.1-pgsql'
#0 36.11 E: Unable to locate package php8.1-sqlite3
#0 36.11 E: Couldn't find any package by glob 'php8.1-sqlite3'
#0 36.11 E: Couldn't find any package by regex 'php8.1-sqlite3'
#0 36.11 E: Unable to locate package php8.1-gd
#0 36.11 E: Couldn't find any package by glob 'php8.1-gd'
#0 36.11 E: Couldn't find any package by regex 'php8.1-gd'
#0 36.11 E: Unable to locate package php8.1-curl
#0 36.11 E: Couldn't find any package by glob 'php8.1-curl'
#0 36.11 E: Couldn't find any package by regex 'php8.1-curl'
#0 36.11 E: Unable to locate package php8.1-imap
#0 36.11 E: Couldn't find any package by glob 'php8.1-imap'
#0 36.11 E: Couldn't find any package by regex 'php8.1-imap'
#0 36.11 E: Unable to locate package php8.1-mysql
#0 36.11 E: Couldn't find any package by glob 'php8.1-mysql'
#0 36.11 E: Couldn't find any package by regex 'php8.1-mysql'
#0 36.11 E: Unable to locate package php8.1-mbstring
#0 36.11 E: Couldn't find any package by glob 'php8.1-mbstring'
#0 36.11 E: Couldn't find any package by regex 'php8.1-mbstring'
#0 36.11 E: Unable to locate package php8.1-xml
#0 36.11 E: Couldn't find any package by glob 'php8.1-xml'
#0 36.11 E: Couldn't find any package by regex 'php8.1-xml'
#0 36.11 E: Unable to locate package php8.1-zip
#0 36.11 E: Couldn't find any package by glob 'php8.1-zip'
#0 36.11 E: Couldn't find any package by regex 'php8.1-zip'
#0 36.11 E: Unable to locate package php8.1-bcmath
#0 36.11 E: Couldn't find any package by glob 'php8.1-bcmath'
#0 36.11 E: Couldn't find any package by regex 'php8.1-bcmath'
#0 36.11 E: Unable to locate package php8.1-soap
#0 36.11 E: Couldn't find any package by glob 'php8.1-soap'
#0 36.11 E: Couldn't find any package by regex 'php8.1-soap'
#0 36.11 E: Unable to locate package php8.1-intl
#0 36.11 E: Couldn't find any package by glob 'php8.1-intl'
#0 36.11 E: Couldn't find any package by regex 'php8.1-intl'
#0 36.11 E: Unable to locate package php8.1-readline
#0 36.11 E: Couldn't find any package by glob 'php8.1-readline'
#0 36.11 E: Couldn't find any package by regex 'php8.1-readline'
#0 36.11 E: Unable to locate package php8.1-ldap
#0 36.11 E: Couldn't find any package by glob 'php8.1-ldap'
#0 36.11 E: Couldn't find any package by regex 'php8.1-ldap'
#0 36.11 E: Unable to locate package php8.1-msgpack
#0 36.11 E: Couldn't find any package by glob 'php8.1-msgpack'
#0 36.11 E: Couldn't find any package by regex 'php8.1-msgpack'
#0 36.11 E: Unable to locate package php8.1-igbinary
#0 36.11 E: Couldn't find any package by glob 'php8.1-igbinary'
#0 36.11 E: Couldn't find any package by regex 'php8.1-igbinary'
#0 36.11 E: Unable to locate package php8.1-redis
#0 36.11 E: Couldn't find any package by glob 'php8.1-redis'
#0 36.11 E: Couldn't find any package by regex 'php8.1-redis'
#0 36.11 E: Unable to locate package php8.1-swoole
#0 36.11 E: Couldn't find any package by glob 'php8.1-swoole'
#0 36.11 E: Couldn't find any package by regex 'php8.1-swoole'
#0 36.11 E: Unable to locate package php8.1-memcached
#0 36.11 E: Couldn't find any package by glob 'php8.1-memcached'
#0 36.11 E: Couldn't find any package by regex 'php8.1-memcached'
#0 36.11 E: Unable to locate package php8.1-pcov
#0 36.11 E: Couldn't find any package by glob 'php8.1-pcov'
#0 36.11 E: Couldn't find any package by regex 'php8.1-pcov'
#0 36.11 E: Unable to locate package php8.1-xdebug
#0 36.11 E: Couldn't find any package by glob 'php8.1-xdebug'
#0 36.11 E: Couldn't find any package by regex 'php8.1-xdebug'

No problems for PHP installation
Rebuild docker via sail please
./vendor/bin/sail build --no-cache

There is problem with openssl and  e.g. file_get_contents on Ubuntu 22.04. I don't know if this is already fixed but when I checked about 3 days ago it was not possible to download vendors via composer for example. https://askubuntu.com/questions/1405100/i-have-problem-with-new-ubuntu-22-04-and-openssl-3-0-2

I can run migrations and composer just fine within Sail for PHP 8.1 on a fresh Sail + Laravel installation.


Error "Unable to connect MessageBus" occurs sometimes when deploying backward compose file with mqtt bus

🐞 Bug Report
Affected Services [REQUIRED]

 The issue is located in: Data
Is this a regression?

 No
Description and Minimal Reproduction [REQUIRED]
Run scenarios for backward compatibility test on Jenkins. See scenarios on edgex-taf-pipeline #108
Can't reproduce on my local machine so far.
This issue does not happen every time.
Attached backward compose files and logs.
backward-compose.zip
mqtt-bus-core-data.log
mqtt-broker.log
🔥 Exception or Error

Unable to connect MessageBus: %!w(mqtt.OperationErr={Connect network Error : dial tcp <IP_ADDRESS>:1883: connect: connection refused})"

🌍  Your Environment
Deployment Environment:
EdgeX Version [REQUIRED]:
Anything else relevant?

Can you try setting the EDGEX_STARTUP_DURATION: "120" on core data to extend bootstrapping duration? Default is 60s.

Added the EDGEX_STARTUP_DURATION: "120" on all core-services and support-services. Still got the issue.


It should (?) be easier to enable/disable IPv6 for Mininet interfaces

I append
"net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1"
to sysctl.conf, then reboot.
However, host in mininet still has inet6, how to disable ipv6?

@lantz
If I disable IPv6 in VM, can I re-enable it on some hosts of mininet using sysctl?


Mock OpenAI and Milvus server for test_vectordatabase and test_vectordata_host

Abstract
As it is expensive to call OpenAI functions and communicate with milvus server in tests, this PR is trying to remove dependency on OpenAI and milvus server for the tests:test_vectordatabase.py and test_vectordatabase_host.py
After this PR, we will continue to remove dependency on OpenAI and milvus server in other tests.

BTW, this means that the test battery needs to be run with pytest test, specifying the directory, instead of just pytest. I did already implement that in the CI yaml, here: https://github.com/biocypher/biochatter/blob/e7bc13ab087b3401867bdcf49a912ac8acaee96a/.github/workflows/ci.yaml#L60