PHP Fatal error: Maximum call stack size of 83360 bytes reached during compilation. Try splitting expression

Hi, I tried FrankenPHP on 2 different Symfony 6.3 projects and get the error:
Maximum call stack size of 83360 bytes reached during compilation. Try splitting expression in /app/vendor/symfony/framework-bundle/DependencyInjection/Configuration.php on line 351

The symfony/framework-bundle version is 6.3.4.
Using PHP 8.3 alpine version.
I'm not sure what compilation refers to in this context and Google didn't help ;)

I'm also seeing the following line on startup:
2023-12-13 15:39:24 2023/12/13 14:39:24.413     INFO    using provided configuration    {"config_file": "/etc/caddy/Caddyfile", "config_adapter": "caddyfile"}
2023-12-13 15:39:24 2023/12/13 14:39:24.414     WARN    Import file is empty    {"file": "/etc/caddy/conf.d/logging/dev.caddy"}
2023-12-13 15:39:24 2023/12/13 14:39:24.418     WARN    admin   admin endpoint disabled
2023-12-13 15:39:24 2023/12/13 14:39:24.442     INFO    FrankenPHP started 🐘    {"php_version": "8.3.0"}
2023-12-13 15:39:24 2023/12/13 14:39:24.463     INFO    autosaved config (load with --resume flag)      {"file": "/config/caddy/autosave.json"}
2023-12-13 15:39:24 2023/12/13 14:39:24.464     INFO    serving initial configuration
2023-12-13 15:39:24 2023/12/13 14:39:24.471     WARN    PHP Warning:  Failed to set memory limit to 0 bytes (Current memory usage is 2097152 bytes) in Unknown on line 0

Well it's the same error but I'm not compiling for a standalone binary.
I'm trying it out in our local development setup (docker-compose), where we favor developer experience and have no production optimizations.
For instance, we have memory_limit set to -1 there.
Any idea how I can allow a higher limit for this setting ? I've never seen it before and can't find anything online. Is this even a PHP error?

I meant specifically:

Have you warmed the cache

I do know there is something to be done here; I use Symfony at work and write compiler passes from time to time, but I'm not usually doing devops on it, so I don't know how to perform a compile pass on the container. (maybe composer dump?)
Sadly, this seems to be a Symfony-specific thing and I won't be much help here. Maybe @dunglas has some insight?

For instance, we have memory_limit set to -1 there.

