Better diffs of base and series

Currently, the diffs of series and base shown in git series log -p just show the old and new commit hashes.  The diff for base should include the commit summary for both commits, and possibly decorations.  The diff of series should show some useful summary of how the patch series has changed.
Potentially useful information for diffs of series:

Diff of a list of patch subjects (git log --oneline output without the hashes).  Useful to see patch reorganization.
Diff of full commit messages.
Diff of full commits with patches included, with rename detection turned on to notice patch reordering.  (Helpful if you don't mind reading diffs-of-diffs.)
Overall diff of final git trees.  (For instance, when refactoring or rebasing patches, it helps to know what has changed in the whole series.  Less useful if you've rebased the series.)
Something like git-cherry.  This depends on patch-id, though, which changes when the patch changes at all.

Based on discussions with users, the default will be diffs of full commits with patches included.  There will also be a second option to provide the overall diff of the final git trees.

A command I keep using during  a set of rebases is 'git show-branch' listing shas before and after rebase. Maybe you can use that for the simplest form of git series diff ?

Check out git-tbdiff - great tool for comparing topic branches. Shows what commits were added/removed, and for modified commits shows an interdiff. I think if git series log -p showed that, it'd be ideal. Example output:
1:  1b5c6b2 < -:  ------- bb.fetch: handle checksums consistently for mirrors
2:  a84ad5b < -:  ------- bb.fetch: don't remove the clone when an update fails
3:  9cc2320 < -:  ------- bb.fetch.git: remove leading '.' from gitsrcname
6:  76d57e1 = 1:  9484157 bb.fetch: simplify mirror tarball handling in try_mirror_url
7:  92c2c8b ! 2:  5a011a2 bb.fetch: support ud.mirrortarballs
    @@ -2,7 +2,7 @@

         bb.fetch: support ud.mirrortarballs

    -    This lets us support multiple types of mirror tarballs. The main use case for
    +    This lets us support multiple mirror tarball filenames. The main use case for
         this at this time is for git, to be able to support both shallow and full git
         mirror tarballs.

That looks perfect, thanks!  And tbdiff's README has a clear explanation of the algorithm, too.
The munkres crate appears to handle the assignment problem.

In case anyone wants something to hold them over, just did a quick and dirty python script that does a series log with tbdiffs, calling out to git-tbdiff to do the work. https://gist.github.com/kergoth/a3b0bdcadf4e314bc60c350b76f112a2 is the script, https://gist.github.com/kergoth/c9cb0c0e59b140789f86be84752a99fc shows example output from it for one of my patch series.

I have an alternative proposal that I came up with after seeing a series of suggestions on StackOverflow regarding how to show the difference between two series. So say you have series v1 and series v2. Lets say you've done a rebase and thus update the base pointer.
You can't just
git diff v1 v2

Since this will show all the differences due to the rebase, which is really not what people actually want.
One way to think about what the difference is is to think something like v2 is the result of
git checkout v1
git merge <new base>
# make the tree look like v2
git commit

Thus, one way to obtain this difference is to do something like this:
git show --pretty="" $(git commit-tree v2^{tree} -p v1 -p base -m "message")

Essentially we're showing the combined diff format of the merge of base into v1 plus any necessary modifications ot make the result look like v2.
This produces output sort of like the following:
diff --cc src/CORE/i40e_main.c
index 151fa52b92bf,745229e720e1..44d169f569dd
--- a/src/CORE/i40e_main.c
+++ b/src/CORE/i40e_main.c
@@@ -1862,8 -1766,8 +1863,8 @@@ struct i40e_mac_filter *i40e_add_filter
   * ANOTHER NOTE: This function MUST be called from within the context of
   * the "safe" variants of any list iterators, e.g. list_for_each_entry_safe()
   * instead of list_for_each_entry().
-  */
+  **/
 -static void __i40e_del_filter(struct i40e_vsi *vsi, struct i40e_mac_filter *f)
 +void __i40e_del_filter(struct i40e_vsi *vsi, struct i40e_mac_filter *f)
  {
        if (!f)
                return;

Currently it does not appear possible to simply produce the diff directly, but I don't see why not, so I am investigating what it would take to allow diff to be able to produce this without the need for the git-commit-tree step.
Essentially this is a robust way to produce a interdifference between two versions.
I don't think this is a replacement for the tbdiff code, but I do think it might be something tbdiff could use to help reduce the clutter of showing all the stuff that a series got rebased onto, which happens when you change the base pointer, and usually isn't what people care about.
What they do care about and what is shown is the conflicts required to make that rebase successful.


Translate itemtemplate in combobox.

Hi,
I'm using WPFLocalizationExtension for my WPF app.
I have one ComboBox for languages selection. Item source is an ObservableCollection<KeyValuePair<string, string>> as below:

TITLE_LANGUAGE_ENGLISH : en
TITLE_LANGUAGE_VIETNAMESE: vi-VN

This is my xaml code:
            <ComboBox Grid.Column="1"
                      ItemsSource="{Binding AvailableLanguages}">
                <ComboBox.ItemTemplate>
                    <DataTemplate>
                        <TextBlock Text="{lex:Loc Key={Binding Key}}"></TextBlock>
                    </DataTemplate>
                </ComboBox.ItemTemplate>
            </ComboBox>

When I run the application, it throws me an exeption:
A 'Binding' cannot be set on the 'Key' property of type 'LocExtension'. A 'Binding' can only be set on a DependencyProperty of a DependencyObject
How can I translate the ItemTemplate ?
Thank you,

Do not know if this scenario is possible with WPFLocalizationExtension. Since resx resources are accessible from the code, I use objects with localized strings already for such scenarios. The I use simply <TextBlock Text="{Binding Key}">.

@xmedeko , your solution doesn't work. I want to translate dictionary key.

Translating keys is a bad idea. It's like letting your customer code for
you.
Solve this by having a static map between your Ressource keys ans the
custom localized keys. Then feed the Ressource key into the extension.

No, I'm using dictionary defined in view model.
Key: TITLE_LANGUAGE_EN
Value: en
Key: TITLE_LANGUAGE_VIETNAMESE
Value: vi-VN
TITLE_LANGUAGE_ENGLISH & TITLE_LANGUAGE_VIETNAMESE are defined in resx file.

Revert value and key, so you will have: Key: en Value: TITLE_LANGUAGE_EN
Then simply translate the values: dict[key] = Properties.Resources.ResourceManager.GetString(dict[key]) and use <TextBlock Text="{Binding Value}">. You can use a simple WPF Binding Convertor if you do not want to do it in the view model.
WPFLocalizationExtension helps a lot with common text translations, but it's not a silver bullet for everything. Do not hesitate to do a classic data conversion in view models or WPF convertors.


Add ReliableGPT to PentestGPT - Handle OpenAI Errors

Add https://github.com/BerriAI/reliableGPT to PentestGPT to handle the following errors:
OpenAI APIError, OpenAI Timeout, OpenAI Rate Limit Errors, OpenAI Service UnavailableError / Overloaded
Context Window Errors
Invalid API Key errors
PentestGPT users can specify fallback strategies for error handling - eg. if GPT-4 is overloaded use GPT 3.5 Turbo, Anthropic etc
cc @GreyDGL @vmayoral @sumleo @dealbreaker973 @keysaim

May I know if it is possible to disable the email alerts?
Also, I went through the original repo and noticed that it follows a try-catch format, with configurable retry methods (such as fallback to gpt-3.5-turbo-16k). I would need to do some customization to ensure the overall functionality. Could you please push the current changes to a separate branch?


OSD-8760: Improve bulk service log error handling

Resolves: https://issues.redhat.com/browse/OSD-8760
Relates to: https://issues.redhat.com/browse/OSD-7691
This PR improves error handling when sending a service log to multiple clusters, if a service log failed to post to a single cluster it doesn't halt the command execution and continues to post service log updates to the remaining clusters.
This PR also refactors the service log post sub-command output.

When run servicelog post sub-command to post service logs to multiple clusters, the command output will list the clusters the service log was successfully posted along with a list of clusters which encountered errors while sending the service log.
$ osdctl servicelog post ...

INFO[0008] Success: 2, Failed: 1

INFO[0008] Successful clusters:
ID                   Status
<clusterID>          Message has been successfully sent to <clusterID>
<clusterID>          Message has been successfully sent to <clusterID>

INFO[0008] Failed clusters:
ID                   Status
<clusterID>          Message sent, but wrong severity information was passed (wanted "high", got "Error")

/label tide/merge-method-squash

It has been noticed that it has been sending service logs to the same cluster multiple times, will work on a fix.

This issue has now been fixed

@supreeth7 what was the fix?

It was a wrong pointer reference, a one liner :)

@supreeth7 Awesome. Do you have any tests against stage clusters I can look at?

@fahlmant  I tested them on two stage clusters which I had created prior, here are the results:
./dist/osdctl_linux_amd64/osdctl servicelog post -t https://raw.githubusercontent.com/openshift/managed-notifications/master/osd/cluster_has_gone_missing.json -p "CLUSTER_UUID=shepherd%"
INFO[0002] The following clusters match the given parameters:
Name                ID                                 State               Version             Cloud Provider      Region
shepherd-1          1oudlp5pmjparuqfasf16pq8jtbtnptq   ready               4.9.8               aws                 ap-south-1
shepherd-2          1outpcau2bum4mtmkgj1m0q51r4qdunr   ready               4.9.9               aws                 ap-south-1

INFO[0002] The following template will be sent:
{
  "severity": "Error",
  "service_name": "SREManualAction",
  "cluster_uuid": "${CLUSTER_UUID}",
  "summary": "Action required: cluster not checking in",
  "description": "Your cluster requires you to take action because it is no longer checking in with Red Hat OpenShift Cluster Manager. Possible causes include stopping instances or a networking misconfiguration. If you have stopped the cluster instances, please start them again - stopping instances is not supported. If you intended to terminate this cluster then please delete the cluster in the Red Hat console. Otherwise file a support request.",
  "internal_only": false,
  "event_stream_id": ""
}
Continue? (y/N): y
INFO[0016] Success: 2, Failed: 0

INFO[0016] Successful clusters:
ID                                     Status
751e4669-857f-45ce-804f-ece43abbe91c   Message has been successfully sent to 751e4669-857f-45ce-804f-ece43abbe91c
93f72b85-e317-432e-8355-46885c38f68f   Message has been successfully sent to 93f72b85-e317-432e-8355-46885c38f68f

If there is an error in one of the clusters (as an example, here a cluster was in installing state):
❯ ./dist/osdctl_linux_amd64/osdctl servicelog post -t https://raw.githubusercontent.com/openshift/managed-notifications/master/osd/cluster_has_gone_missing.json -p "CLUSTER_UUID=shepherd%"
INFO[0001] The following clusters match the given parameters:
Name                ID                                 State               Version             Cloud Provider      Region
shepherd-1          1oudlp5pmjparuqfasf16pq8jtbtnptq   ready               4.9.8               aws                 ap-south-1
shepherd-2          1outpcau2bum4mtmkgj1m0q51r4qdunr   ready               4.9.9               aws                 ap-south-1

INFO[0001] The following template will be sent:
{
  "severity": "Error",
  "service_name": "SREManualAction",
  "cluster_uuid": "${CLUSTER_UUID}",
  "summary": "Action required: cluster not checking in",
  "description": "Your cluster requires you to take action because it is no longer checking in with Red Hat OpenShift Cluster Manager. Possible causes include stopping instances or a networking misconfiguration. If you have stopped the cluster instances, please start them again - stopping instances is not supported. If you intended to terminate this cluster then please delete the cluster in the Red Hat console. Otherwise file a support request.",
  "internal_only": false,
  "event_stream_id": ""
}
Continue? (y/N): y
INFO[0003] Success: 1, Failed: 1

INFO[0003] Successful clusters:
ID                                     Status
93f72b85-e317-432e-8355-46885c38f68f   Message has been successfully sent to 93f72b85-e317-432e-8355-46885c38f68f

INFO[0003] Failed clusters:
ID                                     Status
751e4669-857f-45ce-804f-ece43abbe91c   Account sbasabat.openshift denied access to perform create on ServiceLog with HTTP call POST /api/service_logs/v1/cluster_logs

/retest

/retest

/lgtm

@clcollins @fahlmant @georgettica @iamkirkbater Cloud one of you take another look and approve this?

/approve
looks good overall.
I do still need to test the normal post command to make sure that's ok
/hold

please rebase and then this should be approve ready :)

/approve
works :)

/unhold :)

/unhold


Update contoso-migration-oss-db-to-azure.md

Request to include the Mechanics Video explaining how to migrate and modernize Linux workloads and Open Source databases to Azure.

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

@deltadan can you please review this PR ?

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


zlib has moved

http://zlib.net/fossils/zlib-1.2.8.tar.gz

Finally got around to updating the project. Thanks for reporting.


Bootstrap - Default file to run phantomjs/selenium

Added new bootstrap.js default file to start phantomjs  or selenium server using webdriver-manager. Now, the codecept.json can be configure with the keys:
{
 ...
  bootstrap: "bootstrap.js" //Added by default
  bootstrapAsync: true //Allow async tests execution
}

Added to a async execution to allow run tests only after run the bootstrap.
Some these adjusts were made with help of @abner

Thanks, look interesting. I need some more time to review and think on it before merging.

I have some suggestions on improving that feature. It is really cool but It is not general and configurable enough to make it work for everyone. So here are my ideas:
Create a new directory lib/driver and place classes for webdriver-manager and phantomjs into it.
Then add driver option to configuration, so it could be set like:
"driver": "webdriver-manager"

(for instance we can create a docker driver which will start/stop selenium inside a container)
In your current implementation you are trying to guess driver by name of a browser. That's ok, but explicit configuration might be useful in some cases. So you can provide option like
"driver": "auto"

For autodetection. Actually you can even create lib/driver/auto file to provide such detection and instantiate either webdriver or PhantomJS.
This should not be added bootstrap because current bootstrap/teardown feature is for arbitrary user's code. So let's call it driver, create ES6 classes for each driver, place them into lib/driver and instantiate them if driver option is set. Does it sound ok to you? If so I'm waiting for updates :+1:

@mfdeveloper added some suggestions to improve this :up:

@DavertMik Many thanks for your attention and suggestions!
So, the driver approach is great, thinking in separate of bootstrap. But, if the user pass a value to the browser key that conflict with the new driver config? Something like this:
{
 "helpers": {
   "Protractor": {
     "browser": "firefox"
   }
 },
  "driver": "phantomjs" //Conflict with "browser" key. What happens?
}

The default bootstrap execution suggested by this MR is copied to the user project directory, and can be customized by him. I understand your concerns, but, I'm confuse like you thought about this flow execution.
About the selenium execution, How the steps will wait for docker execution? Notice that, I need use the sleep node package to wait for seconds to start the .jar of selenium. Do you have a more elegant solution for this?
Futhermore, the bootstrap execution can continue async?

About the selenium execution, How the steps will wait for docker execution? Notice that, I need use the sleep node package to wait for seconds to start the .jar of selenium. Do you have a more elegant solution for this?

No, I don't, so it will be ok to wait a bit for that.
Yes, I thought about the controversy between browser config and driver config. I think your current config will work, PhantomJS won't throw an excpetion if a firefox will be set as a browser.
I don't see a good way to bind driver to browser config, only by "guessing" it. This way I propose to have "auto" option for a driver which will pick the right driver. However, the config should be explicit so anyone could use the driver of their choice, easily switch it, or add their own drivers.

Implemented via hooks. See documentation


Try osx-arm64 native?

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

Not sure if we still need to build on osx-x86-64 or not

@conda-forge-admin, please rerender


change name to AKS landing zone accelerator

Change the names from Enterprise scale for AKS to AKS landing zone accelerator

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

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

#sing-off

🎵


Remove deprecated PropTypes, createClass

React is deprecating things.
Accessing via React.PropTypes is deprecated as of React 15.5.
Also, React.createClass will be removed in version 16.
This is a tweak to react-tipsy that includes prop-types from npm (the suggested replacement) and rewrites the tipsy module so that it now extends Component instead of using createClass.
Changed the react/react-dom peerDepencies to ^15.3, as per the suggestion in prop-types.
Not thoroughly tested, but it seems to resolve the warnings from me as well as still working, so I'm handing over to you in hopes of incorporation after some more tests and verification on your end.

I've merged your pull request. Thanks for the request


Use<EMAIL_ADDRESS>

Description
The project github.com/openshift/api has removed their tags and grafana-operator references the tag v3.9.0, which are unaccessable when not using proxy.golang.org where it's currently cached.
Relevant issues/tickets
https://github.com/grafana-operator/grafana-operator/issues/706
https://github.com/openshift/api/issues/456
https://github.com/openshift/api/issues/587
https://github.com/openshift/api/issues/647
Type of change

[X] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist

[ ] This change requires a documentation update
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have added a test case that will be used to verify my changes
[ ] Verified independently on a cluster by reviewer

Verification steps

docker build --no-cache --build-arg GOPROXY=direct .

@smuda thank you for the contribution, would you mind rebasing? Then we can merge this. Thanks!

@pb82 rebased, just waiting for tests.


Question about Gateways / Cluster Clients

Hi,
apologies if this questions has already been answered elsewhere. I have been playing with Aeron Cluster for about a week now and there is one thing about Aeron Cluster and Cluster Clients / Gateways that I cannot quite wrap my head around.
Let's assume some kind of trading system setup where the Cluster has all of the business logic and there is an API Gateway that holds the materialized state of an order for query via HTTP, and there is another Gateway that is talking to the EMS system to route orders and push fills back into the Cluster.
All my business logic that lives within Aeron Cluster perfectly recovers on restarts (replay from archive + snapshots). How do I achieve a similar behavior for my Gateways?
I assume I could enable Aeron Archive within each Gateway / Client and use it to do the replay on startup. In addition I would likely need to implement snapshotting so the archive doesn't grow infinitely. Ideally I'd also like to run my Gateways with redundancy. All in all this kinda sounds like reimplementing Aeron Cluster to me within the Gateway. Is the answer to simply use Aeron Cluster to build Gateways? If so, how would one make two clusters exchange messages (like a Cluster + Client would do)?
Another point I am not quite clear on: how do I recover lost/missed messages from my business logic while a Gateway was down? Does Aeron Cluster have some kind of API the Gateway could invoke to request a replay of the output events from a certain point?
Thanks,
Sebastian

@sklose-nydig We can offer commercial support and consultancy services if you contact<EMAIL_ADDRESS>


[Github Workflow] Improve zero impact workflow logging

Improved error logging for the zero impact PR workflow

Admin merging this to test the zero impact PR workflow


Compatibility with next version of TensorFlow

This PR makes GPflow compatible with the next version of TensorFlow, where a few functions get renamed, and old deprecated ones are removed.
This is also compatible with the current version of TensorFlow, so it can be merged now.

Current coverage is 98.83% (diff: 77.01%)

Merging #316 into master will decrease coverage by 0.89%

@@             master       #316   diff @@
==========================================
  Files            27         27
  Lines          2208       2234    +26
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits           2202       2208     +6
- Misses            6         26    +20
  Partials          0          0

Powered by Codecov. Last update 252baea...3622bdf

@markvdw thanks for the work. this is tf1.0 correct? I think this is still in alpha.
https://groups.google.com/a/tensorflow.org/forum/#!topic/discuss/HWjt_9zK4Qg
The tensorflow main page is still using the 0.12 version
https://www.tensorflow.org/get_started/os_setup
I suggest we wait until tf 1 has stabilized but good to know the changes aren't too horrible. Thoughts?

The changes here are compatible with 0.12.1, but required for 1.0. Some functions are removed in 1.0, like old batch_*, which are deprecated now anyway.

