Add EmbeddedNormalizer

Related: #166 #181
Not sure if this is still relevant since #375 was merged...

@dunglas Will rebase if this is still useful...

@teohhanhui it should work without the need for a new normalizer in master now thanks to #375. Can you try?

That's great! I'll try upgrading soon...

#422 fixes the last problem related to this PR (and it proves it works for dates, but it is a generic solution).

@teohhanhui can you try with master? By the way, without tests, there's almost no chances that we merge it :)

@dunglas  @sroze It's still a problem when using Doctrine Embeddables. They should be able to be marked as @ApiResource (for the whole set of features that come with that).
Also, currently the normalization / denormalization chain of ItemNormalizer stops when a Doctrine Embeddable is encountered (because it's just treated as a normal object and handled by ObjectNormalizer). This might not be a problem if #528 is implemented (our current process is inherently flawed because it depends on an unbroken chain from the top).


Illumina subworkflow read mapping/variant calling

BWA MEM or Minimap2 short read mapping
variant calling with Freebayes

Added in 3.5.0 with #78


fix: curl import empty headers issue fixed

Description
This PR fixes:

When we import api request using curl and if api request does not have any header values, the imported request looks like below, empty key value headers are missing.

PR fixes following issue(s)
Fixes #19214

if no issue exists, please create an issue and ask the maintainers about this first

Media

A video or a GIF is preferred. when using Loom, don’t embed because it looks like it’s a GIF. instead, just link to the video

Type of change

Bug fix (non-breaking change which fixes an issue)

Testing

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Also list any relevant details for your test configuration.
Delete anything that is not relevant

[x] Manual
[ ] Jest
[x] Cypress

Test Plan

Add Testsmith test cases links that relate to this PR

Issues raised during DP testing

Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR)

Checklist:
Dev activity

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ x] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] PR is being merged under a feature flag

QA activity:

[ ] Speedbreak features have been covered
[ ] Test plan covers all impacted features and areas of interest
[ ] Test plan has been peer reviewed by project stakeholders and other QA members
[ ] Manually tested functionality on DP
[ ] We had an implementation alignment call with stakeholders post QA Round 2
[ ] Cypress test cases have been added and approved by SDET/manual QA
[ ] Added Test Plan Approved label after Cypress tests were reviewed
[ ] Added Test Plan Approved label after JUnit tests were reviewed

Server side changes LGTM.

/build-deploy-preview


sh: 1:  PatchDock/pdb_trans: not found

I got following issue:
"""
Transforms remain after interface clustering with RMSD 2 : 7
Ligand PDB: Init1.pdb
Receptor PDB: Init0.pdb
/home/phzd/rosetta/PatchDock/pdb_trans  -0.62104 0.09147 -0.56504 -3.63067 15.07675 40.93111 < Init1.pdb >> Patchdock_output.1.pdb
sh: 1: /home/phzd/rosetta/PatchDock/pdb_trans: not found
"""
when I cd to my PatchDock_fold  i.e. cd  /home/phzd/rosetta/PatchDock  and run  ./pdb_trans, but it returns to me
' -bash: ./pdb_trans: No such file or directory'

Hi. Is this still relevant?
If so, please contact me by email<EMAIL_ADDRESS>and I'll try to help.
Best, Daniel.

I have the same problem. Have you solved it?

./pdb_trans: No such file or directory'

ubuntu can run :
sudo apt-get install lib32z1

ubuntu can run :
sudo apt-get install lib32z1
Thank you!


Platform AWS Controller for Hypershift provisioning

Problem
To provision Hypershift, it would be useful to have a kubernetes API approach for provisioning Hypershift HostedClusters on the ManagementCluster.
Prototype 1
Wrap the Go code from the Hypershift CLI, while still maintaining the CLI capability to configure the required AWS infrastructure.  This was done by linking a controller reconcile loop to the HostedClusters kind.  It also leverages an AWS Credentials and  OpenShift Pull-Secret as kubernetes secrets.

Prototype 1
Working code can be found here: https://github.com/jnpacker/hypershift/tree/platform-aws-controller/examples/cluster-demo
Todo

Need to separate HostedCluster and NodePool provisioning, the user/console should create both resources individually
Need to add the AWS Provider Credential reference to HostedCluster
Need to determine if the route53 us-east-1 relationship is for a reason. @csrwng answered this question, "Global resource, works best with us-east-1"

Questions to be answered (Design decisions)

How to run the controller

Should this be in the existing HostedCluster controller (not now as it runs to long for each create/destroy)
If run as a separate controller, use 1 or 2 workers.  2 is better, but deletes can still cause queueing as the operation is 60+s

Deletes are very slow 60+ seconds
Create is < 30 seconds

Could use the controller to spawn jobs for create/delete (introduces a lot of management overhead)
Could run 2x Create controllers and 1x Delete controller (gives known use of resources, can use the same binary with a param switch, treats delete, more like a garbage collection queue)

Need to store the securityGroup on the HostedCluster so it will be available for the FIRST NodePool. Currently if not provided it tries to read this from the Default (FIRST) NodePool.

Met with the team MON NOV, 15, 2021

Move forward with the Job approach
Break the nodePool off
Create a Platform resource to see what it looks like compared to the hostedClusters, can it be 1x Platform TO MANY HostedClusters??
Split the access control, can one account be used to provision control plane and one account be used to provision the workerPlane

Prototype 2

[x] Disconnected nodepool and hostedcluster provisioning, so you need to create those two resources
[x] Created a ProviderPlatform resource that contains all the AWS related goodies, and creates them if they are missing
[x] ~Dropping the job idea, as the AWS pieces for now are fast enough~
[ ] Teach the HostedCluster and NodePool controllers to read values from the ProviderPlatform resource.

Prototype is working except for the last step.
You can copy the details from ProviderPlatform to HostedCluster and NodePool and it will work.
https://github.com/jnpacker/hypershift/tree/add-platform-type

It was decided after further review with the team, that a platform was not the approach they wanted to take.  We will revisit this in a few weeks once more Platforms are on board.  For the time being I will close this out.
The work was refactored and is being used in ACM to support the push one button use story (create infra and Hypershift HostedCluster).  It can be found here: https://github.com/jnpacker/hypershift-curator-controller


Typehead: make query a twoWay prop

As stated here #149. This makes the query a two way property. Docs also updated.

I changed query for value, the standard name in form elements, so that pull is old and discarded.
Greeting.


Can't create a task

When I create a task on the Task Board page, I attempt to input a number greater than 4 in the year field. After entering the number and clicking 'Add,' a window pops up, but nothing happens. In the console, I see the error message 'POST https://planme-3366bb9023b7.herokuapp.com/api/users/f51c7404-cbd6-4ba0-abe9-8374ece28531/tasks/ 400 (Bad Request).'

Thanks for your observation. We will looking into it.


Advertise auto_signup OIDC setting in ReadTheDocs

Requested in https://github.com/zulip/zulip/pull/19276#issuecomment-883903078

Merged, after some light copy-editing, thanks @mateuszmandera!


PR: Improve the test suite reliability on CIs

Description of Changes

Restart the test suite from the last segfaulted test on Linux and Mac. That should decrease the time spent on CIs and increase the chances of making it pass.
Skip some tests that were segfaulting or hanging too much.
Run tests that use pip packages on Linux with PyQt 5.12 because it gives less segfaults.
Use conda packages on Mac because they seem to give less segfaults.

Affirmation
By submitting this Pull Request or typing my (user)name below,
I affirm the Developer Certificate of Origin
with respect to all commits and content included in this PR,
and understand I am releasing the same under Spyder's MIT (Expat) license.

I certify the above statement is true and correct: @ccordoba12

@dalthviz, this is ready for review.


Multiplayer commands fix

Call now and get 2 more bugfixes for free.

Your ideas are intriguing to me and I wish to subscribe to your newsletter!
Looks great - was able to get "op" with headless, have two clients chatting with good behavior either from the main console or the chat console, get notification messages, use commands, and so on
Looks like this fixes #1482 :-)
I added one tiny comment about a magic number, but the changes look overall minor to me. I don't have much background to think about the pros and cons of using a String vs an Enum in one place.
@immortius any observations? Since this has been such an active topic I wanted to still run it by you, but am happy to go back to merging stuff like this that appears minor if you're happy :-)

I don't understand why this replaces the message type enums with string constants. That didn't need to be changed.

From what I can tell this fix breaks the message coloring for different message types.

Yes, why have the additional complexity of specifying a message type, if it only provides a color? The color can be set by the FontColor.getColored bethod anyway.

It isn't just about providing color, it is also providing a type for filtering/display purposes. A view may be set up to only show chat messages for instance. And I prefer something a little less flimsy than strings be used.
Notably, you did not mention these changes in the PR description, and it isn't part of the bug fix.

Went back to look at colors, not sure exactly which - player names are colored, auto-completion is colored, unknown command stuff is in red. I'm probably missing some :-)
Filters sound sensible
I did spot one surviving bug: When attached to a headless server without "op" right the client still doesn't get a permission denied error (for instance for "giveBlock dirt") - it just prints on the server's console, client side gets no output

Anyway, if possible can we split the changes to message type into a separate PR and I'll write up a full set of requirements for us to consider them in context of. Cheers.

IIRC this came up on IRC the other day and the MessageType was involved in the command fix. Maybe something about serialization or missing type handlers, or what not, I could easily just not be remembering it right. In either case simplifying it (via String) was a possible fix to the multiplayer command bug, so tearing the two apart to handle separately might not be as easy as we'd like
With a little luck I'm just remembering wrong :-)

Well, it worked before so I'm sure commands could be changed to work again without changing MessageType.
It probably isn't a perfect system anyway though. The requirements I had in mind were:

Messages have a type associated with them.
New message types should be introducable by modules.
Message types should be usable for filtering for different displays (e.g. console vs chat)
Each message type should have a default color, that is the color of the message if not overridden by color tokens (or if their use is disallowed for that message type, which might be sensible for chat messages). This shouldn't be handled by individual message submitters - their should be a color per type and linked directly to the type. Individual displays may override this. May also be nice to allow the color to be overridden for the entire type by modules.

Using enums over strings has a couple of other advantages, including clarity (void send(String, MessageType) vs void send(String, String)), reduced possibility of error (cannot misspell an enum) and that the enums could have ids assigned to them up front and these ids can be transmitted rather than their string values (reduces bandwidth requirements for messages). The last cannot be readily done for string constants because they cannot be discovered up front.

