Creating Separate "Test" Releases Build Pipeline upon push to master

Working correctly with releases:

Create separate release in the build pipeline (per push to master branch). This release should contain artefact: MongoDB-Query-Executor-Mac-x.y.z-Installer.dmg, but it should be marked somehow that is not the latest (not production) release.
I suppose it doesn't labeled by "pre-release" or  "latest release"

This release is for testing, for UAT testing and automated testing in our https://github.com/vaisakhsasikumar/electron-app-tests/tree/main/automated_testing repository.
Ideally, automated_testing pipeline should be triggered by releasing of such "test" release and take the latest release from existing.
Additionally, we can implement: Automatic version increase
Resources:
https://github.com/actions/labeler
https://github.com/actions/github-script/releases
https://docs.github.com/en/repositories/releasing-projects-on-github/automation-for-release-forms-with-query-parameters
https://github.com/marketplace/actions/release-drafter
https://github.com/marketplace/actions/release-plz
https://github.com/marketplace/actions/release-please-action
https://github.com/marketplace/actions/next-semantic-release-version

you can trigger a GitHub Actions workflow (or pipeline) from another workflow using the repository_dispatch event. This way, you can even pass parameters from one workflow to another. Here’s a general overview of how you can achieve this:
Step 1: Setup the Triggering Workflow
You need a workflow that uses the repository_dispatch event to trigger another workflow. This can be done using a GitHub Action that makes an API call to trigger the repository_dispatch event. Here's an example using curl:
name: Trigger Another Workflow

on:
  workflow_dispatch:
    inputs:
      example-param:
        description: 'An example parameter'
        required: true

jobs:
  trigger:
    runs-on: ubuntu-latest
    steps:
      - name: Trigger another workflow via repository_dispatch
        run: |
          curl -X POST \
            -H "Accept: application/vnd.github.v3+json" \
            -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
            https://api.github.com/repos/<owner>/<repo>/dispatches \
            -d '{"event_type": "custom_event", "client_payload": {"example-param": "${{ github.event.inputs.example-param }}"}}'

Step 2: Setup the Target Workflow
Create another workflow file that will be triggered by the repository_dispatch event:
name: Target Workflow

on:
  repository_dispatch:
    types: [custom_event]

jobs:
  target:
    runs-on: ubuntu-latest
    steps:
      - name: Run something with the parameter
        run: echo "Parameter passed: ${{ github.event.client_payload.example-param }}"

Explanation

Triggering Workflow: You make a POST request to the GitHub API's /dispatches endpoint with the repository_dispatch event type and include any parameters in the client_payload.

Target Workflow: Listens for a specific repository_dispatch event type. It then has access to any parameters passed in the client_payload, which you can use within the steps of that workflow.

Notes

Permissions: Ensure that the GitHub token used has sufficient permissions to trigger repository_dispatch. The default GITHUB_TOKEN should have these permissions, but you may need to adjust repository settings or use a Personal Access Token for cross-repo workflows.

Security: Be cautious with sensitive data. Ensure tokens and sensitive data are stored in GitHub secrets, not directly in the workflow files.

Event Type: You can define any string for the event_type; ensure it matches between the triggering and target workflows.

This setup allows for flexible CI/CD pipelines where you can string together complex workflows across projects or repositories.


Massive performance drop when modifying a tile from a disabled tilemap

Tested versions
Using version 4.2.1 stable mono [b09f793f5]
System information
Windows 11 - Godot v.4.2.1 stable mono
Issue description
If you modify (specifically in my case delete) a tile from a disabled layer in a tilemap, you will see a massive drop in performance due to GPU computing.
I was doing this specifically to hide a layer while in debug mode. I guess I'll try to shift the layer behind other layers for now, but this solution will not work for people who might not be using multiple layers and just wished to make a tilemap temporarily invisible while still needing to modify it.
Steps to reproduce

Create a tilemap, fill it with tiles 1000 x 1000
Disable the layer
Start removing tiles on the layer

In the Minimal Reproduction Project, you don't have to do anything, the code is already set up to automatically create the tilemap and starts a repeating task that deletes a tile every 2 seconds. Just boot the demo and check the profiler.
Minimal reproduction project (MRP)
Godot_MRP.zip

Can you try this in 4.2.2.rc2 or 4.3.dev5?

Can you try this in 4.2.2.rc2 or 4.3.dev5?

Still there in 4.2.2.rc2 mono

It may be important to note that I specifically was testing this in compatibility mode


Portals in AE2 Spatial Storage Cells still work outside

When creating a portal inside of spatial pylons and then using the Spatial IO Port, frame blocks will be contained, but not the controller. This has the following effects:

The portal will still function as normal, but will teleport instantly instead of pulling the player to the end of the tunnel
The name will disappear
It will not be dialable anymore

If you load the Spatial Storage again, everything works as intended.

Well, it has a whitelist for tile entities, but even then it has the problem of not noticing the actual portal part is gone.


Consider changing the way Factory<> derived classes work to be more flexible when mapping to other factories

Right now, the convention for factories is to define an internal class that derives from Factory<>.  Then, in an installer, this factory can be configured to create the given type in any number of different ways, using the FromFactory bind method.
This works fine and is nice because the user can add bindings for factories in exactly the same way they do for non-dynamic dependencies (eg. using FromMethod, FromNewComponentOnNewGameObject, etc.).
However, when the user wants to define a custom factory or if they want to map an existing Factory<> derived class to another Factory<> derived class, it gets really clunky to deal with.
The distinction between Factory<>, IFactory<>, and custom factories, is also confusing for people.
Another approach that we may want to consider instead is to change the convention to have the internal classes be an inteface instead, for example:
public class Foo
{
    public interface Factory : IFactory<Foo>
    {
    }
}

public class FooInstaller : MonoInstaller<FooInstaller>
{
    public override void InstallBindings()
    {
        Container.BindFactory<Foo, Foo.Factory>().FromNewComponentOnNewGameObject();
        Container.BindFactory<Foo, Foo.Factory>().FromMethod(_ => new Foo());
        // etc.
    }
}

In this case, Foo.Factory would be mapped to the internal zenject class Factory<> because we use the BindFactory method.  This would also allow the user to do easily map to a custom factory class like this:
public class Foo
{
    public interface Factory : IFactory<Foo>
    {
    }
}

public class CustomFooFactory : Foo.Factory
{
    public Foo Create()
    {
        return new Foo();
    }
}

public class FooInstaller : MonoInstaller<FooInstaller>
{
    public override void InstallBindings()
    {
        Container.Bind<Foo.Factory>().To<CustomFooFactory>().AsSingle();
    }
}

The main advantage to using an internal Factory class in the Foo class is that it allows us to define in one place the parameters that are required for creating Foo.  If we add to the parameter list of IFactory in the statement public interface Factory : IFactory<Foo> then we will get compile errors in every Foo.Factory derived class as well as any class that calls Foo.Factory.Create method.  This would not be the case if we were directly using IFactory in a bunch of different places in the code base.
This would have the following advantages:

By making Foo.Factory an interface it conveys clearly that this is just a contract that is filled in later.  This is simpler and easier for everyone to understand
We could remove the FromFactory and FromIFactoryResolve methods that are part of the BindFactory binding, since they wouldn't be needed, making the API cleaner
You can control whether a custom factory is a singleton, transient, inside another sub container, etc. which you can't do with FromFactory.  You can use FromIFactoryResolve kind of by splitting into two separate bindings but this is clunky and limited

I'm just curious if i'm right... Documentation says, that any object, created by New is outside of injection loop.
But you show example with this Create method without [Inject] field
public Foo Create()
{
return new Foo();
}
If it works?

That's right, Foo won't be injected in that case.  That was just an example of a basic custom factory.  In practice, in most cases you will want to avoid new.  So in that example, you'd probably do DiContainer.Instantiate<Foo>() instead inside the custom factory.

After further thought I realized that it might not be possible to implement this idea, because it would require that we generate a class that implements Foo.Factory at runtime (for the case where they are not using a custom factory and intead just doing something like FromMethod), and this might not be possible (especially on IL2CPP platforms).
But there are still issues with custom factories that need to be addressed at some point:

Standardize the way that custom factory interfaces work.  For example, for factories it looks like this:

public class Foo
{
    public interface IFactory : IFactory<Foo>
    {
    }

    public class Factory : Factory<Foo>, IFactory
    {
    }
}

public class TestInstaller : MonoInstaller<TestInstaller>
{
    public override void InstallBindings()
    {
        Container.BindFactoryContract<Foo, Foo.IFactory, Foo.Factory>().FromMethod(c => new Foo());
    }
}

But for memory pools it looks like this:
public class Foo
{
    public interface IMyPool : IMemoryPool<Foo>
    {
    }

    public class Pool : MemoryPool<Foo>, IMyPool
    {
    }
}

public class TestInstaller : MonoInstaller<TestInstaller>
{
    public override void InstallBindings()
    {
        Container.BindMemoryPool<Foo, Foo.Pool, Foo.IMyPool>().FromMethod(c => new Foo());
    }
}

Which is weirdly inconsistent.
This approach of adding a nested interface and a nested class is also interesting because it solves the problem of having to generate the Foo.IFactory derived class at runtime.  When BindFactoryContract is used like this, you can easily re-map Foo.IFactory to a custom factory and you no longer need to use the FromFactory method at all, which can be better since it avoids some of the limitations wtih FromFactory mentioned below.

The FromFactory bind method has limitations.

Given the following example:
public class Foo
{
    public class Factory : Factory<Foo>
    {
    }
}

public class CustomFactory : IFactory<Foo>
{
    public Foo Create()
    {
        return new Foo();
    }
}

public class TestInstaller : MonoInstaller<TestInstaller>
{
    public override void InstallBindings()
    {
        Container.BindFactory<Foo, Foo.Factory>().FromFactory<CustomFactory>();
    }
}

There's no way to control the scope or the construction method of the CustomFactory class.  We might want to make it transient for every call to Foo.Factory.Create(), or we might want to resolve it from a subcontainer, or we might want it to be a MonoBehaviour, etc.   But instead it only supports creating via new with scope AsCached.
A good example of the kind of mess of bindings that you can find yourself in, when using a lot of custom factories with custom creation methods is here:  https://groups.google.com/forum/#!msg/zenject/AATik-Pix1o/iY8DnZikAwAJ
There is the FromIFactoryResolve method which can help but is still awkward, confusing and inelegant.
A better approach might be something that looks like this:
Container.BindFactory<Foo, Foo.Factory>().FromIFactory()
    .To<MyFactoryInsideSubContainer>().FromSubContainerResolve().ByInstaller<FooInstaller>().AsSingle();

Calling FromIFactory would allow you to start a full chain of bind statements that control exactly how the factory is constructed, as well as the scope to use for it, etc.  The FromIFactory could also be used with non-factory bindings as well.

Fixed in develop branch, will be included in zenject 6

i think i found a workaround .
im just creating this
public class Factory : Factory<X, Y>, IFactory<X, Y>, IValidatable
{
     public new Y Create(X param)
     {
         //custom creation logic.
     }
}

still unsure of the implications of this but hey, its a workaround.


feat: add arbitrum mainnet fork

What I did

fixes: #
How I did it
How to verify it
Checklist

[ ] Passes all linting checks (pre-commit and CI jobs)
[ ] New test cases have been added and are passing
[ ] Documentation has been updated
[ ] PR title follows Conventional Commit standard (will be automatically included in the changelog)

will get a passing build after this merges https://github.com/ApeWorX/ape-hardhat/pull/89


Material theme progress bars

This change is

Reviewed 2 of 5 files at r1, 3 of 3 files at r3.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


PEAR-1849 - Add anchor link or similar to files table in case summary page

Description
+ PEAR-1838 - Add information telling users we have a files table in the case summary page
+ PEAR-1832 - Remove supplements tables from case summary page
Checklist

