Fedora Test Suite Authentication Version

Fedora Test Suite uses new parameters when running. -h is required, -u -p not required if server does not have authentication.
New tests have been added.

Unless there is a reason for the left-justified formatting, I would prefer that this PR fix that issue before being merged.
The other topics:

test order
refactoring auth() etc

...can wait until later.


Can you add a demo with ASP.NET Core Web App that calls a ASP.NET Core Web API?

Reading about changing web.config looks like a bit legacy, these days.
.NET Core 3.1 is LTS and we're moving to .NET 5...

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

ID: 469d2731-66dd-4490-89bd-4a36f893e7be
Version Independent ID: 11f4ae00-d1e9-1355-a0c3-2435f90b17d8
Content: Tutorial: Grant access to an ASP.NET web API - Azure AD B2C
Content Source: articles/active-directory-b2c/tutorial-web-api-dotnet.md
Service: active-directory
Sub-service: b2c
GitHub Login: @msmimart
Microsoft Alias: mimart

@ncarandini
Thanks for your feedback! I have sent your idea to the content author - @msmimart can we add something like this?

I create a work item for this and have passed your feedback on to @msmimart .

Wouldn't be better to keep it open until done? Anyway, thanks for your kind feedback.

@ncarandini  found this other article which helped me -  https://docs.microsoft.com/en-us/samples/azure-samples/active-directory-b2c-dotnetcore-webapp/an-aspnet-core-web-app-with-azure-ad-b2c/
In addition to the instructions, ensure to change the AzureAdB2CInstance within AzureAdB2COptions.cs  to your tenant's name suffixed with /tfp.

@RaisinBread42 Thanks, I'll give a look.


Multiple POST endpoints bug

Hi,
First of all thank you for duct it's a very simple and useful framework for structuring Clojure webapps !
However I run into an issue when trying to assemble multiple endpoints containing at least one POST handler.
I am also using compojure-api for defining handlers and I hope I am using it and duct correctly.
I re-created my issue with a minimal repo:
https://github.com/lerouxrgd/debug-duct
Basically I created it like this:
lein new duct debug-duct

Adding compojure-api dependency to project.clj
[metosin/compojure-api "0.23.1"]

First endpoint plus.clj
(defn plus-endpoint [sys]
  (api
   (context* "" []
             (POST* "/plus" []
                    :return {:total Long}
                    :body-params [x :- Long, y :- Long]
                    :summary "x+y with body-parameters"
                    (ok {:total (+ x y)})))))

Second endpoint minus.clj
(defn minus-endpoint [sys]
  (api
   (context* "" []
             (POST* "/minus" []
                    :return {:total Long}
                    :body-params [x :- Long, y :- Long]
                    :summary "x-y with body-parameters"
                    (ok {:total (- x y)})))))

Combining them in system.clj
(defn new-system [config]
  (let [config (meta-merge base-config config)]
    (-> (component/system-map
         :app  (handler-component (:app config))
         :plus (endpoint-component plus-endpoint)
         :minus (endpoint-component minus-endpoint)
         :http (jetty-server (:http config)))
        (component/system-using
         {:http [:app]
          :app  [:plus :minus]}))))

Starting it at the repl
lein repl
(go)

And finally, the bug when trying to test it:
curl -X POST --header "Content-Type: application/json" --header "Accept: application/json" -d "{
  \"y\": 1,
  \"x\": 2
}" "http://localhost:3000/plus"

Gives me
{"errors":"(not (map? nil))"}

