scale~ default is actually modern (get it together max)

seriously... get it together!!!
so, do that to cyclone too?

here's the deal... classic mode is useless, old, buggy and everything... shouldn't even exist, but it was supposed to be the default for scale~ I think and it isn't - documentation doesn't say anything though...
well, for [scale] at least, classic is the default, so now it is really confusing on which one should be the default, cause documentation doesn't say anything and they are both inconsistent to each other...
I say we just make it both modern (non-classic) by default, I'd hate to make scale~ modern and scale not...

so scale appears first in Max 4.2 and was only classic and it stayed like that for all max 4 and 5 versions.
scale~ only appears in Max 6 at the time of when attributes came and the option for modern version... (non classic) - so it seems they screwed up and left it by default

then in max 6.0.4 they inverted the ratio for exponentials in modern mode...

well, since max can't get it together and also cause classic mode is buggy as hell, let's make it both modern by default, which will be much better and not inconsistent


Missing TypeScript definition

The plugin has a type definition, which is not available in the NPM package:

The result is the following:

@ilteoood
Please update your dependency version to v4.0.2
If there are any difficulties, please feel free to comment


Django forms for mutations

This is an enhancement request for supporting django forms like django-graphene does.  It would mean taking a django form, model or otherwise, and automatically generating an input type from the form and an output type which gives me the error forms, or, if successful, and a model form, the saved object.

Utilization of django forms is the only thing that keeps me using django-graphene. So I'm with @rossm6 on this feature request.

Since raising this enhancement request I've realised I could just do all the validaton at the model level.  Still I think it would be good to support forms also.

Hey guys,
I can see how this can be useful!
The current DjangoInputMutation (and its create_mutation, update_mutation and delete_mutation implementations) does some integration with django in a way that: It will change the return type to be a union of it with OperationInfo, which will contain any errors raised by ValidationError, ObjectDoesNotExist and PermissionDenied
So, this could be done by probably extending on it and creating the input type automatically by introspecting the django form.
This is a low priority for me since I don't actually use django forms in my projects, but I welcome anyone to try to implement this and I'll gladly review it to be a part of strawberry-django-plus :)

Since raising this enhancement request I've realised I could just do all the validaton at the model level. Still I think it would be good to support forms also.

Surely you can validate data on the model level, but forms allow you to enhance model schema with custom fields and neat validation for them that often gets useful.
As for me, when we're talking about building Graph QL server, forms are the best way to validate the mutation attributes, leaving for the resolver only business logic validation. Code becomes more clear and modular.

This is a low priority for me since I don't actually use django forms in my projects, but I welcome anyone to try to implement this and I'll gladly review it to be a part of strawberry-django-plus :)

Thanks! I didn't start with Strawberry yet, but at the moment I'm forced to lock my dependencies because of this issue. It's obvious that you would want to switch to something really maintained, which is Strawberry right now. Forms are the one thing that I'm missing right now, so at least I'll try to poke around and see how I could incorporate them into the existing suite.

@weareua Did you get anywhere with getting forms to work?  I was thinking of taking a look soon but the source code is completely new to me so any pointers will be helpful.

@rossm6 sorry, I didn't even manage to start it yet.

Greetings.
As far as I can see, it almost works out of the box for me.
I can apply django form validation by converting input data into django form and executing .is_valid method on it.
Then using custom ErrorType graph-ql type I can convert all gathered errors into the server response.
Things that are missing:

automatically convert input data into the django model object if id was provided
generate graph ql types from the form. But as far as I see strawberry django doesn't even provide this type of generation even for models.

Both things are not crucial so in general I'm happy with how I can interact with strawberry django integration. Here is my code:
# models.py
from django.db import models

class Fruit(models.Model):
    name = models.CharField(max_length=20)
    color = models.ForeignKey(
        'Color',
        related_name='fruits',
        on_delete=models.CASCADE
    )
    amount = models.IntegerField()

class Color(models.Model):
    name = models.CharField(max_length=20)

# helpers.py
from django.utils.functional import Promise
from django.utils.encoding import force_str
from strawberry.utils.str_converters import to_camel_case

def isiterable(value):
    try:
        iter(value)
    except TypeError:
        return False
    return True

def _camelize_django_str(s):
    if isinstance(s, Promise):
        s = force_str(s)
    return to_camel_case(s) if isinstance(s, str) else s

def camelize(data):
    if isinstance(data, dict):
        return {_camelize_django_str(k): camelize(v) for k, v in data.items()}
    if isiterable(data) and not isinstance(data, (str, Promise)):
        return [camelize(d) for d in data]
    return data

# types.py
from typing import List, Optional
from strawberry import auto, ID, input, type as output_type

import strawberry_django

from . import models
from .helpers import camelize

@output_type
class ErrorType:
    field: str
    messages: List[str]

    @classmethod
    def from_errors(cls, errors):
        data = camelize(errors)
        return [cls(field=key, messages=value) for key, value in data.items()]

@strawberry_django.type(models.Fruit, pagination=True)
class FruitType:
    id: auto
    name: auto
    color: "ColorType"

    @strawberry_django.field
    def upper_name(self) -> str:
        return self.name.upper()

@output_type
class FruitMutationResponse:
    errors: Optional[List[ErrorType]]
    response: Optional[FruitType]

@strawberry_django.type(models.Color, pagination=True)
class ColorType:
    id: auto
    name: auto
    fruits: List[FruitType]

# input types

@strawberry_django.input(models.Fruit)
class FruitInput:
    id: auto
    name: auto
    color: ID

@input
class DeleteFruitInput:
    fruit: ID

# forms.py
from django import forms
from django.core.exceptions import ValidationError
from .models import Fruit, Color

class FruitModelForm(forms.ModelForm):

    def clean(self):
        cleaned_data = super().clean()
        error_dict = {}
        name = cleaned_data.get('name')
        color = cleaned_data.get('color')
        if name == 'Apricot':
            error_dict['name'] = ValidationError('Apricots are not allowed!')
        if color.name == 'White':
            error_dict['color'] = ValidationError(
                'White color is not allowed!')

        if error_dict:
            raise ValidationError(error_dict)

    class Meta:
        model = Fruit
        fields = ('name', 'color')

class DeleteFruitModelForm(forms.Form):
    fruit = forms.ModelChoiceField(queryset=Fruit.objects.all())

# mutations.py
from copy import deepcopy
from .types import (
    FruitInput, DeleteFruitInput, ErrorType, FruitMutationResponse)
from .forms import (
    FruitModelForm, DeleteFruitModelForm)
from .models import Fruit

def fruit_mutation(
        self, info, data: FruitInput) -> FruitMutationResponse:
    response = None
    errors = []
    form = FruitModelForm(data.__dict__)
    if form.is_valid():
        if not data.id:
            fruit = form.save()
            response = fruit
        else:
            try:
                fruit = Fruit.objects.get(pk=data.id)
            except Fruit.DoesNotExist:
                errors.append(ErrorType(
                    field='id', messages=["Fruit doesn't exist"]))
            else:
                for key, value in form.cleaned_data.items():
                    setattr(fruit, key, value)
                fruit.save()
                response = fruit

    else:
        errors = ErrorType.from_errors(form.errors)

    return FruitMutationResponse(response=response, errors=errors)

def delete_fruit_mutation(
        self, info, data: DeleteFruitInput) -> FruitMutationResponse:
    response = None
    errors = []
    form = DeleteFruitModelForm(data.__dict__)
    if form.is_valid():
        obj = form.cleaned_data.get('fruit')
        deleted_obj = deepcopy(obj)
        obj.delete()
        response = deleted_obj
    else:
        errors = ErrorType.from_errors(form.errors)
    return FruitMutationResponse(response=response, errors=errors)

# schema.py
from typing import List

import strawberry
import strawberry_django
from strawberry_django_plus import gql
from strawberry_django_plus.optimizer import DjangoOptimizerExtension
from app.models import Fruit as FruitModel
from .types import (
    ColorType,
    FruitType,
    FruitMutationResponse,
)
from .mutations import (
    fruit_mutation, delete_fruit_mutation)

@strawberry.type
class Query:
    fruit: FruitType = strawberry_django.field()
    fruits: List[FruitType] = strawberry_django.field()

    color: ColorType = strawberry_django.field()
    colors: List[ColorType] = strawberry_django.field()

@gql.type
class Mutation:
    fruit: FruitMutationResponse = strawberry.mutation(
        resolver=fruit_mutation
    )
    delete_fruit: FruitMutationResponse = strawberry.mutation(
        resolver=delete_fruit_mutation
    )

schema = strawberry.Schema(query=Query, mutation=Mutation, extensions=[
    DjangoOptimizerExtension,
])

By the way, Query optimization extension just works, Thanks a lot!

Greetings.
As far as I can see, it almost works out of the box for me.
I can apply django form validation by converting input data into django form and executing .is_valid method on it.
Then using custom ErrorType graph-ql type I can convert all gathered errors into the server response.
Things that are missing:

automatically convert input data into the django model object if id was provided
generate graph ql types from the form. But as far as I see strawberry django doesn't even provide this type of generation even for models.

Both things are not crucial so in general I'm happy with how I can interact with strawberry django integration. Here is my code:
# models.py
from django.db import models

class Fruit(models.Model):
    name = models.CharField(max_length=20)
    color = models.ForeignKey(
        'Color',
        related_name='fruits',
        on_delete=models.CASCADE
    )
    amount = models.IntegerField()

class Color(models.Model):
    name = models.CharField(max_length=20)

# helpers.py
from django.utils.functional import Promise
from django.utils.encoding import force_str
from strawberry.utils.str_converters import to_camel_case

def isiterable(value):
    try:
        iter(value)
    except TypeError:
        return False
    return True

def _camelize_django_str(s):
    if isinstance(s, Promise):
        s = force_str(s)
    return to_camel_case(s) if isinstance(s, str) else s

def camelize(data):
    if isinstance(data, dict):
        return {_camelize_django_str(k): camelize(v) for k, v in data.items()}
    if isiterable(data) and not isinstance(data, (str, Promise)):
        return [camelize(d) for d in data]
    return data

# types.py
from typing import List, Optional
from strawberry import auto, ID, input, type as output_type

import strawberry_django

from . import models
from .helpers import camelize

@output_type
class ErrorType:
    field: str
    messages: List[str]

    @classmethod
    def from_errors(cls, errors):
        data = camelize(errors)
        return [cls(field=key, messages=value) for key, value in data.items()]

@strawberry_django.type(models.Fruit, pagination=True)
class FruitType:
    id: auto
    name: auto
    color: "ColorType"

    @strawberry_django.field
    def upper_name(self) -> str:
        return self.name.upper()