[x] Added proper unit tests
[x] Left proper TODO messages for any remaining tasks
[x] Scanned for web accessibility with aXe, and mitigated or documented
flagged issues

Screenshots/Screen Recordings (if Appropriate)

Looks good! 👍
I even tried clicking on the Files link after I already have a bioId in the URL and then refreshed -- it was interesting.


[feature]: Add footer

Is there an existing feature request for this?

[X] I have searched the existing issues

Summary
Add the link to this repo in the footer so that people who want to contribute to this repo or want to quickly fix a bug can land up here within a click.
We can also add more details to the footer like - all social channels and the registration form.
Why should this be worked on?
Will be easy navigation to fix bugs or request new features to this website.

Can I take this issue?

working on this :+1:

Hey @nehagup, I would like to work on this issue.


[AMBARI-24397] - Allow PATCH VDFs to Specify Services Which Are Not Installed in the Cluster

What changes were proposed in this pull request?
Cherry pick of https://github.com/apache/ambari/pull/1943

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/3424/
Test PASSed.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/3423/
Test PASSed.


Test loss evaluated on only 8 samples

Hello,
If I am not mistaken, I see that the test data loader for each act only has 1 batch of size 8. The test loss (subject 5) is thus only evaluated on 1 single batch of size 8 (both for angle and 3D space) for each act.
The variable opt.test_batch is not reflected in the code because the H36motion dataset only contains 8 sequences.
Can you explain the reason behind this? The test loss seems to have a high variance for different runs, I suppose having such a small test set could explain this.
Thanks in advance,
Tim

Hi Tim,
We follow the same evaluation protocol as previous methods (e.g. conSeq2Seq and Res. Sup.) which is testing with 8 random subsequences per action. To make the comparision fair, we evaluate with the exact same 8 subsequences as previous methods.
Yes, the small testing set will lead to high variance which has already been studyed in  a latter publication  "Modeling Human Motion with Quaternion-based Neural Networks". In this work, the authors suggest to use 256 random subsequences per action instead which makes more sense than only using 8.
Cheers
Wei

Ok, thank you for the clarification! Given the high variance of the accuracies, how did you generate the tables in the readme and in the paper? Is the pre-trained model chosen randomly as well as test_run_1, and test_run_2?
I am trying to compare your results with another version I wrote and I am trying to compare it as fairly as possible.
Thank you in advance!
Best,
Tim

Hi Tim,
They are all evaluate the exact same sequences which is randomly chosen with same random seed. Our baselines are also evaluated on the same sequences.
You can find the related method here:
https://github.com/wei-mao-2019/LearnTrajDep/blob/15c2bc5aafdbfae4e92f353ae19f00f7b12aea8c/utils/data_utils.py#L793
This method is originally from https://github.com/una-dinosauria/human-motion-prediction/blob/master/src/seq2seq_model.py.
Thank you
Cheers
Wei


Why is it a minimum of 3 hosts for VMC SDDCs?

[x] I am using the latest SDK version
[x] This API is compatible with my vCenter version (You can get the info from 'vcenter_version' in each sample)
[x] I have searched existing issues and Troubleshooting wiki

Environment

sdk package version:

nsx-vmc-aws-integration-python-sdk <IP_ADDRESS>.3.13851140
nsx-vmc-policy-python-sdk          <IP_ADDRESS>.3.13851140
pyvmomi                            6.7.3
vapi-client-bindings               3.1.0
vapi-common-client                 2.12.0
vapi-runtime                       2.12.0
vmc-client-bindings                1.12.0
vmc-draas-client-bindings          1.0.0
vSphere-Automation-SDK             1.6.0

python version:

Python 3.7.4

vSphere version:

Operating System/Shell (used to run SDK-based apps):

Steps or code snippet to reproduce
I modified sddc_crud.py to accept a variable number of hosts.  When I tried to create an SDDC with just 1 host, I get the following error:
Traceback (most recent call last):
  File "./samples/vmc/sddc/sddc_crud.py", line 229, in <module>
    main()
  File "./samples/vmc/sddc/sddc_crud.py", line 221, in main
    sddc_operations.create_sddc()
  File "./samples/vmc/sddc/sddc_crud.py", line 152, in create_sddc
    raise Exception(error_response.error_messages)
Exception: ['Sddc provisioning requires a minimum of 3 hosts.']

This seems arbitrary.  Its perfectly possible to start a 1 host SDDC manually.  Why not via the API as well? Remember that the difference between 1 and 3 hosts is a lot of money to the user.  It would be really nice if we could avoid considerable costs by being able to implement single-host configurations.

seems relevant, but still arbitrary

@gamename You should be able to create a one node SDDC for evaluation if you pass sddc_type parameter with value '1NODE'.

@tianhao64  Thanks! That worked.


Error: Cycle: when enabling attach_worker_cni_policy = false

I have issues when I try to disable attach_worker_cni_policy
I'm submitting a...

[x] bug report
[ ] feature request
[ ] support request - read the FAQ first!
[ ] kudos, thank you, warm fuzzy

What is the current behavior?
Module should be able to remove policies without any issue
If this is a bug, how to reproduce? Please include a code sample if relevant.
Create a cluster without setting attach_worker_cni_policy and then update it by passing attach_worker_cni_policy=false
What's the expected behavior?
Module should update the cluster and remove CNI policy without cyclic error
Are you able to fix this problem and submit a PR? Link here if you have already.
Environment details

Affected module version: 13.2.1/14.0.0
OS:
Terraform version:

Any other relevant info
Error: Cycle: module.cluster.random_pet.workers_launch_template[1] (destroy deposed 0545957a), module.cluster.random_pet.workers_launch_template[0] (destroy deposed 79f5c579), local_file.kubeconfig, module.cluster.output.workers_launch_template_arns, module.cluster.output.workers_launch_template_ids, module.cluster.output.workers_launch_template_latest_versions, data.local_file.kubeconfig, module.cluster.random_pet.workers_launch_template[2], module.cluster.aws_launch_template.workers_launch_template[0], module.cluster.aws_launch_template.workers_launch_template[1], module.cluster.random_pet.workers_launch_template[1], module.cluster.random_pet.workers_launch_template[2] (destroy deposed 779e1330), module.cluster.aws_iam_role_policy_attachment.workers_AmazonEKS_CNI_Policy[0] (destroy), module.cluster.aws_launch_template.workers_launch_template[2], module.cluster.random_pet.workers_launch_template[0]

@barryib  @dpiddockcmp Any idea


Remove extraneous files from autogeneration of ref pages.

This change is

@pwittrock, This PR removes extraneous files that were appearing in the automatically-generated sitemap.xml. There might be more files that we could remove, but it's tricky to figure out which ones are required and which ones are extraneous.

/lgtm


Lack in Explanation

Hi @TYH71. Duplicate issue as referenced in #1. Issue resolved with commit e15d91c. Marking this as resolved
Happy contributing!


Update dockerclient to use the official docker client

Use docker/docker/client
Remove references to samalba/dockerclient
Update references of docker/engine-api/... to docker/docker/...

@jojimt: I've changed the way the docker events channel is closed. PTAL.


Support configuration cascading

Feature request
Support configuration-cascading http://eslint.org/docs/user-guide/configuring#configuration-cascading-and-hierarchy.
Motivation
It allows in convenient way extend configuration rules per directory without specifying and support relative path to base configuration using extends property.
Related to https://github.com/palantir/tslint/issues/997

@ikokostya How can I override couple rules in my tests folder with extends property? I used ESLint cascading config file when I was doing JS but I can't do that with TS :/

this is supported now right? https://palantir.github.io/tslint/usage/configuration/

💀 It's time! 💀
TSLint is being deprecated and no longer accepting pull requests for major new changes or features. See #4534. 😱
If you'd like to see this change implemented, you have two choices:

Recommended: Check if this is available in ESLint + typescript-eslint ✅
Not Recommended: Fork TSLint locally 🤷♂

👋 It was a pleasure open sourcing with you!
If you believe this message was posted here in error, please comment so we can re-open the issue!

🤖 Beep boop! 👉  TSLint is deprecated 👈 (#4534)  and you should switch to typescript-eslint! 🤖
🔒 This issue is being locked to prevent further unnecessary discussions. Thank you! 👋


Running tasks on container engine vs. compute engine

When DockerFlow launches the individual tasks of a workflow, are these tasks running on separate compute engine VMs, or can they be scheduled to run on a container engine cluster?

They run on separate VMs, sized to fit the tasks. Any benefits you see to using container engine?

I'm wondering if it would be more cost effective to pack multiple instances of a container (task) on to a single host machine.

Let's say I have to process 100 units of data through a 10-step workflow, where each step takes a min.
In the current setup, I would therefore need 1000 VMs and it would take me 10mins to complete the job (Let's make the incorrect assumption that time to provision a VM is 0s ). So I would pay for 10,000 mins (due to the 10min GCP minimum).
However, if I was running this on a container cluster, I would still complete my job in 10mins, but it would only cost me 1,000 minutes of computing.
And since the time to provision a VM is >> 0, I'd like to reuse hosts as much as possible.

Excellent tool btw. We are kicking its tires, to test it on medical imaging pipelines. Would love to see it as a formal member of the GCP ecosystem.

Glad you like it! The docs could be better, I know.
Yes, there are opportunities for performance optimization. Dockerflow relies on the Pipelines API for the task execution, and it's possible that the Pipelines API could do smarter things to save money, like VM reuse -- if a VM is running, and there's a task that needs the same VM shape, launch the task on the same VM rather than shutting down and starting a new VM.
Have you also looked at dsub? It's a task runner like qsub, but for the cloud. If you're doing simple batch jobs rather than more complex graphs, it might be all you need.

I thought dsub could only do single node/container workflows. Didn't think there was any possibility of adding, say a CWL workflow, without significant reengineering.
Medical Imaging workflows aren't that different from those in genomics. You have your usual pre-processing followed by feature extraction using say CNNs and/or traditional methods of segmentation+feature extraction, followed by some sort of feature selection (PCA/Random Forest...), before pumping the features through a classifier. Maybe not as deep as genomic workflows, but could consist of 6-10 steps, with some scatter and gather operations.

The way you can do more complex workflows with dsub is to create a bash script that calls dsub multiple times. Then run the bash script with dsub. I don't know if we have a good example of that, but it's definitely been done.
dsub also has a new flag, --after JOB_ID, that lets you do basic task dependency.
For scatter/gather, you could use the --tasks TASK_FILE.tsv option.
Once you start doing all of these things, you may find that Dockerflow is easier though :)


Check sha1 checksum for versions less than 5.6.2

This PR updates the install scripts to download and use a
sha1 checksum for Elastic Stack versions less than 5.6.2.
Fixes #237

Need to run
npm run links -- --branch master

before merging


cv2.resize() incredibly slow

For processing the frames, I see that cv2.resize() is being used. I tried running the starter code in both a c4.4xlarge (8 workers) and m4.10xlarge (16 workers) instance. In both, I see my global_step/sec at around only 120. Instead of cv2.resize(), if I use scipy's resize I get much better performance (around 1000 steps/sec). From running perf top, I see a lot of time spent in communicating in the process libgomp.so. I tried setting  OMP_NUM_THREADS=1, but the problem seems to persist. Can someone please explain how to fix this?

Which scipy resize function are you using? Have you confirmed it produces very similar results? And what environment are you testing with?
scipy.misc.imresize(... interp='nearest') is fast, but because it just subsamples pixels it will miss features of the input that the agent would need to learn.

@tlbtlbtlb  I am using the default interpolation option which is bilinear. Nevertheless cv2.resize() shouldn't be this slow right? Any idea why this is happening?
I have attached the graph showing results I get running the starter code on a c4.4xlarge machine with 8 workers.  You can see that the global_step/sec is 120. That is really slow.

The speed you get is puzzling. On my c4.2xlarge instance using the current universe-starter-agent and 8 workers I get over 500 steps/sec:

Command:
python train.py --num-workers 8 --env-id PongDeterministic-v3 --log-dir /tmp/pong

pip info includes:
opencv-python (<IP_ADDRESS>)
mpi4py (2.0.0)
tensorflow (0.12.0rc1)

Bilinear when scaling down an image can entirely miss pixels. It depends on the game, but for something like asteroids

Ah! I updated opencv to 3.1 from 2.4 and tensorflow from 0.11 to 0.12. It is working well now! Thanks!


Directory listing shows non-existing packages

We move plugins subdirectory to plugin, now both are listed in the directories index even though I "refreshed". See https://godoc.org/go.opencensus.io.

You need to refresh (or just visit) the individual packages to update them, that gives immediate and reliable results.
E.g., I visited https://godoc.org/go.opencensus.io/plugins/grpc/grpctrace, and got a 404, and now that package is updated to not exist. It's no longer listed at https://godoc.org/go.opencensus.io:

Visiting the parent packages, or waiting a long time may cause the sub-packages to eventually be crawled, but I have no idea how robust or quick that is. Visiting individual packages works much better.

Ah, thanks for the hackaround :)
I am not sure how we crawl the subpackages and invalidate the cache but it has been more than a day and they haven't been gone. I'd also expect cache to be invalidated once godoc is go getting the package but that is not the case.