Hmmm, usually, I see the other way around; lower limits in dev than in prod (since you don't want to end up having everything working in dev, but crashing in prod due to hitting limits).

Actually probably more related to https://github.com/php/php-src/issues/12234 and https://github.com/dunglas/frankenphp/pull/223...
I'm not to sure what should be done here... Maybe this should indeed be improved at symfony/framework-bundle level.
Any thoughts @dunglas ?

Unfortunately it's a tradeoff.
There are 3 options:

Using Debian in dev (it's what O recommend to do)
Create a custom Alpine build with an increased stack size for dev (in prod, it's better to keep with the defaults)
Increase the default size in our image, but it will affect "negatively" all apps in production for some that need this only in dev

It's unlikely that the "problem" is in Symfony itself (and it's not really a problem actually, there are just many files to "compile" and it's too much for the default stack limit). It's more likely in the bundles used or the custom code the app. It can probably be optimized in your app itself... but does it worth it as it's unlikely that this affect the production environment (where the cache is already populated)?

Actually with a simple API Platform it doesn't work using the dunglas/frankenphp:latest-builder-alpine combined to dunglas/frankenphp:latest-alpine so we can't build any FrankenPHP instances with additional modules.

It can probably be optimized in your app itself

That doesn't seem to be an application issue (or maybe API Platform itself should be optimized too).

Using Debian variants in dev (it's what I recommend to do)
That means, we have to rewrite the Dockerfile to use the Debian distribution instead of the default one to use apt instead of apk.

It seems it always occurs at the exact same point during symfony container compilation, notably here: https://github.com/symfony/framework-bundle/blob/4a4e93d93f2081c8e90a289644198fc2ec6258e0/DependencyInjection/Configuration.php#L337

@darkweak can you post your Dockerfile? Are you sure that you're increasing the stack size as we do in the official images in your custom build including extra modules? I'm not able to reproduce the problem with our official Alpine images (no custom build) and API Platform.
@cdaguerre Did you try to increase the stack size? It can be done by changing the value here: https://github.com/dunglas/frankenphp/blob/main/alpine.Dockerfile#L88 (the stack-size flag)?

@cdaguerre are you using the worker mode? Redis timeouts are likely unrelated.

I tried both, both the same.

And do you have the same issue with the Debian image?

@dunglas I'm following the FrankenPHP documentation
FROM dunglas/frankenphp:latest-builder-alpine AS builder
COPY --from=caddy:builder /usr/bin/xcaddy /usr/bin/xcaddy

COPY ./middleware ./middleware

ENV CGO_ENABLED=1 XCADDY_SETCAP=1
RUN xcaddy build \
    --output /usr/local/bin/frankenphp \
    --with github.com/dunglas/frankenphp=./ \
    --with github.com/dunglas/frankenphp/caddy=./caddy/ \
    --with github.com/dunglas/mercure/caddy \
    --with github.com/dunglas/vulcain/caddy \
    --with connector=./middleware

# Versions
# hadolint ignore=DL3007
FROM dunglas/frankenphp:latest-alpine AS frankenphp_upstream
FROM composer/composer:2-bin AS composer_upstream

# The different stages of this Dockerfile are meant to be built into separate images
# https://docs.docker.com/develop/develop-images/multistage-build/#stop-at-a-specific-build-stage
# https://docs.docker.com/compose/compose-file/#target

# Base FrankenPHP image
FROM frankenphp_upstream AS frankenphp_base
COPY --from=builder --link /usr/local/bin/frankenphp /usr/local/bin/frankenphp

WORKDIR /app

# persistent / runtime deps
# hadolint ignore=DL3018
RUN apk add --no-cache \
		acl \
		file \
		gettext \
		git \
	;

RUN set -eux; \
    install-php-extensions \
		apcu \
		intl \
		opcache \
		gd \
		zip \
    ;

###> recipes ###
###> doctrine/doctrine-bundle ###
RUN set -eux; \
    install-php-extensions pdo_pgsql
###< doctrine/doctrine-bundle ###
###< recipes ###

COPY --link api/frankenphp/conf.d/app.ini $PHP_INI_DIR/conf.d/
COPY --link --chmod=755 api/frankenphp/docker-entrypoint.sh /usr/local/bin/docker-entrypoint
COPY --link api/frankenphp/Caddyfile /etc/caddy/Caddyfile

ENTRYPOINT ["docker-entrypoint"]

# https://getcomposer.org/doc/03-cli.md#composer-allow-superuser
ENV COMPOSER_ALLOW_SUPERUSER=1
ENV PATH="${PATH}:/root/.composer/vendor/bin"

COPY --from=composer_upstream --link /composer /usr/bin/composer

HEALTHCHECK --start-period=60s CMD curl -f http://localhost:2019/metrics || exit 1
CMD [ "frankenphp", "run", "--config", "/etc/caddy/Caddyfile" ]

# Dev FrankenPHP image
FROM frankenphp_base AS frankenphp_dev

ENV APP_ENV=dev XDEBUG_MODE=off
VOLUME /app/var/

RUN mv "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini"

RUN set -eux; \
	install-php-extensions \
    	xdebug \
    ;

COPY --link api/frankenphp/conf.d/app.dev.ini $PHP_INI_DIR/conf.d/

CMD [ "frankenphp", "run", "--config", "/etc/caddy/Caddyfile", "--watch" ]

# Prod FrankenPHP image
FROM frankenphp_base AS frankenphp_prod

ENV APP_ENV=prod
ENV FRANKENPHP_CONFIG="import worker.Caddyfile"

RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"

COPY --link api/frankenphp/conf.d/app.prod.ini $PHP_INI_DIR/conf.d/
COPY --link api/frankenphp/worker.Caddyfile /etc/caddy/worker.Caddyfile

# prevent the reinstallation of vendors at every changes in the source code
COPY --link api/composer.* api/symfony.* ./
RUN set -eux; \
	composer install --no-cache --prefer-dist --no-dev --no-autoloader --no-scripts --no-progress

# copy sources
COPY --link ./api ./
RUN rm -Rf frankenphp/

RUN set -eux; \
	mkdir -p var/cache var/log; \
	composer dump-autoload --classmap-authoritative --no-dev; \
	composer dump-env prod; \
	composer run-script --no-dev post-install-cmd; \
	chmod +x bin/console; sync;

But if you provide a latest-builder-alpine image, I assume that you support alpine 😂
Thank you for the documentation update.

We do support Alpine ;) This option is only necessary for people using Alpine + a custom build + Symfony in dev mode. Quite an edge case.

That bein said, and even if it's not related to this issue. I'm considering switching from Alpine to Debian in API Platform and Symfony Docker, to prevent this kind of weird edge cases. PHP has many known issues with Alpine.


Plugin: Object to JSON mapper

It would be nice to have Flutter support for mapping objects to JSON and JSON to object.
Currently to achieve that I have to transcode object to Map. There is no clean way to do that because Flutter do not support dart:mirrors. Only way to do that without code written by hand is to use https://github.com/google/built_value.dart but it is still far from perfect and it needs additional setup.
When I have a Map then I can use JSON.encode to produce JSON string.
This is a code that I am currently using:
class AuthToken {
  final String accessToken;
  final String tokenType;
  final int expiresIn;
  final String refreshToken;
  final int createdAt;

  AuthToken.fromMap(Map<String, dynamic> map)
      :
        accessToken = map["access_token"],
        tokenType = map["token_type"],
        expiresIn = map["expires_in"],
        refreshToken = map["refresh_token"],
        createdAt = map["created_at"];

  Map <String, dynamic> toMap() {
    return {
      "access_token": accessToken,
      "token_type": tokenType,
      "expires_in": expiresIn,
      "refresh_token": refreshToken,
      "created_at": createdAt,
    };
  }
}

  Future save(AuthToken token) async {
    var tokenMap = token.toMap();
    var tokenJson = JSON.encode(tokenMap);
    await _db.put(tokenJson, "auth");
  }

  Future<AuthToken> getToken() async {
    var tokenJson = await _db.get("auth");
    var tokenMap = JSON.decode(tokenJson);
    return new AuthToken.fromMap(tokenMap);
  }

Would be nice to be able to call JSON.encode directly on object and get JSON string, and convert back JSON string to object using JSON.decode. Or at least to have similar functions to transcode objects to Maps.
It would help a lot in the use cases:

storing objects in the key-value database
using HTTP REST apis

Little bit off topic here, but when mentioning storing objects in the key-value database, what database do you have in mind? As far as I know, there is currently no designated solution, but I'm also looking for one.

There are several key-value storage related bugs on file, including https://github.com/flutter/flutter/issues/4757 and https://github.com/flutter/flutter/issues/6676 and https://github.com/flutter/flutter/issues/8901

See also https://github.com/flutter/flutter/issues/9236 which is a documentation request around json handling.

@hundeva I am using https://github.com/tekartik/sembast.dart but this is more like off topic
@eseidelGoogle I saw those tickets but none of them solves the problem. There is no easy way to map object to JSON and back. And this is what other frameworks like React Native provide out of the box.

See also https://twitter.com/MatanLurey/status/840355401421930496

@dbacinski Thanks, I decided to use sembast for now as well.
On topic: I think what we would like is something like Gson, for example:
JSON to Object mapping:
Pojo pojo = new Gson().fromJson(jsonString, Pojo.class);

Object to JSON mapping:
String jsonString = new Gson().toJson(pojo);

By default, this wouldn't really work because of no dart:mirrors support. On android, development shifted from using reflection at runtime to using generated code based on annotation processing, in the build step. Is this something that sounds feasible for flutter? I would be perfectly happy, if all I would need to do is, annotate my fields with for example SerializedName('myFieldName'), and then I could call Pojo pojo = JSON.decode(jsonString);
I'm yet to dig in to the build process, so I have no idea how much annotation processing is supported at the moment.
Alternatively, if annotation processing is not supported, I'd be fine with writing (de)serializers where I handle JsonElement objects, and its descendants (JsonObject, JsonArray, JsonPrimitive, JsonNull), instead of handling maps. Again, the example is from Gson.

@hundeva this should work fine with a code generator similar to what built_value uses or other packages that use code generation. I'd suggest trying built_value first. I think it's immutability approach is a great fit for Flutter.

Yeah, I've checked out built_value some time ago, my problem with that is, the developer needs to write some non trivial boilerplate by hand, which is fairly error prone, at least I had some trouble with it. :) Also, the code generation has to be invoked manually, and the generated code has to be pushed to the repos as well.
I found it easier to fallback to manually parsing the objects from maps, which is still not the best solution.

Also, the code generation has to be invoked manually, and the generated code has to be pushed to the repos as well.

AFAIK think this can't be avoided except by using mirrors
Manual coded (de)serialization also needs to be checked in.
I'd expect code generation to be integrated better into the build process. Not sure how the Flutter team sees this but for normal Dart development (server, web) this the direction they are heading AFAIK.

write some non trivial boilerplate by hand

I think it's rather trivial (just my opinion of course) and can be made even easier by using for example something like live templates of IntelliJ IDEs (most other IDEs have similar features)

Manual coded (de)serialization also needs to be checked in.

Yeah, and this is what I would skip, if possible. Again, I can bring an android example only (as that is what I have worked with for the last 5 years), android-apt does all this for you, and you don't need to check in any generated code.

I'd expect code generation to be integrated better into the build process

That is the direction that I would head, fingers crossed.

I think it's rather trivial (just my opinion of course) and can be made even easier by using for example something like live templates of IntelliJ IDEs (most other IDEs have similar features)

I will surely give it another shot, I'm just exploring flutter in my free time for now.

@hundeva android-apt is deprecated in the latest Android Gradle Plugin because it already provides one.

I am going to close this. Flutter apps work with a variety of serialization formats, not just JSON, and there are a few packages available already:

JSON:

https://pub.dartlang.org/packages/built_value
https://pub.dartlang.org/packages/json_serializable

Protobuf: https://pub.dartlang.org/packages/protobuf
gRPC: https://pub.dartlang.org/packages/grpc
FIDL: https://fuchsia.googlesource.com/docs/+/master/development/languages/dart/fidl.md#

If the goal is to add a language-level support, consider filing an issue for the Dart language: https://github.com/dart-lang/sdk/issues.


Next Learn: spelling mistake in Ch 12

"you can also revalidate the associated cache using APIs like revalidatePath and relivateTag"
I believe it should read revalidateTag

Thank you 🙏🏼


Provide 5 Player Results for Competitions

IFPA standard competitions do support 4-5 players, so the basic result cards with 3 players are not feasable.

The highscore card has been extended to up to 5 players.


Improve logging configuration

💡 Description

[ ] use tqdm to log progress (if needed in an AWS context) see comment https://github.com/NASA-PDS/registry-sweepers/pull/45/files#r1275514146
[ ] externalize log configuration in a file (see comment https://github.com/NASA-PDS/registry-sweepers/pull/45/files#r1275520453)

@tloubrieu-jpl why is tqdm actually desirable here?  The intent is to show (in ECS logs) periodic progress of various long-runnning queries, which are being consumed concurrently.  My gut feeling is that tqdm either wouldn't show up in the way we expect, or would spam the logs in a way that is less legible than the current approach, because tqdm relies on having an interactive terminal with backspacing capability, afaik.

Hi @alexdunnjpl , none of the items in this ticket is really important.
The first one aims at replacing some ad hoc code with the off-the-self module tqdm of something else. The intention is to simplify the code. Maybe tqdm is not what we need... as you said I used it with interactive terminal or in julyter notebooks, I don't know if we can get something useful out of it for text logs.


NativeDriver leaks timer watchers

NativeDriver::$timerQueue has no way to free a watcher that has been cancelled until it times out.
It would be better to store that watcher data in a separate struct and only store watcher ids in $timerQueue so the leak gets smaller.
If you have a lot of promises with timeouts the leak can be quite noticeable!

We know and we'll fix it, probably by avoiding the SPL data structure completely.


Update Composer dependencies (2021-08-31-00-07)

Visual regression test passed!
View the visual regression test report


Minimum interval size

[x] I have searched the issues of this repository and believe that this is not a duplicate.

Reproduction link
https://g2.antv.vision/en/examples/bar/basic#time-bar
Steps to reproduce
At the moment, when using intervals (like in this example: https://g2.antv.vision/en/examples/bar/basic#time-bar), if the time window is relatively large and the intervals fairly short, they are not displayed on the chart at all.
To see this problem in action, change the first line of the example to be the following and you won't see the task0, task1 & task7 intervals:
{ task: 'task0', startTime: '2018-04-10 01:17:12', endTime: '2018-04-10 01:19:10', status: 0 },
We should probably have the ability to configure the minimum visible width of an interval.

Environment
Info

g2
4.0.15

System
OSX Big Sur

Browser
Chrome 86.0.4240.198 (Official Build) (x86_64)

Duplicate: https://github.com/antvis/G2/issues/3138


Headless Version

Hi,
I love the vision of this project and I think it could be something really special.
Is there a timeline for the headless version ? I would love to integrate my own SDF based 2D rendering backend. Personally I think a headless version which works on an internal bitmap and triggers external actions (audio) would be great as one could embed it into any kind of framework (Xcode, pixels etc).
Thanks

Hi @markusmoenig
Yes I think there is a legit use case for a headless version. There is no timeline because there's a lot of work to be done on this project and I only have so much spare time. The best way to make it happen is to help implement it yourself :)
Rust has a concept of features which can be used for conditional compilation to implement something like this: https://doc.rust-lang.org/cargo/reference/features.html
It should be possible to have a headless feature that compiles without the SDL dependency. Though then there's a question as to how the window/audio syscalls would behave.
If you do want to implement this, then let's discuss the implementation strategy. Smaller pull requests have a higher chance of getting merged.

Thanks for the answer.
I can only show how I did it for my retro RPG Creator Eldiron.com

The only really OS dependent part is the Window creation and events. For this I created a C API to handle the passing of the window buffer and user events.
I use pixels with winit to open a cross platform window and send the buffer and user events to the rust lib. This works cross platform and even on WASM (of course SDL2 could also be used for this).
For device support I simply create a native app which calls the API. For example I have an Xcode project which creates a Metal surface / window on iOS / tvOS and calls the C API. This allows me to distribute seamlessly to the AppStore (see here.
Everything else, like audio, file requesters etc. can be implemented in Rust via crates which only call OS functions and do not introduce any 3rd party libraries.

Of course this is a big change to your current SDL2 based design. I would be happy to implement the above for your project but I do not want to impose my view of things on you when SDL2 just works fine for you.

Of course this is a big change to your current SDL2 based design.

I'm not sure what you're suggesting, concretely, in terms of changes.
What seems easily possible is to have a Rust/Cargo feature to disable the UVM audio and window APIs and remove the SDL dependency. In order to plug a different API in there, you could then link uvm as a library and manually register your own "syscalls", see: https://github.com/maximecb/uvm/blob/04160058682ae49eaa3625f145a71ba7f3385f99/vm/src/sys/mod.rs#L167
If you were thinking of something else, can you explain what you had in mind?

No. This is what I meant. I just worried that it would be a nuisance for you to maintain this feature changes going forward.

And you said smaller PRs have a higher chance to get merged …

There's a CI workflow to run some basic tests so at the very least we could test that the headless version builds correctly.

Give me a few days, will work on the "headless" feature flag.
btw; my motivation. I am working on a language for 3D modeling / rendering / polygonization using SDFs at ForgedThoughts.com.
The language is based on Rhai (a Rust based scripting language). It's cool to build up the world objects but once you have procedural materials and textures and you have to jump into Rhai for these, things get very slow.
So I hope to be able to write a language for this which can stay 100% inside the byte code and can handle procedurals natively in a good speed.

Closing for now. Will revisit later.


Dim ETL Budget

Coverage increased (+0.3%) to 74.645% when pulling 82286ee498ed22a73e79011db9d349a50e94076e on jackyrusly:dev into 3bdb7e1dee3f542fbe5a632c2d5cf2cf335c427c on danliris:dev.


Is it doable with the simulated baxter in gazebo?

Hi Sir,
May I please ask if it is doable with the simulated Baxter in gazebo? Or I have to start with the real one? Thanks a lot.

Yes, it is possible to use a simulated baxter in gazebo


chore(docsV2): move content from docs to docsV2

SUMMARY
Mostly just copy-pasting contents of markdown files from docs to docsV2.
Pages:

Frequently Asked Questions
Contribution Guide
Roadmap
API
Security

NOTEWORTHY

Frontmatter
I removed some variables from the markdown pages frontmatter because Docusaurus doesn't need or use it
Ex in v1 docs/frequently-asked-questions:
---
name: Frequently Asked Questions
title: Frequently Asked Questions
route: /docs/frequently-asked-questions
---

name:

Docusaurus doesn't mention this variable and I couldn't find it used anywhere

route:

Docusaurus will set the route to be the file name by default and doesn't use this variable to change that
If we want the route to be different than the file name we would use id: different-name or slug: /different/path/to/file

I also added some variables to better match the v1 docs
Ex in v2 docs/frequently-asked-questions:
---
title: Frequently Asked Questions
hide_title: true
sidebar_position: 6
---

title/hide_title:

Docusaurus uses the title variable to set the content of the tab title in the sidebar and the title in the HTML head metadata
If you don't have a # Level 1 header on the page it will add one to the top of the page with the title as its content
v1 docs use ## Level 2 header for its headers and the size of the # Level 1 header is a lot bigger so hide_title: true will tell Docusaurus not to add the level 1 header.

sidebar_position:

Used to specify its tab position in the sidebar

API page using SwaggerUI and Antd Design
/docs/api.mdx
SwaggerUI:

Needs the swagger-ui-react dependency and that needs the buffer and stream dependencies. So I added them with yarn add
The buffer needs to be declared and added using import { Buffer } from "buffer"; global.Buffer = Buffer; So I added that to the file. It is global so it could be added to the topmost file but since it is only relevant to this file I felt it made sense.
Docusaurus styles clashed with some of SwaggerUIs so I added some CSS to css/custom.css to fix it and make it look like the v1 docs
I also pulled over some CSS styles from v1 docs that hide the authorization and "try it out" mode.
Added a TODO: to fix the styling issues that SwaggerUI has with Docusauruses dark mode. It seems the SwaggerUI styles are more specific than the dark mode ones so we might need to hunt them all down and create more specific styling. I can add a ticket to the board for this.
SwaggerUI needed the openapi.json superset data so I copied that over and added it to static/resources/openapi.json. The folder /static seemed to be the appropriate place and since it was in a resources folder in v1 docs I did the same here.

New dependencies and their version numbers for reference
"swagger-ui-react": "^4.1.2",
"buffer": "^6.0.3",
"stream": "^0.0.2",

Antd Design:
The v1 docs have the antd dependency and it's mostly used for creating the layout except for this Alert component on the API page. I wasn't sure if we will be using Antd because there is already a layout and since this is the only place in the markdown content that I could find one used, I decided to hold off on adding the dependency. I commented out the component and the import until we know if we want/need to add it.
For now, I just used the Infima info alert class that is included in Docusaurus because it matches the sites current styling
I did add Antd locally and its CSS styles wreck most of the Docusaurus dark mode styles. This also influenced my decision to hold off on adding the dependency because I think the dark mode is pretty cool.

BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
N/A
TESTING INSTRUCTIONS
Navigate to docs-v2 directory and run yarn and then yarn start to spin up the docs site
Open the docsV2 site and click through the sidebar pages for:

Frequently Asked Questions
Contribution Guide
Roadmap
API
Security

Compare to the current Superset documentation site
ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Required feature flags:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

Hey LGTM! Let me know when you add in the Apache Licensing on the top of the pages and they go green :)

We just need to update the rat-access files for the license check to work. So going to merge this in for now and once we goto master things will play nice since it will be under the docs directory.


jinja2-time offsets not working

It's not possible to use time offsets currently.
I tested with this example from: https://pypi.org/project/jinja2-time/
{% now 'utc' - 'minutes=11' %}
This gives an error Invalid template syntax when trying to save a watch.

Super interesting, can you reproduce it somehow using the command line?

I am not really sure what to test here exactly?

I think the jinja2-time Project is abandoned. The last commit was in 2021... please consider here to use an alternative.

I think the jinja2-time Project is abandoned. The last commit was in 2021... please consider here to use an alternative.

@x0tester0x and do you have an alternative? can you recommend an alternative?


Code refactoring - less code for the same feature

as in the subject

Codecov Report

Merging #276 into dev will increase coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##              dev     #276      +/-   ##
==========================================
+ Coverage   99.28%   99.29%   +<.01%
==========================================
  Files          80       80
  Lines        2813     2827      +14
==========================================
+ Hits         2793     2807      +14
  Misses         20       20

Impacted Files
Coverage Δ

pyecharts/base.py
100% <100%> (ø)
:arrow_up:

pyecharts/custom/page.py
100% <100%> (ø)
:arrow_up:

pyecharts/template.py
100% <100%> (ø)
:arrow_up:

test/test_template.py
100% <100%> (ø)
:arrow_up:

pyecharts/constants.py
100% <0%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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

@chfw 你这个还有什么需要补充的吗？

先并入吧 下一批什么你知道时候


Update "League of Legends" account deletion

Hi @xnumad  , I also made a PR request, but it seems this repo isn't maintained anymore. Luckily an active fork can be found here: https://github.com/jdm-contrib/jdm


Not restarting after HACS install

When installing HACS 0.14.1 after the initial reboot and adding the github token. HA will refuse to restart without giving any info in the log.
Just looks like the restart is not triggered at all.

Check your config (not in the UI)

Not specific enough.... I just di a fresh install added ahcs and same issue... only with 0.13.2.
there is no log file in my config folder

I copied only the hacs folder this time (into cusotom_components folder I added myself) and it is working now.....Before I was copying the whole custom_components folder....could that have been the problem?


How to report a security related issue

Hi. I found a security related issue. And I also read the security policy.

If you think the bug you found is likely to make Netty-based applications vulnerable to an attack,
please do not use our public issue tracker
but report it to the dedicated private Google Group.

But I can't access the dedicated private Google Group. How can I report?

Send an email there ... we will reply

Send an email there ... we will reply

New to using google group. Thank you.

New to using google group. Thank you.


Can't find variable: MGLOfflineStorage

Thanks for building this awesome plugin!
I followed the steps what they do during NativeScript 2.3 webinar by using Angular 2 typescript with NativeScript to build an ios app.
https://youtu.be/WQktviwAGb0?t=25m3s
I have defined the "mapbox", "token" variable and loadMap function in the imagesList.component.ts.
Once I run the app in the IOS simulator, I got this error:
JS: Angular 2 is running in the development mode. Call enableProdMode() to enable the production mode.
JS: ReferenceError: Can't find variable: MGLOfflineStorage
I have generated a token with everything ticked on mapbox.com after I registered an account.

That's strange.. did you try this with --watch / livesync enabled? If so can you do a tns run ios without those features?

Did you ever get this solved? I'm hitting the same bug.

@auser  This seems to be a build problem.  I would suggest you 'Nuke' your project
tns platfrom remove io
rm -rf lib/ node_modules/ hooks/

Remove your app from the device or emulator
Then build again with tns run ios
Once the build issues are resolved then I could go back to using livesync

Yep. I did that with both and it fixed it :)


fixed typo

@gregjhogan,
Thanks for having already signed the Contribution License Agreement. Your agreement was validated by Microsoft. We will now review your pull request.
Thanks,
Microsoft Pull Request Bot

@jimdial Hi Jim Please review these proposed changes. Thanks.

@gregjhogan Thanks for catching it! #sign-off


Support API 2020-03-02

Purpose of this PR is to improve and fix the Travis build, currently failing, and also run the tests against the latest Stripe version.
This forced me to make also some changes to the code.
Please read my comments within the PR.
I think it might bring some breaking changes.
I thought you were using different Stripe Api Keys to test against different API versions, but I see now that is to be able to run parallel builds. Do you want to keep that? I can re-introduce it.

👀


Repository specific pattern for branch names

Feature Description
In some environments a branch name pattern is used (like feature/* for all feature branches and bugfix/* for all bugfix branches).
In order to ensure everybody uses the pattern it'd be great to have a setting to configure a branch name regex that must match when pushing a new branch.
If the branch name doesn't match the regex, the push will be rejected.
This could be a configuration option per repository, with .* as default value.
I'd propose to add this to the Repo -> Settings -> Branches page - a mockup for this:

Screenshots
No response

If the proposal is accepted i'd be happy to create a PR for this.

Please have more discussion before sending PRs.
Maybe rules priority could resolve your problem. Let's say:
1 feature/** can be pushed by some people.
2 ** can not be pushed even if you have write permission.

Yes, that should already be possible with branch protection, although with a workaround as you need to invert the logic:
Add branch protection to allow pushes to branch names that match your wanted pattern.
Then, add a wildcard ** that disallows pushes to everything else.

Maybe this could be solved. One issue I currently see is that force push will not be allowed on feature branches (as branch protection doesn't allow force push). Or is there an option i currently can't see?


incompatible change in kairos 1.1.3

the kairosdb aggregator interface has changed sometime pre 1.1.3. Kise compiles with the interface
public interface Aggregator {
public DataPointGroup aggregate(DataPointGroup dpg);
public boolean canAggregate(String string);
}
whereas in 1.1.3 it actually is:
public interface Aggregator
{	DataPointGroup aggregate(DataPointGroup dataPointGroup);
boolean canAggregate(String groupType);
String getAggregatedGroupType(String groupType);
}
This leads to a AbstractMethodError when attempting to use it in kairos1.1.3.
The AvgAggregator in Kairos 1.1.3 implements this function as:
public String getAggregatedGroupType(String groupType)
{
return m_dataPointFactory.getGroupType();
}
which seems to make some sense (but I don't know exactly why I would want to change the aggregated group type).
My suggestion is to add this implementation (it seems reasonable), as otherwise it does not work at all.
Cheers,
Conrad

Hi, thanks for this report. 1.1.3 was a temporary release but now that 1.2 has been release I will update this plugin accordingly.


refactor(FX-4394): Reorganize artwork sections (artwork page redesigne phase 2)

This PR resolves []
Description

PR Checklist

[ ] I tested my changes on iOS / Android.
[ ] I added screenshots or videos to illustrate my changes.
[ ] I added Tests and Stories for my changes.
[ ] I added an app state migration.
[ ] I hid my changes behind a feature flag.
[ ] I have prefixed changes that need to be tested during a release QA with [NEEDS EXTERNAL QA] on the changelog.

To the reviewers 👀

[ ] I would like at least one of the reviewers to run this PR on the simulator or device.

Changelog updates
Changelog updates

Cross-platform user-facing changes

iOS user-facing changes

Android user-facing changes

Dev changes

Reorganize artwork sections (artwork page redesigne phase 2) - dimatretyak

Need help with something? Have a look at our docs, or get in touch with us.

Warnings

:warning:

We are trying to migrate away from moment towards luxon, but found moment imports in the following new files:

src/app/Scenes/Artwork/Components/ArtworkLotTimer.tsx

See docs.

  Generated by :no_entry_sign: dangerJS against 440d47638b66b0065bc5a4daccb34e91e4f710da


Does not seem to be working

after a quick look, they might have changed some element names, I have it enabled and still getting forwarded to login, and copy and paste the link does not have the otn replaced with otn-pub

Thanks for reporting the Issue :)
Also, Could you please provide me the download page URL?

No problem!
https://www.oracle.com/webapps/redirect/signon?nexturl=https://download.oracle.com/otn/java/jdk/11.0.12%2B8/f411702ca7704a54a79ead0c2e0942a3/jdk-11.0.12_linux-x64_bin.deb
is what I am getting from the browser, even with the plugin on/installed with tampermonkey(and verified its recognizing its supposed to be activated and working on that page, just does not seem to do what its intended to do)


Improve UX of errors to make sure users understand there has been an error and they should contact the Admin directly

The current Notification messages on top of the screen are not achieving their goal to let users know that something wrong has happened.
This creates confusion because users think that they have scheduled a meeting correctly, but in reality, that is not what happened.
We need to create a new message style (maybe a pop out) to show every time an error has occurred, we should also include help and contact information.
If we want to go a step further, maybe we can also create a new flow to trigger an email for the support team to let them know that someone was using our app and run into problems. So, then they could follow up with that person.

Scheduler app should follow the design provided by our UX designer and that will be used in all of the other apps: https://github.com/Azure/azure-sdk-tools/issues/4593


Bug: string being treated as regexp in regexp functions

Kùzu version
No response
What operating system are you using?
No response
What happened?
Testing ran:
-LOG RegexpExtractAllEmptyMatch
-STATEMENT Return REGEXP_REPLACE('\', '\\', 'o');
---- 1
[o]
The first parameter should be treated as a string, not a regexp. This currently causes parser exception in kuzu.
Are there known steps to reproduce?
No response

kuzu> Return REGEXP_REPLACE('\\', '\\\\\\\\', 'b');
┌──────────────────────────┐
│ REGEXP_REPLACE(\,\\\\,b) │
│ STRING                   │
├──────────────────────────┤
│ b                        │
└──────────────────────────┘
(1 tuple)
(1 column)
Time: 0.24ms (compiling), 0.30ms (executing)

Actually, You have to escape the character '' multiple times.

I see, still a bit confused:
In the documentation we want to treat the first parameter as a string, not a regexp:

Which means that '\\' is suppose to be treated as a string of two backlashes instead of one?


Add GitHub Actions maven build and test for main branch

Description

Adds GitHub Action in .github/workflows/maven.yml to build and test on pushes or pull_requests to main
Moves test data from src/test/resources to test-data and adds test-data as a maven-surefire-plugin additionalClasspathElement
Removes download-maven-plugin cacheDirectory overrides, moving cache directory to default .m2/respository/.cache/maven-download-plugin
Fixes TopLevelHandlerTests which alters the value of EDStatic.angularDegreeUnitsSet, affecting subsequent tests (test order is indeterminate)
Updates development/docker/Dockerfile (adds missing .mvn dir needed for errorprone, skips git-code-format hook installtion, and updates Java version to 21)

The test data move from src/test/resources to test-data was needed because many of the test cases require a specific data file to be the last file (latest mtime) in the matching set. maven-resources-plugin does not preserve mtime when copying test resources into target/test-classes, which was leading to files in test datasets having exactly the same mtime (the time at which maven-resources-plugin copied the files), and an indeterminate file was being selected as "latest". By using the test data in place via additionalClasspathElement, we preserve the mtimes and also avoid copying huge amounts of data into target/test-classes (win win).
Note: gha-test branch reference in .github/workflows/maven.yml can be deleted just before or after merge. It's just there to demonstrate working build/test.
Adds a simple GitHub Actions maven build and test for the main branch and pull requests against the main branch.
Type of change

[x] New feature (non-breaking change which adds functionality)

Checklist before requesting a review

[x] I have performed a self-review of my code
[x] My code follows the style guidelines of this project

There are four test failures in the GHA test, from these three test signatures:
EDDTableFromMultidimNcFilesTests#testTreatDimensionsAs
EDDTableFromInvalidCRAFilesTests#testBasic
EDDTableFromNcFilesTests#testOrderByMean2

Interestingly these all pass locally on my Linux machine with Java 21.
maven.test.redirectTestOutputToFile=true causes only failing test output to be logged to stdout, which makes the logs much more manageable.
download.cache.skip=true prevents two copies of the test data from existing in the test environment (the zipped cached version and the unzipped version). With both copies, the test server was exhausting disk space and needed pre-cleaning of unused tools bootstrapped by GitHub using https://github.com/marketplace/actions/free-disk-space-ubuntu. However, in the future we may want to let the Maven download plugin store the cache in its default of .m2/repository/.cache/maven-download-plugin so that it gets cached by the GitHub action runner between runs, in which case we'll probably need to perform some of the pre-cleaning to make room for both copies.

The EDDTableFromNCFilesTest#testOrderByMean2 failure was due to TopLevelHandlersTests changing the value of EDStatic.angularDegreeUnitsSet. The order of tests is non-determinate apparently is different on the GitHub action runner.
https://github.com/ERDDAP/erddap/blob/main/src/test/resources/datasets/topLevelHandlerTest.xml#L7
Fix that here:
https://github.com/srstsavage/erddap/commit/3ea5ec9743e401820beee9b890bba4474bb258d7
I'm reviewing the rest of the failures in the context of your PR to try to understand the source of failure better, will keep this PR a draft until they're resolved and the commits are cleaned up.

@ChrisJohnNOAA At long last this should be ready to go. I updated the description with notes about additional changes needed to make the tests pass (most importantly moving test data from src/test/resources to test-data). I expect that this might eliminate some of the test flakiness that we've been working around with adaptive expected strings.

One other note: the total cache GitHub actions cache size for a repo is 10GB. The size of the cached data payload (everything in ~/.m2/repository which includes all dependency jars and download-maven-plugin cache) is just over 5GB. The cache is keyed by a hash of pom.xml. When the cache is too full, GitHub deletes the oldest cache payload to make room. What this means is that we'll only have one cached payload (or two if the size drops under 5GB), but that should be fine because a newer cache payload will be built whenever the pom changes and subsequent builds using that pom will use the new cache.

@ChrisJohnNOAA At long last this should be ready to go. I updated the description with notes about additional changes needed to make the tests pass (most importantly moving test data from src/test/resources to test-data). I expect that this might eliminate some of the test flakiness that we've been working around with adaptive expected strings.

How is using test-data different that it will eliminate the flakiness?

I believe developers need to clear the /data/ directory because of the change to src/test/resources/ -> test-data. I had a lot of test failures initially trying to run tests on these changes.

Ah yeah, good point. Do you think we need to handle deletion of the previous src/test/resources/{data,largeFiles,largePoints,largeSatellite} through an ant task? Or exclude those directories from testResources? Or just try to communicate to developers to clear out those files?

How is using test-data different that it will eliminate the flakiness?

This is more of a speculation and I haven't tested, but it should make any test more stable where the expected output derives from the most recent file (largest mtime) in the dataset and there's variability in the tested fields through the dataset files. If there are cases where we previously were adding some variability to the expected test strings to accommodate this, we may have consistent results now.

Added a check for test data directories in src/test/resources using the enforcer plugin, seems to work well.
https://github.com/ERDDAP/erddap/pull/208/commits/a42bc99d2a9ea758a2ba4514e57fe85d6d45b10a
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin:3.5.0:enforce (no-test-data-in-src-test-resources) on project ERDDAP:
[ERROR] Rule 0: org.apache.maven.enforcer.rules.files.RequireFilesDontExist failed with message:
[ERROR] Test data directories should be removed from src/test/resources
[ERROR] Some files should not exist:
[ERROR] /home/shane/src/erddap/src/test/resources/data
[ERROR] /home/shane/src/erddap/src/test/resources/largeFiles
[ERROR] /home/shane/src/erddap/src/test/resources/largePoints
[ERROR] /home/shane/src/erddap/src/test/resources/largeSatellite

Added a check for test data directories in src/test/resources using the enforcer plugin, seems to work well.
a42bc99
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin:3.5.0:enforce (no-test-data-in-src-test-resources) on project ERDDAP:
[ERROR] Rule 0: org.apache.maven.enforcer.rules.files.RequireFilesDontExist failed with message:
[ERROR] Test data directories should be removed from src/test/resources
[ERROR] Some files should not exist:
[ERROR] /home/shane/src/erddap/src/test/resources/data
[ERROR] /home/shane/src/erddap/src/test/resources/largeFiles
[ERROR] /home/shane/src/erddap/src/test/resources/largePoints
[ERROR] /home/shane/src/erddap/src/test/resources/largeSatellite

I was actually talking about the erddap/data/ directory that is used to cache data for the server (one of the things that's cached is file paths to where the data was- I've been wondering if it should more gracefully handle moves like this).
Related to this. I think the paths that are generated by EDDTestDataset need to get updated with the move to test-data. I can look more into that tomorrow.

I was actually talking about the erddap/data/ directory that is used to cache data for the server (one of the things that's cached is file paths to where the data was- I've been wondering if it should more gracefully handle moves like this).

Ah, gotcha. Seems like we'd want the bigParentDirectory for testing to be transient, right? Should we move that into ./target so it can be cleaned up between runs with mvn clean? This two line change does that and seems to work (all tests pass using mvn clean test anyway).
diff --git a/development/test/setup.xml b/development/test/setup.xml
index e2867023..473da005 100644
--- a/development/test/setup.xml
+++ b/development/test/setup.xml
@@ -19,7 +19,7 @@ Subdirectories that will be created by ERDDAP are:
 The ERDDAP log file (log.txt) will be put in this directory.
 At ERD, we use '/u00/cwatch/erddap/' for releases.
 -->
-<bigParentDirectory>data</bigParentDirectory>
+<bigParentDirectory>target/test-erddapData</bigParentDirectory>

 <!-- baseUrl is the start of the public url, to which "/erddap"
 is appended. For example:
diff --git a/pom.xml b/pom.xml
index cb12fa31..41472477 100644
--- a/pom.xml
+++ b/pom.xml
@@ -235,7 +235,7 @@
                         </goals>
                         <configuration>
                             <target>
-                                <mkdir dir="${project.basedir}/data"/>
+                                <mkdir dir="${project.build.directory}/test-erddapData"/>
                             </target>
                         </configuration>
                     </execution>

Related to this. I think the paths that are generated by EDDTestDataset need to get updated with the move to test-data. I can look more into that tomorrow.

It looks like all of the places that generate fileDir in EDDTestDataset use getResource(), and since we put ./test-data on the test classpath using additionalClasspathElement things seem to work normally after the move.

I made a pull request against your branch to allow the integration tests (mvn verify) to work with the moved test data: https://github.com/srstsavage/erddap/pull/5

Thanks, merged that! Any thoughts on if we should be running mvn verify in the automated build instead of mvn test? mvn test/surefire completes in 5 - 10 minutes on the runner and locally for me. mvn verify/failsure takes over an hour locally. Maybe we run mvn test for PRs and also run a scheduled daily or weekly mvn verify? Or since it's running on a remote runner maybe it's fine to have the PR build/test take over an hour? Or maybe even run both so that we have quick feedback on failing surefire tests but also eventual reassurance of passing failsafe tests?


jsonMember could not resolve detected property constructor at runtime.

I am using TypedJSON in my Angular 8 app.
Below is how my model looks like
import  'reflect-metadata';
import { jsonObject, jsonMember } from "typedjson";

@jsonObject
export class APIResponse {
@jsonMember
HttpStatusCode?: number;
@jsonMember
Message?: string;
@jsonMember
Data?: any;
}

But this is throwing the below error for each property.

jsonMember on APIResponse.HttpStatusCode: could not resolve detected property constructor at runtime.

Going through the Github link, I modified the above class as
@jsonObject
export class APIResponse {
@jsonMember({ constructor: Number })
HttpStatusCode?: number;
@jsonMember({ constructor: String})
Message?: string;
@jsonMember({ constructor: Object})
Data?: any;

}
But then it throws the error as

Right-hand side of 'instanceof' is not an object
at isSubtypeOf (typedjson.js:166)

How to get rid of this error?
Thanks!

Hey Chetankhargone,
Are you sure that this is the complete case that is causing you trouble? I tried different inputs and both examples seem to work fine for me.
Maybe it is something similar to https://github.com/JohnWeisz/TypedJSON/issues/108 ?

Hello @Neos3452 ,
Thanks for the follow-up. It would be really great if you could please share the examples that you tried.
Mine is fresh Angular 8 app. Below are relevant dependencies
    "@angular/common": "~8.2.3",     "@angular/compiler": "~8.2.3",     "@angular/core": "~8.2.3",     "reflect-metadata": "^0.1.13",     "rxjs": "~6.4.0",     "tslib": "^1.10.0",     "typedjson": "^1.4.0",     "zone.js": "~0.9.1"

I actually did not include angular in the examples I tried. I took your classes with the same annotations and tried to parse/stringify some objects. That’s why I mentioned another issue, because it was also a problem with typedjson in angular 8.
Could you create a sample repo illustrating the problem?

I am having absolutely the same problem with typedjson in Angular 8 (I had no problem with typedjson in Angular 7 before). You can check out the sample repo from here: https://github.com/nam-vuhoang/test-typed-json.
I added this line to my polyfills.ts as recommended in #108 , but it didn't help:
import 'core-js/proposals/reflect-metadata';

Just in case, if you want to compare with Angular 7 package.json:
  "dependencies": {     "@angular/animations": "^7.2.15",     "@angular/cdk": "~7.3.7",     "@angular/common": "^7.2.15",     "@angular/compiler": "^7.2.15",     "@angular/core": "^7.2.15",     "@angular/forms": "^7.2.15",     "@angular/material": "^7.3.7",     "@angular/platform-browser": "^7.2.15",     "@angular/platform-browser-dynamic": "^7.2.15",     "@angular/router": "^7.2.15",     "angular2-cookie-law": "^6.2.0",     "angular2-multiselect-dropdown": "^4.6.3",     "chart.js": "^2.8.0",     "color-convert": "^2.0.1",     "colors": "^1.3.3",     "core-js": "^2.6.5",     "fast-json-stable-stringify": "^2.0.0",     "hammerjs": "^2.0.8",     "ngx-avatar": "^3.7.0",     "ngx-lightbox": "^1.2.0",     "reflect-metadata": "^0.1.13",     "rxjs": "~6.3.3",     "tslib": "^1.10.0",     "typed-countries": "^1.1.1",     "typedjson": "^1.4.0",     "zone.js": "~0.8.26"   },   "devDependencies": {     "@angular-devkit/build-angular": "^0.13.9",     "@angular/cli": "^7.3.9",     "@angular/compiler-cli": "^7.2.15",     "@angular/language-service": "^7.2.15",     "@types/jasmine": "~2.8.8",     "@types/jasminewd2": "~2.0.3",     "@types/node": "^8.10.47",     "codelyzer": "~4.5.0",     "jasmine-core": "~2.99.1",     "jasmine-spec-reporter": "~4.2.1",     "karma": "~4.0.0",     "karma-chrome-launcher": "~2.2.0",     "karma-coverage-istanbul-reporter": "^2.0.6",     "karma-jasmine": "~1.1.2",     "karma-jasmine-html-reporter": "^0.2.2",     "protractor": "~5.4.0",     "ts-node": "~7.0.0",     "tslint": "~5.11.0",     "typescript": "~3.2.2"   }

Hi, here is some additional info for you to consider and find out the root cause:
In Angular 8.2.11, typescript 3.5.3, core-js 3.2.1 is automatically used (because it is defined as a dependency in @angular-devkit). Unlike its previous versions, core-js@3 contains core-js/proposals/reflect-metadata, so no matter if reflect-metadata is installed separately or not, the Reflect class from core-js is always used. And this method  Reflect.getMetadata("design:type", target, _propKey) (used in typedjson.js in typedjson^1.5.0, line 1533) for some reason always returns undefined, when target is CategoryEntity  and _propKey is "name" (see the example above).
For comparison, with Angular 7, typesscript 3.2.2, core-js 2.6.5 (doesn't contain reflect-metadata!!), reflect-metadata 0.1.13, the function mentioned above returns function String().

Hey @nam-vuhoang, thanks a lot for the repo and analysis it really helped me to quickly narrow down the problem. It seems Angular 8 has a different configuration than before that needs an adjustment for TypedJSON. I created a PR for your test repo so you can test it your self (should work with ng serve and in --prod). I also updated the readme.

It works perfectly now! Thank you very much! :)

Hi @Neos3452 , there is error "object doesn't support property or method 'includes'" when running in IE, because IE doesn't support Array.includes (see documentation here: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes).
As suggested here: https://stackoverflow.com/questions/56956996/angular-8-runtime-error-after-core-js-upgrade, we need to add to polyfills.ts:
import 'core-js/es';
import 'core-js/proposals/reflect-metadata';

And what's very important, 'core-js/es' must be imported before importing 'zone.js' in Angular. See modified polyfills.ts here: https://github.com/nam-vuhoang/test-typed-json/blob/master/src/polyfills.ts.
Please update readme. :)

I actually just removed Array.includes() which is not strictly necessary. Hope this helps :)


Missing doc update after PR 159

Description
The documentation was not fully updated in #159. This page remains to be updated with the two new parameters: https://eiffel-community.github.io/eiffel-remrem-generate/serviceUsage.html
Motivation
To get correct documentation
Exemplification

Benefits
Clarity
Possible Drawbacks

Description
The documentation was not fully updated in #159. This page remains to be updated with the two new parameters: https://eiffel-community.github.io/eiffel-remrem-generate/serviceUsage.html
Motivation
To get correct documentation
Exemplification
Benefits
Clarity
Possible Drawbacks

We have updated the documentation on master branch as part of code changes itself
can you please check.
The link you shared from gh-pages branch

You mean this page: https://github.com/eiffel-community/eiffel-remrem-generate/blob/master/wiki/markdown/usage/service.md ?
If so, yes that seems to be fine. But please remove the https://eiffel-community.github.io/eiffel-remrem-generate/serviceUsage.html page since it is not up-to-date

Yes, we kept the github pages just for some templates that can be downloaded. Will try to remove the gh-pages soon.


self.s.open() gives an error "ERROR: Port is already open."

self.s.open() gives an error "ERROR: Port is already open.":
$ sudo ./serio.py -s /home/zoobab/memo -d /tmp/memo -p /dev/vmodem1
ERROR: Port is already open.

If I comment the line 19 containing self.s.open(), it works fine.
See also this discussion:
https://github.com/turtlebot/turtlebot_create/issues/17

Fixed, thanks!

I am also linking it from this article:
http://www.zoobab.com/esp8266-serial2wifi-bridge#toc5


Support git-hooks

We need to support git hooks in order to forbid creating branches that do not start with feature//bugfix//hotfix/. Do something like that:
#!/usr/bin/env bash

branch_name="$(git rev-parse --abbrev-ref HEAD)"
branch_pattern="^(feature|bugfix|hotfix)/.*$"
error_message="Your branch name doesn't match the pattern $branch_pattern. Please correct it before committing."

if [[ ! $branch_name =~ $branch_pattern ]]
then
  echo "$error_message"
  exit 1
fi

exit 0

We also might want to set a pattern for commit message. This can be done with:
#!/usr/bin/env bash

commit_pattern="(Merge (remote-tracking )?branch|### What's done:)"
error_msg="Your commit message doesn't match the pattern $commit_pattern. Please fix it."

if [[ ! $( cat "$1" ) =~ $commit_pattern ]]
then
    echo "$error_msg"
    exit 1
fi

exit 0

https://habr.com/ru/post/302932/
Here is something that might work

@sanyavertolet Here it is suggested to use hooks manually, which is inconvenient. In turn, it is impossible to make a custom config that will be automatically applied due to security policy. Therefore, the easiest way has been and will be either a script that will edit the config in the local repository, or manually write "git config core.hooksPath .git-hooks" what will work as well.


Actions: Seamless management of GitHub-hosted & self-hosted runners

Summary
GitHub Actions administrators now have a single management plane to look after all of the runners their teams are using in GitHub. This new management plane provides new information such as queue history, average wait time and aggregated runner data so that administrators can proactively add new runner types or capacity to get ahead of their developers having issues. This experience seamlessly brings together GitHub hosted and self hosted runners- providing a single place for administrators to empower their developers to succeed.
Intended Outcome
GitHub provides a single experience that empowers administrators to view, understand and manage their teams access to runners regardless of where they are running. Admins can do this in a way that lets them set the right policies and guard rails to keep developers safe, while avoiding interrupting them.
How will it work?
We will provide runner groups for 'all of GitHub runners', review how labels work to simplify them and provide experiences to understand job history on pools of machines -regardless of where those pools are running. This will all extend on what we have today for runner groups, which empowers administrators to provide the right Actions runners resources to the right repos, with the right guard rails in place.

We shipped the ability to target runner groups as a runs-on target and to scope runs-on to a label and a runner group. Given the measurable impact it had on the management experience for hosted and self-hosted runners, we are prioritizing other items at this time and removing this from the public roadmap.


Fail to install

Trying to install the new ACAP (and also the older version) on two different cameras and getting the same error message "fail to install"
install error log file .docx
The Axis log file tells me:

Successfully verified signature
Unsigned package, skipping signature verification
Status of Tailscale VPN not found. Default to not running.
Application Tailscale VPN is not installed.

Hi, What model is your camera?
On Tue, 28 Nov 2023 at 15:05, merasmus-001 @.***> wrote:

Trying to install the new ACAP (and also the older version) on two
different cameras and getting the same error message "fail to install"
install error log file .docx
https://github.com/Mo3he/Axis_Cam_Tailscale/files/13488935/install.error.log.file.docx
The Axis log file tells me:

Successfully verified signature
Unsigned package, skipping signature verification
Status of Tailscale VPN not found. Default to not running.
Application Tailscale VPN is not installed.

—
Reply to this email directly, view it on GitHub
https://github.com/Mo3he/Axis_Cam_Tailscale/issues/8, or unsubscribe
https://github.com/notifications/unsubscribe-auth/A2UGJUZKYJMNYQCZMPHZDF3YGXVRFAVCNFSM6AAAAAA752DUAGVHI2DSMVQWIX3LMV43ASLTON2WKOZSGAYTINJRHE2DONQ
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

P3245-LVE
Both of them

and your firmware version please.
On Tue, 28 Nov 2023 at 15:33, merasmus-001 @.***> wrote:

P3245-LVE
Both of them
—
Reply to this email directly, view it on GitHub
https://github.com/Mo3he/Axis_Cam_Tailscale/issues/8#issuecomment-1829961676,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A2UGJU3WZXXJWHHBFITPKCTYGXY2ZAVCNFSM6AAAAAA752DUAGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMRZHE3DCNRXGY
.
You are receiving this because you commented.Message ID:
@.***>

I tested Tailscale_VPN_1_54_0_armv7hf.eap on a P3245 running 11.7.61 and it installs and runs fine.

Both are running 11.6.94

I just got the same error.  I tried installing Tailscale_VPN_1_56_1_armv7hf.eap on a Q1700-LE running the newest 11.8.61 firmware.  Do I need to downgrade to 11.7.61 as that is the last one that has been successful working?

This error is usually caused by trying to install the wrong architecture version of the ACAP.


all scope not working

Hi,
I want to use node-db-migrate to apply app version numbers to the database.
To do this I would like to use the scoping feature.
For example create a new migration file in the scope 1.0.0.
When I run db-migrate up:1.0.0, this works fine. But db-migrate up:all has no effect whatsoever.
I'm using v0.10.0-beta.4 of node-db-migrate.
The docs say that up:all should be supported.
There is only 1 new commit on the 0.10.x branch since the beta-4 release.
That commit has nothing to do with this feature.
Any clue what might be wrong?

do you receive any error message? trying to reproduce this now

Found the bug, fix is going to be published under beta.5

waiting for ci now

published

Amazing!
I'll try the new release later tonight.
Thank you very much for the quick reply andere fix!


separate cache directories

need separate cache directories so that the image cache directory can be safely served directly. this will increase image load time by eliminating the need to track image requests.

dir.cache.image – generated images
dir.cache.page – generated pages
dir.cache.search – text files for wiki search

actually forget making so many new options like that. let's just make subdirectories within dir.cache with the names image, page, and search. this would be similar to the pseudocategory directories.

ended up going with just image and page subdirectories. the main idea is that the image cache directory can be served directly.


mpi scripts for visualization

yes, done, have a look at the updated submit.sh and README

Looks fantastic!


Add more detail for AddHttpClient().

Fixes #16498.
I didn't think it was necessary to be explicit in warning against re-registering e.g. GitHubService, so I just went with a little more explanation of what happens behind the scenes, at a basic level.

Nice work!


How to handle migration from Micro 5 to Micro 6 ?

When upgrading from Micro 5 to Micro 6, configuration might break due to changes made within Micro.
Currently known

ssh root logins are disabled in Micro 6
network interface names change from eth to ens

We need to take a decision how to handle these changes. We can either adapt configurations (to make the migration transparent) or document the changes (asking users to manually adapt their configs).

Without understanding the full details here, so takes this with a pinch of salt - there's usually a couple of different approaches we could take and the team would probably be best placed on the decision based on what you know to be an  ideal user experience and how much work this is vs. where this is in the priority lane for us.
So my Q: What would happen if we wrote the docs to document changes and what users need to do; and then waited on adapting the configs >> based on how many hits we get on the docs pages and/or user/clients complaining we could invest in it (do we have stats on docs?).
I.e. is it easier for us to write clear docs or to adapt configs (I don't know how much time-investment either of this is for the team)?

I.e. is it easier for us to write clear docs or to adapt configs (I don't know how much time-investment either of this is for the team)?

One of the main issue is that some changes are  on SLMicro side which is not related to Elemental and changes can happened "anytime" (I mean outside of Elemental development). So at least a link to SLMicro official changes can be added (if such thing exists).
Also a recent version of Elemental operator is able to install OS images based on SLMicro6 (new ones) but also on SLMicro5 (previous stable version) but the config files could be different in that case, so this need to be carefully documented.
So IMHO clear documentation looks "easier" to do.


Create new Nuiqsut data inputs

For this we need an initial point to start from (in lat/lon).

This issue is no longer relevant. I linked to it from the wiki page on input generation for ease of locating details.


feat(nexus/resize): implement ResourceResize for nexus

bors try

try
Build failed:

continuous-integration/jenkins/branch

Dataplane image not available yet with changes merged from today it seems. gRPC fails with Unimplemented

bors cancel

bors try

@tiagolobocastro Comments are addressed, ptal if we are good to go.

bors merge


[Accessibility] Consider using different audio cues for action triggered and applied

Type: Feature Request
CC @meganrogge
Current Issue
"Code Action Request Triggered" and "Code Action Applied" use the same audio cues as "Chat Request Sent"and "Chat Response"
When you trigger either "Fix using Copilot" or "Explain using Copilot", you would hear "Chat Response" twice: the first one for action applied and the second one for when the Chat response arrives.
This is very confusing for those who rely on audio cues because the first "Chat Response" audio cue could signal that the response is ready to review, which is not.
Another issue that I have found when using this with the Copilot Vision extension is that you hear the "Chat Request Sent" audio cue as soon as you trigger "Refine alt text" action even before you type any query. This is because the action audio gets triggered when the action is fired. This may cause some cognitive confusion among blind people, making them misunderstand that any Chat request has been already sent.
Possible Solutions
Option 1
You could use different audio cues for action triggered and applied from the ones already taken by Chat audio cues.
Option 2
Or, you could mute the action audio cues when Chat-related actions are triggered and applied so to make the Chat audio cues are played only.
VS Code version: Code - Insiders 1.96.0-insider (399779942db4d7ab1bd6f6ae976482d0020f10ca, 2024-11-13T05:04:32.098Z)
OS version: Windows_NT x64 10.0.22631
Modes:

@jooyoungseo what do you think of using the voice recording stopped/started sounds for now?
Our sound designer is out at the moment, or would probably ask him for new ones.

@meganrogge voice recording stopped/started are better than Chat request sound ATM.

cc @afre100 we'll want to have unique sounds eventually

To verify:

install the Copilot with Vision preview extension https://marketplace.visualstudio.com/items?itemName=ms-vscode.vscode-copilot-vision
enable screen reader mode
enable the code action applied and code action triggered audio cues
in a markdown document, go to an image tag, trigger the code action to generate alt text
verify you hear the sound for when it's triggered and when it's been applied

I get "Invalid API key" when I try to give my Open AI API after clicking the alt text code action. Any other way to verify this?

Hmm, looks like I hit this. I'll see if I can use my azure credit and get an API key there.

Created https://github.com/microsoft/vscode-copilot-vision/pull/85 to spare anyone else that pain.

@jooyoungseo @meganrogge Thanks for this feedback, all! I'll definitely look into this and keep you posted. Just fyi, i return from leave late Dec/early Jan (not early Dec, as previously thought)

Reopening so we get some unique sounds


Use correct version in README

There is no v1.2, see https://github.com/marketplace/actions/setup-anchor

Thanks!


Type casting breaks the validation of element types in the array

Bug Report
🔎 Search Terms

type casting

🕗 Version & Regression Information
4.6.0-dev.20211130
⏯ Playground Link
Playground link with relevant code
💻 Code
const array: { property: number }[] = [
  {property: 1},
  {property: 1} as any, // <-- Type casting
  'text', // <-- No errors, but it's wrong
];

🙁 Actual behavior
No errors.
🙂 Expected behavior
Should show errors.

Duplicate of #19541. Used search terms: array any in:title


Bug: no console output while doing things

:tada: This issue has been resolved in version 1.1.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


convert xarray dataset to local timezone

Can I convert an xarray dataset to a different timezone?
I have tried using similar steps that I would use in pandas to convert from UTC to 'Australia/Sydney'. I have pasted below some of these steps, along with a small section of the dataset I am working with.
Any feedback will be greatly appreciated.
ds = xray.open_mfdataset('/DATA/WRF///*T_SFC.nc')
import pytz
ds_utc = ds['time'].tz_localize(pytz.UTC)
au_tz = pytz.timezone('Australia/Sydney')
ds_local = ds_utc.astimezone(au_tz)
<xray.Dataset>
Dimensions:    (latitude: 106, longitude: 193, time: 17520)
Coordinates:

latitude   (latitude) float32 -39.2 -39.1495 -39.099 -39.0486 -38.9981 ...
longitude  (longitude) float32 140.8 140.848 140.896 140.944 140.992 ...
time       (time) datetime64[ns] 2009-01-01 2009-01-01T01:00:00 ...

Data variables:
T_SFC      (time, latitude, longitude) float64 13.83 13.86 13.89 13.92 ...
Attributes:
creationTime:<PHONE_NUMBER>
creationTimeString: Sun May 17 21:18:32 PDT 2015
Conventions: COARDS

Do any of the tz_localize or astimezone lines work? If so, that would surprise me. We do not have any methods related to timezone support in xarray.
That said, it should probably work (not tested) to manipulate ds['time'].to_index() as a pandas Index and then save it back in an xarray Dataset.

Thank you  - ds['time'].to_index() seems to work but I am having trouble replacing the UTC time in the ds with the converted local time in my new ds. I am using .update() because I want to override the original time. However, the time does not seem to have been changed following this step.
import pandas as pd
import xray
import pytz
ds = xray.open_mfdataset('/DATA/WRF///*T_SFC.nc')
time=ds['time'].to_index()
time_utc = time.tz_localize(pytz.UTC)
au_tz = pytz.timezone('Australia/Sydney')
time_local = time_utc.tz_convert(au_tz)
#convert pandas datetimeindex to a series and then series to xarray dataarray and then to xray dataset
local_series=time_local.to_series()
local_da=xray.DataArray.from_series(local_series)
local_ds=xray.DataArray.to_dataset(local_da)
#create a new dataset that replaces/updates the UTC time in the original dataset with the local time from the newly created dataset (in pandas)
new_ds=ds.update(local_ds)


⚠ Avatar API Endpoint has degraded performance

In eb7fefb, Avatar API Endpoint (https://avatar.roblox.com/v1/avatar-rules) experienced degraded performance:

HTTP code: 200
Response time: 1271 ms

Resolved: Avatar API Endpoint performance has improved in ab6706b after 626 days, 2 hours, 2 minutes.


feat(TDI-40505): integrate Marketo into components-maven-repo

What is the current behavior? (You can also link to an open issue here)
https://jira.talendforge.org/browse/TDI-40505
What is the new behavior?
Integrate Marketo into components-maven-repo
Please check if the PR fulfills these requirements

[X] The commit message follows Talend standard
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features) ?
[ ] The code coverage on new code >75%
[ ] The new code does not introduce new technical issues (sonar / eslint)

What kind of change does this PR introduce?

[ ] Bugfix
[X] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build / CI related changes
[ ] Other... Please describe:

Does this PR introduce a breaking change?

[ ] Yes
[X] No

If this PR contains a breaking change, please describe the impact and migration path for existing applications: ...
Other information:

Pull request test result: success :star:
Sonar results

Pull request test result: success :star:
Sonar results


Awesomium

SteamDB app page links to a few games using this
https://steamdb.info/app/4000/
https://steamdb.info/app/815940/
https://steamdb.info/app/214950/
https://steamdb.info/app/298300/
https://steamdb.info/app/459160/
https://steamdb.info/app/2009390/
https://steamdb.info/app/602510/
https://steamdb.info/app/266430/
https://steamdb.info/app/282440/
https://steamdb.info/app/1377580/
https://steamdb.info/app/34330/
https://steamdb.info/app/808290/
https://steamdb.info/app/712100/
Brief explanation of the change
Find Awesomium by it's exe and dll.

Pull this.

There's no point in flooding with "pull this", it will be looked at when we have time.


Fixed overflowing CSS issue

I was just starting with the Solana project and found these tiny issues 😄 Finally my first contribution to open source! hope my contribution will play a big role in the future...
(this one is updated pull request as previous was overwritten by me 😁)

Almost there! Please undo the package-lock.json and .gitignore changes too!

Almost there! Please undo the package-lock.json and .gitignore changes too!

fixed please check

Beautiful!
Thank you so much, congrats on becoming an open-sourceror!


Not compiling c++ file on pressing F5

Prerequisites

[ ] Put an X between the brackets on this line if you have done all of the following:

Reproduced the problem in Safe Mode: http://flight-manual.atom.io/hacking-atom/sections/debugging/#using-safe-mode
Followed all applicable steps in the debugging guide: http://flight-manual.atom.io/hacking-atom/sections/debugging/
Checked the FAQs on the message board for common solutions: https://discuss.atom.io/c/faq
Checked that your issue isn't already filed: https://github.com/issues?utf8=✓&q=is%3Aissue+user%3Aatom
Checked that there is not already an Atom package that provides the described functionality: https://atom.io/packages

Description
I have installed Atom recently and configured it as per the specified instructions. g++ is installed in /usr/bin/ directory. But when I press F5 to compile my c++ file, its just not responding.
Steps to Reproduce

[First Step]
[Second Step]
[and so on...]

Expected behavior: Compile and run program
Actual behavior: No action. No compilation or execution
Reproduces how often: Everytime
Versions
You can get this information from copy and pasting the output of atom --version and apm --version from the command line. Also, please include the OS and what version of the OS you're running.
Additional Information
Any additional information, configuration or data that might be necessary to reproduce the issue.

Thank you for reaching out!
Because this doesn't reproduce in Safe Mode, it would seem that what you're reporting isn't being caused by Atom itself but by a community package you have installed. It may be that there is still a bug in Atom. If so, we'll need the maintainer of the package that is causing the problem to help track that down.
What we need you to do is to figure out what community package is causing the problem. Some people have reported that using the package-cop package has been helpful, you may want to try it. Once you've determined what package is causing the problem, The Atom FAQ has information on how to contact the maintainers of any Atom community package or theme so you can file this issue there.


Fix docs bug with Anisble inventory

At this section of the guide we have been using custom/inventory.yml
so we should continue using it.
As a pull request owner and reviewers, I checked that:

[x] Appropriate testing is done and actually running

/approve


API: Get members of a team as admin

Gitea version (or commit ref): 1.11.0+rc2
Git version: n/a
Operating system: Docker
Database (use [x]):

[ ] PostgreSQL
[x] MySQL
[ ] MSSQL
[ ] SQLite

Can you reproduce the bug at https://try.gitea.io:

[ ] Yes (provide example URL)
[ ] No
[x] Not relevant

Log gist: n/a

Description
If I use /api/v1/orgs/#ORGNAME#/teams to get the teams and then take the ID of the team and then use /api/v1/teams/#ID#/members to get the members, I get a 404 error message.
I'm not member of this org/team, but i have admin privileges!

Still valid


Detectability: Heartbeat interval should match app

Currently, the bot performs a heartbeat whenever work_on_cell is complete, which is unlikely to be the same interval as the retail app.

So whats the interval of the retail app?

When standing still, it only seems to update when a Pokemon expires or after you've interacted with something (caught a Pokemon, spun a stop, tapped on a gym). When moving around, it appears as though it's part of the get_map_objects call (probably to batch the calls).
More investigation is needed though, since this is mostly just me watching for when the spinner happens and noticing when my egg hatch notification comes up (which is part of the heartbeat in the app).
This issue should track using the MITM proxy on the app to observe exactly what the app does and its implementation. It's also possible that someone on /r/pokemongodev or /r/pokemongobotting has done this research already.

PR are welcome. Closing this for now.
/closed


Support custom rule as ESM modules

Hello! :wave:
Thanks for maintaining markdownlint, this issue is a feature request to support custom rules using ESM modules.
Currently, all custom rules must be written with CommonJS.
Example, this is not working:
import { filterTokens, addError } from 'markdownlint/helpers/helpers.js'

const rule = {
  names: ['no-dead-relative-links'],
  description: 'No dead relative links',
  tags: ['links'],
  function: (params, onError) => {
    // code of the rule
  }
}

export default rule

When executing markdownlint-cli2 with .markdownlint-cli2.jsonc:
{
  "config": {
    "default": true,
    "no-dead-relative-links": true
  },
  "globs": ["**/*.{md,mdx}"],
  "ignores": ["**/node_modules"],
  "customRules": ["./tools/no-dead-relative-links.js"]
}

It throws:
markdownlint-cli2 v0.4.0 (markdownlint v0.25.1)
Finding: **/*.{md,mdx} !**/node_modules
Error [ERR_REQUIRE_ESM]: require() of ES Module /home/divlo/Documents/workspace/tools/no-dead-relative-links.js from /home/divlo/Documents/workspace/node_modules/markdownlint-cli2/markdownlint-cli2.js not supported.
Instead change the require of no-dead-relative-links.js in /home/divlo/Documents/workspace/node_modules/markdownlint-cli2/markdownlint-cli2.js to a dynamic import() which is available in all CommonJS modules.
    at resolveAndRequire (/home/divlo/Documents/workspace/node_modules/markdownlint-cli2/resolve-and-require.js:16:10)
    at requireResolve (/home/divlo/Documents/workspace/node_modules/markdownlint-cli2/markdownlint-cli2.js:70:12)
    at /home/divlo/Documents/workspace/node_modules/markdownlint-cli2/markdownlint-cli2.js:77:36
    at Array.map (<anonymous>)
    at requireIds (/home/divlo/Documents/workspace/node_modules/markdownlint-cli2/markdownlint-cli2.js:77:24)
    at createDirInfos (/home/divlo/Documents/workspace/node_modules/markdownlint-cli2/markdownlint-cli2.js:497:11)
    at async main (/home/divlo/Documents/workspace/node_modules/markdownlint-cli2/markdownlint-cli2.js:784:5)
    at async /home/divlo/Documents/workspace/node_modules/markdownlint-cli2/markdownlint-cli2.js:832:26 {
  code: 'ERR_REQUIRE_ESM'
}

This should be easily fixable, but it could be a BREAKING CHANGE, depending on the Node.js version you support.
With the most recent Node.js version, you should be able to replace require with await import when you load custom rules.

I will look into this! As you note, one challenge may be support from Node; presently the minimum version is 12 and I would want this feature to work consistently on all supported versions. Another possibly complicating factor is that calls to require are augmented with a call to resolve in order to support modules specified with a relative path. I'm not sure offhand if that is possible for ESM and that may block some scenarios people have asked for. Again, I would prefer that CJS and ESM rules behave identically.

@DavidAnson Thanks for looking into this!
I see that there are several issues fixed in next and not yet released. The last release was 7 months ago, maybe it is worth to release a new version, maybe v0.5.0.
Do you have any plans for that?

Yes, I am working on one more thing before releasing an update.


Fix version to latest version on PyPi

Description
We forgot to update the version internal during the last release. Unfortunately we cannot overwrite the version in PyPi so this just fixes the problem for those cloning and using from Github. Ideally we want to update to 2021.02.1 and upload to PyPi which I am happy to do.
Issue #206
Checklist

[x] Added link to Github issue or Trello card
[ ] Added tests

Should we merge this or increase to 2020.02.1 and release? @aCampello @lizgzil I think the second is possibly better

I think we need to do both - merge and update.

Released https://pypi.org/project/wellcomeml/2021.2.1/


Improve UI Schema merge priority and merge strategy

Describe the bug
Use this issue to figure out what strategy we need under different scenarios.
Currently, uischema comes from 3 sources:

File schemas/sdk.uischema
File schemas/sdk.override.uischema
UI plugins

To shape an expected uischema, two things matter to uischema authors:

Priority: which source will override other sources?
Strategy: how a high priority schema overrides low priority sources?

Priority of schema merge
According to current codebase, the priority is sdk.uischema < extensions/plugins uischema < sdk.override.uischema.
Strategy of schema merge

A merge strategy: simply merge objects together.
A replace strategy: keep high priority schema and abandon low priority schema.

const schema1 = { a: 1 };
const schema2 = { b: 2 };

// A 'merge' strategy
merge(schema1, schema2); // generates { a: 1, b: 2 }

// A 'replace' strategy
replace(schema1, schema2) // generates { b: 2 }

Problems
Now we use the 'merge' strategy in Composer, lodash.mergeWith will simply merge 3 sources of uischema together as a finalized uischema.
This strategy works fine in Form scenarios, however, in other cases, it may lead to unhappy results.
For example, in 'menu' uischema, we can't hide a $kind from the menu flyout.
const schema1 = {
  "Microsoft.SendActivity": {
    "menu": {
      "label": "Send a response",
      "submenu": ["Bot Says"]
    }
  }
}

const schema2 = {
  "Microsoft.SendActivity": {
    // define nothing to expect this $kind not be added to flyout menu
  }
}

newSchema = merge(schema1, shema2);

Due to the merged schema keeps all fields in old schema, the $kind will always apear as a menu option
Possible solutions
We need an advanced schema merge strategy to handle different use cases. Here are some solutions I can think of.

A strategy based on uischema areas:

Use merge strategy to form uischema, because form requires the uischema be extendable and can be patched
Use replace strategy to menu uischema, because menu uischema is simple enough and should be completed

A strategy based on uischema sources:

extension uischema replaces sdk.uischema, because an extension should be self-contained and hold a complete schema.
sdk.override.uischema merges other schema, because the sdk.override.uischema literally means to override something

Conditionally inheritance:
depends on uischema $base field, either inherit and merge with 'base' schema or replace it with new schema

Additional context

@GeoffCoxMSFT Geoff do you have some suggestions?

Current problem:

[ ] Cannot hide an action from Action flyout menu
[ ] uischema json inside ui-plugins override sdk.schema, makes the custom uischema flow not fully functioned

Came up with a solution.

Divide current built-in uischema in ui-plugins/composer into two parts: required & fallback. Which means
Composer built-in uischema= built-in.required (IfCondition, SwitchCondition, Foreach) + built-in.fallback (the rest $kinds)
Optimize the merge logic to built-in.required < (sdk.uischema ?? built-in.fallback) < sdk.override.uischema

It's a balanced solution to solve merge strategy problems without breaking old bots.


Problem during installation

Hello
I would like tu use your converter with z2m and zlinky_TIC with a three phase electric meter and standard mode. The integration was OK with ralmn converter.
After adding your lixee.js into zigbee/data/converters, I have this error and z2m don't start :
Using '/app/data' as data directory
(node:9) UnhandledPromiseRejectionWarning: internal/modules/cjs/loader.js:905

  throw err;
  ^
Error: Cannot find module '../lib/exposes'
Require stack:
- /app/dist/util/utils.js
- /app/dist/util/settings.js
- /app/index.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15)
    at Function.Module._load (internal/modules/cjs/loader.js:746:27)
    at Module.require (internal/modules/cjs/loader.js:974:19)
    at require (internal/modules/cjs/helpers.js:93:18)
    at /app/dist/util/externally-loaded.js:2:17
    at Script.runInContext (vm.js:144:12)
    at Script.runInNewContext (vm.js:149:17)
    at Object.runInNewContext (vm.js:303:38)
    at loadModuleFromText (/app/lib/util/utils.ts:148:8)
    at loadModuleFromFile (/app/lib/util/utils.ts:155:12)
(Use `node --trace-warnings ...` to show where the warning was created)
(node:9) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:9) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

About other informations :

Z2M is a docker container
Z2M seems OK, it's the last version

Can you help me ?
Thanks (and sorry for my english ;) )

Hello @Phenix21,
answer has been given here : https://github.com/vk496/zigbee-herdsman-converters/issues/2#issuecomment-1005101174
Cheers ;-)

