Suggestion: Immutable Mode

I've noticed a trend in issues I have observed over the past year, as I've been actively using Flow: A large proportion of the confusing and unpredictable aspects of Flow ultimately stem from the mutable, dynamic nature of JavaScript.
Flow has adopted the philosophy that the dynamic, mutable nature of JS should be embraced and type soundness in that world is both achievable and desirable.  I understand and respect that (as a means of allowing incremental adoption, if nothing else).
This means that to support read-only data and types, Flow has needed to introduce explicit opt-in syntax via helpers like $ReadOnly<>, $ReadOnlyArray<>, exact object syntax, and explicit covariant property definitions.  These are also great additions to Flow, and I'm excited to have them!
However, in our codebase, we are finding that larger and larger portions of our code want to opt in to the immutability assertions.  This means most of our code is starting to look like this:
export type Props = {|
  +block?: boolean,
  +disabled?: boolean,
  +onChange: (newValue?: string) => void,
  +options: $ReadOnlyArray<string>,
  +placeholder?: string,
  +selected?: string,
|};

export type State = {|
  +isFocused: boolean,
  +activeIndex: ?number,
  +width?: number,
|};

We are finding that it is altogether too easy to forget to use covariance, exact object notation, or a $ReadOnly assertion.  In addition, our type signatures are starting to look scarier for new developers joining the team.
I would like to suggest a way out of this might be to include a file or project-level configuration option which allows developers to enforce immutable, read-only usage of data within that scope.  I think this might improve Developer Experience while using Flow in projects that prefer to make the stronger read-only assertions by default.
In addition, I suspect a read-only project or file-level assertion might allow Flow to make more useful, stronger assumptions in the future.  For instance, perhaps flow could immediately identify any mutative call to [...].sort() as an error (or lint warning).
I'd be keen to hear ideas for any other solutions that might help address this DX issue, as well!

Yeah, that would be super useful. We are finding ourselves using $Exact, {||} and $ReadOnly all over the place and it introduces quite a noise.

I also ran into this and ended up with a styling using utility types so that I can compose the objects yet still use them as shapes, etc when building them.
type MyType = $StrictObject<{
   one: string
}>

type AsNonMaybeObject = <O>(O) => $ObjMap<O, <T>(T) => $NonMaybeType<T>>;
type AsStrictObject = <O>(O) => $ExactReadOnly<$NonMaybeObject<O>>;

/*
  { one: void | string, two: void | number, three?: string } -->
  {| +one: void | string, +two: void | number, +three?: string |}
*/
declare type $ExactReadOnly<O> = $ReadOnly<$Exact<O>>;

/*
  { one: void | string, two: void | number, three?: string } -->
  { one: string, two: number, three?: string }
*/
declare type $NonMaybeObject<O> = $Call<AsNonMaybeObject, O>;

/*
  { one: void | string, two: void | number, three?: string } -->
  {| +one: string, +two: number, +three?: string |}
*/
declare type $StrictObject<O> = $Call<AsStrictObject, O>;

/*
  { one: string, two: number, three?: string } -->
  { +one?: string, +two?: number, +three?: string }
*/
declare type $ReadOnlyShape<O> = $ReadOnly<$Shape<O>>;

/*
  string -->
  Array<string> | string
*/
declare type $TypeOrArray<T> = Array<T> | T;

/*
  Array<string> | string -->
  string
*/
declare type $NonArrayType<A> = $Call<(<T>(Array<T> | T) => T), A>

@sharno Can you clarify what you mean? Do you mean that { foo: string } would be an exact type and you'd need to use additional syntax to make it not exact?
Exactness is really orthogonal to what this issue is about. This is about immutability, meaning $ReadOnly<>. You can have only immutable objects and still take advantage of width subtyping, by passing an object whose properties you know a lot about to a function which only cares about some of those properties.

@Peeja Yeah that's a good point, I just thought it'd be a good idea to include exactness in the discussion.
I just have used exactness so much more than regular object in the code that I write and noticed that ReasonML/OCaml has this separation between records (exact objects) and maps, so thought it's a good idea.

@sharno I was also imagining that exact might be a nicer default with extra syntax to opt-out.
But I think @Peeja is probably right, it's not a requirement to make an immutable mode useful, and requiring new syntax might be enough of a strike against it to outweigh the value.

I had a similar problem where I wanted to prevent Redux state & React component props to be mutated without the use of extra libraries like Immutable which requires learning the API for newcomers. This is how we our solving it in our codebase and it works pretty well until now! I would love to have a built-in one in Flow though.
I have been trying to figure out how to do the reverse (RecursiveReadAndWrite), which would take a deeply read-only object and return a read-and-write object. This is what is returned by deep copy libraries for example, but I have not been successful. But I think, in our case, our need for this is mostly because of a bad design in a single place in our codebase.

Big fan of this, would love to see it happen. I can think of two ways it might.
As an extension to the @flow directive, say @flow immutable.
This could by default make all types defined in the file be immutable, and go further in enforcing some extra assertions regarding what functions in the file can do (aka, it could enforce functions in the file to be pure). Much like @flow strict this should require all dependencies are also immutable, so as to not break any assumptions.
As a tag on the type, like %checks for functions. Call it %immutable
Usage would look as follows:
export type Props = {
  block?: boolean,
  disabled?: boolean,
  onChange: (newValue?: string) => void,
  options: $ReadOnlyArray<string>,
  placeholder?: string,
  selected?: string,
} %immutable;

This would probably need to be shallow --options in the case above would still need to be defined as a $ReadOnlyArray-- so as to not force possibly confusing semantic changes to user-defined types and maintain, correctness like say:
type Foo = { bar: number } // Not exact or read-only

type Baz = { foo: Foo } %immutable

const f = (foo: Foo): Baz => ... // the foo coming in is mutable. Correctly making the one in Baz immutable would be hard to get right and confusing if done so.

Linking to this thread, for the sake of cross-reference: https://github.com/facebook/flow/issues/2715

Is there any plans on including this at some point? Many modern projects and developers have interiorized the benefits of using immutable objects, with many libraries helping you ensure this in runtime which I always felt like a waste of computation effort.
Having an option to enable 'immutable' by default from the type checker for all user defined types would make everything so much easier, and I also think it would help flow reason faster as it would be able to infer much easier.


Reorganize UI sections

This PR decreases the header's height and replaces the horizontal tab system by a vertical drawer, that allows having more than 10 different sections in the app.
Screenshot

Looks much better now!

Absolutely! :D


Unable to connect to Garmin

Hi
I'm not enable to connect Garmin anymore.
I have the following message :
2023-09-28 18:49:27,970 - garmin - ERROR - 'NoneType' object is not subscriptable
2023-09-28 18:49:27,970 - garmin - ERROR - Unable to retrieve Garmin username! Most likely: incorrect Garmin login or password!
2023-09-28 18:49:28,276 - garmin - ERROR - Bad response during GC upload: 403
It was working well on sept 18th.
I didn't change my Garmin account or password (to be sure , I tried to connect with my current credentials to Garmin Connect website and it works well).
Could you help please ?

Have you tried upgrading already?  This exact issue should be fixed in the latest version.

Hi
I'm not enable to connect Garmin anymore. I have the following message :
2023-09-28 18:49:27,970 - garmin - ERROR - 'NoneType' object is not subscriptable 2023-09-28 18:49:27,970 - garmin - ERROR - Unable to retrieve Garmin username! Most likely: incorrect Garmin login or password! 2023-09-28 18:49:28,276 - garmin - ERROR - Bad response during GC upload: 403
It was working well on sept 18th. I didn't change my Garmin account or password (to be sure , I tried to connect with my current credentials to Garmin Connect website and it works well).
Could you help please ?

I upgraded and had the same error code. I can pull a verbose log later if you think that would be helpful.

Have you tried upgrading already? This exact issue should be fixed in the latest version.

Thanks, I upgraded dans it works well ! (I didn't know how to upgrade it before... but with a 'pip install withings-sync -U' it works well 😁)
Thank you again for your quick reply !

Thanks, v4.0.0 got it working again for me also!


KAFKA-13749: CreateTopics in KRaft must return configs

Previously, when in KRaft mode, CreateTopics did not return the active configurations for the
topic(s) it had just created. This PR addresses that gap. We will now return these topic
configuration(s) when the user has DESCRIBE_CONFIGS permission. (In the case where the user does
not have this permission, we will omit the configurations and set TopicErrorCode. We will also omit
the number of partitions and replication factor data as well.)
For historical reasons, we use different names to refer to each topic configuration when it is set
in the broker context, as opposed to the topic context.  For example, the topic configuration
"segment.ms" corresponds to the broker configuration "log.roll.ms".  Additionally, some broker
configurations have synonyms. For example, the broker configuration "log.roll.hours" can be used to
set the log roll time instead of "log.roll.ms".  In order to track all of this, this PR adds a
table in LogConfig.scala which maps each topic configuration to an ordered list of ConfigSynonym
classes.  (This table is then passed to KafkaConfigSchema as a constructor argument.)
Some synonyms require transformations. For example, in order to convert from "log.roll.hours" to
"segment.ms", we must convert hours to milliseconds. (Note that our assumption right now is that
topic configurations do not have synonyms, only broker configurations. If this changes, we will
need to add some logic to handle it.)
This PR makes the 8-argument constructor for ConfigEntry public. We need this in order to make full
use of ConfigEntry outside of the admin namespace. This change is probably inevitable in general
since otherwise we cannot easily test the output from various admin APIs in junit tests outside the
admin package.
Testing:
This PR adds PlaintextAdminIntegrationTest#testCreateTopicsReturnsConfigs. This test validates
some of the configurations that it gets back from the call to CreateTopics, rather than just checking
if it got back a non-empty map like some of the existing tests. In order to test the
configuration override logic, testCreateDeleteTopics now sets up some custom static and dynamic
configurations.
In QuorumTestHarness, we now allow tests to configure what the ID of the controller should be. This
allows us to set dynamic configurations for the controller in testCreateDeleteTopics. We will have
a more complete fix for setting dynamic configuations on the controller later.
This PR changes ConfigurationControlManager so that it is created via a Builder. This will make it
easier to add more parameters to its constructor without having to update every piece of test code
that uses it.  It will also make the test code easier to read.

Failing test is org.apache.kafka.trogdor.coordinator.CoordinatorTest.testTaskRequestWithOldStartMsGetsUpdated, not related.


Chain Abstraction

Creating the section "Chain Abstraction" on docs.

@thisisjoshford @bucanero maybe we want to drop the Chain Abstraction: The holistic view, since it reads more like a blogposts than an intro to technical docs.
I could also move it to "Learn" ... or simply leave it there.
Opinions?

@thisisjoshford @bucanero maybe we want to drop the Chain Abstraction: The holistic view, since it reads more like a blogposts than an intro to technical docs.
I could also move it to "Learn" ... or simply leave it there.
Opinions?

Yes, I'd place this in the "Learn" section, I think it fits there. I also agree the "holistic view" feels more like content for a blog post, so I'd keep it out.


Triple dash ( --- ) terminating the parsing

Hi,
Why triple dash terminate the url parsing?

As written in comment --- is usually a long dash.

@puzrin I am aware that --- is a long dash, but why is the long dash a problem? Some google docs have --- in their URL and they are legit URLs.

@stephy link---text is link + long dash + text, in markdown (for example). That happens sometime, and that should not become a long link. As alternative, user can mark link explicitely: <link---with---dashes>.
False negative (terminated link) still leaves you an alternative way to fix situation. False positive (too long link) is not fixeable.

Closing - works as intended.

Fixed in 2.0.0, now configurable via options and not terminates by default.


Any expected issues by shut down of Google Drive app on PC?

Hello
Actually I think I know the answer, but just to be sure and also to answer this for another people. So question is:
Following this post Google Drive app on PC/Mac will be shut down on March 12th, 2018. Will this affect by any way this project, like is the api of google drive changed, or they just shutting down app and that's all?
thanks

Any more info on this? @ApolloCrw have you been able to find out if this application will keep working?

Hello there @ApolloCrw and @millenc, thank you for the question and welcome to drive! My biggest apologies for the late reply, I've been swamped with a bunch of work.
So that post talks only about the old Google Drive client, which is unrelated to drive. The only thing that I would be concerned about is if Google announced that they would deprecating the drive/v2  API, which they haven't announced. However, we should move to the drive/v3 as I've seen requests for things like Team Drives etc.
Also this FAQ from Google talks about downloading the latest Google Drive UI/Desktop client https://support.google.com/a/answer/2490101.

Hello there @ApolloCrw and @millenc, thank you for the question and welcome to drive! My biggest apologies for the late reply, I've been swamped with a bunch of work.
So that post talks only about the old Google Drive client, which is unrelated to drive. The only thing that I would be concerned about is if Google announced that they would deprecating the drive/v2  API, which they haven't announced. However, we should move to the drive/v3 as I've seen requests for things like Team Drives etc.
Also this FAQ from Google talks about downloading the latest Google Drive UI/Desktop client https://support.google.com/a/answer/2490101.
Therefore, I am not worried about drive not functioning as Google hasn't made any indication of shutting the drive/v2 and drive/v3 APIs


load_image documentation misleading

The documentation for load_image (as of 20190717):
http://dlib.net/imaging.html#load_image
says the extension of the filename is used to use the right routine to parse the file. However, the implementation ignores the filename and selects the routine by inspecting the contents of the file.
Current documentation:
This global function takes a file name, looks at its extension, and then loads it into an array2d of pixels using the appropriate image loading routine. The supported types are BMP, PNG, JPEG, GIF, and the dlib DNG file format.
Proposed:
This global function takes a file name and loads it into an array2d of pixels using the appropriate image loading routine. The supported types are BMP, PNG, JPEG, GIF, and the dlib DNG file format.

Indeed, that would be better. Feel free to submit this stuff as a pull request rather than an issue. You don’t have to ask permission to make a pull request :)

On Jul 17, 2019, at 3:31 AM, Paul Dreik<EMAIL_ADDRESS>wrote:
The documentation for load_image (as of 20190717):
http://dlib.net/imaging.html#load_image
says the extension of the filename is used to use the right routine to parse the file. However, the implementation ignores the filename and selects the routine by inspecting the contents of the file.
Current documentation:
This global function takes a file name, looks at its extension, and then loads it into an array2d of pixels using the appropriate image loading routine. The supported types are BMP, PNG, JPEG, GIF, and the dlib DNG file format.
Proposed:
This global function takes a file name and loads it into an array2d of pixels using the appropriate image loading routine. The supported types are BMP, PNG, JPEG, GIF, and the dlib DNG file format.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

There you go :-)


Missing packages when compiling during bosh deploy

Steps to reproduce the issue:

bosh deploy

Describe the results you received:
Compilation of datadog-firehose-nozzle fails due to missing the following packages:
code.cloudfoundry.org/localip
github.com/cloudfoundry-incubator/uaago
github.com/cloudfoundry/gosteno
github.com/cloudfoundry/noaa
github.com/cloudfoundry/sonde-go
github.com/gorilla/websocket

The error we received during the compilation step of the deploy:
Task 4225
15:18:26 | Preparing deployment: Preparing deployment (00:00:00)
15:18:26 | Preparing package compilation: Finding packages to compile (00:00:00)
15:18:26 | Compiling packages: datadog-firehose-nozzle/13b610d9a3f90e7b5d27148b12d69ddaf143e15e (00:04:16)
            L Error: Action Failed get_task: Task 07e05e25-b705-4e9b-65ee-7de7a3a3ae1c result: Compiling package datadog-firehose-nozzle: Running packaging script: Running packaging script: Command exited with 1; Stdout: , Stderr: ++ readlink -nf /var/vcap/packages/golang1.8.3
+ export GOROOT=/var/vcap/data/packages/golang1.8.3/2e34a5a48909c7912d0cc6cb839fcca6d705a671
+ GOROOT=/var/vcap/data/packages/golang1.8.3/2e34a5a48909c7912d0cc6cb839fcca6d705a671
+ export PATH=/var/vcap/data/packages/golang1.8.3/2e34a5a48909c7912d0cc6cb839fcca6d705a671/bin:/var/vcap/bosh/bin:/usr/local/bin:/usr/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin
+ PATH=/var/vcap/data/packages/golang1.8.3/2e34a5a48909c7912d0cc6cb839fcca6d705a671/bin:/var/vcap/bosh/bin:/usr/local/bin:/usr/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin
+ cd datadog-firehose-nozzle
+ export GOPATH=/var/vcap/data/compile/datadog-firehose-nozzle/datadog-firehose-nozzle
+ GOPATH=/var/vcap/data/compile/datadog-firehose-nozzle/datadog-firehose-nozzle
+ go install github.com/DataDog/datadog-firehose-nozzle
src/github.com/DataDog/datadog-firehose-nozzle/datadogfirehosenozzle/datadog_firehose_nozzle.go:7:2: cannot find package "code.cloudfoundry.org/localip" in any of:
	/var/vcap/data/packages/golang1.8.3/2e34a5a48909c7912d0cc6cb839fcca6d705a671/src/code.cloudfoundry.org/localip (from $GOROOT)
	/var/vcap/data/compile/datadog-firehose-nozzle/datadog-firehose-nozzle/src/code.cloudfoundry.org/localip (from $GOPATH)
src/github.com/DataDog/datadog-firehose-nozzle/uaatokenfetcher/uaa_token_fetcher.go:4:2: cannot find package "github.com/cloudfoundry-incubator/uaago" in any of:
	/var/vcap/data/packages/golang1.8.3/2e34a5a48909c7912d0cc6cb839fcca6d705a671/src/github.com/cloudfoundry-incubator/uaago (from $GOROOT)
	/var/vcap/data/compile/datadog-firehose-nozzle/datadog-firehose-nozzle/src/github.com/cloudfoundry-incubator/uaago (from $GOPATH)
src/github.com/DataDog/datadog-firehose-nozzle/datadogclient/datadog_client.go:15:2: cannot find package "github.com/cloudfoundry/gosteno" in any of:
	/var/vcap/data/packages/golang1.8.3/2e34a5a48909c7912d0cc6cb839fcca6d705a671/src/github.com/cloudfoundry/gosteno (from $GOROOT)
	/var/vcap/data/compile/datadog-firehose-nozzle/datadog-firehose-nozzle/src/github.com/cloudfoundry/gosteno (from $GOPATH)
src/github.com/DataDog/datadog-firehose-nozzle/datadogfirehosenozzle/datadog_firehose_nozzle.go:11:2: cannot find package "github.com/cloudfoundry/noaa/consumer" in any of:
	/var/vcap/data/packages/golang1.8.3/2e34a5a48909c7912d0cc6cb839fcca6d705a671/src/github.com/cloudfoundry/noaa/consumer (from $GOROOT)
	/var/vcap/data/compile/datadog-firehose-nozzle/datadog-firehose-nozzle/src/github.com/cloudfoundry/noaa/consumer (from $GOPATH)
src/github.com/DataDog/datadog-firehose-nozzle/datadogfirehosenozzle/datadog_firehose_nozzle.go:12:2: cannot find package "github.com/cloudfoundry/noaa/errors" in any of:
	/var/vcap/data/packages/golang1.8.3/2e34a5a48909c7912d0cc6cb839fcca6d705a671/src/github.com/cloudfoundry/noaa/errors (from $GOROOT)
	/var/vcap/data/compile/datadog-firehose-nozzle/datadog-firehose-nozzle/src/github.com/cloudfoundry/noaa/errors (from $GOPATH)
src/github.com/DataDog/datadog-firehose-nozzle/datadogclient/datadog_client.go:16:2: cannot find package "github.com/cloudfoundry/sonde-go/events" in any of:
	/var/vcap/data/packages/golang1.8.3/2e34a5a48909c7912d0cc6cb839fcca6d705a671/src/github.com/cloudfoundry/sonde-go/events (from $GOROOT)
	/var/vcap/data/compile/datadog-firehose-nozzle/datadog-firehose-nozzle/src/github.com/cloudfoundry/sonde-go/events (from $GOPATH)
src/github.com/DataDog/datadog-firehose-nozzle/datadogfirehosenozzle/datadog_firehose_nozzle.go:14:2: cannot find package "github.com/gorilla/websocket" in any of:
	/var/vcap/data/packages/golang1.8.3/2e34a5a48909c7912d0cc6cb839fcca6d705a671/src/github.com/gorilla/websocket (from $GOROOT)
	/var/vcap/data/compile/datadog-firehose-nozzle/datadog-firehose-nozzle/src/github.com/gorilla/websocket (from $GOPATH)

Where did you get the nozzle package from? The latest package works for me. We changed the way go deps are managed, as is detailed in the Readme.

So, if you built it yourself, you'll need to follow the directions in the Readme.

Basically, what we did was change the dependency management over to Glide so that we could have consistent go dependencies in both the development repo and over here. So, you'll need to install glide, then run ./prepare which will download the dependencies, and then it should work! I will make this more clear in the readme.

@gmmeyer We were trying to build ourselves, did not see the prepare script. We will go ahead and move to just deploying the released version from bosh.io.
Thanks.


Add Noise to Slotcar Plugin

New feature implementation
Implemented feature
This should help simulate real world scenarios where robots might report noisy location.
To use publish a gz.sim.SensorNoise message to /slotcar/translation_noise.
Note: This feature only works on GZ-SIM

Makes sense. For immediate term though I need to update slotcar common cause most of the logic is there.

