memory history with llama-index

I am only recently started learning about llama-index.
I have noticed that standard ChatGPT API i could simply do the following code below to have ChatGPT get message history as context:
chat = openai.ChatCompletion.create(
            model="gpt-3.5-turbo", messages=messages
        )

I am now using llama-index library to train GPT-3.5 on a more specific context, however I don't know how to have the model consider the message_history as well

I am having the same issue @jerryjliu

I am having the same issue...

We now have basic support via https://gpt-index.readthedocs.io/en/latest/how_to/chat_engine/root.html.
More modes and deeper controls coming soon!

Is there any way i can save the chat history using llama_index?

any updates? for saving history messages?


deps: Bump python cffi -> 1.15.0

Fix #20821
Signed-off-by: Ryan Northey<EMAIL_ADDRESS>Commit Message:
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

/assign

@moderation could you please help to review and merge this PR?

/lgtm deps

/assign-from @envoyproxy/senior-maintainers


Top level plan should not require prompt

Currently the top level plan required interaction from user and that is redundant, because no functions trigger this step.
The example of unnecessary prompt for top level plan,
$ cou_rg run
...
                        Upgrade 'octavia-diskimage-retrofit' to the new channel: 'victoria/stable'

Top level plan (c)ontinue/(a)bort/(s)kip:c
backup mysql databases (c)ontinue/(a)bort/(s)kip:c
...

This is a duplicate of https://github.com/canonical/charmed-openstack-upgrader/issues/128. Closing the issue.


[Fabric] Call designated initializer for SurfaceHostingProxyRootView

Summary

Call designated initializer for SurfaceHostingProxyRootView.
Make super class designated initializer -initWithSurface:sizeMeasureMode: NS_UNAVAILABLE.

cc. @shergin
Changelog
[iOS] [Fixed] - Call designated initializer for SurfaceHostingProxyRootView
Test Plan
N/A.

@shergin Emm, subclass designated initializer need to call superclass designated initializer(not convenience initializer) in OC or Swift.


 Would you consider implementing a method or documentation to list existing live events? ( by date, name, time ... )

@ronlinet, yes we can add functions to list & filter the existing live events. Will add it in the next update of the package for sure.


Simplify the contribution guidelines

The current contribution guideline is too wordy to contributors, old and new. As a reviewer myself, I have a difficult time to find out a guideline when attempting to quote it or refer a contributor to it. For example,

We are not accepting "dual-hosted" or "3rd party" contents, where are those guide?
We don't fix blog pages that are over 12 months old, where exactly is this mentioned?

If I just started reading the contribution guides, there are so many pages. The left hand navigator has no logic in it. The fonts are almost the same size. We have for "writing new topic" and "contributing new content", we have "reviewing changes" and "participating in SIG Docs", we have "Custom Hugo Shortcodes" and "advanced contributions", "content guide" listed alongside "content organization" and "page content types" ...
Let's consider how to tailor and reorganize this. Contributing to k8s docs should not be so difficult as it smells today.

Thanks @tengqm
/triage accepted
/sig contributor-experience
/priority important-longterm

/remove-lifecycle stale

/lifecycle frozen

/triage accepted

/assign

@tengqm @sftim I think we can add this point in the documentation that "we don't fix blog pages that are over 12 months old" and coming to the next point it's already mentioned as per the latest docs update. If you give me approval I will be happy to add a commit .

@haripriya9647 Are you still working on this issue?

yes


[REEF-260]: Make the GroupCommunicationLayer memory efficient by introducing streaming and building on top of StreamingNetworkService Layer

[REEF-260]: Make the GroupCommunicationLayer memory efficient by introducing streaming and building on top of StreamingNetworkService Layer
This addressed the issue by

Adding Writable GroupCommunicationMessage. There are two classes one GeneralGroupCommunicationMessage which is independent of message type and is visible to Network service and other type specific communication message visible to operators.
Making the current operators Writable.
Introducing IStreamingCodec in this layer. To external user this is the interface rather than Writable one.
ICodec to IStreamingCodec converter is also provided in case one still wants to use ICodec

JIRA: REEF-260

I've done a syntax path. I feel this could be split into (at least) two pull requests:

Add IStreamingCodec, implementations for (arrays of) base types and tests.
Use it in group communications.

That way, each of those separate changes gets the attention it needs.

@markusweimer @jwang98052 made the new pull request

Looks good to me. @jwang98052 can you have a look as well?

wow!!! no comments :) ... its the first one for me :)
On Wed, Jun 24, 2015 at 9:42 PM, Markus Weimer<EMAIL_ADDRESS>wrote:

Looks good to me. @jwang98052 https://github.com/jwang98052 can you
have a look as well?
—
Reply to this email directly or view it on GitHub
https://github.com/apache/incubator-reef/pull/234#issuecomment-115104496
.

I complete this pass.

I will test and push it.


Permit adding overlays from vscode file manager

Hi, thanks for this effort on niivue, it's amazing. It's especially useful when working in remote servers, to visualize images without downloading them locally.
However: I use vscode-remote, images are opened quite well in niivue, but to add an overlay I first have to download it because when I click add overlay, it opens a file browser to open a local file. I would like to be able to open files from vscode file browser (maybe via drag and drop?).

Thanks for the feedback!
The remote issue was a bug and should be fixed in version 0.3.2. Now even in remote a remote-filepicker should open. I hope this resolves the issue for you.
I might try to add a context menu, so that when right clicking a file there would be the option: Add as overlay


Action match

Coverage remained the same at 100.0% when pulling 54ec67a8506354540cdf3933854a28a3d593ee8e on action_match into f3fa5c0b9451fae251b7e9f6e1bdc36c7ca2dfd9 on master.


QA datasets instances

Can you give some assists in  QA datasets, as all the functions in Dataloader are related to classification tasks, as well as the evaluation..
What's your specific processing when it comes to the HotpotQA or Natural Questions ?

It depends on the use case in question:

If you wish to use PCW for few-shot for NQ it should be relatively similar to the existing code.
If you wish to use PCW for retrieved documents (as done in the paper) - it will be easier to only use the model wrappers and not the entire classification suite (see example in the readme file).

You can find the prompts formats used for those cases in the paper, if you wish to add this functionality and commit the code here we will be happy to review it.
Feel free to ask if you have anymore questions.

thanks for reply!
and i will try it according to your advise!


What about a README to use this project?

Hi,
I just discovered your effort to bring rclone to Proton Drive and it's awesome, thank you for that.
It looks like it should be in a working state if your TODO list is trustworthy, would you mind writing a short manual to let me (and others) use rclone on Proton?

Hello @mbaechler,
Thanks for reaching out!
The effort is already underway here and should be merged soon.
Do you have any specific requests?
Thank you!
Henry

Thanks Henry, I will subscribe to the linked issue.

No worries :)

I just discovered your effort to bring rclone to Proton Drive

Just curious, how did you find this project out of no where :D


Fix proposal results breaking when choice value is negative and add typing

Fix for https://discord.com/channels/707079246388133940/747049240022482974/900757876707065906
Changes:

Add more typescript typing
Remove choices with negative choice value

This isn't needed any longer after this fix on the backend https://github.com/snapshot-labs/snapshot-hub/pull/156


Multibyte Upload Behavior of S3Hook.load_file Causing Issues

When using the S3Hook.load_file, if multipart_bytes is set, uploads will fail if the file is smaller than multipart_bytes. The acute cause can be found here.
What happens is when the method calculates the number of chunks to use, it gets zero. The range iterator thus returns an empty set and no parts get uploaded. When the complete_upload  method of the multipart uploader gets called, the whole thing crashes.
We've created a plugin to copy files from HDFS to S3 and it calls an S3Hook. We want to use multipart uploads if the file is larger than multipart_bytes. It would be nice if the hook could make that distinction and automatically choose whether to use multipart upload or not. At the very least, it should definitely not fail.
The easy way to fix this would be to stat the file to get its size, and then branch to either a multipart upload or a regular upload. Would be happy to submit a PR for the fix if that sounds reasonable.

Sounds very reasonable. I would be happy to review the PR.

I'm on it


[WIP] Fix queue

What type of PR is this?

/kind bug
What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?

NONE

Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:

NONE

Hi, @wzshiming. Why you mark the PR as a bug instead of a cleanup? I read through  your code (for a learning purpose;) and I think the main change is that you re implement the heap by integrating  entries into it.
Did I miss something?

Hi, @wzshiming. Why you mark the PR as a bug instead of a cleanup? I read through your code (for a learning purpose;) and I think the main change is that you re implement the heap by integrating entries into it. Is there any bug in the old code? Did I miss something?

This change was extracted from another PR #880, and it had a very high test failure rate, so I am verify the cause in here.


Optimizations

Functions that could be parallelized (please add as we go so that we can optimize later):

Signed area could conceivably be multithreaded

Probably parallelising apply at the level of Vectors, FeatureCollections or MultiPolygons would be most effective. We could have a threaded keyword and make it false after we thread at the outer level.

https://www.crunchydata.com/blog/performance-improvements-in-geos may be a useful way to compare ourselves against LibGEOS (for at least some of the benchmarks)


Date range picker with time

Is your feature request related to a problem? Please describe.
In addition to selecting a start and end data, I would also need to select a start and end time beyond the data.
Describe the solution you'd like
I click on the input field, I am asked to select a start date, as soon as I select the start date it asks me for a 24 hour format start time, then I am asked to select the second date the end date when the end date was selected asks me to select the second time the end time format 24 hours.
@oliviertassinari , @dmtrKovalenko : #47
https://github.com/mui-org/material-ui-pickers/issues/364#issuecomment-554266873

@oliviertassinari , @dmtrKovalenko: Is there any news?

It's not a priority for now, maybe this summer.

@oliviertassinari As this recently got closed, I'm curious if this is still a valid feature request. We would benefit from such addition (we have licensed the enterprise version).


Cherry-picking ML work for release

Cherry-picks:

https://github.com/voxel51/fiftyone/pull/4038
https://github.com/voxel51/fiftyone/pull/4039

Tests should pass after merging because fiftyone-brain==0.16.0 has now been released


Question: Best way to make request after form submission

We have a multi-step form where we collect data in each step. And in some steps, there needs to be a request to an external service or a DB lookup to find data. It can be generalized as:

the user provides some information in the first part of the form and hits "search"
if the form is valid, make a request or lookup
present the result to the user
the user confirms the data/adds more data and continues to the next step

An example would be providing a name and email to search for a customer, then confirming the accuracy of the found information and continuing to the next step.
I have not yet figured out a clean way to hook into the form wizard to make such an additional request. Is there? Or is this a use case where it's better not to use a form wizard (we use it because it handles the step navigation and data storage)?

I don't think this needs any special treatment, the request/lookup could be done as somewhere in a form-specific method.
Closing as this is not an issue, I'd suggest to ask on Django forums.


Port StreamPeerBuffer to 2.1

StreamPeerBuffer is indispensable for custom network protocols in Godot because it provides an easy way to build up / break down a byte array from / to different Godot types. I think it should be ported to 2.1 because currently 2.1's PacketPeer's put_packet and get_packet methods are close to useless since there is nothing like StreamPeerBuffer to manipulate the packets.

See #10295

Closing since the PR was merged.


Angular template: build error with unions and fragments

Hallo,
given the following GraphQL schema:
union ShippingServices = UPSServices | DHLServices | DPDServices

type UPSServices {
    cod: CODService
}

type DHLServices {
    cod: CODService
}

type DPDServices {
    cod: CODService
}

type CODService {
    amount: Float
    reasonForTransfer: String
}

type Shipping @entity {
    ...
    state: ShippingState!
}

and a fragment on the Angular side:
fragment FullShipping on Shipping {
    ...
    services {
        ... on UPSServices {
            cod {
                amount
                reasonForTransfer
            }
        }
        ... on DHLServices {
            cod {
                amount
                reasonForTransfer
            }
        }
        ... on DPDServices {
            cod {
                amount
                reasonForTransfer
            }
        }
    }
}

Produces the following piece of TypeScript code:
export namespace FullShipping {
  export type Fragment = {
    ....
    services: Services;
  };

  export type Shipper = ShippingContact.Fragment;

  export type Recipient = ShippingContact.Fragment;

  export type Packages = Package.Fragment;

  export type Services =
    | UpsServicesInlineFragment
    | DhlServicesInlineFragment
    | DpdServicesInlineFragment;

  export type UpsServicesInlineFragment = {
    __typename?: "UPSServices";
    cod?: Cod | null;
  };

  export type Cod = {
    __typename?: "CODService";
    amount?: number | null;
    reasonForTransfer?: string | null;
  };

  export type DhlServicesInlineFragment = {
    __typename?: "DHLServices";
    cod?: _Cod | null;
  };

  export type _Cod = {
    __typename?: "CODService";
    amount?: number | null;
    reasonForTransfer?: string | null;
  };

  export type DpdServicesInlineFragment = {
    __typename?: "DPDServices";
    cod?: __Cod | null;
  };

  export type _Cod = {
    __typename?: "CODService";
    amount?: number | null;
    reasonForTransfer?: string | null;
  };
}

The type declaration "_Cod" is defined twice. The one at the bottom should be "__Cod" (two underscores).

@blissi which version of the codegen and the template do you use?
@kamilkisiela I'm not sure it that's a core bug or a template bug.. what do you think?

It is
"graphql-code-generator": "^0.12.2",
"graphql-codegen-apollo-angular-template": "^0.12.3",

@blissi Can you please try to update both to the latest?

@dotansimha  thank you, that fixed it! I didn't check if there are newer versions, sorry for that.


OS-detect.pri doesn't honor PREFIX and other parameters

Currently OS-detect.pri wrongly overwrites and sets PREFIX (and others) to hard-coded paths. It's not possible to overwrite them.
This section never happens to have defined PREFIX:
  #Setup the default values for build settings (if not explicitly set previously)
  !defined(PREFIX){ PREFIX=/usr/local }
  !defined(LIBPREFIX){ LIBPREFIX=$${PREFIX}/lib }

Later on we overwrite these values and others with per-OS options.
pkgsrc is a multiplatform framework and this doesn't work. We need to uniformly pass PREFIX LDFLAGS CFLAGS etc.
While there LIBS is broken too. We need to set these options via make call and via LDFLAGS, not via hard-coded values. We set there paths like rpath or custom ones like /usr/X11R7/lib/ provided by pkgsrc.
My qmake call is as follows:
pre-build:
        ${RUN} cd ${WRKSRC} && ${QTDIR}/bin/qmake PREFIX=${PREFIX} CONFIG+="configure NO_I18N"

Please improve it.
Once done, I will cherry-pick the patch and push Lumina for new pkgsrc. Other than that, it builds on NetBSD.

I think you just need to move the "PREFIX=${PREFIX}" line (and any other definitions like LDFLAGS/CFLAGS) into the CONFIG+= section. If I recall, that was a change with qmake in Qt5 that caught me on FreeBSD as well.

It's not sufficient. Please honor provided PREFIX and other parameters in build-machinery.
Thanks!
Here is an example, the default prefix for pkgsrc is /usr/pkg in the privileged mode. The scripts resets it to /usr/local:
$ make stage-install
=> Bootstrap dependency digest>=20010302: found digest-20121220
===> Installing for lumina-0.8.8
=> Generating pre-install file lists
cd libLumina/ && ( test -e Makefile || /usr/pkg/qt5/bin/qmake /tmp/pkgsrc-tmp/wip/lumina/work/lumina-0.8.8-Release/libLumina/libLumina.pro 'CONFIG+=configure NO_I18N PREFIX=/usr/pkg' -o Makefile ) && /usr/bin/make -f Makefile install
libtool --silent --mode=install cp "libLuminaUtils.la" "/tmp/pkgsrc-tmp/wip/lumina/work/.destdir/usr/local/lib"
libtool: install: warning: remember to run `libtool --finish /usr/local/lib'
install -m 644 -p /tmp/pkgsrc-tmp/wip/lumina/work/lumina-0.8.8-Release/libLumina/LuminaXDG.h /tmp/pkgsrc-tmp/wip/lumina/work/.destdir/usr/local/include/
install -m 644 -p /tmp/pkgsrc-tmp/wip/lumina/work/lumina-0.8.8-Release/libLumina/LuminaUtils.h /tmp/pkgsrc-tmp/wip/lumina/work/.destdir/usr/local/include/
install -m 644 -p /tmp/pkgsrc-tmp/wip/lumina/work/lumina-0.8.8-Release/libLumina/LuminaX11.h /tmp/pkgsrc-tmp/wip/lumina/work/.destdir/usr/local/include/
install -m 644 -p /tmp/pkgsrc-tmp/wip/lumina/work/lumina-0.8.8-Release/libLumina/LuminaThemes.h /tmp/pkgsrc-tmp/wip/lumina/work/.destdir/usr/local/include/
install -m 644 -p /tmp/pkgsrc-tmp/wip/lumina/work/lumina-0.8.8-Release/libLumina/LuminaOS.h /tmp/pkgsrc-tmp/wip/lumina/work/.destdir/usr/local/include/

Thanks, but this issue is still valid. It's better but still not right - there are still symbols overridden for platforms, including NetBSD (notably LIBPREFIX). pkgsrc runs on all of the platforms available for Lumina and we need to be able to overwrite these values for all of them.

I bet this block should be removed completely:
   # Now go through and setup any known OS build settings
   # which are different from the defaults
   equals(QMAKE_HOST.os, "DragonFly"){
     #Note: DragonFly BSD gets detected as FreeBSD with compiler flags ?
     OS = DragonFly
     LIBS += -L/usr/local/lib -L/usr/lib

   }else : freebsd-*{
     OS = FreeBSD
     LIBS += -L/usr/local/lib -L/usr/lib
      #Use the defaults for everything else

   }else : openbsd-*{
     OS = OpenBSD
     LIBS += -L/usr/local/lib -L/usr/lib
     #Use the defaults for everything else

   }else : netbsd-*{
     OS = NetBSD
     LIBS += -L/usr/local/lib -L/usr/lib
     LIBPREFIX=/usr/local/lib
     #Use the defaults for everything else

   }else : linux-*{
     L_SESSDIR=/usr/share/xsessions
     OS=Linux
     LIBS += -L/usr/local/lib -L/usr/lib -L/lib

     exists(/bin/lsb_release){
       LINUX_DISTRO = $$system(lsb_release -si)
     } else:exists(/usr/bin/lsb_release){
       LINUX_DISTRO = $$system(lsb_release -si)
     }
   }else{
     OS="Unknown";
   }

If we need it, than just for querying OS.

krytarowski: Why don't you just modiy the netbsd section of that file as you need, then send in a patch? I can understand why the LIBPREFIX line should probably be removed, but as for your special packaging variables I can't really do any tests/verification of them since I don't have any NetBSD systems.

Ok, I just pushed up a couple fixes to the project files:

I removed that LIBPREFIX definition from the NetBSD section
I cleaned up the use of the DESTDIR variable. This variable should be used in situations where the files are getting temporarily installed into an alternate subdir (such as a clean working dir), before getting packaged up. The PREFIX variable should still be used for the final installed prefix, since that is required for some internal linking/paths at binary runtime.

Example:
If DESTDIR is set to "/usr/pkg" with PREFIX="/usr/local/", then the Lumina files will get installed (without other OS-specific path modifications) to "/usr/pkg/usr/local/[bin/sbin/etc/lib/share/include]". However, the binaries at runtime will expect themselves to be installed into "/usr/local/[bin/sbin/share/lib/etc/include]" (particularly the share/etc dirs), so some other system (such as a package installer) will need to move the files into the proper places prior to running the binaries.
If you need other special automated-build settings/knobs, you just need to give me a list and I can add more in for you.
Commit:
https://github.com/pcbsd/lumina/commit/bd29fc775f54ce78b0e99c84f6077997c976e565

Thank you! I will test it and give you feedback.
I wasn't proposing PR since I didn't want to introduce decisions on my own in the build-machinery.

In addition, LuminaOS.h is installed with:
static QString LuminaShare(){ return (L_SHAREDIR+"/Lumina-DE/"); }, but the L_SHAREDIR is not defined.

It would be nice to pass all these hard-coded in source-code paths to '/usr/local' and other prefixes via single qmake call. Right now I'm using sed-like utility to replace strings with these paths.

rezso:
The L_SHAREDIR variable is defined via the qmake initialization routine (See "OS-detect.pri", lines 90-92). That is how the user/OS paths are passed through into the C++ files for usage.
krytarowski:
The whole point of this new system was to allow any build for a particular operating system (not just automated package builders, but local users as well) to simply run "qmake; make; make install" without any special CLI/build flags. The whole point is that for each OS, Lumina should be getting installed/run from the exact same directories irrespective of whether it was installed directly from the Lumina sources or via some pre-built package. If there are differences between your pkg install and a local compilation/install, please let me know so we can add additional hooks/paths for things as needed.

@beanpole135 yes, I know, and it works for the compilation. But please take a look into the installed LuminaOS.h file.

rezso: Ah, I see what you mean. If you then try to compile some other application and link in the Lumina library, then that variable will not be defined and will cause the compile to fail. I will move that function source into the .cpp files instead in just a moment, which should ensure that the library/compiled value is always used - even when another app is trying to compile against the Lumina lib.

Done!
https://github.com/pcbsd/lumina/commit/489c21960fceb325d43e31d289b6518f48f39d26


Incorporate MetaGenScope with Pangea

Sample Group

[ ] HMP Comparison
[ ] Volcano
[ ] Alpha Diversity
[ ] Microbe Directory
[ ] Multi-Axis

Sample

[ ] Reads Classified
[ ] HMP
[ ] Taxonomy
[ ] Microbe Directory


docs: add snakemake and reportplugins to req.txt to show all cli options

Description
Fixes #2813. snakemake and snakemake-interface-report-plugins were missing from the req.txt, which are needed to get the argument parser from snakemake.cli.
Note: it seems the default report plugin's arguments leak into the docs (see below)

QC

[x] The PR contains a test case for the changes or the changes are already covered by an existing test case.
[x] The documentation (docs/) is updated to reflect the changes or this is not necessary (e.g. if the change does neither modify the language nor the behavior or functionalities of Snakemake).

Ah, I figured. I’ll remove it.
Thanks
On Thu, Apr 18, 2024 at 12:26 Johannes Köster @.***>
wrote:

@.**** requested changes on this pull request.
In docs/requirements.txt
https://github.com/snakemake/snakemake/pull/2817#discussion_r1571259069:

@@ -7,6 +7,8 @@ configargparse
appdirs
immutables
sphinxawesome-theme
+snakemake

⬇ Suggested change
-snakemake
Snakemake itself is imported from the repo checkout. It should not be
needed and I would think it is even harmful here.
—
Reply to this email directly, view it on GitHub
https://github.com/snakemake/snakemake/pull/2817#pullrequestreview-2009708907,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKVQJ4T5AHWL5R2REP4ZMVTY6AM5HAVCNFSM6AAAAABGKEOOJ6VHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDAMBZG4YDQOJQG4
.
You are receiving this because you authored the thread.Message ID:
@.***>

Thanks a lot!


Recovered channel leads to force close which is stuck in waiting and cannot be reinitiated

Background
(THIS IS A REPOST BECAUSE ORIGINAL WAS CLOSED BEFORE MY PROBLEM WAS SOLVED OR BEFORE I WAS ADEQUATELY HELPED TO FIND A WORKAROUND)
Channel close is stuck in waiting and cannot be forced through LND commands.
Your environment
latest stable version LND on Umbrel OS lightning node
raspberry pi 8gb
Steps to reproduce
This channel originally would not loop out or complete a cooperative close. There was an OS level error following this and I had to recover my channels through backup. The channel backup initiated a force close on this channel and it has remained in waiting ever since.
Expected behaviour
I am expecting a force close and deposit of the 600,000 satoshi balance into my bitcoin wallet from the channel close.
Actual behaviour
lnd --forceclose emits an error and pending force close is not fulfilled.

Going to re-open the original issue that was closed prematurely.


Question about the bot! (Live features/Radio)

I read the FAQ's and understand that Twitch and any other live platforms don't really work. Until "Soon".
Did anyone make it work so it can plau Shoutcast radio stations? I really need this! Thanks!

Nvm that, I found out about the "review" pack. :)


Prefer pandas.Int64Dtype for non-required int fields

When inferring pandas format from schema metadata, we previously used the most specific possible standard numpy/pandas integer format. Unfortunately, these do not support null values, so some data cannot be encoded correctly. This would cause exceptions when pandas was part of the pipeline (i.e., when reading from file or sourcing from mysql).
This adjusts the logic so that, if on a recent enough pandas, a nullable int type is used UNLESS the field is explicitly designated as required (i.e., non-null).
Replaces #138

@apiology: A few questions for you on this one

Does this look basically right? I started from your last comment in the other PR-- and it did seem like a compelling and straightforward place to add this behavior.
Do you think it would fit within the overall idea of the introduction of component tests to migrate some of the tests from test_field.py here into a component test? Generally, looks like the mocks are on schema classes, and it feels like it would be more natural to just write these using the schema classes themselves.
I'm trying to figure out how to introduce an integration test that would fail without this behavior. Basically, something that replicates the two places I've seen this: in loading a plain text file and in copying from mysql to redshift. I can't quite see the right way to insert this (basically, we'd be loading a file that has an integer column with nulls in it). Any pointers?

@apiology: A few questions for you on this one

Does this look basically right? I started from your last comment in the other PR-- and it did seem like a compelling and straightforward place to add this behavior.
Do you think it would fit within the overall idea of the introduction of component tests to migrate some of the tests from test_field.py here into a component test? Generally, looks like the mocks are on schema classes, and it feels like it would be more natural to just write these using the schema classes themselves.
I'm trying to figure out how to introduce an integration test that would fail without this behavior. Basically, something that replicates the two places I've seen this: in loading a plain text file and in copying from mysql to redshift. I can't quite see the right way to insert this (basically, we'd be loading a file that has an integer column with nulls in it). Any pointers?

Hi @cwegrzyn!

Does this look basically right? I started from your last comment in the other PR-- and it did seem like a compelling and straightforward place to add this behavior.

It certainly seems like it'd be necessary for at least some cases!  I'm not entirely it's sufficient (but not sure it's not!), but it sounds like you're on the road to do the testing to verify that.

Do you think it would fit within the overall idea of the introduction of component tests to migrate some of the tests from test_field.py here into a component test? Generally, looks like the mocks are on schema classes, and it feels like it would be more natural to just write these using the schema classes themselves.

Yep!  Generally if you can write it without feeling too much pain from introducing the real objects, I think migrating to a component test would be great!

I'm trying to figure out how to introduce an integration test that would fail without this behavior. Basically, something that replicates the two places I've seen this: in loading a plain text file and in copying from mysql to redshift. I can't quite see the right way to insert this (basically, we'd be loading a file that has an integer column with nulls in it). Any pointers?

The multi-db aspect could potentially be added in tests/integration/records/multi_db/test_records_table2table.py.  I could see two ways of doing it:

You could add nullable cases to RecordsDatabaseFixture and RecordsTableValidator that includes more cases, including this one.  The bummer is that you'd need to also enhance everything in tests/integration/resources/, as these three things are shared with the tests in single_db/
You could create a new and improved version of the fixture and validator that are used just in multi_db.
You could leave that fixture and validator alone and create a new fixture, validator and test that covers the nullable columns.  It'd have the downside of more test overhead; twice as many CREATE/DROP/SELECT statements going on, whereas the overhead of an additional column would be more minimal.

As for testing the type inference on a CSV (which uses Pandas and would presumably suffer here), that seems squarely in the component test arena - there's no benefit to test that for each database type.  If the system can be trusted to be handed a CSV with no schema and produce the right schema, the existing tests should handle the rest.
Good luck with it!

Hi @cwegrzyn!

Does this look basically right? I started from your last comment in the other PR-- and it did seem like a compelling and straightforward place to add this behavior.

It certainly seems like it'd be necessary for at least some cases!  I'm not entirely it's sufficient (but not sure it's not!), but it sounds like you're on the road to do the testing to verify that.

Do you think it would fit within the overall idea of the introduction of component tests to migrate some of the tests from test_field.py here into a component test? Generally, looks like the mocks are on schema classes, and it feels like it would be more natural to just write these using the schema classes themselves.

Yep!  Generally if you can write it without feeling too much pain from introducing the real objects, I think migrating to a component test would be great!

I'm trying to figure out how to introduce an integration test that would fail without this behavior. Basically, something that replicates the two places I've seen this: in loading a plain text file and in copying from mysql to redshift. I can't quite see the right way to insert this (basically, we'd be loading a file that has an integer column with nulls in it). Any pointers?

The multi-db aspect could potentially be added in tests/integration/records/multi_db/test_records_table2table.py.  I could see two ways of doing it:

You could add nullable cases to RecordsDatabaseFixture and RecordsTableValidator that includes more cases, including this one.  The bummer is that you'd need to also enhance everything in tests/integration/resources/, as these three things are shared with the tests in single_db/
You could create a new and improved version of the fixture and validator that are used just in multi_db.
You could leave that fixture and validator alone and create a new fixture, validator and test that covers the nullable columns.  It'd have the downside of more test overhead; twice as many CREATE/DROP/SELECT statements going on, whereas the overhead of an additional column would be more minimal.

As for testing the type inference on a CSV (which uses Pandas and would presumably suffer here), that seems squarely in the component test arena - there's no benefit to test that for each database type.  If the system can be trusted to be handed a CSV with no schema and produce the right schema, the existing tests should handle the rest.
Good luck with it!

It certainly seems like it'd be necessary for at least some cases! I'm not entirely it's sufficient (but not sure it's not!), but it sounds like you're on the road to do the testing to verify that.

Ah! Yep, you are right. This solved my original problem (Mysql -> Redshift, which was using pandas as an intermediary). But it doesn't deal with what your original PR does-- having loads from CSV use the nullable types.
I'm in the midst of a rabbit-hole of applying the cast_series_type transformations on CSV loads. But this turning out to be non-trivial for two reasons:

As you no doubt know, pandas.read_csv is loading dates as timestamps, which is not the expectation of our cast_series_type, so it's causing errors.
I don't think it solves the type inference problem-- we still need to convert to the right types on type inference.

It's possible that number 2 ought to be solved by running convert_dtypes during type inference and leaning in on pandas type inference (although you've noted the challenges with dates/times there already)
For number 1, I feel like I need to go deeper into the rabbit hole of dates/times anyway!

Yep! Generally if you can write it without feeling too much pain from introducing the real objects, I think migrating to a component test would be great!

Great! Going to do that, especially since I suspect the logic is going to get even more complicated in there...

The multi-db aspect could potentially be added in tests/integration/records/multi_db/test_records_table2table.py. I could see two ways of doing it:

You could add nullable cases to RecordsDatabaseFixture and RecordsTableValidator that includes more cases, including this one.  The bummer is that you'd need to also enhance everything in tests/integration/resources/, as these three things are shared with the tests in single_db/
You could create a new and improved version of the fixture and validator that are used just in multi_db.
You could leave that fixture and validator alone and create a new fixture, validator and test that covers the nullable columns.  It'd have the downside of more test overhead; twice as many CREATE/DROP/SELECT statements going on, whereas the overhead of an additional column would be more minimal.

Thanks for those pointers. I attempted to add a column to the standard fixture. But then I ran up against the fact that we generally assume NULL == empty string, but mysql LOAD DATA INFILE only does NULL == \N. mysql reads an empty string in an int column as the value 0 instead of NULL, no matter what. I guess I could special case that in the table validator... currently, that's the reality of the mysql load support until we do some file pre-processing. Maybe that's the answer: allow that nulls will load as 0 for now, and add an issue to pre-process files to fix that? What do you think?

As for testing the type inference on a CSV (which uses Pandas and would presumably suffer here), that seems squarely in the component test arena - there's no benefit to test that for each database type. If the system can be trusted to be handed a CSV with no schema and produce the right schema, the existing tests should handle the rest.

Makes sense! I think I may get a better grasp on this as I noodle on the date/time situation.

Good luck with it!

Thanks! And I hope I expressed adequate appreciation for the complexity of the challenge you were taking on in building this... but in any event, I sure do have that appreciation now :grin:

It certainly seems like it'd be necessary for at least some cases! I'm not entirely it's sufficient (but not sure it's not!), but it sounds like you're on the road to do the testing to verify that.

Ah! Yep, you are right. This solved my original problem (Mysql -> Redshift, which was using pandas as an intermediary). But it doesn't deal with what your original PR does-- having loads from CSV use the nullable types.
I'm in the midst of a rabbit-hole of applying the cast_series_type transformations on CSV loads. But this turning out to be non-trivial for two reasons:

As you no doubt know, pandas.read_csv is loading dates as timestamps, which is not the expectation of our cast_series_type, so it's causing errors.
I don't think it solves the type inference problem-- we still need to convert to the right types on type inference.

It's possible that number 2 ought to be solved by running convert_dtypes during type inference and leaning in on pandas type inference (although you've noted the challenges with dates/times there already)
For number 1, I feel like I need to go deeper into the rabbit hole of dates/times anyway!

Yep! Generally if you can write it without feeling too much pain from introducing the real objects, I think migrating to a component test would be great!

Great! Going to do that, especially since I suspect the logic is going to get even more complicated in there...

The multi-db aspect could potentially be added in tests/integration/records/multi_db/test_records_table2table.py. I could see two ways of doing it:

You could add nullable cases to RecordsDatabaseFixture and RecordsTableValidator that includes more cases, including this one.  The bummer is that you'd need to also enhance everything in tests/integration/resources/, as these three things are shared with the tests in single_db/
You could create a new and improved version of the fixture and validator that are used just in multi_db.
You could leave that fixture and validator alone and create a new fixture, validator and test that covers the nullable columns.  It'd have the downside of more test overhead; twice as many CREATE/DROP/SELECT statements going on, whereas the overhead of an additional column would be more minimal.

Thanks for those pointers. I attempted to add a column to the standard fixture. But then I ran up against the fact that we generally assume NULL == empty string, but mysql LOAD DATA INFILE only does NULL == \N. mysql reads an empty string in an int column as the value 0 instead of NULL, no matter what. I guess I could special case that in the table validator... currently, that's the reality of the mysql load support until we do some file pre-processing. Maybe that's the answer: allow that nulls will load as 0 for now, and add an issue to pre-process files to fix that? What do you think?

As for testing the type inference on a CSV (which uses Pandas and would presumably suffer here), that seems squarely in the component test arena - there's no benefit to test that for each database type. If the system can be trusted to be handed a CSV with no schema and produce the right schema, the existing tests should handle the rest.

Makes sense! I think I may get a better grasp on this as I noodle on the date/time situation.

Good luck with it!

Thanks! And I hope I expressed adequate appreciation for the complexity of the challenge you were taking on in building this... but in any event, I sure do have that appreciation now :grin:

Thanks for those pointers. I attempted to add a column to the standard fixture. But then I ran up against the fact that we generally assume NULL == empty string, but mysql LOAD DATA INFILE only does NULL == \N. mysql reads an empty string in an int column as the value 0 instead of NULL, no matter what. I guess I could special case that in the table validator... currently, that's the reality of the mysql load support until we do some file pre-processing. Maybe that's the answer: allow that nulls will load as 0 for now, and add an issue to pre-process files to fix that? What do you think?

Ah, interesting.  I guess in theory if you wanted to go further down the rabbit hole, you could start with a separate PR that introduces full support for the 'null_as' hint, describe to Records Mover what null is described as in the file, and have Records Mover rewrite the file to whatever MySQL requires by reading and writing using Pandas.
Or maybe just forget the integration test for now and focus on a component test that locks in the behavior you want, and yeah, work around in practice for now until there's time to write the 'null_as' PR :)
Half the game here is keeping to one PR at a time and not ending up with six features in at once...

Thanks! And I hope I expressed adequate appreciation for the complexity of the challenge you were taking on in building this... but in any event, I sure do have that appreciation now 😁

Hahaha, I appreciate it!  Figuring out how to provide monotonically increasing value with every PR was a challenge indeed.
I don't have much to say about the timestamp vs date issues you referenced - that stuff isn't stuck in my head anymore, sadly, so I'd probably need more detail to be of any use to you.

Thanks for those pointers. I attempted to add a column to the standard fixture. But then I ran up against the fact that we generally assume NULL == empty string, but mysql LOAD DATA INFILE only does NULL == \N. mysql reads an empty string in an int column as the value 0 instead of NULL, no matter what. I guess I could special case that in the table validator... currently, that's the reality of the mysql load support until we do some file pre-processing. Maybe that's the answer: allow that nulls will load as 0 for now, and add an issue to pre-process files to fix that? What do you think?

Ah, interesting.  I guess in theory if you wanted to go further down the rabbit hole, you could start with a separate PR that introduces full support for the 'null_as' hint, describe to Records Mover what null is described as in the file, and have Records Mover rewrite the file to whatever MySQL requires by reading and writing using Pandas.
Or maybe just forget the integration test for now and focus on a component test that locks in the behavior you want, and yeah, work around in practice for now until there's time to write the 'null_as' PR :)
Half the game here is keeping to one PR at a time and not ending up with six features in at once...

Thanks! And I hope I expressed adequate appreciation for the complexity of the challenge you were taking on in building this... but in any event, I sure do have that appreciation now 😁

Hahaha, I appreciate it!  Figuring out how to provide monotonically increasing value with every PR was a challenge indeed.
I don't have much to say about the timestamp vs date issues you referenced - that stuff isn't stuck in my head anymore, sadly, so I'd probably need more detail to be of any use to you.

@apiology: okay-- finally had a bit of time to polish this one off, sorta. This PR very narrowly deals in the question of what pandas types do we use for a schema, and says "use the nullable pandas ones when available". I moved the unit tests to component tests and validated the behavior there. As written, this ONLY fixes the problem of exporting from a database that has NULL values via pandas; it does nothing for the problem of using the write pandas types when loading from a CSV file-- that's more complex and I think deserves its own PR. I also couldn't come up with a good test of that behavior alone, because I think it depends on addressing a lot more NULL handling issues if it's going to live in an integration test, which seemed too complex for this PR.


Setting checkbox as disabled in reactive forms results in TypeError

Detailed description

Relevant Carbon code: https://github.com/IBM/carbon-components-angular/blob/64010af468042741cf2fc796a94f801d26499d18/src/checkbox/checkbox.component.ts#L315-L318
Steps to reproduce the issue
Codesandbox: https://codesandbox.io/s/carbon-components-angular-checkbox-typeerror-sejsyl?file=/src/app/app.component.html
Additional information

Hey @anemonetea & @r2-codes, have you tried following the example on storybook?
In the demo, we use reactive form & enable/disable checkbox.

Hey @Akshat55 in my situation, if you are on that tab where the checkbox its is, I can toggle it, its perfect. But when I leave the checkbox on disable state, and return back to the checkbox with the disable state that is the moment when the error occurs. As I understand, when the component is initialized if has disable state there is the problem.


Fixes related to report.log and task names

Use report log in the tmp folder instead of files since we print this
already as part failover and failback scripts
Change deprecated succeeded/failed conditions
Set missing names for tasks with missing names

Agreed I will add a fix for that in a different PR


Upgrade Jcommander

We're currently on version 1.72. Latest version available is 1.78

Addressed by #22


Bug: Confusing development settings

@lilliputten Why do we need DEV, LOCAL, and DEBUG? Can't we just use one of these?

DEBUG is for django internal debugging features like showing full tracebacks in the browser. LOCAL is to enable (or notify about it) the local dev server (to use 'http' url prefix instead of 'https' when we can't get it from the request object, or to enable assets preprocessing using django filters). DEV is for our (my, probably) own debugging options. Sometimes they could be used separately.

I see your changes in PR #67 and for me: (1) those things were supposed to work differently, (2) it became a bit more complex than was before.

We never allow DEBUG or LOCAL on production, so these can be the same. We are either doing development or not. I guess DEV is different?

USE_DJANGO_PREPROCESSORS = DEV - Do we actually need DEV then? Can't we test for USE_DJANGO_PREPROCESSORS?

DEV should be turned off in production too. But sometimes (in complex cases) it'd be useful to switch some of them in the 'on' state. But, 'course, it's not essential: probably we won't face such cases at all (I hope that).

USE_DJANGO_PREPROCESSORS = DEV - Do we actually need DEV then? Can't we test for USE_DJANGO_PREPROCESSORS?

It is useful to keep this parameter independent from DEV and/or DEBUG (they have different purposes): you probably don't want to switch on preprocessor mode on when you trying to trace a bug in the code.

It is useful to keep this parameter independent from DEV and/or DEBUG

But it wasn't independent in the codebase? It was aliased directly to LOCAL. There were exactly the same thing. And if you run into a bug, it's the same time to change the settings.py file as it is you .env file (or whatever).

Is that finished?


Documentation change for slider #268

Was thinking you might want a little pull request for this one :)

Coverage remained the same at 100.0% when pulling ed87eb78e4b4402946129fbb2b5bccb7ef75d705 on greggigon:master into f4c67fe9f4a160636685f419e1586f3e17875ed3 on tleunen:master.

Thanks @greggigon :)


klusterlet label syncing does not support numerical strings as the label values (e.g., my-label: "123")

Describe the bug
We have a label with the string type, but actually a number inside the double quotes as a string. Getting json: cannot unmarshal number into Go struct field ObjectMeta.metadata.labels of type string from klusterlet.
To Reproduce
Scenario 1:

Add the label my-label: "123" to klusterlet
In the applied EKS cluster, runningkubectl get klusterlet -o yaml produces following:

message: '["klusterlet/managed/klusterlet-registration-serviceaccount.yaml"       (string): cannot decode "klusterlet/managed/klusterlet-registration-serviceaccount.yaml":       json: cannot unmarshal number into Go struct field ObjectMeta.metadata.labels       of type string, "klusterlet/managed/klusterlet-registration-clusterrole.yaml"       (string): cannot decode "klusterlet/managed/klusterlet-registration-clusterrole.yaml":       json: cannot unmarshal number into Go struct field ObjectMeta.metadata.labels       of type string, "klusterlet/managed/klusterlet-registration-clusterrole-addon-management.yaml"       (string): cannot decode "klusterlet/managed/klusterlet-registration-clusterrole-addon-management.yaml":       json: cannot unmarshal number into Go struct field ObjectMeta.metadata.labels       of type string, "klusterlet/managed/klusterlet-registration-clusterrolebinding.yaml"       (string): cannot decode "klusterlet/managed/klusterlet-registration-clusterrolebinding.yaml":       json: cannot unmarshal number into Go struct field ObjectMeta.metadata.labels       of type string, "klusterlet/managed/klusterlet-registration-clusterrolebinding-addon-management.yaml"       (string): cannot decode "klusterlet/managed/klusterlet-registration-clusterrolebinding-addon-management.yaml":       json: cannot unmarshal number into Go struct field ObjectMeta.metadata.labels       of type string, "klusterlet/managed/klusterlet-work-serviceaccount.yaml" (string):       cannot decode "klusterlet/managed/klusterlet-work-serviceaccount.yaml": json:       cannot unmarshal number into Go struct field ObjectMeta.metadata.labels of       type string, "klusterlet/managed/klusterlet-work-clusterrole.yaml" (string):       cannot decode "klusterlet/managed/klusterlet-work-clusterrole.yaml": json:       cannot unmarshal number into Go struct field ObjectMeta.metadata.labels of       type string, "klusterlet/managed/klusterlet-work-clusterrole-execution.yaml"       (string): cannot decode "klusterlet/managed/klusterlet-work-clusterrole-execution.yaml":       json: cannot unmarshal number into Go struct field ObjectMeta.metadata.labels       of type string, "klusterlet/managed/klusterlet-work-clusterrolebinding.yaml"       (string): cannot decode "klusterlet/managed/klusterlet-work-clusterrolebinding.yaml":       json: cannot unmarshal number into Go struct field ObjectMeta.metadata.labels       of type string, "klusterlet/managed/klusterlet-work-clusterrolebinding-aggregate.yaml"       (string): cannot decode "klusterlet/managed/klusterlet-work-clusterrolebinding-aggregate.yaml":       json: cannot unmarshal number into Go struct field ObjectMeta.metadata.labels       of type string, "klusterlet/managed/klusterlet-work-clusterrolebinding-execution-admin.yaml"       (string): cannot decode "klusterlet/managed/klusterlet-work-clusterrolebinding-execution-admin.yaml":       json: cannot unmarshal number into Go struct field ObjectMeta.metadata.labels       of type string]'     reason: ManagedClusterResourceApplyFailed     status: "False"     type: Applied

 message: 'Failed to get deployment "open-cluster-management-agent" "klusterlet-agent":      deployments.apps "klusterlet-agent" not found'    observedGeneration: 1    reason: GetDeploymentFailed    status: "False"    type: Available

Scenario 2: Then, we tested the integration test in the ocm repo.

Update the labels in klusterlet_test.go to
Labels: map[string]string{"test": "123", "component": "klusterlet"},
Run the integration test by make test-registration-operator-integration locally

Getting:
E0618 11:37:56.802024   54730 helpers.go:592] failed to generate relatedResource [35 32 ... 93 10], and skip to set into status. json: cannot unmarshal number into Go struct field ObjectMeta.metadata.labels of type string
Expected behavior
Should have create the resources successfully with the labels
Environment:
OCM version: 0.13.3
clusteradm version: 0.8.4
Kubernetes version: v1.28.10

this issue was fixed in release 0.14.0


Adding ethercat_grant

Added ethercat_grant to noetic distribution list

hey, can this be merged?

@maxzieba since this pull request was not created with bloom-release it is missing some information that we rely on to review.
My suggestion would be to create an new pull request with bloom-release. You can do this by re-running your bloom-release command with the --pull-request-only flag so that all the usual information is there.

Done, thanks. https://github.com/ros/rosdistro/pull/28668

Closing in favor of https://github.com/ros/rosdistro/pull/28668


The pattern %{moves: []} on line 39 doesn't have the type any()

Hi. thanks for working on gradient.
Error I'm getting when running gradient without any specs on function definition with pattern matching.
Some examples:
def play(%{moves: []} = game, _move, _roll) do
def play(%{moves: [{_round, player} | new_moves]} = game, move, roll) do
adding spec definitions makes them go away but the initial run looks scary and does not suggest a proper solution

Thanks for the report, @dkuku!
Indeed, in the light of no spec this warning should not be produced - it's a known bug. It's also mentioned in #37 as one of the issues. I checked if it's specific to Gradient or also present in Gradualizer and it's the latter - there's already josefs/Gradualizer#387 to track it upstream.


Fix Readme typo from Github Org transition

Replace mention of scratch-file-path with db-s3-object -- as specified by a prior version
I've never used KeyDB, but I had been reading the documentation over the last day or two.  I think this typo cropped up in the Readme during the org transition -- congrats btw -- please confirm it is correct.

Your right that is incorrect and it should be the s3 version.  I'll merge.
Thanks so much for the help!


Why waveform * (1 << 15) in tools/compute_cmvn_stats.py

Hello,
When reading the source code of tools/compute_cmvn_stats.py in line about 49, I find waveform=waveform *(1<<15).
I know 1<<15=32768 but why times the waveform then ,I am a little bit confused about this operation. Can you help me  and thanks in advance

torchaudio normalizes the sample point to -1.0 and 1.0 automatically. Here we convert it to 16 bits representation by waveform=waveform *(1<<15)

Understood, thanks robin

Oh sorry for the question again, I wonder if set the flag normalize=False  in torchaudio.backend.sox_io_backend.load,  the result will be the same with the current waveform ?

Yes,  1waveform=waveform *(1<<15)does the same works asnormalize=False`

