Download specific file through node filtering

Hi,
Thanks a lot for your work on this project!
Summary
Sentinelsat allowed to download a specific file within a product bundle using a "node filtering" functionality. I think it would be great if CDSETool also provided this.
I had a very brief look at the CDSE documentation, it seems the node functionality is available through their OData API, and not through the OpenSearch API that CDSETool is using, so it might not be that straightforward to add. Anyway I'd be curious to know your opinion!
Basic example
The functionality I'm referring to in sentinelsat is described here.
Motivation
It would reduce the download size for users interested in a single or a few files within the product.

Hello,
For information, I have implemented this functionality and I am using it within a personal project.
If maintainers of this repo think this has any interest, I would be happy to open a PR, and adapt the code to generic use cases if necessary.
Cheers!

Hi @tvoirand, this is indeed interesting and we also want to include a feature of tile list filtering.
Could you please create a fork from the latest version of CDSETool, showing the functionality you have implemented? Then, I would be happy to contribute and extend your implementation, so to propose to the maintainers to merge it.
Thanks!

Hi @fbalaban,
Thanks for your interest! The solution I am using so far is available here. It can be used as follows:
from cdsetool.query import query_features
from cdsetool.nodefilter import download_node

features = list(
    query_features(
        "Sentinel2",
        {
            "startDate": "2020-01-01",
            "completionDate": "2020-01-04",
            "processingLevel": "S2MSI2A",
            "box": ["4", "51", "4.5", "52"],
        },
    )
)

for feature in features:
    download_node(
        feature.get("id"),
        path="XXX",
        username="XXX",
        password="XXX",
        nodefilter_pattern="*TCI_60m.jp2",
    )

This solution consists in walking the product's nodes tree, listing every file matching the filter pattern, and downloading the listed files. This is sufficient for my use case, but to make it a proper feature of CDSETool I would see a couple of minimal improvements:

This is really an external module, and it would need adaptations to be integrated within CDSETool. Perhaps making it a function that would be called from within download_feature? I haven't figured out how to do it yet.
A request is performed at each node, which is clearly not optimal. This could be improved by downloading the metadata first, which contains a list of the products nodes, and use it to find the files matching the filter pattern. I think this is the method implemented in sentinelsat.
The product's files structure is not conserved for now, but this should be easy to fix.

With this information, do you still think this feature is relevant for your use case? Out of curiosity, I had a look at the issue you linked, and had the impression that query by attribute might be more relevant than the feature I have in mind, which is based on listing product nodes. But I might be wrong!

Hi again,
my apologies, I think I've mixed two requests, and you are right that the specific "tile attribute" request is more appropriate.
However, being able to download by traversing the product nodes, is indeed something that we are interested in. To be honest I have second thoughts on either implementing such a feature (with all the overhead that such an operation requires as you describe), or developing and waiting for a full STAC catalogue per node (item, asset, whatever) to be available. Anyway.
As you propose, and taking a look at your solution, I would consider the following additions:

