Function in Props

When i put some functions on the Component, the Whole function including __WEBPACK_IMPORTED_MODULE... shows on jsx addons.
even with @storybook/addon-actions, JSX preview has shown as
<Calendar
  onSelect={function action() {
    for (var _len = arguments.length, _args = Array(_len), _key = 0; _key < _len; _key++) {
      _args[_key] = arguments[_key];
    }

    var args = _args.map(_util.prepareArguments);
    var channel = _addons2.default.getChannel();
    var id = (0, _v2.default)();
    channel.emit(_.EVENT_ID, {
      id: id,
      data: { name: name, args: args }
    });
  }}
/>

This is not what I expected... but is this intended?

Here's an example for quick workaround for the action function:
const onClickAction = action('clicked');
onClickAction.toString = () => "action('clicked')";

storiesOf('Button', module)
  .addWithJSX('default', () => <Button onClick={onClickAction}>Hello</Button>);

The output is
<Button onClick={action('clicked')}>
  Hello
</Button>

This is a quick util function I wrote.
import { action as _action } from '@storybook/addon-actions'

export const action = (...args) => {
  const tempAction = _action(...args)
  tempAction.toString = () => `action('${args[0]}')`
  return tempAction
}

to use it just import the util function instead of the library function.
import { action } from './utils'

@ndelangen This has been around a bit and it would be handy to have this handled in the Storybook repo. Is there a corresponding issue or PR for this?

You can do something like this
addParameters({
  jsx: {
    functionValue: (fn: Function) => `${fn.name}()`
  }
})

This issue is pretty rough for render props. For this story:
  <ModalButton text={text("Button text", "Show Modal")} render={close => (

Testing w/ Render Props

      <Button onClick={close}>Close</Button>

  )} />

The JSX addon presents this:
<ModalButton
  render={function render(close) {return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("h1", null, "Testing w/ Render Props"), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_buttons__WEBPACK_IMPORTED_MODULE_3__["Button"], {onClick: close}, "Close"));}}
  text="Show Modal"
/>

Since the render props pattern is fairly common I would think that someone has solved this for their storybooks, but I'm pretty new to storybooks and at a bit of a loss as to where I should start.

A thing like this would have to be solved upstream via https://github.com/algolia/react-element-to-jsx-string/

@hipstersmoothie Thanks, I'll see if this is something that they'd be interested in having addressed and try to contribute a solution if they'll take it.

:rocket: Issue was released in v7.3.1 :rocket:


Conditional check for cache directories in scanDir method encounters lost+found

As of yesterday it looks like there was some conditional logic added to the scanDir() method of the diskCache struct. This conditional checks whether or not the directories name is equal to a few different values; please see here.
This has caused the remote cache in our environment to go into crashloop after the scanDir method encounters the lost+found directory on the linux host, this directory is created by fsck on our ext4 filesystem and will always be recreated even if deleted.

Thanks for the bug report- this should be a quick fix.

thank you for the quick turnaround @mostynb !


serde_json does not work for RangeProof

Error("invalid type: sequence, expected a valid RangeProof", line: 2, column: 2)

Basically the visitor does not know what do do with a sequence of numbers, it only knows how to handle raw bytes.
See example here https://github.com/Stentonian/bulletproofs/pull/1

I have a fix, just going to add some more unit tests before making a pr

@cathieyun


Withdraws - Invalid scope

Hey guys,
I always end with an invalid scope message for the withdraws call to the API. Am I missing a Bearer token or something like that?  So far I've tested only in sandbox.
What am I missing?
Thanks

Hi Michael, thanks for reaching out.  I would try on the live exchange as the sandbox for GDAX is being supported less and less.

Thanks @danpaquin. Indeed that day after day is being annoying using sandbox. 😞

Has this been resolved?


GPU extensions check incorrectly fails

System Information (please complete the following information):

Model Builder Version: <IP_ADDRESS>5505
Visual Studio Version: 16.10.0 Preview 1

Describe the bug

On which step of the process did you run into an issue: Environment
Clear description of the problem: Environment -> Local (GPU) -> Check compatibility shows GPU extension not installed but Extensions -> Manage Extensions -> Model Builder Private Preview shows ML.NET Model Builder GPU Support (Preview) installed w/ same version number as model builder itself.

To Reproduce
Steps to reproduce the behavior:
See above
Expected behavior
Compatibility check should succeed.
Screenshots

Additional context
Note that there are two GPUs, an integrated/APU and a discrete.

Hi @HaileyStorm
Thanks for filing that issue, we are working on a fix for that which should be released soon. I'll let you know when the fix is released.
Regards

Close due to duplication


TypeError when using 'XT' hyperparameters

I am trying to train data which has 9-dim feature vectors. The format of data is shown below

The data works fine when I use 'CAT'/'RF'/'GBM'/'KNN' as hyperparameter. However, when I set it as 'XT', it reports a typeerror that is shown below
Loaded data from: ../Dataset/data_20200927_800w/train_800w.csv | Columns = 10 / 10 | Rows = 6843114 -> 6843114 Beginning AutoGluon training ... AutoGluon will save models to ./res/20201013_Default_20200927_800w_XT/ AutoGluon Version:  0.0.13 Train Data Rows:    6843114 Train Data Columns: 10 Preprocessing data ... Here are the 2 unique label values in your data:  [0, 1] AutoGluon infers your prediction problem is: binary  (because only two unique label-values observed). If this is wrong, please specify problem_type` argument in fit() instead (You may specify problem_type as one of: ['binary', 'multiclass', 'regression'])
Selected class <--> label mapping:  class 1 = 1, class 0 = 0
Train Data Class Count: 2
Feature Generator processed 6843114 data points with 9 features
Original Features (raw dtypes):
float64 features: 9
Original Features (inferred dtypes):
float features: 9
Generated Features (special dtypes):
Processed Features (raw dtypes):
float features: 9
Processed Features:
float features: 9
Data preprocessing and feature engineering runtime = 8.93s ...
AutoGluon will gauge predictive performance using evaluation metric: roc_auc
This metric expects predicted probabilities rather than predicted class labels, so you'll need to use predict_proba() instead of predict()
To change this, specify the eval_metric argument of fit()
AutoGluon will early stop models using evaluation metric: log_loss
Fitting model: ExtraTreesClassifierGini_STACKER_l0 ...
Warning: Model is expected to require 149.58% of available memory...
Not enough memory to train ExtraTreesClassifierGini_STACKER_l0... Skipping this model.
Fitting model: ExtraTreesClassifierEntr_STACKER_l0 ...
Warning: Model is expected to require 142.44% of available memory...
Not enough memory to train ExtraTreesClassifierEntr_STACKER_l0... Skipping this model.
No base models to train on, skipping weighted ensemble...
No base models to train on, skipping stack level...
No base models to train on, skipping weighted ensemble...
Summary of label_column:
count    6.843114e+06
mean     5.214231e-01
std      4.995409e-01
min      0.000000e+00
25%      0.000000e+00
50%      1.000000e+00
75%      1.000000e+00
max      1.000000e+00
Name: y, dtype: float64
Traceback (most recent call last):
File "TabularPred.py", line 58, in
num_bagging_folds=10)
File "/opt/bitnami/python/lib/python3.6/site-packages/autogluon/task/tabular_prediction/presets_configs.py", line 10, in _call
return f(*gargs, **gkwargs)
File "/opt/bitnami/python/lib/python3.6/site-packages/autogluon/task/tabular_prediction/tabular_prediction.py", line 600, in fit
hyperparameters=hyperparameters, ag_args_fit=ag_args_fit, excluded_model_types=excluded_model_types, time_limit=time_limits_orig, save_data=cache_data, save_bagged_folds=save_bagged_folds, verbosity=verbosity)
File "/opt/bitnami/python/lib/python3.6/site-packages/autogluon/utils/tabular/ml/learner/abstract_learner.py", line 91, in fit
return self._fit(X=X, X_val=X_val, **kwargs)
File "/opt/bitnami/python/lib/python3.6/site-packages/autogluon/utils/tabular/ml/learner/default_learner.py", line 103, in _fit
hyperparameters=hyperparameters, ag_args_fit=ag_args_fit, excluded_model_types=excluded_model_types)
File "/opt/bitnami/python/lib/python3.6/site-packages/autogluon/utils/tabular/ml/trainer/auto_trainer.py", line 33, in train
self.train_multi_and_ensemble(X_train, y_train, X_val, y_val, models, hyperparameter_tune=hyperparameter_tune, feature_prune=feature_prune)
File "/opt/bitnami/python/lib/python3.6/site-packages/autogluon/utils/tabular/ml/trainer/abstract_trainer.py", line 505, in train_multi_and_ensemble
self.train_multi_levels(X_train, y_train, X_val, y_val, models=models, hyperparameter_tune=hyperparameter_tune, feature_prune=feature_prune, level_start=0, level_end=self.stack_ensemble_levels)
File "/opt/bitnami/python/lib/python3.6/site-packages/autogluon/utils/tabular/ml/trainer/abstract_trainer.py", line 522, in train_multi_levels
self.stack_new_level(X=X_train, y=y_train, X_val=X_val, y_val=y_val, level=level, time_limit_core=time_limit_core, time_limit_aux=time_limit_aux)
File "/opt/bitnami/python/lib/python3.6/site-packages/autogluon/utils/tabular/ml/trainer/abstract_trainer.py", line 532, in stack_new_level
return core_models + aux_models
TypeError: unsupported operand type(s) for +: 'NoneType' and 'list'`
My code is
`custom_hyperparameters = {'XT': [{'criterion': 'gini', 'AG_args': {'name_suffix': 'Gini', 'problem_types': ['binary', 'multiclass']}},
{'criterion': 'entropy', 'AG_args': {'name_suffix': 'Entr', 'problem_types': ['binary', 'multiclass']}},
{'criterion': 'mse', 'AG_args': {'name_suffix': 'MSE', 'problem_types': ['regression']}}]}
predictor = task.fit(train_data=train_data, \
                     label=label_column, \
                     output_directory=args.save, \
                     hyperparameters=custom_hyperparameters, \
                     presets='best_quality', \
                     eval_metric='roc_auc')`

Any help is appreciated！

