[Hardware][Intel] Isolate CPUModelRunner and ModelRunner for better maintenance

Fix #3776
This PR created a new CPUModelRunner from ModelRunner for better maintenance.

 PR Checklist (Click to Expand)
Thank you for your contribution to vLLM! Before submitting the pull request, please ensure the PR meets the following criteria. This helps vLLM maintain the code quality and improve the efficiency of the review process.
PR Title and Classification
Only specific types of PRs will be reviewed. The PR title is prefixed appropriately to indicate the type of change. Please use one of the following:

[Bugfix] for bug fixes.
[CI/Build] for build or continuous integration improvements.
[Doc] for documentation fixes and improvements.
[Model] for adding a new model or improving an existing model. Model name should appear in the title.
[Frontend] For changes on the vLLM frontend (e.g., OpenAI API server, LLM class, etc.)
[Kernel] for changes affecting CUDA kernels or other compute kernels.
[Core] for changes in the core vLLM logic (e.g., LLMEngine, AsyncLLMEngine, Scheduler, etc.)
[Hardware][Vendor] for hardware-specific changes. Vendor name should appear in the prefix (e.g., [Hardware][AMD]).
[Misc] for PRs that do not fit the above categories. Please use this sparingly.

Note: If the PR spans more than one category, please include all relevant prefixes.
Code Quality
The PR need to meet the following code quality standards:

We adhere to Google Python style guide and Google C++ style guide.
Pass all linter checks. Please use format.sh to format your code.
The code need to be well-documented to ensure future contributors can easily understand the code.
Include sufficient tests to ensure the project to stay correct and robust. This includes both unit tests and integration tests.
Please add documentation to docs/source/ if the PR modifies the user-facing behaviors of vLLM. It helps vLLM user understand and utilize the new features or changes.

Notes for Large Changes
Please keep the changes as concise as possible. For major architectural changes (>500 LOC excluding kernel/data/config/test), we would expect a GitHub issue (RFC) discussing the technical design and justification. Otherwise, we will tag it with rfc-required and might not go through the PR.
What to Expect for the Reviews
The goal of the vLLM team is to be a transparent reviewing machine. We would like to make the review process transparent and efficient and make sure no contributor feel confused or frustrated. However, the vLLM team is small, so we need to prioritize some PRs over others. Here is what you can expect from the review process:

 After the PR is submitted, the PR will be assigned to a reviewer. Every reviewer will pick up the PRs based on their expertise and availability.
 After the PR is assigned, the reviewer will provide status update every 2-3 days. If the PR is not reviewed within 7 days, please feel free to ping the reviewer or the vLLM team.
 After the review, the reviewer will put an  action-required label on the PR if there are changes required. The contributor should address the comments and ping the reviewer to re-review the PR.
 Please respond to all comments within a reasonable time frame. If a comment isn't clear or you disagree with a suggestion, feel free to ask for clarification or discuss the suggestion.

Thank You
 Finally, thank you for taking the time to read these guidelines and for your interest in contributing to vLLM. Your contributions make vLLM a great tool for everyone!

Hi @WoosukKwon thanks for your comments, this PR is ready to merge.
BTW, the chunked prefill enabled in #3884 looks good, and it made some changes in TorchSDPAbackend. But the results of CPU backend became wrong. The backend doesn't support forward_prefix, so I think the chunked prefill can't be enabled in the backend for now if my understanding is right. I reverted the changes of TorchSDPAbackend from #3884 in this PR.

Should we create a new issue to track the deduplication? That much duplicated code makes me feel a bit uneasy lol


Need clarification on the default Runtime for Function App Created from the Portal

Currently since Functions Runtime 3.0 is GA, the Azure portal mentions that Azure Functions Create Now Targets Functions Runtime 3.0.
The documentation here under "Run on a specific version" states that the default Runtime is 2.x.
Link for documentation - https://docs.microsoft.com/en-us/azure/azure-functions/functions-versions

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

ID: 1df5e2bd-489d-19b2-87d3-d993ebb82021
Version Independent ID: 9e9d9ded-8f40-22be-4654-48c87f2c59e8
Content: Azure Functions runtime versions overview
Content Source: articles/azure-functions/functions-versions.md
Service: azure-functions
GitHub Login: @ggailey777
Microsoft Alias: glenga

@baskarmib Thank you for your feedback! We will review and update as appropriate.

@baskarmib Thanks for reporting this and helping us drive improvement towards MS Docs. Correct default version is 3.x. I've created a PR that updates the sentence to read as follows:
"By default, function apps created in the Azure portal and by the Azure CLI are set to version 3.x"
We will now proceed to close this thread. If there are further questions regarding this matter, please reopen it and we will gladly continue the discussion.


Add files via upload for Pearson College UWC

Hey, I'd like to add my college to the list for JetBrains, thanks.

@Bruneitor123 First stage of verification passed, official domain for Lester B. Pearson College UWC is pearsoncollege.ca as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.

@Bruneitor123 Thank you for your patience while waiting for a review and processing your request. Pull request merged.
Please start requesting the licenses in about an hour, to let the changes to propagate through our system.


A11y_ML .NET Model Builder_ Image Classification-Data Preview_ Screen Reader: Narrator/NVDA are not reading name for the tab items present in "Data Preview" section instead reading some irrelevant content

“Check out Accessibility Insights! - Identify accessibility bugs before check-in and make bug fixing faster and easier.”
GitHubTags:
#A11yMAS; #A11yTCS; #Win32; #DesktopApp; #Feature-ML.NETModelBuilder-Win32-Nov2020; #A11ySev2; #Benchmark; #Visual Studio; #Screen Reader; #Narartor; #NVDA; #WCAG1.3.1;
Environment Details:
Microsoft Visual Studio 2019 Preview Version 16.8.0 preview 6.0
Screen Readers:
Narrator
NVDA
Repro Steps:
1.Start Screen Reader
2.Open Visual Studio Enterprise 2019 Preview
3. Create a new .Net Core Console App (C#)
4. Tab to "Solution Explorer" and right click on the project (Shift + F10) and then from the expanded list Select "Add" and then from the list items select "Machine learning"
5. Tab till "Image Classification" scenario and select the scenario
6. Select any of the environment and tab till "next step" button and press enter
7. Upload the file and navigate till data preview section and tab till tab items in Data preview section and verify whether screen readers are reading the proper name for the tab items
Actual Result:
Narrator/NVDA are not reading name for the tab items present in "Data Preview" section instead reading some irrelevant content
Expected Result:
Narrator/NVDA should read the name for the tab items present in "Data Preview" section
User Impact:
Screen Reader users will not get the information about the tab items if screen readers doesn't the correct name for the tab items
Attachment for Reference
1148_ML .NET_Narrator is not reading name for the tab items.pptx
1148_ML .NET__NVDA are not reading name for the tab items.pptx

1148_ML.NET_Fixed_Narrator.is.not.reading.name.for.the.tab.items.pptx
Verified the bug in latest build and the issue is working as expected.
Hence closing the bug
Microsoft Visual Studio Enterprise 2019 Preview
Version 16.9.0 Preview 4.0

Github tag: #Closed;


Outstanding IER/ECE Issues

Description
As part of IER-12/ECE testing some data was not populating into the fields as expected (or at all). This is analysis based on how the file was created prior to November 1, any changes completed since then may not be reflected in the list.
Current Behavior
There are a number of fields that are not populating (IER12/ECE) or the information populated is not reflecting what was submitted in the application (IER-12).
Expected Behavior
Attached excel file includes two sheets (one for ECE and one for IER) outlining current and expected behavior for each field.
IER_ECE_ActualVsExpected.xlsx
IER-12

[ ] Student PD Status Code
[ ] Application PD Status Flag
[ ] Federal default flag
[ ] Family dependant child quantity
[ ] Family dependant infant quantity
[ ] Family dependant daycare quantity
[ ] Family dependant other quantity
[ ] Family dependant post secondary quantity
[ ] Family parent 1 flag
[ ] Family parent 2 flag
[ ] Volunteered contribution from parents
[ ] Spouse in school flag
[ ] Return transportation costs
[ ] Spouse’s student loan payment costs

ECE

[ ] Student PD Status Code
[ ] Application PD Status Flag

@HRAGANBC Please take a look and move forward if it's ready

@CarlyCotton - looks good, thanks. Moving to PM review.


Greenlight and reclassify //test/... with the current progress for Windows

Commit Message: Greenlight and reclassify //test/... with the current progress for Windows
Additional Description:

Unmark now-passing tests on windows, addressed by various PRs
including https://github.com/envoyproxy/envoy/pull/12527
Mark sometimes-failing tests as flaky_on_windows
Attempt to inventory the flaky_ and fails_ items for re-review
when examining windows CI build logs

Based on the research conducted over the past week;
https://github.com/envoyproxy/envoy/pull/11904
Co-authored-by: William A Rowe Jr<EMAIL_ADDRESS>Co-authored-by: Sunjay Bhatia<EMAIL_ADDRESS>Signed-off-by: William A Rowe Jr<EMAIL_ADDRESS>Signed-off-by: Sunjay Bhatia<EMAIL_ADDRESS>Risk Level:
Testing:
Docs Changes:
Release Notes:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Deprecated:]

Windows passed... picked up additional accepted Windows PR's for a final pre-flight check through CI, although it looks like someone has merged something very disruptive to master.

cc @envoyproxy/windows-dev

Looks like the chaos in the linux x86_64 build has been resolved. @mattklein123 this is the patch you were looking for that validates much of your efforts on simtime and test infrastructure last week.

This should go green again in CI, and is ready for review/merge.

Something looks up with RBE seeing this in the test logs and the Windows build is taking a while:
[4,419 / 5,716] Compiling source/common/version/manual_linkstamp.cc; 1693s remote ... (75 actions running)

Shouldn't be related to anything we changed I believe


invalid Add-on repository

Getting this error while trying to add

OK very Odd tied it again today and worked ??


Listener warning

Hello i get
"The listener configuration is not selected for the database. EM DB Express URL will not be accessible."
and do not get the http://localhost:5500/em to work

I believe that this is a red herring. OEM is exposed via https and not http. Can you try that.

Closing due to lack of response.


Can't require resource