I had a typed review but it's gone :|
From the top of my head:

There seems to be a callback / subscription for the translation_noise but none for the rotation_noise, can we have one of that as well? Otherwise it seems it might be impossible to set.
Can we have also some basic docs in the plugin's README to show how to use this feature, i.e. what CLI command can be used to set the translation and rotation noise?
After looking at the code closer I agree that keeping the split is a bit easier now, with the refactor done hopefully we can get rid of the rmf_robot_sim_common package "soon".

The rest looks alright (if I can test it!), there are many ways to approach this (parameter in SDF or set through a service, service that sets for all the models vs one per robot) but they all have their pros and cons and don't really have feelings strong enough to advocate for a different way to do it.


5/15 Publish

@Taojunshen,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docfx.json
:white_check_mark:Succeeded

docs-ref-autogen/network/nic/ip-config.pycliyml
:white_check_mark:Succeeded
View

docs-ref-autogen/network/public-ip.pycliyml
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


fix: packages/ -> pkg/

https://github.com/violet-ts/violet/pull/63 で結局 pkg/ にした。

resolves https://github.com/violet-ts/violet-infrastructure/issues/4


Drupal example failing in CI with 'ext-dom is missing' errors

During install, it looks like composer is bailing:
Your lock file does not contain a compatible set of packages. Please run composer update.

  Problem 1
    - drupal/core is locked to version 9.3.3 and an update of this package was not requested.
    - drupal/core 9.3.3 requires ext-dom * -> it is missing from your system. Install or enable PHP's dom extension.
  Problem 2
    - laminas/laminas-feed is locked to version 2.15.0 and an update of this package was not requested.
    - laminas/laminas-feed 2.15.0 requires ext-dom * -> it is missing from your system. Install or enable PHP's dom extension.
  Problem 3
    - masterminds/html5 is locked to version 2.7.5 and an update of this package was not requested.
    - masterminds/html5 2.7.5 requires ext-dom * -> it is missing from your system. Install or enable PHP's dom extension.
  Problem 4
    - drupal/core 9.3.3 requires ext-dom * -> it is missing from your system. Install or enable PHP's dom extension.
    - drupal/core-recommended 9.3.3 requires drupal/core 9.3.3 -> satisfiable by drupal/core[9.3.3].
    - drupal/core-recommended is locked to version 9.3.3 and an update of this package was not requested.

To enable extensions, verify that they are enabled in your .ini files:
    - /etc/php/8.1/cli/php.ini
    - /etc/php/8.1/cli/conf.d/10-opcache.ini
    - /etc/php/8.1/cli/conf.d/10-pdo.ini
    - /etc/php/8.1/cli/conf.d/20-apcu.ini
    - /etc/php/8.1/cli/conf.d/20-calendar.ini
    - /etc/php/8.1/cli/conf.d/20-ctype.ini
    - /etc/php/8.1/cli/conf.d/20-exif.ini
    - /etc/php/8.1/cli/conf.d/20-ffi.ini
    - /etc/php/8.1/cli/conf.d/20-fileinfo.ini
    - /etc/php/8.1/cli/conf.d/20-ftp.ini
    - /etc/php/8.1/cli/conf.d/20-gettext.ini
    - /etc/php/8.1/cli/conf.d/20-iconv.ini
    - /etc/php/8.1/cli/conf.d/20-phar.ini
    - /etc/php/8.1/cli/conf.d/20-posix.ini
    - /etc/php/8.1/cli/conf.d/20-readline.ini
    - /etc/php/8.1/cli/conf.d/20-shmop.ini
    - /etc/php/8.1/cli/conf.d/20-sockets.ini
    - /etc/php/8.1/cli/conf.d/20-sysvmsg.ini
    - /etc/php/8.1/cli/conf.d/20-sysvsem.ini
    - /etc/php/8.1/cli/conf.d/20-sysvshm.ini
    - /etc/php/8.1/cli/conf.d/20-tokenizer.ini
You can also run `php --ini` in a terminal to see which files are used by PHP in CLI mode.
Alternatively, you can run Composer with `--ignore-platform-req=ext-dom --ignore-platform-req=ext-dom --ignore-platform-req=ext-dom --ignore-platform-req=ext-dom` to temporarily ignore these required extensions.

See also: https://github.com/geerlingguy/drupal-vm/issues/2196
And on my own servers I'm seeing this when I try to run Drush from the CLI:
geerlingguy@www:~/www $ vendor/bin/drush status
 [preflight] Class "DOMDocument" does not exist
 [warning] Drush command terminated abnormally.

It looks like the CLI is getting PHP 8.1 (without all the necessary packages), while the apache/nginx server version is 7.3 or 7.4 or whatever's configured.

Assuming this is from the drupal example in Ch04, I had the same issue.
I found I could force the use of installed php7.4 using update-alternatives
I added this task to the playbook between disabling the firewall and Starting Apache:
    ...
    - name: Disable the firewall (since this is for local dev only).
      service: name=ufw state=stopped

    - name: Ensure we're using the verison of php we just installed
      ansible.builtin.command: >
        update-alternatives --set php /usr/bin/php7.4

    - name: "Start Apache, MySQL, and PHP."
   ...

Once added, composer, drush and drupal install/run as expected.

@geerlingguy If you're talking about Chapter 4 Drupal LAMP config I think this bug is related to my issue #447 as the package php-apcu installs the latest PHP version, which becomes the default.

Ah, thanks! I'll see if the PR above fixes the issue, then I'll update the book as well.


Improve perf of qsort

two ideas we could try:

Use larger bitonic sorting networks (256 and 512 elements)
Improve pivot selection by pich a set of random indices

addressed by #33

evaluate better pivot selection algorithms.


Fix polling interval

@guillaumebreton ?

@dim Sorry 🙁  made some tests on my fork and I created a PR for this repo accidentally.


Trimming of spaces in content blocks

Content blocks trim out spaces. Including

[        leading spaces]
[trailing spaces       ]
[spaces   between words]
Which subsequently get rendered as

It is desireable when putting untintentional leading / trailing spaces / hitting space twice.
Yet this feature would be needed if you want to use spaces as spacing, i.e. with a#box[  ]b or in #repeat[ .] (to get further spaced out dots
Possible fix: add text(trim: boolean = true) parameter to let the user have not-trimming when desired

The trimming of spaces in content blocks is intentional (because otherwise you'd have spaces all over the place in multi-line blocks) but it's a bug that it doesn't even work with a string as in a#box(" ")b.


Update User and Post type examples

Fixes the following errors when trying to deploy:
  Post
    ✖ The model `Post` is missing the @model directive. Please add it. See: https://github.com/graphcool/framework/issues/817
    ✖ A relation directive with a name must appear exactly 2 times. Relation name: 'UsersPosts'

  User
    ✖ A relation directive with a name must appear exactly 2 times. Relation name: 'PostsByUser'

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

Closing due to inactivity.


Added pattern

Nice code!!! Thanks for your PR....but as you have sent the PR before starting Hacktoberfest2021, it'll not be counted as a valid PR in hacktoberfest

Oh, no worries about that. I sent it after hacktoberfest started. It started earlier like around 9PM or something. So, it's counted :)


[WIP] Verify source code matches deployed bytecode

Note to reviewers: putting [WIP] on this again while I work on also verifying a governance proposal - that work will live on top of these changes and I'll end up rewriting/refactoring some of the code.
Description
This PR adds a script that verifies that a given set of Solidity sources matches bytecodes deployed to a Celo network.
This check will rely on:

Each (non-library) core contract being registered in the Registry
Each linked library being proxied

The deployed Celo contracts do not currently satisfy these assumptions, so there is some temporary code included to handle the current case. The checks are also not 100% complete for the current RC1 deployment (e.g. the Registry itself is missed since it's not registered).
The main check happens in the verifyBytecodesDfs function, which takes a list of core contract names and a build directory as input. The DFS works as follows:

If we're on a core contract, look up it's address in the Registry. We keep track of library addresses as we encounter them.
Find all instances of __LibraryName__... in the compiled bytecode.
Ensure that each __LibraryName__... link corresponds to the same address in the onchain bytecode.
Link the compiled bytecode and verify it matches the onchain bytecode.
Add any freshly encountered libraries to the DFS stack.

The biggest remaining piece of work on this front is also verifying proposed changes, that is, given a Celo network and a Governance proposal, verifying that the given sources correspond to what the Celo system would look like after applying the proposal.
Tested
Unit tests for the library doing the heavy lifting.
For a manual test against baklava,
git checkout baklava
yarn build
mv build/contracts build/baklava-contracts
git checkout m-chrzan/deployed-bytecode-check
# point the script to build/baklava-contracts
yarn build:ts && yarn truffle exec --network baklava scripts/truffle/verify-bytecode.js

Other changes
Moved some duplicated code out into a new lib/bytecode library.
Related issues

Fixes #4496

Backwards compatibility
Very much so.

Closing this as #4996 is a superset of this diff.


docs: Update readme code example to new API.

This PR simply fixes the code example provided by the readme.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.saul seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

Please sign CLA agreement

I don't believe these CLAs are healthy to the opensource ecosystems since they are non-standard and contain legalese that only someone with good understanding of it can fully understand the extent of its meaning. Therefore I will not be signing it, however someone who has the ability to make the changes should update the readme to reflect the new API in a similar fashion to what I have done.

Not sure why we have the CLA here since this is a permissively licensed repo :thinking:

Not sure why we have the CLA here since this is a permissively licensed repo :thinking:

I think because of that ethereum c++ client that couldn't change license as external contributors were claiming that they only submitted code under previous license so CLA forces everyone to give out any rights to submitted code to chainsafe

Shouldn't that only be an issue when code isn't permissively licensed?
The c++ ethereum client was GPL licensed.

Codecov Report
Base: 83.29% // Head: 83.26% // Decreases project coverage by -0.03% :warning:

Coverage data is based on head (91ef484) compared to base (23d49be).
Patch has no changes to coverable lines.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #382      +/-   ##
==========================================
- Coverage   83.29%   83.26%   -0.04%
==========================================
  Files          48       48
  Lines       11779    11787       +8
  Branches     1265     1266       +1
==========================================
+ Hits         9811     9814       +3
- Misses       1968     1973       +5

Impacted Files
Coverage Δ

src/metrics.ts
21.91% <0.00%> (-0.13%)
:arrow_down:

src/tracer.ts
77.45% <0.00%> (-0.06%)
:arrow_down:

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

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

Please sign CLA agreement

I don't believe these CLAs are healthy to the opensource ecosystems since they are non-standard and contain legalese that only someone with good understanding of it can fully understand the extent of its meaning. Therefore I will not be signing it, however someone who has the ability to make the changes should update the readme to reflect the new API in a similar fashion to what I have done.

We've agreed that CLA agreements for Lodestar should not exist on libraries such as this one, but only retained for our main Lodestar monorepo. @q9f is in the process of helping us to remove this requirement and hopefully that will allow this PR to be merged if there's no additional issues.

You can ignore CLA here. It's not meant for the libraries.


Request : externalize PR / issues stats

Hi
I have stumbled on your awesome project statistics: https://nf-co.re/stats#github_prs
I find the PR & issues stats especially pretty & useful:

I don't know of any open-source tool that provides those.
Do you think those graphs could be easily reused for other git repos ?
They are based on GitHub API v3 /repos/statistics API ?
I had a quick look and the rendering logic seems buried in this 1500+ lines PHP script: stats.php

To be a bit more explicit on this request, I am not asking that you perform any refactoring, I am asking for :

authorization to re-use parts of this code elsewhere
some advice/leads on how to extract the code that generates those graphs

@ewels would be the only one able to answer to that, but I do think that you're on the right path, everything should be in this stats.php script.
License is MIT, so you should be able to modify/re-use.

Thanks !
Ok, is see that update_issue_stats.php generates a JSON file which is used for the issues data for those graphs.

Yeah, we keep these metrics on the webserver at the moment IIRC.

Absolutely! Glad you like it and feel free to go ahead and use it. Out of curiosity, what is the project that you have in mind?
Most of this code was written late at night and on a tight deadline for our paper review, so I apologise in advance for the poor code quality. Give us a shout if you run into any problems or have any questions.
Phil

Thanks for your answers !
I extracted it as a Python script, as I'm more familiar with this language : https://gist.github.com/Lucas-C/5c9730756e7b3f795c6d121d38a9ce88
I only kept the 2 "Pull Requests" / "Response Times" graphs.


feat: add /reproduction slash command

This PR adds a /reproduction slash command to the bot to make it easier to ask users for a reproduction.

@SuperchupuDev, the new command doesn't seem to appear in prod, even though the bot seems to have been deployed. Did I miss something?

@nhedger looks like you forgot to import the command in the response handler, hence it shows up but responds with a "not found" message

i've updated the response handler in 80ea017, should work now


puppet-cron code

Please review! This is very light on comments, but I figured I'd have y'all poke at it an tell me what needs to be cleared up.
See also https://github.com/danielparks/lockfile/commit/ad2135b22802480f58e4946c89f5c89c2a3b8d26
@puppetlabs-operations/infracore

Maybe I am missing something, but how does this know where to find the puppet.conf file?

The puppet agent knows. For example, puppet config print environment. It looks in different places depending on what user you run it as (root looks in /etc).

It doesn't interact with puppet.conf directly at all — it's all through puppet config.

Is there any stuff that particularly needs to be commented? I’ll come back to it in a few days when it’s not so fresh in my head.

It might be worthwhile to update the readme to include that this is puppet config print and that it relies on on the system packages as opposed to the ruby gem... that may also be overkill... just some ramblings for your consideration.


[PT Run] Should not show PowerLauncher.exe as a result in Window walker

Microsoft PowerToys version
0.49.1
Running as admin

[X] Yes

Area(s) with issue?
PowerToys Run
Steps to reproduce

Enter "powerlauncher" in PT run.

✔ Expected Behavior
PowerLauncher should not be an option.  Since this will switch to the PT run itself.
❌ Actual Behavior

Other Software
No response

Can replicate this 😄

This is fixed in 0.53, get it at https://aka.ms/installPowerToys


Hover Listener ignores any previous transforms

The following code should paint a rotated blue scare with a "p" on it, but for some reason the rotation is not applied. As soon as the "onPointerHover" is commented out, the box is drawn as expected.
import 'package:flutter/material.dart';
import 'package:flutter/gestures.dart';

void main() => runApp(MyApp1());

class MyApp1 extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Center(
        child: Transform.rotate(
          angle: 1.34,
          child: Listener(
            onPointerHover: (PointerHoverEvent event) { }, // <-- comment this out to make it work
            child: Container(
              color: Colors.blue,
              height: 100,
              width: 100,
              child: Text('p'),
            ),
          ),
        ),
      ),
    );
  }
}