got it thanks a lot


Multiple OS X patches

With this, and PATH="/usr/local/opt/gnu-sed/libexec/gnubin:/usr/local/opt/coreutils/libexec/gnubin:$PATH" I was able to build for arm-linux-musleabihf and x86_64-linux-musl on El Capitan.

Ping? :) I'm really keen on publishing the Homebrew Formula...

Do you have good reason to believe the linux patch doesn't break anything? The archscripts target and dependency for __headers was added in commit 6520fe5564 seemingly for a reason. If archscripts are never needed for producing headers that should probably be fixed, but if they're needed for some archs then it's perhaps more complicated. Can you look into this?
The binutils patch looks fine as-is; it matches the upstream fix.
As I believe I noted somewhere else, adding CXX=[anything] to *_CONFIG by default is problematic because it will conflict with settings in the user's config.mak. I think we should consider one of the following 3 approaches:

Just keep the workaround local in your config.mak if you have a compiler that needs it.
Write a patch for GCC's build system that adds -fbracket-depth to its flags or to the command line for just the affected files.
or
Make some framework where both config.mak and the main Makefile can provide additions/changes to CC, CXX, CFLAGS, etc. without stepping on each other.

While 3 seems nice in some ways, it's also something of a big hammer/almost-gratuitous complexity, so I'd lean towards one of the other options.

