Favourites button on manga cards in lists

Add a favorite button / icon on all manga cards for quick favouriting.

Should be contextually aware of whether the manga is already favourited and toggle it off instead.
should not interfere with cards “click-lability” as the entire card is currently an anchor tag.

This is now implemented. Clicking the "heart" or "heart-minus" icon on cards will now favourite and un-favourite manga from the users account.
You have to be logged in to see it and the stats object has to be passed to the card otherwise it considers it unfavourited by default.


specify maven settings.xml for cli

If I run the tool from CLI to check a pom.xml file, how can I specify the location of settings.xml file (~/.m2/settings.xml)? I have two different private maven repositories specified in there to get the dependencies and transient dependencies, which are currently not scanned.

 From a pom.xml it only harvests some evidencers about the project itself, not about dependencies, as trying to do that would require us to rebuild all of Maven in the CLI.
To check a pom.xml you should use the maven plugin:
mvn org.owasp:dependency-check-maven:11.1.0:check

I thought so, but I wanted to confirm. Thanks!


error during generation

Hi!
*** Open Babel Warning  in PerceiveBondOrders
Failed to kekulize aromatic bonds in OBMol::PerceiveBondOrders (title is 7s1s.pdb)
RuntimeError: Reduce returned return code 127 when running 'reduce -Trim /tmp/7s1s_2_obabel.pdb > /tmp/7s1s_2_obabel_reduce_tmp.pdb'
happens during generation

Hello,
I am dealing with this error as well. Is there a solution @orgw?
Best,
Talal

Apologies Jos,
When I added my comment I hadn't realized I didn't have reduce installed, didn't catch that instruction in the README till after, I'm assuming this was @orgw's issue as well given we had the same exit code.
Best,
Talal


Guidance about Registries for production clusters

In https://kubernetes.io/docs/setup/production-environment/ page (or somewhere), we should have guidance around:

Why folks should have their own registries?
What are the options?
What are the risks of not doing so?
How to set up mirrors in their CRI runtime etc.

thanks!

/label sig-docs

@chrisnegus FYI

/sig cluster-lifecycle
/triage accepted
/priority important-soon

/sig docs

You're very welcome to work on this @chrisnegus
Anyone else who wants to work on this: you're also welcome; please try to liaise with @chrisnegus rather than working solo - that's strongly encouraged, but not mandatory.

I would love to help on this @chrisnegus .

@jeremyricka Excellent. I'll contact you.

/remove-priority important-soon
/priority important-longterm
The registry change has largely happened.

Is this issue completed? @chrisnegus  @jeremyricka

@sftim are you still interested in completing this one?

We have a policy of "no cookie licking"; anyone can help with any issue. It's polite to ask first, but in this case I never actually expressed an interest.
If anything @mrgiles, you'd check with @chrisnegus. But you can also just start work.
/remove-lifecycle rotten
/lifecycle stale

Thanks for your reply @sftim. Yes, I'm familiar with the "cookie" policy by now.
What I meant to ask is if you still wanted this issue to be fixed, since it's been open for such a long time. I'll write a draft to see if we can close it.

Yes; this is still an important bit of guidance to provide.

/assign

/remove-lifecycle stale


OracleDB dashboard

Hi,
where can I find some OracleDB dashboard for DBeaver?
In "Manage Dashboard" there are only Exasol, MySQL and PostgreSQL.
Is there a DBeaver plugin with specific queries for db administrator with related dashboard?

Hi @Ferrox12 ,
Oracle default dashboards are available in EE version only.
BTW, you could create them yourself (https://github.com/dbeaver/dbeaver/wiki/Dashboards#creating-dashboards)
BR


Adding French book Maitriser Bitcoin

What does this PR do?
Add resource & Improve repo

Add French book Maitriser Bitcoin by Andreas M. Antonopoulos and translated by Serafim Dos Santos (me)
C / C++ section was mistakenly misplaced (was after "Caml / OCaml" section, but comes alphabetically before)

For resources
Description
The French book Maîtriser Bitcoin: Programmer la chaîne de blocs publique is the translation of the English book Mastering Bitcoin: Programming the open blockchain by Andreas M. Antonopoulos and translated in French (Canada) by Serafim Dos Santos (me).
Why is this valuable (or not)?
Mastering Bitcoin and its French version Maîtriser Bitcoin is a book for developers, although the first two chapters cover bitcoin at a level that is also approachable to non-programmers. Anyone with a basic understanding of technology can read the first two chapters to get a great understanding of bitcoin.
How do we know it's really free?
The original English book Mastering Bitcoin is available as an Open Edition translatable by anyone (see github.com/bitcoinbook/bitcoinbook ). The French version of the book is available for free on one of my organizations (see maitriser-ca.github.io/LivreMaitriserBitcoin/ )
For book lists, is it a book? For course lists, is it a course? etc.
It's a book available in asciidoc and HTML for online reading or PDF generation.
Checklist:

[x] Read our contributing guidelines
[x] Search for duplicates.
[x] Include author(s) and platform where appropriate.
[x] Put lists in alphabetical order, correct spacing.
[x] Add needed indications (PDF, access notes, under construction)

Nice!


debouncer more robust

Fixes issue where debouncer may be triggered even though the model hasn't been touched.

I approve of this product and/or service.

hmm...this seems like a hack.  the event is firing...the field is $dirty at that point.

Ok I replaced the hack with a more complex hack :)  Please review and test with IE because currently can't access IE on my Mac.

@ivern waiting on you to verify then we can cut a release


Modal is responsive but background (when modal is activated) is not

Description
Apparently modal is responsive but background (when modal is activated) is not. I tested it using the modal declaration inside header, footer, body and main tags, with no positive results. Any idea of how to solve this?
Thanks! 👍
Repro Steps

Open modal

Resize the window. The modal is responsive, but the background is not.

Close modal, and background resizes to full width.

It's because when u open the modal or click the modal trigger, idk somewhere in js file tell the body element to has a fixed width as your current browser width. But when I deleted the width from inspect element, everything is fine as u want. now im tryin to find where is the code.

@andikahmadr7 I was reading about this, and as you say, the modal's width is controlled by the js, could be better a css solution for this?

I'm fairly sure this is to maintain the body position since the scrollbar is hidden. It isn't aesthetically pleasing I agree. Perhaps a better option would be to use the calc() CSS function. They could get the page width with the scrollbar... remove the scrollbar and get the width then subtract them from one another and put that as the css value of calc(100% - scrollbar_width).

@Leafino Could you do a pull request or something?

Fixed with modal rewrite


Import of mesh including radiation fails

I recently created some thermal simulation cases that include radiation boundary conditions, exported the corresponding mesh to a CDB file and tried to read it using the Archive class:
from ansys.mapdl import reader as pymapdl_reader
arcv = pymapdl_reader.Archive("ErnoRadiation.CDB", parse_vtk=False)

For some cases the reader will then freeze. If I suppress the radiation bc, the mesh is read smoothly.
I was able to boil the effect down to a very simple testcase that I attached.
Cube.zip

Sorry this one took so long to get to.  I should be more careful when saying "over the weekend".
Bug is related to the placement of the RLBLOCK reader.  File reads correctly now, and be on the lookout the next release ansys-mapdl-reader, which should be out by the end of today.

No problem at all.
Getting the solution served on a (release-) plate after less then two weeks is still a wonderful response time and kind of support.
I can indeed confirm that my testcase now gets read exactly as expected. I'll move on to the more realistic geometries next.
Thank you very much for your fix, your work on this tool is very much appreciated!


Support axes argument in transpose

One often needs to convert images (stored in ndarrays) between formats like HWC (height/width/channel) and CHW, when working with deep learning frameworks like TensorFlow and PyTorch. This requires permutations of axes which transpose provides with the optional axes argument.

@agayev

The output array of transpose is possibly neither C layout nor F layout if we return a view. Can Numba handle this? @sklam @stuartarchibald
We might need to copy the data. @agayev

@ehsantn, Yes, numba has a 'A' for "any" layout for arbitrarily strided array.

@sklam Ok, thanks. I thought 'A' layout has to be resolved to 'C' or 'F' after type inference.
We assume 'C' layout in ParallelAccelerator which needs to be fixed.


Allow python.pythonPath setting to have platform specific values

I use python both on Linux and Windows and share my VS Code config between both my OSes using symlinks. Today I opened a dummy project I use for simple python scripting on Linux, that was previously opened on Windows and had its Interpreter path set to python path on my Windows.
That was when I realized there's no option to set python path per OS (even on user-level settings) and the only option seems to be using separate VS Code configurations per OS, as expected by default.
I don't think it's much of a hassle to add support for parsing an object like the following for python path setting, in addition to supporting the simple string it supports right now  :
"python.pythonPath": {
    "linux": "python/path/on/linux",
    "windows": "python/path/on/windows",
    "osx": "python/path/on/osx"
}

Hi @Marshal313!
We're deprecating python.pythonPath setting with #10375, moving it out of workspace settings.  We will let it live in the user setting scope, but this feature request in specific would be better handled by VS Code. So I'm closing this in favour of https://github.com/microsoft/vscode/issues/5595.
Thanks! 😊


[nrfconnect] Added support for sharing QR Code payload using NFC.

Problem
In some use cases it would be better to share CHIP device information
to the device running CHIPTool app, using NFC tag instead of QR Code
(e.g. because it is more secure and device doesn't need to have display).
Summary of changes

Added NFCWidget component, which is implementation of NFC Tag sharing QR code payload.
Modified QRCodeUtil module to allow getting QR Code and not only printing it.
Added Kconfig option to enable NFC support.
Implemented using NFC Tag in lock-app and lighting-app examples.

Good job +1
I miss one logic, to turn off NFC (or at least clear the NFC payload) when the device is commissioned.

If it comes to this part, I decided to add Thread provisioning event handler in the app, to not pull NFC control into the BLEManager component, which for now was the only place, where provisioning event was handled. I think that it might be useful not only now, but also for some future purposes.


Reason for not merging grpc to pulsar-main

Hello @cbornet  - Not sure what is the best way to reach out to you. Hence raising this as an issue. I was wondering if there is any reason why this repo is not merge to pulsar main repo ? You seem to have opted out of the merge and wanted to get your thinking behind the decision to not merge.  There seems to be some benefit to proving a grpc server (especially when integrating with a service mesh thinking) ...

Hi @ananthc, I have actually proposed it but there hasn't been a lot of adhesion to that idea from the project members.


Implement symbol table for Scheme code generation

Because of the way scopes work on the VM, I'm not entirely sold on the ForkTable as it currently stands as the right way to figure out scopes. Considering that the primary function of the scoping system is to figure out indices into the environment on the VM, there might be a need to change the scoping algorithm in the compiler. I'm reopening this, since I think there's still some scoping stuff to figure out.


New version: JetBrains.TeamCity version 2024.07

Created by 🥟 Dumplings in workflow run #6681.

Log
Updated: 2024.03.3 → 2024.07
No ReleaseNotes (en-US) for version 2024.07
Submitting WinGet manifests
Creating manifests
Uploading manifests and making commits
Creating a pull request

Microsoft Reviewers: Open in CodeFlow

Automatic Validation ended with:

No errors to post.

(Automated response - build 886.)

https://github.com/microsoft/winget-pkgs/issues/142854


Intrinsics are not available for CrossAxisAlignment.baseline

This issue seems closely related to "Markdown lists do not support intrinsic sizing #311" (former link (now 404 error); PDF version; bug about the missing link) but this is clearly not fixed. See also Column intrinsic height measurement broken on latest dev.
Steps to Reproduce

Execute flutter run on the code sample

Expected results:
A dialog box displaying:

one
two

Note that this Markdown text works correctly in the build() widget but crashes in showDialog().
Actual results:
══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
The following assertion was thrown during performLayout():
Intrinsics are not available for CrossAxisAlignment.baseline.
'package:flutter/src/rendering/flex.dart':
Failed assertion: line 524 pos 9: 'RenderObject.debugCheckingIntrinsics'

(full output below)

Code sample
import 'package:flutter/material.dart';
import 'package:flutter_markdown/flutter_markdown.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;

  void _incrementCounter() {
    setState(() {
      _counter++;
    });
  }

  @override
  void initState() {
    super.initState();
    WidgetsBinding.instance.addPostFrameCallback((_) {
      showDialog(
          context: context,
          barrierDismissible: false,
          builder: (BuildContext context) => AlertDialog(
                title: Text('This is the title'),
                content: const MarkdownBody(
                  // data: 'test text',
                  data: '* one\n* two\n',
                ),
                actions: <Widget>[
                  TextButton(
                    style: TextButton.styleFrom(
                      textStyle: Theme.of(context).textTheme.labelLarge,
                    ),
                    onPressed: () {
                      Navigator.of(context).pop(context);
                    },
                    child: Text('OK'),
                  )
                ],
              ));
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            const MarkdownBody(
              data: '* one\n* two\n',
            ),
          ],
        ),
      ),
    );
  }
}

