CLOUDSTACK-10328: Add Secondary IPv6 address through API

This PR allows the addition of IPv6 address to the secondary NIC through API. It was tested with the basic and the advanced network.
Some use cases are illustrated with the following screenshots:

the given IP address is checked in the UI :

it acquires multiple IP addresses:

fails to acquire an allocated IP:

releases the IP addresses:

Description

Types of changes

[ ] Breaking change (fix or feature that would cause existing functionality to change)
[x] New feature (non-breaking change which adds functionality)
[ ] Bug fix (non-breaking change which fixes an issue)
[ ] Enhancement (improves an existing feature and functionality)
[ ] Cleanup (Code refactoring and cleanup, that may add test cases)

GitHub Issue/PRs

Screenshots (if appropriate):
How Has This Been Tested?

Checklist:

[x] I have read the CONTRIBUTING document.
[x] My code follows the code style of this project.
[x] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
Testing
[x] I have added tests to cover my changes.
[ ] All relevant new and existing integration tests have passed.
[ ] A full integration testsuite with all test that can run on my environment has passed.

@GabrielBrascher:
Unapproved licenses:
  server/src/test/java/com/cloud/network/Ipv6AddressManagerTest.java

Would you mind fixing this?

@rafaelweingartner @rhtyd the Travis is ok now, fixed the missing Apache license.

@borisstoyanov @rafaelweingartner I updated the code enhancing documentation and unit tests.
@borisstoyanov the added methods are covered with unit tests, for now, adding Marvin would make this PR too big (we don't have a code base for IPv6 Marvin tests). However, it might be interesting to prepare a PR in the future to cover all CloudStack IPv6 actions with Marvin tests.

@GabrielBrascher is this only to KVM?

@borisstoyanov I did not make me clear, sorry. The code is fully covered with JUnit tests, that means that any added method has been tested with different entries and the expected behavior have been asserted. I have been testing this feature for advanced and basic networks and it is stable. I think that a future PR with Continuous Integration testing this and other actions with IPv6 would be great; however, for now, we are ok and covered with Unit tests.
@rafaelweingartner this PR adds a function to the API that should be ok for any hypervisor. However, I have not been testing it with multiple hypervisors. The PR #2028 from @wido allows to have multiple IPv6 addresses per NIC as well as it ensures that IPv6 will work within the security groups scope; the PR #2028 tackles not only KVM (at least KVM and XenServer are covered in that PR).

@blueorangutan package

@borisstoyanov a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✔centos6 ✔centos7 ✔debian.

Sure @borisstoyanov! I will rebase it against the latest master, thanks :+1:

@borisstoyanov Rebased against latest master.

@blueorangutan package

@borisstoyanov a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✔centos6 ✔centos7 ✔debian.


cannot find batchID in material editor

where can i access 3dTile's batchID like cesium.js

This is not yet available, but we're working on it. See CesiumGS/cesium-native#71 and #9.


Provide an option to clone configuration

Hey,
I'd like to compare two exact schemas with liquibase but mariadb doesn't support catalog yet. It would be nice to have an option to create a second instance on different port easily based on existing config.
I'd expect something like
DBConfigurationBuilder.newBuilder(existingConfiguration)
  .setPort(0)
  .setDataDir("/different/from/previous")
  .setTempDir("/again/different/from/previous")
  .build()

Would that make sense? Any other idea?
Thanks

@bilak such a newBuilder(DBConfigurationBuilder existing) method would make a lot of sense to me, yeah!
I don't really have the time to add such enhancements myself, but am happy to review yours.
If you would like to raise a PR proposing this, I would be happy to review and merge it - go for it!


error: failed to parse BibLaTeX file (../zotero-autoexport.bib:28: unknown editor type)

Error:
error: failed to parse BibLaTeX file (../zotero-autoexport.bib:28: unknown editor type)

Offending biblatex entry, as generated by zotero-better-bibtex
@video{acerolaThisDifferenceGaussians2022,
  entrysubtype = {video},
  title = {This Is the {{Difference}} of {{Gaussians}}},
  editor = {{Acerola}},
  editortype = {director},
  date = {2022-12-24},
  url = {https://www.youtube.com/watch?v=5EuYKEvugLU},
  urldate = {2023-09-16},
  abstract = {In the realm of image based edge detection, aesthetically pleasing edges are hard to come by. But, what if we could get stylized edge lines by just blurring our image twice? Download my GShade shader pack! https://github.com/GarrettGunnell/Ace... Patreon: https://www.patreon.com/acerola\_t Twitter: https://twitter.com/Acerola\_t Twitch: https://www.twitch.tv/acerola\_t Code: https://github.com/GarrettGunnell/Pos... Join My Discord Server! https://discord.gg/FxGQvbfm6Y References: https://users.cs.northwestern.edu/\textasciitilde sc... Music: Sandgem Town (Day) - Pokemon Diamond OST Joy - Persona 3 During The Test - Persona 3 Afternoon Break - Persona 3 This Mysterious Feeling - Persona 3 Muscle Blues - Persona 4 Like A Dream Come True - Persona 4 Soft Oversight - Sonny Boy OST Summer Storm - Sonny Boy OST ソウとセイジ - Sonny Boy OST arrow in thumbnail drawn by thlurp Thanks for watching! This video is dedicated to my friend, Alotryx. \#acerola \#graphics \#gamedev \#unity3d \#graphics \#shaders}
}

Removing the  editor = ... line fixes the issue.
Desired solution

ignore or dump all unrecognized entries into a hashmap and raise a warning,

and optionally

handle the editor tag for @video

Hello @pbsds, the library follows strictly the implementation of biblatex. The listed editor types are "editor, compiler, founder, continuator, redactor, reviser, collaborator, organizer." Unfortunately, biblatex errors on unknown editortypes atm.
@reknih, do you have an opinion on how to proceed? Should we add support arbitrary editortypes? Or raise a warning instead of an error?
e.g., Chicago 17th has "conductor, director, producer, and, oddly, none"
Looking at biblatex-chicago, seems like it accepts arbitrary editortypes

The 17th edition (14.263) also seems to favor, in some circumstances, using strings to identify individual performers, e.g., “vocalist” or “pianist,” so even though there’s no \bibstring associated with these types you can now provide them, or anything else you need, in whatever form (“vocalist” or “sung by”) suits your citation.

Some examples bib from biblatex-chicago: [2] [3]
[1] https://github.com/retorquere/zotero-better-bibtex/issues/365#issuecomment-1904427123
[2] https://mirrors.ircam.fr/pub/CTAN/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/notes-test.bib
[3] https://mirrors.ircam.fr/pub/CTAN/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/dates-test.bib

I just ran into this same issue and would note that I believe the Zotero citation management tool is set up to use director by default for video references. I can use contributor but this may be a limitations that other Zotero users will keep running into.

Hello, I also ran into the issue, I had to omit the field at export through the Better BibTex plugin.


Add completion for httpie

HTTPie is a command line HTTP client, a user-friendly cURL replacement.
http://httpie.org

Can you include a README file in another PR?


Enable Dependabot

Dependabot could be enabled for this repository. Please enable it by merging this pull request so that we can keep our dependencies up to date and secure.

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

Project coverage is 100.00%. Comparing base (89d1990) to head (280dd41).

Additional details and impacted files
@@            Coverage Diff            @@
##              main      #701   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           90        90
  Lines         2459      2459
  Branches       239       239
=========================================
  Hits          2459      2459

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


Revert "Make ad_util.zero a class that carries avals (similar to Unde…

…finedPrimal) (#3222)"
This reverts commit e36c72b9839efe8a98a75d93f87661f55b585ddb, reversing
changes made to 96d72fca5688524222c1c2da8e9994af3c7bb527.
This is due to failures in google3 (see discussion in chat)

Thanks @gnecula, though I think we successfully fixed forward so we don't need to merge this after all.


Try to set MediaPlayer - error Attempt to invoke virtual method

I am trying to connect the visualiser with a music player from MainActivity.java.
The visualiser is set in a fragment and all works well when I call it showing it in the activity however, overtime I try to add the MusicPlayer i get the error:
java.lang.RuntimeException: Unable to start activity ComponentInfo{example.it/example.it.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.media.MediaPlayer.getCurrentPosition()' on a null object reference
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3253)
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349)
                      at android.app.ActivityThread.access$1100(ActivityThread.java:221)
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
                      at android.os.Handler.dispatchMessage(Handler.java:102)
                      at android.os.Looper.loop(Looper.java:158)
                      at android.app.ActivityThread.main(ActivityThread.java:7224)
                      at java.lang.reflect.Method.invoke(Native Method)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
                   Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.media.MediaPlayer.getCurrentPosition()' on a null object reference
                      at example.it.AudioVisualizationFragment.onViewCreated(AudioVisualizationFragment.java:60)
                      at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1127)
                      at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1290)
                      at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:801)
                      at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1677)
                      at android.support.v4.app.FragmentController.execPendingActions(FragmentController.java:388)
                      at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:604)
                      at example.it.MainActivity.onStart(MainActivity.java:1210)

I have called the music player from MusicService.java
AudioVisualizationFragment.java
audioVisualization = (AudioVisualization) view;
        audioVisualization.linkTo(DbmHandler.Factory.newVisualizerHandler(getContext(), MusicService.mPlayer));

MainActivity.java
private void openFragment() {
        getSupportFragmentManager().beginTransaction()
                .replace(R.id.audio_player_lyt, AudioVisualizationFragment.newInstance())
                .commit();

    }

How could I solve this error?

According to the logs, your MediaPlayer instance equals null. Check your AudioVisualizationFragment on line 60. This crash doesn't related to library.
P.S. Do not use static variables for holding a MediaPlayer instance.

Thank you for your quick replay. I understand that the value is null but If I don't use static variables how could I send the audio from mediaPlayer to the fragment?

@salvonos. MediaPlayer is not required for visualizer handler. You can pass audio session ID instead.  There are several ways to communicate with service:

bind to service and retrieve instance of MediaPlayer or audioSessionId;
use BroadcastReceiver to get audioSessionId;

Thanks I will try this. I have also tried to use "0" as session ID which should corresponds to the audio output mix? However, not animation is received

I have tried almost everything but cannot work it out.
I have tried to start the media player direct into the fragment but the visualiser is not animating:
mediaPlayer = MediaPlayer.create(getContext(), R.raw.la_cura);
        mediaPlayer.start();
        audioVisualization.linkTo(DbmHandler.Factory.newVisualizerHandler(context, mediaPlayer));

Have you checked Troubleshooting section in Readme? It's possible that visualizer will not work on some devices. What device are you using?

I am using Samsung Galaxy S5. I can see the visualiser but not animating


Make sure the docker deploy command works / exists for both apps

I haven't been able to run this. I get this error:
> docker-compose -f hs-abci-examples/simple-storage/docker-compose.yaml up --build
Building simple_storage
Step 1/13 : FROM haskell:8
 ---> 54259304dd0b
Step 2/13 : RUN apt-get update && apt-get install --assume-yes protobuf-compiler
 ---> Using cache
 ---> 9bf5078b623e
Step 3/13 : WORKDIR /project
 ---> Using cache
 ---> abff7ac3cb82
Step 4/13 : COPY ./stack.yaml /project
 ---> Using cache
 ---> a04797da993d
Step 5/13 : RUN stack setup && stack exec -- ghc --version
 ---> Running in 130195bb0188
/project/hs-abci-types/: getDirectoryContents:openDirStream: does not exist (No such file or directory)

I don't remember the reason why this line happens before the COPY statements.

These both seem to work locally for me, however, it does rebuild GHC everytime you make any change to either project.

Spoke with Ilya.
This seems to be a limitation with stack and macOS. The main limiting factor is the fact that the root stack.yaml file lists packages, corresponding to the sub-hs-abci projects.
TL;DR, there isn't a simple way to avoid rebuilding GHC, so it's clear that this was indeed the intention.


Examples: load BPMN content from external file

With introduction of #14, #15 and #16 , the BPMN diagrams content are inline in the javascript code which make it quite long and disturb the user code reading as we mentioned in https://github.com/process-analytics/bpmn-visualization-js/issues/433.
Find a way to put the BPMN content in a file and make the examples load this BPMN file (js script loaded as module + use import directive to load the file content?)

The BPMN diagrams are now retrieved with javascript functions stored in dedicated files.

We want the examples to work without a dev server, using file browsing. So we cannot use the fetch API to retrieve the diagrams.
See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS/Errors/CORSRequestNotHttp
If we decide to drop the local file support browsing we will be able to put the bpmn content out of the js code, in dedicated files.


step3: process.env is not evaluting

step3:
src/index.js:
const client = new ApolloClient({
uri: 'https://api.github.com/graphql',
headers: {
authorization: `Bearer ${process.env.REACT_APP_GITHUB_PERSONAL_ACCESS_TOKEN}`,
},
});
and
.env.local:
REACT_APP_GITHUB_PERSONAL_ACCESS_TOKEN=XXXXXXXX
Error! Network error: Response not successful: Received status code 401
but directly,
const client = new ApolloClient({
uri: 'https://api.github.com/graphql',
headers: {
authorization: `Bearer XXXXXXX`,
},
});
works fine.  Any idea?

Hmm that's strange, everything looks correct to me


Save an image to client temp folder, shows GDI+ error

I am developing an application and everything works fine for development server but these codes don not work on remote server, application hosted at www.*****.org
Application flow :
I have 2 jpeg files in server images folder(inside the application). What the code does is takes the 1st image, writes on it(using system.drawing) and saves to client temp folder. Again, that saved image is retrieved from clients temp folder and with a pdf writer it writes that image to pdf.
Below is the provided code for opening, writing and saving to clients temp folder
//Original Image.jpg path
Bitmap bitMapImage = new System.Drawing.Bitmap(Server.MapPath("~/images /NextflexAssemblyCustomerFinal.jpg"));
 Graphics graphicImage = Graphics.FromImage(bitMapImage);
 var resTemp = Path.GetTempPath();
 using (MemoryStream memoryt = new MemoryStream())
 {
using (FileStream fs = new FileStream(resTemp, FileMode.Create, FileAccess.ReadWrite))
{
///All drawing are done here
 bitMapImage.Save((resTemp + @"\test.jpg"), ImageFormat.Jpeg);  //Save path to clients machine
byte[] bytes = memoryt.ToArray();                      fs.Write(bytes, 0, bytes.Length);                     }                 }
I tried saving to application temp folder, but it automatically exclude that newly created image from application and throws an file not found error. #7486
Can anyone look into this code, I might have done some mistake.
Thanks.

@M1991 can you provide a sample project and detailed steps to reproduce this issue?