The problem was, that MessageType isn't an enum, but an interface. Then there was an enum implementing the interface. How would that be sent to the client? Also, how are Events sent to clients and vice versa?

Currently (or at least, before the command system rework), we don't ever send message type anywhere. There is an event class for each message type, and that provides the message - they type is created by the message event, never transmitted. So the question of how to serialize them is not relevant. They could be serialized by finding all enums implementing the interface via Reflections if need be.
Events are sent by being serialized using our persistence framework (same thing that is used to load and save the game, and to transmit entities) and then sent in serialized form. Essentially the sending of events is triggered by the annotations on the event (@ServerEvent for events that should be actioned by the server (will only work if sent to a network entity), @OwnerEvent for events that should be sent to the player owning the entity the event is sent to, and @BroadcastEvent for events sent to all players).

Having a bit of a look into what is actually going on:

The permissions are stored on the player's character, so they lose all their permissions when they die. Not related to the current issues, but I thought worth pointing out.
All commands default to requiring "op" permission. I really think we should switch to default no permission. Chat commands currently require "op" permission because they don't specifically say the required permission is "".
During command processing, messages should not be added directly to the console. The message events (primarily ConsoleMessage) should be sent to the calling client entity, which will result in them being sent across the network if necessary. This is missing in the permission handling.

Bump - with #1496 we have the tiny fix option in PR form, but it'll conflict with this PR. @Limeth how would you like to proceed? Would you prefer tweaking this PR so it can be merged instead (if doable with minor easy work), or close it in favor of #1496 then make a new one later with any additional fixes from here?

Replaced by #1496


Fail to generate kubectl docs

As I need to update the kubectl docs in k8s io PR 3540, but I fail to generate kubectl docs according to the doc for reasons:

k8s.io/kubernetes/cmd/genkubedocs/gen_kube_docs.go mentioned in the doc can generate docs for other k8s components except kubectl.
I find that k8s.io/kubernetes/cmd/gendocs/gen_kubectl_docs.go is for kubectl docs generation, but it generates .md files for every command instead of the kubectl.yaml.

@pwittrock Is the doc out of date? or my usage is not correct.

@supereagle Good catch.  Updated the instructions.  Let me know if they work for you now.

@pwittrock  It works now, thanks.
The kubernetes PR 44607 to update kubectl apply doc is merged into master branch, but not cherry-picked into release-1.5 and release-1.6 branch. I am not sure whether there is need to update the kubectl.yaml in this repo.

Yes, you won't see the changes without cherrypicking the change.  I guess you could manually update the kubectl.yaml if we just want to update the docs without cherrypicking the change.

I have submitted the PR #17 to update kubectl.yaml.


ENH: multithreaded implementation of convert_sas_database

[ ] Add option for multithreading: multi=False by default
[ ] Benchmark multithreaded vs. standard conversion
[ ] Close with best solution

Version 0.0.2.dev3 has multithreading, but it is not clear if it is faster or not.

[ ] Benchmark multithreading vs. single thread execution of convert_sas_database

Comments updated to consolidate tasks


Use signal instead of sigaction.