Logs
$ flutter run -d linux
Launching lib/main.dart on Linux in debug mode...
Building Linux application...

(yelb20:8193): dbind-WARNING **: 13:36:56.983: Couldn't connect to accessibility bus: Failed to connect to socket /run/user/1000/at-spi/bus: No such file or directory
Syncing files to device Linux...                                    57ms

Flutter run key commands.
r Hot reload. 🔥🔥🔥
R Hot restart.
h List all available interactive commands.
d Detach (terminate "flutter run" but leave application running).
c Clear the screen
q Quit (terminate the application on the device).

💪 Running with sound null safety 💪

An Observatory debugger and profiler on Linux is available at: http://<IP_ADDRESS>:34225/Jrja3w9Imio=/
The Flutter DevTools debugger and profiler on Linux is available at:
http://<IP_ADDRESS>:9101?uri=http://<IP_ADDRESS>:34225/Jrja3w9Imio=/

══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
The following assertion was thrown during performLayout():
Intrinsics are not available for CrossAxisAlignment.baseline.
'package:flutter/src/rendering/flex.dart':
Failed assertion: line 524 pos 9: 'RenderObject.debugCheckingIntrinsics'

Either the assertion indicates an error in the framework itself, or we should provide substantially
more information in this error message to help you determine and fix the underlying cause.

Another exception was thrown: RenderBox was not laid out: RenderPhysicalShape#80bc8 relayoutBoundary=up2

Another exception was thrown: Updated layout information required for RenderFlex#decf5 NEEDS-LAYOUT
NEEDS-PAINT to calculate semantics.
Lost connection to device.

(yelb20:8193): GLib-GObject-WARNING **: 13:37:49.655: ../../../gobject/gsignal.c:2731: instance '0x556b01b091b0' has no handler with id '238'

$ flutter doctor -v
[✓] Flutter (Channel stable, 3.3.7, on Ubuntu 22.04.1 LTS 5.14.0-1046-oem, locale C.UTF-8)
    • Flutter version 3.3.7 on channel stable at /home/ubuntu/docs/code/flutter/builder
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision e99c9c7cd9 (4 days ago), 2022-11-01 16:59:00 -0700
    • Engine revision 857bd6b74c
    • Dart version 2.18.4
    • DevTools version 2.15.0