I wanted to make an off-topic remark about this @rakyll:

We move plugins subdirectory to plugin

From myself and this idiomatic Go item here, thank you for doing that! 😄


UnicodeEncodeError: 'latin-1' codec can't encode character '\u2588' in position 0: ordinal not in range(256)

Hello, I ran 'python3 gen_data.py data.pkl' and had error messages as follow:
(0, 1, 2)  !"
 0¦              Traceback (most recent call last):
  File "gen_data.py", line 27, in <module>
    utils.slab_print(x)
  File "/home/speech/wudan14/rnn_ctc-master/utils.py", line 20, in slab_print
    elif val <= 1.:  print('\u2588', end=''),
UnicodeEncodeError: 'latin-1' codec can't encode character '\u2588' in position 0: ordinal not in range(256)

how can i solve this problem?

Set the following environmental variables. This will enable you to print unicode to terminal.
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
export LANGUAGE=en_US.UTF-8

You can add the above three lines to your .bashrc file.


Deploy Checklist: New Expensify 2022-02-01

Release Version: 1.1.34-0
Compare Changes: https://github.com/Expensify/App/compare/production...staging
This release contains changes from the following pull requests:

https://github.com/Expensify/App/pull/6556

[x] QA
[ ] Accessibility

https://github.com/Expensify/App/pull/7099

[x] QA
[ ] Accessibility

https://github.com/Expensify/App/pull/7218

[x] QA
[ ] Accessibility

https://github.com/Expensify/App/pull/7223

[x] QA
[ ] Accessibility

https://github.com/Expensify/App/pull/7364

[x] QA
[ ] Accessibility

https://github.com/Expensify/App/pull/7369

[x] QA
[ ] Accessibility

https://github.com/Expensify/App/pull/7374

[x] QA
[ ] Accessibility

https://github.com/Expensify/App/pull/7388

[x] QA
[ ] Accessibility

https://github.com/Expensify/App/pull/7409

[x] QA
[ ] Accessibility

https://github.com/Expensify/App/pull/7421

[x] QA
[ ] Accessibility

https://github.com/Expensify/App/pull/7423

[x] QA
[ ] Accessibility

https://github.com/Expensify/App/pull/7430

[x] QA
[ ] Accessibility

https://github.com/Expensify/App/pull/7442

[x] QA
[ ] Accessibility

https://github.com/Expensify/App/pull/7443

[x] QA
[ ] Accessibility

https://github.com/Expensify/App/pull/7448

[x] QA
[ ] Accessibility

https://github.com/Expensify/App/pull/7449

[x] QA
[x] Accessibility

https://github.com/Expensify/App/pull/7452

[x] QA
[ ] Accessibility

https://github.com/Expensify/App/pull/7455

[x] QA
[x] Accessibility

https://github.com/Expensify/App/pull/7456

[x] QA
[x] Accessibility

https://github.com/Expensify/App/pull/7483

[x] QA
[ ] Accessibility

https://github.com/Expensify/App/pull/7484

[x] QA
[ ] Accessibility

https://github.com/Expensify/App/pull/7488

[x] QA
[x] Accessibility

https://github.com/Expensify/App/pull/7490

[x] QA
[ ] Accessibility

cc @Expensify/applauseleads

Starting QA

Regression is completed.
No major blockers found so far. Few issues logged

https://github.com/Expensify/App/issues/7516
https://github.com/Expensify/App/issues/7517
https://github.com/Expensify/App/issues/7518
https://github.com/Expensify/App/issues/7521

@sketchydroide this is ready for you to check

Thank you!

:shipit:


Bug on Elem() - returning the delimiter

Elem -1 returned a delimiter with it.
gosl.Elem("T1~Fri Oct 01, 2021 at 00:00:01", '~', -1)
// returned: "~Fri Oct 01, 2021 at 00:00:01"

This happens only when there were two items.

Fix is
func Elem(s string, delim rune, index int) string {
	// Correct index for negative number
	// index = -1, get last item.
	// index = -2, get 2nd last item.

	delimFound := 0
	for _, c := range s {
		if c == delim {
			delimFound += 1
		}
	}
	// If no delim was found, but index is -1 or 0, return the input as is
	if delimFound == 0 && (index == -1 || index == 0) {
		return s
	}

	if index < 0 {
		// Count how many delim's out there.
		if delimFound >= 0 && delimFound+1 >= -index {
			index = delimFound + 1 + index // index is negative and starts with -1
		} else {
			// negative too far, doesn't exist
			return ""
		}
	}

	cur, start, end := 0, 0, 0 // to find
	var idxLastChar int = 0    // idxLastChar is last processed index -- for when string not end with the delim
	var idxLastDelim int = 0
	for i, c := range s {
		// println("** i=", i, "c=", string(c), c == delim)
		idxLastChar = i
		if c == delim {
			start = end
			end = i // note that new value of `end` points to where `delim` is.
			if index == cur {
				// println("** index == cur: ", cur)
				idxLastDelim = i
				break
			}
			cur += 1
			// println("** Match.Cur: ", cur)
		}
	}

	// Looking for outside expected one
	if index > cur {
		return ""
	}

	// Last delimiter found was at 0 (idxLastDelim) but end was pointing last char
	// which means last character was delimiter itself, then return empty string
	if idxLastDelim == 0 && end == len(s)-1 {
		return ""
	}

	// i is last processed byte index; if there was more after where last delim found,
	// then it's the case such as `ghi` from `/abc/def/ghi`, 2
	// its `end` will be 7, idxLastChar will be 10. As it was ended without any delim,
	// its `end` value is invalid
	if end < idxLastChar {
		start = end
		end = len(s)
	}

	// except for the first item (cur==0), we should skip the delim, therefore adding 1 to start.
	if cur > 0 {
		start += 1
	}
	return s[start:end]
}

Additional test case:
t.Run("bug#27", func(t *testing.T) {
	// Jan 7, 2022 - https://github.com/gonyyi/gosl/issues/27
	gosl.Test(t, "", gosl.Elem("T1/Fri", '/', -3))
	gosl.Test(t, "T1", gosl.Elem("T1/Fri", '/', -2))
	gosl.Test(t, "Fri", gosl.Elem("T1/Fri", '/', -1))
	gosl.Test(t, "T1", gosl.Elem("T1/Fri", '/', 0))
	gosl.Test(t, "Fri", gosl.Elem("T1/Fri", '/', 1))
	gosl.Test(t, "", gosl.Elem("T1/Fri", '/', 2))
	gosl.Test(t, "Fri", gosl.Elem("abc/T1/Fri", '/', -1))
	gosl.Test(t, "T1", gosl.Elem("abc/T1/Fri", '/', -2))
})

https://github.com/gonyyi/gosl/commit/e7d80c09b10cd3490a37794acbab66af0493a004
Pushed to master


Feature/config retrofit

#48

Codecov Report

Merging #78 (449ac03) into V2.1.343rc (e7b53f1) will decrease coverage by 0.00%.
The diff coverage is n/a.

@@              Coverage Diff               @@
##           V2.1.343rc      #78      +/-   ##
==============================================
- Coverage       58.91%   58.90%   -0.01%
==============================================
  Files             394      394
  Lines           25915    25915
==============================================
- Hits            15267    15266       -1
- Misses          10648    10649       +1

Impacted Files
Coverage Δ

apps/node_man/handlers/job.py
86.35% <0.00%> (-0.25%)
:arrow_down:

Continue to review full report at Codecov.

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


fixing n+1 on individual dashboard endpoints

Who is this PR for?
Dashboard users
What problem does this PR fix?
The individual absence dashboard endpoints had a bug causing n+1 conditions in the queries
What does this PR do?
Fixes it!

[x] Author checked latest in IE - Absence Dashboard
[x] Author checked latest in IE - Tardies Dashboard
[ ] Reviewer checked latest in IE - Absence Dashboard
[ ] Reviewer checked latest in IE - Tardies Dashboard

@alexsoble this should fix the n+1 issues you saw in #1629

@edavidsonsawyer Hey, this is a great catch! I didn't realize that the N+1 behavior was different on the individual endpoints versus the combined endpoint. Really excited to see how much this drives down the load time for the individual endpoints.
Did you look in the rails server logs in your development environment to see how long the individual endpoints took to load the JSON before and after this change? I think it's important to have that in this PR so that we have a sense of how much impact we think this change might have, and just to double check that we're making the endpoints load faster. If it's easy for you to add that data now, awesome, if not I can add it when I get to the office.

@edavidsonsawyer Just remembered you have more free coding time in the evenings/at night. I have more coding time during the day, so we can work on these PRs together async. 👍
OK, so here's what I see in the logs. I'm looking at the logs locally with demo data in "more demo students" mode.
Individual absences endpoint, master branch:
[0] Completed 200 OK in 5435ms (Views: 4710.5ms | ActiveRecord: 446.3ms)

Individual absences endpoint, this branch:
[0] Completed 200 OK in 2280ms (Views: 1760.4ms | ActiveRecord: 62.7ms)

Combined school_administrator_dashboard endpoint:
[0] Completed 200 OK in 3310ms (Views: 2469.8ms | ActiveRecord: 104.4ms)

Here's what this tells me:

Fixing this query makes the individual endpoints respond ~2.4 times as fast.
The "combined endpoint" page is faster than the individual endpoints right now because of this N+1 issue. That explains why I found the combined endpoints were faster when I tried them out even though they loaded more data: https://github.com/studentinsights/studentinsights/pull/1575#issuecomment-379069904.

If we ship this fix, and then substitute the individual endpoints in production instead of the combined endpoints, we'll make the data load ~45% faster (2280ms versus 3310ms). I'll 🚢 this now and then take a crack at substituting in the individual endpoints. 🎉


Score is not updating in the self quiz

The score only shows No depression even if we choose any option.
I am GSSoC'22 participant and want to work on it

Can I work on this ?


Update http4s-core to 0.21.15

Updates org.http4s:http4s-core from 0.21.6 to 0.21.15.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.http4s", artifactId = "http4s-core" } ]

labels: library-update, semver-patch

Superseded by #82.

Superseded by #82.


Skip out license-check in case of test262 tests

Can break testruns, when the test262 folder already present.
JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély<EMAIL_ADDRESS>

LGTM


iptables: use the host's xtables lock, and wait for the lock