In case there's confusion, the tests still use tf0.12.1. There's no rush to get this patch in, although we will need the changes made here in the future.

the most exciting part of tf1.0 might be that it will be available through pypi, so
pip install tensorflow
we should update the readme appropriately. We should also consider adding GPflow to pypi.

Sorry was still half asleep when I read this morning.

@markvdw I personally see no reason to wait.
@jameshensman Do you want to bump the version number for this?

There are no changes to the interface. We already bumped the version for compatibility with 0.12.1. Personally I'm always a little disappointed when I see a version bump of my favourite software and there not being anything new :)
That said, what's usually the version bump policy?

@markvdw I too personally think there may be a risk of overbump here. Certainly if the external interface changes we try to increment soon after. Not sure there is much of a policy apart from that. @jameshensman will probably have a view on this.

if this still works with 0.12.1, then I suggest we merge it now. But I think we should still test on 0.12.1, and point to 0.12.1 on the readme. When 1.0 hits, we should have minimal disruption.
We should bump versions if we ever change any of the api, add significant new features, or change the guts in such a way that power users might be affected.

No, I don't.
My vote is to merge this now, without bumping version. When tf1.0 is released, we should check everything works and make a new version, even if the new feature is just that we're tf1.0 compatible.

OK thanks everyone.


make Search & SearchCollection component customizable

As a fast fix - make Search & SearchCollection component cusomizable, via props to turn off/on $route modification and cusomize a key for it.
For the future, Nuxt 3 - such components have to be rewritten as a light versions, w/o $route modification. Such a functionality (working with $route, especially $route.query) can be implemented via composition api.

Hey sure, let's make follow up issue if this helps mitigate our tech debt let's do it!
Best if we can leverage in vue3 composition api?
ht @nevermin9 if you want to take this one, optionally can raise bounty if made well & quickly
Originally posted by @yangwao in https://github.com/kodadot/nft-gallery/issues/4283#issuecomment-1316582691

could be link with #3883


Any interest in collaboration?

Hello!
I just stumbled onto this project. I work on LSP a lot myself, and was wondering if you have any interest in finding ways to collaborate. Of course, no pressure at all! But, at the very least we can be aware of each other 😃
https://github.com/ChimeHQ/LanguageServerProtocol
https://github.com/ChimeHQ/LanguageClient

Hello Matt!
I'm totally aware of your work, including your contributions to CodeEdit. You're sort of a legend in my world 😅
Back in the day, I tried intensely to leverage https://github.com/chimehq/SwiftLSPClient for this whole Codeface thing but couldn't get it to work or properly separate out the functionality that I required from it – which might just have been my inability.
I know your "eco system" has evolved quite bit since, and I'm totally open to adopt it rather than re-inventing all this while ending up with a less mature solution. I just hadn't had the time or "trigger" to stop and re-evaluate. I'm moving very fast with Codeface, as my time window for it is open now and will close end of March. So I'm a bit restless and couldn't "deal" with not being able to adjust something quickly to the requirements of this project ...
At the same time, I see wheels being re-invented all around, in particular with developer tools, including my own Swift packages and would love to learn how to change this. So collaboration on these things is indeed the holy grail.
I'm curious about your thoughts.

Haha, well this is way too complimentary! I'm truly flattered.
I'm really sorry to hear you had trouble with SwiftLSPClient. Honestly, I did too at times. I'm not 100% sure just starting new repos was the smartest way to go, but that's what happened...
I've looked through your work just a tiny bit. Codeface seems really cool! I love seeing tools like this come up! Please don't get distracted with this as you work on it. That's more important!
I'm totally into finding a way to merge. I'm not 100% clear on your use of websockets. But, I think that adding additional data transport mechanisms shouldn't be a problem to support.
Pretty excited to talk more about this!

I'm totally into finding a way to merge. I'm not 100% clear on your use of websockets. But, I think that adding additional data transport mechanisms shouldn't be a problem to support.

Yes. Now I remember it had to do with my special requirement/want to communicate with LSP servers via WebSocket, which required a bit more composability. If you look at the 1st diagram here, you see my LSP.ServerCommunicationHandler takes an LSPServerConnection. That connection is just a class protocol. And LSP.WebSocketConnection conforms to that protocol so I can inject it into the LSP.ServerCommunicationHandler ...
As far as I understand, the LanguageServerProtocol package represents just the LSP independent of higher level concerns, so I should be able to use it.
However, merging those higher-level concerns with LanguageClient is likely more involved.
Ultimately, Codeface (any client?) wants to talk to an LSP server by just exchanging LSP messages, ideally via async functions, and not care how requests are matched to responses or where messages go to and come from. Right now In Codeface, requesting an LSP server boils down to calls like these:
let symbols = try await server.requestSymbols(in: fileUri)

Can you tell me more about the WebSocket usage? I'm very curious! It is something many servers support natively? I assumed just stdio and tcp maybe?
You are right about how that LanguageServerProtocol library works. The communication stuff is separate, and I use that feature quite a bit actually.
It could be that using LanguageClient would be tricky, but I have a feeling it would not be as hard as you think. There's not a lot of abstraction over the core LSP features. I've been adding async support to it gradually, but there are still a few places where it is missing.

Can you tell me more about the WebSocket usage? I'm very curious! It is something many servers support natively? I assumed just stdio and tcp maybe?

Yes, the client that directly talks to LSP server executables does so exclusively via stdio. But that client is LSPService which runs a local webservice offering access to LSP servers via WebSocket. This diagram explains the idea.
Then the client of LSPService (in my case Codeface) wraps its LSP.WebSocketConnection in a sort of server abstraction – i.e. in LSP.ServerCommunicationHandler.
There's also LSPServiceKit – a little package helping Swift clients use LSPService. The diagram over there gives some more context.
But why the hell all this, you ask? 😁 The LSPService#why section really explains it best and succinctly. Certainly most tools don't need the WebSocket route, but the vision for Codeface includes stupid easy installation via the App Store.

It could be that using LanguageClient would be tricky, but I have a feeling it would not be as hard as you think.

And I suspect you're right. Also, the beauty of a protocol is, I can start by migrating LSPService to LanguageServerProtocol and then LanguageClient without effecting SwiftLSP, LSPServiceKit or Codeface. I'd love to contribute to the convergence of efforts, and this could be the first step. As long as I can still obtain individual LSP "Packets", LanguageClient doesn't even need to support the whole WebSocket thing, I think. But I can't promise when this "refactoring iteration" will come to pass.

I've been adding async support to it gradually, but there are still a few places where it is missing.

I'm excited to discover how all that works in your packages. In SwiftLSP, all async requests work through one function:
func request(_ requestMessage: Message.Request) async throws -> JSON { ... }

Plus a generic convenience function that uses the one above:
func request<Value: Decodable>(_ req: LSP.Message.Request) async throws -> Value {
    try await request(req).decode()
}

Ok, this all makes sense.
You may be surprised/shocked to learn that you can, in fact, run processes outside of the sandbox on macOS and also be App Store-compatible. I learned of the trick from another app that uses LSP on the store. You have to use an XPC service, which is allowed to be unsandboxed (at least today...)
I open sourced the basic concept I use to do this here: https://github.com/chimeHQ/ProcessService

Wow! I tried to answer the question 2 years ago, including asking in the Swift forums. The result I remember is: XPC services must be sandboxed when deployed in the App Store. The same rules apply. So it would just move the problem somewhere else. Quick research today suggests that hasn't changed, so 🤯
Now, your solution is incredible! It neither requires signing the executable nor bundling it with the main app. I'd love to adopt it and throw away LSPService since that would make things much easier for the user.
My only question is: To what degree and in what way might this "trick" bend the App Store review guidelines? I can't afford to refactor this foundation only to have the app rejected later ...

 I pushed a change that I believe will fix that issue.

I pushed a change that I believe will fix that issue.

And indeed it does!

Haha, I see you spoke with Marcin Krzyzanowski in that thread. He's the one that figured this all out.
I really cannot speak about the App Store rules. All I can say is there are apps on the store today that are doing this. Given that you already have a solution built, I wouldn't make a change unless you really felt like there was a compelling reason.

Given that you already have a solution built, I wouldn't make a change unless you really felt like there was a compelling reason.

The compelling reason is, the user wouldn't have to discover, download, trust and run LSPService 😊

Haha, right 😅
Well, I do hope it is valuable. Here's how I use it. It's a little bit hacked together, but I was just trying to finish quickly.
https://github.com/ChimeHQ/ChimeKit/blob/main/Sources/ChimeLSPAdapter/RemoteLanguageServer.swift
I don't love the code, but it works, and I had so many other things finish I just called it and moved on for now.

Thanks for the example code! I figure Chime 2.0 will actually also use that to host the LSP servers via the/a ChimeKit extensions(s).
Will there be one configurable LSP extension to rule them all, or will you have to wait for people to implement Chime extensions for every language? Because this is part of what I tried to address with LSPService for myself. I'm irritated that every LSP server needs to have its own VS Code extension, thinking "Isn't that why the LSP is called a Protocol? To provide a common standard?". I hope all servers can just be used via one universal configuration (path + arguments + environment), but maybe I'm still naive about this ...
Btw, no need to feel weird about "hacked" code.  Also the involved terms are familiar, and I'd be able to draw much value out of it 🙏🏻
Regarding this thread and collaboration: I've come away with lots of input, inspiration and TODOs – more than I can implement right away. If there's anything I can do for you, I'm happy to do so. And I'll surely get back to you when I embark on migrating to your Swift packages.

Thanks for the example code! I figure Chime 2.0 will actually also use that to host the LSP servers via the/a ChimeKit extensions(s).

Yes, but it is more complex. Because ExtensionKit extensions are outside of the main app, each one potentially needs its own copy of the XPC service to work. Originally, I was bundling it within ChimeKit, but that turned out to be problematic for many reasons.
I just moved it into its own specialized target in the ProcessService package. Which makes it even easier to use on its own!