Hi,
can't get webpack to work, and it did work before (unfortunately, can't get back to working project as I formatted the drive and cloned the previously working project from github).
All dependencies are latest builds (ran npm update).
In console:
Unhandled rejection TypeError: _aureliaPal.DOM.injectStyles is not a function
    at injectAureliaHideStyleAtHead (http://localhost:4000/js/app.js:47243:20)
    at Object.configure (http://localhost:4000/js/app.js:33965:55)
    at http://localhost:4000/js/app.js:8717:35
    at tryCatcher (http://localhost:4000/js/app.js:5298:24)
    at Promise._settlePromiseFromHandler (http://localhost:4000/js/app.js:3323:32)
    at Promise._settlePromise (http://localhost:4000/js/app.js:3380:19)
    at Promise._settlePromise0 (http://localhost:4000/js/app.js:3425:11)
    at Promise._settlePromises (http://localhost:4000/js/app.js:3504:19)
    at Async._drainQueue (http://localhost:4000/js/app.js:371:17)
    at Async._drainQueues (http://localhost:4000/js/app.js:381:11)
    at Async.drainQueues (http://localhost:4000/js/app.js:250:15)
    at MutationObserver.<anonymous> (http://localhost:4000/js/app.js:4560:18)

When running webpack:
<aurelia-bootstrapper-webpack> [package.json] required "./aurelia-framework" from "aurelia-framework".
<aurelia-bootstrapper-webpack> [package.json] required "./aurelia-logging-console" from "aurelia-logging-console".
<aurelia-bootstrapper-webpack> [package.json] required "./aurelia-templating-binding" from "aurelia-templating-binding".
<aurelia-bootstrapper-webpack> [package.json] required "./aurelia-templating-resources" from "aurelia-templating-resources".
[<aurelia-templating-resources>] wants to require "aurelia-templating-resources/aurelia-bootstrapper-webpack/dist/commonjs/compose", which does not exist.
[<aurelia-templating-resources>] wants to require "aurelia-templating-resources/aurelia-bootstrapper-webpack/dist/commonjs/if", which does not exist.
[<aurelia-templating-resources>] wants to require "aurelia-templating-resources/aurelia-bootstrapper-webpack/dist/commonjs/with", which does not exist.
[<aurelia-templating-resources>] wants to require "aurelia-templating-resources/aurelia-bootstrapper-webpack/dist/commonjs/repeat", which does not exist.
[<aurelia-templating-resources>] wants to require "aurelia-templating-resources/aurelia-bootstrapper-webpack/dist/commonjs/show", which does not exist.
[<aurelia-templating-resources>] wants to require "aurelia-templating-resources/aurelia-bootstrapper-webpack/dist/commonjs/hide", which does not exist.
[<aurelia-templating-resources>] wants to require "aurelia-templating-resources/aurelia-bootstrapper-webpack/dist/commonjs/replaceable", which does not exist.
[<aurelia-templating-resources>] wants to require "aurelia-templating-resources/aurelia-bootstrapper-webpack/dist/commonjs/sanitize-html", which does not exist.
[<aurelia-templating-resources>] wants to require "aurelia-templating-resources/aurelia-bootstrapper-webpack/dist/commonjs/focus", which does not exist.
[<aurelia-templating-resources>] wants to require "aurelia-templating-resources/aurelia-bootstrapper-webpack/dist/commonjs/binding-mode-behaviors", which does not exist.
[<aurelia-templating-resources>] wants to require "aurelia-templating-resources/aurelia-bootstrapper-webpack/dist/commonjs/throttle-binding-behavior", which does not exist.
[<aurelia-templating-resources>] wants to require "aurelia-templating-resources/aurelia-bootstrapper-webpack/dist/commonjs/debounce-binding-behavior", which does not exist.
[<aurelia-templating-resources>] wants to require "aurelia-templating-resources/aurelia-bootstrapper-webpack/dist/commonjs/signal-binding-behavior", which does not exist.
[<aurelia-templating-resources>] wants to require "aurelia-templating-resources/aurelia-bootstrapper-webpack/dist/commonjs/update-trigger-binding-behavior", which does not exist.
<aurelia-bootstrapper-webpack> [package.json] required "./aurelia-templating-router" from "aurelia-templating-router".
[<aurelia-templating-router>] wants to require "aurelia-templating-router/aurelia-bootstrapper-webpack/dist/commonjs/router-view", which does not exist.
[<aurelia-templating-router>] wants to require "aurelia-templating-router/aurelia-bootstrapper-webpack/dist/commonjs/route-href", which does not exist.
<aurelia-bootstrapper-webpack> [package.json] required "./aurelia-history-browser" from "aurelia-history-browser".
<aurelia-bootstrapper-webpack> [package.json] required "./aurelia-event-aggregator" from "aurelia-event-aggregator".

I ran into this as well. If you run npm dedupe it should fix it.

Anytime you use Webpack, either NPM 3 or dedupe with NPM 2 is required. That's just how Webpack works. This cause the node_modules folder to have a flat package structure, which is what is required for client-side development.


Fix: Redundant read ELF sections cause memory exhaustion

The function pcln_scan() does not stop reading section data upon encountering it, potentially leading to excessive memory consumption. I conducted a test using an ELF binary of approximately 100 MB, which was terminated by the OOM killer. This PR aims to address the issue

DataAfterSection works this way intentionally. There are obfuscators and packers which break what is usually a singular segment into multiple smaller ones. For successful type recovery we are required to re-assemble these segments. We can't know which segments are split, so we have to start at one section, and merge all sections after. Yes, this does cause out of memory errors in pathological cases, which is sad, but it is what it is.
I'd be more interested in a solution that keeps the section scanning logic the same, but optimizes the caching behavior. The real memory pressure occurs because we cache these large chunks of re-assembled segments in memory. If you want to look into this, please open a new PR.


probe set evaluation without sc-RNA-seq reference

Hi @LouisK92 Very cool to develop this tool for spatial gene detection! Can we perform evaluation directly using Spapros package using a.csv file with, for example,a 300-gene panel list? Without importing a sc-RNA-seq reference.
Many Thanks!
Kun

Hi Kun, thanks for reaching out!
We always assume to have an scRNAseq reference on which the evaluations can be run. Our evaluation tools mainly test for cell type classification accuracy, variation recovery, and gene redundancy. Other than that probe design considerations can be assessed without an scRNAseq reference. Technology and species are needed as input for that.
What would you specifically like to evaluate your gene panel for? If an scRNAseq dataset is needed maybe a public one e.g. from cell x gene could help?

Hi @LouisK92 Thanks for you quick response. In some of my case, I work for customer-derived project, so in some case the customer can hand me their draft panel list for spatial run, merscope, xenium. So just wander if this package, I can import a gene list and perform some evaluation like you mentioned " cell type classification accuracy, variation recovery, and gene redundancy".
Best

We have a few functionalities to evaluate any list of genes (you can simply load the list of genes e.g. with pd.read_csv("path/to/genes.csv") and then convert the genes column to a list). However, the evaluation always needs to be done in the context of a scRNAseq reference that is related to the tissue you planned your spatial experiment for.
In our evaluation tutorials you can find how to run the evaluations:
https://spapros.readthedocs.io/en/latest/_tutorials/spapros_tutorial_basic_evaluation.html
https://spapros.readthedocs.io/en/latest/_tutorials/spapros_tutorial_advanced_evaluation.html

Thank you so much!!! Can I ask 2 more questions:

Can I double-check, when using "selector = sp.se.ProbesetSelector(adata, n=140, celltype_key="cell_type", verbosity=1, save_dir=None)", no matter how n=X (140/300 or 500 number of genes), the Note will be the same saying: The following celltypes' test set sizes for forest training are below min_test_n (=20)"?
I finished "selector.select_probeset()" and "selector.probeset", but when tried to run "sp.pl.masked_dotplot(adata, selector)", there's an error showed:

KeyError                                  Traceback (most recent call last)
File ~\miniconda3\envs\spapro\lib\site-packages\pandas\core\indexes\base.py:3805, in Index.get_loc(self, key)
3804 try:
-> 3805     return self._engine.get_loc(casted_key)
3806 except KeyError as err:
File index.pyx:167, in pandas._libs.index.IndexEngine.get_loc()
File index.pyx:196, in pandas._libs.index.IndexEngine.get_loc()
File pandas\_libs\hashtable_class_helper.pxi:7081, in pandas._libs.hashtable.PyObjectHashTable.get_item()
File pandas\_libs\hashtable_class_helper.pxi:7089, in pandas._libs.hashtable.PyObjectHashTable.get_item()
KeyError: 'celltype'
The above exception was the direct cause of the following exception:
KeyError                                  Traceback (most recent call last)
Cell In[155], line 1
----> 1 sp.pl.masked_dotplot(adata, selector)
File ~\miniconda3\envs\spapro\lib\site-packages\spapros\plotting\plot.py:1578, in masked_dotplot(adata, selector, ct_key, imp_threshold, celltypes, n_genes, comb_markers_only, markers_only, cmap, comb_marker_color, marker_color, non_adata_celltypes_color, use_raw, save)
1575 from spapros.selection import ProbesetSelector
1577 if isinstance(selector, str):
-> 1578     selector = ProbesetSelector(adata, ct_key, save_dir=selector)
1579     # TODO: think the last steps of the ProbesetSelector are still not saved..., needs to be fixed.
1580
1581 # celltypes, possible origins:
1582 # - adata.obs[ct_key] (could include cts not used for selection)
1583 # - celltypes for selection (including markers, could include cts which are not in adata.obs[ct_key])
1584 # --> pool all together... order?
1586 if celltypes is not None:
File ~\miniconda3\envs\spapro\lib\site-packages\spapros\selection\selection_procedure.py:393, in ProbesetSelector.init(self, adata, celltype_key, genes_key, n, preselected_genes, prior_genes, n_pca_genes, min_mean_difference, n_min_markers, celltypes, marker_list, n_list_markers, marker_corr_th, pca_penalties, DE_penalties, m_penalties_adata_celltypes, m_penalties_list_celltypes, pca_selection_hparams, DE_selection_hparams, forest_hparams, forest_DE_baseline_hparams, add_forest_genes_hparams, marker_selection_hparams, verbosity, seed, save_dir, n_jobs)
391 self.min_mean_difference = min_mean_difference
392 self.n_min_markers = n_min_markers
--> 393 self.celltypes = self.adata.obs[self.ct_key].unique().tolist() if (celltypes == "all") else celltypes
394 # All celltypes in adata
395 self.adata_celltypes = self.adata.obs[self.ct_key].unique().tolist()
File ~\miniconda3\envs\spapro\lib\site-packages\pandas\core\frame.py:4102, in DataFrame.getitem(self, key)
4100 if self.columns.nlevels > 1:
4101     return self._getitem_multilevel(key)
-> 4102 indexer = self.columns.get_loc(key)
4103 if is_integer(indexer):
4104     indexer = [indexer]
File ~\miniconda3\envs\spapro\lib\site-packages\pandas\core\indexes\base.py:3812, in Index.get_loc(self, key)
3807     if isinstance(casted_key, slice) or (
3808         isinstance(casted_key, abc.Iterable)
3809         and any(isinstance(x, slice) for x in casted_key)
3810     ):
3811         raise InvalidIndexError(key)
-> 3812     raise KeyError(key) from err
3813 except TypeError:
3814     # If we have a listlike key, _check_indexing_error will raise
3815     #  InvalidIndexError. Otherwise we fall through and re-raise
3816     #  the TypeError.
3817     self._check_indexing_error(key)
KeyError: 'celltype'
My reference data frame: AnnData object with n_obs × n_vars = 5218 × 21069
obs: 'FACS.selection', 'age', 'cell', 'free_annotation', 'method', 'donor_id', 'subtissue', 'n_genes', 'n_counts', 'louvain', 'leiden', 'assay_ontology_term_id', 'disease_ontology_term_id', 'cell_type_ontology_term_id', 'tissue_ontology_term_id', 'development_stage_ontology_term_id', 'self_reported_ethnicity_ontology_term_id', 'sex_ontology_term_id', 'is_primary_data', 'organism_ontology_term_id', 'suspension_type', 'tissue_type', 'cell_type', 'assay', 'disease', 'organism', 'sex', 'tissue', 'self_reported_ethnicity', 'development_stage', 'observation_joinid'
var: 'n_cells', 'means', 'dispersions', 'dispersions_norm', 'highly_variable', 'feature_is_filtered', 'feature_name', 'feature_reference', 'feature_biotype', 'feature_length', 'feature_type'
uns: 'age_colors', 'citation', 'leiden', 'louvain', 'neighbors', 'pca', 'schema_reference', 'schema_version', 'title', 'log1p', 'hvg', 'cell_type_colors'
obsm: 'X_pca', 'X_tsne', 'X_umap'
varm: 'PCs'
obsp: 'connectivities', 'distances'

Thanks so much!


add consul_dnsmasq_listen_interfaces var

Allow to customize the listen interfaces of dnsmasq.
E.x:
consul_dnsmasq_listen_interfaces = ["lo", "docker0"]

Failing tests, lack of activity.


Interpret a newline as a line break when converting Markdown to HTML

When messages are typed in Element, it has a special case for interpreting newlines typed in the bar as <br/> tags instead of as a continuation of the current paragraph, which is the typical Markdown behaviour. This is more friendly towards the usual expectations in a chat client, where people usually type their paragraphs on one continuous line that wraps, instead of paragraphs that are split across multiple lines so that each one fits within a column limit.
iamb is currently using the markdown feature of the ruma crate to take care of converting Markdown to a formatted message, which uses the pulldown_cmark crate. The crate supports several parser options that can be used to change the default behaviour. None of them currently support this behaviour, but it might be possible to either add a new option to the crate, or to massage the input before it's handed over.

The comrak crate has a hardbreaks option that you can use when rendering HTML.


RUN44773514E obscures true cause of runtime startup failure

Is your feature request related to a problem? Please describe.
Consider the following environment configuration:
env:
  - name: RUNTIME_LAZY_LOAD_LOCAL_MODELS
     value: "TRUE"
    - name: RUNTIME_TRAINING_SAVE_WITH_ID
     value: "FALSE"
   - name: RUNTIME_TRAINING_OUTPUT_DIR
     value: "models"
   - name: RUNTIME_LOCAL_MODELS_DIR
     value: "/app/models"

This will lead to the following being printed as the last line of the stack:
  File "/usr/local/lib/python3.10/site-packages/caikit/core/exceptions/error_handler.py", line 384, in value_check
    self(
  File "/usr/local/lib/python3.10/site-packages/caikit/core/exceptions/error_handler.py", line 130, in log_raise
    raise exception
ValueError: value check failed: Must set runtime.local_models_dir with runtime.lazy_load_local_models

This is a confusing message because the user has specified both RUNTIME_LOCAL_MODELS_DIR and RUNTIME_LAZY_LOAD_LOCAL_MODELS. The actual cause of the failure is that the value for the former (/app/models) doesn't exist and it needs to if RUNTIME_LAZY_LOAD_LOCAL_MODELS is set to true. The user does see
{"channel": "MODEL-MANAGR", "exception": null, "level": "warning", "log_code": "<RUN53709826W>", "message": "Invalid runtime.local_models_dir /app/models. Does not exist", "num_indent": 0, "thread_id":<PHONE_NUMBER>67840, "timestamp": "2023-10-26T15:21:46.223266"} in the log file but seeing RUN44773514E as the final entry obscures the fact that the above warning is actually fatal.
Describe the solution you'd like
Clearer error or warning messaging about the requirement that RUNTIME_LOCAL_MODELS_DIR needs to be present.

Is the required solution here that the error message should be more expressive, signifying that the _local_models_dir while set, is not a valid dir path?

Yes, seeing "Invalid runtime.local_models_dir /app/models. Does not exist" as the terminal message in the stack instead of ValueError: value check failed: Must set runtime.local_models_dir with runtime.lazy_load_local_models would making resolution for the user much easier. At least it would have for me as I missed the first message in the flood of log messages and focused my attention on the latter.

Thank you for the feedback
Can you review https://github.com/caikit/caikit/pull/591 when you get a chance to see if addresses the issue


fix: create a test db with path

The old create_test_db did not actually write the db to the file.

It still fails on Benchmarking Stages/Merkle-incremental, but I don't know how to fix that.

It still fails on Benchmarking Stages/Merkle-incremental, but I don't know how to fix that.

Can you clarify this? None of those CI jobs are failing, so is it something we are not running on CI?

This regards to the benchmark of reth-stages, which is not included in bench workflows.
cargo bench --package reth-stages --bench criterion --features test-utils
It fails with
Benchmarking Stages/Merkle-incremental: Warming up for 3.0000 sthread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Validation { block: SealedHeader { header: Header { parent_hash: 0x8ee0f3d5d1bedf00bc7ec083c4b405b3c90ae3e340382ccb85fa51c2c03362c6, ommers_hash: 0x893880e42ea9c19545fb0574601768fd891c6193f3d9ba7d479555a89ab80bde, beneficiary: 0x0000000000000000000000000000000000000000, state_root: 0xc012c63d53e7c91ba33a99e4f2ab84466fa4fe9a3d8c04e41e6264763643b35c, transactions_root: 0xcaac2e574ff250a11e8cc00150e82f1ae07a7e5dfb316d696b1404c8ae4f60c0, receipts_root: 0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421, withdrawals_root: None, logs_bloom: 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, difficulty: 0x0000000000000000000000000000000000000000000000000000000000000000_U256, number: 10000, gas_limit: 3372694, gas_used: 3372694, timestamp: 0, mix_hash: 0x0000000000000000000000000000000000000000000000000000000000000000, nonce: 0, base_fee_per_gas: Some(10179575792090542462), extra_data: Bytes(0x) }, hash: 0x2af412702af58b9463af72fed00820f2e4d84d41c294b45cc5deb8d01244a88f }, error: BodyStateRootDiff { got: 0x8fa6474da4e4a386283d067507d95460d40c646b0b954b5754ec1f600bc20b08, expected: 0xc012c63d53e7c91ba33a99e4f2ab84466fa4fe9a3d8c04e41e6264763643b35c } }', crates/stages/benches/criterion.rs:141:55

Sorry not following - what is the issue that's being fixed here? cc @joshieDo re: the failing bench ^

Sure, here is how I came upon this.
I was reading crates/stages/benches/README.md and wanted to try them myself. So according to the readme I ran cargo bench --package reth-stages --bench criterion --features test-utils, which produced the following error:
Benchmarking Stages/TransactionLookup: Warming up for 3.0000 sthread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: DatabaseIntegrity(BlockBodyIndicesNotFound(1))', crates/stages/benches/criterion.rs:141:55
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

I investigated and found the line crates/stages/benches/criterion.rs:128 where we are creating TestTransaction with path crates/stages/testdata (which you can also find in .gitignore) but it was empty. The path is generated here and used to initiate the transaction with TestTransaction::new(&path), which clearly takes &path as an argument, but never uses it so the db is not created at the desired path, but at a temporary directory, so the stages benchmark cannot find them later.
My PR fixes this issue and the test db is created at the desired path crates/stages/testdata and the benchmarks successfully start.

Merged latest changes from main to my fix.

Rebased - cc @mattsse @joshieDo wonder how we missed this?


feature/pulsar: add producer option disableBatching

https://github.com/dapr/components-contrib/pull/1419

@1046102779  We can get this in at the same time as https://github.com/dapr/docs/pull/2090. Can we get #2090 in first?

@1046102779 did you remove your fork or branch that included these changes? I'm unable to merge this PR.
Would you mind reopening a pull request with these changes and we can approve/merge? Thank you.

PR addressing this merged: https://github.com/dapr/docs/pull/2146


fix(parser): add HTTPRoute combined services routes

What this PR does / why we need it:
Add support for combined service routes when parsing gw api HTTPRoutes. Rules from HTTPRoute are grouped under matching set of backend references.
Which issue this PR fixes:
Part of https://github.com/Kong/kubernetes-ingress-controller/issues/2881
Special notes for your reviewer:
PR Readiness Checklist:
Complete these before marking the PR as ready to review:

[x] the CHANGELOG.md release notes have been updated to reflect any significant (and particularly user-facing) changes introduced by this PR

@rainest It's not that simple.

Multiple rules that use the same Service and Filters should result in a single route with multiple paths.

If we consolidate the rules to that degree, we need to take into consideration the method and headers hidden in the HTTPRouteMatch too. They may differ between HTTPRouteRule instances.


Fix #822 Export Armatures without skined mesh

Fix #822 Export Armatures without skined mesh

I tested by selecting the skeleton and exporting as glb with selected only.
Works.
Tested on Blender 3.2 dailies from steam and your pr branch.
Fox_anims.zip

Selecting more than one armature works too.

The fox animation is broken in the zip but when exported again it should look like:

fox.zip

@fire I don't get what you mean in your last comment

I meant that in my sample zip, I uploaded the wrong file. Your pr works as intended.


add new logging steps

Coverage increased (+0.01%) to 78.168% when pulling 7dbe4be5140edd09254429618d0fb005a665f115 on ivanboklach:additional_logging into e8502a1ec48ca4e872a34a18f2df0bfee717e689 on alfa-laboratory:master.


Fix non-local-engine Linux release builds

Description
Downloads the necessary artifacts for release mode and profile mode on Linux. #57135 turns out to have only worked with --local-engine.
This uses applies the same artifact changes that were made to support Windows release mode to Linux.
Related Issues
Fixes https://github.com/flutter/flutter/issues/58365
Tests
I added the following tests: Verifies that profile/release artifacts are listed.
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I signed the CLA.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I updated/added relevant documentation (doc comments with ///).
[x] All existing and new tests are passing.
[x] The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Did any tests fail when you ran them? Please read Handling breaking changes.

[x] No, no existing tests failed, so this is not a breaking change.
[ ] Yes, this is a breaking change.

Description
Downloads the necessary artifacts for release mode and profile mode on Linux. #57135 turns out to have only worked with --local-engine.
This uses applies the same artifact changes that were made to support Windows release mode to Linux.
Related Issues
Fixes #58365
Tests
I added the following tests: Verifies that profile/release artifacts are listed.
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

[x]  I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x]  I signed the CLA.
[x]  I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x]  I read the Tree Hygiene wiki page, which explains my responsibilities.
[x]  I updated/added relevant documentation (doc comments with ///).
[x]  All existing and new tests are passing.
[x]  The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
[x]  I am willing to follow-up on review comments in a timely manner.

Breaking Change
Did any tests fail when you ran them? Please read Handling breaking changes.

[x]  No, no existing tests failed, so this is not a breaking change.
[ ]  Yes, this is a breaking change.

Thanks for this @stuartmorgan!

@MarcusTomlinson Sorry for totally dropping the ball on updating the GLFW artifact upload bug, which is how we got here in the first place!


Move settings to environment file

The settings were moved to .env.deploy and .env.development files (using the dotenv package)

this prevents bot tokens from being uploaded to git

Other changes:

added module requirements to a requirements.txt file
added .gitignore items for cleaner commits
removed the current_requests.txt file outside of git control (since it changes continuously).  This file will created on first run
added upfront checks for the URL and BOT_KEY definitions before starting the app

@CyberTimon : sure thing!  These one's were fairly simple just so I could keep my local settings.  I was thinking of adding the choice of model to the prompt (such that the user can choose the model to use).  This should be fairly simple since the available models can be queried from the API


Feature Request: Add Support for ParameterGroups/ParameterLabels

Description:*
Currently when one deploys the Serverless Application the UI does not support ParameterGroups and ParameterLabels
Even though I added below snippet the screenshot shown below does not have any groups
Metadata:
  AWS::CloudFormation::Interface:
    ParameterGroups:
      -
        Label:
          default: "Sumo Logic Deployment Configuration"
        Parameters:
          - SumoDeployment
          - SumoAccessID
          - SumoAccessKey
      -
        Label:
          default: "Collection Configuration"
        Parameters:
          - CollectorName
          - SourceName
          - SourceCategoryName
          - RemoveSumoResourcesOnDeleteStack
    ParameterLabels:
      SumoDeployment:
        default: "Deployment Name"
      SumoAccessID:
        default: "Access ID"
      SumoAccessKey:
        default: "Access Key"
      CollectorName:
        default: "Collector Name"
      SourceName:
        default: "Source Name"
      SourceCategoryName:
        default: "Source Category Name"
      RemoveSumoResourcesOnDeleteStack:
        default: "Remove Sumo Resources On Delete Stack"

Observed result:

Expected result:
Ideally the groups should be similar to how Cloudformation shows in its UI as shown below

Thanks! I brought this up with the Serverless Application Repository team.


Implement IDisposable in WatsonCluster classes and call Dispose for WatsonTcp resources

Please implement IDisposable in WatsonCluster classes according to the standard pattern, such that WatsonTcp resources are disposed of when Dispose is called on the ClusterNode / ClusterClient / ClusterServer. Resources may leak otherwise, in theory at least.
Ideally, I would like to call Dispose on the ClusterNode from my own IDisposable, or instantiate my ClusterNode in a using block, and have it release all associated resources when the application is refreshing, rather than rely on the garbage collector and/or process shut down before the connections are guaranteed to be closed / IsHealthy() no longer true on the peer instance.
Willing to help review and test if you do implement this. Thanks!

Hi @brudo !  Just committed and pushed a fix, please let me know your thoughts.  Thanks for making the library better.  https://github.com/jchristn/WatsonCluster/commit/c476403414c2b21aa11131908b9deae31b2a1dd8

I tested; it does not cause a regression and now does support the disposable resource pattern. Thanks to you!


Get-Help does not return help about the 'PowerShell Help System' when being called parameterless in PS6-Beta1 on Windows

In PowerShell 5.1 one can get help about the 'PowerShell Help System' in general with Get-Help. However, in PowerShell 6.0Beta1 this is broken (on Windows)
Steps to reproduce
Get-Help
Expected behavior
TOPIC
Windows PowerShell Help System
SHORT DESCRIPTION
Displays help about Windows PowerShell cmdlets and concepts.
LONG DESCRIPTION
Windows PowerShell Help describes Windows PowerShell cmdlets,
functions, scripts, and modules, and explains concepts, including
the elements of the Windows PowerShell language.
Windows PowerShell does not include help files, but you can read the
help topics online, or use the Update-Help cmdlet to download help files
to your computer and then use the Get-Help cmdlet to display the help
topics at the command line.

You can also use the Update-Help cmdlet to download updated help files
as they are released so that your local help content is never obsolete.

Without help files, Get-Help displays auto-generated help for cmdlets,
functions, and scripts.

ONLINE HELP
You can find help for Windows PowerShell online in the TechNet Library
beginning at http://go.microsoft.com/fwlink/?LinkID=108518.
To open online help for any cmdlet or function, type:

    Get-Help <cmdlet-name> -Online

UPDATE-HELP
To download and install help files on your computer:
   1. Start Windows PowerShell with the "Run as administrator" option.
   2. Type:

      Update-Help

After the help files are installed, you can use the Get-Help cmdlet to
display the help topics. You can also use the Update-Help cmdlet to
download updated help files so that your local help files are always
up-to-date.

For more information about the Update-Help cmdlet, type:

   Get-Help Update-Help -Online

or go to: http://go.microsoft.com/fwlink/?LinkID=210614

GET-HELP
The Get-Help cmdlet displays help at the command line from content in
help files on your computer. Without help files, Get-Help displays basic
help about cmdlets and functions. You can also use Get-Help to display
online help for cmdlets and functions.
To get help for a cmdlet, type:

    Get-Help <cmdlet-name>

To get online help, type:

    Get-Help <cmdlet-name> -Online

The titles of conceptual topics begin with "About_".
To get help for a concept or language element, type:

    Get-Help About_<topic-name>

To search for a word or phrase in all help files, type:

    Get-Help <search-term>

For more information about the Get-Help cmdlet, type:

    Get-Help Get-Help -Online

or go to: http://go.microsoft.com/fwlink/?LinkID=113316

EXAMPLES:
Save-Help              : Download help files from the Internet and saves
them on a file share.
Update-Help            : Downloads and installs help files from the
Internet or a file share.
Get-Help Get-Process   : Displays help about the Get-Process cmdlet.
Get-Help Get-Process -Online
: Opens online help for the Get-Process cmdlet.
Help Get-Process       : Displays help about Get-Process one page at a time.
Get-Process -?         : Displays help about the Get-Process cmdlet.
Get-Help About_Modules : Displays help about Windows PowerShell modules.
Get-Help remoting      : Searches the help topics for the word "remoting."
SEE ALSO:
about_Updatable_Help
Get-Help
Save-Help
Update-Help
Actual behavior
The command Get-Help does not return help but an array with 2 objects that are not of any use/help:
Name                              Category  Module                    Synopsis

default                           HelpFile                            SHORT DESCRIPTION
default                           HelpFile                            SHORT DESCRIPTION
(Get-Help) | select -Property *  returns:
Name          : default
Category      : HelpFile
Synopsis      : SHORT DESCRIPTION
Component     :
Role          :
Functionality :
Length        : 3565
Name          : default
Category      : HelpFile
Synopsis      : SHORT DESCRIPTION
Component     :
Role          :
Functionality :
Length        : 3565
Environment data
Name                           Value

PSVersion                      6.0.0-beta
PSEdition                      Core
BuildVersion                   <IP_ADDRESS>
CLRVersion
GitCommitId                    v6.0.0-beta.1
OS                             Microsoft Windows 10.0.15063
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

There are several related problems, and I've just tried to consolidate them in #3782.

This is a duplicate of #3503. When it's fixed, this will also be fixed.


Incorrect timezone used

Hi,
I just installed rainloop, and it seems to work great, except for a little detail : in the mail list, the time is off. For example I just sent myself an email, and it says I received it an hour ago instead of just now. When I click on the message, the date displayed on top is off by one hour on every mails.
My server is using the correct timezone (Europe/Paris), the date command in a shell does return the correct time, and in php.ini (and indeed in a phpinfo(); call) the timezone is set to Europe/Paris. Any idea ? I tried sending a mail with rainloop to myself, the Date header seems to be in UTC, and with mutt the Date header is in UTC +1, in both case it's the correct time (relative to the timezone) but rainloop displays it "one hour ago".
Thanks

Well, RainLoop does not use php timezone configuration.
It gets date from email message, converts to UTC and displays it in your client's (web-browser) time zone.

That seems weird, the date in the message is correct, and I'm pretty sure
my browser timezone is correct too. At least my system timezone is.
I tried from multiple browsers on multiple computers, always the same
problem.
2016-01-20 11:00 GMT+01:00 RainLoop Team<EMAIL_ADDRESS>
Well, RainLoop does not use php timezone configuration.
It gets date from email message, converts to UTC and displays it in your
client's (web-browser) time zone.
—
Reply to this email directly or view it on GitHub
https://github.com/RainLoop/rainloop-webmail/issues/931#issuecomment-173151464
.

--
Kévin Lemonnier

I try to configure fail2ban, but timezone is incorrect in log file :
[2016-03-17 23:38:11] Auth failed: ip=<IP_ADDRESS><EMAIL_ADDRESS>host=<IP_ADDRESS> port=993
In fact it's 00:38:11 (UTC+1)
PHP timezone is good.
SYSTEM timezone is good (ntp).
Any idea ?
Thank you.

@gfontaniere
RainLoop uses UTC timezone in log files.
It can be change in the configuration file.
./data/../application.ini
[logs]
time_offset = 2 // 2h => UTC+2

Indeed...
Thnk you.

I have the same issue. My timezone is EEST (GMT+3) and in mail list date/time is incorrect. I tried sending mail to myself, my local mail client shows time of this message correct, but in RainLoop list this time shows 3 hours less. Server time and timezone set correctly, local time and timezone too. I checked this from more than 10 desktops with different OSes and Browsers. I think RainLoop web interface displays time in UTC, but this is very unuseful for users. It will be great if RainLoop web interface shows date/time in browser timezone.

After changing the settings to:
date_from_headers = On
use_imap_sort = On
dates in web interface displayed correctly and converted to browser timezone.

RainLoop always uses browser timezone to display dates in the message list.  This means that most likely, something is wrong with your mail server.

What field used for date detecting?
I checked headers and find three date field:
Received: on behalf of honored client by ... with ESMTPS id ...
        for <...> on Fri, 22 Sep 2017 16:31:06 +0300 (EEST)
Date: Fri, 22 Sep 2017 16:30:58 +0300
X-Envelope-Date: Fri Sep 22 13:31:39 2017

With "date_from_headers = On" in config RainLoop shows me 16:31 but with "date_from_headers = Off" - 13:31. The same client/server/browser.

With "date_from_headers = Off" RainLoop uses IMAP INTERNALDATE response value (by default). This value provided by your IMAP server. But some servers do it incorrect, so "date_from_headers = On" can fix this problem.

I'm using dovecot, which seems pretty standard to me. The timezone is
correct everywhere but in rain loop so something weird is definitely
happening
Le 25 sept. 2017 19:36, "RainLoop Team"<EMAIL_ADDRESS>a écrit :

With "date_from_headers = Off" RainLoop uses IMAP INTERNALDATE response
value (by default). This value provided by your IMAP server. But some
servers do it incorrect, so "date_from_headers = On" can fix this problem.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/RainLoop/rainloop-webmail/issues/931#issuecomment-331973008,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA1Tz8BdL1v_bpgvcx6jfIK4NuDDUDroks5sl_KTgaJpZM4HIGyN
.

Checked our IMAP server:
03 FETCH 110:110 INTERNALDATE
* 109 FETCH (INTERNALDATE "27-Sep-2017 11:50:19 +0000")
03 OK FETCH Completed

So server provides date in UTC and many different desktop and mobile mail clients shows this date in client local timezone. But RainLoop shows in UTC.

@pc-maniac RainLoop gets this date in UTC and shows it in local browser timezone.
Most of desktop and mobile mail clients get date from headers, so RainLoop can do it too with date_from_headers = On


@ApolloConfigChangeListener同一个key同时触发多个动作监听不生效

描述bug
对于某个key,在同一个线程中先删除然后马上添加相同的key/value, 但是@ApolloConfigChangeListener没有收到对应的事件；
打断点debug能正常收到变更事件，使用Thread.sleep(500)也能收到事件。
概率性的，多试几次其中某次会收到事件。
复现
通过如下步骤可以复现：

同一个key先删除再添加相同的key/value
@ApolloConfigChangeListener没有收到对应的事件

版本：1.7.0

Do you mean to use the openapi to delete some key and add the same key/value back?
In that case, I think it's possible the client won't trigger @ApolloConfigChangeListener as apollo is designed to be a configuration management system that manages the configuration items instead of an event system.

Yes. Do you mean @ApolloConfigChangeListener can not  receive every event of item change? In this case, it can not promise to synchronize item value using @ApolloConfigChangeListener.
Any other ways to synchronize item value in local cache?

apollo is designed to be an eventually consistent system, suppose there is an item called timeout with an initial value 1000.

timeout is changed to 2000
timeout is changed to 3000
timeout is changed back to 1000

apollo server will notify the apollo client that timeout is changed 3 times. apollo client will also call apollo server to fetch the value of timeout 3 times. However, depends on the interval between the changes, the apollo server might return different values each time - (2000, 3000, 1000), (2000, 1000, 1000), (3000,1000,1000), (1000,1000,1000), etc.
But apollo client will always get the latest value 1000 eventually. So it should be ok to use this listener to handle the local cache.

Got it, thanks!

Got it, thanks!


Travis CI Pipeline to Test Build Step

Deploys a MacOS Instance
Installs necessary tools
Pulls latest master and fetches latest tags
Builds:

IncludeOS kernel
LiveUpdate

Caches $HOME/Library/Caches/Homebrew

Note: A cleanup of brew is carried out before caching, this ensures that the cache doesn't get bulky with unnecessary things.

Closing this PR for now. We can resurrect it if we need travis/osx support


API Request: expose getpwent and getgrent

These two syscalls sequentially scan the /etc/passwd/ and /etc/group` databases and return all the entries in those files one by one.
Signature
pub fn getpwent() -> Result<Vec<User>, Errno>;
pub fn getgrent() -> Result<Vec<Group>, Errno>;

Implementation
On some OSes, we have non-reentrant functions getpwent_r() and getgrent_r(). If so, they will be used. Otherwise, will use getpwent() and getgrent().
Here is  draft implementation of getgrent under Linux:
pub fn getgrent() -> Result<Vec<Group>, Errno> {
    let mut v: Vec<Group> = Vec::new();

    let mut gr_buf: group = unsafe { zeroed() };
    let mut gr_str_buf: [c_char; 4096] = [0; 4096];
    unsafe { setgrent() };

    loop {
        let mut result: *mut group = null_mut();
        let res: c_int = unsafe {
            getgrent_r(
                &mut gr_buf as *mut group,
                &mut gr_str_buf as *mut c_char,
                4096,
                &mut result as *mut *mut group,
            )
        };

        // no more entries
        if res == ENOENT {
            unsafe { endgrent() };
            break;
        }

        // error
        if res == ERANGE {
            return Err(Errno::from_i32(ERANGE));
        }

        // man page for `getgrent_r` only lists the two above erroneous cases.
        // In other cases, it should be successful.
        assert_eq!(res, 0);
        v.push(Group::from(&gr_buf));
    }

    Ok(v)
}

Note

The above implementation calls setgrent and endgrent inside, which actually changes the semantics of this syscall.

Due to Note 1, perhaps we can give a better name to those syscalls, like:
impl User {
    pub fn all_users() -> Result<Vec<User>, Errno>;
}
impl Group {
    pub fn all_groups() -> Result<Vec<Group>, Errno>;
}

I think it would be clearer if unsafe { endgrent() }; would be moved below the loop.

I think it would be clearer if unsafe { endgrent() }; would be moved below the loop.

Good catch! It should be.

Hm.  This would work.  But I suggest changing the interface to avoid collecting into a Vec.  More like this:
struct GroupIter {...}
impl Iterator for GroupIter {
    type Item = Group;
    fn iter(&mut self) -> Self::Item {..}
}
impl Group {
    fn iter() -> GroupIter {...}
}

@asomers this could easily accidentially run into problems when multiple parts of the program access the thread-local iterator using multiple iterator instances. Why not use FromIterator instead?

You could mark the GroupIter as !Send and !Sync to prevent multiple threads from accessing it.  How do you suggest using FromIterator?

Oh, not only that, I was talking about creating multiple instances of GroupIter on the same thread, then accessing them in such a way that they all get consumed in a mixed fashion, so at least some of them get not iterated from front-to-back without interleaving with another one. This would afaik result in each of them "receiving" a partition of the entries, which imo is bad.

Well, that wouldn't happen if you use getgrent_r, right?

We still use setgrent and endgrent, they don't take a buffer/context handle, so I assume they wouldn't be safe to use in that case, right?

Oh, not only that, I was talking about creating multiple instances of GroupIter on the same thread, then accessing them in such a way that they all get consumed in a mixed fashion, so at least some of them get not iterated from front-to-back without interleaving with another one. This would afaik result in each of them "receiving" a partition of the entries, which imo is bad.

This is correct, it is safe only if we can guarantee that there is only one instance running cause setpwent/getpwent will modify a global state.
rust-users is a crate that does a similar job. They expose these syscalls in an interface of an iterator, but they mark this as unsafe, here is the document.
pub unsafe fn all_users() -> impl Iterator<Item = User>

And here is a related issue.
BTW, is this perspective, my draft impl is also unsafe if multiple functions are run in parallel, right?

BTW, in this perspective, my draft impl is also unsafe if multiple functions are run in parallel, right?

yes. Unless you protect the code section between setgrent and endgrent (inclusive these calls) and such with a Mutex.


Improve support to Redis error messages

To receive Redis error messages Aedis users must use use resp3::node or std::vector<resp3::node> as response types. This is to restricting as most users want to receive responses in their final data structure.
One idea to support this is to pass the error as the second parameter of the adapt function, so that instead of e.g
co_await conn->async_exec(req, adapt(resp))cpp
users would be able to
co_await conn->async_exec(req, adapt(resp, error))cpp
and the adapter would store the error in the error variable.

Before integration in a boost release I want to address the problems mentioned above since they were also pointed out in the Boost review (but not as part of the conditions). Stated more clearly, we need

A way deliver Redis diagnostic messages to the user.
A way to specify that an error in the execution of a specific command is acceptable.

The solution proposed above does not address all concerns pointed by Ruben. The new solution looks like this

Specifying a response

   // Before.
   std::tuple<T1, T2, T3, ...> responses;

   // After
   boost::redis::responses<T1, T2, T3, ...> responses;

Accessing the response of an element

   // Before
   auto r = std::get<2>(responses);

   // After
   auto r = std::get<2>(responses).value;

Accessing errors

   // Before: Throws if any command in the pipeline fails and the connection is closed.
   co_await conn->async_exec(req, adapt(responses));

   // After: User can specify that errros are acceptable for specific commands.
   std::get<2>(responses).ignore_error = true;
   co_awat conn->async_exec(req, adapt(responses));

the error can then be accessed with
   if (std::get<2>(responses).ec) {
      // The diagnostic is available
      std::clog << std::get<2>(responses).error_diagnostic << std::endl;
   }
   // The connection remains open.

To achieve this boost::redis::responses will be defined as
   // Before
   template <class... Values>
   using responses = std::tuple<Values...>;

   // After
   template <class... Values>
   using responses = std::tuple<response<Values>...>;

where
   template <class Value>
   struct response {
      bool ignore_error = false;
      error_code ec;
      std::string error_diagnostic;
      Value value;
   };

I am also considering add a typedef for generic responses (omitting allocator parameters)
using generic_responses = std::vector<resp3::node<std::string>>;

Klemens proposed to use system::result which would make the response above look like
   template <class Value>
   struct response {
      bool ignore_error = false;
      std::string error_diagnostic;
      system::result<Value> value;
   };

In addition to that, ashtum proposed the elimination of ignore_error which would likewise simplify even further
   template <class Value>
   struct response {
      std::string error_diagnostic;
      system::result<Value> value;
   };

This would require however some changes in the behaviour: The connection should not be closed and async_exec should always complete with error are a result of a resp3 error. I think this is reasonable and would make boost::redis more similar to other redis clients.

Because the response is either an error or a value there might be a way for using a sum type instead of a struct for the response.
As a sketch:
struct response_error
{
    enum class type
    {
        terminated,   // on network error or cancellation
        simple,
        blob,
        unexpected_nil
    };

    type        type;
    std::string payload;
};

using response = system::result<Value,response_error>;


Observered latency in the chain.invoke

Checked other resources

[X] I added a very descriptive title to this issue.
[X] I searched the LangChain documentation with the integrated search.
[X] I used the GitHub search to find a similar question and didn't find it.
[X] I am sure that this is a bug in LangChain rather than my code.
[X] The bug is not resolved by updating to the latest stable version of LangChain (or the specific integration package).

Example Code
import os
from azure.identity import ClientSecretCredential, get_bearer_token_provider
from langchain_openai import AzureChatOpenAI
def llm_connection(model="gpt-4o",
temperature=0.2,
top_p=0.1,
max_tokens=2000,
max_retries=1):
credentials = {
"tenant_id": os.getenv("AZURE_TENANT_ID"),
"client_id": os.getenv("AZURE_CLIENT_ID"),
"client_secret": os.getenv("AZURE_CLIENT_SECRET"),
"openai_endpoint": os.getenv("API_BASE"),
"azure_api_version": os.getenv("AZURE_API_VERSION", "2024-04-01-preview"),
"subscription_key": os.getenv("SUBSCRIPTION_KEY"),
}
llm = instantiate_llm( credentials,
                       azure_deployment = model,
                       temperature = temperature,
                       top_p = top_p,
                       max_tokens = max_tokens,
                       max_retries = max_retries)
return llm

def instantiate_llm(
credentials: dict,
azure_deployment: str = "gpt-4o",
temperature: float = 0.2,
top_p=0.1,
max_tokens: int = 1000,
max_retries: int = 1,
):
"""
Instantiate llm model
"""
csc = ClientSecretCredential(
    tenant_id=credentials["tenant_id"],
    client_id=credentials["client_id"],
    client_secret=credentials["client_secret"],
)

llm = AzureChatOpenAI(
    azure_endpoint=credentials["openai_endpoint"],
    api_version=credentials["azure_api_version"],
    azure_deployment=azure_deployment,
    azure_ad_token_provider=get_bearer_token_provider(
        csc, "https://cognitiveservices.azure.com/.default"
    ),
    default_headers={"Ocp-Apim-Subscription-Key": credentials["subscription_key"]},
    temperature=temperature,
    top_p=top_p,
    max_tokens=max_tokens,
    max_retries=max_retries,
)

return llm

prompt_template = ChatPromptTemplate.from_messages(
[("system", EMAIL_WRITER_SYSTEM)]
)
chain = prompt_template | llm | StrOutputParser()
response = chain.invoke(<request_payload>)
Error Message and Stack Trace (if applicable)
Retrying request to /chat/completions in 0.376881 seconds
Description
We have observed intermittent latency in the chain.invoke
At times it takes couple of minutes before it makes Open AI HTTP Post Request and there is no logging on the operation taking time.
With the same payload, at times the whole chain completes in 10 seconds where as we observe the latency with no logging and Error message Retrying request to /chat/completions in
We would like to understand the issue with langchain invoke on why there is latency observed in the
Note: both the requests are with same payload
Latency observed during this sequence of steps

No latency during this call -

System Info
$ pip freeze
aiohappyeyeballs==2.4.3
aiohttp==3.10.10
aiosignal==1.3.1
annotated-types==0.7.0
anyio==4.6.2.post1
async-timeout==4.0.3
attrs==24.2.0
azure-core==1.32.0
azure-functions==1.21.3
azure-identity==1.19.0
beautifulsoup4==4.12.3
certifi==2024.8.30
cffi==1.17.1
charset-normalizer==3.4.0
click==8.1.7
colorama==0.4.6
coverage==7.6.4
cryptography==43.0.3
databricks-sql-connector==3.4.0
dataclasses-json==0.6.7
distro==1.9.0
et_xmlfile==2.0.0
exceptiongroup==1.2.2
fastapi==0.115.4
frozenlist==1.5.0
greenlet==3.1.1
h11==0.14.0
httpcore==1.0.6
httpx==0.27.2
httpx-sse==0.4.0
idna==3.10
iniconfig==2.0.0
isodate==0.7.2
jiter==0.7.0
jsonpatch==1.33
jsonpointer==3.0.0
langchain==0.3.7
langchain-community==0.3.5
langchain-core==0.3.15
langchain-openai==0.2.6
langchain-text-splitters==0.3.2
langsmith==0.1.140
lxml==5.3.0
lz4==4.3.3
marshmallow==3.23.1
msal==1.31.0
msal-extensions==1.2.0
msrest==0.7.1
multidict==6.1.0
mypy-extensions==1.0.0
numpy==1.26.4
oauthlib==3.2.2
openai==1.54.3
openpyxl==3.1.5
orjson==3.10.11
packaging==24.1
pandas==2.2.0
pluggy==1.5.0
portalocker==2.10.1
propcache==0.2.0
py4j==<IP_ADDRESS>
pyarrow==16.1.0
pycparser==2.22
pydantic==2.9.2
pydantic-settings==2.6.1
pydantic_core==2.23.4
PyJWT==2.9.0
pyspark==3.2.2
pytest==8.3.3
python-dateutil==2.9.0.post0
python-dotenv==1.0.1
pytz==2024.2
pywin32==308
PyYAML==6.0.2
regex==2024.11.6
requests==2.32.3
requests-oauthlib==2.0.0
requests-toolbelt==1.0.0
six==1.16.0
sniffio==1.3.1
soupsieve==2.6
SQLAlchemy==2.0.35
starlette==0.41.2
tenacity==9.0.0
thrift==0.20.0
tiktoken==0.8.0
tomli==2.0.2
tqdm==4.67.0
typing-inspect==0.9.0
typing_extensions==4.12.2
tzdata==2024.2
urllib3==2.2.3
uvicorn==0.32.0
yarl==1.17.1

@KalakondaSainath I would suggest you use LANGSMITH to trace your chain, this way you will be better able to break down the latency coming from each runnable in chain.

@keenborder786 - Bringing LANGSMITH to our org is big task going through approvals and buy the product. Can we get inputs on why there is gap of 2.5 mins from below run, between ClientSecret token and Retry request. Any additional logs we can enable in langchain to understand how retry logic "wait_exponential" is being used in create_base_retry_decorator

@KalakondaSainath

@rayamoh I think so the best solution in your case will be to write a custom Call Back Handler which keep track of time tracking and then use it in chain:

prompt = PromptTemplate.from_template("Answer the following question: {question}")
chain = prompt | ChatOpenAI()
chain.invoke(input = {'question': 'What is LangChain?'}, config=RunnableConfig(callbacks=[StdOutCallbackHandler(), StreamingStdOutCallbackHandler()]))


Audio autoplay

How to make audio play auto in this repository?

Hey @nad-if 👋
I believe you'd have to use the HTML <audio> element for that. It accepts an attribute autoplay that makes the audio play automatically. See more details here: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio
However, this isn't related to this project, so I'll close this issue. But feel free let me know if you need any help! 🙂


Implement Form block

Please always provide the GitHub issue(s) your PR is for, as well as test URLs where your change can be observed (before and after):
Fix #54
Test URLs:

Original: https://www.esri.com/en-us/capabilities/imagery-remote-sensing/capabilities/management
Before: https://main--esri--aemsites.hlx.live/drafts/vciocoiu/form
After: https://add-one-form--esri--aemsites.hlx.live/drafts/vciocoiu/form

The forms need authorable fields -- probably as component metadata.
Fields that need the ability to be updated by authors:

dark | light mode
Form name
Thank you form type
custom form config
mql behavior
gdpr mode


Fix version number typo for Azure Keyvault

The version number listed was 4.2.1, when it should have been 1.2.4.  A simple typo.

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


[AMP] Turn off accumulation data types for mixed precision pass

CUDA codegen cannot seem to handle half types super well. Furthermore, mixing half types and floating point also seems to expose additional issues. Furthermore, some schedules which are supposed to support heterogenous outputs do not.
This seems like a problem in codegen not with the mixed precision pass, so for now I am turning off accumulating into FP32 for the mixed precision pass. With this we can tune BERT and YoloV2 with results here: https://docs.google.com/spreadsheets/d/12lgyfuHaRS-X4uG-1iQOV8oAuPpuVAbspcmkOSPRFHQ/edit#gid=0
I will leave the codegen issues for https://github.com/apache/tvm/issues/8294.
I will leave the issues with schedule not supporting output dtypes here https://github.com/apache/tvm/issues/8340

CI failed due to #8344


Add calories/macros to meals

I schedule my meals based on calories/protein per portion, should we add those to the meals listing page?

Thanks for the suggestion! I think it's best to add this as free field (text/numerical) to recipes? I am not used to work with calories recipe planning, so please let me know how this could be implemented. An automatic calories calculator based on ingredients is likely too difficult I assume. Also, can we scale calories based on servings? Or is it a non-trivial scale?
Of course once implemented, we could filter/search based on calories range or we can just sum all calories from recipes a given day etc.


New Login method does not work: the app is restricted to Spotify Premium only

When I'm trying to Login via the new Login method, starting SpotifyXP and then an official Spotify app, then open Devices section and clicking SpotifyXP app, it does now work as described: there is an error that this app is restricted only to Spotify Premium subscription and after clicking the item, nothing happens:

Debug output is visible on screenshot too.
Tested OS: Ubuntu 21.10.
I don't know how to see the version of the official Spotify app in the modern interface (if needed).

My current subscription is Spotify is Free if what.

I can confirm that this issue is happening with my Free Spotify, also.

OS: Ubuntu 24.04 LTS
Spotify apps tried: Mobile Spotify, Ubuntu Desktop, MacOS Ventura Desktop, Windows 11 Desktop.
Current Subscription: Spotify Free

Unfortunately I can't do anything about that until  Spotify publishes this part in their documentation.... or until somebody can extract the commercial Spotify library

I'm on Free plan and can confirm this issue. I wonder if it is possible to change the Device ID from "SpotifyXP" to "Chromecast"? Spotify allow Free account connect to any Chromecast devices (such as Android TV), maybe this trick will actually work..?

If the program broadcasts itself as a Chromecast and uses those protocols, but I am not sure if that would work.

Spotify also allows Spotify Connect devices for free accounts. What I would need is the Spotify eSDK. If one of you have a device that supports Spotify Connect with a free account and the update files have a filesystem I could extract the eSDK from it


click event fires on double click (i.e. when zooming)

When I zoom in via double click and my mouse is over a COG, it fires one or two click events for the COG/Asset. I think this is undesirable as the main purpose of the double click is zooming.

Seems like that's "by design" in Leaflet. Was able to work around by debouncing the clicks...


Safer token storage

See if we can lock that token.json file down or something, or store it as an env variable and then check it out every time?
Very least some kind of chmod so an malicious attack would have to sudo at least (?)

Asked a question on the stackoverflows

Can I pick this up @himynameisdave ?

Yes, what is your plan of action?

I'd like to use https://github.com/buttercup-pw/buttercup-core to encrypt the tokens. We could allow the user to choose a password which they can remember, which will be used to encrypt/decrypt the password in the buttercup archive.

@Jameskmonger yeah I'm cool with that solution :+1:

@Jameskmonger when you open a PR for this, please merge it into the v0.7.0 branch, which is my working branch for all of the 0.7.0 milestone stuff


Pasted Images Do Not Appear in Specified Folder When Using VSCode Remote on Ubuntu from MacOS

Steps to Reproduce:

Connect to a remote Ubuntu machine from VSCode on MacOS.
Paste an image into a project directory from MacOS to remote Ubuntu in LaTeX file.
error: there is no expected image pasted in LaTeX file.
Check the specified folder for the image -> no expected image(empty folder) :(

Expected Behavior:
After pasting an image into a project directory, the image should be saved in the specified folder, and its path should be automatically pasted.
Current Behavior:
When an image is pasted from local MacOS while using VSCode connected to an remote Ubuntu to paste, the image does not appear in the specified saved folder on Ubuntu( though the saved folder was created correctly). Furthermore, the image is not automatically pasted as expected in Ubuntu.
Environment:
OS: MacOS (SSH to remote Ubuntu)
VSCode Version: Version: 1.87.2 (Universal)
This issue significantly disrupts workflow, especially when dealing with LaTeX files where images need to be referenced frequently. Any insights or workarounds would be greatly appreciated.

Extension Paste Image is not working#25902
@mushanshitiancai
I have noticed a similar problem, and a developer mentioned that "Visual Studio Code's API offers access to the local clipboard but only supports text content, not images".
Can you provide suggestions on how to connect a local laptop to a remote Linux host to write LaTeX  pasting images from local to remote? :)


Implement GUI system, Part 1

This revision includes:

Implement GUI system (#8)

Add library 'gl3w' to use OpenGL
Create structs

Inputs: This struct stores the position of mouse and the state of key/button
Size: This struct stores the size of the component for mouse picking
Color: This struct stores the color of the component
TextRenderer: This struct stores the data for rendering text at position with color
ShapeRenderer: This struct stores the functor for rendering shape
VertexPC: This struct stores the data for the position and color
CashButtonToggler: This struct stores the value of threshold to toggle the owner button depending on the cash threshold held by the player
Button: This struct defines basic properties of a button
Hoverable: This struct stores the value of normal/hover color
Resources: This struct stores resource handles

Add functions

OnMouseButtonPressed(): Callback when the mouse button is pressed
OnMouseButtonReleased(): Callback when the mouse button is released
CreateTowerButton(): Create a tower button
DrawBox(): Draws an box shape
UpdateShapeRenderSystem(): Draws entities that contains the component 'ShapeRenderers'
DrawLines(): Draw lines for Position + Color rendering
Update(): Updates game system according to delta time
Render(): Renders game system
PrepareForPC(): Prepare the rendering pipeline for Position + Color rendering
BeginFrame(): Start a rendering frame. This will clear background to black and set defaults render states
CreateProgram(): Create a shader program from vertex/fragment shader source
CreateVertexBuffer(): Create an empty vertex buffer

Refactor code

Change the type 'double' to 'float'
Remove unnecessary included headers
Move files 'Game.hpp/cpp' to parent folder
Delete file 'GameTests.cpp'

Update version of the library 'SFML' to 'latest' due to Visual Studio 2022 support
Add 'Game.hpp/cpp' to ingore list in Codecov

@red1108 Box는 3차원이니까 8개의 점이 필요합니다. 다만 우리는 z축을 사용하지 않기 때문에 x/y 값만 대입할 뿐입니다.


Major environment refactoring (draft version)

Description
Together with Major modeling refactoring #165, this PR is for major, long-due refactoring to the RL4CO environments codebase.
Motivation and Context
This refactoring is driven by following motivations:

New Feature Integration: We aim to support a data generator capable of producing various distributions for initialized instances.
Standardization of Environments: Before our environments were developed at different times, so there were inconsistencies in content, logic, and formatting. This refactoring tried to standardize these environments.
Code Cleanup: Our earlier versions included redundant code, functions, and calculation logic. This refactoring effort will clean up these elements, enhancing the codebase's readability and maintainability.

Changelog
Environment Structure Refactoring
The refactored structure for environments is as following:
rl4co
├── models/
└── envs/
    ├── eda/
    ├── scheduling/
    └── routing/
        ├── tsp/
        │   ├── env.py
        │   ├── generator.py
        │   └── render.py
        ├── cvrp/
        │   ├── env.py
        │   ├── generator.py
        │   └── render.py
        └── ...

We have restructured the organization of the environment files for improved modularity and clarity. Each environment has its own directory, comprising three components:

env.py: The core framework of the environment, managing functions such as _reset(), _step(), and others. For a comprehensive understanding, please refer to the documentation.
generator.py: Replace the previous generate_data() function; this module works for randomly initializing instances within the environment. The updated version now supports custom data distributions. See the following sections for more details.
render.py: For visualization of the solution. Its separation from the main environment file enhances overall code readability.

Data Generator Supporting
Each environment generator will be based on the base Generator() class with the following functions:
class Generator():
    def __init__(self, **kwargs):
        self.kwargs = kwargs

    def __call__(self, batch_size) -> TensorDict:
        batch_size = [batch_size] if isinstance(batch_size, int) else batch_size
        return self._generate(batch_size)

    def _generate(self, batch_size, **kwargs) -> TensorDict:
        raise NotImplementedError

__init_() will record all the environment instance initialize parameters, for example, num_loc, min_loc, max_loc, etc.
Thus, you will see how the __init__() function for the environment (e.g. CVRPEnv.__init__(...)) only takes generator and generator_params as input. Now, the environment initialize example would be
env = CVRPEnv(generator_params={num_loc=20})

# Another way
generator = CVRPGenerator(num_loc=20)
env = CVRPEnv(generator)

Various samplers will be initialized here. We provide the get_sampler() function to based on the input variables to return a torch.distributions class. By default, we support distributions Uniform, Normal, Exponential, and Poisson for locations and center, corner, for depots. You can also pass your won distribution sampler. See the following sections for more details.

__call__() is a middle wrapper; at the moment, it is used to regularize the batch_size format supported by the TorchRL (i.e., in a list format). Note that in this refactor version, we would finalize the dimension of batch_size to be 1 for easier implementation and clearer understanding since even multi-batch-size dimensions can be easily transferred to a single dimension.

__generate() is the part you would like to implement for your own environment data generator.

New get_sampler() function
This implementation mainly refers to @ngastzepeda's code. In the current version, we support the following distributions:

center: For depots. All depots will be initialized in the center of the space.
corner: For depots. All depots will be initialized in the bottom left corner of the space.
Uniform: Takes min_val and max_val as input.
Exponential and Poisson: Take mean_val and std_val as input.

You can also use your own Callable function as the sampler. This function will take the batch_size: List[int] as input and return the sampled torch.Tensor.
Modification for RL4COEnvBase()
We move the checking for batch_size and device from every environment to the base class for clarity, as shown in
https://github.com/ai4co/rl4co/blob/b70566bc2354ade45d249a8eb86c40f0e2b47230/rl4co/envs/common/base.py#L130-L138
We added a new _get_reward() function aside from the original get_reward() function and moved the check_solution_validity() from every environment to the base class for clarity, as shown in
https://github.com/ai4co/rl4co/blob/b70566bc2354ade45d249a8eb86c40f0e2b47230/rl4co/envs/common/base.py#L175-L187
Standardization
We standardize the contents of env.py with the following functions:
class EnvName(RL4COEnvBase):
	name = "env_name"
	def __init__(self, generator: EnvGenerator, generator_params: dict): pass

	def _step(self, td: TensorDict) -> Tensordict: pass

	@staticmethod
	def get_action_mask(td: TensorDict) -> torch.Tensor: pass

	def _reset(self, td: Optional[TensorDict] = None, batch_size: Optional[list] = None) -> TensorDict: pass

	def _get_reward(self, td: TensorDict, actions: torch.Tensor) -> torch.Tensor: pass

	@staticmethod
	def check_solution_validity(td: TensorDict, actions: torch.Tensor) -> None: pass

	@staticmethod
	def render(td: TensorDict, actions: torch.Tensor = None, ax = None): pass

	def _make_spec(self, generator: EnvGenerator): pass

The order is considered to be natural and easy to follow, and we expected all environments to follow the same order for easier reference and matinees. In more detail, we have the following standardization:

We changed the variable name available to visited for more intuitive understanding. In the step() and get_action_mask() calculation, visited records which nodes are visited, and the action_mask is based on it with environment constraints (e.g., capacity, time window, etc.). Separating these two variables would be clearer for the calculation logic.
For some environments, change the _step() function to a nonstatic method. Follow the TorchRL style.
Standardize the get_action_mask() calculation logic, which generally contains three parts: (a) initialize the action_mask based on visited; (b) update cities action_mask based on the state; (c) update the depot action_mask finally. Based on experience, this logic would cause fewer conflicts and mass.
All 1-D features, e.g., i, capacity, used_capacity, etc., are initialized with the size of [*batch_size, 1] instead of [*batch_size, ]. The reason is that in many masking operations, we need to do logic calculations between this 1-D feature and 2-D features, e.g., capacity with demand. Also, stay consistent with TorchRL implementation.
Rewrite comments on environments with descriptions of observations, constraints, finish conditions, rewards, and args so that a user can better understand the environment. Also, move data-related parameters (e.g., num_loc, min_loc, max_loc) to the generator for clarity.
Add the cost variable to the get_reward function for an intuitive understanding. In this case, the return (reward) is -cost.

Other Fixes

In CVRP, change the variable name vehicle_capacity → capacity, capacity → unnorm_capacity to clarify.
[⚠ Sensitive Change] Now, the demand variable will also contain the depot. For example, in the previous CVRPEnv(), given num_loc=50, the td[”locs”] has the size of [batch_size, 51, 2] (with the depot), and the td[”demand”] has the size of [batch_size, 50, 2]. This causes index shifting in the get_action_mask() function, which requires a few padding operations.
Fix the SDVRP environment action mask calculation bug.
Adding numerical calculation error bound (0 → 1e-5), for example, in SDVRP done = ~(demand > 0).any(-1) → done = ~(demand > 1e-5).any(-1) for better robustness to avoid edge cases.
In CVRP, OP, and PCTSP environments, getting variables from tables with num_loc, e.g., CVRP CAPACITIES, if the given num_loc is not in the table, we will find the closest num_loc as replace and raise a warning to increase the running robustness.
Fix the return type of get_reward().

Notes

In The current version, we don’t support the distribution of int values, e.g., num_depot, num_agents. These values are initialized by torch.randint().
In the reward calculation, for environments with the constraint starting and ending at the depot, actions should pad 0 to the start and end.
In the current version, only routing environments have been refactored. We will also refactor the EDA and Scheduling environments soon.

Here is the summary of the refractory status for each environment:

Decompose: decompose environments into folder with env.py, generator.py, render.py; fix the __init__() and _reset() functions;
Training Checking: checking the training of refactored environments;
Documentation: cleanup and fix environment documents and logic comments;
Solution Validity: check if the environment contains a check_solution_validity() function;
Clean up Logic: check if the _step() and get_action_maks() function are cleaned up with the standard pipeline.

| Decompose | Training Checking | Documentation | Solution Validity | Clean up Logic
-- | -- | -- | -- | -- | --
TSP | ✅ | ✅ | ✅ | ✅ | ✅
CVRP | ✅ | ✅ | ✅ | ✅ | ✅
CVRPTW | ✅ | ✅ | ✅ | ✅ |
PCTSP | ✅ | ✅ |   | ✅ | ✅
OP | ✅ |   | ✅ | ✅ |
SDVRP | ✅ | ✅ | ✅ | ✅ | ✅
SVRP | ✅ |   | ✅ | ✅ |
ATSP | ✅ | ✅ | ✅ | ✅ | ✅
MTSP | ✅ | ✅ | ✅ |   |
SPCTSP | ✅ | ✅ |   | ✅ | ✅
PDP | ✅ | ✅ | ✅ | ✅ | ✅
MPDP | ✅ | ✅ | ✅ |   |
MDCPDP | ✅ | ✅ |   |   |
Types of changes
What types of changes does your code introduce? Remove all that do not apply:

[x] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds core functionality)
[x] Breaking change (fix or feature that would cause existing functionality to change)
[x] Documentation (update in the documentation)
[ ] Example (update in the folder of examples)

Checklist

[x] My change requires a change to the documentation.
[ ] I have updated the tests accordingly (required for a bug fix or a new feature).
[ ] I have updated the documentation accordingly.

Thanks, and need your help
Thanks for @ngastzepeda's base code for this refactoring!
If you have time, welcome to provide your ideas/feedback on this PR.
CC: @Furffico @henry-yeh @bokveizen @LTluttmann
There are quite a few remaining works for this PR, and I will actively update them here.

Let's remember also to fix the shifts in the torch.roll distance calculation as @ngastzepeda noticed, e.g. here. These do not affect calculations in euclidean problems, but it's best to have it conceptually correct

Notice that we moved most of the above in here #169 (without modification to environment logic or variables)! We will address the comments and merge soon~


Arm's Reach option

First, thanks for implementing the "move while riding" option.
I have noticed a few issues / quirks.  I'll log each as a separate issue.
First one: the documentation refers to an extra option to use the Arm's Reach distance for mounting.  I have Arm's Reach installed, but do not see any option for it.

Thank you for all the bug reports, they are really helpfull.
Regarding this bug:
There seem to be two different arms-reach modules:

arms-reach
foundryvtt-arms-reach
Do you have the first one installes?
Rideable currently only supports the second module, but i will try to add support for the first one in v.2.0.0

Anyway, if the problem was indeed the confusion between the two arms reach modules, it should now work correctly with v2.0.0

You are correct, I had the first one installed.  (Didn't even know about the second one.)
Appreciate the fix, I did see it in 2.0.  Though because of the other issue I logged I couldn't actually test it as actually working, but I'll assume it does unless otherwise noted later.


Update main branch to version 0.3.0

Summary
Details and comments

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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

Totals

Change from base Build<PHONE_NUMBER>:
0%

Covered Lines:

Relevant Lines:
0

💛  - Coveralls


Updated FAQ's with Microservices and plugins

Hello @MoFoGo, I have updated the FAQs to include the microservice and plugins questions. Let me know if any of the question seems to be irrelevant or i need to change any answer or anything else.
Most of the questions are based on what I read on the Docs, GitHub and the questions that I had after understanding them. I have to tried to be relevant with the questions I have added and the corresponding answers.
Looking forward to your response😊.

#209

Thank you @MoFoGo 😊 for your approval.
I will work hard to better contribute to the community.

@shaharblanksela thanks for your contribution. The value of your contribution is apparent, and it looks like you spent a lot of time updating the docs.
I am not sure if you had more contributions to qualify for the hacktoberfest swag, but I will be happy to provide you with the swag pack in case you didnt qualify.
I am adding @souravjain540 to the conversation so he can take care of it

Good morning, @yuval-hazaz 😊
That is so thoughtful of you! Thank you @yuval-hazaz. That is one great surprise early in the morning 😳.
Yes, I spent a lot of time to better understand how amplication works. I am really in awe with the way the amplication team is bringing in new features and every software is aligning together to make the amplication even better.
But all the time spent was worth it! I now know so much about amplication, various software, open source and the way real teams work.
This all is very valuable to me as I am a student aspiring to get into the software industry.
Thank you for allowing me to contribute.😊
I hope to be an even better contributor.

Hi @ShabanaNaik, thanks for making such valuable contributions. Can you please fill this form?
https://redeem.swagup.com/27331/new-redeem-page

Will do right away. 😊👍


Examine Dynamixel reply-to-read mode

Dynamixels have the option to send a reply to

every command (default)
only pings and reads
only pings (strangely - how can you do a read without a reply?)
We should examine switching to 2., so a write position command would not receive a reply. This should reduce from n+n without bulk / sync writes, to 1+n with bulk/sync writes but still replies to all commands, to 1 with bulk / sync writes without replies. Should speed up things once more.

Reply-to-read mode has clear theoretical benefits, as shown by the experiments reducing the reply predelay from 500µs to 20µs. But the Dynamixel2Arduino library is apparently not able to support this; it's waiting for the reply packet no matter what. Since the other improvements (BPS, Basic/Sync) seem sufficient to reach 100Hz and beyond, modification / reimplementation of Dynamixel2Arduino is currently not planned.


[SPARK-33565][PYTHON][BUILD][3.0] Remove py38 spark3

What changes were proposed in this pull request?
remove python 3.8 from python/run-tests.py and stop build breaks
Why are the changes needed?
the python tests are running against the bare-bones system install of python3, rather than an anaconda environment.
Does this PR introduce any user-facing change?
no
How was this patch tested?
jenkins
see also https://github.com/apache/spark/pull/30506

oh hmm, i've apparently forgotten how to git with release branches.  off to run an errand and i'll put one together for 3.0 later today.


Fix #485 along with PR #504, retain history for inactive applications

+1

seems like this PR removed some code in last PR


Add storage provider documentation

URL: https://docs.blockstack.org/browser/storage-provider.html
This documentation will be linked from the browser upon completion of the OKR 5.4 epic: https://github.com/blockstack/blockstack-browser/issues/1735.

This is a help that shows when users choose Learn More from onboarding flow.


Time out for blob container Private Endpoint

Preflight Checklist

[X] I have installed the latest version of Storage Explorer.
[X] I have checked existing resources, including the troubleshooting guide and the release notes.
[X] I have searched for similar issues.

Storage Explorer Version
1.20.1
Regression From
No response
Architecture
x64
Storage Explorer Build Number
20210720.10
Platform
Windows
OS Version
1909 windows 10
Bug Description
Created a storage account with private endpoint, and added a private link for the private endpoint using Azure Private DNS zone in our Hub network. then when attempting to access the storage account either via azure portal or azure file storage explorer getting a time out error for the private endpoint.
Here is the catch though, i created another Storage account with same setup yesterday, and it is working fine, just the new storage account is having the issue.
below is the error details for the new one failing:
Unable to retrieve child resources.
Details:
{
"name": "FetchError",
"message": "request to https://accountname.blob.core.windows.net/?include=metadata&comp=list failed, reason: connect ETIMEDOUT 10.XXX.XX.XX:443",
"stack": "FetchError: request to https://accountname.blob.core.windows.net/?include=metadata&comp=list failed, reason: connect ETIMEDOUT 10.XXX.XX.XX:443\n    (C:\Users\vsiram1\AppData\Local\Programs\Microsoft Azure Storage Explorer\resources\app\node_modules\node-fetch\lib\index.js:1461:11)\n    at ClientRequest.emit (events.js:310:20)\n    at TLSSocket.socketErrorListener (_http_client.js:426:9)\n    at TLSSocket.emit (events.js:310:20)\n    at emitErrorNT (internal/streams/destroy.js:92:8)\n    at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)\n    at processTicksAndRejections (internal/process/task_queues.js:84:21)",
"type": "system",
"errno": "ETIMEDOUT",
"code": "ETIMEDOUT"
}
Steps to Reproduce
launch storage explorer
Connect either a storage account with connection string or just the blob container with SAS key
Actual Experience
Created a storage account with private endpoint, and added a private link for the private endpoint using Azure Private DNS zone in our Hub network. then when attempting to access the storage account either via azure portal or azure file storage explorer getting a time out error for the private endpoint.
Here is the catch though, i created another Storage account with same setup yesterday, and it is working fine, just the new storage account is having the issue.
below is the error details for the new one failing:
Unable to retrieve child resources.
Details:
{
"name": "FetchError",
"message": "request to https://accountname.blob.core.windows.net/?include=metadata&comp=list failed, reason: connect ETIMEDOUT 10.XXX.XX.XX:443",
"stack": "FetchError: request to https://accountname.blob.core.windows.net/?include=metadata&comp=list failed, reason: connect ETIMEDOUT 10.XXX.XX.XX:443\n    (C:\Users\vsiram1\AppData\Local\Programs\Microsoft Azure Storage Explorer\resources\app\node_modules\node-fetch\lib\index.js:1461:11)\n    at ClientRequest.emit (events.js:310:20)\n    at TLSSocket.socketErrorListener (_http_client.js:426:9)\n    at TLSSocket.emit (events.js:310:20)\n    at emitErrorNT (internal/streams/destroy.js:92:8)\n    at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)\n    at processTicksAndRejections (internal/process/task_queues.js:84:21)",
"type": "system",
"errno": "ETIMEDOUT",
"code": "ETIMEDOUT"
}
Expected Experience
work as normal and see container without issue
Additional Context
i am not trying this with latest storage explorer because the container is not accessible via azure portal too.

@vamshisiram since you are also seeing issues with the Azure portal when trying to access this account, then the issue is almost certainly out of the scope of what we can help you with. We recommend opening an Azure support ticket for private link/private endpoint:


Touch Support

Cannot use with mobile devices. since scroll doesnt support mobile devices, cannot use tabs with swipe.
is that possible to use scroll for desktop and swipe for mobiles ???

I would vote for this too!


[BUG] When adding viewzone afterLineNumber ignored

Trying to replicate the diff editor's view zone for removed lines using the following code always results in the view zone inserted after line 1 no matter what afterLineNumber is set to:
let domNode = document.createElement('div');
domNode.className = 'diagonal-fill';
remoteEditor.changeViewZones(zones => {
  zones.addZone({ afterLineNumber: 5, heightInLines: 5, domNode })
});

Nevermind it was a timing issue on my end. I had loaded the code after I added the ViewZones.


puddletag: 2.2.0 -> 2.3.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for puddletag is: An audio tag editor similar to the Windows program, Mp3tag
meta.homepage for puddletag is: https://docs.puddletag.net
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 2.3.0 with grep in /nix/store/9dmdvdxs0zd3wh8zxryk24xdp6lb2793-puddletag-2.3.0
found 2.3.0 in filename of file in /nix/store/9dmdvdxs0zd3wh8zxryk24xdp6lb2793-puddletag-2.3.0

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
puddletag

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/9dmdvdxs0zd3wh8zxryk24xdp6lb2793-puddletag-2.3.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A puddletag https://github.com/r-ryantm/nixpkgs/archive/5dc344d1dd1e1452ae5942d61f9a1982f3c2d503.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/5dc344d1dd1e1452ae5942d61f9a1982f3c2d503#puddletag

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/9dmdvdxs0zd3wh8zxryk24xdp6lb2793-puddletag-2.3.0
ls -la /nix/store/9dmdvdxs0zd3wh8zxryk24xdp6lb2793-puddletag-2.3.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review --extra-nixpkgs-config '{ allowInsecurePredicate = x: true; }' run on x86_64-linux 1

2 packages built:

puddletag
puddletag.dist

Maintainer pings
cc @peterhoeg @dschrempf for testing.

@GrahamcOfBorg build puddletag

Superseded by #295888.


Example uses bad practice with global state

I would really appreciate if the example would be using good practices as opposed to the currently stated bad practice using a global state. I'm pretty new to flutter and I'm having trouble adapting the example to use a dependency injection framework.
If easily possible it would be great if the example could show how to do this properly.
https://github.com/Bdaya-Dev/oidc/blob/8c068e2aca2e66d0db2cb11c86490ece01b6f409/packages/oidc/example/lib/app_state.dart#L12

sure, what state management do you want to use?

How about get_it? But I'm fine with any, as I'm pretty new to flutter and don't know yet which one is better

Is it really bad practice? It uses SharedValue, also in e.G. Riverpod, everything is a global variable. get_it is not really a state management package, its just for dependency injection/service locator.

I agree with @danielRi , managing state is outside the scope of this package and it depends on which stack you use.
please let me know @friesoft if you need further assistance.


Allow option to switch to Canary/PTB

A nice way to switch to an unsupported Canary/PTB would be nice. It may actually be a nifty way to have "alts" if you log in to 3 different accounts.
I'm not entirely sure how Electron works, but may it be possible to have it under one of the menu options? Like Window -> Switch to Canary or something? That's the easiest I can think of 😄

Fixed in https://github.com/yannhodiesne/Discord-M1/commit/14752fd0a903088fe894398bffcda88ba3bcbe59, will be released with version 1.7.0
Thank you for your contribution!


Rename QualifiedTableName to QualifiedObjectName

Looks good, but add a quick explanation about why you're doing it in the commit message.

looks good