[✗] Android toolchain - develop for Android devices
    ✗ Unable to locate Android SDK.
      Install Android Studio from: https://developer.android.com/studio/index.html
      On first launch it will assist you in installing the Android SDK components.
      (or visit https://flutter.dev/docs/get-started/install/linux#android-setup for detailed instructions).
      If the Android SDK has been installed to a custom location, please use
      `flutter config --android-sdk` to update to that location.

[✓] Chrome - develop for the web
    • Chrome at google-chrome

[✓] Linux toolchain - develop for Linux desktop
    • Ubuntu clang version 14.0.0-1ubuntu1
    • cmake version 3.22.1
    • ninja version 1.10.1
    • pkg-config version 0.29.2

[!] Android Studio (not installed)
    • Android Studio not found; download from https://developer.android.com/studio/index.html
      (or visit https://flutter.dev/docs/get-started/install/linux#android-setup for detailed instructions).

[✓] VS Code
    • VS Code at /snap/code/current
    • Flutter extension version 3.52.0

[✓] Connected device (2 available)
    • Linux (desktop) • linux  • linux-x64      • Ubuntu 22.04.1 LTS 5.14.0-1046-oem
    • Chrome (web)    • chrome • web-javascript • Google Chrome 106.0.5249.103

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 2 categories.

Thanks for the report. Based on the error log, it seems to be similar to https://github.com/flutter/flutter/issues/96806, so please follow-up in it for further updates.
Closing this as a duplicate. If you disagree, write in comments and I'll reopen it.


Loading arbitrary CSS files from views

I'm submitting a bug report

Library Version:
aurelia-templating-resources: v1.4.0
aurelia-cli: 0.30.1

Please tell us about your environment:

Operating System:
Windows 10

Node Version:
6.10.2

NPM Version:
4.2.0

JSPM OR Webpack AND Version
Using aurelia-cli w/ systemjs v0.20.13

Browser:
Chrome 59.0.3071.115

Language:
TS v2.3.2

Current behavior:
from app.html view,

throws error "failed loading ..." I also tried !text for SystemJS text plugin but that gives me an error about invalid "." or "{".. like it's trying to read css as JS.
function fixupCSSUrls(address, css) {
    if (typeof css !== 'string') {
      throw new Error('Failed loading required CSS file: ' + address);
    }
.....

Expected/desired behavior:
Should work without !text just like it does in latest version of skeleton projects on github. I think the !text plugin should work as well but i'm not sure..

@JeroenVinke Can you check if referencing a css file from a view works with a cli-generated system.js configuration?

That seems to work ok:
app.html:
<template>
  <require from="./test.css"></require>
  <h1>${message}</h1>
</template>

test.css:
body { background-color: red; }

@diegohb I can't see the code you've provided in the issue to reproduce, can you show me what you're doing differently from what I do above?

will try it again. thank you!

loading external css files...  is what the title of this shouldve been.. but maybe that's not intended to work?
<require from="https://cdn.jsdelivr.net/leaflet/1.0.2/leaflet.css"></require>

Ah. This is going to be loader dependent. If you are using Require.js for example, you need to make sure that you aren't stubbing out the text loader, or it won't be able to dynamically load the css at runtime.

I'm using SystemJS, might need the css plugin if the text plugin can't handle it.. thanks!


syslog-ng to remote loki

Bugs should be filed for issues encountered whilst operating logging-operator.
You should first attempt to resolve your issues through the community support
channels, e.g. Slack, in order to rule out individual configuration errors. #logging-operator
Please provide as much detail as possible.

Describe the bug:
A clear and concise description of what the bug is:
I have been trying to consolidate logs from different kuberntes clusters running logging-operator-4.5.0 to a centeralized Grafana Loki Cluster. For this I have deployed the bitnami based grafana-loki using helm chart bitnami/grafana-loki-2.11.20
Now I'm not sure why the syslog-ng is not able to push anything to the remote  grafana-loki cluster. I'm using ingress-nginx ontop of the grafana-loki cluster.
I'm not sure where the problem lies. the syslog-ng never gives anything in details what might be wrong locally, is it able to push logs to the remote end or where it is failing
I'm using below given manifests
logging resource
root@devops248:~/logging# cat *
apiVersion: logging.banzaicloud.io/v1beta1
kind: Logging
metadata:
  name: syslog-ng-logging
  namespace: logging
spec:
  enableRecreateWorkloadOnImmutableFieldChange: true
  fluentbit:
    bufferStorage: {}
    bufferStorageVolume:
      hostPath:
        path: ""
    bufferVolumeImage: {}
    filterKubernetes: {}
    image: {}
    inputTail:
      storage.type: filesystem
    positiondb:
      hostPath:
        path: ""
    resources: {}
    updateStrategy: {}
  syslogNG:
    jsonKeyDelim: "#"
    sourceDateParser:
      template: "${json#kubernetes#time}"
    statefulSet:
      spec:
        template:
          spec:
            hostAliases:
             - ip: "<IP_ADDRESS>"
               hostnames:
               - "devops249.ef.com"
            # affinity:
              # nodeAffinity:
                # preferredDuringSchedulingIgnoredDuringExecution:
                # - weight: 50
                  # preference:
                    # matchExpressions:
                    # - key: site
                      # operator: In
                      # values:
                      # - primary
            containers:
            - name: syslog-ng
              volumeMounts:
              - mountPath: /buffers
                name: buffer
        volumeClaimTemplates:
        - metadata:
            name: buffer
          spec:
            accessModes:
            - ReadWriteOnce
            resources:
              requests:
                storage: 20Gi
  controlNamespace: logging

SyslogNGClusterFlow
apiVersion: logging.banzaicloud.io/v1beta1
kind: SyslogNGClusterFlow
metadata:
  name: syslogng-cluster-flow
  namespace: logging
spec:
  globalOutputRefs:
    - syslogngclusteroutput

SyslogNGClusterOutput
apiVersion: logging.banzaicloud.io/v1beta1
kind: SyslogNGClusterOutput
metadata:
 name: syslogngclusteroutput
 namespace: logging
spec:
  loki:
    url: https://devops249.ef.com/loki/api/v1/push
    auth:
      insecure: {}
    disk_buffer:
      disk_buf_size: 512000000
      dir: /buffers
      reliable: true
    workers: 8

logs from the syslog-ng pod are
root@devops248:~/logging# k -n logging logs -f pod/syslog-ng-logging-syslog-ng-0
Defaulted container "syslog-ng" out of: syslog-ng, config-reloader
[2024-01-08T14:18:12.601283] Setting current version as config version; version='4.5'
[2024-01-08T14:18:12.807370] syslog-ng starting up; version='4.5.0'
[2024-01-08T14:21:24.677479] Setting current version as config version; version='4.5'
[2024-01-08T14:21:24.710825] Accepting connections; addr='AF_INET(<IP_ADDRESS>:601)'
[2024-01-08T14:21:24.713825] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00000.rqf', number_of_messages='10055'
[2024-01-08T14:21:24.714028] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00001.rqf', number_of_messages='10055'
[2024-01-08T14:21:24.714196] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00002.rqf', number_of_messages='10055'
[2024-01-08T14:21:24.714382] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00003.rqf', number_of_messages='10055'
[2024-01-08T14:21:24.714574] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00004.rqf', number_of_messages='10055'
[2024-01-08T14:21:24.714737] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00005.rqf', number_of_messages='10055'
[2024-01-08T14:21:24.714945] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00006.rqf', number_of_messages='10055'
[2024-01-08T14:21:24.715111] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00007.rqf', number_of_messages='10054'
[2024-01-08T14:21:24.715276] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00008.rqf', number_of_messages='0'
[2024-01-08T14:21:24.715436] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00009.rqf', number_of_messages='0'
[2024-01-08T14:21:24.715609] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00010.rqf', number_of_messages='0'
[2024-01-08T14:21:24.715835] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00011.rqf', number_of_messages='0'
[2024-01-08T14:21:24.716013] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00012.rqf', number_of_messages='0'
[2024-01-08T14:21:24.716222] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00013.rqf', number_of_messages='0'
[2024-01-08T14:21:24.716391] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00014.rqf', number_of_messages='0'
[2024-01-08T14:21:24.716583] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00015.rqf', number_of_messages='0'
[2024-01-08T14:21:24.716759] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00016.rqf', number_of_messages='0'
[2024-01-08T14:21:24.736325] Configuration reload request received, reloading configuration;
[2024-01-08T14:21:24.737841] Configuration reload finished;
[2024-01-08T14:21:25.600038] Syslog connection accepted; fd='13', client='AF_INET(<IP_ADDRESS>:38732)', local='AF_INET(<IP_ADDRESS>:601)'
[2024-01-08T14:21:25.600854] Syslog connection accepted; fd='38', client='AF_INET(<IP_ADDRESS>:38740)', local='AF_INET(<IP_ADDRESS>:601)'
[2024-01-08T14:21:25.601939] Syslog connection accepted; fd='39', client='AF_INET(<IP_ADDRESS>:38744)', local='AF_INET(<IP_ADDRESS>:601)'
[2024-01-08T14:31:24.710696] Log statistics; processed='destination(clusteroutput_logging_syslogngclusteroutput)=0', processed='global(payload_reallocs)=739', processed='source(main_input)=739', memory_usage='dst.loki(clusteroutput_logging_syslogngclusteroutput#0,loki,https://devops249.ef.com/loki/api/v1/push)=0', dropped='dst.loki(clusteroutput_logging_syslogngclusteroutput#0,loki,https://devops249.ef.com/loki/api/v1/push)=0', queued='dst.loki(clusteroutput_logging_syslogngclusteroutput#0,loki,https://devops249.ef.com/loki/api/v1/push)=0', written='dst.loki(clusteroutput_logging_syslogngclusteroutput#0,loki,https://devops249.ef.com/loki/api/v1/push)=0', processed='center(received)=739', connections='src.network(main_input,afsocket_sd.(stream,AF_INET(<IP_ADDRESS>:601)))=3', processed='dst.loki(clusteroutput_logging_syslogngclusteroutput#0,loki,https://devops249.ef.com/loki/api/v1/push,loki,https://devops249.ef.com/loki/api/v1/push)=0', processed='center(queued)=0', queued='global(scratch_buffers_bytes)=1536', processed='global(msg_clones)=0', processed='global(sdata_updates)=0', queued='global(scratch_buffers_count)=6'
^C

loki side
I dont see any logs being pushed to the grafan-loki, neither on the ingress-nginx nor on the loki-gateway.
Expected behaviour:
A concise description of what you expected to happen.
logs in the Grafan-loki
Steps to reproduce the bug:
Steps to reproduce the bug should be clear and easily reproducible to help people
gain an understanding of the problem.
details given above.
Additional context:
Add any other context about the problem here.
Environment details:

Kubernetes version (e.g. v1.15.2):  v1.26.12+rke2r1
Cloud-provider/provisioner (e.g. AKS, GKE, EKS, PKE etc): RKE2
logging-operator version (e.g. 2.1.1): 4.5.0
Install method (e.g. helm or static manifests): helm
Logs from the misbehaving component (and any other relevant logs): attached
Resource definition (possibly in YAML format) that caused the issue, without sensitive data:

/kind bug

Yes, I have been going through that doc all day today, it is using internal service name, however, I'm pushing to a remote Grafan-loki cluster available via FQDN using ingress-nginx

I understand that you would like to send it to a remote endpoint, however we do not support ingesting to a Loki HTTP/HTTPS endpoint at this point.

Hi,
Yes you should set up a gRPC ingress endpoint, a normal HTTP ingress won't work. After setting up, you could try https://github.com/GyroscopeHQ/grpcat to check if a gRPC endpoint is responding on the endpoint before trying to send logs.

Closing, based on discord discussion.

Reopning  --
Can I just use the HTTP instead of the GRPC or any other protocol, because the bitnami based grafana-loki listens on https.
Can I use the HTTP destination for syslogNGCLusterOutput?
for reference<EMAIL_ADDRESS>

If this is a yes, can someone please share a sample manifest for http
like below
apiVersion: logging.banzaicloud.io/v1beta1
kind: SyslogNGClusterOutput
metadata:
 name: syslogngclusteroutput
 namespace: logging
spec:
  http:
    url: https://devops249.ef.com/gateway
    disk_buffer:
      disk_buf_size: 512000000
      dir: /buffers
      reliable: true
    workers: 8

Is this okay?

@busyboy77 no, I don't think you can use HTTPS
I still think you should use the distributor's grpc endpoint (9095), have you tried that with the syslogng loki output?
loki-grafana-loki-distributor               NodePort    <IP_ADDRESS>   <none>        3100:32664/TCP,9095:31149/TCP   46h

Hi @pepov
Thank you very much for your active followups. I'm seriously a big fan of the logging-operator from the day I understood its simplicity. Thank you very much again
For now, I diverged to exercise with an HTTP endpoint from SyslogNGClusterOutput using
apiVersion: logging.banzaicloud.io/v1beta1
kind: SyslogNGClusterOutput
metadata:
 name: syslogngclusteroutput
 namespace: logging
spec:
  http:
    url: devops249.ef.com/gateway/loki/api/v1/push
    method: POST
#    json_array: true
#    content_type: application/json
    headers:
       - 'X-App-Header: example'
       - 'X-Scope-OrgID: devops248'
    tls:
      peer_verify: false
    disk_buffer:
      disk_buf_size: 512000000
      dir: /buffers
      reliable: true
    workers: 8

Somehow this is not working and I'm not receiving anything on the target server running Loki
I'll today try to create a GRPC ingress ( landing on grafana-loki-distributor  ) and share the result

2 Questions with below given setup
1 -- What would be the path used for pushing logs to the grafana-loki-distributer.
REASON: when we push logs to grafana-loki gateway, we use FQDN/gateway/loki/api/vi1/push, whereas for gRPC based routing, I didn't specify any path in syslong-ng config. What I think is that we might need to push logs to the distributer under /loki/api/vi/push path.
2 --  How do we enable the multi-tenancy when pushing logs to loki using syslog-ng.
REASON: I'm trying to consolidate logs from several clusters into one  Big loki setup, where I need X-Scope-OrgID header setup for each tenant.
just tried with this setup
Syslog-NG-Cluster Routing on Source box:
apiVersion: logging.banzaicloud.io/v1beta1
kind: SyslogNGClusterFlow
metadata:
  name: syslogng-cluster-flow
  namespace: logging
spec:
  globalOutputRefs:
    - syslogngclusteroutput

apiVersion: logging.banzaicloud.io/v1beta1
kind: SyslogNGClusterOutput
metadata:
 name: syslogngclusteroutput
 namespace: logging
spec:
  loki:
    url: devops249.ef.com
#    headers:
#       - 'X-Scope-OrgID: devops248'
    disk_buffer:
      disk_buf_size: 512000000
      dir: /buffers
      reliable: true
    workers: 8

both are active

root@devops248:~/logging# k get logging-all -A
NAMESPACE   NAME                                                               ACTIVE   PROBLEMS
logging     syslogngclusterflow.logging.banzaicloud.io/syslogng-cluster-flow   true

NAMESPACE   NAME                                               LOGGINGREF   CONTROLNAMESPACE   WATCHNAMESPACES   PROBLEMS
            logging.logging.banzaicloud.io/syslog-ng-logging                logging

NAMESPACE   NAME                                                                 ACTIVE   PROBLEMS
logging     syslogngclusteroutput.logging.banzaicloud.io/syslogngclusteroutput   true
root@devops248:~/logging#

On Target box running Grafana-loki using bitnami-grafana-loki  helm chart
My GRPC Ingress
root@devops:~/grafana-loki# cat grpc-gateway-ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
#    nginx.ingress.kubernetes.io/ssl-redirect: "true"
#    nginx.ingress.kubernetes.io/rewrite-target: /$2
    nginx.ingress.kubernetes.io/backend-protocol: "GRPC"
  name: distributer
  namespace: loki
spec:
  ingressClassName: nginx
  rules:
  - host: devops249.ef.com
    http:
      paths:
      - path: /
        pathType: ImplementationSpecific
        backend:
          service:
            name: loki-grafana-loki-distributor
            port:
              number: 9095
  tls:
    - hosts:
      - devops249.ef.com
      secretName: dinga-ssl-secret

Ingress-nginx logs
<IP_ADDRESS> - - [16/Jan/2024:08:32:55 +0000] "PRI * HTTP/2.0" 400 150 "-" "-" 0 4.999 [] [] - - - - 5f7a1c1c2f217fe873e52dd2893a498b
<IP_ADDRESS> - - [16/Jan/2024:08:33:10 +0000] "PRI * HTTP/2.0" 400 150 "-" "-" 0 5.000 [] [] - - - - edcc96f092c0da6bcd96d56b04689d54
<IP_ADDRESS> - - [16/Jan/2024:08:33:36 +0000] "PRI * HTTP/2.0" 400 150 "-" "-" 0 0.001 [] [] - - - - d6d020154602632a6f6bac57751bd680
<IP_ADDRESS> - - [16/Jan/2024:08:34:30 +0000] "PRI * HTTP/2.0" 400 150 "-" "-" 0 4.999 [] [] - - - - 751b450cf66f3ffc94f17d1cb9ad2624

Grafana Showing no objects

syslogng-logs
[2024-01-16T08:31:47.033471] Configuration reload finished;
[2024-01-16T08:32:20.050158] Setting current version as config version; version='4.5'
[2024-01-16T08:32:20.085856] Accepting connections; addr='AF_INET(<IP_ADDRESS>:601)'
[2024-01-16T08:32:20.090418] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00000.rqf', number_of_messages='10055'
[2024-01-16T08:32:20.090790] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00001.rqf', number_of_messages='10055'
[2024-01-16T08:32:20.091240] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00002.rqf', number_of_messages='10055'
[2024-01-16T08:32:20.091554] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00003.rqf', number_of_messages='10055'
[2024-01-16T08:32:20.091992] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00004.rqf', number_of_messages='10055'
[2024-01-16T08:32:20.092436] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00005.rqf', number_of_messages='10055'
[2024-01-16T08:32:20.092888] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00006.rqf', number_of_messages='10055'
[2024-01-16T08:32:20.093098] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00007.rqf', number_of_messages='10054'
[2024-01-16T08:32:20.093389] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00008.rqf', number_of_messages='0'
[2024-01-16T08:32:20.093717] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00009.rqf', number_of_messages='0'
[2024-01-16T08:32:20.094056] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00010.rqf', number_of_messages='0'
[2024-01-16T08:32:20.094218] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00011.rqf', number_of_messages='0'
[2024-01-16T08:32:20.094793] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00012.rqf', number_of_messages='0'
[2024-01-16T08:32:20.095181] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00013.rqf', number_of_messages='0'
[2024-01-16T08:32:20.095600] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00014.rqf', number_of_messages='0'
[2024-01-16T08:32:20.096096] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00015.rqf', number_of_messages='0'
[2024-01-16T08:32:20.096364] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00016.rqf', number_of_messages='0'
[2024-01-16T08:32:20.096714] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00017.rqf', number_of_messages='0'
[2024-01-16T08:32:20.097121] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00018.rqf', number_of_messages='0'
[2024-01-16T08:32:20.097569] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00019.rqf', number_of_messages='0'
[2024-01-16T08:32:20.098000] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00020.rqf', number_of_messages='0'
[2024-01-16T08:32:20.098442] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00021.rqf', number_of_messages='0'
[2024-01-16T08:32:20.098621] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00022.rqf', number_of_messages='0'
[2024-01-16T08:32:20.099026] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00023.rqf', number_of_messages='0'
[2024-01-16T08:32:20.099292] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00024.rqf', number_of_messages='0'
[2024-01-16T08:32:20.099708] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00025.rqf', number_of_messages='0'
[2024-01-16T08:32:20.100067] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00026.rqf', number_of_messages='0'
[2024-01-16T08:32:20.100340] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00027.rqf', number_of_messages='0'
[2024-01-16T08:32:20.100587] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00028.rqf', number_of_messages='0'
[2024-01-16T08:32:20.101068] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00029.rqf', number_of_messages='0'
[2024-01-16T08:32:20.101247] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00030.rqf', number_of_messages='0'
[2024-01-16T08:32:20.101448] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00031.rqf', number_of_messages='0'
[2024-01-16T08:32:20.101852] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00032.rqf', number_of_messages='0'
[2024-01-16T08:32:20.102077] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00033.rqf', number_of_messages='0'
[2024-01-16T08:32:20.102554] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00034.rqf', number_of_messages='0'
[2024-01-16T08:32:20.102931] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00035.rqf', number_of_messages='0'
[2024-01-16T08:32:20.103093] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00036.rqf', number_of_messages='0'
[2024-01-16T08:32:20.103478] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00037.rqf', number_of_messages='0'
[2024-01-16T08:32:20.103714] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00038.rqf', number_of_messages='0'
[2024-01-16T08:32:20.103993] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00039.rqf', number_of_messages='0'
[2024-01-16T08:32:20.104300] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00040.rqf', number_of_messages='0'
[2024-01-16T08:32:20.104633] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00041.rqf', number_of_messages='0'
[2024-01-16T08:32:20.104962] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00042.rqf', number_of_messages='0'
[2024-01-16T08:32:20.105506] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00043.rqf', number_of_messages='0'
[2024-01-16T08:32:20.106052] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00044.rqf', number_of_messages='0'
[2024-01-16T08:32:20.106316] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00045.rqf', number_of_messages='0'
[2024-01-16T08:32:20.106763] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00046.rqf', number_of_messages='0'
[2024-01-16T08:32:20.107245] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00047.rqf', number_of_messages='0'
[2024-01-16T08:32:20.107770] Reliable disk-buffer state loaded; filename='/buffers/syslog-ng-00048.rqf', number_of_messages='0'
[2024-01-16T08:32:20.137000] Configuration reload request received, reloading configuration;
[2024-01-16T08:32:20.139519] Configuration reload finished;
[2024-01-16T08:32:20.927411] Syslog connection accepted; fd='13', client='AF_INET(<IP_ADDRESS>:52656)', local='AF_INET(<IP_ADDRESS>:601)'
[2024-01-16T08:32:20.929241] Syslog connection accepted; fd='47', client='AF_INET(<IP_ADDRESS>:52658)', local='AF_INET(<IP_ADDRESS>:601)'
[2024-01-16T08:32:20.929784] Syslog connection accepted; fd='48', client='AF_INET(<IP_ADDRESS>:52662)', local='AF_INET(<IP_ADDRESS>:601)'
[2024-01-16T08:32:20.930393] Syslog connection accepted; fd='52', client='AF_INET(<IP_ADDRESS>:52670)', local='AF_INET(<IP_ADDRESS>:601)'

syslog-ng config inside the pod
root@devops248:~/logging# k -n logging exec -it syslog-ng-logging-syslog-ng-0 -- cat /etc/syslog-ng/config/syslog-ng.conf
Defaulted container "syslog-ng" out of: syslog-ng, config-reloader
@version: current

@include "scl.conf"

source "main_input" {
    channel {
        source {
            network(flags("no-parse") port(601) transport("tcp") max-connections(100) log-iw-size(10000));
        };
        parser {
            json-parser(prefix("json#") key-delimiter("#"));
            date-parser(format("%FT%T.%f%z") template("${json#kubernetes#time}"));
        };
    };
};

destination "clusteroutput_logging_syslogngclusteroutput" {
    loki(url("devops249.ef.com") disk_buffer(disk_buf_size(512000000) reliable(yes) dir("/buffers")) workers(8) persist_name("clusteroutput_logging_syslogngclusteroutput"));
};

log {
    source("main_input");
    log {
        destination("clusteroutput_logging_syslogngclusteroutput");
    };
};
root@devops248:~/logging#

For my Question 1,
Here is what I mean,
when using grafana-loki gateway, it routes the incoming http/s traffic to distributer pod when using '/loki/api/v1/push` URI path as given below:
    location = /loki/api/v1/push {
      proxy_pass       http://loki-grafana-loki-distributor.loki.svc.cluster.local:3100$request_uri;
    }

which means the distributer pod will always receive something like /loki/api.v1/push but in case of gRPC, I'm just mentioning only the URI of 'devops249.ef.com` which default to blank URL
Complet grafna-loki-gateway config given below
root@devops:~/grafana-loki# k -n loki exec -it  loki-grafana-loki-gateway-7f989b4584-h4z2h  -- bash
I have no name!@loki-grafana-loki-gateway-7f989b4584-h4z2h:/app$ cat /opt/bitnami/nginx/conf/nginx.conf
worker_processes  5;  ## Default: 1
error_log  /dev/stderr;
pid        /tmp/nginx.pid;
worker_rlimit_nofile 8192;

events {
  worker_connections  4096;  ## Default: 1024
}

http {
  client_body_temp_path /tmp/client_temp;
  proxy_temp_path       /tmp/proxy_temp_path;
  fastcgi_temp_path     /tmp/fastcgi_temp;
  uwsgi_temp_path       /tmp/uwsgi_temp;
  scgi_temp_path        /tmp/scgi_temp;

  default_type application/octet-stream;
  log_format  main '$remote_addr - $remote_user [$time_local]  $status ' '"$request" $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';

  include /opt/bitnami/nginx/conf/resolvers.conf;

  map $status $loggable {
    ~^[23]  0;
    default 1;
  }
  access_log   /dev/stderr  main  if=$loggable;

  sendfile     on;
  tcp_nopush   on;

  server {
    listen             8080;

    location = / {
      return 200 'OK';
      auth_basic off;
    }

    location = /api/prom/push {
      proxy_pass       http://loki-grafana-loki-distributor.loki.svc.cluster.local:3100$request_uri;
    }

    location = /api/prom/tail {
      proxy_pass       http://loki-grafana-loki-querier.loki.svc.cluster.local:3100$request_uri;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
    }

    # Ruler
    location ~ /prometheus/api/v1/alerts.* {
      proxy_pass       http://loki-grafana-loki-ruler.loki.svc.cluster.local:3100$request_uri;
    }
    location ~ /prometheus/api/v1/rules.* {
      proxy_pass       http://loki-grafana-loki-ruler.loki.svc.cluster.local:3100$request_uri;
    }
    location ~ /api/prom/rules.* {
      proxy_pass       http://loki-grafana-loki-ruler.loki.svc.cluster.local:3100$request_uri;
    }
    location ~ /api/prom/alerts.* {
      proxy_pass       http://loki-grafana-loki-ruler.loki.svc.cluster.local:3100$request_uri;
    }

    location ~ /api/prom/.* {
      proxy_pass       http://loki-grafana-loki-query-frontend.loki.svc.cluster.local:3100$request_uri;
    }

    location = /loki/api/v1/push {
      proxy_pass       http://loki-grafana-loki-distributor.loki.svc.cluster.local:3100$request_uri;
    }

    location = /loki/api/v1/tail {
      proxy_pass       http://loki-grafana-loki-querier.loki.svc.cluster.local:3100$request_uri;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
    }

    location ~ /loki/api/.* {
      proxy_pass       http://loki-grafana-loki-query-frontend.loki.svc.cluster.local:3100$request_uri;
    }
  }
}

Have you somehow confirmed syslog-ng processes the logs properly (using file output for example)? I'm asking, because your source date parser is configured in a way that would work with axosyslog as the sender (as described in the blog post), but not with fluentbit. For fluent-bit you should just configure:
    jsonKeyDelim: "#"
    sourceDateParser: {}

https://kube-logging.dev/docs/configuration/plugins/syslog-ng-outputs/file/
It's maybe even easier to check syslog-ng stats, for example:
kubectl exec -ti logging-syslog-ng-0 -- syslog-ng-ctl stats -c /tmp/syslog-ng/syslog-ng.ctl
SourceName;SourceId;SourceInstance;State;Type;Number
dst.loki;clusteroutput_logging_loki-output#0;loki,loki.loki.svc.cluster.local:9095,loki,loki.loki.svc.cluster.local:9095;a;processed;4895
global;msg_clones;;a;processed;0
dst.loki;clusteroutput_logging_loki-output#0;loki,loki.loki.svc.cluster.local:9095;a;dropped;0
dst.loki;clusteroutput_logging_loki-output#0;loki,loki.loki.svc.cluster.local:9095;a;queued;0
dst.loki;clusteroutput_logging_loki-output#0;loki,loki.loki.svc.cluster.local:9095;a;written;4895
dst.loki;clusteroutput_logging_loki-output#0;loki,loki.loki.svc.cluster.local:9095;a;memory_usage;0
global;sdata_updates;;a;processed;0
global;scratch_buffers_count;;a;queued;9
center;;queued;a;processed;4895
global;payload_reallocs;;a;processed;4895
destination;clusteroutput_logging_loki-output;;a;processed;4895
source;main_input;;a;processed;5073
src.network;main_input;afsocket_sd.(stream,AF_INET(<IP_ADDRESS>:601));a;connections;5
center;;received;a;processed;5073
global;scratch_buffers_bytes;;a;queued;1536

so here you can see, that messages are actually written to the output at all or even received on the main_input or not

mine shows like below: ( I'm not sure why the devops249.ef.com/gateway/??? are still there , as I have already removed those routes )
root@devops248:~# k -n logging exec -it syslog-ng-logging-syslog-ng-0 -- syslog-ng-ctl stats -c /tmp/syslog-ng/syslog-ng.ctl
Defaulted container "syslog-ng" out of: syslog-ng, config-reloader
SourceName;SourceId;SourceInstance;State;Type;Number
dst.http;clusteroutput_logging_syslogngclusteroutput#0;http,devops249.ef.com/gateway/loki/api/v1/push,http,devops249.ef.com/gateway/loki/api/v1/push;o;processed;0
dst.loki;clusteroutput_logging_syslogngclusteroutput#0;loki,devops249.ef.com,loki,devops249.ef.com;a;processed;0
dst.http;clusteroutput_logging_syslogngclusteroutput#0;http,https://devops249.ef.com/gateway/loki/api/v1/push,http,https://devops249.ef.com/gateway/loki/api/v1/push;o;processed;0
destination;clusteroutput_logging_syslogngclusteroutput;;a;processed;0
center;;received;a;processed;76105
global;msg_clones;;a;processed;0
center;;queued;a;processed;0
dst.http;clusteroutput_logging_syslogngclusteroutput#0;http,https://devops249.ef.com/gateway/loki/api/v1/push;o;dropped;0
dst.http;clusteroutput_logging_syslogngclusteroutput#0;http,https://devops249.ef.com/gateway/loki/api/v1/push;o;queued;0
dst.http;clusteroutput_logging_syslogngclusteroutput#0;http,https://devops249.ef.com/gateway/loki/api/v1/push;o;written;0
dst.http;clusteroutput_logging_syslogngclusteroutput#0;http,https://devops249.ef.com/gateway/loki/api/v1/push;o;msg_size_avg;0
global;scratch_buffers_bytes;;a;queued;1536
dst.http;clusteroutput_logging_syslogngclusteroutput#0;http,https://devops249.ef.com/gateway/loki/api/v1/push;o;batch_size_max;0
dst.http;clusteroutput_logging_syslogngclusteroutput#0;http,https://devops249.ef.com/gateway/loki/api/v1/push;o;batch_size_avg;0
dst.http;clusteroutput_logging_syslogngclusteroutput#0;http,https://devops249.ef.com/gateway/loki/api/v1/push;o;eps_since_start;0
dst.http;clusteroutput_logging_syslogngclusteroutput#0;http,https://devops249.ef.com/gateway/loki/api/v1/push;o;memory_usage;0
dst.http;clusteroutput_logging_syslogngclusteroutput#0;http,https://devops249.ef.com/gateway/loki/api/v1/push;o;msg_size_max;0
dst.http;clusteroutput_logging_syslogngclusteroutput#0;http,devops249.ef.com/gateway/loki/api/v1/push;o;eps_last_1h;0
dst.http;clusteroutput_logging_syslogngclusteroutput#0;http,devops249.ef.com/gateway/loki/api/v1/push;o;msg_size_max;0
dst.http;clusteroutput_logging_syslogngclusteroutput#0;http,devops249.ef.com/gateway/loki/api/v1/push;o;memory_usage;0
dst.http;clusteroutput_logging_syslogngclusteroutput#0;http,devops249.ef.com/gateway/loki/api/v1/push;o;eps_last_24h;0
dst.http;clusteroutput_logging_syslogngclusteroutput#0;http,https://devops249.ef.com/gateway/loki/api/v1/push;o;eps_last_1h;0
global;scratch_buffers_count;;a;queued;6
dst.http;clusteroutput_logging_syslogngclusteroutput#0;http,devops249.ef.com/gateway/loki/api/v1/push;o;eps_since_start;0
dst.http;clusteroutput_logging_syslogngclusteroutput#0;http,devops249.ef.com/gateway/loki/api/v1/push;o;batch_size_max;0
dst.http;clusteroutput_logging_syslogngclusteroutput#0;http,https://devops249.ef.com/gateway/loki/api/v1/push;o;eps_last_24h;0
src.network;main_input;afsocket_sd.(stream,AF_INET(<IP_ADDRESS>:601));a;connections;2
global;sdata_updates;;a;processed;0
dst.http;clusteroutput_logging_syslogngclusteroutput#0;http,devops249.ef.com/gateway/loki/api/v1/push;o;dropped;0
dst.http;clusteroutput_logging_syslogngclusteroutput#0;http,devops249.ef.com/gateway/loki/api/v1/push;o;queued;0
dst.http;clusteroutput_logging_syslogngclusteroutput#0;http,devops249.ef.com/gateway/loki/api/v1/push;o;written;0
dst.loki;clusteroutput_logging_syslogngclusteroutput#0;loki,devops249.ef.com;a;memory_usage;0
dst.loki;clusteroutput_logging_syslogngclusteroutput#0;loki,devops249.ef.com;a;dropped;0
dst.loki;clusteroutput_logging_syslogngclusteroutput#0;loki,devops249.ef.com;a;queued;0
dst.loki;clusteroutput_logging_syslogngclusteroutput#0;loki,devops249.ef.com;a;written;0
global;payload_reallocs;;a;processed;76105
dst.http;clusteroutput_logging_syslogngclusteroutput#0;http,devops249.ef.com/gateway/loki/api/v1/push;o;batch_size_avg;0
source;main_input;;a;processed;76105
dst.http;clusteroutput_logging_syslogngclusteroutput#0;http,devops249.ef.com/gateway/loki/api/v1/push;o;msg_size_avg;0
root@devops248:~#


Update cXOF token address

Updated token address

Do you need to update mainnet.token-list.json? Did you also run yarn.build?

Nope just did another PR for this


#651 - Partitioned Data Store

Fixes #651
Changes proposed in this PR:

[x] use the DuckDB base class
[x] Introduced PartitionedDataStore for managing time-partitioned Parquet data (hive_partitioning, address_partitioning).
[x] Added pytest cases in test_partitioned_data_store.py.

PartitionedDataStore middleware:

[x] create_view_and_query_data
[x] query_data
[x] _export_data_with_address_hive
[x] _export_data_with_date_hive
[x] _export_to_target
[x] export_to_parquet (the 3 methods above are private and this method will handle among them)

We can close this PR if we won't use

We will shelve this feature for now. If we need it in the future, we can reconsider.


Link to blog doesn't work on local gateways

Please see fs:/ipns/ipfs.io/blog on local gateway.
@whyrusleeping confirmed that
It should probably be issue on website.

yeah the way it's right now, it's /ipns/blog.ipfs.io

@Kubuxu Can this be closed?

I think yes.


Error after one file is downloaded

I have tried to download an album in Atmos format using Windows pyapp container. But after getting the first audio file is sucessfully written, it exits with the following:
d:\Software\Tidal-dl>tidal-wave_2024.1.10_py311_pyapp.exe --audio-format Atmos https://listen.tidal.com/album/205605624
2024-01-19:16:01:28,526 INFO     [models.py:544] TIDAL album ID parsed from input: 205605624
2024-01-19:16:01:29,717 INFO     [requesting.py:89] Requesting from TIDAL API: albums/205605624
2024-01-19:16:01:30,298 INFO     [requesting.py:89] Requesting from TIDAL API: albums/205605624/items
2024-01-19:16:01:33,020 INFO     [requesting.py:89] Requesting from TIDAL API: albums/205605624/review
2024-01-19:16:01:33,347 INFO     [requesting.py:89] Requesting from TIDAL API: tracks/205605625/credits
2024-01-19:16:01:33,624 INFO     [requesting.py:89] Requesting from TIDAL API: tracks/205605625/playbackinfopostpaywall
2024-01-19:16:01:33,903 INFO     [requesting.py:89] Requesting from TIDAL API: tracks/205605625/lyrics
2024-01-19:16:01:34,626 WARNING  [requesting.py:96] 404 Client Error: not found for TIDAL API endpoint tracks/205605625/lyrics
2024-01-19:16:01:34,763 INFO     [utils.py:85] Wrote artist image JPEG for Artist(id=946, name='Megadeth', type='MAIN') to 'C:\Users\705631\Music\Megadeth\Rust In Peace [205605624] [1990]\Megadeth.jpg'
2024-01-19:16:01:34,764 INFO     [requesting.py:89] Requesting from TIDAL API: artists/946/bio
2024-01-19:16:01:35,067 INFO     [track.py:213] Writing artist bio for artist 946 to 'C:\Users\705631\Music\Megadeth\Rust In Peace [205605624] [1990]\Megadeth-bio.json
2024-01-19:16:01:35,071 INFO     [track.py:245] Writing track 205605625 to 'C:\Users\705631\Music\Megadeth\Rust In Peace [205605624] [1990]\01 - Holy Wars...The Punishment Due [A].m4a'
2024-01-19:16:01:41,186 INFO     [track.py:286] Track 205605625 written to 'C:\Users\705631\Music\Megadeth\Rust In Peace [205605624] [1990]\01 - Holy Wars...The Punishment Due [A].m4a'
Traceback (most recent call last):

  File "<frozen runpy>", line 198, in _run_module_as_main

  File "<frozen runpy>", line 88, in _run_code

  File "C:\Users\705631\AppData\Local\pyapp\data\tidal-wave\9785110593903059623\2024.1.10\Lib\site-packages\tidal_wave\__main__.py", line 3, in <module>
    app()

  File "C:\Users\705631\AppData\Local\pyapp\data\tidal-wave\9785110593903059623\2024.1.10\Lib\site-packages\tidal_wave\main.py", line 91, in main
    album.get(

  File "C:\Users\705631\AppData\Local\pyapp\data\tidal-wave\9785110593903059623\2024.1.10\Lib\site-packages\tidal_wave\album.py", line 148, in get
    self.get_tracks(session, audio_format, out_dir)

  File "C:\Users\705631\AppData\Local\pyapp\data\tidal-wave\9785110593903059623\2024.1.10\Lib\site-packages\tidal_wave\album.py", line 101, in get_tracks
    track_files_value: Optional[str] = track.get(
                                       ^^^^^^^^^^

  File "C:\Users\705631\AppData\Local\pyapp\data\tidal-wave\9785110593903059623\2024.1.10\Lib\site-packages\tidal_wave\track.py", line 549, in get
    self.set_tags()

  File "C:\Users\705631\AppData\Local\pyapp\data\tidal-wave\9785110593903059623\2024.1.10\Lib\site-packages\tidal_wave\track.py", line 449, in set_tags
    subprocess.run(cmd)

  File "C:\Users\705631\AppData\Local\pyapp\cache\distributions\_9785110593903059623\python\Lib\subprocess.py", line 548, in run
    with Popen(*popenargs, **kwargs) as process:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "C:\Users\705631\AppData\Local\pyapp\cache\distributions\_9785110593903059623\python\Lib\subprocess.py", line 1026, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,

  File "C:\Users\705631\AppData\Local\pyapp\cache\distributions\_9785110593903059623\python\Lib\subprocess.py", line 1538, in _execute_child
    hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

FileNotFoundError: [WinError 2] The system cannot find the file specified

The same happens if I try with one track from the same album. The track is downloaded properly:
d:\Software\Tidal-dl>tidal-wave_2024.1.10_py311_pyapp.exe --audio-format Atmos https://tidal.com/browse/track/205605626
2024-01-19:16:05:31,257 INFO     [models.py:599] TIDAL track ID parsed from input: 205605626
2024-01-19:16:05:32,059 INFO     [requesting.py:89] Requesting from TIDAL API: tracks/205605626
2024-01-19:16:05:32,672 INFO     [requesting.py:89] Requesting from TIDAL API: albums/205605624
2024-01-19:16:05:32,723 INFO     [requesting.py:89] Requesting from TIDAL API: tracks/205605626/credits
2024-01-19:16:05:33,392 INFO     [requesting.py:89] Requesting from TIDAL API: tracks/205605626/playbackinfopostpaywall
2024-01-19:16:05:34,126 INFO     [requesting.py:89] Requesting from TIDAL API: tracks/205605626/lyrics
2024-01-19:16:05:34,434 WARNING  [requesting.py:96] 404 Client Error: not found for TIDAL API endpoint tracks/205605626/lyrics
2024-01-19:16:05:35,115 INFO     [track.py:245] Writing track 205605626 to 'C:\Users\705631\Music\Megadeth\Rust In Peace [205605624] [1990]\02 - Hangar 18 [A].m4a'
2024-01-19:16:06:34,302 INFO     [track.py:286] Track 205605626 written to 'C:\Users\705631\Music\Megadeth\Rust In Peace [205605624] [1990]\02 - Hangar 18 [A].m4a'
Traceback (most recent call last):

  File "<frozen runpy>", line 198, in _run_module_as_main

  File "<frozen runpy>", line 88, in _run_code

  File "C:\Users\705631\AppData\Local\pyapp\data\tidal-wave\9785110593903059623\2024.1.10\Lib\site-packages\tidal_wave\__main__.py", line 3, in <module>
    app()

  File "C:\Users\705631\AppData\Local\pyapp\data\tidal-wave\9785110593903059623\2024.1.10\Lib\site-packages\tidal_wave\main.py", line 82, in main
    track.get(

  File "C:\Users\705631\AppData\Local\pyapp\data\tidal-wave\9785110593903059623\2024.1.10\Lib\site-packages\tidal_wave\track.py", line 549, in get
    self.set_tags()

  File "C:\Users\705631\AppData\Local\pyapp\data\tidal-wave\9785110593903059623\2024.1.10\Lib\site-packages\tidal_wave\track.py", line 449, in set_tags
    subprocess.run(cmd)

  File "C:\Users\705631\AppData\Local\pyapp\cache\distributions\_9785110593903059623\python\Lib\subprocess.py", line 548, in run
    with Popen(*popenargs, **kwargs) as process:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "C:\Users\705631\AppData\Local\pyapp\cache\distributions\_9785110593903059623\python\Lib\subprocess.py", line 1026, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,

  File "C:\Users\705631\AppData\Local\pyapp\cache\distributions\_9785110593903059623\python\Lib\subprocess.py", line 1538, in _execute_child
    hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

FileNotFoundError: [WinError 2] The system cannot find the file specified

What could be the problem here?

@eevan78 there is not good documentation about this right now, so I see why you’ve raised an issue; thanks for having done so.
I am confident that you’re seeing this problem because your Windows system is missing FFmpeg.
if you need direction how to get FFmpeg installed on Windows, let me know.

@eevan78 the easiest way to get FFmpeg on Windows is with the chocolatey package manager, but there are other places to download it; I list a couple on the README file.

Thanks for the explanation! I have a static build of ffmpeg, it was just not located on the path. I have placed it in appropriate folder, and now the tool works fine.
There are some minor issues with metadata, but I can easily correct that after downloading files...

Thanks for the explanation! I have a static build of ffmpeg, it was just not located on the path. I have placed it in appropriate folder, and now the tool works fine. There are some minor issues with metadata, but I can easily correct that after downloading files...

@eevan78 Excellent! Can you elaborate on the metadata issues point? I'm happy to look into it

@ebb-earl-co I have looked into the code, and now I understand what is the FFMpeg used for.
Here are some of the things I have picked up. I have downloaded the Rust In Peace album in Atmos format.
Files written to the disk are in fact Matroska containers (mka) but their extension is m4a:

Here is a detailed MediaInfo report on the first file:
General
Unique ID                                :<PHONE_NUMBER>14837341797917157298972942706 (0x6DA247A70346A769DC7D4FBBA2E46172)
Complete name                            : C:\Data\Software\Audio\tidal-wave\Megadeth\Rust In Peace [205605624] [1990]\01 - Holy Wars...The Punishment Due [A].m4a
Format                                   : Matroska
Format version                           : Version 4
File size                                : 36.7 MiB
Duration                                 : 6 min 35 s
Overall bit rate                         : 779 kb/s
Frame rate                               : 90 000.898 FPS
Movie name                               : Holy Wars...The Punishment Due
Track name/Position                      : 1/9
Writing application                      : Lavf60.20.100
Writing library                          : Lavf60.20.100
Copyright                                : ℗ 1990 Capitol Records, LLC
Comment                                  : http://www.tidal.com/track/205605625
ErrorDetectionType                       : Per level 1
ALBUM                                    : Rust In Peace
ALBUM_ARTIST                             : Megadeth
ARTIST                                   : Megadeth
COMPOSER                                 : Dave Mustaine
DATE                                     : 1990-09-24
DISC                                     : 1/1
FileExtension_Invalid                    : mkv mk3d mka mks

Video
ID                                       : 2
Format                                   : V_MJPEG
Codec ID                                 : V_MJPEG
Width                                    : 1 280 pixels
Height                                   : 1 280 pixels
Display aspect ratio                     : 1.000
Frame rate mode                          : Constant
Frame rate                               : 90 000.898 FPS
Color space                              : YUV
Default                                  : No
Forced                                   : No
Color range                              : Full
Matrix coefficients                      : BT.470 System B/G

Audio
ID                                       : 1
Format                                   : E-AC-3 JOC
Format/Info                              : Enhanced AC-3 with Joint Object Coding
Commercial name                          : Dolby Digital Plus with Dolby Atmos
Codec ID                                 : A_EAC3
Duration                                 : 6 min 35 s
Bit rate mode                            : Constant
Bit rate                                 : 768 kb/s
Channel(s)                               : 6 channels
Channel layout                           : L R C LFE Ls Rs
Sampling rate                            : 48.0 kHz
Frame rate                               : 31.250 FPS (1536 SPF)
Bit depth                                : 32 bits
Compression mode                         : Lossy
Stream size                              : 36.2 MiB (99%)
Service kind                             : Complete Main
Default                                  : Yes
Forced                                   : No
VENDOR_ID                                : [0][0][0][0]
Complexity index                         : 16
Number of dynamic objects                : 15
Bed channel count                        : 1 channel
Bed channel configuration                : LFE

Maybe this is the reason why metadata is messed up a bit (a detailed properties from foobar2000):

I also realize that metadata on Tidal is not perfect, so it's not easy to cover all quirks (compare the info for the first and second track - first has Mix engineer, second Mixer. For Atmos format, a nice feature to have is who was the Immersive mastering engineer):

(there is an Engineer metadata in Additional Credits):

I hope this can help a bit...

@eevan78 thank you for having put in the time to document this. A few points in response:

I am following this site here as to what metadata tags are supported for the various formats
In terms of .m4a/.mp4 files, the closest applicable tag to Immersive mastering engineer would be the ----:com.apple.iTunes:ENGINEER tag. Now, one can add whatever tag that one dreams up for .m4a files in the ----:com.apple.iTunes:_____ format, but that doesn't mean that most or any audio players will be able to detect it
The Matroska file-type seems to be the most "egregious" of metadata discrepancies, so I will rejigger the section that uses that in order to try to write to .mp4 instead; the reason that I use .mka (Matroska) at the moment is that FFmpeg cannot mux the E-AC3 format, but copying the bytes to .mka and then remuxing to .m4a works.
The TIDAL metadata quirks you mention are all that the program can go by: there is currently a bit of logic to look for mixer or mixing engineer and use that value for the ----:com.apple.iTunes:MIXER tag

These are valuable points that will help the value of tidal-wave, so can you open a new issue with the changes you'd like to see? Just so that I can track the feature branch and development steps that correspond to changing these things.
Thank you for your input!

@eevan78 I'm working on some changes as we speak and here is the same file that you highlighted above, with output from ffprobe:
c@darter-pro:~/projects/tidal-wave/Music/Megadeth/Rust In Peace [205605624] [1990]$ ffp 01\ -\ Holy\ Wars...The\ Punishment\ Due\ \[A\].m4a
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5f73100] stream 0, timescale not set
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '01 - Holy Wars...The Punishment Due [A].m4a':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomdby1iso2mp41
    creation_time   : 2021-11-17T20:52:06.000000Z
    title           : Holy Wars...The Punishment Due
    artist          : Megadeth
    composer        : Dave Mustaine
    album           : Rust In Peace
    track           : 1/9
    disc            : 1/1
    date            : 1990-09-24
    REPLAYGAIN_TRACK_PEAK: 0.0
    REPLAYGAIN_TRACK_GAIN: 0.0
    REPLAYGAIN_ALBUM_PEAK: None
    REPLAYGAIN_ALBUM_GAIN: None
    ARTISTS         : Megadeth
    MIXER           : Max Norman
    ENGINEER        : Mills Logan
    ISRC            : USUM72121699
    LYRICIST        : Dave Mustaine
    BARCODE         :<PHONE_NUMBER>3975
    PRODUCER        : Dave Mustaine;Mike Clink
    album_artist    : Megadeth
    copyright       : ℗ 1990 Capitol Records, LLC
    comment         : http://www.tidal.com/track/205605625
  Duration: 00:06:35.14, start: 0.000000, bitrate: 777 kb/s
  Stream #0:0[0x1](und): Audio: eac3 (ec-3 / 0x332D6365), 48000 Hz, 5.1(side), fltp, 768 kb/s (default)
    Metadata:
      creation_time   : 2021-11-17T20:52:06.000000Z
      handler_name    : sound handler
      vendor_id       : [0][0][0][0]
    Side data:
      audio service type: main
      replaygain: track gain - 0.000000, track peak - unknown, album gain - 0.000000, album peak - unknown,
  Stream #0:1[0x0]: Video: mjpeg (Progressive), yuvj444p(pc, bt470bg/unknown/unknown), 1280x1280 [SAR 72:72 DAR 1:1], 90k tbr, 90k tbn (attached pic)

and mediainfo:
c@darter-pro:~/projects/tidal-wave/Music/Megadeth/Rust In Peace [205605624] [1990]$ mediainfo 01\ -\ Holy\ Wars...The\ Punishment\ Due\ \[A\].m4a
General
Complete name                            : 01 - Holy Wars...The Punishment Due [A].m4a
Format                                   : MPEG-4
Format profile                           : Base Media
Codec ID                                 : isom (isom/dby1/iso2/mp41)
File size                                : 36.6 MiB
Duration                                 : 6 min 35 s
Overall bit rate mode                    : Constant
Overall bit rate                         : 778 kb/s
Album                                    : Rust In Peace
Album/Performer                          : Megadeth
Part/Position                            : 1
Part/Total                               : 1
Track name                               : Holy Wars...The Punishment Due
Track name/Position                      : 1
Track name/Total                         : 9
Performer                                : Megadeth
Composer                                 : Dave Mustaine
Recorded date                            : 1990-09-24
Encoded date                             : UTC 2021-11-17 20:52:06
Tagged date                              : UTC 2021-11-17 20:52:06
ISRC                                     : USUM72121699
Copyright                                : ℗ 1990 Capitol Records, LLC
Cover                                    : Yes
Comment                                  : http://www.tidal.com/track/205605625
REPLAYGAIN_TRACK_PEAK                    : 0.0
REPLAYGAIN_TRACK_GAIN                    : 0.0
REPLAYGAIN_ALBUM_PEAK                    : None
REPLAYGAIN_ALBUM_GAIN                    : None
ARTISTS                                  : Megadeth
MIXER                                    : Max Norman
ENGINEER                                 : Mills Logan
LYRICIST                                 : Dave Mustaine
BARCODE                                  :<PHONE_NUMBER>3975
PRODUCER                                 : Dave Mustaine;Mike Clink

Audio
ID                                       : 1
Format                                   : E-AC-3 JOC
Format/Info                              : Enhanced AC-3 with Joint Object Coding
Commercial name                          : Dolby Digital Plus with Dolby Atmos
Codec ID                                 : ec-3
Duration                                 : 6 min 35 s
Bit rate mode                            : Constant
Bit rate                                 : 768 kb/s
Channel(s)                               : 6 channels
Channel layout                           : L R C LFE Ls Rs
Sampling rate                            : 48.0 kHz
Frame rate                               : 31.250 FPS (1536 SPF)
Compression mode                         : Lossy
Stream size                              : 36.2 MiB (99%)
Service kind                             : Complete Main
Default                                  : Yes
Alternate group                          : 1
Encoded date                             : UTC 2021-11-17 20:52:06
Tagged date                              : UTC 2021-11-17 20:52:06
Complexity index                         : Not present / 16
Number of dynamic objects                : 15
Bed channel count                        : 1 channel
Bed channel configuration                : LFE

Is this more consistent with what you expected?

@ebb-earl-co Yes, this looks excellent! Thanks for such a fast fix. This is very nice improvement!
Now I think that there is no need to open another issue...


TT-598 View editor highlighting

Rebased previous PR

enable sql keyword highlighting in view editor
code completion will require more work to supply the hintOptions

PR Storybook available here


HV-546

Fixing LazyValidatorFactory implementation. Hibernate Validator will always be the default, but other available providers can pass in case they are explicitly requested.
A lot of changes for something quite simple. However, the functional change is only in LazyValidatorFactory, the rest is only test infrastructure.
The LazyValidatorFactory code should be ported to the corresponding factories in the AS 7 codebase.

I haven't run the tests but looks good!

@kevinpollet formatted and fixed the logging version. I tried addAsManifestResource, but that did not work. Haven't really inspected the generated artifacts yet to see where files ended up, but just changing the lines and running the tests is leading to test failures.

I assume that this changes are ok now. Going to merge it into master

rebased and merged


feat: Simplify validator functions

If an error is stored to the NoticeContainer, then it is already clear
that the field is invalid. Returning an additional boolean is redundant
and may lead to bugs when the function returns false but no error
notices are emitted.

Example. Consider we want to lower InvalidPhoneNumberNotice from ERROR to WARNING in a custom implementation of GtfsFieldValidator. A valid code with the old interface must be:
public boolean validatePhoneNumber(
      String phoneNumber, GtfsCellContext cellContext, NoticeContainer noticeContainer) {
    if (!PhoneNumberUtil.getInstance()
        .isPossibleNumber(phoneNumber, RegionCode.valueOf(countryCode.getCountryCode()))) {
      noticeContainer.addValidationNotice(
          new InvalidPhoneNumberNotice(
              ...
              SeverityLevel.WARNING));
    }
   return true;
  }

An invalid code may return still false but emit a WARNING.
public boolean validatePhoneNumber(
      String phoneNumber, GtfsCellContext cellContext, NoticeContainer noticeContainer) {
    if (!PhoneNumberUtil.getInstance()
        .isPossibleNumber(phoneNumber, RegionCode.valueOf(countryCode.getCountryCode()))) {
      noticeContainer.addValidationNotice(
          new InvalidPhoneNumberNotice(
              ...
              SeverityLevel.WARNING));
      return false;   // THIS IS AN INCORRECT COPY-PASTE FROM THE UPSTREAM!
    }
   return true;
  }

If validatePhoneNumber returns void, then it is impossible to introduce a bug.
public void validatePhoneNumber(
      String phoneNumber, GtfsCellContext cellContext, NoticeContainer noticeContainer) {
    if (!PhoneNumberUtil.getInstance()
        .isPossibleNumber(phoneNumber, RegionCode.valueOf(countryCode.getCountryCode()))) {
      noticeContainer.addValidationNotice(
          new InvalidPhoneNumberNotice(
              ...
              SeverityLevel.WARNING));
    }
    // Nothing to return here.
  }

I will reuse that function in Google's own implementation of
Field.Validator.
Den tis 27 apr. 2021 08:01Sean Barbeau @.***> skrev:

@.**** commented on this pull request.
Good catch @aababilov https://github.com/aababilov! One question
in-line.
In
core/src/main/java/org/mobilitydata/gtfsvalidator/validator/DefaultFieldValidator.java
https://github.com/MobilityData/gtfs-validator/pull/870#discussion_r620680212
:

}

static boolean hasOnlyPrintableAscii(String s) {

public static boolean hasOnlyPrintableAscii(String s) {

Why does this need to have it's visibility increased?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/MobilityData/gtfs-validator/pull/870#pullrequestreview-645151218,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAG6IJFQ6MP4PLUJOMHHU7DTKXPFHANCNFSM43ORTZYA
.

I will reuse that function in Google's own implementation of Field.Validator.

Do you think it would make sense to move these types of static methods that may be reused in downstream implementations to their own utility class? Or would you prefer to leave it in the DefaultFieldValidator to make it clearer that you're using the default implementation?

I think it is acceptable for now. We can revisit that later.
Den tis 27 apr. 2021 08:52Sean Barbeau @.***> skrev:

I will reuse that function in Google's own implementation of
Field.Validator.
Do you think it would make sense to move these types of static methods
that may be reused in downstream implementations to their own utility
class? Or would you prefer to leave it in the DefaultFieldValidator to make
it clearer that you're using the default implementation?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/MobilityData/gtfs-validator/pull/870#issuecomment-827191698,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAG6IJB4AZ7IGTQCEI2CAJTTKXVD5ANCNFSM43ORTZYA
.


vibed comparison

Could you add vibed.org to comparison?

I don't know D. Well formed pull request with instructions how to compile and run stuff is more than welcome.

You need only compiler (LDC is better). Than run:
dub init
and select sdl project type
in dub sdl add:
dependency "vibe-d" version="~>0.8.0-beta.4"
that's all. Now you can build D app by:
dub or dub build and next dub run
Examples can be found here https://github.com/rejectedsoftware/vibe.d/tree/master/examples


Generic method

Hello,
Firstly, thank you for this awesome library, it's a pleasure to work with.
Secondly, I work with a very poorly designed API, and have one question about generic interfaces. I saw in the docs that we can do this :
public interface IReallyExcitingCrudApi<T, TKey>
{
    [Post("")]
    Task<T> Create([Body] T paylod);

    [Get("")]
    Task<List<T>> ReadAll();

    [Get("{key}")]
    Task<T> ReadOne(TKey key);

    [Put("{key}")]
    Task Update(TKey key, [Body]T payload);

    [Delete("{key}")]
    Task Delete(TKey key);
}

What I would like to achieve is this :
public interface IReallyExcitingCrudApi
{
    [Post("BlaBla")]
    Task<T> GenericRequest<T>([Body] BaseRequest req);
}

In this very well designed API there's only one endpoint, all request are sent by post, the only differences are in request body and return types. Inherit all my request from BaseRequest it's ok for me and it works fine. The problems is with return type, when I run a request like this one RestEase throws the following exception :

RestEase.Implementation.ImplementationCreationException: 'Unable to create implementation for interface BlaBla.IBlaBlaApi. Ensure that the interface is public, or add [assembly: InternalsVisibleTo(RestClient.FactoryAssemblyName)] to your AssemblyInfo.cs'

Inner exception :

TypeLoadException: Signature of the body and declaration in a method implementation do not match.  Type: 'RestEase.AutoGenerated.<>Bla+Bla+IBlaBlaApi'.  Assembly: 'RestEaseFactory, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null'.

Is my idea compatible with RestEase or am I missing something obvious ?
Thanks in advance for your help and thanks again for such an amazing library.

There's currently no support for generic methods like that, although I'd be up for adding it!

Okay sorry


Rework IHU packet to not include overlay IP

If anything, we should use the underlay IP to stay compatible with the spec

Closed in 4f06d53


head-req-title should also fail for blank titles

At the moment the head-req-title rule will cause an error if there is no <title> but it will not error in this case:
<title></title>
I think this case should also cause an error here.

I agree. That behavior is consistent with other req rules, like img-req-alt.


Repeatable Arguments

#85 Support using arguments multiple times to fill an array of values

This was released as part of 0.3.0.


parkUtils + test cases

added parkUtils + the test cases that correlate with it

Editing to fix the tests


feat: Add the ServiceLoadbalancer Addon, with MetalLB as first provider

What problem does this PR solve?:
Adds the ServiceLoadbalancer addon, and support for MetalLB as the first provider.
TODO:

[x] API type
[x] Generic handler
[x] MetalLB handler
[ ] Deploy MetalLB Helm chart
[ ] Default configuration for MetalLB Helm chart

Which issue(s) this PR fixes:
Fixes https://jira.nutanix.com/browse/D2IQ-100444
How Has This Been Tested?:

Special notes for your reviewer:

When you find time, please don't miss out the docs 😉


Cannot get to work on Lenovo Flex 5

System.Exception
HResult=0x80131500
Message=Failed to hook both Lenovo keyboard and mouse raw input devices
Source=Auto Backlight for ThinkPad
StackTrace:
at Auto_Backlight_for_ThinkPad.Capture..ctor(RawInput ri)
at Auto_Backlight_for_ThinkPad.AutoKeyboardBacklightController..ctor(PowerManagement pm, RawInput ri)
at Auto_Backlight_for_ThinkPad.App..ctor()
at Auto_Backlight_for_ThinkPad.App.Main()
at Auto_Backlight_for_ThinkPad.Program.Main()

Mine too. Please work on this. I would love to use it and to keep the backlight on. Them having it time out makes absolutely no sense since it's how we're supposed to find the keys in the first place in the dark.


v2:bug(header) header overlay content if dynamically change headers height

Short description of the problem:
If you have a page with a ion-header and add an toolbar dynamically this toolbar will overlay the content. On the other way, if the header initially contains multiple toolbars and you hide them later, the content doesn't get repositioned.
What behavior are you expecting?
The content should adapt the position to the height of the ion-header if this change dynamically.
Steps to reproduce:

Create new Page add with two toolbars,
hide one of them initially
show them e.g. after a timeout or a button click
content gets overlayed :cry:

Which Ionic Version?
2.0.beta-10
Plunker that shows an example of your issue
http://plnkr.co/edit/1wvClEZvMqhlcvlQHrDQ?p=preview
Run ionic info from terminal/cmd prompt: (paste output below)
Cordova CLI: 6.2.0
Gulp version:  CLI version 3.9.1
Gulp local:   Local version 3.9.1
Ionic Framework Version: 2.0.0-beta.10
Ionic CLI Version: 2.0.0-beta.30
Ionic App Lib Version: 2.0.0-beta.16
OS: Distributor ID:	Debian Description:	Debian GNU/Linux 8.5 (jessie)
Node Version: v5.12.0

The resize function on content was added for this purpose. It isn't available in beta 10 but it is in the nightly and will be in beta 11. Here are the docs on it (not yet live on the official docs): http://ionic-site-staging.herokuapp.com/docs/v2/api/components/content/Content/#resize
If you'd like to try out the nightly you can install it by using:
npm install --save ionic-angular@nightly

Thanks!

Ok, thanks for the answer.
Here is my workaround until beta 11 gets released
    @ViewChild(Content) content: Content;

    toggleSearch(){
        this.searchVisible = !this.searchVisible;
        setTimeout(()=>{
                this.content.readDimensions();
                this.content.writeDimensions();
        },0 );
    }


unobstrusive function call not working from external template + other js issues

Hi,
I'm new to mustache and after going through your readme, I've followed theses two tutorial to get it up and running with external templates here and here.
Once everything was up, I started to customise it to my needs, namely :

separate all javascript from the html
unobstrusively calling a funcition from an element located in the external template
defining some js variables within my external template before using it in my main functions

And after two days of reading/testing/crowling, and again, I come up with something... surprising !
Maybe it's trivial for an experience mustache.js user, but to me it's mysterious, and as I'm a beginier, I appologise in advance if my question is dumb.
I provide here some example files with working and non working code.
test.html
everything is included in test.html

mustache.render() ok
myFunction() ok

test1.html
the template is included in test1.html
the .js part is in render_loc-funct.js

mustache.render() ok
myFunction() ok

test2.html
the template is in tpl.html
the .js part is in included in test2.html

mustache.render() ok, more precisely myDiv is populated with the content of tpl.html > #tpl-html
myFunction() do not work anymore, whether called unobtrusively (with the two first button and the two list elements) or obtrusively (with the third button). As myFunction() is designed to be called unobtrusively, the former is no surprise.

To check if it was really related to the obstrussive/unobstrusive approch to call a funtion, I created a myFunction2() that I call obstrusivelly with the forth button and it works (see the console).

This I already don't understand.

test3.html
This test has four files : test3.html, tpl.html, render_dist.js, myfunct.js.
At some time, I understood that myFunction() ma be called unobstrusively if and only if render_dist.js is included before myfunct.js
As you can see, render_dist.js and myfunct.js contain exactly the same code than the two script included in test2.html where it was not working.
How the he** can this work while test2.html doesn't ?
Again, if I copy the content of myfunct.js at the botom of render_dist.js, mustache.render() is run but I can't call/run(?) myFunction()...
These two observations lead to me to think about asynchronicity ?
I played (I struggled) a lot with js loading order, to make this happend, but once online, it wouldn't work anymore... and after some more test, I realised that it only worked in the browser included in my development software (coda), but neither in firefox, nor in chrome.
test4.html
This test has four files : test4.html, tpl.html, render_dist2.js, myfunct2.js.
It's basically the same than test3.html but with some extra features :

render_dist2.js is asked to render a peice of javscript located in tpl.html > #tpl-script declared by a <script> tag  having the text/javascript  type attribute.
#tpl-script contains variables declarations that are used by a loop located in myfunct2.js

As in test3.html, this works in the broswer of coda, but not in ff or chrome.
One thing important here, wether in ff or chrome, the console return what is expected, but what should come from myFunction() > console.log(), thus witch still  testify that the script contained in myfunct2.js is sooner or later run.
Finally test5.html
Which contain the same code as test4.html, but built like test.html, namely with all the code in itself.
It serve as a proof that all my code is ok.
Any thought and solution would be welcome.
Thank's
J.
Archive.zip

Hi @jbonlinea!
Thanks for the detailed writeup! Hopefully either @phillipj or myself can take a look soon!

Hi @dasilvacontin,
Great thank's for your reply !
I've updated a bit my previous post to clarify the writing.
Look forward to hear from you !
Cheers

Hi @jbonlinea,
first of all, sorry for not getting back to you sooner. You still wanting to find a solution to what you observed here?
If so I'm wondering how you were loading these files into the browser? By double clicking on the files in a file browser meaning file://.. or did you put up a local static HTTP server so you got http://..?


simple generator

@bkeepers
I'm not sure what the expected $ expansion is supposed to be ... default should be safe I guess so escaping all the $ signs ... leaving unsafe option in to allow usecases that need them, can be avoided by using \\$ ...
I tried shellwords too, but was unable to parse them back in ... which the whole point of this generation logic is ...

@bkeepers

@bkeepers

:cool:
How do you see people using this method? Is it to save a snapshot of the current ENV? Would they defined a rake task or application logic to do it? Just curious to see what the usage will look like.

I'm using it to read-modify-write a .env file here

So only needs an ruby api, nothing else afaik

Ah, that's cool, but I don't imagine it's something that many others would need. I think I'm going to pass on this for now, but I'm happy to reconsider if others need it.

I think it's pretty common/important the a library that reads a certain data format can also write it.
This PR does not add any runtime overhead, so I think it's safe to add.
How about leaving it open with a "Needs testers" tag or something like that ?

just copy-pasted that to the second project .... this time generating .env from config hash to start docker containers ... would be great to get this merged :)

... and copied it to a new project again 😞


Failed indexing mkv(av1)

Trying to open rife.zip
using:
clip = core.bs.VideoSource(source="G:/Output/rife.mkv", cachepath="J:/tmp/rife.json", track=0, hwdevice="cuda")
I get  VideoSource: Indexing of 'G:\Output\rife.mkv' track #0 failed any idea why?
Using 'cpu'  instead of 'cuda' works, but my Geforce RTX 4080 should decode av-1 yuv420P10 content without a problem.

It only happens when zero valid frames can be decoded. Is cuda decoding completely broken using ffmpeg directly?

Just tested, decoding works with R6 but doesn't with R7.
So yes, this might be a ffmpeg issue.

The underlying FFmpeg changed from 6.1.x to 7.0.x so that could be a factor too.

Probably not my fault


There is no nginx configuration

PerfectHTTPServer is already the web server to serve 80/443 with certificates and static contains, why need ngnix?
Suggest to close this issue.

Later I saw the configuration of PerfectHTTPServer, forgot to close the problem.


Add a AFK script

I have used some of the scripts from this repository for a while and found them pretty simple and useful! Referring these, I learnt basic AHK and have made a simple AFK script that I have been using, thought I might give back to the source!
@preco21 Please let me know if you find any glaring issues or want something changed. I have not been able to add the final file link in README, as well as unable to update the Korean README file.

Thank you so much!
I've reviewed the changes and don't see anything that particularly needs to be updated.
And no worries about the Korean translation! I'll take care of it.
Just one little thing: you can link your ahk script in this way:
[`afk.ahk`](https://github.com/preco21/destiny-macros/raw/master/afk.ahk)

This may be unable to preview during the edit though.

I have added the link, cheers.

LGTM Thanks!


Updated SharePoint Group and Office Group

Category

[x] Content fix
[ ] New article

Related issues

fixes #298

Contents of the Pull Request

changed in SharePoint Group "library" to "list"
updated Office Groups to be more precise

Docs Build status updates of commit 068b80e:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

Community/glossary.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Thanks, @LuiseFreese! I see a couple of small spelling mistakes in your version, which I'll fix. Hey, English isn't your first language, and I misspell stuff all the time.

thank you, @sympmarc ! Was my first time here! Great experience, please bear with me regarding typos. Cool to have your support.

And you did great! Thanks for catching the content issues and taking time to fix them. This is how great content gets out there: a team effort!

BTW, your changes won't be visible in the live branch - thus on aka.ms/M365-Community-Docs until I get someone at Microsoft to do that push. @JoanneHendrickson is out on vacation this week, so it might no be until early next week.

thanks for letting me know, I am just happy that this tiny thing worked. Feels very rewarding and actually this GitHub repo seems to be a very nice place! Glad I decided to attend the sessions by Hugo and David. They got me hooked :-)


Auto connect on start

I  moved to Atom from a paid PHP editor, and have almost been able to replicate its functionality using remote-ftp, but not quite.
Specifically, I would have a set of files on my server open, and want to come back to them when I restart the editor. As it is I have to manually load them, and they are in different folders (ie. css, js, php). I'm editing directly on my server and use the local copies as backups.
What would be cool is if somehow remote-ftp could retain state between sessions... connect to the remote server and load the files I had open last session.

+1 for auto connecting when opening a project. I dive into making changes sometimes and wonder why my server isn't showing my updates... doh!


Rewrite [GithubTag]

Ref #2863

Messages

:book:
:sparkles: Thanks for your contribution to Shields, @paulmelnikow!

  Generated by :no_entry_sign: dangerJS against 3dabfcb244b918285fa6d69fb63b041d36e09f9a

I added a unit test for render and have approved 👍 (will defer to someone else to merge since I've added a commit)


[fix: #2200] fix uri have encode

fix #2200

Make sure that:

[ ] You have read the contribution guidelines.
[ ] You submit test cases (unit or integration tests) that back your changes.
[ ] Your local test passed mvn clean install -Dmaven.javadoc.skip=true.

the rewrite plugin can not work

why ? @qicz

Codecov Report

Merging #2234 (f0ee061) into master (141e472) will decrease coverage by 0.79%.
The diff coverage is 75.00%.

@@             Coverage Diff              @@
##             master    #2234      +/-   ##
============================================
- Coverage     58.51%   57.72%   -0.80%
+ Complexity     3943     3907      -36
============================================
  Files           621      621
  Lines         17940    17920      -20
  Branches       1700     1693       -7
============================================
- Hits          10498    10344     -154
- Misses         6590     6737     +147
+ Partials        852      839      -13

Impacted Files
Coverage Δ

...a/org/apache/shenyu/common/constant/Constants.java
50.00% <ø> (ø)

...e/shenyu/plugin/springcloud/SpringCloudPlugin.java
64.86% <0.00%> (+7.72%)
:arrow_up:

...ava/org/apache/shenyu/common/enums/PluginEnum.java
95.55% <100.00%> (+0.10%)
:arrow_up:

.../org/apache/shenyu/plugin/divide/DividePlugin.java
40.00% <100.00%> (-7.37%)
:arrow_down:

...henyu/plugin/httpclient/NettyHttpClientPlugin.java
58.00% <100.00%> (-2.00%)
:arrow_down:

...ache/shenyu/plugin/httpclient/WebClientPlugin.java
92.50% <100.00%> (ø)

...rg/apache/shenyu/plugin/rewrite/RewritePlugin.java
56.25% <100.00%> (-8.75%)
:arrow_down:

...apache/shenyu/admin/transfer/MetaDataTransfer.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...rg/apache/shenyu/admin/utils/ThreadLocalUtils.java
0.00% <0.00%> (-66.67%)
:arrow_down:

...ache/shenyu/plugin/grpc/cache/GrpcClientCache.java
64.70% <0.00%> (-29.42%)
:arrow_down:

... and 15 more

Continue to review full report at Codecov.

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


Wrong structure for azure-cli-nspkg

azure-cli-nspkg has some issues:

Since it's a sub-package of "azure-nspkg", it should have it in dependency
the file "azure/init.py" must be absent (will be provided by the "azure-nspkg" dependency)

See azure-mgmt-nspkg for instance
This is not an issue about the content of "azure/cli/init.py", that should be without declare_namespace or not. So you can release a first version with this fixed, and then a second version without declare_namespace, if you think you're not ready to do both at the same time.
@derekbekoe @johanste

Thanks, @lmazuel. Yes, we also observed this as part of the declare_namespace changes.

@johanste is there any action required here?

This has been addressed.


Properly initialize head time

This fixes various issues when initializing the head time range
under different starting conditions.
Depends on #332
@krasi-georgiev as promised
@jkohen FYI as it depends on the new WAL stuff, but probably not too interesting for you

Rebased and resolved conflicts.

:+1: