Provide an option to allow Orbstack to improve Docker socket compatibility by default without entering password

Is your feature request related to a problem? Please describe.
Given I set OrbStack to start automatically each time I reboot my Mac, there's an annonying pop up showing "OrbStack wants to improve Docker socket compatibility. This is optional. Enter your password to allow this".
Describe the solution you'd like
I don't want this popup, so how can I get rid of this? I think maybe we just need to setup once in OrbStack to allow this then next time I reboot my Mac, this popup will dispear. Thank you.

I have sort of the opposite request: I explicitly do not want to "improve Docker socket compatibility" under any circumstances. This should prompt once (do you want to do X) and if the answer is no, never ask again unless a button is pushed in settings. Only after that prompt should it ask for my password again. Combining authorization (to make the change) and permissions elevation (the effective-sudo to make the socket link) in a single dialog is not great security UX.

Yes, anyway I just don't want Orbstack to prompt everytime I restart my computer.

We'll add a privileged helper tool to deal with this.
The other case of permanently declining admin is another issue. I agree that we should handle it better, but good UX will be a little tricky because macOS doesn't allow adding anything to the authorization prompt (so no checkbox). Accidentally dismissing the prompt is likely far more common than intentionally declining it, so we might require several dismissals to make it permanent.

Also, it's perfectly fine to decline the Docker socket symlink now, but in the future there will likely be more lost functionality as we add more privilege-dependent features in the future.

Thank you!

Also, it's perfectly fine to decline the Docker socket symlink now, but in the future there will likely be more lost functionality as we add more privilege-dependent features in the future.

In general, I’m looking at this from the perspective that "good" container software knows about contexts, and as I’m not on Linux and not using Docker Desktop, I don’t want to have the symlink under any circumstances (I will temporarily set DOCKER_HOST if I really need the software). Other privileged permissions…I’d need to see what they are. In general, I’m looking at trying to reduce permissions required (I’ve been looking at podman).

Also, it's perfectly fine to decline the Docker socket symlink now, but in the future there will likely be more lost functionality as we add more privilege-dependent features in the future.

I wanted to follow up on the bit about privilege-dependent features specifically. I think that there probably needs to be settings for the helper tool when you get to that. As I said in my previous reply, I will never want the docker sock link, even if I opt into other privilege-dependent features. That’s something that is fundamentally non-negotiable for me, because even for socket-based approaches, modern docker uses contexts and good applications that interact with docker should understand contexts, and setting $DOCKER_HOST is the way to work around those misbehaving applications.

Quick solution before feature landed: You can utilize a macOS Launch Daemon to automatically establish a symlink from /var/run/docker.sock to /Users/<your_username>/.orbstack/run/docker.sock during system startup.
Add file /Library/LaunchDaemons/com.orbstack.docker.sock.plist (P.S. replace <your_username> with your username here).
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>com.orbstack.docker.sock</string>
    <key>ProgramArguments</key>
    <array>
      <string>ln</string>
      <string>-sf</string>
      <string>/Users/<your_username>/.orbstack/run/docker.sock</string>
      <string>/var/run/docker.sock</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
  </dict>
</plist>

Then load it sudo launchctl load /Library/LaunchDaemons/com.orbstack.docker.sock.plist

Changes made for the next version:

Setting to disable admin from the CLI or GUI
Privileged helper tool, so authorization is only needed once
Auto-disabled if prompt is dismissed multiple times

Released in v0.16.1.


make FiniteMPS jitted

and replace Node with plain Tensor objects
depends on #577

Can we get before/after timings for the JAX backend? Just on CPU is fine as I remember MPS was really slow before.

yepp, I'll add it

done

I can't merge this in until I can do tn.FiniteMPS(...)

silenced the linter, should be building now


Support for In-app content blocks

Can you please add support for in-app content blocks:
https://documentation.bloomreach.com/engagement/docs/in-app-content-blocks
I can see that it has been added to the two native SDKs but not to the react native one:
https://github.com/exponea/exponea-ios-sdk/blob/develop/Documentation/IN_APP_CONTENT_BLOCKS.md
https://github.com/exponea/exponea-android-sdk/blob/develop/Documentation/IN_APP_CONTENT_BLOCKS.md
Thanks.

Hi @StuartPyper , thank you for your request, yes currently its only supported in native SDKs but we are working on the support also for RN - should be a part of next RN version.

That's great, thanks.
I've been asked to check if you have a target date for the next release?

Hi @StuartPyper new RN version 1.6.0 is already available, with support of In-app content blocks


Issues when adding new device

Describe the bug
After upgrading from 0.7.13 to 0.7.15 (and then 0.7.16 too), it seems that when you try to add a new device on the WebUI nothing happens and the WireGuard configuration isn't prompted.
We have two Firezone instances, one running on Ubuntu 22.04 and one running on Ubuntu 20.04 and we have deployed Firezone with Docker.
Both instances have the same problem.
To Reproduce
Go on the Firezone WebUI and try to add a new device.

Thanks for the report @NicLor -- working on a fix.


PDI-15519: Value Mapper step has strange behaviour when the source va…

PDI-15519: Value Mapper step has strange behaviour when the source value of the first line is blank - check for null

@mbatchelor, @matthewtckr, @pamval , @mchen-len-son please review

Build Completed
:fire: This pull request has some issues. It would be preferable to fix them in order for it to be just perfect. See below for more details. Some links are also available below for further assistance in addressing those issues.
Build Commands
ant -Dpentaho.resolve.repo=http://ivy-nexus.pentaho.org/content/groups/approved -Dtestreports.dir=bin/reports/unit-test -f engine/build.xml clean-all resolve jacoco && ant -Dpentaho.resolve.repo=http://ivy-nexus.pentaho.org/content/groups/approved -Dtestreports.dir=bin/reports/integration-test -f engine/build.xml jacoco-integration checkstyle publish-local

Cleanup Commands
rm -r ~/.ivy2/local || echo no publish local to remove

Changed files
  engine/src/org/pentaho/di/trans/steps/valuemapper/ValueMapperMeta.java
  engine/test-src/org/pentaho/di/trans/steps/valuemapper/ValueMapperMetaTest.java

Unit test coverage change
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.
org.pentaho.di.job.entries.evalfilesmetrics.JobEntryEvalFilesMetrics

Branch Change: -.78%:small_red_triangle_down:
Complexity Change: -1.03%:small_red_triangle_down:
Instruction Change: -.16%:small_red_triangle_down:

org.pentaho.di.job.entries.ftpsget.JobEntryFTPSGet

Branch Change:  + .53%
Complexity Change:  + .56%
Instruction Change:  + .07%

org.pentaho.di.job.entries.getpop.MailConnectionMeta

Branch Change: -1.00%:small_red_triangle_down:
Complexity Change: -1.41%:small_red_triangle_down:
Instruction Change: -.30%:small_red_triangle_down:

org.pentaho.di.job.entries.sql.JobEntrySQL

Instruction Change: -3.28%:small_red_triangle_down:
Line Change: -3.87%:small_red_triangle_down:

org.pentaho.di.trans.steps.checksum.CheckSumMeta

Instruction Change: -.11%:small_red_triangle_down:

org.pentaho.di.trans.steps.csvinput.CsvInputMeta

Instruction Change:  + .05%

org.pentaho.di.trans.steps.dbproc.DBProcMeta

Instruction Change: -.11%:small_red_triangle_down:

org.pentaho.di.trans.steps.groupby.GroupByMeta

Branch Change: -3.12%:small_red_triangle_down:
Complexity Change: -3.16%:small_red_triangle_down:
Instruction Change: -.14%:small_red_triangle_down:
Line Change: -.37%:small_red_triangle_down:

org.pentaho.di.trans.steps.ifnull.IfNullMeta

Branch Change:  + 2.00%
Complexity Change:  + 1.89%
Instruction Change:  + .17%

org.pentaho.di.trans.steps.insertupdate.InsertUpdateMeta

Instruction Change: -.05%:small_red_triangle_down:

org.pentaho.di.trans.steps.ldapoutput.LDAPOutputMeta

Instruction Change:  + .06%

org.pentaho.di.trans.steps.memgroupby.MemoryGroupByMeta

Branch Change: -1.18%:small_red_triangle_down:
Complexity Change: -1.35%:small_red_triangle_down:
Instruction Change: -.18%:small_red_triangle_down:
Line Change: -.48%:small_red_triangle_down:

org.pentaho.di.trans.steps.replacestring.ReplaceStringMeta

Instruction Change: -.07%:small_red_triangle_down:

org.pentaho.di.trans.steps.rowgenerator.RowGeneratorMeta

Instruction Change:  + .08%

org.pentaho.di.trans.steps.sort.SortRowsMeta

Instruction Change:  + .08%

org.pentaho.di.trans.steps.synchronizeaftermerge.SynchronizeAfterMergeMeta

Instruction Change: -.04%:small_red_triangle_down:

org.pentaho.di.trans.steps.tableoutput.TableOutputMeta

Branch Change: -.91%:small_red_triangle_down:
Complexity Change: -.82%:small_red_triangle_down:

org.pentaho.di.trans.steps.valuemapper.ValueMapperMeta

Branch Change:  + 4.41%
Complexity Change:  + 2.02%
Instruction Change:  + .73%
Line Change:  + .34%
Method Change:  + .83%

Integration test coverage change
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.
org.pentaho.di.trans.step.BaseStep

Complexity Change: -.18%:small_red_triangle_down:
Instruction Change: -.20%:small_red_triangle_down:
Line Change: -.38%:small_red_triangle_down:
Method Change: -.49%:small_red_triangle_down:


Enable CStr and CString in no-std enviroment

Fix #2327

I did not realize Serde was targeting rust 1.19 ...
In this case, I am not aware of any way to support types added in the last 5 years to core or alloc. I am looking for any suggestion ...


Use real observation level height

This seems to be hardcoded now for the Paranal and La Palma:
https://github.com/cta-observatory/ctapipe/pull/655#issuecomment-429386313

Will be added to the instrument configuration.

SubarrayConfiguration now uses an EarthLocation as reference point which is using the obs level from simtel array


fast bro for my crush

Hi you'll need to deploy the code on your own server inorder for it to work. But since it is an emergency and you need it for your crush. You can use https://spongebhav.wtf/lovecalc
Leave me your email here. I will send you an email with names she tries.

Hi you'll need to deploy the code on your own server inorder for it to work. But since it is an emergency and you need it for your crush. You can use https://spongebhav.wtf/lovecalc
Leave me your email here. I will send you an email with names she tries.

@balayogi15

<EMAIL_ADDRESS>

bro she tries bro lets check and send mail
bro

Since it is not really an issue I should be tracking I am closing this issue.


Could not connect to the server.

[x] I've searched past issues and I couldn't find reference to this.

