panic: runtime error: invalid memory address or nil pointer dereference

run my project after several hours, i get the error,
i think is the func which is "Find" and "Each" , beacuse at first time , i use Each(f func(int, *Selection)) ,i get the error : panic: runtime error: invalid memory address or nil pointer dereference, then i search the question from the internet, i think maybe the problem is ":=", so that  i  correct
-->
func (s *Selection) Each(f func(int, *Selection)) *Selection {
	var i int
	var n *html.Node
	for i, n = range s.Nodes {
		f(i, newSingleSelection(n, s.document))
	}
	return s
}

but after some hours, occured a new problem
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xc0000005 code=0x0 addr=0x0 pc=0x7ea0ef]

from
doc,_ := goquery.NewDocument(movie.Url)
text:=doc.Find(".vodInfo").First().Find("span").First().Text()

can you help me?

Hello,
The problem is that you ignore the error. If NewDocument fails, doc is nil
and the call to doc.Find panics.
Martin
On Fri, Mar 16, 2018 at 10:26 qiusunshine<EMAIL_ADDRESS>wrote:

run my project after several hours, i get the error,
i think is the func which is "Find" and "Each" , beacuse at first time , i
use Each(f func(int, *Selection)) ,i get the error : panic: runtime error:
invalid memory address or nil pointer dereference, then i search the
question from the internet, i think maybe the problem is ":=", so that i
correct
-->
func (s *Selection) Each(f func(int, *Selection)) *Selection {
var i int
var n *html.Node
for i, n = range s.Nodes {
f(i, newSingleSelection(n, s.document))
}
return s
}
but after some hours, occured a new problem
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xc0000005 code=0x0 addr=0x0 pc=0x7ea0ef]
from
doc,_ := goquery.NewDocument(movie.Url)
text:=doc.Find(".vodInfo").First().Find("span").First().Text()
can you help me?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/PuerkitoBio/goquery/issues/245, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAqQoO-UuCQgeTRwF0PLIK73tUdUX8P2ks5te8uNgaJpZM4St4CC
.

sorry, the error occured ad this line
text:=doc.Find(".vodInfo").First().Find("span").First().Text()
not NewDocument

I understand, but it occurs there because the error is not checked
before.
On Fri, Mar 16, 2018 at 11:09 qiusunshine<EMAIL_ADDRESS>wrote:

sorry, the error occured ad this line
text:=doc.Find(".vodInfo").First().Find("span").First().Text()
not NewDocument
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/PuerkitoBio/goquery/issues/245#issuecomment-373742987,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAqQoK0oPDA38f4wygPSi755tjCMkLr9ks5te9WigaJpZM4St4CC
.

Ok I'm now on my laptop (was on my phone before), so what I mean is those two lines:
doc,_ := goquery.NewDocument(movie.Url) // here you ignore the error
text:=doc.Find(".vodInfo").First().Find("span").First().Text()

Should be replaced by:
doc, err := goquery.NewDocument(movie.Url)
if err != nil {
   log.Fatal(err) // or whatever, but do not continue using doc - it is nil!
}
text:=doc.Find(".vodInfo").First().Find("span").First().Text() // note that the second call to `First()` is not necessary

Also, if this is for anything more critical than an experiment or a personal project for fun, I strongly advise you make the requestl to the movie.Url using Go's net/http package, and then, once you've validated the results, use goquery.NewDocumentFromReader(response.Body) instead.
Hope this helps,
Martin

i get it.
thanks a lot!


run aws session sts code asyncronously vastly improving the performance.

log success to user
add threads to speedup execution when you have a large number of roles

This is much faster when you have a large number of roles.  as long as a new session is created in each thread the boto module becomes threadsafe.  See https://stackoverflow.com/questions/52820971/is-boto3-client-thread-safe for more info.
I could see this pr being parameterized and the threading capabilities become optional with the default being the old style.  This pr works for me .. and is meant to get a discussion on speeding up the calls to aws.

@Sector95 Any chance I could get a review on this?  As it stands its working for me and I see a huge performance boost from it.  Just wanted to share the idea with others.

@bwynsm would be a better contact for this, I'm not really involved with the project anymore.

this is great! was trying to find a solution to help with the 5 min sts max limit since I'm pulling a 100+ roles, this cut the time down to less than a minute!

@bwynsm Any chance we can get a review / update on how we get this one merged?

@epierce I see you have recently merged code.. can this be merged also?

Everything looks good with this - it's working fine for me.  Thanks for the contribution


Metaproperties that are inherited by quotients, III

Obvious

[ ] countable.
[ ] finite.
[ ] semisimple. From Wedderburn-Artin.
[ ] simple. No nontrivial quotients.

Right ideal correspondence theorem

[ ] distributive. If $I_k$ are right $R$-ideals that contain $I$, and $J_k = I_k/I$, then $J_1 \cap (J_2 + J_3) = \dfrac{I_1 \cap (I_2 + I_3)}{I} = \dfrac{(I_1 \cap I_2) + (I_1 \cap I_3)}{I} = (J_1 \cap J_2) + (J_1 \cap J_3)$ as $R$-modules, and therefore as $R/I$-modules.
[ ] duo, quasi-duo. The correspondence respects two-sided ideals.
[ ] fully prime, fully semiprime. These were discussed before.
[ ] local. The quotient inherits only one single maximal right ideal.
[ ] principal ideal ring. Take the images of the generators.
[ ] semi-Noetherian. Direct application.
[ ] semilocal. E.g. by this (also a direct application).
[ ] serial, uniserial. Direct application.

The quotient map is a homomorphism

[ ] exchange.
[ ] periodic.
[ ] polynomial identity.
[ ] semicommutative.

Remarks

Inspired by a comment about the dimensions and sides in the RingApp source code: Lam I p235 Ex14.1 and 14.2 give examples of nonequal L/R dimensions over a field; does DaRT need them?
Does there exist a semi-Artinian but not semi-Noetherian ring? For self-injective rings DaRT's logic rules this out.

Does there exist a semi-Artinian but not semi-Noetherian ring?

We know for sure
ring is commutative AND ring is semi-Artinian on the right -->  ring is max ring on the right
I think I never got around to evaluating if Theorem 3.1 of
Năstăsescu, Constantin, and Nicolae Popescu. "Anneaux semi-artiniens." Bulletin de la Société mathématique de France 96 (1968): 357-368.
Is or is not saying that a two-sided semi-Artinian ring is two-sided max. They do not seem to require commutativity, nor do they include left/right modifiers for the statement.

Yes, "condition H" is the same as "max ring" which is the "logical dual" to semi-artinian.  "Semi-noetherian" is somehow less well-behaved. Perhaps there's a chance that semi-Artinian implies R_R is seminoetherian as a module.

I started with $\bar a + \bar b = \bar 1$, and continued with $a+b+i=1$ and got $ar+(b+i)s=1$, and I was looking for $\overline{bs}$ to be idempotent, but made some mistake in computation. After sleeping things are working: if you expand $((b+i)s)^2=(b+i)s$ you get something that says $(bs)^2=bs$ mod $I$. 👍


Add "bash completion" and "bash completion extras"

Add  bash completion module, and works for system native packages (such as systemctl, journalctl, ls....) but not for kubectl. In order for kubectl autocompletion to work we need to run "kubectl completion bash >/etc/bash_completion.d/kubectl". This is not complete and is going to be approach in the next PR.

This look fine to me.  All I'm really after is the kubectl tab completion for the rke user but it probably makes sense to generally enable tab completion for all users/hosts in the future.


Use Coveralls or  CodeCov

See:
https://coveralls.io/
https://codecov.io/

Added in latest version (v0.4.4).


ubuntu 14.10 cmake pthread"s"

There is a documented issue with cmake and pthreads that seems to be being triggered here. Haven't had a chance to look at it more closely... Here is how to reproduce it under Ubuntu 14.10:

cd libfunctionality
mkdir build
cd build
cmake ..
cat CMakeFiles/CMakeError.log

CheckSymbolExists.c:(.text+0x16): undefined reference to pthread_create' collect2: error: ld returned 1 exit status make[1]: *** [cmTryCompileExec715743377] Error 1 make[1]: Leaving directory /root/libfunctionality/build/CMakeFiles/CMakeTmp'
make: *** [cmTryCompileExec715743377/fast] Error 2
File /root/libfunctionality/build/CMakeFiles/CMakeTmp/CheckSymbolExists.c:
/* */
#include <pthread.h>
int main(int argc, char** argv)
{
(void)argv;
#ifndef pthread_create
return ((int*)(&pthread_create))[argc];
#else
(void)argc;
return 0;
#endif
}

The errors in that file do not indicate project build errors. Those errors are the result of CMake testing various pthread implementations (namely, various pthread_create possibilities). You'll notice in the CMake output that it says something like:
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found

The first two not found notices correspond to the errors you see in that log file. The third attempt succeeds. CMake will use that final method when building the code.
In short, this is the expected behavior and not a bug.


Add a redis instance to relay docker-compose

🆕🐥 First Timers Only
This issue is reserved for people who have never contributed to Hedera or any open source project in general.
We know that creating a pull request (PR) is a major barrier for new contributors.
The goal of this issue and all other issues labeled by 'Good First Issue' is to help you make your first contribution to Hedera.
👾 Description of the issue
The current docker-compose.yml starts the HTTP server container and the Web Socket server container, but does not include a redis container.  If redis is not enabled, and used by each server the cache will not be shared.
Proposed Solution:
Add a redis container to the docker-compose.xml and ensure that the servers connect to it and use it as a shared cache.
Example Implementation

services:
  redis:
    image: redis:latest         # Uses the official Redis image from Docker Hub
    container_name: redis_server # Optional: Names the container 'redis_server'
    ports:
      - '6379:6379'             # Maps port 6379 of the host to port 6379 of the container
    volumes:
      - redis-data:/data        # Persists Redis data using a named volume
    restart: always             # Ensures the container restarts automatically if it stops