I tried to remove one endpoint like this:
(defn new-system [config]
  (let [config (meta-merge base-config config)]
    (-> (component/system-map
         :app  (handler-component (:app config))
         :plus (endpoint-component plus-endpoint)
         #_:minus #_(endpoint-component minus-endpoint)
         :http (jetty-server (:http config)))
        (component/system-using
         {:http [:app]
          :app  [:plus #_:minus]}))))

Restarting it at the REPL
(reset)

Now when sending the same POST request with curl I get the expected response:
{"total":3}

After some debugging I realised that I get a "(not (map? nil))" because :body is actually empty; which I confirmed by trying to slurp its #object[org.eclipse.jetty.server.HttpInputOverHTTP 0x5c8389 "HttpInputOverHTTP@5c8389"].
However I am not sure to understand why the body input stream gets consummed somewhere before my handler.
Is it a wrong manipulation from me, or is there something fishy with multiple endpoints/handlers and POST body input stream ?

I seems to be fixed in the latest versions, sorry for the troubles.

Sorry for the late reply. This sounds more like a problem with compojure-api than Duct. By "fixed in the latest versions", do you mean the latest versions of compojure-api?

I am using [metosin/compojure-api "0.23.1"] in both case.
I just updated [duct "0.4.5"] --> [duct "0.5.7"]
Quickly checking the code (might be wrong), I suspect something around here ?
https://github.com/weavejester/duct/blob/0.4.5/duct/src/duct/component/handler.clj#L5
https://github.com/weavejester/duct/blob/0.5.7/duct/src/duct/component/handler.clj#L5

The difference between the two code bases is whether or not the routes have a specific ordering. I can't think why that would make a difference to compojure-api, but I don't know a lot about the internals of that project.

Actually I realised that [duct "0.5.7"] fixed it for my original project (not sure why...), but in the debug repo (https://github.com/lerouxrgd/debug-duct) I still have only POST to /minus working (POST to /plus gives me the empty map error message).
I'll try to look more into compojure-api internals.


Default text colour "hidden" when using standard dark colour for vertical section

Usually, text will invert when using the darkest (strong) section background colour.  This webpart does not, which keeps the text colour the same as the background colour making it invisible.  Can this invert (change to white) automatically, or is the webpart colours customisable?

Sorry, way out of my depth - but found this:  https://learn.microsoft.com/en-us/sharepoint/dev/spfx/web-parts/guidance/supporting-section-backgrounds

I will try and take a look, but I can't promise anything as I'm not a SharePoint dev or even a web developer, so slightly out of my depth as well on this one.

Thanks!  I've noticed that the header text DOES work correctly, and I have been able to find at least some of the elements required to make it work....

I've just pushed an updated version which should fix the themes issue. Please try it and let me know.

Thats it!  Working well now, thank-you very much for correcting that.


The result of RegExp comparison can be different

Need to mention somewhere in the documentation or fix the comparison for the RegExp class
Dart SDK version: 2.17.0 (stable) (Mon May 9 10:36:47 2022 +0200) on "macos_arm64"

void main() {
  final firstRegexp = _createFirstRegExp();

  assert(firstRegexp == _createFirstRegExp());

  for (var i = 0; i < 300; i++) {
    RegExp('$i');
  }

  assert(firstRegexp == _createFirstRegExp());
}

RegExp _createFirstRegExp() => RegExp(r'0');

dart --enable-asserts lib/main.dart
Unhandled exception:
'package:bug/main.dart': Failed assertion: line 10 pos 10: 'firstRegexp == _createFirstRegExp()': is not true.
#0      _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:51:61)
#1      _AssertionError._throwNew (dart:core-patch/errors_patch.dart:40:5)
#2      main (package:bug/main.dart:10:10)
#3      _delayEntrypointInvocation.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:297:19)
#4      _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:192:12)

There is no special equality for RegExp objects, the probably do not even override opertor== or hashCode.
The result would be the same if you used identical instead of ==.
What you are seeing is the effect of caching.
The RegExp constructor is a factory constructor, so it doesn't have to create a new object on each invocation.
And in some implementations it sometimes doesn't. If you create multiple equivalent RegExp objects (same pattern string and flags) quickly after each other, the VM reuses the previously created object instead of creating a new one.
We can document this. We probably should, since the constructor documentation right now say

Constructs a regular expression.

and it doesn't always construct a new one.
The documentation can be as simple as.

This constructor is allowed, but not required, to return a previously created [RegExp] object
instead of creating a new one.

Maybe add:

Since `RegExp` objects are defined entirely in terms of their
pattern and flags, multiple invocations with the same pattern and flags
can safely return the same object.


Developing Mockups

7 hours
Creating detailed visual designs for the app's screens, and incorporating branding, typography, and color schemes.

〰


new: Added a couple of useful links

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (9946bd6) 100.00% compared to head (2978294) 100.00%.
Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff            @@
##              main        #5   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            3         3
  Lines          135       135
=========================================
  Hits           135       135

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Fix #2491: Moved Logger out of QueryContext.

Also more DRYing up of query components after DI change.

@maumar

:shipit:


AggTable is faulty in this document

Search before asking

[X] I had searched in the issues and found no similar document requirement.

Description

As shown in the figure above, the comma should be removed from the mark。
Are you willing to submit a PR?

[X] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

仅是 demo 作为参考而已

OK


Support for authz messages apart from StakeAuthorization

Is there support for other authz messages? If yes how do I go about doing that? Since only createTxMsgStakeAuthorization is available in the package. For e.g if I wanted to give a GenericAuthorization how can I do that? Thanks!

Talk to a EVMOS Dev on the Live support page so that your issue can be looked into. CLICK HERE

Talk to a EVMOS Dev on the Live support page so that your issue can be looked into. CLICK HERE


Add Index2d

@tqchen

please fix my other comment, and make sure the test pass before merge

Another note is we want to be careful about naming, look out for existing names in say numpy and come up with an intuitive name,

array indexing is always implicit in numpy.
We can add this to getitem

index2d seems to be not a very precise name for this. Maybe consider declare as a internal function, and overload getitem instead

I'll overload ndarray getitem. but index2d needs to be explicit because getitem doesn't work for symbolic

any reason why cann't we overload getitem in symbolic case?

Because it's used for indexing out put
Overloading for indexing array is confusing
Tianqi Chen<EMAIL_ADDRESS>周三下午6:09写道：

any reason why cann't we overload getitem in symbolic case?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/dmlc/mxnet/pull/4702#issuecomment-273661825, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAiudFNd51mjomTTEgbtf-a10gxkvm05ks5rTsXXgaJpZM4LmJTh
.

I'll merge this first.
We need more discussion on whether we want to support advanced slicing for getitem. There are potential confusions from slicing by value vs by reference.

Would "take_index2d" be a better name? I also find index2d is not very precise.


Dynamically generate CHT roots on a full client

Currently, CHT roots are only generated on a light client, but CHT roots also need to be generated on full clients so that proofs can be sent to light clients.

Currently, CHT roots are only generated on a light client, but CHT roots also need to be generated on full clients so that proofs can be sent to light clients.

This isn't actually true - full client is already able to serve CHT-based proof requests. See how ProofProvider::header_proof() works. I think this PR is more about generating CHT roots for fn build_light_sync_state().

@svyatonik Ah ok, that's good to know.

bot merge

Part of https://github.com/paritytech/substrate/issues/6804

bot merge


Custom key dimension

So far the key dimension for identifying each sample in the TileDB arrays is assumed to be the first. This PR relaxes this constraint by allowing any dimension to be used as the key dimension.
This is currently a draft. TODO items:

Augment unit tests.
Naming: the code so far refers to "rows", which is not a great name especially if the key dimension is not the first. The current PR introduces tentatively the term "key" dimension and derivatives (e.g. key_dim, key_dim_index) to refer to the identifying dimension. Other candidates could be id_dim or sample_id_dim. @georgeSkoumas @ktsitsi any preference or other suggestions?

You have a point here @gsakkis. For your suggestions personally I prefer key_dim as it is easy interpretable. Also for the rows mainly here you are right we don't utilise rows in the general case are hyperplanes. However I do not know if we want to use this scientific notation. I do not like id as it might confuse someone to think that is a special key dimension when the point is to generalise as much as possible.

I do not like id as it might confuse someone to think that is a special key dimension when the point is to generalise as much as possible.

Agreed, plus id implies uniqueness, which is currently true but may not be if we later allow the key dimension to not be unique (i.e. if multiple rows/hyperplanes can have the same key).


Fix/sl 2191/separate config concept

Issue: https://stoplightio.atlassian.net/browse/SL-2191
Moved config out of components and made it partial.
The reasoning is that config logically should be completely optional. We cannot at every step (we have 4!) always decide what should be a value of parameters. However we need complete config at the end, when it is consumed by prism. This is now reflected in types. Most of configs are made partial and only the initial one (hardcoded inside prism) has all values required.
The original problem was caused by getHttpConfigFromRequest. When user did not forced __mock=true|false through query parameters the function was returning some default mock value anyway because it was enforced by types. No when user does not set __mock on request the config does not contain mock property -> so it is not overwriting values set in previous steps (e.g. via -m cli param).

My brain is stuck in Spectral today, I can't think. I have no immediate concerns with the code, but I defer to @XVincentX for this review.


Update ServiceFabric packages to latest public NuGet package

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: lucas-burdell-karmak sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

@lucas-burdell-karmak Could you tell me what's the intention of this change? Is it because something is not working for you?

@yantang-msft I am unable to add AppInsights to an existing ServiceFabric application that is using the latest ServiceFabric packages (adding AI using the "Add AppInsights Telemetry" context menu option on Connected Services). The AI installer says something like "NuGet restore failed, rolling back changes" and then fails to add AppInsights.

What's the exact error message? Are you able to resolve that by explicitly referencing the package in your project?
We have seen couple cases regarding nuget restore failure, e.g., https://github.com/Microsoft/ApplicationInsights-ServiceFabric/issues/79. That's unfortunately a limitation of nuget itself. But it could be different in your case.

Here's the error message in a test project:

Removing all existing ServiceFabric and AppInsights NuGet packages allows me to successfully install AppInsights. I will try referencing this project directly to confirm that the issue involves the new ServiceFabric packages.

@lucas-burdell-karmak This error message is too short for figuring out the real problem... It's good you find the workaround. And I confirm I can repro this issue too. Basically it I install this AI.SF package first and then goes to this UI, it will fail.
@gardnerjr Do you know who owns this UI and can take a look?

If that's what the ui shows, then that's the exact error message we got from the provider that installed the packages (in this case the service fabric extension to AI?)  this generally means that some dependency was missing or there were version mismatches somewhere?
the extension might be trying to install an older version than you installed manually so the versions don't matchup?
@vutran01 could maybe take a look?

I think this error message is trimmed. For other cases we see that failed to restore package, we see this kind of message Error	NU1107	Version conflict detected for Microsoft.ServiceFabric.Diagnostics.Internal. Install/reference Microsoft.ServiceFabric.Diagnostics.Internal 3.2.176 directly to project Web1 to resolve this issue.   Web1 -> Microsoft.ServiceFabric.AspNetCore.Kestrel 3.2.176 -> Microsoft.ServiceFabric.AspNetCore.Abstractions 3.2.176 -> Microsoft.ServiceFabric.Services 3.2.176 -> Microsoft.ServiceFabric.Diagnostics.Internal (= 3.2.176)   Web1 -> Microsoft.ApplicationInsights.ServiceFabric.Native 2.1.1 -> Microsoft.ServiceFabric.Services, which gives us the exact information where the conflict is.
@vutran01 Can you see if you can get more information under the cover?

The extension is probably trying to install an older appinsights nuget version than the one you already installed. What's your scenario? You could try to add appinsights first and then update to the latest ServiceFabric packages. You could check the output window for any additional errors but from the bitmap there doesn't seem to be any.

@vutran01 You're right, this happens if I install AI.SF first (which pulls AI 2.4), and the extension is trying to install 2.3.
Yes, there is a workaround, but the extension should just handle this basic case. And that's one of the core functionality of nuget, i.e., resolve the version automatically.

"The extension" here is not directly the application insights tools though.  There's a ServiceFabric extension to the application insights extension that we ask "are your packages installed?" and it must be saying "no", so we tell it to install itself, which then fails since it is already installed.
the fix here appears to be many things:

the service fabric provider is improperly checking for if it is already installed/can be updated.
the service fabric provider should update to a newer version of its own nuget packages

@BigMorty Do you know who can help with the issue in SF tool?

@dbreshears - Any idea on this issue?

Adding @ravipal who may have some insight into this.

As part of "Add AppInsights Telemetry" SF tools extension installs the 2.3 version of Microsoft.ApplicationInsights. How is the service project getting the 2.4 version of this nuget package before invoking the "Add AppInsights Telemetry"?

@ravipal By installing the AI.SF nuget, which depends on AI 2.4.

Why is AI.SF nuget package added to service project? May be I don't get the overall scenario. What needs to happen on SF tooling side to fix this? Should we update to use 2.4 version of AI? This update will address only the future version of SF Tools extension, users using old version of the tooling will still run into this issue.

Customer added this package manually.
Since the AI 2.4 package is already there, ideally the enablement scenario should pass instead of pop up the error dialog and roll back changes.
According to this comment, this error is thrown from SF, but I could be wrong.

If AI package is already installed, we don't show the "Add AppInsights Telemetry" option.

This is for the project that didn't have AI nuget package installed.

@ravipal In this particular case, the "AI" package is not installed directly, but a dependency of AI.SF package, and the "Add AppInsights Telemetry" option is there.
So I believe this API _packageInstallerServices.IsPackageInstalled(hierarchy.DteProject, "Microsoft.ApplicationInsights"); is indeed returning false. However the installation failed for some reason (which looks like we are enforcing installing AI 2.3, instead of 2.3+).

Got it. I will open a bug in SF tooling to address this.

Close this PR as we identified this as a bug in VS extension.

Thank you all for the help!


Crash when renaming the radio Screen Text

I think this is unrelated to #40 , so why i create another issue for that.
While testing things related to the prior issue, i tried, randomly, to rename the screen text and the game crashed with the following log:
https://gist.github.com/vpontin/7edca5eba35975733fb19eac0b295349
Trying to reload the world after this also crash the game with the same log, rendering the world unplayable.
Using:

Minecraft 1.10.2
Forge 1.10.2 b2014
OpenFM 1.9.4 <IP_ADDRESS>

Thanks, doesnt crash anymore! But the screen text doesnt show up anymore.
Before

Now

Is this intended?

Pretty much, yes.  In 1.9+ the TESR changed and became VERY annoying to use and made the way I render text almost not work. Rendering the default text works, but rendering other text gets... interesting.

Okay. Thanks!

the latest build I ran ( a few hours ago) will at least show the first 6 characters of any title you set.

Yeah! Thanks for the fix!

And a build I pushed a few days ago fixes scrolling in 1.9+


ImportError: cannot import name 'Color' from 'colour' (unknown location)

I try the most simple import of color
from colour import Color
c = Color("blue")
and I get this error
ImportError: cannot import name 'Color' from 'colour' (unknown location)

Which version of colour and Python are you using?


[NEW ICON] htmx

Skill Name
htmx
Why?
HTMX is a lightweight and powerful library for creating dynamic web applications with minimal JavaScript. It simplifies the development process by allowing you to update parts of a page dynamically without full-page reloads.
HTMX is designed to be easy to use and integrates seamlessly with existing server-side frameworks. It provides a declarative approach to client-server communication, making it efficient and developer-friendly. With its small footprint, HTMX is quick to learn and easy to add to your projects.
Key advantages of HTMX include:
Minimal JavaScript: HTMX allows you to achieve dynamic behavior with minimal JavaScript code.
Performance: HTMX is lightweight, resulting in fast page loads and responsiveness.
Declarative Syntax: HTMX uses HTML attributes for defining dynamic behavior, making it clear and readable.
Integration: HTMX can be integrated into various server-side frameworks, making it versatile.
Reference Image

Added in e67133b!


Adds the ability to save variable names when minifying

Sometimes names of variables need to keep (for example, when used angularjs objects). This has add to constructor an param to protect variable names.

Thanks for the pull request! I see what you're doing here. I'm going to adjust it slightly though if that's ok. Do you need this merged and released to the NuGet feed soon? Let me know!

Right now I do not need a new version. You can merge it whenever you want

This is now release in v2.1.0 and I'm publishing to NuGet now so it'll be live and installable as a nuget package very soon! Thanks again.

Hi @byte916 , just wanted to give you a heads up that if you're upgrading to v3.0.0, you may need to check that minifyCode is still disabled as I made it the default now. Just use the right constructor (if you're not already) and you're good to go. Cheers.


Replace ThreadSafeDictionaryCache with ConcurrentDictionary

ThreadSafeDictionaryCache was implemented on top of ImmutableDictionary, possibly before ConcurrentDictionary was available, but also for perceived performance gains especially where reading from the cache (as opposed to adding to it) dominates. However, perf testing is showing the ConcurrentDictionary is considerably (30-40%) faster even on read-heavy scenarios, so replacing to use this instead.

:shipit:

Merged


Feat: Add support for utf-8 enconding in render function

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
138

Relevant Lines:
268

💛  - Coveralls


Part number emphasis

Part numbers emphasized with bold font.
Closes #325

Thanks, this is a small thing but does make it easier to skim the documentation while building 👍


Create is firing when it should not: Trying to define a collection which already exists.

Waterline version: ^0.11.11
Node version: 6.9.0
NPM version: v3.10.8
Operating system:osx

I am trying to create a model for an existing database. I have the connection set to migrate safe. However, waterline is still trying to create a table that already exists in my pre-existing database. If I make the tableName a new name, it works fine. The problem seems to be when I try to use existing data in an existing table and then create a waterline model for it.
I believe this is a bug since migrate safe should never be trying to create a table at all right?
I am using waterline without sails.
Waterline is configured like this:
models = [];
fs.readdirSync(HOMEDIR + '/lib/models/waterline').forEach(function(file) {
  models.push(require(HOMEDIR + '/lib/models/waterline/' + file));
});

module.exports = {
  init: function(next) {
    models.forEach(function(model) {
      orm.loadCollection(model);
    });

    orm.initialize(config, function(err, models) {
      if (err) throw err;
      global.models = models.collections;
      global.connections = models.connections;
      next();
    });
  }
};

//And this in my config
localhost: {
      migrate: 'safe',
      adapter: 'postgres',
      database: 'intellinote',
      host: 'localhost',
      user: 'postgres',
      password: '',
      port: 5432
    }

using sails-postgresql by the way. "sails-postgresql": "^0.11.4",
One hypothesis I have is that my model definition does not match my postgresql model exactly. I have tried to do this but maybe I missed something small. Where in the waterline code does it check for model == schema definition? Maybe if I knew that, I could find why this is trying to do a create
Sails user for 3 years. Major production level bug at multi billion company :(
Thanks in advance

Ok, fixed!

Hey @joncodo the migrate setting is actually a model level setting and not a connection level setting. Add it to your models under the tableName property and it should work as expected.

So it needs to be on each model? Your docs seems to say that it should be on the connection level according to this: https://github.com/balderdashy/waterline/blob/0.11.x/example/express/express-example.js
That totally worked! Awesome to know for sure. Is this in the docs somewhere? Maybe I can add this to your docs for you if it does not exist?
@particlebanana you are awesome. Thank you for taking the time to review this! virtual-high-five

Yeah it's on each model. Sails mixes it in to the models automatically when you set it on the config/model.js. That example may be a bit outdated but that defaults was/is being mixed in when the ORM is initialized.

Understood. Thanks!

@joncodo as an aside, in WL 0.13 defaults are mixed in to model settings.  Going forward, the idea is to keep waterline lightweight, but also to make it easier to work with.
If you're using Waterline standalone, you might take a look at Waterline.start(), Waterline.stop(), and Waterline.getModel() in v0.13 -- they'll probably save you some headaches :)

Can Waterline.getModel() be used to get an exposed version of sendNativeQuery? I'm trying to execute a raw SQL statement for the postgres adapter and so far it's not going too well!


fix: update comment during pr describe if already exists

Changes

Added a footer parameter to the remote PR describe command to identify Relgen output.
Updated the logic to check for existing comments and update them if they contain the footer, otherwise create a new comment.

Implementation
The PR enhances the describe command by introducing a footer option, which is used to append a footer to the PR description or comment. If a comment with the same footer already exists, it updates that comment instead of creating a new one.
Other Notes

Minor refactoring in the handling of options in the relgen function.


Package

Hello,
This PR makes a few small changes to convert c3sdb into a package structure, so it can easily be installed with pip. The  pretrained/ directory was moved inside c3sdb/ so the pickled files will be added into the package. A small utility function (pretrained_data()) was added to access these files once the package is installed.
Some of the package metadata could probably be filled in better. Furthermore, I am not very experienced with Python, so feel free to point out mistakes ;-)

I edited some of the metadata items in setup.cfg. My only remaining concern is whether you have tested that the code still works with this installable package structure? I am specifically thinking about this section which is the example for how to perform model inference using the pre-trained parameters. With the pre-trained model parameter files now bundled into the package and accessible via a function, I suggest that you :

test that inference still works, following that example from the README
update that section of the README with a new code example that uses the pretrained_data() function

Hi Dylan,
Thanks for the fast feedback! I did test (once more) the examples, and updated the README.md accordingly. I also modified the installation instructions. Please let me know if you feel anything else needs to be addressed.
Thanks,
Rick


Fix setup test

Coverage decreased (-0.02%) to 84.885% when pulling 427d068f66a1eab805f0d7eaf42c52b21d6e8f12 on joostvanzwieten:fix-setup-test into 065d21969b7227b7e9a0d8a2480be843908dd6fc on nutils:master.


update 1.7.9-alpine on docker hub.

when update this image on docker hub?

@crazy-canux this has been updated. sorry for not being responsive!


could you share the reference_library np?

hello,
thanks for your work. would it be possible to share the ref_library np file that can be used to reproduce the results in the paper.
thanks

I also want to the ref_library file, pls


Development improvements

Mostly looks good. Let's keep lint-trap though

Updated. There are some lint-trap issues

We can also use original synthetic-dom-events after defunctzombie/synthetic-dom-events#8 will be merged

@kuraga feel free to land on master. ill unbreak it.

@kuraga I fixed all the errors, see the latest commit on master.
I didnt fix the warnings, although they are easy to fix, it just means that { foo: 'bar' } becomes
{
  foo: 'bar'
}

lint-trap is enforcing that we dont cheat with one line objects.

Thanks!


chore(deps): upgrade configuration

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-configuration-2.x" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 2244

Questions ?
Please refer to the Backport tool documentation


Enable top-level imports

It's not very ergonomic to have to know two subpackages to get the most standard functionality. This PR replaces the need to do this
from prefixmaps.io.parser import load_context

with the more ergonomic
from prefixmaps import load_context

@hrshdhgd can you resolve? recall we have this general version introspection issue that needs resolved

@hrshdhgd you need to turn on pre commit hooks or better remember to lint code after changing it, that’s causing a lot of issues. Further, you probably need to add a conditional dependency for this.


3.2 Compatablity

Will this be updated for 3.2 I love this module. Been a rough couple weeks without it lol

Yes it will be. I keep forgetting to test it. I hope to do that this weekend.
On Jun 6, 2024 at 11:33 AM -0700, Avitale34 @.***>, wrote:

Will this be updated for 3.2 I love this module. Been a rough couple weeks without it lol
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: @.***>


Minor UI typo fix (reply  -> replay)

This was just annoying enough for me to make a fork and fix it

Sorry, didn't see this until now!


docs_mail_merg Issues

Summary
https://github.com/googleworkspace/python-samples/blob/main/docs/mail-merge/docs_mail_merge.py
--> docs_mail_merge
Expected Behavior
access to links Produced and for the resultant mail merge files to be deposited in my folders.
Actual Behavior
Receive the following error message and I am not sure how to solve it:
runfile('C:/Users/baker/Desktop/a3/docs_mail_merge.py', wdir='C:/Users/baker/Desktop/a3')
An error occurred: <HttpError 403 when requesting https://www.googleapis.com/drive/v2/files/12g6okE4Hvr5VCMiGo6Z7szNSp_cZIRafdLHafGdEtRs/copy?fields=id&alt=json returned "Request had insufficient authentication scopes.". Details: "[{'message': 'Insufficient Permission', 'domain': 'global', 'reason': 'insufficientPermissions'}]">
An error occurred: <HttpError 403 when requesting https://docs.googleapis.com/v1/documents/<HttpError 403 when requesting https%3A%2F%2Fwww.googleapis.com%2Fdrive%2Fv2%2Ffiles%2F12g6okE4Hvr5VCMiGo6Z7szNSp_cZIRafdLHafGdEtRs%2Fcopy%3Ffields%3Did%26alt%3Djson returned "Request had insufficient authentication scopes.". Details%3A "[{'message'%3A 'Insufficient Permission'%2C 'domain'%3A 'global'%2C 'reason'%3A 'insufficientPermissions'}]">:batchUpdate?fields=&alt=json returned "Request had insufficient authentication scopes.". Details: "[{'@type': 'type.googleapis.com/google.rpc.ErrorInfo', 'reason': 'ACCESS_TOKEN_SCOPE_INSUFFICIENT', 'domain': 'googleapis.com', 'metadata': {'method': 'google.apps.docs.v1.DocumentsService.BatchUpdateDocument', 'service': 'docs.googleapis.com'}}]">
Merged letter 1: docs.google.com/document/d/<HttpError 403 when requesting https://docs.googleapis.com/v1/documents/<HttpError 403 when requesting https%3A%2F%2Fwww.googleapis.com%2Fdrive%2Fv2%2Ffiles%2F12g6okE4Hvr5VCMiGo6Z7szNSp_cZIRafdLHafGdEtRs%2Fcopy%3Ffields%3Did%26alt%3Djson returned "Request had insufficient authentication scopes.". Details%3A "[{'message'%3A 'Insufficient Permission'%2C 'domain'%3A 'global'%2C 'reason'%3A 'insufficientPermissions'}]">:batchUpdate?fields=&alt=json returned "Request had insufficient authentication scopes.". Details: "[{'@type': 'type.googleapis.com/google.rpc.ErrorInfo', 'reason': 'ACCESS_TOKEN_SCOPE_INSUFFICIENT', 'domain': 'googleapis.com', 'metadata': {'method': 'google.apps.docs.v1.DocumentsService.BatchUpdateDocument', 'service': 'docs.googleapis.com'}}]">/edit
An error occurred: <HttpError 403 when requesting https://www.googleapis.com/drive/v2/files/12g6okE4Hvr5VCMiGo6Z7szNSp_cZIRafdLHafGdEtRs/copy?fields=id&alt=json returned "Request had insufficient authentication scopes.". Details: "[{'message': 'Insufficient Permission', 'domain': 'global', 'reason': 'insufficientPermissions'}]">
An error occurred: <HttpError 403 when requesting https://docs.googleapis.com/v1/documents/<HttpError 403 when requesting https%3A%2F%2Fwww.googleapis.com%2Fdrive%2Fv2%2Ffiles%2F12g6okE4Hvr5VCMiGo6Z7szNSp_cZIRafdLHafGdEtRs%2Fcopy%3Ffields%3Did%26alt%3Djson returned "Request had insufficient authentication scopes.". Details%3A "[{'message'%3A 'Insufficient Permission'%2C 'domain'%3A 'global'%2C 'reason'%3A 'insufficientPermissions'}]">:batchUpdate?fields=&alt=json returned "Request had insufficient authentication scopes.". Details: "[{'@type': 'type.googleapis.com/google.rpc.ErrorInfo', 'reason': 'ACCESS_TOKEN_SCOPE_INSUFFICIENT', 'domain': 'googleapis.com', 'metadata': {'service': 'docs.googleapis.com', 'method': 'google.apps.docs.v1.DocumentsService.BatchUpdateDocument'}}]">
Merged letter 2: docs.google.com/document/d/<HttpError 403 when requesting https://docs.googleapis.com/v1/documents/<HttpError 403 when requesting https%3A%2F%2Fwww.googleapis.com%2Fdrive%2Fv2%2Ffiles%2F12g6okE4Hvr5VCMiGo6Z7szNSp_cZIRafdLHafGdEtRs%2Fcopy%3Ffields%3Did%26alt%3Djson returned "Request had insufficient authentication scopes.". Details%3A "[{'message'%3A 'Insufficient Permission'%2C 'domain'%3A 'global'%2C 'reason'%3A 'insufficientPermissions'}]">:batchUpdate?fields=&alt=json returned "Request had insufficient authentication scopes.". Details: "[{'@type': 'type.googleapis.com/google.rpc.ErrorInfo', 'reason': 'ACCESS_TOKEN_SCOPE_INSUFFICIENT', 'domain': 'googleapis.com', 'metadata': {'service': 'docs.googleapis.com', 'method': 'google.apps.docs.v1.DocumentsService.BatchUpdateDocument'}}]">/edit
Steps to Reproduce the Problem

I saw solutions online in order for  "creds, _ = google.auth.default()" to call properly I had to download google cloud and have the credentials link to my system like that rather than using OAuth 2.0 Client IDs as was the case with python quickstart

Specifications

Python version (python 3.10.9)
OS (Windows)

Apologies but now I have a new Problem and that is my code now runs produces two merged letters
vv

Merged letter 1: docs.google.com/document/d/10uE43ObnAtJ57oVKuvxRvIKCsOHWhFN9TS5yCLnvsJs/edit

Merged letter 2: docs.google.com/document/d/19mJuTRdTtHl_bx6sRhdu10ivexgdKsAgGadZShPFqyk/edit

But when I click on these links it asks for access @davidharcombe

I am having precisely the same problem after coming across the mail-merge quickstart yesterday and giving it a spin.  Has anyone discovered the problem/solution?

Hey @wdockery , you will have to "# Establish new permissions for the document" for your document. ( basically put your code through chatgpt and ask it to "# Establish new permissions for the document" ) Should attach code some where in it like this :
Establish new permissions for the document
new_permission = {
'type': 'user',
'role': 'writer',
'emailAddress'<EMAIL_ADDRESS>}
Hopefully that should work. again message if you have any questions or that doesnt work


Fixing the Template ZIP File for gif-pros 3.0.0

Issue:
When installing gif-pros 3.0.0 through the zip file this error is caused:
Creating cold package with gif-pros,libc,liblvgl,libm,libpros [ERRORS]
/Users/USERNAME/Library/Application Support/Code/User/globalStorage/sigbots.pros/install/pros-toolchain-macos/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld: firmware/gif-pros.a(main.cpp.o): in function opcontrol': /home/alu/Documents/PROS/gif-pros/src/main.cpp:87: undefined reference to pros::v5::MotorGroup::operator=(long) const'
make: *** [bin/cold.package.elf] Error 1
ERROR - pros.cli.build:make - Failed to make project: Exit Code 2 - pros-cli version:3.5.4
/Users/USERNAME/Library/Application Support/Code/User/globalStorage/sigbots.pros/install/pros-toolchain-macos/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld: /home/alu/Documents/PROS/gif-pros/src/main.cpp:88: undefined reference to `pros::v5::MotorGroup::operator=(long) const'
collect2: error: ld returned 1 exit status
Explanation + Fix
This is because in the original main.cpp: the issue were these lines of code:
left_mg = dir - turn;
right_mg = dir + turn;
Which adds an int value to left_mg and right_mg, which are pros::MotorGroup, which is undefined behavior. In this pull request, this code was updated to:
left_mg.move(dir - turn);
right_mg.move(dir + turn);
Which is defined behavior and is based off the PROS 4.1.0 default main.cpp file. The library zip for 3.0.0 was remade with pros make template, and the new zip file was tested on the same project that used to cause the error, and the error was no longer there.

Closed by https://github.com/theol0403/gif-pros/commit/5a10365a705d9ff4b72b7dcc1d402b90746ee3c2
Simply modifying the main.cpp is not sufficient, it still linked to the wrong pros version (if properly updated, the error should be a compile error not a linker error).


Open an Outside Data Source with curl in introduction.ipynb

The UCI ML Repository link does not work.
How can the students find the zip link for the DryBeanDataset?

Yep, forgot that they changed their main page. Correcting rn.


Cloudbank v3 upgraded to Spring 3

@andytael here's results from test deployment:
account - same failure, expected, due to lra lib version
creditscore - same as checks (see below)
customer - same as checks
testrunner - same as checks
transfer - same as account (see above)
checks - dep version issue:
APPLICATION FAILED TO START
***************************

Description:

Your project setup is incompatible with our requirements due to following reasons:

- Spring Cloud Sleuth is not compatible with this Spring Cloud release train

Action:

Consider applying the following actions:

- Migrate from Spring Cloud Sleuth to Micrometer Tracing .
You can check the Sleuth 3.1 Migration Guide over here [https://github.com/micrometer-metrics/tracing/wiki/Spring-Cloud-Sleuth-3.1-Migration-Guide].
If you want to disable this check, just set the property [spring.cloud.compatibility-verifier.enabled=false]```

Spring Cloud 2022.0 Release Notes
Spring Cloud Sleuth
This project has been removed from the release train. The core of this project has moved to Micrometer Tracing project and the instrumentations will be moved to Micrometer and all respective projects (no longer all instrumentations will be done in a single repository.
Need to fix

Rolling back to Spring V2


Twoslash not working as expected

To Reproduce
Issue Reproduction: https://github.com/tylersayshi/fumadocs-twoslash-bug
Current vs. Expected behavior
Bugs:

// ^? and other twoslash comments are not being transformed on the docs pages after adding the plugin following the docs: https://fumadocs.vercel.app/docs/ui/twoslash
Runtime error when attempting to use twoslash on the server in components/code-block.tsx for the home page

Provide environment information
Operating System:
  Platform: darwin
  Arch: arm64
  Version: Darwin Kernel Version 24.1.0: Thu Oct 10 21:02:26 PDT 2024; root:xnu-11215.41.3~2/RELEASE_ARM64_T8122
  Available memory (MB): 16384
  Available CPU cores: 8
Binaries:
  Node: 22.5.1
  npm: 10.8.2
  Yarn: N/A
  pnpm: 9.13.2
Relevant Packages:
  next: 15.0.3 // Latest available version is detected (15.0.3).
  eslint-config-next: N/A
  react: 18.3.1
  react-dom: 18.3.1
  typescript: N/A
Next.js Config:
  output: N/A

Which area(s) are affected? (Select all that apply)
Content Sources (e.g. Fumadocs MDX, Content Collections), Integrations (e.g OpenAPI, Typescript DocsGen)
Additional context
the project i am working on this for is here: https://github.com/tylersayshi/fuma-move
This work is to move arktype.io to fumadocs: https://github.com/arktypeio/arktype/issues/1111

You need to enable it by adding twoslash meta string to codeblock.

It requires a Popup component to display the generated popups, you can import them from the package:

import { Popup, PopupContent, PopupTrigger } from 'fumadocs-twoslash/ui';

And pass it to components option.
I would suggest to provide the details of runtime error too if you have other questions, it helps me to locate the problem faster.

Sorry for late, I've just made the Twoslash section docs up-to-date.
Hope it clarifies the problems: https://fumadocs.vercel.app/docs/ui/twoslash

Thanks for the quick responses!
Is the code for customizing the config file referring to the next.config.js?
import { defineConfig } from 'fumadocs-mdx/config';
import { transformerTwoslash } from 'fumadocs-twoslash';
import { rehypeCodeDefaultOptions } from 'fumadocs-core/mdx-plugins';

export default defineConfig({
  mdxOptions: {
    rehypeCodeOptions: {
      transformers: [
        ...(rehypeCodeDefaultOptions.transformers ?? []),
        transformerTwoslash(),
      ],
    },
  },
});

I am probably just configuring this wrong somehow.

Oh it's the source.config.ts - sorry for my confusion there. #1 is now resolved for me and was not a bug at all. 🎉
re: the runtime error.
minimal reproduction: https://github.com/tylersayshi/fumadocs-twoslash-bug

link to related code block component
This error I find confusion because it mentions that the error happens on the server where path should definitely be defined.

I get the same error when doing this with
import { transformerTwoslash } from "@shikijs/twoslash";

So maybe this is upstream somehow?

Hmm but it's indeed working on CodeSandbox, have you installed @types/node?

took some time for me, it's a bundler issue because typescript has dynamic require of modules including fs and path.
You can add them to serverExternalPackages.
import * as Base from "fumadocs-ui/components/codeblock";
import { highlight } from "fumadocs-core/server";
import { transformerTwoslash } from "fumadocs-twoslash";
import { Popup, PopupContent, PopupTrigger } from "fumadocs-twoslash/ui";

export interface CodeBlockProps {
  code: string;
  wrapper?: Base.CodeBlockProps;
  lang: string;
}

export async function CodeBlock({
  code,
  lang,
  wrapper,
}: CodeBlockProps): Promise<React.ReactElement> {
  const rendered = await highlight(code, {
    lang,
    meta: {
      __raw: 'twoslash'
    },
    themes: {
      light: "github-light",
      dark: "vesper",
    },
    transformers: [transformerTwoslash()],
    components: {
      // @ts-expect-error -- JSX component
      pre: Base.Pre,
      Popup,
      PopupContent,
      PopupTrigger
    },
  });

  return <Base.CodeBlock {...wrapper}>{rendered}</Base.CodeBlock>;
}

import { createMDX } from "fumadocs-mdx/next";

const withMDX = createMDX();

/** @type {import('next').NextConfig} */
const config = {
  reactStrictMode: true,
    serverExternalPackages: ['twoslash', 'typescript'],
};

export default withMDX(config);

wow! Thanks so much for the help! It all works super nicely now :)

Oh wait one last question, it looks like the twoslash snippets are parsing strangely. Is the meta.__raw: 'twoslash' supposed to fix this?

You probably forgot to add components option to JSX renderer, the fumadocs-twoslash/ui exported all required components.

So the weird output above was because I was importing from @shikijs/twoslash for transformerTwoslash still by accident.
I am now seeing this error 😅
Error: Language `js` not found, you may need to load it first

this issue seems relevant but maybe different? https://github.com/vuejs/vitepress/issues/4334
the popups are added here btw: https://github.com/tylersayshi/fuma-move/blob/main/components/code-snippets/Code.tsx#L27-L32
Maybe I need to mark another package as external?
https://github.com/tylersayshi/fuma-move/blob/main/next.config.js#L8

Yes it's relevant, codeblocks in popups may have a different language than the parent codeblock, but only the language of parent codeblock e.g. ts will be pre-loaded.
It's indeed a problem of Shiki, it doesn't support async markdown renderer so there's no official solution unless I make a PR to shiki.
for user-land workaround, you can pre-load all possible languages (ideally bundledLanguages) first.
import {
  getSingletonHighlighter,
  bundledLanguages
} from 'shiki';

await getSingletonHighlighter({
  langs: Object.keys(bundledLanguages)
})

That worked great thanks!
I think this is my last related problem 🤞, but when I run next build the host output, shiki is not being run at all on the markdown snippet output.
you can see this deployed here: https://arkfuma.netlify.app/docs/properties
i've configured it as a static build and deploy (output: 'export'), but the same issue was present with the default next build & start.

Not sure but it seems to be the problem of your arktypeTextmate in source configuration.

oh! good find: fixed it here: https://github.com/tylersayshi/fuma-move/commit/a3e35a37c3654a2f550d217c82919a8d4faf0195


fix: Remove unnecessary dependency on jmespath

This is straightforward manipulation to do with standard Jinja features, there's no need to use a non-default library.

CC @gardar

Looks like the lint issue is unrelated. Looking into it.

Nice catch, LGTM!

@flowerysong please rebase

Test failures look unrelated.
Tests against Ansible 2.9 are failing because Ansible 2.9 reached EOL last May and is missing many collection features (like support for git dependencies in requirements.yml.)
The 2.12 failure was API rate limiting:
TASK [prometheus.prometheus.prometheus : Discover latest version] **************
fatal: [almalinux-8]: FAILED! => {"msg": "An unhandled exception occurred while running the lookup plugin 'url'. Error was a <class 'ansible.errors.AnsibleError'>, original message: Received HTTP error for https://api.github.com/repos/prometheus/prometheus/releases/latest : HTTP Error 403: rate limit exceeded. Received HTTP error for https://api.github.com/repos/prometheus/prometheus/releases/latest : HTTP Error 403: rate limit exceeded"}

Actually, the 2.9 failure is because we started fetching things from git instead of galaxy. The old version does not support fetching from git.

Actually, the 2.9 failure is because we started fetching things from git instead of galaxy. The old version does not support fetching from git.

That's what I said.
There's a decent chance that my change will also legitimately fail on 2.9; automatic generator unrolling wasn't added until 2.10.

2.9 test has been fixed by #37


Will this image work on armv7 platform?

Will this image work on armv7 platform?

For what I can recall, I've encountered series of compilation issues when building the armv7 variant. Those issues might be solved now, but at that time I decided to drop 32bit architectures (x86/armv7) support altogether.
You could fork the repo and modify the Dockerfile or GitHub Action workflow and try that out!
Thanks.

Oops, I just found there's actually a arm build variant on Docker Hub...
Did you get any warning or error when trying the container image?

Hey! Sorry for late reply.
Not yet, I haven't tried building the docker image. I'll use a variant of base image for armv7 and I'll let you know.
I was wondering whether the talib build will actually work using your method as I tried various ways and couldn't get it working.
Your repo caught my attention since it's saying in the description that will work on armv7 but since I haven't seen any further reference in the actual repo documentation I wanted to ask beforehand
Thanks
Vlad

Hi Vlad,
The images I uploaded to this repo seems to be broken, but you can try the image on https://hub.docker.com/r/wuuker/python-talib/tags, which I'm also the maintainer.
The images on Docker Hub comes with Python 3.10 + TA-Lib, while the images on GHCR includes Python 3.11 + TA-Lib.
You could try the tutorial below on your armv7 devices to test if the image works before you go further, just follow all steps except step 3 (step 3 is not necessary on images with Python 3.10)
Thanks.

Step 1: Start Your Docker Container with Automatic Cleanup
To begin, start your Docker container using the docker run command with the --rm flag. This ensures that the container is automatically removed after you're done, keeping your system clean. Run the following command in your terminal:
docker run -it --rm --name talib_test wuuker/python-talib:latest /bin/bash

This command will create and start a new container instance from the wuuker/python-talib:latest image, open an interactive terminal session inside the container, and automatically clean up the container when you exit the shell.
Step 2: Activate the Python Virtual Environment
Once inside the container's shell, activate the Python virtual environment to use the Python version and libraries (including TA-Lib) installed within it:
source /ctr-py-venv/bin/activate

Step 3: Start an Interactive Python Session
With the virtual environment activated, start an interactive Python session by typing python and pressing Enter:
python

Step 4: Test TA-Lib Functionality
Now, you're ready to test TA-Lib. Let's perform a simple operation to calculate a moving average from an array of closing prices.
First, import TA-Lib and NumPy:
import talib
import numpy as np

Then, create an array of sample closing prices:
close_prices = np.array([4.0, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9])

Calculate the simple moving average (SMA) with a time period of 5:
sma = talib.SMA(close_prices, timeperiod=5)

Print the SMA to see the result:
print(sma)

Step 5: Review the Expected Output
After running the above commands, you should see the following output in your terminal:
[nan nan nan nan 4.2 4.3 4.4 4.5 4.6 4.7]

This output shows the calculated 5-day simple moving average for the provided array of closing prices. The nan values represent the lack of enough data points (less than 5) to calculate the average for the first four entries.
Step 6: Exit the Python Shell and Container
To exit the Python interactive shell, type exit() or press Ctrl+D. To exit the container's bash shell, simply type exit again.
exit()  # Exits the Python shell
exit    # Exits the container shell

By following these steps, you've successfully tested the functionality of TA-Lib inside your Docker container using an interactive Python session, and the container will be cleaned up automatically thanks to the --rm flag used when starting the container.

By the way, I can't figure out why images on GHCR are broken, perhaps the build environment.. I use QEMU to build arm variants to GHCR while I used a Raspberry Pi 3 to build the same image pushed to Docker Hub)
I have no armv7 devices on my hand for now, so you might have to do it on your own if you want to build a image whichs runs Python 3.11.

Yeah, let's take the problems one by one. I would first give it a go building it locally and then move to the GHCR.
So basically I would need to use the "arm" version from https://hub.docker.com/r/wuuker/python-talib/tags ? Would this work with armv7?

Yep, I've tested it with a Raspberry Pi2 just a while ago.
For some reason it shows as "arm", but it will work with armv7

Ahh... just found something weired

arm variant is based on Ubuntu 22.10
amr64/v8 and amd64 variants are based on Ubuntu 23.10 (!

I have no idea why it goes this way (it should be all based on either 22.10 or 23.10), but shouldn't be too much of an issue I guess.

I looked to the history of this repo, on GitLab, which is responsible for building the image on Docker Hub, and I found a comment I just made:
failed since migrate to Python3.11 & Ubuntu 23.10, so remove the support for ARM 32 bit

So, to recap:

Docker Hub is the place where I initially published the image, images were originally based on Ubuntu 22.10
I encountered issue building image based on Ubuntu 23.10 with arm/v7, so I removed the build step of arm/v7 variant in GitLab CI/CD

That's why on Docker Hub we see arm64 & amd64 variants run on Ubuntu 23.10 while arm/v7 runs on Ubuntu 22.10
So, you might want to downgrade base image to Ubuntu 22.10 if you can't build image with Ubuntu 23.10 as base.

No reply for 7 days, close the issue

Hey,
Sorry for the late reply. I was actually testing a lot of stuff using your images. So far I think it works as expected when pulling the images from docker hub.
However, I'm not able to build one of my own images using the dockerfile from this repo ( for now I have postponed this action)
Now, since I have some python packages ( alongside talib and numpy), like cryptography and tensorflow which are not available "as-is" for raspberry pi, I have been struggling to find a way of installing them beforehand in my dockerfile.
While I have managed to successfully install cryptography on your image with "latest" tag, which is using python3.11, I am unable to find a compatible .whl for tensorflow that would work with 3.11 . The only one that I was able to find is one that is compatible with python3.8 .
Is there any chance maybe to build an image ( using the base image from latest) but use python 3.8 instead of 3.11? Is this feasible considering the talib installation?
If yes, can you please build this image? If you don't have time for this, then please just pin the latest dockerfile that you are using in building these images and I'll give it a go.
Btw, one last question, what is the base image for the "latest" image?
Thanks and sorry for late reply.

Hi Vlad,
Sorry for the late reply, I was preparing for a job interview last week, finally have some spare time for this.
In order to build a python 3.8 version of the image, I'll change the base image to ubuntu:20.04 (which has python 3.8 built in as a apt package). I'll try to make one in this repo.
The python 3.11 version image (the one with latest tag on Docker Hub) uses ubuntu:23.04 as base image.

For anyone from future viewing this issue:
Yes, this image DOES work on amd64, arm64, arm/v7.
To prove this, I've made two types of container images and uploaded to GHCR, both contain amd64, arm64, arm/v7 variants:

an image based on ubuntu:23.10, running Python 3.11, with venv (info
, Dockerfile)
an image based on ubuntu:20.04, running Python 3.8, without venv (info, Dockerfile)

You can reference to the tutorial here to try them out.


explain realm-init behavior

From the following paragraph:

As a result of the CSP directive pointing to monitor.js, the security logic introduced by it will be applied to all same origin realms that can be manipulated against the execution environment of the application (as opposed to allowing scripts to create a new realm and use its clean copy of fetch).

It is not clear if the monitor.js script will get executed in the root realm or not. From the readme, it seems that it only applies to other child realms, because otherwise you have no way to gain access to those capabilities (e.g. fetch) in the root realm, but then I see no references to the undeniables.
Here is a concrete example:
Let's assume that the new header points to remove-fetch.js to prevent child realms to access fetch global value all together. Then the attacker does the following:
function stealFetch() {
    try {
        return window.fetch;
    } catch (err) { // Uncaught Error: Access to powerful capability "fetch" is forbidden
        return window.top.fetch; // get the fetch via the undeniable top
    }
}

// function fetch() { [native code] }
const newFetchInstance = stealFetch()

Specifically, the problem I see here is that remove-fetch.js has no way to replace/tame top because it is undeniable, and since it does not run in the root realm, the fetch from top is going to have full capabilities.
Note: this is not a problem when creating new ShadowRealm instances because they don't have undeniables.

That PR makes it clear. Now, the concern is how the top realm will gain or hold some of these capabilities that are going to be denied to child realms. This sounds a lot like the same trap we felt into with CSP, where everyone must play by the same rules, which hinders the ability to adopt it because it is too hard. Hence we end up with Trusted Types to open the door for someone to have a magic wand and gain additional capabilities that are otherwise denied to the rest of the code. E.g.: I will like to deny access to the session id from cookies or something like that for child realms, but I will like to still have access to it as part of my app, how to achieve this?

Well, since this feature is designed to allow code-based customization of behaviour of capabilities, I guess JS's expressiveness comes into play here. At the most basic level, the reconfiguration of the APIs can take such differences into account:
// Content-Security-Policy: init-realm: /init.js
if (window !== top) {
  const block = () => { throw 'BLOCKED' }
  defineProp(window.document, 'cookie', { get: block } )
}

Combined with other Web capabilities, my vision is that such getters will determine whether to grant access to a capability or not (and to what extent) based on whether the entity asking for it is permitted to (should script coming from src X be allowed to access capability Y? should DOM node A be allowed to walk through to DOM node B?).
While difficult, this vision is very much possible in user land. The only blocker in achieving that is the same origin concern which would be solved when this proposal lands.

Oh, no, I don't think that works because of the undeniable. The code snipped above, where cookie is only really blocked for child realms, while they have access to top.document.cookie just fine via the undeniable top accessor. That's the thing, for this to work, you only have to paths, and both are very difficult paths:

you must change all code in the root to somehow gain access to capabilities that are otherwise forbidden for other realms.
or you must reform the undeniables, which is very unlikely at this point.

In essence, this is the same dilemma as trusted types, where there is a magic wand, and if you manage to get your hands on the magic wand, you can do wonders, otherwise, you are at the mercy of the capabilities allowed by CSP.

Via the undeniables, access to the reconfigured descriptors will always be possible, this proposal won't focus on that problem. However, having access to a descriptor, does not mean the descriptor would necessarily provide the capability to anyone that asks for it.
"The code snippet above" does not demonstrate that by itself, but only together with the paragraph that comes right after it about "web capabilities", which should result in something more sophisticated:
// Content-Security-Policy: init-realm: /init.js
if (window !== top) {
  const block = () => { throw 'BLOCKED' }
  defineProp(window.document, 'cookie', { get: block } )
} else {
  const mitigate = () => {
    const entity = whoIsAskingForDocumentCookie()
    if (!allowedEntitiesToAccessCookie.includes(entity)) {
      throw 'BLOCKED'
    }
    return realCookie
  }
  defineProp(window.document, 'cookie', { get: mitigate } )
}

And based on your (correct) take, this is the former of the two suggested paths - it's very hard telling who's asking for a capability in a safe way, but with some hard R&D it is possible (proxies also helped a lot in paving that way).
It's also important to mention that the RIC proposal makes sense in slightly different context as well, for example, what if we want to compose a monitoring system that only monitors consumption of powerful capabilities instead of mitigating them? For that, the same redefinition can take place for both the top and the rest of the realms, so that this problem doesn't apply anymore:
// Content-Security-Policy: init-realm: /init.js
defineProp(window.document, 'cookie', { get: () => {
  reportToServer({msg : 'cookie was accessed' })
  return realCookie
} } )

So it's really a matter of use case, but all in all, having a power such as RIC would allow builders to ship control over capabilities their app provides - a great and important accomplishment from my perspective.

I think whoIsAskingForDocumentCookie in the example above is the problem. In the web, as it stands, it is impossible to know who is calling when it comes to undeniables. My recommendation is to attempt to either remove or perhaps relax the "traversal undeniables" (maybe making top and co. configurable/non-writable) so RIC can distort their behavior as well.

In the web, as it stands, it is impossible to know who is calling when it comes to undeniables.

I don't see the problem you're referring to, if you get a chance to elaborate on this


Update Dangerfile for noting tests, and stories on a PR

Adds the following:

Any touched (new/modified) react components warn if they are not somewhere inside the storybook stories
Any touched app files fails if there are no corresponding test files (not changes) - you need to specify that you are not writing tests in the PR body/title

WIP as I'm not sure it'll compile etc, I did it offline

Fails

:no_entry_sign:
Please assign someone to merge this PR, and optionally include people who should review.

  Generated by :no_entry_sign: dangerJS

Performance in tests is pretty terrible

I thought this was Danger's fault initially, but it isn't (older pr) - looks like a side-effect of the TS conversion.

Bet this is the haste map generation - running tests twice "fixes it"

Can that be added to Travis’ cache?

Yeah, they're in a determinate location, I've had to find it before

Here we are: cacheDirectory

Good stuff 👌

Nits picked, and made a separate PR for jest cache.

This just needs to wait on 0.14.1 - in putting this in a real project I found a bug, after that - good to go

Deployment is via CI, so is indeterminate - you know what that's like ;)

Ok, can you label this as WIP until that’s released?

shipped ;)

Hah, I see now what you meant by “deployment is via CI” :D

OK 👍 this is good to go


Add support for reading (and writing) .graph files

SparseBase should provide Readers for METIS GRAPH Files. This is quite a flexible format that can contain both vertex and edge weights.
The code snippet below is one I used in another project and reads the file into a CSR format. Note that this code was not of critical importance so it isn't really optimized. It only supports vertex weights. The x variable on the first line should be checked for values other than 10 and the reader should act accordingly. Here are the possible values and their meanings:
%  FMT has the following meanings:
%    0  the graph has no weights (in this case, you can omit FMT);
%    1  the graph has edge weights;
%   10  the graph has vertex weights;
%   11  the graph has both edge and vertex weights.

int new_reader_read_graph(const char* input_file, vtx_type* nvtxs, adj_type** xadj, vtx_type** adj, wgt_type** vwgt, wgt_type** adjwgt){

	vtx_type n;
	adj_type m;

	ifstream ifs(input_file);

	cout << "Reading graph from: " << input_file << endl;

	string line;
	bool first_line = true;
	size_t last_index = 0;
	vtx_type u = 0;
	while(getline(ifs,line)){

		if(line[0] == '%'){
			continue;
		}

		stringstream ss(line);

		if(first_line){

			int x;
			ss >> n >> m >> x;
			m *= 2;
			cout << "N=" << n << " M=" << m << endl;
			if(x != 10){
				cout << "File must have vertex weights" << endl;
				return 2;
			}
			first_line = false;

			*xadj = new adj_type[n+1];
			(*xadj)[0] = 0;
			*adj = new vtx_type[m];
			*vwgt = new wgt_type[n];

		} else {
			wgt_type w;
			ss >> w;
			vtx_type v;
			while(ss >> v){
				(*adj)[last_index++] = v-1;
			}
			(*xadj)[u+1] = last_index;
			(*vwgt)[u] = w;
			u++;
		}
	}

	cout << "Done reading graph" << endl;

	*nvtxs = n;

	return 1;
}

The main issue right now is that this file format can contain vertex weights which the current Format system won't represent. And since this file format is designed to be used for graphs, it is logical to return Graph objects from the reader. We do have a Graph class but it hasn't been updated in a while. So we should probably delay this until we update that.

 Add a reader for .graph metis format

Here is a library with a .graph readers: https://github.com/dlasalle/wildriver. Looks like it hasn't been updated in a while and I had troubling with it in another project. So I suggest using it as a reference not adding it as a dependency.


Schedule overview: move image here and use different ones for different cohorts

The schedule is different in the different cohorts so we could have a different schedule overview images for each cohort to better represent it

I am not sure to understand you question

You can look at the schedule page of the corresponding cohort

Anything to change there @yochannah? or can we merge?


Confusing error messages and comment in integration-cli/docker_cli_pull_trusted_test.go

integration-cli/docker_cli_pull_trusted_test.go error messages are incorrectly talking about push when the failing operation is a pull, and a comment claims that a test should succeed when the test is expecting failure. See the PR for more details.

Hi!
Please read this important information about creating issues.
If you are reporting a new issue, make sure that we do not have any duplicates already open. You can ensure this by searching the issue list for this repository. If there is a duplicate, please close your issue and add a comment to the existing issue instead.
If you suspect your issue is a bug, please edit your issue description to include the BUG REPORT INFORMATION shown below. If you fail to provide this information within 7 days, we cannot debug your issue and will close it. We will, however, reopen it if you later provide the information.
This is an automated, informational response.
Thank you.
For more information about reporting issues, see https://github.com/docker/docker/blob/master/CONTRIBUTING.md#reporting-other-issues

BUG REPORT INFORMATION
Use the commands below to provide key information from your environment:
docker version:
docker info:
uname -a:
Provide additional environment details (AWS, VirtualBox, physical, etc.):
List the steps to reproduce the issue:
1.
2.
3.
Describe the results you received:
Describe the results you expected:
Provide additional info you think is important:
----------END REPORT ---------
#ENEEDMOREINFO

The PR shows the specific instances which are inconsistent; writing them out in text here seems unnecessary.
(The contributor documentation expects every PR to come with a corresponding issue (e.g. by requiring an issue number in the branch name), so I had to file one before making the PR available for review.)


CMP: On NULL-DN subject or issuer input omit field in cert template; further small improvements

According to user request, on NULL-DN subject or issuer input omit field in cert template.
Also

improve diagnostics on inconsistent cert request input in apps/cmp.c,
(which motivated a code cleanup there on where to check cert request options),
add trace output for transactionIDs on new sessions,
update a test case and the documentation in openssl-cmp.pod.in, and
replace in openssl-cmp.pod.in the term 'verify' by the more correct 'validate'.

Checklist

[x] documentation is added or updated
[x] test are added or updated

CI failure on 80-test_cms.t  for enable_non-default_options build is unrelated.

CI failure on 80-test_cms.t  for enable_non-default_options build is unrelated.

Rebased to fix a trivial merge conflict.

Rebased this PR again to solve merge conflicts.
Can we please handle it soon?

This pull request is ready to merge

Merged - thanks @t8m


Mt Moon

The bot just go in and out of the mt moon without doing anything after my pokemon got the right level. I tried many times.

I fixed it by going manually to the B2F and then restarting to use the script.

I fixed it by going manually to the B2F and then restarting to use the script.

I am currently adding the PC support to the PROShine API. After what I will release a new Questing.lua version including a fix for this bug.

Duplicate of #4


CASSANDRA-16671(3.11): Ensure that row primary key liveness is returned when it exists

Merged manually


Rename doki_Logo.png to doki.png

This changes the file name, but not the reference(s) to it--which should be updated to be the same.

I believe this has since been updated so this PR can likely be closed.

PR seems abandoned


Error in not finding downloaded files

This package is amazing!
When running the example code, I got the following error:
Error in h(simpleError(msg, call)) :
  error in evaluating the argument 'x' in selecting a method for function 'crop': subscript out of bounds

When troubleshooting the bm_get_data function, I realized the following line of code wasn't finding any files:
 lista <- list.files(path = file.path(Sys.getenv("USERPROFILE"),
                                       "Desktop", fsep = "\\"), pattern = "VNP46A2", full.names = T)

Not sure if relevant, but I'm on a Mac -- happy to share any other details to help troubleshoot.
But I ended up changing this line
dl_func(link, paste0(file.path(Sys.getenv("USERPROFILE"),
                                    "Desktop", fsep = "\\"), "\\", paste0(file[j],
                                                                          ".nc4")), username, password)

to
dl_func(link, file.path("~/Desktop/tmp", paste0(file[j], ".nc4")), username, password)

And I changed
lista <- list.files(path = file.path(Sys.getenv("USERPROFILE"),
                                     "Desktop", fsep = "\\"), pattern = "VNP46A2", full.names = T)

to
lista <- list.files(path = "~/Desktop/tmp", pattern = ".h5.nc4", full.names = T)

I would do a pull request, but not sure if this is the most elegant solution / if it'll work in all cases (but at least gets things working for me).
Also note in the last line I changed pattern = "VNP46A2" to pattern = ".h5.nc4" -- wonder if that's needed in case someone wants VNP46A1 or VNP46A3?

Apologies for my very delayed answer. Thank you for spotting this, as I had no opportunity to test the package in a Mac environment. Could you please send a pull request so that I can integrate the bugfix? Many thanks.


License

Hey!
I was wondering what license you consider this code to be under. Is it free to grab and modify without restrictions?
I understand it is based on Dan Luu's tutorial, right?
Thanks!

Hi,
Thank you for reaching out to me. I have added MIT License.
Yes, it is based on Dan Luu's tutorial which I have added in the readme.

Thanks!


Establish a trace context in a non-http context

I've seen #5897 and #9157 and #9476 and https://cloud.google.com/dotnet/docs/reference/Google.Cloud.Diagnostics.AspNetCore3/latest#custom-trace-context-example
However, after multiple tries, I'm not able to wrap my head around ITraceContext when I want both the "default" context (i.e for HTTP context) and my own context for non-http context, so I'm asking for help here...
Basically, I have a cloud run with an HTTP API where the default "integration" is OK (i.e when I do _logger.LogInformation("xxx"), i can see this log statement when I do "Show logs for the trace" from logs explorer)
Now, this cloud run also connects to ActiveMq, and I do not manage to create a new trace for each message received
Here is where I am stuck :
    private readonly IServiceProvider _sp;

    //omitted details to establish connection to ActiveMq, jsut showing the method to handle one message

    private void Consume(IMessage message)
    {
        using var scope = _sp.CreateScope();
        //TODO: correctly configure GCP tracing & logging
        var logger = scope.ServiceProvider.GetRequiredService<ILogger<ActiveMQConsumer>>();
        var txtMessage = message as ITextMessage ?? throw new IllegalStateException("not an ITextMessage, impossible !!!");
        logger.LogInformation("received ActiveMQ message {}", txtMessage.Text);
    }

I can provide details about what I've tried if necessary

I'll try to reply tomorrow at some point, else on Friday.

Ok, if I understand your question correctly you need to look at docs on Establishing traces on non HTTP requests  when you want to trace your ActiveMq activity (know that I'm not at all familiar with ActiveMq). So, integrating the code example from that link into your code, ir could look something like this:
private void Consume(IMessage message)
{
    using var scope = _sp.CreateScope();
    EstablishTrace(scope, message);
    var logger = scope.ServiceProvider.GetRequiredService<ILogger<ActiveMQConsumer>>();
    var txtMessage = message as ITextMessage ?? throw new IllegalStateException("not an ITextMessage, impossible !!!");
    logger.LogInformation("received ActiveMQ message {}", txtMessage.Text);
}

private void EstablishTrace(IServiceScope scope, IMessage message)
{
    ITraceContext traceContext = GetTraceContextFromIncomingMessage(message);
    var tracerFactory = scope.GetRequiredService<Func<ITraceContext, IManagedTracer>>();
    IManagedTracer tracer = tracerFactory(traceContext);
    ContextTracerManager.SetCurrentTracer(tracer);
}

private ITraceContext GetTraceContextFromIncomingMessage(IMessage message)
{
    // You need to extract the trace context from the incoming message and create
    // an instance of ITraceContext (you can use Google.Cloud.Diagnostics.Common.SimpleTraceContext).
    // If the incoming message does not contain a trace context, you can create a new one by creating a new
   // trace ID.
}

Let me know if this helps.

HI @amanda-tarafa
I tried the solution and now I do not see logs anymore on GCP 😒
However, I did fallback to Console.WriteLine and I do not see that either, meaning the server is simply not pulling messsages anymore so I really have another problem somewhere 😱
I've yet to find some time to understand what is going on before bothering you, but be assured that I will report back here as soon as possible 😄
Anyway, the code I added is the following :
    private void Consume(IMessage message)
    {
        using var scope = _sp.CreateScope();
        EstablishTrace(scope, message);
        var logger = scope.ServiceProvider.GetRequiredService<ILogger<ActiveMQConsumer>>();
        var txtMessage = message as ITextMessage ?? throw new IllegalStateException("cannot deconstruct message (should not happen)");
        Console.WriteLine("Received from console {}", txtMessage.Text);
        logger.LogInformation("Received from logger {}", txtMessage.Text);
    }

    private void EstablishTrace(IServiceScope scope, IMessage message)
    {
        //see https://github.com/googleapis/google-cloud-dotnet/issues/9856#issuecomment-1425617476
        var tracerFactory = scope.ServiceProvider.GetService<Func<ITraceContext, IManagedTracer>>();
        if (tracerFactory == null) //GCP tracing not available
            return;
        Console.WriteLine("Enabling GCP tracing");
        var traceContext = new SimpleTraceContext(Guid.NewGuid().ToString().Replace("-", ""), null, true);
        var tracer = tracerFactory(traceContext);
        ContextTracerManager.SetCurrentTracer(tracer);
    }

@christopheblin I'll be closing this one until you are ready to provide more information, and that now seems to depend on #9948 . Happy to reopen as soon as you are ready.


WIP : Add 2D convolution benchmark using Boost.GIL

This PR intends to add a 2D convolution benchmark using Boost.GIL. CMake script assumes that the user has GIL and related dependencies installed in their system.
GIL uses libpng as backend for reading images with .png extension. It is a known issue that libpng is not compatible with all .png images. To solve this problem, we can use opencv's imread() to read an image and then manually convert it to GIL's gil::view container. Is this the right approach to handle the above problem? (/cc @zhanghb97 )
I will add required piece(s) of documentation related to running the benchmark once we solve the above problem.

GIL uses libpng as backend for reading images with .png extension. It is a known issue that libpng is not compatible with all .png images.

Can you give me more information about this issue?

There are compatibility issues while reading some images with .png extension. For example, gil::read_image() was unable to read this image on my system.

Will GIL fix this problem in the future? Now you can use OpenCV to read an image, I think it will not affect the performance of the convolution. When the GIL supports png, we will change it then.

Did you notice this before?

Yes, that is because OpenCV uses BORDER_DEFAULT (same as BORDER_REFLECT_101) as the default method of boundary extrapolation whereas this version of GIL assigns the value of zero to extrapolated pixels(similar to BORDER_CONSTANT). Also, buddy conv-opt has support for only one position of anchor point(which is (0, 0)) while the default position of anchor point(which is used in this case) for both GIL and OpenCV is (1, 1) for a 3x3 kernel. Above are the reasons for different outputs.

Thanks! I have resolved the conflicts and added find_package for boost.


IDE Choice?

Hello, I would like to start on stuff like this as well, but I don't know which IDE to use.
I used CLion before for my code in C and C++, but afaik, it lacks assembly support.
Which IDE would you recommend? I am using Windows, but have a Ubuntu distribution as VM, which I could use as well, in case Windows isn't the best choice

I am using Vim. VSCode is a good one to.

Ah okay, thank you very much :)


Integrate jupyterlab-lsp to Elyra 2.0

Elyra users would benefit from a full integration with the jupyterlab-lsp extension. The Language Server Protocol provides a high level support for multiple programming languages, the integration with jupyterlab brings editor features such as autocompletion, code navigation, hover suggestions, linters and rename.
Currently, the extension supports JupyterLab >=2.2.0, <3.0.0, therefore it requires Elyra 1.0
Installation steps:

install jupyterlab and jupyterlab-lsp server extension
pip install 'jupyterlab>=2.2,<3.0.0a0' jupyter-lsp

install front end lsp
jupyter labextension install @krassowski/jupyterlab-lsp

install lsp server for languages of your choice (eg. python)
pip install python-language-server[all]

install elyra
pip install elyra && jupyter lab build

Support for JupyterLab 3.0 is already in progress. After a new release, it will be ready for Elyra 2.0 integration

Just to make sure, for 2.0 release, we want to make sure these are integrated as with git and it's transparent to the user

Just to make sure, for 2.0 release, we want to make sure these are integrated as with git and it's transparent to the user

Must have.

Must have.


Update to grobid 0.7.1

This PR supply:

update to grobid 0.7.1, since this version was not uploaded we ship the jars
update of docker to use the latest grobid docker image

Coverage decreased (-0.009%) to 27.574% when pulling 8ebb439be9fd73dd5743428edb136bd1176dd0ad on feature/grobid-update into d562fb2b3c64460ee6b09115bfb0c207ed5f469f on master.


Refactor Bluetooth logic into a RedBearDuo class

This change removes the RBLService and the supporting RBLGattAttributes class, and replaces them with a RedBearDuo class that has a simpler interface.
The new implementation uses features that require minSdkVersion 21 and Java 8, so the app build.gradle file is updated accordingly.

I've removed the references to RedBear Duo, renaming RedBearDuo to BLEDevice and RedBearDuoUtil to BLEUtil. There are better names.
The code is still tightly coupled with the .ino implementation because it relies on the specific characteristics that are set up on the device to emulate a data channel. But none of that is specific to the RedBear Duo board. It works with anything, so long as the right characteristics are set up on it in the right way.
For the listener, you can refer to nested listeners with syntax like BLEDevice.Listener, which has similar readability to something like BLEDeviceListener. But it doesn't really matter to me one way or the other, so I promoted the listener interface to the top level as BLEListener.

Thanks Chris. Makes sense. Really thankful for your continued work here and explaining your design rationale a bit more. I hope to have time to review this in the morning and will likely then merge.
@EdigaHe, can we credit Chris with +1 bonus points (5% of total assignment) for his work on this please?

Yes, I will credit Chirs with +1 bonus points for his effort. Thanks Chris.

Thanks! :)


Restructured Compiler to use Transforms. Added an InlineInstance pass.

Transforms are new unit of modularity within the compiler.
Replacement for #154
I created a new PR to rebase the old one on master and resolve any conflicts.
I also wanted to fixup the inline instances pass.
It turns out there is kind of a problem, it inlines a module, but then leaves it there so that in the emitted Verilog there is a module with no instantiations. This is problematic in that Verilator cannot tell what the top-level module is (and I imagine there is a similar problem in VCS). Users can, of course, specify the top-level module at the command line, maybe this is the right way to do it. We could also consider removing any modules that are no longer instantiated from the circuit, perhaps in the InlineInstances pass, perhaps in a later pass (like move Legalize to after it InlineInstances and do it there?), or perhaps in the Verilog Emitter.
Thoughts?

I ran this inlining a random module in rocket-chip (Reorder Queue), and it worked, it passed all the assembly tests!

Added a commit that changes the testing to use --top-module when invoking Verilator. It seems that most people will easily be able to specify their top module (and can get it from the circuit if they want), so perhaps this is the right way to do it.

cool stuff


JSON must not allow last comma in Array or Object literals.

:echo json_decode('[1,2,3,]')
:echo json_decode('{"foo":"bar",}')

This must be errors.

:echo json_decode('[1,2,3,]')
:echo json_decode('{"foo":"bar",}')

This must be errors.

The function is for decoding JSON, not to check the syntax.  I prefer
for it to be "forgiving", only give an error when decoding fails or the
input looks wrong.  A trailing comma is accepted in many other places,
and I think that's a good thing.  Perhaps the JSON standard can be
amended to allow for it.
--
An actual excerpt from a classified section of a city newspaper:
"Illiterate?  Write today for free help!"
/// Bram Moolenaar --<EMAIL_ADDRESS>-- http://www.Moolenaar.net   \
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \
\\  an exciting new programming language -- http://www.Zimbu.org        ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

No reply on my comment, therefore closing.


Print remove message when removing an item from a file

Codecov Report

Merging #532 into master will decrease coverage by 0.03%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           master     #532      +/-   ##
==========================================
- Coverage   38.65%   38.62%   -0.04%
==========================================
  Files          25       25
  Lines        2059     2061       +2
==========================================
  Hits          796      796
- Misses       1263     1265       +2

Impacted Files
Coverage Δ

instabot/utils.py
66.66% <0%> (-3.11%)
:arrow_down:

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 1ead499...34a95d8. Read the comment docs.


[CLI] Keras WandbCallback logs summary of last epoch instead of best

Description
WandbCallback docs:

WandbCallback will set summary metrics for the run associated with the "best" training
step, where "best" is defined by the monitor and mode attribues [sic, typo].

But in practice the summary metrics are values from the last epoch, except for extra best_<monitored_metric>.
Wandb features
wandb.integration.keras.keras.WandbCallback
How to reproduce

Link to a reproducible script we can run to see the bug
Describe what we have to do in order to trigger the issue
Add a zip file with the run folder

model.fit(X_train,
            y_train,
            validation_data=(X_test, y_test),
            callbacks=[WandbCallback(monitor="val_loss", mode="min")]
        )

model produces multiple other metrics
model is trained in several epochs and the best one (where loss is minimal) is not the last one
wandb summary contains:

best_val_loss - correct value from best epoch
other metrics - value from last epoch (in contrast to the docs)

Environment

wandb==0.12.4
OS: Ubuntu 18.04
Environment: virtualend,
Python Version: 3.6.8

We are closing this due to inactivity, please comment to reopen.


Feature Request: Yup-like Conditional Schema Validation with .when()

Proposal: Add Yup-like Conditional Schema Validation (.when())
Problem Statement
Zod currently lacks an elegant way to handle conditional validation similar to Yup's .when() method. This makes it challenging to implement dependent field validations, especially in complex forms where validation rules depend on other field values.
Current Solutions and Limitations
1. Using .refine()
// Current approach using refine
const schema = z.object({
  employmentType: z.enum(['employed', 'self-employed', 'unemployed']),
  companyName: z.string().refine(
    (val, ctx) => {
      const employmentType = ctx.parent.employmentType;
      if (employmentType === 'employed' && !val) {
        return false;
      }
      return true;
    },
    { message: 'Company name is required for employed individuals' }
  )
});

2. Using .superRefine()
const schema = z.object({
  employmentType: z.enum(['employed', 'self-employed', 'unemployed']),
  companyName: z.string(),
}).superRefine((data, ctx) => {
  if (data.employmentType === 'employed' && !data.companyName) {
    ctx.addIssue({
      code: z.ZodIssueCode.custom,
      message: "Company name is required for employed individuals",
      path: ["companyName"]
    });
  }
});

3. Using Separate Schemas with Union
const employedSchema = z.object({
  employmentType: z.literal('employed'),
  companyName: z.string().min(1, "Company name is required")
});

const unemployedSchema = z.object({
  employmentType: z.literal('unemployed'),
  companyName: z.string().optional()
});

const schema = z.discriminatedUnion("employmentType", [
  employedSchema,
  unemployedSchema
]);

Limitations of Current Approaches

Verbose and complex code
Less readable and maintainable
Harder to reuse validation logic
Not as intuitive as Yup's approach
Difficult to handle multiple dependent fields

Proposed Solution
1. Basic .when() Implementation
// Simple field dependency
const schema = z.object({
  employmentType: z.enum(['employed', 'self-employed', 'unemployed']),
  companyName: z.string().when('employmentType', {
    is: 'employed',
    then: (schema) => schema.min(1, "Company name is required"),
    otherwise: (schema) => schema.optional()
  })
});

2. Multiple Field Dependencies
// Multiple field dependencies
const schema = z.object({
  country: z.string(),
  state: z.string(),
  zipCode: z.string().when(['country', 'state'], {
    is: ({country, state}) => country === 'US' && state === 'CA',
    then: (schema) => schema.regex(/^\d{5}$/, "Must be 5 digits for US/CA"),
    otherwise: (schema) => schema.optional()
  })
});

3. Array-based Validation
// Array validation
const schema = z.object({
  hasPhones: z.boolean(),
  phones: z.array(z.string()).when('hasPhones', {
    is: true,
    then: (schema) => schema.min(1, "At least one phone required"),
    otherwise: (schema) => schema.max(0)
  })
});

4. Chaining Multiple Conditions
// Chained conditions
const schema = z.object({
  age: z.number(),
  income: z.number()
    .when('age', {
      is: (age) => age >= 18,
      then: (schema) => schema.min(1000)
    })
    .when('age', {
      is: (age) => age >= 65,
      then: (schema) => schema.min(2000)
    })
});

Type Safety
// Type-safe implementation
type WhenOptions<T> = {
  is: boolean | ((value: any) => boolean);
  then: (schema: z.ZodType<T>) => z.ZodType<T>;
  otherwise?: (schema: z.ZodType<T>) => z.ZodType<T>;
};

declare module "zod" {
  interface ZodType<T> {
    when<U>(
      field: string | string[],
      options: WhenOptions<T>
    ): ZodType<T>;
  }
}

Implementation Considerations
Path Resolution:

Support for deep path resolution (e.g., 'user.profile.type')
Array index access
Multiple field dependencies

Type Inference:

Maintain type safety throughout conditions
Handle optional fields correctly
Support for discriminated unions

Performance:

Efficient validation of dependent fields
Caching of intermediate results
Minimal overhead compared to current solutions

Examples of Complex Use Cases
1. Form with Dynamic Sections
const formSchema = z.object({
  formType: z.enum(['personal', 'business']),
  personalInfo: z.object({
    name: z.string(),
    ssn: z.string()
  }).when('formType', {
    is: 'personal',
    then: (schema) => schema.required(),
    otherwise: (schema) => schema.optional()
  }),
  businessInfo: z.object({
    companyName: z.string(),
    ein: z.string()
  }).when('formType', {
    is: 'business',
    then: (schema) => schema.required(),
    otherwise: (schema) => schema.optional()
  })
});

2. Multi-step Validation
const multiStepSchema = z.object({
  step: z.number(),
  email: z.string().email().when('step', {
    is: (step) => step >= 1,
    then: (schema) => schema.required(),
  }),
  password: z.string().when('step', {
    is: (step) => step >= 2,
    then: (schema) => schema.min(8),
  }),
  profile: z.object({
    bio: z.string()
  }).when('step', {
    is: (step) => step >= 3,
    then: (schema) => schema.required(),
  })
});

Benefits

More declarative validation logic
Better code organization
Easier migration from Yup
Improved readability
Better maintainability
Reduced boilerplate
Type-safe conditional validation

Next Steps

Gather community feedback on the API design
Create proof of concept implementation
Write comprehensive tests
Document edge cases and limitations
Create migration guide from Yup

Questions for Discussion

Should we support async validation in .when() conditions?
How should we handle circular dependencies?
Should we support multiple .when() conditions on the same field?
How can we optimize performance for large forms?

Hello, there has been some talk about it on twitter.
https://x.com/colinhacks/status/1866402800105845064


Chrome Extension manifest.json

Is there a way to change prerelease from 0.0.1-2 format to be formated like <IP_ADDRESS>?
Google states that a manifest.json versionnumber must be between 1-4 dot-separated integers each between 0 and 65536.

Unfortunately not as that would not be valid semver.
The module https://github.com/npm/node-semver won't even parse it

What other options than semver could be looked into then?


Fix rasterio builds in docs

[ ] Closes #xxxx
[ ] Tests added / passed
[ ] Passes git diff upstream/master | flake8 --diff
[ ] Fully documented, including whats-new.rst for all changes and api.rst for new API

The pinned version of rasterio we use for the doc builds isn't available anymore: https://github.com/conda-forge/rasterio-feedstock/pull/36
Tests:

builds: https://readthedocs.org/projects/xray/builds/5796746/
displays correctly:  http://xarray.pydata.org/en/fix-docs/auto_gallery/plot_rasterio.html#sphx-glr-auto-gallery-plot-rasterio-py

Works for me, thanks!
Feel free to merge with this is working


Meadow UN step fails because of bad zip file

The etl step data://meadow/un/2022-07-11/un_wpp fails because zipfile.BadZipFile: File is not a zip file.

Looks like a potential case of this one, which we thought we fixed:

https://github.com/owid/etl/issues/420

Could not reproduce. The problem disappeared once the walden zip file was deleted, meaning that it was a Walden corruption problem, but it might have happened before the earlier fix was shipped.


Remove NonNilColumnDefault exception from ranked-model.rb

For your consideration...
Raising the NonNilColumnDefault exception causes the Rails app to not even boot.  Allow users to react to this requirement without crashing their application after adding the gem.

Hi @vanboom, what does .fatal do in this situation. Does it prevent the app from running until the problem is fixed. If it just logs out and carries on then I'm not a huge fan. This is something that needs to be fixed right from the start.
Perhaps we could improve the error raised?

The logger message simply prints out the requirement but does not cause an exception.  Thanks for considering this change.  The reason we suggested it was that we added ranked-model to our Gemfile, then the app crashed with the exception because our rank column had a default value.  The exception kept us from running rake db:migrate, so the gem had to be removed while we fixed the database migration, then caused two version releases instead of one.    So our suggestion would be to print a warning similar to the way gems print deprecation warnings without raising a formal exception.   Thanks for a brilliant gem!

Closing this since we couldn't come to an agreement. I don't think it's too unreasonable to expect the database conditions to be correct when the ranking is declared on boot. Perhaps the workaround would have been to create a new column for the ranking and then rebuild the list based on the old gem's ordering, then remove that column. There were just a lot of issues where users were setting a default on the column, so this avoided all that pain for me.

Thanks for reviewing this.  Imho, having the exception block the rake migration step which would allow the dev to correct the database condition is too aggressive.  The warning method would allow devs to correct the migration  without the extra steps of removing and re-adding the gem.  Rake should be allowed to run.  Thanks again for your consideration.

Fair enough. We just need to figure out how to detect the CLI environment vs a running app. I definitely don't want the app to boot if there's a default column value.

Turns out the check is in a middleware: ActiveRecord::Migration::CheckPending. Not sure if it's gross to add a middleware for our purposes?


composer: containerization and CI

### Tasks
- [x] define a Dockerfile for the `composer` instance
- [ ] connect to rollup execution node and sequencer instances
- [x] integrate into CI

Closed as part of #192


Question: Is there a color/brush resource to display validation error text?

I know there is some work started for input validation and wondering if some theme resource were created which developer can also use?

I believe it will use the SystemErrorText color

You can use SystemErrorText, but that is defined only in October 2018 Update (17763 aka "Redstone 5") or later builds. The other option if you want to go further down level is to use your own resource.