Non-String Aggregate Identifiers

Hi everyone,
we use state-based aggregates in our application.
We encountered that we have to use String for the aggregate identifier. Otherwise an exception occurs while sending a command to the aggregate by annotating the id field with @TargetAggregateIdentifier. In this example I tried to use a java.util.UUID:
java.lang.IllegalStateException: Failed to execute CommandLineRunner
	at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:816) ~[spring-boot-2.1.4.RELEASE.jar:2.1.4.RELEASE]
	at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:797) ~[spring-boot-2.1.4.RELEASE.jar:2.1.4.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:324) ~[spring-boot-2.1.4.RELEASE.jar:2.1.4.RELEASE]
	at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:139) ~[spring-boot-2.1.4.RELEASE.jar:2.1.4.RELEASE]
	at de.libutzki.axon.axonhierarchical.AxonHierarchicalApplication.main(AxonHierarchicalApplication.java:20) ~[classes/:na]
Caused by: java.lang.IllegalArgumentException: Provided id of the wrong type for class de.libutzki.axon.axonhierarchical.module2.entity.Module2Aggregate. Expected: class java.util.UUID, got class java.lang.String
	at org.hibernate.internal.SessionImpl.find(SessionImpl.java:3503) ~[hibernate-core-5.3.9.Final.jar:5.3.9.Final]
	at org.hibernate.internal.SessionImpl.find(SessionImpl.java:3456) ~[hibernate-core-5.3.9.Final.jar:5.3.9.Final]
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
	at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
	at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:308) ~[spring-orm-5.1.6.RELEASE.jar:5.1.6.RELEASE]
	at com.sun.proxy.$Proxy71.find(Unknown Source) ~[na:na]
	at org.axonframework.modelling.command.GenericJpaRepository.doLoadWithLock(GenericJpaRepository.java:110) ~[axon-modelling-4.1.1.jar:4.1.1]
	at org.axonframework.modelling.command.GenericJpaRepository.doLoadWithLock(GenericJpaRepository.java:53) ~[axon-modelling-4.1.1.jar:4.1.1]
	at org.axonframework.modelling.command.LockingRepository.doLoad(LockingRepository.java:118) ~[axon-modelling-4.1.1.jar:4.1.1]
	at org.axonframework.modelling.command.LockingRepository.doLoad(LockingRepository.java:52) ~[axon-modelling-4.1.1.jar:4.1.1]
	at org.axonframework.modelling.command.AbstractRepository.lambda$load$4(AbstractRepository.java:122) ~[axon-modelling-4.1.1.jar:4.1.1]
	at java.base/java.util.HashMap.computeIfAbsent(HashMap.java:1133) ~[na:na]
	at org.axonframework.modelling.command.AbstractRepository.load(AbstractRepository.java:121) ~[axon-modelling-4.1.1.jar:4.1.1]
	at org.axonframework.modelling.command.AggregateAnnotationCommandHandler$AggregateCommandHandler.handle(AggregateAnnotationCommandHandler.java:349) ~[axon-modelling-4.1.1.jar:4.1.1]
	at org.axonframework.modelling.command.AggregateAnnotationCommandHandler$AggregateCommandHandler.handle(AggregateAnnotationCommandHandler.java:337) ~[axon-modelling-4.1.1.jar:4.1.1]
	at org.axonframework.modelling.command.AggregateAnnotationCommandHandler.handle(AggregateAnnotationCommandHandler.java:125) ~[axon-modelling-4.1.1.jar:4.1.1]
	at org.axonframework.modelling.command.AggregateAnnotationCommandHandler.handle(AggregateAnnotationCommandHandler.java:44) ~[axon-modelling-4.1.1.jar:4.1.1]
	at org.axonframework.messaging.DefaultInterceptorChain.proceed(DefaultInterceptorChain.java:57) ~[axon-messaging-4.1.1.jar:4.1.1]
	at org.axonframework.messaging.interceptors.CorrelationDataInterceptor.handle(CorrelationDataInterceptor.java:65) ~[axon-messaging-4.1.1.jar:4.1.1]
	at org.axonframework.messaging.DefaultInterceptorChain.proceed(DefaultInterceptorChain.java:55) ~[axon-messaging-4.1.1.jar:4.1.1]
	at org.axonframework.messaging.unitofwork.DefaultUnitOfWork.executeWithResult(DefaultUnitOfWork.java:74) ~[axon-messaging-4.1.1.jar:4.1.1]
	at org.axonframework.commandhandling.SimpleCommandBus.handle(SimpleCommandBus.java:176) ~[axon-messaging-4.1.1.jar:4.1.1]
	at org.axonframework.commandhandling.SimpleCommandBus.doDispatch(SimpleCommandBus.java:141) ~[axon-messaging-4.1.1.jar:4.1.1]
	at org.axonframework.commandhandling.SimpleCommandBus.dispatch(SimpleCommandBus.java:110) ~[axon-messaging-4.1.1.jar:4.1.1]
	at org.axonframework.commandhandling.gateway.AbstractCommandGateway.send(AbstractCommandGateway.java:75) ~[axon-messaging-4.1.1.jar:4.1.1]
	at org.axonframework.commandhandling.gateway.DefaultCommandGateway.send(DefaultCommandGateway.java:73) ~[axon-messaging-4.1.1.jar:4.1.1]
	at org.axonframework.commandhandling.gateway.DefaultCommandGateway.sendAndWait(DefaultCommandGateway.java:90) ~[axon-messaging-4.1.1.jar:4.1.1]
	at de.libutzki.axon.axonhierarchical.module2.Module2Runner.run(Module2Runner.java:42) ~[classes/:na]
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
	at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343) ~[spring-aop-5.1.6.RELEASE.jar:5.1.6.RELEASE]
	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198) ~[spring-aop-5.1.6.RELEASE.jar:5.1.6.RELEASE]
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.1.6.RELEASE.jar:5.1.6.RELEASE]
	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:294) ~[spring-tx-5.1.6.RELEASE.jar:5.1.6.RELEASE]
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98) ~[spring-tx-5.1.6.RELEASE.jar:5.1.6.RELEASE]
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.1.6.RELEASE.jar:5.1.6.RELEASE]
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212) ~[spring-aop-5.1.6.RELEASE.jar:5.1.6.RELEASE]
	at com.sun.proxy.$Proxy85.run(Unknown Source) ~[na:na]
	at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:813) ~[spring-boot-2.1.4.RELEASE.jar:2.1.4.RELEASE]
	... 4 common frames omitted
Caused by: org.hibernate.TypeMismatchException: Provided id of the wrong type for class de.libutzki.axon.axonhierarchical.module2.entity.Module2Aggregate. Expected: class java.util.UUID, got class java.lang.String
	at org.hibernate.event.internal.DefaultLoadEventListener.checkIdClass(DefaultLoadEventListener.java:169) ~[hibernate-core-5.3.9.Final.jar:5.3.9.Final]
	at org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:89) ~[hibernate-core-5.3.9.Final.jar:5.3.9.Final]
	at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1256) ~[hibernate-core-5.3.9.Final.jar:5.3.9.Final]
	at org.hibernate.internal.SessionImpl.access$1900(SessionImpl.java:207) ~[hibernate-core-5.3.9.Final.jar:5.3.9.Final]
	at org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.doLoad(SessionImpl.java:2866) ~[hibernate-core-5.3.9.Final.jar:5.3.9.Final]
	at org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.load(SessionImpl.java:2847) ~[hibernate-core-5.3.9.Final.jar:5.3.9.Final]
	at org.hibernate.internal.SessionImpl.find(SessionImpl.java:3482) ~[hibernate-core-5.3.9.Final.jar:5.3.9.Final]
	... 46 common frames omitted

While researching I stumbled upon org.axonframework.modelling.command.GenericJpaRepository.Builder.identifierConverter(Function<String, ?>)
But there are two major problems:

I use Spring Boot and the GenericJpaRepositories are built in org.axonframework.spring.config.SpringAxonAutoConfigurer.registerAggregateBeanDefinitions(Configurer, BeanDefinitionRegistry) which cannot be customized easily. I have to override (nearly) the whole class to adjust the behaviour. Anyway, by doing this and setting .identifierConverter(UUID::fromString) the command can be handled.
The solution only works if I use a type which's toString() result can be reverted back to the type (like UUID.fromString(String) does). In practice I don't want to use a UUID as id but a value object like CustomerId which wraps a UUID. Having this I do not see any chance to annotate it with @AggregateIdentifier and to use it in a state-based aggregate.

As stated in #484 you also prefer the usage of value objects, but unfortunately I do not find a way to do this. Maybe it's a lack of documentation, but I fear it's a missing feature. That's the reason why I decided to create this issue.

Hi @OLibutzki, I think I can alleviate the two major problems you've noted here:

When you're using the Spring configuration of Axon, you will thus also be using the @Aggregate annotation I'd assume. The @Aggregate annotation has a field repository of type String. If you fill in the name of the repository you'd want to use for that Aggregate instance, it'll be wired upon start up. Thus, you should be able to create your GenericJpaRepository through it's Builder and provide the identifierConverter you wish.
In practice, I'd assume the 'typed ID'/value object you'd use as the Aggregate Identifier would always have a to string format. From that point, I do not see why it would be to big a problem to have a fromString function as well. When I am leveraging typed ID's for Aggregate/Entities, more often that class contains a UUID any how (which as we now, has a fromString function.

Concluding, I think point 1 is luckily covered by the framework.
I trust in you that this wasn't clear from the Reference Guide; I can assure you we're consistently looking to improve the guide. It sounds like the Spring configuration is one of those areas which still needs some improvement.
Point 2 is something I to be honest do not view as to big of a struggle. If my assumptions on your question were incorrect in this area, please tell me so.
If you're however okay with the above given answer, I think we can close this issue of for now. :-)

Thanks for your answer @smcvb! I will try your suggestion and will come back to this issue after my evaluation. I suggest we keep this issue opened until I can provide some feedback.

Of course we'll keep it open @OLibutzki! Let us know as soon as you've had to chance to look into this.

By the way, I've checked whether the Reference Guide stated the setting of the repository when using Spring. You can find the bit I've just described here.

Hi,
We tested some possible solutions in the meantime. The suggested idea of @smcvb works well (custom JPA repository with suitable identifier converter), but this would mean a custom repository for each state stored aggregate. Therefore we decided to use another approach. We used a more generic identifier converter, which would use the Spring conversion mechanism, and added it to the registerAggregateBeanDefinitions in the configurer.
final Class<?> aggregateIdentifierType = Stream.of( aggregateType.getDeclaredFields( ) )
		.filter( field -> field.isAnnotationPresent( AggregateIdentifier.class ) )
		.map( field -> field.getType( ) )
		.findFirst( )
		.orElseThrow( ( ) -> new IllegalStateException( "The aggregate '" + aggregate + "' does not have an identifier." ) );