volumes:
  redis-data:                   # Declares a named volume for persistent storage

📋 Step by step guide to do a contribution
If you have never contributed to an open source project at GitHub, the following step-by-step guide will introduce you to the workflow. More information and concrete samples for shell commands for each step can be found in our CONTRIBUTING.md file.
A more detailed general documentation of the GitHub PR workflow can be found here.

[ ] Claim this issue: Comment below that you are interested in working on the issue
[ ] Wait for assignment: A community member with the given rights will add you as an assignee of the issue
[ ] Fork the repository: You can do that in GitHub (by simply clicking the 'fork' button).
[ ] Check out the forked repository
[ ] Create a feature branch for the issue. We do not have a hard naming definition for branches but it is best practice to prefix the branch name with the issue id.
[ ] Solve the issue in your branch.
[ ] Commit your changes: Here, it is needed to add sign-off information to the commit to accept the "Developer Certificate of Origin" (https://developercertificate.org). More details can be found in our CONTRIBUTING.md
[ ] Start a Pull Request (PR): We have a pattern for naming pull requests that a GitHub Action checks. We use that pattern to support the creation of automatic release notes.
[ ] Check GitHub Actions: Several GitHub Actions will be triggered automatically for each PR. If a GitHub Action fails and you do not understand the cause of that error do not hesitate to add a comment to the PR and ask the Hedera developer community for support.
[ ] Wait for reviews: Members of the Hedera developer community will review your PR. If a reviewer finds any missing pieces or a problem, he or she will start a discussion with you and describe the next steps for solving the problem.
[ ] You did it 🎉: We will merge the fix in the develop branch. Thanks for being part of the Hedera community as an open-source contributor ❤

🎉 Contribute to Hacktoberfest
Solve this issue as part of the Hacktoberfest event and get a chance to receive cool goodies like a T-Shirt. 🎽
🤔 Additional Information
If you have any questions, just ask us directly in this issue by adding a comment. You can join our community chat at Discord. A general manual about open-source contributions can be found here.

Raised a PR @hendrikebbers


[Codespaces] flask application not getting port forwarded

Does this issue occur when all extensions are disabled?: Yes/No

VS Code Version: Code space VS code
OS Version: Codespaces

Steps to Reproduce:

Below is the .devcontainer/devcontainer.json file for initializing docker in codespace:

// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/python
{
	"name": "Python 3",
	// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
	"image": "mcr.microsoft.com/devcontainers/python:0-3.11-bullseye",

	// Features to add to the dev container. More info: https://containers.dev/features.
	// "features": {},

	// Use 'forwardPorts' to make a list of ports inside the container available locally.
	// "forwardPorts": [],

	// Configure tool-specific properties.
	"customizations": {
		// Configure properties specific to VS Code.
		"vscode": {
			"settings": {},
			"extensions": [
				"streetsidesoftware.code-spell-checker",
				"ms-python.python"
			]
		}
	},

	// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
	// "remoteUser": "root"
	//"postCreateCommand": "pip3 install -r requirements.txt",

	"waitFor": "onCreateCommand",
	"updateContentCommand": "pip install -r requirements.txt",
	"postCreateCommand": "",
	"postAttachCommand": {
		"server": "uvicorn main:app --host <IP_ADDRESS> --port 3000 --reload"
	},
	"portsAttributes": {
		"3000": {
		"label": "Application",
		"onAutoForward": "notify"
		}
	},

	"forwardPorts": [3000]
}

Code space is not automatically port forwarding or I'm not able to manually add the port forwarding.
I've tried with and without --host in postAttachCommand

@alexr00  any help here? much appreciated!

@AnveshMora since you have "forwardPorts": [3000] in your devcontainer.json I would expect Codespaces to forward the port when you connect to the Codespace. For that, I would recommend you report an issue over in https://github.com/community/community/discussions/categories/codespaces.
If you don't include the forwardPorts property then we should see that something is listening on 3000 and forward it. However, we don't forward ports that already have something listening on them at the time that VS  Code connects to the Codespace. I think that your postAttachCommand is happing a bit sooner than we expect and then we don't forward the port.
Since you do have portsAttributes configured we should still forward the port. I'll make a fix for this. It should be in a VS Code insiders build by the end of the week.


Support uploading native library .so files in App Center VSTS task like HockeyApp does #1178

Hi,
We team highly depend on App Center VSTS task(called: "App Center distribute") to make our build pipelines run well. But currently it CAN'T support uploading native library .so files. There is only an configurable entry for uploading Android mapping file:

It's blocking us to get real de-obfuscated traces. Please refer HockeyApp VSTS task(we were using it), they can well support it.

Any timeline for this?

This is not the same ask as #1160 , I am asking supporting uploading native lib.so in the VSTS task


There should be an option to disable UDP proxy

Since the --output-file flag was added to open-stream some use cases will not require the use of the proxy whatsoever. In fact, if a user opens two CLI instances on the same machine with default params, one of the CLIs will crash since the default port will be in use.
Proposal is to:

Add none or off option to the --proxy flag
Default to UDP in order to not break compatibility
When none, simply do not start the proxy
If none, ignore all port params

Closed in #137


add hf integration

Hello @Rishit-dagli and team,
Congratulations on this amazing work—the model looks incredible! 🎉 wow!!
You should consider making an native implementation of the see2sound * to HF hub 🤗. It can easily be made compatible natively with the Hugging Face Transformers/Diffusers library.
Will do the work - other folks from HF will be available to help.
From your behalf if any questions arise during the process we can open an issue :)
Soon, it will be easily usable with just one line of code. And nice gradio demo on spaces!!
Best regards,
Jade

hey Jade,
i had a few questions:

do you think this best belongs in transformers or diffusers, i would assume diffusers?
what do you think would be a good first step, should i make an issue on diffusers repository for a new pipeline?
we also have a hf space: https://huggingface.co/spaces/rishitdagli/see-2-sound, some other folks from huggingface helped us with this.

sent on mail!


watch logs

Hi there, I'd like to watch Job logs, and stream them through a pubsub mechanism.
I'm not sure I should accomplish it through client.Batch().Jobs(cfg.KubeNamespace).Watch(options) or using informers.
Any advices are welcome,  or even better, examples.
By the way, I'm not sure this is the right place to post such question, feel free to delete it, if it shouldn't be there

you can do that by getting pod logs. c.Pods().GetLogs


Error when manually calling generated sign_in_with_token function in User resource

AshAuthentication version: 4.2.7
Ash version: 3.4.39
In my app I've set up AshAuthentication with the new igniters, and added the password strategy:
$ mix igniter.install ash_authentication
$ mix ash_authentication.add_strategy password

This added the following authentication block in my new User resource:
  authentication do
    tokens do
      enabled? true
      token_resource Tunez.Accounts.Token
      signing_secret Tunez.Secrets
    end

    strategies do
      password :password do
        identity_field :email

        resettable do
          sender Tunez.Accounts.User.Senders.SendPasswordResetEmail
        end
      end
    end

    add_ons do
      confirmation :confirm_new_user do
        monitor_fields [:email]
        confirm_on_create? true
        confirm_on_update? false
        sender Tunez.Accounts.User.Senders.SendNewUserConfirmationEmail
      end
    end
  end

And an action like this:
    read :sign_in_with_token do
      description "Attempt to sign in using a short-lived sign in token."
      get? true

      argument :token, :string do
        description "The short-lived sign in token."
        allow_nil? false
        sensitive? true
      end

      prepare AshAuthentication.Strategy.Password.SignInWithTokenPreparation

      metadata :token, :string do
        description "A JWT that can be used to authenticate the user."
        allow_nil? false
      end
    end

I'm attempting to call this action in iex, but it appears to error with any value I pass in as the token argument.
iex(5)> # user is a user record returned from `sign_in_with_password`
...(5)> user.__metadata__.token
"eyJhbGciOi..."
iex(6)> Tunez.Accounts.User
Tunez.Accounts.User
iex(7)> |> Ash.Query.for_read(:sign_in_with_token, %{token: user.__metadata__.token})
** (MatchError) no match of right hand side value: :error
    (ash_authentication 4.2.7) lib/ash_authentication/strategies/password/sign_in_with_token_preparation.ex:17: AshAuthentication.Strategy.Password.SignInWithTokenPreparation.prepare/3
    (ash 3.4.39) lib/ash/query/query.ex:756: anonymous fn/6 in Ash.Query.run_preparations/6
    (elixir 1.17.3) lib/enum.ex:4858: Enumerable.List.reduce/3
    (elixir 1.17.3) lib/enum.ex:2585: Enum.reduce_while/3
    (ash 3.4.39) lib/ash/query/query.ex:577: Ash.Query.for_read/4
    iex:7: (file)
iex(7)> Ash.Query.for_read(Tunez.Accounts.User, :sign_in_with_token, %{token: "any token"})
** (MatchError) no match of right hand side value: :error
    (ash_authentication 4.2.7) lib/ash_authentication/strategies/password/sign_in_with_token_preparation.ex:17: AshAuthentication.Strategy.Password.SignInWithTokenPreparation.prepare/3
    (ash 3.4.39) lib/ash/query/query.ex:756: anonymous fn/6 in Ash.Query.run_preparations/6
    (elixir 1.17.3) lib/enum.ex:4858: Enumerable.List.reduce/3
    (elixir 1.17.3) lib/enum.ex:2585: Enum.reduce_while/3
    (ash 3.4.39) lib/ash/query/query.ex:577: Ash.Query.for_read/4
    iex:7: (file)

Am I missing something in how this action needs to be called? AA can't seem to figure out that I have the password strategy configured and that's what strategy it should be using to verify the token?