How will the stuff work : //Comments on line-end
I have a sample image in server images folder. I need to edit that image and save a copy (without modifying the original) to server temp folder(Error occurs here) . Now, the recently saved image needs to be converted to pdf and attach to a mail (this parts works fine)
var resTemp = Server.MapPath("~/Temp/" + User.Identity.Name);  //  Destination image in server temp folder
MemoryStream memoryt = new MemoryStream();
using (FileStream fs = new FileStream(resTemp, FileMode.Create, FileAccess.ReadWrite))`
    {
        Bitmap bitMapImage = new System.Drawing.Bitmap(Server.MapPath("~/images/OringinalImage.jpg"));   //Oringinal source image, not to be modified
        Graphics graphicImage = Graphics.FromImage(bitMapImage);
        bitMapImage.RotateFlip(RotateFlipType.Rotate90FlipNone);
        graphicImage.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
        graphicImage.DrawString(DateTime.Today.ToShortDateString(), new System.Drawing.Font("Century Gothic", 12, FontStyle.Regular), SystemBrushes.WindowText, new Point(1260, 30));  //Writing to the image
        graphicImage.DrawString(dDtls.drawPartno.ToString(), new System.Drawing.Font("Century Gothic", 12, FontStyle.Regular), SystemBrushes.WindowText, new Point(800, 30));  //Writing to the image
        bitMapImage.Save(resTemp, ImageFormat.Jpeg);  // Unable to save, GDI+ error throws here
        byte[] bytes = memoryt.ToArray();
        fs.Write(bytes, 0, bytes.Length);
  }

Error Trace :

Will this be fine ? Please comment. Thanks for going through.

Hi. It looks like this is not a question regarding ASP.NET Core MVC. While we do our best to look through all the issues filed here, to get a faster response we suggest posting your questions to StackOverflow using the asp.net-core-mvc tag.


Coinremitter - BCH API added

Your website footer currently lists Bitcoin Gold (?) but not BCH, which is dubious. Please fix before we can consider.

Hello, We have updated the footer. Please check and let us know if you have any doubts


Added Kahramanmaras TOBB Fen Lisesi.

@M-Enes Please provide us with:

the school official website URL
the school street address, including city and country
an URL of a page on the official website where the school offers an IT-related long-term (>1 year) course
a proof, which shows that the school recognizes the domain you are submitting as an official email domain for the students.

You can provide us with any of the following as the proof:

A copy of instruction (a hard-copy or electronic one) given to you by the school that tells you to use an email address in this email domain
An URL of a page at the official school website that says that students use this email domain
A reference to a recognized journal where an article was published by someone from the school, with explicit affiliation to the school, and e-mail address from the email domain
A WHOIS data that link the email domain to the school somehow
A copy of official letter from the school representative saying that the school provides e-mail addresses in this domain to the students
Anything else that can prove this fact in similar way, i.e. can be verified independently.

@M-Enes You might miss my previous comment. Please react.

@M-Enes I am sorry, this request remains unanswered for a while. I have to close it without merging. Please reopen and comment if you have an update regarding the aforementioned issue. Thank you for your understanding!

I am sorry for a late answer. I send necessary infos immediately.
27 Nis 2021 Sal 18:23 tarihinde Philip Torchinsky @.***>
şunu yazdı:

@M-Enes https://github.com/M-Enes I am sorry, this request remains
unanswered for a while. I have to close it without merging. Please reopen
and comment if you have an update regarding the aforementioned issue. Thank
you for your understanding!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/JetBrains/swot/pull/11291#issuecomment-827695543, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AO7OAOOPROBI5OD7TZI3U4LTK3JGZANCNFSM42WZXWFQ
.

Kahramanmaras Tobb Fen Lisesi is a high school in Kahramanmaras, Turkey.
Kahramanmaras Tobb Fen Lisesi Website

The problem is that the domain kmarastobbfenlisesi.net is not mentioned anywhere at https://tobbfenlise.meb.k12.tr/

@philipto in Turkey, .meb.k12.tr domain is a necessary for a high school website. So, student e-mail address domains different than .meb.k12.tr. I hope you will understand me.

@M-Enes Yes, I understand you. However we cannot add a domain to this repository without any evidence confirming that the school recognizes the domain as valid for their students. If you don't have the evidence, please apply with official document at https://www.jetbrains.com/shop/eform/students (OFFICIAL DOCUMENT tab).

I understand. I apply my official document. Thanks @philipto. Have a good day.


AzureData -> AzureCore (refactor): defaultHTTPHeaders + user agent

[x] This will likely be dependent on #13
[x] defaultHTTPHeaders + user agent should be moved (and/or replaced/refactored) to AzureCore
[x] x-ms-version should be removed from this code
[x] It's currently hard-coded to get the framework's infoDictionary using DocumentClient.self. It will need to be able to pass in a class to get the bundle or possibly the bundle itself, or even just the calling frameworks' infoDictionary
[x] Creating the user-agent is fairly expensive, so it should only be created once and cached
[x] Update DocumentClient to use functionality AzureCore adding x-ms-version here

implemented in cb53f93d094e651056af514b272b76c76fe8d2b1


Feature Request: Editing Waypoints

When mapping out a path, you may want to alter or change a waypoint without clearing the entire list. Make the list selectable and re-populate the "Add" boxes with the selected values (change the "Add" button to "Update") and return to normal when the update is committed.

@bdaroz Thank you for the request. I really like the idea and will get that implemented within a few days.

@bdaroz I have added your requested feature. Thanks for the feedback!


[Bug]: No metrics exposed at /metrics with 0.5.4 and metrics completely unavailable

Your current environment
Collecting environment information...
PyTorch version: 2.4.0+cu121
Is debug build: False
CUDA used to build PyTorch: 12.1
ROCM used to build PyTorch: N/A

OS: Ubuntu 20.04.6 LTS (x86_64)
GCC version: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0
Clang version: Could not collect
CMake version: version 3.30.2
Libc version: glibc-2.31

Python version: 3.10.14 (main, Apr  6 2024, 18:45:05) [GCC 9.4.0] (64-bit runtime)
Python platform: Linux-3.10.0-1160.118.1.el7.x86_64-x86_64-with-glibc2.31
Is CUDA available: True
CUDA runtime version: Could not collect
CUDA_MODULE_LOADING set to: LAZY
GPU models and configuration: GPU 0: NVIDIA A100-SXM4-80GB
Nvidia driver version: 535.183.01
cuDNN version: Could not collect
HIP runtime version: N/A
MIOpen runtime version: N/A
Is XNNPACK available: True

CPU:
Architecture:                       x86_64
CPU op-mode(s):                     32-bit, 64-bit
Byte Order:                         Little Endian
Address sizes:                      46 bits physical, 48 bits virtual
CPU(s):                             96
On-line CPU(s) list:                0-95
Thread(s) per core:                 2
Core(s) per socket:                 24
Socket(s):                          2
NUMA node(s):                       1
Vendor ID:                          GenuineIntel
CPU family:                         6
Model:                              106
Model name:                         Intel(R) Xeon(R) Gold 6342 CPU @ 2.80GHz
Stepping:                           6
CPU MHz:                            2800.000
BogoMIPS:                           5600.08
Hypervisor vendor:                  Xen
Virtualization type:                full
L1d cache:                          2.3 MiB
L1i cache:                          1.5 MiB
L2 cache:                           60 MiB
L3 cache:                           1.7 GiB
NUMA node0 CPU(s):                  0-95
Vulnerability Gather data sampling: Not affected
Vulnerability Itlb multihit:        Not affected
Vulnerability L1tf:                 Not affected
Vulnerability Mds:                  Not affected
Vulnerability Meltdown:             Not affected
Vulnerability Mmio stale data:      Mitigation; Clear CPU buffers; SMT Host state unknown
Vulnerability Retbleed:             Not affected
Vulnerability Spec store bypass:    Mitigation; Speculative Store Bypass disabled via prctl and seccomp
Vulnerability Spectre v1:           Mitigation; Load fences, usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2:           Mitigation; Enhanced IBRS, IBPB
Vulnerability Srbds:                Not affected
Vulnerability Tsx async abort:      Not affected
Flags:                              fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush acpi mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single ssbd rsb_ctxsw ibrs ibpb stibp ibrs_enhanced fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 umip pku ospke gfni vaes vpclmulqdq md_clear spec_ctrl intel_stibp flush_l1d arch_capabilities

Versions of relevant libraries:
[pip3] flashinfer==0.1.2+cu121torch2.4
[pip3] numpy==1.26.4
[pip3] nvidia-nccl-cu12==2.20.5
[pip3] pyzmq==26.1.0
[pip3] torch==2.4.0
[pip3] torchvision==0.19.0
[pip3] transformers==4.43.4
[pip3] triton==3.0.0
[conda] Could not collect
ROCM Version: Could not collect
Neuron SDK Version: N/A
vLLM Version: 0.5.4
vLLM Build Flags:
CUDA Archs: Not Set; ROCm: Disabled; Neuron: Disabled
GPU Topology:
GPU0    CPU Affinity    NUMA Affinity   GPU NUMA ID
GPU0     X      0-95    0               N/A

Legend:

  X    = Self
  SYS  = Connection traversing PCIe as well as the SMP interconnect between NUMA nodes (e.g., QPI/UPI)
  NODE = Connection traversing PCIe as well as the interconnect between PCIe Host Bridges within a NUMA node
  PHB  = Connection traversing PCIe as well as a PCIe Host Bridge (typically the CPU)
  PXB  = Connection traversing multiple PCIe bridges (without traversing the PCIe Host Bridge)
  PIX  = Connection traversing at most a single PCIe bridge
  NV#  = Connection traversing a bonded set of # NVLinks

🐛 Describe the bug
v0.5.4 docker release still missing /metrics endpoint
I try use main branch to build docker image,The metrics information has become completely unavailable,no longer contains any statistical information related to the model.
# HELP python_gc_objects_collected_total Objects collected during gc
# TYPE python_gc_objects_collected_total counter
python_gc_objects_collected_total{generation="0"} 7313.0
python_gc_objects_collected_total{generation="1"} 5988.0
python_gc_objects_collected_total{generation="2"} 45.0
# HELP python_gc_objects_uncollectable_total Uncollectable objects found during GC
# TYPE python_gc_objects_uncollectable_total counter
python_gc_objects_uncollectable_total{generation="0"} 0.0
python_gc_objects_uncollectable_total{generation="1"} 0.0
python_gc_objects_uncollectable_total{generation="2"} 0.0
# HELP python_gc_collections_total Number of times this generation was collected
# TYPE python_gc_collections_total counter
python_gc_collections_total{generation="0"} 922.0
python_gc_collections_total{generation="1"} 83.0
python_gc_collections_total{generation="2"} 6.0
# HELP python_info Python platform information
# TYPE python_info gauge
python_info{implementation="CPython",major="3",minor="10",patchlevel="14",version="3.10.14"} 1.0
# HELP process_virtual_memory_bytes Virtual memory size in bytes.
# TYPE process_virtual_memory_bytes gauge
process_virtual_memory_bytes 1.3022793728e+010
# HELP process_resident_memory_bytes Resident memory size in bytes.
# TYPE process_resident_memory_bytes gauge
process_resident_memory_bytes 7.00747776e+08
# HELP process_start_time_seconds Start time of the process since unix epoch in seconds.
# TYPE process_start_time_seconds gauge
process_start_time_seconds 1.72291887821e+09
# HELP process_cpu_seconds_total Total user and system CPU time spent in seconds.
# TYPE process_cpu_seconds_total counter
process_cpu_seconds_total 18.240000000000002
# HELP process_open_fds Number of open file descriptors.
# TYPE process_open_fds gauge
process_open_fds 22.0
# HELP process_max_fds Maximum number of open file descriptors.
# TYPE process_max_fds gauge
process_max_fds 1.048576e+06

also experiencing this here.

I have the same issue. No metrics forwarded to datadog.
The only metrics that are exposed are python-specific metrics.
`# HELP python_gc_objects_collected_total Objects collected during gc
TYPE python_gc_objects_collected_total counter
python_gc_objects_collected_total{generation="0"} 9178.0
python_gc_objects_collected_total{generation="1"} 4566.0
python_gc_objects_collected_total{generation="2"} 1294.0
HELP python_gc_objects_uncollectable_total Uncollectable objects found during GC
TYPE python_gc_objects_uncollectable_total counter
python_gc_objects_uncollectable_total{generation="0"} 0.0
python_gc_objects_uncollectable_total{generation="1"} 0.0
python_gc_objects_uncollectable_total{generation="2"} 0.0
HELP python_gc_collections_total Number of times this generation was collected
TYPE python_gc_collections_total counter
python_gc_collections_total{generation="0"} 2574.0
python_gc_collections_total{generation="1"} 234.0
python_gc_collections_total{generation="2"} 11.0
HELP python_info Python platform information
TYPE python_info gauge
python_info{implementation="CPython",major="3",minor="10",patchlevel="14",version="3.10.14"} 1.0
HELP process_virtual_memory_bytes Virtual memory size in bytes.
TYPE process_virtual_memory_bytes gauge
process_virtual_memory_bytes 9.294987264e+09
HELP process_resident_memory_bytes Resident memory size in bytes.
TYPE process_resident_memory_bytes gauge
process_resident_memory_bytes 8.93054976e+08
HELP process_start_time_seconds Start time of the process since unix epoch in seconds.
TYPE process_start_time_seconds gauge
process_start_time_seconds 1.72293574347e+09
HELP process_cpu_seconds_total Total user and system CPU time spent in seconds.
TYPE process_cpu_seconds_total counter
process_cpu_seconds_total 16.53
HELP process_open_fds Number of open file descriptors.
TYPE process_open_fds gauge
process_open_fds 21.0
HELP process_max_fds Maximum number of open file descriptors.
TYPE process_max_fds gauge
process_max_fds 1.048576e+06`

Thanks for reporting this. Likely due to our recent shift to multiprocessing on the frontend. I will look into the issue today
In the meantime, can you try running with --disable-frontend-multiprocessing?

Thanks for reporting this. Likely due to our recent shift to multiprocessing on the frontend. I will look into the issue today
In the meantime, can you try running with --disable-frontend-multiprocessing?

I tried the v0.5.4 version and the docker image I made with the main branch. After adding --disable-frontend-multiprocessing, the /metrics interface became usable.

+1


nerdctl在创建容器过程中，会产生大量 /usr/local/bin/nerdctl _NERDCTL_INTERNAL_LOGGING /var/lib/nerdctl/1935db59 进程，占用大量内存

Description
nerdctl在创建容器过程中，会产生大量 /usr/local/bin/nerdctl _NERDCTL_INTERNAL_LOGGING /var/lib/nerdctl/1935db59 进程，占用大量内存
Steps to reproduce the issue

Describe the results you received and expected
不会产生这类进程： /usr/local/bin/nerdctl _NERDCTL_INTERNAL_LOGGING /var/lib/nerdctl/1935db59
因为这类进程实在是太多了，占用了大量进程
What version of nerdctl are you using?
Client:
Version:       v0.23.0
OS/Arch:       linux/amd64
Git commit:    660680b7ddfde1d38a66ec1c7f08f8d89ab92c68
buildctl:
Version:      v0.10.4
GitCommit:    a2ba6869363812a210fcc3ded6926757ab780b5f
Server:
containerd:
Version:      v1.6.8
GitCommit:    9cd3357b7fd7218e4aec3eae239db1f68a5a6ec6
runc:
Version:      1.1.4
GitCommit:    v1.1.4-0-g5fd4c4d1
Are you using a variant of nerdctl? (e.g., Rancher Desktop)
No response
Host information
No response

Would you mind describing the problem using English?

When nerdctl creates a container, a large number of /usr/local/bin/nerdctl _NERDCTL_INTERNAL_LOGGING /var/lib/nerdctl/1935db59 processes will be generated, occupying a lot of memory

At the same time, a large number of useless processes such as /usr/local/bin/containerd-shim-runc-v2 -namespace default -id 1bd8240eed267bdacf0670649908da30d6f05529a1d69f5ed1d9d8f8694e0bd7 -address /run/containerd/containerd.sock have exited.       because 1bd8240eed267bdacf0670649908da30d6f05529a1d69f5ed1d9d8f8694e0bd7 corresponding container have exited

I think it's not a bug. It's a special callback to let contained push logs to the nerdctl. See https://github.com/containerd/nerdctl/blob/master/cmd/nerdctl/run.go#L882-L895


Rust generator support?

Any plans for a Rust generator?

It's definitely something we have been exploring. Right now, the demand is still unclear and we'd love to get more customer signals on the volume of demand Rust has today.
Can you share some of the scenarios you are thinking of for Rust support?

It's definitely something we have been exploring. Right now, the demand is still unclear and we'd love to get more customer signals on the volume of demand Rust has today.
Can you share some of the scenarios you are thinking of for Rust support?

Hey @sebastienlevert ! We at Radix DLT - "The radically better user and developer experience needed for everyone to confidently use Web3 & DeFi." - are heavy users of openapi , in two levels:

Lower level: Core Node API - 8000 lines of openapi yaml schema
Higher level: Gateway API - 5000 lines of schema

But openapi generator's rust generator is broken, it fails to generate our models, mostly due to enums being wrong, so we have some various scripts which modify our openapi schema to make it work with rust, which is suboptimal.
And in our middleware crate Sargon we are soon about to consume the Gateway (higher level) API's schema, but openapi generator generates broken enums. And the script above modifying our schema was written for the lower level Core API.
So we were kind of hoping Kiota can come to the rescue! :D so now you have to tricky schemas big schemas to test against :D

Thanks for the context! We'll be taking this into consideration! Right now, it's not something that is prioritized. Though, we are happy to provide guidance if you want to participate with us building the support for Rust! Thanks!

Thanks @sebastienlevert ! I'm Head of Architecture at RDX Works, and work with @Sajjon.
Having been deep in Open API generation pains for years, we're really enthused about kiota, and the approach you're taking.
We're hoping to transition to kiota for the next major version of our generated SDKs across most of our languages.
As part of that effort, it might be possible for us to participate with building out Rust capabilities in kiota. We'd need to explore this further and I'll let you know if that's something we might be able to commit to in due course.

Sounds good and haooy to meet you! Our docs in. Adding new languages support is missing as of now but we would definitely help and guide your team. Let us know and we can start the process!

Hi everyone 👋
Joining the conversation here a bit late since I was on vacations but happy to see this issue.
You'll want to checkout #3745 and associated links as the implementation efforts and sequence will be very similar. (and Dart is the community driven language we've made the most progress with to date).

Many thanks @baywet! Just to help with trying to gauge the work, I've spent a couple of hours scoping out the work ahead. I don't suppose you might be able to double-check my assumptions and answer a few questions on how to approach implementation?
No rush from my part for replies here, if we were able to offer help, we'd still be a few months away from doing so.
Quick summary
To attempt to unify all your comments and my understanding, is this roughly right?

The first bit of work would be to start with an abstractions crate kiota-abstractions for the rust language, which would contain interfaces which the generated SDKs would use (and would include traits - i.e. rust interfaces - for request information, SerializationWriter, ParseNode, and a response adapter)
And then there is separate work on a number of areas (e.g. list of tickets for swift). Notably:

Code for generating e.g. models, clients and request builders - which statically require only the kiota-abstractions crate.
A default kiota-http Core Service implementation.
Default serialization implementations, e.g. kiota-serialization-json, kiota-serialization-http, kiota-serialization-multipart
Various authentication provider implementations

Questions:

It sounds like ideally (unlike with e.g. the dotnet implementation) all these crates would then ideally live in a singular kiota-rust monorepo? Is that still the preference? (It's fine/ideal from a rust POV).
I assume kiota-http is allowed to use some widely-used open-source http client dependency? And ditto with the serialization implementations?

Some rust-specific questions
There are a couple of things which I can foresee affecting the rust implementation, which I imagine will bite anyone integrating it for rust, and wanted to run them by you. Some of these might
Lack of inheritance
Unfortunately, not quite aligning with the design-philosophy of Kiota, the Rust language isn't object oriented. That's not necessarily an issue - we can craft vague equivalents to hierachies with enums, structs and traits. Although I think it would take a bit of work to get something which both feels nice and still covers all the generation cases.
In a separate post below, I'll dump some personal reflections/lessons from the previous Open API generator which might help anyone looking to implement these models.
But, I was wondering if you had any advice?
First, I just wanted to double-check my understanding:

It looks like there's some kind of Kiota intermediate representation CodeDom(?) which is used for generation in each language
It looks like each language has:

A refiner (e.g. Typescript), to massage the types into better types for output (e.g. typescript creates discriminated unions; Java avoids unions)
And then Writers (e.g. Java) which have:

A convention service, for customising generation
And then generators for Classes (Rust structs/Enums), Properties, Methods, etc (roughly for each code type which can be output by the refiner)

Questions
A few quick questions:

I assume we can make use of the refiner to massage the types to fit Rust a little better, before generating?
How are things tested? Are there any particularly gnarly test cases we can use to stress the edge-cases? (e.g. multi-tier inheritance, including e.g. a property bag; combinations of OneOf and AnyOf; inline objects; use of $ref and overwritten descriptions)?
I can't see any anyOf or oneOf at all in kiota-samples - am I missing them?

Auto-serialization and serde
In reference to this comment on this post:
this post

A couple of principles to keep in mind:

we don't want the generated code to depend on anything else than the abstractions to "build". (in a static type sense)
we want the generated code to be agnostic from any given serialization format/library
we want to avoid using reflection as much as possible (perf, side effects...)

This is why models implement the auto-serialization pattern (they describe how to serialize/deserialize themselves)

I really like the auto-serialization approach.
In rust, the ecosystem basically has a single standard for this - the serde crate - which is serializer/deserializer agnostic.
A quick aside on serde, compared with kiota's abstractions:

It has its own equivalent for the kiota ISerializationWriter - the serde (Serializer), and similar, and generates the auto-serialization code with macros.
On the deserialization side, the serde Deserializer uses a visitor pattern, with each type (e.g. for a struct). This is a little more generic than the IParseNode interface.
Due to the rust trait coherence rules which limit who can implement traits (think "implement interfaces"), it's very common in the rust ecosystem for any crate exposing models to add a serde crate feature. If the feature is enabled, it includes derives of serde::Serialize and serde::Deserialize on models, which allow the models to be used with any serde-compatible frameworks.

Questions

I assume it would be most aligned with kiota (and likely easiest) to generate code using ISerializationWriter and IParseNode style interfaces.
But - I wonder if it might be reasonable to:

Also have a crate kiota-serde (as part of the default implementations) which in concept acts as a bridge between ISerializationWriter and serde::Serializer and from serde::Deserialize to IParseNode (the latter might need a bit of thought). We might be able to put this bridge in the form of a kiota_serde::AsSerde(MyModel) new type wrapper.
Have an optional feature in the generated code crate which, if enabled, would add additional trait implementations to support the deserializer part of kiota-serde - if required. (I haven't given much thought about if this would be required, but my intuition says it might be).

With such an approach, this might enable users of generated models to use the models with other parts of the rust ecosystem, and also allow us to implement the default serializer libraries as using libraries like serde-json etc.

Thanks for the detailed analysis here, I'll try to reply to the questions without missing anything.

mono-repo: preferred if the language allows it and it doesn't overcomplicates CI/CD workflows definitions
which http client to use: the preferably the one offered by the platform (like HttpClient in dotnet) if any exists/it's not ancient (HttpUrlConnection in Java), or the most widely adopted but the language community that support requirements (http/2 support out of the box, MIT license or similar, middleware pipeline for retry/redirect/compression/etc... handling)
serialization implementation: same rationale applies as with http, for the form and multipart serialization make sure those library do not require any server type dependency.
CodeDom: it's a reflection of "all the elements a language agnostic client needs to have to call the API".
refiner: specializes the DOM into something more language specific to make the writers job easier, yes please use refiners to get closer to Rust "native experience".
writers: visitor DP that writes the code for all the elements in the DOM.
testing: you'll see unit tests for each element in the tests projects, there's nothing fancy besides SRP and AAA unit tests here.
no examples of anyOf/oneOf in kiota samples AFAIK as this is a subset of Microsoft Graph (which don't have those) or very simple APIs. Please note that oneOf/anyOf support is not yet implemented in TypeScript/Ruby/Swift, so don't use those for your tests/to observe how things look like.
serde: I'm not familiar at all with this, but it looks interesting. We'd like to favor alignment across languages on the serialization infrastructure as it has impacts on the different datatypes supported, which OpenAPI/JsonSchema features and version are supported etc. Do you think the "Json implementation could simply forward things to serde"? If so, I guess we'd automatically have support for xml/yaml/cbor/etc... which would be neat.

Don't hesitate if you have more questions!

Fantastic, very helpful, thanks @baywet!

We'd like to favor alignment across languages on the serialization infrastructure as it has impacts on the different datatypes supported, which OpenAPI/JsonSchema features and version are supported etc.

Indeed, that makes a lot of sense.

Do you think the "Json implementation could simply forward things to serde"? If so, I guess we'd automatically have support for xml/yaml/cbor/etc... which would be neat.

I think it might be possible to create some kind of adaptor between serde and the kiota abstractions (certainly they try to solve very similar problems) - but I haven't tried or investigated this too deeply. I think this would be the most natural way to interface the kiota abstractions into the rust ecosystem, but I imagine when the project gets to implementing, it might be possible to investigate this.

These are all rather opinionated, so could do with moving to some kind of discussion place / moving off elsewhere, when there's a separate rust repo.
Boxing
To avoid issues with large stack usage and recursive types, there will have to be some use of boxes.
Possibly the least painful place to put them is in enum variants, and Option<Box<T>> - as this prevents the two biggest issues - recursive types and large enum variants. And the size of the largest struct then is bounded by the size of the open api schema.
But possibly we should also have boxing of struct fields. Open to reflections here.
Iteration order
Ideally the extended "properties" collection would use "insertion" order. That way, { "x" => 1, "a" => 2 } would come out correctly with "x" before "a". This is quite important in some use cases, and would require use of the index_map crate, as hashmap makes no iteration ordering guarantees, and btreemap uses alphabetical ordering.
Perhaps this can be a feature or generation option. Like it is with the rust open api generator.
Inheritance
Consider:
# Pseudo-Schema
AnimalMixin = Object<{ name: string }>
Gift = Object<{ name: string }>
FelineMixin = Object<{ purrs: bool }, properties<Gift>>
PetType = Enum<["Dog", "Cat"]>
Pet = AllOf<[
    AnimalMixin,
    Object<
        { pet_type: PetType },
        discriminator("pet_type", { "dog": Dog, "cat": Cat })
    >
]>
Dog = AllOf<[Pet, Object<{ barks: bool }>]>
Cat = AllOf<[Pet, FelineMixin, Object<{ licks: bool }>]>

Now the interpretation of the above is a bit gnarly, even in a single-parent inheritance language:

Should Dog have a pet_type field? Or property / getter? Should it be fixed as "Dog" in the serializer?

I think given Dog is a Pet and the only valid Pet has "dog", the answer ideally would be "no field", "readonly getter" (but I haven't looked at what kiota does here)

Should Cat inherit from Pet? What about FelineMixin?

I assume Kiota has Cat inherit from Pet, but I haven't checked what rules it uses.

In any case, I assume kiota must have some default representation of this object in its internal CodeDom representation, but I haven't dug into this too deeply.

We'd then need to work out how to map this to Rust. Personally, I'd propose the following, which would solve some pain points we have with the open api generator we are currently using.
My vision would be roughly:

To have concrete structs for each leaf in the hierachy... and probably each internal node too
To also output enums for any object with a discriminator
Add some ability to interpret descendents as their ancestors in the type hierachy (by using and From and traits)

enum PetType {
    Dog,
    Cat,
}

enum Pet {
    Dog(Box<Dog>),
    Cat(Box<Dog>),
}

struct Dog { // Implicitly has `pet_name: PetType::Dog`
    pub name: String,
    pub barks: bool,
}

struct Cat { // Implicitly has `pet_name: PetType::Cat`
    pub name: String,
    pub purrs: bool,
    pub licks: bool,
    pub properties: IndexMap<String, Gift>,
}

struct Gift {
    pub name: String,
}

// And then From implementations for the type hierachy
impl From<Dog> for Pet { /* ... */ }
impl From<Dog> for AnimalMixin { /* ... */ }
impl From<Cat> for Pet { /* ... */ }
impl From<Cat> for AnimalMixin { /* ... */ }
impl From<Cat> for FelineMixin { /* ... */ }

// Traits representing the type hierachy; some assorted ones below. Every type could include a trait conceptually.
// The setters returning `&mut Self` would allow the builder pattern to be used.
trait AsAnimalMixin: Into<AnimalMixin> {
    fn get_name(&self) -> &str;
    fn set_name(&mut self, String) -> &mut Self;
}
trait AsPet: AsAnimalMixin + Into<Pet> {
    fn get_pet_type(&self) -> PetType;
    fn set_pet_type(&mut self, String) -> &mut Self; // NOTE: using `set_pet_type` on e.g. a Cat/Dog would panic
}
trait AsFelineMixin: Into<FelineMixin> {
    fn get_purrs(&self) -> bool;
    fn set_purrs(&mut self, bool) -> &mut Self;
    fn get_properties(&self) -> &IndexMap<String, Gift>;
    fn get_mut_properties(&mut self) -> &mut IndexMap<String, Gift>;
}
impl AsAnimalMixin for AnimalMixin { /* ... */ }
impl AsPet for Pet { /* ... */ }
impl AsFelineMixin for FelineMixin { /* ... */ }
impl AsAnimalMixin for Dog { /* ... */ }
impl AsPet for Dog { /* ... */ }
impl AsAnimalMixin for Cat { /* ... */ }
impl AsPet for Cat { /* ... */ }
impl AsFelineMixin for Cat { /* ... */ }

For completeness, we may also need some struct representation of each intermediate "class" in the hierachy, such as the "Pet" class without the discriminator:
// This fits inside the hierachy under Pet
struct PetBase {
    pub name: String,
    pub pet_type: PetType,
}

trait AsPetBase: AsAnimalMixin + Into<PetBase> {
    fn get_pet_type(&self) -> PetType;
    fn set_pet_type(&mut self, String) -> &mut Self;
}

// And we modify: AsPet: AsAnimalMixin + Into<Pet> to be:
trait AsPet: AsPetBase + Into<Pet> { }

// And have various impls:
impl AsPetBase for PetBase { /* .. */ }
impl AsPetBase for Pet { /* .. */ }
impl AsPetBase for Dog { /* .. */ }
impl AsPetBase for Cat { /* .. */ }

Unions (oneOf, anyOf)

OneOf with a discriminator would also support an enum, but wouldn't support inheritance through it and wouldn't have a struct.
AnyOf / OneOf would likely need to use some kind of struct, with Option<X> for each of the different fields.

Required and Nullable

A not-required field should map to Option<X>
Nullable should map to kiota_abstractions::Nullable<X>, with options Null and NotNull which should implement many similar things to Option.

A non-required, nullable field would be Option<Nullable<X>>. Ideally we could implement various trait on Option<Nullable<X>> to let you easily create and as_ref / as_mut the value.
Derives

Structs representing Open API objects can implement Clone, Debug, Eq, PartialEq... and I guess I'd consider Ord, PartialOrd, Hash
Enums representing Open API discriminators can implement Clone, Debug, Eq, PartialEq... and I guess I'd consider Ord, PartialOrd, Hash
Enums representing Open API enums can implement Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash

We could also have Default - but only if all its children support default (e.g. enums can't support default) - this has been broken in the past in the Open API generator.
Constructors
I'd be tempted to not have constructors and just make all fields pub. Particularly as Rust doesn't support named parameters like C#.
The Open API generators having default parameters in constructors caused us lots of pain when models changed.
Optional parameters and Defaults
The main issue with this approach may be frustration with elegantly constructing objects with optional parameters, when the object also has one or more required parameters... Although this is a general rust problem when at least one of the fields is not default-able.
You could consider something like default_with_v1, but it requires adding this extra model for the required fields. Another option would be default_with_v2 which sacrifices some type safety / visibility of the field names (by hiding them in the constructor) but gives better code ergonomics:
enum MyEnum {
    Option1,
    Option2,
}

struct MyExampleModel {
    optional_1: Option<i32>,
    required_1: i32,
    optional_2: Option<i32>,
    required_2: MyEnum,
}

struct MyExampleModelDefaultRequired {
    required_2: MyEnum,
}

impl MyExampleModel {
    fn default_with_v1(required: MyExampleModelDefaultRequired) -> Self {
        let MyExampleModelDefaultRequired { required_2 } = required;
        Self {
            optional_1: Default::default(),
            required_1: Default::default(),
            optional_2: Default::default(),
            required_2,
        }
    }

    fn default_with_v2(required_2: MyEnum) -> Self {
        Self {
            optional_1: Default::default(),
            required_1: Default::default(),
            optional_2: Default::default(),
            required_2: required_2,
        }
    }
}

fn my_function() -> MyExampleModel {
    MyExampleModel {
        optional_1: Some(1),
        ...MyExampleModel::default_with(MyExampleModelDefaultRequired {
            required_1: MyEnum::Option2,
        })
    }
}

Boxing
What do you consider large structs? lots of symbols? or hold a lot of data? (e.g. a property is an array/collection/map with lots of entries)
Could you provide examples to illustrate the difference in approches?
Iteration order
The client MUST maintain the order of the collections it receives from the service. It also MUST serialize collections in the same order they were provided. While it's not common, order matters to a lot of services/applications for the business logic. (e.g. what about an API that returns race finalists, but without providing a numerical position or a time to complete the race?)
Inheritance
(and composed types)
This is something we've already given a lot of thoughts, there are still rough edges in some scenarios but effectively:

OneOf: exclusive union, results in wrapper types with only one member at a time that can be hydrated for languages that can't express exclusive unions.
AnyOf: inclusive union, results in wrapper types with multiple members at a time that can be hydrated for languages that can't express inclusive unions.
AllOf: (1 inline + 1 schema ref) inheritance
AllOf: (more than one inline schema, or more than one schema ref), mushed into a new type, although this one is not properly implemented yet. #4346 and associated issues.

Discriminators are supported in all of the oneOf/anyOf/allOf scenarios implemented today, with a caveat that only one level will be supported (kiota clients don't recursively walk the type graph at runtime as it could become really expensive)
Any of those cases with just one member type will be "squashed".
All of that is represented through the code DOM for you already (inheritance is code class + parent in the start block, oneOf/anyOf are code union/code exclusion type that can be converted to a wrapper class at refiner stage, intersection types will be code classes)
In your cat and dog example, why wouldn't you have a base/abstract class "pet" that holds the name and type properties instead of an enum? (I know nothing about Rust at this point, sorry if the question is stupid)
Ruby also has the notion of mixins, when I started working on that with a couple of interns we first tried to go down that route. And at least for ruby, the fact that those concepts didn't not "obviously" map to traditional OOP concepts made things harder. We ended up using the mixins to model inheritance and implementations and other aspects. Not sure it was the best solution but so far the people who have tried it have not complained about that aspect.
API Extensibility and Completeness
Pretty much where I was going with my previous comments. One important piece of information you might not have about kiota: we left the discriminators as strings for this very problem. As adding a new member type (inheritance or other scenarios) to the "discriminated types collection" would have been a breaking change for some languages (think type assertions, switches, etc... type of scenarios where if you exhaust the possibilities, the compiler doesn't require a default, but if a new possibility gets introduced, the compiler will yell at you)
Unions (oneOf, anyOf)
I think I've talked about that in my previous comments, let me know if there are further questions/comments.
Required and Nullable
Please read #3911
Derives
I'm guessing implementing those enables equality comparisons, sorts, etc? In dotnet and other languages, they are usually an additional interface to implement on a different type (string has StringEqualityComparers and StringOrderComparers for example). We have done any generation with that regard to date and didn't get any request for that. I'd put that in a nice to have category at the moment and focus on the other concepts first.
Constructors
Used for models to set default values for properties and to set the backing store + additional data: we need to make sure the model will be functional, if they are alternatives to achieve the same goal, we can leverage those instead.
Used for request builders to set some of the required properties (request adapter, uri template, etc...): this is a good guard rail to minimize the generated code and ensure people will end up with a functional request adapter.
Optional and defaults
Again #3911 and #3398
Integer types
I'd align those mappings with the other languages, otherwise maintenance is going to be a nightmare. Please don't quote the swagger reference or @darrelmiller is going to get mad 🤣
After we implemented the types mapping here, I did some work to help formalize it to the registry, so kiota doesn't implement everything there, and discussions revealed a bit of drift we'll correct in another major version.
Corrected table:

type: integer, format: int32 => i32
type: integer, format: int64 => i64
type: integer, no format => i32
type: number, format: float => f32
type: number, format: double => f64
type: number, no format => f32

But the generator does that for you automatically to the code dom. What I suggest is that you look at the parsenode/serialization writer interfaces to find the closest mappings.
I hope that answers a lot of your questions, don't hesitate to follow up!

@baywet  First off - massive thank you on sharing your thoughts / links. Super helpful!
Will reply in chunks.
Boxing

What do you consider large structs? lots of symbols? or hold a lot of data? (e.g. a property is an array/collection/map with lots of entries)

Sorry, I'm not being very precise. When I say "large struct" I'm loosely meaning a "large, possibly nested structure which would live as one unit in memory". In rust, any types without allocation/indirection all live like this. Boxes are explicit, and lots of Rust's speed comes from avoiding allocations and generally data lives on the stack unless explicitly moved into a box (or belonging to a heap-allocated structure such as a Vec (think C# List) or some kind of map).
But if you nest lots of rust types together naively (without boxes), you can end up with a really large item, which can be can cause stack overflow (as each stack frame needs to allocate space for it - particularly when built in debug mode, which doesn't optimise away moves/copies).
To get around this risk of stack overflow with very large types, you need to introduce boxes (or equivalent stack allocation) somewhere.

Could you provide examples to illustrate the difference in approches?

Consider a model like this:
struct MyParentItem {
   a: MyMassiveItem,
   b: MySumTypeItem,
}
struct MyMassiveItem {
   property_1: MyMiniItem,
   //...
   property_1000: MyMiniItem,
}
struct MyMiniItem {
    a: u64,
}
enum MySumTypeItem {
   A(MyParentItem),
   B(MyMassiveItem),
   C(MyMiniItem),
   None,
}

OPTION 1 - Enum variants only
Rust requires boxes to support recursive types (in the above example, MyParentItem > MySumTypeItem form a recursive loop) - so we'd need some boxes. The first option is to add them just for enum variants, e.g. same as above, except:
enum MySumTypeItem {
   A(Box<MyParentItem>),
   B(Box<MyMassiveItem>),
   C(Box<MyMiniItem>),
   None,
}

The drawback is that if you never have any enums, and have a really large request/response just built out of objects, then you end up with lots of heap usage. I don't think practically it would be a problem though in most cases.
OPTION 2 - Enum variants + "large structs"
(for some definition of large thing)
So, same as Option 1, except we'd also add a box here:
struct MyParentItem {
   a: Box<MyMassiveItem>,
   b: MySumTypeItem,
}

This is kinda how a human might solve the problem, adding manual boxes in places to divide up large types where it makes sense... the problem is that it might be quite arbitrary, and cause box churn across the whole code-base, as stably deciding which type to box based on how large it is isn't particularly solvable.
OPTION 3 - Box all non-built-in-types
Simplest to reason about, but the code is less idiomatic with lots of boxes around and a bit more boilerplatey to work with.
struct MyParentItem {
   a: Box<MyMassiveItem>,
   b: Box<MySumTypeItem>,
}
struct MyMassiveItem {
   property_1: Box<MyMiniItem>,
   //...
   property_1000: Box<MyMiniItem>,
}
struct MyMiniItem {
    a: u64,
}
enum MySumItem {
   A(Box<MyParentItem>),
   B(Box<MyMassiveItem>),
   C(Box<MyMiniItem>),
   None,
}

Personal reflections
I think offering option 1 as a default, possibly with a break-glass configuration choice for option 3 if people want it; might be best.
I think on reflection Option 2 will be too complicated and hard to define/reason about end up with too much churn as an API evolves.

A few more replies:
Iteration order

The client MUST maintain the order of the collections it receives from the service. It also MUST serialize collections in the same order they were provided. While it's not common, order matters to a lot of services/applications for the business logic. (e.g. what about an API that returns race finalists, but without providing a numerical position or a time to complete the race?)

I totally agree with you. That just means we will need to pull in the ecosystem-standard indexmap library into kiota-abstractions because there's not such a map in Rust's core/std.
Inheritance etc

This is something we've already given a lot of thoughts, there are still rough edges in some scenarios but effectively:

Yes, I can imagine it's received a lot of thought!

In your cat and dog example, why wouldn't you have a base/abstract class "pet" that holds the name and type properties instead of an enum? (I know nothing about Rust at this point, sorry if the question is stupid)

Rust doesn't have classes or inheritance at all! The best we get are traits (think interfaces). Types (structs, enums) can implement many traits, and traits can have dependencies, like a class hierachy.
So the rust way of representing inheritance would be to create the hierachy in traits, and then have concrete structs implementing those traits.
This works fine conceptually, but it's also really important to be able to match on an exhaustive list of children. That's why you need the enums too. Any type with a discriminator can both appear as an enum (e.g. Pet), or as a struct (e.g. PetBase). The enum variant would be most useful / idiomatic I think.
As for how it maps to the CodeDom... The CodeDom sounds very OOP-centric, so we might have to look at whether it's possible/sensible to refine the OOP; or might make sense to calve out at a slightly lower / more intermediate level in the processing pipeline (I don't imagine this would be necessary, and obviously we should explore CodeDom first)

AllOf: (more than one inline schema, or more than one schema ref), mushed into a new type, although this one is not properly implemented yet. https://github.com/microsoft/kiota/issues/4346 and associated issues.

In some ways the beauty of the Rust approach is that, by not being strictly tied to inheritance, you can support multiple parents just fine.
Might it be permissible to extend the CodeDom to provide hints of multiple parents so that Rust could handle this? Or would that be too complicated?
API Extensibility and Completeness

Pretty much where I was going with my previous comments. One important piece of information you might not have about kiota: we left the discriminators as strings for this very problem.

Interesting! I guess this makes sense.
Derives
These all come from free by Rust's macro system... We just need to decide which ones we want.
Required and Nullable

Please read https://github.com/microsoft/kiota/issues/3911

I give my full support to handling required + not nullable. We could have it so that required + not nullable would map to X and everything else to Option<X>.
Although the rust philosophy is to be as explicit as possible in the type system, so the most rusty approach would be to have distinct types X / Option<X> / Nullable<X> / Option<Nullable<X>>... with trait methods on Option<Nullable<_>> to make it easy to use. But it sounds like this isn't very Kiota; and consistency with the rest of Kiota sounds pretty important.
I'm just not sure how we'd allow people to distinguish {} from { field: null } without it (as per https://github.com/microsoft/kiota/issues/3846#issuecomment-1844249797 ).  Whilst we could theoretically implement a "backing bag" approach which would handle required/non-required; built naively, its interface would be very unnatural in Rust (because there aren't getters/setters, it would need to be method based).
When I'm building a Rust API, I'd like it to be a requirement that it can be compiler-guaranteed that I set all required properties on a response... Any solution which didn't do that would be a blocker.
I think we'd need to explore this area further.

Integer types

I'd align those mappings with the other languages, otherwise maintenance is going to be a nightmare. Please don't quote the swagger reference or @darrelmiller is going to get mad 🤣

🤣. Sorry Darrel! Haha I feel the pain. One of my frustrations with Open API is how bad/inconsistent the docs are (the swagger ones are the worst), and the better docs are often buried! I will bookmark the registry.
And noted on the mapping of no format => i32 / f32.

Right, I think that's it for now 👍. Thanks again for your reflections / input.
It'll be parked from my/our side for a while. I might find time to do some out-of-hours work on this over the next few months (but personal life's about to get rather hectic, so that might be optimistic) and we might be able to come back to it with dedicated in-work-hours developer time in a few months, though that wouldn't be before June/July time at the earliest.
In the mean time, I encourage anyone else from the community looking at this thread to get involved / pick up / share the gauntlet - I just wanted to start the scoping work so that we could have a bit of a shared understanding of what an implementation would look like.
Actually, one final question @baywet regarding where this mono-repo should live -- would it be best for microsoft to create a microsoft/kiota-rust repository base (including licenses, codeowners etc)? Or should I/we/someone else start on things first, and then once you see it begin, it can be moved across to microsoft later?

Might it be permissible to extend the CodeDom to provide hints of multiple parents so that Rust could handle this? Or would that be too complicated?

Interestingly this would make supporting allOf and the different use cases much simpler.
Generally speaking we try to avoid adding anything in the DOM at the Kiota builder stage that will be language specific. This is what the refiners are for. If you need additional elements in the DOM so the refiner can "augment" the context for a given language, no issues with that.
Arguably inheritance support is language specific, and should be done at the refiner stage. But this represents a lot of code, that's been placed in the builder for historical reasons, and I'd rather not get into a huge refactoring at this point.
TODO ask about fields duplication in inheritance scenario

These all come from free by Rust's macro system... We just need to decide which ones we want.

Could we start with none of them for now then? And let user demand drive things here?

though that wouldn't be before June/July time at the earliest

No rush! We really appreciate the discussion here, as it'll help everyone who has interest in rust + kiota to get a better understanding of the task at hand!

regarding where this mono-repo should live

The approach we took on Dart with @ricardoboss what to have the mono-repo under his own org, and when things start to finalize, we'll move it under Microsoft. There are a lot of reasons for that including security and compliance requirements on our end that I'd like to not have in our way as we iterate rapidly at the beginning. (effectively we can't have non-MSFT GitHub handles with direct permissions on Microsoft owned repo, which means any initial configuration you need done will have to go through an employee....) Does that work for you?


Perfomance: Single put transaction - 20 per second?

Seems bbolt perfomance is 20 "Put transaction"s per second (Windows 7,HDD)
https://github.com/maxim-ge/go-inv/blob/master/bbolt/bbolt_test.go
Use go test -v -run Test_bbolt_one_per_tr
Looks as a very low number, is any tuning possible?
PS: SSD is better - 1000 per second

E.g. goleveldb gives what I would expect from kv database - 100.000 per sec
https://github.com/maxim-ge/go-inv/blob/master/bbolt/goleveldb_test.go

badger has around 60K per second
https://github.com/maxim-ge/go-inv/blob/master/bbolt/badger_test.go

Anything faster on an HDD without a non-volatile cache (typical on server raids, but not desktops) is not guaranteeing durability (the D in ACID).
You can group your Puts into a single db.Update transaction, or use db.Batch (being aware that with Batch your callback will be called at a later time). With that you can make thousands of writes in the same amount of time it takes to make one.
If you want to live dangerously while testing on your desktop, there's also the NoSync option, but it's unsafe and unnecessary on server hardware.

Thank you, good explanation, this options leads to 20K per second.
db.Sync() flushes everything, correct?

Yeah, DB.Sync() just calls fdatasync() (probably FlushFileBuffers on Windows), which flushes all the block changes to disk. Using Sync() with NoSync is not safe against corruption, if power is lost or the OS crashes mid-sync, because it doesn't guarantee the order that the data is written.


[WIP] Do not try to detect evil miner in side chains.

:x: Build AElf <IP_ADDRESS>55 failed (commit https://github.com/AElfProject/AElf/commit/01c042310f by @EanCuznaivy)

:white_check_mark: Build AElf <IP_ADDRESS>76 completed (commit https://github.com/AElfProject/AElf/commit/01b18e657e by @EanCuznaivy)


Per column date format possible?

Hello and thanks for nice library.
It is possible different format dates for per column? Like this?

User
Date_1
Date_2

User 1
dd-mm-yyyy
mm-dd-yyyy

User 2
dd-mm-yyyy
mm-dd-yyyy

You can set formats on a cell level:
var range = XLSX.utils.decode_range(ws["!ref"]);
for(var R = 1; R <= range.e.r; ++R) {
  if(ws["B" + (R+1)]) ws["B" + (R+1)].z = "dd-mm-yyyy";
  if(ws["C" + (R+1)]) ws["C" + (R+1)].z = "mm-dd-yyyy";
}

@SheetJSDev Thank you, it worked


Caller address not supported in constructor.

Overview
Provide a simple overview of what you wish to see added. Please include:

Ape currently not supports caller address in constructor.
With latest cairo update, caller address is supported in constructor.

Specification
Deploying a contract with sender address fails currently.
factory = project.deploy(1,2,sender=deployer)
AccountsError: Can only call Starknet invoke transactions

PR #117 "fixes" this because we will no longer use the deprecated DeployTransaction and will instead use invoke calls to the UDC.
The caller address is recognized in this manner, as you can see here: https://github.com/OpenZeppelin/cairo-contracts/blob/main/src/openzeppelin/utils/presets/UniversalDeployer.cairo#L36.
In ape-starknet, unique defaults to True thus it won't be "deployed from zero" which I think implies the caller address will be set as you expect.
Let me know if I am wrong in any of this or if there is anything else we should do.


Black Bean & Mushroom Enchilada Casserole

https://www.eatingwell.com/recipe/8018806/black-bean-mushroom-enchilada-casserole/
https://www.eatingwell.com/our-all-time-most-popular-dinner-recipes-8406983

#840


Updated due to latest stats

@chilicoder thanks for the PR - we use an automated system to keep README rankings updated. See etc/update-readme.js. Latest update in #448.


return previous ports

Description
Fix ports
Changes

return previous ports

Documentation PR
For UI changes, Please provide the Documetation PR on info_grid
Checklist

[ ] Tests included
[ ] Build pass
[ ] Documentation
[ ] Code format and docstrings
[ ] Screenshots/Video attached (needed for UI changes)

Taiga

Peertube

Mattermost


Renames agenta app Dockerfiles to non-trivial names

Closes #1738
Please QA

@aybruhm It is expected that the oss tests fail here, since they are using the old backend hosted in oss.agenta.ai (which expects Dockerfile and not Dockerfile.agenta.oss)

@aybruhm It is expected that the oss tests fail here, since they are using the old backend hosted in oss.agenta.ai (which expects Dockerfile and not Dockerfile.agenta.oss)

Ah, got it. 😅 Thank you for clarifying.

@aybruhm updated the comment

@aybruhm I have also reverted the change you made, it looks to me that it introduces and error

@aybruhm I have also reverted the change you made, it looks to me that it introduces and error

🤔

We might want to move all the serve operations and files inside of a .agenta folder to avoid any conflicts.

I'm not sure if I understand what you mean.

NOTE
This is ready to be merged pre-release.
Merging it means breaking all serve-to-oss and serve-to-cloud CI until the new backend is deployed in oss and cloud


[improve][build] Upgrade Spotbugs to a version with JDK 17 compatibility

Motivation
Build log contains warning messages such as
(file:/home/runner/.m2/repository/com/github/spotbugs/spotbugs/4.2.2/spotbugs-4.2.2.jar)
     [java] WARNING: Please consider reporting this to the maintainers of edu.umd.cs.findbugs.ba.jsr305.TypeQualifierValue
     [java] WARNING: System::setSecurityManager will be removed in a future release
     [java] WARNING: A terminally deprecated method in java.lang.System has been called
     [java] WARNING: System::setSecurityManager has been called by edu.umd.cs.findbugs.ba.jsr305.TypeQualifierValue

This is fixed by https://github.com/spotbugs/spotbugs/pull/1983 in 4.7.0
Modifications
Upgrade Spotbugs to 4.7.3.
Spotbugs 4.7.3 release notes:
https://github.com/spotbugs/spotbugs/releases/tag/4.7.3
Ignore violations in existing code that fail with new rules that are active in upgraded Spotbugs version.
Documentation

[ ] doc
[ ] doc-required
[x] doc-not-needed
[ ] doc-complete

Adding a comment here so that we have some documentation about handling EI_EXPOSE_REP Spotbugs errors.
This is the spotbugs description for EI_EXPOSE_REP

EI: May expose internal representation by returning reference to mutable object (EI_EXPOSE_REP)
Returning a reference to a mutable object value stored in one of the object's fields exposes the internal representation of the object. If instances are accessed by untrusted code, and unchecked changes to the mutable object would compromise security or other important properties, you will need to do something different. Returning a new copy of the object is better approach in many situations.

Newer versions of Spotbugs enable this rule by default. One possibility is to ignore the error.
There are 2 ways to ignore the error: with an annotation or with an XML file. Since there was a lot of locations where this is happening, I used the XML file in this PR. Having the rule is useful since we should be thinking of the implications of thread safety and so on when a mutable object is shared.


tests: Get rid of feature-specific tests.

The only difference in bindings is because the methods were inlined, so with
llvm 3.9 we can skip those.

r? @fitzgen
@bors-servo delegate=fitzgen

:v: @fitzgen can now approve this pull request

@bors-servo r+

:pushpin: Commit 737d644 has been approved by fitzgen

:hourglass: Testing commit 737d644 with merge dfa2e8c...

:sunny: Test successful - status-travis


Split install-prereqs into separate project

There's no reason why butler should be fatter for that, we can just do a slim C++ app now.

There's reasons now.
(test-prereqs is one)


[Nav Bar] Create "View Members" link for Admins/Volunteers

In the top nav bar, we need to add a new link/icon/text called "View Members".

Select an icon that fits the current theme (Bootstrap Admin SB 2), or you can use one that's tested, such as Octicons
Text should read "View Members"
Icon and text should mirror other nav icon links/elements in alignment/sizing.
This element should appear at the end of the nav bar and only be visible to authenticated users with an assigned role of Admin or Volunteer.
This will link to a user list to be added in an upcoming issue.

I can tackle this one this evening!


Panoramio: No photos are shown

What steps will reproduce the problem?
1. Install Panoramio and Radar from Android market
2. No photos are shown at all.
3. Pressing the "Search Panoramio" button shows a list of
beautifull photos, but totally unrelated to my locations

What is the expected output? What do you see instead?
Ive confirmed several locations, i.a.
http://www.panoramio.com/map/#lt=55.666288&ln=12.514336&z=2&k=2&a=1
&tab=1 is full of images. I'd expect them to show up in the app,
but none of them are shown on the Panoramio map.
Actually, Ive panned a lot around, but only once I found a
Panoramio icon (the star in a circle). When zooming it seemed to
skirt around a bit (nothing happened when I tapped it).

What version of the product are you using? On what operating
system?
HTC Desire (Android 2.1), Danish.

Please provide any additional information below.
Selecting one of the beautifull photos (totally unrelated to my
location) made me jump into Radar, and I could see the direction
and distance was actually dependent on the photo selected.

Original issue reported on code.google.com by jacob.nordfalk on 14 May 2010 at 5:51

OK, found the error.

In class ImageManager, you format an URL whithout specifying locale:

        @Override
        public void run() {

            String url = THUMBNAIL_URL;
            url = String.format(url, mMinLat, mMinLong, mMaxLat, mMaxLong);

This will format according to the default locale
On my phone I'm running Danish locale.

This makes the URL
//www.panoramio.com/map/get_panoramas.php?
order=popularity&set=public&from=0&to=20&miny=57,587883&minx=10,343802&maxy=57,8
78212
&maxx=10,733816&size=thumbnail

instead of
//www.panoramio.com/map/get_panoramas.php?
order=popularity&set=public&from=0&to=20&miny=57.560585&minx=10.309117&maxy=57.8
13110
&maxx=10.699131&size=thumbnail

(note the commas used as decimal seperator)

Please correct this to
            url = String.format(Locale.US, url, mMinLat, mMinLong, mMaxLat,
mMaxLong);

thanks.

Jacob

Original comment by jacob.nordfalk on 14 May 2010 at 7:13


Charts are not available in the HTML report when running in headless mode

Hi everyone,
thanks for all the efforts in this amazing tool. I am trying to run a headless load test with locust (2.8.6) that should produce a HTML report showing exactly the same stuff as with the UI execution. The command looks like this:
locust -f mytest.py --headless --users 5 --spawn-rate 1 -i 100 -t 1 --html report.html --print-stats -L INFO --logfile report.log

(Please note that I am using the locust plugin to stop after 100 requests) The test is running fine and the HTML will also be created. However the report only contains the two tables Request Statistics + Response Time Statistics
But below "Final ratio" there's nothing displayed. I've tried multiple browsers but the result is the same. I can also see in the console an error
"Uncaught TypeError: Cannot read properties of undefined (reading 'getAttribute')"
Is this a locust bug (it could be eventually the older JQuery version in the HTML file) ?
Or is there anything wrong with my command?
Thanks in advance!

Huh. Would be nice to fix but I dont think I have time to investigate. Maybe try —autostart instead of —headless?

The same behavior is observed when running locust as library and spawning the web ui as separate process to get the stats on locust web endpoint.

Would it be possible to use the CSV files to generate such charts? Maybe someone already have a formula to generate those?

feel free to have a look at the code. maybe it is something that can be solved without much effort.

I am having the same problem. No solution yet?

I also have the issue, needs some help


[samples] Consider add Blazor samples?

Blazor

Ok, but I don’t know enough about Blazor now, it may take some time.

@LeiYangGH do you want to use C# Casbin in frontend? I think if you can import Casbin.NET lib in Blazor C# code, then you are free to use it. I don't know if there is anything blocking you? Or you can choose to use Node-Casbin (JS version) directly in frontend.

I'd like to use C# Casbin in frontend.
The repo already has a sample syntax like [CasbinAuthorize(nameof(BasicTest), nameof(HttpMethod.Get))], which is designed for asp.net core controller, right?
But a Blazor app can have no controller, it has only razor page. so for a newbie(like me), there's no way to use the CasbinAuthorize attribute, at least there's no obvious way.
So I'd like suggest a Blazor sample.

@LeiYangGH ok, fair enough.
@Sagilio can you make a Blazor example?

@AsakusaRinne
/cc @sagilio

@AsakusaRinne
/cc @sagilio

OK, I'll do it, but it may need some times to get familiar with it.

I'd like to use C# Casbin in frontend.
The repo already has a sample syntax like [CasbinAuthorize(nameof(BasicTest), nameof(HttpMethod.Get))], which is designed for asp.net core controller, right?
But a Blazor app can have no controller, it can have only razor page. so for a newbie(like me), there's no way to use the CasbinAuthorize attribute, at least there's no obvious way.
So I'd like suggest a Blazor sample.
if you can import Casbin.NET lib in Blazor C# code, then you are free to use it --- you're right. but on the other hand i don't agree with you, because if we only need the library, why create more framework(such as this repo, design specific asp.net core library)?

Hey,  A Blazor app can have no controller, it can have only razor page ----- I guess you mean the server mode of Blazor. Besides it, Blazor also has client mode, which has controllers and frontend. Have you considered using the client mode?

Fixed by: https://github.com/casbin-net/casbin-aspnetcore/pull/52

@LeiYangGH

thanks a lot!


Epoch keeps crashing

Expected Behavior
Start mining
Actual Behavior
Keeps crashing
Steps to Reproduce the Problem

Download MacOS node 0.22.0 from
https://github.com/aeternity/epoch/releases/download/v0.22.0/epoch-0.22.0-osx-10.12.6.tar.gz
Follow installation + configuration + operation instructions from doc directory.

Logs, error output, etc.
tail of log/crash.log:
2018-09-26 14:43:37 =CRASH REPORT====   crasher:     initial call: jobs:run/2     pid: <0.4364.0>     registered_name: []     exception exit: {{{badarg,[{enacl_nif,crypto_aead_chacha20poly1305_decrypt,[<<32,122,103,195,44,21,129,231,69,226,82,62,154,194,162,140,61,136,170,252,76,182,191,190,193,186,222,134,236,175,136,253>>,<<0,0,0,0,7,0,0,0,0,0,0,0>>,<<>>,<<"Y»Ce">>],[]},{enoise_cipher_state,decrypt_with_ad,3,[{file,"/Users/distiller/epoch/_build/default/lib/enoise/src/enoise_cipher_state.erl"},{line,64}]},{enoise_connection,handle_data,2,[{file,"/Users/distiller/epoch/_build/default/lib/enoise/src/enoise_connection.erl"},{line,150}]},{enoise_connection,handle_info,2,[{file,"/Users/distiller/epoch/_build/default/lib/enoise/src/enoise_connection.erl"},{line,92}]},{gen_server,try_dispatch,4,[{file,"gen_server.erl"},{line,616}]},{gen_server,handle_msg,6,[{file,"gen_server.erl"},{line,686}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,247}]}]},{gen_server,call,[<0.4328.0>,{get_generation,[<<109,114,106,111,0,206,184,168,199,115,89,40,243,6,148,169,43,191,15,220,56,192,8,142,84,34,127,68,164,178,22,223>>,backward]},7000]}},[{gen_server,call,3,[{file,"gen_server.erl"},{line,214}]},{aec_peer_connection,call,2,[{file,"/Users/distiller/epoch/_build/prod/lib/aecore/src/aec_peer_connection.erl"},{line,120}]},{aec_sync,do_fetch_generation_ext,2,[{file,"/Users/distiller/epoch/_build/prod/lib/aecore/src/aec_sync.erl"},{line,761}]},{aec_sync,do_work_on_sync_task,3,[{file,"/Users/distiller/epoch/_build/prod/lib/aecore/src/aec_sync.erl"},{line,654}]},{jobs_server,run,2,[{file,"/Users/distiller/epoch/_build/default/lib/jobs/src/jobs_server.erl"},{line,107}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,247}]}]}     ancestors: [aec_sync,aec_connection_sup,aecore_sup,<0.1189.0>]     message_queue_len: 0     messages: []     links: [<0.1237.0>]     dictionary: []     trap_exit: false     status: running     heap_size: 4185     stack_size: 27     reductions: 30427   neighbours: 2018-09-26 14:43:37 =SUPERVISOR REPORT====      Supervisor: {local,aec_peer_connection_sup}      Context:    child_terminated      Reason:     {badarg,[{enacl_nif,crypto_aead_chacha20poly1305_decrypt,[<<32,122,103,195,44,21,129,231,69,226,82,62,154,194,162,140,61,136,170,252,76,182,191,190,193,186,222,134,236,175,136,253>>,<<0,0,0,0,7,0,0,0,0,0,0,0>>,<<>>,<<"Y»Ce">>],[]},{enoise_cipher_state,decrypt_with_ad,3,[{file,"/Users/distiller/epoch/_build/default/lib/enoise/src/enoise_cipher_state.erl"},{line,64}]},{enoise_connection,handle_data,2,[{file,"/Users/distiller/epoch/_build/default/lib/enoise/src/enoise_connection.erl"},{line,150}]},{enoise_connection,handle_info,2,[{file,"/Users/distiller/epoch/_build/default/lib/enoise/src/enoise_connection.erl"},{line,92}]},{gen_server,try_dispatch,4,[{file,"gen_server.erl"},{line,616}]},{gen_server,handle_msg,6,[{file,"gen_server.erl"},{line,686}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,247}]}]}      Offender:   [{pid,<0.4328.0>},{id,aec_peer_connection},{mfargs,{aec_peer_connection,connect_start_link,undefined}},{restart_type,temporary},{shutdown,5000},{child_type,worker}]
tail of log/epoch.log:
2018-09-26 14:47:03.807 [error] <0.7400.0>@enoise_cipher_state:decrypt_with_ad:64 CRASH REPORT Process <0.7400.0> with 1 neighbours crashed with reason: bad argument in call to enacl_nif:crypto_aead_chacha20poly1305_decrypt(<<102,63,126,73,223,171,80,123,105,128,233,11,89,58,121,248,156,37,249,118,209,180,220,99,19,202,...>>, <<0,0,0,0,12,0,0,0,0,0,0,0>>, <<>>, <<158,178,34,221,162>>) in enoise_cipher_state:decrypt_with_ad/3 line 64 2018-09-26 14:47:03.807 [error] <0.1234.0>@enoise_cipher_state:decrypt_with_ad:64 Supervisor aec_peer_connection_sup had child aec_peer_connection started with {aec_peer_connection,connect_start_link,undefined} at <0.7394.0> exit with reason bad argument in call to enacl_nif:crypto_aead_chacha20poly1305_decrypt(<<102,63,126,73,223,171,80,123,105,128,233,11,89,58,121,248,156,37,249,118,209,180,220,99,19,202,...>>, <<0,0,0,0,12,0,0,0,0,0,0,0>>, <<>>, <<158,178,34,221,162>>) in enoise_cipher_state:decrypt_with_ad/3 line 64 in context child_terminated 2018-09-26 14:47:03.807 [error] <0.7420.0>@enoise_cipher_state:decrypt_with_ad:64 CRASH REPORT Process <0.7420.0> with 0 neighbours exited with reason: bad argument in call to enacl_nif:crypto_aead_chacha20poly1305_decrypt(<<102,63,126,73,223,171,80,123,105,128,233,11,89,58,121,248,156,37,249,118,209,180,220,99,19,202,...>>, <<0,0,0,0,12,0,0,0,0,0,0,0>>, <<>>, <<158,178,34,221,162>>) in enoise_cipher_state:decrypt_with_ad/3 line 64 in gen_server:call/3 line 214
Specifications

Virtualization: none
Hardware specs:

RAM: 16GB
CPU: 2.9 GHz Intel Core i7

OS: MacOS
Node Version: 0.22.0

@baltar This is known issue that is already fixed in master, we release 0.23.0 tomorrow including the fix.

I now tested this again with v0.23.0 and it worked.


NOOB trying to deploy this but with no docs I'm way out of my depth

@terafin
I've created a docker container based on this repo...
I've created environment variables for
BRIDGE_KEY_PATH
BRIDGE_CA_PATH
BRIDGE_CERT_PATH
but have no idea what to set them.
I've also added Env for BRIDGE_IP and MQTT_HOST these ones I think are straight forward.
Could you point me in the direction where I should be going next..?

OK I worked out I need to create the certificate files... I copied them from an old instance of Home Assistant... This seemed to get the service to start... but when I press the button on a pico nothing happens...

@MouseRatt Are you able to give any suggestions for getting started with this?


Add to Bioconda

Would be great if STRdust was available on bioconda.
/Felix

Hi Felix,
Sure, that should be possible. Let me looking into that - do you have occasions when the binary doesn't work?
Wouter

Yes! I'd like to think about replacing TRGT with STRdust for https://github.com/genomic-medicine-sweden/nallo, by adding it as a module to nf-core. Then conda (& biocontainer) is needed.

To track my progress - https://github.com/bioconda/bioconda-recipes/pull/47898
(but there appears to be a general issue with the testing on azure)

I saw this issue is still open, STRdust can be installed with conda. I need to bump the version though.


Transform issue with points renderer. Appears to be absolute, cant move them.

Point cache/renderer location doesn't update with transform changes. They need to be relative, not just absolute. If I move the entire ABC prefab, the points still spawn & render at 0,0,0. I need to be able to move the cached particle simulation around, because it is part of a much larger scene in Unity.
Also, is it possible to keyframe the start time?

What part of your code handles the position of the alembic points? I can do some basic code, but there's so much here between the C++ & C#, that I'm getting lost xD

I will work on it next week but I think you can fix it easily if you know basics of shader programming. you need to add some code to handle local position in AlembicPointsRenderer.Flush().

https://github.com/unity3d-jp/AlembicImporter/releases/tag/20170426

@i-saint
I want to translate the Alembic model relatively with parent gameobject in Unity.
Is this possible with the current version of AlembicForUnity?
I can't do that.
Do I need some Export or Import setting?

@i-saint Thank you for your advice!
@clusty How about the above my question?

To make sure I understand right:
Say your alembic model shows up at (-500,0,0) in the world, you'd like it to appear at (0,0,0) ?
If this is it, just add a parent to your alembic prefab and place this parent at (500,0,0)

@clusty
Mmm, I can't do that...
My whole procedure is below.

Create 3D model animation in blender. It only contains cube animation, cube moves from (0,0,0) to (1,0,0).
Export it with alembic format.
Import to Unity with AlembicForUnity
Before playing Unity, place alembic parent at (10,0,0), and place alembic prefab at (0,0,0). Then alembic prefab is at (10,0,0). And I hoped to my alembic prefab to move from (10,0,0) to (11,0,0).
But when I play Unity, alembic prefab goes back to (0,0,0) and start animation to (1,0,0). Inspete of the parent gameobject remains to place at (10,0,0).

Do you know any solution?

Hi @kidapu, we just ran a few tests and are getting the expected behavior with the following steps:

Add alembic prefab to scene
Create parent object
Place alembic prefab as a child of the parent
Transform parent to (10,0,0)

When I play in Unity, the alembic prefab then moves from (10,0,0) to (11,0,0) as expected.  Could you try the same steps and let me know if you get the same result or if you alembic still "jumps" back to the center of the scene?

@cguer
I tried same step, but my alembic still jumps back to the center.
I upload a simple unity project, this can reproduce what I say.
https://github.com/kidapu/alembic-pos-issue
This project needs to install AlembicForUnity.unitypackage.

Thanks for the test project @kidapu, I tried running your example but it seems to be using code from a very old version of the Alembic package (with the UTJ.Alembic namespace).
What version of the Alembic package are you currently using?

@cguer
I found AlembicForUnity.unitypackage download link, which is written in Reademe.

Latest package: AlembicForUnity.unitypackage Do not clone this repository unless you are trying to build plugin from source.

I think it was built on 2018/04/13.
Do I need to clone the latest git repository, and build it to solve my issue?

For reference, conversation has been moved to this issue https://github.com/unity3d-jp/AlembicForUnity/issues/293


Revert "Add orchestration service status reporting"

This reverts commit d34fe26cf8ba6b43331cf2a3d54418979734765a.

:shipit:

Relevant blueprint that added the call to list heat services (a feature added to kilo heat): https://blueprints.launchpad.net/horizon/+spec/heat-engine-status-report