@output_type
class FruitMutationResponse:
    errors: Optional[List[ErrorType]]
    response: Optional[FruitType]

@strawberry_django.type(models.Color, pagination=True)
class ColorType:
    id: auto
    name: auto
    fruits: List[FruitType]

# input types

@strawberry_django.input(models.Fruit)
class FruitInput:
    id: auto
    name: auto
    color: ID

@input
class DeleteFruitInput:
    fruit: ID

# forms.py
from django import forms
from django.core.exceptions import ValidationError
from .models import Fruit, Color

class FruitModelForm(forms.ModelForm):

    def clean(self):
        cleaned_data = super().clean()
        error_dict = {}
        name = cleaned_data.get('name')
        color = cleaned_data.get('color')
        if name == 'Apricot':
            error_dict['name'] = ValidationError('Apricots are not allowed!')
        if color.name == 'White':
            error_dict['color'] = ValidationError(
                'White color is not allowed!')

        if error_dict:
            raise ValidationError(error_dict)

    class Meta:
        model = Fruit
        fields = ('name', 'color')

class DeleteFruitModelForm(forms.Form):
    fruit = forms.ModelChoiceField(queryset=Fruit.objects.all())

# mutations.py
from copy import deepcopy
from .types import (
    FruitInput, DeleteFruitInput, ErrorType, FruitMutationResponse)
from .forms import (
    FruitModelForm, DeleteFruitModelForm)
from .models import Fruit

def fruit_mutation(
        self, info, data: FruitInput) -> FruitMutationResponse:
    response = None
    errors = []
    form = FruitModelForm(data.__dict__)
    if form.is_valid():
        if not data.id:
            fruit = form.save()
            response = fruit
        else:
            try:
                fruit = Fruit.objects.get(pk=data.id)
            except Fruit.DoesNotExist:
                errors.append(ErrorType(
                    field='id', messages=["Fruit doesn't exist"]))
            else:
                for key, value in form.cleaned_data.items():
                    setattr(fruit, key, value)
                fruit.save()
                response = fruit

    else:
        errors = ErrorType.from_errors(form.errors)

    return FruitMutationResponse(response=response, errors=errors)

def delete_fruit_mutation(
        self, info, data: DeleteFruitInput) -> FruitMutationResponse:
    response = None
    errors = []
    form = DeleteFruitModelForm(data.__dict__)
    if form.is_valid():
        obj = form.cleaned_data.get('fruit')
        deleted_obj = deepcopy(obj)
        obj.delete()
        response = deleted_obj
    else:
        errors = ErrorType.from_errors(form.errors)
    return FruitMutationResponse(response=response, errors=errors)

# schema.py
from typing import List

import strawberry
import strawberry_django
from strawberry_django_plus import gql
from strawberry_django_plus.optimizer import DjangoOptimizerExtension
from app.models import Fruit as FruitModel
from .types import (
    ColorType,
    FruitType,
    FruitMutationResponse,
)
from .mutations import (
    fruit_mutation, delete_fruit_mutation)

@strawberry.type
class Query:
    fruit: FruitType = strawberry_django.field()
    fruits: List[FruitType] = strawberry_django.field()

    color: ColorType = strawberry_django.field()
    colors: List[ColorType] = strawberry_django.field()

@gql.type
class Mutation:
    fruit: FruitMutationResponse = strawberry.mutation(
        resolver=fruit_mutation
    )
    delete_fruit: FruitMutationResponse = strawberry.mutation(
        resolver=delete_fruit_mutation
    )

schema = strawberry.Schema(query=Query, mutation=Mutation, extensions=[
    DjangoOptimizerExtension,
])

By the way, Query optimization extension just works, Thanks a lot!

Thank you very much for this - it will certainly save me some time.
@bellini666 In theory is it possible to create the input_type dynamically from a form (so taking the model and fields from the form) using the technologies already available in strawberry-django, and, or, strawberry-django-plus?

It took me some time to figure things out as well. Unfortunately, strawberry-django tutorials sort of force us to use generic mutation shortcuts. I think that's not the best idea because usually you would want to customize that behavior, and it's not easy to find the example of how we can bring our own mutation resolvers to play.
By the way, I updated the example above to show how we can DRY mutation response types using strawberry interfaces.

ExampleInput = strawberry.input(     make_dataclass(         "ExampleInput",         [             ("something", str),         ],     ) )


[FLINK-32498][table] Fix the problem of array_max return type, it sho…

the return type is not right. it should always return nullable.
because we don't know the value whether is null in compile procedure, only can know in the runtime.
for example:
ddl :
CREATE TABLE data_source (
  a array<int not null> not null
) WITH (
  'connector'='xxx',
);

// the element is array(), that is to say, empty array. the result is null.
// if the return type is int not null, how to save null value.
select array_max(a) from data_source;
spark
case class ArrayMax(child: Expression)
  extends UnaryExpression with ImplicitCastInputTypes with NullIntolerant {

  override def nullable: Boolean = true
  @transient override lazy val dataType: DataType = child.dataType match {
    case ArrayType(dt, _) => dt
    case _ => throw new IllegalStateException(s"$prettyName accepts only arrays.")
  }

hi @dawidwys , the important part i add comments, it  will be convenient for review.

the return type is not right. it should always return nullable.

It seem the return in this class is always nullable. so why you change it?
/** Specific {@link TypeStrategy} for {@link BuiltInFunctionDefinitions#ARRAY_MAX}. */
@Internal
public class ArrayElementOutputTypeStrategy implements TypeStrategy {
    @Override
    public Optional<DataType> inferType(CallContext callContext) {
        DataType inputDataType = callContext.getArgumentDataTypes().get(0);
        if (inputDataType.getLogicalType().getTypeRoot() != LogicalTypeRoot.ARRAY) {
            return Optional.empty();
        }
        final DataType elementDataType = ((CollectionDataType) inputDataType).getElementDataType();
        if (inputDataType.getLogicalType().isNullable()) {
            return Optional.of(elementDataType.nullable());
        } else {
            return Optional.of(elementDataType);
        }
    }
}

So can you tell which cases will have bug during use this TypeStrategy, I've been thinking about this for a long time.

the return type is not right. it should always return nullable.

It seem the return in this class is always nullable. so why you change it?
/** Specific {@link TypeStrategy} for {@link BuiltInFunctionDefinitions#ARRAY_MAX}. */
@Internal
public class ArrayElementOutputTypeStrategy implements TypeStrategy {
    @Override
    public Optional<DataType> inferType(CallContext callContext) {
        DataType inputDataType = callContext.getArgumentDataTypes().get(0);
        if (inputDataType.getLogicalType().getTypeRoot() != LogicalTypeRoot.ARRAY) {
            return Optional.empty();
        }
        final DataType elementDataType = ((CollectionDataType) inputDataType).getElementDataType();
        if (inputDataType.getLogicalType().isNullable()) {
            return Optional.of(elementDataType.nullable());
        } else {
            return Optional.of(elementDataType);
        }
    }
}

So can you tell me which cases will have bug when you use this TypeStrategy, I've been thinking about this for a long time. By the way, if you want change code, why don't use change the code base on this class
like this
/** Specific {@link TypeStrategy} for {@link BuiltInFunctionDefinitions#ARRAY_MAX}. */
@Internal
public class ArrayElementOutputTypeStrategy implements TypeStrategy {
    @Override
    public Optional<DataType> inferType(CallContext callContext) {
        DataType inputDataType = callContext.getArgumentDataTypes().get(0);
        final DataType elementDataType = ((CollectionDataType) inputDataType).getElementDataType();
        return Optional.of(elementDataType);
    }
}

if you remove this Class, it seem you have to change more Classes. If the bug exits, it seem only remove the if statement can solve the problem. So why we have to change lots of other Classes? @liuyongvs

@hanyuzheng7
we don't every function's type create a new class.
if you look the calcite code, you will know why？

if it can get directly, like this https://github.com/apache/calcite/commit/baa6b104f33a851e419bd95e18acf3766aa19838
in flink like map_keys/map_values/map_entries
if it can not get directly, like this https://github.com/apache/calcite/commit/313b9580591f3816e498feb26a8953602c6029c0
in flink like other functions type
so flink shold do it too.

@hanyuzheng7  Thank you. I will see them.

Could we add a test case for the empty array in CollectionFunctionsITCase? We can do that via a UDF.
    public static class CreateEmptyArray extends ScalarFunction {
        public @DataTypeHint("ARRAY<INT NOT NULL>") int[] eval() {
            return new int[]{};
        }
    }

.withFunction(CreateEmptyArray.class)
.testResult(call("CreateEmptyArray").arrayMax(), "ARRAY_MAX(CreateEmptyArray())", null, DataTypes.INT())

@dawidwys I can fix it and add this test on Array_min method.

Although after adding this test case, all test can pass. But the sql-client also report error.

hi @hanyuzheng7 , you may don't understand the real problem when you reviewed.
i submit the comments before, just for convenient to review.
if you test empty array in sql-client. you should create function as array_empty using  ***. CreateEmptyArray
then select array_max(array_empty())
comments:
why not add unit test
new Integer[]{}, because the flink's array constuctor function is different from spark
flink should contain at least 1 args.
spark can contain zero arg, for example array()
but they both can be empty array, for example, udf, user can constuct empty array by themself

Although after adding this test case, all test can pass. But the sql-client also report error.

.withFunction(CreateEmptyArray.class)
.testResult(call("CreateEmptyArray").arrayMax(), "ARRAY_MAX(CreateEmptyArray())", null, DataTypes.INT())

@dawidwys good  suggestion, i found some exmple in JsonFunctionsITCase like CreateMultiset/CreateStructuredType

hi @dawidwys add the udf test.

hi @hanyuzheng7 , you may don't understand the real problem when you reviewed. i submit the comments before, just for convenient to review. if you test empty array in sql-client. you should create function as array_empty using ***. CreateEmptyArray then select array_max(array_empty()) that is why @dawidwys suggest add a user defined function to cover this
comments:
why not add unit test
new Integer[]{}, because the flink's array constuctor function is different from spark
flink should contain at least 1 args.
spark can contain zero arg, for example array()
but they both can be empty array, for example, udf, user can constuct empty array by themself

Although after adding this test case, all test can pass. But the sql-client also report error.

ok. I got it.


Error message on zip 30328

I entered my zip, 30328, on the input screen and received the message “Please provide valid zip code”.  30328 is a valid zip code covering a portion of north Atlanta and Sandy Springs, GA.

Error seems to be transient.  It occurred when the iPad tried to prepopulate the address from my profile.  When I opened a new page and entered the zip manually, the correct information loaded.

Thanks for opening this issue and closing it when you couldn't reproduce. I tried to repro myself by adding some extra whitespace around the zip, but couldn't get the app to error either. But appreciate you reporting the issue in any case!

👌


Q: ChIPSeq calling peaks with SPMR

Hello, I am running the command below
macs2 callpeak -t 18.chip.sorted.bam
-c 12.input.sorted.bam
-f BAMPE -g hs --broad-cutoff 0.1 -B --SPMR -n His_Rep2
--outdir /SPMR/eachind
I understand that when using SPMR I can use this to visualize signal tracks and should not use it for calling peaks from the bedgraphs subsequently generated but can I use the peaks bed/xls file that is generated after running the above command? I think that is fine?

I guess a follow up is if using the file is fine why would you use bgdiff and not just look at the peaks being called? Why do the added step? Does it just call better peaks?

@bioinfograd Thanks for asking! Yes. You can use the peaks bed/xls generated from callpeak --SPMR since the option --SPMR only affects the bedGraph output.
Regarding your follow-up question on bdgdiff, the differential peak calling is not simply a peak-overlapping process. Same as differential gene expression analysis, a gene is regarded as 'expressed' in both conditions -- i.e. above certain FPKM cutoff in both conditions, doesn't mean it is not differentially expressed.


Output/Import Error

Getting some odd errors 'Error:  attribute d: Expected number, "…L20 40L20 40L20 NaN".' and 'Error:  attribute d: Expected number, "M15 NaNH25L20 NaNL15…".' when attempting to do imports programaigcally from data loaded in a database. One item of note, all errors seem to be coming from line 583.
The HTML will draw the graph fine, then when the import rearrange is fired the error presents itself. It will also throw the error any time I drag a block after the failed import.
In troubleshooting Im a bit of a loss as to what the proper structure of output/import should look like. The output creates three variables, blockarr, blocks and html. However, the import only uses html and assigns blocks the value of blockarr.
This is confusing as blocks and blockarr are created differently in the output. Can someone please provide some guidance on how output/import should be working?

Identified the error. Encoding/decoding the input/output is converting to int to strings. Think this could be solved by parsing out the block properties at import time and converting them to ints.
        flowy.import = function(output) {             canvas_div.innerHTML = output.html;             for (var a = 0; a < output.blockarr.length; a++) {                 var block = {                     childwidth: parseInt(output.blockarr[a].childwidth),                     parent: parseInt(output.blockarr[a].parent),                     id: parseInt(output.blockarr[a].id),                     x: parseInt(output.blockarr[a].x),                     y: parseInt(output.blockarr[a].y),                     width: parseInt(output.blockarr[a].width),                     height: parseInt(output.blockarr[a].height)                 };                 blocks.push(block)             }             if (blocks.length > 1) {                 rearrangeMe();             }         }

Fixed the import issue, although parsing as float to account for decimal values. Regarding the size issue - you mean the flowchart renders differently depending on the window size, or you mean zoom? Feel free to make a new issue to be able to look at it separately, I'll close this as the original issue has been resolved.


ICAO and GTS headers

[ ] Need to decide on how to maintain and manage GTS headers during the transition

[ ] something for INFCOM-3

Starting with the operational phase of WIS2 i would suggest to freeze GTS headers.


Delay announcement error logging

Before this change, as Trino starts up, a flurry of exceptions are
logged at the ERROR level as workers try to contact the coordinator.
These errors typically end after a few milliseconds, but they
pollute the logs.  This commit logs these exceptions at the
DEBUG level for the first 500ms after the first request, thereafter
logging at the ERROR level as before.

I would also like to suppress error logging of this trino-worker exception we see during trino cluster suspend.  Would it be ok to always log the exception at the debug level?
io.airlift.discovery.client.DiscoveryException: Unannouncement failed for http://trino-coordinator-service
	at io.airlift.discovery.client.HttpDiscoveryAnnouncementClient$DiscoveryResponseHandler.handleException(HttpDiscoveryAnnouncementClient.java:195)
	at io.airlift.http.client.jetty.JettyResponseFuture.failed(JettyResponseFuture.java:120)
	at io.airlift.http.client.jetty.BufferingResponseListener.onComplete(BufferingResponseListener.java:85)
	at org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:218)
	at org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:210)
	at org.eclipse.jetty.client.HttpExchange.notifyFailureComplete(HttpExchange.java:276)
	at org.eclipse.jetty.client.HttpExchange.abort(HttpExchange.java:247)
	at org.eclipse.jetty.client.HttpConversation.abort(HttpConversation.java:164)
	at org.eclipse.jetty.client.HttpRequest.abort(HttpRequest.java:819)
	at org.eclipse.jetty.client.HttpDestination.abort(HttpDestination.java:502)
	at org.eclipse.jetty.client.HttpDestination.failed(HttpDestination.java:252)
	at org.eclipse.jetty.client.AbstractConnectionPool$FutureConnection.failed(AbstractConnectionPool.java:557)
	at org.eclipse.jetty.client.HttpClient$1.failed(HttpClient.java:621)
	at org.eclipse.jetty.util.SocketAddressResolver$Async.lambda$resolve$1(SocketAddressResolver.java:192)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
	at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.net.UnknownHostException: trino-coordinator-service
	at java.base/java.net.InetAddress$CachedAddresses.get(InetAddress.java:948)
	at java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1628)
	at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1494)
	at org.eclipse.jetty.util.SocketAddressResolver$Async.lambda$resolve$1(SocketAddressResolver.java:170)
	... 3 more