I noticed some odd behaviour when a node is starting afresh and lots of containers are being scheduled: it will often error out and abort with odd iptables error messages. It turns out this is due to not sharing the node's global xtables lock.
Unfortunately it's not as simple as just passing through the lockfile: by default iptables doesn't wait for the lock and instead just returns an error when the lock is held. So this PR also updates iptables.go to correctly wait for the lock if it is held.

Thanks for the comments, I'll update the MR this evening I hope.

Thanks for nice commit :)


Sw

TYPE: enhancement
KEYWORDS: cloud interaction with radiation, added namelist options, added calculation of 3d cloud fraction
SOURCE: Trude Eidhammer
DESCRIPTION OF CHANGES: 1) Fixed a bug which caused RRTMG short wave code to not interact with clouds.
2) User can now chose the iCloud option to use and the time step between RRTMG update in the namelist.
3) Added the Thompson routine of calculating 3D cloud fraction from WRF
TESTS CONDUCTED:
Compared the updates with the simple radiation scheme, and with icloud = 0 (icloud=0 means no cloud impact on radiation)

Figure shows 2m average daily temperature difference (in Kelvin). Left plot is the difference between RRTMG icloud =3 and the simple radiation scheme. Right plot is the difference between RRTMG icloud=3 and RRTMG icloud=0
Checklist
Merging the PR depends on following checklist being completed. Add X between
each of the square brackets if they are completed in the PR itself. If a
bullet is not relevant to you, please comment on why below the bullet.

[X ] Closes issue #xxxx n/a
[X] Tests added (unit tests and/or regression/integration tests)
[X] Backwards compatible
[X] Requires new files? No
[X] Fully documented

Can you fix it so that it won't crash with different physics options (e.g. no radiation and simple microphysics) I don't think you actually need the where statement on line 230 anymore anyway right?


Separating CC from CIS logic

Splitting out the default date issuance logic for CIS and CC. CIS assumes years is converted to validity_end while CC prefers validity_years over validity_end. This is a modification of #742.
cc @treacher

Coverage decreased (-0.1%) to 65.863% when pulling 6d21b93de74115eb76d6a15daae809ee745351be on kevgliss:validity-error into 7257e791ff3aa9e4d02c051383b3320b2504afc9 on Netflix:master.


Processing error causes Kafka to exit the fetcher thread

Version of Ruby: ruby 2.5.3p105 (2018-10-18 revision 65156) [x86_64-linux]
Version of Kafka: 1.0.1
Version of ruby-kafka: 0.7.4

Does NOT happen for 0.7.2. It does happen for 0.7.3 as well.
Please verify that the problem you're seeing hasn't been fixed by the current master of ruby-kafka:
it is not fixed.
Steps to reproduce
require 'kafka'

logger = Logger.new(STDOUT)

kafka = Kafka.new(
  ['localhost:9092'],
  logger: logger
)

10.times do |i|
  kafka.deliver_message("Hello, World! #{i}", topic: 'test')
end

consumer = kafka.consumer(group_id: 'test')

consumer.subscribe('test')

begin
  consumer.each_message do |message|
    puts message.offset, message.key, message.value
    raise StandardError
  end
rescue Kafka::ProcessingError => e
  p e
  retry
end