Will there be one configurable LSP extension to rule them all, or will you have to wait for people to implement Chime extensions for every language?

Unfortunately, this is not technically possible for all LSP servers. Many deviate from the spec slightly, have custom features and/or bugs that require writing code to support. So, while you can just use the stock LSP client, there are many good reasons to customize the behavior on a per-server basis.
And it gets worse! Notably for Ruby, the server configuration and even which server you use is project- and environment-dependent. The best experience requires evaluating how the project is set up and customizing the experience. And influences which server is best.
However, Chime does take a stance regarding extensions and languages. In general, extensions should concern themselves with supporting a language. An LSP server to do that is an implementation detail. Swift is a prime example. Today, the Chime extension uses sourcekit-lsp. But, in the future, I hope to migrate towards using SourceKit directly, without LSP in between. We'll discourage making extensions that are server-specific.
I'm so glad this has been a productive conversation. I almost didn't even write to you! The number one thing I ask is you let me know if you run into problems!

It seems to me we're now closing in on a central challenge for tool development and a central opportunity for collaboration or at least for a much needed convergence in the space in general:
If every server needs its individual "care giver", the question arises whether they can find some common ground/interface on a higher level of abstraction. That is: Can your extension system be general-purpose enough to be employed by other developer tools?
It seems rather insane that every dev tool would solve this anew 😅 I'd love to "plug in" Chime extensions into Codeface and would also contribute to make that possible.

Heh. I'm pretty sure this would actually work today. ChimeKit contains all of the communications infrastructure needed. And, any app can adopt the extension point identifiers, or just incorporate the open source code directly and side-step ExtensionKit altogether.
So, yes, I think you could actually do this. And, you'd just need to bring in ChimeKit to do it. But, you'd have to implement the client and host APIs, and I have a feeling that will be difficult.

But, you'd have to implement the client and host APIs, and I have a feeling that will be difficult.

I'm sure there is a way to get a foot in the door via small iterative steps. For now I'll close this issue.
After the next little Codeface update, I'll do a deep dive into ChimeKit, ExtensionKit and XPC services. Then I will surely (have to) get back to you. And Vatsal has expressed great interest in going the same route, merging with- and leveraging your solutions. I'll approach all that in collaboration with him.
So excited! 😊


feat: delitem for docarray and stacked docarray

Signed-off-by: Joan Fontanals Martinez<EMAIL_ADDRESS>Goals:
Implement __del_item__ for DocumentArray and DocumentArrayStacked

regarding DocumentArrayStackedI think we should not even expose delitem at the stack level. The philosophy so far was that if users need to do smth slow: "append, ..." then they need to first unstack.
We maybe can do some optimization later to allow such operation on the DocumentArrayStacked but I would consider this for later

@JohannesMessner what do you think? should I just remove it for DocumentArrayStacked?


An assortment of cleanups and small fixes, collected over time.

r? @mbx

/botio test

Reviewed 2 of 2 files at r1.
Review status: 2 of 6 files reviewed at latest revision, all discussions resolved, all commit checks successful.

Comments from the review on Reviewable.io

This is a brief review, I don't see anything that stands out, as long as tests pass, r+.

Reviewed 2 of 2 files at r2, 1 of 1 files at r3, 1 of 2 files at r4.
Review status: 5 of 6 files reviewed at latest revision, all discussions resolved, all commit checks successful.

Comments from the review on Reviewable.io

Reviewed 1 of 2 files at r4.
Review status: :shipit: all files reviewed at latest revision, all discussions resolved, all commit checks successful.

Comments from the review on Reviewable.io


refactor: consolidate usage of kms and crypto into a wrapper package

A few exceptions remain, as they're used by downstream projects. These are now deprecated, with replacements provided that use the new wrapper api.

Codecov Report
Patch coverage: 72.52% and project coverage change: -0.79% :warning:

Comparison is base (9a6d6c1) 85.66% compared to head (aed3558) 84.87%.
Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #21      +/-   ##
==========================================
- Coverage   85.66%   84.87%   -0.79%
==========================================
  Files          72       72
  Lines        8330     8325       -5
==========================================
- Hits         7136     7066      -70
- Misses        942     1001      +59
- Partials      252      258       +6

Files Changed
Coverage Δ

internal/testutil/signatureutil/utils.go
100.00% <ø> (ø)

dataintegrity/suite/ecdsa2019/ecdsa2019.go
82.95% <44.44%> (-10.23%)
:arrow_down:

...rnal/testutil/signatureutil/internal/signer/rsa.go
62.68% <56.00%> (ø)

...al/testutil/signatureutil/internal/signer/ecdsa.go
59.40% <64.00%> (ø)

signature/verifier/public_key_verifier.go
84.47% <72.09%> (-5.86%)
:arrow_down:

...til/signatureutil/internal/signer/crypto_signer.go
75.00% <75.00%> (ø)

.../testutil/signatureutil/internal/signer/ed25519.go
63.33% <76.92%> (ø)

internal/testutil/signatureutil/signer.go
83.87% <83.87%> (ø)

signature/suite/suite_crypto.go
60.00% <100.00%> (-26.67%)
:arrow_down:

verifiable/common.go
79.21% <100.00%> (+0.85%)
:arrow_up:

... and 1 more

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


Default to adding label schema labels?

There is a lovely schema for labels: http://label-schema.org/rc1/
A nifty default would be to include as many of those as possible to automate.
e.g.,

build-date
vcs-url
vcs-ref
schema-version
url (either the github url or the home page url stored in the project, if accessable)
name (github repo name or something specified?)

According to the link you shared, that project is no longer active:
Status: DEPRECATED IN FAVOUR OF OCI IMAGE SPEC
I mainly use Docker with kubernetes, since kubernetes can't access Docker image's label, I rarely find good use case of docker label.
PR is certainly welcomed, since there are certainly many people out there managing docker images directly.

The updated spec is here: https://github.com/opencontainers/image-spec/blob/v1.0.1/annotations.md
Sent with GitHawk


Add FAQ for service worker docs

Raising in response to: https://twitter.com/steveworkman/status/882957222120235008
Would be good to have an FAQ / Common pitfalls docs for service workers / offline support.
I found for the web push docs that an FAQ was a great place to cleanly phrase questions and answers or questions and link to specific content.

Spent quite sometime before figuring this out. I think this should go under the "Rough edges and gotchas" section at https://developers.google.com/web/fundamentals/getting-started/primers/service-workers
The solution for this seems to be finalized in the specs (https://github.com/w3c/ServiceWorker/issues/893, https://github.com/w3c/ServiceWorker/issues/1104).  Firefox no longer caches service worker by default (https://bugzilla.mozilla.org/show_bug.cgi?id=1290944#c65).
While Chrome is implementing the solution (https://bugs.chromium.org/p/chromium/issues/detail?id=675540), could the article recommend disabling caching of Service Worker file?


tweak triggers for ci

push to branch with existing pull request should no longer create duplicate workflows / actions for push and pull

Does not work and there is no easy way to make it work How to trigger an action on push or pull request but not both?


Missing QGIS 3.22 docs in QGIS Documentation page

Description
The QGIS 3.22 docs are missing in QGIS Documentation page.

Page URL: https://www.qgis.org/en/docs/index.html

Yep, I'm aware of it, but because 3.22 is not really stable yet AND the strings are not yet uploaded to Transifex (@DelazJ ?), I thought to wait a little.
But if @anitagraser maybe is willing to create the 3.22 image, I'm ok to add it (and remove 3.10?)

OK, so the docs for 3.22 will be available when QGIS 3.22 will became LTR... It makes sense.

@rduivenvoorde here's the 3.22 image: https://drive.google.com/file/d/1S19Ed6fIVR9DH_gdlP_qSrc8xgW04KL9/view?usp=sharing
This image is created using Gimp and the following project file: https://drive.google.com/file/d/0Bwc-5JFVTnfIa0U1M3RFSDhzT2s/view?usp=sharing&resourcekey=0-C9t7Hk_vsJweUiYo8RAhdg

Duplicate the text layer and update text to reflect the desired version
Use "text to path" on the new text layer
Use "path to selection" to create a selection reflecting the version text
Create a new layer with white fill
Delete the selected areas from the white fill to create the version text-shaped mask image

@anitagraser Thanks! Sorry for asking, I will try again next time. If I'm right I tried before but then did not have the right font on my Linux machine or so.

No worries, just putting the steps here if anyone wants to reproduce / do something similar.

QGIS 3.22 is LTR now.
Anyway it seems the Web version of the docs is only available in English and the PDF version in English of the User Guide / Manual is not valid / broken: see https://docs.qgis.org/3.22/pdf/en/ and https://docs.qgis.org/3.22/pdf/en/QGIS-testing-DesktopUserGuide-en.pdf

@agiudiceandrea mmm, the pdf build I will look into, that's a real issue.
Today I'm going to look  with Hans to move the serving of the www and docs sites to fresh servers.
When that is finished/working I'm going (probably next week) to go with @DelazJ dive into the redirection jungle of apache to setup a /3.22 route, make current testing 3.22 and create a new testing build.
So please stay tuned :-)


Hide FAB on Scroll

Hi, Nicola,
Thanks for this awesome plugin!! =)
I would like to suggest that it could be possible to configure the FAB to be automatically hidden or showed on page scrolling because sometimes it is above important text.
Thanks a lot!
Francis

@franciswagner the point is some content is overlayed by the button
overlapped text is one of the cases, the other is if you have a clickable element like button, then to hide only while scrolling is not enough
lets assume your button is at bottom, in this case you can not scroll any more and the button is still overlapped
In native implementation of the FAB, the content is extended by the height of the FAB. May be this would solve the problem in both cases.

@franciswagner @ennedigi I've found a satisfied solution for the described problem. I use two Angular-1.5 components, one for the FAB button and the other for content padding.
first component for FAB button:
<fb-scanner></fb-scanner>

code of template:
this.template = "<ion-floating-button click='$ctrl.scan()' has-footer='$ctrl.hasFooter' button-color='#c15f9c' icon='ion-qr-scanner' icon-color='#fff'></ion-floating-button>";