🤔 that is pretty strange, from what I can tell we are properly connecting the action name to the strategy, so that line should not return :error. With that said, there are a fair few places in this codebase that are doing that happy-path pattern matching that really need to be adjusted to raise some kind of semantic error. Even if it blows up, it should blow up with some kind of error that says...anything :)

Ah, actually I think I see the issue.

This should be fixed in main. Please LMK if not.

I don't get the error anymore, which it good!
Now I get an actual Ash error when trying to use a valid token:
iex(15)> Ash.Query.for_read(Tunez.Accounts.User, :sign_in_with_token, %{token: user.__metadata__.token})
#Ash.Query<resource: Tunez.Accounts.User, arguments: %{token: "**redacted**"}>
iex(16)> |> Ash.read(authorize?: false)
{:error,
 %Ash.Error.Forbidden{
   bread_crumbs: ["Error returned from: Tunez.Accounts.User.sign_in_with_token"],
   query: "#Query<>",
   errors: [
     %AshAuthentication.Errors.AuthenticationFailed{
       caused_by: %{
         message: "The token purpose is not valid",
         ...

I might be misunderstanding how the flow is supposed to work. My understanding is that the user initially signs in with sign_in_with_password like on a login form, they get the record back with the token, and then that token is stored in the browser/client and sent with subsequent requests, which would use sign_in_with_token to authenticate?
I think I remember a discussion about "exchange a short lived token for a long lived token", so am I not supposed to be calling this action? Is it called automatically behind the scenes on sign-in, and the returned token is already a long-lived token so it only gets validated on subsequent requests?

Correct, this is the action used for the "short lived sign in token", which is generated when a user signs in over liveview. We want to validate the username and password in the liveview for instant feedback w/o a page reload, but we can't do that and then redirect with user/pass to an endpoint because we don't want to put their credentials an the query string of a get request.
There is a different action for what you're looking to do. I forget what it is and I'm on mobile, so I will check and comment when I find it.

Yeah I think for now I just want to validate the token, which I can do with AshAuthentication.Jwt.verify. The rest will come later when AAP gets hooked up.

Actually, I'm going to bed :) @jimsynz can elaborate more but IIRC the flow is to extract the subject from the token and then there is a function somewhere like "subject_to_user" that gets that user. Since tokens are verified, we don't need to really "do" anything except look up the user they identify (unlike with the sign in tokens where we want to exchange the token for a regular one).


Bug: Japanese typing conversion issue

Unlike English, Japanese requires conversion from Hiragana to Kanji and this conversion is often triggered by the enter key. Thus, while typing messages in Japanese, handleKeyDown needs to consider whether the user is still composing text. Current implementation sends the text right after the enter key is pressed. Instead, messages should be only sent after the text is fully composed.

Merged.

@mckaywrigley @gijigae Thank you for fixing this bug, but the same bug happens when I typing japanese text in other text box (e.g. create prompt or preset) . I would like you to apply this changes to all text boxes.

@ozora-ogino Thank you so much for the kind words and suggestion. Made necessary changes and currntly running a few tests. If everything goes well, I'll most likely create a PR tomorrow. Stay tuned.

@gijigae Thank you so much🙏

@ozora-ogino Created #1203 to cover workflows for Prompts. Will raise another PR to fix other workflows.


Proposal: Add configurable Server Guild attribute to enable the coordinator to make replication decisions that spread replicants across operator defined guilds

Note: I use the term "Guild" throughout this proposal. It is an arbitrary name that I chose for the Historical grouping construct that I am proposing. A Guild would be a group of Historical servers. All servers who do not specify a Guild in runtime.properties would be assigned to a default Guild.
Motivation
As of now, the only guarantee for segment loading is that no two replicants will be loaded onto the same Historical Server. You can also use tiering to load a specific number of replicants onto specified tiers for a datasource via load rules. As an operator of a large cluster, I want to maximize segment availability and optimize maintainability of my cluster. To achieve goal number one, I want my cluster to do its best to load replicants to groups of servers that have the lowest likelihood of going down simultaneously causing loss of segment availability. To achieve goal number two, I want my cluster to do its best to load replicants to groups of servers that allow me to perform maintenance (such as service restarts, OS patching) on groups of servers at one time without worrying about losing segment availability while doing so. Both of these goals can be achieved by grouping historical servers and making the coordination algorithm aware of the groups. The coordination algorithm can then use the groups as input into its decision making on where to load segments on the cluster, making best effort to load replicants across 2+ groups. If this is done, I can, as an operator, set up my groupings to meet my goals.
Proposed changes
I have a POC going in my fork of Druid. The code can be viewed here.
Configs
runtime.properties:

druid.server.guild The STRING guild name assigned to a server. Default value applied if not specified.
druid.coordinator.guildReplication.on The BOOLEAN flag telling the coordinator if it should use server guilds as a part of its coordination logic. Default value is false.

coordinator dynamic config:

guildReplicaitonMaxPercentOfSegmentsToMove What % of segments moved during BalanceSegments duty should be dedicated to moving segments that are not meeting guild replication threshold of 2? This is applied against what is left over after moving segments off of decommissioning servers, if there are any.

SegmentReplicantLookup
The coordinator currently builds this object each time the HistoricalManagementDuties run. Prior to this proposal, the object would contain two main data structures:
Table<SegmentId, String, Integer> segmentsInCluster - replicant count for each segment by tier for segments served by the cluster.
Table<SegmentId, String, Integer> loadingSegments - replicant count for each segment by tier for segments being loaded by the cluster.
My proposal adds a third data structure that is specific to guild replication:
Table<SegmentId, String, Integer> historicalGuildDistribution - replicant count for each segment by guild.
This new structure is only created if guild replication is enabled. It is not worth the resources if we are not going to use it! The structure is used for quick lookup to get guild replication state for a given segment. It will be used by coordinator duties when making decisions on loading/moving/dropping segments.
LoadRule
When Assigning replicas, use the changes in SegmentReplicantLookup in order to split ServerHolders into groups of servers who are on a guild that is serving a replicant of the segment and servers who are on a guild that is not serving a replicant of the segment. If possible LoadRule will load replicants to the best scored server(s) from the guild(s) not serving a replicant. However, we always fallback to just loading the specified number of replicants even if replication across guilds cannot be achieved.
When picking replicants to drop, we will also split the ServerHolders in the same way. The segments will be dropped from decommissioning servers first, then from servers on guilds with > 1 replicant of the segment, then lastly from the remaining servers serving a replicant.
BalancerStrategy
Add a method to the interface. pickSegmentToMove(List<ServerHolder> serverHolders, Set<String> broadcastDataSources, DruidCoordinatorRuntimeParams params);
This new method is added so we have the SegmentReplicantLookup information needed to pick a segment who is not replicated across > 1 guild when balancing the cluster. It is needed because we introduce the dynamic config and associated balancing phase in BalanceSegments that prioritizes the balancing of segments who are not properly replicated across guilds. We need to only pick segments that meet the requirements. The existing pickSegmentToMove does not suffice.
RandomBalancerStrategy and CostBalancerStrategy add implementations.
ReservoirSegmentSampler
Adds a method for getting a SegmentHolder that is violator of the goal of being on > 1 guilds. This method needs to have access to the SegmentReplicantLookup in order to quickly look up replication state of segments it is possibly selecting. It returns the first violator that it finds or null if none is found.
BalanceSegments
The coordinator balancing duty gets a couple of changes. The first change is to the generic balancing that exists today. If guild replication is enabled, then we will perform the split of ServerHolders based on their guild replication status when looking for a server to move a segment to. Just as in LoadRule we will do our best to make the move to a server that improves or maintains the number of guilds that hold a replicant.
We also add a new phase of balancing segments. There is a dedicated move for segments off of decommissioning servers. An operator can also choose to add a dedicated move for segments that are not replicated on > 1 guild. They do this by editing the dynamic coordinator config that this proposal adds. This results in the coordinator moving a certain number of segments that are violating guild replication rules. It is an optional way for an operator to speed up the balancing of segments across guilds.
Rationale
There has been some feedback that this functionality should be folded into the tier construct that already exists. I tend to disagree with that idea for multiple reasons.

Tiers have been around for a long time and have become cornerstones of operator's deployments. It may not be easy or straightforward to re-purpose tiers to also work as generic replication groups. I fear we'd be creating a single monster that is hard to understand vs having two separate concepts split out into their own things (guilds vs tiers)
As written, tiers are explicit. I load N replicants onto Tier A, M onto Tier B, etc. Whereas guild replication is a generic best effort goal. I try to load the aggregate replicants across all tiers onto 2 or more guilds. We can't change tiers to be generic with loading to go across 2 or more tiers, because operators expect their load rules to be followed to a T. So we end up with competing goals that do not play nicely together. This ties back to my point that trying to adapt tiering to meet so many goals could create a confusing beast.
My motivating goal for uptime and maintainability may require a separate grouping outside of my existing tiering. Perhaps servers for my different tiers are mixed and matched within logical groupings that I would need to separate out in order to achieve my motivating goals. If my grouping for uptime and maintainability is in regards to physical racks. I could have my slow and fast servers racked on the same set of racks with a few of each form-factor on any given rack. This means I cannot achieve my same tiers for my speed tiering as well as my replication goals. I would need to further split each rack into tiers, which once again is getting complex and probably messing up performance by adding way too much isolation vs shared resources.

So now that adapting tiering is ruled out as far as I am concerned, what else could we do? I can't think of other solutions for the configurations that are as generic as my simple guild name assignment and boolean for the coordinator on whether or not to follow guild replication logic paths. But what about the implementation details using these configurations? It could certainly be argued that the cost of the new SegmentReplicantLookup data structure is too steep for large clusters. However, I fail to come up with a better solution in my head. When we are choosing servers to load/drop segments from, we need a quick way to look up details on where that segment is loaded. It seems logical that this facility would require this large structure in the replicant lookup.
With all this being said, I am open to improvements to my proposal. At the end of the day my motivating factors just need to be achieved. If there is a better way to achieve the simple goals required, I'm all for it.
Operational impact
This section should describe how the proposed changes will impact the operation of existing clusters. It should answer questions such as:
- Is anything going to be deprecated or removed by this change? How will we phase out old behavior?
Nothing is deprecated or removed.
- Is there a migration path that cluster operators need to be aware of?
To go from not using guild replication, to using guild replication, there will be a simple migration path. Operators will need to assign guilds to their historical servers and restart them. They will then have to flip the coordinator config to turn on guild replication. They may choose to use the coordinator dynamic config to speed up balancing based on guild replication if they so choose.
- Will there be any effect on the ability to do a rolling upgrade, or to do a rolling downgrade if an operator wants to switch back to a previous version?
Upgrading to the first version of druid that has guild replication in it will not require any special work. Upgrading to the default configs will keep guild replication off. If they choose to use guild replication, they can perform the migration steps after the upgrade. If they choose not to use guild replication, no action is needed! Downgrading would require a pre-step by an operator if they have already turned guild replication on. They would need to turn guild replication off on the coordinator by updating their config and restarting it. That way there will not be any issues with split versions across coordinator/historical during downgrade.
- Other
This change as proposed results in additional resource utilization by the Coordinator. Extra data structures are created in SegmentReplicantLookup that help make replicant loading decisions based on guild distribution of segments. This may require attention from operators as far as configuring their runtime environment for the coordinator.
The changed as proposed introduces a major change to the decision making process by the Coordinator. Enabling guild aware replication may result in replicant loading decisions that the coordinator would have previously considered sub-optimal. Loading replicants to different guilds to gain better uptime and maintainability standards could result in segment distribution skew that negatively impacts performance. It is a trade-off that an operator will need to carefully consider.
TODO (for completeness of this proposal)

I believe I still need to add logic for what to do when there is only 1 total replicant expected for a segment across all tiers. If this is true, then there really is not a reason to make guild related loading/balancing decisions for it since there is only ever 1 replicant. This one is tough to deal with. We'd have to dive into load rules for each segment we are evaluating for moving to take this into account during BalanceSegments
Evaluate need for integration tests
Evaluate possibility for simulation tool. Could we take a cluster snapshot and produce a simulated output of the cluster state once it is balanced for guild replication?

Test plan (optional)
Future work (optional)

Isn't this doable using multiple historical tiers ... e.g.
some historicals with druid.tier=A
some historicals with druid.tier=B
and then using tieredReplicants in the loadRule e.g.
  "tieredReplicants": {
      "A": 1,
      "B" : 1
  }

for a case where number of groups or racks = number of replicas desired, sure. But a large enterprise cluster will have 10s of racks and will not want a replica on every rack due to cost concerns. And trying to automatically generate load rules that properly balance datasources across those groups by selecting tiers would be burdensome and likely hard to do well.

for a case where number of groups or racks = number of replicas desired, sure. But a large enterprise cluster will have 10s of racks and will not want a replica on every rack due to cost concerns.

that should be possible I think.
say, you have 4 racks/groups/tiers ... A, B, C, D
with config...
  "tieredReplicants": {
      "A": 1,
      "B" : 2
  }

number of replicants != number of tiers , and not every replica is on each tier.
or maybe I misunderstood above statement.

And trying to automatically generate load rules that properly balance datasources across those groups by selecting tiers would be burdensome and likely hard to do well.

Yeah, things could possibly be simplified but use of tiers does let you achieve the end goal. Just wanted to point out the existing alternative and also it would be nice if tier based grouping could be enhanced to take care of additional use cases or simplification instead of introducing another way of grouping historical.

@himanshug ,
Yes, use multiple tiers can be an alternative for some cases, but it doesn't work in the case that you want to keep the same number of active replicants regardless of how many racks/zones that you have in the cluster. For example, there will be only one active replicant if rack B goes down in your example.

that is true and I am suggesting if possible, that enhancement could be made to tier concept itself rather than introducing another thing to do the grouping
just for illustration, having the config be something like e.g.
"numReplicas": 3
"tiers": [ "A", "B", "C" ]     //optional and defaults to all/any available tiers

I see your point, but people (like me) may have gotten used to leverage tiers to split data into cold and hot groups and allocation different resources for cold and hot tiers. While rack awareness is a different concept which we want to make a tier more tolerant for rack/zone failures. I vote to use different configs/terms for introducing this feature.

In the case of cloud hosting, I generally think of "rack" corresponding to "availability-zone." My tiers and AZs will overlap in ways that don't make sense in the context of physical racks.
We are in the process of adding on-demand and spot tiers. I can specify the number of replicas for each tier to mitigate against the possibility of spot instances becoming unavailable. I also need to mitigate against AZ failure. Each AZ can contain a mix of on-demand and spot nodes. I would like the distribution of replicas to also be aware of AZ, even across the tiers.
I'm not sure that having a tier for each combination of AZ and pricing class will satisfy both conditions.
AWS Jargon: On-demand instances are the "normal" type. Spot instances are lower cost, but can be pre-empted by requests for on-demand instances.

@dougbyrne ,
"rack" doesn't have to be a physical rack here, in your case the value of druid.rack will be AZ.
The goal of this PR is to make sure Druid distributes replications between racks/AZs within a tier, so to achieve this, you should make sure every tier in your Druid cluster has historical nodes run in multiple AZs.
@capistrant correct me if I am wrong.

I would like the distribution of replicas to also be aware of AZ, even across the tiers.

Yes, that's what I said, in the context of cloud hosting, a "rack" is a AZ. I'm trying to illustrate why tiers do not satisfy my distribution requirements alone.
Lets I have tier 1 in rack A, rack B and rack C, and tier 2 also in racks A, B, and C. Then I configure tier 1 to have one 1 replica, and tier 2 to have 2 replicas. If my tier 1 replica was in rack A, and my tier 2 replicas were in racks A and B, that would not be acceptable to me. I should not have multiple replicas in the same rack when possible.
I'm not sure extending tiers will address this, as tiers and rack are different dimensions and can overlap.

hmm, sorry @dougbyrne , I'm not sure if I understood your concern.
In the example that you posted, tier 1 wouldn't be beneficial by the rack awareness proposal since you have only 1 replica in that tier, so anyway once you lose one rack, a portion of data will be unavailable until they are redistributed to other rack. But the data in tier 2 are supposed to be able to tolerate at least one zone failure by this proposal since the segment distribution will prioritize rack first, and if you configure tier 2 to have 3 replicas, then we would expect tier 2 is able to tolerate 2 zones being unavailable.

In my example, I'm loading the same data in both Tier 1 and Tier 2. I have a total of 3 replicas. The rack awareness needs to cross tier boundaries.

Ah, I see, may I ask one more question of your use case? What's the purpose to set up 2 tiers to serve the same data?

I have one tier running on On-Demand instances, another tier running on spot (preemptable) instances. I want to ensure that there is at least one replica for our hottest data that will not be preempted.

I see, would it be possible/acceptable to serve the data in the same tier, and use different AZs for on-demand and spot instances? So that you don't have to use multiple tiers to serve the same data and let Druid to replicate the segments to different AZs and make sure the cluster is able to tolerate AZ failures (assuming we have this rack awareness feature implemented and enabled)?

That would not be ideal. The availability of spot instances is different per AZ, so we want to have as many AZs available to our spot tier. We also need to have multiple AZs available in the on-demand tier to mitigate the possibility of a AZ failure.
I think you raise a good point that tiers are not the best way to solve this problem. Maybe instead of having just rack diversity, it should be more generic. Rack and Zone and Price Class are all dimensions you might want to diversify across.
Also, our load rules are a bit more complicated. The most recent data are in both the on-demand tier and the hot-spot tier. The nxt most recent data is only in that same hot-spot tier. The remaining data is loaded on a cold-spot tier. We also only want to have one replica in the on-demand tier, while we might have more in the spot tier.

@dougbyrne  @ArvinZheng @himanshug
Hi all. Sorry for not being active in the discussion last week. I have revisited my initial proposal and came up with a new POC branch that I think is better than the first attempt. code link here
I walked away from the use of the term "rack". For now I have used the term "guild".... but naming is not the issue at hand here, we can easily change that. At the end of the day, a guild is just a group. If an operator so chooses they can assign every historical to a guild and then tell the coordinator that guild replication is on. This means that the coordinator should make a best effort to load replicants onto guilds that are not already used whenever possible. However, if a replicant has to go onto a used guild, the coordinator will do this because having N replicants on one guild is better than N-1 replicants in the cluster when there are no unused guilds to place a segment. A guild can be anything. For my team, it will be a physical rack. For Doug, it may be an AZ or an AZ:price class combination.
I am not a very big fan of layering into this into tiering. Tiering as is seems so much more like a query routing/prioritization/isolation feature. I want my router/broker to make query choices based on my tiers. I do not want them to care about my guilds. A segment being on guild A vs guild Z means nothing in terms of which should be queried. It is just a way to help operators improve operational simplicity and uptime reliability. If we were going to roll this into tiering, I fear that we would create one very confusing beast rather than two separate and generally simple ideas.
My aforementioned link to my POC code still needs heavy testing and iteration to work out the kinks (I'm sure there are many). But I think it is a good anchor point to base future discussions on. I can take the time to update my base proposal with new details to this implementation if people think that is a good idea. Please let me know! In the meantime I will continue working on testing/validation. I really want to look into the balancer profiler and see what that is all about and if I can turn it into some type of simulation of a cluster at scale turning on guild awareness.

I haven't seen the code but from a quick read of comments above, I see that proposed new configuration would cover multiple segment distribution related use cases , so +1 on that.

I've updated the proposal to reflect the latest implementation I have used for my POC. Will be adding some more changes for testing this week I hope.

Has any progress been made on anything over the years or is it still impossible to appropriately redundantly balance data?

Is the tiering not sufficient for the use case you have? It won't solve for all scenarios but is good enough for many of them.

Has any progress been made on anything over the years or is it still impossible to appropriately redundantly balance data?

This has remained stalled, but I plan on picking up the effort again sometime this fall if it remains open


CSW 3.0

Support for CSW 3.0.

Note that we are also paving the way for the OGC API standards (see owslib.ogcapi for implementation so far).

Since implemented against OGC API - Records.


Date for generated markdown?

How do have a date for a given notion generated page/blog entry?
Maybe it could be a notion doc property? But what about overwrites? What then is the correct date?
Basically, I want my docu-notion blog entries to have the correct date, but I'm not sure the best way to do this.
Probably best is if docu-notion reads a date field, and prefixes the output with YYYY-MM-DD- as recommended by docusaurus.
Could a plugin rename the output files?

Yeah, maybe the date should be akin to the current support for a slug property? I'm not clear about your concern for overwrites.
I apologize, I know nothing of blogs and don't have time at the moment to look into features beyond what our group needs. If you do get totally stuck, let me know and when I can, I'll look at it.

Yeah, no need to apologize for anything, this piece of code is super useful to me, and requests or questions are completely optional to even answer. Gratitude for a useful tool.

What I need is a plugin to know the page id of whatever the context is. Currently, I see no mechanism to get the pageId anywhere in any of the plugins. Am I missing something?


Bot is sometimes closing unexpectly.

[ ] Sometimes because of the calendar crawler
[ ] Sometimes because of the IRC bot

Seems to be every day -_-

If I remember well @Pyrobolser had the same kind of problem. I think the IRC server is kicking the bot after inactivity.

There is no event firing from the IRC lib (no _on_disconnect and _on_kick) so i'm a bit confused. Even in debug, there is no special note coming from the bot. I will investigate, this should be something specific with the Twitch IRC server.

I think i found the event in the Twitch Irc doc, I just have to listen to it now...


sample doc not for publishing

Docs Build status updates of commit 7837e4b:
:warning: Validation status: warnings

File
Status
Preview URL
Details

docs-ref-conceptual/conceptual-tabs-examples.md
:warning:Warning
View
Details

docs-ref-conceptual/conceptual-tabs-examples.md

Line 2, Column 1: [Warning-title-missing] Missing required attribute: 'title'. Add a title string to show in search engine results.
Line 2, Column 1: [Warning-ms-prod-or-service-missing] One of the following attributes is required: 'ms.prod', 'ms.service'. Use ms.prod for on-premise products, or ms.service for cloud services.
Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit aaf0961:
:warning: Validation status: warnings

File
Status
Preview URL
Details

docs-ref-conceptual/conceptual-tabs-examples.md
:warning:Warning
View
Details

docs-ref-conceptual/conceptual-tabs-examples.md

Line 2, Column 1: [Warning-title-missing] Missing required attribute: 'title'. Add a title string to show in search engine results.
Line 2, Column 1: [Warning-ms-prod-or-service-missing] One of the following attributes is required: 'ms.prod', 'ms.service'. Use ms.prod for on-premise products, or ms.service for cloud services.
Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit aaf0961:
:warning: Validation status: warnings

File
Status
Preview URL
Details

docs-ref-conceptual/conceptual-tabs-examples.md
:warning:Warning
View
Details

docs-ref-conceptual/conceptual-tabs-examples.md

Line 2, Column 1: [Warning-title-missing] Missing required attribute: 'title'. Add a title string to show in search engine results.
Line 2, Column 1: [Warning-ms-prod-or-service-missing] One of the following attributes is required: 'ms.prod', 'ms.service'. Use ms.prod for on-premise products, or ms.service for cloud services.
Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit 88f27b3:
:warning: Validation status: warnings

File
Status
Preview URL
Details

docs-ref-conceptual/conceptual-tabs-examples.md
:warning:Warning
View
Details

docs-ref-conceptual/conceptual-tabs-examples.md

Line 2, Column 1: [Warning-title-missing] Missing required attribute: 'title'. Add a title string to show in search engine results.
Line 2, Column 1: [Warning-ms-prod-or-service-missing] One of the following attributes is required: 'ms.prod', 'ms.service'. Use ms.prod for on-premise products, or ms.service for cloud services.
Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit 0cbde16:
:warning: Validation status: warnings

File
Status
Preview URL
Details

docs-ref-conceptual/conceptual-tabs-examples.md
:warning:Warning
View
Details

docs-ref-conceptual/conceptual-tabs-examples2.md
:warning:Warning
View
Details

docs-ref-conceptual/conceptual-tabs-examples.md

Line 2, Column 1: [Warning-title-missing] Missing required attribute: 'title'. Add a title string to show in search engine results.
Line 2, Column 1: [Warning-ms-prod-or-service-missing] One of the following attributes is required: 'ms.prod', 'ms.service'. Use ms.prod for on-premise products, or ms.service for cloud services.
Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.
Line 7, Column 1: [Suggestion-duplicate-h1s] H1 'Create a VM using the Azure CLI' is duplicated with other articles: 'docs-ref-conceptual/conceptual-tabs-examples.md(7,1), docs-ref-conceptual/conceptual-tabs-examples2.md(7,1)'. First level headings must be unique within a docset. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 7, Column 1: [Suggestion-duplicate-titles] Title 'Create a VM using the Azure CLI' is duplicated in: 'docs-ref-conceptual/conceptual-tabs-examples.md(7,1), docs-ref-conceptual/conceptual-tabs-examples2.md(7,1)'. Titles must be unique within a docset.

docs-ref-conceptual/conceptual-tabs-examples2.md

Line 2, Column 1: [Warning-title-missing] Missing required attribute: 'title'. Add a title string to show in search engine results.
Line 2, Column 1: [Warning-ms-prod-or-service-missing] One of the following attributes is required: 'ms.prod', 'ms.service'. Use ms.prod for on-premise products, or ms.service for cloud services.
Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.
Line 7, Column 1: [Suggestion-duplicate-h1s] H1 'Create a VM using the Azure CLI' is duplicated with other articles: 'docs-ref-conceptual/conceptual-tabs-examples.md(7,1), docs-ref-conceptual/conceptual-tabs-examples2.md(7,1)'. First level headings must be unique within a docset. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 7, Column 1: [Suggestion-duplicate-titles] Title 'Create a VM using the Azure CLI' is duplicated in: 'docs-ref-conceptual/conceptual-tabs-examples.md(7,1), docs-ref-conceptual/conceptual-tabs-examples2.md(7,1)'. Titles must be unique within a docset.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit 02d41de:
:warning: Validation status: warnings

File
Status
Preview URL
Details

docs-ref-conceptual/conceptual-tabs-examples.md
:warning:Warning
View
Details

docs-ref-conceptual/conceptual-tabs-examples2.md
:warning:Warning
View
Details

docs-ref-conceptual/conceptual-tabs-examples.md

Line 2, Column 1: [Warning-title-missing] Missing required attribute: 'title'. Add a title string to show in search engine results.
Line 2, Column 1: [Warning-ms-prod-or-service-missing] One of the following attributes is required: 'ms.prod', 'ms.service'. Use ms.prod for on-premise products, or ms.service for cloud services.
Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.
Line 7, Column 1: [Suggestion-duplicate-h1s] H1 'Create a VM using the Azure CLI' is duplicated with other articles: 'docs-ref-conceptual/conceptual-tabs-examples.md(7,1), docs-ref-conceptual/conceptual-tabs-examples2.md(7,1)'. First level headings must be unique within a docset. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 7, Column 1: [Suggestion-duplicate-titles] Title 'Create a VM using the Azure CLI' is duplicated in: 'docs-ref-conceptual/conceptual-tabs-examples.md(7,1), docs-ref-conceptual/conceptual-tabs-examples2.md(7,1)'. Titles must be unique within a docset.

docs-ref-conceptual/conceptual-tabs-examples2.md

Line 2, Column 1: [Warning-title-missing] Missing required attribute: 'title'. Add a title string to show in search engine results.
Line 2, Column 1: [Warning-ms-prod-or-service-missing] One of the following attributes is required: 'ms.prod', 'ms.service'. Use ms.prod for on-premise products, or ms.service for cloud services.
Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.
Line 7, Column 1: [Suggestion-duplicate-h1s] H1 'Create a VM using the Azure CLI' is duplicated with other articles: 'docs-ref-conceptual/conceptual-tabs-examples.md(7,1), docs-ref-conceptual/conceptual-tabs-examples2.md(7,1)'. First level headings must be unique within a docset. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 7, Column 1: [Suggestion-duplicate-titles] Title 'Create a VM using the Azure CLI' is duplicated in: 'docs-ref-conceptual/conceptual-tabs-examples.md(7,1), docs-ref-conceptual/conceptual-tabs-examples2.md(7,1)'. Titles must be unique within a docset.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

this was a demo PR that was not intended for publishing.  closing PR.


EbpfNetsh code should have CI/CD tests

EbpfNetsh code should have tests that run in CI/CD pipeline, preferably able to run on the development machine (i.e. no need for real driver loaded/running).

Need to figure out how to test stdout output from catch framework.  Is there an example somewhere?

https://stackoverflow.com/questions/4191089/how-to-unit-test-function-writing-to-stdout-stdcout may be useful information


[turborepo] packageExtensions reorder causes checksum error

What version of Turborepo are you using?
1.10.7
What package manager are you using / does the bug impact?
pnpm
What operating system are you using?
Mac
Describe the Bug
If turbo rewrites the root package.json as part of the prune operation it doesn't respect the order of the packageExtensions, which causes a checksum failure when installing with a frozen lockfile.
We have a monorepo with packageExtensions set in the root package.json:
		"packageExtensions": {
			"@reach/skip-nav": {
				"peerDependencies": {
					"@types/react": "*"
				}
			},
			"@reach/polymorphic": {
				"peerDependencies": {
					"@types/react": "*"
				}
			}
		},

Note the (non-alphabetical) order. The pnpm-lock.yaml file has the following checksum calculated: packageExtensionsChecksum: de7edee8e04c1ce0d1c3be75d9979308
When using turbo prune the new root package.json file it generates writes these in alphabetical order:
    "packageExtensions": {
      "@reach/polymorphic": {
        "peerDependencies": {
          "@types/react": "*"
        }
      },
      "@reach/skip-nav": {
        "peerDependencies": {
          "@types/react": "*"
        }
      }
    },

The checksum in the newly generated pnpm-lock.yaml has remained the same, so when now running pnpm install --frozen-lockfile on the pruned output the following error will show:
 ERR_PNPM_LOCKFILE_CONFIG_MISMATCH  Cannot proceed with the frozen installation. The current "packageExtensionsChecksum" configuration doesn't match the value found in the lockfile

Expected Behavior
Either generates a correct checksum for the changes made, or leaves the packageExtensions order as-is.
To Reproduce
A repro is available at https://github.com/gerbyzation/pnpm-package-extension-checksum-error-repro
pnpm exec turbo prune --scope lib-a
cd out
pnpm install --frozen-lockfile

Reproduction Repo
https://github.com/gerbyzation/pnpm-package-extension-checksum-error-repro

Thanks for the repro. Once #5531 lands we'll have a better path forward to handle this.
In the meantime, could you reorder the packageExtensions field to be alphabetical and regenerate pnpm-lock.yaml before attempting to prune? I realize this isn't ideal, but it should unblock you.

Yes we're already been doing that in the meantime. Thanks for looking into this!

Following the issue you filed with  PNPM they've made some changes and going forward will calculate the checksum order-independent: https://github.com/pnpm/pnpm/pull/6839.
Unless we're concerned about this issue for older versions of PNPM this can probably be closed?

Once a pnpm release with https://github.com/pnpm/pnpm/pull/6839 is released the issue should be resolved. Will keep the issue open until I can suggest a specific version as a fix.

For anyone who encounters this issue, upgrading to<EMAIL_ADDRESS>will mitigate it as packageExtensionsChecksum will no longer depend on the ordering of packageExtensions


Add height argument on param.ListSelector

It would be good to be able to set the height of the param.ListSelector, like in the example below.
class Example(param.Parameterized):

    test = param.ListSelector(default=['a'], objects=['a', 'b', 'c', 'd', 'e', 'f'], height=10)

    @param.depends("test")
    def view(self):
        return self.test

example = Example()
pn.Row(example.param, example.view)

Param is not a UI framework so this will never happen. What we can support is providing additional hints for the widget creation via the widgets keyword on the Param pane, so I can imagine something like this:
pn.panel(example.param, widgets={'test': {'size': 10}})

Hey @philippjfr, do you have any hint where I can start to implement this?


dat pull  doesn't quit upon completion

Currently, dat pull <link> does not quit upon completion, despite the documentation saying it should. It stays in sync mode until manual abort and @mafintosh confirmed it was not a wontfix, so I am posting it as an issue.

update dat & exit

At the time of posting I'm running v13.9.2.
Let me know if you need anything else from my end (or testing of a fix!)

Thanks, I'll check it out.
It may be not exiting if you run pull and nothing has changed. But it should tell you that and exit regardless.

+1 for this. I'm building a dat gateway that currently has to delete the entire dat archive before it's opened in order to guarantee users don't get stuck on opening a dat archive that doesn't have an update.


tmux error on ubuntu

Hi @ostrokach, I installed tmux using the bioconda recipe on an Ubuntu 14.04 machine, but got the following error when I tried running it:
tmux: symbol lookup error: /lib/x86_64-linux-gnu/libncurses.so.5: undefined symbol: _nc_putchar```

Do we need to add an updated libncurses to the repo?

Hmmm, it seems that tmux got built using ncurses-5.9-4 from the R channel.
Can you install that version of ncurses and see it that makes it work (conda update ncurses -c r)?

Indeed, that makes it work!

Ah, I just realized something -- the problem is actually not that the build version isn't explicitly stated, it's that in order to fetch the "correct" ncurses from the r channel instead of the default ncurses, you need to have previously done conda config --add channels r for your local conda (which I haven't done). It seems like the channel should be something specified in the meta.yaml file though, but unfortunately isn't. Until conda offers specified channels in meta.yaml, we should at least state in the README you should run conda config --add channels r; conda config --add channels bioconda to get bioconda to install packages properly.

Yeah, I agree that conda config --add channels r; conda config --add channels bioconda should be stated somewhere in the README.
I also think it's a bug that the r channel and the defaults channel have the same package with different versions. If a packages build using the r version of ncurses doesn't work with the defaults version of ncurses, another package built using the defaults version may not  the r version...

I believe the the config --add commands are in the user manual, but are currently just recommendations; they might actually be required to build some packages (like tmux).
It seems like a fundamental problem with conda that you can't specify channels in the recipes. For some of the more popular packages, there are like 20 different versions of them on anaconda.org so depending on the user's .condarc you could be fetching any one of them. It looks like there's an issue here: conda/conda/#988 that has been open for a while.

Isn't this very similar to packages built against a particular Python or numpy version. Conda somehow adds the versions to the build string and properly reports conflicts. This mechanism must be accessible somehow. Maybe there is a simple annotation in the meta yaml for this. I would imagine something like
requirements:
  build:
    - ncurses
  run:
    - ncurses # [lock]

would be useful...

We are pinning versions for ncurses now. I hope this is fixed. Please feel free to reopen.


Workbench "import example dialog": Embed stock example repositories

Introduce "replaceIfExists" option to allow starting with a fresh git repository

Required by https://github.com/droolsjbpm/kie-wb-common/pull/622.

@mcimbora Hi.. is this "good to" go? I don't think we need wait for the kie-wb-common PR to be ready?

@manstis +1 this is ready to go in.


chore: go-demo-6 to 2.0.2

chore: Promote go-demo-6 to version 2.0.2

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approvers:
If they are not already assigned, you can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Seems incompatible with HA 2024.11.0b3

Logger: homeassistant.util.package
Source: util/package.py:152
First occurred: 13:06:51 (6 occurrences)
Last logged: 13:07:49
Unable to install package googlewifi==0.0.21: × No solution found when resolving dependencies: ╰─▶ Because ghome-foyer-api==1.0.0 depends on protobuf>=4.21.12,<5.0.0 and protobuf==5.28.3, we can conclude that ghome-foyer-api==1.0.0 cannot be used. And because only ghome-foyer-api==1.0.0 is available, we can conclude that all versions of ghome-foyer-api cannot be used. And because googlewifi==0.0.21 depends on ghome-foyer-api and you require googlewifi==0.0.21, we can conclude that your requirements are unsatisfiable.
Unable to install package glocaltokens==0.7.1: × No solution found when resolving dependencies: ╰─▶ Because ghome-foyer-api==1.0.0 depends on protobuf>=4.21.12,<5.0.0 and protobuf==5.28.3, we can conclude that ghome-foyer-api==1.0.0 cannot be used. And because only ghome-foyer-api==1.0.0 is available, we can conclude that all versions of ghome-foyer-api cannot be used. And because glocaltokens==0.7.1 depends on ghome-foyer-api and you require glocaltokens==0.7.1, we can conclude that your requirements are unsatisfiable.

Looks like this may be the end of the line for this integration until somebody has time to rewrite it using oath. New users have not been able to install it for some time, so I guess this will be the end for everyone.

Nice this was resolved:
https://github.com/KapJI/ghome-foyer-api/pull/124
and I can confirm it works now.


Solve the bottom-of-the-page bug

The thing where you can't get to the bottom item of the ToC if there's not enough content:

Ideas:

Add a page-tall footer with a gigantic picture of a cat
Adjust the distance from the top that the 'current' item has as the page scrolls
Something else crazy and magical?

This wouldn't be a problem in real-world use, I think — do we expect people will publish API docs that are less than a screen of text, yet use slate to do that?

@ryw well, only the very last section of the document would have to be less than the entire page, which is something I see somewhat often.

Would love to see a fix to this problem. Totally agree that it is encountered in real-world use.

Got it - working on our slate docs site for http://astronomer.io over the next week or two, I'm happy to have a look at this, give back to a cool project ;)

@ryw :smile: Thanks for offering to help! Just as a warning, right now in the v2 branch that I'm working in, the table of contents is pretty broken (since I'm removing our Tocify dependency). But feel free to make PRs to that branch if you find anything that works well!

Just thought I'd pipe up with some input/another case (I may be wrong, but I believe I am experiencing this issue on my slate docs pages).
Steps to reproduce:

Visit http://lfex.github.io/lhc/current/
Click on link towards the bottom of the nav (do not click the last one, though). For instance, click "Previous Versions"
Observe that "Backends -> Selecting Backends" is actually highlighted, not "Previous Versions"

Steps to get "Previous Versions" to highlight when selected:

Refresh page
Click the last item in the nav menu
Click "Previous Versions" -- it should now be highlighted

Sometimes this won't work, and you'll have to click one of the last items in the nav menu a few times before the bottom links in the nav start highlighting correctly.

An addition of a footer would be nice. See how readme.io does this https://sample-threes.readme.io/

Fixed in the dev branch with the new table of contents! 😸


Bus NACK?

For V0, I'm contemplating the addition of a bus NACK to indicate that packet reception has failed by one or more devices.
The specific case I'm thinking about is when two devices transmit at the same time:

In the case of UART hardware, some hardware modules may detect the condition when two (or more) devices are driving the bus, and some may not. For devices that are bit-banging and not using UART hardware, I don't think they will be able to detect this condition at all.
The big implication of this decision is to decide whether the bus is lossy or if some reliability guarantees are provided: if a device doesn't receive a NACK on the bus, they can assume that the packet was received by all devices.
Thoughts?

I don't think you can assume everyone got a packet of there is no NACK. Device might have blocked irqs for too long etc. Also if one device is malfunctioning it is easier to accidently stop the entire network with this. I could easily see low speed devices NACKing all high speed packets.

agreed, sound like a bad idea to have a bus nack.


What are the requirements for a script passed to the compilers option?

I would like to pass a JSX preprocessor to Mocha: mocha --compilers js:./preprocessor.js. I haven't been able to find any documentation about writing Mocha compilers, so I just tried the most intuitive thing I could think of, in ./preprocessor.js:
var ReactTools = require('react-tools');

module.exports =  function(src) {
	return ReactTools.transform(src);
}

I was hoping to get an error message that might lead me a step forward, but it looks like the compilers option was simply ignored.
Next attempt: Imitate the Coffeescript compiler, because it looks like that is working nicely for other people. Since the command for compiling Coffeescript is mocha --compilers coffee:coffee-script/register, I took a look at this crazy require patcher thing. It looks like a Mocha expects the compiler to patch require, but then the actual compilation step is obscured in the example by some process fork operation and by my lack of experience with Coffeescript in general. I am not understanding yet.
Third attempt: There is a 6to5 compiler with a register module written in a more familliar syntax, and it does not fork out to something else. It looks like the idea is to set require.extensions['jsx'] = preprocess where preprocess works like function(m, filename) -> compiledJS. I am so close! But for the life of me, I can't figure out what the m parameter is, and I feel like it is long past time to ask for help.
TL;DR How do I create a Mocha compiler from a function compile(src) -> output?

@d4goxn That was exactly what I was looking for. Thank you!

I seek exactly this! Thank you for @d4goxn 's report.


sys.exit(0)  is a false error

sys.exit(0) can be used to indicate successful completion, in contrast to, for example, sys.exit(1)
Spyder 2.3.2 shows this an error (see attached screenshot)

But the error is not reported by our code, so I don't understand where our error is.

Maybe this is another case where Spyder could try to catch an exception thrown by exit, as in issue #1974?

@jondo I had problem with kernel quitting but it was not caused by sys.exit.
This helped me:
app.aboutToQuit.connect(app.deleteLater)

For details please see: #1558

@kandel3, what is the expected behavior for Spyder in this case?

sys.exit(0) should not display an error message. I don't like the red text and Traceback.

This is not an error generated by Spyder (as can be clearly seen in your screenshot).
To run this code without errors, you need to press F6 and select
Execute in an external System terminal

There sys.exit(0) will have the effect you expect.


Fix disconnected computational graph

Presently, neigh_nodes are sampled twice (once on Line 74 and a second time when query_func is invoked on Line 79), this results in a disconnected graph.
Before this change:
>>> numpy.array_equal(context['encoder']['node_feats']['neighbor_feats'], context['encoder']['neighbor_feats']['node_feats'])
False

After this change:
>>> numpy.array_equal(context['encoder']['node_feats']['neighbor_feats'], context['encoder']['neighbor_feats']['node_feats'])
True

Thanks, I'll fix the linter issue and add unit test.

Fixed pre-commit/linter issues and checked-in unit test to check connectedness of computation graph.


Revisit data model in examples

We should make the data model in examples more efficient.
Related conversation in the liquidity pool example for more information - https://github.com/stellar/soroban-examples/pull/206#discussion_r1101928600.

I think we have a plenty of various data model examples now, so this can be closed.


Amended QueryById to permit properties to be excluded

See issue #179 - added Where clause to permit user to add a
non-Salesforce property to entity using IgnoreDataMemberAttribute
This allows custom properties to be added to a data class that will not be queried by the ForceClient.

Thanks for the addition!


[Feature]: Output to BIDS

What would you like to see added to NeuroConv?
Would you be interested in having neuroconv output BIDS-formatted NWB files? NWB is already supported as a format by BIDS.
Is your feature request related to a problem?
No response
Do you have any interest in helping implement the feature?
Yes.
Code of Conduct

[X] I agree to follow this project's Code of Conduct
[X] Have you ensured this bug was not already reported?

How do you mean? Like a 'dandi organize' helper function to name files in folder in a particular way?
Are there existing tools/libraries for that so we don't have to be the ones to maintain it (again, like dandi organize)

Yes, dandi organize was the original idea, but now that I see the first draft in action, it seems like a strange workflow.
Basically DANDI is just a user of NWB and BIDS, not a provider of NWB/BIDS tools (nwbinspector and bidsschematools are also not part of DANDI), so why then would BIDS formatting of NWB files be contingent on DANDI?
By analogy to e.g. MRI workflows, usually -to-NIfTI converters offer the capability to either create BIDS-NIfTI, or just output NIfTI files with whatever names. In the case of NWB, the top-level conversion package is neuroconv, so it would make a lot of sense to offer the option for BIDS-formattable output in addition to just a user-specified string for the file.
Since it's still early enough I could move the feature PR from DANDI to here. The up-side is that neuroconv could then advertise that it can comply with BIDS.

I agree that separation of concerns is a good idea - but passing the buck to NeuroConv specifically may not be the best location for all that logic
Input to NeuroConv is source data from proprietary formats (files/folders in structure of those formats) and output, by default, NWB files at whatever paths with whatever structure the user specifies. The basic recommendation (and tests) is to output as a flat collection of uniquely named NWB files to make it easy for dandi organize to be run on the collection
I'd be happy to add convenience wrappers/options/instructions here to make it easy for someone to take their flat list of NWB files created through NeuroConv and organize them into DANDI or BIDS (likely as an extra option to the automatic_dandi_upload function, which is a light wrapper around DANDI API), but I wouldn't want the thorough documentation, testing, etc. of that specific functionality to live here
I would advocate for the creation of a specific standalone package for file organization strategies that can be used as a modular step in the workflow after creation of the NWB files and before DANDI upload. It's own dependency stack would also benefit tremendously from that isolation away from NeuroConv (e.g., what about people making their own files without NeuroConv?)

the creation of a specific standalone package

There is already a package which specifically deals with the sort of data we're looking to reformat, https://github.com/INT-NIT/BEP032tools/ , we could indeed extend that.

I'd be happy to add convenience wrappers/options/instructions here to make it easy for someone to take their flat list of NWB files created through NeuroConv and organize them into DANDI or BIDS

This would be a good solution if you really don't want BIDS-reformatting functionality mixed in your code.

This would be a good solution if you really don't want BIDS-reformatting functionality mixed in your code.

To be clear, I'd be happy to include the functionality; I just don't want to be the one responsible for maintaining the code and keeping it up to date with BIDS standard. We have enough to maintain here as it is lol
Would appreciate a minimal example of how to call/use whatever function you're planning to extend whenever it's available

@CodyCBakerPhD ok, I have a draft package for this → https://github.com/con/nwb2bids
I'd like to set up a test for it, and I'd like to have a “blank” NWB file (with all the metadata, but lengt-0 data arrays) to test this on... but I can't seem to generate one from my data:
[deco]/tmp ❱ cat lala.py
import numpy as np
from pynwb import NWBHDF5IO

in_file = '/home/chymera/.local/share/mvmnda/nwbdata/ses-20231120114021_sub-M388_2024-02-28T04:33:14.442236.nwb'
out_file = '/tmp/mimio/lala.nwb'

with NWBHDF5IO(in_file, 'r') as io:
    nwbfile = io.read()

for acq_name, acq_data in nwbfile.acquisition.items():
    if 'data' in acq_data.fields:
        empty_acq_data = nwbfile.acquisition[acq_name].copy()
        empty_acq_data.set_data(np.empty(shape=(0,), dtype=acq_data.data.dtype))
        nwbfile.acquisition[acq_name] = empty_acq_data

with NWBHDF5IO(out_file, 'w') as io:
    io.write(nwbfile)
[deco]/tmp ❱ python lala.py
Traceback (most recent call last):
  File "/tmp/lala.py", line 12, in <module>
    empty_acq_data = nwbfile.acquisition[acq_name].copy()
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'ElectricalSeries' object has no attribute 'copy'

Do you maybe have some empty example data files somewhere?

Is there any way to take a file and remove the “data” from it?

I would not recommend this approach
It would also be more explicit/readable to specify the metadata on the test files rather than inheriting from an implicit source

@TheChymera
A helper script to make some test ecephys NWB files using simulated data in a semi-realistic manner (SpikeGLX inspired)
If the synthetic recording/spiking is overkill for your purposes we can also just use the pynwb.testing.mock library to generate dummy file structures
import datetime
import tempfile

import neuroconv
import spikeinterface
from neuroconv.datainterfaces import PhySortingInterface
from neuroconv.tools.spikeinterface import add_recording
from spikeinterface.exporters import export_to_phy

# Define NeuroPixel-like values for sampling rates and conversion factors
duration_in_s = 0.5  # Shortened from ~3 for demo purposes. Can't be too short or else errors in extraction step
number_of_units = 10
number_of_channels = 385  # Have to include 'sync' channel to be proper SpikeGLX. TODO: artificiate sync pulses
ap_conversion_factor_to_uV = 2.34375
ap_sampling_frequency = 30_000.0
lf_sampling_frequency = 2_500.0
downsample_factor = int(ap_sampling_frequency / lf_sampling_frequency)

# Generate synthetic spiking and voltage traces with waveforms around them
artificial_ap_band, spiking = spikeinterface.generate_ground_truth_recording(
    durations=[duration_in_s],
    sampling_frequency=ap_sampling_frequency,
    num_channels=number_of_channels,
    dtype="float32",
    num_units=number_of_units,
    seed=0,  # Fixed seed for reproducibility
)
artificial_ap_band.set_channel_gains(gains=ap_conversion_factor_to_uV)
waveform_extractor = spikeinterface.extract_waveforms(recording=artificial_ap_band, sorting=spiking, mode="memory")
int16_artificial_ap_band = artificial_ap_band.astype(dtype="int16")

# Kind of messy that this intermediate step is needed, but can't figure out direct out to NWB
temporary_folder = tempfile.TemporaryDirectory()
export_to_phy(
    waveform_extractor=waveform_extractor, output_folder=temporary_folder.name, remove_if_exists=True, copy_binary=False
)
phy_interface = PhySortingInterface(folder_path=temporary_folder.name)

# Write to NWB
# This is the part where the BIDS or other organization comes into play?
# Or start from existing files and make symlinks to them?
metadata = dict(
    NWBFile=dict(session_id="testabc", session_start_time=datetime.datetime(1970, 1, 1).isoformat()),
    Subject=dict(subject_id="test123", species="Mus musculus", age="P30D", sex="O"),
)
nwbfile_path = "C:/Users/Raven/Downloads/test_data.nwb"
with neuroconv.tools.nwb_helpers.make_or_load_nwbfile(
    nwbfile_path=nwbfile_path, metadata=metadata, overwrite=True
) as nwbfile:
    add_recording(recording=int16_artificial_ap_band, nwbfile=nwbfile)
    phy_interface.add_to_nwbfile(nwbfile=nwbfile, metadata=phy_interface.get_metadata())
    # add_sorting(sorting=spiking, nwbfile=nwbfile)


Toregge/refactor gid to lid change handler usage

@geirst, please review

Overall looks good, please look at my comments


FE: User login and Authentication 06/20-06/22

Add user authentication methods for data protection and privacy.
06/20/16-06/22/16

[ ] Account for demo vineyard
[ ] Accept correct username / password combination
[ ] Reject invalid username / password combination
[ ] Display only data associated with accepted username / password

@SoySauceLabs we need to add an nginx config to fix the issue I've mentioned in FE#15 branch.
This might be a start:
http://enable-cors.org/server_nginx.html

https://github.com/Plantalytics/plantalytics-backend/pull/20
and
https://github.com/Plantalytics/plantalytics-frontend/pull/34


Fix test failures on Windows

Description:
Following errors are noticed from debug adapter test client and LS client tests.
rejected promise not handled within 1 second: TypeError: Cannot read property 'write' of undefined
stack trace: TypeError: Cannot read property 'write' of undefined
    at DebugClient.doSend (D:\a\plugin-vscode\plugin-vscode\node_modules\vscode-debugadapter-testsupport\src\protocolClient.ts:97:21)
    at D:\a\plugin-vscode\plugin-vscode\node_modules\vscode-debugadapter-testsupport\src\protocolClient.ts:72:9
    at new Promise (<anonymous>)
    at DebugClient.send (D:\a\plugin-vscode\plugin-vscode\node_modules\vscode-debugadapter-testsupport\src\protocolClient.ts:71:10)
    at DebugClient.terminateRequest (D:\a\plugin-vscode\plugin-vscode\node_modules\vscode-debugadapter-testsupport\src\debugClient.ts:175:15)
    at Context.<anonymous> (D:\a\plugin-vscode\plugin-vscode\test\debugger\debugger.test.ts:75:12)
    at callFn (d:\a\plugin-vscode\plugin-vscode\node_modules\mocha\lib\runnable.js:372:21)
    at Hook.Runnable.run (d:\a\plugin-vscode\plugin-vscode\node_modules\mocha\lib\runnable.js:364:7)
    at next (d:\a\plugin-vscode\plugin-vscode\node_modules\mocha\lib\runner.js:317:10)
    at Immediate.<anonymous> (d:\a\plugin-vscode\plugin-vscode\node_modules\mocha\lib\runner.js:347:5)
    at processImmediate (internal/timers.js:456:21)

Language Server Tests
       "before all" hook:
     Uncaught Error: read ECONNRESET
      at TCP.onStreamRead (internal/stream_base_commons.js:205:27)

Suggested Labels:

Suggested Assignees:

Affected Product Version:
OS, DB, other environment details and versions:
Steps to reproduce:
Related Issues:

Enabled LS tests with https://github.com/ballerina-platform/plugin-vscode/pull/339

Moved to https://github.com/wso2/ballerina-plugin-vscode/issues/44


issue, Pixi don't use true Alignment !? in Align only container ??

Hi guys and girls thank for help me about this issue.
I have some bug with the Align of pixi.text
Normally the alignment is supposed to work this way

But it is impossible for me to make text center (String) or right Justify, Same line in photoshop or Word.
I noticed that no demo or sample seems to show this possibility.
Is there a specific technique to use a true alignment? (text Justify)
for now .setPixiTextStyle( {align: 'center'} )
Not center the container but not the string ??
thank for help about this issue

text.style.align = 'left' / 'center' / 'right' only really effects multiline text. This is due to the way we draw text onto a canvas, and use that canvas as a texture to draw from.
What you can do is use text.anchor.x = 0 to left align, text.anchor.x = 0.5 to center align, and text.anchor.x = 1 to right align


Invalid example code in jump statements, return ref

Type of issue
Code doesn't work
Description
The ref returns section contains the following example code: int[] xs = [10, 20, 30, 40];
Output: (1,12): error CS1525: Invalid expression term '['
It should be int[] xs = {10, 20, 30, 40};
Page URL
https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/statements/jump-statements#ref-returns
Content source URL
https://github.com/dotnet/docs/blob/main/docs/csharp/language-reference/statements/jump-statements.md
Document Version Independent Id
e2587107-1293-4aa1-8f74-6417367d76e7
Article author
@BillWagner
Metadata

ID: 5c1793eb-a1cc-62d8-2009-2d69eefa9413
Service: dotnet-csharp
Sub-service: lang-reference

Hi @tbeest
This is valid C#, starting with C# 12.  It's the new collection expressions syntax.
I'll close this as by design.

Hi @BillWagner
The editor on the website itself gives that error, so I guess that's not using the latest version yet.
Do you know if there's anything which can be done about that?

Thanks for clarifying that @tbeest
I'll reopen this.
For the short term, we can't use collection expressions in the Try.NET environment. The next semester deployment should include the C# 12 updates.


Release gap between Spring cloud deployer mesos and Spring cloud dataflow?

Hi all,
Just wondering about the gap in releases between spring cloud dataflow for mesos (1.0.0) and the main project (1.4.0)?
Last GA release here is June 2016 and the main spring cloud dataflow project has had many releases since (https://github.com/spring-cloud/spring-cloud-dataflow/releases).
Any plan to catch up on release versions?
We're considering this in production but obviously have some concerns, would be great to have some feedback.

Hi, @geez. Thanks for the interest in Mesos implementation of Deployer/SCDF!
We haven't been able to make progress on mesos-deployer/mesos-server for a variety of reasons. The most pressing would be the fact that the general market momentum wrt container orchestration platforms. A vast majority of the consolidation appears to be moving towards Kubernetes (including: Mesosphere and our very own PKS).
As you can imagine, it is a significant effort for us to bring the mesos-deployer and mesos-server combinations to the latest spring-cloud-deployer and spring-cloud-dataflow dependencies respectively, which is a sizeable work, but we are focused on other platforms right now.
It'd be recommended that you switch to SCDF's Kubernetes (latest: v1.4.0) or Cloud Foundry (latest: v1.4.0), as they're actively maintained/supported with upstream dependencies, new-features, enhancements, and bug-fixes.

@sabbyanandan Thanks for letting us know!

No problem! Let us know if you have any questions pertaining to K8S or CF. One of us would be online at Gitter/StackOverflow.


Constify cfg_setopt

This also unifies the value argument so that it is never "taken over"
from the callee, which it was previously for titles of sections.

Looks reasonable, will likely go into v2.9 ... which I'll start working on as soon as I've got v2.8 out the door.

Actually, it it not 100% good. You need
val->section->title = value ? strdup(value) : NULL;

@peda-r Just update the branch and it will be reflected in the pull request.  Best thing is if you force-push a rebased version with that fix squashed.

Done. I also fixed a type in the commit message.

Awesome!  As I said before, will merge this as soon as I've released v2.8.


Ignore / Block strangenesses

From @zzottel on June 26, 2014 14:49
Blocking and ignoring only works partly.
Parts that work as expected:
If I as a blocked or ignored channel directly look at the channel in question, I get permission denied or see the posts but can't comment even if commenting is open to the whole network.
Blocked contacts don't get new posts, ignored contacts do.
If a blocked or ignored user comments a post (see below), this comment is not sent on to other contacts that can see this post.
A post that is received by an ignored user does not have PERMS_W_COMMENT set.
New posts by blocked/ignored users are not received by the one who blocks/ignores them.
Parts that don't work as expected:
Although in item_flags, PERMS_W_COMMENT is not set, the ignored user gets a comment box and can comment.
When he does, this comment is delivered normally to the original poster who also gets a notification for it (but is not relayed to the original poster's contacts as already stated above).
The same is true for blocked users who comment on older posts they got when they were not yet blocked.
Copied from original issue: friendica/red#510

From @zzottel on June 27, 2014 19:46
Update: The problem is that blocked/ignored states don't seem to be synced between clones (they are when a new clone is created, but not when the state is changed on of the clones including the primary).
So posts/comments that get permission denied on one clone are delivered to another and relayed back back from there.

From @friendica on July 2, 2014 8:53
That's subtle - it  would've taken some work to track down. Thanks. Looks like that should nail it. Appreciate the persistence.

From @zzottel on July 2, 2014 8:41
Fixed with my pull request.


OverviewCard MDX component

https://carbondesignsystem.com/data-visualization/chart-types/
Do we need to bring this component over @mattrosno

Nope! We now have catalogs/collections 😎. Closing.