The reason you are encountering this error is highlighted in these lines of the output log:
Warning: Model is expected to require 149.58% of available memory...
Not enough memory to train ExtraTreesClassifierGini_STACKER_l0... Skipping this model.

AutoGluon has decided there is not enough memory on your machine to train the ExtraTrees model, and since it's the only model you've said to train, AutoGluon cannot produce a predictor object. Is there a particular reason you need to use the ExtraTrees model? These are typically not the most accurate models anyway for most datasets.
If you really need an ExtraTrees model, you can try:

use a machine with more available memory, and make sure there aren't other processes running when you fit autogluon
following these other tips:
https://autogluon.mxnet.io/tutorials/tabular_prediction/tabular-indepth.html#if-you-encounter-memory-issues

The reason you are encountering this error is highlighted in these lines of the output log:
Warning: Model is expected to require 149.58% of available memory...
Not enough memory to train ExtraTreesClassifierGini_STACKER_l0... Skipping this model.

AutoGluon has decided there is not enough memory on your machine to train the ExtraTrees model, and since it's the only model you've said to train, AutoGluon cannot produce a predictor object. Is there a particular reason you need to use the ExtraTrees model? These are typically not the most accurate models anyway for most datasets.
If you really need an ExtraTrees model, you can try:

use a machine with more available memory, and make sure there aren't other processes running when you fit autogluon
following these other tips:
https://autogluon.mxnet.io/tutorials/tabular_prediction/tabular-indepth.html#if-you-encounter-memory-issues

thx！In fact, I am just testing different options of AutoGluon on the dataset to compare the accuracy.


Refactor parameters definition

Signed-off-by: Vadim Markovtsev<EMAIL_ADDRESS>

Codecov Report

Merging #75 (f611165) into master (7cb75c1) will increase coverage by 22.83%.
The diff coverage is 89.58%.

@@             Coverage Diff             @@
##           master      #75       +/-   ##
===========================================
+ Coverage   59.40%   82.24%   +22.83%
===========================================
  Files          16       18        +2
  Lines         574      597       +23
  Branches       56       61        +5
===========================================
+ Hits          341      491      +150
+ Misses        205       67      -138
- Partials       28       39       +11

Impacted Files
Coverage Δ

mloq/directories.py
81.57% <ø> (ø)

mloq/requirements.py
61.03% <ø> (+4.78%)
:arrow_up:

mloq/templating.py
85.71% <ø> (ø)

mloq/workflows.py
75.00% <ø> (ø)

setup.py
0.00% <ø> (ø)

mloq/failure.py
40.00% <40.00%> (ø)

mloq/git.py
77.77% <77.77%> (ø)

mloq/cli/setup_cmd.py
85.71% <86.84%> (+85.71%)
:arrow_up:

mloq/api.py
87.93% <94.44%> (+5.47%)
:arrow_up:

mloq/cli/main.py
89.18% <100.00%> (+89.18%)
:arrow_up:

... and 13 more

Continue to review full report at Codecov.

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


Enhance Backup Performance with Adjustable Concurrency and Rate Limit Awareness

This PR focuses on improving the performance and speed of the discordjs-backup-module by introducing a concurrency option to optimize the backup creation and loading process. The new option allows developers to configure how many tasks are executed concurrently while taking into account Discord API rate limits.

From what I have noticed with backup.load is that it is quite slow and it goes from around 1-2  or 3 messages per second, although usually I see 1. Thus I believe the speed of that can be improved since it is not even close to hitting the rate limit.
Globally, all Discord Bots max rate limit is 50 requests per second to the Discord API.
This is what I am thinking, nothing concrete:

Target: Set concurrency to allow up to 45 requests per second, which stays safely below Discord's global rate limit of 50 requests/second.
Implementation: Integrate this with a task queue like Bottleneck, which already provides rate-limiting functionality. (I already see that "bottleneck" is used in the code).
Implement dynamic rate-limiting and backoff. While the module may allow for speeds of up to 45 requests per second, an intelligent system could monitor the API's responses. If it detects that rate limits are close to being hit, it could automatically scale back the request speed to avoid hitting the limit.

Will come back to this tomorrow. Good night.

Since Discord bots globally have a rate limit of 50 API requests per second, to efficiently restore or back up a server, I believe it is better to distribute tasks among multiple bots. Using BullMQ's queue system could facilitate this process.

The main bot can act as the "Job Orchestrator" by queuing the backup or restore tasks.
Multiple secondary bots (e.g., two, three, or four) will act as "Workers," executing the jobs.

The main bot queues the task, and based on the number of available worker bots, the job is split accordingly. Each worker bot can handle tasks such as restoring or backing up specific channels or categories independently, which speeds up the process.
The more workers available, the faster the restoration or backup can be completed. This approach might fall outside the current scope of the project as the tool is modular, although it is worth noting since I am developing a Discord bot myself, focusing on server backup and restoration optimization.
The question is "how to modify this tool in such a way that it may easily integrate such parallel processing in a queue system effectively, allowing for distributed job execution?".
With BullMQ's ability to handle concurrency and distributed job execution based on Redis, this could significantly streamline the process by dividing labor among bots.

While there is already a doNotBackup parameter to exclude specific channels from backups, it might be beneficial to introduce a toBackup parameter as well. However, note that both parameters cannot be used simultaneously; only one or the other can be active at a time.
The toBackup parameter would allow users to specify which channels or categories they do want to back up, instead of listing every channel they wish to exclude. This provides an alternative for users who only want to back up a few specific channels, making the process more efficient and user-friendly.
That is another Github PR idea which I may submit the code in here.

Regarding your suggestion of utilizing multiple discord bots to handle the processing to avoid rate limits, that does fall far outside the scope of this package. It involves too much of the architecture and process setup by the user of the package. For your specific usage, perhaps you can use one bot per type of backup ex: one bot loads roles, a second bot loads channels, etc.
As for the suggestion of adding a toBackup option, I worry that could introduce some confusion to the package. Is there a pressing need for it?

I believe the addition of the toBackup option is important in my opinion and would not introduce any confusion since it will be explained in the README.md and if the doNotBackup option is used at the same time then the following would occur:
    if (options.toBackup && options.doNotBackup) {
        throw new Error("You cannot use both 'toBackup' and 'doNotBackup' options at the same time.");
    }

I believe it is important since as said before "The toBackup parameter would allow users to specify which channels or categories they do want to back up, instead of listing every channel they wish to exclude.".
For example if there are 10 channels in the server and I only want to backup 2 channels. It takes more effort and time to specify all the channel id's of channels you do not want to backup to be put in the doNotBackup parameter, instead of specifying the 2 channel id's of the channels you do want to backup in the toBackup parameter.
I need the toBackup parameter for my project of utilizing multiple discord bots to handle the processing to avoid rate limits. Which I sent that message in here just for myself and anyone who wants to read it since I know that is very much out of scope for this package.
I do appreciate your suggestion of " For your specific usage, perhaps you can use one bot per type of backup ex: one bot loads roles, a second bot loads channels, etc.". Although that would improve backup and restoration speeds, it would still be best in my opinion to split up the backup and restoration process of channels and delegate them to separate worker bots since channels; depending on the amount of history/messages, is the process that takes the longest.

Understood, thank you.

Will soon come back to working on this PR once I finalize the new one I recently opened.

This PR is complete, it will need to be merged before the https://github.com/OutwalkStudios/discord-backup/pull/41 PR.


DevOps CMD Task Hanging when connecting to model via server/database

Describe the bug
I created a DevOps pipeline task that successfully executes a custom script against a TOM in the DevOps repo using the CmdLine@2 built in DevOps task. I am now trying to get it to execute that same script against the server/db opposed to the file in the repo. When making this change it causes the DevOps task to hang indefinitely. The command and script run fine on my local machine. Only change I made in the script to run it locally was point the output folder to a local folder instead of $(Build.ArtifactStagingDirectory)\MetadataExport . I used the -V -E -W options as well as setting the build agent in debug mode for verbose output. The result of those logs is posted below in the additional context section. As you can see the task has been running for almost 40 mins when it took 16s in my build pipeline that used a file. I don't think this issue has anything to do with the script being executed because according to the logs the script hasn't even been called yet. You can tell by comparing it to the successful logs of my local execution.
The commands I have tried executing in the dev ops cmd :

start /wait TabularEditor.exe "$(ModelConnectionString)" $(DBName) -S "$(Build.SourcesDirectory)\Scripts\TabularMetadataExport.cs" -V -E -W
TabularEditor.exe "$(ModelConnectionString)" $(DBName) -S "$(Build.SourcesDirectory)\Scripts\TabularMetadataExport.cs" -V -E -W

When the start/wait is omitted the logs add one additional line which is interesting...
"##[debug]Processed: ##vso[task.complete result=Succeeded;]Done."

It appears the task is returning completed to DevOps, however even DevOps is behaving strangely in that case as it continues to hang and sometimes will just count up in time or sometimes it will say "100%" next to the task without ever moving on to the next task.
I also noticed when running the command locally without the "start /wait" that the script completed successfully and wrote its output but then the command prompt hung unlike what is shown in the screenshot below.
To Reproduce
Steps to reproduce the behavior:

Create an Azure DevOps pipeline task to download Tabular Editor to the hosted agent as described in the blog post https://tabulareditor.github.io/2019/10/08/DevOps3.html
Create an Azure DevOps pipeline CmdLine@2 Command Line task.
In the Command Line Task try to connect to a TOM using the server connection string and desired database
The command should be formatted as such :
a) start /wait TabularEditor.exe "Provider=MSOLAP;Data Source=powerbi://api.powerbi.com/v1.0/myorg/;initial catalog=;User ID=@;Password=;Persist Security Info=True;Impersonation Level=Impersonate"  -SC
Run the pipeline and observe the logs for the command line task.

Expected behavior
The task executes successfully
Observed behavior
The Dev Ops task execution hangs without providing any logs or output
Application specifics

Tabular Editor 2.X version: 2.16.5
Semantic Engine used: Power BI
Model Compatibility Level: 1560

Additional context
DevOps Pipeline hang:

Same Task succeeds when using file in DevOps repo:

Same command succeeds when using server/db on local machine:

I suspect this is some kind of connectivity issue between the hosted agent and the Power BI XMLA endpoint.
I'm assuming you're using a service principal in the connection string? If so, see this. Try to replace "myorg" in the connection string with the tenant ID.
Another thing to try, is to install an Build Agent on your local machine (instead of using a hosted machine), to see if that makes a difference.


feat(trpc): allow install of superjson version 2.2.1 and newer

PR Checklist
Please check if your PR fulfills the following requirements:

[X] The commit message follows our guidelines: https://github.com/analogjs/analog/blob/main/CONTRIBUTING.md#-commit-message-guidelines
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[ ] Bugfix
[X] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[ ] Other... Please describe:

Which package are you modifying?

[ ] vite-plugin-angular
[ ] vite-plugin-nitro
[ ] astro-angular
[ ] create-analog
[ ] router
[ ] platform
[ ] content
[ ] nx-plugin
[X] trpc

What is the current behavior?

Currently superjson 1.x version >= 1.12.3 may be installed. Latest superjson version is 2.2.1, which - minus them internally changing to an esmodule package format - is backwards compatible with v1.
Releases: https://github.com/blitz-js/superjson/releases
Closes #
What is the new behavior?
Adds support for installing latest 2.x versions >= 2.2.1 in addition to 1.x versions.
Does this PR introduce a breaking change?

[ ] Yes
[X] No

Other information
[optional] What gif best describes this PR or how it makes you feel?

@goetzrobin @brandonroberts following up on this PR. Any concerns with this change?

@jeremyhofer @brandonroberts I believe we can simply migrate to this new version instead of allowing both the old and the new. Thoughts?

Updating solely to the 2.x version would work as well. I went with this approach initially since superjson is defined as a peer dependency and there are no compatibility issues between the 1.x and 2.x versions today. It would probably be more correct to allow any compatible 2.x version instead of requiring a version >=2.2.1, but that's the only 2.x version I've explicitly tested and know works.
Brings the question - if we change to a 2.x version only do we want to consider changing superjson to be an actual dependency instead of a peer? Peer makes me think full flexibility and allow any versions that are compatible. If we change to a dependency then we can remove the overhead of maintaining the version in a project's package.json.

I'm good with bumping to v2 if it's fully compatible. I think keeping it as a peer dep is fine and more generally preferred

Just updated the branch to fully switch to v2.

We should add a packageJsonUpdates migration to the newer version also. Similar to here
https://github.com/analogjs/analog/blob/main/packages/content/migrations/migration.json#L4

:+1: Will get this added!


Have special character encoding be optional

Problem
I have an OAuth2 client secret with special characters (=,-,/). Special characters are getting encoded following the change in https://github.com/lepture/authlib/pull/594 meaning I cannot authenticate when on 1.3.0 . I also cannot change the client that is generating the secrets containing special characters.
Suggested solution
A parameter that lets you optionally disable encoding special characters in client_id and client_secret, either with the understanding that using a colon character will cause a failure, or have it so that only colon characters are encoded.

Fixed in 1.3.2


Extend modal close wait with custom timeout

Enhanced flexibility in wait_until_modal_is_closed method by adding an optional timeout parameter. This allows custom waiting periods for slower environments or particularly time-consuming operations, improving test reliability. Default timeout remains unchanged at 15 seconds.

@leboff Can this custom timeout be considered for wait_until_modal_is_open and select_app_launcher_app as well to make this consistent?

@leboff Can this custom timeout be considered for wait_until_modal_is_open and select_app_launcher_app as well to make this consistent?

@vsbharath I've updated the branch with those changes.


Add language models to seed

I was running into an issue setting up the application locally, specifically at the seeding step (see image below). I realized it was due to the fact that it was trying to create assistant records without having language model records to connect them to.

@mwarwick I really appreciate you submitting a fix for this! I inadvertently broke this when I merged in a recent PR. Adding a test case for seed is exactly what I needed.
BTW, what's motivated you to set up HostedGPT?
And as you get started using it, please let me know how it's working out for you. I monitor the Discussions (and PRs) closely and am working on this project a lot so I love to hear any feedback about what could improve it for you.

My pleasure @krschacht!

BTW, what's motivated you to set up HostedGPT?

I primarily just wanted to take a peek at how you solved a few things (It looks/works great btw). I am building a new Rails app which includes a chat interface with an LLM.