second component for padding:
<fb-scanner-spacer></fb-scanner-spacer>

code of template:
this.template = "

" +
      "

" +
      "

" +
      "

"
      ;

in the context of an ionic app it looks like:
...
   <fb-scanner-spacer></fb-scanner-spacer>
  </ion-content>

  <fb-scanner></fb-scanner>

</ion-view>

in my app this is how it looks if thre is no padding:

and after adding padding (fb-scanner-spacer):


Adds Ignite Bowser boilerplate to README

Adds Ignite Bowser boilerplate which uses MobX-React.

Gentle ping on this. :) Should be a simple merge, but let me know if you have comments.

Thanks!


Add ability to embed in page

A mechanism should be added allowing OpenREPL to be used as a code runner in educational tools on other sites.

In order to accomplish this, the frontend code must be refactored so the components are handled separately as JS classes.

This is more complicated than I anticipated. Moving to v1.1.

idk


add option to delete gold after skip

Enables option to delete all gold reward from quests on skip of dk. To stop this as sort of exploitative gold income. It's round about 55g.

The gold modification should only be when the player uses the npc to skip the area. In OnFirstLogin, although it is executed only once, it could affect all knights, regardless of whether or not they use the method to skip missions. Although on the other hand, they are configuration variables and would only be used while the module is active.

In my opinion, both of these added if statements and SetMoney calls should be moved to the end of the Azerothcore_skip_deathknight_HandleSkip function.

In my opinion, both of these added if statements and SetMoney calls should be moved to the end of the Azerothcore_skip_deathknight_HandleSkip function.

Sounds good to me, I'll make the change now then. I think that method is called in both hooks, but what I see is that it is the same if, so it should go only once then to the end of the method and removed from the other site.

Does that seem okay to you? @Kitzunu @heyitsbench @Teflonbear

The config was deleted.

The config was deleted.

Uh, I blew it, I'll check it out then.

Thanks @Teflonbear

Ahh cool, thank you guys!


Extend bind to for fan outs

I am writing a chat app with the following fan out - user1 chatting to user2
Messages
——user 1
——-m1
———message: test
User-messages
—-user1
——m1
—-user2
——m1
To source the messages I get the user-message ids per user and then source the actual message.  However I don’t think this can be done when binding to the collection view because it only takes one reference.
I have tried various different ways to achieve this but they all feel very hacky.

Are you using Firestore or RTDB?

Hi,
RTDB.  Maybe my design is wrong.  I was trying to follow David East’s recommendation -and it seems reasonable to me.
Thanks

This is something you could do with FUIIndexCollectionViewDataSource, but your database structure would have to have all messages in a flat collection instead of nesting them under user IDs.


Fix time overclocking

That is, I've fixed local daytime running fast too far into the future and then being rubberbanded back to reality after sleeping or switching dimensions. I've also added a little bit of smoothness when time is being modified using /time - daytime will slide towards the server time, if the difference is not greater than SKIP_DURATION.

real


Rkovalenko circle of chained words

I tried some basic test cases, seem to be working fine.

I tried some basic test cases, seem to be working fine.

@vlemish good point, not everything works, e.g. cases like { "aa", "bb", "aa", "bb", "cc", "dd" }

@PShchegolevatykh @vlemish updated the solution, it's kind of messy but should work fine.
[^1] stands for the last char in a string, .NET 6 feature I believe 😄

@PShchegolevatykh added the second solution (IsLooped2) based on your PR, check it out


rqlite: 8.13.2 -> 8.16.3

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/rqlite/rqlite/releases.
meta.description for rqlite is: The lightweight, distributed relational database built on SQLite
meta.homepage for rqlite is: https://github.com/rqlite/rqlite
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 8.14.1 in filename of file in /nix/store/9gkm5dr8qz7w5hrmzsmkf9mcx970ybil-rqlite-8.14.1

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

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
rqlite

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/9gkm5dr8qz7w5hrmzsmkf9mcx970ybil-rqlite-8.14.1 \
  --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 rqlite https://github.com/r-ryantm/nixpkgs/archive/0fdaf8e27b128d7b5c9b4679b75a6bbdd04f80d6.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/0fdaf8e27b128d7b5c9b4679b75a6bbdd04f80d6#rqlite

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/9gkm5dr8qz7w5hrmzsmkf9mcx970ybil-rqlite-8.14.1
ls -la /nix/store/9gkm5dr8qz7w5hrmzsmkf9mcx970ybil-rqlite-8.14.1/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 run on x86_64-linux 1

1 package built:

rqlite

Maintainer pings
cc @dit7ya for testing.

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/project/rqlite/versions.
meta.description for rqlite is: The lightweight, distributed relational database built on SQLite
meta.homepage for rqlite is: https://github.com/rqlite/rqlite
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 8.16.3 in filename of file in /nix/store/3zj9r31nxa6grd3c42rr5y782gvazd4m-rqlite-8.16.3

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

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
rqlite

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/3zj9r31nxa6grd3c42rr5y782gvazd4m-rqlite-8.16.3 \
  --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 rqlite https://github.com/r-ryantm/nixpkgs/archive/4c010291d1bf9fbe37252f564a4a3de18fb7e948.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/4c010291d1bf9fbe37252f564a4a3de18fb7e948#rqlite

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/3zj9r31nxa6grd3c42rr5y782gvazd4m-rqlite-8.16.3
ls -la /nix/store/3zj9r31nxa6grd3c42rr5y782gvazd4m-rqlite-8.16.3/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 run on x86_64-linux 1

1 package built:

rqlite

Maintainer pings
cc @dit7ya for testing.


Create install wizard for tool

Create install wizard for AboutCode Tool for Windows, Linux, and Mac environments that will install the tool and all tools it is dependent on.

@ottokruse-sd can you elaborate what you have in mind there?
Let me fill you in also on the next v3 improvements:

the only external installation requirement will be a Python installation
once you download a release archive, you will just run the about command and the tool will configure itself on first use if needed

Do you think this would work? or do you something else in mind?
Overall, this is the approach that is used in ScanCode here https://github.com/nexB/scancode-toolkit/releases
You can give it a try on ScanCode to get an idea of how this will work out.

@ottokruse-sd @pombredanne I think this can be closed as mentioned the only external installation requirement is Python, and then the tool will configure itself once user run the about command.

Closing as wontfix... @ottokruse-sd feel free to reopen if you feel differently of course


Update 404 page

I see a lot of comments like:
I can't find it on the website where it used to be https://substrate.dev/docs/en/next/tutorials/visualizing-node-metrics#step-3-configure-prometheus-to-scrape-your-substrate-node

based on the latest updates to the developer hub. I suggest you do a simple update to your 404 page so that people who land on these old links are automatically redirected to the right place.

updating now. thanks


ImportError: libcupti.so.10.2: cannot open shared object file: No such file or directory

🐛 Describe the bug
Multiple binary_linux_conda_*_cu* jobs are currently failing on the latest main with the following error:
Traceback (most recent call last):
  File "setup.py", line 9, in <module>
    import torch
  File "/opt/conda/conda-bld/torchvision_1647515141078/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/lib/python3.7/site-packages/torch/__init__.py", line 199, in <module>
    from torch._C import *  # noqa: F403
ImportError: libcupti.so.10.2: cannot open shared object file: No such file or directory

Seems like a missing dependency problem. Same applies for libcupti.so.11.3 here.
Versions
Latest main branch 39772ec

Thank you for reporting. Likely caused by the change that makes cupti a dynamic dependency.
cc: @ezyang

We can switch back to statically linking cupti as well, I just need to do what malfet suggested when I changed the defaults anyway!

@ezyang imo we should just bundle cupti into the conda package

Hej @malfet I'm facing the same issue with my build system, error below
/home/ubuntu/.cache/bazel/_bazel_ubuntu/8de0a1069de8d166c668173ca21c04ae/execroot/com_lyft_avsoftware/bazel-out/k8-fastbuild/bin/src/chronos/tasks/feed_task_cuda_test.runfiles/com_lyft_avsoftware/src/chronos/tasks/feed_task_cuda_test:

error while loading shared libraries: libcupti.so.11.0: cannot open shared object file: No such file or directory

To clarify I build my own pytorch and vision distros using our internal cuda == 11.0, lately when upgrading from torch 1.9 -> 1.12 and vision 1.10 -> 1.13 this same error has been coming up. Do you know if there has been any torch/vision internal change to the linking between those two versions that would effect this?


[SPARK-8765] [MLLIB] [PYTHON] removed flaky python PIC test

See failure: [https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/36133/console]
CC @yanboliang  @mengxr

Merged build triggered.

Merged build started.

Test build #36290 has started for   PR 7164 at commit 156d55b.

LGTM. We haven't seen any failure from the Scala unit tests. It is strange to see indeterministic behavior here. @yanboliang Could you copy one example from Scala unit tests to Python and run it multiple times? Btw, when you update the PR, please move the code example from PICModel to PIC, since users usually start with PIC.

@mengxr About the code example being in PICModel vs. PIC, that is actually following existing examples.  Almost all code examples are in the models, rather than in the algorithms.  I'd support moving those examples to the algorithms instead, though, since I agree that makes more sense.

Test build #36290 has finished for   PR 7164 at commit 156d55b.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
trait ExpectsInputTypes
trait AutoCastInputTypes

Merged build finished. Test PASSed.

Merged into master. I left the JIRA open.

@mengxr @jkbradley I have found the test failure caused by the small dataset. If the dataset is small, PowerIterationClustering will behavior indeterministic. I have submit #7177 to solve this problem.
About moving code example from models to algorithms, I think a following JIRA and PR to moving all the code examples is better.


bug: Interpolated strings not automatically updated on

Type: bug
Ionic Version: 2.x
Platform: mobile webview
Interpolated strings not automatically updated on variable change

Hello! While we appreciate you opening an issue with us I am going to close this issue and ask that you open a new one that has the issue template filled out please. Thanks for using Ionic!