Hi
I try it, thanks !

@Phenix21 could you please validate that lixee clusters works properly for you? (Any of NGTF, LTARIF, OPTARIF, STGE....)
Also, could you please share your current Linky config (mode, phase and if producer) and the STGE value that is reported to you?
Thanks in advice

I will check it tomorrow.
Actually i have a three-phase electric meter in standard mode, without production.
The STGE value report is "Nul"

@Koenkk sorry for bother you, but do you know why the custom cluster is not working for people using the latest version of Z2M with the zigbee-herdsman up to date too? They import the lixee.js as external converter and manually fix the imports.
In my side I manually build the project and link the directories of the dependencies in my PC. But since the masterbof Z2M is already using the correct version, they should work too.... But this is not the first person reporting the same issue

Hello @vk496
I'm not sure what king of informations you need, and what are lixee clusters, but i'm trying to help you.
You can see bellow my z2m configuration :

Using this parameters, I have this informations on z2m interface :

In the clusters page :

In HA I don't have the same informations :

Tell me if you need more informations


Scale down OCW concourse workers, all environments

Scale down OCW concourse workers, all environments
Just five workers from now on in QA and Prod

Can you say something about how you determined this to be the right number (at least for now) ?

Can you say something about how you determined this to be the right number (at least for now) ?

Yeah! So, previously we had 200-500 containers per ocw worker and maybe like 1000 volumes per worker (so, like 15000-20000, a lot...). Since https://github.com/mitodl/ocw-studio/pull/982 was merged, we're down to 2-10 active containers per ocw worker and <400 volumes total. That PR seems to have been the game changer that concourse needed to reach stability.
Honestly, I think we could do 2 OCW workers and be fine, but I don't want any surprises if something should happen that causes a bunch of those individual course jobs to fire off. Though my understanding now is that such an occurrence is unlikely.


swiper breakpoints are not responsive

I have a swiper above 768px (ipad) slidesPerView: 'auto', and slidesPerGroup: 3,
but under 768 :  horizSwiper.params.slidesPerView = 1;
horizSwiper.params.slidesPerGroup = 1;
i am using breakpoints it work well when i resize from big screen to small screen but when i get back to big screen everything goes wrong..... on refresh all is gd...
it is not responsive?!
an help?
my code:
var horizSwiper = new Swiper('#slider .screen', {
loop: true,
autoplay: 5000,
speed: 1200,
slidesPerView: 'auto',
slidesPerGroup: 3,
spaceBetween: 0,
keyboardControl: true,
breakpoints: {
767: {
slidesPerView: 1,
slidesPerGroup: 1
}
}
});