@electrum - - That leaves the last announcement-related log pollution, logging of by workers that the cannot reach the coordinator to unannounce.  I'd like to get rid of this error logging.
io.airlift.discovery.client.DiscoveryException: Unannouncement failed for http://trino-coordinator-service
	at io.airlift.discovery.client.HttpDiscoveryAnnouncementClient$DiscoveryResponseHandler.handleException(HttpDiscoveryAnnouncementClient.java:195)
	at io.airlift.http.client.jetty.JettyResponseFuture.failed(JettyResponseFuture.java:120)
        ...
Caused by: java.net.UnknownHostException: trino-coordinator-service
	at java.base/java.net.InetAddress$CachedAddresses.get(InetAddress.java:948)
        ...

Here is the response handler's handleException method, which throws under four conditions.  How about if we just don't throw in the last two conditions when we are unannouncing?
        @Override
        public final T handleException(Request request, Exception exception)
        {
            if (exception instanceof InterruptedException) {
                throw new DiscoveryException(name + " was interrupted for " + uri);
            }
            if (exception instanceof CancellationException) {
                throw new DiscoveryException(name + " was canceled for " + uri);
            }
            if (exception instanceof DiscoveryException) {
                throw (DiscoveryException) exception;
            }

            throw new DiscoveryException(name + " failed for " + uri, exception);
        }

How about we make it at WARN level? This only happens when the cluster is shutting down, so it shouldn't be ERROR.

How about we make it at WARN level? This only happens when the cluster is shutting down, so it shouldn't be ERROR.

I'm not sure what's a good place to trap the error - - right now it's propagating all the way down to the thread launch.
But maybe shouldn't worry about this one.  Right now, we're getting ~700/day in prod, so there are bigger fish to fry.


AuthorizationServerMetadataResolver performs unnecessary fetches if the authorization server URL has path components

Private functions AuthorizationServerMetadataResolver.fetchOIDCProviderMetadata and fetchAuthorizationServerMetadata perform unnecessary network requests if the authorization server URL has path components.
The RFC8414 specification (that is also quoted in a comment in the code) states that the well-known path is "formed by inserting a well-known URI string into the authorization server's issuer identifier between the host component and the path component, if any." The implementation first, contrary to the specification, appends the well-known path to the URI, attempts to fetch the metadata from the (incorrectly constructed) URL and if it fails, constructs the URL correctly by inserting the well-known path before the authorization server URL's path components. The code path that appends the path is unnecessary and should be removed. With it the local modifyURL extension can be removed too.

Hello @srosenda, thank you for pointing this out. We acknowledge the issue and hope this will indeed be a temporary measure.
There are specific reasons behind this approach; for more details, please see this comment, where we explain our rationale.

Hello @srosenda, thank you for pointing this out. We acknowledge the issue and hope this will indeed be a temporary measure.
There are specific reasons behind this approach; for more details, please see this comment, where we explain our rationale.

OK, thanks for explaining this. A TODO or similar comment in the code would be good for cases like this. It could also be better that the implementation attempts the correctly formed URL first and have the incorrectly formed as the fallback?


Move underline away from heading

Maybe it is opinionated but i find this very disturbing.

I will submit PR soon.


Unsafe prefix for blob links

Links to blob images marked with prefix "unsafe:"
During linking of ngImg image link is set via $compile.$set which checks normalized value via regular expression:
  if (normalizedVal !== '') {
    if ((key === 'href' && !normalizedVal.match(aHrefSanitizationWhitelist)) ||
        (key === 'src' && !normalizedVal.match(imgSrcSanitizationWhitelist))) {
      this[key] = value = 'unsafe:' + normalizedVal;
    }
  }

where imgSrcSanitizationWhitelist equals to /^\s*(https?|ftp|file):|data:image\//
This RegExp doesn't allow blob link, which created using URL.createObjectURL
Created link using Chrome: blob:http%3A//<IP_ADDRESS>%3A8080/38272f8d-7435-4cfd-bb64-93c8ca8d92c4
Created by Firefox: blob:53210633-5257-4767-b862-34c3cc50013c
Related issue https://github.com/angular/angular.js/issues/2570 Affected versions till v1.2.0-rc.2

     download resume

    var app = angular.module("myApp", []);

        app.config(['$compileProvider', function($compileProvider) {
             $compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|local|data|chrome-extension):/);
            $compileProvider.imgSrcSanitizationWhitelist(/^\s*(https?|local|data|chrome-extension):/);

            }]);

     download resume

    var app = angular.module("myApp", []);

        app.config(['$compileProvider', function($compileProvider) {
             $compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|local|data|chrome-extension):/);
            $compileProvider.imgSrcSanitizationWhitelist(/^\s*(https?|local|data|chrome-extension):/);

            }]);

can you please explain me step by step process, how to use this, i dont know where to add the aHrefSanitizationWhitelist and in which config file, or in some Ts file. I am very new to Angular ,and facing the issue to show images from fileshare

I think I misunderstand this, if it is important and it makes a security flaw on Angular, why it works when using background-image into CSS but not into image ?


Error with a black screen when starting up

I tried installing in a lot of different ways, like via aur or files, but it didn't help. I'm utilizing Endeavouros.

+1 So irritating.