Support Calico's Application-layer policy

See Application-layer Policy section in https://docs.projectcalico.org/reference/resources/globalnetworkpolicy and in https://docs.projectcalico.org/reference/resources/networkpolicy

Moved to new repo. See here


dotenv for parsing and some installation notes

Hi! I added doting module for loading .env file from root of the project along with env.example to give users some hints about how to get ADMIN_CHAT_ID.

We thought about adding dotenv module at the very beginning and decided not to use it as it will require a .env file in the root of the project that raises some issues with deploying new releases. That's essentially why we had to stick to the system default environment variables.

54010de8bd613510be546108257f2c9d01a754ce needs review though


Better minimum perfomance testing

Currently the minimum performance testing is on Exponential and Ackley functions from 1-4 dimensions with (pretty arbitrary) telerances on the objective functions.
Running all these tests is also slowing down the CI by quite a bit.
While I think that guarenteeing minimum performances for each optimiser (with default hyperparemters) is a good idea I think a slightly more principled approach is worth investing some time into.
Oviously there is no free lunch so its not possible to enusre optimal performance on different optimisation scenarios. Even so I think that given some fairly reasonable objective functions and tolerances it should be possible to enusre minimum performance.
Optimisation scenarios

Convex

Can use the Exponential function in 1, 2, 5 dimensions. Can use a 0.1% tolerance on the minima given default bounds.

Multi-modal

Can use the Ackley function in 1, 2, 5 dimensions. Can determine fitness tollerences based on the height of the 2nd deepest minima (ensure within the golobal minima rather than specific fitness target).

High-dimensional

Not clear on the best approach for this, exponential is already quite easy. Might leave this out for now.

You could integrate into humpday's Elo ratings for optimizers (or I could get to it).
https://github.com/microprediction/humpday

https://github.com/microprediction/humpday/actions/workflows/test-freelunch.yml

Elos chugging along. Feel free to modify https://github.com/microprediction/humpday/blob/main/humpday/optimizers/freelunchcube.py as you see fit.

@microprediction the latest merge should resolve all the issues with builds. I can notify once there is a new release? or do you guys build the packages from source?

It's going pretty well. Climbing higher and sa_21 seems to be best so far for my portfolio problems.

Looks great! is this on v0.0.11? or more recent? Some bugfixes over the last few days should fix a few things for some optimisers on some platforms.