Would be good to see live example or JSFiddle with the issue to see it

Swiper don't calculate width from slide's style after window resized from small viewport to large, if change  slidesPerView property from numeric to 'auto'. JSFiddle

I'm having this issue, too. Any plans on fixing this?

After resize (breackpoint 980) autoplay not work
{       pagination: '.swiper-pagination-about',       autoplay: 12000,       loop: true,       speed: 3000,       initialSlide: 0,       slidesPerView: 3,       slidesPerGroup: 3,       touchRatio: 1,       paginationClickable: true,       centeredSlides: false,       roundLengths: false, //значение true "ломает" слайдер (цикл)       breakpoints: {         980: {           autoplay: 6000,           loop: true,           speed: 2000,           initialSlide: 0,           slidesPerView: 2,           slidesPerGroup: 1,           paginationClickable: true,           centeredSlides: true,           observer: true,           observeParents: true,           roundLengths: false,         }       },     });

Issue is closed because of outdated/irrelevant/not actual/needed more information/inactivity.
If this issue is still actual and reproducible for latest version of Swiper, please create new issue and fill the issue template correctly:

Clearly describe the issue including steps to reproduce when it is a bug.
Make sure you fill in the earliest version that you know has the issue.
Provide live link or JSFiddle/Codepen or website with issue


how it work?

I just dont know how it can upload local file to the remote service.?

up, me too .. what's next after the .ftpconfig is ready ?

Hi @kaizhuQin @Qhuhuit ,
You can right-click on every files in your editor and send it with sftp/ftp command.
Tell me if you have other questions.


Add logs commands to access app logs via dokku client

As the bulit-in dokku logs command only shows the output of supervisord itself, I created a few extra logs:* commands to enable accessing various app/process logs.
Additionally I had a bunch of random cleanup/reorg changes laying around from when I was bored that I threw in. No offense taken if you don't like my cleanup bullshit, and if so I can create a new PR with just the changes required for the logs commands :)

+1

+1 here too, need any help with this?


Single, too-long imports with Vertical Hanging Indent

If I have a single import that exceeds line_length, isort will use the backslash to enforce the line-length. This feels wrong, as we've configured “Vertical Hanging Indent” for multi-lines.
We get:
from blub import /
    veeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeerylongname

where we'd rather have
from blub import (
    veeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeerylongname,
)

(We get this behavior correctly for long lines.)
Apart from being consistent, it'd also clarify and minimize the diff when a new import is added.
Finally, we'd like to adhere to PEP8:
“The preferred way of wrapping long lines is by using Python's implied line continuation
inside parentheses, brackets and braces. Long lines can be broken over multiple lines
by wrapping expressions in parentheses. These should be used in preference to using
a backslash for line continuation.”

Kudos to @dashmug for being a nit-picker.

I'll do my best to fix this issue, I agree with the sentiment
Thanks!
~Timothy

https://github.com/timothycrosley/isort/blob/develop/isort/isort.py#L418
It looks like we just change the integer from 1 to 0 here ^
but doing so breaks 6 tests
because outputs that used to look like this: [wrap is due to low line length setting]
from translate.storage.placeables import \n
    general

Start to use the default Wrap mode and get turned into this.
from translate.storage.placeables import (general)
Although I'd argue that the above should be this instead
from translate.storage.placeables import (     general )
I think we are pulling at a thread and things could unravel here.

Maybe a config option --len-from-imports-greater-than ? ;)
(Can't think of a good name, because my mind hasn't familiarity with all the config options and their implications.)