Please change the renderApi let see if it works?
https://github.com/amir1376/ab-download-manager/issues/94#issuecomment-2406937262

Please change the renderApi let see if it works? #94 (comment)

Nothing happened for all the 4 values mentioned.

OPENGL (you are using it now, Open GL)
DIRECT3D (uses DirectX)
SOFTWARE_COMPAT
SOFTWARE_FAST

No luck, closed the app (fully) and then restarted the app after every change

I can also report having this issue on the Fedora 41 KDE spin, with Wayland

@amir1376 bhai.. please fix this... i am unable to use this awesome app ... infact i downloaded the latest version too... 1.4.4 ... that is still the same.
For the info... I am using the Portable Version.


escape HTML in documentation

Corrected fixes for HTML escape of "".

Thank you! This will be deployed with the next release.


URGENT(!)  Please add new features: image_scan_aggregation_enabled  swarm_polling_disabled

File: ee/ucp/admin/configure/ucp-configuration-file.md
image_scan_aggregation_enabled  from ENGORC-2746
swarm_polling_disabled from ENGORC-2722

Issue resolved via https://github.com/docker/docker.github.io/pull/9887. There may be additional updates in the future.


perf: optimize import store

Signed-off-by: moweiwei<EMAIL_ADDRESS>
What type of PR is this?

What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes #
Special notes for reviewers:

Does this PR introduced a user-facing change?

Additional documentation, usage docs, etc.:

Codecov Report

Merging #189 (95c4021) into master (7171881) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #189   +/-   ##
=======================================
  Coverage   47.46%   47.46%
=======================================
  Files           7        7
  Lines         573      573
  Branches      155      155
=======================================
  Hits          272      272
  Misses        235      235
  Partials       66       66

/lgtm
/approve


Putting column values into an array

Hi! How would I pluck the values of a tables column and place them into a normal swift array?? This is what I have so far but I don't know where to go from here:
`do {
        let fetchUsers = db.table.filter(Title == "Bob")
        let emails = fetchUsers(email)
        let emailArray = Array(try db.prepare(emails))

    } catch {
        print(error)
    }`

please use stackoverflow


Multiple arguments in interface

Fix #14.

[x] Define an Arguments type wrapping a NamedTuple
[x] Add an automatic check to Interfaces.test verifying that each test object is either

of the given type O
of type Argument with the given type O for its first field

[x] Write a test suite for multiple arguments (the GroupInterface)
[x] Write documentation

Codecov Report

Merging #16 (febeec1) into main (f52e483) will increase coverage by 4.89%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main      #16      +/-   ##
==========================================
+ Coverage   77.35%   82.25%   +4.89%
==========================================
  Files           4        4
  Lines         106      124      +18
==========================================
+ Hits           82      102      +20
+ Misses         24       22       -2

Files
Coverage Δ

src/arguments.jl
100.00% <100.00%> (ø)

src/test.jl
80.45% <100.00%> (+2.68%)
:arrow_up:

... and 2 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

But if we dont check the type what proof do qe have that the test object is the same as the type we are declaring implements the interface?
Or does thst check happen elsewhere?

There has to be a little policing... so that passing the tests means something to other users.
I originally had this all locked down so there was no way the traits could work without the correct tests passing. Running tests in precompilstion can guarantee this and I think we should remain open to returning yo that stratedgy.
Maybe we need a standard argument name for the target object rather than the first, then the tesrs are easier to read.

But in the group scenario for instance there are several target objects

Maybe Arguments{T} where T is the interface-implementing type? And then we check in the background that at least one field of args subtypes T?

That way we can test at argument construction

Although that will make the implementer soe ify the type in Arguments. But we already have it available in test so we can just check all argument types there?
Im  still wondering if maybe we can get the correct argument name from @implements somehow so its totally locked down.
But maybe we dont have to get it perfect straight away.

How about:

The instances of the interface-implementing type must have a name starting with obj (which allows obj1 and obj2)
There must be at least one such instance in the fields of an Arguments

Yes thst could work. Lets sit on this for a while and just tests that any one argument matches the type in test fir now

Ok I'll write that. Just a silly question: given a tuple type Tuple{Int,Float64,String}, how would you list the field types?

fieldtypes(T)?
Or just map over the values with
any(map(x -> x isa T, nt(args)))

Yeah I wanted to deduce it from the type itself but fieldtypes didn't work, just wondered if you had encountered that before. I'll check the values instead

@rafaqz this should be good to go as a first draft, even if we end up refining it later

Ok looks like it just needs a rebase

done


Can't Hide Diacritics Debug Message

I do not see a way to disable the "Detected # diacritics" message that Tesseract generates. I've looked through the list of variables that are listed on this page.
Is there a way to turn this message off?

Try:
api.SetVariable("debug_file", "/dev/null");


Add support for more features in helm chart

add init container support
add sidecar container support
add emptyDir volume support

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

ready for review

@weeco all sorted


Make it possible to have partially discriminated unions

Suggestion
I want to be able to write code like this:
type MyElement = { tag: 'img', src: string } | { tag: 'a', href: string } | { tag: string };

function f(el: MyElement) {
    if (el.tag === 'img') {
        console.log({ src: el.src });
    } else if (el.tag === 'a') {
        console.log({href: el.href })
    } else {
        console.log('other element');
    }
}

However, in the first branch, TypeScript doesn't want to decide whether I have a { tag: 'img', src: string } or just a {tag: string}.
I understand that strictly speaking, it is correct, but in practice I have found myself wanting to write code like this a few times and failed.
Solutions I can think of is to either:

Make it "just work", or
Allow the use of a type like Exclude<string, 'img' | 'a'>, or
Add some kind of qualifier so I can write something like  { tag: fallback string } or something.

🔍 Search Terms
discriminated union
discriminated union fallback
exclude string
✅ Viability Checklist
My suggestion meets these guidelines:

[x] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[x] This wouldn't change the runtime behavior of existing JavaScript code
[x] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
[x] This feature would agree with the rest of TypeScript's Design Goals.

I agree this is a shadow duplicate of negated types. Soundness trade-offs are made when the upside is very high and I don't think this meets the bar.


Freesurfer license not found.

What happened?
I am trying to run fmriprep from docker and I am giving the freesurfer license key path, however it doesn't work.
I am running on Windows. Below is proof that the path of the license file is correct.
I even tried defining the .txt file as an environment variable, that also didn't work.
What command did you use?
PS F:\Ajay\prep> docker run -ti --rm -v /f/Ajay/prep/bids_data:/data:ro -v /f/Ajay/prep/output:/out nipreps/fmriprep /data /out participant --fs-license-file /f/Ajay/prep/freesurfer.txt
2024-09-05 09:20:18,080 [ WARNING] WARNING: SOCKS support in urllib3 requires the installation of optional dependencies: specifically, PySocks.  For more information, see https://urllib3.readthedocs.io/en/latest/advanced-usage.html#socks-proxies
usage: fmriprep [-h] [--skip_bids_validation] [--participant-label PARTICIPANT_LABEL [PARTICIPANT_LABEL ...]]
                [-t TASK_ID] [--echo-idx ECHO_IDX] [--bids-filter-file FILE] [-d PACKAGE=PATH [PACKAGE=PATH ...]]
                [--bids-database-dir PATH] [--nprocs NPROCS] [--omp-nthreads OMP_NTHREADS] [--mem MEMORY_MB]
                [--low-mem] [--use-plugin FILE] [--sloppy] [--anat-only] [--level {minimal,resampling,full}]
                [--boilerplate-only] [--reports-only]
                [--ignore {fieldmaps,slicetiming,sbref,t2w,flair,fmap-jacobian} [{fieldmaps,slicetiming,sbref,t2w,flair,fmap-jacobian} ...]]
                [--output-spaces [OUTPUT_SPACES ...]] [--longitudinal] [--bold2t1w-init {register,header}]
                [--bold2t1w-dof {6,9,12}] [--bold2anat-init {auto,t1w,t2w,header}] [--bold2anat-dof {6,9,12}]
                [--force-bbr] [--force-no-bbr] [--slice-time-ref SLICE_TIME_REF] [--dummy-scans DUMMY_SCANS]
                [--random-seed _RANDOM_SEED] [--me-t2s-fit-method {curvefit,loglin}] [--output-layout {bids,legacy}]
                [--me-output-echos] [--aggregate-session-reports AGGR_SES_REPORTS] [--medial-surface-nan]
                [--project-goodvoxels] [--md-only-boilerplate] [--cifti-output [{91k,170k}]] [--no-msm]
                [--use-aroma USE_AROMA] [--aroma-melodic-dimensionality AROMA_MELODIC_DIM]
                [--error-on-aroma-warnings AROMA_ERR_ON_WARN] [--return-all-components]
                [--fd-spike-threshold REGRESSORS_FD_TH] [--dvars-spike-threshold REGRESSORS_DVARS_TH]
                [--skull-strip-template SKULL_STRIP_TEMPLATE] [--skull-strip-fixed-seed]
                [--skull-strip-t1w {auto,skip,force}] [--fmap-bspline] [--fmap-no-demean]
                [--use-syn-sdc [{warn,error}]] [--force-syn] [--fs-license-file FILE] [--fs-subjects-dir PATH]
                [--no-submm-recon] [--fs-no-reconall] [--fs-no-resume] [--track-carbon] [--country-code COUNTRY_CODE]
                [--version] [-v] [-w WORK_DIR] [--clean-workdir] [--resource-monitor] [--config-file FILE]
                [--write-graph] [--stop-on-first-crash] [--notrack]
                [--debug {compcor,fieldmaps,pdb,all} [{compcor,fieldmaps,pdb,all} ...]]
                bids_dir output_dir {participant}
fmriprep: error: Path does not exist: </f/Ajay/prep/freesurfer.txt>.

PS F:\Ajay\prep> ls

    Directory: F:\Ajay\prep

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        04/09/2024     21:51                ANTs
d-----        31/08/2024     11:38                bids_data
d-----        05/09/2024     09:44                build
d-----        04/09/2024     21:51                install
d-----        05/09/2024     12:16                output
d-----        05/09/2024     11:28                work
-a----        05/09/2024     12:16            184 docker_run.txt
-a----        05/09/2024     10:17             58 freesurfer.txt
-a----        04/09/2024     20:39           7444 requirements.txt

This also didn't work:
docker run -ti --rm -v /f/Ajay/prep/bids_data:/data:ro -v /f/Ajay/prep/output:/out -e FS_LICENSE=/f/Ajay/prep/freesurfer.txt nipreps/fmriprep /data /out participant --me-output-echos
What version of fMRIPrep are you running?
latest
How are you running fMRIPrep?
Docker
Is your data BIDS valid?
Yes
Are you reusing any previously computed results?
No
Please copy and paste any relevant log output.
No response
Additional information / screenshots
No response