Suspicion: The extra AnnotatedRegionLayer that the onPointerHover inserts may be screwing with the transform...

/cc @gspencergoog

[✓] Flutter (Channel master, v1.5.9-pre.117, on Mac OS X 10.14.4 18E226, locale en-US)
    • Flutter version 1.5.9-pre.117 at /Users/goderbauer/dev/flutter
    • Framework revision 61fdc39e83 (87 minutes ago), 2019-05-02 12:33:17 -0400
    • Engine revision ef2bed65db
    • Dart version 2.3.0 (build 2.3.0-dev.0.5 b6997deb3e)

[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at /Users/goderbauer/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1136-b06)
    • All Android licenses accepted.

[✓] iOS toolchain - develop for iOS devices (Xcode 9.4)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 9.4, Build version 9F1027a
    • ios-deploy 1.9.4
    • CocoaPods version 1.5.3

[✓] Android Studio
    • Android Studio at /Applications/Android Studio 3.3 Preview.app/Contents
    • Flutter plugin version 29.1.3
    • Dart plugin version 182.4999
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)

[!] Android Studio (version 3.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1136-b06)

[✓] IntelliJ IDEA Community Edition (version 2019.1.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 35.0.3
    • Dart plugin version 191.7019

[✓] Connected device (1 available)
    • Pixel XL • HT6AM0200752 • android-arm64 • Android 9 (API 28)

If I add the following to RenderPointerListener it works correctly:
  @override
  bool get needsCompositing => _hoverAnnotation != null;

Does the _hoverAnnotation require compositing to ensure that the AnnotatedRegionLayer works correctly?
/cc @jonahwilliams for the AnnotatedRegionLayer stuff

Here's where the AnnotatedRegionLayer is created for this: https://github.com/flutter/flutter/blob/71a89a469a1acfa23e25acfdd22ad67303b20a3d/packages/flutter/lib/src/rendering/proxy_box.dart#L2607-L2617

we also need to make sure we markNeedsCompositingUpdate whenever we change anything (_hoverAnnotation from null to non-null or vice versa, in this case) that changes the value of needsCompositing.

Sounds like requiring composition is the right way to go. I'll prepare a patch.


PT-1479 Fixed server initialisation race condition

What does this PR do?
When loading proxy definitions from filesystem proxy register may be uninitialised in some cases because of race condition. I extracted proxy register initialisation outside of go-routine to avoid the possibbility of it.
Fixes https://github.com/hellofresh/janus/issues/338

:shipit:


Fix dashboard accessibility issues

Fixed dashboard accessibility violations by adding empty columns into dashboard report widget tables.

@miq-bot add_reviewer @jeffibm
@miq-bot add_reviewer @Fryguy
@miq-bot assign @jeffibm
@miq-bot assign @Fryguy
@miq-bot add-label accessibility

Also I agree with rubocop on "Use body.presence || empty_row instead of body.blank? ? empty_row : body"

Just to clarify, this looks like it changes to multiple columns instead of a colspan. Are colspan not allowed for accessibility?
Also, do you have screenshots before/after?

I added screenshots to the pr if you wanted to check how it looks. It is a small change where the text now fits in a single column instead of spanning across into the next column. It does result in fixing these accessibility violations:

Backported to quinteros in commit 9501a11a9edc01b5098efae82df4c0a9744dcd8b.
commit 9501a11a9edc01b5098efae82df4c0a9744dcd8b
Author: Jason Frey<EMAIL_ADDRESS>Date:   Thu Dec 14 15:45:57 2023 -0500

    Merge pull request #22807 from GilbertCherrie/fix_dashboard_accessibility_issues

    Fix dashboard accessibility issues

    (cherry picked from commit 999306b7a7621cfe1539a807903aa8ac96525817)


Hotkeys floating button not visible when --aot

If I build with --aot or server with --aot, the hotkeys floating button that sits in the bottom right of the screen does not get rendered. and the hotkeys no longer work

A work around is to register them manually instead of using annotations


ServiceEntry resolution strict validation

Validate serviceentry strictly, do not allow wildcard hostname with resolution set to DNS when there is no endpoints set. Otherwise, envoy will async dns resolve the wildcard hostname.
The below config is invalid:
 apiVersion: networking.istio.io/v1alpha3
 kind: ServiceEntry
 metadata:
   name: external-svc-wildcard-example
 spec:
   hosts:
   - "*.bar.com"
   location: MESH_EXTERNAL
   ports:
   - number: 80
     name: http
     protocol: HTTP
   resolution: DNS

[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[x] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure

$ cat <<EOF | kaf -
pipe heredoc> apiVersion: networking.istio.io/v1alpha3
pipe heredoc> kind: ServiceEntry
pipe heredoc> metadata:
pipe heredoc>     name: external-svc-wildcard-example
pipe heredoc> spec:
pipe heredoc>     hosts:
pipe heredoc>     - "*.bar.com"
pipe heredoc>     location: MESH_EXTERNAL
pipe heredoc>     ports:
pipe heredoc>     - number: 80
pipe heredoc>       name: http
pipe heredoc>       protocol: HTTP
pipe heredoc>     resolution: DNS
pipe heredoc> EOF
Error from server: error when creating "STDIN": admission webhook "pilot.validation.istio.io" denied the request: configuration is invalid: hosts must be FQDN if no endpoints are provided for resolution mode DNS

We already do this I think?

We found this in 1.1.6 in a production env. Will check in a new version.

Checked it is in 1.3.0

@hzxuzhonghu: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

integ-new-install-k8s-tests_istio
53072eaebd724ed868c9614d12d5c3e61997f691
link
/test integ-new-install-k8s-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


Reprojection on TileArcGISRest Tiles ignores PixelRatio on Tablets and phones and loads at 1:pixelratio size in map

TileArcGISRest ignores PixelRatio on Tablets and phones and loads at 1:pixelratio size in map.
It seems that I have no issues with other tile Sources rendering correctly.
When viewing on a Device with a pixel Ratio of 2 The tile comes in at 1/2 Height and 1/2 width (1/4 the area it should cover). It seems to be bringing in all the necessary data (image area) but just isn't being sized UP. This leaves a pattern of tiles spaced out on a map.

what version of ol3? It should have been fixed with: https://github.com/openlayers/ol3/commit/8f1726ae3964b1713e7f90ac140af4f57f77593f#diff-f2c167c4469ad3177ad392a142422510

3.12.1
I believe I found the Underlying reason. I was Doing tile Reprojection from LL84 TileArcGISRest source to Spherical Mercator MAP..If I stick to LL84 on everything TileArcGISRest tiles display fine with other non TileArcGISRest tiles. When Reprojecting all Tiles are fine except the TileArcGISRest tiles which then exhibit the above described Issue.. Somewhat new to Tickets on GITHUB Should I edit the Ticket?

@petrsloup any ideas how this could relate to tile reprojection?

If I change the arcgis-tiled.html example to:
var layers = [
  new ol.layer.Tile({
    source: new ol.source.MapQuest({layer: 'sat'})
  }),
  new ol.layer.Tile({
    source: new ol.source.TileArcGISRest({
      url: url,
      projection: 'EPSG:4326'
    })
  })
];
var map = new ol.Map({
  layers: layers,
  target: 'map',
  view: new ol.View({
    center: [-10997148, 4569099],
    zoom: 4
  })
});

and use browser zoom (150%) I get this:

@flipper44 can you show a screenshot of your issue and/or a jsFiddle to reproduce?

@bartvde  I saw your screen shot in an email but don't see it on this site? I have a similar issue, but more pronounced on galaxy nexus 6 because of 3.5 pixel ratio..will attempt an attach when I get into the office

yeah I wasn't sure if my screenshot was representative, since I got the same with TileWMS and browser zoom.

This is what I get on a Nexus 6 (3.5 pixel ratio, Note: approx 3.5 times too small), also Tested on a Galaxy Note Pro 12.2" and similar effect just not as spaced out since pixel ratio isn't as high

Shoot TileWMS doesn't reproject either? that was my next layer to add

test it out and report back. What sources did work for you?

OK, I managed to get OSM, BING and Mapquest to all reproject so far...TileArcGISRest seems to be the only one I tried that is not working

The tile reprojection is based on tilePixelRatio option of the ol.source.Tile.
This is not used by ol.source.TileArcGISRest and ol.source.TileWMS, so this is probably where the problem originates.
I'll look into it.

This should be fixed in the current master with https://github.com/openlayers/ol3/pull/4598.

thanks @petrsloup

Thanks,
I apologize in advance for this Question (Pretty new to GITHUB), but how do I implement this into my 3.12.1 Downloaded build, or how do I build a new ol.js and ol-debug.js from this in github? Couldn't find build docs.

see: https://github.com/openlayers/ol3/blob/master/DEVELOPING.md

Unfortunately I am on windows and a relative noob to Building Packages and repositories.
I saw that there was a build on https://travis-ci.org/openlayers/ol3/builds/99096485 and assumed that the newest builds could be reached through that site, but I am guessing those are local builds and not available online.
I've had to use my Scaleline and proj4js projection(units) Workaround from #4572 so I am stuck in ol-debug anyways for now. I may just have to put the newest changes into my currently modified file to get by for now. Hate to use ol-debug but I will probably have to for now, and then wait for a new incremental release.
Thank You for all the help.

Looks like their are way more than a few changes to several files since the 3.12.1 release so this is unlikely very doable for myself manually. I will see if I can figure it out on windows, this is going to be a learning experience. I wish the Builds run in Travis were available online.

Took half a day but I got cygwin to work and Make a build that included my scaleline changes from Workaround from #4572.
How do I get the interest of the right person re: the scaleline not working Across Units? and the Issue with proj4js Units I mentioned in the Issue, so that I don't have to create custom builds. I would ask for a pull but I know that some of the logic is likely unnecessary in my code and wouldn't want to break something that the logic might have been in place for?


Feature: Implement Light mode for the UI

Disclaimer:
Please go through existing feature requests to avoid creating duplicates. If you found a similar issue please post a comment there. If you are uncertain your issue is related to others then create the issue. Obvious ignorance of this rule might get you blocked from posting new issues. Please tick the box below to show that you have followed the guideline.

[x] I have checked for a similar issue and sure it hasn't been reported before.

Description:
Add an option to change the UI to follow Light theme, Dark theme, or the System theme.
User flow & interface:
It can be added as a row of button just like how the "Status Icon Type" is done.

I've implemented Light/Dark theme with a little bit of a redesign. Should be available in app version v1.3.0 and higher if you have OTA Updates enabled.


NOTEs when running check

❯ checking for future file timestamps ... NOTE
unable to verify current time
❯ checking R code for possible problems ... [12s/10s] NOTE
filter.datacube: no visible binding for global variable ‘.’
Undefined global functions or variables:
.

The first seems random, as only shows up some times. More than that, it's not really relevant, I guess.
The second, I don't find the issue, but it is certainly in filter.datacube and has been introduced with 55df98773c7834b6c41537e9a54847dddc0428e9
@edzer Can you see if you can reproduce?

Line 245:
        date2 = date2 %>% format(., "%04Y-%m-%d")

As always... sharp!


Stops searching /samples for readme files.

This PR has a quick fix for the builds against master which are failing due to the samples directory arriving and doc warden complaining about it not having README files.

Opened an issue to track this: https://github.com/Azure/azure-sdk/issues/498


Upgrade php to recommended 8.2

According to the documentation 8.2 is the new recommended version https://docs.nextcloud.com/server/stable/admin_manual/installation/system_requirements.html

@aalaesar I don't have permissions to merge.


add incremental memory growth

Right now sajson allocates an upper bound memory usage.  That's rarely needed.  Add an option to allow memory growth.

Done in d764f081cf5e9ba630d811b395e1a6a48a6df6dc


2.0 - _commandWithStdin style change

This is purely a style change so that all the member functions follow the same try/catch pattern. It is not necessary but I thought made the reviewing of the code a bit easier. No worries if you prefer the current implementation as it is good too.
2.0 looks good to me. I don't see anything from a code review standpoint that needs changing. Thanks for making this and the updates.

Looks good - thanks again!


Integrating Colocation Package

Hello,
I decided to switch to use Meta SDK and I'm currently exploring the integration of the colocation package into my prototype, based on the suggestion here.

I'm not sure whether to use colocation package directly from this repository or opt for the Unity-LocalMultiplayerMR version. The documentation on developer.oculus.com seems to be based on the package from this project, yet I've observed that newer projects like Unity-CrypticCabinet are utilizing Unity-LocalMultiplayerMR's version. Additionally, I've noticed the absence of AlignmentAnchorManager in the Unity-LocalMultiplayerMR package, and differences in method signatures for INetworkData and INetworkMessenger. For context, NGO is the network solution I'm using.

I'm also curious about the feasibility of testing two app runtimes with different setups: one running the app in Unity playmode via Quest Link and another in Unity playmode via XR Simulator which using the exact SceneRecorder data from the headset in the first setup. Will shared spatial anchor work in this interoperability manner?

Next setup, if running one app session in Unity's play mode through Quest Link, and another session directly on a device as a standalone APK build. Can shared spatial anchor service operate successfully in this setup?

Regarding testing shared spatial anchor on Quest device, after building the APK, assuming the project is correctly set up on the Oculus developer dashboard (https://developer.oculus.com/), do I need to upload build file to a channel on developer hub and then download it onto the device from app store? Or can I simply sideload the APK file onto the device?

I've noticed a discrepancy between the anchor UUIDs in XR Simulator's app_anchors.json, XR Simulator's local_sharing_server.exe, compared to what I'm debugging from the code using OVRSpatialAnchor.Uuid. The first three sections of the ID seem to be scrambled. For example, an UUID identified by OVRSpatialAnchor.Uuid as c695fda5-7d0c-436e-8e26-f3efa5600884 appears as a5fd95c6-0c7d-6e43-8e26-f3efa5600884 in app_anchors.json and local_sharing_server.exe. Why are these values not matching?

Actually, I encountered issues while integrating colocation package version 1.0.0 and testing my project in Unity play mode using the XR Simulator (duplicating 2 app sessions with ParallelSync). It appears the shared spatial anchor service doesn't function as expected. The behavior of the mock server, local_sharing_server.exe, varies with each version of the XR Simulator used. I'm trying to pinpoint the problem; is it related to my code implementation, the colocation package, or XR Simulator itself? I also ran tests with Unity-Discover, Unity-LocalMultiplayerMR, and Unity-CrypticCabinet, using the simulator versions included with those projects. Below are screenshots illustrating the inconsistent behavior observed with the mock server:

My project, XR Simulator version 62, Colocation package version 1.0.0
(Zero anchor sharing and sharing target user is consistently assigned to value 184467...0843)

My project, XR Simulator version 57, Colocation package version 1.0.0
(Correct anchor sharing but sharing target user is still assigned to value 184467...0843)

Unity-CrypticCabinet,, XR Simulator version 60, Colocation package version 1.0.0
(Sharing target user is always a 0 value.)

Unity-LocalMultiplayerMR NGO sample,, XR Simulator version 59, Colocation package version 1.0.0
(This even worse there are errors in Unity console and mock server show misbehavior which same userid query the anchor twice.)

Unity-Discover, XR Simulator version 57, Colocation package version 0.1.0-preview
(The only combination that seems to work as expected.)

Thank you very much for any advice or recommendations. I realize this is quite a wall of text, but I hope it will be useful to others encountering similar issues in the future.

Responding to my own issue here, hoping this information will be helpful to anyone who finds themselves in a similar situation.

I recommend using the colocation package from the Unity-LocalMultiplayerMR repository. This is the latest version (version 1.0), which is an improvement over what's available in the Unity-Discover repository. The updated version simplifies the integration process by reducing boilerplate code. However, it's important to note that this package performs alignment operations every frame, which could lead to frame drops and unusual physics behaviors. Careful management of this aspect is crucial.

If you're running your app through the XR Simulator, spatial anchor requests (such as saving or querying anchors from a cloud location) will be directed to a local mock server (i.e., local_sharing_server.exe). In contrast, when running your app via Quest Link or as a standalone APK, these requests will go to the Meta cloud as expected. So, no, this scenario setup won't work.

Running one app session in Unity play mode through Quest Link and another directly on a device as a standalone APK build works flawlessly for shared spatial anchor services.

Even after building your APK, you must upload it to the Oculus developer dashboard to obtain entitlement. Without this step, the feature will not function properly.

Regarding the anchor UUID discrepancies, I haven't been able to investigate this further. Despite slight numerical differences, it appears that the anchors are still recognized as the same.

Hi @kingdomax,

We are working on integrating the Colocation package you mention, the one in this project is an earlier version of it. We also have a temporary fix for every frame alignment in Cryptic Cabinet
It is something we have talked about with the XR Simulator team, thanks for raising it.
Glad to hear, this is the expected behaviour.
Correct you need to send only an initial apk to anyt channel of your project for the features to work and get entitlement. After that you can push the apk directly to your device
I'll bring this up with the XR Simulator team and get back to you on this.

Thanks for raising these questions.

Hi @kingdomax , thank you for your questions:
about #2: XrSim currently has a different internal representation of shared anchors from mobile/links representation. Hence, the need for local sharing server. That might change in the future, but that's the current situation.
About #5, unfortunately, the unity integration uses Guid to contain XrUuid types and its toString() follows Guid rules instead of treating them as uint8_t[16] . Hence, the scramble.  It should not affect the comprison of anchor ids . Unreal doesn't have the problem. If it's an issue for testing, then reverse the little endian interpretation of the ID, and it will match.
Thanks!

@kingdomax
re 2) Re reading your question here. Shared spatial anchors will not be able to localize in different rooms and in the context of discover it would make the joining client as a remote player. So to answer your question, yes you can run them in parallel, but it wouldn't get the shared anchor due to different storage, but it wouldn't matter as the expected result would be for the players to detect that they are in different rooms.

We updated the project with latest release colocation package as well as added information on updating an apk before using certain features like shared spatial anchors.


NullSafety (Flutter 2.0) Support

Is there a date for a NullSafety release planed?

released with 1.1.0


Weight is saved if players died

When I was playing with my group they complain that if they died with the peepers on them the weight would be permanent until we restarted the game

When a player is killed their carry weight is set back to normal, were they killed in an unusual way? (such as a modded enemy)

He mention that he got killed by a eyeless dog when the peepers alert it so should be normal death. If the carry weight is supposed to reset will try readding it and seeing if I can get it to happen again today.

This should be fixed in v1.0.0 which will be out shortly.


Enable and expose diagnostic events with testutils in the sdk

Call env.host().set_diagnostic_level(testutils::DiagnosticLevel::Debug); in default_with_testutils to enable diagnostic events, and update the events module to allow retrieval of those event

This has been completed.


Research if Jira task custom fields can be used to store the task rate

Idea would be to add the hourly rate to the Jira task as a custom field. That removes the need for information to be scattered; partly in Jira and partly in JSON files.
Can this information be fetched using the Tempo API, or would a separate API call to Jira be required?

@drBosse Did you look into this?


Support -fno_exceptions -DBOOST_NO_EXCEPTIONS within Beast

Beast currently does not support compilation with:
-fno_exceptions
even when the following are defined:
-DBOOST_NO_EXCEPTIONS
-DBOOST_EXCEPTION_DISABLE
read.ipp has multiple try/catch clauses that do not respect this configuration.
As per all boost libraries, one of the goals is to allow the user to define their own error handling mechanism, and enabling exceptions still degrades performance in real-time fault-tolerant applications. Suggestion is to identify all uses of try/catch in the library and make them obey configuration directives.

This will help
namespace detail {
template<class DynamicBuffer>
bool dynamic_prepare(
    boost::optional<typename DynamicBuffer::const_buffers_type>&buffer,
    std::size_t amount);
} // detail

Note that according to https://www.boost.org/doc/libs/develop/libs/beast/doc/html/beast/concepts/DynamicBuffer.html
DynamicBuffers are required to throw length_error if length_error if size() + n exceeds max_size(), so Beast could just check this condition before calling prepare, thus avoiding the need for the try catch block/

We still need the try/catch block because we want to convert length_error into an error_code. But this try/catch can be moved into a utility function (e.g. dynamic_prepare above) and then conditionally compiled based on BOOST_NO_EXCEPTIONS and BOOST_EXCEPTIONS_DISABLE. In addition, we can perform the length check you described, and return false if the check fails.

Working on this now

@djarek how do we handle this:
https://github.com/boostorg/beast/blob/ec1c8ada7a22b274cf6e58c019c2bbe6965f6232/include/boost/beast/http/string_body.hpp#L100

BOOST_TRY
{
  // ...
}
BOOST_CATCH(std::exception const&)
{
  // ...
} BOOST_CATCH_END

Catching all exceptions may be a bit too overzealous here, I think the only one that should be handled is std::bad_alloc.

Hi, I wanted to check in on the status of this. Can beast (specifically the websockets) be used with -fno-exceptions today? Sorry if this is in documentation somewhere, I couldn't find it. Thanks!

Not supported at present, but thanks for commenting on this issue. It's from before my time but I'll resurrect it.

I don't see this ever happening in Beast

Vinnie, does that mean the issue is rejected?

Does asio work without exceptions?

This issue is still marked as open despite #2611 being merged with the description saying it closes this issue. Is this still considered open?

-fno_exceptions

I believe the issue has been resolved, and we can now use Beast with -fno-exceptions. Are you experiencing any issues?

I have not yet used the library, I'm looking at a possible replacement to what I'm currently using and -fno-exceptions is a requirement so I wanted to confirm that this issue is resolved despite being still listed as open. Thanks for the quick response.

I believe so (and did some tests). Could you confirm, @klemens-morgenstern?

I think so.


build: add removed prost_build::{Service, Method} trait implementations

Motivation
#1599 removed the tonic_build::Service and tonic_build::Method
implementations for prost_build::Service and prost_build::Method.
These impls are used in https://github.com/neoeinstein/protoc-gen-prost.
Solution
This PR re-adds the implementations that were removed in #1599.

It's possible that this may not be required inside of Tonic, and we can instead use the new-type pattern inside of protoc-gen-tonic to do this ourselves instead. I'll take a look, and if so, that will encourage the pattern of having implementers provide their own values.

Closing as this is indeed not needed.


TypeScript syntax highlighting detection incompatible with Astro script processing

Hi,
While using Sublime Text 4143 on macOS Ventura 13.4, TypeScript syntax highlighting seems to be broken.

After adding lang="ts", highlighting seems to work.

However, using attributes to detect TypeScript seems to break Astro's script bundling, as mentioned here

NOTE
Astro’s default bundling behavior will be disabled in some situations. In particular, adding type="module" or any attribute other than src to a

Thank's for reporting. The next release declares TypeScript as default syntax in script tags.


Code fix

I think this part of code shoulde be remove
       // These optional request parameters are set to their default values
        queryString["verbose"] = "true";
        queryString["show-all-intents"] = "true";
        queryString["staging"] = "false";
        queryString["timezoneOffset"] = "0";

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

ID: be71dfe5-fd72-f093-4fd5-b9af87d9d966
Version Independent ID: 1d4c3a42-02ed-d386-a712-17ae291bc631
Content: Quickstart: Get intent with REST APIs - LUIS - Azure Cognitive Services
Content Source: articles/cognitive-services/LUIS/luis-get-started-get-intent-from-rest.md
Service: cognitive-services
Sub-service: language-understanding
GitHub Login: @aahill
Microsoft Alias: aahi

@vdekercd Thanks for the feedback! We are currently investigating and will update you shortly.

@vdekercd
Hi Damien, I will make them as comment. Thanks. We will now proceed to close this thread. If there are further questions regarding this matter, please respond here and @YutongTie-MSFT and we will gladly continue the discussion.

https://github.com/Azure-Samples/cognitive-services-quickstart-code/pull/178 FYI


.github/workflows: install Go for go run in multicluster job

The multicluster workflow uses go run but doesn't explicitly install a
specific Go version. Thus, in some cases an older Go version might be
used which leads to failures such as:
vendor/k8s.io/client-go/plugin/pkg/client/auth/exec/metrics.go:21:2: cannot find package "." in:
        /home/runner/work/cilium-cli/cilium-cli/vendor/io/fs

Fixes #554

Multicluster test suceeded with this change: https://github.com/cilium/cilium-cli/actions/runs/1253179656
Removing DO NOT MERGE commit.


Remove internal only facing documents.

The home for these is https://github.com/microsoft/vcpkg-tool/tree/main/docs


add Albanian id number generator

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 92.09%. Comparing base (b37c566) to head (cb396e3).
Report is 105 commits behind head on main.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@             Coverage Diff              @@
##               main    #1208      +/-   ##
============================================
- Coverage     92.35%   92.09%   -0.26%
- Complexity     2821     2917      +96
============================================
  Files           292      302      +10
  Lines          5609     5768     +159
  Branches        599      621      +22
============================================
+ Hits           5180     5312     +132
- Misses          275      294      +19
- Partials        154      162       +8

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

@asolntsev Thank for this contribution, and thanks @snuyanzin for giving feedback. I've merged the feedback in, and I'll merge it.


Added Contributor's Page

Title and Issue number
Title : Added Contributor's Page
Issue No. : #345
Close #345
Video (mandatory)
https://github.com/user-attachments/assets/abded854-91ab-4b62-9ff9-6a765b5a002e
Checklist:

[X] I have mentioned the issue number in my Pull Request.
[X]  I have commented my code, particularly in hard-to-understand areas
[X] I have created a helpful and easy to understand README.md if its a new page/tech stack
[X] I have gone through the  contributing.md file before contributing

Are you contributing under any Open-source programme?

[X] I'm a GSSOC-EXT contributor
[X] I'm a HACKTOBERFEST contributor

@jeevan10017 ,
Please review this PR. Can you please assign it with level 3 for my work?
Thank You!!


Create an open sound control (OSC) stream.

This isn't a high priority but might be nice to have eventually, since it's the way that the GRT GUI and Wekinator get their data.

Duplicate of #312


Heuristic: We should detect exec(...(zlib.decompress(xxx))

We can probably rename the base64 rule to also take into account zlib.decompress

Sample code that should match:
import marshal,zlib;exec(marshal.loads(zlib.decompress(b'x\x9cM...`;')))

Same for https://jfrog.com/blog/pypi-malware-creators-are-starting-to-employ-anti-debug-techniques/


Add overloads for C++11 int64_t type

Adds convenience overloads for int64_t (standard c++ 64-bit integer type) to avoid extra casts to long long int.

Sorry missed some places


Some input events get lost if many keys are held simultaneously

I also reported this on glutin as https://github.com/tomaka/glutin/issues/941, but realized that it actually comes from here.
I'm on macOS 10.12.6, reproducing this with the latest winit on crates.io.
If I press many keys simultaneously, some events start getting lost. If I press ASDFGHJK, I only see events for ASDFGH. Similarly, if I hold down any two arrow keys, I don't get a press event for the third.
Reproducing with this code:
extern crate winit;

fn main() {
    let mut events_loop = winit::EventsLoop::new();
    let window = winit::Window::new(&events_loop).unwrap();

    events_loop.run_forever(|event| match event {
        winit::Event::WindowEvent { event: winit::WindowEvent::Closed, .. } => {
            winit::ControlFlow::Break
        }
        winit::Event::WindowEvent {
            event: winit::WindowEvent::KeyboardInput { input, .. }, ..
        } => {
            match input.virtual_keycode {
                Some(x) => println!("{:?} {:?}", x, input.state),
                None => println!("None {:?}", input.state),
            }
            winit::ControlFlow::Continue
        }
        _ => winit::ControlFlow::Continue,
    });
}

Thanks for the issue!
I'd imagine this issue is more likely to do with your keyboard than it is winit - most keyboards have a ~6 key limit before presses start being ignored (I think there's a name for this limit but I've forgotten what it is). Could you test that you get the same behaviour with another program (maybe the garage band synth keyboard?) or perhaps another library?

It sounds like you're correct and this is the 6-key rollover. I'm not sure why the arrow-keys are differently limited at 2 (that was the suspicious part for me) but that also appears to be a hardware limitation. Thanks!


chore(Data/DFinsupp/Basic): remove impossible →ₚ notation

This is a binary operator that expands to a unary function; so this notation is (and has always been) impossible to use.

To me, as a non-expert in this area, it's hard to judge whether this change is a good idea - as there's context missing.
Can you elaborate more why this notation makes no sense? (Or try to reconstruct when/why it was added in the first place?) Perhaps an expert in this area of mathlib will find this obvious, but I don't :-)

Just look at the type of DFinsupp : ∀ {ι : Type*} (β : ι → Type*) [(i : ι) → Zero (β i)], Type _. It's not a binary operation.

bors merge
Thanks!


add tck cases for jobs

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


feat: add pwa manifest

Description

Adds web app manifest for next app.

Might need to tweak the config, but it currently displays as below.

Issue(s)
Fixes #AI-510.
How to test

Go to https://oak-ai-lesson-assistant-np4cw1eeb.vercel-preview.thenational.academy on Chrome.
Install web app.
You should see the installed web app in Chrome Applications.

Screenshots
Checklist

[ ] Manually tested across browsers / devices
[ ] Considered impact on accessibility
[ ] Does this PR update a package with a breaking change

:tada: This PR is included in version 1.7.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


ERROR [app-router] TypeError: Cannot read property 'subscriberAdded' of undefined

When I use @bindable to bind an array of strings in my custom element, I get error:
ERROR [app-router] TypeError: Cannot read property 'subscriberAdded' of undefined

I've traced this back into aurelia-bindings.js
OoPropertyObserver.prototype.subscribe = function subscribe(context, callable) {
      if (this.addSubscriber(context, callable)) {
        this.obj.__observer__.subscriberAdded();
      }
};

where this.obj.__observer__ is showing as undefined.
No such problem if I use array of objects.
Problem code can be seen in my sample app: https://github.com/stevies/aurelia-starter-kit
The @bindable array is at:
https://github.com/stevies/aurelia-starter-kit/blob/master/app/src/resources/radio-switch/radio-switch.js#L6
When I feed it an array of strings - eg, from:
https://github.com/stevies/aurelia-starter-kit/blob/master/app/src/page1.js#L9
via
https://github.com/stevies/aurelia-starter-kit/blob/master/app/src/page1.html
it breaks with the error above. No such problem with array of objects.
Of course, this could be my code - but it did work OK before the latest Aurelia upgrade.
Console log:
ERROR [app-router] TypeError: Cannot read property 'subscriberAdded' of undefined
    at OoPropertyObserver.subscribe (http://localhost:9000/jspm_packages/github/aurelia/binding@0.10.1/aurelia-binding.js:3059:30)
    at InterpolationBinding.addObserver (http://localhost:9000/jspm_packages/github/aurelia/binding@0.10.1/aurelia-binding.js:47:16)
    at InterpolationBinding.observeProperty (http://localhost:9000/jspm_packages/github/aurelia/binding@0.10.1/aurelia-binding.js:62:17)
    at AccessMember.connect (http://localhost:9000/jspm_packages/github/aurelia/binding@0.10.1/aurelia-binding.js:1096:17)
    at Binary.connect (http://localhost:9000/jspm_packages/github/aurelia/binding@0.10.1/aurelia-binding.js:1364:17)
    at InterpolationBinding.interpolate (http://localhost:9000/jspm_packages/github/aurelia/templating-binding@0.16.0/aurelia-templating-binding.js:426:22)
    at InterpolationBinding.bind (http://localhost:9000/jspm_packages/github/aurelia/templating-binding@0.16.0/aurelia-templating-binding.js:405:12)
    at View.bind (http://localhost:9000/jspm_packages/github/aurelia/templating@0.16.0/aurelia-templating.js:797:21)
    at ViewFactory.create (http://localhost:9000/jspm_packages/github/aurelia/templating@0.16.0/aurelia-templating.js:1791:14)
    at BoundViewFactory.create (http://localhost:9000/jspm_packages/github/aurelia/templating@0.16.0/aurelia-templating.js:1660:31)error @ aurelia-logging-console.js:62log @ aurelia-logging.js:36error @ aurelia-logging.js:69processResult @ aurelia-router.js:1682(anonymous function) @ aurelia-router.js:1575f @ shim.min.js:1415(anonymous function) @ shim.min.js:1423b.exports @ shim.min.js:453b.(anonymous function) @ shim.min.js:1625f @ shim.min.js:1596q @ shim.min.js:1600

@jdanyow Can you take a look at this?

@stevies thanks for the detailed info- could you check one more thing for me- does the issue occur if you remove this line?

Yes, the error does go away.  But app still a bit broken in that my view is not showing the correct styles or markup from the custom element.  But that might be my code - I was fiddling around trying to fix the other problem and may have busted something in the process.  I'll double-check by reverting to a working version and re-doing the upgrades.
Thanks for looking at this so quickly.  It is not affecting anything crucial for me.

Ah - of course - it is the line with:
  ${item.text || item}

that the styles get applied to and output the widget label.  Removing that completely is certainly going to screw my view.
Is my code broken?  I easily can look at an alternative approach.  Or is it showing up some error in Aurelia?

This fixes it for me:
        <template if.bind="!$parent.isArrayOfStrings()">
          <input  type="radio" name.bind="$parent.groupName"
                 model.bind="item" checked.bind="$parent.selected" disabled.bind="item.disabled">
          ${item.text}
        </template>

        <template if.bind="$parent.isArrayOfStrings()">
          <input type="radio" name.bind="$parent.groupName"
               value.bind="item" checked.bind="$parent.selected">
          ${item}
        </template>

@stevies thanks for checking- will get a fix in for this asap
<template>

    ${item.text || item}

</template>

export class App {
  items = ['foo', 'bar', 'baz'];
}

Thanks again.


documentation and unit tests for nclistmgr.c and nc.c

Part of #1458
Part of #1457
In this PR I add doxygen documentation and some unit tests for nclistmgr.c and nc.c. No code changes, just tests and documentation. More tests coming.
@DennisHeimbigner would appreciate review of comments to see if I got it right.

This is now part of #1463 so I will take it down.


Option: Inverse the state won't work completly with climate data

What version of Adaptive Cover are you using?
1.1.4
What version of Home Assistant are you using?
2024.5.1
Checklist

[X] I have filled out the issue template to the best of my ability.
[X] This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
[X] This issue is not a duplicate issue of currently previous issues..

Describe the issue
I work with covers which are controlled via KNX actors within my HA instance. Unfortunately I have to use the "Inverse the state" option because 100% means fully opened and 0% closed.
Basic function is working, but as soon I configure the climate parameters including all optional sensors/parameter the "Inverse the state" option wont work here. Above the "High temperature threshold" the covers open instead of closing.
I think the "Inverse the state" option isn't programmed for climate settings (Layman's opinion)
Reproduction steps

Basic configuration of cover
activate "Inverse the state" option
configure "Low/High temperature threshold"
High temperate open cover / low close
...

Diagnostics dump
No response

okay maybe I have a knot in my head... i don't thing my described issue is my issue.. sorry for that
the main problem is, I want to set a maximum closing position for my covers. I don't want to use "fully closed" causing stagnant heat between the roller shutter and the window. So my "fully close" and therefore maximal operation range within calculation/present/not-present should be 100%-30% (maximum opening position). I don't think that it possible at the moment (?)
If I am wrong, I would be grateful for any tips.

You can always create a template cover that takes the info from the parent cover and convert the position to the HA convention. I will add some logic when I find time to also auto inverse the maximum position if inverse is selected


Add: Sparsification + Quantization Recipes for YOLACT

yolact.pruned.md
yolact.pruned.perf.md
yolact.quantized.md

the YAML recipe section should be surrounded by dashes --- instead of underscores ___
where is the module. coming from in the recipes? is this part of the core yolact model or the DDP wrapper?

Good catch @bfineran; Corrected!

@bfineran can you work with @rahul-tuli to paramaterize these recipes where if a user enters a different number of epochs it will shift the pruning and quantization start and ends appropriately?

@bfineran can you work with @rahul-tuli to paramaterize these recipes where if a user enters a different number of epochs it will shift the pruning and quantization start and ends appropriately?

Done!


[DataTable] Hide arrow padding when not sorting

Description
This PR fixes the problem that the arrow padding still displays when DataColumn.onSort is null, thus allowing the label to be truly centered.
This continues the work of https://github.com/flutter/flutter/pull/43735 by @andermoran.
Related Issues

Affected by https://github.com/flutter/flutter/issues/51152. A workaround is used with a regression test

Tests
I added the following tests:

DataTable column heading cell - no sort
DataTable correctly renders with a mouse

Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

[ ] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[ ] I signed the CLA.
[ ] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[ ] I read the Tree Hygiene wiki page, which explains my responsibilities.
[ ] I updated/added relevant documentation (doc comments with ///).
[ ] All existing and new tests are passing.
[ ] The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
[ ] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Did any tests fail when you ran them? Please read Handling breaking changes.

[ ] No, no existing tests failed, so this is not a breaking change.
[ ] Yes, this is a breaking change. If not, delete the remainder of this section.

[ ] I wrote a design doc: https://flutter.dev/go/template Replace this with a link to your design doc's short link
[ ] I got input from the developer relations team, specifically from: Replace with the names of who gave advice
[ ] I wrote a migration guide: Replace with a link to your migration guide

@Piinks I've addressed the issues you brought up, can you take a look again? Thanks!


Fixed a memory leak in preparedStatements set

The property preparedStatements stores prepared statements (namely, name + query).
While the prepare method adds an entry to the set, nothing ever takes care of removing these entries, even when release is explicitly called.

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


Enhance examples/audio to use multiple file types.

Code and sample sound additions to examples/audio

This PR requestwas discussed on #kivy-dev (https://botbot.me/freenode/kivy-dev/2015-02-03/?msg=31090921&page=1).  Basically, the large sound files, though useful, would increase the install foot print by too much.  They ware removed.   Some may or may not care that git may or may not download and ignroe an extra 40MB of data on this PR.

@merriam, If this is merged as is this would still include the big file as part of the commit history.
It would be better to just re-do the pr with a new commit with all your current media files and code changes.
Thanks for all your hard work. I look forward to your new pr.

Sorry, I'm over my "maximum of 30% of time spent futzing with Git for your project".  I'll look into resubmitting it next week.


Added initial support for crew end point

Hello @alshapton! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file src/spacexpython/crew.py:

Line 4:1: E302 expected 2 blank lines, found 1
Line 11:40: E231 missing whitespace after ','

In the file src/spacexpython/urldata.py:

Line 69:23: W292 no newline at end of file

In the file src/test/test_crew.py:

Line 4:1: E402 module level import not at top of file
Line 5:1: E402 module level import not at top of file
Line 6:1: E402 module level import not at top of file
Line 7:1: E402 module level import not at top of file
Line 8:1: E402 module level import not at top of file
Line 12:14: E225 missing whitespace around operator
Line 13:16: E225 missing whitespace around operator
Line 18:14: E211 whitespace before '('


Recursive tags.

Allow for tags to be used in substitution code.

Also, mark deep substitutions as retain if they have the same tag name and substitution text but the tag appears in the prior and next surrounding substitution text.


BIGTOP-2857: Add aarch64 support for fedora25

Change-Id: I00f8f6a9bb4c46cb93891477153f728ac945dff5
Signed-off-by: Jun He<EMAIL_ADDRESS>

+1, will commit in a bit.


Use bulk VALUES in INSERT statement (Very slow nested create - performance optimization by factor 10+ possible)

Problem
In our production schema, we have multiple nested entries (think of spreadsheet with cells, comments, etc.). When a new spreadsheet is created, for multiple reasons we need to initialize/create a lot of cells, comments, etc. As a consequence, prisma.sheet.create() leads to >1,000 (sometimes 10,000!) records that need to be created in different tables. This single statement takes 15-20seconds!
Suggested solution
Under the hood the Prisma Engine creates one INSERT statement for each record, i.e. a lot of statements must be executed - and as the records are related, this must be done sequentially as the parentIDs are required for the next statement. So if for instance 1 parent with 2 children and 3 child-childs respectively need to be created,  9 INSERTs must be executed:

parent
child1
child-child 1.1
child-child 1.2
child-child 1.3
child2
child-child 2.1
child-child 2.2
child-child 2.3

Instead, running one INSERT with multiple VALUES will reduce the number of INSERTstatements and improve performance a lot when dealing with multiple entries. In the above example, there would be 3 inserts:

parent
child1, child2
child-child 1.1, child-child 1.2, child-child 1.3, child-child 2.1, child-child 2.2, child-child 2.3

Demo
I created a small sample repo that reproduces this and measures the execution time for both approaches based on the number of records. While the Prisma approach in this specific example is faster for about 500 records, the manual approach is relatively faster the more records there are:

10 records: Prisma: 21ms, Bulk: 87ms
100 records: Prisma: 33ms, Bulk: 85ms
1,000 records: Prisma: 132ms, Bulk: 87ms
10,000 records: Prisma: 1,041ms, Bulk: 173ms
100,000 records: Prisma: 10,313ms, Bulk: 893ms

The demo uses SQLLite, but we have the same issue with PostgreSQL in production.

any update on this?

This is on a locally hosted PostgreSQL 13 database server
Pushing tokens to Database
Successfully inserted 9999 tokens.
Successfully inserted 209979 attributes.
Pushed tokens to Database -- [38233ms]

attributes contains 4 string fields and one number field, the field used to link each attribute to its corresponding token.

Thank you for a very detailed report and a reproduction @peteralbert!
We have implemented the improvement you requested in Prisma 5.11.0. The nested create operations are now executed in bulk, which indeed provides a considerable performance boost.
In the spirit of transparency, I would like to highlight that one part of your suggestion was not implemented due to technical difficulties associated with it. Your proposal suggests to create all nested records in BFS-like style, layer by layer. In your example, this means creating child1 and child2 before creating child1.* and child2.*.
Unfortunately, it turned out that RETURNING statement we use for getting the inserted records back from the database does not provide any ordering guarantees. That means that if we insert child1 and child2 in bulk, we will have no idea which of the returned rows is child1 and which is child2.
This limitation means that we can only insert the last "layer" of the query in bulk. In your example, this means inserting all child1.* in one bulk operation and then inserting all child2.* in another bulk operation.
This approach still provides a very significant performance boost (especially on your repro) while ensuring correctness of the query.


slice×slice fetching in sparse_dataset is not lazy

https://github.com/scverse/anndata/blob/b78a8056008eac5732379f9024c3b46d2b7d5d3f/src/anndata/_core/sparse_dataset.py#L179
calls self._get_submatrix(...), which calls scipy.sparse.sparsetools.get_csr_submatrix(...).
And that one is implemented in C++, so it converts all of self.indices and self.data into arrays on each slice access.
This eliminates the whole purpose of sparse_dataset …

So the whole matrix gets loaded on slicing, not only the slice itself?
Is this a recent problem?

I don’t know. I think it’s not recent, since sparsetols/csr.h is 17 years old. I didn’t look for the commit that makes C++ functions call __array__ on their array arguments, but I don’t think it’s likely that that one is new.

Hm, i remember i had some horrible performance when trying to stream small slices of sparse_dataset for the cloud. This probably explains that.

Testing this isn’t straightforward, but possible, so I think if we can find a fix, I can make the tests catch any possible regression.
The test fix would be something like monkeypatching zarr.Array.__array__ so it throws an AssertionError when len(return_arr) == len(sparse_dataset.data)
But we still need an actual fix.

This is only one case @flying-sheep.  The entire class is not not-lazy.  In fact much of it is lazy, unless the report is about more than just one line.
This has likely has a solution by fetching along the major axis first via a slice and then slicing the minor from that slice.  This would be lazy from what I can tell off hand.
indptr is a very manageable size even at the largest end of the spectrum, so loading it into memory is not an issue.  It is the size of the major axis.  Even at 100,000,000s of elements, that's still on the order of single digit gigabytes.

Right, it doesn’t happen under all circumstances, only when you slice both dimensions at once, so that workaround works!
The indptr thing made sense, I thought as much since that @property is clearly there intentionally!

This is hard to do right. I think an effective way for common use cases is really just to slice along the major axis first to get a in-memory sparse matrix with the full minor axis length, and then slice that in-memory.
A more space-efficient alternative is to re-implement get_cs[rc]_submatrix in a backing-aware way, but that would mean to write compiled code that uses the HDF5 or Zarr APIs (or suffering from the extreme slowness of assembling a matrix row-by-row in Python)


Pagination is not working

I am not sure if pagination is actually working.
https://polls.apiblueprint.org/questions
https://polls.apiblueprint.org/questions?page=1
They both return the same payload. Furthermore, the documentation is missing the page size (25, for example?)

@kylef Eta/updates on this?


Support directories in loadResource(..)

Reported by otter on 9 Mar 2016 18:40 UTC
At the 89th Modelica Design Meeting the following proposal was worked out:
It is proposed to generalize the available ModelicaService function “loadResource(..)”. If the URI or local path name identifies a directory (= collection of resources), then the absolute path name of this directory is returned. The returned absolute path of a directory does not have a trailing slash [If the URI would specify data in another form (say a database), then all resource elements identified by the URI could be copied to a temporary, local directory and the absolute path name of this directory is returned].
This feature is already supported by Dymola, JModelica.org, OpenModelica and by SystemModeller.
It has to be checked whether the "not having a traling slash" is fine. Otherwise, there seems to be agreement to introduce this feature in the next version of MSL (Modelica.Utilities.Files.loadResource()) and correspondingly in ModelicaServices.

Migrated-From: https://trac.modelica.org/Modelica/ticket/1954

Comment by otter on 9 Mar 2016 22:50 UTC
In Dymola 2017 Beta.1: loadResource(..) only prepends the heading path to the URI, but does not append something. As a result
loadResult("modelica://Modelica/Resources")  -> "...trunk/Modelica/Resources"
loadResult("modelica://Modelica/Resources/") -> "...trunk/Modelica/Resources/"

Seems to be a good semantics

Comment by beutlich on 15 Apr 2016 11:17 UTC
From #1976:

Usually, directory names are distinguished from file names by a trailing slash.

Thus I would prefer to explicitly have a trailing slash for directory names.

Comment by otter on 18 Apr 2016 07:47 UTC
Replying to [comment:2 beutlich]:

From #1976:

Usually, directory names are distinguished from file names by a trailing slash.
Thus I would prefer to explicitly have a trailing slash for directory names.

Since the last part of the directory is provided by the user, an option seems to be to not change this part and only adapt the leading part, so
parameter String dir1 = "modelica://Modelica/Resources/Data";
parameter String dir2 = "modelica://Modelica/Resources/Data/";
final parameter String fullDir1 = loadResource(dir1);
final parameter String fullDir2 = loadResource(dir2);

/* On windows the following is returned ("/" is treated as "\"):
   fullDir1 = "C:/svn.modelica.org/Modelica/Resources/Data";
   fullDir2 = "C:/svn.modelica.org/Modelica/Resources/Data/";
*/

The tool vendors that support directories for loadResource should give their opinion.

Modified by otter on 5 Aug 2016 05:59 UTC

Comment by hansolsson on 13 Sep 2016 11:47 UTC
An issue is that
"modelica://Modelica.Mechanics.Rotational" is a reference to the class
"modelica://Modelica.Mechanics.Rotational/Resources/A.jpg" references a jpg
"modelica://Modelica.Mechanics.Rotational/Resources/" references a directory
"modelica://Modelica.Mechanics.Rotational/Resources" references a directory
"modelica://Modelica.Mechanics.Rotational/" is this a directory?
Should trailing slashes be preserved for directories as arguments to loadResource?
Possibilities: Forbid trailing slash, preserve trailing slash, (remove it if present).
Forbid trailing slash: 1
Preserve trailing slash: 4
Remove it if present: 1
Always add trailing slash: 2
One possibility is to require that the path-name should be non-empty, otherwise it is an error. Can then use "modelica://Modelica.Mechanics.Rotational/." or "modelica://Modelica.Mechanics.Rotational/./" to reference the directory.
Require non-empty path: 2
Allow empty path - returning the directory: 3 (with slash)
Henrik: Check common libraries for files - and what they return for normalization. (Boost, Qt, ...):
Windows API _splitpath return trailing slash for directory, but other routines are without trailing slash.
Qt's QDir function don't add trailing slash
Boost does not seem to add trailing slash
Note that on Windows the current directory function returns "c:" and "c:\Dir" - because "c:" wouldn't always work. However, loadResource will not return a drive (unless ".." is used as path - but then ".." should be in the result).
Would be good if agreement.
Note:
IncludeDirectory and LibraryDirectory are defined without trailing slash.

Comment by hansolsson on 13 Sep 2016 12:11 UTC
Conclusion - remove trailing slash (if any) - since common on Unix and not always present on Windows (note that this can be done without checking if it is directory - just always remove the trailing slash).
Favor: 6
Against: 0
And similarly without slash for "modelica://Modelica.Mechanics.Rotational/".
"modelica://Modelica.Mechanics.Rotational/" -> ".../dir"
"modelica://Modelica.Mechanics.Rotational/B.jpg" -> ".../dir/B.jpg"
"modelica://Modelica.Mechanics.Rotational/A/" -> ".../dir/A"
"modelica://Modelica.Mechanics.Rotational/A/B.jpg" -> ".../dir/A/B.jpg"

What is left to do? Documentation only?

rescheduling milestone

removing milestone