Swiftagram version
5.4.0
Describe the bug
After login trying make requests on User/Followers/Following and get strange issue:
Task <7935F623-530F-448D-960B-6B0C5825F1F0>.<15> finished with error [-1004] Error Domain=NSURLErrorDomain Code=-1004 "Could not connect to the server." UserInfo={_kCFStreamErrorCodeKey=61, NSUnderlyingError=0x2815588d0 {Error Domain=kCFErrorDomainCFNetwork Code=-1004 "(null)" UserInfo={_NSURLErrorNWPathKey=satisfied (Path is satisfied), viable, interface: lo0, _kCFStreamErrorCodeKey=61, _kCFStreamErrorDomainKey=1}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <7935F623-530F-448D-960B-6B0C5825F1F0>.<15>, _NSURLErrorRelatedURLSessionTaskErrorKey=(     "LocalDataTask <7935F623-530F-448D-960B-6B0C5825F1F0>.<15>" ), NSLocalizedDescription=Could not connect to the server., NSErrorFailingURLStringKey=https://[0000:0000:0000:0000:0000:0000:0000:0001]:8872/api/v1/friendships/10957/followers/?max_id=QVFEYUZGQVJvaU5kWE1sajBlUnY3bXBHcXBpSHctUjFQRGJWMXJ0Qjd4eHNiaW9XXzl0WWlPYlRfd0s1V244d0JxajBLVlJTVHFwbG1OS1FnWjRPU2RVOQ%3D%3D, NSErrorFailingURLKey=https://[0000:0000:0000:0000:0000:0000:0000:0001]:8872/api/v1/friendships/10957/followers/?max_id=QVFEYUZGQVJvaU5kWE1sajBlUnY3bXBHcXBpSHctUjFQRGJWMXJ0Qjd4eHNiaW9XXzl0WWlPYlRfd0s1V244d0JxajBLVlJTVHFwbG1OS1FnWjRPU2RVOQ%3D%3D, _kCFStreamErrorDomainKey=1}
(UserID it just for example)
To reproduce
Steps to reproduce the behavior:

Make authorization with visual form
Make in one to one stack request to user -> followers -> following

Device and system
iPhone 13 PRO 15.6

Hey Vitalii,
Sorry but I'm just seeing this. Does this still happen? It look like it might be just an internet connection issue, so I'm closing this issue.


Version of AllSky

Is there a way to see what version of the AllSky program I have running?

I dont think so,
README.md
and the truth you will get with cd allsky; git log

Look in the logs (probably /var/log/allsky.log) near the top.  The version I have is "Allsky Camera Software v0.7 | 2020".  It's displayed whenever the "capture" program starts.

Can this information be added to the admin page? Should be straighforwards.

The admin GUI is actually a separate software package called "allsky-portal", versus the "allsky" package that contains the programs to actually take and save the pictures.  "allsky" is now version 0.8.  "allsky-portal" is currently version 0.6, but should really be 0.7 since we just updated it.


Revert DNSRecord.Proxied type into bool and remove omitempty tag

Description
Here are some reasons that motivated me to do this commitments.
Previously pointer type causes difficulty to approach to the API
Current version require a pointer to assign boolean value into DNSRecord.Proxied. So to assign a truthy value, instead of true, I must use &[]bool{true}[0] or any other equal item, which is a strange view in code written in golang.
Clearer is better
In this pull request I removed omitempty tag and added default tag. The reason is proxied attribute in CloudFlare DNS API (Client Payload) is either required or optional but default is falsy. I supposed that it might be a better solution to make DNSRecord.Proxied explicit in order to call functions more clearly.
BTW

It's a breaking change
Related pull request is: #595

Has your change been tested?
Yes, via given GitHub Actions workflows.
Types of changes
What sort of change does your code introduce/modify?

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

Checklist:

[x] My code follows the code style of this project.
[x] My change requires a change to the documentation.
[x] I have updated the documentation accordingly.
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.
[x] This change is using publicly documented (api.cloudflare.com or developers.cloudflare.com) and stable APIs.

thanks for the PR however, i'm afriad we won't be accepting it. dependent systems, such as the Terraform provider, rely on this to send a payload explicitly without the proxied value when setting the TTL.

So to assign a truthy value, instead of true, I must use &[]bool{true}[0] or any other equal item, which is a strange view in code written in golang.

check out the type conversion helpers we ship with the library; they help with the syntax issues you're having.

Thank you for your reply! But I might think that it's necessary to remind that in document.


ImageMagick seems to be very poor in compressing with Quality 100

I noted in #1492 that Gimp and ImageMagick do produce wildly different compression results with quality 100:
I have the suspicion that ImageMagick does not switch to lossless modular when -quality 100 is set by the user.
Can you have a look at what ImageMagick outputs when just -quality 100 and a .jxl as output is selected? I suspect that there's a bug there somewhere given the large size differences of the files.
Originally posted by @RubenKelevra in https://github.com/libjxl/libjxl/issues/1492#issuecomment-1152230669
Demo files:
demo.zip

You are right that there appears to be a discrepancy. In the files that you have attached, the (much larger) ImageMagick file uses modular mode while the GIMP file seems to use VarDCT.
$ jxlinfo IMG_20220603_144349_0_draw_gimp.jxl
JPEG XL file format container (ISO/IEC 18181-2)
JPEG XL image, 4000x3000, lossy, 16-bit Grayscale
Color space: Grayscale, D65, sRGB transfer function, rendering intent: Relative

$ jxlinfo IMG_20220603_144349_0_draw_imagemagick.jxl
JPEG XL image, 4000x3000, (possibly) lossless, 16-bit Grayscale
Color space: Grayscale, D65, sRGB transfer function, rendering intent: Relative

@sboukortt Ah, thanks for the tool hint and the analysis! :) So gimp seems to make it wrong then. I'll make sure thats the case and report it there! :)


TypeError creating voucher without end-date

In oscar 3.0 beta/master, creating a coupon/voucher , not specifying an end date results in

TypeError: '>' not supported between instances of 'datetime.datetime' and 'NoneType'

Please share the full stack trace for the error, and more detailed steps to reproduce it.
I'm not able to reproduce this via the dashboard because the form there performs validation to ensure that both start and end date are required, and the clean() method on the core voucher models checks that both are set before trying to compare them.

Please share the full stack trace for the error, and more detailed steps to reproduce it.
I'm not able to reproduce this via the dashboard because the form there performs validation to ensure that both start and end date are required, and the clean() method on the core voucher models checks that both are set before trying to compare them.

Closing due to lack of feedback - feel free to reopen if you can provide more detailed steps to reproduce.

I am using automated data generators for fuzz testing and also using django admin.
The fact that these fields are required is not defined in the model.  You dont need a backtrace to see that.

You don't need a backtrace to see that.

Please refrain from this sort of unhelpful comment. I asked a simple and reasonable question (for more detailed steps to reproduce). Now that you mentioned you were using the Django admin, it is apparent to me where the issue is, and that it is easily fixed. The model fields do in fact declare both fields as required, and that is not where the problem lies.


How see the notification codes and set alerts on them via LogAnalytics.

Our customer would like to set up an alert based on 1. Express Route notification code 5502 and,  2. Service Endpoint Monitor for connection to services such as Office 365 and Dynamics 365 via Express Route. In the document, it indicates that this is possible through Log Analytics search. However, I am having a hard time to find examples to write a query for 1. and 2. Is it possible to get a specific example for 1. and 2.?

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

ID: 60644a6c-a495-3293-8713-3ae41eb75029
Version Independent ID: ff0b24d5-0d61-d079-127b-0eae6df3e651
Content: Network Performance Monitor solution in Azure Log Analytics
Content Source: articles/azure-monitor/insights/network-performance-monitor-expressroute.md
Service: log-analytics
GitHub Login: @abshamsft
Microsoft Alias: abshamsft

@v-maroge We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.


Create categories for 'Libraries and Mixins'

Right now this list is a bit of a chaos :P
We could try to split those links into categories.
Some examples:

Color management
Typography
Media queries
Etc.

That's a great suggestion!
Would you like to make a pull request for this?

Thank you so much @flexbox for working on this. You're awesome 🍻


Add dotnet auto instrumentation

Dotnet should have non instrumentation library based auto instrumentation examples.
https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation

@rajkumar-rangaraj, @reyang thoughts on potentially including this?

@open-telemetry/dotnet-instrumentation-maintainers

My couple cents:

We should avoid using any undefined/misleading term in this demo project - across the docs, code and communication, e.g. "agent". https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/glossary.md
We probably need to define "what's the default set of experiences/services/containers", to avoid this demo project becoming too big/complex/slow for average machines to run.
.NET auto-instrumentation is currently at Beta, I can imagine potential breaking changes, I suggest getting feedback from @open-telemetry/dotnet-instrumentation-maintainers to see if it's a good time or we should defer this to RC or Stable.

SIG Auto Instrumentation .NET meeting notes: if we are able to use .NET Framework 4.6.2+/NET 6/7 we should be fine to include it shortly. We expect 0.5.0 release which will be supporting all modern .NET version (including .NET 7).

Please do not call it "agent".
The upcoming 0.5.0 release will contain many changes in the configuration settings to avoid the possibility of possible breaking changes in future. We will do the best to describe potential problems when upgrading to newer versions in the GitHub Releases and CHANGELOG.md and troubleshooting.md.
Based on the existing feedback we get I would say that it is "production quality".

0.5.0 is released.
CC @carlosalberto

Questions:

Is the auto-instrumentation the 'preferred' method of .NET instrumentation?

If yes, then we should replace the library instrumentation with it. If no...

Should we create a new service to demonstrate the auto-instrumentation, or can we modify the existing service to demonstrate both?

They’re in beta rn so preferred might not be the choice today. @rajkumar-rangaraj thoughts?

.NET Auto-Instrumentation 0.5.0 is the first production-ready (non-beta) release. It is not stable yet. .NET Auto-Instrumentation could be used demonstrate a new service.

I think that we need some brand new service for this purposes. I would like to avoid mixing library instrumentation with auto-instrumentation. It is not typical usage.
Do you have any proposal how to extend this https://opentelemetry.io/docs/demo/architecture/?

I think that we need some brand new service for this purposes. I would like to avoid mixing library instrumentation with auto-instrumentation. It is not typical usage.
Do you have any proposal how to extend this https://opentelemetry.io/docs/demo/architecture/?

There are 3 services written in Go. See: https://opentelemetry.io/docs/demo/service-table/. Maybe we can rewrite one in .NET and use .NET Auto-Instrumentation there?

My two cents is that Auto-instrumentation is not the recommended way, in pretty much any language. If you have access to the code, you should use the method that gives you most control. Once we have the configuration specifications sorted, it shouldn't matter from the outside which is what matters.
Having a service that is auto-instrumented as well as not is something I could get behind to provide both examples, however, not providing a manual instrumentation in the demo would be something I would be against.
I'd also agree with Reiley in that the demo is getting big, and adding essentially a duplication of all languages in an auto-instrumented way would bloat the project for no real benefit in my opinion.
The idea of auto-instrumentation is instrumenting a project that you don't have access to the code for. For that, I'd much prefer to take an existing Microservices based demo and add the operator, rather than use the OpenTelemetry demo for that as it would provide the right sort of message "You can add the operator to any solution and it will "just work" without changing code".

If it wouldn't cause the code to be too messy I'd imagine we could do some sort of conditional enablement of the SDK and have a run-time flag to use auto-instrumentation or library instrumentation.

@martinjt an existing manually instrumented dotnet service exists already, it is not being proposed we replace it or mix instrumentations, we would most likely replace an existing Go service to not increase overall demo size, and many SREs may not have access to the code as you mentioned but also not run on kubernetes.
If we wanted to use the operator in the kubernetes version that is fine and would be great to have. But the regular docker version needs auto instrumentation examples too and the point of the demo is to show how community assets, like dotnet auto instrumentation, work in the “wild”. This isn’t an instrumentation efficiency demo but a showcase

Closing this as part of issue cleanup. If there's anything that needs to be done, please create a new issue.

@austinlparker Can you please reopen it? I do not think creating a new one is a good idea as we would lose the discussion. I think the .NET Automatic Instrumentation SIG may try to address it before KubeCon EU 2024.
CC @open-telemetry/dotnet-instrumentation-approvers

@austinlparker, the main blocker for introducing auto-instrumentation is lack of support for ARM64 platform. @RassK is working to cover this in https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/pull/3277.

Cool, do you think this is something that will exist by KubeCon?

I hope, but please do not treat it as a hard comitment.


Add Request Timeout configuration

Currently, the request timeout is disabled (timeout: nil) and can't be configured which can lead to indefinite response waits.
https://github.com/crowdin/crowdin-api-client-ruby/blob/a383c3c8b80e9e32f44162852c1dc5433c291422/lib/crowdin-api/client/configuration.rb#L18-L24
https://github.com/crowdin/crowdin-api-client-ruby/blob/a383c3c8b80e9e32f44162852c1dc5433c291422/lib/crowdin-api/client/client.rb#L164

Available in 1.10.0


Fix Map#concat

#1373 made Map#concat an alias for Map#merge but defined the alias
before Map#merge was defined, resulting in Map#concat being
undefined.
This fixes the issue and adds a regression test.

Awesome, thank you for adding a test!

Seems like this fix might be worth a new rc

This appears to still be broken in current rc.


[Windows]TextEdit cursor positioning not recognized \r\n

我当前的Flutter版本为3.0.3
translated using Google Translate
My current Flutter version is 3.0.3

When I enter text with \r\n\r\n, the cursor does not move normally
for example：

Hi @yixiaco, Thanks for filing the issue. Please share a minimal and complete sample code and the output of flutter doctor -v . Please do include the reproducible steps along with expected vs actual output
Thanks

嗨@yixiaco， 感谢您提交问题。请分享一个最小且完整的示例代码和 的输出。请包括可重复的步骤以及预期输出与实际输出flutter doctor -v
谢谢

import 'package:flutter/material.dart';

void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  static const String _title = 'Flutter Code Sample';

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: _title,
      home: Scaffold(
        appBar: AppBar(title: const Text(_title)),
        body: const HypertextEditor(text: '''灾变，地球气候的剧烈变化，令整个世界进入了冰冻期，人口锐减，资源匮乏，家园毁灭，各国政府为了抗灾，陆续成立了九大生活区，宣布人类进入新纪元。\r\n\r\n新纪元62年，全球经历了长达四十多年的末世小冰冻期，以及政区建立，资源战争，军阀混战后，终于迎来了大地复苏，春暖花开的时节。\r\n\r\n42年至62年，各大区政府开始大规模收拢待规划无政府区的土地，重整资源，全面进入了复苏阶段，而这二十年也被称为“黄金二十年”。'''),
      ),
    );
  }
}