You didn't mount the license inside the container. Did you try using the fmriprep-docker wrapper?

You didn't mount the license inside the container. Did you try using the fmriprep-docker wrapper?

Yes, but I installed it into a conda environment and unfortunately,
(fmri) C:\Users\user>fmriprep-docker
'fmriprep-docker' is not recognized as an internal or external command,
operable program or batch file.

It didn't work inside the conda environment.
Which is why I decided to call docker directly.

Thanks.
I mounted the license using:
docker run -ti --rm -v /f/Ajay/prep/bids_data:/data:ro -v /f/Ajay/prep/output:/out -v /f/Ajay/prep/freesurfer.txt:/license.txt:ro nipreps/fmriprep /data /out participant --fs-license-file /license.txt

Great to hear!


Explore using Rollup for UMD builds

Our compiled code isn't looking nice because of all the junk code generated by Babel for ES6 modules:
https://cdnjs.cloudflare.com/ajax/libs/redux/3.0.3/redux.js
While this is not technically an issue, it would be nice to get a neater compiled output.
Maybe we can explore using Rollup for this.

[ ] Turn off ES6 module transformation in Babel
[ ] Try to make both CJS (./lib/) and UMD (./dist/) builds with Rollup instead
[ ] Of course Babel should still be turned on for the actual transpiling

If somebody wants to explore this feel free to.

:-1:

More details on :-1: ?

The author of rollup is a huge NIH junkie that jumps on threads to promote his stuff and doesn't contribute ideas back anywhere.  By moving away from webpack, the community splits again instead of empowering them to help get webpack 2 out.  Jumping ship every few months doesn't enforce the perception of stability in the library.

@phated Feel free to @ me in your personal attacks. Surely we should be discussing the technical merit of the two approaches?

@Rich-Harris @gaearon posted on twitter about a cool new thing in webpack, you jumped in pushing your own stuff.  According to https://github.com/webpack/webpack/issues?utf8=✓&q=is%3Aopen+is%3Aissue+rich-harris+ - you've never once contributed to the project.  Technology isn't the only thing that matters, as a whole community has built up around React/Rackt/Redux.  I've said my peace and have no more time to argue with you.

Different approaches have different merits. Some new approaches may be difficult to implement on top of an existing project, but easier to implement from the ground up. By the same argument, Redux shouldn't have been made, and Flux should have been improved instead. Whether something is different enough that it “deserves” to be a separate thing over splitting a community is always a subjective question, and especially so when the project is young.
Regardless of this, personal attacks are not allowed here. I redacted the part of @phated's comment that contained a personal attack, and we won't tolerate more of them. Even the community discussions can be respectful and polite, no need for extra emotions.

I'll lock this thread for a couple of days for emotions to cool down, but I'm still interested in experiments with this. Nobody proposes to “jump the ship”—we're talking about a specific task (producing a readable ES5 output) that neither Webpack nor Babel currently handle well.

One of the things I dig about webpack is its new webpack.NormalModuleReplacementPlugin to create smaller builds by swapping out deps like baseIteratee with toFunction.
I'm adding support in lodash-es for simplfied requiring via:
import {chunk, zipObject} from 'lodash-es'

which would only require chunk and zipObject without having to worry about long form paths, like lodash-es/array/chunk or lodash-es/array/zipObject but without dep swapping it really limits amount I can reduce a build.
I think webpack 2 will have tree shaking as well so it's something to consider.

Yep, I'm also interested in trying Webpack 2 separately.
Ideally I'd like a Rollup-like plugin for Webpack :-P

Ideally I'd like a Rollup-like plugin for Webpack :-P

I get that a lot :grinning: I wrote down a few notes on why Rollup is a separate project: https://github.com/rollup/rollup/issues/219#issuecomment-150842108

From the sidelines -
Regarding the points above, Rollup doesn't seem like it'd be helpful for making a CJS module build, since it's just a bundler. It's worth considering making a separate ES6 module build, though, since they're rather nicer to work with (matters more for larger libraries).
Practically I think it'd be best to wait until webpack 2 is released before choosing between webpack and rollup. I'm very happy with the current "everybody uses webpack" equilibrium in the React community, because it makes it easy to understand the build pipeline on a variety of different projects quickly. It'd be a shame to give that up.

@gaearon Are there any plans to make redux work with rollup?

Redux works fine with Rollup for users. It even exports a fully ES-module-ified build. This issue is about building the Redux distributable JS bundles with Rollup instead of with webpack.

Sorry, I had this issue with redux using rollup … and thought it was related. Thanks for clarifying @taion

@timdorr What's the resolution here? Is the thought that the benefits of Rollup are not worth the cost of adding more tooling for now?

Yeah, that's basically it. Nothing is really happening here too, so it seems like there isn't much interest in this right now.

That makes sense. For future clarity, if someone were to contribute a PR to add this, would you expect to reject that PR?

Not necessarily. I'm not ruling it out completely. But webpack is 4-5x as popular as Rollup, so we would want to make sure we're not black boxing our build toolchain for a significant number of users such that future updates don't have a cheerleader and we don't start closing things with "Well, I don't know why it works, but it works!"