aggregateConf.configureRepository(
		c -> GenericJpaRepository.builder( aggregateType )
				.identifierConverter( string -> {
					if ( aggregateType == String.class ) {
						return string;
					} else {
						try {
							final ConversionService conversionService = beanFactory.getBean( ConversionService.class );
							return conversionService.convert( string, aggregateIdentifierType );
						} catch ( final NoSuchBeanDefinitionException ex ) {
							throw new IllegalStateException( "Unable to convert String to aggregate identifier of type '" + aggregateIdentifierType.getName( ) + "'. A conversion service is missing." );
						}
					}
				} )

So the basic idea is to find the type of the aggregate identifier and - unless it is already a String - convert it via the Spring conversion service. One would then have a suitable converter for each identifier.
@Named
final class MyIdConverter implements Converter<String, MyId> {

	...

	@Override
	public MyId convert( final String source ) {
		return MyId.fromString( source );
	}

}

In case of UUID identifiers one would only need the Spring conversion service, as it is already equipped with a String to UUID converter.
The only disadvantage of this approach is that we have to override the whole class to modify the private method. Maybe it would be possible to improve the code in this regard?
Best regards
Nils

We have discussed this within our team and decided, for now, not to change any of the APIs for this purpose. Once we start working on an API-breaking release (i.e. Axon 5+), we will reconsider the Repository API to support non-String identifiers as well.
For the time being, we consider the explicit configuration of identifierConverters an acceptable solution.

Hi @abuijze  and @smcvb,
as we talked about this issue in your office and you saw a chance to get this working in a backward comaptible manner by using default methods: Shall we open this issue again oder do you prefer to have a new one?
Cheers
Oliver

Reopening seems reasonable to me, so let's do that :-)

Any update on this? Will it be part of Axon 5 or is there any other solution implemented in the meanwhile?
Thanks
Jurgen

First, thanks for showing interest in the feature @jurgenbosch!
To come to your question, we typically update issues accordingly when work is progressing or has happened on them.
As it stands, no effort has been taken here since February 11th (as seen by  my previous comment).
The ideas are present to "resolve" this, but it is a matter of priority at this stage.
Given the amount of work and other issues added to milestone 4.5 (the upcoming release), we have decided not to include this just yet. Know of course that there is always room for contribution when it comes to any of the issues up here.
If you have the time, and interest, to provide a solution, that would obviously mean a more speedy introduction of this feature into the framework.

I have renamed this issue's title to "Non-String Aggregate Identifiers."
As it stands, we are working on making the aforementioned breaking API changes, aka, Axon Framework 5.
As such, I have added this issue to release 5.0.0 as we intend to validate the feasibility of moving away from the String identifier for aggregates/models.


[DOC] Supported ops page differentiate type supported in key vs passed along

Report incorrect documentation
The supported ops page doesn't seem to indicate if a type is supposed as the main key (like joining on) vs just being able to be passed along as another columns.  Perhaps we should add a note for this.

PR https://github.com/NVIDIA/spark-rapids/pull/3011 adds this information for types that cannot be usued as join keys in sort-merge, hash, and broadcast joins.
@tgravescs is that sufficient to address this issue or are there other types that need clarification?

so that sounds sufficient for joins but I wonder about other operations like hashAggregate, sorting, union, etc...

We can do the same thing for all of them. It is mostly a question of should the framework have a more generic way to do this, or should we add in one off solutions.
SparkPlan/Scala gives us a productIterator that we might be able to use to filter it to just expressions/sequences of expressions and then match those up with a pattern, similar to what we do when matching parameters to an Expression. That to me feels like a fairly generic way to make this work. But it is a lot of code compared to what is happening in #3011 along with the already existing check in the code.
    val keyDataTypes = (leftKeys ++ rightKeys).map(_.dataType)
    if (keyDataTypes.exists(dType =>
      dType.isInstanceOf[ArrayType] || dType.isInstanceOf[MapType])) {
      meta.willNotWorkOnGpu("ArrayType or MapType in join keys are not supported")
    }

So The difference would be something like

BroadcastHashJoinExec
Implementation of join using broadcast data
None
S
...
S
NS
NS
PS* (Cannot be used as join key; missing nested BINARY, CALENDAR, ARRAY, MAP, STRUCT, UDT)
PS* (Cannot be used as join key; missing nested BINARY, CALENDAR, ARRAY, MAP, STRUCT, UDT)
PS* (Cannot be used as join key; missing nested BINARY, CALENDAR, ARRAY, MAP, STRUCT, UDT)
NS

vs

BroadcastHashJoinExec
Implementation of join using broadcast data
LeftKeys
None
S
...
S
NS
NS
NS
NS
NS
NS

BroadcastHashJoinExec
Implementation of join using broadcast data
RightKeys
None
S
...
S
NS
NS
NS
NS
NS
NS

BroadcastHashJoinExec
Implementation of join using broadcast data
Output
None
S
...
S
NS
NS
PS* (missing nested BINARY, CALENDAR, ARRAY, MAP, STRUCT, UDT)
PS* (missing nested BINARY, CALENDAR, ARRAY, MAP, STRUCT, UDT)
PS* (missing nested BINARY, CALENDAR, ARRAY, MAP, STRUCT, UDT)
NS

The latter / more generic approach that @revans2 mentions above seems like the better way to go.


Error on Adding a new blank data source.

On adding a new data source, this error message is displayed. The data source is added anyway

This is now fixed


Add gitlab runner to Software exposing Prometheus metrics

Add gitlab runner in Software exposing Prometheus metrics

https://gitlab.com/gitlab-org/gitlab-runner/blob/master/executors/docker/machine/provider.go#L431
Most of this seems to be custom collectors, this is the only direct instrumentation I can find and it is procedurally generating metric names which is a no-no. That should be a label.
My idea is that directly instrumented code listed here provides prime examples of what Prometheus instrumentation is meant to look like.

@brian-brazil Thanks for noticing this. We're currently in the process of cleaning-up the metrics naming in GitLab Runner, see https://gitlab.com/gitlab-org/gitlab-runner/issues/3114.


Add documentation for TeamForCapella Import/Export workflows

Some users want to have a "Sandbox" TeamForCapella repository. We should have some documentation how to import the model from an existing repository and export to a new TeamForCapella repository and how they can merge the changes back.

Fixed in https://github.com/DSD-DBS/capella-collab-manager/pull/706


Update Contour implementation summary and conformance report

What type of PR is this?
/kind documentation
/area conformance
What this PR does / why we need it:
Updates contour implementation blurb on the site and add updated conformance report for contour v1.26.0
Which issue(s) this PR fixes:
N/A
Does this PR introduce a user-facing change?:
NONE

/cc @skriss

Left out swapping the latest symlink to v0.8.0 but can include if desired

Very impressive @sunjayBhatia and @skriss!
/lgtm
/approve


fix README code in 'Collections'

inline codes:

x(ul', 'li')
x(ul, ['li'])

Add missing single quote, so I think it's better.

Coverage remained the same at 96.238% when pulling 3a8470c26d48c1c39161c79c25b57c47f1d8fbdd on laiso:patch-1 into c921b2df4ef17b2bc6e80a6353ac2b4ead631f99 on lapwinglabs:master.

good catch :-)


Queries with order by clause that is not part of the select clause fails

The following form of query fails:
select u.col from user as u order by foo.id

With the following error:
symbol foo.id not found

It works in the parser (parser_test.go) but it fails in the planner (postprocess_cases.txt).


Fix docs and help text to point to Developer Command Prompt for VS 2017

Reported on gitter: https://gitter.im/dotnet/corert?at=5995a807c101bc4e3a2a0788
@fanol Thanks for reporting the problem.

Ported the corefx change instead.


Adding an InitTablet feature to vttablet.

It only covers a subset of what the real InitTablet does,
but should be enough to not have to initialize tablets before starting them.
@enisoc @aaijazi

Integration tests are broken with this PR. Please check the output to see if it is related to the changes made. If you think it is Travis environment issue, please let me know.
https://travis-ci.org/youtube/vitess/pull_requests
https://travis-ci.org/youtube/vitess/builds/45382805

I think it's a zk change:
panic: no zk server found for host localhost in config
1@localhost.localdomain:15002:15003:15004
Maybe the ZK changes Anthony made for hostname detection?
On Fri, Jan 2, 2015 at 8:56 AM, Anand Henry<EMAIL_ADDRESS>wrote:

Integration tests are broken with this PR. Please check the output to see
if it is related to the changes made. If you think it is Travis environment
issue, please let me know.
https://travis-ci.org/youtube/vitess/pull_requests
https://travis-ci.org/youtube/vitess/builds/45382805
—
Reply to this email directly or view it on GitHub
https://github.com/youtube/vitess/pull/280#issuecomment-68541801.


evaluate problem

I wanted to evaluate but ran into the following situation. The visualization works normally.

when i use  -s test,i could not find any label

What are the sequences you have in your dataset? And how is your split in onfig/semantic-kitti-mos.yaml?
The default one is
split: # sequence numbers
  train:
    - 0
    - 1
    - 2
    - 3
    - 4
    - 5
    - 6
    - 7
    - 9
    - 10
  valid:
    - 8
  test:
    - 11
    - 12
    - 13
    - 14
    - 15
    - 16
    - 17
    - 18
    - 19
    - 20
    - 21
    ```

so these sequences need to be in both the dataset and your predictions when evaluating.

The data set is set according to the format of the sematic-kitti data set, and the configuration file is unchanged.My prediction sequence is 11 to 21

Okay. Well in that case, this does not look to be related to 4DMOS. Please check again that you have the predictions and labels specified in the config for the split you select.
For example, in the screenshot of your sequences folder, there is not folder for the validation set 08. That's why it can not find the predictions for the validation set.

Yes,when I execute python scripts/confidences_to_labels.py -p predictions/ID/POSES,I choose default sequences (11 to21).That’s why there is no 8 sequence.Can I only use 8 sequence when evaluating IoU?

Note that you can not evaluate MOS for the test set, because the labels are not public. That's why it can not find them when you run with -s test. If you want to get a result here you need to submit your predictions to our benchmark in codalab (see the semantic-kitti-api repo for details).
If you want to evaluate the IoU of the validation sequence 08, you can specify it in the predict_confidences.py by passing -seq 8 or change the test split in the config to 08. Make sure to also select the sequence in the confidences_to_labels.py script using the -seq flag.

Excuse me, why can't I use pose.txt for 8 sequence to predict?

Where did I say you can't use the poses.txt? Sorry I don't get what you mean

Sorry, did I mean to say that I should use suma pose-txt without loop closure?

No, this issue is about you having troubles to evaluate the IoU on the predictions. What are you referring to?
In another issue I said that the SuMa poses with loop closing cause false positives on sequence 08 and that you should use the poses without loop closing. But this is another issue and is not related to this one. Please check the other issues and open a new one if you can not find the answer there.
Back to this issue, is it solved now?

yes，I can evalute 8 sequence to get IoU(0.57).I'm sorry to bother you.

Great! No worries. If you now use the SuMa poses without loop closing for sequence 08 you will get the result reported in the paper. I will close this issue now since it is solved. Just open a new one if another problem arises.


Shadow Root support

https://bugzilla.mozilla.org/show_bug.cgi?id=1489490&GoAheadAndLogIn=1

https://github.com/w3c/webdriver/issues/350#issuecomment-718120114

PR has been submitted to support Shadow Root in the W3C specs. Will update _WD_GetShadowRoot once this gets finalized

PR has been submitted to support Shadow Root in the W3C specs. Will update _WD_GetShadowRoot once this gets finalized

_WD_GetShadowRoot has been updated. Still needs to be implemented in geckodriver (https://bugzilla.mozilla.org/show_bug.cgi?id=1686182)

_WD_GetShadowRoot has been updated. Still needs to be implemented in geckodriver (https://bugzilla.mozilla.org/show_bug.cgi?id=1686182)

Chromedriver implementation tracking -- https://bugs.chromium.org/p/chromedriver/issues/detail?id=3715

Latest revisions tested successfully with Chrome. Still waiting for Geckodriver to be updated.

Latest revisions tested successfully with Chrome. Still waiting for Geckodriver to be updated.

After it is updated, will it still be necessary to implement corrections in this respect to this UDF? Or are we just waiting to close this ISSUE to test whether the solution introduced into the UDF worked?

I don't believe any further modifications are required, but I'm stating that without reviewing the existing code.

From the Geckodriver  0.31.0 change log --
### Added

- Support for [Get Element Shadow Root]

  Implemented by [David Burns].

  The standardised WebDriver [Get Element Shadow Root] endpoint provides a way
  to retrieve the Shadow Root of a given web element. This endpoint is
  supported by geckodriver when using Firefox version ≥96.

The given issue
https://github.com/w3c/webdriver/issues/350
has been closed.
How this relates on our work here ?

@mlipok It doesn't change anything. Leaving this open until further testing is performed with the various webdrivers.

Seems to be working good on all browsers. Used this code for testing --
Func UserTesting() ; here you can replace the code to test your stuff before you ask on the forum
        _WD_Navigate($sSession, "https://component.kitchen/elix/Tabs")
	$sRoot = _WD_GetShadowRoot($sSession, $_WD_LOCATOR_ByXPath, "//elix-tabs[@id='sampleTabs']")
	$sDiv = _WD_FindElement($sSession, $_WD_LOCATOR_ByCSSSelector, "#explorerContainer", $sRoot)
	$sRoot2 = _WD_GetShadowRoot($sSession, $_WD_LOCATOR_ByCSSSelector, "#proxyList", $sDiv)
;~ 	Exit
EndFunc   ;==>UserTesting

@mlipok It doesn't change anything. Leaving this open until further testing is performed with the various webdrivers.

It was game changer, as I see.
Now we will be able to close this issue.
;)

Seems to be working good on all browsers. Used this code for testing --
Func UserTesting() ; here you can replace the code to test your stuff before you ask on the forum
        _WD_Navigate($sSession, "https://component.kitchen/elix/Tabs")
	$sRoot = _WD_GetShadowRoot($sSession, $_WD_LOCATOR_ByXPath, "//elix-tabs[@id='sampleTabs']")
	$sDiv = _WD_FindElement($sSession, $_WD_LOCATOR_ByCSSSelector, "#explorerContainer", $sRoot)
	$sRoot2 = _WD_GetShadowRoot($sSession, $_WD_LOCATOR_ByCSSSelector, "#proxyList", $sDiv)
;~ 	Exit
EndFunc   ;==>UserTesting

Will check ASAP.
currently on phone

Here is revised code for testing shadow root support in _WD_FindElement --
Func UserTesting() ; here you can replace the code to test your stuff before you ask on the forum
    _WD_Navigate($sSession, "https://component.kitchen/elix/Tabs")
    $sRoot = _WD_GetShadowRoot($sSession, $_WD_LOCATOR_ByXPath, "//elix-tabs[@id='sampleTabs']")
    $sDiv = _WD_FindElement($sSession, $_WD_LOCATOR_ByCSSSelector, "#explorerContainer", $sRoot, Default, True)
    $sRoot2 = _WD_GetShadowRoot($sSession, $_WD_LOCATOR_ByCSSSelector, "#proxyList", $sDiv)
;~  Exit
EndFunc   ;==>UserTesting```

Firefox
_WD_GetShadowRoot ==> Success [0] : Parameters:    Strategy=xpath    Selector=//elix-tabs[@id='sampleTabs']    StartElement=Default
__WD_Post ==> Unknown Command [16] : HTTP status = 405
_WD_FindElement ==> Unknown Command [16] : Parameters:   Strategy=css selector   Selector=#explorerContainer   StartNodeID=fe590b11-4957-4f21-b5d9-99351b274625   Multiple=Default   ShadowRoot=True
__WD_Post ==> No match [8] : HTTP status = 404
_WD_FindElement ==> No match [8] : Parameters:   Strategy=css selector   Selector=#proxyList   StartNodeID=   Multiple=Default   ShadowRoot=Default
_WD_GetShadowRoot ==> No match [8] : Parameters:    Strategy=css selector    Selector=#proxyList    StartElement=

Chrome
_WD_GetShadowRoot ==> Success [0] : Parameters:    Strategy=xpath    Selector=//elix-tabs[@id='sampleTabs']    StartElement=Default
__WD_Post ==> Success [0] : HTTP status = 200
_WD_FindElement ==> Success [0] : Parameters:   Strategy=css selector   Selector=#explorerContainer   StartNodeID=eab9f36b-9864-461e-8d7e-2719ffd6e395   Multiple=Default   ShadowRoot=True
__WD_Post ==> Success [0] : HTTP status = 200
_WD_FindElement ==> Success [0] : Parameters:   Strategy=css selector   Selector=#proxyList   StartNodeID=f3d9344d-6410-4e3a-a68f-6947f1f099d9   Multiple=Default   ShadowRoot=Default
__WD_Get ==> Success [0] : HTTP status = 200
_WD_ElementAction ==> Success [0] : Parameters:   Command=shadow   Option=Default
_WD_GetShadowRoot ==> Success [0] : Parameters:    Strategy=css selector    Selector=#proxyList    StartElement=f3d9344d-6410-4e3a-a68f-6947f1f099d9

Edge
_WD_GetShadowRoot ==> Success [0] : Parameters:    Strategy=xpath    Selector=//elix-tabs[@id='sampleTabs']    StartElement=Default
__WD_Post ==> Success [0] : HTTP status = 200
_WD_FindElement ==> Success [0] : Parameters:   Strategy=css selector   Selector=#explorerContainer   StartNodeID=9d37a423-0a74-489a-96b2-14afaee431ec   Multiple=Default   ShadowRoot=True
__WD_Post ==> Success [0] : HTTP status = 200
_WD_FindElement ==> Success [0] : Parameters:   Strategy=css selector   Selector=#proxyList   StartNodeID=1554f194-8ce4-4314-967b-96e8c8c0467e   Multiple=Default   ShadowRoot=Default
__WD_Get ==> Success [0] : HTTP status = 200
_WD_ElementAction ==> Success [0] : Parameters:   Command=shadow   Option=Default
_WD_GetShadowRoot ==> Success [0] : Parameters:    Strategy=css selector    Selector=#proxyList    StartElement=1554f194-8ce4-4314-967b-96e8c8c0467e

Opera
_WD_GetShadowRoot ==> Success [0] : Parameters:    Strategy=xpath    Selector=//elix-tabs[@id='sampleTabs']    StartElement=Default
__WD_Post ==> Success [0] : HTTP status = 200
_WD_FindElement ==> Success [0] : Parameters:   Strategy=css selector   Selector=#explorerContainer   StartNodeID=f29e3910-7255-4b26-abb1-b98bbcbc9118   Multiple=Default   ShadowRoot=True
__WD_Post ==> Success [0] : HTTP status = 200
_WD_FindElement ==> Success [0] : Parameters:   Strategy=css selector   Selector=#proxyList   StartNodeID=2a4028a4-f4ef-4b91-b4af-ef7419649108   Multiple=Default   ShadowRoot=Default
__WD_Get ==> Success [0] : HTTP status = 200
_WD_ElementAction ==> Success [0] : Parameters:   Command=shadow   Option=Default
_WD_GetShadowRoot ==> Success [0] : Parameters:    Strategy=css selector    Selector=#proxyList    StartElement=2a4028a4-f4ef-4b91-b4af-ef7419649108

Firefox functionality still depends on bug 1700095

All looks fine (expect mentione FF bug).
Please consider adding this snippet to wd_demo.au3 ad DemoShadow

I'd prefer to leave this out of wd_demo for the following reasons --

This is an advanced feature that most users won't need
Adds maintenance to project due to changing web pages

The wiki may be a better option.

Today a Zul user on AutoIt forum asked for support here:
https://www.autoitscript.com/forum/topic/205553-webdriver-udf-help-support-iii/?do=findComment&comment=1505239
it uses shadow roots.
I have made some analysis and I comes to sucha a nice JS
document.querySelector("body > print-preview-app").shadowRoot.querySelector("#sidebar").shadowRoot.querySelector("print-preview-button-strip").shadowRoot.querySelector("div > cr-button.action-button")

Currently I wonder if this javascript snippet
document.querySelector("body > print-preview-app").shadowRoot.querySelector("#sidebar").shadowRoot.querySelector("print-preview-button-strip").shadowRoot.querySelector("div > cr-button.action-button")

will be handy in any way ?

There are some changes in:
https://bugzilla.mozilla.org/show_bug.cgi?id=1700095
Maybe soon will be fixed.

https://github.com/w3c/webdriver/pull/1726

@mlipok Seen it. That's why I made the change in #441 😉

_WD_GetShadowRoot has been updated. Still needs to be implemented in geckodriver (https://bugzilla.mozilla.org/show_bug.cgi?id=1700095)

Looks like this fix just landed for Firefox. Will need to confirm once v113 is released.

Geckodriver has been updated. FF v113 is still a month from release, but it can be tested using the Nightly release.

Geckodriver has been updated. FF v113 is still a month from release, but it can be tested using the Nightly release.

https://github.com/mozilla/geckodriver/releases/tag/v0.33.0
https://www.autoitscript.com/forum/topic/208633-webdriver-udf-w3c-compliant-version-20230326/?do=findComment&comment=1516289

version 112 was released.
https://www.mozilla.org/en-US/firefox/112.0/releasenotes/

as to FF113
https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/113
This article provides information about the changes in Firefox 113 that affect developers. Firefox 113 is the current [Beta version of Firefox](https://www.mozilla.org/en-US/firefox/channel/desktop/#beta) and ships on [May 09, 2023](https://wiki.mozilla.org/RapidRelease/Calendar#Future_branch_dates).

Tested with FF113 --
    _WD_GetShadowRoot ==> Success [0] : Parameters:    Strategy=xpath    Selector=//elix-tabs[@id='sampleTabs']    StartElement=Default
    __WD_Post: URL=HTTP://<IP_ADDRESS>:4444/session/f805a670-be99-4523-8b62-a21ecc2870ca/shadow/46cf3f8b-e03e-48a1-b6ee-f5e95eb549a4/element; Data={"using":"css selector","value":"#explorerContainer"}
    __WD_Post ==> Success [0] : HTTP status = 200 ResponseText={"value":{"element-6066-11e4-a52e-4f735466cecf":"42100b60-523e-4068-b763-c3b88bb67b61"}}
    _WD_FindElement ==> Success [0] : Parameters:   Strategy=css selector   Selector=#explorerContainer   StartNodeID=46cf3f8b-e03e-48a1-b6ee-f5e95eb549a4   Multiple=Default   ShadowRoot=True
    __WD_Post: URL=HTTP://<IP_ADDRESS>:4444/session/f805a670-be99-4523-8b62-a21ecc2870ca/element/42100b60-523e-4068-b763-c3b88bb67b61/element; Data={"using":"css selector","value":"#proxyList"}
    __WD_Post ==> Success [0] : HTTP status = 200 ResponseText={"value":{"element-6066-11e4-a52e-4f735466cecf":"4da05632-0626-41ca-9cda-4cabe6ce1449"}}
    _WD_FindElement ==> Success [0] : Parameters:   Strategy=css selector   Selector=#proxyList   StartNodeID=42100b60-523e-4068-b763-c3b88bb67b61   Multiple=Default   ShadowRoot=Default
    __WD_Get: URL=HTTP://<IP_ADDRESS>:4444/session/f805a670-be99-4523-8b62-a21ecc2870ca/element/4da05632-0626-41ca-9cda-4cabe6ce1449/shadow
    __WD_Get ==> Success [0] : HTTP status = 200 ResponseText={"value":{"shadow-6066-11e4-a52e-4f735466cecf":"5b186fb5-be7c-4c64-9bed-450d9294e12e"}}
    _WD_ElementAction ==> Success [0] : Parameters:   Command=shadow   Option=Default
    _WD_GetShadowRoot ==> Success [0] : Parameters:    Strategy=css selector    Selector=#proxyList    StartElement=42100b60-523e-4068-b763-c3b88bb67b61


Add flag to dune-release check that attempts to discover and parse the change log

I found that a project where dune-release check succeeded didn't publish because its change log failed to parse, and iterating on debugging and fixing the change log was difficult with no simple way to exercise the change log parsing logic.

Definitely an useful addition, but for a more consistent user experience I think it would make sense to flip it: add --skip-change-log-check to match the other --skip-* flags and make this an opt-out behavior.

Good suggestion. Fixed!


Use lowercase for UID & GID options in run example

The syntax description for the --volume option uses lowercase for the uid and gid parameters; whereas the example uses uppercase. Change the example to conform to the implemented behaviour.

Thanks!


ARTEM-IS web app: working towards an Agreed Reporting Template for EEG Methodology (International Standard)

Project info

Title:
ARTEM-IS web app: working towards an Agreed Reporting Template for EEG Methodology (International Standard)
Project leads:
suzyjstyles
asoskic
Timezone:
+8 (Singapore)
+2 (Serbia)
Description:
The dense data streams and analytical flexibility of electroencephalography (EEG), result in a substantial ‘Garden of Forking Paths’. Recent research (Šoškić et al 2021 https://psyarxiv.com/jp6wy/) shows that most research reports do not contain sufficient detail in their methods to know which path has been taken, hampering reproducibility, replication and meta-science. Our initiative to create an Agreed Reporting Template for an International Standard (ARTEM-IS https://doi.org/10.17605/OSF.IO/PDX6Y) includes a draft template designed to make reporting EEG methodology easier and more accurate, by providing fields for researchers to input specific methodological details. Read more about why we need this tool and how you can help to make it better in our preprint: (https://psyarxiv.com/myn7t).
Link to project:
Static docs can be found on the ARTEM-IS OSF: https://doi.org/10.17605/OSF.IO/PDX6Y
Editable doc links will be shared directly on Mattermost and in the ARTEM-IS Clubouse in Gathertown
ARTEM-IS Clubhouse: https://gather.town/app/Bw3fcD2KiO11izhe/artemisclubroom
(Password on Mattermost)
Mattermost handle:
@suzyjstyles
Goals for the OHBM Brainhack
In this hackathon, participants work together to refine and convert fields in the draft template into a structured format making up the backend of a webapp (based on the model of COBIDAS Information Collection Protocol: https://ohbm.github.io/cobidas/#/ ). The webapp helps researchers document methodological details accurately in a simple, un-get-wrong-able form. Participants may also collaborate on revisions and extensions of the draft template to maximise the utility of the tool.
Good first issues:
• Translating the existing template fields into a viable eCOBIDAS App (with @Remi-Gau 's generous support)
• Updating/refining the template fields
Skills:
Want to improve reproducibility, replicability and transparency in EEG?
Basic spreadsheet experience and programming skills are both welcome!
Experience conducting EEG or describing EEG methods would be a bonus, but not necessary to participate
Chat channel:
https://mattermost.brainhack.org/brainhack/channels/artem-is
Participant Capacity:
5-15
Contributions
Contributors in the OHBM BrainHack will be acknowledged on a contributors page in the ARTEM-IS OSF Project
Meeting Schedule
TBC

Image for the OHBM brainhack website

Project submission
Submission checklist
Once the issue is submitted, please check items in this list as you add under 'Additional project info'
Please include the following above (all required):

[x] Link to your project: could be a code repository, a shared document, etc. See here
[x] Include your Mattermost handle (i.e. your username). If you do not have an account, please sign up here.
[x] Goals for the OHBM Brainhack: describe what you want to achieve during this brainhack. See here.
[x] Flesh out at least 2 "good first issues": those are tasks that do not require any prior knowledge about your project, could be defined as issues in a GitHub repository, or in a shared document, cf here.
[x] Skills: list skills that would be particularly suitable for your project. We ask you to include at least one non-coding skill, cf. here.
[x] Chat channel: A link to a chat channel that will be used during the OHBM Brainhack. This can be an existing channel or a new one. We recommend using the Brainhack space on mattermost, cf. here.
[x] Provide an image of your project for the OHBM brainhack website

You can also include information about (all optional):

[x] Someone co-leading the project in the timeslot you have not selected to provide additional visibility.
[x] Number of participants, cf. here
[ ] Twitter-size summary of your project pitch, cf. here
[ ] Set up a kanban board on your repository to better divide the work and keep track of things, cf here
[ ] Project snippet for the OHBM Brainhack website, cf. here

We would like to think about how you will credit and onboard new members to your project. We recommend reading references from this section. If you'd like to share your thoughts with future project participants, you can include information about (recommended):

[x] Specify how will you acknowledge contributions (e.g. listing members on a contributing page).
[ ] Provide links to onboarding documents if you have some.

QMENTA has agreed to sponsor the event and provide computational resources through their platform.

[ ] Get in touch with QMENTA through their Brain Innovation Hub Slack space, if you think your project would benefit from their support.

Hi @suzyjstyles, Have you closed this issue because you are no longer interested in submitting it?

Hi, just to confirm that we are still submitting, I am unsure about why the issue got closed, and I will let Suzy know. :)

Hi @suzyjstyles @asoskic great to see this submitted!
Me (and maybe some more people from EEGManyPipelines, currently interrogating options) would be happy to help!
Can you already say a bit more about your plans (e.g. first issues)?
What exactly do you plan to work on?
Mostly spread-sheet based (pushing the reporting template further), or also the eCOBIDAS App?

Hi @johalgermissen - great to hear from you!
We are excited by the chance to team up with as many of the ManyThings teams as we can!
I'm a bit of a noob on this platform so please do bear with us while we figure out how to do stuff...
We have 2 main things planned, exactly as you suggest:

translating the existing template fields into a viable eCOBIDAS App (with @Remi-Gau 's generous support)
updating/refining the template fields i.e., pushing the template further

We expect different people might be interested in different aspects of the work, so we want to make space for both kinds of activity :)

@suzyjstyles, Can you, please, update the issue according to the checklist?

Working on it now :)

hi @ohbm/project-monitors: I think my project is ready! - sorry for all of the mistakes along the way 😅

Uploading ARTEM-IS_DesignGuidelines.pdf…


Update metrics.py

Changes in matthews_correlation. Updated return function

Epsilon is there to avoid dividing by zero.


More examples

https://blogs.msdn.microsoft.com/ie/2012/05/10/diagnosing-javascript-errors-faster-with-error-stack/

I moved this part to the polyfill, but this is still true, we need more example especially by why is UserError better than Error, and why is CompositeError so cool, etc... I am not sure whether NativeError will remain. It depends on https://github.com/inf3rno/error-polyfill/issues/6


HBASE-28357 MoveWithAck#isSuccessfulScan for Region movement should use Region End Key for limiting scan to one region only

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
2m  5s
Docker mode activated.


Command was not accepted by device:

I get an error ~every 40 minutes:
"Command was not accepted by device:    "
This is when idle, not trying to send any commands.

There is an interval that check the AC state.
Sometime Midea api don't respond, because of it you see the error message.
I can remove the message but not the interval.

fix with version 1.4.1

Thank you, I appreciate the response.


Remove the gcc dependency and bump version

It isn't used...

This change is

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

Comments from Reviewable


Update placeholder avatars and source badges

In frontend/src/assets/images/users/

Can you add a screenshot of those new avatars to document this PR?

Can we have something nicer for "upload"? Maybe with a Up Arrow?

does this work?

Sure, definitely better. Just make sure that the 3 states are covered (default, hover, pressed) and update the SVG in this PR. Thank you!

@xdamman The changes you asked have been implemented, they are simple please review, CircleCI failed at npm run install:debs

Sorry can't merge if tests don't pass. @sedubois can you take a look? I tried to rerun the tests and they keep failing at that npm run install:debs step.

@carlosascari I think you have an old branch, please rebase on master. That was fixed here: https://github.com/OpenCollective/website/pull/197/files#diff-b9cfc7f2cdf78a7f4b91a753d10865a2R36

Ready for review and merge


[Feature] Lightweight "dimensional analysis"

Add some lightweight dimensional analysis (https://en.wikipedia.org/wiki/Dimensional_analysis), perhaps in the "explanation" expandable.

For now, a contributor can specify "unitDetails" for a scenario that might include something
tokens * words/token * dollars/word.
We'll hold off on doing any complicated expression parsing for now


Use pseudo-class too for disabled check/radio

In order to consider check/radio inputs inside a disabled fieldset, this first use the :disabled pseudo-class. By the way, the URL of the relevant issue on M$ Edge seems broken or needs at least an account to track its progress...
fixes #29739

Maybe we could link to https://github.com/twbs/bootstrap/issues/28247 instead?

Thanks for the link and the review. I have updated the patch to use the suggested workaround for Edge instead to keep only the :disabled pseudo-class for the ruleset. However, I don't have Edge to validate that it is still working on it. Could someone check that please?

I am not a fan of such CSS hack 😕. I think the previous change (both :disabled and [disabled] ) is better.

@ysds I agree with you, besides it seems to come out of nowhere... I have switched to this hack as it has been tested on Edge and implemented in other projects regarding #28247, and because I cannot confirm that using both :disabled and [disabled] will work on it too. But it is as you want for sure.

I agree with @ysds here

I want to include this to 4.4.1 if we can work quickly.

I have made changes accordingly, if someone can confirm that it is working on Edge please.

I created a PR for v4: #29762

So no longer need to rush this PR :)

I checked the following test cases:

Current (master) https://codepen.io/fellows3/pen/jOENWQe
After https://codepen.io/fellows3/pen/xxbKZyb


Add Cone Geometry Type to marker.proto

Add recently added Cone geometry message type to marker message.

Looks good!

Forgot to add DCO sign off.


Task logDuration

To log a task duration. Something like this. I suppose it can be useful.
export const logDuration = <A>(ma: Task<A>): Task<A> => {
  return () => {
    const start = Date.now();
    return ma().then((a) => {
      // eslint-disable-next-line no-console
      console.log(`${(Date.now() - start) / 1000}s`);
      return a;
    });
  };
};

Am I writing in thinking this'd be principally used for debugging?

@samhh Yep.

How do you like the look of this?:

export const elapsed = (f: (ms: number) => IO<void>) => <A>(x: Task<A>): Task<A> => async () => {
    const start = Date.now();
    const y = await x();
    const duration = Date.now() - start;
    // eslint-disable-next-line functional/no-expression-statement
    f(duration)();

    return y;
};

Then to achieve the same you could just elapsed(log) (where log comes from fp-ts/Console and is unknown -> IO void).
Only thing I'm unsure about is how idiomatic it is to use a callback for side effects.

https://github.com/samhh/fp-ts-std/commit/02c9e5b2574a12dcc7825498811b9dfdd1d1383e
Will be included in the next release, thanks for the suggestion! :slightly_smiling_face:


[Bug]: Switching to bash lang under mux currently hangs on my system

What went wrong?
The shrs_example program maxes out the CPU and the terminal oddly accepts input but won't do anything.
Spawning shell used is fish.

shrs on  master via  v1.81.0
❯ target/debug/shrs_example

        __
   ___ / /  _______
  (_-</ _ \/ __(_-<
 /___/_//_/_/ /___/
a rusty POSIX shell | build v10192024.1136-dev
 jeremy shrs > mux python                                                                                git:master  posix
setting lang to python
 jeremy shrs > print("All good here")                                                                                git:master 14.195439ms python
All good here
 jeremy shrs > mux bash                                                                                git:master 121.425µs python
setting lang to bash

Can type
But nothing happens, and the process just uses a bunch of cpu time

Ah, i think the bash lang work is still work in progress. The best working language is python currently, and we just need to abstract some of the mechanisms we use to also work with bash.


Added helpful error message telling user to use ChatCompletion

Problem
Many users (including me) are trying to call the "gpt-3.5-turbo" from the Completion class.   See #250.
response = openai.Completion.create(
    model="gpt-3.5-turbo",
    prompt="Who won the world series in 2020?",
)

Which returns a confusing error message, telling the user to use a different endpoint.
    677         stream_error = stream and "error" in resp.data
    678         if stream_error or not 200 <= rcode < 300:
--> 679             raise self.handle_error_response(
    680                 rbody, rcode, resp.data, rheaders, stream_error=stream_error
    681             )

InvalidRequestError: This is a chat model and not supported in the v1/completions endpoint. Did you mean to use v1/chat/completions?

Proposal
Given this is a library that wraps the API, it'd be more helpful to tell the user to use the ChatCompletion class instead.  My pull requests wraps the error and displays the following.
        stream_error = stream and "error" in resp.data
        if stream_error or not 200 <= rcode < 300:
>           raise self.handle_error_response(
                rbody, rcode, resp.data, rheaders, stream_error=stream_error
            )
E           openai.error.InvalidRequestError: Please use ChatCompletion instead of Completion when using the'gpt-3.5-turbo' models. For more information see https://platform.openai.com/docs/guides/chat/introduction.

  Searching further it looks like handle_error_response is a good spot to put this since it already does something similar for internal errors.
Caveats
This approach is fairly tightly coupled to the OpenAI API error response message, I'm not sure how stable these messages are.  With that said if the error message does change, this will not affect any other functionality.

I see the idea but I'm a little nervous about the dependency on the api error message. I'd rather have this this covered in something like an FAQ (which might be a good idea to start at this point) or with better documentation in the README.  That said, I get the appeal.  Given that this won't be the only model that has this issue, can we make this error more generic?

One option is for the API to return an error code for this case and we can depend on that to change the error message instead e.g. code: "chat_model_unsupported"
However, I'm leaning towards updating our README / quickstart to use chat completions by default instead. PR here: https://github.com/openai/openai-python/pull/441. Hopefully that will reduce the confusion for new users. Open to reconsidering if this continues to be a problem!


FastAPI application

this one should be 90% done. The application is under predict_model(), should revisit this when switching to the cloud

finished


TimeMixer Tensor Size Runtime Error

Hello, thank you all for effort in updating and maintaining this repository. I have been comparing the performance of a few of your models on a custom dataset and have run into issues training the TimeMixer which was updated 4 days ago. The issue arises within forward function of the 'DataEmbedding_wo_pos' class where the value embedding and temporal embedding arrays are added together. The size of the tensors do not match in position 0 causing the following runtime error:
"RuntimeError: The size of tensor a (x) must match the size of tensor b (y) at non-singleton dimension 0"
I tried altering the code to resize tensor b to match tensor a but this created size incompatibilities further along. I'm hesitant to change much else because I've trained and evaluated a few of your other models without issues. If there is any more information I can provide to help resolve this please let me know.

Hi, we have tried this script https://github.com/thuml/Time-Series-Library/blob/main/scripts/long_term_forecast/ETT_script/TimeMixer_ETTh1.sh
and no error occurs. Would you please detail the script that you experimented with?

Hi, I think this problem is caused by the mismatched input length and temporal information of your task. You can try our default scripts.


missing docs to register properly multiple clients with prompt for update

Library Affected:
workbox-window
Browser & Platform:
Latest Google Chrome on Windows 10.
Issue or Feature Request Description:
We're trying to solve a problem when using workbox-window on  vite-plugin-pwa when using prompt for update strategy using https://developer.chrome.com/docs/workbox/handling-service-worker-updates/.
Depending on the client that fires the sw installation and the client where the reload is fired, workbox-window is firing some werd events on the original client that fires the sw installation: also preventing the logic to reload the app in that client.
For more context you can check this PR comment: https://github.com/vite-pwa/vite-plugin-pwa/pull/394#issuecomment-1279038447
You can clone the repo and checkout the branch https://github.com/vite-pwa/vite-plugin-pwa/tree/userquin/fix-reload-prompt-multiple:

from root folder run pnpm install && pnpm run build
from root folder run pnpm run examples: follow the wizard with default values (vue, prompt for update...) or use the fw you want (except sveltekit).
follow instructions on previous PR comment

We've also dealing with the Ready to work offline message/prompt/dialog and also with the selfDestroying sw, the code can be found here: https://github.com/vite-pwa/vite-plugin-pwa/blob/userquin/fix-reload-prompt-multiple/src/client/build/register.ts

see https://github.com/vite-pwa/vite-plugin-pwa/pull/394#issuecomment-1279947808


Update roll-call.txt

Added Github username to complete Module 1 assessment in edX course.

Thanks for the contribution, @WhoFama24


KAFKA-10495:Fix spelling mistake

The iff is wrong word.I fixed it to if.

Hi @ouyangnengda,
I think it is not a problem. 'iff' means 'if and only if'. Please see here.

ok


Rename master to main

New repositories use main as default branch name, we should align.
https://github.com/github/renaming

Since this repo was created with master, changing to main now would cause problems with existing clones and configs. So I would not do this, or at least not until GH has a backwards-compatible workaround.

Agreed, just here as a sort of backlog/reminder.


Feat: support for customize paste function

Is there an existing issue for this?

[X] I have searched the existing issues

Use case
I copied some content from another software that may contain some parsable emoji, but when I paste them into Quill Editor they can't parse the emoji using the custom parsing method.
Proposal
I found that there are onImagePaste and onGifPaste methods in QuillEditorConfigurations to handle the problem of pasting pictures. I wonder if there should be an onPaste method to handle the pasted content?
Future<String?> Function(Uint8List)? onImagePaste,
  Future<String?> Function(Uint8List)? onGifPaste,

Thank you for the report, do you want to customize how paste is handled in the editor in general? or do something to paste an image?

Thank you for the report, do you want to customize how paste is handled in the editor in general? or do something to paste an image?

Yes! I want to customize how paste is handled in the editor in general! Because I want to handle some specific encoding formats, such as email, url, emoji and other formats! So that we can make full use of the powerful functions of flutter quill! ! I Hope this function can be added! Thank you very much! !

Once our platform clipboard implementation becomes stable (still in early stage) and web common issues fixed, we will start working on providing more API to customize the behavior and extend it further.

Any progress?

Any progress?

Fixed in the pre-release version (11.0.0). See this comment. Not closed yet since I'm not entirely sure what is expected to be customized, and also it's a pre-release, expect some minor changes (will be documented in CHANGELOG.md).

@CatKevin Can you confirm whether the onDeltaPaste and onPlainTextPaste fixes the issue? https://github.com/singerdmx/flutter-quill/issues/2350#issuecomment-2464796551

Dear Ellet,
Thank you for your reply!
However, I only see string2string and delta2delta related conversions. But we may copy a string with emojis somewhere (not in quill), such as "Hello[smile]Mike![cheer][cheer][cheer]", and users can copy and paste it on any APP without exposing the emoji protocol in this APP. After we paste this string in quill, we actually hope to parse the strings "[smile]" and "[cheer]" into corresponding emojis and display them in quill.
Therefore, I think we may also need a method to convert strings to Delta. Do you think so?
https://github.com/singerdmx/flutter-quill/issues/2350#issuecomment-2514020932
Looking forward to your reply!
Best,
Kevin
| |
Kevin
|
|
@.***
|
---- Replied Message ----
| From | @.> |
| Date | 12/2/2024 21:30 |
| To | @.> |
| Cc | @.> ,
@.> |
| Subject | Re: [singerdmx/flutter-quill] Feat: support for customize paste function (Issue #2156) |
@CatKevin Can you confirm whether the onDeltaPaste and onPlainTextPaste fixes the issue? #2350 (comment)
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: @.***>

Thanks for the suggestion, see https://github.com/singerdmx/flutter-quill/issues/2350#issuecomment-2514128816


Dry Out USB mode (Mighty Lite MkII) bugs and features

Hi. Thank you for your work. Donated.
While testing dry out mode on my lite mk2 (using the computer as a pedal board), I noticed that:
(1) the diagram in the app (official and mightier) shows the fx chain going to the output, mixing with the usb output. However, this isn't the case with me. I never hear the onboard fx through the amp, and the gain and volume are entirely ineffective. This is the behavior I wanted in the first place, so no problem there except for the confusing image.
(2) That opens up the opportunity for the gain and volume knobs to control the USB input gain and USB playback volume in Dry Out mode like you'd intuitively expect an audio interface to act like. Currently, you only have the in-app gui sliders to control these important functions. It makes a lot a sense to me to have the knobs change these usb settings (instead of doing nothing in dry out mode). I hope this is possible!

You're right. I was using the nux as both input and output but i must have had a bad preset or loaded or something: I wasn't hearing anything of the loaded preset when adjusting the volume and gain knobs. Testing again this morning, it's working as expected.


test: convert cuDF numpy types to python types in tests

What type of PR is this? (check all applicable)

[ ] 💾 Refactor
[ ] ✨ Feature
[ ] 🐛 Bug Fix
[ ] 🔧 Optimization
[ ] 📝 Documentation
[ ] ✅ Test
[ ] 🐳 Other

Related issues

Related issue #
Closes #

Checklist

[ ] Code follows style guide (ruff)
[ ] Tests added
[ ] Documented the changes

If you have comments or can explain your changes, please do so below.

thanks Liam! I think if you add a pragma: no cover to those lines then this should pass (we don't test cudf in CI so we can't cover them yet)

thanks Liam! I think if you add a pragma: no cover to those lines then this should pass (we don't test cudf in CI so we can't cover them yet)

Thanks! Updated and the tests are passing now.


Sort commits using isort, refs #516

Also added a lint unit test to ensure they stay sorted. #516

This branch is WAY out of date.


Remove compulsory CUDA dependency

CUDA should not be compulsory. If its not found, then the CUDA components should not be built.
CUDA_TOOLKIT_ROOT_DIR not found or specified
-- Could NOT find CUDA (missing:  CUDA_TOOLKIT_ROOT_DIR CUDA_NVCC_EXECUTABLE CUDA_INCLUDE_DIRS CUDA_CUDART_LIBRARY)
-- Configuring incomplete, errors occurred!

Currently CUDA is already configured as "optional". There are two CUDA usages, and they are all guarded:
https://github.com/IBM/comanche/blob/ce9cfad36cc7be22ab339099ff7139aff1057b4b/apps/CMakeLists.txt#L8-L11
And this:
https://github.com/IBM/comanche/blob/ce9cfad36cc7be22ab339099ff7139aff1057b4b/src/lib/CMakeLists.txt#L52-L61
If CUDA is not found, those two components are not built (but it will still show the "Could NOT find CUDA " warning in the cmake configure step). That's exactly what happens in the the CI, which doesn't have the CUDA environments, see here).
So I think the error
Configuring incomplete, errors occurred
might be referring to the errors happens before the CUDA warning.
Could you provide the full output of the Cmake?  (I think there will be some kind of Cmake Call stack shown in the output of Cmake, when the error happens)


BUG: interpolate: fix spalde with len(c) < len(t)

Reference issue

closes gh-19002
What does this implement/fix?

Make spalde work (again) with `len(c) < len(t), which was broken in https://github.com/scipy/scipy/pull/17303.
Specifically, gh-17303 removed the handwritten spalde wrapper in favor of the f2py one. The former allowed len(c) >= len(t) - k -1, while the latter required len(c) == len(t).
Additional information

The change is similar to https://github.com/scipy/scipy/pull/17038, https://github.com/scipy/scipy/pull/18195: we add an extra parameter for the length of the c array in Fortran and hide it in f2py.

CI failures seem unrelated.

They're all using bleeding edge numpy, which ultimately should be fixed by #18975


feat: do not overwrite the flags of features(&alias)

the polyfill-liabrary will always merge the flags from feature and alias:
a query like this: default|gated,Promise|always , it is same as default|gated,Promise|always|gated. Actually, i do not want the gated flag, i want to overwrite Promise anyway. There is no way to do things like this. I think we should not merge the flags if there is already flags assigned to feature (like, Promise).

I've moved this to the new polyfill-library repository --> https://github.com/Financial-Times/polyfill-library/pull/165


[8.x]Fix: additional comma causes parse error

exceed comma in constructor invoke.

On CentOS7 + PHP7.4.4, this issue leaves a log error message below:
[2020-10-09 13:24:02] production.ERROR: syntax error, unexpected ')' {"exception":"[object] (ParseError(code: 0)      : syntax error, unexpected ')' at /vendor/laravel/framework/src/Illuminate/Bus/BusServiceProvider.php:51)

You're definitely using a PHP version lower than 7.3 as PHP 7.4 cannot cause this error.

You're definitely using a PHP version lower than 7.3 as PHP 7.4 cannot cause this error.

Yes, it's my fault to forget change cli path in my crontab, so that old 7.2.29 left those error message while running schedule.
So sorry for troubling you.


Switch extended test builds in external category to weekly

Switch extended test builds in external category to weekly. Set up a parent build to trigger downstream build weekly.

[x] set up parent build to trigger builds weekly
https://ci.adoptopenjdk.net/view/Test_external_weekly/job/openjdk_externaltest_extended_weekly/configure

[x] turn off currently test builds triggered by upstream builds jobs

[x] move those test builds to a separate tab

[x] remove trigger from upstream build https://github.com/AdoptOpenJDK/openjdk-build/pull/1075

For now build is scheduled as 'H 20 * * 0'. If jobs can not be finished due to limited resources( 4 docker machines) will need to separate downstream jobs by either jdk version or impls.

Of the new xLinux machines, the ubuntu ones appear to have docker installed on them... see https://ci.adoptopenjdk.net/view/Test_grinder/job/Grinder/1596/console run on https://ci.adoptopenjdk.net/computer/test-godaddy-ubuntu1604-x64-2/.
I can add the docker label on those machines, if we check that all the ubuntu ones have it installed.

Yes, all those new xLinux with ubuntu ones (test-godaddy-ubuntu1604-x64-1/2/3/4) have docker installed. However may not be installed correctly. Running test hit the https://github.com/AdoptOpenJDK/openjdk-infrastructure/issues/721
And I have tried rerun on those 4  machines and got the similar issue:
20:23:17       [exec] Step 5/12 : RUN apt-get update 	&& apt-get -y install 	apt-transport-https 	ca-certificates 	dirmngr 	curl 	git 	make 	unzip 	vim 	tar 	wget 	ant
20:23:17       [exec]  ---> Running in 2d31710bd87d
20:23:50       [exec] Err:1 http://archive.ubuntu.com/ubuntu bionic InRelease
20:23:50       [exec]   Could not connect to archive.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to archive.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to archive.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to archive.ubuntu.com:80 (<IP_ADDRESS>), connection timed out Could not connect to archive.ubuntu.com:80 (<IP_ADDRESS>), connection timed out
20:23:50       [exec] Err:2 http://archive.ubuntu.com/ubuntu bionic-updates InRelease

https://ci.adoptopenjdk.net/view/Test_grinder/job/Grinder/1599/console
https://ci.adoptopenjdk.net/view/Test_grinder/job/Grinder/1598/console
https://ci.adoptopenjdk.net/view/Test_grinder/job/Grinder/1597/console
https://ci.adoptopenjdk.net/view/Test_grinder/job/Grinder/1596/console

Done. Close it.


Question: ops-file path syntax:  selector?

Is there a way to select any element (or even selecting elements with a name that matches a pattern) in the ops-file path syntax?
My use case is that I'd like to remove all occurrences of vm_extensions from https://github.com/cloudfoundry/cf-deployment/blob/master/cf-deployment.yml.
I'm thinking about something like
- type: remove
  path: /instance_groups/*/vm_extensions

instead of having to do
- type: remove
  path: /instance_groups/name=nats/vm_extensions

- type: remove
  path: /instance_groups/name=etcd/vm_extensions

...

and catching up with changes instance_group entries.

@bkrannich we are trying to keep ops file functionality very limited. this should help us in general improve core features of bosh director instead of ops files. currently recommend approach would be to configure explicitly which vm_extensions to remove.
i'll give it some more thought for the future of ops files though.

@cppforlife Just came across https://github.com/cloudfoundry/cf-deployment/blob/master/operations/scale-to-one-az.yml which is another good example of why it would be great to have a more generic way to do these kinds of replacements. Seems like everybody who's adding/changing job names in cf-deployment will also need to change this file.

@cppforlife Sorry for teasing. I'm starting to see a pattern evolving here with https://github.com/cloudfoundry/cf-deployment/blob/f9be65c45d25f7b257e3775d4307878178a8c5ce/operations/community/change-metron-agent-deployment.yml being the next instance of having such a selector being useful. Would be great if you could re-consider. Thanks in advance.

See also: https://github.com/cppforlife/go-patch/issues/8 which has some PRs against it.

@aeijdenberg: Thank you very much for the pointer, wasn't aware of that. Now watching cppforlife/go-patch#8.

Closing this for now. Please re-open once the PRs or changes have been merged in go-patch.

@bkrannich we are trying to keep ops file functionality very limited. this should help us in general improve core features of bosh director instead of ops files. currently recommend approach would be to configure explicitly which vm_extensions to remove.
i'll give it some more thought for the future of ops files though.

I am trying to look for remove operation for item if exists. if doesnot exists then should not through error.
e.g. - type: remove
path: /instance_groups/name=master/jobs/name=docker?
but i am getting error like
Expected to find exactly one matching array item for path '/instance_groups/name=master/jobs/name=docker' but found 0


Navigate User To Specific Screen When User Click Answer Call Button

I need to Navigate user on specific screen in  my app when user click on answer call button. incoming call screen works fine but when i pick call it starts the call like normal call.

Hi! Have you found solution? Have the same issue(

Hi there, have you found a solution? Same issue here :(


ignore any *.iml files

All I did is just of adding *.iml in .gitignore. This could make my development life much easier cuz my IDE is IntelliJ.

Please keep editor-specific ignore matchers in your global .gitignore.

@mark-rushakoff So why there is a .idea in .gitignore?  It is is exactly editor specific ignore.


Offline mode - expiration time

com.google.android.libraries.youtube.offline.model.OfflineVideoPolicy
isExpired void & isOfflineStatePlayable should interests us :D

I have some spare time today, i'll check what can be done later ;)


DSD-1660: default text colors in Hero

Fixes JIRA ticket DSD-1660
This PR does the following:

Updates the default styles for text elements in the "primary", "tertiary", and "campaign" variants of the Hero component.

How has this been tested?

local Storybook

Accessibility concerns or updates

The default color choices are compliant with WCAG 2.1 standards.

Checklist:

[ ] I have updated the Storybook documentation accordingly.
[ ] I have added relevant accessibility documentation for this pull request.
[ ] All new and existing tests passed.

Front End Review:

[ ] Review the Vercel preview deployment once it is ready.

@EdwinGuzman I started making the changes that we talked about.  For now, they are only aplied to the campaign variant and it may have to stay that way.  But take a look and let me know what you think.  If this update is only going to apply to the campaign variant, I will need to add some additional logic and warnings.

The update looks good. Is this ready for another review or is this still being worked on?

The update looks good. Is this ready for another review or is this still being worked on?

@EdwinGuzman I cleaned up a few more things.  One last review and then yes, this is ready to move forward.

It looks like when an image does not expand it's container, the background becomes red:

I'm not sure what to do about that.  I was hoping there was at least a param that could be passed in the URL that would control that filler color, but I was not able to find anything.


Add new handler protocols + Codable support

Motivation:
As part of the implementation of the v2 API (#339), we want to add the handler protocols LambdaHandler and LambdaWithBackgroundProcessingHandler.
Modifications:

Added the two remaining handler protocols: LambdaHandler and LambdaWithBackgroundProcessingHandler.

Note: LambdaHandler is currently temporarily named as NewLambdaHandler as there is already an existing LambdaHandler. This will be sorted out closer to release.

Added LambdaHandlerAdapter and LambdaCodableAdapter to allow the two new handler protocols to work with the LambdaRuntime (as LambdaRuntime requires a StreamingLambdaHandler conforming handler).

LambdaHandlerAdapter:

Adapts a LambdaHandler conforming handler to conform to LambdaWithBackgroundProcessingHandler by passing the output returned from LambdaHandler to LambdaWithBackgroundProcessingHandler's output writer.

LambdaCodableAdapter:

Adapts a LambdaWithBackgroundProcessingHandler conforming handler to conform to StreamingLambdaHandler.
First decodes the received ByteBuffer event into LambdaWithBackgroundProcessingHandlers generic Event object, and passes this to its handle(...) function.
Encodes the output written to LambdaResponseWriter into a ByteBuffer and send this to StreamingLambdaHandler's LambdaResponseStreamWriter.

Added StreamingClosureHandler and ClosureHandler structs conforming to StreamingLambdaHandler and LambdaHandler protocols respectively.

This allows a Lambda handler to be created by simply writing the handler in the form of a closure, as compared to first creating an object conforming to the handler protocol and then writing the handle(...) function.

Result:

All three handler protocols are introduced.
Handlers conforming to the LambdaHandler and LambdaWithBackgroundProcessingHandler can be used with the new LambdaRuntime through the adapters.
Handlers can be defined in a clean manner through the closure handlers.

API breakage check also reports on package access modifiers:
2 breaking changes detected in AWSLambdaRuntimeCore:
  💔 API breakage: protocol LambdaRuntimeClientProtocol has generic signature change from <Self.Writer : AWSLambdaRuntimeCore.LambdaResponseStreamWriter> to <Self.Writer : AWSLambdaRuntimeCore.LambdaRuntimeClientResponseStreamWriter>
  💔 API breakage: func LambdaResponseStreamWriter.reportError(_:) has been removed


Make JournalOptions and SnapshotOptions IConfiguration bindable

Changes

Make JournalOptions and SnapshotOptions IConfiguration bindable
Make journal adapters bindable via IConfiguration (advanced options)

Fixed, removed the adapter part.


Installation error

Hello,
I'm excited to try the methods of your package, unfortunately I'm facing problems with the installation. I'm working on Mac with python 3.10. in a conda environment. Apparently there is a problem with the 'pygeos' package, but I can't get behind it. I would be very thankful for any advice on how to solve this.

Hi @Isiiiiii, can you please tell me which version of graphcompass are you trying to install?

When creating new environments, you can tell conda explicitly which version of Python to use:
conda create -n myenv python=3.10
Could you try that and then install graphcompass once you have activated your environment?

Thank you for the answer. I tried that before with python 3.9 and 3.10 and it didn't work. Now I made it work by deactivating the base environment and created a new one with python 3.10 then. I installed version 0.1.1. of graphcompass.

Glad to hear it's now working. I would recommend installing the latest version of graphcompass though 0.2.0, where we added extra features and some datasets.
I will close this issue, but feel free to open a new one if you have further questions.

I will close this issue, but feel free to open a new one if you have further questions.


Partial Keypaths

I have a question on the keypath returned from Ractive.getNodeInfo.  I am creating an app using a bunch of dynamic partials each with its own context (typically a subnode in the root data).
When I inspect the keypath returned from Ractive.getNodeInfo it looks like:
${${${${${page-content||{}}-body||{}}-rows-0-||{}}-content||{}}-sections-0-||{}}
It appears it has all the information I would need to resolve it back to a node in the root data.
My root data looks like this:
{
  page: {
    content: {
      body: {
        rows: [
          {
            content: {
              sections: [
                {
                  text: {
                    text: 'Column 1'
				  }
				}
			  ]
			}
		  }
		]
	  }
	}
  }
}

I'm wondering if there is already a function or some way to resolve this keypath to an actual node in my data?

What version of Ractive? I'm guessing 0.7.3 based on the keypath, but it never hurts to ask.
I ask because context and aliasing are things addressed by edge, which will become 0.8. There are also new keypath helpers for sticking paths together. There is also an open PR for more helpful getNodeInfo in #2442.
It looks like you're using something like {{>somePartial foo || {}}}, which is equivalent to {{#with foo || {}}}{{>somePartial}}{{/with}} and gets you outside of globally synced model territory - because foo || {} is an expression it's no longer addressable as just data. Your best bet would probably be to handle the defaulting during during initialization with a pre-populated data object. If that's not possible, you can do something truly terrible like {{~/makeSureThisIsInited(.foo, @keypath + '.foo')}} where makeSureThisIsInited is something like function(value, path) { if (!value) ractive.set(path, {}); return ''; }. Then a subsequent {{>somePartial .foo}} would always have a value because the side-effecting 😱 interpolator just above it makes sure it is inited.

Yep 0.7.3, Thanks for the suggestions.  I will give your pre-populated data suggestion a go.  I'm looking forward to the new features in 0.8.  Great work!


Adding Stephen Ford

Adding Stephen Ford to GOV.UK Infrastructure

Welcome, @smford! Could you please squash your commits?


Improve:Create user groups access control list.

Prepare user group model.

We have to decide the way for preparing "user-belong-group".
One way is preparing "belonging-users-list" to "group-model" and the other way is preparing "belonging-groups" to "user-model".

Improve page access control for group.

#196

Implemented on v3.0.0


Ownership model

Linear types with ephemeral, shared references

Each value is owned by the function it exists in.
Passing a value to a function gives away ownership of it.
dup and drop duplicate/destroy primitive types trivially.
Non-primitive types, such as those that own dynamically allocated memory, have their own drop equivalent, and possibly a dup equivalent if they can be duplicated.
A function can be given a temporary reference to a value without giving away ownership of said value.
Reference parameters only exist within the function body; they can be copied freely but cannot be kept around.
No mutations through references.
If we ever implement multi-threading, don't let references be sent across threads.

This should give Spackel memory safety with somewhat decent expressiveness, without being too difficult for a bunch of amateurs to implement.

Perhaps we could take some inspiration from Vale or Val?


BeehaveTree icon not displaying in online docs

BeehaveTree icon is not properly displaying in online docs.

Great catch! I fixed this now and created https://github.com/bitbrain/beehave/issues/144 to properly re-introduce icons in the docs.


Add more precise typing to make development easier

It would really help discoverability if there was better type hinting of common functions/classes.
For example fast_app seems to sometimes return some database tables, but this VS Code's Pylance has no clue about that due to fast_app returning Any

Quite a bit of the library is fairly dynamic so there aren't always more precise types available. FastHTML isn't really designed to work with Pylance - I'd recommend turning it off for FastHTML projects.

(Having said that, if you want to do a PR for places where you're 100% sure you know the type that is always returned, feel free to add them.)

Thanks! Pylance doesn't cause any issues, it's just that I'm used to it helping me figure out how to use a new framework/package - and in this case it's notably useless.
I'll try to make PRs when I find easy wins.


Note about UNIX permissions on Build artifacts

Wish I had known this last night 😄

@ItalyPaleAle, Thanks for the contribution!
@elbatk, You mind verifying the information on this one?

@ItalyPaleAle There has been internal movement on this, I'm just giving this a bump @elbatk, you have any more information?

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

#sign-off

@juliakm: I'm sorry - only the author of this article, @andyjlewis, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.

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

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

Hi @juliakm Is this PR ready to merge?

The PR looks ready to merge, so we'll do that. :)


Launching a new EC2 instance. Status Reason: Max spot instance count exceeded. Launching EC2 instance failed.

I was troubleshooting an issue where the ASG never seems to scale from 0 to 1 and the CloudFormation deployment fails. This is what I found.

Hi @werneroscar, have you requested the appropriate Spot Instance Quota from AWS for the instance type you're using?  If you're using the default g4dn.2xlarge instance you'll need quota in the region to use this.

Thanks


Bumping Version for doc-warden

Just released the newest version to pypi.
@Azure/azure-sdk-eng

/check-enforcer evaluate

/checkenforcer evaluate


ng-include of svg not woring

I'm able to use SVGs in labels like this
.state('statename', {
    url; '/myurl',
    ncyBreadcrumb: {
        label: '{{labelText}}'
    }
})

and all looks well, but I want to be able to style the SVGs, so I need to include them inline.
When I try to use them inline, like this
.state('statename', {
    url; '/myurl',
    ncyBreadcrumb: {
        label: '{{labelText}}'
    }
})

it doesn't render the SVG.

This syntax  doesn't work, in the breadcrumb or not (plain angular template).
You can see it in this plunker.
You can see also a working example of SVG in a breadcrumb label (click on "Element 1").

I know it's been a while, but the plunker you linked is broken again. It's not displaying any labels, only a couple "/" separators with empty space between them.

The ngSanitize module is required when binding to html within the template:
forked plunker
AngularJS ngSanitize
AngularJS ngBindHtml


Inquiry about RAFT Result Output

Hello,
I have a question regarding the output values in RAFT. Could you explain the difference between raft.max_nac_accel and raft.stats_AxRNA? There seems to be a significant discrepancy between the two values. Additionally, is there any documentation available that organizes the various output results that can be extracted from RAFT?

Hi @hymdrj
I only found max_nac_accel and stats_AxRNA in the code related to OMDAO, which I'm not familiar with. @dzalkind and @mattEhall could you help with that?
Unfortunately, our current documentation doesn't explain the outputs yet. For now, you can get the results directly from a model class object. For instance, considering the example from examples/example_from_yaml.py:

you can get the mean offsets from model.results['mean_offsets']
you can get a list of available dynamic responses from model.results['case_metrics'][iCase][iFOWT].keys(), where iCase is the index of the case you want to check (from the list of cases in examples/VolturnUS-S_example.yaml) and iFOWT is the index of the floating wind turbine in the array (this example has only one turbine, so iCase=0).  For example, you can get the maximum surge with model.results['case_metrics'][0][0]['surge_max'] (a scalar value) or the power spectral density of surge with model.results['case_metrics'][0][0]['surge_PSD'] (a 1D array with the number of elements equal to the number of frequencies specified by the user)

Hope that helps 😀

max_nac_accel should be the maximum over all the cases and stats_AxRNA_max should be the max for each case.
There appears to be a typo, and the standard deviation is used by mistake:
https://github.com/WISDEM/RAFT/blob/c9daef3ba24e90372bf481667aee13a7dbed3292/raft/omdao_raft.py#L799
The stats_* outputs should collect all the results that Lucas described.

Ballast properties are computed based on how much of a member is ballasted (specified by l_fill within each member) and on ballast density (rho_fill). I'm not sure what ballast grid` is, could you please clarify?
Are you running your case using a .yaml input file? If so, could you please upload your input file here? I can check whether there's something off in your model.


Syntax is in-correct in the document

Hello Team,
I was looking this below document and I suspect the syntax of the attributes are in-correct or typo error.
https://learn.microsoft.com/en-us/windows-server/identity/ad-fs/operations/adfs-sql-latency#configuration-instructions

Syntax should be as below:

Please kindly check and review this ASAP.
Thank you.
Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 2cdd5a14-4ae6-fc74-21fa-2e6d2c84eff5
Version Independent ID: 442f2a9e-7ece-8491-cea0-7c5ae94e4b01
Content: Fine Tuning SQL and Addressing Latency Issues with AD FS
Content Source: WindowsServerDocs/identity/ad-fs/operations/adfs-sql-latency.md
Service: windows-server
Sub-service: security
GitHub Login: @billmath
Microsoft Alias: billmath

We hugely appreciate your contribution, feedback, and support to our technical documentation.
We’ve phased out GitHub Issues on this repository as the feedback mechanism for content and have replaced it with a new feedback system. For more information see, Content User Feedback. As part of this rollout, we are migrating your issue where our team will use your comments to improve the documentation experience. Unfortunately, this does mean you won't be able to access this issue after the migration is complete.
All issues will be migrated by Thursday 29th August 2024.
Once again, thank you for your valuable feedback, we hope you’ll continue to contribute using our new feedback system.


Svelte Sortable drag-and-drop list doesn't update when Svelte Store changes

I am building a component using Svelte in which you have a list of words and you have to arrange them in the correct order by dragging the words to the answer section, for this, I am using SortableJS.

To store the answer and the words you can use I use svelte stores and everything works correctly. Now, I am trying to do the same but with an ʻonClick` event. But I have a bug where the store values are updated but the view does not.
To show the options and the answers I am doing this:

  {#each get(answer) as chip, index}

      <spain class="tag is-medium">{chip}</spain>

  {/each}

and if I replace the get in {#each get (answer) as chip, index} with $answer, the ʻonClick` event works but now the drag behaves strangely and with bugs.
Here is a codesandbox with both of the alternatives explained above
Reproduction
Scenario
https://codesandbox.io/s/sortable-bug-0lmd8
Version

package
version

sortablejs
1.12.0

@types/sortablejs
N/A

Sortable is a one way binding, where Sortable is the controller. It doesn't listen to your data.
This is unfortunate. AT the time of this being created, data driven development wasn't considered for this project.

@waynevanson is re-creating the sortable js instance every time the data changes a viable solution?

Check out Store in the read me. That might do what youre after. I've never used it myself.

@kantord did you ever figure this out? I'm running into the same thing, and my first attempts at recreating the sortable aren't working. I'm wondering if this is viable and I'm "just doing it wrong", or if it's never going to work that way.

Hi @samf, not yet, I have been focusing on other things, and there's a lot of high prio things other than this.
Do you have some code example for your specific issue btw?

I can second this issue. Working on a solution.
Demo:
https://svelte.dev/repl/9fe76dda194348d1acd6d2e336c30c22?version=3.35.0

If you don't mind little overhead, you can use the #key block now. Ideally you would probably implement Sortable as an action using use: directive with a destroy() hook to not leave some memory leaks.

Thanks @janvotava, your comment saved me. :)


WEBP image could not be saved in

I am using Pillow 10.0.0, whitnoise 6.5.0, Django 4.2.3, django-webp 2.1.1.
When running locally with the no WEBP_CACHE the images are created in WEB_CACHE/images but are not accessible. Log output is Not Found: /static/WEBP_CACHE/filename. If I restart the application images that have been created in the WEB_CACHE/images directory are loaded, however images that have not been created in this directory will not load. They will load if the application is restarted again.
I was mostly able to fix this by creating a python command that looped through the images in the static directory and called the webp function in dajngo_webp.tempatetags.webp.py.
When deployed if I run this custom command or if I attempt to use the package as it is I get and error WEBP image could not be saved in app/project/staticfiles/WEBP_CACHE/images/imagename. The deployment is to openshift.
When I run collectstatic the path is "/app/project_nam/staticfiles", could the slash at the beginning be the difference?

Hey Michael,
I was able to replicate the error locally and I'm currently working on a solution to it. Could you provide a bit of info on how you have your static files set up in your production sever?

Yeah no problem, STATIC_URL = "static/"  STATIC_ROOT = BASE_DIR / "staticfiles" STATICFILES_DIR = [BASE_DIR / "static"]. Thanks for looking into this

Hi sorry I was wondering if you were able to make any headway with this issue?


Question: change color of console.logs and integers?

I'm wondering is there a way to change certain things like console.logs and integers to a different color? For example, I might want to change it to yellow or red.

It should be possible to override the theme and create your own colors. Highlighting is done using cardinal and options to cardinal can be passed as second argument to the marked-terminal Renderer. See how you can create your own theme: https://github.com/thlorenz/cardinal/tree/master/themes


Resolve Snyk Code identified vulnerabilities

Ref.:

Definition of Done:

Resolve issues
Remove "continue-on-error: true" from snyk-pipeline

Item 1 and 2 refers to #253
Item 3-4-5 are probably not relevant. This is just a wrapper package and does not specify write access to the db.


tools svg2tvg: ++Windows port

Complete the Windows port build that is currently missing.
@Issue: https://github.com/thorvg/thorvg/issues/882

@vtorri main implementation is come from
`Author: Vincent Torri<EMAIL_ADDRESS>2022-08-20 17:55:16
Committer: Hermet Park<EMAIL_ADDRESS>2022-08-23 22:41:28
Parent: de87cdc71726a89d3ba0e4a6355b2fd97b9c704f (Windows: use _fullpath() instead of fullpath().)
Child:  a863f29512ed78805db896bdae6866d955630ee9 ([svg2png] size limitation while converting the file)
Branches: hermet/tools, master, remotes/origin/dev/tag, remotes/origin/hermet/infra, remotes/origin/hermet/sceneclip, remotes/origin/hermet/tools, remotes/origin/master
Follows: v0.5.0
Precedes:
fix compilation of svg2png on Windows`

no newline at end of file

does it matter?

i like these new lines
:-)

it compiles, i don't know how to test it


Add support for customizing parser plugins

Maybe partially fix #505 .
This PR enables a feature that user can enable or disable babel parser plugins via parserOptions in .eslintrc file. This can let us parse TypeScript code with babel.

can we use typescript plugin when the file has extensions .ts or .tsx
and use flow plugin when the file has extensions .js or .jsx
using the extensions approach you don't even need to add typescript as a parser option
we are migrating incrementally to typescript using this approach https://medium.com/entria/incremental-migration-to-typescript-on-a-flowtype-codebase-515f6490d92d

@sibelius You can use overrides: https://eslint.org/docs/user-guide/configuring#disabling-rules-only-for-a-group-of-files
For example in my config file I currently have:
  overrides: [{
    files: ['*.ts', '*.tsx'],
    parser: 'typescript-eslint-parser',
    parserOptions: {
      sourceType: 'module'
    },
    rules: tsRules
  }, ...]

@sibelius babel-eslint is just a parser and it isn't able to detect what the extension is.

Just so you're aware, another approach to solve this problem was discussed here. The PR that I started (and unfortunately was unable to land at the time) is here.
I personally think that reading the Babel config is the right approach, because you then don't have to manage and keep in sync what is essentially two separate Babel configs.
I'm hoping to get back to my PR sometime, but I just haven't had the time unfortunately.

So can this PR keep open?

@hzoo @existentialism
Can we get this looked into? I'd love to use babel-eslint for ts files.

@g-plane can you read babel config from file and use it in this PR?

@sibelius Yeah I will try but not sure whether I can do it well or not.

It's OK to support .babelrc., but it seems that it isn't easy to support babel.config.js.

I don't add the feature that supports reading Babel config now, but I have made a file which may resolve the Babel config. Everyone can review that file first and comment here. Link: https://github.com/g-plane/pluggable-babel-eslint/blob/master/lib/config/project-wide.js
If the logic of that file has no problems, I will add it to babel-eslint itself later.

@g-plane The original implementation that I was working on let babel itself do all the configuration resolution, which I thought was a good thing because it meant that the config resolution logic wouldn't have to be duplicated (easier to maintain, smaller surface area for bugs, etc.).
My work obviously fell by the wayside, and I'm unsure of how the Babel v7 config file changes affect the implementation I was working on. Do you feel like this shouldn't happen in Babel core? Thanks for looking at this!

I don't think use "@babel/core" directly is a good idea, because it has some dependencies like "@babel/generator", which is unnecessary. However, I'm not opposed to create a new npm package that uses "@babel/core".

Is having unnecessary dependencies the only con about using @babel/core? I never take that very seriously since it doesn't affect in any way other than the total node_module size after install...

because it has some dependencies like "@babel/generator", which is unnecessary

The reason why I would think this isn't an issue is because we made an assumption that if you are using babel-eslint you are using Babel, and thus already would have @babel/core and everything else as a dependency (we would make it a peerDep)

Hmm...well, if @kaicataldo 's PR is merged, I will close this PR.

@g-plane I'm taking some time off over the next month and will be able to work on this again. That being said, if someone beats me to it, they should feel free!


Added netatmo api

Added netatmo as an api.

Can you explain a few things?:

I believe we had Xing support.  Did it get lost somewhere and you added it back in?
Have you tested both Netatmo and Xing since you touched both?

Once you confirm that everything works, I'll merge the PR.
Thanks,

@nraboy I didn't touch anything with Xing. I'm a little confused why that is in there. I can take it out if you like.
I have tested with Netatmo.

@nraboy it looks like Xing was only added to the dist file because it was already in the uncompiled file but never compiled correctly (I guess).

Xing was contributed in PR #238 by @visiongeist.
When you created your development branch, did you use the already existing development upstream branch or did you create one based on the master branch.  If you created a development branch based on the master, then you are going to wipe out a lot of changes that were done on the development.
Please let me know what you did.
Thanks,

@nraboy I'm pretty sure I branched off of development and am now pushing back to development. If I branched off master, you'd see a whole lot more differences between my code and the development branch. If you look at #238, you'll see that there were no changes to the "dist" files. That leads me to believe they just forgot to compile.

  I overlooked that.
Looks good, I will merge the PR.  Thank you for contributing to the project :-)


Additional PathPlannerAuto triggers

Potentially useful auto triggers are:
Distance* from start
Distance* from end
Time left to end
*(can be norm2 distance or trajectory distance)

I would like to generalize "time left to end" to time left to event marker – "open the intake 1 second before reaching the intake position".

@katzuv not sure that I really got you. All the PathPlannerAuto triggeres @mjansen4857 added are auto/path related.
What's the "intake position" in your example?
Are you suggesting to add timeBefore/AfterTrigger(triggerName) (or NamedCommand)?
If this is case why not to just add another trigger/named command in the path? (Also that doesn't sound like a generalization to what I've suggested, just another trigger suggestion).

why not to just add another trigger/named command in the path?

For when you don't want to use named commands or save on event markers, or for on-the-fly paths.
I see this as a generalization because instead of time to specifically end position, it's time to any other position (or event marker).

I understand know, nice idea. Your suggestion actually might generalize all of my suggested triggers.
But, what are the expected params? Pose2d? What if the pose isn't on the trajectory? (One option is to add also distance threshold param, but it might also not be in the threshold as well).
I think its need to be really well defined.
Anyways, regardless of @katzuv suggestions, I still highly suggest to keep also my suggested triggers as is, as they're more intuitive and requires no params.

Sorry, I missed your comment. I think an event marker should be used because it's guaranteed to be on the path.

So the original suggestions here are either not possible to implement or pretty redundant.

Time left to end

Not possible to implement properly since the auto has no idea how long it will actually take to run due to the possibility of inserting commands between paths that take an unknown time to run

Distance* from start
Distance* from end

Difficult to implement in a useful way since it would need to take all paths in to account. This is also essentially what an event marker is anyways, so its probably best to just use that.
However, I think triggers for time before/after an event marker (perhaps distance as well) could be quite useful.