class HypertextEditor extends StatefulWidget {
  const HypertextEditor({Key? key, required this.text}) : super(key: key);

  final String text;

  @override
  State<HypertextEditor> createState() => _HypertextEditorState();
}

class _HypertextEditorState extends State<HypertextEditor> {
  late TextEditingController controller;

  @override
  void initState() {
    controller = TextEditingController(text: widget.text);
    super.initState();
  }

  @override
  void dispose() {
    controller.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return TextField(
      controller: controller,
      autofocus: true,
      maxLines: null,
      expands: true,
      cursorColor: Colors.black,
      cursorWidth: 1.6,
      cursorHeight: 22,
    );
  }
}

here is a minimal example

flutter doctor -v
Flutter assets will be downloaded from https://mirrors.tuna.tsinghua.edu.cn/flutter. Make sure you trust this source!
[√] Flutter (Channel stable, 3.0.3, on Microsoft Windows [版本 10.0.19044.1766], locale zh-CN)
    • Flutter version 3.0.3 at D:\Program Files\Flutter\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 676cefaaff (5 days ago), 2022-06-22 11:34:49 -0700
    • Engine revision ffe7b86a1e
    • Dart version 2.17.5
    • DevTools version 2.12.2
    • Pub download mirror https://mirrors.tuna.tsinghua.edu.cn/dart-pub
    • Flutter download mirror https://mirrors.tuna.tsinghua.edu.cn/flutter

Checking Android licenses is taking an unexpectedly long time...[√] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at G:\Android\Sdk
    • Platform android-33, build-tools 31.0.0
    • Java binary at: D:\Program Files\JetBrains\apps\AndroidStudio\ch-0\212.5712.43.2112.8609683\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.12+7-b1504.28-7817840)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop for Windows (Visual Studio Enterprise 2019 16.8.3)
    • Visual Studio at D:\Microsoft\Microsoft Visual Studio\2019\Enterprise
    • Visual Studio Enterprise 2019 version 16.8.30804.86
    • Windows 10 SDK version 10.0.18362.0

[√] Android Studio (version 2021.2)
    • Android Studio at D:\Program Files\JetBrains\apps\AndroidStudio\ch-0\212.5712.43.2112.8609683
    • Flutter plugin version 68.1.2
    • Dart plugin version 212.5744
    • Java version OpenJDK Runtime Environment (build 11.0.12+7-b1504.28-7817840)

[√] IntelliJ IDEA Ultimate Edition (version 2021.3)
    • IntelliJ at D:\Program Files\JetBrains\apps\IDEA-U\ch-0\213.6777.52
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin version 213.7371

[√] Connected device (3 available)
    • Windows (desktop) • windows • windows-x64    • Microsoft Windows [版本 10.0.19044.1766]
    • Chrome (web)      • chrome  • web-javascript • Google Chrome 102.0.5005.115
    • Edge (web)        • edge    • web-javascript • Microsoft Edge 103.0.1264.37

[√] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

Thanks for the info @yixiaco, Just to confirm is the issue that when you move the cursor via arrow keys it abruptly jumps at incorrect places?
https://user-images.githubusercontent.com/31410839/176112276-8c5a83dc-0a7a-4818-9bb7-305131417b7f.mp4

flutter doctor -v (windows)
[√] Flutter (Channel master, 3.1.0-0.0.pre.1396, on Microsoft Windows [Version 10.0.19044.1706], locale en-IN)
    • Flutter version 3.1.0-0.0.pre.1396 on channel master at C:\flutter_sdk\master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 23437d93ca (in the future), 2022-06-27 23:39:08 -0400
    • Engine revision 6301c5cb30
    • Dart version 2.18.0 (build 2.18.0-232.0.dev)
    • DevTools version 2.14.1

[√] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at C:\Users\mahesh\AppData\Local\Android\sdk
    • Platform android-31, build-tools 31.0.0
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.12+7-b1504.28-7817840)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop for Windows (Visual Studio Community 2019 16.11.4)
    • Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
    • Visual Studio Community 2019 version 16.11.31727.386
    • Windows 10 SDK version 10.0.19041.0

[√] Android Studio (version 2021.2)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+7-b1504.28-7817840)

[√] VS Code (version 1.68.1)
    • VS Code at C:\Users\mahesh\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.42.0

[√] Connected device (3 available)
    • Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version 10.0.19044.1706]
    • Chrome (web)      • chrome  • web-javascript • Google Chrome 102.0.5005.115
    • Edge (web)        • edge    • web-javascript • Microsoft Edge 100.0.1185.50

[√] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

@maheshmnj Yes, moving the cursor with the keyboard or clicking the newline position with the mouse will move the cursor to the very beginning

Just to reduce the repro a bit further: the key is that the newlines take the form "\r\n\r\n", not "\n\n". The text before and after the newlines seems to be arbitrary.
I reproduce on the current main channel, on Android and Linux, with the following code sample. The key line is just:
    controller = TextEditingController(text: '''words\r\n\r\nmore words''');

Relabeling slightly because I doubt this is specific to Material; the bug is most likely in the TextPainter layer, where it calculates where to draw the caret. (Similar to #50563, though this seems to be a separate issue.)
Code sample
import 'package:flutter/material.dart';

void main() {
  runApp(DemoApp());
}

class DemoApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(title: "Demo app", home: HomePage());
  }
}

class HomePage extends StatefulWidget {
  @override
  State<HomePage> createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  late TextEditingController controller;

  @override
  void initState() {
    super.initState();
    controller = TextEditingController(text: '''words\r\n\r\nmore words''');
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text("Demo app")),
      body: Center(child: TextField(controller: controller, maxLines: null)),
    );
  }
}


Create an end keyword for .playSegments

It would be nice to be able to do something like .playSegments([10, anim.end], true) where end is set by bodymovin.
From an implementation standpoint it'd be pretty straightforward, looking for the highest op value in the corresponding animation JSON data and setting that to the animation's properties.

After looking through the code, I found that anim.animationData.tf can be used as this value, so a keyword for it wouldn't help much. It might be good to include in a write up somewhere though.
If you're looking for the last frame of the current segment, anim.totalFrames can get you that value.


Golf Store

One of the test is marked
golfScore(5, 5) should return "Par
This can not be returned as par because there is already another test for par which is correct
golfScore(4, 4) should return "Par"
I am unable to complete this lesson because of this.
This is for Checkpoint Golf Score in basic javascript. I have included my code as well.
function golfScore(par, strokes) {
// Only change code below this line
if (par - 3 && strokes ==1){
return "Hole-in-one!";
}
else if (par - 2 && strokes == 2){
return "Eagle";
}
else if ( par - 1 && strokes == 3){
return "Birdie";
}
else if( par  && strokes== 4){
return "Par";
}
else if( par + 1 && strokes == 5){
return "Bogey";
}
else if( par + 2 && strokes == 6){
return "Double Bogey";
}
else if (par + 3 && strokes >6 ){
return "Go Home!";
}
// Only change code above this line
}
// Change these values to test
golfScore(5,5);

5,5 and 4,4 are both valid cases for Par. If that doesn't work for your solution you are approaching the problem incorrectly. Please visit the Help Chat for challenge help. Thanks and happy coding!

Another issue with this challenge though. golfScore(5, 2) is not an eagle like the check says it should be. That is a double-eagle, which makes this challenge incorrect.


[BUG] - IPv6 addresses in mainnet-toplogy.json do not work

Internal/External
External
Area
Other
Summary
If one is to place an IPv6 address in Producers section of topology.json, this does not work.
Steps to reproduce
Steps to reproduce the behavior:

Configure your topology.json that you start cardano-node with
Add IPv6 address like so:

{
  "Producers": [
    {
      "addr": "2001:984:5a5:1:aaaa:aada:f00d:cafe",
      "port": 3001,
      "valency": 1
    }
  ]
}

Start cardano-node
See error in logs

cardano.node.IpSubscription:Error:621
Unsupported remote target address [2001:984:5a5:1:aaaa:aada:f00d:cafe]:3001

You can see that it parses it as an IPv6 address, hence the [] block tags. But still it does not connect. This machine is fully IPv6 connected.
Expected behavior
I expect IPv6 to work, future of the internet.
System info (please complete the following information):

OS: Ubuntu
Version 20.04
Node version 1.27.0

Screenshots and attachments

Seems clear enough

Additional context
telnet works fine:
$ telnet -6 2001:984:5a5:1:aaaa:aada:f00d:cafe 3001
Trying 2001:984:5a5:1:aaaa:aada:f00d:cafe...
Connected to 2001:984:5a5:1:aaaa:aada:f00d:cafe.
Escape character is '^]'.

are you providing a --host-ipv6-addr ? If not, do you get a different result if you do?

are you providing a --host-ipv6-addr ? If not, do you get a different result if you do?

Currently not running with any host specified. Just a port. I can try specifying a --host-ipv6-addr and let you know if behavior changes.

are you providing a --host-ipv6-addr ? If not, do you get a different result if you do?

Just around to testing, same behavior if I specify an IPv6 address.
I would like to help debugging this issue. I know Haskell, but it has been 8~ years since I've last used it. So I'll have to dive into what IDE to use etc.

@jbgi What's the best channel for getting help when starting cardano-node development? I've got my local IDE setup - but if I have questions where can I best reach out?

Just tried on my local machine, it works there. I will try to debug from the node that is displaying this issue:
*Main> :set args run --topology /home/weebl/cardano/mainnet-topology.json --database-path /home/weebl/cardano/db --socket-path /home/weebl/cardano/db/node.socket --port 3001 --config /home/weebl/cardano/mainnet-config.json
*Main> main
Listening on http://<IP_ADDRESS>:12798
[tpw540:cardano.node.networkMagic:Notice:72] [2021-06-01 13:30:38.98 UTC] NetworkMagic 764824073
[tpw540:cardano.node.basicInfo.protocol:Notice:72] [2021-06-01 13:30:38.98 UTC] Byron; Shelley
[tpw540:cardano.node.basicInfo.version:Notice:72] [2021-06-01 13:30:38.98 UTC] 1.27.0
[tpw540:cardano.node.basicInfo.commit:Notice:72] [2021-06-01 13:30:38.98 UTC] 8fe46140a52810b6ca456be01d652ca08fe730bf
<snip>
[tpw540:cardano.node.IpSubscription:Info:123] [2021-06-01 13:30:41.71 UTC] IPs: <IP_ADDRESS>:0 [::]:0 [[2001:984:5a5:1:aaaa:aada:f00d:cafe]:3001] Trying to connect to [2001:984:5a5:1:aaaa:aada:f00d:cafe]:3001
[tpw540:cardano.node.IpSubscription:Info:135] [2021-06-01 13:30:41.72 UTC] IPs: <IP_ADDRESS>:0 [::]:0 [[2001:984:5a5:1:aaaa:aada:f00d:cafe]:3001] Connection Attempt Start, destination [2001:984:5a5:1:aaaa:aada:f00d:cafe]:3001
[tpw540:cardano.node.IpSubscription:Notice:123] [2021-06-01 13:30:41.72 UTC] IPs: <IP_ADDRESS>:0 [::]:0 [[2001:984:5a5:1:aaaa:aada:f00d:cafe]:3001] Waiting 0.025s before attempting a new connection
[tpw540:cardano.node.ChainDB:Info:109] [2021-06-01 13:30:41.72 UTC] Took ledger snapshot DiskSnapshot {dsNumber = 26218, dsSuffix = Nothing} at cc1337911e1594a3944dd58d56784f86efb372b89ca46786910bc4bf62f83803 at slot 26218
[tpw540:cardano.node.IpSubscription:Notice:135] [2021-06-01 13:30:41.73 UTC] IPs: <IP_ADDRESS>:0 [::]:0 [[2001:984:5a5:1:aaaa:aada:f00d:cafe]:3001] Connection Attempt End, destination [2001:984:5a5:1:aaaa:aada:f00d:cafe]:3001 outcome: ConnectSuccessLast