Since this is more of a feature request, I wouldn't break download_feature or make an optional addition in the function. It's not the best practice to change such core functions, especially since the version of CDSETool is below 1.
Like so, I would proceed as you have proposed initially: add a donwload_node function (preferably in download.py) and then, the end users can apply that function in e.g. each item of their query (as you have shown in the example)
For the rest, I would agree with the method of SentinelSat. Traversing is never a good idea, if the information exists in metadata. Moreover, it only works for Sentinel 2.
Finally, if such a feature is implemented, I would see it as a key value search than a file pattern. Bands and Resolutions are the usual suspects, including QA bands. But this is a big discussion (and don't forget the other satellites also).

It is indeed a lot to implement. If I find some time I will contribute but feel free to either drop ideas or even a PR to get this thing started (if it makes sense for the rest also)


Fix calculation of mipmap size

fix #12
This change will fix the mipmap generation for non-power-of-two texture.
For example, 2D texture with size 5x3 should have a mipmap size as follow:

level 0: 5x3
level 1: 2x1
level 2: 1x1

Thank you!


[GT-N7100/Android 4.4.2/Rooted] "/(inaccessable)"

F-Droid finally updated Slideshow (1.1.5) extSdCard and UsbDrive work great. Thanks.
FYI, I hit the back button while in /storage I get /(inaccessable); getting back requires flipping root off, exiting setting, entering setting, and flipping root on again.

(inaccessible) appears when the application does not have read access on the folder. I not sure what allows and disallows read access in the root folder when the device is rooted. If you have any idea how I should get around this please let me know or submit a pull request if you can fix it yourself. (Do you think it is a real problem? Do you need to navigate that deep to get to your images directory?)
The issue with navigation requiring flipping the settings is fixed as of 1.2.0. Might have to wait for another F-Droid update... Otherwise you can always build from source. If you need instructions for this create another ticket and I'll add something to the README.
Hope that helps

No, I have no clue. I also have XDA Framework installed.
 I expected it to stop in the / folder. I only mentioned it because it wasn't normal behavior.
Matter's closed for me.

Thanks @Rbagman, I appreciate the update. Hopefully the 1.2.0 update fixes the 'stuck' navigation issue for you


Move collectionGroup method out of the Internal category

This fixes a warning added by #2786.

@paulb777 @davidair This is a candidate for a cherry-pick into the M47 release branch.

The branch won't be made until tomorrow, so everything in master is still going in.


CI/CD release flavor build error, but working fine on local machine

I am getting a simple yet complex error. The same code is working fine on my local machine.
Let me explain,

I am using github actions. As we know the release build require key.properties and keystore.jks file. I base64 encrypted those files and those files are working perfectly fine. I tested the base64 text and converted locally  and tested running build releases from those converted files. So not sure why this error coming.

I am not sure what's wrong here. Please save my time if someone from flutter team can take a look and point me to right direction.
Where to find flutter community for chatting purpose?

@dishank-betaflux
Check this SO solution and see if it helps in your case. If not, I suggest you to reach out to your CI/CD provider for further resolution, as, per your comment, it is working properly locally.
Closing from here.


Command handlers should be optional by default

Command handlers should be optional to reduce boilerplate code. The default behaviour will be to configure a router to dispatch the command directly to its aggregate.
In your router you set the to: as the aggregate root itself. The aggregate: key is not required.
defmodule ExampleRouter do
  use Commanded.Commands.Router

  dispatch OpenAccount, to: BankAccount, identity: :account_number
  dispatch DepositMoney, to: BankAccount, identity: :account_number
end
``

By default the command will be dispatched to an aggregate root function named execute. Pattern matching will ensure that it invokes the correct function for a given command struct.

It is still be possible to configure a command handler as the `to:` target in your router when needed.

Fixes #30.


⚠ Bofrost.lu has degraded performance

In d390a8a, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1541 ms

Resolved: Bofrost.lu performance has improved in 1fe7dc0 after 6 minutes.


Restore master after 0.8 release

I cannot self-approve this PR... @dcramer can you do it?
This PR moves master to 0.9.x-dev and merges all the leftover changes from 0.8

Ping @dcramer, I've updated this PR with the latest changes from 0.8.1.


Update request rates, errors, durations dashboard

There are a few changes here, which I've tried to describe in individual commits to make it easier to review.
The request rates, errors, durations dashboard has numerous issues. The most immediately serious one is that the metric it's using to work out which apps exist no longer includes most apps (because of the switch to histograms in https://github.com/alphagov/govuk_app_config/pull/318), but there were also a few issues stemming from the confusing nature of prometheus summaries.
I've also taken the opportunity to switch the request durations visualisation to use a heatmap, which I think is a more useful representation of the information.

Before
After (note: different time span)

You can play with the new version of the dashboard here: https://grafana.eks.production.govuk.digital/d/cdeb0607-02e2-4c51-8b7a-398a1c1e2936/richard-towersat-app-request-rates-errors-durations

I have other thoughts about this dashboard, but I didn't want to go too far down the rabbit hole.
Jotting a few of them down here:

It's probably confusing bundling up request counts / durations across all the publishing apps, frontends and APIs - is it really sensible to have one panel (or even one dashboard) trying to cover all of these things? It would be cool if we could add a label to the metrics which categorised which kind of thing something was (e.g. whitehall is a publishing app, publishing-api is an internal API, frontend is a frontend) to help group these things onto more focused dashboards
Full width graphs means we're not using vertical space very effectively. My beautiful heat map is below the fold on my screen 😭. I think it would look better as a 2 x 2 - requests and errors on the top row, average durations and heatmap on the bottom.
HTTP Errors is not very useful without a filter on, because it's absolutely dominated by 404s (most of which are totally legit responses, not errors at all)
It would be nice to link out to other dashboards where you could drill down into more detail. E.g. the heatmaps are much more useful if you drill down to a single controller


Installation fails on windows with NVIDIA drivers

Describe the bug
tensorflow gpu get install and then doesn't work.
To Reproduce
install from environment file on a windows machine that has NVIDIA drivers.
Expected behavior
importing tesnorflow causes an error in imp
Additional context
solved by installing tensorflow-mkl (version 1.10.0) via pip, and skimage version 0.15.0 also via pip.
environment file should be fixed to handle this situation

@aya-saad Is this the same issue you had in March?

no
I had a different issue with the scipy and scikit on my pc. still have this issue I resolve it usually by installing a different version of scikit

no
I had a different issue with the scipy and scikit on my pc. still have this issue I resolve it usually by installing a different version of scikit

After changing to this version of tensorflow, we also had to use scikit image 0.15.0 instead of 0.14.0

using skimage 0.15.0 causes an imresize error

recent updates have fixed many installation issues.


[Event Request] OnCallItemTrackingOnBeforeItemTrackingLinesRunModal missing in "Prod. Order Comp.-Reserve"

"Prod. Order Comp.-Reserve" codeunit is missing OnCallItemTrackingOnBeforeItemTrackingLinesRunModal publisher in function CallItemTracking just before calling ItemTrackingLines.RunModal(); but is present is other codeunits handling item tracking.
example screenshot of assembly line having the publisher :

screenshot of prod. order component missing the publisher:

Wrong repository, use https://github.com/microsoft/ALAppExtensions/issues instead.

Wrong repository, use https://github.com/microsoft/ALAppExtensions/issues instead.

Thanks. have created it in mentioned repository now.


Environmental Variable GRAYLOG_TRANSPORT_EMAIL_FROM_EMAIL Not Overriding Config

Overriding Docker environment variables is working for all but GRAYLOG_TRANSPORT_EMAIL_FROM_EMAILwhen using image graylog/graylog:3.0. The value is always the default value of<EMAIL_ADDRESS>regardless of the value set.

Does you refer what is visible in the UI if you define an alert? If yes, that one is just a template and more a bug in the server code that the server does not take the configured mail from.

This issue is fairly old and there hasn't been much activity on it. Closing, but please re-open if it still occurs.


Question: Possible to add scope to allow for auto complete of html in Markdown

Within ATOM, we write a lot of markdown in our project, but often times use inline html such as tables, at which point, all our formatting must be done with html while in the tables.
Is it possible that we could add markdown files to the scope that this plugin works with?  If so, where could I potentially do that.   A quick search of the source did not find scope.

Hi @dgmorrisjr
Can you show me a sample where you are trying to use this? A simple screencast video or gif may be? I can point you towards where the changes have to be made

Hi @dgmorrisjr
I have released a new version, now you can apply the plugin, in any language/file as long as the place you are applying at is a html and the word you have typed in is a valid html tag.
Try it and let me know if it solves your problem.

Re-open if it's not working.


No wifi

Hi,
I have a RTL8188EU wifi USB dongle. I already install OSMC into my RPI B (first gen) and it's works fine without any things to do
I install coder, and he doesn't recognize my dongle, so what can I do to fix this ?
Thanks in advance

I do not know what you are talking about !   You have used up all of my
tech knowledge!
The only honest answer is just put it in the bin and stop asking me I am
not knowledgable at all!
Sudo get update is the last thing I remember but I am 62 so very tired now
! Good night?
On Wednesday, 23 September 2015, nathan30<EMAIL_ADDRESS>wrote:

Hi,
I have a RTL8188EU wifi USB dongle. I already install OSMC into my RPI B
(first gen) and it's works fine without any things to do
I install coder, and he doesn't recognize my dongle, so what can I do to
fix this ?
Thanks in advance
—
Reply to this email directly or view it on GitHub
https://github.com/googlecreativelab/coder/issues/99.


Disconnect the Session?

Is the something like a session.Shutdown()? I know there isn't that exact one but a similar functionally (besides killing the loop). I did not see anything in RequestMessages either for something like this. I have the startup code from the demo shoved into a function that gets called from the HandleCommands loop, and would like to add a disconnect command so a user could log out without closing the window and change the passed arguments to the StartUp. BTW great work on the API, once I get more familiar with it and setup some basic stuff I am hoping to wrap it all up inside an Xna project.

Are you on the right repo? this is just proto stuff

I am on the master, so most likely no...

Yeah but this isnt an API, its just the proto files the api use :P are you looking for POGOLib? https://github.com/AeonLucid/POGOLib

Well I am using those and most likely this question belongs over there...forgive me I am a little noobish when it comes to gitHub

Should I move this party over there?

yeah your probably more likely to get help

:wave:


I started to get 429 errors. Looks like they have fingerprinted my IP etc

Verify latest release

[X] I verified that the issue exists in the latest chatgpt release

Verify webapp is working

[X] I verify that the ChatGPT webapp is working properly for this account.

Environment details
Node version 18.13
Browser chrome
Windows 10
Describe the Bug
Since yesterday, I have experienced 429 errors and i am unable to use this awesome tool. Can you help

Same for me, but don't think is IP related as I have tried from different locations and IPs.

They have fingerprinted a number of things I think like email to login along with some other aspects

Try upgrading to the latest version; we're now using the official API, and you should no longer have any issues related to IP addresses or rate limiting: https://github.com/transitive-bullshit/chatgpt-api/releases/tag/v4.0.0

you are super


Weird Decimal Conversion Issue

Here's a simple scenario. I have the following Json:
{"Amount": 11.11}

When I run "Pretty-print current JSON file", the number changes from 11.11 to 11.109999999999999.

This is not a bug per se, but rather an unfortunate consequence of my fix to #78.
Since loss of precision (that issue) means unrecoverable and unnecessary loss of information, whereas your issue is merely an unnecessarily ugly string representation of a number, I will leave this unfixed.
If you're confused, I recommend that you Google "floating point imprecision" to help you understand why some imprecision is unavoidable.

It seems fundamentally wrong that a plugin that is supposed to "pretty print" Json ends up manipulating the json data. That means that I can't use and trust your plugin's output because this is absolutely not just an "ugly string representation." 11..11 and 11.1099999xxx are completely different numbers, and "close enough" does not work in the real world of business and science.

@KeanuTang
I recommend that you stop wasting your breath chiding me for this issue. I will not fix it myself, because as I already explained I don't believe that the alternative solutions are acceptable or feasible to implement, as they involve (a) massive refactoring and loss of performance to pivot from double-precision floating point numbers to decimal numbers, (b) loss of precision when pretty-printing other numbers and thus a regression on #78, or (c) implementing my own (undoubtedly bug-ridden) algorithm that somehow fixes your issue while still using doubles.
You are welcome to submit a PR that would fix this issue, but don't be surprised if I reject it because I don't like the tradeoffs you made.
There are other JSON plugins you can try if you don't like this one. There is a strong likelihood that they will have the same issue that mine does, because almost everyone uses double-precision floating point number to represent real numbers because, again, the alternative solutions are much harder to use and less performant.

The reason I said this is not a bug in my original commend is that 11.11 is not "close enough" to 11.109999999999999 as far as double-precision floating point numbers are concerned; it is equal. By contrast, the earlier algorithm I was using was changing the string representation in a way that would be parsed to a non-equal double. Decimals are not a reasonable substitute because the maximum value for a decimal is far less (7.9e28) than the maximum value for a double (1.8e308).
Any alternative with no rounding errors for any number of reasonable size would require me to fish for some third-party library that provides a higher-precision numeric specification while still having comparable performance and memory usage to doubles and an equally generous range of acceptable values, and then tediously change every double parameter, return type, and variable initialization in the entire plugin to the different type.

 But be warned; that plugin also uses doubles to represent real numbers, and I have no idea how their double-to-decimal and decimal-to-double algorithms compare to the one I'm using. They may be strictly better, or it may just make a different set of tradeoffs than the one I'm using. Regardless, since they use the same data type, they are subject to the same fundamental limitations as my plugin.
The only thing I know for sure is that if I try to implement these conversion algorithms myself, I will almost certainly do a worse job than the standard library and introduce many subtle bugs. If you think you can do a better job than the C# standard library, or point me to a library that you are extremely confident does better than the standard library, I would consider a fix.

@KeanuTang
This commit should address this issue. If you follow my instructions for downloading an unreleased version, you can test out this fix and see if it is too your liking.
As I noted in the changelog, this fix comes at the cost of noticeably worse performance when reformatting very large files (say, several megabytes or more). At some point I will see if I can implement a more performant solution.
Please let me know if you have any thoughts. If you are satisfied with this fix, I will be including it in v8.2 of JsonTools, which I aim to release in the next few weeks.
I must extend my sincerest apology to you for effectively gaslighting you and trying to trivialize what was in fact a real and substantial issue with my plugin.

JsonTools version 8.2, incorporating a fix for this issue, is now live. I will soon submit a PR to include v8.2 in the plugins manager.


Modifying capsule state from another capsule listener failing

Let say I have two capsules based on use.state: A and B.
In a React component mount function I'm listening individually both A and B.
In B listener I'm modifying A state (by CapsuleContainer.read), but A listener is not getting executed.
A listener is not failing, because when modified in other parts is getting triggered. It's B listener which is caching A capsule, so it's not calling a fresh A setState. Is the first time I try to modify a Capsule from another Capsule listener.
Any idea on what's happening?

In B listener I execute conditionally the A setState, but I store the setter in a variable before the if/else

I'm having a bit of a hard time following from your description; could you please provide a minimal code sample?

Everything happens on componentDidMount method. The A listener is _cancelLoadingModeListener and B listener is _cancelWebsocketStateListener. I tried multiple workarounds, but none with success.
import 'package:busslina_dart_web_lib/lib.dart' as wlib;
import 'package:pandemic_plandemic_web/lib.dart';

import 'package:react/react.dart';

var bodyApp = registerComponent2(() => _BodyApp());

/// Initiated on loading state.
class _BodyApp extends Component2 with wlib.ComponentMixin {
  static const _loadingField = 'loading';
  static const _softLoadingField = 'soft-loading';

  late final void Function() _cancelLoadingModeListener;
  late final void Function() _cancelSoftLoadingModeListener;
  late final void Function() _cancelRouterListener;
  late final void Function() _cancelWebsocketStateListener;

  bool get _loading => state[_loadingField];

  @override
  Map get initialState => {
        ...super.initialState,
        _loadingField: cc.read(wlib.loadingModeCapsule).loading,
        _softLoadingField: cc.read(wlib.softLoadingModeCapsule).loading,
      };

  @override
  render() {
    final loading = _loading;
    final softLoading = state[_softLoadingField];

    return div({
      ...processedProperties,
    }, [
      // Header
      if (!loading)
        headerWidget({
          'key': 'header',
        }),

      // Current route
      if (!loading)
        _currentRoute?.component({
          'key': 'current-route',
          wlib.softLoadingField: softLoading,
        }),

      // Footer
      if (!loading)
        footerWidget({
          'key': 'footer',
        }),

      // Loading
      if (loading)
        _loadingSpinner({
          'key': 'loading-spinner',
        }),

      // Soft loading
      if (softLoading)
        _softLoadingSpinner({
          'key': 'soft-loading-spinner',
        }),
    ]);
  }

  @override
  void componentDidMount() {
    super.componentDidMount();

    debug('_BodyApp.componentDidMount()');

    // final log = cc.read(wlib.loggerCapsule);

    // Listening to loading mode
    _cancelLoadingModeListener = cc.listen((use) {
      final loading = use(wlib.loadingModeCapsule).loading;

      debug('LOADING: $loading');

      setState({_loadingField: loading});
    });

    // Listening to soft loading mode
    _cancelSoftLoadingModeListener = cc.listen((use) {
      setState({_softLoadingField: use(wlib.softLoadingModeCapsule).loading});
    });

    // Listening to router
    _cancelRouterListener = cc.listen((use) {
      final routerController = use(wlib.routerCapsule);

      if (!routerController.initied) {
        return;
      }

      forceUpdate();
    });

    // cc.read(appCapsule).connectToWebsocketServer();

    // delay(const Duration(seconds: 10)).then((value) {
    //   cc.read(wlib.loadingModeCapsule).on();
    // });

    // Listening to websocket state
    _cancelWebsocketStateListener = cc.listen((use) {
      final state = use(wlib.websocketStateCapsule);

      final loadingMode = cc.read(wlib.loadingModeCapsule);
      // final loadingMode = use(wlib.loadingModeCapsule);

      debug('websocket state listener -- $state');

      // TODO: min delay between attempts (5 seconds)

      if (state.disconnected) {
        debug('SETTING LOADING ON -- current: ${loadingMode.loading}');

        // Setting loading
        loadingMode.on();

        // await delay(10.seconds);
        delay(10.seconds).then((value) {
          // Connecting to websocket server
          cc.read(appCapsule).connectToWebsocketServer();
        });

        // Connecting to websocket server
        // app.connectToWebsocketServer();
      }
    });
  }

  @override
  void componentWillUnmount() {
    debug('_BodyApp.componentWillUnmount()');

    // Rearch listeners
    _cancelLoadingModeListener();
    _cancelSoftLoadingModeListener();
    _cancelRouterListener();
    _cancelWebsocketStateListener();

    super.componentWillUnmount();
  }

  Route? get _currentRoute {
    final controller = cc.read(wlib.routerCapsule);

    if (!controller.initied) {
      return null;
    }

    return controller.getRoute().casted;
  }

  @override
  JsonMap get styleMap {
    final loading = _loading;

    return {
      ...super.styleMap,
      'position': 'relative',
      'height': '100%',
      'display': 'flex',
      'flexDirection': 'column',
      'overflow': 'hidden',
      if (loading) 'backgroundColor': 'rgba(10, 10, 10)', // Black
      if (!loading) 'backgroundColor': 'rgba(40, 40, 40)', // Grey
    };
  }
}

This is the A capsule:
LoadingModeController loadingModeCapsule(CapsuleHandle use) {
  final (loading, setLoading) = use.state(false);
  final log = use(loggerCapsule);

  return (
    loading: loading,
    toggle: () => setLoading(!loading),
    // on: () => setLoading(true),
    on: () {
      log.d('Setting loading mode ON -- current: $loading');
      setLoading(true);
    },
    // off: () => setLoading(false),
    off: () {
      log.d('Setting loading mode OFF -- current: $loading');
      setLoading(false);
    },
  );
}

typedef LoadingModeController = ({
  bool loading,
  void Function() toggle,
  void Function() on,
  void Function() off,
});

This is the output:
�[38;5;244m[T]�[0m  Websocket connection -- On done (Stream) --<PHONE_NUMBER>312707 [main.dart.js:5044:78](https://pandemic-plandemic.ddns.net/main.dart.js)
�[38;5;244m[T]�[0m  Websocket connection -- On done (Sink) --<PHONE_NUMBER>312707 -- Skipping due to yet done [main.dart.js:5044:78](https://pandemic-plandemic.ddns.net/main.dart.js)
[DEBUG] -- websocket state listener -- WebsocketConnectionState.disconnected [main.dart.js:5044:78](https://pandemic-plandemic.ddns.net/main.dart.js)
[DEBUG] -- SETTING LOADING ON -- current: false [main.dart.js:5044:78](https://pandemic-plandemic.ddns.net/main.dart.js)
[D]  Setting loading mode ON -- current: false [main.dart.js:5044:78](https://pandemic-plandemic.ddns.net/main.dart.js)
[D]  Connecting to Webosckets Server [main.dart.js:5044:78](https://pandemic-plandemic.ddns.net/main.dart.js)
[DEBUG] -- websocket state listener -- WebsocketConnectionState.connecting [main.dart.js:5044:78](https://pandemic-plandemic.ddns.net/main.dart.js)
[D]  Connecting to wss://pandemic-plandemic.ddns.net/ws [main.dart.js:5044:78](https://pandemic-plandemic.ddns.net/main.dart.js)
GET
wss://pandemic-plandemic.ddns.net/ws

Firefox no puede establecer una conexión con el servidor en wss://pandemic-plandemic.ddns.net/ws. [main.dart.js:5007:7](https://pandemic-plandemic.ddns.net/main.dart.js)
�[38;5;196m[E]�[0m  Error connecting to websocket server -- WebSocketChannelException: WebSocket connection failed. [main.dart.js:5044:78](https://pandemic-plandemic.ddns.net/main.dart.js)
[DEBUG] -- websocket state listener -- WebsocketConnectionState.disconnected [main.dart.js:5044:78](https://pandemic-plandemic.ddns.net/main.dart.js)
[DEBUG] -- SETTING LOADING ON -- current: false [main.dart.js:5044:78](https://pandemic-plandemic.ddns.net/main.dart.js)
[D]  Setting loading mode ON -- current: false [main.dart.js:5044:78](https://pandemic-plandemic.ddns.net/main.dart.js)
[D]  Trying again after 5 seconds delay [main.dart.js:5044:78](https://pandemic-plandemic.ddns.net/main.dart.js)
[D]  Connecting to Webosckets Server [main.dart.js:5044:78](https://pandemic-plandemic.ddns.net/main.dart.js)
[DEBUG] -- websocket state listener -- WebsocketConnectionState.connecting [main.dart.js:5044:78](https://pandemic-plandemic.ddns.net/main.dart.js)
[D]  Connecting to wss://pandemic-plandemic.ddns.net/ws [main.dart.js:5044:78](https://pandemic-plandemic.ddns.net/main.dart.js)
GET
wss://pandemic-plandemic.ddns.net/ws

Firefox no puede establecer una conexión con el servidor en wss://pandemic-plandemic.ddns.net/ws. [main.dart.js:5007:7](https://pandemic-plandemic.ddns.net/main.dart.js)
�[38;5;196m[E]�[0m  Error connecting to websocket server -- WebSocketChannelException: WebSocket connection failed. [main.dart.js:5044:78](https://pandemic-plandemic.ddns.net/main.dart.js)
[DEBUG] -- websocket state listener -- WebsocketConnectionState.disconnected [main.dart.js:5044:78](https://pandemic-plandemic.ddns.net/main.dart.js)
[DEBUG] -- SETTING LOADING ON -- current: false [main.dart.js:5044:78](https://pandemic-plandemic.ddns.net/main.dart.js)
[D]  Setting loading mode ON -- current: false [main.dart.js:5044:78](https://pandemic-plandemic.ddns.net/main.dart.js)
[D]  Trying again after 5 seconds delay

As you can see in the output, it tries repeatedly to set loading on (SETTING LOADING ON) but always its value is false (is not getting updated).
Basically I'm turning down the server, so the weboskcet connection get closed and the loading spinner must be shown, but it isn't.
Sorry about this mess. I'm going to try to make a video clarifying this.

Video 1: https://mega.nz/file/IWwFCB7Q#ByvYFkgB5rKlpa5WtSTZtJoetTN5apHNgwnlYkaJfUc
Video 2:

Basically, having this Setting loading mode ON -- current: false seems meaning that something weird is happening, and it's only happening when executing that setState from inside the listener

I simulated this issue in this repo and works well... so I don't know what the heck its happening on my project. I will try to resolve it later.
https://github.com/busslina/rearch-listener-issue

Hi, I add here a little bit more info to the one that I shared with you via Discord:
I modfied the code of lazyStateGetterSetter side effect in order to know whats happening there:
(T Function(), void Function(T)) lazyStateGetterSetter<T>(
    T Function() init, {
    String? debugName,
  }) {
    void debug(String msg) {
      if (debugName == null) {
        return;
      }

      print('[$debugName]: $msg');
    }

    // We use register directly to keep the same setter function across rebuilds
    // (but we need to return a new getter on each build, see below for more)
    final (getter, setter) = use.register((api) {
      debug('lazyStateGetterSetter() -- 1 -- init');

      var state = init();

      T getter() => state;
      void setter(T newState) {
        debug('lazyStateGetterSetter() -- 2 -- setter');

        api.rebuild((cancelRebuild) {
          debug('lazyStateGetterSetter() -- 3 -- setter');
          if (newState == state) {
            debug('lazyStateGetterSetter() -- 4 -- setter');
            cancelRebuild();
            return;
          }

          debug('lazyStateGetterSetter() -- 5 -- setter');

          state = newState;

          debug('lazyStateGetterSetter() -- 6 -- setter -- new state: $state');
        });
      }

      return (getter, setter);
    });

Firstly this snapshot shows the predicted/non-error debug:

This is also good, when the state doesn't change because it is the same:

Lastly, this snapshot shows what is being executed on the weird-error case:

As you can see, the setter is being executed, but no the inner api.rebuildcallback.

As you can see, the setter is being executed, but not the inner api.rebuildcallback.

That’d be because the value passed into the setter doesn’t change. In other words, the value returned by getValue at that instant in time is equal to the value you’re setting.

Oh wait, you’re saying the callback to api.rebuild isn’t being executed. I’ll take a look more into that

As you can see, the setter is being executed, but not the inner api.rebuildcallback.

That’d be because the value passed into the setter doesn’t change. In other words, the value returned by getValue at that instant in time is equal to the value you’re setting.

I think you are wrong here, because as I shown in my last message, you can see the second screenshot is when the value is the same and the state is not updated.
But you also can see the third screenshot. It don't even do the state comparison to check if it is the same state.
Also, I show in the first messages, it get stuck in one state (false) and doesn't want to change it (to true).
Again, my last message with the three snapshots show a bug in my opinion

Yup, caught that after I sent my first msg. Looking into it, might be getting back to you tomorrow depending on how things shake out

The state comparison is done inside the api.rebuild, but it doesn't get executed, so how can it know if it is a repeated state (which it isn't)?

Yup, caught that after I sent my first msg. Looking into it, might be getting back to you tomorrow depending on how things shake out

Thank you

Ohh. Think I got it

if (state.disconnected) {
        debug('SETTING LOADING ON -- current: ${loadingMode.loading}');

        // Setting loading
        loadingMode.on();

loadingMode.on() sets the state, and this is run within a listener. This is not allowed. there is an open issue to add an assertion for this check: https://github.com/GregoryConrad/rearch-dart/issues/17
Sorry that assertion isn’t there yet, would’ve saved you a ton of headache.
as for quick fix: toss the .on() call in a Future.delayed or after an await null;
A proper fix would involve refactoring to prevent one state from needing to be updated when another capsules state is updated. In this case, loading state is being updated via the websocket state capsule, so it’s likely that these two states should be directly related in the same capsule instead of separated into different capsules. (The alternative would be to update their states together via txns, but it’s likely you just have state in the wrong spot right now)

Okay. I knew that the issue was related on being executed inside a listener, that's why the issue title that I choosed. Also I tested it in a simplwtest project and worked (to modify a state from a listener).
Okay, I will remember this restriction and the workaround you propose me.
Is it a perpetual restriction or just a current one that may be possible to remove in the future?
Thanks ;)

I will try the transaction workaround because I found both capsules to be different entities

Okay. I knew that the issue was related on being executed inside a listener, that's why the issue title that I choosed.

Oops, didn't read it close enough haha 😅

Also I tested it in a simple test project and worked (to modify a state from a listener).

Yea; I consider it UB. It may work, it may not. Thus why I want to add the assertion in so that it doesn't trip anyone up.

Is it a perpetual restriction or just a current one that may be possible to remove in the future?

It's an intentional restriction, because it will allows for incorrect data modeling. I wrote some about proper/derived state in the documentation here.
In your situation, if it isn't possible for loadingModeCapsule to simply derive its state from websocketStateCapsule (why can't it?), then you would have to use transactions to update the state of both of those capsules at the same time. But again, on the surface  this seems like an instance where you should be using derived state instead of transactions.

(why can't it?)
The thing is that both capsules are defined at a library level, but maybe I want to link them at project level.

But I take your words/advice seriously so I can follow the best guidelines. For now I did this approach:
extension _ConvenienceExtension on SideEffectRegistrar {
  SideEffectRegistrar get use => this;
}

extension SideEffectRegistrarExtension on SideEffectRegistrar {
  LoadingModeController loadingMode() {
    final (state, setState) = use.state<({bool loading, String? message})>(
        (loading: false, message: null));

    return (
      loading: state.loading,
      loadingMessage: state.message,
      toggle: ({String? message}) => setState(
          (loading: !state.loading, message: state.loading ? message : null)),
      on: ({String? message, bool asyncMode = false}) {
        // Async mode
        if (asyncMode) {
          Future.microtask(() => setState((loading: true, message: message)));
          return;
        }

        setState((loading: true, message: message));
      },
      off: ({bool asyncMode = false}) {
        // Async mode
        if (asyncMode) {
          Future.microtask(() => setState((loading: false, message: null)));
          return;
        }

        setState((loading: false, message: null));
      },
    );
  }
}

typedef LoadingModeController = ({
  bool loading,
  String? loadingMessage,
  void Function({String? message}) toggle,
  void Function({String? message, bool asyncMode}) on,
  void Function({bool asyncMode}) off,
});

You can see asyncMode

BTW, I'm thinking on create a dropdown list button for showing the "Developed with" or "Powered by" technologies I use: Dart, React, ... Have you any inconvenient on me putting ReArch on the list? Maybe you don't want it in a controversial site like this:

Have you any inconvenient on me putting ReArch on the list? Maybe you don't want it in a controversial site like this:

You're welcome to list it. Just don't say I or my projects endorse that particular project hahaha 😆

You're welcome to list it. Just don't say I (or my projects) endorse that particular project hahaha 😆

Of course, done xD


Update docs to include CSP authentication support

@Margarita-Staneva Thanks for the review comments, Please let us know if this looks good now.


Profile incorrectly showing as deleted in metasmoke (it isn't)

SmokeDetector caught a post by the Answer Bot user. However, metasmoke states "(user has been deleted)".
This is incorrect - I can see it's profile on webapps, and it isn't deleted. These posts also aren't showed together when I click on the user from the metasmoke report.
It's not clear to be that it's worth fixing, but this still seems like a bug.

I think the bug occurs because metasmoke doesn't parse negative user ids correctly:
https://github.com/Charcoal-SE/metasmoke/blob/6f06bdfd9a51b098cf8e3a19f2779881a9badedf/app/controllers/posts_controller.rb#L155-L156


Upgrade requirements

Via pip-compile requirements.in > requirements.txt
Ahead of some new changes that will need a new requirement.

Looks good, better to use make requirements as IIRC it preserves the original command line arguments (--output-file and --no-emit-index-url). While none of these are critical, they could be useful in some environments.

Looks good, better to use make requirements as IIRC it preserves the original command line arguments (--output-file and --no-emit-index-url). While none of these are critical, they could be useful in some environments.

Actually I just realized you didn't change requirements.in - so forget this comment :)

Yes, I tried to run make requirements but it said make: Nothing to be done for 'requirements'. because the .in file was not touched

Yes, I tried to run make requirements but it said make: Nothing to be done for 'requirements'. because the .in file was not touched

Yep, maybe one day I will add a  make update-requirements or something like that that basically upgrades requirements to latest regardless of whether there was a change or not. Should be easy enough to add.


Switch Gmail users to OAuth if log-in to IMAP/SMTP has failed

Checklist

[X] I have used the search function to see if someone else has already submitted the same feature request.
[X] I will describe the problem with as much detail as possible.
[X] This issue only contains a request for one single feature, not multiple (related) features.

App version
6.100-SNAPSHOT
Problem you are trying to solve
We want users who set up a Gmail account in the past (using password authentication) to be switched over to OAuth, so they can continue to use the app.
However, we don't want to automatically switch over users who intentionally set up K-9 Mail to use an app password.
Suggested solution
Since we can't distinguish between regular password and app password, I suggest we don't change the login method when upgrading the app. Instead, the app should only change the login method to OAuth after the login to the incoming or outgoing Gmail server has failed.
Screenshots / Drawings / Technical details
No response

Now I get the auth error for gmail.

As there isn't a publicly released version of K9 that supports OAuth2 yet, I'm going to assume you are using version 6.0 or earlier. I will also assume that you have not set up, and configured K9 to use, google's "app passwords".
If that is the case, then see:
https://forum.k9mail.app/t/impossible-to-authenticate-with-google/4725/2
for a pointer to what you need to do to reestablish your K9/gmail authentication.
If you have questions, you should probably follow up in the support discussion forum at the URL above.

Thank u

Gmail does not authorize applications to login via password anymore:
https://support.google.com/accounts/answer/6010255


feat(fscomponents): triggered modal closing

Description
This adds a new option to the buttonProps of NestedButtons that will allow for a button to trigger the modal to close.
As it stands, it is not possible to close the modal from outside of NestedButtons which results in strange behavior.
Dev Notes
At this time this option defaults to false to maintain the same behavior as already exist but simply adding a new option to change the behavior.
In a future release I would like to change this option to default to true as I believe that behavior is more expected but would be a breaking change.
fixes: #1788

Spoke with @wSedlacek and he believes these changes have been superseded by how modals are handled in FS11. Closing.


Support join queries

https://github.com/chanzuckerberg/redis-memo/pull/6 drops support for join queries because they could be unbound.

The queries we're looking at here would have the following format.
select … from A join … where …

the query can select from a set of fields, and the rows returned are all from some table (suppose it's called A)
Case Work
Then the queries will have 2 general forms:

equality conditions on all tables: A.x = B.x and A.a = ? and B.b = ?
missing equality conditions (unbound queries) on some/all tables: A.x = B.x, A.x = B.x and A.a = ?

Case 1
If all the relevant tables have equality filtering conditions on them, we can cache the query currently already with the current design.
For example, consider a filtering condition A.x = B.x and A.a = ? and B.b = ?. Suppose A.x, A.a, B.x, B.b are memoized_table_columns.
Then any records in the final result set will depends on the set of memorizables (A.x, A.a, B.x, B.b) which will be handled by the version bumping / invalidation flow.
Case 2
For tables with equality condition, when the records changes, cached queries get invalidated
But for tables do not have equality condition in the query, we might have problem because if those records change, the cached queries would not get invalidated automatically.
- this could be okay though if the select clauses never changes (e.g. PK, or immutable fields)
To actually solve the problem, here are two ideas and hopefully will inspire some more thoughts.
Idea 1: Add unbound tables as table-dependency
- When a record change on an unbound table changes, the table-dependency also changes, hence the cached queries get invalidated
- Con: If the table changes a lot, cache hit rate will suffer

The cache hit rate is more likely to suffer since the cache queries need to invalidate when either A or B table changes.
Also not this idea is not practical when unbound tables are tables like Session / Post / Comment that can be updated very frequently.
Idea 2: Post fetch validation
Current design:

extract a set of memoizables by inspecting the query
[slow] A trip to redis to get their versions
compute a cache key
[slow] A trip to redis to get the cached query

cache hit:

use the result

cache miss:

get a record set from the actual data source (i.e.g Postgres)

use that
fill the cache under that cache key

Alternative:

extract a set of memoizables by inspecting the query
[slow] A trip to redis to get their versions
compute a cache key
[slow] A trip to redis to get the cached query

cache hit:

Extract another set of  memoizables by inspecting the result set
[slow] A trip to redis to get their versions
Compute another_cache_key
[slow] A trip to redis to check if another_cache_key exists

yes: use the result
no: create another_cache_key, go to cache miss

cache miss:

get a record set from the actual data source (i.e.g Postgres)

use that
fill the cache under that cache key (if there's not too many records)

Pro: Potentially higher cache hit rate
Con: Slower comparing to [idea 1] on the cache hit path

I'm not sure I understand the post-fetch validation approach. What is the 2nd set of memoizables supposed to be checking, or what are those dependencies/how do they differ from the first set?


Removed global variables

Approving this pull request and will continue working on the below points:

For ro1 configuration main group dropdown label should be hide
Adjust variable dropdowns width when option length is bigger.
Scatter line plot not working properly for Romania configuration


Proto tag is not implemented

According to the Overcast XML documentation, the map element is required to contain the attribute proto, which specifies the PGM version the map was created for.
Source: https://docs.oc.tc/modules/main

I don't think we want to support this, this would mean support every version of PGM and having different syntax and mechanics for each proto

I don't think we have to support different behaviors for different versions. It could be something as simple as printing a warning if a greater version number is used.

That is not the point of the protocol

@Aaron1011 I'll consider implementing a warning when we fully support the latest protocol.


Should use the SASS, JS, React, jQuery functions from Pancake

Currently the furnace is decoupled from pancake. To guarantee a consistent user experience and no different files being generated for our users, furnace needs to use the core functionality from pancake to generate the files.
We also added the ability to generate the uikit.json file, which has now been implemented into the furnace.

Closing this issue as the goal will be to retire pancake and let users choose there own pipeline.


Add sentinel to enum type mkldnn_memory_format_t

I am trying to add a sentinel to enum type mkldnn_memory_format_t in mkldnn_types.h. So from framework side, we can set dedicated unit test to monitor the data format change in mkldnn. If new data format is added to mkldnn, we need check framework code to see if code should be adjusted to handle the new data format.
Since a PR should be submitted to mxnet to change the dependency version of mkldnn. If data format is changed in the new version of mkldnn, the dedicated test case will be failed at pre-checkin phase. So this kind of error will not happen in user's workloads.

Hi @TaoLv,
In general I am fine with the patch (probably want to replace format_end with format_last, but this is a minor thing).
But I am not sure I fully understand the reason for that.
In typical case the framework should only use the plain memory formats (like nchw, nhwc, oihw, ...). All the other strange formats like nChw16c should be used transparent to framework (e.g. via any format).
Why would you want to track the new formats for framework? If we introduce new format that framework might use -- that would happen most likely because we bring new functionality (like recent rnn). But in that case it is much better to track release notes, rather then formats :)

For some reasons, we need convert tensor from mkldnn internal layout to framework default layout. So we built a mapping between them, say nChw8c and nChw16c will both map to nchw for 4d image tensor, ihwo and OIhw8i8o will both map to oihw. Currently, we hard code this kind of mapping into our code. If mkldnn adds new format in the future, for example nChw32c, it will broke the mapping relationship and raise fatal error. If existing test cases don’t cover this new format, this error will happen at end user side.
Actually, this kind of error has been observed on Goihw8g which was added to the format list last month.
Sent from my iPhone
On 22 Mar 2018, at 11:37 PM, Evarist <notifications<EMAIL_ADDRESS>wrote:
Hi @TaoLvhttps://github.com/taolv,
In general I am fine with the patch (probably want to replace format_end with format_last, but this is a minor thing).
But I am not sure I fully understand the reason for that.
In typical case the framework should only use the plain memory formats (like nchw, nhwc, oihw, ...). All the other strange formats like nChw16c should be used transparent to framework (e.g. via any format).
Why would you want to track the new formats for framework? If we introduce new format that framework might use -- that would happen most likely because we bring new functionality (like recent rnn). But in that case it is much better to track release notes, rather then formats :)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/intel/mkl-dnn/pull/203#issuecomment-375351246, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AVZehl3LVZ8GCzU7sPU5ETm5nYJ8FHDuks5tg8UggaJpZM4S3N5j.

I changed mkldnn_format_end to mkldnn_format_last.
Hope you don't mind :)
Thanks for the contribution!

That's OK. Thanks, @emfomenk !


[wip] liveblog templates

Coverage decreased (-0.2%) to 86.148% when pulling 72c542a1203f7cb22965d6ab65fc03b452c01696 on liveblog-templates into 1f1abc0bb7db9007408f79841f6af77041b595cb on liveblog-updates.

Coverage decreased (-0.2%) to 86.112% when pulling 72c542a1203f7cb22965d6ab65fc03b452c01696 on liveblog-templates into 1f1abc0bb7db9007408f79841f6af77041b595cb on liveblog-updates.

Coverage decreased (-0.2%) to 86.112% when pulling 72c542a1203f7cb22965d6ab65fc03b452c01696 on liveblog-templates into 1f1abc0bb7db9007408f79841f6af77041b595cb on liveblog-updates.

Coverage decreased (-0.07%) to 86.23% when pulling 59465828f67c2170567b64c3c56e3fad5755dd8a on liveblog-templates into 1f1abc0bb7db9007408f79841f6af77041b595cb on liveblog-updates.

Coverage decreased (-0.07%) to 86.23% when pulling 59465828f67c2170567b64c3c56e3fad5755dd8a on liveblog-templates into 1f1abc0bb7db9007408f79841f6af77041b595cb on liveblog-updates.


Cannot find package 'mdsvex'

Just trying things out, but I failed, you might help me?
I cloned the repo and tried to deploy on netlify.
First error: "vite": "^5.0.3" can't run on node 16. (I guess that this bump introduced it: https://github.com/swyxio/swyxkit/pull/212)
So I changed https://github.com/swyxio/swyxkit/blob/main/netlify.toml#L15 to 18
Now the build is succeeding on netlify, but when I go to the site, I have:
This function has crashed
An unhandled error in the function code triggered the following message:

Error - Cannot find package 'mdsvex' imported from /var/task/.netlify/functions-internal/sveltekit-render.mjs

Stack trace
Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'mdsvex' imported from /var/task/.netlify/functions-internal/sveltekit-render.mjs
    at new NodeError (node:internal/errors:387:5)
    at packageResolve (node:internal/modules/esm/resolve:852:9)
    at moduleResolve (node:internal/modules/esm/resolve:901:20)
    at defaultResolve (node:internal/modules/esm/resolve:1115:11)
    at nextResolve (node:internal/modules/esm/loader:163:28)
    at ESMLoader.resolve (node:internal/modules/esm/loader:841:30)
    at ESMLoader.getModuleJob (node:internal/modules/esm/loader:424:18)
    at ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:76:40)
    at link (node:internal/modules/esm/module_job:75:36)

I tried to go back to the previous versions & node 16, but it's still the same.
I'm doing something wrong somewhere, but where?
Thx for your help

hey @jycouet  - no idea whats wrong here unfortunately. this main branch deploys straight to netlify and you can see it works fine there. maybe by browsing the logs u can find a difference? https://app.netlify.com/sites/swyxkit/deploys/656c2f4502018f0008307e27


actions: Handle cross-realm messages in do_scrub_realm.

Opening this in favor of https://github.com/zulip/zulip/pull/14967 which we ended up kind of forgetting about without merging. I tweaked it to also use message.realm  (which we didn't have denormalized back then yet) for filtering to be more robust against accidentally deleting too much, which might alleviate the concern in https://github.com/zulip/zulip/pull/14967#discussion_r425436484 and in general reduce uncertainty since we're filtering by both recipient and realm with redundancy

Merged, thanks @mateuszmandera!


What about to create submenus manually?

Is there going to be function to create sub-menu manually? Now i can create top level manually and than i need to generate via customized templates. But what if i need to link pages across top level, link hash links, external websites aso... or is it possible now?

Hi @moreplavec.
I'm afraid I'm not quite sure what you mean by 'manually' here. Sub menus are powered entirely by the page tree (they are only generated for page links), and so aren't defined in the CMS separately.
Can you explain some more about what you're trying to achieve? I might be able to point you in the right direction.

For example, i have such tree:

Home
Products
-- Product XX (has category 1)
-- Product ZZ (has category 2)
Services
-- anchor link in page #service1
-- anchor link in page #service2
Testimonials
Contact

But for menu i need:

Home
Products
-- Category 1
-- Category 2
-- Eshop (link to another website)
Services
-- Service 1
-- Service 2
-Testimonials
-- Testimonial category 1
-- Testimonial category 2
Contact

so, is there any way how to create this manually? Or any other way?

Hi @moreplavec.
There are currently two options you might like to explore:
Page models using the MenuPageMixin are capable of altering their sub-menu items when they appear in menus. So, you could use that with for your 'Products', 'Services', and 'Testimonials' page types and override 'modify_submenu_items()' to add the items you need. See:
http://wagtailmenus.readthedocs.io/en/stable/menupage.html
Or you could create a page type using AbstractLinkPage, and add the links as pages to your page tree. See: http://wagtailmenus.readthedocs.io/en/stable/abstractlinkpage.html
There will also be some hooks you can use soon that will allow you to modify menu items for any menu (they should be available in the next release), See: http://wagtailmenus.readthedocs.io/en/latest/advanced_topics/hooks.html#hooks-for-modifying-menu-items-before-rendering

@moreplavec
You can happily mix both of those approaches too. I would think links like 'Eshop' would fit the AbstractLinkPage approach more nicely. While, the MenuPageMixin approach is useful if you want to add many links, or links dependent on data in other models etc.

How about a link to Snippets (ex: ArticleCategory page)?

Category 1

Category 1.1
Category 1.2

Hi @viirak Wagtailmenus is never going to be something that will facilitate showing any kind of data in any kind of structure. It exists to solve the most common menu needs and do a semi-decent job of them. Without knowing far more details about what you're wanting to achieve, it's difficult to know what suggest - But, it sound's like just adding categories to the context and rendering them with your own template (or inside a menu template) could be your best bet.

AbstractLinkPage looks good to me, until there will be (i hope it will) something in admin areal to use. Nice doc are reading, but i prefer real life examples. Are there any demo uses for some scenarios?

Hi @moreplavec. I just wanted to be clear here for anyone coming to this thread... this app wont ever offer the ability to inject arbitrary data into menus, or manage completely custom, multiple level menus via the admin interface. To offer those kind of features, you'd take an entirely different approach to development - and the solution would likely be completely at odds with much of the existing codebase. It would have to be a new project/app - bending this app to fit would just result in confused / conflicted mess.
I agree the documentation would benefit from more examples. I'd gladly accept any contributions there!

@ababic just like AbstractLinkPage, but for snippets.
class PostCategoryLinkPage(Page):
category = models.ForeignKey(
'post.PostCategory',
null=False,
blank=False,
on_delete=models.PROTECT,
related_name='+'
)
content_panels = Page.content_panels + [
    SnippetChooserPanel('category'),
]

Hi @viirak,
I see what you're going for there. I can't see any way of making something suitably generic enough that it would be useful in use cases such as this. The very fact that the model needs a ForeignKey to a specific model is is limiting. I also don't know how to ascertain a useful 'URL' to use from the selected thing. The implementation would almost entirely always be custom.
Also, as I've mentioned before - Is duplicating some things to create some kind of structure elsewhere really the best approach for solving the problem?
Do you really want to create another of these pages every time you create a category that you want to appear in the navigation?
What happens when the category is deleted?
Surely it would make more sense to add a 'show_in_menus' BooleanField to the PostCategory model, and have those objects dynamically output as menu items somewhere?


Alerts with mower serial

Added the mower serial to the alert features to be able to select the mower when multiple mowers are configured.
Mower serial is optional and must not be used when only one mower is configured.
Also added de.json translation file.
Used developer branch with version 5.6.2 as base.

@kimzeuner - I expect to test and merge this within a couple of days. Can you update the DE translation file? It got outdated due to some new functionality I just merged.

Sure, should be fixed. Let me know if anything is missing.

en.json update finished

Because we are talking about translations, do you know how i can translate the entity names and states with the translation files ? I tried to translate the state from the Alert entities from No Problem into german but with the path from the HA developer docs it didn't work. It was something like
"entities": {
  "sensors": {
    "entity_id": {
      "state": {
        "No Problem": "Kein Problem"
      }
    }
  }
}

Also in the developer docs i have read that the state, name or whatever must be defined with a translation_key but i don't know how to use this.

I tried to translate the state from the Alert entities from No Problem into german but with the path from the HA developer docs it didn't work.

See commit 75d24684be26aa31d5ee66316f18f7984f1ec1f6 ; this works. I have added 'No problem'. Please create a new PR in case you would like to add more. But for me this not really a priority.

Ok, i will try that. Thanks. I understand this is not on your priority list at the moment, i'm just looking for things where i can support/make the integration a bit better without deep programmer knowledge 😉.

@kimzeuner - Can you check Discord when you have time? I have sent you some questions. Hope you can help.


kubernetes ignore labels and annotations if not set

close #1527
regression of #1510

Codecov Report
Base: 42.10% // Head: 42.05% // Decreases project coverage by -0.05% :warning:

Coverage data is based on head (13367d6) compared to base (bc87208).
Patch coverage: 0.00% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1528      +/-   ##
==========================================
- Coverage   42.10%   42.05%   -0.06%
==========================================
  Files         154      154
  Lines       10583    10585       +2
==========================================
- Hits         4456     4451       -5
- Misses       5845     5852       +7
  Partials      282      282

Impacted Files
Coverage Δ

pipeline/backend/kubernetes/kubernetes.go
0.00% <0.00%> (ø)

server/logging/log.go
48.83% <0.00%> (-5.82%)
:arrow_down:

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

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


[5.1] [Typechecker] Allow bridging of Unmanaged to Objective-C for throwing functions

Cherry-pick of #24135

Previously, we would emit an error diagnostic if a throwing @objc function returned Unmanaged<T>. This is now allowed when T is representable in Objective-C.
For example:
class Foo {}

@objc protocol Bar {
  func throwingMethod1() throws -> Unmanaged<CFArray> // ok
  func throwingMethod2() throws -> Unmanaged<Foo> // error
}

Resolves SR-9035.

cc @jrose-apple

@swift-ci Please test

Build failed
Swift Test Linux Platform
Git Sha - 277bb0f9baa7c9c183c9fc30109349ba7f1f7f49

Build failed
Swift Test OS X Platform
Git Sha - 277bb0f9baa7c9c183c9fc30109349ba7f1f7f49

:-( Looks like the IR looked different in 5.1. You'll have to update the test.

Ah, I didn't expect the IR to be slightly different. No worries, I have updated the test. Could you invoke the CI again? Thanks!

@swift-ci Please test

Thanks, @theblixguy!


CLEANUP for public release

Hi @gvisani here are some notes on ways to clean up this repo / make more useable
1. Might be good to have a "So You Want To Model a Specific Intervention" guide... could describe:

What does someone need to do to try out several different admissions scenarios
What does someone need to do to try out different transition probas? Durations?

2. Might be good to have a "So You Want To Make a Forecast on a New Dataset" guide... could be a checklist like:

[ ] Create folder of count data files in needed format
[ ] Decide on these settings (talk about what needs to go into config.json)
[ ] Run forecast using pretrained parameters from CA (show how to run it and interpret results)
[ ] Run ABC to specialize parameters to this specific region (describe what's needed to do that, point to other docs that give details)
---- How can they set priors? What should they know about defaults if they don't want to mess with this?
---- How can they adjust distance settings? What should they know about defaults if they don't want to mess with this?

3 Useability
Could there be a smarter "default" about warmup, so user doesn't have to decide on specific counts for the 4 previous days? What if we just defaulted to 1/P scaling for each of P previous days, and we suggest users pick P=4 or something. Then no counts need to be provided for anywhere but the daily_XYZ.csv files....
Essentially, instead of current config.json format, which has:
  "init_num_InGeneralWard": {"-4": 75, "-3": 75, "-2": 75, "-1": 75, "0": 79},
  "init_num_OffVentInICU": {"-4": 16, "-3": 16, "-2": 16, "-1": 16, "0": 16},

I'm wondering if we can just have a line like:
  "num_past_timesteps_for_warmup" = 4,
  "scale_factor_for_init_counts_in_warmup_period_before_day0" = {-3: 1/4, -2: 1/4, ... 0: 1/4}

4 Maintenance

[x] Can we remove PatientTrajectory.py entirely? Seems like that's not needed anymore, right? We use the simulate_traj.... scripts
[x] Can we remove the Snakemake stuff (from installation and from workflows)? Seems like we didn't really use that in the end
[x] for the provided datasets, can we remove the first (unnamed) column?

RE: Useability
When running forecasts using run_forecast.py, the daily_XYZ.csv file is not provided, as that file contains counts to fit parameters on. So, for the forecasts, the initial counts must be provided in some way. We could do something along the lines of:
"num_past_timesteps_for_warmup" = 4,
"init_num_InGeneralWard": X,
"init_num_OffVentInICU": Y,
"init_num_OnVentInICU": Z,
"scale_factor_for_init_counts_in_warmup_period_before_day0" = {-3: 1/4, -2: 1/4, ... 0: 1/4}

though I feel like we wouldn't be relieving users of that much work... let me know what you think.


fix(ipfs-coord): Removing dependnecy

:tada: This PR is included in version 1.5.2 :tada:
Your semantic-release bot :package::rocket:


Allow me to control the cache time based on the fresh value

Related to my use case in https://github.com/Xiphe/cachified/issues/24, if the user has a gravatar, then I'm happy to let that cache hang around for days. If they don't then I want to refresh it every 20 seconds. Maybe the ttl could accept a function which passes the current value if it's available and undefined if not?

Sounds like a useful addition! I'm gonna have a look into this within the next days

Could you give<EMAIL_ADDRESS>a try?
You can now patch the cache metadata during the getFreshValue call.
cachified({
  /* ... */
  ttl: 5,
  getFreshValue({ metadata }) {
    metadata.ttl = 10;
    return 'value'
  }
});

Thanks for working on this so quickly!
Hmmm... Interesting choice. Is there a reason you didn't go with making ttl a function that accepts the latest value as I suggested?

Yeah Multiple reasons.
First and foremost doing it this way was a tiny change
Also the internal pending value cache also uses the ttl. On an empty cache this would have lead to a situation where a ttl-function would be called once with no value to determine the time other calls would wait for the same pending value and a second time once we have the value.
Currently this system is transparent to the users and with this change users would need to know about it in order to understand why the ttl-function is called multiple times.
Last but not least this might solve cases like https://github.com/Xiphe/cachified/issues/16 (cc @garand) by overwriting the createdTime thereby dynamically increasing the ttl by the time it took to get a fresh value.
The approach might be a little more imperative then what you proposed but I like that in this case. In my mind it feels like initiating the call with a base set of assumptions and then while getting the fresh value we gain more knowledge and fine-tune some of our assumptions based on that.

Just tried it out and it's great 👍 Thanks!

Awesome! It's released now under v3.1.0


Memory limit problem

Faced an issue of "NoMemoryError" when running fias:import

NoMemoryError: failed to allocate memory
/home/vagrant/.rvm/gems/ruby-2.2.1/gems/pg_data_encoder-0.1.10/lib/pg_data_encoder/encode_for_copy.rb:21:in write' /home/vagrant/.rvm/gems/ruby-2.2.1/gems/pg_data_encoder-0.1.10/lib/pg_data_encoder/encode_for_copy.rb:21:in block in add'
/home/vagrant/.rvm/gems/ruby-2.2.1/gems/pg_data_encoder-0.1.10/lib/pg_data_encoder/encode_for_copy.rb:17:in each' /home/vagrant/.rvm/gems/ruby-2.2.1/gems/pg_data_encoder-0.1.10/lib/pg_data_encoder/encode_for_copy.rb:17:in each_with_index'
/home/vagrant/.rvm/gems/ruby-2.2.1/gems/pg_data_encoder-0.1.10/lib/pg_data_encoder/encode_for_copy.rb:17:in add' /home/vagrant/.rvm/gems/ruby-2.2.1/gems/fias-1.0.2/lib/fias/import/copy.rb:18:in block in encode'
/home/vagrant/.rvm/gems/ruby-2.2.1/gems/dbf-3.0.5/lib/dbf/table.rb:113:in `block in each'

By default it's writing DBF contents to StringIO, which size can't be more than 2**32 on 32-bit OS, so we are facing "Memory limit error" on https://github.com/pbrumm/pg_data_encoder/blob/master/lib/pg_data_encoder/encode_for_copy.rb#L21
Solved this by adding use_tempfile: true to https://github.com/evilmartians/fias/blob/master/lib/fias/import/copy.rb#L11
Another solution is to dump every, say, 1 mil of records from dbf to pg (we are facing problem at 1.4mil+)

Well, I think, tempfile might slow import down. Batches may be better.

Anyway, I've got memory limit error on step 3 (rebuild hierarchy), so installing x64 now :) At least we should warn users about that issues

:-) Yeah, could you add warning to README. I will try to take a look on batching in this week.


Change BP_SimpleButton to BP_ButtonHololens2

Fixes #53

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

This has already been resolved in another PR


[Question] Not all effects work in Space Camerar - Overlay?

Hi, I have been playing around with the UI Effects and I'm getting different experiences between the editor view and the play view.
In particular related to glows and other effects.
It seems that some effects only work in screen space = Worls or Camera and others will only work partially in screen space = Overlay and some will not even work in screen space = Overlay.
Is my understanding correct? are these effects documented or is there an easy way to know which ones will fully work in screen space Overlay ?
Thank in advance.

Thank you for your reporting!
Hmm, it's strange. UIEffect should support all render modes.
Tell me about your develop/build environment.

UIEffect version [e.g. 5.0.0]
Platform: [e.g. Editor(Windows/Mac), Standalone(Windows/Mac), iOS, Android, WebGL]
Unity version: [e.g. 2022.2.0f1]
Build options: [e.g. IL2CPP, .Net 4.x, URP/HDRP]

Could you please attach a minimal project (included Assets, Packages and ProjectSettings directories) that reproduces the issue?
Of course, you don't need to include any secret assets from your project. Feel free to use free assets instead.

For example, this is a demo scene. (Editor (Mac), Unity 2021.3.30f1, URP 15.0.7)

Here is a test scene.
Test-Scene.zip
You need to install the UIEffects asset (not included in the package
I'm currently using this on:

Other details:

Unity 6 LTS
Windows 11 64bits
UIEffects v5.0.0
URP
(if you need more information please let me know what)

The scene has 2 canvas: one Overlay and one Camera
I duplicated the components and placed them on both cavas to see the difference.
You can see that in the Overlay one, not all works and between editor window and camera window, the Overlay shows differences

I have also included a post-processing (volume) component otherwise anything related with glow will not work even in the camera mode canvas.
hope it helps.

Hmm, as far as I know, Screen Space - Overlay canvas does not support HDR colors or PostProcessing.
Additionally, the scene view camera settings are based on the camera with MainCamera tag.
As a test, try turning off Output > HDR Rendering in the Camera inspector.
The same results will be displayed in both the Game View and the Scene View.

If you want PostProcessing (and HDR colors), please use Screen Space - Camera.

kk thanks


[drogon:x64-osx] build failure

Host Environment

OS: MacOS 10.15.6
Compiler: Apple clang v. 11.0.3

To Reproduce
Steps to reproduce the behavior:
./vcpkg install drogon:x64-osx
The failure seems to happen when building mariadb.
Failure logs
[106/107] : && /Library/Developer/CommandLineTools/usr/bin/clang++  -fPIC -g -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names -L/usr/local/opt/icu4c/lib drogon_ctl/CMakeFiles/drogon_ctl.dir/cmd.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/create.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/create_controller.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/create_filter.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/create_model.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/create_plugin.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/create_project.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/create_view.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/help.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/main.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/press.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/version.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/cmake.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/config.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/demoMain.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/filter_cc.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/filter_h.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/gitignore.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/model_cc.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/model_h.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/model_json.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/plugin_cc.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/plugin_h.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/restful_controller_base_cc.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/restful_controller_base_h.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/restful_controller_cc.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/restful_controller_custom_cc.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/restful_controller_custom_h.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/restful_controller_h.cc.o  -o drogon_ctl/drogon_ctl  libdrogon.a  /usr/local/vcpkg/installed/x64-osx/debug/lib/libtrantor.a  /usr/local/vcpkg/installed/x64-osx/debug/lib/libcares.a  -lpthread  /usr/local/vcpkg/installed/x64-osx/debug/lib/libjsoncpp.a  /usr/local/vcpkg/installed/x64-osx/debug/lib/libuuid.a  /usr/local/vcpkg/installed/x64-osx/debug/lib/libpq.dylib  /usr/local/vcpkg/installed/x64-osx/debug/lib/libmariadbclient.a  /usr/local/vcpkg/installed/x64-osx/debug/lib/libsqlite3.a  /usr/local/vcpkg/installed/x64-osx/debug/lib/libz.a  /usr/local/vcpkg/installed/x64-osx/debug/lib/libssl.a  /usr/local/vcpkg/installed/x64-osx/debug/lib/libcrypto.a  -ldl && :
FAILED: drogon_ctl/drogon_ctl
: && /Library/Developer/CommandLineTools/usr/bin/clang++  -fPIC -g -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names -L/usr/local/opt/icu4c/lib drogon_ctl/CMakeFiles/drogon_ctl.dir/cmd.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/create.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/create_controller.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/create_filter.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/create_model.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/create_plugin.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/create_project.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/create_view.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/help.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/main.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/press.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/version.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/cmake.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/config.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/demoMain.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/filter_cc.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/filter_h.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/gitignore.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/model_cc.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/model_h.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/model_json.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/plugin_cc.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/plugin_h.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/restful_controller_base_cc.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/restful_controller_base_h.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/restful_controller_cc.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/restful_controller_custom_cc.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/restful_controller_custom_h.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/restful_controller_h.cc.o  -o drogon_ctl/drogon_ctl  libdrogon.a  /usr/local/vcpkg/installed/x64-osx/debug/lib/libtrantor.a  /usr/local/vcpkg/installed/x64-osx/debug/lib/libcares.a  -lpthread  /usr/local/vcpkg/installed/x64-osx/debug/lib/libjsoncpp.a  /usr/local/vcpkg/installed/x64-osx/debug/lib/libuuid.a  /usr/local/vcpkg/installed/x64-osx/debug/lib/libpq.dylib  /usr/local/vcpkg/installed/x64-osx/debug/lib/libmariadbclient.a  /usr/local/vcpkg/installed/x64-osx/debug/lib/libsqlite3.a  /usr/local/vcpkg/installed/x64-osx/debug/lib/libz.a  /usr/local/vcpkg/installed/x64-osx/debug/lib/libssl.a  /usr/local/vcpkg/installed/x64-osx/debug/lib/libcrypto.a  -ldl && :
Undefined symbols for architecture x86_64:
"_iconv", referenced from:
_mariadb_convert_string in libmariadbclient.a(ma_charset.c.o)
"_iconv_close", referenced from:
_mariadb_convert_string in libmariadbclient.a(ma_charset.c.o)
"_iconv_open", referenced from:
_mariadb_convert_string in libmariadbclient.a(ma_charset.c.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.
Additional context
This is a semi-common issue on OSX if you have installed macports. However, I do not have macports installed on my machine.

Hi @juliankrieger
Thanks for posting this issue.
It seems to be a source bug, which was also posted in upstream https://github.com/an-tao/drogon/issues/536#issuecomment-676839057.
@an-tao
Could you please help take a look about this issue?
I checked the source code and didn't find mariadb  used in CMakeLists. Although we have added libmariadb to the dependency list, it still wasn't linked by drogon. So I wonder if there is something wrong with the usage of mariadb .
Thanks.

I can't reproduce the error on my OSX, this may be related to #13007, please try to run ./vcpkg upgrade libmariadb --no-dry-run and then install drogon again.

Hi @an-tao
Thanks for your suggestion. I tried to rebuild this according to your guidelines and failed with the same error.
Then I clone a new repo to build, it still failed:
 Undefined symbols for architecture x86_64:
161   "_iconv", referenced from:
162       _mariadb_convert_string in libmariadbclient.a(ma_charset.c.o)
163   "_iconv_close", referenced from:
164       _mariadb_convert_string in libmariadbclient.a(ma_charset.c.o)
165   "_iconv_open", referenced from:
166       _mariadb_convert_string in libmariadbclient.a(ma_charset.c.o)
167   "_pg_b64_dec_len", referenced from:
168       _read_server_first_message in libpq.a(fe-auth-scram.o)
169       _read_server_final_message in libpq.a(fe-auth-scram.o)
170   "_pg_b64_decode", referenced from:
171       _read_server_first_message in libpq.a(fe-auth-scram.o)
172       _read_server_final_message in libpq.a(fe-auth-scram.o)
173   "_pg_b64_enc_len", referenced from:
174       _build_client_first_message in libpq.a(fe-auth-scram.o)
175       _build_client_final_message in libpq.a(fe-auth-scram.o)
176   "_pg_b64_encode", referenced from:
177       _build_client_first_message in libpq.a(fe-auth-scram.o)
178       _build_client_final_message in libpq.a(fe-auth-scram.o)
179   "_pg_fprintf", referenced from:
180       _pqSaveParameterStatus in libpq.a(fe-exec.o)
181       _default_threadlock in libpq.a(fe-connect.o)
182       _passwordFromFile in libpq.a(fe-connect.o)
183       _defaultNoticeProcessor in libpq.a(fe-connect.o)

@Arves100 we need help about the iconv issue in libmariadb, my framework drogon depends on libmariadb and it can be built successfully on Windows but failed on linux and osx, after some investigations, I found the libiconv is not in the dependces list of libmariadb, so I guess when installing libmariadb on Macos, the HAVE_ICONV macro is enabled and the compiler can find the 'iconv.h' file in my system include directory(not in vcpkg), I'm not sure about this, please give me some hints, thanks so much in advance.

Hello, after a quick investigation MariaDB does not use libiconv under Windows (this explains why it can be built correctly under Windows).
This seems to be related that cmake cannot find the library libiconv, so it suppose that it is integrated inside libc.
So the solution should just be building libiconv under non-Windows platform (assuming it would work like zlib did)

Thanks for the quick reply, I notice that there is a 'WITH_ICONV' option being added in the commit 7052619cc4b447da54a0b1458e096bb8dc4b3c77 on Sep 14, so I guess this issue will be resolved if the libmariadb is upgraded to the latest version, am I right?

WITH_ICONV is supported since version 3.1.10, so upgrading the version and adding iconv as a feature should fix the issue. We're currently in v3.1.7.

if WITH_ICONV is enabled, should a configuration file like FindLibmariadbConfig.cmake be installed into vcpkg for users to add dependencies of libmariadb? otherwise I have to add a FindIconv.cmake to my port.
I am very willing to help but I am not familiar with libmariadb. I'm looking forward to the update. Thank you.

It should automatically link iconv because it's set as a dependency on libmariadb. That's something vcpkg is doing by default.

It should automatically link iconv because it's set as a dependency on libmariadb. That's something vcpkg should be doing by default.

Great! thank you

Seems we need to resolve the problems on libmariadb first.
For libmariadb, upgrade it to the latest version 3.1.10 and add iconv as a feature. drogon  should depend on libmariadb[iconv] to build on Linux and OSX.
For libpq, the usage find_package(PostgreSQL)  is right. But it seems that there is lack of the linkage for libpq in  this part drogon_ctl/drogon_ctl.
 FAILED: drogon_ctl/drogon_ctl
159 : && /Library/Developer/CommandLineTools/usr/bin/c++  -fPIC -g -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk -Wl,-search_paths_first     -Wl,-headerpad_max_install_names  drogon_ctl/CMakeFiles/drogon_ctl.dir/cmd.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/create.cc.o drogon_ctl/CMakeFiles/d    rogon_ctl.dir/create_controller.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/create_filter.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/create_model.cc.o drogo    n_ctl/CMakeFiles/drogon_ctl.dir/create_plugin.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/create_project.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/create_v    iew.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/help.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/main.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/press.cc.o dr    ogon_ctl/CMakeFiles/drogon_ctl.dir/version.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/cmake.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/config.cc.o drogon_c    tl/CMakeFiles/drogon_ctl.dir/demoMain.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/filter_cc.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/filter_h.cc.o drogon_    ctl/CMakeFiles/drogon_ctl.dir/gitignore.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/model_cc.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/model_h.cc.o drogon_    ctl/CMakeFiles/drogon_ctl.dir/model_json.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/plugin_cc.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/plugin_h.cc.o drog    on_ctl/CMakeFiles/drogon_ctl.dir/restful_controller_base_cc.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/restful_controller_base_h.cc.o drogon_ctl/CMakeFile    s/drogon_ctl.dir/restful_controller_cc.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/restful_controller_custom_cc.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/r    estful_controller_custom_h.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/restful_controller_h.cc.o  -o drogon_ctl/drogon_ctl  libdrogon.a  /Users/vcpkg/Nancy    /vcpkg/installed/x64-osx/debug/lib/libtrantor.a  /Users/vcpkg/Nancy/vcpkg/installed/x64-osx/debug/lib/libcares.a  -lpthread  /Users/vcpkg/Nancy/vcpkg/ins    talled/x64-osx/debug/lib/libjsoncpp.a  /Users/vcpkg/Nancy/vcpkg/installed/x64-osx/debug/lib/libuuid.a  /Users/vcpkg/Nancy/vcpkg/installed/x64-osx/debug/l    ib/libpq.a  /Users/vcpkg/Nancy/vcpkg/installed/x64-osx/debug/lib/libmariadbclient.a  /Users/vcpkg/Nancy/vcpkg/installed/x64-osx/debug/lib/libsqlite3.a  /    Users/vcpkg/Nancy/vcpkg/installed/x64-osx/debug/lib/libz.a  /Users/vcpkg/Nancy/vcpkg/installed/x64-osx/debug/lib/libssl.a  /Users/vcpkg/Nancy/vcpkg/insta    lled/x64-osx/debug/lib/libcrypto.a  -ldl && :
160 Undefined symbols for architecture x86_64:
161   "_iconv", referenced from:
162       _mariadb_convert_string in libmariadbclient.a(ma_charset.c.o)
163   "_iconv_close", referenced from:
164       _mariadb_convert_string in libmariadbclient.a(ma_charset.c.o)
165   "_iconv_open", referenced from:
166       _mariadb_convert_string in libmariadbclient.a(ma_charset.c.o)
167   "_pg_b64_dec_len", referenced from:
168       _read_server_first_message in libpq.a(fe-auth-scram.o)
169       _read_server_final_message in libpq.a(fe-auth-scram.o)
170   "_pg_b64_decode", referenced from:
171       _read_server_first_message in libpq.a(fe-auth-scram.o)
172       _read_server_final_message in libpq.a(fe-auth-scram.o)
173   "_pg_b64_enc_len", referenced from:
174       _build_client_first_message in libpq.a(fe-auth-scram.o)
175       _build_client_final_message in libpq.a(fe-auth-scram.o)
176   "_pg_b64_encode", referenced from:
177       _build_client_first_message in libpq.a(fe-auth-scram.o)
178       _build_client_final_message in libpq.a(fe-auth-scram.o)
179   "_pg_fprintf", referenced from:
180       _pqSaveParameterStatus in libpq.a(fe-exec.o)
181       _default_threadlock in libpq.a(fe-connect.o)
182       _passwordFromFile in libpq.a(fe-connect.o)
183       _defaultNoticeProcessor in libpq.a(fe-connect.o)

Since I'm not familiar with this implemention. Maybe there is something else with this problem. We need to do further investigation about this.

@NancyLi1013 Thanks for your reply. I think the libpq.a is added to the link list.

Hi @an-tao
Seems the current fix for libpq is not suitable. I try to remove pg.patch and update this part as follows:
  # find postgres
  find_package(pg)
  if(pg_FOUND)
    message(STATUS "libpq inc path:" ${PG_INCLUDE_DIRS})
    message(STATUS "libpq lib:" ${PG_LIBRARIES})
    target_link_libraries(${PROJECT_NAME} PRIVATE pg_lib)
...
endif(pg_FOUND)

as
 # find postgres
  find_package(PostgreSQL)
  if(PostgreSQL_FOUND)
    message(STATUS "libpq inc path:" ${PostgreSQL_INCLUDE_DIRS})
    message(STATUS "libpq lib:" ${PostgreSQL_LIBRARIES})
    target_link_libraries(${PROJECT_NAME} PRIVATE ${PostgreSQL_LIBRARIES})
...
endif(PostgreSQL_FOUND)

The error about libpq  disappered and seems only need to fix libmariadb now.
Undefined symbols for architecture x86_64:
161   "_iconv", referenced from:
162       _mariadb_convert_string in libmariadbclient.a(ma_charset.c.o)
163   "_iconv_close", referenced from:
164       _mariadb_convert_string in libmariadbclient.a(ma_charset.c.o)
165   "_iconv_open", referenced from:
166       _mariadb_convert_string in libmariadbclient.a(ma_charset.c.o)
167 ld: symbol(s) not found for architecture x86_64
168 clang: error: linker command failed with exit code 1 (use -v to see invocation)
169 ninja: build stopped: subcommand failed.

Could you please help check this again?

@NancyLi1013 Thanks so much for your solution, it works on my local host. Now we need to wait the update of libmariadb.

I will try to update libmariadb as soon as possible.

Hi @an-tao
I have submitted a PR #14121 to update libmariadb. After this PR merged, we can try to update the patch and dependency for drogon.
I have tested this on my local machine and drogon can build fine on osx.

@NancyLi1013 Thanks so much.

@NancyLi1013 Have you tested it on Linux? I think we better test drogon and libmariadb on Linux as well.

Thanks for your kindly reminder. I will test it on Linux today.

Seems iconv is only required on osx. I try to build on Linux, there is no error about iconv, only something wrong with libpq. The same fix as that in osx, just need to update the patch for the usage of libpq.

@NancyLi1013 Thanks so much.

libmariadb has been updated to 3.1.10 in master.
Would you like to make a PR to fix this issue for drogon if possible? Please let me know if you're willing to do this.

@NancyLi1013 Thanks so much. I've made a PR (#14148) to fix this issue.

@NancyLi1013 Now drogon can be installed successfully on linux and OSX with the latest vckpg, but on Windows, there are some link errors with libmariadb, please take a took at it, thanks.
estful_controller_base_cc.cc.obj drogon_ctl\CMakeFiles\drogon_ctl.dir\restful_controller_base_h.cc.obj drogon_ctl\CMakeFiles\drogon_ctl.dir\restful_controller_cc.cc.obj drogon_ctl\CMakeFiles\drogon_ctl.dir\restful_controller_custom_cc.cc.obj drogon_ctl\CMakeFiles\drogon_ctl.dir\restful_controller_custom_h.cc.obj drogon_ctl\CMakeFiles\drogon_ctl.dir\restful_controller_h.cc.obj /out:drogon_ctl\drogon_ctl.exe /implib:drogon_ctl\drogon_ctl.lib /pdb:drogon_ctl\drogon_ctl.pdb /version:0.0 /machine:X86 /nologo /debug /INCREMENTAL /subsystem:console drogon.lib ws2_32.lib Rpcrt4.lib C:\Users\antao\vcpkg\installed\x86-windows\debug\lib\trantor.lib ws2_32.lib Rpcrt4.lib C:\Users\antao\vcpkg\installed\x86-windows\debug\lib\cares.lib shlwapi.lib C:\Users\antao\vcpkg\installed\x86-windows\debug\lib\jsoncpp.lib C:\Users\antao\vcpkg\installed\x86-windows\debug\lib\brotlicommon.lib C:\Users\antao\vcpkg\installed\x86-windows\debug\lib\brotlidec.lib C:\Users\antao\vcpkg\installed\x86-windows\debug\lib\brotlienc.lib C:\Users\antao\vcpkg\installed\x86-windows\debug\lib\libpq.lib C:\Users\antao\vcpkg\installed\x86-windows\debug\lib\mariadbclient.lib C:\Users\antao\vcpkg\installed\x86-windows\debug\lib\sqlite3.lib C:\Users\antao\vcpkg\installed\x86-windows\debug\lib\zlibd.lib C:\Users\antao\vcpkg\installed\x86-windows\debug\lib\libssl.lib C:\Users\antao\vcpkg\installed\x86-windows\debug\lib\libcrypto.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTFILE:drogon_ctl\CMakeFiles\drogon_ctl.dir/intermediate.manifest drogon_ctl\CMakeFiles\drogon_ctl.dir/manifest.res" failed (exit code 1120) with the following output:
mariadbclient.lib(schannel.c.obj) : error LNK2019: unresolved external symbol __imp__CertFreeCertificateContext@4 referenced in function _ma_tls_get_finger_print
mariadbclient.lib(ma_schannel.c.obj) : error LNK2001: unresolved external symbol __imp__CertFreeCertificateContext@4
mariadbclient.lib(schannel_certs.c.obj) : error LNK2001: unresolved external symbol __imp__CertFreeCertificateContext@4
mariadbclient.lib(schannel.c.obj) : error LNK2019: unresolved external symbol __imp__CertGetCertificateContextProperty@16 referenced in function _ma_tls_get_finger_print
mariadbclient.lib(schannel_certs.c.obj) : error LNK2001: unresolved external symbol __imp__CertGetCertificateContextProperty@16
mariadbclient.lib(schannel.c.obj) : error LNK2019: unresolved external symbol _AcquireCredentialsHandleA@36 referenced in function _ma_tls_connect
mariadbclient.lib(schannel.c.obj) : error LNK2019: unresolved external symbol __imp__FreeCredentialsHandle@4 referenced in function _ma_tls_close
mariadbclient.lib(schannel.c.obj) : error LNK2019: unresolved external symbol __imp__DeleteSecurityContext@4 referenced in function _ma_tls_close
mariadbclient.lib(ma_schannel.c.obj) : error LNK2001: unresolved external symbol __imp__DeleteSecurityContext@4
mariadbclient.lib(schannel.c.obj) : error LNK2019: unresolved external symbol _QueryContextAttributesA@12 referenced in function _ma_tls_get_cipher
mariadbclient.lib(ma_schannel.c.obj) : error LNK2001: unresolved external symbol _QueryContextAttributesA@12
mariadbclient.lib(ma_schannel.c.obj) : error LNK2019: unresolved external symbol _InitializeSecurityContextA@48 referenced in function _ma_schannel_client_handshake
mariadbclient.lib(ma_schannel.c.obj) : error LNK2019: unresolved external symbol _FreeContextBuffer@4 referenced in function _ma_schannel_client_handshake
mariadbclient.lib(ma_schannel.c.obj) : error LNK2019: unresolved external symbol _EncryptMessage@16 referenced in function _ma_schannel_write_encrypt
mariadbclient.lib(ma_schannel.c.obj) : error LNK2019: unresolved external symbol _DecryptMessage@16 referenced in function _ma_schannel_read_decrypt
mariadbclient.lib(schannel_certs.c.obj) : error LNK2019: unresolved external symbol __imp__CryptDecodeObjectEx@32 referenced in function _load_private_key
mariadbclient.lib(schannel_certs.c.obj) : error LNK2019: unresolved external symbol __imp__CertOpenStore@20 referenced in function _schannel_create_store
mariadbclient.lib(schannel_certs.c.obj) : error LNK2019: unresolved external symbol __imp__CertDuplicateStore@4 referenced in function _schannel_create_store
mariadbclient.lib(schannel_certs.c.obj) : error LNK2019: unresolved external symbol __imp__CertCloseStore@8 referenced in function _schannel_create_store
mariadbclient.lib(schannel_certs.c.obj) : error LNK2019: unresolved external symbol __imp__CertEnumCertificatesInStore@8 referenced in function _count_certificates
mariadbclient.lib(schannel_certs.c.obj) : error LNK2019: unresolved external symbol __imp__CertSetCertificateContextProperty@16 referenced in function _load_private_key
mariadbclient.lib(schannel_certs.c.obj) : error LNK2019: unresolved external symbol __imp__CertFreeCRLContext@4 referenced in function _add_certs_to_store
mariadbclient.lib(schannel_certs.c.obj) : error LNK2019: unresolved external symbol __imp__CertAddCertificateContextToStore@16 referenced in function _add_certs_to_store
mariadbclient.lib(schannel_certs.c.obj) : error LNK2019: unresolved external symbol __imp__CertAddCRLContextToStore@16 referenced in function _add_certs_to_store
mariadbclient.lib(schannel_certs.c.obj) : error LNK2019: unresolved external symbol __imp__CryptQueryObject@44 referenced in function _add_certs_to_store
mariadbclient.lib(schannel_certs.c.obj) : error LNK2019: unresolved external symbol __imp__CertCreateCertificateChainEngine@8 referenced in function _VerifyServerCertificate
mariadbclient.lib(schannel_certs.c.obj) : error LNK2019: unresolved external symbol __imp__CertFreeCertificateChainEngine@4 referenced in function _VerifyServerCertificate
mariadbclient.lib(schannel_certs.c.obj) : error LNK2019: unresolved external symbol __imp__CertGetCertificateChain@32 referenced in function _VerifyServerCertificate
mariadbclient.lib(schannel_certs.c.obj) : error LNK2019: unresolved external symbol __imp__CertFreeCertificateChain@4 referenced in function _VerifyServerCertificate
mariadbclient.lib(schannel_certs.c.obj) : error LNK2019: unresolved external symbol __imp__CertVerifyCertificateChainPolicy@16 referenced in function _VerifyServerCertificate
mariadbclient.lib(schannel_certs.c.obj) : error LNK2019: unresolved external symbol __imp__CryptStringToBinaryA@28 referenced in function _load_private_key
drogon_ctl\drogon_ctl.exe : fatal error LNK1120: 26 unresolved externals
ninja: build stopped: subcommand failed.

@an-tao
Thanks for posting this out. I will try to investigate this issue.

There is another issue #12809 opened for drogon on Windows platform.
I think we can track this issue there #12809 since the problem on osx has solved now.
I close this issue.


Regenerating EventGrid with latest versions fails on java 17

In EventGrid I have a customization:
https://github.com/Azure/azure-sdk-for-java/blob/83e508e207201ad49d364abd8cc1537916e44264/sdk/eventgrid/azure-messaging-eventgrid/swagger/src/main/java/EventGridCustomization.java#L395
When using 4.1.25 of autorest.java on Java 17, I get a failure:
java.lang.RuntimeException: java.lang.IllegalArgumentException: Method String isRecursive( does not exist in class StorageDirectoryDeletedEventData
        at com.azure.autorest.customization.Customization.run(Customization.java:52)
        at com.azure.autorest.postprocessor.Postprocessor.postProcess(Postprocessor.java:99)
        at com.azure.autorest.Javagen.processInternal(Javagen.java:90)
        at com.azure.autorest.extension.base.plugin.NewPlugin.process(NewPlugin.java:214)
        at com.azure.autorest.Main.lambda$main$1(Main.java:15)
        at com.azure.autorest.extension.base.jsonrpc.Connection.lambda$dispatch$2(Connection.java:141)
        at com.azure.autorest.extension.base.jsonrpc.Connection.lambda$process$3(Connection.java:245)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.base/java.lang.Thread.run(Thread.java:833)

If I switch to Java 11, it works.
repro:

Build EventGrid
In sdk\eventgrid\azure-messaging-eventgrid\swagger, run autorest readme.md

When I was running regen on OpenAI via typespec-java under Java 21, the JAR part seems running forever.
Not urgent, just it occurred to me that customization could be the cause, after half an hour :-)


Route planner - surface profile

Show percentages paved/unpaved in the planned route.

Implemented in release 3.0.0-alpha-23.


Container Farm for UI Testing

I've been running a small lab environment for testing, but it's not good for testing at scale. Want to set up a 20-30 container test bench for some real testing, and maybe pick up any scaling issues.

as per #23 , make sure this test environment includes multiple routes.


docs: Spelling mistakes correction

Corrected some spelling mistakes in code comments

Thanks!

:tada: This PR is included in version 3.10.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Allow clippy lint

In the last clippy version it seems there is a new lint or an update of it unwrap_or_default.
Code from zcashd will trigger the lint will will make the CI fail: https://github.com/zcash/zcash/blob/v5.7.0/src/rust/src/wallet.rs#L540
This pull request will allow the lint until it is fixed.

I think it's better to allow it in lib.rs so that it works everywhere and not only in our CI. Since I had already made the change to test it I went ahead and committed it, let me know if you agree with it @oxarbitrage

Yea, sorry, i didn't knew we had that. Thanks for the fix.