Do you have good reason to believe the linux patch doesn't break anything? The archscripts target and dependency for __headers was added in commit 6520fe5564 seemingly for a reason. If archscripts are never needed for producing headers that should probably be fixed, but if they're needed for some archs then it's perhaps more complicated. Can you look into this?

At least in 4.4.10, the only archscripts target is x86, which I can build just fine. Also the only tool is relocs, which I really really can't tell how it can be used in install-headers. I suspect adding the archscripts dependency has been either a shortcut or a mistake.

As I believe I noted somewhere else, adding CXX=[anything] to *_CONFIG by default is problematic because it will conflict with settings in the user's config.mak. I think we should consider one of the following 3 approaches:

Yeah, I had misinterpreted. Agreed on 3 being overkill. I'd prefer 2 but I'm running out of time budget for this :) so I'm striking that patch out. I'll leave the issue open for you to decide what to do, and add the line to config.mak in the Homebrew Formula.

Ping :) I believe I should have addressed all your above concerns.
Sorry for being pushy, I'm just looking forward to publishing the Homebrew Formula (which by the way would also require #10).

Sorry, I didn't realize you'd made the changes we discussed. I think it looks good so I'm merging these commits. Thanks!

Wonderful, thank you! ✨ Let me know what you think of tagging a release (#10).


Rename the SwiftPM entry point.

This PR renames the SwiftPM entry point function such that it does not need to be SPI. By marking it SPI, we unintentionally made it very difficult to use with a toolchain that does not include private module information.
The PR continues to export the old symbol name as used by SwiftPM; once we've updated SwiftPM to match, we will remove the old function.
See: https://github.com/apple/swift-package-manager/pull/7137
Checklist:

[x] Code and documentation should follow the style of the Style Guide.
[x] If public symbols are renamed or modified, DocC references should be updated.

@swift-ci please test


Update concept-azure-ad-connect-sync-default-configuration.md

Just adding more clarity in the Join Rules behavior suggested by Microsoft Support.

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


Consider making it more obvious which track you're on

Right now you select a track when you sign up, but it's not at all clear/obvious to you once you're using Onramp 1) which track you're on and 2) what the other tracks consist of.

See #276 for the second point of Dave's note here. So this issue is just about showing the track you're on globally in the UI somewhere.


added all_close function among TensorMaps

Two TensorMaps are considered all close if the have the same keys and their TensorBlocks have the same samples, components, properties (in the same order) and their values pass the allclose test with the given rtol and atol.
It solves #45 how me and @Luthaf discussed.

Could you also use this function to replace the one currently used in the tests?

Could you also use this function to replace the one currently used in the tests?

you mean in the test for the dot/solve ?


Add HowToGuide for creating simple spatial buttons

Basic guide of simple click button to do action.

Based off the Straight Pointer guide
Duplicate ButtonAction, set key to Z
Set duplicate action to be pointer select action
Add Spatial Target dispatcher
Set Pointer enter,exit, selected events to the relevant target dispatcher methods
add spatial target
set actions on hover to nothing
set actions on activate to "deselect self" only
set deselect delay to 0.1
add simple code to log out string message
Set target activated event to log out "clicked"
run scene, point at target and click it, should log out "clicked" to screen


[Question]: more mistral models

Describe your problem
i wanted to ask if more models of mistral AI (the cheaper ones) will be made available in upcoming times as there are only limited models of mistral ai available and the one we want to use is not present there.

So, could you list the models that you want to use?

ministral 3B and ministral 8b !   can you add these two ,  they are mistral ai's models only

These are self deployed open souce model, aren't they?
So, as long as they supports OpenAI interface, use 'OpenAI compatible API' to add them.

can't we get direct support for these models , like isn't it possible to add these models under the mistral ai models in ragflow?


Using Slides.isEnd in template causes browser to crash

Bug Report
Ionic version:

[x] @ionic/angular 4.0.0-beta.17
Current behavior:

When using Slides.isEnd() in a template, this causes the browser tab to crash.
Expected behavior:

I should be able to do something like this:
<ion-slides #slides>...</ion-slides>
<button *ngIf="slides.isEnd()|async">Do something when at last slide</button>

Steps to reproduce:

Create a new ionic project
Add the code below to an html template and run the project using npm run start
Open the project in chrome (default http://localhost:4200)
Notice that the browser tab locks up and eventually crashes

Related code:
<ion-content>
  <ion-slides #slides pager="true">
    <ion-slide>
      Slide 1
    </ion-slide>
  </ion-slides>
  <button *ngIf="slides.isEnd()|async">End slideshow</button>
</ion-content>

Other information:
It seems this issue is caused because slides.isEnd() returns a NEW promise on every call. Running this code validates my theory: slides.isEnd() === slides.isEnd() equals false every time. This means that that on every change detection loop, angular will detect a new promise and will watch/await that promise, repeating infinitely.
I recommend doing something like this:

The first time slides.isEnd is called, generate a promise with the result. Store that promise internally to slides, and then return the promise.
Any subsequent calls to slides.isEnd should return that same promise.
Anytime the ionSlideDidChange event fires, wipe out the stored promise. Back to step 1.

The issue may be related to the fact that the method is marked as async, and typescript will auto-generate a new promise on every call. So to mitigate this, you may have to use raw promise code instead. Something like this:
private isEndPromise: Promise<boolean>;
public isEnd(): Promise<boolean>{
   if(!this.isEndPromise){
       this.isEndPromise = new Promise((resolve,reject) => {
           var value = calculateIsEndSomehow();
           resolve(value);
       });
    }
    return this.isEndPromise;
}

Ionic info:

Ionic:

   ionic (Ionic CLI)             : 4.5.0 (C:\Users\bronley\AppData\Roaming\nvm\v11.4.0\node_modules\ionic)
   Ionic Framework               : @ionic/angular 4.0.0-beta.17
   @angular-devkit/build-angular : 0.10.7
   @angular-devkit/schematics    : 7.0.7
   @angular/cli                  : 7.0.7
   @ionic/angular-toolkit        : 1.2.0

System:

   NodeJS : v11.4.0 (C:\Program Files\nodejs\node.exe)
   npm    : 6.4.1
   OS     : Windows 7

This issue might not only apply to isEnd, but any other method. We can't the same promise, because that would always return the same value. I would suggest to resolve the value into an instance variable of you component, and use that variable instead of calling a method directly from the template.

@manucorporat I'm not sure you totally understood my proposed solution, because, unless I'm missing something, it solves the "always return the same value" issue.
In a nutshell, return the same promise until the underlying value changes, then return a new promise with the new value. Repeat.
Step 3 of my above solution says "Anytime the ionSlideDidChange event fires, wipe out the stored promise". That's the trick here.
Am I missing something where this wouldn't work?

@TwitchBronBron there are dozens of similar methods in Ionic, we can't add 30 lines of code for each one to solve an angular problem.
I would rather look why angular async itself does not "wait" for the promise to be resolved, and ask for a new promise every single time.
https://stackoverflow.com/questions/49843791/async-pipe-with-a-method-call-in-angular-4-calls-infinitely

I would rather look why angular async itself does not "wait" for the promise to be resolved, and ask for a new promise every single time.

There's nothing wrong with Angular in this situation. It's working as expected; this is pretty standard change detection stuff. Angular calls slides.isEnd() and gets a promise. Then Angular waits for that promise to resolve. Once that promise resolves, Angular runs another change detection cycle which includes running slides.isEnd() again (as it should), and notices that the promise reference has changed, so it now awaits that new promise (repeat until forever).

we can't add 30 lines of code for each one to solve an angular problem

While ionic works as a standalone product now, isn't the majority of your user base still using Angular, meaning "an angular problem" is "your users' problem"? It feels to me like that is enough of a reason to fix it in Ionic. Plus, it's would be closer to 8 lines for each affected method, not 30. Minified and gzipped, I wouldn't expect the size increase to


add require_config.js

The AxDeveloperToolsWidget uses laxar-patterns, which entails some RequireJS configuration.
We should add a require_config.js file so it can be picked up automatically.

Implemented on master (v1.6.0).


Throw an exception if the programmer is over-writing middleware.

I was creating a way to ban users.  I added my BanUsersMiddleware::class to the 'auth' group.  However, 'auth' is not a group.  $router->pushMiddlewareToGroup('auth' ...) actually replaced the auth middleware and many things continued to work without any security at all.

Hmm, I'm not sure I want to restrict the current behavior. Always good to maybe have tests in your own application for things that need to be authenticated. Some may want to override defined groups / middleware in their applications.


Problem with Pulseaudio :connection failure :Access denied

Thank you for reporting an issue with AlexaPi.
Make sure you are running the latest version of AlexaPi, and look through issues before submitting.
Check out our Wiki, and make sure to look at Debugging, and Audio debugging in particular before filing an issue.
In order to help troubleshooting, be sure to include the following information:
Output of the audio debugging script.
Your OS (including version) where you are running AlexaPi:
Note: Raspbian older than Stretch is not supported!
Raspbian GNU/Linux 9 (stretch)

Your hardware platform and model you are running on:
Raspberry Pi 3

Python release (python3 --version):
Python 3.5.3

Description of problem:
Alexa say hello when I start my RPi, but when I go check the status or debbuging it, I have PulseAudio errors

Expected:

Additional info:
AlexaPi.service - Alexa client for all your devices
   Loaded: loaded (/usr/lib/systemd/system/AlexaPi.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2021-02-08 14:17:58 CET; 6min ago
     Docs: https://github.com/alexa-pi/AlexaPi/wiki
 Main PID: 1625 (python3)
    Tasks: 4 (limit: 4915)
   CGroup: /system.slice/AlexaPi.service
           `-1625 /usr/bin/python3 /opt/AlexaPi/src/main.py --daemon

fév 08 14:18:02 GoPiGo3 python3[1625]: attempt to connect to server failed
fév 08 14:18:03 GoPiGo3 python3[1625]: [02044d50] vlcpulse audio output error: PulseAudio server connection failure: Access denied
fév 08 14:18:03 GoPiGo3 python3[1625]: [0206a020] vlcpulse audio output error: PulseAudio server connection failure: Access denied
fév 08 14:18:03 GoPiGo3 python3[1625]: /opt/AlexaPi/src/main.py:71: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Load
fév 08 14:18:03 GoPiGo3 python3[1625]:   config = yaml.load(stream)
fév 08 14:18:03 GoPiGo3 python3[1625]: INFO: Checking Internet Connection ...
fév 08 14:18:04 GoPiGo3 python3[1625]: INFO: Connection OK
fév 08 14:18:04 GoPiGo3 python3[1625]: INFO: AVS token: Requesting a new one
fév 08 14:18:04 GoPiGo3 python3[1625]: INFO: AVS token: Obtained successfully
fév 08 14:18:05 GoPiGo3 python3[1625]: [736027a8] vlcpulse audio output error: PulseAudio server connection failure: Access denied

At the top of the issues page:
NO ACTIVE DEVELOPMENT, READ BEFORE CREATING AN ISSUE
#512 opened on Dec 19, 2020 by renekliment


norm_sq return type is complex

Hi, I am trying to use the norm_sq function on a tensor of complex numbers. Intuitively, it seems that the return value should be real. However, when I write something like this, the compilation fails.
Here's a sample program.
#include <iostream>
#include <complex>
#include <xtensor/xtensor.hpp>
#include <xtensor/xio.hpp>
#include <xtensor/xnorm.hpp>
#include <xtensor/xcomplex.hpp>

using cpx = std::complex<double>;
using std::complex;

template<class T>
xt::xtensor<T, 1> mynorm(xt::xtensor<complex<T>, 2> &a)
{
  return xt::norm_sq(a, {0});
}

int main()
{
  xt::xtensor<cpx, 2> a = {
    { cpx(1, 1), cpx(-1, 1), cpx(-2, -2) },
    { cpx(-1, 0), cpx(0, 1), cpx(2, 2) }
  };

  // std::cout << a << std::endl;
  std::cout <<  mynorm(a) << std::endl;

}

This fails with a failed cast from complex<double> to double.
g++ -I /Users/scheibler/anaconda3/envs/mixiva/include ./test.cpp -o test_norm -std=c++14
In file included from ./test.cpp:4:
In file included from /Users/scheibler/anaconda3/envs/mixiva/include/xtensor/xtensor.hpp:18:
In file included from /Users/scheibler/anaconda3/envs/mixiva/include/xtensor/xbuffer_adaptor.hpp:20:
In file included from /Users/scheibler/anaconda3/envs/mixiva/include/xtensor/xstorage.hpp:21:
In file included from /Users/scheibler/anaconda3/envs/mixiva/include/xtensor/xtensor_simd.hpp:14:
/Users/scheibler/anaconda3/envs/mixiva/include/xtensor/xutils.hpp:742:20: error: cannot convert 'std::__1::complex<double>' to 'double'
      without a conversion operator
            return static_cast<T>(std::forward<U>(u));
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/scheibler/anaconda3/envs/mixiva/include/xtensor/xutils.hpp:757:16: note: in instantiation of function template specialization
      'xt::conditional_cast_functor<true, double>::operator()<std::__1::complex<double> >' requested here
        return conditional_cast_functor<condition, T>()(std::forward<U>(u));
               ^
/Users/scheibler/anaconda3/envs/mixiva/include/xtensor/xassign.hpp:473:22: note: in instantiation of function template specialization
      'xt::conditional_cast<true, double, std::__1::complex<double> >' requested here
            *m_lhs = conditional_cast<is_narrowing, result_type>(*m_rhs);
                     ^
/Users/scheibler/anaconda3/envs/mixiva/include/xtensor/xassign.hpp:319:22: note: in instantiation of member function
      'xt::stepper_assigner<xt::xtensor_container<xt::uvector<double, std::__1::allocator<double> >, 1, xt::layout_type::row_major,
      xt::xtensor_expression_tag>, xt::xreducer<xt::xreducer_functors<(lambda at
      /Users/scheibler/anaconda3/envs/mixiva/include/xtensor/xnorm.hpp:228:5), (lambda at
      /Users/scheibler/anaconda3/envs/mixiva/include/xtensor/xnorm.hpp:228:5), std::__1::plus<std::__1::complex<double> > >, const
      xt::xtensor_container<xt::uvector<std::__1::complex<double>, std::__1::allocator<std::__1::complex<double> > >, 2,
      xt::layout_type::row_major, xt::xtensor_expression_tag> &, std::__1::array<unsigned long, 1> >, xt::layout_type::row_major>::run'
      requested here
            assigner.run();
                     ^
/Users/scheibler/anaconda3/envs/mixiva/include/xtensor/xassign.hpp:328:20: note: in instantiation of function template specialization
      'xt::xexpression_assigner_base<xt::xtensor_expression_tag>::assign_data<xt::xtensor_container<xt::uvector<double,
      std::__1::allocator<double> >, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>, xt::xreducer<xt::xreducer_functors<(lambda
      at /Users/scheibler/anaconda3/envs/mixiva/include/xtensor/xnorm.hpp:228:5), (lambda at
      /Users/scheibler/anaconda3/envs/mixiva/include/xtensor/xnorm.hpp:228:5), std::__1::plus<std::__1::complex<double> > >, const
      xt::xtensor_container<xt::uvector<std::__1::complex<double>, std::__1::allocator<std::__1::complex<double> > >, 2,
      xt::layout_type::row_major, xt::xtensor_expression_tag> &, std::__1::array<unsigned long, 1> > >' requested here
        base_type::assign_data(e1, e2, trivial_broadcast);
                   ^
/Users/scheibler/anaconda3/envs/mixiva/include/xtensor/xassign.hpp:201:40: note: in instantiation of function template specialization
      'xt::xexpression_assigner<xt::xtensor_expression_tag>::assign_xexpression<xt::xexpression<xt::xtensor_container<xt::uvector<double,
      std::__1::allocator<double> >, 1, xt::layout_type::row_major, xt::xtensor_expression_tag> >,
      xt::xexpression<xt::xreducer<xt::xreducer_functors<(lambda at /Users/scheibler/anaconda3/envs/mixiva/include/xtensor/xnorm.hpp:228:5),
      (lambda at /Users/scheibler/anaconda3/envs/mixiva/include/xtensor/xnorm.hpp:228:5), std::__1::plus<std::__1::complex<double> > >, const
      xt::xtensor_container<xt::uvector<std::__1::complex<double>, std::__1::allocator<std::__1::complex<double> > >, 2,
      xt::layout_type::row_major, xt::xtensor_expression_tag> &, std::__1::array<unsigned long, 1> > > >' requested here
            xexpression_assigner<tag>::assign_xexpression(e1, e2);
                                       ^
/Users/scheibler/anaconda3/envs/mixiva/include/xtensor/xsemantic.hpp:587:13: note: in instantiation of function template specialization
      'xt::assign_xexpression<xt::xtensor_container<xt::uvector<double, std::__1::allocator<double> >, 1, xt::layout_type::row_major,
      xt::xtensor_expression_tag>, xt::xreducer<xt::xreducer_functors<(lambda at
      /Users/scheibler/anaconda3/envs/mixiva/include/xtensor/xnorm.hpp:228:5), (lambda at
      /Users/scheibler/anaconda3/envs/mixiva/include/xtensor/xnorm.hpp:228:5), std::__1::plus<std::__1::complex<double> > >, const
      xt::xtensor_container<xt::uvector<std::__1::complex<double>, std::__1::allocator<std::__1::complex<double> > >, 2,
      xt::layout_type::row_major, xt::xtensor_expression_tag> &, std::__1::array<unsigned long, 1> > >' requested here
        xt::assign_xexpression(*this, e);
            ^
/Users/scheibler/anaconda3/envs/mixiva/include/xtensor/xsemantic.hpp:453:37: note: in instantiation of function template specialization
      'xt::xcontainer_semantic<xt::xtensor_container<xt::uvector<double, std::__1::allocator<double> >, 1, xt::layout_type::row_major,
      xt::xtensor_expression_tag> >::assign_xexpression<xt::xreducer<xt::xreducer_functors<(lambda at
      /Users/scheibler/anaconda3/envs/mixiva/include/xtensor/xnorm.hpp:228:5), (lambda at
      /Users/scheibler/anaconda3/envs/mixiva/include/xtensor/xnorm.hpp:228:5), std::__1::plus<std::__1::complex<double> > >, const
      xt::xtensor_container<xt::uvector<std::__1::complex<double>, std::__1::allocator<std::__1::complex<double> > >, 2,
      xt::layout_type::row_major, xt::xtensor_expression_tag> &, std::__1::array<unsigned long, 1> > >' requested here
        return this->derived_cast().assign_xexpression(e);
                                    ^
/Users/scheibler/anaconda3/envs/mixiva/include/xtensor/xtensor.hpp:384:24: note: in instantiation of function template specialization
      'xt::xsemantic_base<xt::xtensor_container<xt::uvector<double, std::__1::allocator<double> >, 1, xt::layout_type::row_major,
      xt::xtensor_expression_tag> >::assign<xt::xreducer<xt::xreducer_functors<(lambda at
      /Users/scheibler/anaconda3/envs/mixiva/include/xtensor/xnorm.hpp:228:5), (lambda at
      /Users/scheibler/anaconda3/envs/mixiva/include/xtensor/xnorm.hpp:228:5), std::__1::plus<std::__1::complex<double> > >, const
      xt::xtensor_container<xt::uvector<std::__1::complex<double>, std::__1::allocator<std::__1::complex<double> > >, 2,
      xt::layout_type::row_major, xt::xtensor_expression_tag> &, std::__1::array<unsigned long, 1> > >' requested here
        semantic_base::assign(e);
                       ^
./test.cpp:15:10: note: in instantiation of function template specialization 'xt::xtensor_container<xt::uvector<double,
      std::__1::allocator<double> >, 1, xt::layout_type::row_major,
      xt::xtensor_expression_tag>::xtensor_container<xt::xreducer<xt::xreducer_functors<(lambda at
      /Users/scheibler/anaconda3/envs/mixiva/include/xtensor/xnorm.hpp:228:5), (lambda at
      /Users/scheibler/anaconda3/envs/mixiva/include/xtensor/xnorm.hpp:228:5), std::__1::plus<std::__1::complex<double> > >, const
      xt::xtensor_container<xt::uvector<std::__1::complex<double>, std::__1::allocator<std::__1::complex<double> > >, 2,
      xt::layout_type::row_major, xt::xtensor_expression_tag> &, std::__1::array<unsigned long, 1> > >' requested here
  return xt::norm_sq(a, {0});
         ^
./test.cpp:26:17: note: in instantiation of function template specialization 'mynorm<double>' requested here
  std::cout <<  mynorm(a) << std::endl;
                ^
1 error generated.

I'm compiling with Apple LLVM on Mojave (10.14.4). This may be a similar issue to #291.
g++ --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/c++/4.2.1
Apple LLVM version 10.0.1 (clang-1<IP_ADDRESS>)
Target: x86_64-apple-darwin18.5.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

Is this expected behavior ?
Thanks in advance!

norm_sq returns std::norm which return type should be double as specified here. This is a bug int the implementation of std::norm on OSX, we can provide a patch as we did for conj


Add Pingus (Lemmings clone)

https://github.com/Pingus/pingus

I gave it a quick shot the other day, but it somehow didn't build right out of the box. Given that the latest version was released almost 5 years ago and there are lots of commits since then, we might need to wait for a new release coming out.
Meanwhile, if you interested in opening a pull request for it yourself, you're more than welcome to do so. Please take a look at the guide and let us know any questions if you have.

I have this working on macports -- perhaps I'll try to make this my first home brew submission... or take a look at my port file and go from there if you want.

Passing on this but may accept a PR in homebrew/core.


Consider implementing pod (anti)affinity checks in NodeFit

Is your feature request related to a problem? Please describe.
Hello, we have been running into a situation which was somewhat surprising until I dug into the code and learned that NodeFit does not take into account all scheduler predicates, notably pod (anti)Affinity.  At our organization, we've had multiple occasions where using descheduler HighNodeUtilization profile + GKE's optimize-utilization autoscaling profile has bit us because we assumed that NodeFit and the kube-scheduler would agree.
The basic situation is:

Node A contains Pod X
Node B contains Pod Y
Pod X and Pod Y have a pod anti-affinity rule that prevents them from being scheduled on the same node
Node A is considered "underutilized" by the descheduler
Node B is not considered "underutilized"
NodeFit algorithm is run and determines that Pod X can schedule on Node B
descheduler evicts Pod X
kube-scheduler determines Pod X cannot schedule on Node B because of Pod X/Y's anti-affinity
kube-scheduler schedules Pod X on Node A
The cycle continues with each loop of the descheduler

Describe the solution you'd like
I suggest that we look into implementing Pod (anti)affinity checks into the NodeFit calculation, and would be happy to look into contributing it.  It probably adds a decent amount of complexity, but would likely make the descheduler's decisions more closely resemble that of the kube-scheduler, what do you think?
Describe alternatives you've considered

Do nothing: perhaps call out in the documentation that the NodeFit arg does not take into account pod (anti)affinity

What version of descheduler are you using?
descheduler version: v0.27.x

Also, in a bit of follow up, after digging into a bit of how the scheduler implements these checks, it's not easy to parse for me.  I'd love some guidance here if this is an avenue we'd like to pursue.  It looks like in the past (last seen in v1.9.11 of k8s), there was a Predicate checker that we could probably have used to good effect.  However, now the ecosystem looks a bit more complex.

We have also run this issue with the PodAntiAffinity in our case is a preferred choice. We have noticed that after the pod eviction the node still remained and the pod is scheduled onto the same node as the cluster autoscaler did not scale down the node immediately.

/remove-lifecycle stale

/kind-feature

@kubernetes/sig-scheduling-feature-request, hi! 👋
I would be interested in picking up this issue and contributing a PR to add this feature.
In the scenario outlined above by @logyball, NodeFit() runs and determines Pod X can be scheduled on Node B when it shouldn't. The happy path would be that NodeFit() should run and determine that Pod X cannot be scheduled on Node B.
@a7i mentioned here that this could be implemented as a patch.
The solution would be to add a predicate to NodeFit() so that is considers pod anti-affinity. Something like this:
func NodeFit(nodeIndexer podutil.GetPodsAssignedToNodeFunc, pod *v1.Pod, node *v1.Node) []error {

...
	// Check if pod matches pod anti-affinity rule(s) of other pod(s) on node
	if ok, err := utils.PodMatchesAntiAffinityRule(pod, node); err != nil { // add check in pkg/utils or below
		errors = append(errors, err)
	} else if !ok {
		errors = append(errors, fmt.Errorf("pod violates pod anti-affinity rule of other pod on the node"))
	}

	return errors
}

Optional: The strategy RemovePodsViolatingInterPodAntiAffinity already contains logic for fetching and comparing the pod anti-affinity rule of pods, which could be refactored, moved to pkg/utils, and used for NodeFit() as well.
Happy to assign myself to this issue once I get the green light from SIG Scheduling/descheduler maintainers :)

/kind feature

/assign


Hardware description documentation for Glasgow revC3

Adds technical documentation for the Glasgow revC3 hardware.
Outstanding tasks:

[x] Format review (was written in markdown and then converted to rst, so might have some conversion errors)
[x] Technical correctness review
[x] TODO item for VIO on hierarchical sheet symbol (search "todo" in document)
[x] TODO item for SYNC connector usage examples (search "todo" in document)

Style question: should we go for "100mA" or "100 mA"? I believe that from a typesetting perspective, the latter is the correct option, and I've tried to consistently stick to it in applets. For example in memory-onfi:

We should choose one option and use it consistently. I do agree in principle that separating the unit, as in "100 mA", feels appropriate to the nature of the format: the value and the unit are separate things. I also acknowledge that in engineering it's very common to glue them together, and there is a certain practicality to it.

Separated (e.g: "100 mA") is technically correct, and I'd agree to stick with that.
And it would also be good to fix on capital 'V' for Volts - "5 V" and "500 mV"... (even if "5v" feels more natural to me)

And it would also be good to fix on capital 'V' for Volts - "5 V" and "500 mV"... (even if "5v" feels more natural to me)

We shouldn't have "5v" anywhere that I missed--I will insist on proper capitalization for units since "5v" could as well be "multiply variable v by 5".

Regarding the units, saying 5 V, 2A, 100 Ω, 4.7 uF, etc. feels very weird to me, at least in terms of prioritising readability in documentation.
Since units are technically applied as a product (e.g. 20mA equals "20 multiplied by 10^-3 multiplied by one amp), both in the case of numeric values and compound units, it always felt correct and natural to me to combine them without spacing (or with a • between component SI units for readability, in the case of compound units).
The other downside to spacing them is that word wrap can end up separating the value from its unit.
I'll aquiesce if others have a strong opinion in the other direction, but I personally have a significant preference for no spaces.

The other downside to spacing them is that word wrap can end up separating the value from its unit.

We can fix this with a post-processing stage that adds  ; I'm not sure if anyone's wrote one for RST but it's definitely feasible.

Additional thought: the docs refer to the power rails by net names (e.g. "the +1.2V rail" meaning the power net with the name +1.2V) so we'd end up using non-spaced measurements there anyway.

Additional thought: the docs refer to the power rails by net names (e.g. "the +1.2V rail" meaning the power net with the name +1.2V) so we'd end up using non-spaced measurements there anyway.

I think this is an argument in favor of adding spaces in measurements. Here's why:

+1.2V is then clearly an identifier (of a net, in this case). It is not a measurement on that net, and indeed, you could in principle have 3.3 V on +1.2V. (The iCE40 even survives that, inexplicably. It stops being low power though)
+1.2 V is a measurement.

I was about to edit to mention that upside, but you beat me to it :)
Seems like spacing is the way we're going so I'll make the changes.

Thanks! That definitely makes me feel a lot better about just hitting Merge on this after technical review.

Cool, should all be good to go at this point. I've given it a good read through and can't spot any obvious faults at this point.
Do we want to ping any specific folks for a final technical review?

 I'll then add one more commit linking up the page from revisions.rst and it's good to go!

Also I think you'd have to rebase on tip of main either way due to the way our CI works

Got fed up of fighting with git so I moved all changes to a new branch and opened #669.

Superseded by #669. Thanks!


update version detection

Pull Request Test Coverage Report for Build 137

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

Totals

Change from base Build 134:
0.0%

Covered Lines:
138

Relevant Lines:
138

💛  - Coveralls


Remove non-inherent dependency on Jaxcore

BumbleBee node depends on jaxcore. Jaxcore is a large package, which itself again depends on many other packages. Actually, Jaxcore is not even declared as dependency in package.json, so it seems rather accidental.
But BumbleBee seems to need only the relatively small Jaxcore.Service class and a related class, and the logger.
I would recommend to break these dependencies into their own npm modules, and depend only on these. This would allow BumbleBee to be used in contexts outside of Jaxcore, which probably was the goal of the module.

I've just made these changes in the master branch.  Please check and I'll publish 0.0.5 to npm.

Thank you!
Yes, I verified that  0.0.4 fails to run without jaxcore dependency, and 0.0.5 works without jaxcore dependency. VERIFIED FIXED.
Thanks! :)

Cool, I just published it.


Update README.md

Some Grammar mistakes were corrected.
#hactoberfest

FYI, the PR cannot be merged if you do not sign the CLA.
Let me know how you'd like to proceed.

@googlebot I signed it.

Closing due to inactivity.
Please reopen once you've signed the CLA. Thanks!


Pipe color codes to stdout?

Hi,
Thanks for a great program! Is there a way to get the color codes to stdout? Would love to be able to pipe it to clipboard or a file or something else entirely... Alternatively/additionally some way to export to json would be cool too.

Technically, the output is written in the interface, which is displayed to stdout.
There are multiple format: HEXA, RGB, HSV.
I can support pipe, so that when rgb-tui output is connected to another program, we draw the UI to the terminal output, and print the result toward stdout.
Out of curiosity, what kind of use case do you have?

My main use case is to get color values to the clipboard, so that I can put them into whatever code I am writing, whether that is in openFrameworks or my website. So an ideal scenario could look like this: press h to copy the hex values to the clipboard, r to  get the rgb values, and h for hsv values. Or some other keyboard combination. Of course it could be interesting to pipe this through to other programs as well, might even be a fun way to control interactively the colors of a running program...? Just fantasizing here...  but a pipe would definitely open up interesting possibilities for all kinds of applications.

I second this, getting the colors without having to type them makes this much more usable.
I also noticed that it's not possible to change the colors by changing the values directly, did I miss something?

I added support for the clipboard, does it resolve this issue somehow?

@ArthurSonzogni somehow but the clipboard is not stdout


⚠ Turnos 24x7 has degraded performance

In 7f774f2, Turnos 24x7 (https://reservas.alternativasinteligentes.com/) experienced degraded performance:

HTTP code: 200
Response time: 852 ms

Resolved: Turnos 24x7 performance has improved in 71a714f.


can't load certain collections

such as:
https://beta.kodadot.xyz/rmrk/collection/4682CA87AF7499A12C-4EEPVRPIX-G9N
https://beta.kodadot.xyz/rmrk/collection/143C325AFD7DC09C22-AMSZFAQ-MGNGD
happening on prod, beta and locally

this is from rubick:
{
  "data": {
    "collectionEntities": [
      {
        "id": "4682CA87AF7499A12C-4EEPVRPIX-G9N",
        "name": "~",
        "currentOwner": "EAmisjyfTPHapHMmwQt66QK3tgrGW55Fkbv44hmHsgZjrs6",
        "createdAt": "2022-07-24T20:03:48.015000Z",
        "metadata": "ipfs://ipfs/bafkreibo3zwo6fccam3tzu2odn7ska2qmf7usrj4eidwxq5on2prqrtzt4",
        "max": 0,
        "issuer": "EAmisjyfTPHapHMmwQt66QK3tgrGW55Fkbv44hmHsgZjrs6",
        "symbol": "4EEPVRPIX-G9N",
        "version": null
      },
      {
        "id": "143C325AFD7DC09C22-AMSZFAQ-MGNGD",
        "name": "The Man in the Tan Suit",
        "currentOwner": "D2rMhLWfFCxi5Hqc37pEHfkLH9DFQvLpDPBtrHRLDNXxpUr",
        "createdAt": "2022-07-30T14:36:06.010000Z",
        "metadata": "ipfs://ipfs/bafkreihlrz5liu63u46tr27lpf3um3i7wtujgdycwanxz6g5hw3xiiuxfq",
        "max": 0,
        "issuer": "D2rMhLWfFCxi5Hqc37pEHfkLH9DFQvLpDPBtrHRLDNXxpUr",
        "symbol": "AMSZFAQ-MGNGD",
        "version": null
      }
    ]
  }
}

👋

while, the endpoint is set to https://api.subquery.network/sq/vikiival/magick
and the result is
{
    "data": {
        "collectionEntity": null
    }
}

on the output of Nuxt config of apollo, the rmrk's httpEndpoint would be sq/vikiival/magick, it should goes to Rubick, right @vikiival ?
{                                                                             20:40:31
  rmrk: {
    httpEndpoint: 'https://api.subquery.network/sq/vikiival/magick'
  },
  statemine: {
    httpEndpoint: 'https://api.subquery.network/sq/kodadot/unique'
  },
  westend: {
    httpEndpoint: 'https://api.subquery.network/sq/vikiival/magick-west'
  },
  westmint: {
    httpEndpoint: 'https://api.subquery.network/sq/vikiival/unique-west'
  },
  moonriver: {
    httpEndpoint: 'http://localhost:4350/graphql'
  },
  local: {
    httpEndpoint: 'http://<IP_ADDRESS>:3000'
  }
}

Yeah maybe time to upgrade kodadot/packages/vuex-options

Yeah, I remember once you want to migrate from vikiival to kodadot :)

and btw, this is from @kodadot1/vuex-options pkg.
import { INDEXERS } from '@kodadot1/vuex-options' from utils/config/defineApolloConfig.ts

eah, I remember once you want to migrate from vikiival to kodadot :)

everything is under kodadot/packages


Update to 0.2.6

Re-generate comments using new script from roc-toolkit 0.2.6.

coverage: 95.037%. remained the same
when pulling eb4c7782517483667549207409284197be697c66 on gavv:main
into 6b035512a997041ae56fa001a1cb68d504813391 on roc-streaming:main.

coverage: 95.037%. remained the same
when pulling e33680fe8000dfc9cab95ef2e732ccb1e85dddc4 on gavv:main
into 6b035512a997041ae56fa001a1cb68d504813391 on roc-streaming:main.


Dropbox API 4.6.0 no ClientModified

There is no ClientModified  and ServerModified field in the FolderMetaData .

That's correct, the API doesn't return modified time for folders. We'll consider it a feature request.


Infinite Loopback between asp.net core 2.0 controller and login.microsoft.com  inside office addins

hi,
We have migrated our application to asp.net core 2.0  from 1.1.   Before migration the application used to work in the browser and within word office 365 app task pane.
After asp.net core 2.0 migration the oidc flow and the cookie authentication is working fine in chrome and IE,  but it is failing with infinite loop back between login.microsoft.com and the controller.   Seems that cookie is not being set or being deleted inside office app.
                    //Cookies is responsible for two things:
                    //Signing the user in (creating the authentication cookie and returning it to the browser)
                    //Authenticating cookies in requests and creating user principals from them

                    //Open Id Connect is responsible for Responding to challenges from[Authorize] or ChallengeResult returned from controllers.

                    services.AddAuthentication(auth => {

                        auth.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                        auth.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
                        auth.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                        auth.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                    })

                         .AddCookie(options =>
                         {
                             options.Cookie.SameSite = SameSiteMode.Lax;
                             options.Cookie.HttpOnly = false; //// If True - Javascript will not be able to read cookie.
                                                              // options.Cookie.SameSite = SameSiteMode.Lax;
                             options.Cookie.SecurePolicy = CookieSecurePolicy.Always; // Supports only HTTPS
                             options.SlidingExpiration = config.AzureAD.AllowCookieSlidingExpiration;
                             options.ExpireTimeSpan =  TimeSpan.FromMinutes(config.AzureAD.CookieExpireTimeSpanInMinutes);

                             //options.Events = new CDNGCookieAuthenticationEvents();

                         })
                        .AddOpenIdConnect(OpenIdConnectDefaults.AuthenticationScheme, "AAD",options => {
                            options.ClientId = config.AzureAD.ClientId;
                            options.ClientSecret = config.AzureAD.ClientSecret;
                            options.Authority = config.AzureAD.CommonAuthority;
                            options.SignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;

                            options.ResponseType = OpenIdConnectResponseType.CodeIdToken;

                            options.CallbackPath = config.AzureAD.CallBackURL;

                            // GetClaimsFromUserInfoEndpoint = true;
                            options.UseTokenLifetime = false; // if Set to true, id Token expiration will not be used  but auth token (managed by ad) expiration will be used.
                                                              // This can create logouts after  one hour since access token is valid only for an hr.
                                                              // If set to false, cookie expiration will be used using sliding expiration

                            options.TokenValidationParameters = new TokenValidationParameters
                            {
                                // Instead of using the default validation (validating against
                                // a single issuer value, as we do in line of business apps),
                                // we inject our own multitenant validation logic
                                ValidateIssuer = true,
                                ValidateAudience = true,

                                NameClaimType = "name"
                            };

                            options.SaveTokens = false; // No need to save Access Token in Cookie

                            options.Events = new WebAppOIDCEvents(config);
                            // adding here since scope is read, but scope.add allows set
                            options.Scope.Add(OIDCScope.OpenID);
                            options.Scope.Add(OIDCScope.Profile);
                            options.Scope.Add(OIDCScope.Offline_Access);

Thanks
Suresh

Moved this issue here: https://github.com/aspnet/Home/issues/2287


Added checkIsInMultiOrPipeline

Added checkIsInMultiOrPipeline in some methods that were missing it.

LGTM. @marcosnils Please review.

Merged into master, 2.10, 2.9.