Feature request: Give version information

Please add version information on the --help output and/or add --version option.
Currently I'm getting this:
user@host ~ $ rsync-sidekick --help
rsync-sidekick is a tool to propagate file renames, movements and timestamp changes from a source directory to a destination directory.

Usage:
         rsync-sidekick <flags> [source-dir] [destination-dir]

where,
        source-dir        Source directory
        destination-dir   Destination directory

flags: (all optional)
  -exclusions string
        path to file containing newline separated list of file/directory names to be excluded
        (if this is not set, by default these will be ignored: $RECYCLE.BIN, desktop.ini, Thumbs.db etc.)
  -extrainfo
        generate extra information (caution: makes it slow!)
  -help
        display help
  -list string
        list files along their metadata for given directory
  -shellscript
        instead of applying changes directly, generate a shell script
        (this flag is useful if you want 'dry run' this tool or want to run the shell script as a different user)

More details here: https://github.com/m-manu/rsync-sidekick
user@host ~ $

To figure out which version the currently installed binary is I've used strings:
user@host ~ $ strings go/bin/rsync-sidekick |grep 1.3.0
mod     github.com/m-manu/rsync-sidekick        v1.3.0  h1:muxYvIFeszJbN1Tu+VHz0OBoqG37hAoBO8r8dlyayi0=
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>mod     github.com/m-manu/rsync-sidekick        v1.3.0  h1:muxYvIFeszJbN1Tu+VHz0OBoqG37hAoBO8r8dlyayi0=
user@host ~ $

This is provided in v1.4.0


Status Endpoint

Implements the Status endpoint and our first BFF API Tests that interact with the GDS nodes.
TODO:

[x] Implement nogds flag
[x] Make status requests to GDS in two go routines
[x] Test with Mock GDS status requests

Codecov Report

Merging #392 (47c7745) into main (d9c7e3c) will decrease coverage by 7.91%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #392      +/-   ##
==========================================
- Coverage   45.59%   37.68%   -7.92%
==========================================
  Files         231      151      -80
  Lines       11310     2367    -8943
  Branches      606      606
==========================================
- Hits         5157      892    -4265
+ Misses       5220     1302    -3918
+ Partials      933      173     -760

Impacted Files
Coverage Δ

directory/pkg/gds/admin/v2/auth.go

directory/pkg/gds/store/index/search.go

directory/pkg/gds/certs.go

directory/pkg/gds/emails/bindata.go

directory/pkg/utils/wire/rewire.go

directory/pkg/utils/logger/logger.go

directory/pkg/gds/admin/v2/csurf.go

directory/pkg/gds/admin/v2/client.go

directory/pkg/gds/client/editor.go

directory/pkg/gds/models/v1/pagination.go

... and 70 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update d9c7e3c...47c7745. Read the comment docs.


Please update who uses javascript standard style

node is not using standard style, express.js is not using standard style and electron is not using standard style.
It will be confusing who is using standard style.

Haven't checked the others but as I am on the Express team I can say that we do indeed use Standard style. We do have some old code which aren't yet converted, but every time we touch a line we modify it to follow Standard...

But if you look at the source code in github, it seems not standard style, there are many semicolon.

I'm just linking to an old comment in this repo that may help: https://github.com/standard/standard/issues/957#issuecomment-317136357 . Clicking on the express logo in the readme does not take me to a single repo so it seems to suggest it refers to the project as a whole instead of a single repo.
I don't have any state on what logos are in the README here, though. It's ultimately up to the project maintainer of StandardJS.

Thanks for chiming in @dougwilson and @LinusU.
Both Node.js and Electron are still using standard:
https://github.com/nodejs/node-gyp
https://github.com/nodejs/changelog-maker
https://github.com/nodejs/node-core-utils
https://github.com/electron/electron
https://github.com/electron/electron-packager
https://github.com/electron-userland/spectron
https://github.com/electron-userland/devtron
https://github.com/electron/node-rcedit
https://github.com/electron/node-chromium-pickle-js
https://github.com/electron/update-electron-app
https://github.com/electron/chromedriver
https://github.com/electron/hubdown
We add logos whenever a project or company requests to be added, or when we notice one or more repos in their GitHub organization are using standard.


Add special random events

Find lucky block.png
Give block a hitbox
Make it so player can interact with lucky block
Make it so when player touches lucky block a random items pops out the top
Make it so when item pops out of block it swaps to a deflated skin


feat(chips): support outlined chips

Please describe the feature you would like to request.
please implement outlined chips as specified in https://material.io/design/components/chips.html#specs
(action and input variants would be nice, there is some difference in behavior. For instance, outlined action chips are not elevated when pressed)
What is the use-case or motivation for this proposal?
they look nice and are part of the spec
Is there anything else we should know?
thank you!

As workaround we can use <mat-basic-chip>, but I would expect angular-material to have components that described in specification by default, without any customization from consumer side

Could you please not close this without explaining why the angular component team does not plan on supporting the spec in this regard.

Closing this issue since chips have an outline in M3


IndexError: list index out of range. at file pyflux/arma/arimax.py

File "C:/Users/adumankaya/PycharmProjects/Arimax/train.py", line 31, in
family=pf.Normal())
File "C:\ProgramData\Anaconda3\lib\site-packages\pyflux\arma\arimax.py", line 94, in init
self.latent_variables.z_list[no+self.ar+self.ma+self.X.shape[1]].start = i[3]
IndexError: list index out of range
While train data has no missing values or errors, I'm getting this error.

Hi, I am getting the same error. Did you manage to find a solution for that?


Restrict area and zoom level

Hi, I'm using azure maps for the first time and I have a requirement, that users can only see a certain region of the map and only up to a certain zoom level (e.g. show only the south of Germany).
I have checked the documentation but was not able to find a solution to my problem.
Is there a way to do this properly with the React wrapper that I could just not find or do I have to figure something out myself?
Thanks
Julius

Sorry, I just found what I was looking for... Searched for 2 hours using the wrong keywords. Should have thought of looking for bounds earlier.


Add OWNERS file for prow ci config

Signed-off-by: Yuanlin<EMAIL_ADDRESS>

/cherry-pick maistra-2.1


Suddenly FPS drops while entering/leaving Menus

Game runs fine, but sometimes(a lot) the FPS will drastically decrease after entering/leaving the Menu/Inventory and it will stay that way.

Details
Before the latest patch <IP_ADDRESS> this bug was not all the time, but after the patch this issue is happing always.
Game Version
<IP_ADDRESS>
Language
English (EN)
New Game
Yes
Reproduction Steps
Just enter or leave the menu/inventory, saddly not everyone has it...
My specs:
GTX 1660 - Driver 546.17
Ryzen 5 3600
16gb RAM
SSD
WINDOWS 11

Pretty sure this is the issue with the effects on weapons being recalculated. Try this https://www.nexusmods.com/starfield/mods/2830

It's highly unlikely this has anything to do with the weapon stuttering bug, especially since it's not actually a stutter, but a constant massive FPS drain. I've experienced it occasionally as well, after leaving a menu, the frame rate will plummet and stay there for an indeterminate amount of time and the dynamic resolution upscaling will go into overdrive to try and compensate. It's unclear what alleviates the issue, sometimes it's just time, sometimes I've fixed it by going in and out of menus repeatedly.
In any case, this is very likely to be out of scope for the Community Patch and require and engine level fix instead.

I've had it go both ways.
Sometimes, entering a menu causes massive FPS drops. Other times, it corrects massive FPS drops. Generally, I can eventually get it to go back to normal by entering the main menu or just the tab menu and waiting on it for a couple seconds, and then exiting the menu. If it doesn't fix it, I repeat that cycle until it eventually does, which it always eventually does.
My guess that there is some sort of race condition in the game that is causing non-deterministic behavior, and at least one of the possible outcomes is the FPS drop we see. If so, that's likely to be more difficult to fix, and is more of the kind of issue we should press BGS to fix in an update.


Infinite login loop

Issue Type: Bug
When trying to login and join a session I get prompted to login again and won't join the sesson. This is the same for both microsoft login and github
Extension version: 1.0.2377
VS Code version: Code 1.46.1 (cd9ea6488829f560dc949a8b2fb789f3cdc05f5d, 2020-06-17T21:17:14.222Z)
OS version: Darwin x64 19.4.0

same problem

Same problem

Same problem also.

Some issues I'm noticing:

Signing in as a guest... prompts me to sign in again
This only happens when joining a session
Neither Microsoft nor GitHub accounts work

Thanks for reporting the issue, we are seeing sign in issues on Linux based systems. @SilvioDoMine , @GuillaumeLeclerc , @NotNite can you please mention what OS you are using?

I'm using Windows 10 version 1909, will get exact version number later.

Same problem on Manjaro Linux using VS Code from the snap store

Thanks everybody for reporting this. We are investigating; it would be helpful if anybody can provide logs (LiveShare : Export Logs), to understand this better.

Thanks everybody for reporting this. We are investigating; it would be helpful if anybody can provide logs (LiveShare : Export Logs), to understand this better.

Sure, where can I send them?

You can send logs to us at: VS Live Share Feedback<EMAIL_ADDRESS>

I am having the exact same problem.

We've changed our authentication service. See #4128 and if the new authentication is giving you an issue, please create a new issue. Thank you for your patience.


Use inclusive terminology in Antrea

A lot of open-source projects and organizations are now opting to ban non-inclusive terms: master/slave, whitelist/blacklist, etc.

The Inclusive Naming Initiative launched recently, with members such as the Linux Foundation, the CNCF and VMware. Several related projects have also come into existence.

VMware has publicly committed to adopting inclusive terminology, and Antrea as an open-source project hosted by VMware should strive to make the necessary changes as quickly as possible.

The Linux Kernel coding style was updated a couple months back to advocate against using non-inclusive terminology and provide some alternative suggestions to the terms most commonly used: https://github.com/torvalds/linux/blob/master/Documentation/process/coding-style.rst#4-naming

We should therefore make the following changes as soon as possible:

[x] Adopt inclusive terminology everywhere

[x] code
[x] documentation
[x] website (post v0.12)
[x] wiki