@timdorr Everything is working so far for me with Rollup (after they patched their plugin I ref'd here).


ComboSpecTestCase output uses non-breaking spaces instead of regular spaces

I was wondering what was going on with my comparison test cases and why they were having issues with the header for the test case, i.e. the:
```````````````````````````````` example Media Tags audio link transformer: 3
< test case here >

And here is the output header that it says is not equal to my defined test case header:
```````````````````````````````` example Media Tags audio link transformer: 3
< test case here >

After doing a bit of looking around and analyzing the character codes for the white-space I discovered that my spec files had actual spaces in the header while the spec tests were outputting "character 160" or the non-breaking space character.
This makes writing the test cases by hand a little difficult as I now need to replace all the spaces in that title string with non-breaking spaces instead.  It seems it's only outputting those in the title string for an example and not any of the example body or anywhere else.
I'm not sure if this is intentional (I can kinda see why it might be knowing how markdown could get converted), but it does make writing test cases annoying since I have to put non-breaking spaces in there myself as the comparison results in a failure otherwise.

@CorneliaXaos, there was a reason spaces in the lead-in are converted to  , I cannot remember it off the top of my head but spaces caused parsing conflicts.
Since I generate these automatically in IntelliJ IDEA using my plugin I never thought about it from manual creation.
Additionally, using IDEA test difference feature allows copying of the actual output to the file using the IDE compare to clipboard. So my use case for new tests is usually write the tests, get them working, then copy the actual to the test cases so that all test examples are updated.
The plugin also understands flexmark-java test case files while formatting and will fix example numbers, headings, options, etc, while formatting document. This too made me not realize it would cause difficulties if creating these without assistance.
What IDE are you using for development?

@CorneliaXaos, additionally some characters are used to visually represent tab and carriage return visually and will be converted to/from these.
⏎(\u23ce) in input will be converted to \r and vice versa for output to make it visually identifiable.
same for → (\u2192), it is converted to \t and vice versa
⎮ (\u23ae) is converted to \u1f

@CorneliaXaos, if you go to https://vladsch.com/product/markdown-navigator/try and get a trial license for Markdown Navigator, I will upgrade it to developer status, which I am using. It will add flexmark-java specific functionality for test example files and test classes. Some of the functionality is less than polished but works well enough to make life much easier.
It will give you preview of test files with  the three sections, add completions, validation and navigation  for test example options and formatting of test example files. All these make working with tests much easier.
Options can be defined in java test classes and selected for individual test examples using the options(optionName1,...) syntax. This allows testing with specific option settings. Useful when you add data keys to modify your extension operation.
If you use the IDEA test functionality then you will get a diff link in the test console for failed tests that you can use to compare/copy actuals.
This will make creating test cases and maintaining them much more comfortable than Java coded tests.

Oh that's neat.. I've just been reverse engineering the spec test file formats by looking at other tests.  I've actually gotten them updated just now and am reviewing them a bit before I move on to adding DataKey options and such.
I would go ahead and get the trial license for you to upgrade.. but I don't think I have much work remaining for this extension.  And the next thing I was considering doing (an output variant for outputting bbcode) I might not get to for a long time so I don't want to take advantage of your hospitality and get a free license for something I might not use too much in the next year.

@CorneliaXaos, the plugin's main function is markdown support for JetBrains IDEs. If you use markdown for documentation, especially for GitHub projects, then you will find it useful.
It adds formatting, completions, refactoring, navigation and more. It makes markdown have the same functionality in the IDE as other languages and provides a preview pretty close to what it will look on GitHub.
It is not a big deal to provide you with a license. Who knows, you might find it useful.

Alright.  I sent in a request for the trial license.
Also, since it seems the non-breaking spaces are intentional, I'll close this issue.


add dataset id as part of event

Please link to the issue #…
https://github.com/adobe/xdm/issues/425

I think this PR is pretty straight forward. But we should discuss the merit of this PR in the linked issue #425

@fmeschbe @lrosenthol I have changed this to be a extension as that was the general consensus. It is a fairly simple update. Please let me know is there are any further open items. As this resolves the comments we will look to merge this in tomorrow.


Visual Studio for Mac

What about an example of how to get this to work on visual studio for mac

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

ID: ca46de41-5103-a318-3553-3bf05c59751b
Version Independent ID: 27b60762-dfe8-9320-c891-164e2f0ca980
Content: Code Generation in a Build Process in Visual Studio - Visual Studio
Content Source: docs/modeling/code-generation-in-a-build-process.md
Product: visual-studio-dev15
GitHub Login: @gewarren
Microsoft Alias: gewarren

@asb3993 Amy, any idea if T4 text transformation is supported on VS for Mac?

Yep, it's supported in Visual Studio for Mac. There are actually t4 templates built in, you can find these by right-clicking on your project and selecting "Add > New File". There are three templates under the "text templating" section.


Adding tests for cat_years_to_hooman_years

Woo. Old college Github user.

Coverage increased (+1.1%) to 37.931% when pulling 119ddd2a0982db238cbbe70fca8d5d4cc243e2d9 on HallCat:cathal_branch into cad3d2ba400a71b24a6aee9b7ecf44938b97fa0a on keeppythonweird:master.

Nice one 😎


Short solution needed: "Increase max upload file size" (nginx)

Please help us write most modern and shortest code solution for this issue:
Increase max upload file size (technology: nginx)
Fast way
Just write the code solution in the comments.
Prefered way

Create pull request with a new code file inside inbox folder.
Don't forget to use comments to make solution explained.
Link to this issue in comments of pull request.

Increase max upload file size


Improve installation instructions

Hi there, maintainer of the Apache CouchDB Dockerfiles. Recently, while trying to update our official image Dockerfile, we got some feedback from @tianon that the approach in your README is sub-optimal. See: https://github.com/apache/couchdb-docker/pull/28#discussion_r140907707
Would you consider updating your official installation recommendation so that we don't fall afoul of these guidelines in the future?

The reason these are the installation instructions is because they work for practically any possible Docker image (i.e. any image with chmod can use them), whereas one-layer installs require having some dependencies pre-installed, or installing them inline (which is what @tianon did in the code he provided you with), which is inevitably distro-specific.
In other words, ADD is a little more convenient for users just trying to get this into their image, and RUN is a much superior approach (in fact, that's how I install Tini in my own images where I use it) when build performance and a minimal number of layers are desirable.
In the README, I'm trying to optimize for users who want to just get Tini up and running, which is why ADD should (I think) remain the default installation method (but I will consider adding RUN + curl method).
Ultimately, different users have different use cases, and I'm afraid the very first paragraph of the README can't be expected to satisfy all of them. I'm truly sorry here, but as the maintainer for an official Docker image, you probably owe it to yourself and your users to understand these nuances.

As an aside, feedback like this is always a little difficult to swallow as an OSS maintainer:

It sure would be nice if official documentation for projects followed best practices for the communities in which they operate. :( I don't know who to trust at this point.

Thanks for your time.

@krallin Thanks for the info and for considering the implications for our community.
As an aside, I'm sorry for releasing that frustration at you. I find the entire Docker platform puzzling and frustrating, and am supporting the images for our community out of necessity, not desire. No personal offence was intended; I just wish there was a best practices guide around the whole "understanding graph drivers and the implications for your image" portion that drove the change to our image. I am also an OSS maintainer, for over 22 years now...I know how hard it can be to do the right thing for as many people as often as possible.
Best regards.

Thanks for following up @wohali, I very much appreciate it. Wish you best with your Docker image maintenance :)


Timestamp in Ownership

Why is the timestamp included in the ownership?
It seems more like an optional feature rather than a mandatory one to make the contract work.
If the point of ERC721A is to have an alternative version that saves on gas, then cutting it out seems to be the proper approach.

Same goes for numberMinted in the Addressdata btw.

For ownership timestamp - we added this since we had extra space in the structs before hitting 32 bytes and felt like that was an appropriate place to add the data, which we plan on potentially using in the future for follow up contracts. Feel free to open a PR with the gas delta removing it though.
For numberMinted - this was actually used in the Azuki.sol derived contract to ensure that a user did not mint over X times. Note that it's slightly different from balanceOf, since balanceOf checks can be worked around by first minting some tokens, transferring those tokens out, then minting more, rinse and repeat.


Switch timeout from int to long in method Jsoup.parse

Current implementation of method org.jsoup.Jsoup#parse(java.net.URL, int) uses int for timeoutMillis but preferable is to use long, for example Java java.lang.Thread#sleep(long) and private static final long htmlParseTimeout = TimeUnit.SECONDS.toMillis(10);.
Can this be changed just for sugar use and better compatibility?

Sounds good, please submit a PR. Please make sure you keep the current method for compat.

Ok, I will try to do it.
And one more question: mark old method as deprecated?

Oh, it's looks like, cannot be done because of java.net.URLConnection#setConnectTimeout(int)

OK. Maybe add a method timeoutSeconds(int)? Everyone always specifies in seconds anyway.

@jhy Nah, I see no reason for this... for example, TimeUnit.MINUTES.toSeconds() returns long, this is not that gives sugar=)
Maybe int is the right way...

For me this question is closed, so if you want you can close this issue...


Update 1e_mints-helper.ipynb

Clarify info about how to access ERIs
Description
Fix little problem explaining ERI format for Psi4, and explain how the NumPy view is different.  Also, provide an explanation about why we might want to estimate memory requirements by multiplying ERI size by 1.5

Codecov Report

Merging #55 into master will not change coverage.
The diff coverage is n/a.


Add Serverless Devs To Serverless Tool

Pre-submission checklist:
Please check each of these after submitting your pull request:

[x] Are you only including a repo_url if your project is 100% open source? If so, you need to pick the single best GitHub repository for your project, not a GitHub organization.
[x] Is your project closed source or, if it is open source, does your project have at least 300 GitHub stars?
[x] Have you picked the single best (existing) category for your project?
[x] Does it follow the other guidelines from the new entries section?
[x] Have you included a URL for your SVG or added it to hosted_logos and referenced it there?
[x] Does your logo clearly state the name of the project/product and follow the other logo guidelines?
[x] Does your project/product name match the text on the logo?
[x] Have you verified that the Crunchbase data for your organization is correct (including headquarters and LinkedIn)?
[ ] ~15 minutes after opening the pull request, the CNCF-Bot will post the URL for your staging server. Have you confirmed that it looks good to you and then added a comment to the PR saying "LGTM"?

Deploy preview for landscape ready!
Built with commit eafc263e7c70ae820743af6c4378d0ab94860d2d
https://deploy-preview-1900--landscape.netlify.app

LGTM

@anycodes thanks! can you shoot me an email<EMAIL_ADDRESS>- would love to chat more about this project! (or message me on wechat: caniszczyk)


Machete now shows up on the character sprite

About the PR
I noticed alzore made spritework for the machete to show up when in the belt slot, but did a fucky wucky and didn't properly incorporate it. I fixed this.

Why / Balance
bothered me

Media

[X] I have added screenshots/videos to this PR showcasing its changes ingame,

Breaking changes
alzore bad

If possible please fix the licensing - check with Alzore if he got the sprites from another codebase, made it himself, modified another sprite, etc.


how to delete a string in the trie?

It seems that there's no delete interface.

Does the algorithm actually exclude dynamically modifying the trie/automaton? sometimes things are very large-ish and dynamic, and this saves the trouble of rebuilding a new automaton for mimicking the removal of some keys/words. Curious.

@matanster there is nothing that prohibits this in the Aho-Corasick construction... but doing it is much much more complex IMHO

@matanster I don't know any paper/article which describes such a modification. I believe it is possible at lower cost than rebuilding the whole automaton.

@matanster I still don't know the way to remove word from a trie without rebuilding Aho-Corasick automaton. But MR I prepared at least allows to remove elements from a trie.


perf: optimize canvas resizing for fixed layout

Description
In this PR canvas resizing hook was refactored, many unnecessary effects were removed leaving the bare minimum.
Fixes #34741
Automation
/ok-to-test<EMAIL_ADDRESS>:mag: Cypress test results

[!TIP]
🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/10155774784
Commit: 1900e8b429151d160e20712b6aca962f3a0e33ec
Cypress dashboard.
Tags: @tag.All
Spec:
Tue, 30 Jul 2024 05:37:38 UTC

Communication
Should the DevRel and Marketing teams inform users about this change?

[ ] Yes
[x] No

Summary by CodeRabbit

New Features

Introduced a new constant for resize debouncing to optimize UI performance.
Added a custom hook to automatically resize canvas elements based on container dimensions.

Enhancements

Improved responsiveness of the app layout with better width management for canvas elements.
Enhanced structure and readability of components through destructuring props.

Bug Fixes

Updated logic in the main canvas reducer to prevent unnecessary state updates after initialization.

Tests

Updated tests to reflect changes in hooks focusing on canvas width auto-resizing.

@alex-golovanov Can we check coverage after unit test written as well? Please share report if any.

@alex-golovanov Can we check coverage after unit test written as well? Please share report if any.

Could you rephrase please, I didn't really understand what you're asking. @sagar-qa007

@alex-golovanov I have seen you have written the unit tests in this PR. But I have no reports to measure that we do increase our coverage or at-least cover new logic with test cases from unit testing. If we can put that as well, we can be assured for logic testing before merging.

@alex-golovanov I have seen you have written the unit tests in this PR. But I have no reports to measure that we do increase our coverage or at-least cover new logic with test cases from unit testing. If we can put that as well, we can be assured for logic testing before merging.

I think that test coverage should be collected automatically rather that in PR comments, only then you will have consistent way to collect, compare and gauge unit test dynamics. It looks like unit test commands are configured for client app, but if you require some help let's chat in QA slack.
With that said, this is a refactor, functionality has not changed, code base reduced and one additional unit test has been added.
Here is the coverage you've asked for:
    {
        "lines": {
            "total": 102538,
            "covered": 56164,
            "skipped": 0,
            "pct": 54.77
        },
        "statements": {
            "total": 110472,
            "covered": 61156,
            "skipped": 0,
            "pct": 55.35
        },
        "functions": {
            "total": 24245,
            "covered": 8232,
            "skipped": 0,
            "pct": 33.95
        },
        "branches": {
            "total": 58078,
            "covered": 16915,
            "skipped": 0,
            "pct": 29.12
        },
        "branchesTrue": {
            "total": 0,
            "covered": 0,
            "skipped": 0,
            "pct": 100
        }
    }

@alex-golovanov ignore my comment as I will check async for this.


Added binary clock funcionality

Description
Binary Clock

The intention of this project was to create a web binary clock following the 24 hours format.
The way the clock can be read is using the following pattern HH: MM: SS.
Each of the row represents a binary number ( i.e 1 = 0001,  2 = 0010, 3 = 0011 .. and so on)

Type of change
Please delete options that are not relevant.

[X] New feature (non-breaking change which adds functionality)
[X] This change requires a documentation update

Checklist:

[X] My code follows the style guidelines(Clean Code) of this project
[X] I have performed a self-review of my own code
[X] I have commented my code, particularly in hard-to-understand areas
[X] I have created a helpful and easy to understand README.md
[X] I have made corresponding changes to the documentation
[X] My changes generate no new warnings

Hi! @Ayush7614
Sorry I thought we needed the hacktoberfest label in the issue but it says it should be in the project
or label this PR with the label hacktoberfest-accepted

Thanks!


Unable to browsersync with ngrok - is it possible?

I tried this option:
mix.browserSync({
	proxy: {
		target: "http://somenumber.eu.ngrok.io",
		ws: true
	},
	browser: "google chrome",
	host: 'somenumber.eu.ngrok.io',
	open: 'external',
})

However, it just loads the page fore ever without loading anything.
This won't work: somenumber.eu.ngrok.io:3000
but this works normally somenumber.eu.ngrok.io
Is it possible to use ngrok?

I'm not sure but I think I need to have a tunnel for this right? Sorry for the issue, trying to fix it my self


[Bug] 存算分离模式修改root密码后导致计算组服务挂掉

Search before asking

[X] I had searched in the issues and found no similar issues.

Version
v3.0.3
What's Wrong?
经过排查，发现是计算组的服务没有将秘钥authSecret挂载上去，而FE就挂载上了，并且存算一体的也挂载上了的，所以就是导致使用了默认的root用户作为节点用户。
apiVersion: disaggregated.cluster.doris.com/v1
kind: DorisDisaggregatedCluster
metadata:
name: doris-cluster
spec:
authSecret: doris-auth
metaService:
replicas: 2
image: registry.lingo.local/service/doris.ms-ubuntu:3.0.3
fdb:
configMapNamespaceName:
name: ateng-cluster-config
namespace: foundationdb
configMaps:
- name: ms-configmap
mountPath: /etc/doris
limits:
cpu: 4
memory: 4Gi
requests:
cpu: 100m
memory: 256Mi
envVars:
- name: TZ
value: Asia/Shanghai
systemInitialization:
initImage: registry.lingo.local/service/selectdb-alpine:latest
feSpec:
replicas: 2
image: registry.lingo.local/service/doris.fe-ubuntu:3.0.3
service:
type: NodePort
configMaps:
- name: fe-configmap
mountPath: /etc/doris
limits:
cpu: 8
memory: 8Gi
requests:
cpu: 100m
memory: 256Mi
envVars:
- name: TZ
value: Asia/Shanghai
persistentVolume:
logNotStore: true
persistentVolumeClaimSpec:
#storageClassName: openebs-hostpath
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 50Gi
systemInitialization:
initImage: registry.lingo.local/service/selectdb-alpine:latest
computeGroups:
- uniqueId: cg1
replicas: 3
image: registry.lingo.local/service/doris.be-ubuntu:3.0.3
configMaps:
- name: be-configmap
mountPath: /etc/doris
limits:
cpu: 8
memory: 8Gi
requests:
cpu: 100m
memory: 256Mi
envVars:
- name: TZ
value: Asia/Shanghai
persistentVolume:
logNotStore: true
persistentVolumeClaimSpec:
#storageClassName: openebs-hostpath
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 500Gi
systemInitialization:
initImage: registry.lingo.local/service/selectdb-alpine:latest
What You Expected?
修改root密码后不影响服务的使用
How to Reproduce?
No response
Anything Else?
No response
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

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

this pr will resolve it. https://github.com/apache/doris-operator/pull/312


Operation of the durability service in the local network.

The problem is this: there are 2 machines connected to the local network: the A-machine and the B-machine. On an A-machine, the writer publishes the data and shuts down. After a while the B-machine starts reader and he does not receive these data. Experimentally, it was found out that the reader on the B-machine receives historical data only when the A-machine is also running the reader who received this data (it can be run while the writer is working or after the writer has completed the work, there is no difference).
All quality policies of readers correspond to the quality policies of the topic and the writer, the time on both machines is synchronized, all data is persistent. I attach the contents of the configuration file ospl.xml

In order to obtain historical data from a durability service, there should at least be one of those durability-services (kept) running in the system.
In our commercially-supported OpenSplice version we support 'federated deployment' that allows to start the services independent from applications on a specific node (where shared-memory is used to within that node to give the services access to the application's data). So in that case its sufficient to start-up one or more federations somewhere that will retain historical data (independently from the coming/going of applications)
Our community-version however doesn't include this federated-deployment mode implying that you have to run a/any application yourself that has a durability-service configured (via its configuration).
So in your case that was the reader-application that you kept running experimentally. Note that its only required to create a domainParticipant for the correct DDS-domain in that 'durability-application' as all the work will be done by its configured durability service'. It also doesn't matter on which node that durability-application is running as long as its there when the data gets published and is still around when somewhere/sometimes-else a late-joining application is started.
Finally, you could start multiple of such 'durability-applications' in your system to achieve redundancy (as the durability-services will keep each other 'aligned').
Hope this helps,
Regards,
Hans

@hansvanthag Thank you! I assumed that there must be a fictitious reader. But it turns out that only a domain participant is enough


App crashing due to maximum call stack size exceeded

Hi, updated today to expo-cli 6.14.4 and started to get this warnings, also application crashes. Using Expo 37. Any thoughts on this?
Warning: Please report: Excessive number of pending callbacks: 501. Some pending callbacks that might have leaked by never being called from native code: {"14222":{},"14280":{},"14288":{},"14310":{},"14311":{},"14312":{"module":"ImageViewManager","method":"getSize"},"14313":{"module":"ImageViewManager","method":"getSize"},"14314":{"module":"ImageViewManager","method":"getSize"},"14315":{"module":"ImageViewManager","method":"getSize"},"14316":{"module":"ImageViewManager","method":"getSize"},"14317":{"module":"ImageViewManager","method":"getSize"},"14318":{"module":"ImageViewManager","method":"getSize"},"14319":{"module":"ImageViewManager","method":"getSize"},"14320":{"module":"ImageViewManager","method":"getSize"},"14321":{"module":"ImageViewManager","method":"getSize"},"14322":{"module":"ImageViewManager","method":"getSize"},"14323":{"module":"ImageViewManager","method":"getSize"},"14324":{"module":"ImageViewManager","method":"getSize"},"14325":{"module":"ImageViewManager","method":"getSize"},"14326":{"module":"ImageViewManager","method":"getSize"},"14327":{"module":"ImageViewManager","method":"getSize"},"14328":{"module":"ImageViewManager","method":"getSize"},"14329":{"module":"ImageViewManager","method":"getSize"},"14330":{"module":"ImageViewManager","method":"getSize"},"14331":{"module":"ImageViewManager","method":"getSize"},"14332":{"module":"ImageViewManager","method":"getSize"},"14333":{"module":"ImageViewManager","method":"getSize"},"14334":{"module":"ImageViewManager","method":"getSize"},"14335":{"module":"ImageViewManager","method":"getSize"},"14336":{"module":"ImageViewManager","method":"getSize"},"14337":{"module":"ImageViewManager","method":"getSize"},"14338":{"module":"ImageViewManager","method":"getSize"},"14339":{"module":"ImageViewManager","method":"getSize"},"14340":{"module":"ImageViewManager","method":"getSize"},"14341":{"module":"ImageViewManager","method":"getSize"},"14342":{"module":"ImageViewManager","method":"getSize"},"14343":{"module":"ImageViewManager","method":"getSize"},"14566":{},"14567":{},"14568":{},"14569":{},"14570":{},"14571":{},"14572":{},"14573":{},"14574":{},"14575":{},"14576":{},"14577":{},"14578":{},"14579":{},"14580":{},"14581":{},"14582":{},"14583":{},"14584":{},"14585":{},"14586":{},"14587":{},"14588":{},"14589":{},"14590":{},"14591":{},"14592":{},"14593":{},"14594":{},"14595":{},"14596":{},"14597":{},"14598":{},"14599":{},"14600":{},"14601":{},"14602":{},"14603":{},"14604":{},"14605":{},"14606":{},"14607":{},"14608":{},"14609":{},"14610":{},"14611":{},"14612":{},"14613":{},"14614":{},"14615":{},"14616":{},"14617":{},"14618":{},"14619":{},"14620":{},"14621":{},"14622":{},"14623":{},"14624":{},"14625":{},"14626":{},"14627":{},"14628":{},"14629":{},"14630":{},"14631":{},"14632":{},"14633":{},"14634":{},"14635":{},"14636":{},"14637":{},"14638":{},"14639":{},"14640":{},"14641":{},"14642":{},"14643":{},"14644":{},"14645":{},"14646":{},"14647":{},"14648":{},"14649":{},"14650":{},"14651":{},"14652":{},"14653":{},"14654":{},"14655":{},"14656":{},"14657":{},"14658":{},"14659":{},"14660":{},"14661":{},"14662":{},"14663":{},"14664":{},"14665":{},"14666":{},"14667":{},"14668":{},"14669":{},"14670":{},"14671":{},"14672":{},"14673":{},"14674":{},"14675":{},"14676":{},"14677":{},"14678":{},"14679":{},"14680":{},"14681":{},"14682":{},"14683":{},"14684":{},"14685":{},"14686":{},"14687":{},"14688":{},"14689":{},"14690":{},"14691":{},"14692":{},"14693":{},"14694":{},"14695":{},"14696":{},"14697":{},"14698":{"module":"ImageViewManager","method":"getSize"},"14699":{"module":"ImageViewManager","method":"getSize"},"14700":{"module":"ImageViewManager","method":"getSize"},"14701":{"module":"ImageViewManager","method":"getSize"},"14702":{"module":"ImageViewManager","method":"getSize"},"14703":{"module":"ImageViewManager","method":"getSize"},"14704":{"module":"ImageViewManager","method":"getSize"},"14705":{"module":"ImageViewManager","method":"getSize"},"14706":{"module":"ImageViewManager","method":"getSize"},"14707":{"module":"ImageViewManager","method":"getSize"},"14708":{"module":"ImageViewManager","method":"getSize"},"14709":{"module":"ImageViewManager","method":"getSize"},"14710":{"module":"ImageViewManager","method":"getSize"},"14711":{"module":"ImageViewManager","method":"getSize"},"14712":{"module":"ImageViewManager","method":"getSize"},"14713":{"module":"ImageViewManager","method":"getSize"},"14714":{"module":"ImageViewManager","method":"getSize"},"14715":{"module":"ImageViewManager","method":"getSize"},"14716":{"module":"ImageViewManager","method":"getSize"},"14717":{"module":"ImageViewManager","method":"getSize"},"14718":{"module":"ImageViewManager","method":"getSize"},"14719":{"module":"ImageViewManager","method":"getSize"},"14720":{"module":"ImageViewManager","method":"getSize"},"14721":{"module":"ImageViewManager","method":"getSize"},"14722":{"module":"ImageViewManager","method":"getSize"},"14723":{"module":"ImageViewManager","method":"getSize"},"14724":{"module":"ImageViewManager","method":"getSize"},"14725":{"module":"ImageViewManager","method":"getSize"},"14726":{"module":"ImageViewManager","method":"getSize"},"14727":{"module":"ImageViewManager","method":"getSize"},"14728":{"module":"ImageViewManager","method":"getSize"},"14729":{"module":"ImageViewManager","method":"getSize"},"14955":{},"14956":{},"14957":{},"14958":{},"14959":{},"14960":{},"14961":{},"14962":{},"14963":{},"14964":{},"14965":{},"14966":{},"14967":{},"14968":{},"14969":{},"14970":{},"14971":{},"14972":{},"14973":{},"14974":{},"14975":{},"14976":{},"14977":{},"14978":{},"14979":{},"14980":{},"14981":{},"14982":{},"14983":{},"14984":{},"14985":{},"14986":{},"14987":{},"14988":{},"14989":{},"14990":{},"14991":{},"14992":{},"14993":{},"14994":{},"14995":{},"14996":{},"14997":{},"14998":{},"14999":{},"15000":{},"15001":{},"15002":{},"15003":{},"15004":{},"15005":{},"15006":{},"15007":{},"15008":{},"15009":{},"15010":{},"15011":{},"15012":{},"15013":{},"15014":{},"15015":{},"15016":{},"15017":{},"15018":{},"15019":{},"15020":{},"15021":{},"15022":{},"15023":{},"15024":{},"15025":{},"15026":{},"15027":{},"15028":{},"15029":{},"15030":{},"15031":{},"15032":{},"15033":{},"15034":{},"15035":{},"15036":{},"15037":{},"15038":{},"15039":{},"15040":{},"15041":{},"15042":{},"15043":{},"15044":{},"15045":{},"15046":{},"15047":{},"15048":{},"15049":{},"15050":{},"15051":{},"15052":{},"15053":{},"15054":{},"15055":{},"15056":{},"15057":{},"15058":{},"15059":{},"15060":{},"15061":{},"15062":{},"15063":{},"15064":{},"15065":{},"15066":{},"15067":{},"15068":{},"15069":{},"15070":{},"15071":{},"15072":{},"15073":{},"15074":{},"15075":{},"15076":{},"15077":{},"15078":{},"15079":{"module":"ImageViewManager","method":"getSize"},"15080":{"module":"ImageViewManager","method":"getSize"},"15081":{"module":"ImageViewManager","method":"getSize"},"15082":{"module":"ImageViewManager","method":"getSize"},"15083":{"module":"ImageViewManager","method":"getSize"},"15084":{"module":"ImageViewManager","method":"getSize"},"15085":{"module":"ImageViewManager","method":"getSize"},"15086":{"module":"ImageViewManager","method":"getSize"},"15087":{"module":"ImageViewManager","method":"getSize"},"15088":{"module":"ImageViewManager","method":"getSize"},"15089":{"module":"ImageViewManager","method":"getSize"},"15090":{"module":"ImageViewManager","method":"getSize"},"15091":{"module":"ImageViewManager","method":"getSize"},"15092":{"module":"ImageViewManager","method":"getSize"},"15093":{"module":"ImageViewManager","method":"getSize"},"15094":{"module":"ImageViewManager","method":"getSize"},"15095":{"module":"ImageViewManager","method":"getSize"},"15096":{"module":"ImageViewManager","method":"getSize"},"15097":{"module":"ImageViewManager","method":"getSize"},"15098":{"module":"ImageViewManager","method":"getSize"},"15099":{"module":"ImageViewManager","method":"getSize"},"15100":{"module":"ImageViewManager","method":"getSize"},"15101":{"module":"ImageViewManager","method":"getSize"},"15102":{"module":"ImageViewManager","method":"getSize"},"15103":{"module":"ImageViewManager","method":"getSize"},"15104":{"module":"ImageViewManager","method":"getSize"},"15105":{"module":"ImageViewManager","method":"getSize"},"15106":{"module":"ImageViewManager","method":"getSize"},"15107":{"module":"ImageViewManager","method":"getSize"},"15108":{"module":"ImageViewManager","method":"getSize"},"15109":{"module":"ImageViewManager","method":"getSize"},"15110":{"module":"ImageViewManager","method":"getSize"},"15329":{},"15330":{},"15331":{},"15332":{},"15333":{},"15334":{},"15335":{},"15336":{},"15337":{},"15338":{},"15339":{},"15340":{},"15341":{},"15342":{},"15343":{},"15344":{},"15345":{},"15346":{},"15347":{},"15348":{},"15349":{},"15350":{},"15351":{},"15352":{},"15353":{},"15354":{},"15355":{},"15356":{},"15357":{},"15358":{},"15359":{},"15360":{},"15361":{},"15362":{},"15363":{},"15364":{},"15365":{},"15366":{},"15367":{},"15368":{},"15369":{},"15370":{},"15371":{},"15372":{},"15373":{},"15374":{},"15375":{},"15376":{},"15377":{},"15378":{},"15379":{},"15380":{},"15381":{},"15382":{},"15383":{},"15384":{},"15385":{},"15386":{},"15387":{},"15388":{},"15389":{},"15390":{},"15391":{},"15392":{},"15393":{},"15394":{},"15395":{},"15396":{},"15397":{},"15398":{},"15399":{},"15400":{},"15401":{},"15402":{},"15403":{},"15404":{},"15405":{},"15406":{},"15407":{},"15408":{},"15409":{},"15410":{},"15411":{},"15412":{},"15413":{},"15414":{},"15415":{},"15416":{},"15417":{},"15418":{},"15419":{},"15420":{},"15421":{},"15422":{},"15423":{},"15424":{},"15425":{},"15426":{},"15427":{},"15428":{},"15429":{},"15430":{},"15431":{},"15432":{},"15433":{},"15434":{},"15435":{},"15436":{},"15437":{"module":"ImageViewManager","method":"getSize"},"15438":{"module":"ImageViewManager","method":"getSize"},"15439":{"module":"ImageViewManager","method":"getSize"},"15440":{"module":"ImageViewManager","method":"getSize"},"15441":{"module":"ImageViewManager","method":"getSize"},"15442":{"module":"ImageViewManager","method":"getSize"},"15443":{"module":"ImageViewManager","method":"getSize"},"15444":{"module":"ImageViewManager","method":"getSize"},"15445":{"module":"ImageViewManager","method":"getSize"},"15446":{"module":"ImageViewManager","method":"getSize"},"15447":{"module":"ImageViewManager","method":"getSize"},"15448":{"module":"ImageViewManager","method":"getSize"},"15449":{"module":"ImageViewManager","method":"getSize"},"15450":{"module":"ImageViewManager","method":"getSize"},"15451":{"module":"ImageViewManager","method":"getSize"},"15452":{"module":"ImageViewManager","method":"getSize"},"15453":{"module":"ImageViewManager","method":"getSize"},"15454":{"module":"ImageViewManager","method":"getSize"},"15455":{"module":"ImageViewManager","method":"getSize"},"15456":{"module":"ImageViewManager","method":"getSize"},"15457":{"module":"ImageViewManager","method":"getSize"},"15458":{"module":"ImageViewManager","method":"getSize"},"15459":{"module":"ImageViewManager","method":"getSize"},"15460":{"module":"ImageViewManager","method":"getSize"},"15461":{"module":"ImageViewManager","method":"getSize"},"15462":{"module":"ImageViewManager","method":"getSize"},"15463":{"module":"ImageViewManager","method":"getSize"},"15464":{"module":"ImageViewManager","method":"getSize"},"15465":{"module":"ImageViewManager","method":"getSize"},"15466":{"module":"ImageViewManager","method":"getSize"},"15467":{"module":"ImageViewManager","method":"getSize"},"15468":{"module":"ImageViewManager","method":"getSize"},"15674":{"module":"ImageViewManager","method":"getSize"},"15675":{"module":"ImageViewManager","method":"getSize"},"15676":{"module":"ImageViewManager","method":"getSize"},"15677":{"module":"ImageViewManager","method":"getSize"}}
- node_modules/expo/build/environment/muteWarnings.fx.js:27:24 in error
- node_modules/fbjs/lib/warning.js:30:18 in printWarning
- node_modules/fbjs/lib/warning.js:51:23 in <anonymous>
- node_modules/react-native/Libraries/Utilities/warnOnce.js:29:10 in warnOnce
- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:230:12 in processCallbacks
- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:266:26 in enqueueNativeCall
- node_modules/react-native/Libraries/BatchedBridge/NativeModules.js:137:10 in fn
- node_modules/react-native/Libraries/Image/Image.ios.js:36:4 in getSize
* http://<IP_ADDRESS>:19001/node_modules/expo/AppEntry.bundle?platform=ios&dev=true&minify=false&hot=false:143589:35 in onProps
- node_modules/react-native-scalable-image/index.js:35:4 in ScalableImage
- node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js:16921:31 in commitHookEffectList
- node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js:16970:29 in commitPassiveHookEffects
- node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js:307:15 in invokeGuardedCallbackImpl
- node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js:531:36 in invokeGuardedCallback
- node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js:20061:28 in flushPassiveEffectsImpl
* [native code]:null in flushPassiveEffectsImpl
- node_modules/scheduler/cjs/scheduler.development.js:643:23 in unstable_runWithPriority
- node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js:19597:25 in scheduleCallback$argument_1
- node_modules/scheduler/cjs/scheduler.development.js:482:68 in flushTask
- node_modules/scheduler/cjs/scheduler.development.js:607:20 in flushWork
- node_modules/scheduler/cjs/scheduler.development.js:58:18 in _flushCallback
- node_modules/react-native/Libraries/Core/Timers/JSTimers.js:146:14 in _callTimer
- node_modules/react-native/Libraries/Core/Timers/JSTimers.js:399:17 in callTimers
- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:436:47 in __callFunction
- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:111:26 in __guard$argument_0
- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:384:10 in __guard
- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:110:17 in __guard$argument_0
* [native code]:null in callFunctionReturnFlushedQueuea

@valachi should be address in 1.1.0


HV-1817 Upgrade to checkstyle 8.38

https://hibernate.atlassian.net/browse/HV-1817
So that DependaBot stops spamming us.

Thanks!


Sort by stats

It will be nice option to sort items by stats.
For example:

I am looking into gloves slot items and I want to sort it by haste rating descending
I am looking into legs slot items and I want to sort it by crit rating descending

Items are sorted by EP, so you can just change your EP to accomplish this.


Create user_delete job

We have a use case to create a user in bosh-deployed VMs for security scanning purposes, but we want to be able to delete the user once the scan is complete. Has a user_delete job been discussed?

This is a bit interesting... typically you'd want to run a scan on any change of state (if not perpetually). But, in BOSH, changing the configuration of a VM (like adding user_delete) implies a change of state. So it seems little odd for security tools to ignore some state changes.
Can you be a bit more specific about your use case? Typically security scanning tools want constant access (even if they may not use it 100% of the time). Can you share what kind of security scanning software you're trying to implement? Are there reasons the software cannot be running all the time? Or can it be installed on the VM itself and run as a daemon?
In general, the user_delete job would imply it's negating a change made by a previous job (like user_add), which, at best, becomes a no-op during a deploy. For that reason alone, I don't think we'd be interested in it for this sort of use case. Feel free to share more though.

I like the release-specific user group idea.

closing this issue in favor of: https://github.com/cloudfoundry/os-conf-release/issues/31