A Fix for this has been implemented by @bootandy and merged into develop, ready to make it into the next release :)


Writing a comment in a OldDot report shows a unread message in NewDot for the same account

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Create an expense report on OldDot from account A
Submit to account B
Leave a comment on the report
Log in to NewDot with account A
See on unread message on account A's newDot

Expected Result:
Account A should not have a unread message in NewDot since the message is from the same user.
Actual Result:
Account A has a unread message in NewDot which is weird because it was sent by account A.
Workaround:
No need for workaround.
Platform:

Where is this issue occurring?

Web
iOS
Android
Desktop App
Mobile Web

Version Number: 1.1.20-0
Reproducible in staging?: yes
Reproducible in production?: yes
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation

Expensify/Expensify Issue URL:
Issue reported by: @AndrewGable
Slack conversation: https://expensify.slack.com/archives/C01GTK53T8Q/p1639422694186100
View all open jobs on GitHub

Triggered auto assignment to @cead22 (Engineering), see https://stackoverflow.com/c/expensify/questions/4319 for more details.

Triggered auto assignment to @tgolen (Demolition), see https://stackoverflow.com/c/expensify/questions/8099 for more details.

I tried to reproduce this both locally and in production and was not able to reproduce the issue.
In all cases, the report does not show up in NewDot (with or without an unread comment).