I've just had a quick look at the implementation in humpday to pull in the optimisers and I am wondering if the example code below might be a bit more neat. I think it retains the same functionality but I haven't extensively tested.
Am I right in thinking that humpday uses the __name__ attribute to track the different optimisers? If so I have dynamically built this from the list of optimisers pulled from freelunch. If we keep following the same pattern with respect to the hyperparameters (hypers['N'] and hypers['G] effectively controlling the number of fevals) this could allow new algorithms to be pulled in without needed new code in humpday.
import math
import inspect
import itertools

try:
    import freelunch
    using_freelunch = True
except ImportError:
    using_freelunch = False

if using_freelunch:

    class freelunch_optimiser():

        def __init__(self, method, n_pop=None):
            self.n_pop = n_pop
            self.__name__ = 'freelunch_'+method[0].lower()+'_'+str(n_pop)+'_cube'
            self.optimizer = method[1]

        def __call__(self, objective, n_trials, n_dim, with_count):
            global feval_count
            feval_count = 0

            def _objective(x) -> float:
                global feval_count
                feval_count += 1
                return objective(x)

            optimizer = self.optimizer(obj=_objective, bounds=[[0, 1]] * n_dim)

            if self.optimizer.__name__.lower() == 'sa':
                n_gens = int(math.ceil(n_trials / self.n_pop))
                optimizer.hypers['N'] = self.n_pop  # population size
                optimizer.hypers['K'] = n_gens  # number of generations
            else:
                n_gens = int(math.ceil(n_trials / self.n_pop))
                optimizer.hypers['N'] = self.n_pop   # population size
                optimizer.hypers['G'] = n_gens  # number of generations

            runs = optimizer(nruns=1, full_output=True)  # instance and run
            best_val = runs['scores'][0]  # all obj scores are sorted low to high
            best_x = runs['solutions'][0]  # corresponding inputs
            #feval_count_comparison = runs['nfe']  # function evaluations UNUSED

            return (best_val, best_x, feval_count) if with_count else (best_val, best_x)

    optimisers = [m for m in inspect.getmembers(freelunch, inspect.isclass)\
         if issubclass(m[1],freelunch.continuous_space_optimiser) and\
              m[0] != 'continuous_space_optimiser']

    pop_sizes = [3,8,21]
    FREELUNCH_OPTIMIZERS = [freelunch_optimiser(m,p) for m, p in itertools.product(optimisers, pop_sizes)]

else:
    FREELUNCH_OPTIMIZERS = []

if __name__ == '__main__':
    from humpday.objectives.classic import CLASSIC_OBJECTIVES

    for objective in CLASSIC_OBJECTIVES:
        print(' ')
        print(objective.__name__)
        for optimizer in FREELUNCH_OPTIMIZERS:
            print(optimizer.__name__)
            print(optimizer(objective, n_trials=50, n_dim=3, with_count=True))

Looks pretty good to me.

Side question. Do you have any algos implemented that respect constraints? In particular, I'm looking to optimize portfolio weights w subject to the constraint  sum( |w_i| )=1
The easier case on the simplex is also interesting.
Or I suppose I could write one and include it in freelunch. Seems like DE slightly modified might do the trick.

This is actually really interesting, Tim and I have been in conversation recently about better ways to handle bounding strategies and I think exposing a class attribute from the base optimiser class might be a good solution.
Practically this would involve setting some method like DE.bounder = my_bounding_strategy
where my_bounding_strategy(population) -> population is a callable that could implement some (arbitrary) bounding strategy that could handle constraints as well.
I don't think that this would take too much modification at this point...  thus far every algo just calls tech.sticky_bounds.
What do you think @TimothyRogers ?

Would an instance of
  my_bounding_strategy(population) -> population

comprise a map from R^n to the simplex?   (or perhaps w -> [ wi/sum(np.abs(w)) for wi in w] )

Would an instance of
  my_bounding_strategy(population) -> population

comprise a map from R^n to the simplex? (or perhaps w -> [ wi/sum(np.abs(w)) for wi in w] )

There are a number of ways that this could be implemented but I think it would inevitably involve a little bit of manipulation of  the freelunch internals.
At present, the bounding functions all look something like

def apply_bounds(pop):
    for sol in pop:

        # check each population member for bounds violation
        if sol.dna > bound:

            # logic to return the solution to the bounded region
            sol.dna = bounded_solution

 return pop

It would be simple to modify something like the above to include basic constraint handling. ie
if norm:=np.linalg.norm(sol.dna) < r:  sol.dna = sol.dna * (r/norm)-jitter

for the unit circle.
for ease of use it would be possible to write a wrapper for simple maps like you say but you might not want regions in R^n that are also within the simplex to be perturbed by such a map.
For the example of R^n and S^n there are homeomorphisms that preserve topology... and so the map could just be folded into the objective function. This definitely doesn't hold for all constrained problems though..

Oh, I would love a good map from the cube to the probability simplex. I don't suppose you have one lying around that I can stick in https://github.com/microprediction/embarrassingly ? I agree that is simpler if we can modify the objective function rather than the optimizers.

It seems I have slightly misread what it is that you would like to achieve. For L2 norm bounding something like my previous comment is suitable.
For an orthogonal projection from R_n down onto the probability simplex (topologically a (n-1)-ball) there is a quadratic programming problem for which I have only been able to find algorithmic solutions...
For example: https://eng.ucmerced.edu/people/wwang5/papers/SimplexProj.pdf contains a neat O(n log n) solution which would be very easy to put inside an objective function.
Hopefully that helps!
@TimothyRogers The above could come in handy for the F1 financial stage no?

Thanks. Though this map is from R^D to D-1 dimensional simplex.  What I'm really looking for is a map from any bounded domain (supported by most optimizers) to the probability simplex of the same dimension, so as to be able to better trick the optimizer into doing a good job. Projection will leave it wandering in a pointless co-dimension 1, which is what I sometimes do.

ah ok, so this is an interesting problem for sure (you would not believe how many people in our dept. got distracted by this yesterday...). I think I have a nice solution for a latent R^(n-1)+ onto the unit simplex in n-1 dimensions by a nonlinear scaling the L1 norm of a latent R^(n-1) vector and then adding a constrained extra dimension to get to the probability simplex. Its not exactly a bounded search though.. perhaps there is some clever L1 scaling to go from the unit cube to the unit simplex? Or an orthogonal projection trick @TimothyRogers?
def _to_simplex(latent_vector):
    L1 = np.tanh(sum(latent_vector)) # nonlinear scaling factor
    r_n_simplex_solution = np.zeros((latent_vector.shape[0]+1,))
    r_n_simplex_solution[:-1] = latent_vector / L1
    r_n_simplex_solution[-1] = 1  - sum(r_n_simplex_solution[:-1]) # extra dimension satisfies the prob. simplex
    return r_n_simplex_solution

This really is one of those problems that is hard to put down...

ok... final one of these...

def cube_to_simplex_embedding(latent_point_in_cube, a,=3 b=3):
    N = latent_point_in_cube.shape[0]
    L1 = np.norm(latent_point_in_cube, 1)
    L2 = np.norm(latent_point_in_cube, 2)
    scale = np.tanh(a*L2^b)/L1

    point_on_prob_simplex = np.empty((N+1, ))
    point_on_prob_simplex [:-1] = latent_point_in_cube * scale
    point_on_prob_simplex [-1]  = 1 - sum(point_on_prob_simplex [:-1])
    return  point_on_prob_simplex

with a=3 and b=3;

The mapping is nonuniform but locally continuous, and so should be a good fit for the bounded -> constrained problem

This is seriously cool. I'm going to set up a few benchmark objective functions on the simplex.

So after another day of playing I have a really nice nonparametric, continuous (almost uniform) map..

def cube_to_simplex_embedding(latent_point_in_cube, a=3, b=3):

    L1 = np.norm(latent_point_in_cube, 1)
    L2 = np.norm(latent_point_in_cube, 2)
    r2 = sqrt(2)

    scale = 0.5 + (L2/(r2 * L1)) * sqrt(1 - (L1/(r2 * L2))**2)

    point_on_prob_simplex = np.empty((N+1, ))
    point_on_prob_simplex [:-1] = latent_point_in_cube * scale
    point_on_prob_simplex [-1]  = 1 - sum(point_on_prob_simplex [:-1])
    return  point_on_prob_simplex

The geometric interpretation is (I think) really nice! First we scale the strictly positive part of the unit cube onto the strictly positive part of the unit ball using the cosine of the angle between our vector and the normal vector of the simplex. Then scale like a/b where A is the L2 norm (which is now uniform in scale) and b is the L1 norm (so we are within the simplex). A bit of algebra to get rid of the cosines and arcosines and we have it!
Plus no hyperparameters and I think that it works in any dimension!

Thinking that this can be closed now that the humpday implementation is chugging along.


[Feature Request] Add an Option to Set Windows Terminal as Default Terminal in Windows 10

Description of the new feature/enhancement
Add the option to make Windows Terminal the default terminal for Windows 10.
Proposed technical implementation details (optional)
Copy the feature from Windows 11.

Please read the FAQs.

Will the default terminal functionality be coming to Windows 10?
Nope. That feature is going to remain a Windows 11-only feature. It's powered by a fairly large feature change to the OS, which is unlikely to be serviced as a "bugfix" to earlier OS versions.

@zadjii-msft , But you used to have that feature in preview build of the terminal. So what happened?

The Default Terminal feature requires cooperation between the Terminal and the OS. Official Windows 10 OS builds never had support. There was one or two insiders builds of Windows 10 that might have had parts of the code, but ultimately those build numbers turned into Windows 11 by the time they were stable. It was just a quirk of the Windows 10 -> 11 transition. Those builds might have originally been pushed as "windows 10 insiders", but they were really preview builds of Windows 11 code.


562 copy and version identification note

https://github.com/uwlib-cams/MARC2RDA/blob/main/Working Documents/5XX.csv

Hi! @cspayne and I are looking at this MARC field and can't figure out which RDA entity each subfield relates to. On first glance, it looks like each subfield corresponds to either an RDA item or RDA manifestation. But without examples in the MARC format, we aren't 100% sure.
It looks like the "item-level" subfields can include information about multiple items, and it's unclear whether those descriptions which apply to more than one item will also consistently include a $e detailing the number of items. The description for $c "Version identification" makes it difficult to tell whether "version" describes a manifestation or expression: "Information such as names, codes, or descriptions used to identify a version that differs in content but is related across time to another version, such as an edition." Are these always local notes with $5?
@AdamSchiff @GordonDunsire @szapoun @lake44me

I wouldn't transform this tag because the semantics are too diffuse. I agree that the data pertains to Manifestation or Item. The context seems to be "miscellaneous hand-made resources" (because states and versions are excluded). I think this implies no pattern in the distinction between Manifestation and Item because they were treated as interchangeable in pre-FRBR cataloguing.

@GordonDunsire how would you feel about these being mapped as notes on item when there is a $5 associated with the field, and not mapped when there is no $5? Is that safe, or would you favor not mapping the entire field regardless of the presence of a $5?

@CECSpecialistI: I don't think subfield $5 is relevant: we still don't know if the data pertains to one (unidentified) item or multiple items or a collection (of items) ... and then there is the general problem of the "local" nature of subfield $5 and its current validity.

Going with @GordonDunsire 's suggestion not to map due to diffuse semantics.


chore: clone last 5 commits

@DanielRuf just validating, changes on this one are just updates to Travis file?

@DanielRuf just validating, changes on this one are just updates to Travis file?

Right
https://github.com/Hashnode/mern-starter/pull/359/files


[FIX] Cluster Selection

Short Description:
added secondary criteria (lure_expires_in) for cluster selection, so it doesn't jump from cluster to cluster when they're equally large
Fixes:
At this time the bot can switch destiny from tick to tick when there are several max clusters equally large

:+1:

It looks like it is still jumping between clusters and walking long distances for clusters of the same size.

Can you show me some logs?


Feature Request: Support for table to dataframe Grafana format to Enable transformations?

I've found  could be useful to have data tables as dataframes in Grafana.
by example in this case could be fine if we can transform this table.
┌─t─┬─cat─┬─errors─┐
│ 1 │   3 │     24 │
│ 1 │   4 │     84 │
└───┴─────┴────────┘

in this other ( grafana dataframe ready to handle transformations) .
+---------------------+-----------------+-----------------+
| Name: time          | Name: errors    | Name: errors    |
| Labels:             | Labels: cat=3   | Labels: cat=4   |
| Type: []time.Time   | Type: []float64 | Type: []float64 |
+---------------------+-----------------+-----------------+
| 1                   | 24              | 84              |
+---------------------+-----------------+-----------------+

 I'm newbie in clickhouse, but after some days working with clickhouse  plugin 2.3.2 data and grafana 7.5.5 , I didn't found any solution for this.
There is any way to do that?  (special column naming may be?)

Thank you very much for your patience

need to create ./docker/grafana/dashboards/issue_404_tranformation_table.json
where
table default.test_grafana
SELECT service, count() AS value
FROM $table

or
$columns(service, count() AS value)
FROM $table

format As Table
and use transformation to transpose rows to columns in Grafana


Add array helpers for PBXObjectReference

This just adds some extensions on Array to make the conversion between objects and references easier

Thanks for the merge! I'm not pushing from a fork though, I'm still a maintainer of xcodeproj 😄

I can't work out what happened to these commits. Did they get erased in a rebase?

Did they? I just merged using GitHub's button. Would you mind pushing and merging them yourself?

Yeah sure. It's just a bit scary. If these got lost, then maybe something else got lost


[EVENT] itcoocean

Summary

Requested in https://2i2c.freshdesk.com/a/tickets/937
Event Info

Community Representative:
Event begin:  Sept 11!!!

In your timezone:

Event end:  Sept 22

In your timezone:

Active times:   9am to 5pm IST (India)

In your timezone:

Number of attendees:  70
Hub Events Calendar

Additional info from the community rep:
Q: Do you need to need hub infrastructure to be pre-initialized before the event?
A: No, I think I am all set up.
Q: Any other information that will help us prepare for the extra usage during the event.
I don't expect that participants will have heavy RAM needs for the course. This is the first hack event that I am running as the hub point person. I have participated in a number of hackweeks with 2i2c hubs however.   We are at the Indian National Centre for Ocean Information Services (INCOIS) and internet is fast but outages will probably happen.
Note, the spin-up of the itcoocean.2i2c hub seems slower than when I was in Seattle. Spin-up is also slow for oceanhackweek and openscapes 2i2c hubs but itcoocean is noticeably slower. It seems to take 4-5x longer than my hub on Azure, which is on us-west-2 region like the other 2i2c hubs and uses the same image as I am using on itcoocean.2i2c. It takes about 4 minutes to fully spin up (server started, JupyterLab open, and notebooks able to load). The same spin-up on my Azure hub (dedicated Kubernetes instance) takes under 1 minute.
Hub info

Hub URL:  https://itcoocean.2i2c.cloud/
Hub decommisioned after event?:  No

Task List
Before the event

[x] Dates confirmed with the community representative and added to Hub Events Calendar.
[x] Quotas from the cloud provider are high-enough to handle expected usage.
[ ] One week before event Hub is running.
[ ] Confirm with Community Representative that their workflows function as expected.

👉Template message to send to community representative
Hey {{ COMMUNITY REPRESENTATIVE }}, the date of your event is getting close!

Could you please confirm that your hub environment is ready-to-go, and matches your hub's infrastructure setup, by ensuring the following things:
- [ ] Confirm that the "Event Info" above is correct
- [ ] On your hub: log-in and authentication works as-expected
- [ ] `nbgitpuller` links you intend to use resolve properly
- [ ] Your notebooks and content run as-expected

[ ] 1 day before event, either a separate nodegroup is provisioned for the event or the cluster is scaled up.

During and after event

[ ] Confirm event is finished.
[ ] Nodegroup created for the hub is decommissioned / cluster is scaled down.
[ ] Hub decommissioned (if needed).
[ ] Debrief with community representative.

👉Template debrief to send to community representative
Hey {{ COMMUNITY REPRESENTATIVE }}, your event appears to be over 🎉

We hope that your hub worked out well for you! We are trying to understand where we can improve our hub infrastructure and setup around events, and would love any feedback that you're willing to give. Would you mind answering the following questions? If not, just let us know and that is no problem!

- Did the infrastructure behave as expected?
- Anything that was confusing or could be improved?
- Any extra functionality you wish you would have had?
- Could you share a story about how you used the hub?

- Any other feedback that you'd like to share?

Whenever an event takes place, users may end up doing the same thing as everyone else. This can lead to systematic behaviors among users in how much RAM they consume etc. Due to this, I think its relevant to limit the available RAM.
By limiting the available RAM, the instructor etc testing out something to work ahead of time will experience the same result no matter if the node is full of users doing the same thing - at least with regards to not running out of memory.

I have assigned @sgibson91 to lightly monitor this event given that she will be rotating through support during the start date (Sep 11th).

Hey @eeholmes, your event appears to be over 🎉
We hope that your hub worked out well for you! We are trying to understand where we can improve our hub infrastructure and setup around events, and would love any feedback that you're willing to give. Would you mind answering the following questions? If not, just let us know and that is no problem!

Did the infrastructure behave as expected?

Anything that was confusing or could be improved?

Any extra functionality you wish you would have had?

Could you share a story about how you used the hub?

Any other feedback that you'd like to share?

Closing now but @eeholmes you are more than welcome to provide any feedback on the close issue, thanks!


Feature/update datasets

Update of all datasets
Fix scraper for DE datasets (xlsx no longer available, changed to csv)

I'd love for this to be merged ^_^

@sigalor Could you please merge this pull request?

We've forked this repo and merged both PR's to it.
https://www.npmjs.com/package/@mogelijk_technologies/iban-to-bic

Perfect, also merged it here now!

And also published 1.4.0 on NPM.


Provide more structure in security.json

It would be much simpler to digest security.json if it has a format similar to this:
{
  "users": {
    "marathon": {
      "credentials": [
        {
          "user": "admin",
          "password": "vPcPxmbmHmwvB7bK"
        }
      ]
    }
  },
  "system": {
    "consul": {
      "default_acl_policy": "allow",
      "gossip_key": "98OiTuO3RhpTuwM5MC18bw==",
      "acl_master_token": "f3bf3637-5dfa-4927-b638-4faf4fc658d0",
      "agent_acl_token": "d7ea891e-e4a0-b192-52f9-3fc80794fc6c",
      "agent_acl_token": "e5301b67-53d3-f4af-7264-234706726d91",
      "agent_acl_token": "52718509-9df6-50f3-2f37-b166b9b86992",
      "agent_acl_token": "33c444c5-5b65-b8c1-9b75-fc771b5f83a7",
      "agent_acl_token": "bcf982dd-9ddc-ce3b-edbc-3e2328b0be75"
    },
    "marathon": {
      "credentials": [
        {
          "principal": "marathon",
          "secret": "qILqip1mhIO+LcI87hruhLT/+poO9obDH9XnUDXNl8r1"
        }
      ]
    },
    "mesos": {
      "authentication": [
        {
          "frameworks": true,
          "followers": true
        }
      ],
      "credentials": [
        {
          "secret": "qILqip1mhIO+LcI87hruhLT/+poO9obDH9XnUDXNl8r1",
          "principal": "marathon"
        },
        {
          "secret": "RDVkmEicmwrdcQjB/r+VmMVKSR0Vt20hN4YOJabrwETq",
          "principal": "follower"
        }
      ]
    },
    "zookeeper": {
      "credentials": [
        {
          "user": "mesos",
          "secret": "b2dUE39puRwgZZLj",
          "secret_digest": "3mAZ67O10arlQ51OYglIYpoJnXk="
        },
        {
          "user": "super",
          "secret": "b3PQH/BBzfZ1pS+Dw5RoMq/KmJxky/SMMBCFjaH7USEM"
        },
        {
          "user": "marathon",
          "user_secret": "Wi0ufYJTnxjyVZvQ",
          "user_secret_digest": "wqU2RVJ5HEgVvy6PA+1/wCh2zbY="
        }
      ],
      "consul_ssl_verify": "false",
      "consul_ssl": "true"
    }
  },
  "security_enabled": true,
  "nginx_admin_password": "qWKhOkYwY3OzOshP"
}

Let's assume these are true if "principal": "marathon" and "principal": "follower" have secrets defined:
"mesos_authenticate_followers": true,
"mesos_authenticate_frameworks": true,

Is "security_enabled": true, required?

I assume you're asking if it would be more digestible for humans? I'm not sure that nesting that deeply would help, actually. While we're using Ansible, it would also make it much harder to consume, since the way Ansible consumes YAML will overwrite keys instead of merging them. So, for example, if we had some default somewhere in the system.mesos key we'd also have to override it in security.json. In this case a flatter namespace is much easier to manage. Sorting the keys may be possible, however.
The reason that mesos_authenticate_{followers,frameworks} are set explicitly is because not all frameworks support Mesos framework auth (although they really should.) I'm comfortable deriving the value automatically and will add a ticket for it. They will stay at the same location in the defaults, though, in case they need to be overridden.
security_enabled is used more as a signifier than anything else. It's used in the first play in site.yml to throw an error if security isn't enabled. Ideally, we could generate and load that variable automatically but the current set of Ansible playbooks doesn't have an option to load a bunch of variables from a JSON file without passing in the argument on the command line. Writing a module for that may be possible, but it might not be the best use of time.

@BrianHicks
I'm good with alphabetical sorting for now so that it's more digestible for our users.
Since we are optimizing for Ansible a bit let's stick with the standard YAML.
Cool?
Here is some code from another project where we did some fancy sorting YAML that might be helpful:  https://gist.github.com/keithchambers/4f9e2b2618cb2ecf4085

{
  "users": [
    {
      "user": "admin",
      "secret": "vPcPxmbmH1wvB7bK",
      "enabled": 1,
      "pubkeys": [
        "ssh-rsa AAAA31ybB5yc2...",
        "ssh-rsa AAAAB3NzaC1yc..."
      ]
    },
    {
      "user": "kechambe",
      "secret": "vPcPx7Sufjmdwv7BKb",
      "enabled": 0,
      "pubkeys": [
        "ssh-rsa AAAA31ybB5yc2...",
        "ssh-rsa AAAAB3NzaC1yc..."
      ]
    }
  ],
  "servers": [
    {
      "zookeeper": {
        "credentials": [
          {
            "user": "mesos",
            "secret": "b2dUE39puRwgZZLj",
            "secret_digest": "3mAZ67O10arlQ51OYglIYpoJnXk="
          },
          {
            "user": "super",
            "secret": "b3PQH/BBzfZ1pS+Dw5RoMq/KmJxky/SMMBCFjaH7USEM"
          },
          {
            "user": "marathon",
            "secret": "Wi0ufYJTnxjyVZvQ",
            "secret_digest": "wqU2RVJ5HEgVvy6PA+1/wCh2zbY="
          }
        ],
        "consul_ssl_verify": "false",
        "consul_ssl": "true"
      },
      "mesos": {
        "credentials": [
          {
            "principal": "marathon",
            "secret": "qILqip1mhIO+LcI87hruhLT/+poO9obDH9XnUDXNl8r1"
          },
          {
            "principal": "follower",
            "secret": "RDVkmEicmwrdcQjB/r+VmMVKSR0Vt20hN4YOJabrwETq"
          }
        ]
      },
      "marathon": {
        "credentials": [
          {
            "principal": "marathon",
            "secret": "qILqip1mhIO+LcI87hruhLT/+poO9obDH9XnUDXNl8r1"
          }
        ]
      },
      "default_acl_policy": "allow",
      "gossip_key": "98OiTuO3RhpTuwM5MC18bw==",
      "acl_master_token": "f3bf3637-5dfa-4927-b638-4faf4fc658d0",
      "agent_acl_token": "bcf982dd-9ddc-ce3b-edbc-3e2328b0be75"
    }
  ]
}

Steve and I had a offline conversation yesterday.  We decided for the 0.2 tagged release we will:

Switch back to YAML from JSON for the security file.
Use a single unified password for theadmin account across Consul, Marathon, and Mesos
Prompt the user for admin account password during auth-setup.  This will KISS for our Vagrant users.
Use Nginx to secure Mesos UI access on port 8080 with SSL


Implemented $setOnInsert

Hi,
I wrote tests and implemented the $setOnInsert update operation.
It passes all tests with mongodb version 2.6.7 on my machine.

Thanks!


I need to get sender IP

I want to response from dedicated server to client, but I don't know about client information.
so I send something to server then, I want to send to client.
do you know some method?please tell me...
I thought Client of "On Client Connected(TCPServer)" is Client IP Address, but it was my server IP Address;;;
please;;;
sry with my but English. from Japan

Note to self: seems like https://github.com/getnamo/tcp-ue4/blob/master/Source/TCPWrapper/Private/TCPServerComponent.cpp#L55 is the incorrect address, need to see if the ListenSocket has a different address which is the client one that connects.

sry, What should I do?I need to get client IP in 4.21 dedicated server.
I don't know about C++

I'll make a new release today which should hopefully have a fix

addressed in https://github.com/getnamo/tcp-ue4/commit/d2007604d716b87c161873679a0a985eaba7c82a released as https://github.com/getnamo/tcp-ue4/releases/tag/0.5.0, grab release to test

Thank You! Can it use on 4.21?

if you convert your project to a mixed project (see https://allarsblog.com/2015/11/04/converting-bp-project-to-cpp/) then you can recompile it for 4.21

Thank you I did it!
but, I can success only "<IP_ADDRESS>", when do I connect from other IP, it will fail.
I think "Start Listen Server" node is not working. because when I connect to other IP and PC to Server, it will timeout.
Do you know some solution?

check that the host is reachable:  https://check-host.net/?lang=en you may need to open your firewall and forward ports

Thank you!


migrated to latest version of llama.cpp (2fb9267)

To use Qwen2 and it requires F32 precision which wasn't working in the previous llama.cpp.
  - Only change was llama_add_bos_token now returns a bool

Committed the Package.resolved (This is recommended by apple and will ensure that the package always reproducibly builds)

All Tests Passing

hi, thank you for your kind contribution.
i know it is recommended to add Package.resolved,
but i deliberately left out Package.resolved file, so that i don't have to update this every time when llama.cpp updates which is very frequent.
to compensate for this issue,
that's why this repo has a fixed branch that points to a specific commit of llama.cpp.
people who want to use latest llama.cpp will just have to use main branch and people who want stability will use fixed.
if this repo is very famous, and have a lot of contributors, i may consider adding Package.resolved knowing that it will be updated frequently, but it isn't. i hope you understand this compromise.

@eastriverlee in that case the other code is still relevant because it's required for latest llama.cpp which is assumed to be used by this repo

@eastriverlee 👍


Adding MapToIterConverter

Stack from ghstack:

#329
#328
-> #327
#326
#325

I think this converter is necessary regardless if we decide to add more MapDataPipe.

@nivekt has imported this pull request.  If you are a Facebook employee, you can view this diff on Phabricator.


Re-scale charts if new polar file is loaded

When a new polar file is loaded, the scale of all curves must be changed in order to show the entire ranke of the polars.

done

done