[x] Rename the "master" git branch for the repository to "main"; note that Github will be rolling out changes in January 2021 to facilitate this transition (https://github.com/github/renaming) and recommends waiting until then. Changes have now been rolled out: https://github.blog/changelog/2021-01-19-support-for-renaming-an-existing-branch/
[x] Update Antrea documentation to indicate our commitment to using inclusive terminology and ask contributors to refer to the Inclusive Naming Initiative

Which words should be replaced?
The consensus is that at the very least "master/slave" and "whitelist/blacklist" should not be used. The IETF identifies some additional terms / metaphors (https://tools.ietf.org/id/draft-knodel-terminology-00.html) and notably recommends using the neuter "they" as the singular pronoun.
We also would like to avoid the following terms when possible: abort, kill, blackout, segregate/segregation

Better support for default branch renaming has been rolled out by Github. See https://github.blog/changelog/2021-01-19-support-for-renaming-an-existing-branch/.

Better support for default branch renaming has been rolled out by Github. See https://github.blog/changelog/2021-01-19-support-for-renaming-an-existing-branch/.

Planning to rename the default branch from "master" to "main" on Monday Jan 25th at 4pm PST. All contributors will need to update their local copy of the repository and start using the new branch. Apart from that, there should not be too much disruption, thanks to recent changes made by Github to facilitate branch renaming (see https://github.com/github/renaming).

Planning to rename the default branch from "master" to "main" on Monday Jan 25th at 4pm PST. All contributors will need to update their local copy of the repository and start using the new branch. Apart from that, there should not be too much disruption, thanks to recent changes made by Github to facilitate branch renaming (see https://github.com/github/renaming).

The "master" branch has been renamed to "main". This issue can now be closed.

The "master" branch has been renamed to "main". This issue can now be closed.


startailcoon URL update request. rpcblockchain.cpp compile warning fix.

@denravonska there simplified into one commit. Learn something new everyday :+1:

Updated startailcoon URL to include campaign plus version of wallet.
rpcblockchain.cpp solution for a compile warning for an indent on recent code addition.
rpcblockchain.cpp dWeight compile warning solution as output in list rsa is not used anymore.
Made to 1 commit.

Aaaand these two changes should be separate commits as they are not related to each other. For extra bureaucracy two separate PRs can be created. But as you already squashed and it does not cause harm, I guess let it be.
Keep up the good work.

@tomasbrod Ah your right I was going to separate them too but a little preoccupied. I can edit this and fix it as it doesn't have to remain squashed. Live and learn I shall fix this and edit the pull request :+1: i can fix this and just have the URL in this pull request. should be done in 20 minutes.


Theme inheritance for custom types seems broken

Godot version
4.0.dev (17c62a692)
System information
Windows 10, Vulkan, AMD Radeon RX 6700 XT
Issue description
TLDR:
In the inspector and theme editor custom definitions for inherited classes as well as variants are not considered correctly.
They don't show up in the inspectors "Theme Overrides"
Partially in the theme editor with ("Show Defaults")
Fully in the import tab of the theme editor
Story:
Atm I work on a rather complex control hierachy with several levels of inheritance and theme overrides at some places. However there is a strange thing going on there...
To get the editor working with custom defined theme properties at all, I created a singleton gdscript to register the types and variants using code.
BaseTypes:
For base types defined in cpp it is pretty easy. I just need to call the appropriate method in the setup script to add my own properties and that works pretty consistently.
They show up in the inspector under "Theme Overrides" as well as in the theme editor when "ShowDefault" is enabled.
Script Class:
For inherited types with a "class_name" it starts to behave in a weird unpredictable way.
You can define a theme type "Script" and add some additional values.
In the inspector it only shows theme items added to the underlying cpp class (Control), but not the one from the scripts class_name (ScriptClass).
In the theme editor it shows the one of the class_name (ScriptClass) but not from the base cpp class (Control).
If you however set the base type of "ScriptClass" to the cpp class explicitly this turns around and it stops showing the class_name (ScriptClass) ones but the base type (Control) ones appear.
Inherited Class
In the theme editor it shows the one of the class_name (InheritedClass) but not from the class (ScriptClass).
If you however set the base type of "InheritedClass" to the "ScriptClass" explicitly this turns around and it stops showing the class_name (InheritedClass) ones but the base type (ScriptClass) ones appear.
Variants:
Basically the same as as Inherited Class
Other
The project theme configuration, manually applied themes, custom types as well as type variants are also not considered. Added definitions neither affect the "Theme Overrides" nor the "Show Default" option in the theme editor.
I guess the underlying issue has sth todo how Control::_get_property_list is setup atm
more. I think it would make much more sense if all properties are shown or the full hierarchy Variants and Types for the project theme, default theme as well as manually attached themes and custom definitions in the theme editor itself.
I think "get_theme_icon" already does that to some extent, but not sure.
Steps to reproduce
I tried my best to set this project up as good as I can, buggy.theme basically shows the issue with the theme editor. I just added the overrides so the types are persisted. Empty definitions get removed on save somehow.
Minimal reproduction project
ThemeInheritance.zip

I dont know if it's related but i'm having an issue at run-time with custom theme type inheritance :

The type Tile has a stylebox regular, and the type Token inherits it, but trying to access it with get_theme_stylebox("regular", "Token") doesn't work but after looking for how theme resources and inheritance works i believe it should.

creating a custom theme type inside a theme has no effect too!

creating a custom theme type inside a theme has no effect too!

Please continue the discussion in https://github.com/godotengine/godot/issues/78308.

I can confirm this is still an issue in 4.2.2.
Works

Creating a new type and setting the base type to an engine native type.

Does not work

Creating a new type and setting the base type to a custom type.

Not working means that no 'items' (eg. font_color) appear in any of the items tabs or the manage theme items menu, as if nothing is inherited from the base type.
I haven not found a workaround so far, so only using engine native types as the base type seems to be the only solution for now.


pull request for e2e test at 12/10/2016 15:26:02

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Is it possible to read the options directly from tsconfig?

Given that most cli options are very similar to tsc, I usually end up require()ing tsconfig.json and manually map it to the typedoc options in typedoc.js. This procedure is tedious and error-prone. I was thinking if it's possible for typedoc to directly read the configs from a provided tsconfig file and take its options from there.
For example:

module (mode can initialize itself from module and isolatedModules tsc options)
target
includeDeclarations
exclude
include (why not?)

I'm using a couple of tsconfig files (that extend a base).
let tsconfigSrc = require('./src/tsconfig-src');
const packageJson = require('./package');

if (tsconfigSrc.extends) {
    // Error prone. This is not how extend works.
    Object.assign(require(tsconfigSrc.extends), tsconfigSrc);
}

exports.target = tsconfigSrc.compilerOptions.target;
exports.entryPoint = packageJson.main;
exports.name = `${packageJson.name} v${packageJson.version}`;
exports.mode = 'modules';
exports.module = tsconfigSrc.compilerOptions.
exports.includeDeclarations = tsconfigSrc.compilerOptions.declaration;
exports.includes = include;
exports.exclude = tsconfigSrc.exclude;

Re: https://github.com/TypeStrong/typedoc/issues/130#issuecomment-229002316
This is supported but not documented. Took a while till I found it. Would be nice if the readme could be generated from "typedoc --help". :+1:
--tsconfig                          Specify a js option file that should be loaded. If not specified TypeDoc will look for 'typedoc.js' in the current directory.


Designa

New PR superseding #10:
Please see the README in this branch for installation and usage instructions.
Quickstart:

To get started with development, clone this repo:
git clone git@github.com:stencila/style.git
Then install the necessary Node packages:
npm install && npm run bootstrap
Start Storybook and watch for CSS changes inside /packages/*
npm run dev

The approach to writing CSS selectors is to target semantic HTML tags, augmented and refined using WAI-ARIA attributes.
An example of this approach can be seen in the TabList component
The CSS is written using PostCSS and Tailwind
The components are documented using plain HTML and StorybookJS.
There are example components with state and logic inside the /packages/components

This PR contains initial versions of components of Table of Contents, Inter Page navigation, and Tab/TabList components.
There are a couple of outstanding issues which need to be addressed before we merge:

[ ] Right now the Stencil components themes can be changed by setting a mode="material | default" attribute on the component or the HTML tag. If the tag is omitted, it falls back to the default Stencila styling. However I haven't found a good way to introduce dynamic global @font-face requirements so all the components look unsightly right now. Am currently investigating an idiomatic way of adding these requirements, but worst case might need to add them manually, or dynamically via JavaScript.
[ ] The StencilJS component library starter kit does not come with a good way to document/see/explore the components. So I still need to set up a Storybook for them.


PGF Charts are not displayed correctly

Description
See HTML. We generated the charts with Matplotlib.
(Optional:) Please add any files, screenshots, or other information here.
No response
(Required) What is this issue most closely related to? Select one.
Formula
Internal issue ID
fee83813-1277-4d2e-ac4f-08972cadc35c
Paper URL
https://services.arxiv.org/html/submission/5383235/view
Browser
Chrome/<IP_ADDRESS>
Device Type
Desktop

@PhilippMatthes, please add the public URL of this paper after it is announced.

@chrisjcameron I would like to add an URL of the paper, but the paper is still on hold, for over 4 weeks now. I will come back to you once something happened......

Public URL: https://arxiv.org/abs/2403.18830


[BugFix] check if BinaryOutputArchive write success

Why I'm doing:
What I'm doing:
Persistent Index use BinaryOutputArchive to generate l0 snapshot, and if BinaryOutputArchive write fail and return true, it will lead to l0 lost data and cause PK table issue like:
load primary index failed: Already exist: FixedMutableIndex<16> insert found duplicate key 800000003B9ACF8D80000000411AB34E, new(rssid=11649 rowid=0), old(rssid=11645 rowid=0)

What type of PR is this:

[x] BugFix
[ ] Feature
[ ] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Does this PR entail a change in behavior?

[ ] Yes, this PR will result in a change in behavior.
[x] No, this PR will not result in a change in behavior.

If yes, please specify the type of change:

[ ] Interface/UI changes: syntax, type conversion, expression evaluation, display information
[ ] Parameter changes: default values, similar parameters but with different default values
[ ] Policy changes: use new policy to replace old one, functionality automatically enabled
[ ] Feature removed
[ ] Miscellaneous: upgrade & downgrade compatibility, etc.

Checklist:

[ ] I have added test cases for my bug fix or my new feature
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

[ ] This is a backport pr

Bugfix cherry-pick branch check:

[x] I have checked the version labels which the pr will be auto-backported to the target branch

[x] 3.3
[x] 3.2
[x] 3.1
[x] 3.0
[x] 2.5

@mergify rebase

https://github.com/Mergifyio backport branch-3.3

https://github.com/Mergifyio backport branch-3.2

https://github.com/Mergifyio backport branch-3.1

https://github.com/Mergifyio backport branch-3.0

https://github.com/Mergifyio backport branch-2.5


Global Exception Handler

Create global exception handler. It should support all kind of error messages with proper response code and response message.

Handle all technical exception
Handle all business exception
Handle form validation errors
Internal Server Errors.

we will add remaining later

PR has been merged


Nested display problems

Sample text
````ad-flex
```ad-blank
>个人记录
- ✔ 待办事项
- ✅ 已完成事项
- ▶ 观影记录
- 📙 阅读记录
- ...

```

```ad-blank
>工作记录
- 🚩工作计划
- 🏳 未完成的计划
- ☢ Bug清单
- 🔀 API接口文档
- ...

```

```ad-blank
>教育记录
- ♎课程管理
- 📝 写作计划
- ✏ 实验记录
- ...

```
````

Ok, I know that three backquotes are the correct syntax, I used the Admonition plugin, which uses the syntax of code block nesting, Use 4 or more back quotes, That invalidated the exclusion language I configured.
Sorry, my English is not good
It's not a big question, it's just that I suddenly found it and brought it up.

Don't worry about your English. It is not my native language either :)
If you want to exclude the first and the last line you could add following to your exclusion:
ad-, ad-*, ,
The first (ad-) excludes every code block where the defined language starts with ad-. The second (ad-*) does almost the same but since you wrote 4 backticks, the 4th counts as the language that's why you have to write a backtick at the beginning. Similar to the last (). You wrote also 4 backticks. This would be the closing for the outer code block, so the 4th backtick counts as the defined language for the code block. After that it should look like this:

Btw, as far as I know Admonitions are obsolete. You can use callouts now: https://help.obsidian.md/Editing+and+formatting/Callouts
Nesting a code block and a callout/admonition is somewhat complex. I am looking for a solution, but unfortunately it is not that easy so it can take some time.

Okay, I am currently using both grammars.
Nested display is not a major issue and does not require immediate repair.

Sorry, it took this long, but it is fixed in release 1.2.1. It should work now correctly.


.Net: API Manifest Plugins

Motivation and Context
This PR adds a prototype implementation of API Manifest based plugins.
APIManifest spec is located here. API Manifest is a format that allows defining an AI plugin from an existing OpenAPI, by specifying which subset of request paths to use in addition to other requirements such as auth. This PR contains a basic prototype covering a subset of the spec. The rest of the evolving spec will be implemented with follow up PRs and they will be shaped by the feedback we get.
Description
This PR exposes two public kernel extensions ImportPluginFromApiManifestAsync and CreatePluginFromApiManifestAsync which are similar in signature as their OpenAPI counterparts. They take APIManifest file location, read contents, slice referenced OpenAPI document based on what is described in the requests section. They then use underlying SemanticKernel OpenAPI function generation logic to generate functions and return a plugin instance.
These features are marked as experimental and give a compiler warning when used. We used SKEXP0099 as the diagnostic ID to avoid collision. We would like to hear what the right way is to increment and assign these numbers.
We also extended the function name generation logic to not rely on operationId as it is optional in OpenAPI spec. We should probably change the main Functions.OpenAPI implementation as well, but current implementation only proposes an override at the moment, where the name is generated from the path and method outside.
We also fixed a minor serialization bug where the depth was not enough to represent Graph API shape.
Lastly, we add Microsoft Graph samples in the KernelSyntaxExamples project. Same argument holds with the naming of `Example99``, i.e. to avoid collision with examples coming from other PRs.
Running the sample
In order to run the samples, you need an appsettings.Development.json file in KernelSyntaxExamples folder in this shape:
{
  "AzureOpenAI": {
    "ChatModelId": "gpt-4",
    "ServiceId": "gpt-4",
    "ChatDeploymentName": "gpt-4",
    "Endpoint": "<endpoint>",
    "ApiKey": "<endpoint>"
  },
  "MsGraph": {
    "ClientId": "<MSA-client-id>",
    "TenantId": "9188040d-6c67-4c5b-b112-36a304b66dad", // MSA/Consumer/Personal tenant,  https://learn.microsoft.com/azure/active-directory/develop/accounts-overview
    "Scopes": [
      "User.Read",
      "Files.ReadWrite",
      "Tasks.ReadWrite",
      "Mail.Send",
      "Contacts.Read",
      "Calendars.Read"
    ],
    "RedirectUri": "http://localhost"
  }
}

Create an MSAL app registration in the Azure portal, and add the client id to the appsettings.Development.json file.

Run the following command and login with your test MSA account. The sample expects at least one email message in inbox, a test.txt file in the root OneDrive folder, and at least one event in the calendar.

dotnet test --filter Example99_ApiManifest --logger "console;verbosity=detailed"

Expected output
Running Example99_ApiManifest...

======== [ApiManifest Plugins] Sample 1 - Create and Execute "show the subject of my first message" Plan ========
======== Plugins: MessagesPlugin ========
======== Expected Output: latest email message subject is shown ========

>> MessagesPlugin is created.
--------------------

Result:
<REDACTED: email title>

--------------------

======== [ApiManifest Plugins] Sample 2 - Create and Execute "get contents of file with id=test.txt" Plan ========
======== Plugins: DriveItemPlugin MessagesPlugin ========
======== Expected Output: test.txt file is fetched and the content is shown ========

>> DriveItemPlugin is created.
>> MessagesPlugin is created.
--------------------

Result:
<REDACTED: contents of test.txt in the root OneDrive folder>

--------------------

======== [ApiManifest Plugins] Sample 3 - Create and Execute "get contents of file with id=test.txt" Plan ========
======== Plugins: MessagesPlugin ========
======== Expected Output: test.txt file is not fetched because DriveItemPlugin is not loaded ========

>> MessagesPlugin is created.
--------------------

Result:
The provided functions do not include a method for retrieving the contents of a file. The goal of getting the contents of a file with the ID 'test.txt' cannot be achieved with the current set of functions.

--------------------

======== [ApiManifest Plugins] Sample 4 - Create and Execute "tell me how many contacts I have" Plan ========
======== Plugins: MessagesPlugin ContactsPlugin ========
======== Expected Output: number of contacts is shown ========

>> MessagesPlugin is created.
>> ContactsPlugin is created.
--------------------

Result:
You have 0 contacts.

--------------------

======== [ApiManifest Plugins] Sample 5 - Create and Execute "tell me title of first event in my calendar" Plan ========
======== Plugins: MessagesPlugin CalendarPlugin ========
======== Expected Output: title of first event from calendar is shown if exists ========

>> MessagesPlugin is created.
>> CalendarPlugin is created.
--------------------

Result:
API Manifest Event

--------------------

== DONE ==

Contribution Checklist

[x] The code builds clean without any errors or warnings
[x] The PR follows the SK Contribution Guidelines and the pre-submission formatting script raises no violations
[x] All unit tests pass, and I have added new tests where possible
[x] I didn't break anyone :smile:

Motivation and Context
This PR adds a prototype implementation of API Manifest based plugins. APIManifest spec is located here. API Manifest is a format that allows defining an AI plugin from an existing OpenAPI, by specifying which subset of request paths to use in addition to other requirements such as auth. This PR contains a basic prototype covering a subset of the spec. The rest of the evolving spec will be implemented with follow up PRs and they will be shaped by the feedback we get.

Could you please describe the scenarios in which this API Manifest functionality will be used?

@zengin Could you please describe the scenarios in which this API Manifest functionality will be used?

Sure.
The biggest advantage of using API Manifest over an entire OpenAPI document currently is when an API contains too many operations such as Microsoft Graph (thousands of operations), where you only need a slice of it as a plugin.
Another developer's API may not be as big, but they may want to limit operations of the plugin to read-only endpoints (or any other subset criterion that makes sense).
API Manifest also allows adding more than one OpenAPI reference, which a scenario specific plugin may require (e.g. read GitHub issues and add them as a task into the todo list).
Given that API Manifest is under development and is more flexible in terms of the format, we will be able to add features required to describe a plugin, which may not necessarily be part of the OpenAPI specification. Additional decorations it contains are similar but not limited to OpenAI's plugin manifest or Microsoft Copilot's plugin manifest.
Eventually OpenAPI spec may support all these additional decorations to power AI scenarios (as pointed out here), in that case, plugin manifests may be considered an interim solution, but at least in the short term, they are going to be around to complement what's missing in the OpenAPI spec to guide LLMs on how to consume the APIs.

@zengin We are going to close this PR and move forward with a separate package for this functionality.


Do you have any ideas for a "Sample Python server" (and hooks in ctypes)?

Hi @forderud,
I, as a maintainer of comtypes, would like to ask for your input on something.
Could you share your knowledge on implementing COM servers using comtypes and how the hooks ctypes.DllCanUnloadNow and ctypes.DllGetClassObject could work to this process?
You’ve located both COM client and server samples implemented in C# and C++ to this repository, but only client samples in Python.
comtypes documents a way to implement COM servers at https://pythonhosted.org/comtypes/server.html.
However, that documentation hasn’t been updated in a long time, and the tests verifying this functionality are currently broken.
If you are aware of methods for implementing COM servers in Python that may not be well known in the community, or if you’ve encountered challenges in doing so in the past, I’d appreciate it if you could share those insights.
In the CPython community, we’re exploring improvements to the hooks defined in ctypes, moving away from their current reliance on comtypes.
If you have any expertise or thoughts to share about these hooks, particularly from the perspective of someone with experience implementing COM servers in other languages, I’d be grateful if you could report them and participate in the discussion at https://github.com/python/cpython/issues/127369.

Hi @junkmd and thank you for reaching out. I fully acknowledge that this project is missing a Python-based COM server sample. There is a COM class implemented in MyClientImpl though, but this is of course not a full server since it lacks registry entries and a class factory.
I've never implemented a COM server myself in Python, so I'm currently unable to answer your questions related to that. However, let's keep this issue open, and I'll see if I'm able to take a stab at it within the next few months. No promises though...

Status update: I've now added a small MyServerPy project that demonstrates how to implement COM servers in Python using comtypes. Most things seemed to work fine, but I stumbled across a TypeLib unregistration problem that I submitted a quick fix for in https://github.com/enthought/comtypes/pull/677

Closing issue, since there's now a sample Python server project in this repo.
I've only worked with EXE-based Python COM servers (CLSCTX_LOCAL_SERVER) myself, and not DLL-based (CLSCTX_INPROC_SERVER). I therefore lack experience with DllCanUnloadNow or DllGetClassObject from Python, and don't have much to contribute to that discussion.

Thank you for your investigation, the sample, and the quick response.
Even if you don’t have experience with DllGetClassObject and DllCanUnloadNow, your research and sample will be helpful in the discussion of which layer those hooks should be implemented in.
As for UnRegisterTypeLib, let’s continue the discussion in https://github.com/enthought/comtypes/pull/677.


WAN interface IP address

This continues to be a problem. The problematic function is commented with "#WAN Port IP Address" on line 1425: https://github.com/ispapp/ispapp-routeros-client/blob/master/ispapp.rsc#L1425
The variable "interfaceIp" is actually the "gatewayIp" and should be changed.
Proper logic needs to take the gateway IP address (the IP address closest to the interface name in the "gateway-status" variable) and find the corresponding network in the IP addresses. To do this properly we need to do a subnet calculation and determine which subnet includes this gateway IP address. A subnet calculation can be performed with a bitwise calculation:
https://wiki.mikrotik.com/wiki/Manual:Scripting#Bitwise_Operators

No you don't David.
The IP Address is a string with a subnet in IPv4 and in IPv6 it is another menu item /ipv6 ....
You split the string by the / character, then you have the IP address as the first element in the array.
There's nothing else to it.

You have to loop through the IP addresses to match the IP address with the gateway.

No David.
You do not.  The logic is correct.
You get the interface for the default route, then the ip address of that interface and split the string of that (the ip address) by / and take the first string element of the string.

Exactly, and the address is a string that you need to split by /.

The IP address in the IP routes is not the IP address of the interface, it is the IP address of the gateway. You need to associate the gateway address with the interface address. You can't just "get 0" where name=Ether6 because there are two IP addresses associated with Ether6.

David,
READ THIS:
You get the interface for the default route, then the ip address of that interface and split the string of that (the ip address) by / and take the first string element of the string.

interface for the default route
ip address of that interface
split that string by / and take the first string element of the string

interface for the default route (line 54 sets that to gatewayStatus)
ip address of that interface (line 63 sets that to interfaceIp from the value in the index gathered on line 61 and set to getInterfaceIndex)
split that string by / and take the first string element of the string (no string match in winbox vs that returned by the index, so get it from gatewayStatus split by space on line 61 then find the matching IP as there is no possibility of another IP with the same network on a router via line 72; set to wanIp)

You are wrong David, it is done.

Line 72 finds it based on the string split by space regardless, you are not understanding the third argument to find being set to -1 that means start, -1 doesn't mean anything as it is lower than the start.
What you are doing is absurd.

It's exactly what Mikrotik's documentation says to do:
https://wiki.mikrotik.com/wiki/Manual:Scripting
I don't know why you can't understand these things.

Here's a data dump of their HTML with a timestamp showing this.
scripting-routeros.html.txt

Line 66 removes a character from the end of the string that is supposed to be the network address.
Line 67 adds a "0" to the previously shortened string.

Then it's obvious that Emrah whom you paid too little to build something wrote a problem into the script to only happen with certain IP ranges.
Why would you continue the lie by trying to say use bitwise calculations?
This is why I want to document this, it's evil to do to people.

I don't know if line 66 does what you say, that's not relevant when you are saying these things.
It's very simple logic, why pay someone to write broken routines?

Because there are multiple IP addresses assigned to interfaces. You can't assume the IP address attached to the WAN port is the correct address.

What are you talking about David, that's why you get the default route and match the network address of it!

If a default route (that of destination <IP_ADDRESS>/0) has a network address, that address will match the IP address' network address for the interface.  It won't be able to have two IP addresses on the same network and the same interface!
Why don't you understand these things?

I don't understand why you aren't doing this to billionaires with every pen they use.

The default route doesn't have a network address. It has a gateway address.

David you have to stop lying, this code in your screenshot is not the same code.  You are putting the extra 0 it isn't there.

Do you not understand it is replacing the 1 with a 0 to get the network address? The network address is always a 0 at the end for a /24 and 0.0 for a /16 and 0.0.0 for a /8
It should be split by the periods if anything but the find command does not work as documented in SUP-61666.

"set" sets variable to that value. "put" prints the value to the screen. I added the "put" lines to make the values visible.

David, it works on a /16 do you not understand that?

It works on a /24 also.
It doesn't work on a router you are working on.
There's no problem, you aren't printing ipNetworkAddress and intentionally trying to confuse.
STOP LYING.

No it doesn't. it only works if the gateway happens to be one of the first 9 addresses in a /16. If the gateway is the last host address, like Comcast does it, then it will never work.

That's not relevant David, you lied about the setup on the router you are using it on and it isn't a real problem.
You paid Emrah to write problems.
When it's a real customer issue, I'll fix it.

You aren't testing, you are intentionally paying people to write broken things to ruin people that really work.

It won't crash the router, it won't stop the Internet connection and things will be done without you blocking access to and changing things to intentionally try to confuse.
There's no reason to waste this much time, that's all there is to it.

Devices report offline that are actually online, like the hAPs on the HowTo network. It is a known bug and I am reopening the issue.

No it is not David, it is like you getting in a car and driving into someone then saying it's a known bug that cars can drive into someone.
You are trying to maintain a linear story and not respecting the idea of lidar and no-lidar.

You intentionally broke it and created confusion after paying Emrah to create confusion in the first place then you were confused enough to document how.  Just stop.

I hate that you come to me and lie about things the state and legislators who are absolute millionaires can't figure out and ruin work that I did by working with people who will show you how to do this wrong.
It's very simple logic, stop trying to make a problem to figure out something else for people who claim to be keeping people safe and can't.

You created the network configuration on the HowTo network. Now the devices on that network are erroneously being logged as offline even though they are online.

This entire thing is absurd and prefaced on the fact that the find command doesn't reliably work in routeros.
It's very difficult to be motivated about fixing nonsense that requires a working find command.

They are being logged as offline because they have been physically manipulated.

It is working on comcast networks on bzvpy, everywhere.

If someone walked into my house and modified the router, you have two choices... kill them or hold them in place until they are arrested and expect them to come back if not dead or injured.
That's reality.
Stop making up broken lies for me to fix your understanding of something.

Learn to accept freedom of speech if me listening to music drives people so crazy that they would do that.
Accept it, stop expecting me to fix it with sound.

Comcast wan ip.


fix: Fix schema-07.json schema to work on jetbrains IDEs properly

I used Webstorm to validate it working, by temporarily adding a second array entry to example.json and letting me show all available arguments with ctrl+space.
This will close #8

I don't know why github didn't send me a notification for this. Looks good, and thank you for submitting this! :heart_on_fire:


apacheGH-30622: [GAC-11] Integrate Timestream ODBC driver into Arrow repository

Rationale for this change

Integration Apache 2.0 licensed AWS Timestream ODBC driver into the Arrow repository.
What changes are included in this PR?

Timestream ODBC driver seed code is added under cpp/src/arrow/flight/sql. No workflow for the driver is enabled.
Are these changes tested?

Tests are not covered as tests for the driver will be added as functionalities are developed.
Are there any user-facing changes?

No.

Closing this PR for now, as we will separate integration of driver seed from lint error fixes.


Fixes: #406 adding egress rule for control plane subnet.

To allow connectivity within the subnet from the bastion service (fixes #406 )

Hi @jeremyd ,
Please advise if this is still a problem.


Sum up the boost permissions if a players have multiple boosts

Description of new idea or improvement on existing one
Actually when a player has jobs.boost.all.all.0.5 for example, he will have a 50% boost on his jobs, but if he has jobs.boost.all.all.0.5 and jobs.boost.all.all.0.2 at the same time, the biggest permission will be the boost. it would be cool to sum up the boosts of a player if he has more than one.
Detailed information what should do what and when
If a player have jobs.boost.all.all.0.25 and jobs.boost.all.all.0.4, instead of having a 40% boost, he would have a 65% boost

I disagree with this unless an option to use the current system is implemented too.

This could conceivably be done by using an additional bonus, I'd think.
It might be a little messy, but could add additional nodes that can stack, like jobs.boost.[jobname].all.[amount], jobs.boost2.[jobname].all.[amount], jobs.boost3.[jobname].all.[amount] etc. But that's kind of ugly. There's likely a better way to do it, but I'd love to see this, myself.

I'm not sure this works. I have a fresh install of 4.17.2 installed, using Paper-288 (MC: 1.16.4), and using LuckPerms for permissions.
I set two permissions:

This is the output of /jobs bonus [Job]


Feature request: CoreAudio device switch

As far as I can see, baresip cannot be made to use USB devices as audio_player and audio_source.  Is it possible to allow more than the current nil as device description to enable such plugin devices?  This would make baresip a perfect handler for a plugin USB phone as they are commonly sold for Skype.  Of course the audio_alert should still be settable to the internal speaker, and perhaps the plugin of the device during the call would be supportable.

You can.
Example from my config:
++++++ ALERT +++++++
audio_alert             alsa,default
++++++ SPEAKER +++++++
audio_player            alsa,plughw:1,0
++++++ MICROPHONE +++++++
audio_source            alsa,plughw:1,0
Use 'lsusb' in the terminal of your OS, to find out the specific device id of your USB device.

Sorry, I should have said this is a request for Mac OS X.  I thought coreaudio was strictly for that platform.  In the source code for coreaudio, I found that the "char *device" is ignored, hence the request to do something with it :)

This is the ignoring line I meant:
https://github.com/alfredh/baresip/blob/master/modules/coreaudio/player.c#L89

hi @vanrein
I have a solution for this, using kAudioQueueProperty_CurrentDevice.
will post the code in the next couple of days.
are you available for testing ?
Alfred

Hi Alfred,

I have a solution for this, using kAudioQueueProperty_CurrentDevice.
will post the code in the next couple of days.

Cool.

are you available for testing ?

Sure.  I don't have much of a build environment on Mac OS X, but enough for something as simple as baresip, AFAIK.
Thanks,
-Rick

hi @vanrein
could you please test the coreaudio module in this branch:
https://github.com/alfredh/baresip/tree/coreaudio_select_device
When your USB device is plugged in and you start baresip, you
should see a list of audio devices:
## devices: 2
  [0] UID:  'AppleHDAEngineInput:1B,0,1,0:1'
  [0] Name: 'Built-in Microphone'
  [0] Manu: 'Apple Inc.'
  [1] UID:  'AppleHDAEngineOutput:1B,0,1,1:0'
  [1] Name: 'Built-in Output'
  [1] Manu: 'Apple Inc.'

if you find the right UID, use it as the audio device in e.g. audio_player option.
Alfred

Hi,
Partial results; I need to stop working; we're under a rather extreme heat these days.  Will report more in a few days.
COMPILING:
Code looks code, and compiles properly after an update of libre/librem/baresip with Brew,
libre 0.5.1 -> 0.5.7 librem 0.5.0 -> 0.5.2, baresip 0.5.0 -> 0.5.8.
SEGFAULT (DUE TO VERSION MIXUP):
Brew's 0.5.8 as well as my locally compiled baresip crash with a segmentation fault.
Debugging leads me to a version conflict from using an older library, I haven't figured out yet why.
The problem is visible in mod_load, and causes a SEGFAULT crash in list_append for accessing protected ui in ui_register.
Fixed by editing ~/.baresip/confg, the module_path setting.
AUDIO REPORT:
Didn't see devices listed, not even one.  Trying to figure out breakpoings on loadable modules.
-Rick

It is also warm here, around 34C a couple of days ago :)
I would suggest that you compile baresip/rem/re from git source, and uninstall
all versions from Macports/Homebrew. Some versions are not binary compatible
and can sometimes cause segfault.

hi @vanrein how is the heat wave ?
did you have a chance to test my code ?

Hey,

hi @vanrein how is the heat wave ?

It's still going strong...

did you have a chance to test my code ?

...so sorry, but no :(
-Rick

there is a small improvement in 943ee657ecd5c03f2598a709599a88a37cf0a7f7
you can now specify the canonical name as the device:
audio_player            coreaudio,"Built-in Output"

you can also use the portaudio module:
portaudio: device count is 4
portaudio: device 0: Built-in Microphone
portaudio: device 1: Built-in Output
portaudio: device 2: C-Media USB Headphone Set
portaudio: device 3: C-Media USB Headphone Set

Sample config:
audio_player  portaudio,2
audio_source  portaudio,3


UI: IP address column always empty on the Add VM modal

The modal form uses a field that is absent in the API response.
This modal makes an API request to the 'listVirtualMachines' API endpoint and prints all VMs. In the ui/src/views/network/PortForwarding.vue file at line 428, the column expects to use the ip field, but this field is absent in the actual response. I assume it should be publicip instead of ip. Please feel free to close the issue if I'm missing something.
If it should be just publicip instead of ip, let me know, and I can prepare a fix.
ISSUE TYPE

Bug Report

COMPONENT NAME

UI

CLOUDSTACK VERSION

4.18

CONFIGURATION

OS / ENVIRONMENT

SUMMARY

STEPS TO REPRODUCE

1) Login to the ACS
2) Create VPC
3) Create VM with Network created on the previous step
4) Navigate to the VPC -> Public IP Addresses tab
5) Click on the non-"source nat" public ip address
6) Navigate to the Port Forwarding tab
7) Click "Add" button
8) Check VM table

EXPECTED RESULTS

IP Address value is present

ACTUAL RESULTS

IP Address value is missing

hi @weizhouapache, should I prepare the fix and remove this column from the modal at all?

hi @weizhouapache, should I prepare the fix and remove this column from the modal at all?

Do you agree with removing the field ?
anyone who is interested, including you, can create a PR for it. If you want, go ahead, otherwise I can create a PR, it is very simple.

fixed via #8275
thanks @OlegChuev


Updated README.md

Signed-off-by: namhsuya<EMAIL_ADDRESS>Resolved grammatical issues in documentation

Thanks for your contribution @namhsuya!


Make thread-interruption of Hystrix thread depend on property value

At the moment, thread-interrupt is controlled by the internals of the Rx Scheduler infrastructure.  @akarnokd has got an addition to the API in https://github.com/ReactiveX/RxJava/pull/2579/files that will expose this functionality for the HystrixContextScheduler to use.  Once the next RxJava release comes out, move to that API.
Also, see #593, #596 for history

Fixed in #647


Update Composer dependencies (2019-10-26-00-26)

Gathering patches for root package.
Loading composer repositories with package information
Updating dependencies
Package operations: 0 installs, 3 updates, 0 removals
Gathering patches for root package.
Gathering patches for dependencies. This might take a minute.
  - Updating nikic/php-parser (v4.2.4 => v4.2.5): Loading from cache
  - Updating drush/drush (8.3.0 => 8.3.1): Loading from cache
  - Updating commerceguys/addressing (v1.0.5 => v1.0.6): Loading from cache
Writing lock file
Generating optimized autoload files
> DrupalProject\composer\ScriptHandler::createRequiredFiles

Visual regression test passed!
View the visual regression test report


Fix performance regression in FastThreadLocal microbenchmark.

Fixes #4402.
Motivation:
As reported in #4402, the FastThreadLocalBenchmark shows that the JDK ThreadLocal
is actually faster than Netty's custom thread local implementation.
I was looking forward to doing some deep digging, but got disappointed :(.
Modifications:
The microbenchmark was not using FastThreadLocalThreads and would thus always hit the slow path.
I updated the JMH command line flags, so that FastThreadLocalThreads would be used.
Result:
FastThreadLocalBenchmark shows FastThreadLocal to be faster than JDK's ThreadLocal implementation,
by about 56% in this particular benchmark. Run on OSX El Capitan with OpenJDK 1.8u60.
Benchmark                                    Mode  Cnt      Score      Error  Units
FastThreadLocalBenchmark.fastThreadLocal    thrpt   20  55452.027 ±  725.713  ops/s
FastThreadLocalBenchmark.jdkThreadLocalGet  thrpt   20  35481.888 ± 1471.647  ops/s

@normanmaurer @ninja- PTAL
As a followup, it might make sense to actually fallback to JDK ThreadLocal for the slow path.

@buchgr thanks, you beat me here :)
Cherry-picked into 4.0 (e12613a018eed261673ef2415aff3de9db0f24e2), 4.1 (c9364616c800553f4a98bd11c26ef61397a11c6d) and master (2c69dccb3cf92b5b73fbc579914b522e604f46f5)

@buchgr also yes we should improve the "slow-path". Want to work on a PR (hint) ;) ?

@normanmaurer maybe, if I find time :). I ll open an issue. I am insanely busy at the moment (working on my thesis) and only got to installing Netty today (1 issue reported, 1 fixed #whoopwhoop).

@buchgr ok slacker ;) Good luck with it!
I will look into it.

Benchmark                                    Mode  Cnt      Score      Error  Units
FastThreadLocalBenchmark.fastThreadLocal    thrpt   20  55452.027 ±  725.713  ops/s
FastThreadLocalBenchmark.jdkThreadLocalGet  thrpt   20  35481.888 ± 1471.647  ops/s

weird. jdk's thread local looks really, really solid these days. what's wrong with it?


Use hierarchy guard when creating event

When the free event is created, use a hierarchy guard to create the event as a child of the tlm_socket in the SystemC module hierarchy.

Sorry, we don't accept PRs.


ValueError: channels must be divisible by 8 when new special tokens are added

I can run the original LLaMA-2-7B model itself, and its fine-tuned versions without any issues. However, if a special token is added during fine-tuning, it cannot be loaded using mii. The model works just fine with vLLM, and HuggingFace's transformers and TGI.
The same happens when testing Mistral-7B.
The shortest code that reproduces the error is:
import mii
pipeline = mii.pipeline("stanford-oval/Llama-2-7b-WikiChat")

Traceback (most recent call last):
  File "/home/user1/llama/test.py", line 3, in <module>
    pipeline = mii.pipeline("./workdir/earlycombine_gpt4_fused_v3")
  File "/home/user1/anaconda3/envs/llama/lib/python3.10/site-packages/mii/api.py", line 156, in pipeline
    inference_engine = load_model(model_config)
  File "/home/user1/anaconda3/envs/llama/lib/python3.10/site-packages/mii/modeling/models.py", line 17, in load_model
    inference_engine = build_hf_engine(
  File "/home/user1/anaconda3/envs/llama/lib/python3.10/site-packages/deepspeed/inference/v2/engine_factory.py", line 126, in build_hf_engine
    return InferenceEngineV2(policy, engine_config)
  File "/home/user1/anaconda3/envs/llama/lib/python3.10/site-packages/deepspeed/inference/v2/engine_v2.py", line 83, in __init__
    self._model = self._policy.build_model(self._config, self._base_mp_group)
  File "/home/user1/anaconda3/envs/llama/lib/python3.10/site-packages/deepspeed/inference/v2/model_implementations/inference_policy_base.py", line 156, in build_model
    self.model = self.instantiate_model(engine_config, mp_group)
  File "/home/user1/anaconda3/envs/llama/lib/python3.10/site-packages/deepspeed/inference/v2/model_implementations/llama_v2/policy.py", line 17, in instantiate_model
    return Llama2InferenceModel(config=self._model_config, engine_config=engine_config, base_mp_group=mp_group)
  File "/home/user1/anaconda3/envs/llama/lib/python3.10/site-packages/deepspeed/inference/v2/model_implementations/inference_transformer_base.py", line 222, in __init__
    self.make_unembedding_layer()
  File "/home/user1/anaconda3/envs/llama/lib/python3.10/site-packages/deepspeed/inference/v2/model_implementations/inference_transformer_base.py", line 265, in make_unembedding_layer
    self.unembed = heuristics.instantiate_unembed(unembed_config, self._engine_config)
  File "/home/user1/anaconda3/envs/llama/lib/python3.10/site-packages/deepspeed/inference/v2/modules/heuristics.py", line 179, in instantiate_unembed
    return DSUnembedRegistry.instantiate_config(config)
  File "/home/user1/anaconda3/envs/llama/lib/python3.10/site-packages/deepspeed/inference/v2/modules/module_registry.py", line 39, in instantiate_config
    return cls.registry[config_bundle.name](config_bundle.config, config_bundle.implementation_config)
  File "/home/user1/anaconda3/envs/llama/lib/python3.10/site-packages/deepspeed/inference/v2/modules/implementations/unembed/ragged_unembed.py", line 69, in __init__
    self._act_fn = CUDABiasActivation(self._config.vocab_size, self._config.dtype, ActivationType.IDENTITY)
  File "/home/user1/anaconda3/envs/llama/lib/python3.10/site-packages/deepspeed/inference/v2/kernels/core_ops/bias_activations/bias_activation.py", line 36, in __init__
    raise ValueError("channels must be divisible by 8")
ValueError: channels must be divisible by 8

GPU: NVIDIA A100
Python: 3.10.13
deepspeed==0.13.0
deepspeed-kernels==0.0.1.dev1698255861
deepspeed-mii==0.2.0
torch==2.1.2+cu118

hi ! have you been able to resolve it  ?

hi ! have you been able to resolve it ?

No, I still get the same error.

@s-jse thanks for reporting this issue! Currently The DeepSpeed-FastGen fused bias and activation kernel demands the number of channels be divisible by 8 as it takes advantage of vectorized instructions to achieve better performance!
Currently supported Llama models have vocab size of 32000 (any vocab size divisible by 8 should work!). The "stanford-oval/Llama-2-7b-WikiChat" (and any model with new special tokens added) has 32001 or more, which breaks our fused bias and activation kernel in unembedding layer.
We generalize this kernel to work with arbitrary channel sizes soon and let you know! Thanks!

Any updates on this issue?

Any updates ? I got same issue.
Thanks


identifier for variable in config-file

Hello,
in an other question you asked me how you could document the use of the varibles so that other user better understand them ....
I think it would be great to have a list which variable-prefix configures which config-file.
Something like:
KCCONF_ZPUSHAUTODISCOVER_... = autodiscover-config.php
KCCONF_WEBAPP_... = config.php
KCCONF_WEBAPPPLUGIN_MDM_PLUGIN_... = config-mdm.php
Every time I need anouther file, I begins to tryout. :(

Yes I guess the description given at https://github.com/zokradonh/kopano-docker/tree/master/php#configuration-through-environment-variables could be extended with a list of all possible configuration files (and maybe some commands to get possible config file values and configuration options?).
The linked block could also be added to the readme in the zpush folder.
For the z-push container you can find the known mappings at https://github.com/zokradonh/kopano-docker/blob/master/zpush/start.sh#L88
Please open a pr


openshot-qt: 2.3.4 -> 2.4.1

Semi-automatic update. These checks were performed:

built on NixOS
ran /nix/store/v3kr4pyvqih44nkanbcs50574wz6gjcv-openshot-qt-2.4.1/bin/openshot-qt --version and found version 2.4.1
ran /nix/store/v3kr4pyvqih44nkanbcs50574wz6gjcv-openshot-qt-2.4.1/bin/..openshot-qt-wrapped-wrapped --version and found version 2.4.1
ran /nix/store/v3kr4pyvqih44nkanbcs50574wz6gjcv-openshot-qt-2.4.1/bin/.openshot-qt-wrapped --version and found version 2.4.1
found 2.4.1 with grep in /nix/store/v3kr4pyvqih44nkanbcs50574wz6gjcv-openshot-qt-2.4.1

cc "@AndersonTorres"

Failure on x86_64-darwin (full log)
Partial log (click to expand)
Package ‘openshot-qt-2.4.1’ in /private/var/lib/ofborg/checkout/repo/38dca4e3aa6bca43ea96d2fcc04e8229/builder/lnl7-mac/pkgs/applications/video/openshot-qt/default.nix:32 is not supported on ‘x86_64-darwin’, refusing to evaluate.

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowBroken = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowBroken = true; }
to ~/.config/nixpkgs/config.nix.

Success on x86_64-linux (full log)
Partial log (click to expand)
/tmp/nix-build-openshot-qt-2.4.1.drv-0/source
glibPreFixupPhase
post-installation fixup
Wrapping program /nix/store/v3kr4pyvqih44nkanbcs50574wz6gjcv-openshot-qt-2.4.1/bin/openshot-qt
shrinking RPATHs of ELF executables and libraries in /nix/store/v3kr4pyvqih44nkanbcs50574wz6gjcv-openshot-qt-2.4.1
strip is /nix/store/b0zlxla7dmy1iwc3g459rjznx59797xy-binutils-2.28.1/bin/strip
stripping (with command strip and flags -S) in /nix/store/v3kr4pyvqih44nkanbcs50574wz6gjcv-openshot-qt-2.4.1/lib  /nix/store/v3kr4pyvqih44nkanbcs50574wz6gjcv-openshot-qt-2.4.1/bin
patching script interpreter paths in /nix/store/v3kr4pyvqih44nkanbcs50574wz6gjcv-openshot-qt-2.4.1
checking for references to /tmp/nix-build-openshot-qt-2.4.1.drv-0 in /nix/store/v3kr4pyvqih44nkanbcs50574wz6gjcv-openshot-qt-2.4.1...
wrapping `/nix/store/v3kr4pyvqih44nkanbcs50574wz6gjcv-openshot-qt-2.4.1/bin/.openshot-qt-wrapped'...

Failure on aarch64-linux (full log)
Partial log (click to expand)
/build/requests-2.18.4
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/7wvn4ljg186ym4dx812sajigw49pnn88-python3.6-requests-2.18.4
strip is /nix/store/viv0il4zpdqj4p7yamwbmn2k9pb8dcnv-binutils-2.28.1/bin/strip
stripping (with command strip and flags -S) in /nix/store/7wvn4ljg186ym4dx812sajigw49pnn88-python3.6-requests-2.18.4/lib
patching script interpreter paths in /nix/store/7wvn4ljg186ym4dx812sajigw49pnn88-python3.6-requests-2.18.4
checking for references to /build in /nix/store/7wvn4ljg186ym4dx812sajigw49pnn88-python3.6-requests-2.18.4...
strip is /nix/store/viv0il4zpdqj4p7yamwbmn2k9pb8dcnv-binutils-2.28.1/bin/strip
cannot build derivation '/nix/store/9vl6801i9kyvdkfp3xlkgwvp7ilxibqy-openshot-qt-2.4.1.drv': 3 dependencies couldn't be built
error: build of '/nix/store/9vl6801i9kyvdkfp3xlkgwvp7ilxibqy-openshot-qt-2.4.1.drv' failed


IReference should return Type() as PropertyType::UInt32 or Int32

The IReference implementation always returns "OtherType" from Type() but this causes XAML to go down a fallback codepath where it queries GetRuntimeClassName() and then uses the string name to try to figure out what the boxed type is.
This is just inefficient most of the time but with WINRT_LEAN_AND_MEAN it stops working because those strings aren't returned anymore.
Hopefully it's simple to fix the Type() implementation to return Int32 or UInt32 instead.

https://github.com/microsoft/cppwinrt/pull/447
Will this do?

Looks like it to me! Is it possible to try the cppwinrt.exe from that change in my local MUX build?

Here you go: \scratch2\scratch\kennykerr\cppwinrt.exe
Let me know if this is good and I'll spin another published build.

You did what I asked but unfortunately there's still something wrong on the XAML side that I need to look into, and it makes me think that I'm wrong about what the behavior should be. I'll debug more and let you know.

I sent email on another thread -- the issue that came up with XAML where Style setters don't work with WINRT_LEAN_AND_MEAN is the same. XAML ends up using the GetRuntimeClassName on the IReference<T> to preserve type information. It's arguably a bug in XAML but not one we can fix soon. :(
Either we just can't use WINRT_LEAN_AND_MEAN or we need the IReference type names included.

Fixed in https://github.com/microsoft/cppwinrt/pull/451


Breaking Bad Vibe - Science Bitch!

Just began testing this service and I can't help but notice you!
Hello Jesse Pinkman!

I'm not sure who Jesse Pinkman is, but I like your enthusiasm!


Add OpenEBS integration.

This PR adds a new system application dependency to gravity clusters - storage-app that installs and configures OpenEBS.
The gist of what's new:

storage-app is packaged during tele build. We should consider excluding it if it's not enabled (cause it's almost 1GB) but that's for later.
New manifest section storage.openebs that allows to enable it.
New resource type PersistentStorage that allows to tweak OpenEBS configuration.
Logic necessary to ensure OpenEBS can be installed during upgrade.
The docs.

Closes https://github.com/gravitational/gravity/issues/668. Depends on https://github.com/gravitational/storage-app/pull/1 and https://github.com/gravitational/planet/pull/529.

The robotests are consistently failing on resize:
[ERROR]: failed to execute phase "/configure" {"message":"etcdserver: request timed out"}

[ERROR]: failed to execute phase "/configure" {"message":"rpc error: code = Unavailable desc = etcdserver: leader changed"}

Hmm, robotest actually passed on the second to the last commit, but one of unit tests was broken. Might be unrelated to the changes. I’ll launch again.


Bundle typescript definitions with the package

I've been playing with shadcn-svelte and when I pulled in the command component I got Cannot find module 'cmdk-sv' or its corresponding type declarations.ts(2307) when running my linter.

Intellisense was busted. I verified everything is working as expected. Sorry for the spam.


Only open important facets by default on search page

Currently we have a lot of facets, and each is open by default. We should only open the ones that are important by default.
One problem with having all facets opened is that the clear facets button is very low not visible on normal screen sizes unless you scroll far down.

Parallel is https://dcc.icgc.org/search with primary site, project, study, and gender open but the rest are closed. We can pick some initial facets but also change them based on user popularity after #1203 #1811


Conditional authentication script editor UI not aligned properly

See the screenshot attached below.

Fixed with https://github.com/wso2/carbon-identity-framework/pull/1588
Tested for Mac/Ubuntu Chrome/ FF browsers


84 Super Star Trek CSharp

WIP
Super Trek Trek port to C#

Introduction including instructions
Main game loop
Short Range Scan
Shield Control

More to come...

This is a big one, take your time! Thanks!


Windows 64 build

Windows 64 bit build can be done using following commands. I am using this build as my default brackets and have not seen any issue yet.
TODO: installer is not working.
grunt setup --force-target-word-size=64
grunt build  --force-target-word-size=64

Nit: Change the command line flag:  to --arch=x64 instead of --force-target-word-size=64

On windows it common.arch()  returns empty on windows, so added option to enable 64 bit build while 32 bit is default.
so, --archbit=64 looks more suitable to me.

Addressed review comments.

@vickramdhawal addressed all the review comments.


HardwareBoMDataModel.select() Method is Incorrectly Defined

Expected Behavior
Classes should have the same method definitions (e.g., same arguments list) for identical methods.
Actual Behavior
The HardwareBoMDataModel.select() method differs from the RTKDataModel select() method.  The HardwareBoMDataModel.select() method is select(self, node_id, table).  The table argument is not in the overridden RTKDataModel.select() method, but is needed to select the correct data attribute.
Steps to Reproduce the Problem
Not applicable for coding style errors.
Proposed Solution

Update the RTKDataModel.select() method to select(self, node_id, **kwargs)
Update the HardwareBoMDataModel.select() method to retrieve the table name from the kwargs dict.
Update HardwareBoMDataModel.select() calls to ensure the table name is passed as keyword argument.

Operating Environment
Not needed for Requirement errors.

Fixed in commit 34b212a9753a65d405b6ee050df0ab4d1209c73b


Add hook for contact impulses

This exposes up to date impulse information so that the user can create effects etc based on them. See https://github.com/dimforge/bevy_rapier/issues/108 and https://github.com/dimforge/rapier/pull/263.
TODO:

[ ] Add an example program using this.

I have abandoned this.


Expected a string or undefined for debug builds. Fixes #1213

Thanks! The intention of this method though is to only accept strings in string-taking APIs and something like Option<String> would be used instead for something which also takes undefined. Can you elaborate on the use case you're thinking though to take undefined here?

I'm gonna go ahead and close this for now because I think this is working as intended, but we can of course continue to follow up if necessary!


[BugFix] fix sleep negative for BDB UT

What type of PR is this：

[x] bug
[ ] feature
[ ] enhancement
[ ] refactor
[ ] others

Which issues of this PR fixes ：

Fixes #
Problem Summary(Required) ：

Use ThreadLocalRandom.nextInt(min, max) instead of Random.nextInt() to avoid negative parameter in Thread.sleep.

[FE PR Coverage Check]
:heart_eyes: pass : 0 / 0 (0%)


Use iterators

Using iterators allow the compiler to prealocate the exact memory required on the heap (for Vec and similar). Sometimes also makes the code ez to undertand.

Using iterators allow the compiler to prealocate the exact memory required on the heap (for Vec and similar). Sometimes also makes the code ez to undertand.

Thank you for the work.


BSD Support: Question about core lib implementation

Dear maintainers and contributors. I am currently implementing kqueue support, and I have made some decent progress.
There is however something I need help with as I don't understand what is supposed to happen in the core code. Perhaps somebody can give me insight on the following:
Setup
I have set up a basic Router which serves a route with the path /A.
endpoint->setHandler(router.handler());
endpoint->serveThreaded();

When using curl to do the request, the handler is successfully called. However, the response hangs:
*   Trying <IP_ADDRESS>...
* TCP_NODELAY set
* Connected to localhost (<IP_ADDRESS>) port 58269 (#0)
> GET /A HTTP/1.1
> Host: localhost:58269
> User-Agent: curl/7.54.0
> Accept: */*

I saw that Transport::onReady (transport.cc) was called successfully. First of all, the request was parsed correctly. That is, handleIncoming(peer) was called and the parser was attached to the peer struct. That looked good so far.
My question: What is supposed to happen after that?
What I saw in my development branch:

handlePeerQueue() is called, the parser was attached successfully
handlePeerQueue() was called again
entry.isReadable() gets called, which calls handleIncoming(peer)
handleWriteQueue() was invoked. This method writes places a WriteEntry into toWrite (https://github.com/oktal/pistache/blob/73f248acd6db4c53e6604577b7e13fd5e756f96f/src/common/transport.cc#L365)
Nothing happens anymore.

I think overall I have made great progress implementing kqueue support. But I didn't have any significant progress today, as I don't understand the workflow of the Transport class. Can anybody help explaining how the response will actually be triggered?

Hello!
FreeBSD support?  Cool!  Someone else recently posted that they are working on MacOS support as well.  Thank you for working on this.  Sadly though, I am only a "guest maintainer", and I've never dug into the core networking code.  Its very... odd.
(This is going to sound so ancient..., like 1970's), add some logging / printf to the code code, and test it on Linux, see what it does.

That was me! If we add the appropriate kqueue calls, BSD and MacOS will work!
I thought about the printout-comparison thing too. Just hoped there would be someone who could guess why and where it‘s hanging. LLDB doesn‘t give me a hint at all :(

@dennisjenkins75 I tried your approach, it gave me exactly the same results. Additionally, in the end, Transport::onReady() was invoked on Linux. But not on MacOS. Thus, on MacOS the response is never written back to the socket fd. At least I know I am on the right path.
Seems like I have already come far!

Once you get something working, please extend travis coverage to at least one recent version of FreeBSD.  I would hate to break FreeBSD support due to some other code change.

That‘s true. Great idea!

@SmartArray How is your progress?

@SmartArray How is your progress?

I stopped working on it some months ago. It compiled well, and I thought it would be working.
However, the tests didn't complete successfully, so multiple things were very odd. That being said, I don't think it is worth it to port this library to BSD.
However, if someone wants to try, feel fee to use my existing work (which I spent more than 10 hours on)
As an alternative I have found (but not tried) https://gitlab.com/eidheim/Simple-WebSocket-Server
Benchmarks look super solid.

Why is it suddenly not worth to port it? Only because it is hard?

IMHO, it doesn't make sense to port it. See, my work was highly theoretical. Kqueue just doesn't use file descriptors and making it compatible to timerfd/pollfd should already be done in the initial planning.
Moreover, I ran out of time and need to care about my personal projects again.
As far as I understood, the original developer isn't here anymore, he could have answered many questions that I had in the past.
But feel free to continue with my work 😊


How to implement my own loss function?

I'm going to implement RankNet, and I find I'll need my own loss function (cf. eq. (1) in the paper).
The loss function takes two arguments (not either y_true or y_pred, http://keras.io/objectives/) and returns one output. How do I implement it? Can I do it in the first place?
References

Burges, Chris, et al. "Learning to rank using gradient descent." Proceedings of the 22nd international conference on Machine learning. ACM, 2005.
http://research.microsoft.com/en-us/um/people/cburges/papers/ICML_ranking.pdf
(cf. eq (1))
Burges, Christopher JC. "From ranknet to lambdarank to lambdamart: An overview." Learning 11 (2010): 23-581.
http://research.microsoft.com/pubs/132652/MSR-TR-2010-82.pdf
(cf. section 2)

If you want to use a loss function that is not of the form of f(x_true, x_pred), then you have to implement your training routine outside of Keras.
Basically:

define your model (typically using the functional API)
define your custom cost
instantiate an optimizer, get weights updates via:
updates = optimizer.get_updates(model.trainable_weights, model.constraints, cost))
take care manually of regularizers and batchnorm updates
create your own Keras functions based on the inputs, outputs, and updates

thank you for your quick reply. I'll try (3), (4) and (5).

instantiate an optimizer, get weights updates via:
updates = optimizer.get_updates(model.trainable_weights, model.constraints, cost))

create your own Keras functions based on the inputs, outputs, and updates

I found that I should do like https://github.com/fchollet/keras/blob/master/keras/engine/training.py#L649-670.

take care manually of regularizers and batchnorm updates

I can't understand what do you mean. Please give me some examples.

If you don't have regularizers or batchnorm layers you can ignore this. Otherwise, you need to:

apply your regularizers to your loss function. You can refer to the contents of the compile method for details.
add model.updates to your optimizer-generated updates. Again, compile covers everything you need to know.

Thank you! I'll check compile

@henry0312 Have you figured it out? I'm currently facing the same problem and haven't found out a way to implement a cost function that takes multiple arguments (with different shapes) as inputs. Could you please provide an example about how you did that?

@ScartleRoy No, it's difficult for me to achieve this with fit or fit_generator 😔
I'll try more.

@henry0312 Maybe we need some help from additional official documents. I think there should be many people that also have needs to design cost functions that are different from the default ones in Keras. @fchollet Sorry to disturb you again but would it be possible for Keras to provide some documentations about how to write custom loss functions with different forms?

Any update to this?

(Copying the answer which I posted on Stackoverflow) http://stackoverflow.com/questions/33859864/how-to-create-custom-objective-function-in-keras/40622302#40622302
Here is my small snippet to write new loss functions and test them before using:
`.
import numpy as np
from keras import objectives
from keras import backend as K

_EPSILON = K.epsilon()

def _loss_tensor(y_true, y_pred):
	y_pred = K.clip(y_pred, _EPSILON, 1.0-_EPSILON)
	out = -(y_true * K.log(y_pred) + (1.0 - y_true) * K.log(1.0 - y_pred))
	return K.mean(out, axis=-1)

def _loss_np(y_true, y_pred):
	y_pred = np.clip(y_pred, _EPSILON, 1.0-_EPSILON)
	out = -(y_true * np.log(y_pred) + (1.0 - y_true) * np.log(1.0 - y_pred))
	return np.mean(out, axis=-1)

def check_loss(_shape):
	if _shape == '2d':
		shape = (6, 7)
	elif _shape == '3d':
		shape = (5, 6, 7)
	elif _shape == '4d':
		shape = (8, 5, 6, 7)
	elif _shape == '5d':
		shape = (9, 8, 5, 6, 7)

	y_a = np.random.random(shape)
	y_b = np.random.random(shape)

	out1 = K.eval(_loss_tensor(K.variable(y_a), K.variable(y_b)))
	out2 = _loss_np(y_a, y_b)

	assert out1.shape == out2.shape
	assert out1.shape == shape[:-1]
	print np.linalg.norm(out1)
	print np.linalg.norm(out2)
	print np.linalg.norm(out1-out2)

def test_loss():
	shape_list = ['2d', '3d', '4d', '5d']
	for _shape in shape_list:
		check_loss(_shape)
		print '======================'

if __name__ == '__main__':
	test_loss()`

Here as you can see I am testing the binary_crossentropy loss, and have 2 separate losses defined, one numpy version (_loss_np) another tensor version (_loss_tensor) [Note: if you just use the keras functions then it will work with both Theano and Tensorflow... but if you are depending on one of them you can also reference them by K.theano.tensor.function or K.tf.function]
Later I am comparing the output shapes and the L2 norm of the outputs (which should be almost equal) and the L2 norm of the difference (which should be towards 0)
Once you are satisfied that your loss function is working properly you can use it as:
model.compile(loss=_loss_tensor, optimizer=sgd)

@indraforyou thanks for the snippet. Your function gives loss values, but how can we specify the gradients from custom loss function for backpropagation?

@janiteja : Yes that one of the benefit of using Theano/Tensorflow  and libraries build on top of them. They can give you automatic gradient calculation of the mathematical functions and operations.
Keras gets them by calling:
`
# keras/theano_backend.py
def gradients(loss, variables):
    return T.grad(loss, variables)

# keras/tensorflow_backend.py
def gradients(loss, variables):
    '''Returns the gradients of `variables` (list of tensor variables)
    with regard to `loss`.
    '''
    return tf.gradients(loss, variables, colocate_gradients_with_ops=True)`

which are in turn called by the optimizers(keras/optimizers.py) to get the update rule for the tensor graph.
The only time you need to write new gradient is when you are defining a new basic mathematical operation/function .. you can see the below links for that:
http://deeplearning.net/software/theano/extending/extending_theano.html
https://www.tensorflow.org/versions/r0.12/how_tos/adding_an_op/index.html

@henry0312 Have you figured out how to code this? If you have, can you pls post some code snippet. I have similar need for a custom loss that takes three inputs.

There is an example that covers multiple additional arguments in image_ocr.py; link to a relevant part of it (actual loss function is defined here though)

For anyone else who arrives here by searching for "keras ranknet", you don't need to use a custom loss function to implement RankNet in Keras. The cost function as described in the paper is simply the binary cross entropy where the predicted probability is the probability that the more relevant document will be ranked higher than the less relevant document. The "trick" for implementing RankNet in Keras is making the input to the final sigmoid layer (which generates the predicted probability) the difference between the scores of the two documents (scores that are generated by the same net). My (slightly modified) Keras implementation of RankNet can be found here.

I read through the available loss functions in Keras:
https://github.com/fchollet/keras/blob/master/keras/losses.py
But I am not sure how to extend the loss function, for example adding a regularization or adding more element?
I checked the model compile definition as below:
https://github.com/fchollet/keras/blob/master/keras/models.py#L742
But now sure how the keras handle the loss function....
Could anyone provide further references?

@xiaoleihuang Did you find a solution for your custom loss implementation. I am trying to implement a similar custom loss and I am not sure how to implement it.

Hi all,
I have been reading through this and other similar issues and still haven't been able to implement my custom loss function.
What I have is a multilabel problem, with 4 input time series, and 7 possible labels at each time step. To attempt to solve the problem, I stacked a couple of LSTM layers followed by a TimeDistributed(Dense) layer, so that there is a classification for each time step.
Input dimensions:  (timesteps=200,features=4)
Outputs dimensions: (timesteps=200,n_outputs=7)
I want to implement the loss function used in this article, where the loss is a convex combination of the final loss (time step = 200) and the average of the losses over all steps. I've tried quite a few approaches, but none have worked:
Essentially I would like something like this to work:
def custom_loss(y_true, y_pred):
    alpha = 0.1
    loss1 = K.sum(C.binary_cross_entropy(y_pred,y_true))/200
    loss2 = C.binary_cross_entropy(y_pred[200,:],y_true[200,:])
    loss = alpha*loss1 + (1-alpha)*loss2
    return loss

I appreciate any help I can get.

I think I found a workaround to create custom loss function with information from the model. The only thing is that this info will be updated at every on_batch_begin.
You need to create your own callback object and create both on_batch_begin and  call methods. For example:
class L2Reg(Callback):
def init(self, weights):
self.params = weights
def on_batch_begin(self, batch, logs={}):
  self.params=self.model.get_weights()

def __call__(self, y_true, y_pred):
  L2Norms = []
  for weights in self.params[::2]:
    for unitWeigth in weights:
      L2Norms.extend(unitWeigth)

  Lambda = 2.5/trainSize*64
  cce = losses.categorical_crossentropy(y_pred, y_true) + 0.5*Lambda*numpy.linalg.norm(L2Norms)**2
  return cce

When you create your model, you need to pass an instance of  your callback class to the loss input for the compile function. Do not foget to initialize your class instance attributes before compiling as the compile function evaluates the loss before fitting.
Function to create model, required for KerasClassifier
def create_model(num_pixels, num_classes, initial='glorot_uniform', lr=0.02, activation='relu', h1=800, h2=800, loss='categorical_crossentropy'):
# create model
model = Sequential()
model.add(Dense(h1, input_dim=num_pixels, activation=activation, kernel_initializer=initial, bias_initializer='zeros'))
model.add(Dense(h2, activation=activation, kernel_initializer=initial, bias_initializer='zeros'))
model.add(Dense(num_classes,activation='softmax',kernel_initializer=initial, bias_initializer='zeros'))
#Check is custom callBack class
if callable(loss) and isinstance(loss(),Callback):
  loss=loss(model.get_weights())

# Compile model
sgd = optimizers.SGD(lr=lr)
model.compile(loss=loss, optimizer=sgd, metrics=['accuracy'])
return model

model = create_model(num_pixels, num_classes, loss=L2Reg)

Like @airalcorn2 noted above RankNet can be implemented w/ vanilla binary cross entropy in Keras. See my example: http://www.eggie5.com/130-learning-to-rank-siamese-network-pairwise-data

@indraforyou @fchollet in the loss, you take K.mean on axis=-1. This mean is taken across what?

@indraforyou @fchollet in the loss, you take K.mean on axis=-1. This mean is taken across what?

It means you sum over the last axis

@xiaoleihuang  Did you solve your issue? I have the same issue with you.

@indraforyou thanks for the snippet. what about losses.categorical_crossentropy in order to do the multiple classification rather than binary crossentropy. Thanks.

This issue is the only thing that is keeping me from switching from low-level tensorflow to keras. But I see that upcoming tf versions will move to keras anyway, so I'm looking for a way to implement complex models without keras assuming I'm doing plain classification (like wgan, or Gans that uses other networks in their loss, etc).
I found this article that could be helpful to some of you:
https://towardsdatascience.com/advanced-keras-constructing-complex-custom-losses-and-metrics-c07ca130a618
Basically you wrap your loss(true, pred) function in a function with an arbitrary number of parameters (which I suppose they may be tensors or whatever you want) and return a loss with the required signature.
I can't understand why keras focuses their api only on "classical" classification problems: Just think of a WGAN discriminator which has an unbounded output and you try to maximize that. In the standard gan formulation the target would be either zero or one, but what would be the target in the wgan case?
I'm sure that there will be a workaround, but I cannot see why complicating things only to have a train "black box" function with a simple signature


Porting existing Helm Charts to Ansible Operator

Feature Request
I have an issue, where a customer wants to use operator-SDK ansible operator and port their existing helm charts into this operator.
Do you have any plan to include this kind of ability within the SDK to convert charts into ansible or do you have suggestions or tools on how to do this?
My initial thought was ansible understands jinja2 templates and it be should straight forward task to use a go lang tool to parse helm charts and convert them into templates.
But then I ran into this problem of parsing  _helper.tpl user-defined function and helm functions etc.
Describe the solution you'd like
Like to have a tool to do this or any expert advice on how to implement this?

Hi, @joelanford and @fabianvf could you please give a hand in this one. He asked help and I suggested raise the issue. I think you both will have better insight over it.

@aneeshkp We don't plan to provide features in the SDK to migrate helm charts to ansible roles/playbooks.  One option may be to use ansible's helm module as a starting point.
One problem you would run into with converting Helm templates is that many of them use sprig template functions  that would have to be ported or translated to ansible jinja2 template functions.

Thanks, @joelanford , The goal is to move all the helm charts into ansible operator so they can be part of the operator catalog, managed by OLM,  So using helm module with pure ansible won't help I think.  As you said, we need to build a solution to support sprig function in ansible via jinja2 template functions.

@aneeshkp Maybe I'm not understanding correctly, but there shouldn't be any reason that using the ansible operator with the helm module or using the helm operator directly would prevent the operator from being included in the operator catalog and managed by OLM.

@joelanford , One of the main reason is helm charts based operator maturity level is, install and upgrades only and ansible operator gives more capabilities and I will let @jsm84 update more about the business decisions.
Q? So  if I use ansible helm modules, can I still get the same capabilities as ansible operators?

@joelanford I was asked to chime in here, so please pardon if I sound like I'm on a soap box. I agree that OLM/operator catalog listing wouldn't be affected by using the helm module in ansible. The issue with using the helm module as part of an automated conversion tool (from helm to ansible) is simply the redundancy. IMO, it defeats the purpose of conversion having go code, that calls ansible code, that calls a helm chart by using the ansible helm module. Especially when helm operator does the same thing without using ansible as a shim.
What we want to enable partners to do, is to migrate simply from helm to native ansible, to enable them to further develop the complexity of what their operator can do versus with helm alone. IIRC, the majority of certified operators are helm-operators, and they chose that development workflow for the ease of transition. Helm charts are relatively easy for devops teams to write and understand, and most partners already have helm charts. Go code has a much higher learning curve versus ansible, and it seems that most of our partners don't have the skillset required for Go. We want a greater number of quality certified operators in our catalog, and I feel that such a tool would do wonders to help us achieve that.

One of the main reason is helm charts based operator maturity level is, install and upgrades only and ansible operator gives more capabilities

That is definitely true. If you're looking to add some of the higher level maturity features, then you would need to move to ansible or Go.

Q? So if I use ansible helm modules, can I still get the same capabilities as ansible operators?

Yes, using an ansible operator would enable you to add more logic around the helm lifecycle. The caveat is that if you need fine-grained control of the rollout of what's in the helm release, you probably won't be able to achieve that as easily since helm doesn't have that level of flexibility.
I'm not specifically aware of any ansible-based operators that use the helm module, so I don't know if others have been successful doing something like that.
If you're looking to go all in on an ansible-based operator, I would probably suggest translating the templates to jinja2 and fully embracing the ansible-operator.
Also, @fabianvf is our resident ansible export and may be able to give you more specific tips or tricks to make the transition easier.

Q? So if I use ansible helm modules, can I still get the same capabilities as ansible operators?

Yes, using an ansible operator would enable you to add more logic around the helm lifecycle. The caveat is that if you need fine-grained control of the rollout of what's in the helm release, you probably won't be able to achieve that as easily since helm doesn't have that level of flexibility.
I'm not specifically aware of any ansible-based operators that use the helm module, so I don't know if others have been successful doing something like that.

Just a note, the helm module in Ansible core is unmaintained/deprecated and will soon be removed, but it is going to be replaced with modules that ship in the Kubernetes Ansible collection. If you want to follow/try out that work the PR is here: https://github.com/ansible-collections/kubernetes/pull/61
Making use of these modules would definitely allow you to add functionality beyond install/upgrade even without porting all the Helm templates to native Ansible. I would probably recommend starting here, and transitioning pieces out of Helm and into Ansible over time (if possible).

If you're looking to go all in on an ansible-based operator, I would probably suggest translating the templates to jinja2 and fully embracing the ansible-operator.

:+1:, Unfortunately I don't know of anyone specifically who has ported a complex Helm chart to Ansible (though they are out there), and as far as I am aware we don't have tooling or guidance to help with that currently. I'll reach out to a few people and see if I can find some more helpful information.

Making use of these modules would definitely allow you to add functionality beyond install/upgrade even without porting all the Helm templates to native Ansible. I would probably recommend starting here, and transitioning pieces out of Helm and into Ansible over time (if possible).

I agree. Using the 'helm' module is a quick fix/transition to Ansible, but it won't suffice for long and is not the end state you'd want to remain in.

👍, Unfortunately I don't know of anyone specifically who has ported a complex Helm chart to Ansible (though they are out there), and as far as I am aware we don't have tooling or guidance to help with that currently. I'll reach out to a few people and see if I can find some more helpful information.

Unfortunately @jsm84 this is not something I am aware exists either though it is on my list of things to develop. I've done a preliminary comparison of helm to (pure) ansible and I don't think a tool to automatic convert one to the other is possible. While similar in concept their operating models are different enough to make the logic too significant to be worth the effort assuming it's even possible.
I'd be interested in hearing what you have in mind. Contact me directly and we can discuss.

@tima I will send you an email with a link to a google doc, where we can discuss the approach we have in mind and see if its feasible solution.
@fabianvf  I would like to try helm_cli  modules from the PR  you posted, Do you have any link to readme document on how to use it?

@aneeshkp https://github.com/ansible-collections/kubernetes/pull/61

@aneeshkp There are now helm modules included in the community.kubernetes Ansible collection, I recommend using those. https://galaxy.ansible.com/community/kubernetes

In a project, we have some upstream Helm charts to leverage (rather than reinvent everything) when developing Ansible based operators. What we did was to materialize the charts into k8s manifests using helm template conversion. When then manipulate the converted manifests as if we wrote them.

Thanks @tengqm @fabianvf @tima . I will try this out with some existing templates, this is very exciting .  Thanks again

@tengqm .In your example,  the variables will stay in . Values file, but still able to override via CR Spec and ansible default, right?

@aneeshkp can be overridden by CR spec. that is for sure. variables have precedence orders.


cube-ctl: don't match on substrings

V2
Used the same method as the other instances.

Attempting to delete a container named 'deb' while a container named
'debian' is running will result in
[INFO] container deb is running, it must be stopped before deleting
When comparing the container name to the list of running containers we
are matching when the container name is a substring of another
container in the list. We could make use of bash string matching to
avoid this but so far we have avoid using bash only constructs. So we
opt to use the same technique used elsewhere already in the script.
Signed-off-by: Mark Asselstine<EMAIL_ADDRESS>

merged


Who is using the pq feature downstream?

I notice the hpke_pq dependency is used to support the xyber768d00 draft which appears to have expired.
I'm using ohttp clients in an application where secp256k1 is available, and I'm in the process of updating hpke to support that k256 curve. However, hpke_pq does not seem to be maintained therefore makes it difficult to update hpke. Are there long-term plans to support hpke_pq in this crate or migrate xyber768d00 to the hpke crate? If not, would removing the dependency and feature cause downstream problems?
I'd like to contribute to this crate's stability which would be advanced by depending on only versioned crates published to crates.io.

That feature is - as you note - not one that is ever likely to get more support.  The IETF is still working out what to do with the PQ transition in HPKE.  Once that is a little more stable, I expect that the core HPKE crate will pick up support.
But nor would a secp256k1 dependency be likely to get support.  You might get the code points, but the Koblitz curves are out of fashion nowadays.


Add support for Lexus NX 300h 2018

Tested on RHD Lexus NX 300h 2018.

Tests are currently failing, can you investigate?

@geohot fixed. The test passes.