Mysteriously enough, after restarting the node (without changing anything), it seems to be able to connect just fine.
I will try a few more things later this week to see if I can reproduce it in any way.

Actually, problem was. If one of IPv4 / IPv6 is configured - it ignores the other one. Not sure if this is by design, but I've created a PR that should silently try the other protocol if it's not been tried.

Usually when one specifies an IP address for a service to use, it means that one wants to bind the listening port to a specific interface on purpose so that only this interface is used for the service's traffic. The convention is that if you want to listen on every interface you do not provide any binding address, just a listening port. If I understand your prosed change it would prevent people from using a specific interface.

Usually when one specifies an IP address for a service to use, it means that one wants to bind the listening port to a specific interface on purpose so that only this interface is used for the service's traffic. The convention is that if you want to listen on every interface you do not provide any binding address, just a listening port. If I understand your proposed change correctly it would prevent people from using a specific interface.

Hi 2072, no my proposed change will still allow anyone to specify an interface. But if only IPv4 interface is defined, it will still be able to use the IPv6 socket for outbound connections.

It's better to be explicit, if one wants to use ipv6 then you can enable it through --host-ipv6-addr.  There are real life scenarios in which one does not want to use ipv6 on a ipv6 capable host, which we need to support too.

It's better to be explicit, if one wants to use ipv6 then you can enable it through --host-ipv6-addr. There are real life scenarios in which one does not want to use ipv6 on a ipv6 capable host, which we need to support too.

Agreed. I think there should be a differentiation between opening a port to listen on, versus sockets available to make outbound connections though.
imho this is a great fallacy to not be able to connect over IPv6 without specifying a host listen address for IPv6. IPv6 is the future of the internet and I feel it should be easier to connect to IPv6 relays.

It's better to be explicit, if one wants to use ipv6 then you can enable it through --host-ipv6-addr. There are real life scenarios in which one does not want to use ipv6 on a ipv6 capable host, which we need to support too.

Agreed. I think there should be a differentiation between opening a port to listen on, versus sockets available to make outbound connections though.
imho this is a great fallacy to not be able to connect over IPv6 without specifying a host listen address for IPv6. IPv6 is the future of the internet and I feel it should be easier to connect to IPv6 relays.

It's better to be explicit, if one wants to use ipv6 then you can enable it through --host-ipv6-addr. There are real life scenarios in which one does not want to use ipv6 on a ipv6 capable host, which we need to support too.

Agreed. I think there should be a differentiation between opening a port to listen on, versus sockets available to make outbound connections though.
imho this is a great fallacy to not be able to connect over IPv6 without specifying a host listen address for IPv6. IPv6 is the future of the internet and I feel it should be easier to connect to IPv6 relays.

I can actually imagine scenarios where an IPv4-enabled host wants to disable IPv4 (and I personally do that on my IPv6-only networks). Future-proof software should consider IPv6 the default and perhaps attempt to automatically disable IPv4 whenever reasonable. After all, decentralization and IPv4 will never work together properly.

I can actually imagine scenarios where an IPv4-enabled host wants to disable IPv4 (and I personally do that on my IPv6-only networks). Future-proof software should consider IPv6 the default and perhaps attempt to automatically disable IPv4 whenever reasonable. After all, decentralization and IPv4 will never work together properly.

I agree it should be able to disable. But currently configuring only one address implicitly disables the other protocol. I would prefer a solution that makes disabling a protocol more explicit.


Normalize /arisu command stringbuilder. Remove redundency from zone weather calculators.

Thank you! Will take a look at this soon


Hello Rails - React App

Hi !
Create a new Rails app called 'hello-rails-react'.
Use the command rails new -j webpack my_new_rails_app as described in the previous lesson's tutorial.
Verify that the jsbundling-rails gem is added to Gemfile.
Initialize project with Git.
Install needed node dependencies as described in the previous lesson's tutorial.
Create a babel.config.js in the root folder of your project as described in the previous lesson's tutorial.
Update webpack.config.js to include the babel loader as described in the previous lesson's tutorial.
Make sure that your project has a Postgres database set up.
Create a table for storing your messages and create 5 different greetings.
Create an API endpoint that selects a random greeting from table
Create a static view that will be the root of the app.
Create the App component with react-router and render it in static view.
Create the Greeting component that will display a greeting. Set it up as a route in App component.
Create a store, an action, and a reducer that will connect to API endpoint to get the random greeting.
Display the random greeting in Greeting component.

Here are the Project Requirements for this project on my side !

I did already the requested changes of the first comment!


[Feature request] Higher baud rate for CC2652