Hmm I can reproduce pretty easily on this report, does it ping you @tgolen?

I never got that, no.
On Fri, Dec 17, 2021 at 12:03 PM Andrew Gable @.***>
wrote:

Reopened #6761 https://github.com/Expensify/App/issues/6761.
—
Reply to this email directly, view it on GitHub
https://github.com/Expensify/App/issues/6761#event-5786374007, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJMABYPFU4I7MIPALH5TCDUROCQVANCNFSM5KBV5UIQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

That message was unread for you and appeared in your LHN?
On Fri, Dec 17, 2021 at 3:04 PM Tim Golen @.***> wrote:

I never got that, no.
On Fri, Dec 17, 2021 at 12:03 PM Andrew Gable @.***>
wrote:

Reopened #6761 https://github.com/Expensify/App/issues/6761.
—
Reply to this email directly, view it on GitHub
https://github.com/Expensify/App/issues/6761#event-5786374007, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJMABYPFU4I7MIPALH5TCDUROCQVANCNFSM5KBV5UIQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

Yes, correct!

OK, thanks! Without being able to debug it myself, I'm a little stuck here. This is what I think is happening:

Comment is made on OldDot
On OldDot, we call api?command=Report_UpdateLastRead with the new sequence number
On NewDot, the new sequence number comes along (I think from the new comment pusher event) and since the sequence number is greater than whatever was there before, the chat is marked as unread.

I'm not really sure what we would change in this flow. We still want to call api?command=Report_UpdateLastRead from OldDot. I'm not sure what logic change we would make for the new comment pusher event: https://github.com/Expensify/App/blob/main/src/libs/actions/Report.js#L596-L602
we'll need to think on this, so I am also looping in @roryabraham @johnmlee101 @marcaaron for ideas.
There is a part of me that says this isn't a core flow, and something that won't exist forever, so there could be little value in fixing it.

Another weird thing is Hax and I chatted on this report and he doesn't appear on the account list

I agree that it's probably not worth fixing. If leaving a comment in another NewDot session also has this behavior then it might be worth it, but just checked and it does not.
Is OldDot reports -> NewDot chats an officially supported feature? I may have missed when we designed it to work this way.

OK, cool. I'm just going to close this for now then.


BUG: Back to Top button is not working

Is there an existing issue for this?

[X] I have searched the existing issues

What happened?
The back to top button is not functional in the website currently. I would like to fix it.
Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

Please don't raise a PR before the issue is assigned to you. Also i have just checked and back to top button is working totally fine.