@nwarwick Nice. It may be worth you knowing this then... one thing I really want to do is basically take almost all the code within this app and put it into an engine. That way people who want to build a new app like, say, "ChatGPT for data analytics" can mount the engine, override a few views, add some appropriate hooks like, say, after_message_processed.
I know of a few people using this in their startups, but they need to make so many changes/additions that they basically copy all code into their own app. And while I don't mind this at all, people who do this then won't benefit from all the future downstream changes I make.
So if this HostedGPT codebase had an appropriate abstraction in place (and I think engine's are the right abstraction) then it would set people up for deep customization without permanently forking/copying.
I don't know when I'll get to that, it'll be at least a couple months. But I mention this in case it impacts your plans! And, in case, maybe, possibly, perhaps, you decide you want to help with that. ;)

That's a great idea @krschacht! For our usecase we need to provide extra context via a RAG system which is in another app and deals with hitting OpenAI. I will definitely be keeping a close eye on this project and helping where I can!

Nick, I've been considering adding langchainrb as the core library that
this HostedGPT is built on top of. It has RAG built in. There was another
contributor investigating this to see what would be involved in integrating
langchainrb. Anyway, I just mention that in case it's helpful. I don't have
a timeline for you on that one.\
Message ID: @.***>


Rename lambda

This is a 🐞 bug fix.

[x] I've added tests (if it's a bug, feature or enhancement)
[x] The test suite passes (run bundle exec rspec to verify this) (

Summary
Rename Jets::AwsServices#lambda to Jets::AwsServices#aws_lambda.
Context
The method Jets::AwsServices#lambda collides with Kernel#lamba.
https://community.rubyonjets.com/t/collision-of-lambda-method/132

@tongueroo Some specs are failing on my local branch on master and on this branch too of course.
Fails on master
Finished in 4.05 seconds (files took 4.87 seconds to load)
388 examples, 12 failures

Failed examples:

rspec ./spec/lib/jets/controller/base_spec.rb:142 # Jets::Controller::Base posts index new adapter
rspec ./spec/lib/jets/controller/middleware/main_spec.rb:15 # Jets::Controller::Middleware::Main posts index call
rspec ./spec/lib/jets/controller/rack/adapter_spec.rb:8 # Jets::Controller::Rack::Adapter general convert
rspec ./spec/lib/jets/generate_spec.rb:3 # jets generate migration creates a migration file
rspec ./spec/lib/jets/middleware/configurator_spec.rb:30 # Jets::Middleware::Configurator configurator call
rspec ./spec/lib/jets/middleware_spec.rb:17 # Jets::Middleware middleware call
rspec ./spec/lib/jets/processors/main_processor_spec.rb:14 # Jets::Processors::MainProcessor controller create returns data
rspec ./spec/lib/shell_spec.rb:12 # Jets::CLI jets build
rspec ./spec/lib/shell_spec.rb:18 # Jets::CLI jets deploy
rspec ./spec/lib/shell_spec.rb:24 # Jets::CLI jets delete
rspec ./spec/lib/shell_spec.rb:30 # Jets::CLI jets routes
rspec ./spec/lib/shell_spec.rb:37 # Jets::CLI jets call

Apart from that, would you add something to the PR?

I build a dev environment on a vagrant box and the tests are passing, could you take a look @tongueroo ?
Thanks.


fix: fix e2e test in electra-fork

See sample log here
This is due to ensure-config-is-synced.test.ts is attempting to download electra config from v1.4.0-beta.5 which didn't exist back then

:tada: This PR is included in v1.22.0 :tada:


[Docs]: Custom 404 page

Type
Improvement idea
What do you want to report?
For the time being, all invalid docs link result in the default nginx 404 page:

It would be nice if we had a custom 404 page that informed the users that we just launched our new documentation, and that they can utilize our search to find what they were originally looking for.
Perhaps we can include a hyperlink to the search button as well, with the contents from the URL already pre-filled as well to decrease friction.
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Thank you for reporting this error.
The idea is nice. It requires us to create a custom 404 page, which not exactly trivial. So, for now I have modified the nginx config to use the Docusaurus built-in 404 page instead of the nginx response.

Hey @tbogosavljevic is this something you would like to take on? I can give you guidance on how to get started

I'd be happy to try! I imagine I'd just need to create /docs/src/pages/404.js and set it as the default 404 page in default.conf.

It's a bit more involved than that, basically we need to modify a React component that's used to render the 404 page.
First, we have to swizzle the component which creates a copy of component in the /src directory. We use the docusaurus CLI for that.
Then, we customize the component by modifying the code. Docusaurus will use the components on the /src directory instead of the built-in. To go back to defaults, we just delete the customized component.
Here is a discussion about customizing the 404 page: https://github.com/facebook/docusaurus/discussions/6030
If you want to chat about this (or anything related to docs), we have a documentation channel in the Discord server

Great. The channel is called #sig-documentation on the Discord server, it's open for everyone and public.

@TomFern Sorry about the silence on this, here's a small update: I tried to make some wider thematic changes, but I now understand that they fall out of scope for this issue. I'm rolling them back and just making the 404 page (similar to the one on the main semaphoreci.com website). Still WIP

If you want to propose cosmetic changes that's fine. But maybe we can keep those on a different PR (there's this issue to track theming https://github.com/semaphoreci/semaphore/issues/55)


feat(core)!: remove headers field from page data

This reduces page data size by removing headers info from page data, downstream themes can infer headers via dom structure with @vuepress/helper and they can manually write it to page data if necessary.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>4
Details

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 71.051%

Totals

Change from base Build<PHONE_NUMBER>9:
0.0%

Covered Lines:
638

Relevant Lines:
904

💛  - Coveralls

Then the markdown.headers should default to false?

Could headers be server-side rendered after the change?

I think the header information might still be required on the page object, but we should no longer pass it to client data by default.

I see. What about SSR? Seems that helper pkg is using DOM api to get headers.

A tic is not needed for ssr I think.

I think this can be merged


Palindrome Partitioning (LeetCode)

Want to add solution to this leetcode problem
Input: s = "aab"
Output: [["a","a","b"],["aa","b"]]
Input: s = "a"
Output: [["a"]]
Programming language

[ ] C
[x] C++
[ ] Java
[ ] Python

@Ayush7614 please assign this to me under LGM SOC.


Adding publish-staging target to Makefile.

The checks failed because Makefiles require tabs instead of spaces and yeah....


Upgrade CMake to a newer version.

We currently use CMake 3.9.3, which is quite old. For the latest version of VTKm we need at least CMake 3.12. Matt recommends 3.14 for VTKm. I suspect there are other reasons to upgrade CMake. We should decide on the best version to upgrade to.

for ascent and conduit, we have used 3.14 in many places and things seem to be fine.
also some some experience with 3.18.x  --  3.18.0 and 3.18.1 had some issues, but i think think those were fixed in 3.18.2.

I upgraded CMake to 3.14.7 in #5301.

I upgraded CMake to 3.14.7 in #5301.


[#15] Detect non-quoted .rsp file references

Closes https://github.com/boocs/ue4-intellisense-fixes/issues/15
Supports non-quoted rsp file references while parsing the compileCommand files. A simple one-line update to the regex used to parse the commands

Thanks for the fix!


[Feature]: Addition of FAQ's section

Describe the feature
I would like to add the FAQ's section containing popular & common FAQ for customers.
@trishanu-init please assign this to me.
Add ScreenShots
No response
Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

/assign-me

Hello,
@trishanu-init
kindly assign this issue to me, so that i can start working on the same.


ziti-router example configuration

I am looking for help configuring ziti-router i.e. example directives for config.yml. Specifically, I'm trying to find out whether a property needs to be set in config.yml to enabled the router's built-in tunneler features for hosting a Ziti service.
I found a v2 example in https://openziti.github.io/ziti/manage/edge-router.html#configuration, but it doesn't have a comment or placeholder for any tunneler-related properties. Does that mean the built-in tunneler stuff is only managed through the controller's management API, and no config properties are needed?

A sample config can now be generated with the ziti CLI.
ziti create config router edge --routerName kentest


CustomField error with class-based dependency

Seeing this error:
class TestProvider(CustomField):
    def __init__(self):
        print('init')
        super().__init__(cast=True)

    def use(self, **kwargs) -> typing.Dict[str, typing.Any]:
        kwargs = super().use(**kwargs)
        if self.param_name:
            kwargs[self.param_name] = 'test'
        return kwargs

class Tester:
    @inject
    def __init__(self, test: str = TestProvider()):
        print(test)

Tester()

Raises this error:
TypeError                                 Traceback (most recent call last)
Cell In[32], [line 17](vscode-notebook-cell:?execution_count=32&line=17)
     [13](vscode-notebook-cell:?execution_count=32&line=13)     @inject
     [14](vscode-notebook-cell:?execution_count=32&line=14)     def __init__(self, test: str = TestProvider()):
     [15](vscode-notebook-cell:?execution_count=32&line=15)         print(test)
---> [17](vscode-notebook-cell:?execution_count=32&line=17) Tester()

File [/lib/python3.11/site-packages/fast_depends/use.py:156](.../lib/python3.11/site-packages/fast_depends/use.py:156), in _wrap_inject.<locals>.func_wrapper.<locals>.injected_wrapper(*args, **kwargs)
    [153](.../lib/python3.11/site-packages/fast_depends/use.py:153) @wraps(func)
    [154](.../lib/python3.11/site-packages/fast_depends/use.py:154) def injected_wrapper(*args: P.args, **kwargs: P.kwargs) -> T:
    [155](.../lib/python3.11/site-packages/fast_depends/use.py:155)     with ExitStack() as stack:
--> [156](.../lib/python3.11/site-packages/fast_depends/use.py:156)         r = real_model.solve(
    [157](.../lib/python3.11/site-packages/fast_depends/use.py:157)             *args,
    [158](.../lib/python3.11/site-packages/fast_depends/use.py:158)             stack=stack,
    [159](.../lib/python3.11/site-packages/fast_depends/use.py:159)             dependency_overrides=overrides,
    [160](.../lib/python3.11/site-packages/fast_depends/use.py:160)             cache_dependencies={},
    [161](.../lib/python3.11/site-packages/fast_depends/use.py:161)             nested=False,
    [162](.../lib/python3.11/site-packages/fast_depends/use.py:162)             **kwargs,
    [163](.../lib/python3.11/site-packages/fast_depends/use.py:163)         )
    [164](.../lib/python3.11/site-packages/fast_depends/use.py:164)         return r
    [165](.../lib/python3.11/site-packages/fast_depends/use.py:165)     raise AssertionError("unreachable")

File [/lib/python3.11/site-packages/fast_depends/core/model.py:309](.../lib/python3.11/site-packages/fast_depends/core/model.py:309), in CallModel.solve(self__, stack, cache_dependencies, dependency_overrides, nested, *args, **kwargs)
    [300](.../lib/python3.11/site-packages/fast_depends/core/model.py:300)     kwargs[dep_arg] = dep.solve(
    [301](.../lib/python3.11/site-packages/fast_depends/core/model.py:301)         stack=stack,
    [302](.../lib/python3.11/site-packages/fast_depends/core/model.py:302)         cache_dependencies=cache_dependencies,
   (...)
    [305](.../lib/python3.11/site-packages/fast_depends/core/model.py:305)         **kwargs,
    [306](.../lib/python3.11/site-packages/fast_depends/core/model.py:306)     )
    [308](.../lib/python3.11/site-packages/fast_depends/core/model.py:308) for custom in self__.custom_fields.values():
--> [309](.../lib/python3.11/site-packages/fast_depends/core/model.py:309)     kwargs = custom.use(**kwargs)
    [311](.../lib/python3.11/site-packages/fast_depends/core/model.py:311) final_args, final_kwargs = cast_gen.send(kwargs)
    [313](.../lib/python3.11/site-packages/fast_depends/core/model.py:313) if self__.is_generator and nested:

TypeError: TestProvider.use() got multiple values for argument 'self'

I'll take a look, what I can do with it, but for now you should rename your class 'self' argument to smth else to not conflict with original 'self'. I used 'self__' inside lib

@chrisgoddard I found a solution, but now you should use CustomField in a new way (to support classes injection):
class Header(CustomField):
    def use(
        self,
        /,  # <- new thing
        **kwargs: AnyDict
    ) -> AnyDict:
        kwargs = super().use(**kwargs)
        kwargs[self.param_name] = kwargs["headers"][self.param_name]
        return kwargs

Old syntax works fine too, but doesn't support class case. All documentation was updated as well.

I've seen that positional-only syntax before and never really knew what it was for - so good to know! Thanks for responding quickly on this.


GafferScene documentation

This fills in all the metadata description strings for the GafferScene module, getting us a lot closer to completing #1162. There's still GafferRenderMan, GafferArnold, GafferAppleseed and GafferOSL to go, but those are small in comparison to GafferScene.

Since this touches a lot of files I suspect this will conflict with #1288 and possibly #1289. Just review/merge in whatever order you want and I'll rebase as necessary.

I've updated this to include documentation and tests for GafferOSL too.

Since the pull requests are beginning to stack up a bit, do you think we could get this one in particular reviewed as a priority? It should be a pretty quick review, since it's mostly just metadata entries, and it'd be very helpful to me to have it merged, because it touches so many files and I'm sure there'll be conflicts to resolve in the other requests and in the work I'm doing now...


Update CLI extensions available doc

Update CLI extensions available doc.
Triggered by Azure/azure-cli-extensions - TRAVIS_BUILD_ID=380420321
https://github.com/Azure/azure-cli-extensions/commit/31f5db537ca4d6f71d20d4f0639c06d2b88ebe64

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-ref-conceptual/azure-cli-extensions-list.md
:white_check_mark:Succeeded
View (azure-cli-latest) View (azure-cli-2017-03-09-profile)

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


Code problem in example: Shader Water

These two lines are unused in vertex shader and could be removed directly;

fix: https://github.com/oasis-engine/oasis-engine.github.io/pull/178


Dapr pubsub service bus topics: Add support for including ApplicationProperties in subscriber

Hello,
we are trying to integrate Dapr within our microservices architectures but we are experiencing some issues in accessing custom properties for messaged published through Service Bus Topics.
We are not using cloudEvents and to make events traceable, we will leverage ElasticAPM with the default Azure Service Bus capabilities based on Diagnostic-Id field. See more here.
We are publishing the message from a .NET 8 API in the following way:
`
public async Task CreateNotification([FromBody] Notification notification)
{
if (notification is not null)
{
ITransaction transaction = Agent.Tracer.CurrentTransaction;
    var asyncResult = await transaction.CaptureSpan("SendEvent", ApiConstants.TypeMessaging, async(s) =>
    {
        //metadata needed to remove the cloudevent envelop
        var metadata = new Dictionary<string, string>
        {
            { "rawPayload", "true" },
            { "Diagnostic-Id", "00-"+ Agent.Tracer.CurrentTransaction.TraceId + "-" + Agent.Tracer.CurrentSpan.Id + "-" +"01"}
        };

        await _daprClient.PublishEventAsync("pubsub", "notification-topic", notification, metadata);

        return true;
    });

    return Ok("Notification Created");
}

return BadRequest();

}`
The rawPayload and Diagnostic-Id metadata are correctly set into the message custom properties, but when we receive the data in the following way, we cannot see those metadata into the http request header
`Dapr.Topic("pubsub", "notification-topic")]
[HttpPost("notificationreceived")]
public async Task NotificationReceived([FromBody] Notification notification)
{
foreach (var header in Request.Headers)
{
_logger.LogInformation(header.Key + " = " + header.Value);
}
if (notification is not null)
{
    await _notificationsService.CreateAsync(notification);

    return Ok("Notification Received");
}

return BadRequest();

}`
the only metadata available are:

deliverycount
enqueuedtimeutc
lockeduntilutc
locktoken
messageid
sequencenumber

Is there a way to get also custom properties with metadata?

Dapr supports pass through of non-cloud event properties if and only if are these sent as additional properties within a cloud event body. That is referred to as cloud event extension. It does not work with raw events, but instead a payload of type application/cloudevent+json must be sent, with a manual json dictionary body which then contains both legitimate cloud event properties and your custom properties. These properties are indeed retained and delivered to all components.
https://github.com/dapr/dapr/blob/199bcf4e198b247bf0f259562e02c97064cb378e/pkg/api/grpc/grpc.go#L182-L190
What you are requesting is not inherently Service Bus specific and this request occasionally comes up with other components.
The Dapr PubSub component interface does not currently specify that metadata properties are to be retained. These were only created with the intentions to control component specific behavior but not to be delivered to the consumer application. Only the body
Therefore, a larger proposal would be required to design an appropriate solution to store and deliver metadata in all Dapr pubsub components, even when cloud event envelopes are not used. I am not a fan of creating a component specific solution / approach here, especially given that we already support passing through custom data via cloud event extensions.

Perhaps there is some confusion here based on wording of the request.
The code you pointed out will take any unknown metadata properties and add them to:
ApplicationProperties on the message. This is the place to store custom metadata in service bus (at least when using the Go SDK): https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/messaging/azservicebus#Message
https://github.com/dapr/components-contrib/blob/f0be1a2d28edbec685633e6c3b69b950daf4206f/common/component/azure/servicebus/message.go#L172-L174
I think you are seeing the ApplicationProperties set correctly.
When this was designed, the intention there was never for those custom properties to be delivered back to the subscriber.
We can certainly add support for this however.

What needs to be done is for this function be updated to also look at the ApplicationProperties property (which itself is a map) and for that map to be merged into the resulting metadata map.
https://github.com/dapr/components-contrib/blob/f0be1a2d28edbec685633e6c3b69b950daf4206f/common/component/azure/servicebus/message_pubsub.go#L56-L109
That should give you what you want @vbuonagura and this change would apply to all Service Bus components in Dapr.

I implemented this and you will see it in Dapr 1.14

Thanks @berndverst for taking the point. I will check it with Dapr 1.14

@berndverst is there a way to test the code change in preview mode?


clean up Gemstash::Configuration parse_config

lib/gemstash/configuration.rb (1 issue) 59-63: Style/ConditionalAssignment: Use the return of the conditional for variable assignment and comparison. [rubocop]

replaced by #97


bug - fix relative path use in schema lookup

What is this
When installed as a python  package our logic for finding schemas is failing.
I've included an example of the problem.
What to do
If you were to intall dpytools (see the readme) then run this code
from pathlib import Path

from dpypelines.pipeline.shared.schemas import get_config_schema_path

config_thats_wrong_but_good_enough_for_this_example = {
    "$id": "https://raw.githubusercontent.com/ONSdigital/dp-data-pipelines/sandbox/schemas/dataset-ingress/config/v1.json"
}

print(f"Current path: {Path(__file__).absolute()}")

config_path = get_config_schema_path(config_thats_wrong_but_good_enough_for_this_example)
print(config_path.absolute())

you'll get an error because we're looking in the wrong place.
I think (you'll need to investigate) its just because we're assuming a static and relative schema base path, see here: https://github.com/ONSdigital/dp-data-pipelines/blob/0682f4e8ca72fc5309bbd032c56a85acceeedb92/dpypelines/pipeline/shared/schemas.py#L11
this task is to correct is so we're always looking for the schema base path relative to where dpypelines is installed.
a useful thing
Path(__file__).parent gets you to the path to the directory containing whatever python file this code snippe is written in.
You should be able to use that (plus a bit more path joining) to always point to the schema directory regardless of where on your os dpypelines is installed. There might be a neater way, inviestgate.
Acceptance Criteria

[ ] code updated
[ ] the included example snippet no. longer raises an error.

done


llama_7b wikitext perplexity 7.0915350914

bash scripts/llama_7b.sh
the source model: wikitext perplexity is 5.67702
prune this model, sparsity 50%,  get wikitext perplexity is 7.09153509
but the paper is :  50% 7.26
why?

Hi. Were you able to resolve the issue?

Thanks, I didn't use c4 calibration dataset, I just wanted to reproduce the data in the paper.
def get_loaders(name, nsamples=128, seed=0, seqlen=2048, tokenizer=None):
    if 'wikitext2' in name:
        return get_wikitext2(nsamples, seed, seqlen, tokenizer)
    # if "c4" in name:
        # return get_c4(nsamples, seed, seqlen, tokenizer)


Create a clearer hierarchy for topics

(This is a continued discussion from here)
Topics

Binary and Ternary Search
Dynamic Programming
Flow
Game Theory
Graphs
Greedy
Maths
Matrix Exponentiation
Miscellaneous
Prefix and Suffix Trees
Segment Trees
Trees

In regard to the current Table of Contents (as quoted above), I suggest a possible restructure and create a clearer hierarchy for topics.
I would propose something like this (here I'll leave the decision of alphabetical order to you -- which I have explained my concerns for it in earlier discussions):
Topics

Binary and Ternary Search
Data Structures

Prefix and Suffix Trees
Segment Trees
Trees

Dynamic Programming
Game Theory
Graphs

Flow
Some other content (eg. Connected Components, Bipartite Graphs and Matchings)

Greedy
Maths

Matrix Exponentiation
Some other content 2 (eg. Sieve of Eratosthenes, Prime Factorization)

Miscellaneous

(still in alphabetical order)

You two stand on different sides.
@hkirat deals with most cases when people know exactly what they are looking for, and the awesome list helps to find something useful on this topic.
@lnishan provides something like a study route, which is not common practice for awesome lists(I guess?).

+1
Would you like to work on this @lnishan ?

I'll work on this as I have the markdowns written down already.
Working on the pull request.


Expand file based configuration options

Moving initial values to file based configuration so that they can be kept in the consuming application's source control.
See conversation here https://octobercms.slack.com/archives/C09864473/p1606461477304800

LGTM!


CORTX-30969:Use PVC location for storing m0trace files during mini-provisioner execution

In case of admin user creation failure, m0trace files are created in /root directory .Hence adding the logic of mini-provisioner where m0trace files will be created in pvc location instead of /root.
Signed-off-by: Sachitanand Shelake<EMAIL_ADDRESS>Problem Statement

Problem statement

Design

For Bug, Describe the fix here.
For Feature, Post the link for design

Coding
Checklist for Author

[ ] Coding conventions are followed and code is consistent

Testing
Checklist for Author

[ ] Unit and System Tests are added
[ ] Test Cases cover Happy Path, Non-Happy Path and Scalability
[ ] Testing was performed with RPM

Impact Analysis
Checklist for Author/Reviewer/GateKeeper

[ ] Interface change (if any) are documented
[ ] Side effects on other features (deployment/upgrade)
[ ] Dependencies on other component(s)

Review Checklist
Checklist for Author

[ ] JIRA number/GitHub Issue added to PR
[ ] PR is self reviewed
[ ] Jira and state/status is updated and JIRA is updated with PR link
[ ] Check if the description is clear and explained

Documentation
Checklist for Author

[ ] Changes done to WIKI / Confluence page / Quick Start Guide

Tested with this changes,
docker images:

cortx-all : cortx-docker.colo.seagate.com/seagate/cortx-all:2.0.0-5959-custom-ci
cortx-rgw : cortx-docker.colo.seagate.com/seagate/cortx-rgw:2.0.0-5959-custom-ci
cortx-data : cortx-docker.colo.seagate.com/seagate/cortx-data:2.0.0-5959-custom-ci

Deployment job :
https://eos-jenkins.colo.seagate.com/job/Cortx-Automation/job/RGW/job/setup-cortx-rgw-cluster/3625
a)Previous behavior during mini-provisioner:
(Note: m0trace.1 is generated when we start rgw service (1 is pid of rgw process)

b) after creating m0trace directory and setting log directory for m0trace during mini-provisioner:
(Note: m0trace.355 is m0trace file generated during config phase, where admin user creation happened)


Add design for allowing all signers by default

This has been discussed in various cert-manager meetings already. I'm adding this lightweight design to allow the conversation to be captured here in the repo and to provide a point of reference as we make this change.

Thanks @hawksight  - I've updated to include a bit more detail on what exactly users would have to do.

/test pull-cert-manager-approver-policy-test

@SgtCoDFish - I thought this might make more sense for readers to indicate when action was needed, https://github.com/SgtCoDFish/cert-manager-approver-policy/pull/1. Please feel free to ignore or do other things, merely a suggestion.

That's awesome! The only thing I'd say about that is it feels more like a documentation / release note thing than a design doc thing. I wouldn't expect most users to ever see this doc - this is more for devs and maintainers interested in why the change was made.
As such, I'll absolutely take the notes you've written - but I'll use them in release notes and docs instead, because they'll be awesome there! Thank you 😁
/approve


Add an Iterator

We could do:
for cmd in editor {
    match ...
}

It would end on EOF or

And for <C-c> ?

In my code, I ignore it. It's handy if you want to discard the current line. python does it.

Something like:
impl<C: Completer> Iterator for Editor<C> {
    type Item = Result<String>;

    fn next(&mut self) -> Option<Result<String>> {
        let readline = self.readline(""); // FIXME prompt
        match readline {
            l @ Ok(_) => Some(l),
            Err(error::ReadlineError::Eof) => None,
            e @ Err(_) => Some(e),
        }
    }
}

?

Yeah, something like that. The prompt could be configured at creation time, since it tend to stay the same for most program. You should also keep the current interface, in case someone want to do something different

SGTM. Just add an implementation for IntoIterator for extra convenience ^^

2.0 released


Add Papers with Code ID to scifact dataset

This PR:

adds Papers with Code ID
forces sync between GitHub and Hub, which previously failed due to Hub validation error of the license tag: https://github.com/huggingface/datasets/runs/8200223631?check_suite_focus=true

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.


ARROW-2923: [DOC] Adding Apache Spark integration test instructions

This adds instructions to dev/README for running the docker based Spark integration tests

Thank you!


Show file paths additional to file name

Added functionality to show file paths and make files list css overflow visible or hidden, also some small css changes

@postcasio Please review it and merge, i think it's cool feature, nice to have.


chore(docs): added custom equalityFn example

issue: #1504
Adding documentation/example for custom equality function for useSelector()

Thanks! Can you tweak the naming a bit? The arguments aren't really "state", since they're the extracted values.  Maybe something like oldValue or oldResult?

Thanks!


Alexey-Ben meeting 2018-10-30

Last week's goals:

Outputs from SIPNET 100 year runs -- Downloaded and calculated annual means. Posted on Slack.

Proof of concept: We can easily do 100 year runs at UMBS, including getting at least one climate data product. And we can do it all with PEcAn.
Now, need to look more carefully at how we run the models, especially:

PFT definition -- what species go into it? What trait data are available? For traits, I can probably constrain values more by adding TRY data.
Initial condition -- I currently have no idea where SIPNET gets this. Will need to figure that out.
Parameter uncertainty -- With PEcAn, should be straightforward to run ensembles across parameter ranges. I should actually do this!
Driver uncertainty -- Good idea to run SIPNET using several different met products (should be at least a few reanalysis products available across this range). The met products themselves should also be compared to local tower observations.

Run ED at UMBS -- Can successfully start runs with PEcAn, but model crashes early in the first spring because of numerical integration errors.

Mike had a few tips, but said ED is just numerically unstable at low LAI and was pessimistic about bare-ground runs.
...but, I emailed a contact in the Moorcroft lab (Xiangtao Xu, postdoc), and he said he's done lots of bare-ground runs with ED in temperate forests in the past. He had some suggestions, and offered to look at my input files to help debug.
Next step -- look closely at PEcAn-generated parameter files. Might be a parameterization/configuration error. If everything seems to be in order, send some input files to Xiangtao to see if he sees anything.

Run SiPNET and ED at SERC -- Didn't get to, but shouldn't be too hard.

Unless it's needed for something else, I'd like to take SERC off my to-do list for the near future. Any time I would have invested in SERC specifically, I would rather invest in PEcAn more generally (both code hardening and adding models). Once it's a bit more solid, I can help set Ben and Stephanie (and others?) up with it so they can do the runs they need themselves.

Background reading -- Spent a lot of time this week on general background reading, particularly catching up on Google Scholar alerts and journal RSS feed updates from last few months.

No updates to FoRTE first paper outline. Need to start regularly adding to this moving forward.

ED RTM -- Completed translation of ED two-stream RTM into R (link), but it's giving some crazy output.

Next step -- Run ED RTM natively with a few extra "print" statements to have some reference variables for comparison. Look in particular at RTM inputs. I may be giving bad inputs for incident solar radiation (ED does a lot of extra normalization of various fluxes; odds are good I haven't correctly normalized something).

Hector -- Found a few papers with permafrost C emission trajectories, but haven't done anything with them yet, and need to give them a closer look. See also Hector meeting notes.
General PEcAn development

Added THREDDS data server functionality. Makes it easier to access PEcAn run outputs remotely, including enabling remote subsetting. See PEcAn PR #2164.
90% of the way there to a PEcAn R API, where runs are submitted to a remote Dockerized instance directly from a local R session. Once fully functional, this will make it much easier to run integration tests and generally to run models (by avoiding need to manually click through web interface each time).

Goals for this week:

FoRTE

Try to get ED bare ground runs working.
Try to get more reasonable SiPNET runs.
Background reading on SiPNET
Flesh out the FoRTE paper, focusing on introduction and methods
(Time-permitting) Dockerize and try to run a few other PEcAn models at UMBS

Hector

Review of permafrost carbon literature
Reach out to Kevin Schaeffer and co-authors about output from their 2011 paper.

(Time-permitting) Digitize the plots from that paper myself, and try to set up Hector runs where those emissions are included.

ED RTM work (for AGU)

Debug R implementation.

If this proves too difficult or time-consuming, switch back to original approach. (Time-permitting) Do some basic profiling of executable to see where I can potentially skip time-consuming steps.

(Time-permitting) Parameter sensitivity analysis, and test Bayesian calibration.

(Time-permitting) PEcAn

Clean up, document, and test PEcAn API code for a pull request

Alexey's notes from meeting:

If adding more models to FoRTE analysis, consider LPJ-Guess
Alexey will eventually set up two PEcAn cloud nodes -- one more stable, one more experimental
Consider initializing ED from observed non-bare ground state one or two years later, if bare ground runs don't pan out
Alexey's AGU work should be top priority
Ben will work on adding Biome-BGC to PEcAn in January. Alexey thinks it should be pretty quick.
Fine to take SERC off Alexey's to-do list. Teaching others how to do runs at SERC is a better idea. Postdocs interviewed this week may also be interested in using PEcAn.

Also, Lisa Haber (VCU, FoRTE project) may be interested in doing a modeling chapter for her PhD. We should keep in mind a list of low-hanging fruit PEcAn-enabled modeling analyses that would be good candidates for this and similar efforts.

Hector can be lower priority on Alexey's to-do list until AGU
FoRTE modeling -- look into observational data for validation

Direct comparison of absolute values
More advanced comparisons of trends, distributions, correlations, etc.
Maybe discuss on Thursday...but main focus is Jeff's kill map

Consider the University of Delaware temperature and precipitation climate data as a model driver?

Only has air temperature and precipitation -- many models need more than that. But may be a useful point of comparison against other met drivers, or for other work.

Lisa's first committee meeting is November 12, and I'll know more about their plans after that.


The Demo project does not work out of the box.

After doing a pod install, the demo project does not work. grey_accessibilityID seems to be the culprit which I also can't resolve when I add EarlGrey to my own project. This is making it extremely difficult to want to pursue when the setup is so rickety.
Swift Example:

Objective-C Example:

What version of OS X & Xcode are you using?

OSX 10.11.5
Xcode 7.3

Sorry that you're running into this Matt. @tirodkar: could you please help out Matt with this.

@mcmurrym I think you might be running into:
http://stackoverflow.com/questions/37212028/use-of-unresolved-identifier-grey-accessibilityid/37215155#37215155

I saw that, but just renaming the directory causes the BridgingHeader to fail on the import of EarlGrey/EarlGrey.h

This is the example project in the error state before changing the directory name
EarlGreyExample.zip

Try updating to the latest stable Xcode 7.3.1.

This seems to be related to a SourceKit issue with non allowing frameworks with hyphens or so in their names. An update might help in your case.
Try this -
Rename Pods/EarlGrey/EarlGrey-1.0.0 to Pods/EarlGrey/EarlGrey1 and re-add the EarlGrey.framework in your project in the Pods/Pods/EarlGrey/Frameworks directory which should now be red on changing the directory name. Remove the Framework Search Path to EarlGrey in the Swift Target's Build Settings.

It works just fine on Xcode 7.3.1 I recommend documenting this as a requirement. No directory renaming needed.

On it. Thanks.

Closing as this fixed.


how to run the PGN model?

could you make the PGN outputs from CIHP_PGN model , please?
i don't know how to run the PGN model

i solved it ! thank you

Could you give a guide on how you ran the PGN model?

Could you give a guide on how you ran the PGN model?

PGN model is here: https://github.com/Engineering-Course/CIHP_PGN
to generate the dataset for PGN model, here is a script for your reference: https://gist.github.com/qzane/4d07b7551914f97f2bf8b9c79138ab14


Feature/control UI font size

Description
This PR addresses the issue #713 and allows setting font-size on all Code Editor components from the Preferences>Font form. I have implemented it similarly to how the setting of the font family is already done.

Contribution Checklist:

[x] The pull request only addresses one issue or adds one feature.
[x] The pull request does not introduce any breaking changes
[x] I have added screenshots or gifs to help explain the change if applicable.
[x] I have read the contribution guidelines.
[x] Create an issue and link to the pull request.

Hey @helloanoop  ! The end of Hacktoberfest is approaching, is there something I can do to improve my PR ? 😄


Improve documentation for smoothing in interpolate.UnivariateSpline and interpolate.splrep

Problem:
For scipy.interpolate.UnivariateSpline and scipy.interpolate.splrep, the user is asked to supply a smoothing factor (s) that is used to smooth the spline fit through noisy data. At first glance, this is easy, because s=0 provides no smoothing, only interpolation. A larger value of s provides more smoothing. However, in practice, I have been finding s through a tedious process of trial and error, and I imagine that many users are doing the same. As discussed in https://github.com/scipy/scipy/issues/4975#issuecomment-112870150 and (more recently) in
https://github.com/PyAbel/PyAbel/issues/276#issuecomment-616966199, the documentation for how to select an appropriate s is somewhat confusing.
In the case where users correctly input the weights array (w) as the inverse of the standard deviation, then s is correctly set to s = len(w), which is a good starting point and covered in the documentation. However, for users that use the default weights array (w = ones(len(x))), then the default s is much too high and they aren't offered any guidance on how to select an appropriate s.
Suggested solution:
As discussed in the docs for splrep , the amount of smoothness is given by sum((w * (y - g))**2,axis=0) <= s, where w is the weights, y is the data, and g is the spline. So, if the weights are equal to 1 everywhere, then we are left with sum((y-g)**2) <= s, which is (number of points) * (standard dev of residuals)**2. If we assume that we want the standard deviation of the fit residuals to be equal to the noise (standard deviation) of the data, then we would want s = (number of points) * (standard deviation)**2.
So, I think that the documentation for s should include something like the following:
"If the weights are all set to 1 (default), then the appropriate value of s will be somewhere near len(x)*sd**2, where sd is is an estimate of the standard deviation of the data points." Another sentence should be included to emphasize that the user must set either the w or the s to achieve sensible results.
In addition, the documentation for UnivariateSpline should mention that the default value of the w array is ones(len(x)). splrep already does this, but UnivariateSpline just says that "If None (default), weights are all equal.". Since the absolute value of the weights matters for the selection of s, it's important to say what the actual value of w[i] is.
Alternatives:
I don't think that these are great ideas, but since the form asks for alternatives, here is what comes to mind:

More invasive: One could argue that UnivariateSpline should work reasonably, out-of-the-box, without the user needing to input the weights or smoothing variables. This would amount to setting the default s = len(x) * 1e-4, or assuming a 1% error in the datapoints.

More invasive: the functions could show a warning if the user hasn't set either w or s.

Side-note:
splrep sets the default s = len(x) - sqrt(2*(len(x)) while UnivariateSpline sets the default s = len(x). These functions are both fitting the same splines, right? Shouldn't they use the same default? Their documentation is also quite different, and it might make sense to take the best of both docs and combine them. Pragmatically, I'm guessing that most users will be using UnivariateSpline (it's the most user-friendly), but splrep has more comprehensive documentation.
EDIT: Here is a previous issue from many years ago when s = None by default: https://github.com/scipy/scipy/issues/726
EDIT2: Here is the link to the section of the FITPACK code where there is a lengthy (but fairly confusing) discussion of the smoothing factor: https://github.com/scipy/scipy/blob/master/scipy/interpolate/fitpack/curfit.f#L141

It'd be great to improve the docs, care to send the PR? I'd be happy to review it.
Changing the defaults is not an option anymore, I'm afraid.

Alternative smoothing/control routines is more then welcome, but should be added to make_* routines.

care to send the PR? I'd be happy to review it.

Sure, I'll make a PR for the revised docs.

but should be added to make_* routines.

What are "make_* routines"? I think that improving the docs is fine at this point. I was just thinking about alternative approaches since the form prompted me to do that :)

What are "make_* routines"? I think that improving the docs is fine at this point. I was just thinking about alternative approaches since the form prompted me to do that :)

Here's a previous issue with some discussion:
https://github.com/scipy/scipy/issues/6730

Another thing related to smoothing and documentation.
The “smoothing condition” in splrep has very different effects with and without the periodic conditions (the per parameter):
import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import splrep, splev

N = 20
tol = 0.5
s = N * tol**2

xd = np.linspace(0, 1, N, endpoint=False)
yd = np.sin(2 * np.pi * xd) + \
     np.random.RandomState(0).normal(scale=0.1, size=N)

x = np.linspace(0, 1, 100, endpoint=False)

nonperiodic = splrep(xd, yd, s=s)
periodic = splrep(np.append(xd, xd[0] + 1), np.append(yd, 0), s=s, per=True)

plt.subplot(211)

plt.plot(xd, yd, 'C0o', label='data')
plt.plot(xd + 1, yd, 'C0o', fillstyle='none')

plt.plot(x, splev(x, nonperiodic), 'C1', label='per=False')
plt.plot(x + 1, splev(x, nonperiodic), 'C1:')

plt.plot(x, splev(x, periodic), 'C2', label='per=True')
plt.plot(x + 1, splev(x, periodic), 'C2')

plt.ylabel('value')
plt.legend()
plt.title('tol = {}'.format(tol))

plt.subplot(212)

plt.plot(xd, yd - splev(xd, nonperiodic), 'C1o', label='per=False')
plt.plot(xd + 1, yd - splev(xd, nonperiodic), 'C1o', fillstyle='none')

plt.plot(xd, yd - splev(xd, periodic), 'C2o', label='per=True')
plt.plot(xd + 1, yd - splev(xd, periodic), 'C2o', fillstyle='none')

plt.ylabel('deviation')
plt.legend()

plt.tight_layout()
plt.show()

Without periodicity, splrep() apparently tries to find the best match to the data points without exceeding the “smoothing condition”, but with periodicity, it apparently tries to reduce the total variation of the spline as much as possible without exceeding the “smoothing condition”. I can even agree that the green spline (per=True) can be called “smoother” than the orange one (per=False), but why the interpretation of “smoothness” depends on whether per is True or False and why this is not documented?
For closer tolerances (smaller s), the non-periodic and periodic splines do not show such drastic differences:

The difference in behavior between the periodic conditions and the non-periodic conditions is strange. If anything, I would have expected the periodic conditions to force the fit to be better, instead of the opposite.
I'm not sure where the difference arises. As you can see here, there is a difference in the "nest" variable between the two cases: https://github.com/scipy/scipy/blob/master/scipy/interpolate/_fitpack_impl.py#L478
Also, the non-periodic case uses curfit, while the periodic case uses percur.

Interesting. The nest differences seem to be due to different requirements of percur and curfit, but this just suggests the maximal storage-space requirements and should not affect the results.
The whole documentation for percur and curfit looks almost identical. With one minor detail:
percur:
c    ier=-2 : normal return. the spline returned is the weighted least-
c             squares constant. in this extreme case fp gives the upper
c             bound fp0 for the smoothing factor s.

curfit:
c    ier=-2 : normal return. the spline returned is the weighted least-
c             squares polynomial of degree k. in this extreme case fp
c             gives the upper bound fp0 for the smoothing factor s.

Notice the “weighted least-squares constant” and “weighted least-squares polynomial of degree k”! This happens “if s is very large” (according to “further comments” there)!
So this is apparently what we see. Using data points with a higher-frequency oscillation:
yd = np.sin(4 * np.pi * xd) + \

which cannot be approximated by a single cubic polynomial reveals that in this case both non-periodic and periodic splines behave similarly:

They both indeed try to be “smoother” (have smaller variation) rather than fit the data better. If s is not too large!
From this perspective, this behavior kind of makes sense, but it definitely must be documented. I mean that:

Smaller spline variation is preferred over better data reproduction.
If s is to large, the best-fit polynomial is returned. For the non-periodic case, it will have degree k, but for the periodic case it is a constant, since polynomials of order > 0 cannot be periodic.

Improving the documentation on what happens when s is set to its default value would definitely be helpful. Was getting some very weird splines with s=None, so started to dig deeper into the smoothness parameter to find out that it was way too high.
I probably got spoiled by scikit-learn, where default values usually give a good enough initial result.

Pull request are certainly very welcome.

@DanHickstein Thanks for your detailed explanation.  It really helped me understand why it seemed like I need to tune the s parameter individually for each data set I'm trying to smooth wtih splprep/splev.
The thing is I'm afraid I'm completely lost as to what I actually need to set w (or s) to.  Is there any chance you (or someone else?) could shed some light?
Here's what I'm doing: I have a set of 2d points that comprise a LineString (in Shapely parlance).  I'm using splprep/splev to generate a smoothed version of the path, and I'm trying to expose a "smoothness" option to my end-users.  To do that, I need to somehow normalize the s parameter so that the user can specify a consistent value and expect the same "amount" of smoothing.
I tried calculating s like this:
s = round(user_provided_smoothness / 100 * num_points)
The idea is that "100" would be a "normal" amount of smoothing, lower numbers provide less smoothing, and higher provide more.  However, in practice, for some 2d coordinate sequences, a user smoothness value of 100 gives a lot of smoothing, and for others, none at all.
Here's the thing I don't understand: what exactly am I supposed to calculate the standard deviation of?
I tried this:
coords = np.array([(x1, y1), (x2, y2), ...])
w = 1 / np.std(coords, axis=1)
tck_u, fp, ier, msg = splprep(coords.T, w=w, s=len(coords), k=3, full_output=1)

This resulted in a ridiculous amount of smoothing for an input path that looks like this:

"Nice" smoothing looks like this (w unspecified and s=5000):

Any help would be greatly appreciated.  I've been bashing my head against this and I really just don't get what standard deviation or errors we're talking about here.

More brain-wracking, and I think I finally understand.  We're talking about the deviation of the smoothed path (g) from the original path, right?  In practical terms, the sd limits how far the smoothed path is allowed to deviate at any given place -- kinda, since we're actually talking about standard deviation and not an absolute limit.  Do I have this (approximately) right?

It's been a while since I've thought about this, but I think that you basically figured it out in your second post. I think that some of the above discussion was written from the point of view of someone who has collected data where each datapoint has some random "noise" added. The standard deviation would be the standard deviation of this added noise. The goal is to smooth the data such that we approximately recover the true value of each datapoint and "smooth out" the noise. So, yes, I think that you can think about sd as being the standard deviation between the original path and the smoothed path.
Judging from my recommendation above that s should be somewhere near (number of points) * (standard deviation)**2, I'm confused why you are setting s to be inversely proportional to the number of points.
If you use s = (number of points) * (standard deviation)**2, then the standard deviation is going to be approximately the scale of the features that get rounded off. So, you could allow the user to directly input the SD and limit it's value from 0 to ~100 pixels.

Thanks!  I wasn't actually using the inverse of the number of points, it just looks that way because of the order of operations.  Now that I understand what's going on here, I stopped trying to scale things to 100 and just use n * smoothness ** 2 and it works great!  I can just tell the user that their smoothness setting relates to the size of the features being smoothed as you say -- thanks, I really like that wording!

Awesome! Glad that you're got it working :)


Documentation's guidance leads to message error regarding assignment of capabilities –relying on setcap– to a file

Documentation's guidance covering section Backing up your system without running restic as root leads to message error regarding assignment of capabilities to file.
Commands executed:
$ uname -r
5.2.5-200.fc30.x86_64
# useradd -m citser -p <password>; mkdir -p ~citser/bin/restic; git clone https://github.com/restic/restic.git ~citser/bin/restic
# chown root:citser ~citser/bin/restic; chmod 750 ~citser/bin/restic
# ls -al ~citser/bin/restic | sed -n '2,3p'
drwxr-x---. 12 root citser  4096  3. 8. 11:54 .
drwxr-xr-x.  3 root root    4096  3. 8. 11:49 ..
# setcap cap_dac_read_search=+ep ~citser/bin/restic
Failed to set capabilities on file `/home/citser/bin/restic' (Invalid argument)
usage: setcap [-q] [-v] [-n <rootid>] (-r|-|<caps>) <filename> [ ... (-r|-|<capsN>) <filenameN> ]

 Note <filename> must be a regular (non-symlink) file.

Not an issue; solved as consequence of case #2371 solved.


Handle assertThat in JUnit and Hamcrest.

This adds handling of nullness assertions using "assertThat(..., isNotNull())" statements from JUnit (https://junit.org/junit4/javadoc/latest/org/junit/Assert.html) and Hamcrest (https://junit.org/junit4/javadoc/4.12/org/hamcrest/MatcherAssert.html).
Issue #301

Looks great to me. Feel free to "Squash and merge" after CI passes :)


fix: add funding info

:tada: This PR is included in version 3.11.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


AM double reflect resulting in a server crash

Fixed. Reflection of a reflected spell depletes both Anti Mage's Spell Shields and does nothing else.


Add open panels (dialogs) for easier file selection

Open panels has been added so end user could easily select xsd file and output directory.

makes sense,
thank you
manually merged


Hardcode JWT settings for short refresh time

https://app.clickup.com/t/2549495/SALEOR-2188
Do not merge.

Task linked: SALEOR-2188 Missing retry on query when JWT expired


Implementation of Interpolation Search in C Language

Have you read the Contributing Guidelines on Pull Requests?
Yes
Description
Issue Number =#451.
The Interpolation Search is an improvement over Binary Search.
Implemented this algorithm in C language with Iterative approach.
Time Complexity : If the elements are uniformly distributed then O(log log n)
and in worst case it can take upto O(n).
Auxiliary Space : O(1).
Below is the output of this algorithm.
Checklist

[x]  I've read the contribution guidelines.
[x]  I've checked the issue list before deciding what to submit.
[x] I've edited the README.md and link to my code.

Related Issues or Pull Requests
(Write your answer here.)
#451

Output of this algorithm.

Please review my PR @SKAUL05 @Kajol-Kumari @Abhijit2505 @plazzy99 @siddharth25pandey

mention issue no.
edit readme file

Issue Number =#451.
Update Readme file.
@plazzy99

Added sample Input Output in the code @Kajol-Kumari

@yashaswibiyahut Update README.md so that I can merge this PR.

I have to edit  readme in yashaswi/neoalgo or tesseract/neoalgo ? @atarax665

Updated @atarax665

Updated Readme @atarax665

@all-contributors please add @yashaswibiyahut for code


[Clustering] iOS SwiftUI Clustering doesn't work as expected.

Hello,
I'm trying to implement clustering in Swift UI using GoogleMapsUtils 3.9.0.
For this purpose I've created a UIViewRepresentable struct that has a Binding for GMSMarkers which are passed from calling an endpoint.
The problem is that the ClusterManager doesn't update pins on map when updateUIView is called. The map remains the same it was at first load.
I tried all kinds of workarounds but nothing worked.
Anyone else having this issue?
Below is the code:
struct GoogleMapsClusterView: UIViewRepresentable {
    @Binding var clusterItems: [GMSMarker]
    @Binding var externalRegion: VisibleRegionOnMap

    @State private var region = VisibleRegionOnMap()
    @StateObject var locationManager = LocationProvider()

    var clusterManager: GMUClusterManager!

    init(items: Binding<[GMSMarker]>,
         region: Binding<VisibleRegionOnMap>) {
        self._clusterItems = items
        self._externalRegion = region

    }

    func makeCoordinator() -> ClusterCoordinator {
        return ClusterCoordinator(region: $region.onChange({ newRegion in
            externalRegion = region
        }))
    }

    func makeUIView(context: Self.Context) -> GMSMapView {

        let camera = GMSCameraPosition.camera(withLatitude: externalRegion.center.latitude,
                                              longitude: externalRegion.center.longitude, zoom: 10.0)
        let googleMapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)
        googleMapView.isMyLocationEnabled = true
        googleMapView.settings.compassButton = true

        let iconGenerator = GMUDefaultClusterIconGenerator()
        let algorithm = GMUNonHierarchicalDistanceBasedAlgorithm()
        let renderer = GMUDefaultClusterRenderer(mapView: mapView, clusterIconGenerator: iconGenerator)
        self.clusterManager = GMUClusterManager(map: mapView, algorithm: algorithm, renderer: renderer)
        self.clusterManager.setDelegate(context.coordinator, mapDelegate: context.coordinator)

        return googleMapView
    }

    func updateUIView(_ mapView: GMSMapView, context: Self.Context) {

        self.clusterManager.clearItems()

        self.clusterManager.add(clusterItems)

        self.clusterManager.cluster()
     }

}

Thanks in advance for the help

Hi @dragosiancu0504, I don't see any issues with the code snippet you shared. To help pinpoint the bug, what happens if you try adding/updating the map by adding markers directly without using clustering, do you see the same issue?

Hey Chris,
Thanks a lot for the quick reply.
If I change my updateUIView method to only add markers to the map everything works fine. The only annoying thing is that I have to always call mapView.clear() or else the are not removed as that datasource changes.
Here is the current workaround that works fine but there's no clustering.
    func updateUIView(_ mapView: GMSMapView, context: Self.Context) {
        mapView.clear()
        for item in clusterItems {
            item.map = mapView
        }
    }

So this is why my guess is there is a problem with the ClusterManager and SwiftUI or I'm missing something.
Let me know if you come up with any idea.
Have a great day!

How about conforming to UIViewControllerRepresentable to wrap a view controller instead? That view controller can host the GMSMapView and GMUClusterManager. My hunch is that the issue is related to clusterManager being a property of  GoogleMapsClusterView in your code snippet

Hey @arriolac,
Your hunch was right. Transfering the map and cluster to a view controller did the job.
Thanks a lot for the help.

Glad that worked!


doc: Specify --nodes-max in eksctl

Now --nodes-max gets set to the same value as --nodes by default.
Ref: https://github.com/weaveworks/eksctl/pull/2022
Signed-off-by: Michi Mutsuzaki<EMAIL_ADDRESS>

Coverage increased (+0.01%) to 36.902% when pulling 38fa8da175aed50761f4988f115eb6dc180e275d on pr/michi/eks into 84db4f63a7c99c472823b84c202196897272fb4a on master.

Hey @michi-covalent, just a couple of nits!

Would you mind to use either long or short names for all flag please?

So either:
eksctl create cluster -n test-cluster -N 0 -M 2

Or:
eksctl create cluster --name test-cluster --nodes 0 --nodes-max 2

If it's best if you could make it consistent of the entire guide too.

Perhaps we could explicitly create the nodegroup in separate step instead of creating one with 0 nodes and scaling up later. So overall the flow would be like this:

eksctl create cluster --name test-cluster --without-nodegroup
kubectl delet --namespace kube-system  daemonset/aws-node
helm install ...
eksctl create nodegroup --cluster test-cluster

What do you think?

@errordeveloper yeah i like the second option to create a cluster without nodegroup first. let me try what you suggested, and i'll update this pr accordingly.

i'm seeing warnings like these after creating a nodegroup. not sure if i got the same error before. trying scaling the cluster again to check.
level=info msg="Retrieved node information from kubernetes node" nodeName=ip-192-168-50-63.ec2.internal subsys=k8s
level=warning msg="Waiting for k8s node information" error="required IPv4 pod CIDR not present in node resource" subsys=k8s
level=info msg="Retrieved node information from kubernetes node" nodeName=ip-192-168-50-63.ec2.internal subsys=k8s
level=warning msg="Waiting for k8s node information" error="required IPv4 pod CIDR not present in node resource" subsys=k8s
level=info msg="Retrieved node information from kubernetes node" nodeName=ip-192-168-50-63.ec2.internal subsys=k8s
level=warning msg="Waiting for k8s node information" error="required IPv4 pod CIDR not present in node resource" subsys=k8s
level=info msg="Retrieved node information from kubernetes node" nodeName=ip-192-168-50-63.ec2.internal subsys=k8s
level=warning msg="Waiting for k8s node information" error="required IPv4 pod CIDR not present in node resource" subsys=k8s

discussion on slack: https://app.slack.com/client/T1MATJ4SZ/C1MATJ5U5

@michi-covalent I've marked the PR as draft since it looked like there's still some work being done

ready for review cc @errordeveloper

test-me-please


[tool_crash] FileSystemException: Cannot create link, OS Error: Incorrect function., errno = 1

%23%23 Command
flutter pub get

%23%23 Steps to Reproduce

...
...
...

%23%23 Logs
FileSystemException: Cannot create link, OS Error: Incorrect function.
, errno = 1
%230      _Link.throwIfError (dart:io/link.dart:263:7)
%231      _Link.createSync (dart:io/link.dart:184:5)
%232      ForwardingLink.createSync (package:file/src/forwarding/forwarding_link.dart:20:16)
%233      ForwardingLink.createSync (package:file/src/forwarding/forwarding_link.dart:20:16)
%234      _createPlatformPluginSymlinks (package:flutter_tools/src/flutter_plugins.dart:1029:12)
%235      createPluginSymlinks (package:flutter_tools/src/flutter_plugins.dart:964:5)
%236      refreshPluginsList (package:flutter_tools/src/flutter_plugins.dart:1055:5)
<asynchronous suspension>
%237      FlutterProject.ensureReadyForPlatformSpecificTooling (package:flutter_tools/src/project.dart:316:5)
<asynchronous suspension>
%238      PackagesGetCommand.runCommand (package:flutter_tools/src/commands/packages.dart:177:5)
<asynchronous suspension>
%239      FlutterCommand.run.<anonymous closure> (package:flutter_tools/src/runner/flutter_command.dart:1161:27)
<asynchronous suspension>
%2310     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19)
<asynchronous suspension>
%2311     CommandRunner.runCommand (package:args/command_runner.dart:209:13)
<asynchronous suspension>
%2312     FlutterCommandRunner.runCommand.<anonymous closure> (package:flutter_tools/src/runner/flutter_command_runner.dart:281:9)
<asynchronous suspension>
%2313     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19)
<asynchronous suspension>
%2314     FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:229:5)
<asynchronous suspension>
%2315     run.<anonymous closure>.<anonymous closure> (package:flutter_tools/runner.dart:62:9)

[✓] Flutter (Channel stable, 2.10.3, on Microsoft Windows [Version 10.0.19044.1466], locale en-US)
    • Flutter version 2.10.3 at F:\Flutter\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 7e9793dee1 (4 days ago), 2022-03-02 11:23:12 -0600
    • Engine revision bd539267b4
    • Dart version 2.16.1
    • DevTools version 2.9.2

[!] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at C:\Users\riza\AppData\Local\Android\sdk
    ✗ cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools

Duplicate of #66224


Issue 820 is characterized as

Deprecated isCharacterizedAs
Updated: https://github.com/semanticarts/gist/issues/947
Fixes #820.

@uscholdm Please remember to add the PR to the same project as the issue, otherwise it's not tracked for the release.

@uscholdm Please remember to add the PR to the same project as the issue, otherwise it's not tracked for the release.

Done