Hey,
In networks where there is more traffic bringing possibilities of higher interface throughput could help with stability.
CC2652R supports up to 3Mbps (https://www.ti.com/lit/ds/symlink/cc2652r.pdf?ts=1613387764521)
CH340 supports common baud rates: 50, 75, 100, 110, 134.5, 150, 300, 600, 900, 1200, 1800, 2400, 3600, 4800, 9600, 14400, 19200, 28800, 33600, 38400, 56000, 57600, 76800, 115200, 128000, 153600, 230400, 460800, 230400, 1500000, 2000000 baud
(https://www.insidegadgets.com/wp-content/uploads/2016/12/ch340g-datasheet.pdf)
Do you think there is practical sense on increasing baud rate to 230400 or higher?

Pinging @omerk here

Do we have any indication that the standard baud rate is insufficient and causing stability problems?

I have nothing more than anecdotal data.
I'm running a network of 40+ nodes and it is very stable during normal operations, but few times a day I observe glitches that coincide with setting different heating profile on all TRVs. This happens rarely and I need to issue other command at the same time to notice a delay.
Recently I noticed also much delayed reaction to commands while OTA upgrade was running.
I have no means to check if this is MAC layer saturation or serial communication with the dongle itself (running zhh!), but considering that Zigbee MAC is 3Mbps, I asserted issue with the baudrate.

Are the TRVs Eurotronic's and are you controlling one of the system-mode settings when the glitches occur? (Window mode,..)
In that case I see glitches too, but I guess it is because each valves value is read first before new setting gets written. Seems to block other operations..

@m4tek Did you manage to find a solution to this issue? Sounds like it might not be related to comms going with @allofmex's comment?
If you suspect it might be a comms bottleneck, you should be able to compile a version of the ZNP coordinator firmware following @Koenkk's compilation notes and setting the baudrate you've chosen in your zigbee2mqtt config.

My test build based on Koenkk firmware 20230507
460800bps
https://github.com/Andrik45719/Z-Stack-firmware


[rospack] Error: package 'kinect2_viewer' not found

I have followed all the installation instructions and also Im able to run 'kinect2_bridge'.
But I am not able to open the viewer using the command 'rosrun kinect2_viewer kinect2_viewer sd cloud'
I get the following error
[rospack] Error: package 'kinect2_viewer' not found
Thanks in advance!

I was getting this error because I had not sourced my workspcae. It can be done by following command
source devel/setup.bash
Hope it helps someone like me :)


Reasons behind identified outcomes

Description
As a user, I would like to understand why the system retains a given outcome
Scope of Work

[ ] =

Story Points

[1, 2, 3, 5, 8, 13, 20, 40]

Priority

Medium

Risk

[Low, Medium, High]

Demo requirement

The system displays likeliest outcomes
The user requests to see the reasoning behind the outcome
For each outcome, the system lists the inputs used to achieve it
For each outcome, the system lists the legal reasoning that was applied

Acceptance Criteria

The user knows why each decision was taken
The user understands the influence of his/her inputs on the outputs
The user understands the legal reasoning that was reproduced by the AI

Documentation, files, diagrams, etc. relating to this feature:
N/A
Changes:

[Optional]

Is this a duplicate of #14? Both seem to capture the requirement that the system explain itself.

This is broader than #14 (which focuses solely on displaying the precedents used), and better articulated as a user story.

What are the outcomes in the context of this story? Are they predicted outcomes of a judgement (i.e. 500$ punitive damage, 200$ restitutionary damages) or are they avenues of resolution that they system will "recommend" to the user (i.e. you should go to small claims court, you should send a cease and desist letter, etc)?

Predicted outcomes of the judgment
On Nov 2, 2017 5:57 PM, "Arek Manoukian"<EMAIL_ADDRESS>wrote:

What are the outcomes in the context of this story? Are they predicted
outcomes of a judgement (i.e. 500$ punitive damage, 200$ restitutionary
damages) or are they avenues of resolution that they system will
"recommend" to the user (i.e. you should go to small claims court, you
should send a cease and desist letter, etc)?
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/Cyberjusticelab/JusticeAI/issues/123#issuecomment-341570590,
or mute the thread
https://github.com/notifications/unsubscribe-auth/Aexl3Yj6GV0D0GHfrcaDbFwYAv3Rsal_ks5syjrmgaJpZM4QO9xU
.

Further discussions will be needed concerning this story

This paper explains how to achieve trust in model predictions: https://arxiv.org/abs/1602.04938
Relevant to the story


Variation in firing of L2/3 Pyramidal cells between trials

Hi @jasmainak , @ntolley  and everyone,
what explains the big variability in L2/3 pyramidal firing with trials? and why their firing that is usually around 120msecs (supposedly caused by the Distal input) is delayed from the mean of most of the distal input?
I understand that the Vecstim objects connectivity to the different populations of cells is distributed and that the main change in between trials is the seeds (incremented by 1 as I remember) which changes the timing of the spiking input.
These are 25 trials using Kohl's auditory ERP parameters.

The variability you're observing is caused by local network interactions. The local network connectivity to and from L2/3 pyramidal cells (specifically the L2/3 basket -> L2/3 pyramidal and L5 pyramidal -> L2/3 pyramidal connections) makes their firing particularly sensitive to small variations in exogenous drive timing. Notice the following sequence of events:

an initial barrage of L2/3 pyramidal spikes (dark green I'm assuming) occurs at ~50 ms robustly across trials
L2/3 pyramidal firing is quickly squashed by inhibition from L2/3 basket cell firing (light green I'm assuming)
L2/3 basket cells fire a little here and there from 50-100 ms, and are easily excited by exogenous drive + L5 pyramidal spiking that builds over time
when the strong distal drive hits, L5 pyramidal spiking increases drastically that then propagates throughout the network
L2/3 pyramidal cells are mostly silenced from 50-100 ms, unless they are transiently released from L2/3 basket inhibition or until L5 pyramidal firing reaches a critical mass that overcomes them with local network excitation

Altogether, L2/3 pyramidal spiking rests right near the threshold of local network E/I balance. The tight coupling between L2/3 pyramidal and L2/3 basket cells also allows for pyramidal interneuron gamma (PING) activity to emerge transiently. All that said, I encourage you to play around with the local network connectivity parameters in order to test my assertions above (e.g., try increasing the L5 pyramidal -> L2/3 pyramidal weight to test the hypothesis that the ~120 ms barrage of L2/3 pyramidal spikes shifts left and with greater temporal consistency/precision).

I'm going to convert this to a discussion, but feel free to open another issue if you end up finding a bug.


chore: standalone the master data components

Description

[^1]

[^1]: Do we want to stand alone all the things?

Good one :)


Inconsistency of IDE's console execution

The following two commands behave differently, whereas even fullDebug show identical native code:
strFromMaybe strFromN ((\a Nothing) 3)
strFromMaybe strFromN ((k Nothing) 3)

No repro on current IDE version


Will you write NLP part of d2l in the future?

Hope to see this part, and thanks for your open source code.

Yes, we'll add the NLP notebooks soon. Feel free to open any PRs for the same if you'd like to work on the same.


testutils backtraces are usually not useful

This issue I have encountered repeatedly when debugging fuzzing errors, but is a bit hard to explain.
In various situations where an error is returned but not expected, the host calls reject_error, and in the testutils configuration, this mode logs diagnostics and dumps a backtrace. This backtrace though does not locate the original source of the error - it only locates the source of the call to reject_error.
The backtrace is mostly useless: the most effective way to find the actual source of the error is to read the diagnostics and hope one of them contains a greppable string. And then if you do locate the source of the error, you still don't have the backtrace that lead to that error. I almost always end up instrumenting the runtime and contracts with printlns to actually figure out the call path to the error.

Example:
In some recent tests I triggered this error in Storage::extend:
        if old_live_until < ledger_seq {
            return Err(host.err(
                ScErrorType::Storage,
                ScErrorCode::InternalError,
                "accessing no-longer-live entry",
                &[old_live_until.into(), ledger_seq.into()],
            ));
        }

The end result is that I see this output:
thread '<unnamed>' panicked at /home/azureuser/data/stellar/rs-soroban-env/soroban-env-host/src/host.rs:684:9:
HostError: Error(Storage, InternalError)

Event log (newest first):
   0: [Diagnostic Event] topics:[error, Error(Storage, InternalError)], data:"escalating error to panic"
   1: [Diagnostic Event] topics:[error, Error(Storage, InternalError)], data:["contract call failed", allowance, [Address(Contract(dd222222262222222222ffffff
ffffffffffffffffffffffffffffffffffffff)), Address(Contract(dd222222262222222222ffffffffffffffffffffffffffffffffffffffffffff))]]
   2: [Failed Diagnostic Event (not emitted)] contract:0000000000000000000000000000000000000000000000000000000000000001, topics:[error, Error(Storage, Intern
alError)], data:"caught error from function"
   3: [Failed Diagnostic Event (not emitted)] contract:0000000000000000000000000000000000000000000000000000000000000001, topics:[error, Error(Storage, Intern
alError)], data:"escalating error to panic"
   4: [Failed Diagnostic Event (not emitted)] contract:0000000000000000000000000000000000000000000000000000000000000001, topics:[error, Error(Storage, Intern
alError)], data:["accessing no-longer-live entry", 4095, 8739]
   5: [Diagnostic Event] topics:[fn_call, Bytes(0000000000000000000000000000000000000000000000000000000000000001), allowance], data:[Address(Contract(dd22222
2262222222222ffffffffffffffffffffffffffffffffffffffffffff)), Address(Contract(dd222222262222222222ffffffffffffffffffffffffffffffffffffffffffff))]

Backtrace (newest first):
   0: soroban_env_host::budget::Budget::with_shadow_mode
             at /home/azureuser/data/stellar/rs-soroban-env/soroban-env-host/src/budget.rs:653:21
   1: soroban_env_host::host::Host::with_debug_mode
             at /home/azureuser/data/stellar/rs-soroban-env/soroban-env-host/src/host.rs:533:24
      soroban_env_host::host::error::<impl soroban_env_host::host::Host>::maybe_get_debug_info
             at /home/azureuser/data/stellar/rs-soroban-env/soroban-env-host/src/host/error.rs:271:13
      soroban_env_host::host::error::<impl soroban_env_host::host::Host>::error::{{closure}}
             at /home/azureuser/data/stellar/rs-soroban-env/soroban-env-host/src/host/error.rs:255:23
   2: soroban_env_host::budget::Budget::with_shadow_mode
             at /home/azureuser/data/stellar/rs-soroban-env/soroban-env-host/src/budget.rs:653:21
   3: soroban_env_host::host::Host::with_debug_mode
             at /home/azureuser/data/stellar/rs-soroban-env/soroban-env-host/src/host.rs:533:24
      soroban_env_host::host::error::<impl soroban_env_host::host::Host>::error
             at /home/azureuser/data/stellar/rs-soroban-env/soroban-env-host/src/host/error.rs:242:9
      <soroban_env_host::host::Host as soroban_env_common::env::EnvBase>::escalate_error_to_panic
             at /home/azureuser/data/stellar/rs-soroban-env/soroban-env-host/src/host.rs:683:26
   4: soroban_sdk::env::internal::reject_err::{{closure}}
             at /home/azureuser/data/stellar/rs-soroban-sdk/soroban-sdk/src/env.rs:52:23
   5: core::result::Result<T,E>::map_err
             at /rustc/9a66e4471f71283fd54d80ef8147630d34756332/library/core/src/result.rs:829:27
      soroban_sdk::env::internal::reject_err
             at /home/azureuser/data/stellar/rs-soroban-sdk/soroban-sdk/src/env.rs:52:9
      <soroban_sdk::env::Env as soroban_env_common::env::Env>::call
             at /home/azureuser/data/stellar/rs-soroban-sdk/soroban-sdk/src/env.rs:1618:13
      soroban_sdk::env::Env::invoke_contract
             at /home/azureuser/data/stellar/rs-soroban-sdk/soroban-sdk/src/env.rs:370:18
   6: soroban_sdk::token::TokenClient::allowance
             at /home/azureuser/data/stellar/rs-soroban-sdk/soroban-sdk/src/token.rs:31:1
   7: fuzz_target_1::_::__libfuzzer_sys_run
             at fuzz/fuzz_targets/fuzz_target_1.rs:316:29

The backtrace doesn't indicate where that storage error was, just that something happened during the call to the token contract.
Something interesting here is that the original error does appear to generate a backtrace that we don't get to see: it calls Host::err, which produces a HostError containing a backtrace (in maybe_get_debug_info):
    pub fn err(&self, type_: ScErrorType, code: ScErrorCode, msg: &str, args: &[Val]) -> HostError {
        let error = Error::from_type_and_code(type_, code);
        self.error(error, msg, args)
    }

    /// At minimum constructs and returns a [HostError] build from the provided
    /// [Error], and when running in [DiagnosticMode::Debug] additionally
    /// records a diagnostic event with the provided `msg` and `args` and then
    /// enriches the returned [Error] with [DebugInfo] in the form of a
    /// [Backtrace] and snapshot of the [Events] buffer.
    pub fn error(&self, error: Error, msg: &str, args: &[Val]) -> HostError {
        let mut he = HostError::from(error);
        self.with_debug_mode(|| {
            // We _try_ to take a mutable borrow of the events buffer refcell
            // while building up the event we're going to emit into the events
            // log, failing gracefully (just emitting a no-debug-info
            // `HostError` wrapping the supplied `Error`) if we cannot acquire
            // the refcell. This is to handle the "double fault" case where we
            // get an error _while performing_ any of the steps needed to record
            // an error as an event, below.
            if let Ok(mut events_refmut) = self.0.events.try_borrow_mut() {
                self.record_err_diagnostics(events_refmut.deref_mut(), error, msg, args);
            }
            he = HostError {
                error,
                info: self.maybe_get_debug_info(),
            };
            Ok(())
        });
        he
    }

This HostError is not the one that ultimately gets printed. Instead, escalate_error_to_panic creates a new HostError and prints that:
    #[cfg(feature = "testutils")]
    fn escalate_error_to_panic(&self, e: Self::Error) -> ! {
        let _ = self.with_current_frame_opt(|f| {
            if let Some(Frame::TestContract(frame)) = f {
                if let Ok(mut panic) = frame.panic.try_borrow_mut() {
                    *panic = Some(e.error);
                }
            }
            Ok(())
        });
        // XXX discard a HostError and create a new one to panic/print XXX
        let escalation = self.error(e.error, "escalating error to panic", &[]);
        panic!("{:#?}", escalation);
    }

This new HostError generates the useless backtrace.

It's not obvious though how to thread the backtrace from the original error all the way to this escalate_error_to_panic function (the HostError received as input to this function is still not the original error, as the errors go through multiple layers of possibly-lossy translation from HostError to ScError and back; reusing the input HostErrors backtrace would be more useful than the one that is printed though, and in some cases may be the actual desired backtrace).
At the time the original error is generated, diagnostics are also logged, so there's an opportunity there to stash a backtrace in the diagnostics; then (somehow) figure out that particular diagnostic contains the backtrace of interest.

Hmm. This is sad. I would prefer to try stashing in the panic slot in the native frame.
I'm sympathetic to this being quite frustrating and hard to follow. IME fixing these sorts of bugs takes a lot of careful tracing of the propagation paths before you find a change that'll do the trick.
Where are the ScError transitions happening?

Changing the TestContractFrame's panic slot to hold a HostError instead of an Error is sufficient to recover the backtrace after a panic and continue propagating it.
Here's a wip patch that does so: https://github.com/brson/rs-soroban-env/commit/7cdcbab1d3b416ed27ee8bb4f190dd653c5d5dc1

Where are the ScError transitions happening?

It wasn't actually literally converting to ScError, but rather Error - escalate_error_to_panic stuffs the Error from HostError into the frame, then throws away the original HostError, generates a new HostError, throws that HostError; then call_n_internal catches, then pulls the Error out of the frame, creates and returns a new HostError with new backtrace.

I've done a little more work on this here: https://github.com/brson/rs-soroban-env/tree/backtraces2
I've found two cases where a secondary error event discards the backtrace from the initial error event. One of them I have captured in a test case.


Fix runtime tests using ustacks

Several tests using the ustack builtin fail on my local setup. I found two issues:

Some tests in call.ustack* do not expect the stack entries to be indented by whitespace. These tests happen to be the same as the ones disabled in the CI by #3078 so the issue was never discovered.
The dwarf.uprobe inlined function - ustack gives me a slightly different stack from what is expected. It seems to expect something like:    main+21
    0x7fdff76fb14a

but I'm getting    main+21
    0x7fdff76fb14a
    0x7fdff76fb20b
    _start+37

IMHO, the most important part is to check that the "main+21" call occurs at the top of the stack and everything below is not that important.

This fixes the two issues.
Checklist

[ ] Language changes are updated in man/adoc/bpftrace.adoc
[ ] User-visible and non-trivial changes updated in CHANGELOG.md
[ ] The new behaviour is covered by tests

@ttreyer could you please have a look at this one? I'm particularly not sure if the second fix is correct. Thanks!

They both LGTM 🙂


Imagemagick policy changes

Sorry I have been  busy, I can try to make a proper pull request next week :-)

Would be great! I've been having caching problems on my production server so I need it fixed ASAP :)


Fix minor errors and accessibility issues

Hi @nea,
Thank you for this amazing plugin! A Markdown viewer directly inside Notepad++ was something I desperately wanted for years.
I'd like to fix some minor issues I've come across while using the plugin:
The menu strip and the markdown viewer overlaps
A picture is probably worth a thousand words:
Overlapped

Expected

This is fixed in 892a4a5.
Scroll bar issue
I've changed the way scroll ratio is calculated in 4e0a27d.
Reference image:

Credits: https://www.codeproject.com/Articles/1042516/Custom-Controls-in-Win-API-Scrolling
Enable scrolling beyond last line
I've once again changed the scroll ratio calculation in cf99196 so that the option "Enable scrolling beyond last line" does not cause weird scrollbar-sync issues.
Keep the editor focused when markdown viewer is toggled on
This is self-explanatory, I guess. (c01d3dd)
Accessibility
I rarely use the mouse while working. The options panel was using mouse click events, and that wasn't  getting along with keyboard navigation. I used AfterSelect event instead. (bac9a3c)

Hey @monoblaine
Thanks big time for this and I am very sorry it took so long to merge it back.
I just set everything up and created release 0.8.2 thanks to you ^^
Will update the Plugin Manager information now so that it can spread.
Again, thanks a lot for that


feat(uip-snippets): add a marker of isolated snippets items

Clothes: #725

I have read the CLA Document and I hereby sign the CLA

:tada: This PR is included in version 2.1.0-beta.5 :tada:
The release is available on:

npm package (@beta dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Floating UI works as expected in dev mode but not in production mode

Current Behavior
Here is how floating-ui looks in production mode:
screen-recorder-tue-may-28-2024-10-05-21.webm
Expected Behavior
Here is how it looks in development mode:
screen-recorder-tue-may-28-2024-10-05-04.webm
Steps To Reproduce
This is for dev build:

git clone https://github.com/baseplate-admin/coreproject-v4-ui.git
cd coreproject-v4-ui
npm run dev

This is for production build:

git clone https://github.com/baseplate-admin/coreproject-v4-ui.git
cd coreproject-v4-ui
npm run build:node
npm run preview

Link to Reproduction / Stackblitz
https://coreproject-v4-ui.vercel.app/anime
More Information
Relevant codes :
https://github.com/baseplate-admin/coreproject-v4-ui/blob/e290baa4cf5c7fc19245450bd9d0860364f2a300/src/routes/anime/%2Bpage.svelte#L447-L493

Overriding the component like this :
{#if sidebar_tooltips_open[idx]}
<div
	use:portal={"body"}
	bind:this={floating.elements.floating}
	{...intersections.getFloatingProps()}
	style="{floating.floatingStyles};z-index:100000;" <!-- CHECK THE Z-INDEX -->
	transition:blur={{ duration: 300 }}
	class="bg-warning text-secondary md:rounded-[0.5vw] md:px-[0.75vw] md:py-[0.25vw] md:text-[1.1vw]"
>
	{anime.title}
</div>
{/if}

made the tooltip appear but it's in wrong position.

Hey uh, is there something i can do to move this forward?

@Hugos68 have you seen this? Any ideas?
@baseplate-admin Keep in mind Floating UI Svelte is pre-release software and not yet ready for production, so there's no guarantee it'll work in an issue-free manner quite yet. So make sure you're setting your expectations accordingly please. Thanks.

Keep in mind Floating UI Svelte is pre-release software and not yet ready for production, so there's no guarantee it'll work in an issue-free manner quite yet.

That's why i opened this issue.

Make sure you're setting your expectations accordingly please. Thanks.

That's why i am trying my best to move this forward :)

Hey @baseplate-admin, sorry for responding so late, I must have accidentally marked this as read when going through my notifications. Anways, although I definitely appreiciate you filing a bug report, without a minimal reproduction we can't do much.
The reproduction you provided is your entire project, we don't have the resources to clone and skim through and entire project to bughunt, we expect some initial efforts from you.
Please provide a reproduction in: https://svelte-5-preview.vercel.app/
This ensures 2 things:

That the Svelte version is current
A consistent environment (node, npm, etc all become irrelevant)

Hey @Hugos68, i tried to reproduce it in svelte repl but i was unable to do so.
Because in order to create this issue i think the app has to go though svelte-kit build process.
So here's a minimal reproduction repository that uses svelte + tailwind + @floating-ui/svelte + svelte-portal

So here's a minimal reproduction repository that uses svelte + tailwind + @floating-ui/svelte + svelte-portal.
What are the steps to reproduce the issue?

I've just deployed your repo: https://floating-ui-issue-128.vercel.app/
It seems to work, unless I'm, missing something?

@baseplate-admin I managed to fix it when moving to a component: https://floating-ui-issue-128.vercel.app/

Thanks a lot for your investigation.

I managed to fix it when moving to a component: https://floating-ui-issue-128.vercel.app/
Repo: https://github.com/Hugos68/floating-ui-issue-128

yep, it seems that moving to a component solves the issue. but the underlying problem still exists :(.

Also, why do you use portal on the floating element? Just curious.

This can be better explained by @moonlitgrace

why do you use portal on the floating element? Just curious.

hi @Hugos68
we've been using floating-ui-svelte inside a ScrollArea with overflow-y-scroll, so its hiding elements overflowing on the x-axis.
<ScrollArea class="overflow-y-scroll">
    <!-- reference element -->
    <!-- floating element -->
</ScrollArea>

even adding z-index didnt work, so we needed to render it outside scroll element (portal it).
to body maybe? well please let me know if theres better way to do this.

My immediate thought would be to pull the popover itself out of the ScrollArea. If it's hidden on load, it shouldn't matter where it's located. The only issue might be scoping. if that puts it outside of the scope of the useFloating hook in some manner that might cause issues.

The only issue might be scoping. if that puts it outside of the scope of the useFloating hook in some manner that might cause issues.

But in the minimal reproduction doesn't have any scrollarea. My thought is the when we are using floating-ui in @const tag, vite removes/optimizes some properties that are not tree-shaked, thus we can see it working fine in development mode and the js part is removed in production mode

well please let me know if theres better way to do this.

@moonlitgrace You could try strategy: 'fixed' in the useFloating configuration:
useFloating({
    strategy: 'fixed'
});

Marking this as closed as it appears to be an issue with Svelte 5 @const, since it works fine in a normal component.

Marking this as closed as it appears to be an issue with Svelte 5 @const, since it works fine in a normal component.

Hi, should we report this in svelte repo?

Yes, that would be the aproppiate place, though I would recommend to try the latest version as around a 100 new version have been published since this issue was originally brought up.


Introduce new arrangement 5

New plugin resolve_composes is now enabled and rendered
for orchestrator builds in arrangement version 5.
Signed-off-by: Luiz Carvalho<EMAIL_ADDRESS>

Let's remember to update osbs-docs to describe it.

Let's remember to update osbs-docs to describe it.

Added https://github.com/projectatomic/osbs-docs/pull/52

Updated release notes draft:

New arrangement 5 is the default


[Bug]:

What happened?
Attempted to connect to previously defined connection and it resulted in this error.
What version of the tool are you using?
2.1.1
What version of Visual Studio Code are you running?
1.75.0
Any relevant session id from VSCode?
7813c241-ed59-4a35-9bcc-1da9d8074aa71675809126724
Relevant log output
Error occured in connectDataverse command.
Error code: undefined.
Error message: undefined.
Error stack: undefined.

Can you provide more info please?


Migrate from Redis

with the latest Redis policy changes, we probably will need to migrate from Redis to another key-value database.

done.
https://github.com/duplicateduuid/banoffee/commit/f517c7995d3a997dd4d2ce8691756842a35b0b03


discoverd: Leader failed to contact other nodes

In this CI failure a leader was elected (<IP_ADDRESS>) and began to replicate to the followers:
2015/11/28 14:46:16 [INFO] raft: Node at <IP_ADDRESS>:1111 [Follower] entering Follower state
2015/11/28 14:46:16 discoverd listening for HTTP on :1111
2015/11/28 14:46:17 discoverd: no known leader
2015/11/28 14:46:17 discoverd: no known leader
2015/11/28 14:46:17 discoverd: no known leader
2015/11/28 14:46:18 [WARN] raft: Heartbeat timeout reached, starting election
2015/11/28 14:46:18 [INFO] raft: Node at <IP_ADDRESS>:1111 [Candidate] entering Candidate state
2015/11/28 14:46:18 [DEBUG] raft: Votes needed: 2
2015/11/28 14:46:18 [DEBUG] raft: Vote granted. Tally: 1
2015/11/28 14:46:18 [DEBUG] raft: Vote granted. Tally: 2
2015/11/28 14:46:18 [INFO] raft: Election won. Tally: 2
2015/11/28 14:46:18 [INFO] raft: Node at <IP_ADDRESS>:1111 [Leader] entering Leader state
2015/11/28 14:46:18 [INFO] raft: pipelining replication to peer <IP_ADDRESS>:1111
2015/11/28 14:46:18 [INFO] raft: pipelining replication to peer <IP_ADDRESS>:1111
2015/11/28 14:46:18 [DEBUG] raft: Node <IP_ADDRESS>:1111 updated peer set (2): [<IP_ADDRESS>:1111 <IP_ADDRESS>:1111 <IP_ADDRESS>:1111]

but then failed 2s later with:
2015/11/28 14:46:20 [WARN] raft: Failed to contact <IP_ADDRESS>:1111 in 934.247684ms
2015/11/28 14:46:20 [WARN] raft: Failed to contact <IP_ADDRESS>:1111 in 934.760997ms
2015/11/28 14:46:20 [WARN] raft: Failed to contact quorum of nodes, stepping down
2015/11/28 14:46:20 [INFO] raft: Node at <IP_ADDRESS>:1111 [Follower] entering Follower state
2015/11/28 14:46:20 [INFO] raft: aborting pipeline replication to peer <IP_ADDRESS>:1111
2015/11/28 14:46:20 [INFO] raft: aborting pipeline replication to peer <IP_ADDRESS>:1111
2015/11/28 14:46:20 discoverd listening for DNS on <IP_ADDRESS>:53
2015/11/28 14:46:20 discoverd: no known leader
2015/11/28 14:46:20 discoverd: no known leader

This caused flynn-host to exit when it failed to register itself (so subsequently killing the discoverd job):
t=2015-11-28T14:46:20+0000 lvl=info msg="connecting to service discovery" app=host pid=1139 host.id=92163856 fn=ConfigureDiscoverd url=http://<IP_ADDRESS>:1111
t=2015-11-28T14:46:20+0000 lvl=eror msg="error connecting to service discovery" app=host pid=1139 host.id=92163856 fn=ConfigureDiscoverd err="unknown_error: Something went wrong"
t=2015-11-28T14:46:20+0000 lvl=info msg="marking jobs for resurrection" app=host pid=1139 fn=runDaemon host.id=92163856
t=2015-11-28T14:46:20+0000 lvl=info msg="unregistering with service discovery" app=host pid=1139 fn=runDaemon host.id=92163856
t=2015-11-28T14:46:20+0000 lvl=info msg="stopping all jobs except discoverd" app=host pid=1139 fn=runDaemon host.id=92163856

Here are the logs from all 3 discoverd jobs during this period:
<IP_ADDRESS>

2015/11/28 14:46:16 [INFO] raft: Node at <IP_ADDRESS>:1111 [Follower] entering Follower state
2015/11/28 14:46:16 discoverd listening for HTTP on :1111
2015/11/28 14:46:17 discoverd: no known leader
2015/11/28 14:46:17 discoverd: no known leader
2015/11/28 14:46:17 discoverd: no known leader
2015/11/28 14:46:18 [WARN] raft: Heartbeat timeout reached, starting election
2015/11/28 14:46:18 [INFO] raft: Node at <IP_ADDRESS>:1111 [Candidate] entering Candidate state
2015/11/28 14:46:18 [DEBUG] raft: Votes needed: 2
2015/11/28 14:46:18 [DEBUG] raft: Vote granted. Tally: 1
2015/11/28 14:46:18 [DEBUG] raft: Vote granted. Tally: 2
2015/11/28 14:46:18 [INFO] raft: Election won. Tally: 2
2015/11/28 14:46:18 [INFO] raft: Node at <IP_ADDRESS>:1111 [Leader] entering Leader state
2015/11/28 14:46:18 [INFO] raft: pipelining replication to peer <IP_ADDRESS>:1111
2015/11/28 14:46:18 [INFO] raft: pipelining replication to peer <IP_ADDRESS>:1111
2015/11/28 14:46:18 [DEBUG] raft: Node <IP_ADDRESS>:1111 updated peer set (2): [<IP_ADDRESS>:1111 <IP_ADDRESS>:1111 <IP_ADDRESS>:1111]
[discoverd] 2015/11/28 14:46:18 enforce expiry: discoverd: new leader, waiting for 2x TTL
t=2015-11-28T14:46:18+0000 lvl=info msg="broadcasting up event" component=discoverd fn=broadcast event=up service=discoverd instance.id=ec4cf0c90a1f9a0b8f7e420297a611fc instance.addr=<IP_ADDRESS>:1111
t=2015-11-28T14:46:18+0000 lvl=info msg="broadcasting leader event" component=discoverd fn=broadcast event=leader service=discoverd instance.id=ec4cf0c90a1f9a0b8f7e420297a611fc instance.addr=<IP_ADDRESS>:1111
t=2015-11-28T14:46:18+0000 lvl=info msg="broadcasting up event" component=discoverd fn=broadcast event=up service=discoverd instance.id=1e66043b90f04ae5723af810b201e267 instance.addr=<IP_ADDRESS>:1111
t=2015-11-28T14:46:18+0000 lvl=info msg="broadcasting up event" component=discoverd fn=broadcast event=up service=discoverd instance.id=15bb9844520b00eda3f41e4816da8894 instance.addr=<IP_ADDRESS>:1111
t=2015-11-28T14:46:18+0000 lvl=info msg="broadcasting service_meta event" component=discoverd fn=broadcast event=service_meta service=flannel service_meta.index=9 service_meta.data="{\"config\":{\"Network\":\"<IP_ADDRESS>/16\",\"Backend\":{\"Type\":\"vxlan\"}}}"
t=2015-11-28T14:46:19+0000 lvl=info msg="broadcasting service_meta event" component=discoverd fn=broadcast event=service_meta service=flannel service_meta.index=12 service_meta.data="{\"config\":{\"Network\":\"<IP_ADDRESS>/16\",\"Backend\":{\"Type\":\"vxlan\"}},\"subnets\":{\"<IP_ADDRESS>-24\":{\"PublicIP\":\"<IP_ADDRESS>\",\"HTTPPort\":\"5002\",\"BackendType\":\"vxlan\",\"BackendData\":{\"VtepMAC\":\"72:8e:c0:e8:be:ad\"}}}}"
t=2015-11-28T14:46:19+0000 lvl=info msg="broadcasting up event" component=discoverd fn=broadcast event=up service=flannel instance.id=19f2d145dd0082ec6f91837e507aec74 instance.addr=<IP_ADDRESS>:5002
t=2015-11-28T14:46:19+0000 lvl=info msg="broadcasting leader event" component=discoverd fn=broadcast event=leader service=flannel instance.id=19f2d145dd0082ec6f91837e507aec74 instance.addr=<IP_ADDRESS>:5002
t=2015-11-28T14:46:19+0000 lvl=info msg="broadcasting service_meta event" component=discoverd fn=broadcast event=service_meta service=flannel service_meta.index=17 service_meta.data="{\"config\":{\"Network\":\"<IP_ADDRESS>/16\",\"Backend\":{\"Type\":\"vxlan\"}},\"subnets\":{\"<IP_ADDRESS>-24\":{\"PublicIP\":\"<IP_ADDRESS>\",\"HTTPPort\":\"5002\",\"BackendType\":\"vxlan\",\"BackendData\":{\"VtepMAC\":\"4e:74:c9:fc:33:72\"}},\"<IP_ADDRESS>-24\":{\"PublicIP\":\"<IP_ADDRESS>\",\"HTTPPort\":\"5002\",\"BackendType\":\"vxlan\",\"BackendData\":{\"VtepMAC\":\"72:8e:c0:e8:be:ad\"}}}}"
t=2015-11-28T14:46:19+0000 lvl=info msg="broadcasting up event" component=discoverd fn=broadcast event=up service=flannel instance.id=d044b1f7ebb5053d7ba29f0b4f738ee2 instance.addr=<IP_ADDRESS>:5002
t=2015-11-28T14:46:19+0000 lvl=info msg="broadcasting up event" component=discoverd fn=broadcast event=up service=flynn-host instance.id=a78c9b8633a0bf3d6e01a022eb6f48c9 instance.addr=<IP_ADDRESS>:1113
t=2015-11-28T14:46:19+0000 lvl=info msg="broadcasting leader event" component=discoverd fn=broadcast event=leader service=flynn-host instance.id=a78c9b8633a0bf3d6e01a022eb6f48c9 instance.addr=<IP_ADDRESS>:1113
2015/11/28 14:46:20 [WARN] raft: Failed to contact <IP_ADDRESS>:1111 in 934.247684ms
2015/11/28 14:46:20 [WARN] raft: Failed to contact <IP_ADDRESS>:1111 in 934.760997ms
2015/11/28 14:46:20 [WARN] raft: Failed to contact quorum of nodes, stepping down
2015/11/28 14:46:20 [INFO] raft: Node at <IP_ADDRESS>:1111 [Follower] entering Follower state
2015/11/28 14:46:20 [INFO] raft: aborting pipeline replication to peer <IP_ADDRESS>:1111
2015/11/28 14:46:20 [INFO] raft: aborting pipeline replication to peer <IP_ADDRESS>:1111
2015/11/28 14:46:20 discoverd listening for DNS on <IP_ADDRESS>:53
2015/11/28 14:46:20 discoverd: no known leader
2015/11/28 14:46:20 discoverd: no known leader
t=2015-11-28T14:46:20+0000 lvl=info msg="command exited" app=containerinit fn=containerInitApp status=0

<IP_ADDRESS>

2015/11/28 14:46:17 [INFO] raft: Node at <IP_ADDRESS>:1111 [Follower] entering Follower state
2015/11/28 14:46:17 discoverd listening for HTTP on :1111
2015/11/28 14:46:17 discoverd: no known leader
2015/11/28 14:46:17 discoverd: no known leader
2015/11/28 14:46:17 discoverd: no known leader
2015/11/28 14:46:19 [DEBUG] raft-net: <IP_ADDRESS>:1111 accepted connection from: <IP_ADDRESS>:50215
2015/11/28 14:46:19 [DEBUG] raft-net: <IP_ADDRESS>:1111 accepted connection from: <IP_ADDRESS>:50217
2015/11/28 14:46:19 [DEBUG] raft: Node <IP_ADDRESS>:1111 updated peer set (2): [<IP_ADDRESS>:1111 <IP_ADDRESS>:1111 <IP_ADDRESS>:1111]
t=2015-11-28T14:46:19+0000 lvl=info msg="broadcasting up event" component=discoverd fn=broadcast event=up service=discoverd instance.id=ec4cf0c90a1f9a0b8f7e420297a611fc instance.addr=<IP_ADDRESS>:1111
t=2015-11-28T14:46:19+0000 lvl=info msg="broadcasting leader event" component=discoverd fn=broadcast event=leader service=discoverd instance.id=ec4cf0c90a1f9a0b8f7e420297a611fc instance.addr=<IP_ADDRESS>:1111
t=2015-11-28T14:46:19+0000 lvl=info msg="broadcasting up event" component=discoverd fn=broadcast event=up service=discoverd instance.id=1e66043b90f04ae5723af810b201e267 instance.addr=<IP_ADDRESS>:1111
t=2015-11-28T14:46:19+0000 lvl=info msg="broadcasting up event" component=discoverd fn=broadcast event=up service=discoverd instance.id=15bb9844520b00eda3f41e4816da8894 instance.addr=<IP_ADDRESS>:1111
t=2015-11-28T14:46:19+0000 lvl=info msg="broadcasting service_meta event" component=discoverd fn=broadcast event=service_meta service=flannel service_meta.index=9 service_meta.data="{\"config\":{\"Network\":\"<IP_ADDRESS>/16\",\"Backend\":{\"Type\":\"vxlan\"}}}"
t=2015-11-28T14:46:19+0000 lvl=info msg="broadcasting service_meta event" component=discoverd fn=broadcast event=service_meta service=flannel service_meta.index=12 service_meta.data="{\"config\":{\"Network\":\"<IP_ADDRESS>/16\",\"Backend\":{\"Type\":\"vxlan\"}},\"subnets\":{\"<IP_ADDRESS>-24\":{\"PublicIP\":\"<IP_ADDRESS>\",\"HTTPPort\":\"5002\",\"BackendType\":\"vxlan\",\"BackendData\":{\"VtepMAC\":\"72:8e:c0:e8:be:ad\"}}}}"
t=2015-11-28T14:46:19+0000 lvl=info msg="broadcasting up event" component=discoverd fn=broadcast event=up service=flannel instance.id=19f2d145dd0082ec6f91837e507aec74 instance.addr=<IP_ADDRESS>:5002
t=2015-11-28T14:46:19+0000 lvl=info msg="broadcasting leader event" component=discoverd fn=broadcast event=leader service=flannel instance.id=19f2d145dd0082ec6f91837e507aec74 instance.addr=<IP_ADDRESS>:5002
t=2015-11-28T14:46:19+0000 lvl=info msg="broadcasting service_meta event" component=discoverd fn=broadcast event=service_meta service=flannel service_meta.index=17 service_meta.data="{\"config\":{\"Network\":\"<IP_ADDRESS>/16\",\"Backend\":{\"Type\":\"vxlan\"}},\"subnets\":{\"<IP_ADDRESS>-24\":{\"PublicIP\":\"<IP_ADDRESS>\",\"HTTPPort\":\"5002\",\"BackendType\":\"vxlan\",\"BackendData\":{\"VtepMAC\":\"4e:74:c9:fc:33:72\"}},\"<IP_ADDRESS>-24\":{\"PublicIP\":\"<IP_ADDRESS>\",\"HTTPPort\":\"5002\",\"BackendType\":\"vxlan\",\"BackendData\":{\"VtepMAC\":\"72:8e:c0:e8:be:ad\"}}}}"
t=2015-11-28T14:46:19+0000 lvl=info msg="broadcasting up event" component=discoverd fn=broadcast event=up service=flannel instance.id=d044b1f7ebb5053d7ba29f0b4f738ee2 instance.addr=<IP_ADDRESS>:5002
2015/11/28 14:46:19 discoverd listening for DNS on <IP_ADDRESS>:53
2015/11/28 14:46:21 [WARN] raft: Heartbeat timeout reached, starting election
2015/11/28 14:46:21 [INFO] raft: Node at <IP_ADDRESS>:1111 [Candidate] entering Candidate state
2015/11/28 14:46:21 [ERR] raft: Failed to make RequestVote RPC to <IP_ADDRESS>:1111: dial tcp <IP_ADDRESS>:1111: connection refused
2015/11/28 14:46:21 [DEBUG] raft: Votes needed: 2
2015/11/28 14:46:21 [DEBUG] raft: Vote granted. Tally: 1
2015/11/28 14:46:22 [DEBUG] raft-net: <IP_ADDRESS>:1111 accepted connection from: <IP_ADDRESS>:35166
2015/11/28 14:46:22 [INFO] raft: Duplicate RequestVote for same term: 2
2015/11/28 14:46:22 [WARN] raft: Election timeout reached, restarting election
2015/11/28 14:46:22 [INFO] raft: Node at <IP_ADDRESS>:1111 [Candidate] entering Candidate state
2015/11/28 14:46:22 [ERR] raft: Failed to make RequestVote RPC to <IP_ADDRESS>:1111: dial tcp <IP_ADDRESS>:1111: connection refused
2015/11/28 14:46:22 [DEBUG] raft: Votes needed: 2
2015/11/28 14:46:22 [DEBUG] raft: Vote granted. Tally: 1
2015/11/28 14:46:22 [DEBUG] raft: Vote granted. Tally: 2
2015/11/28 14:46:22 [INFO] raft: Election won. Tally: 2
2015/11/28 14:46:22 [INFO] raft: Node at <IP_ADDRESS>:1111 [Leader] entering Leader state
2015/11/28 14:46:23 [ERR] raft: Failed to AppendEntries to <IP_ADDRESS>:1111: dial tcp <IP_ADDRESS>:1111: connection refused
2015/11/28 14:46:23 [INFO] raft: pipelining replication to peer <IP_ADDRESS>:1111
2015/11/28 14:46:23 [DEBUG] raft: Node <IP_ADDRESS>:1111 updated peer set (2): [<IP_ADDRESS>:1111 <IP_ADDRESS>:1111 <IP_ADDRESS>:1111]
t=2015-11-28T14:46:23+0000 lvl=info msg="broadcasting up event" component=discoverd fn=broadcast event=up service=flynn-host instance.id=a78c9b8633a0bf3d6e01a022eb6f48c9 instance.addr=<IP_ADDRESS>:1113
t=2015-11-28T14:46:23+0000 lvl=info msg="broadcasting leader event" component=discoverd fn=broadcast event=leader service=flynn-host instance.id=a78c9b8633a0bf3d6e01a022eb6f48c9 instance.addr=<IP_ADDRESS>:1113
2015/11/28 14:46:23 [ERR] raft: Failed to AppendEntries to <IP_ADDRESS>:1111: dial tcp <IP_ADDRESS>:1111: connection refused
[discoverd] 2015/11/28 14:46:23 enforce expiry: discoverd: new leader, waiting for 2x TTL
2015/11/28 14:46:23 [ERR] raft: Failed to AppendEntries to <IP_ADDRESS>:1111: dial tcp <IP_ADDRESS>:1111: connection refused
2015/11/28 14:46:23 [ERR] raft: Failed to heartbeat to <IP_ADDRESS>:1111: dial tcp <IP_ADDRESS>:1111: connection refused
2015/11/28 14:46:23 [ERR] raft: Failed to AppendEntries to <IP_ADDRESS>:1111: dial tcp <IP_ADDRESS>:1111: connection refused
2015/11/28 14:46:23 [ERR] raft: Failed to AppendEntries to <IP_ADDRESS>:1111: dial tcp <IP_ADDRESS>:1111: connection refused

<IP_ADDRESS>

2015/11/28 14:46:17 [INFO] raft: Node at <IP_ADDRESS>:1111 [Follower] entering Follower state
2015/11/28 14:46:17 discoverd listening for HTTP on :1111
2015/11/28 14:46:17 discoverd: no known leader
2015/11/28 14:46:17 discoverd: no known leader
2015/11/28 14:46:17 discoverd: no known leader
2015/11/28 14:46:18 [DEBUG] raft-net: <IP_ADDRESS>:1111 accepted connection from: <IP_ADDRESS>:50177
2015/11/28 14:46:18 [DEBUG] raft: Node <IP_ADDRESS>:1111 updated peer set (2): [<IP_ADDRESS>:1111 <IP_ADDRESS>:1111 <IP_ADDRESS>:1111]
t=2015-11-28T14:46:18+0000 lvl=info msg="broadcasting up event" component=discoverd fn=broadcast event=up service=discoverd instance.id=ec4cf0c90a1f9a0b8f7e420297a611fc instance.addr=<IP_ADDRESS>:1111
t=2015-11-28T14:46:18+0000 lvl=info msg="broadcasting leader event" component=discoverd fn=broadcast event=leader service=discoverd instance.id=ec4cf0c90a1f9a0b8f7e420297a611fc instance.addr=<IP_ADDRESS>:1111
t=2015-11-28T14:46:18+0000 lvl=info msg="broadcasting up event" component=discoverd fn=broadcast event=up service=discoverd instance.id=1e66043b90f04ae5723af810b201e267 instance.addr=<IP_ADDRESS>:1111
t=2015-11-28T14:46:18+0000 lvl=info msg="broadcasting up event" component=discoverd fn=broadcast event=up service=discoverd instance.id=15bb9844520b00eda3f41e4816da8894 instance.addr=<IP_ADDRESS>:1111
2015/11/28 14:46:18 [DEBUG] raft-net: <IP_ADDRESS>:1111 accepted connection from: <IP_ADDRESS>:50181
t=2015-11-28T14:46:18+0000 lvl=info msg="broadcasting service_meta event" component=discoverd fn=broadcast event=service_meta service=flannel service_meta.index=9 service_meta.data="{\"config\":{\"Network\":\"<IP_ADDRESS>/16\",\"Backend\":{\"Type\":\"vxlan\"}}}"
t=2015-11-28T14:46:18+0000 lvl=info msg="broadcasting service_meta event" component=discoverd fn=broadcast event=service_meta service=flannel service_meta.index=12 service_meta.data="{\"config\":{\"Network\":\"<IP_ADDRESS>/16\",\"Backend\":{\"Type\":\"vxlan\"}},\"subnets\":{\"<IP_ADDRESS>-24\":{\"PublicIP\":\"<IP_ADDRESS>\",\"HTTPPort\":\"5002\",\"BackendType\":\"vxlan\",\"BackendData\":{\"VtepMAC\":\"72:8e:c0:e8:be:ad\"}}}}"
t=2015-11-28T14:46:19+0000 lvl=info msg="broadcasting up event" component=discoverd fn=broadcast event=up service=flannel instance.id=19f2d145dd0082ec6f91837e507aec74 instance.addr=<IP_ADDRESS>:5002
t=2015-11-28T14:46:19+0000 lvl=info msg="broadcasting leader event" component=discoverd fn=broadcast event=leader service=flannel instance.id=19f2d145dd0082ec6f91837e507aec74 instance.addr=<IP_ADDRESS>:5002
t=2015-11-28T14:46:19+0000 lvl=info msg="broadcasting service_meta event" component=discoverd fn=broadcast event=service_meta service=flannel service_meta.index=17 service_meta.data="{\"config\":{\"Network\":\"<IP_ADDRESS>/16\",\"Backend\":{\"Type\":\"vxlan\"}},\"subnets\":{\"<IP_ADDRESS>-24\":{\"PublicIP\":\"<IP_ADDRESS>\",\"HTTPPort\":\"5002\",\"BackendType\":\"vxlan\",\"BackendData\":{\"VtepMAC\":\"4e:74:c9:fc:33:72\"}},\"<IP_ADDRESS>-24\":{\"PublicIP\":\"<IP_ADDRESS>\",\"HTTPPort\":\"5002\",\"BackendType\":\"vxlan\",\"BackendData\":{\"VtepMAC\":\"72:8e:c0:e8:be:ad\"}}}}"
t=2015-11-28T14:46:19+0000 lvl=info msg="broadcasting up event" component=discoverd fn=broadcast event=up service=flannel instance.id=d044b1f7ebb5053d7ba29f0b4f738ee2 instance.addr=<IP_ADDRESS>:5002
2015/11/28 14:46:20 [DEBUG] raft-net: <IP_ADDRESS>:1111 accepted connection from: <IP_ADDRESS>:59678
2015/11/28 14:46:20 [WARN] raft: Rejecting vote from <IP_ADDRESS>:1111 since we have a leader: <IP_ADDRESS>:1111
2015/11/28 14:46:22 [WARN] raft: Heartbeat timeout reached, starting election
2015/11/28 14:46:22 [INFO] raft: Node at <IP_ADDRESS>:1111 [Candidate] entering Candidate state
2015/11/28 14:46:22 [ERR] raft: Failed to make RequestVote RPC to <IP_ADDRESS>:1111: dial tcp <IP_ADDRESS>:1111: connection refused
2015/11/28 14:46:22 [DEBUG] raft: Votes needed: 2
2015/11/28 14:46:22 [DEBUG] raft: Vote granted. Tally: 1
2015/11/28 14:46:22 [INFO] raft: Node at <IP_ADDRESS>:1111 [Follower] entering Follower state
2015/11/28 14:46:23 [DEBUG] raft: Node <IP_ADDRESS>:1111 updated peer set (2): [<IP_ADDRESS>:1111 <IP_ADDRESS>:1111 <IP_ADDRESS>:1111]
t=2015-11-28T14:46:23+0000 lvl=info msg="broadcasting up event" component=discoverd fn=broadcast event=up service=flynn-host instance.id=a78c9b8633a0bf3d6e01a022eb6f48c9 instance.addr=<IP_ADDRESS>:1113
t=2015-11-28T14:46:23+0000 lvl=info msg="broadcasting leader event" component=discoverd fn=broadcast event=leader service=flynn-host instance.id=a78c9b8633a0bf3d6e01a022eb6f48c9 instance.addr=<IP_ADDRESS>:1113
2015/11/28 14:46:23 [DEBUG] raft-net: <IP_ADDRESS>:1111 accepted connection from: <IP_ADDRESS>:59683
t=2015-11-28T14:46:43+0000 lvl=info msg="broadcasting down event" component=discoverd fn=broadcast event=down service=discoverd instance.id=ec4cf0c90a1f9a0b8f7e420297a611fc instance.addr=<IP_ADDRESS>:1111
t=2015-11-28T14:46:43+0000 lvl=info msg="broadcasting down event" component=discoverd fn=broadcast event=down service=flannel instance.id=d044b1f7ebb5053d7ba29f0b4f738ee2 instance.addr=<IP_ADDRESS>:5002
t=2015-11-28T14:46:43+0000 lvl=info msg="broadcasting leader event" component=discoverd fn=broadcast event=leader service=discoverd instance.id=1e66043b90f04ae5723af810b201e267 instance.addr=<IP_ADDRESS>:1111
t=2015-11-28T14:46:51+0000 lvl=info msg="broadcasting service_meta event" component=discoverd fn=broadcast event=service_meta service=flannel service_meta.index=24 service_meta.data="{\"config\":{\"Network\":\"<IP_ADDRESS>/16\",\"Backend\":{\"Type\":\"vxlan\"}},\"subnets\":{\"<IP_ADDRESS>-24\":{\"PublicIP\":\"<IP_ADDRESS>\",\"HTTPPort\":\"5002\",\"BackendType\":\"vxlan\",\"BackendData\":{\"VtepMAC\":\"1e:60:ad:43:66:1b\"}},\"<IP_ADDRESS>-24\":{\"PublicIP\":\"<IP_ADDRESS>\",\"HTTPPort\":\"5002\",\"BackendType\":\"vxlan\",\"BackendData\":{\"VtepMAC\":\"4e:74:c9:fc:33:72\"}},\"<IP_ADDRESS>-24\":{\"PublicIP\":\"<IP_ADDRESS>\",\"HTTPPort\":\"5002\",\"BackendType\":\"vxlan\",\"BackendData\":{\"VtepMAC\":\"72:8e:c0:e8:be:ad\"}}}}"
t=2015-11-28T14:46:51+0000 lvl=info msg="broadcasting up event" component=discoverd fn=broadcast event=up service=flannel instance.id=9b5c583b70e5be9ef3681383ba032662 instance.addr=<IP_ADDRESS>:5002
2015/11/28 14:46:51 discoverd listening for DNS on <IP_ADDRESS>:53
t=2015-11-28T14:46:51+0000 lvl=info msg="broadcasting up event" component=discoverd fn=broadcast event=up service=flynn-host instance.id=cdc49182cf0dab3cdac2f716a8840a33 instance.addr=<IP_ADDRESS>:1113
t=2015-11-28T14:46:52+0000 lvl=info msg="broadcasting up event" component=discoverd fn=broadcast event=up service=postgres instance.id=939e596395b31bf342cf097db8669cd4 instance.addr=<IP_ADDRESS>:5432

/cc @benbjohnson

@lmars that's really strange that it's making some connections but refusing others. do you have other builds where this is happening? it looks like the latest build passed (c1301a3).

@benbjohnson this is the only time I have seen this. Note the "connection refused" errors only start happening once .3 is killed by flynn-host (because the leader was lost and the API returned a 500 when flynn-host tried to register itself).

We've seen this happen due to CPU load, I believe the new build infrastructure has resolved this.


docs: refresh eliza's tagline, fix broken links, unify formatting for core concepts

Relates to:
ai16z docs
Risks
low risk
Background
What does this PR do?

refresh the eliza's tagline (i thought this was a bit catchier and making agents plural is better aligned with the mutli-agent-ness of eliza)
fix broken links
unify formatting in the core concepts section

What kind of change is this?
Documentation
Why are we doing this? Any context or related work?
updating the tagline as proposed and making agents plural better communicates eliza's capabilities
Documentation changes needed?
No
Testing
Where should a reviewer start?
N/A
Detailed testing steps
N/A
Deploy Notes
N/A
Database changes
N/A
Deployment instructions
N/A

LGTM outside of nit!


Feat: Spinner, JS API, check files

Separated CLI app code and created a JS library. This is preparation to create a GitHub action for linkspector.
Added spinner animation when the check is in progress.
Updated the check function to process filenames, handles the case when filenames are used instead of hyperlinks.

Fix validation error as well in this PR:
⠋ Validation Error [
  {
    message: "\"dir\" is not allowed",
    path: [ "dir" ],
    type: "object.unknown",
    context: {
      child: "dir",
      label: "dir",
      value: [ null ],
      key: "dir"
    }
  }
]
✨ Success: All hyperlinks in the specified files are valid.


Gridsome: Follow-up from plugin index updates (#809)

@cjohnhanson looks like a great iteration. My notes:

[x] the pagination issue AJ already mentioned
[x] The height of each of the grids is dependent on a row based on the largest icon on that row. I think it's most noticeable on the loaders page where the shift in the cards between rows is more obvious https://deploy-preview-809--meltano-hub-gridsome.netlify.app/loaders/ I think just using the same size across the board would be cleanest?
[ ] Is there a setting to have an incomplete row be centered? https://deploy-preview-809--meltano-hub-gridsome.netlify.app/orchestrators feels weird

Originally posted by @tayloramurphy in https://github.com/meltano/hub/issues/809#issuecomment-1252541212

Closed in #819