signal is supported on Windows whereas sigaction is not.
(note: I've not tested this, so you might want to make sure it produces identical behaviour)

Seems to work fine, thanks :+1:


Tests modernize

Followup for #158
applied to the malloc package
to run in watch mode:
yarn test --watch
to debug:
yarn test --inspect-brk
you might first need to put a breakpoint, sometimes the brk not really working
If you run it inside vscode terminal with autoattach, works beautifully.

Thanks @Bnaya - I will try this out over the weekend, but as per my other comment (on #158), let's tackle this a bit later.
(Also, in the future, can you please open PRs against the develop branch (not master)? The latter is usually the least up-to-date branch and only contains release state...) It's also mentioned in the contributing doc and just helps to avoid merge conflicts... thx! :)

Sure, my mistake for not reading the docs before

No worries, just a friendly reminder! :)


Incompatibility with FishNoStuck (and possibly Fish of Thieves) causing server crash

What it says on the tin! A fish from Fish Of Thieves was erroring, though seemingly due to fishnostuck Neruina was unable to remove it.
Fabric 1.20.1
FishNoStuck v1.0.1
Neruina v1.3.0
Fish of Thieves v0.3.4
Crashlog: https://mclo.gs/ZcEwHbn
I have also reported this issue to FishNoStuck.

Fixed in a future version

Fixed in 2.0.0-beta.1


地址是m3u8格式的

💬 Questions and Help
报这个错：
Warning: Failed prop type: The prop id is marked as required in PlayerContainer, but its value is undefined.
这是为什么呢
<Player sources={{cover: 'http://<IP_ADDRESS>:6011/hls/hkstv/hls.m3u8'}} />这是代码

cover is video image cover props
see this example
https://github.com/zhihu/griffith/blob/master/example/hls/App.js


[WORKAROUND] ConvAsm3x3U disabled

This is workaround for #609. Performance may be affected.

The ConvAsm3x3U is pretty old version. I don't expect noticible performance win over RxS variation.
If this is the case I vote for removing this solver all together.

@Kirpich30000 Do you approve the workaround?

Needs to investigate & discuss with @Kirpich30000

Superseded by #643


Testing

Python unittests for VR connection, DJI Creation, Mavros Creation, DJI control tasks, and Mavros control tasks.

Also may be worth investigating using test suites to organize test cases along with setup and teardown methods.


Options don't effect how the buffer tabs look.

Hi, the options do not change how the tabs on the top of the page look. I have tested nearly all the settings in the README and none of them change how the tabs look. You can see a demonstration in this picture.

I copied and pasted some else's configs thinking I did something wrong (here) but that didn't change anything. My configuration for lightline and this plugin is in my dotfiles

@theFr1nge did you commit the lightline config to your dotfiles repository? I could not find any configuration for lightline or lightline-bufferline.

Oops, my bad, forgot to push the changes. I just committed everything.

@theFr1nge there is still no lightline config...

@mengelbrecht I am really sorry about that, some mixup happened with my gitignores and my changes didn't get pushed. I definitely fixed it this time though.

Never mind. How do you source the plugin configuration files in the local/share/vim/plugin folder? I saw that you only explicitly source the plugins.vim file here.

Vim automatically sources every file in that directory. I explicitly sourced plugins.vim because some of my settings in my vimrc depend on the plugins.

@theFr1nge I could not reproduce the issue. However, I had to manually source the files in the plugin folder, as vim did not load them automatically.
I suggest that you move the lightline and lightline-bufferline settings directly into your vimrc config to see if the issue is caused by the way your dotfiles repository and vim configuration files are setup.
If that does not work please create a minimal vimrc config which reproduces the issue so I can have a more detailed look.

Yep... that was it. Apparently vim sources ~/.config/vim/plugins and not ~/.local/share/vim/plugins on startup. I moved the folder over there and it is working a like charm. Thanks for your help and making such a great plugin!


Unable to install extension 'ms-dotnetttools.dotnet-interactive-vscode' as it is not compatible with VS Code 1.69.2

Describe the bug
I'm unable to uninstall the .net interactive extension on my work laptop, I get an error saying "Command 'Extensions: Install from VSIX..' resulted in an error (Unable to install extension 'ms-dotnetttools.dotnet-interactive-vscode' as it is not compatible with VS Code 1.69.2.)"
Note that I'm able to install the extension without issue on my home laptop which is also running vs code 1.69.2.  I suspect it's a work laptop problem, but would helpful to understand what a work around might be.
Please complete the following:
Which version of .NET Interactive are you using? (In a notebook, run the #!about magic command. ):

OS

[ ] Windows 11
[ x] Windows 10
[ ] macOS
[ ] Linux (Please specify distro)
[ ] iOS
[ ] Android

Browser

[ ] Chrome
[ ] Edge
[ ] Firefox
[ ] Safari

Frontend

[ ] Jupyter Notebook
[ ] Jupyter Lab
[ ] nteract
[x ] Visual Studio Code
[ ] Visual Studio Code Insiders
[ ] Visual Studio
[ ] Other (please specify)

Screenshots
If applicable, add screenshots to help explain your problem.

Are  you still seeing this issue?

hi, just checked, the issue has gone now, not sure if this is connected to your suggestion or that fact the network team have made some new exceptions.  Anyway great to be using interactive notebooks again, keep up the good work!


Add more examples

It could be useful to have more example apps, e.g.:

Result.combine example
sync results example separated from async results example

Ok let's do it


Please annotate tips with applicable Visual Studio 2017 versions

It's disheartening to see a really cool feature in the docs and then go to use it only to have it not work because it is an Enterprise-only function and all I have is Professional (or Community). Could you please find some very obvious way to indicate Enterprise-only functions?

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

ID: 60e598ea-9607-4e7e-e708-84573519ccaf
Version Independent ID: 75f00085-0835-78b6-1098-1be6371f5c07
Content: Increase your productivity for .NET development - Visual Studio
Content Source: docs/ide/visual-studio-2017-for-dotnet-developers.md
Product: visual-studio-dev15
GitHub Login: @kuhlenh
Microsoft Alias: kaseyu

Examples on this page: Live Unit Testing (only Enterprise) and CodeLens (only Enterprise and Professional) bear no indication that they are version-specific until the links are clicked and the next page of documentation is read.

@geekycrooner - I dont think you are missing something "really cool" with those two features. They both slow the IDE down and you cant really turn LUT off =/


Separate out repos for Docker CE Ubuntu Jammy/Focal

Suggested as a fix for sync failures causing the following log message:

Cannot create repository version since there are newly added packages with the same name, version, and architecture, but a different checksum. If the log level is DEBUG, you can find a list of affected packages in the Pulp log.

Running a quick sync here to test: https://github.com/stackhpc/stackhpc-release-train/actions/runs/7614866576/job/20738124482


Hardcoded dependency version for model pom.xml

Feature Request
Description of Problem:
When packaging legend model to gitlab, we generate a multi module maven project. The project is built using specific legend SDLC and legend engine dependencies where version is hardcoded in the legend SDLC code.
@see: https://github.com/finos/legend-sdlc/blob/master/legend-sdlc-server/src/main/java/org/finos/legend/sdlc/server/project/ProjectStructureV11Factory.java#L81
@see: https://github.com/finos/legend-sdlc/blob/master/legend-sdlc-server/src/main/java/org/finos/legend/sdlc/server/project/ProjectStructureV11Factory.java#L87
        private static final String LEGEND_ENGINE_VERSION = "2.37.0";

As a consequence, model built on a specific version of the runtime would not benefit from the latest runtime features at compile time.
Potential Solutions:
Capture the version of dependencies used for SDLC server and inject those exact version to pom.xml generation. This could be done by creating an application.properties file where versions are injected at compile time
legend-sdlc-server/src/main/resources/legend.properties
org.finos.legend.sdlc       ${legend.sdlc.version}
org.finos.legend.engine     ${legend.engine.version}

legend-sdlc-server/pom.xml
        <resources>
            <resource>
                <directory>/</directory>
                <includes>
                    <include>legend.properties</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>

legend-sdlc-server/src/main/java/org/finos/legend/sdlc/server/project/ProjectStructureV11Factory.java
protected static String getEngineVersion() throws IOException
    {
        Properties properties = new Properties();
        properties.load(MavenProjectStructure.class.getResourceAsStream("/legend.properties"));
        return properties.getProperty("org.finos.legend.engine");
    }

Those legend engine/sdlc versions are actually placeholders. We leverage the maven version plugins to replace the legend sdlc/engine version with the latest released version before running the build on a workspace/release.
See https://github.com/finos/legend-sdlc/blob/master/legend-sdlc-server/src/main/resources/org/finos/legend/sdlc/server/gitlab/finos/gitlab-ci-1.yml#L34
If we were to follow your suggestion, we would need to implement a way for users to update to the latest sdlc/engine version, since if a user creates a project at different times they would generate a project with different sdlc/engine versions.

Thanks! I did not know those were updated at compile time. Makes perfect sense.
The problem I face is that I have a custom legend engine / pure this artifact depends on (see https://github.com/finos/legend-engine/pull/312). Until that PR is approved, I won't be able to get any CI/CD and must manually update version to compile pure model. Any chance you could help with those active PRs?


feat(@schematics/angular): remove @angular/http as it's deprecated

@angular/http is no longer recommended to use for a new workspace. This unnecessary dependency increase installation time to getting started Angular.

@alan-agius4 What's the correct type?  Is this change fix?

fix(@angular/schematics): commit msg

Thanks. I'll fix the commit message after all tests passed as green.

It's ready to be reviewed!

It seems master branch issue about typescript version...

@lacolaco yeah, this PR will fix it https://github.com/angular/angular-cli/pull/12410
However, you need to rewrite your commit message as the validations are failing http://feat(@schematics/angular): add @angular/http as a dependency in universal

Thanks @lacolaco.

missed the window for 7.0-rc so this can't merge until master is targetting 7.1


Basic question

I am new to Rust, using this project to learn more.
Basic questions:

Do you take the computational graph and then create one kernel on the fly?
How do you create a simple 2D (or 3D) array with some data?

Hi,

Do you take the computational graph and then create one kernel on the fly?

In general multiple kernels are needed.  There is an example of this in the array_api README, which shows a graph with two "clusters" of nodes. Each cluster is compiled into a kernel at runtime.

How do you create a simple 2D (or 3D) array with some data?

You can get a rust io::Write from a parameter using Environment::writer(param). All the examples use this to load data from files into arrays.
A helper function to create a parameter and immediately copy a rust slice as its data is here: https://github.com/sjb3d/descent/blob/eba9d64ad5196a596f5806e457f02e5241f560d2/src/environment.rs#L204.
Hope that helps!

I'll close this since the answer above has a 👍, but feel free to re-open if there are more questions!


PHOENIX-4231: Support restriction of remote UDF load sources

Added feature to be able to add jars from an HDFS URI.
Restrict loading of jars to be only from the hbase.dynamic.jars.dir
directory.

Testing done:

Tested that the user is able to add jars from an HDFS URI reachable on the
network as well as local filesystem.
Tested that the user is unable to create a function where the jar is
loaded from any directory apart from hbase.dynamic.jars.dir.
Tested that HDFS URIs without scheme and authority work.

@apurtell @twdsilva @jtaylor-sfdc please review. Thanks.

Thanks for the patch, @ChinmaySKulkarni. Best person to review is @chrajeshbabu who originally added support for UDFs.

Sent out another patch for review. Let us close this p.r.


Add diffblue tests

We’ve produced a set of regressions tests for the following modules waltz-common and waltz-model. We’ve split the results of the analysis up to showcase the approach of two separate engines.  The total analysis time took 6 minutes and 35 seconds producing 1491 tests, we estimated that this would save your developers 124 workdays.

Manual Effort*
Diffblue Cover

Number of tests
1491
1491

Average time to write each
30 minutes
4 seconds

Days spent writing tests
124 workdays
6 minutes 35 seconds

* Manual effort assumes industry averages of 30 minutes per manual test and 6 hours productive time per day. (https://www.diffblue.com/goldman-sachs/)
The combined coverage per module of the two engine is 67.0% for "waltz-common" and 64.1% for "waltz-model"
We look forward to discussing the results.

Thanks for the generated unit tests, however we don't believe the benefit of adding them will outweigh the cost of maintaining them so we will not be folding this into our code base.


test(rust): move bats tests artifacts to a non-temporary directory to keep them in case of failure

Let's wait for @metaclips validation but that looks good to me. Question: how do we access those files once they have been created on CI?

We could use GitHub artifacts https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts


Move preview new supplier flow feature flag well into the future

We do this so functional tests that rely on current behaviour i.e. the legacy brief response flow, won't break on preview. If the feature flag is on then the legacy flow will break. By setting the flag well into the future, we can still use it for testing by individually manipulating briefs and setting their published time after the feature flag.

👍


helm chart does not support recently-added region to s3credentials

ref: https://github.com/cloudnative-pg/cloudnative-pg/pull/207
cluster spec (truncated):
  backup:
    barmanObjectStore:
      destinationPath: "s3://BUCKET
      endpointURL: "S3_ENDPOINT"
      s3Credentials:
        accessKeyId:
          name: s3-secret
          key: ACCESS_KEY_ID
        secretAccessKey:
          name: s3-secret
          key: ACCESS_SECRET_KEY
        # region: us-east

Error: [...] .spec.backup.barmanObjectStore.s3Credentials.region: field not declared in schema
I have deployed the operator via helm chart, version 0.13.1

Resolved with chart version 0.14


Update H4 in expandables

In updating the H4 for small screens we appear to have missed expandables.
Related issues and links:
https://github.com/cfpb/capital-framework/pull/751
https://[GHE]/CFPB/hubcap/issues/65
https://cfpb.github.io/design-manual/brand-guidelines/typography.html#web-hierarchy
Current behavior
Desktop: H4 (Avenir Next Medium 18px / 22px)
< 601px wide: H4 (Avenir Next Medium 18px / 22px)
Expected behavior
Desktop: H4 (Avenir Next Medium 18px / 22px)
< 601px wide: H4 (Avenir Next Medium 16px / 18px)
Steps to replicate behavior

https://www.consumerfinance.gov/consumer-tools/prepaid-cards/choose-the-right-card/

Screenshots
Current

Desktop
Mobile

Expected

Desktop
Mobile

Clarification, are we only using h4 when they are in a group? It looks like the default styles are set that way, and https://www.consumerfinance.gov/about-us/blog/ confirms it, but I want to make sure that's not an oversight.


Version 0.9 and higher is super slow while opening editor, project or files

After update to 0.9.0 my VSC got super slow while opening editor, projects or files takes 10 or more seconds.
Could be this machine related as i dont have any problems on another one. Tried to open editor after windows startup without any extra programs opened, still slow. Win 10 64bit

@wUFr another thought I had was if - once VS Code is up and running - you could see if reloading the application is also slow. For that you can just trigger View | Command Palette | Reload Window.
If that action turns out to be as slow, we have a chance to run a profiler to see where the time is spent. For that - before reloading - run Help | Toggle Developer Tools, click Profiles, then press the Start button and run the reload action. After that, press the Stop button. You should get a list of function calls and their timings. You can export this report from the little "Save" button next to "Profile 1" on the left.

This is #335

When i press "record" button in console, it freezes editor. Cant edit file or open command input; Can hover on top bad or stop recording, but that wont fix it + unable to close editor normal way, have to kill it in processes.
If you want i can record whole problem and put it as private video on YT

Thanks I think we got it and will release soon.

ok, let me know when you release it :+1:

To people hitting this issue: We might not be able to release a new version until next week. But there is a workaround:
If you can start Code eventually:

select File | Open Recent | Clear Items
restart and things should be fast again

If you cannot start Code:

close Code
locate storage.json (see https://code.visualstudio.com/Docs/supporting/FAQ#_how-do-i-opt-out-of-vs-code-autoupdates for how to find it)
delete the file or rename it
start Code

Sorry for the trouble :heart:


cmd/server: upgrade moov/ofac to v0.12.0

Codecov Report

Merging #55 into master will decrease coverage by 0.34%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master      #55      +/-   ##
==========================================
- Coverage   60.79%   60.45%   -0.35%
==========================================
  Files          16       16
  Lines        1732     1732
==========================================
- Hits         1053     1047       -6
- Misses        530      534       +4
- Partials      149      151       +2


Cant use laser blade

Whenever I have the laser blade out and try and use an anvil or crafting table it just disappears

it also doesn't show up in any crafting recipes


Remove cross compile

This removes support for scala 2.11

If we no longer publish for multiple versions, I think we can use the default release process of sbt-release, so there's no need to set releaseProcess. I think that the only thing we need to do is tell sbt-release that we want to publish signed releases:

Done it in 6e7dfac


Fastify-html whitespace issue

I found a big problem with whitespace characters, which increase the size of the final server response by 25% (197kb vs 149kb)
With this change, I increased the average number of requests from 968req/s to 1033req/s.
 return reply.html`<div id="wrapper">
      !${tiles.map(({ x, y }) => (
        server.html`<div class="tile" style="left: ${x.toFixed(2)}px; top: ${y.toFixed(2)}px"></div>`
      ))}
    </div>`

cc @gurgunday

Yeah, seems like it really helped for this benchmark, normally a compressor like brotli or gzip would help as well
Not sure if adding a minifier would make it faster or slower in the end

Minifer should be made in the new compilation step, like all other frameworks, but this introduces a new step, so the issue of DX vs. Perf.

Oh yeah, I see, and I can actually see it in fastify-html or ghtml one day if we can make it simple enough


Loosen TS version (use ^ instead of ~)

Looks like appveyor failed because #55 was not yet merged. Should I rebase my commit on top of that fix?

@bgoscinski Thanks for the PR :+1:
PR #55 is just an experimental workaround for what is possibly a bug in appveyor.
I'm going to go ahead and merge this seeing how the changes don't have anything to do with the failing tests.
/cc @Igmat


Milestone: Fibonacci function

Recursive Fibonacci is a nice next milestone because it needs some control flow operators and calls, which should really help establish the shape of the backend.
The steps are:

Implement if+else+end.

We'll need a stack for tracking nested control flow constructs. To start with there's only one kind of control-flow stack entry, for if/else/end, but eventually we'll have more. It can hold DynamicLables to keep track of the labels for branching.
The result value of an if can be carried by the stack just like normal operator results. (For now; later with on-the-fly register allocation it can be more sophisticated.)

Implement calls

This is a good time to generalize the handling of function signatures. I think we can just collect all the FuncTypes from the type section into a Vec and pass that around for now.
Optionally, to keep things simple for this step, we could limit support to just 6 integer arguments, to avoid having to deal with stack arguments just yet.

I've left out a lot of the low-level details here; feel free to ask for more detail!

I will work on that!

For calls, is it acceptable to do a post-processing pass? It would still make runtime linear, although it would no longer be single-pass. I think for us that's acceptable, although I'd have to confirm that.
Also there's no need to limit ourselves to integer arguments, floats can just be passed in integer registers like they are on sysv x64 anyway AFAIK.


Changes already integrated

New 1803:

Added a policy to turn off notifications network usage
It´s already in, see 9. Live Tiles and 17.5

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

ID: e8228962-7158-6be1-e791-e6535b88f343
Version Independent ID: 46e4c7f3-e8b0-ebc9-da58-b69149803937
Content: Manage connections from Windows operating system components to Microsoft services (Windows 10)
Content Source: windows/configuration/manage-connections-from-windows-operating-system-components-to-microsoft-services.md
Service: unspecified
GitHub Login: @brianlic-msft
Microsoft Alias: brianlic-msft

@gruppenrichtlinien can you provide more info here?

On the list:
What's new in Windows 10, version 1803 Enterprise edition
Here's a list of changes that were made to this article for Windows 10, version 1803:

Added a policy to turn off notifications network usage

You added this point, but this policy is already there since 1607/1703 or 1709. The same policy is defined in point 9. Live Tiles and again "new in 1803" under 17.5

@officedocsbot assign @mypil

@gruppenrichtlinien Thank you for reaching out and helping improve MS docs.  Please can you clarify if there is something that needs to be amended in the document?

@gruppenrichtlinien - can you please assist to give updates on the clarification question from lindspea? Thank you.

@mypil. sorry. I was wrong. The name of the policy is identical, but not the setting itself. I mixec it up.
10.: User Configuration > Administrative Templates > Start Menu and Taskbar > Notifications > Turn Off notifications network usage
18.5.: Computer Configuration > Administrative Templates > Start Menu and Taskbar > Notifications > Turn off Notifications network usage

@gruppenrichtlinien : Feel free to close this ticket, since your issue appears to be resolved.


How to get trajectory

I notice that your real time demo contains 3D trajectory, do you plan to release the trajectory model?

This trajectory is only about (x, y) and does not include depth information. However, we can explore how to use existing prior knowledge to design a 3D trajectory model.
The following is the single-person trajectory transform function:
def revise_skes_real_time(prediction, re_kpts, width):
    ratio_2d_3d_width = ratio_2d_3d * (width / 1920)
    # prediction: (M, N, 3)
    new_prediction = np.zeros((len(prediction), 17, 3), dtype=np.float32)
    for i in range(len(prediction)):
        new_prediction[i] = prediction[i]

        initial_distance = re_kpts[i]
        initial_distance = np.mean(initial_distance[[1, 4, 11, 14], :], axis=0)
        new_prediction[i, :, 0] -= (initial_distance[0] - 2*width/5) / ratio_2d_3d_width
        new_prediction[i, :, 1] += (initial_distance[1] - width/5) / ratio_2d_3d_width

    new_prediction[:, :, 2] -= np.amin(new_prediction[:, :, 2])

    return new_prediction

Thanks!!! helps a lot


bug: util.cmp.visible broken for blink.cmp

Did you check docs and existing issues?

[x] I have read all the LazyVim docs
[x] I have updated the plugin to the latest version before submitting this issue
[x] I have searched the existing issues of LazyVim
[x] I have searched the existing issues of plugins related to this issue

Neovim version (nvim -v)
0.10.2
Operating system/version
Windows 11 22631.4541
Describe the bug
Not sure if this utility function is still used anywhere in LazyVim itself, but thought it would be good to flag that recent refactors in blink.cmp have broken this function.
Steps To Reproduce
N/A
Expected Behavior
N/A
Repro
vim.env.LAZY_STDPATH = ".repro"
load(vim.fn.system("curl -s https://raw.githubusercontent.com/folke/lazy.nvim/main/bootstrap.lua"))()

require("lazy.minit").repro({
  spec = {
    { "LazyVim/LazyVim", import = "lazyvim.plugins" },
    -- add any other plugins here
  },
})

That's no longer used. Will remove


Add cockpit support to the API

Purpose or Intent
The goal is to add Cockpit support to the SSUI.
Testing
Test with https://github.com/ManageIQ/manageiq-ui-self_service/pull/106

ping @himdel

LGTM, should not throw on vms or templates, and does make it possible to use ?decorators=vms.supports_cockpit? :)

ping @abellotti , please, check this

👍  LGTM!!


Can we use GPUImage2 in an Objective-C project?

I'm migrating from GPUImage to GPUImage 2 because there is a nasty memory leak I could not fix in the OpenGL texture context calls. I tried importing the SWIFT project into an Objective-C project, but noticed in the bridge header of the Camera class, that the init method was not translated properly:
SWIFT_CLASS("_TtC8GPUImage6Camera")
@interface Camera : NSObject <AVCaptureVideoDataOutputSampleBufferDelegate, AVCaptureAudioDataOutputSampleBufferDelegate>
@property (nonatomic) BOOL runBenchmark;
@property (nonatomic) BOOL logFPS;

(void)captureOutput:(AVCaptureOutput * _Null_unspecified)captureOutput didOutputSampleBuffer:(CMSampleBufferRef _Null_unspecified)sampleBuffer fromConnection:(AVCaptureConnection * _Null_unspecified)connection;
(void)startCapture;
(void)stopCapture;
(nonnull instancetype)init SWIFT_UNAVAILABLE;
@end

Will this work?

http://stackoverflow.com/questions/26470771/swift-init-not-visible-in-objecitve-c
Read that SWIFT cannot bridge optional types, assuming this was not built to provide backwards compatibility.

The goal of the project has been a pure Swift reimplementation, and no consideration has been given to interfacing with older Objective-C code. Many of the types have no clean mapping back to Objective-C, so it will be difficult to use this in that direction.


rebase to latest autonomy_payload for new GDI messages

There are new acs messages used by the coming GDI

rebased on top of sasc/master after: https://gitlab.nps.edu/sasc/autonomy-payload/merge_requests/5


Add Chainlink feeds and remove UniswapV3 feeds

Before merging this, I think we should change the averageBlockTime to the actual value we are going to use when deploying new markets on Arbitrum. I would use averageBlockTime = 1, since averageBlockTime = 0 breaks some functions despite being more accurate.

Ok, I'm gonna test it now.


thop:  floordiv is deprecated

E:\Program Files\ProgramData\Anaconda3\envs\pytorch\lib\site-packages\thop\vision\basic_hooks.py:92: UserWarning: floordiv is deprecated, and its behavior will change in a future version of pytorch. It currently rounds toward 0 (like the 'trunc' function NOT 'floor'). This results in incorrect rounding for negative values. To keep the current behavior, use torch.div(a, b, rounding_mode='trunc'), or for actual floor division, use torch.div(a, b, rounding_mode='floor').
kernel = torch.DoubleTensor([*(x[0].shape[2:])]) // torch.DoubleTensor(list((m.output_size,))).squeeze()

Thanks for the reminder. Could you draft a PR to fix the issue?


fix serving certs path to match file observer

self-lgtm, just matching the path with file observer.

/hold

/hold cancel

/retest

flakes, oh joy.  @soltysh get ready for more upstreams.
/retest


Fixing bug when using a token issued for a user in subclass of OUser

If a user record is contained with a subclass of OUser, then an authorization token can be issued however a NullPointerException is returned when an attempt is made to use it.
This is down to a condition in the JsonWebToken class which only returns an OUser object if the RID contained in the token is in the OUser class itself and doesn't take into consideration classes that may extend OUser. This pull request addresses this issue.

Thanks for the PR, may you do it against "develop" branch? We use master only for releasing. Thanks.

After issues on develop I'll back port it into 2.0.6-SNAPSHOT ;-)


Install-DbaInstance - Test for allowed ACTION before adding SQLTEMPDBFILECOUNT

Type of Change

[ ] Bug fix (non-breaking change, fixes # )
[x] New feature (non-breaking change, adds functionality )
[ ] Breaking change (effects multiple commands or functionality, fixes # )
[ ] Ran manual Pester test and has passed (.\tests\manual.pester.ps1)
[ ] Adding code coverage to existing functionality
[ ] Pester test is included
[ ] If new file reference added for test, has is been added to github.com/sqlcollaborative/appveyor-lab ?
[ ] Unit test is included
[ ] Documentation
[ ] Build system

Purpose

I want to be able to run ACTION=Uninstall and use -ConfigurationFile for that.
It's a similar case like #6479 that was addressed with #6480.
To be totally flexible I asked the documentation what ACTIONs allow SQLTEMPDBFILECOUNT:
https://docs.microsoft.com/en-us/sql/database-engine/install-windows/install-sql-server-from-the-command-prompt
So I added these 5 ACTIONs.
I moved the test so that there is no unsused call to the computer for no reason.
@nvarscar : What do you think? If you would like to solve it some other way, I'm open for feedback.

Thank you both! 🥳


Admins should be marked as owners of teams

Regular users might create a team, and then be tempted to add administrators of Portus as viewers. But this will be confusing because administrators can always push and administrate any team (thus, effectively being owners of all teams).
There might be multiple solutions to this issue, but I think that the best solution would be:

Users are still allowed to add admins as viewers or contributors.
Upon addition, they will get a flashy warning telling the current user that since it was an admin, it was promoted to owner of the team. This is better than disallowing the action altogether because we cannot forbid this from the UI (or at least not in a trivial/maintainable way).

I'm not sure about this. There's no point in adding an admin to any of viewers, contributors or owners since that won't change anything and therefore be useless.
We could just show a warning saying, it is not possible to assign an admin a role within a team. I cannot see why forbidding this would be non-trivial.

Because admins can be owners of a team. Let's say that I'm and admin and I create a new team. In this case I will be the owner of that team. This is completely redundant to being an admin in this case, but, because of the internal implementation, someone has to own a team.
That''s why I mentioned the idea of "promoting", because it plays well with the case I'm mentioning.

Because admins can be owners of a team. Let's say that I'm and admin and I create a new team. In this case I will be the owner of that team.

You're right, I totally missed that point. Sorry :wink:

Beeing an admin is an additional role, maybe even a temporary one. What happens if the admin provs are dropped later?
Thus adding adding a person currently beeing an admin to a team is IMHO usefull. I would even keep the selected role, but show another icon (may a red man instead of a black one, of put thm a hat on), adjust the tooltip (e.g. to "owner and admin") and or place an exclamation mark with a tooltip after the name.
BTW nobody complains if you add user root to somegroup and root is able to write an otherwise group-readable file...

Beeing an admin is an additional role, maybe even a temporary one. What happens if the admin provs are dropped later?

Thus adding adding a person currently beeing an admin to a team is IMHO usefull. I would even keep the selected role, but show another icon (may a red man instead of a black one, of put thm a hat on), adjust the tooltip (e.g. to "owner and admin") and or place an exclamation mark with a tooltip after the name.

That's true. That's why I'm saying that instead of not allowing it, we should "promote" the admin as an owner in that team, and tell the user about this. The bug is not on the underlying behavior, rather how we visually tell the user the capabilities of team members (e.g. telling that an admin user is a viewer, practically speaking, is lying, so we should tell the user that the team member will act as an owner).

BTW nobody complains if you add user root to somegroup and root is able to write an otherwise group-readable file...

Touché :wink:


Remove nosocket, update docs, SIGKILL signal for timeout and output limit, output limit status

Removes nosocket.c since it is no longer used
Updates the documentation with the new security principles
Puts SIGKILL signal in the response if the submission failed due to timeout or exceeding output limits to maintain backward compatibility
Adds response status for exceeding output limits: EL for stderr limit, OL for stdout limit.
Mounts the package directory with its actual path inside the Isolate sandbox to account for packages that expect a /piston/packages directory

@Brikaa I was using the docker image with the latest tag and started getting errors installing Python packages using pip3 in the /piston/packages/python/3.12.0/bin/pip3.
Errors were related to SSL "SSLError("Can't connect to HTTPS URL because the SSL module is not available.")"
Tried an older sha tag for the Docker image from 8 months back worked fine. I can't say if this change could be related but I want to highlight it.

@rhlarora84 I will look into that. Are you using pip3 during code execution?

@rhlarora84 the problem was because the Python runtime was built using a previous version of Piston's docker image which had an older libssl library; so using the Python runtime on the newer image version caused problems. I have dowgraded the base image versions again. Let me know if there are further issues.

Thanks for the help here


Fix plugin certs on agent nodes - both plugin.crt and plugin.key need…

… to be copied for the plugin service to start; named configure_plugin tasks accordingly

ClusterHQ shutdown so this probably won't get merged unless folks from https://www.scatterhq.com/ take it under their wing


file sizes not indexed on reindex

If I run ocfl-index server --inventories, then quit the server and run ocfl-index server --filesizes, the existing indexed inventories are supposed to be re-indexed with file-sizes. This doesn't seem to be happening.

closing this because file sizing indexing has been removed as a feature (for now).


fix some bugs of mmlu

We find the following bugs of mmlu:

The doc_to_text function in mmlu_flan_cot_fewshot is incorrect, causing the few-shot data not aligning with the pre-defined examples specified in the fewshot_config for each subset. For example, now we get:

Q: Statement 1 | Every element of a group generates a cyclic subgroup of the group. Statement 2 | The symmetric group S_10 has 10 elements.
(A) True, True (B) False, False (C) True, False (D) False, True
A: Let's think step by step. (C)

But the right one should be:
Q: Statement 1 | Every element of a group generates a cyclic subgroup of the group. Statement 2 | The symmetric group S_10 has 10 elements.
(A) True, True (B) False, False (C) True, False (D) False, True
A: Let's think step by step. A cyclic group is a group that is generated by a single element. Hence a subgroup generated by a single element of a group is cyclic and Statement 1 is True. The answer is (C).

Since not all subsets have 5 cot-examples in "_cot_prompts.json", we set the default num_fewshot to 4.
We modify the filter setting of mmlu_flan_n_shot to solve the related issue https://github.com/EleutherAI/lm-evaluation-harness/issues/2094#issuecomment-2260772114.

Thanks for the PR. Looks reasonable to me but I want @lintangsutawika to have a look as well.

@eyuansu62 also try running pre-commit run --all-files

@lintangsutawika Thanks! I fixed some errors of pre-commit and commit again. I think now everything goes well.
$ pre-commit run --all-files
check for added large files..............................................Passed
check python ast.........................................................Passed
check BOM - deprecated: use fix-byte-order-marker........................Passed
check for case conflicts.................................................Passed
check json...............................................................Passed
check for merge conflicts................................................Passed
check for broken symlinks............................(no files to check)Skipped
check yaml...............................................................Passed
detect destroyed symlinks................................................Passed
detect private key.......................................................Passed
fix end of files.........................................................Passed
don't commit to branch...................................................Passed
fix requirements.txt.....................................................Passed
trim trailing whitespace.................................................Passed
fix utf-8 byte order marker..............................................Passed
fix python encoding pragma...............................................Passed
mixed line ending........................................................Passed
ruff.....................................................................Passed
ruff-format..............................................................Passed
codespell................................................................Passed


Generate edge API client and use it

added edge-api module [fixed in #597]
use generated client [fixed in #600]


Remove version: sourcegit-scm.SourceGit version 8.33

Checklist for Pull Requests

[x] Have you signed the Contributor License Agreement?
[ ] Is there a linked Issue?

Manifests

[ ] Have you checked that there aren't other open pull requests for the same manifest update/change?
[ ] This PR only modifies one (1) manifest
[ ] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[ ] Does your manifest conform to the 1.6 schema?

Note: <path> is the directory's name containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

URL: https://github.com/sourcegit-scm/sourcegit/releases/download/v8.33/sourcegit_8.33.win-arm64.zip
OK
(Automated message - build 923)

https://github.com/microsoft/winget-pkgs/pull/185471#issuecomment-2436036384

URL: https://github.com/sourcegit-scm/sourcegit/releases/download/v8.33/sourcegit_8.33.win-arm64.zip
Status Code: 200
(Automated message - build 897)


Typescript can't type the typestate event object of invoked services

Description
Typescript fails to compile if using TypeStates and TEvent is an union for invoked services.
Expected Result
The project should compile and the invoked service should recognize the type of the event object.
Actual Result
Typescript shows an error that the property doesn't exist on the event object.
Property 'count' does not exist on type 'ToggleEvent'.

The properties of the event object on the invoked service are typed as any.
Reproduction
This code sandbox uses typescript, xstate and xstate-react. The invoked service is implemented in the react view as the second argument to useMachine.
Code Sandbox
Additional context
typescript: 4.2.3
xstate: 4.16.2
xstate-react: 1.3.1
I think this is related to #1858 but every mention of this problem that I could find, relates to actions, not invoked services. That's why I think it's not a duplicate. I know that I used this kind of code with xstate and xstate-react 3/4-1 year ago and it used to compile. Unfortunately I don't have specifics about the stack I used back then anymore and can't reproduce it.
I can use the following workaround for now where I name the specific event and cast the event object explicitly. But this isn't pretty necessarily.
setCounter2: (ctx, ev) => {
  const {count} = ev as ToggleEventNamed;
  return Promise.resolve(count);
}

I understand that xstate-codegen might solve this problem. But I don't know how to apply it in my project. Will xstate-codegen become part of xstate? Or is it just an experiment right now?
Thanks a lot in advance and thanks a lot for Xstate, I really enjoy using it.

I understand that xstate-codegen might solve this problem. But I don't know how to apply it in my project. Will xstate-codegen become part of xstate? Or is it just an experiment right now?

I believe the goal is to eventually make it part of the XState tools.
I'll look into this (the work around createModel() might be relevant/helpful here), but for now, it's safer to do what you're doing - assert that the event is the correct type. You might know that it will always be, but TypeScript (currently) does not.

The current answer to the problem is using the typegen through our VS Code extension or through the @xstate/cli


Fixed memory label to align to CASSANDRA-9692

CASSANDRA-9692 unifies/improves logging/output of data sizes and rates throughout C*.
As part of this normalization, it changes the output of nodetool info to use the correct SI prefixes. The only dependency on this I could locate for CCM is in its parsing of the nodetool info output. This parsing happens in a function without the C* version available, so we can't do a version check to determine correct units. This PR proposes the easy route of supporting both unit types; another option is to refactor the tests/call sites to pass in a C* version, so that we can decide based on version.
(Please note that I'm reviewer for the above ticket, not assignee. PRing this since it is a new contributor and managing a C* ticket/CCM PR/dtest PR isn't the easiest thing).

+1


added better protocol checking

reads protocol info from csv file

cleaner/faster str -> hex conversion

More need doing but it's a start.
resolves(#5)

Just a Follow up
I ran the command on the irdb  data
cat irdb/codes/*/*/*.csv  | awk -F , '{print $2}' | sort -u
and found 102 protocols named in the irdb, a majority just minor spurious variations of each other ( 14 NEC variations). thus there are many more to add.
While guessing the Sony mapping was simple but there are permutations of NEC, RC5 & RC6 I am unsure of and thus did not include.
but there still some questions,  like flipper supports "samsung32" and IRDB only has  Samsung20
Samsung36. (Good luck google'ing permutations of samsung32,  I hope you like cellphones)


Error help!!!

internal/fs/utils.js:269
throw err;
^
Error: ENOENT: no such file or directory, open '/home/runner/ImperturbableKosherAgent/index.js'
at Object.openSync (fs.js:462:3)
at Object.readFileSync (fs.js:364:35)
at Object. (/run_dir/interp.js:195:19)
at Module._compile (internal/modules/cjs/loader.js:999:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
at Module.load (internal/modules/cjs/loader.js:863:32)
at Function.Module._load (internal/modules/cjs/loader.js:708:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:60:12)
at internal/main/run_main_module.js:17:47 {
errno: -2,
syscall: 'open',
code: 'ENOENT',
path: '/home/runner/ImperturbableKosherAgent/index.js'
}
error help me please

It's been fixed I think

Looks like you didn't install alö packages. Maybe it would fix it if you would reinstall the Packages.


Create translator and builder for rust/cargo

Some work on the translator has already been started but is stalled: https://github.com/DavHau/dream2nix/pull/5
We might be able to re-use some parts of import-cargo-lock.nix from nixpkgs.

One package that would be worth testing is meilisearch github.com/meilisearch/meiliSearch/
currently on nixpkgs, the update to the latest version fails because of a feature override that is needed.
(it doesn't work properly with buildRustPackage, but crate2nix has exactly the right features: granular build and overrides per dependencies.)
Ideally we should model dream2nix after what is done in crate2nix.
A bit more context on meilisearch: I'm the maintainer of it in nixpkgs. Originally I was using crate2nix to build it, but transitioned to a more classic buildRustPackage build to simplify updates. It worked for a bit but now it's problematic again to the point I couldn't do the last update.

Thanks for the info.
Just pinging you @yusdacra as this might be relevant to you.

I think we can leverage the Cargo.lock / Cargo.toml parsing from naersk for the translator and the "builder" from crate2nix (granular builds).

I have started working on the translator here: https://github.com/yusdacra/dream2nix/tree/feat/cargo-translator
My main questions now are:

What exactly is a "subsystem"? How does this relate to the building process? I see the nodejs package.lock translator having a nodejs version option (?). Shouldn't these be specified in a builder?
How does dream2nix make use of serializePackages? The template says it can be "a list of package objects of arbitrary structure", so this only concerns builders that will use the translator? How does it relate to "dream lock"?
And i guess i would like an overall process of how things go from parsing to building (translator -> builder? what are the steps in between of these?) :slightly_smiling_face:

And i guess i would like an overall process of how things go from parsing to building (translator -> builder? what are the steps in between of these?)

See this little chart for an overview of the architecture. There is also an example walking through the steps.
Translators are expected to output the dream lock format. This format is specified by a jsonschema defined in ./src/specifications. There is also an example next to the schema. The schema is verified by the python CLI, in case the translation is triggered through the CLI .
The dream lock only contains data, no logic. This allows to store this data as JSON.
Later the dream lock will be read by a builder module which translates it to nix derivations.
Enforcing a generic output format on all our translators allows us to have generic builder interfaces and generic interfaces for customization.
The dream lock format contains generic data where the structure is identical independent of the subsystem, and a subsystem specific section which differs depending on the subsystem.
The generated translator template, you started working with, uses utils.simpleTranslate. The idea of simpleTranslate is to help generating the dream lock format without you having to deal with that format in detail. simpleTranslate wants you to implement all these little functions, telling it how to extract the relevant information out of the upstream lock file, so it can then generate the dream lock for you. You just have to implement the extraction of data, skipping the reassembling part.
This abstraction felt reasonable for me, but if you feel more comfortable generating the dream lock on your own, you can do that and just not use simpleTranslate if you like.

What exactly is a "subsystem"? How does this relate to the building process?

Subsystem is a category so that all packages within one subsystem can be built the same way, even if the data (dream-lock.json) which defines those packages has been created by different translators. As an example, for nodejs we have different translators as there exist different lock file formats. But all data created by these translators must be buildable by the same builder.
Practically this would mean that we have one subsystem for each language or build system. Currently we have nodejs, python, go, etc...
Within one subsystem all translators must agree on a common structure for the subsystemAttrs. Currently this is not enforced. We should add some additional jsonschema for that at some point.
So as you are the one initializing the rust subsystem, you can put whatever you want inside subsystemAttrs. It should contain all data which is required for the build apart from the generic data that simpleTranslate already forces you to extract.
You will likely start with an empty subsystemAttrs, and later when building, you might notice that some crucial data is missing, at which point you can extend the translator to put extra data inside subsystemAttrs, which will be stored inside the dream lock and passed to the builder.

I see the nodejs package.lock translator having a nodejs version option (?). Shouldn't these be specified in a builder?

You are a 100% right, this is a design issue which needs to be fixed. The option should be removed

How does dream2nix make use of serializePackages?

serializePackages is expected by the simpleTranslate helper. Sometimes upstream lock files do not express the dependencies in a flat list and instead use deeper structures. serializePackages should flatten that structure to a list, so simpleTranslate can handle each dependency object individually, without having to understand upstream's structure.
It will then execute all the little extractor functions like getName or getVersion on all dependencyObjects to retrieve the relevant information.
Therefore each dependencyObject must contain all information which is relevant to itself.
Example: given this exemplary upstream lock file:
{
  dependencies = {
    requests = {
      version = "1.2.3";
      url = "https://...requests.tar.gz";
      hash = "deadbeef...";
    };
    async = {
      version = "2.3.4";
      url = "https://...async.tar.gz";
      hash = "deadbeef2...";
    };
  };
}

...processed via serializePackages should result in:
[
  {
    name = "requests";
    version = "1.2.3";
    url = "https://...requests.tar.gz";
    hash = "deadbeef...";
  }
  {
    name = "async";
    version = "2.3.4";
    url = "https://...async.tar.gz";
    hash = "deadbeef2...";
  }
]

The upstream structure was already relatively flat, so we just needed to incorporate the name into each object.
Please let me know if you have more questions.
Getting your feedback on the contribution process is valuable as I really want to optimize that, so people can contribute more easily.

Ok, i see. So the "getSourceType" and "sourceConstructors" need to output the source types specified in the dream.lock schema. Would it make sense to add a cargo-registry type for cargo registries like crates.io, or should http just be used? I see there is npm and pypi so that's why i asked.
Also about getDependencies, mainPackageDependencies and such, do they also want flat lists? And do they want all transitive dependencies or only the direct dependencies?

Would it make sense to add a cargo-registry type for cargo registries like crates.io, or should http be used? I see there is npm and pypi so that's why i asked.

It will not be required for packaging projects from github. Translating a github project will result in a list of http sources, so the crates.io specific fetcher would not be used.
The reason I included for example npm as a fetcher type is, that now the CLI is capable of packaging projects directly from npm by referencing npm:prettier/prettier for example.
If crates.io hosts application that we might want to package, then the fetcher type is useful, otherwise not.

Also about getDependencies, mainPackageDependencies and such, do they also want flat lists? And do they want all transitive dependencies or only the direct dependencies?

getDependencies and mainPackageDependencies want a flat list of direct dependencies only, where each returned dependency has this structure:
{ name = "package-name"; version = "1.2.3"; }

I'm not sure what you meant by "packaging projects from github". I meant that regardless of whether a project is from github or crates-io, it will have dependencies from crates-io. They can be downloaded through http, but they require to be decompressed (https://github.com/nix-community/naersk/blob/master/build.nix#L433-L449). So i meant it in that sense, i suppose my question being if the builder would decompress it?
Also yeah there are plenty of applications on crates.io (ripgrep, bottom, exa and many more) so i guess it would be useful.

getting assets from npm also requires decompression. It should be fine for crates.io too.
You are right about the rust applications. Having a fetcher would enable easy download of those applications. It's just like npm though, it means you have to trust the binary.

@yusdacra I meant that only if the initial source (the main projects source) is coming from crates.io, we need a specific fetcher for that, because we need the CLI to understand references like crates-io:ripgrep/12.0.1 etc, which it can only do if there is a fetcher for crates-io.
As you mentioned, for all rust sub-dependencies we could just use the http fetcher and compute the .cargo-checksum.json in the builder.
But, as I now understand that there are applications hosted on crates.io, we need that creates.io fetcher anyways.
Since https://github.com/nix-community/dream2nix/commit/b8dc44d0f26990095a0a3252c5d7ee61fd073368, each fetcher in dream2nix is expected to return a decompressed source, so the decompression and the creation of the .cargo-checksum.json should be part of this fetcher.
So after all it might be better to just use the creates.io fetcher for all crates.io sources instead of using the http fetcher. Then we won't have to deal with the .cargo-checksum.json at build time anymore.

It's just like npm though, it means you have to trust the binary.

I think we are talking about package sources here, not binaries.

@yusdacra I meant that only if the initial source (the main projects source) is coming from crates.io, we need a specific fetcher for that, because we need the CLI to understand references like crates-io:ripgrep/12.0.1 etc, which it can only do if there is a fetcher for crates-io.
As you mentioned, for all rust sub-dependencies we could just use the http fetcher and compute the .cargo-checksum.json in the builder.
But, as I now understand that there are applications hosted on crates.io, we need that creates.io fetcher anyways.
Since https://github.com/nix-community/dream2nix/commit/b8dc44d0f26990095a0a3252c5d7ee61fd073368, each fetcher in dream2nix is expected to return a decompressed source, so the decompression and the creation of the .cargo-checksum.json should be part of this fetcher.
So after all it might be better to just use the creates.io fetcher for all crates.io sources instead of using the http fetcher. Then we won't have to deal with the .cargo-checksum.json at build time anymore.

Ok, that sounds good. I will write the translator so that it uses a cargo registry fetcher then. We can have a crates-io specific fetcher, but i think a general cargo registry fetcher could be better (if people want to use dream2nix against a different registry). The index format of a registry is defined here https://doc.rust-lang.org/cargo/reference/registries.html#index-format . The problem with this is we would need to clone the git repository (cargo registries are git repos) and then look for the index file to get the download API URL. This would be very inefficient. So for now it's probably best to have just a crates-io fetcher.

Sounds good. Then let's start with the crates-io fetcher only.

Sounds good. Then let's start with the crates-io fetcher only.

I was thinking of:
{
    checksum = "";
    name = "";
    version = "";
}

for the schema format.

Sounds good, though the checksum field is always called hash in dream2nix so far.
Maybe a good way to start is to just copy src/fetchers/http/default.nix to src/fetchers/cargo/default.nix and just change a few things. This file defines the behavior of the new fetcher. Also the data format needs to be incorporated into src/specifications/dream-lock-schema.json

I pushed some more changes to https://github.com/yusdacra/dream2nix feat/cargo-translator branch. Would like if you could check it and see if something is obviously wrong. I didn't test it yet, wanted to get your feedback first. I added it so that a crates-io source type is constructed with hash, name and version here, should adding it to schema be done in the same PR?

Thanks I will review it tomorrow. No need to split it into several PRs. It is up to you.

I see you made use of inputFiles. There is no real need for this, as the cargo toml file is contained in the project source.
I think for now you can just ignore inputFiles completely and read all files from the root of the project's source which is passed as first element of inputDirectories.
This way, your translator will be compatible to the current CLI. You can then test your translator by just executing for example:
nix run . -- add github:BurntSushi/ripgrep/13.0.0

This will generate the dream-lock.json for the given input.
Maybe it is a bit confusing that the translator interface already allows for several files and directories being passed. Its not really used anywhere yet, but I wanted to keep the possibilities open for the future.

I see you made use of inputFiles. There is no real need for this, as the cargo toml file is contained in the project source. I think for now you can just ignore inputFiles completely and read all files from the root of the project's source which is passed as first element of inputDirectories.
This way, your translator will be compatible to the current CLI. You can then test your translator by just executing for example:
nix run . -- add github:BurntSushi/ripgrep/13.0.0

This will generate the dream-lock.json for the given input.
Maybe it is a bit confusing that the translator interface already allows for several files and directories being passed. Its not really used anywhere yet, but I wanted to keep the possibilities open for the future.

Ah alright, i see. I pushed more work and tested out the translator, it seems to be passing the translation stage but dream2nix fails afterwards with:
JSONDecodeError

Expecting property name enclosed in double quotes: line 128 column 21 (char 4460)

at /nix/store/97w52ckcjnfiz89h3lh7zf1kysgfm2s8-python3-3.9.6/lib/python3.9/json/decoder.py:353 in raw_decode
    349│         have extraneous data at the end.
    350│
    351│         """
    352│         try:
  → 353│             obj, end = self.scan_once(s, idx)
    354│         except StopIteration as err:
    355│             raise JSONDecodeError("Expecting value", s, err.value) from None
    356│         return obj, end
    357│

any way I can see the JSON? Would like help on that.
And also, i see that the npm fetcher doesn't do decompression, so should it be handled by builders?

Nevermind, i fixed it. Turns out it was a trailing comma in spec. Wish this had better error reporting or maybe JSON allowed trailing commas :sweat_smile:

It seems to generate the dream lock fine now! :tada:
And btw, is there a reason why a "main package" is needed in a dream lock? For example, a Cargo.lock can contain multiple packages that are in a workspace. So it makes more sense to choose a package to build in the builder instead of the translation process. Not sure if there is already a way to do that.

And btw, is there a reason why a "main package" is needed in a dream lock? For example, a Cargo.lock can contain multiple packages that are in a workspace

Could you point me to a github project that uses several packages. From what I observed in nodejs so far, there usually is always a main package even if the repo contains several packages. Usually the extra packages are sub-packages of the main package.

So it makes more sense to choose a package to build in the builder instead of the translation process. Not sure if there is already a way to do that.

Right now each builder is supposed to return defaultPackage and packages. Therefore you can access all contained packages via packages.
If it is not clear which package is the main package, maybe we should allow the dream-lock to have mainPackage = null

Repos like https://gitlab.com/veloren/veloren have seperate binary packages in a single workspace, others like https://github.com/iced-rs/iced use seperate Cargo packages for their examples. You can't really determine a "main package" if the user doesn't pass a package name and this is a workspace where multiple (binary) packages are available. So it's probably better to just delegate that to the builder where the user can select what they want to build.
I think it would be nice to allow mainPackage to not be set in a similar vein to Cargo.lock, where it doesn't define a "main package", instead Cargo.toml files are used to find out what to build or not. This doesn't mean it wouldn't be set though, it can be set fine in most scenarios where there is a single binary package in a repository.
Ideally IMO it would be a better idea to drop mainPackage from dream-lock, and set a default package in nix code instead. Translators would provide a list of "packages" to the CLI and then it would be displayed like the options so that the user can choose one. The CLI could then generate the nix expression using that. If the translator provides only one package this can be skipped, essentially acting as a "main package".

Ideally IMO it would be a better idea to drop mainPackage from dream-lock, and set a default package in nix code instead. Translators would provide a list of "packages" to the CLI and then it would be displayed like the options so that the user can choose one. The CLI could then generate the nix expression using that. If the translator provides only one package this can be skipped, essentially acting as a "main package".

The dram2nix CLI is only used for translation, not for building as of now. And I don't see a reason why we would need it for building. As long as all packages are exposed via an attribute, the standard nix CLI should be sufficient.
Also we don't generate nix expressions. The output of the translator (dream-lock.json) is what gets consumed by the builder. There isn't any package specific nix expression (except for debugging if required).
So I think we should just allow mainPackageName to be null or unset.

The dram2nix CLI is only used for translation, not for building as of now. And I don't see a reason why we would need it for building. As long as all packages are exposed via an attribute, the standard nix CLI should be sufficient.
Also we don't generate nix expressions. The output of the translator (dream-lock.json) is what gets consumed by the builder. There isn't any package specific nix expression (except for debugging if required).
So I think we should just allow mainPackageName to be null or unset.

Thats fine. What i meant was that we remove the main package from lock, the users can just use whatever package provided by riseAndShine as a main package in Nix code. It feels weird to have values like that in the lock when they can be expressed in Nix code, I don't think locks should contain configuration (like main package basically is).
Also yeah I was talking about for debugging since that generates an expression. But i suppose setting a main package doesn't really matter since you can just specify the attribute.

OK, removing the main package sounds good.
Just nodejs would need to be changed a bit. Right now it exposes all sub dependencies via packages as well.
It should probably not do that anymore, otherwise there is no distinction between top-level packages and dependencies after your proposed change.
Instead dependencies of a package can be exposed via {package}.packages....

We could close this issue now, but I will take the opportunity to use this as a tracking issue, as I want to implement a granular builder for Rust.

I am currently working on a feature to support multiple lock files in a single repo. This is quite common in nodejs.
One problem that occurs is that sometimes names of packages collide. If we remove the mainPackageName, there is no possibility to detect and handle these collisions.
I think we should make that list of packages that you implemented for rust, a generic field of the dream lock. It is probably useful for all build systems. Instead of having one meinPackageName, a dream-lock will then have a list of (main) packages.

I am currently working on a feature to support multiple lock files in a single repo. This is quite common in nodejs. One problem that occurs is that sometimes names of packages collide. If we remove the mainPackageName, there is no possibility to detect and handle these collisions. I think we should make that list of packages that you implemented for rust, a generic field of the dream lock. It is probably useful for all build systems. Instead of having one mainPackageName, a dream-lock will then have a list of (main) packages.

That sounds good. packages in the Rust system was for listing packages in a workspace. I assume the nodejs situation is similar. IIRC Go and some other languages have similar situations so it will probably help for those too.

Current situation is:
There is a translator for Cargo.lock files. Two builders exist, one using buildRustPackage from nixpkgs and the other using crane (https://github.com/ipetkov/crane)
Next we want to have a granular builder, ie. a builder that will build each crate in a dependency tree as a separate derivation. For this we can use buildRustCrate from nixpkgs (crate2nix also utilizes this). This should make the situation much better since it would be pure and require no IFD, no vendoring steps in between, hopefully making everything much faster & efficient for caching.
I think this issue can be closed now that we actually have translators and builders for Cargo.


Allow customizing behavior of exchange rate fetching

Not everybody needs exchange rate information, or uses it often; some people will also take issue with Numbat using the network without their permission or awareness. Therefore, I propose adding the following options (or at least an appropriate subset):

Fetching the rates on startup (the current behavior, adding a configurable time-out is also a good idea)
Fetching them on first currency conversion, or something similar (I'd personally use this)
Any other possible behaviors?

I found a way to implement on-demand fetching now: see #107. This also solves the error handling part.
What is still left open is to disable prefetching (which we currently still do by default, to have units readily available once the user needs them)

Looks good to me, thanks!

What is still left open is to disable prefetching (which we currently still do by default, to have units readily available once the user needs them)

I think I'm gonna work on this, do you have any syntax in mind? Is it gonna be something like https://github.com/sharkdp/numbat/issues/55, or a line like set exchange_rate_fetching off in init.nbt?

I think this will be a CLI-application-only thing, so that should go into the (not yet existing) config file. See #97 for details. I will add some more thoughts there.

Another thing I didn't consider when initially opening the issue: exchange rates get out of date fairly quickly, how would Numbat handle that? Would it reload the exchange rates after e.g. 1 day? Should the period be configurable? How would this play with the fetching behavior setting proposed in this issue?

Relevant discussion on IRC:
11:10 <triallax> hmm, i'm wondering if it might be a good idea to allow disabling currency fetching altogether
11:11 <triallax> in that case, we could either not allow conversion between currencies, or just remove currency units
13:24 <achin> we should still keep the units, so that someone can use them in their own custom functions
13:25 <triallax> yeah but then each unit would have to have its own "dimension"
13:25 <triallax> which is kind of weird
13:25 <triallax> and probably not very fun to implement
13:31 <achin> why would each unit need its own dimension?
13:31 <triallax> well, because we don't have exchange rates
13:32 <triallax> but if they're all the same dimension, we need to have some kind of conversion factor
13:32 <triallax> factors*
13:54 <sharkdp> You can also have multiple 'base' units of the same dimension, without conversion factors (dimension D; unit a: D; unit b: D). In that case, you will get a runtime error if you attempt any conversions (unit a can not be converted to b). But I'm not sure if I want to keep that behavior forever
13:54 <triallax> interesting
13:54 <triallax> why do you think you don't want to keep that behavior?
13:55 <triallax> it seems useful in this case at least
13:55 <sharkdp> I think it would be a reasonable first version to just show a runtime error in case exchange-rate-download is deactivated (and someone wants to use currency units). Similar to what we do if there are any network errors
13:57 <sharkdp> Because it feels to me like an inconsistent unit system. And maybe it would be better to show users an error if they attempt to create a second base unit for a given dimension.
13:57 <triallax> fair enough
13:57 <triallax> so we have three possible behaviors
13:57 <triallax> prefetching enabled, fetch on first use, and no fetching at all
13:57 <triallax> does that make sense?
14:17 <sharkdp> yes, thank you
14:20 <triallax> right, and with the last one we don't have currency units at all
14:34 <sharkdp> yes. and with the second one we expect a short delay when using currencies in the REPL
14:34 <triallax> yeah
14:34 <triallax> i did try it with my pr, it's not too bad
14:34 <triallax> but my internet is fairly fast
14:34 <sharkdp> when doing something like `numbat -e "USD -> EUR"`, we always expect a delay, of course.
14:35 <triallax> of course yeah
14:36 <sharkdp> I regularly work behind a company proxy where the delay is noticeable. And sometimes I also get failures if proxy settings are not correct, for example.
14:36 <triallax> yeah, that's why i want to allow prefetching
14:36 <triallax> the next question to bikeshed over is, what should be put as the default
14:40 <sharkdp> One request is 1.5 KiB. If you open Numbat 10x per day, every day - that's 5 MiB in a full year. I think that is acceptable :-)
14:41 <sharkdp> i.e. I'm voting for prefetching as a default
14:41 <triallax> perhaps, but not everybody likes it when software phones somewhere without their knowledge/consent
14:42 <triallax> oh, and what about when the data becomes outdated
14:42 <triallax> like, if somebody has a long-running numbat session, over one week for instance
14:42 <triallax> god this currency thing opened up a can of worms
14:42 <sharkdp> that is something I have not considered
14:42 <triallax> i'll open an issue for it
14:43 <triallax> but it might be a good idea to hold back on any currency conversion-related changes until we think through all of this
14:43 <sharkdp> yes, regarding the can of worms. I would really like to add time/date handling to Numbat. But this will be an even bigger rabbit hole, I'm afraid.
14:43 <triallax> yeah i would love that, but it's probably not gonna be easy
14:44 <triallax> every second i deal with dates and times is 1% of my sanity being lost
14:48 <sharkdp> Maybe we can just expose part of the Rust timestamp handling in a nice way. Without trying to reimplement stuff
14:51 <triallax> it might be worth looking at how qalculate handles exchange rates
14:52 <sharkdp> I did :-)
14:52 <triallax> iirc it was a lot more sophisticated than what we do
14:52 <triallax> but that's qalculate's style, it brings the kitchen sink along with it lol
14:53 <sharkdp> It also uses ECB exchange rates (and maybe additional sources), but keeps a local cache of the downloaded file. But then they ask the user if they want to update the file once it's older than a week or so. I personally don't like the interactiveness of this.
14:54 <triallax> so you want it to be handled transparently in the background?
14:54 <sharkdp> Yes
14:54 <triallax> i agree
14:54 <triallax> but that brings up the issue of what if the fetching fails
14:54 <triallax> i would definitely like to be informed if that happens
14:54 <triallax> rather than risk using stale exchange rate information
14:54 <sharkdp> exactly
14:55 <sharkdp> With Insect and Numbat I always followed the approach: our users want their computations to be correct. So we rather show an error message than trying to patch up things (by guessing).


ENH add libibcm and libibverbs

Please see the repo readme for directions on how to make PRs on this repo.
Checklist:

[ ] if you have added a CDT, it appears in the cdt_slugs.yaml file
[ ] if you have changed the CDT generator code (rpm.py), you have bumped
the build number in conda_build_config.yaml and have remade all of the
recipes via running python gen_cdt_recipes.py
[ ] if you have added a custom CDT recipe, you have added the name of the CDT
with custom: true in the cdt_slugs.yaml file.
[ ] all CDT recipes have build number set by {{ cdt_build_number }} for
old-style/legacy CDTs or {{ cdt_build_number|int + 1000 }} for new-style CDTs
[ ] if you see a warning about a CDT not having a license, you have added the
license_file key in the cdt_slugs.yaml file with the path to the appropriate
license in licenses/

Thanks Matt! Is this good to merge or do we need to wait for something?

I need to leave issues on the feedstocks and archive them. Will do later.

Done. Anything else?


NSURLErrorDomain Code=-999 "cancelled" got on Today Extension but not on App Container.

I am developing a Today extension. From within the extension I want to perform some of the api calls I perform on the app container.
In the extension, I have access to token and I replicated the App Transport Security from the app container in its plist. However, the sames successful calls I make on the app container do not work on the app extension.
The error is  NSURLErrorDomain Code=-999 "cancelled", and the following are the same to both app extension and app container.
<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSExceptionDomains</key>
        <dict>
            <key>the_api_ip</key>
            <dict>
                <key>NSIncludesSubdomains</key>
                <true/>
                <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
                <true/>
                <key>NSTemporaryExceptionMinimumTLSVersion</key>
                <string>TLSv1.0</string>
                <key>NSTemporaryExceptionRequiresForwardSecrecy</key>
                <false/>
            </dict>
        </dict>
    </dict>

var manager: Alamofire.SessionManager = {

        // Create the server trust policies
        let serverTrustPolicies: [String: ServerTrustPolicy] = [
            "the_api_ip": .pinCertificates(
                certificates: ServerTrustPolicy.certificates(),
                validateCertificateChain: false,
                validateHost: true
            ),
        ]

        // Create custom manager
        let configuration = URLSessionConfiguration.default
        configuration.httpAdditionalHeaders = Alamofire.SessionManager.defaultHTTPHeaders
        let manager = Alamofire.SessionManager(
            configuration: URLSessionConfiguration.default,
            serverTrustPolicyManager: ServerTrustPolicyManager(policies: serverTrustPolicies)
        )

        return manager
    }()

Is there a reason such code will not work on the Today Extension. Perhaps, I have to make some extra configuration for the Today Extension.
I am using Alamofire 4.2
Thanks for the help!

Hi @adrianbrink,
What I'd suggest here is that you turn off the pinning for now just to try to get things working. If you do, can you get calls through? Can you make calls from the Today Extension to something like httpbin.org?
I haven't tried to use Alamofire in a Today Extension, but everything should work properly. The most common issue we see with cancellation errors is that the session manager is going out of scope.
Is there any chance you could post a sample app? I can't really help you investigate further without one.

I am also facing the same issue tried with the latest Alamofire Library. Still not fixed.

Could either of you answer my questions above? There's not anything we can do without some more information.

I have a similar issue @cnoon . I've pinpointed why my requests are not working. The request are going through to my server however the response is always 500. The  problem is with the cookies. I am using session key to identify the user. While all the cookies , especially the cookie containing the session key are accessible in the container app, the same code in the Today Extension does not return the cookie containing the session key. I've gone through the git repo and as I see that the default session configuration uses a persistent disk-based cache and stores credentials in the user’s keychain. Could it be that Alamofire can't access the disk in Extension? Any help would be appreciated on how to resolve this issue. Thanks.

@cnoon
It's not able to pick up sever trust policies properly.
`class NetworkManager {
var manager: SessionManager?

init() {
    let policies:[String:ServerTrustPolicy]=[

        "https://xyz.com": .disableEvaluation
    ]
    manager=Alamofire.SessionManager(serverTrustPolicyManager:ServerTrustPolicyManager(policies:policies))
}

}`

@subhajit1609 I've tested your scenario with the ServerTrustPolicy and it worked fine. It's possible your issues stems from the fact that your policy URL includes the scheme, which it shouldn't. Remote that and it should work correctly.
@adrianodiasx93 I've tested your scenario and I was receiving the -999 error when I was trying to pin a certificate that wasn't in the proper format. If you've downloaded a certificate as a .pem, you need to convert it to DER format before being able to pin against it. Once I did that I was able to run request from my app and today extension using the same setup.
It seems like both of these issues come down to a misconfiguration of certificate pinning, so I'm closing this issue. If either of you can come with a specific Alamofire issue we'll be glad to take a look. Just create a new issue with an example project.


Update Even Simpler Quantum Implementation for Boolean satisfiability problems

The Even Simpler Quantum Implementation for Boolean satisfiability problems notebook needs to be updated for Qiskit 1.2 and fix any broken links, typo, etc.

[ ] Run through and update 3sat-v2.ipynb code cells
[ ] Review and update 3sat-v2.ipynb content

Links

Qiskit 1.0 Migration Guide
Qiskit SDK release notes

see #16  and the va-3sat-v2 branch


chore(main): release 0.4.3

:robot: I have created a release beep boop
0.4.3 (2024-08-09)
Bug Fixes

exposed steps state to run context (b3dea24)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

v0.4.3
:sunflower:


Is it possible to use SHAP with sklearn pipeline?

Is it possible to use SHAP with sklearn pipeline (in my use case imblearn pipeline)  where final estimator is XGBoost?

I need to use this pipe:
transformers_list.append(("category", OneHotEncoder(handle_unknown="ignore"), features_dict['cat_features']))
transformers_list.append(("numeric", RobustScaler(), features_dict['num_features']))

preprocessor = ColumnTransformer(
    transformers=transformers_list,
    remainder="passthrough", # error(default)
)
pipe = Pipeline(steps=[
    ("preprocessor", preprocessor),
    ("over_sampling", SMOTE()),
    ("classifier", clf_xgb)
] )```

with something like this:

model = BoostBoruta(
pipe._final_estimator, param_grid=param_grid, max_iter=200, perc=100,
importance_type='shap_importances', train_importance=False
)

@santokalayil all classes available in shap-hypetune are developed as sklearn BaseEstimator. This means that you can simply use them as any other sklearn models.
If you support the project don't forget to leave a star ;-)
all the best


Label inheritance does not play well with metadata.generation

Currently objects get bundle's labels merged into their labels. Lets say we implement Generation/Observed generation support (https://github.com/atlassian/smith/issues/102). Then consider this scenario:

bundle has label a=b and resource X. Generation=1
resource X is created with merged labels
bundle gets status ready=true and observed generation=1

Now an observer can tell whether .status is up to date with .spec by looking at Generation/Observed generation (checking if they match).
Then bundle's labels are modified. But labels are not under .spec and hence generation is not incremented by the api server for this update. Now the observer has no way to tell whether the .status reflects current spec/labels or not - because generation=1 and observed generation is 1 too. But resource X has not been updated with new labels because the controller has not processed the updated bundle yet.

Everything that influences objects produced by a bundle must be under .spec. I'm proposing to remove label inheritance as we don't use it atm. We can re-introduce the feature later as part of .spec.


[BUG] Only the first created cubeTexture is used

#3762
It seems still not working in v3.2 or v3.3-alpha.0
Reproduced PG: http://playground.babylonjs.com/#TGNTGT#18

It is a different problem. You must give different rootUrl which will be used as key to differentiate them in the cache:
http://playground.babylonjs.com/#TGNTGT#21

Thanks.