Expected outcome
It is expected to retry the processing.
Actual outcome
Fetcher thread exited - it stops fetching messages and no batches to process.
I, [2018-11-15T11:45:44.858521 #31649]  INFO -- : New topics added to target list: test
I, [2018-11-15T11:45:44.858569 #31649]  INFO -- : Fetching cluster metadata from kafka://<IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.858604 #31649] DEBUG -- : Opening connection to <IP_ADDRESS>:9092 with client id ruby-kafka...
D, [2018-11-15T11:45:44.858805 #31649] DEBUG -- : Sending topic_metadata API request 1 to <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.858898 #31649] DEBUG -- : Waiting for response 1 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.859832 #31649] DEBUG -- : Received response 1 from <IP_ADDRESS>:9092
I, [2018-11-15T11:45:44.859867 #31649]  INFO -- : Discovered cluster metadata; nodes: <IP_ADDRESS>:9092 (node_id=1001)
D, [2018-11-15T11:45:44.859885 #31649] DEBUG -- : Closing socket to <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.860005 #31649] DEBUG -- : Current leader for test/0 is node <IP_ADDRESS>:9092 (node_id=1001)
I, [2018-11-15T11:45:44.860033 #31649]  INFO -- : Sending 1 messages to <IP_ADDRESS>:9092 (node_id=1001)
D, [2018-11-15T11:45:44.860073 #31649] DEBUG -- : Opening connection to <IP_ADDRESS>:9092 with client id ruby-kafka...
D, [2018-11-15T11:45:44.860190 #31649] DEBUG -- : Sending produce API request 1 to <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.860593 #31649] DEBUG -- : Waiting for response 1 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.861460 #31649] DEBUG -- : Received response 1 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.861498 #31649] DEBUG -- : Successfully appended 1 messages to test/0 on <IP_ADDRESS>:9092 (node_id=1001)
D, [2018-11-15T11:45:44.861573 #31649] DEBUG -- : Current leader for test/0 is node <IP_ADDRESS>:9092 (node_id=1001)
I, [2018-11-15T11:45:44.861596 #31649]  INFO -- : Sending 1 messages to <IP_ADDRESS>:9092 (node_id=1001)
D, [2018-11-15T11:45:44.861631 #31649] DEBUG -- : Sending produce API request 2 to <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.861739 #31649] DEBUG -- : Waiting for response 2 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.862466 #31649] DEBUG -- : Received response 2 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.862495 #31649] DEBUG -- : Successfully appended 1 messages to test/0 on <IP_ADDRESS>:9092 (node_id=1001)
D, [2018-11-15T11:45:44.862548 #31649] DEBUG -- : Current leader for test/0 is node <IP_ADDRESS>:9092 (node_id=1001)
I, [2018-11-15T11:45:44.862586 #31649]  INFO -- : Sending 1 messages to <IP_ADDRESS>:9092 (node_id=1001)
D, [2018-11-15T11:45:44.862615 #31649] DEBUG -- : Sending produce API request 3 to <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.862713 #31649] DEBUG -- : Waiting for response 3 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.863370 #31649] DEBUG -- : Received response 3 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.863399 #31649] DEBUG -- : Successfully appended 1 messages to test/0 on <IP_ADDRESS>:9092 (node_id=1001)
D, [2018-11-15T11:45:44.863455 #31649] DEBUG -- : Current leader for test/0 is node <IP_ADDRESS>:9092 (node_id=1001)
I, [2018-11-15T11:45:44.863475 #31649]  INFO -- : Sending 1 messages to <IP_ADDRESS>:9092 (node_id=1001)
D, [2018-11-15T11:45:44.863504 #31649] DEBUG -- : Sending produce API request 4 to <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.863605 #31649] DEBUG -- : Waiting for response 4 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.864287 #31649] DEBUG -- : Received response 4 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.864323 #31649] DEBUG -- : Successfully appended 1 messages to test/0 on <IP_ADDRESS>:9092 (node_id=1001)
D, [2018-11-15T11:45:44.864382 #31649] DEBUG -- : Current leader for test/0 is node <IP_ADDRESS>:9092 (node_id=1001)
I, [2018-11-15T11:45:44.864403 #31649]  INFO -- : Sending 1 messages to <IP_ADDRESS>:9092 (node_id=1001)
D, [2018-11-15T11:45:44.864434 #31649] DEBUG -- : Sending produce API request 5 to <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.864537 #31649] DEBUG -- : Waiting for response 5 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.865169 #31649] DEBUG -- : Received response 5 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.865208 #31649] DEBUG -- : Successfully appended 1 messages to test/0 on <IP_ADDRESS>:9092 (node_id=1001)
D, [2018-11-15T11:45:44.865280 #31649] DEBUG -- : Current leader for test/0 is node <IP_ADDRESS>:9092 (node_id=1001)
I, [2018-11-15T11:45:44.865302 #31649]  INFO -- : Sending 1 messages to <IP_ADDRESS>:9092 (node_id=1001)
D, [2018-11-15T11:45:44.865328 #31649] DEBUG -- : Sending produce API request 6 to <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.865431 #31649] DEBUG -- : Waiting for response 6 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.866069 #31649] DEBUG -- : Received response 6 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.866108 #31649] DEBUG -- : Successfully appended 1 messages to test/0 on <IP_ADDRESS>:9092 (node_id=1001)
D, [2018-11-15T11:45:44.866165 #31649] DEBUG -- : Current leader for test/0 is node <IP_ADDRESS>:9092 (node_id=1001)
I, [2018-11-15T11:45:44.866189 #31649]  INFO -- : Sending 1 messages to <IP_ADDRESS>:9092 (node_id=1001)
D, [2018-11-15T11:45:44.866218 #31649] DEBUG -- : Sending produce API request 7 to <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.866342 #31649] DEBUG -- : Waiting for response 7 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.867013 #31649] DEBUG -- : Received response 7 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.867052 #31649] DEBUG -- : Successfully appended 1 messages to test/0 on <IP_ADDRESS>:9092 (node_id=1001)
D, [2018-11-15T11:45:44.867113 #31649] DEBUG -- : Current leader for test/0 is node <IP_ADDRESS>:9092 (node_id=1001)
I, [2018-11-15T11:45:44.867135 #31649]  INFO -- : Sending 1 messages to <IP_ADDRESS>:9092 (node_id=1001)
D, [2018-11-15T11:45:44.867162 #31649] DEBUG -- : Sending produce API request 8 to <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.867265 #31649] DEBUG -- : Waiting for response 8 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.867847 #31649] DEBUG -- : Received response 8 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.867884 #31649] DEBUG -- : Successfully appended 1 messages to test/0 on <IP_ADDRESS>:9092 (node_id=1001)
D, [2018-11-15T11:45:44.867977 #31649] DEBUG -- : Current leader for test/0 is node <IP_ADDRESS>:9092 (node_id=1001)
I, [2018-11-15T11:45:44.867998 #31649]  INFO -- : Sending 1 messages to <IP_ADDRESS>:9092 (node_id=1001)
D, [2018-11-15T11:45:44.868026 #31649] DEBUG -- : Sending produce API request 9 to <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.868127 #31649] DEBUG -- : Waiting for response 9 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.868773 #31649] DEBUG -- : Received response 9 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.868812 #31649] DEBUG -- : Successfully appended 1 messages to test/0 on <IP_ADDRESS>:9092 (node_id=1001)
D, [2018-11-15T11:45:44.868870 #31649] DEBUG -- : Current leader for test/0 is node <IP_ADDRESS>:9092 (node_id=1001)
I, [2018-11-15T11:45:44.868890 #31649]  INFO -- : Sending 1 messages to <IP_ADDRESS>:9092 (node_id=1001)
D, [2018-11-15T11:45:44.868920 #31649] DEBUG -- : Sending produce API request 10 to <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.869025 #31649] DEBUG -- : Waiting for response 10 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.869645 #31649] DEBUG -- : Received response 10 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.869678 #31649] DEBUG -- : Successfully appended 1 messages to test/0 on <IP_ADDRESS>:9092 (node_id=1001)
I, [2018-11-15T11:45:44.869755 #31649]  INFO -- : New topics added to target list: test
I, [2018-11-15T11:45:44.869779 #31649]  INFO -- : Fetching cluster metadata from kafka://<IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.869810 #31649] DEBUG -- : Opening connection to <IP_ADDRESS>:9092 with client id ruby-kafka...
D, [2018-11-15T11:45:44.869941 #31649] DEBUG -- : Sending topic_metadata API request 1 to <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.870009 #31649] DEBUG -- : Waiting for response 1 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.870642 #31649] DEBUG -- : Received response 1 from <IP_ADDRESS>:9092
I, [2018-11-15T11:45:44.870674 #31649]  INFO -- : Discovered cluster metadata; nodes: <IP_ADDRESS>:9092 (node_id=1001)
D, [2018-11-15T11:45:44.870693 #31649] DEBUG -- : Closing socket to <IP_ADDRESS>:9092
I, [2018-11-15T11:45:44.870810 #31649]  INFO -- : Joining group `test`
D, [2018-11-15T11:45:44.870837 #31649] DEBUG -- : Getting group coordinator for `test`
D, [2018-11-15T11:45:44.870900 #31649] DEBUG -- : Handling fetcher command: subscribe
I, [2018-11-15T11:45:44.871018 #31649]  INFO -- : Will fetch at most 1048576 bytes at a time per partition from test
D, [2018-11-15T11:45:44.871046 #31649] DEBUG -- : Handling fetcher command: configure
D, [2018-11-15T11:45:44.871084 #31649] DEBUG -- : Fetching batches
I, [2018-11-15T11:45:44.871127 #31649]  INFO -- : Fetching cluster metadata from kafka://<IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.871165 #31649] DEBUG -- : Opening connection to <IP_ADDRESS>:9092 with client id ruby-kafka...
D, [2018-11-15T11:45:44.870949 #31649] DEBUG -- : Opening connection to <IP_ADDRESS>:9092 with client id ruby-kafka...
D, [2018-11-15T11:45:44.871363 #31649] DEBUG -- : Sending find_coordinator API request 1 to <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.871493 #31649] DEBUG -- : Sending topic_metadata API request 1 to <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.871614 #31649] DEBUG -- : Waiting for response 1 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.871644 #31649] DEBUG -- : Waiting for response 1 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.872036 #31649] DEBUG -- : Received response 1 from <IP_ADDRESS>:9092
I, [2018-11-15T11:45:44.872072 #31649]  INFO -- : Discovered cluster metadata; nodes: <IP_ADDRESS>:9092 (node_id=1001)
D, [2018-11-15T11:45:44.872095 #31649] DEBUG -- : Closing socket to <IP_ADDRESS>:9092
I, [2018-11-15T11:45:44.872159 #31649]  INFO -- : There are no partitions to fetch from, sleeping for 1s
D, [2018-11-15T11:45:44.873197 #31649] DEBUG -- : Received response 1 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.873270 #31649] DEBUG -- : Coordinator for `test` is 1001. Connecting...
D, [2018-11-15T11:45:44.873303 #31649] DEBUG -- : Connected to coordinator: <IP_ADDRESS>:9092 (node_id=1001) for `test`
D, [2018-11-15T11:45:44.873351 #31649] DEBUG -- : Sending join_group API request 2 to <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.873439 #31649] DEBUG -- : Waiting for response 2 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.875312 #31649] DEBUG -- : Received response 2 from <IP_ADDRESS>:9092
I, [2018-11-15T11:45:44.875363 #31649]  INFO -- : Joined group `test` with member id `ruby-kafka-05c1aa89-1129-444d-8efb-b97c51e43213`
I, [2018-11-15T11:45:44.875379 #31649]  INFO -- : Chosen as leader of group `test`
D, [2018-11-15T11:45:44.875445 #31649] DEBUG -- : Sending sync_group API request 3 to <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.875545 #31649] DEBUG -- : Waiting for response 3 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.877431 #31649] DEBUG -- : Received response 3 from <IP_ADDRESS>:9092
I, [2018-11-15T11:45:44.877478 #31649]  INFO -- : Partitions assigned for `test`: 0
D, [2018-11-15T11:45:44.877536 #31649] DEBUG -- : Sending offset_fetch API request 4 to <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.877619 #31649] DEBUG -- : Waiting for response 4 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.878136 #31649] DEBUG -- : Received response 4 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.878249 #31649] DEBUG -- : Sending list_offset API request 5 to <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.878337 #31649] DEBUG -- : Waiting for response 5 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.879269 #31649] DEBUG -- : Received response 5 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:44.879350 #31649] DEBUG -- : No batches to process
D, [2018-11-15T11:45:45.872498 #31649] DEBUG -- : Handling fetcher command: reset
D, [2018-11-15T11:45:45.872670 #31649] DEBUG -- : Handling fetcher command: seek
I, [2018-11-15T11:45:45.872762 #31649]  INFO -- : Seeking test/0 to offset 0
D, [2018-11-15T11:45:45.872843 #31649] DEBUG -- : Fetching batches
I, [2018-11-15T11:45:45.873086 #31649]  INFO -- : New topics added to target list: test
I, [2018-11-15T11:45:45.873190 #31649]  INFO -- : Fetching cluster metadata from kafka://<IP_ADDRESS>:9092
D, [2018-11-15T11:45:45.873355 #31649] DEBUG -- : Opening connection to <IP_ADDRESS>:9092 with client id ruby-kafka...
D, [2018-11-15T11:45:45.873927 #31649] DEBUG -- : Sending topic_metadata API request 1 to <IP_ADDRESS>:9092
D, [2018-11-15T11:45:45.874304 #31649] DEBUG -- : Waiting for response 1 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:45.876974 #31649] DEBUG -- : Received response 1 from <IP_ADDRESS>:9092
I, [2018-11-15T11:45:45.877118 #31649]  INFO -- : Discovered cluster metadata; nodes: <IP_ADDRESS>:9092 (node_id=1001)
D, [2018-11-15T11:45:45.877207 #31649] DEBUG -- : Closing socket to <IP_ADDRESS>:9092
D, [2018-11-15T11:45:45.877561 #31649] DEBUG -- : Opening connection to <IP_ADDRESS>:9092 with client id ruby-kafka...
D, [2018-11-15T11:45:45.878042 #31649] DEBUG -- : Sending fetch API request 1 to <IP_ADDRESS>:9092
D, [2018-11-15T11:45:45.878417 #31649] DEBUG -- : Waiting for response 1 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:45.885908 #31649] DEBUG -- : Received response 1 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:45.886363 #31649] DEBUG -- : Fetching batches
D, [2018-11-15T11:45:45.886618 #31649] DEBUG -- : Sending fetch API request 2 to <IP_ADDRESS>:9092
D, [2018-11-15T11:45:45.886969 #31649] DEBUG -- : Waiting for response 2 from <IP_ADDRESS>:9092
0

Hello, World! 0
E, [2018-11-15T11:45:46.879995 #31649] ERROR -- : Exception raised when processing test/0 at offset 0 -- StandardError: StandardError
poc.rb:21:in `block in <main>'
/home/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/bundler/gems/ruby-kafka-25b1060ee1be/lib/kafka/consumer.rb:228:in `block (4 levels) in each_message'
/home/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/bundler/gems/ruby-kafka-25b1060ee1be/lib/kafka/instrumenter.rb:23:in `instrument'
/home/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/bundler/gems/ruby-kafka-25b1060ee1be/lib/kafka/instrumenter.rb:35:in `instrument'
/home/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/bundler/gems/ruby-kafka-25b1060ee1be/lib/kafka/consumer.rb:226:in `block (3 levels) in each_message'
/home/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/bundler/gems/ruby-kafka-25b1060ee1be/lib/kafka/consumer.rb:210:in `each'
/home/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/bundler/gems/ruby-kafka-25b1060ee1be/lib/kafka/consumer.rb:210:in `block (2 levels) in each_message'
/home/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/bundler/gems/ruby-kafka-25b1060ee1be/lib/kafka/consumer.rb:209:in `each'
/home/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/bundler/gems/ruby-kafka-25b1060ee1be/lib/kafka/consumer.rb:209:in `block in each_message'
/home/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/bundler/gems/ruby-kafka-25b1060ee1be/lib/kafka/consumer.rb:395:in `block in consumer_loop'
/home/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/bundler/gems/ruby-kafka-25b1060ee1be/lib/kafka/instrumenter.rb:23:in `instrument'
/home/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/bundler/gems/ruby-kafka-25b1060ee1be/lib/kafka/instrumenter.rb:35:in `instrument'
/home/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/bundler/gems/ruby-kafka-25b1060ee1be/lib/kafka/consumer.rb:394:in `consumer_loop'
/home/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/bundler/gems/ruby-kafka-25b1060ee1be/lib/kafka/consumer.rb:206:in `each_message'
poc.rb:19:in `<main>'
I, [2018-11-15T11:45:46.880198 #31649]  INFO -- : Leaving group `test`
D, [2018-11-15T11:45:46.880332 #31649] DEBUG -- : Sending leave_group API request 6 to <IP_ADDRESS>:9092
D, [2018-11-15T11:45:46.880686 #31649] DEBUG -- : Waiting for response 6 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:46.885767 #31649] DEBUG -- : Received response 6 from <IP_ADDRESS>:9092
#<Kafka::ProcessingError: Kafka::ProcessingError>
I, [2018-11-15T11:45:46.886084 #31649]  INFO -- : Joining group `test`
D, [2018-11-15T11:45:46.886218 #31649] DEBUG -- : Sending join_group API request 7 to <IP_ADDRESS>:9092
D, [2018-11-15T11:45:46.886529 #31649] DEBUG -- : Waiting for response 7 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:46.888098 #31649] DEBUG -- : Received response 7 from <IP_ADDRESS>:9092
E, [2018-11-15T11:45:46.888230 #31649] ERROR -- : Failed to join group; resetting member id and retrying in 1s...
D, [2018-11-15T11:45:46.890883 #31649] DEBUG -- : Received response 2 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:46.891057 #31649] DEBUG -- : Handling fetcher command: stop
I, [2018-11-15T11:45:46.891123 #31649]  INFO -- : Fetcher thread exited.
I, [2018-11-15T11:45:47.888428 #31649]  INFO -- : Joining group `test`
D, [2018-11-15T11:45:47.888727 #31649] DEBUG -- : Sending join_group API request 8 to <IP_ADDRESS>:9092
D, [2018-11-15T11:45:47.889322 #31649] DEBUG -- : Waiting for response 8 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:47.891857 #31649] DEBUG -- : Received response 8 from <IP_ADDRESS>:9092
I, [2018-11-15T11:45:47.891911 #31649]  INFO -- : Joined group `test` with member id `ruby-kafka-06bcd4df-720f-4de6-b087-676d2bc04599`
I, [2018-11-15T11:45:47.891935 #31649]  INFO -- : Chosen as leader of group `test`
D, [2018-11-15T11:45:47.892030 #31649] DEBUG -- : Sending sync_group API request 9 to <IP_ADDRESS>:9092
D, [2018-11-15T11:45:47.892172 #31649] DEBUG -- : Waiting for response 9 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:47.893699 #31649] DEBUG -- : Received response 9 from <IP_ADDRESS>:9092
I, [2018-11-15T11:45:47.893759 #31649]  INFO -- : Partitions assigned for `test`: 0
D, [2018-11-15T11:45:47.893835 #31649] DEBUG -- : Sending offset_fetch API request 10 to <IP_ADDRESS>:9092
D, [2018-11-15T11:45:47.893946 #31649] DEBUG -- : Waiting for response 10 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:47.894652 #31649] DEBUG -- : Received response 10 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:47.894763 #31649] DEBUG -- : Sending list_offset API request 11 to <IP_ADDRESS>:9092
D, [2018-11-15T11:45:47.894891 #31649] DEBUG -- : Waiting for response 11 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:47.895509 #31649] DEBUG -- : Received response 11 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:47.895575 #31649] DEBUG -- : No batches to process
D, [2018-11-15T11:45:49.895869 #31649] DEBUG -- : No batches to process
D, [2018-11-15T11:45:51.896244 #31649] DEBUG -- : No batches to process
D, [2018-11-15T11:45:53.896647 #31649] DEBUG -- : No batches to process
D, [2018-11-15T11:45:55.897181 #31649] DEBUG -- : Sending heartbeat...
D, [2018-11-15T11:45:55.897437 #31649] DEBUG -- : Sending heartbeat API request 12 to <IP_ADDRESS>:9092
D, [2018-11-15T11:45:55.898025 #31649] DEBUG -- : Waiting for response 12 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:55.901696 #31649] DEBUG -- : Received response 12 from <IP_ADDRESS>:9092
D, [2018-11-15T11:45:55.901914 #31649] DEBUG -- : No batches to process
D, [2018-11-15T11:45:57.902322 #31649] DEBUG -- : No batches to process
D, [2018-11-15T11:45:59.902792 #31649] DEBUG -- : No batches to process
D, [2018-11-15T11:46:01.903117 #31649] DEBUG -- : No batches to process
D, [2018-11-15T11:46:03.903329 #31649] DEBUG -- : No batches to process
D, [2018-11-15T11:46:05.903607 #31649] DEBUG -- : Sending heartbeat...
D, [2018-11-15T11:46:05.903819 #31649] DEBUG -- : Sending heartbeat API request 13 to <IP_ADDRESS>:9092
D, [2018-11-15T11:46:05.904195 #31649] DEBUG -- : Waiting for response 13 from <IP_ADDRESS>:9092
D, [2018-11-15T11:46:05.906975 #31649] DEBUG -- : Received response 13 from <IP_ADDRESS>:9092
D, [2018-11-15T11:46:05.907104 #31649] DEBUG -- : No batches to process
D, [2018-11-15T11:46:07.907335 #31649] DEBUG -- : No batches to process
D, [2018-11-15T11:46:09.907661 #31649] DEBUG -- : No batches to process
D, [2018-11-15T11:46:11.908041 #31649] DEBUG -- : No batches to process
D, [2018-11-15T11:46:13.908333 #31649] DEBUG -- : No batches to process
D, [2018-11-15T11:46:15.908703 #31649] DEBUG -- : Sending heartbeat...
D, [2018-11-15T11:46:15.908928 #31649] DEBUG -- : Sending heartbeat API request 14 to <IP_ADDRESS>:9092
D, [2018-11-15T11:46:15.909339 #31649] DEBUG -- : Waiting for response 14 from <IP_ADDRESS>:9092
D, [2018-11-15T11:46:15.912269 #31649] DEBUG -- : Received response 14 from <IP_ADDRESS>:9092
D, [2018-11-15T11:46:15.912423 #31649] DEBUG -- : No batches to process
D, [2018-11-15T11:46:17.912716 #31649] DEBUG -- : No batches to process
D, [2018-11-15T11:46:19.913157 #31649] DEBUG -- : No batches to process
D, [2018-11-15T11:46:21.913562 #31649] DEBUG -- : No batches to process
D, [2018-11-15T11:46:23.913873 #31649] DEBUG -- : No batches to process
D, [2018-11-15T11:46:25.914224 #31649] DEBUG -- : Sending heartbeat...
D, [2018-11-15T11:46:25.914422 #31649] DEBUG -- : Sending heartbeat API request 15 to <IP_ADDRESS>:9092
D, [2018-11-15T11:46:25.914780 #31649] DEBUG -- : Waiting for response 15 from <IP_ADDRESS>:9092
D, [2018-11-15T11:46:25.917449 #31649] DEBUG -- : Received response 15 from <IP_ADDRESS>:9092
D, [2018-11-15T11:46:25.917582 #31649] DEBUG -- : No batches to process
D, [2018-11-15T11:46:27.917852 #31649] DEBUG -- : No batches to process
D, [2018-11-15T11:46:29.918091 #31649] DEBUG -- : No batches to process
D, [2018-11-15T11:46:31.918532 #31649] DEBUG -- : No batches to process
D, [2018-11-15T11:46:33.918895 #31649] DEBUG -- : No batches to process
D, [2018-11-15T11:46:35.919178 #31649] DEBUG -- : Sending heartbeat...
D, [2018-11-15T11:46:35.919263 #31649] DEBUG -- : Sending heartbeat API request 16 to <IP_ADDRESS>:9092
D, [2018-11-15T11:46:35.919428 #31649] DEBUG -- : Waiting for response 16 from <IP_ADDRESS>:9092
D, [2018-11-15T11:46:35.920634 #31649] DEBUG -- : Received response 16 from <IP_ADDRESS>:9092
D, [2018-11-15T11:46:35.920679 #31649] DEBUG -- : No batches to process
D, [2018-11-15T11:46:37.920896 #31649] DEBUG -- : No batches to process
D, [2018-11-15T11:46:39.921328 #31649] DEBUG -- : No batches to process
D, [2018-11-15T11:46:41.921588 #31649] DEBUG -- : No batches to process
D, [2018-11-15T11:46:43.921981 #31649] DEBUG -- : No batches to process
D, [2018-11-15T11:46:45.922429 #31649] DEBUG -- : Sending heartbeat...
D, [2018-11-15T11:46:45.922665 #31649] DEBUG -- : Sending heartbeat API request 17 to <IP_ADDRESS>:9092
D, [2018-11-15T11:46:45.923090 #31649] DEBUG -- : Waiting for response 17 from <IP_ADDRESS>:9092
D, [2018-11-15T11:46:45.926399 #31649] DEBUG -- : Received response 17 from <IP_ADDRESS>:9092
D, [2018-11-15T11:46:45.926545 #31649] DEBUG -- : No batches to process

We've seen this as well.

We hit this too.

I've been hitting this as well. I think that this is a race condition introduced in https://github.com/zendesk/ruby-kafka/commit/dc7a9e41c1000218bd40e8d118016f5f63de7ed4 between the consumer shutdown and fetcher shutdown. The relevant log lines in the repro posted, which match what I've been seeing, are:
```I, [2018-11-15T11:45:46.880198 #31649]  INFO -- : Leaving group test
I, [2018-11-15T11:45:46.886084 #31649]  INFO -- : Joining group test
E, [2018-11-15T11:45:46.888230 #31649] ERROR -- : Failed to join group; resetting member id and retrying in 1s...
D, [2018-11-15T11:45:46.891057 #31649] DEBUG -- : Handling fetcher command: stop
I, [2018-11-15T11:45:46.891123 #31649]  INFO -- : Fetcher thread exited.
I, [2018-11-15T11:45:47.888428 #31649]  INFO -- : Joining group test
I, [2018-11-15T11:45:47.891911 #31649]  INFO -- : Joined group test with member id `ruby-kafka-06bcd4df-720f-4de6-b087-676d2bc04599````
The consumer loop stops the fetcher, leaves the group, and then tries to rejoin and restart the fetcher. However, since stopping the fetcher is now asynchronous (based on when the fetcher thread processes the stop command in the tight loop https://github.com/zendesk/ruby-kafka/blob/25b1060ee1be9817353c0c3eb5d90a40d714d9da/lib/kafka/fetcher.rb#L53), it looks like the consumer manages to start back up before it's actually stopped. Unfortunately this makes the fetcher restart (https://github.com/zendesk/ruby-kafka/blob/25b1060ee1be9817353c0c3eb5d90a40d714d9da/lib/kafka/consumer.rb#L390) a no-op, after which the fetcher finally does shut down unrecoverably.
I can confirm also that 0.7.2 does not have this issue, whereas 0.7.3 (with said patch) does.

Just put up https://github.com/zendesk/ruby-kafka/pull/687, which in my testing fixes this issue. Two things about which I'm not sure:

Is there any downside to waiting for the fetcher to stop? I don't see any.
Is there a good way to test this? I'm working on adding something to the functional specs, but since it's fixing a race condition this might require running for a couple seconds and seeing if things are ok (which is not a high-confidence test).

@anujdas Joining to wait for the fetcher thread is an okay fix for this issue. However, there are some other issues rather than this one. The root cause of them comes from the asynchronous handling of fetcher's commands. They causes a period of delay between receiving the commands til processing it. I'm thinking of moving all the commands handling to foreground and just let the fetching process in background. It would be a more integrity fix.

FYI it is still a problem.


feat(telescope): make nvchad style great again

Credit: ayamir/nvimdots
cc @vollowx @axieax
Before
results_title = false

results_title = true

After
results_title = false

results_title = true

LGTM!
* got notification while modifying ctp configs for the transparent bg :joy_cat:


CoffeeScript 1.4 is out

I see you already upgraded to 1.4 in 3ad8bffb0bfd8f3c1fd59dc8bf1f0ef2d056f0f3 , but there's no 0.2.4 release yet that includes the change. nbd, but it would be nice to have at some point

(repo is moribund)


Handbrake: Update to version 1.3.3

Handbrake no longer has the Handbrake subdirectory in the Portable EXE download in release 1.3.3

/verify


[BUILD-372] SHIP-0021: Waiter's Base Image

Changes
A #934 spinoff pull-request, to introduce the Waiter's base-image. The changes here are part of SHIP-0021 Local Source Upload.
Submitter Checklist

[x] ~Includes tests if functionality changed/was added~
[x] ~Includes docs if changes are user-facing~
[x] Set a kind label on this PR
[x] Release notes block has been filled in, or marked NONE

Release Notes
NONE

/assign @SaschaSchwarze0
Please consider the changes here, as you pointed out in the original pull-request review.

/assign @gabemontero @adambkaplan


cannot work

hello,when I run this command,it show below error, can you tell me what problem happen?thank you.

This works wor me:
echo gem \"whenever\" > plugins/redmine_activity_report/Gemfile
bundle install


Update link to Windows Management Framework 5 to RTM version

Update the link to Windows Management Framework 5 from the Production Preview to RTM version

Hi @MattKotsenas, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

This seems like a small (but important) contribution, so no contribution license agreement is required at this point. Real humans will now evaluate your PR.

TTYL, AZPRBOT;

@mthalman-msft - PR in the public repo to review

@tysonn: Changes look good.


[OKD4.12] Bootstrap install ostree error

Describe the bug
Bootstrap cant finish the installation because of the stage rebase to okd os image

Version

4.12
How reproducible

100% for me
Log bundle

test.tar.gz
Hey guys i am currently trying to install okd 4.12 cluster on bare metal with proxmox.
Haproxy PFsense and DNS are up and running.
when i try to boot up boostrap i get over and over again the same error in the rebase-to-okd-os-image stage
full gather below.
++ rpm-ostree rebase --experimental ostree-unverified-registry:quay.io/openshift/okd-content@sha256:ae04fc72f2532d27d75c628cd242d0ab3bd9ea8001e4333153ffc5db2bfb6a79
error: Invalid refspec ostree-unverified-registry:quay.io/openshift/okd-content@sha256:ae04fc72f2532d27d75c628cd242d0ab3bd9ea8001e4333153ffc5db2bfb6a79

record_service_exit 1

I am not sure if its a bug on okd or fedore coreos but i am using the recommended raw.xz

Linux version 5.12.12-300.fc34.x86_64

The initial FCOS is too old, see https://github.com/okd-project/okd/blob/master/FAQ.md#which-fedora-coreos-should-i-use


Youmagine integration

Hello,
I tagged this in a post on G+, but i realize that that network some times gets ignored. It would be really slick if there was a bidirectional link between openJSCAD and Youmagine. The Youmagine team seemed interested on G+.
Link, but currently shared privately.
https://plus.google.com/u/0/108963302569247799288/posts/fo87CQF3aC3

The above link is no longer working.

@camerin This might be an interesting discussion once 0.6.0 is released. Stay tuned.

Given the state of YouMagine (I will not go into details, but I worked for Ultimaker on Youmagine for the past 3 years) , this is pretty much a moot point at this stage.
Closing the issue, if things change we can always reopen.


Renamed the files

@Diptonil i have changed the files name as you told.Doing PR again

Good job on the changes.

@Diptonil Thank you. I'm a beginner. Learning a lot from you guys


Connect error from background worker to ui side

This makes sure that errors thrown from any worker triggers cancellation at GOSolver. It used to silently ignore error if thrown from the event handler.

So do we need #1070 or nah

we still need it.


Changelog: Fixes quotes for PatchOperation

Fixing syntax to resolve docs build HTML suggestion
Pull Request Template
Description
Please include a summary of the change and which issue is fixed. Include samples if adding new API, and include relevant motivation and context. List any dependencies that are required for this change.
Type of change
Please delete options that are not relevant.

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

Closing issues
To automatically close an issue: closes #IssueNumber

/azp run

#sign-off


Fixes missing zipkin service name and polishes span converters.

Missing service name:
Zipkin service names were logged as null, which is invalid and led to
them showing up as "unknown" in the zipkin ui. This was due to a wiring
bug, which this change fixes.
Polishing:
Zipkin timestamps were not always set as microseconds. This fixes that.
This also removes complexity in assigning timestamp and duration as we
no longer need to make pseudo-annotations "acquire" and "release".
Finally, this adds tests about above consistently to both scs-zipkin and
scs-zipkin-stream.

cc @marcingrzejszczak who noticed the bug

Nice, just cursory glance on mobile. Glad you're getting into sleuth code!

seems to improve things based on the e-e tests, so giving it a merge


Complex type support by @ModelAttribute

This code adds functionality to unwrap complex parameters, that were annotated with @ModelAttribute annotation.
Example:
Parameter List<MyObject> myObject;

Where:
MyObject {
    String a;
    Integer b;
    List<MyObject2> myObject2;
}

MyObject2 {
    Long c;
}

Will be unwrapped to:
myObject[#ind].a

myObject[#ind].b

myObject[#ind].myObject2[#ind].c

Hi. I'm sorry for the delay with answer.
At the swagger-ui or some other tools we will get something like:
myObject[#ind].myObject2[#ind].c
#ind - it's only my suggestion to mark array's indexes.
I'm not sure, that swagger-us's function "Try it out!" will work for requests with parameters like that.
My other suggestion was just to leave empty brackets (myObject[].myObject2[].c) with out any other markers. But that will help to try request with only one parameter in array.
My opinion, there should be some other way to introduce complex parameters at the ui level, the way different from just simple input fields and submit button.

And I'm opened for any other suggestions and solution for that issue:)

My opinion, there should be some other way to introduce complex parameters at the ui level, the way different from just simple input fields and submit button.

That way is to use the request body :)
Not sure what the right answer is, how about instead of #ind, we replace it with 0. That way the parameters are atleast accurate for one variation. What do you think?

I'm agree with you. That can partly solve the issue.
I will make commit with this changes.

Thanks for the PR! 🙇 Sorry it took so long to merge it in


Remove images from the context

File: docs/images/banner.png
�PNG

This is causing the context to become large

yes , that's true! I will word on removing certain  .jpg or .extension which doesn't contributes to the summary option. Thanks


Group by

How to add query group by field

From the Codeigniter documentation
$this->db->group_by()

Permits you to write the GROUP BY portion of your query:
$this->db->group_by("title"); // Produces: GROUP BY title

You can also pass an array of multiple values as well:
$this->db->group_by(array("title", "date"));  // Produces: GROUP BY title, date


Provisions nodes as ipv4 instead of ipv6 when there are control plane issues

Description
Observed Behavior:
Karpenter created ipv4 nodes in a ipv6 EKS cluster.
The nodeclaims were unable to get into status Initialized:
  Conditions:
    Last Transition Time:  2024-07-01T23:14:18Z
    Message:               KnownEphemeralTaint "node.cloudprovider.kubernetes.io/uninitialized=true:NoSchedule" still exists
    Reason:                KnownEphemeralTaintsExist
    Status:                False
    Type:                  Initialized
    Last Transition Time:  2024-07-01T23:12:20Z

The cloud controller was unable to provide node information:
I0702 07:23:04.241540      12 node_controller.go:229] error syncing 'ip-10-0-100-244.ap-northeast-2.compute.internal': failed to get node modifiers from cloud provider: provided node ip for node "ip-10-0-100-244.ap-northeast-2.compute.internal" is not valid: failed to get node address from cloud provider that matches ip: <IP_ADDRESS>, requeuing

Inspecting the user data of the created ec2 instances reveals that the instances are missing these flags (which are there for older nodes):
--ip-family ipv6 \
--dns-cluster-ip 'fdac:***:****::a' \

Killing karpenter pods and removing all stuck nodeclaims by hand did resolve the issue.
This AWS EKS cluster is known to have performance issues with the control plane. We have already seen this issue.  We are dealing with AWS support to get it fixed.
A bit of digging reveals that the decision to add the flags is dynamic.
Expected Behavior:
Karpenter should be able to provision IPV6 nodes even if the control plane is temporarily unavailable.
Having control over this setting directly would also be very useful?
Versions:

Karpenter CRD Chart Version: 0.37.0
Karpenter Chart version: 0.37.0
Kubernetes Version (kubectl version): v1.30.0-eks-036c24b
AWS terraform-aws-modules/eks/aws//modules/karpenter version: 20.8.5

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
If you are interested in working on this issue or have submitted a pull request, please leave a comment

Have you configured metadataOptions on your EC2nodeClass?  This gives you an option to enable IPv6 endpoint for your instances. This option is disabled by default. Can you share what your EC2nodeClass looks like?

@jigisha620 Thanks for the prompt response! We do not have that option enabled:
apiVersion: karpenter.k8s.aws/v1beta1
kind: EC2NodeClass
metadata:
  name: ${name}
spec:
  amiFamily: AL2
  role: ${role}
  subnetSelectorTerms:
    %{ for subnet_id in subnet_ids }
    - id: "${subnet_id}"
    %{ endfor }
  securityGroupSelectorTerms:
    - tags:
        karpenter.sh/discovery: ${cluster_name}
  tags:
    karpenter.sh/discovery: ${cluster_name}
  amiSelectorTerms:
    - id: ${ami_id}
  blockDeviceMappings:
    - deviceName: /dev/xvda
      ebs:
        volumeType: gp3
        volumeSize: ${disk_size_gi}Gi
        deleteOnTermination: true
        encrypted: true

Will the change to the metadata service affect the instance kubelet configuration? The corresponding code seems to use ClusterDNS IP: https://github.com/aws/karpenter-provider-aws/blob/e8a345723c8db785bd07b8595c395edbdfb9255b/pkg/providers/amifamily/bootstrap/eksbootstrap.go#L122

Hi @pelzerim,
You are right. I misunderstood. Wondering if you have specified ClusterDNS via spec.kubeletConfiguration since we rely on clusterDNS to pass --ip-family ipv6. If not, were you passing it earlier as I can see it from the information you have shared earlier.

@jigisha620 Sadly we could not find relevant logs (errors) form karpenter from around the time of the incident.
We however had kubernetes api throttling issues in the past with that cluster and i strongly suspect something in that direction. I've stumbled upon this FlowScheme here and we indeed do not run karpenter in the kube-system namespace. I've added the FlowScheme manually now and lets see if this goes away.

Hello @pelzerim,
I have the same problem here.


Good explanation of Map

Ruby-Doc can be difficult to parse and you did a good job of emphasizing the distinction between map, each and what they return.
  I like gist.github.com and using their embedded code feature.  Its probably good practice that you created a border around your paragraph elements for code and changed the font but gist will even color code your code sample based on the language you use and looks pretty good.  So check it out(if you feel like it!)

Thanks for the tip Chris!


Exception when browser learns about a deleted message it didn't have locally

This exception I saw in production error reporting only, but the cause is clear from reading the code:

A browser receives a notification from the server about a message having been deleted that had not been locally cached by the browser (e.g. because it was older than the batch of ~1200 messages the browser fetches from the server, or was on a stream the user had just subscribed to (but not narrowed to!) and the message had been sent before the user subscribes).

In that case, message_store.get(message_id) will return undefined, since the browser doesn't know about the message yet.  Then unread_ops.mark_message_as_read(message); will throw the below exception.  Were execution not stopped here, we'd also have a problem with the topic_data calls on the following lines.  I think the correct fix is probably to just (1) we should be calling unread_ops.process_read_messages_event, not unread_ops.mark_messages_as_read (the latter function only being correct for marking a message as having been read by this browser), and for the topic_data thing, I think for now it would work to just do nothing, but once we switch to server-managed unread counts, we'll want this code path to still call the topic_ops function.  So I think that means we want to change the delete_message event sent from the server to include the recipient data for the message (type, and (stream_id, topic) or (PM recipient user ID list)) required to do this correctly in the absence of the brower being able to look up the message.
Cannot read property 'id' of undefined

Stacktrace:
TypeError: Cannot read property 'id' of undefined
    at /static/min/app.23a9bf297e66.js:1569:79
       = static/js/unread.js line 341 column 36

    at Object.a.get_unread_messages (/static/min/app.23a9bf297e66.js:1569:44)
       = static/js/unread.js line 340 column 12

    at Object.mark_messages_as_read (/static/min/app.23a9bf297e66.js:1527:247)
       = static/js/unread_ops.js line 64 column 16

    at Object.mark_message_as_read (/static/min/app.23a9bf297e66.js:1528:6)
       = static/js/unread_ops.js line 84 column 5

    at Object.dispatch_normal_event (/static/min/app.23a9bf297e66.js:2170:344)
       = static/js/server_events_dispatch.js line 385 column 9

@shubham-padia FYI, since this in code you touched recently; do you agree with the solution for (1)?  Also @showell FYI.

@timabbott yep, the solutions sounds good.

Yes, I'm free now.

@zulipbot claim


Update Ywourkit Java Profiler to 2015-build-15054

You are updating an older version. You need to pull upstream changes before making yours. The merge conflict needs to be resolved.

Oh, sorry.
Fixed.


[DO NOT MERGE] Add plugin support to tap into the blocks stream

Closes #1701.
This is still a WIP to have early feedback on this feature, some tests are missing and documentation must be updated.
I've also created a sample plugin called console_print.

Codecov Report

Merging #1707 into master will decrease coverage by 73.39%.
The diff coverage is 22.5%.

@@            Coverage Diff             @@
##           master    #1707      +/-   ##
==========================================
- Coverage   98.46%   25.06%   -73.4%
==========================================
  Files          59       59
  Lines        2862     2884      +22
==========================================
- Hits         2818      723    -2095
- Misses         44     2161    +2117

Looking really good to me

@vrde : I see code to add queues. Is there any mechanism devoted to remove entries from the queue?
A client might connect to get a websocket event and then disconnect and go away forever, or connect with a new public IP or something else.

If addition or removal of plugins need a restart, then we should be good here.

Yup, adding or removing plugins need a restart, no hot loading here :fire_engine:.


Spirit angler not counting for anglerfish step in master clue

The new spirit angler pieces currently don't make the angler outfit list item to be checked on the master clue step to fish an anglerfish for Sherlock. Same deal as #13454

Duplicate of #13420


Neither #[changeset_options(treat_none_as_null="true")] or Option<Option> not working

Setup
Versions

Rust: 1.38
Diesel: 1.4.2
Database: Postgres
Operating System macos

Feature Flags

diesel:

Problem Description
Neither Option<Option> or #[changeset_options(treat_none_as_null="true")] not working. Compiler fails with
```error[E0277]: the trait bound std::option::Option<&str>: diesel::AppearsOnTable<schema::posts::table> is not satisfied
--> src/models.rs:17:10
|
17 | #[derive(AsChangeset)]
|          ^^^^^^^^^^^ the trait diesel::AppearsOnTable<schema::posts::table> is not implemented for std::option::Option<&str>
|
= note: required because of the requirements on the impl of diesel::AppearsOnTable<schema::posts::table> for &std::option::Option<&str>
= note: required because of the requirements on the impl of diesel::query_builder::AsChangeset for diesel::expression::operators::Eq<schema::posts::columns::title, &std::option::Option<&str>>
or
```error[E0277]: the trait bound `std::option::Option<&str>: diesel::AppearsOnTable<schema::posts::table>` is not satisfied
  --> src/models.rs:17:10
   |
17 | #[derive(AsChangeset)]
   |          ^^^^^^^^^^^ the trait `diesel::AppearsOnTable<schema::posts::table>` is not implemented for `std::option::Option<&str>`
   |
   = note: required because of the requirements on the impl of `diesel::AppearsOnTable<schema::posts::table>` for `&std::option::Option<&str>`
   = note: required because of the requirements on the impl of `diesel::query_builder::AsChangeset` for `diesel::expression::operators::Eq<schema::posts::columns::title, &std::option::Option<&str>>`

What are you trying to accomplish?
Trying to pass the second Diesel guide - AsChangeset section
What is the expected output?
Successful compilation
What is the actual output?
Errors
Are you seeing any additional errors?
No, just error from description
Steps to reproduce
Just follow http://diesel.rs/guides/all-about-updates/ AsChangeset section

Checklist

[+] I have already looked over the issue tracker for similar issues.
[+] This issue can be reproduced on Rust's stable channel. (Your issue will be
closed if this is not the case)

posts::title is a non nullable column therefore it make no sense to insert a null value there, as such an update statement would clause a runtime query error.
Diesel is catching that issue and refuses to compile the query.

@weiznich Got it, thanks, I thought that it is no matter if it the field nullable or not in the schema file


Correct window creation on X11

Follow-up of #523
Creating a window with X11 now uses the correct visual infos.

Confirmed working on windows.


feat: Ethereum "get_block_tx_count_by_hash"

Added query_block_tx_count_by_hash CLI command.
Added a new endpoint to query block txs count given a block hash on the Ethereum Network.
Implemented tests for Cli, Core and RestAPI
Updated ethers library

Pull Request type

Please check the type of change your PR introduces:

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no API changes)
[ ] Build-related changes
[ ] Documentation content changes
[ ] Testing
[ ] Other (please describe):

What is the current behavior?

Issue Number: N/A
What is the new behavior?

Does this introduce a breaking change?

[ ] Yes
[ ] No

Other information

Codecov Report
Base: 87.66% // Head: 87.55% // Decreases project coverage by -0.10% :warning:

Coverage data is based on head (c7aa18d) compared to base (f677e75).
Patch coverage: 84.00% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #143      +/-   ##
==========================================
- Coverage   87.66%   87.55%   -0.11%
==========================================
  Files          23       23
  Lines        1637     1687      +50
==========================================
+ Hits         1435     1477      +42
- Misses        202      210       +8

Impacted Files
Coverage Δ

...ore/src/lightclient/ethereum/helios_lightclient.rs
21.42% <0.00%> (-2.58%)
:arrow_down:

beerus_core/src/lightclient/ethereum/mod.rs
100.00% <ø> (ø)

beerus_cli/src/model.rs
64.28% <66.66%> (+0.08%)
:arrow_up:

beerus_rest_api/src/api/ethereum/endpoints.rs
94.79% <95.65%> (+0.13%)
:arrow_up:

beerus_cli/src/ethereum/mod.rs
100.00% <100.00%> (ø)

beerus_cli/src/runner.rs
83.58% <100.00%> (+0.50%)
:arrow_up:

beerus_rest_api/src/api/ethereum/resp/mod.rs
100.00% <100.00%> (ø)

beerus_rest_api/src/lib.rs
91.66% <100.00%> (+0.23%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

Ended mixing both in one haha, will close this one


New: reference collection

Used to make it easier to show native adjacent reference panel carousel:

Usage details:
Used on iOS when a reference is tapped to show a native panel which lets user drag side to side to see any info for references which were adjacent to the tapped reference. ie: if a lone reference is tapped ie [4] we show a panel with its reference text, but if that reference has adjacent references ie [3][4][5] the panel we show can be dragged side to side to see the references text for [3] and [5].
To use:
Pass isCitation the href string of the tapped reference anchor, if it returns true (on iOS we use it to determine if the type of the clicked item is reference) call collectNearbyReferences with the document and the tapped anchor element to extract relevant references info (iOS example) including a referencesGroup array and the index of the selected element selectedIndex from that group.
The each item in referencesGroup will contain:

id - id of the reference
rect - ClientRect of the reference (so you can do a native overlay dimming everthing but the tapped reference link ie [4])
text - the text of the tapped reference link ie [4]
html - the html/text of the reference from the actual reference at the bottom of the page (in the animation above this is everything shown below the horizontal line in the panels)

iOS native interface details:

On iOS we use it as outlined above to extract adjacent reference info, and we send that info across the iOS version of the JS/Native bridge.
We then present a native interface showing the adjacent reference group, with one panel per reference (the bottom of the panel has a web view for showing the reference html, but it just looks like part of the panel, as you can see in the animation).
The native code also applies an overlay with a cutout around the tapped ref.
It also scrolls the web view up if the native panel it presents would cover the tapped reference, as you can see in the animation when I tap reference [11].

Notes:

I also moved some utilities to NodeUtilities.js - apologies that this wasn't as separate commit.
I had to fairly heavily refactor the iOS implementation to modernize it a bit and make it more testable.
On iOS on tablet we only show the single tapped reference (no side-to-side sliding panels or dark overlay):

Thankyou @montehurd :) yay! i'm looking forward to use this!

@sharvaniharan You're welcome! I just edited the description with a few more details of how we use this on iOS. Let me know if you have any questions or issues :)

@montehurd works on Android now! @niedzielski will let you merge once the changes you have requested are in!

Re-review pending follow-ups from @montehurd.

@niedzielski I think I replied to and/or pushed commits to all your comments. Should be good for a re-review when you have time. Thanks again for the great feedback!

@niedzielski @montehurd can we merge this?

@niedzielski Heya! Just a head's-up I reverted 22bfca3 as it didn't work. I'll take a peek at the cause and undo the revert if I can suss it out :)

Edit: So it looks like it's not working because you're trying to call querySelector on a text node. btw sorry if some of these bits were a little hard to follow - I've tried to make it more grok-able than the original but there's certainly room for further improvement :)
Great! Thanks for diagnosing. I've added a test case for the scenario you've described and as I understand the desired behavior, and made the fix. Please be sure to check it out!

@niedzielski Your 5ae2c77 commit worked! Thanks!
If you have a sec there are a couple questions above:
https://github.com/wikimedia/wikimedia-page-library/pull/140#discussion_r198659298
https://github.com/wikimedia/wikimedia-page-library/pull/140#discussion_r194708228

@niedzielski btw thanks again for all the great comments and CR!!!

@niedzielski @montehurd merging this! thanks for all the review work you guys did!! 💯

I mentioned this PR on...
https://phabricator.wikimedia.org/T165432


Set SKIP_INSTALL = YES for SnapKit target

Resolves an xcodebuild issue when SnapKit is a subproject, xcodebuild fails to construct a valid app archive for the main project. See reference SO post
Also refer to the template framework xconfig file from jspahrsummers/xcconfigs - the git blame for the SKIP_INSTALL = YES change states

Enables the framework to be included from any location as long as the loader’s runpath search paths includes it. For example from an application bundle (inside the "Frameworks" folder) or shared folder

There is already a PR for this. #391

Ok closing this PR, it'd be great to get #391 merged


Update SampleDB example

This PR updates the SampleDB .eln export example, with the following changes that have been made to the development version of SampleDB in the meantime:

object references are included as a list of @id values in the mentions property of object datasets
object tags are included as a comma-separated string in the keywords property of object datasets
an additional object is included in the export to showcase the keywords and mentions properties
object ID is used as identifier for object datasets
File entries now correctly use encodingFormat instead of contentType

You guys can also comment on the validator directly. Now that it is a plain python file, changing is easy.
https://github.com/TheELNConsortium/TheELNFileFormat/pull/59

To check, how a previous version of your .eln runs in the current form of the validator, check the top entry at: https://github.com/SteffenBrinckmann/TheELNFileFormat/actions

To check, how a previous version of your .eln runs in the current form of the validator, check the top entry at: https://github.com/SteffenBrinckmann/TheELNFileFormat/actions

Cool, I'll also submit a fresh .eln later and try to make sure it doesn't emit warn/err :)

Thank you for the changes. works fine in Kadi4Mat too.


Filter account authentication by domain

The Azure tenancy includes other state agencies which shouldn't necessarily have access to the application. This affects all applications that use SOG authentication.

Closed by #112


Channel Description is not always updated

Hey there,
first off, I love this mod! It's amazing what you have done, and that there such a lightweight solution to a discord integration
I just stumbled across one issue, which is that the Channel description for some reason gets stuck to one value.
One server I'm running currently has the channel description
player count : 6/20,
uptime : 0 h 41 min 21 second

Even tho the sever has been running for almost 24 hours now, and the number of player fluctuates quite a bit over the day. I think 6 has been the max at one time yet, but I can't really say if that causes the issue.
Currently running FDLInk 0.4.4 on 1.16.1 with fabricApi 0.16 build 384 and lithium 0.5.1
Would be lovely if you could have a look into this :3
Thanks in advance!
~ Aza

This is not a bug but actually discords "fault" since it appears they are rate-limiting how often a bot can change a channel description to twice per 10 minutes (or every 5 minutes):
https://support.discord.com/hc/en-us/community/posts/360067755532-Increase-rate-limit-for-editing-channel-description
Also what I noticed in my testing is that discord seems to queue the API renaming requests. So according to your currently displayed runtime and assuming discord queues all API requests (which looks to be the case from my testing), your server should have been up for about 20.675 hours, which pretty much matches your description. Of course the playercount also shows the number of players who were online at (server start time + uptime).
Removing this feature is probably a good idea, since it can be implemented via commands like "!status", "!uptime" or "!playercount" and makes the bot compliant with discords rate limits (they can actually API ban you for heavy abuse).

Oh interesting!
Thank you so much for that info!
I really like the idea of the commands, but wouldn't it also be possible to just send updated every 10 minutes? I mean it wouldn't be as accurate, but at least a better representation - if you wanna keep that feature in that is.

The feature should be kept. Just do it like DiscordSRV, I believe they send updates only every X minutes.


Fix author name

Thank you for the clarification :) For me, there's no middle ground about names. I feel that dumbing down to English is a little bit insulting too. (Nearly all Chinese guys called James!) Names should be unique and those should be written as is. For instance, i'd like to call you Дмитрий (i hope it's correct) not Dimitry.


Update cache-troubleshoot-timeouts.md

This part of the docs is talking about increasing the timeout, but then sets it to a lower value than the default.

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

#sign-off


Add AddHtmlAttributeValues for TagHelpers.

Refactored WriteAttributeTo to allow re-use of some of the core attribute writing logic. The refactoring was based on removing the Begin/EndContext for instrumentation bits which isn't valid in a TagHelper attribute scenario.
Added unit tests to validate attributes are properly added to TagHelperExecutionContext.
Added functional test to validate everything is output as expected with dynamic attributes (encoded and non-encoded).

aspnet/Razor#247
Corresponding Razor pull request: https://github.com/aspnet/Razor/pull/475

/cc @ajaybhargavb @dougbu

:watch:

Updated.

:shipit:

:watch:


Response time is missing in the new HTML UI

HTML view shipped in >=2.0.0 contains less info than the former JSON.
The time - total and for each checker, the error and the output. I'd like to include at least response time in some way, to indicate some issues with the particular check.

How about adding red/orange/green icon next to the checkmark?
https://icons.getbootstrap.com/?q=reception

Icon looks cool, but times should be still visible in my opinion. (hover effect?)

Icon looks cool, but times should be still visible in my opinion. (hover effect?)

Why not both?

Updated in https://github.com/AckeeCZ/node-healthz/pull/5