[FEAT] Review Flashcards from All Decks Simultaneously

Is your feature request related to a problem? Please describe.
At the moment, unless all cards are under a parent deck, we can't review all the cards in one session
Describe the solution you'd like
I would like an option to study all cards across all decks
It would be nice to have the option to study these cards in random order
Thank you

Wait, isn't this default behavior? If you tag the note with #flashcards all of them show up in a single deck for me.

Wait, isn't this default behavior? If you tag the note with #flashcards all of them show up in a single deck for me.

Yes, it can be when using the tagging option for deck creation.
With the option to turn folders into decks, we're left with top level decks (which, are in the root folder of our vault), such as the following

I just started using the spaced repetition plug-in again, so there isn't many decks to see; however, I hope it is visible that there is no option to review all cards when using folders/subfolders as decks and I think it would a really nice feature to have.
Thank you

Ah, I see. Makes sense. I'll see what I can find.

My current workaround it to put all folders into a 'Home' folder that is in the root of the Obsidian vault

I haven't had the time to dig into the deck construction but I'll keep an eye out to see if it clicks for me.

Hi @cesar-programs
I'm sure you have completely forgotten about your idea :-) but this has now been implemented, and is ready for beta testing.
If there are multiple top-level decks, then the flashcard modal displays an entry for All Decks  for example:

The latest mainstream release 1.11.0 also includes the ability to shown random cards across all decks. This is a new setting:

Beta Testing
There is a file called main.js in this zip file
main_415A.zip
If you wish to try this before it is included in a mainstream release,  you will need to copy that file to the obsidian plug-in folder, e.g.
D:\Obsidian\Obsidian\.obsidian\plugins\obsidian-spaced-repetition
Then reload the plug-in, or restart obsidian.
Any feedback appreciated.
Cheers
Ronny

@ronzulu you've probably seen it already but if not, can you look into using tfthacker's brat tool for easier beta distribution?

@ronzulu you've probably seen it already but if not, can you look into using tfthacker's brat tool for easier beta distribution?

Thanks for letting me know, I hadn't come across it before.


Where are X86 and aarch64 versions of prqlc for macOS?

What's up?
I want to bundle prqlc for macOS into qStudio. I suspect there are two binaries: one for x86, one for Apple Silicon (aarch64).
I've seen the aarch64 binary at: https://github.com/PRQL/prql/releases
Where can I find the binary for x86? Thanks.

@max-sixty removed amd64 release for macOS in #4369, to there are no artifacts.

Yes — maybe a bit hurried but it fit into the general move to the new runners.
It's quite possible to compile a version of prqlc for Intel Macs — cargo install prqlc...
If there are multiple people who want intel binaries, we would accept a PR adding them back, but my base case is that it's not worthwhile...

@max-sixty - I would like to re-open this. Here's my use case: I want to make a double-clickable macOS application bundle for qStudio. To do this I want to add both the x86 and the arm64 prqlc binaries into the bundle.
It's trivial to wget the aarch64 build. To build my proof-of-concept, I just copied the binary from /usr/local/bin/prqlc. This works for the current version, but I wouldn't want to include the entire PRQL build chain into my 15-line script.
I am requesting that we resume building the x86 prqlc binary and put a link on the Releases page. Thanks.

https://github.com/PRQL/prql/pull/4949 :)

Like they say at Staples, "That was easy..." When will that x86 build will appear at: https://github.com/PRQL/prql/releases ? Many thanks.

Great, it's on the page now! https://github.com/PRQL/prql/releases/tag/0.13.1

@max-sixty Thanks! Here's what I used it for... https://github.com/richb-hanover/create-qstudio-macos-app


Third party Issues affecting us

https://github.com/fun-stack/fun-pack/issues/6
https://github.com/scalacenter/scalajs-bundler/issues/287
https://github.com/scalacenter/scalajs-bundler/issues/428
https://github.com/scalacenter/scalajs-bundler/issues/438
https://github.com/scalacenter/scalajs-bundler/issues/440
https://github.com/scalacenter/scalajs-bundler/pull/424
https://github.com/typelevel/sbt-tpolecat/issues/102

Not an issue any more because of https://github.com/reform-org/reform/pull/27


Implement deep mounting

Currently, out test-utils only have one mount method, called mount, which should actually be called shallowMount and we should add a second method called mount that renders descendant elements.

As part of this, I think we might want to create a function that we expose to users that imports all components per the configuration.


Create release from Hotfix PRs

Jira link
HOTT-????
What?
I have added/removed/altered:

[x] Added the ability to push urgent changes to through to production

Why?
I am doing this because:

It avoids the need to choose between no release, reverting changes that have not yet been QAd, or requiring urgent QA decisions.

Deployment risks (optional)

Changes production deployment path

Superceded


Webhook allow to set filter and content type

For webhooks

Currently the default filter is set. Allow to set no filter or custom filters.
Currently content type is set to the default application/vnd.contentful.management.v1+json. Allow to set one of the other options such as application/json

Hi @hemalshah-gradientedge thanks for reaching out!
This looks like something we need to implement. However the contentful terraform provider is currently not high on my priority list, so it might take a while for me to come around to it. Feel free to send me a PR adding this if you need it quickly!


Enable dependabot for automated dependency management

Is your feature request related to a problem? Please describe.
Automated Dependency Management is not enabled on smithy-typescript. Therefore, we don't get notified when dependencies get updated.
Describe the solution you'd like
Enable dependabot once Kotlin support is added in https://github.com/dependabot/dependabot-core/issues/2238
Describe alternatives you've considered

Manually updating dependencies.
Maintain a separate build.gradle just for dependabot support.

Pro: Dependabot will use build.gradle for updating dependencies.
Con: build.gradle.kts will still have to be manually updated.

Merged the related PR


Do I get charged for Google Maps usage if I use OpenStreetMaps?

Summary
I have managed to get react-native-maps up and running. I am able to show Google Maps on it.
Now I just need to know 2 things:

Where to get the OpenStreetMap API from (I couldn't find it anywhere on the website even after registering there)?
Will I get charged for Google Maps usage if I use OpenStreetMaps in the react-native-maps package?

Reproducible sample code
import MapView, { MAP_TYPES, UrlTile } from 'react-native-maps';

export default class Map extends React.Component {
   render() {
      return (
         <View style={styles.container}>
            <MapView
               mapType={MAP_TYPES.STANDARD}
               rotateEnabled={false}
               style={styles.map}
               showsUserLocation>
               <UrlTile
                  urlTemplate={"https://www.openstreetmap.org/#map=8/56.584/11.294"}
                  maximumZ={19}
                  flipY={false}
               />
            </MapView>
         </View>
      );
   }
}

Steps to reproduce
simple RN app with react-native-maps installed and run it.
Expected result
OpenStreetMap usage shouldn't affect Google Maps usage.
Actual result
Cant find OpenStreetMap API
Docs dont show if I will be charged by Google Maps if I use OpenStreetMap instead.
React Native Maps Version
1.4.0
What platforms are you seeing the problem on?
Android
React Native Version
0.71.2
What version of Expo are you using?
Not using Expo
Device(s)
NLS-NFT10 Android 9
Additional information
No response

This seems like it should be a Discussion - https://github.com/react-native-maps/react-native-maps/discussions - and not an Issue labeled “bug”.

are you talking about OSM tilehosting? If so, I believe your options are to pay for something like mapbox or maptiler if you want OSM tiles, or host them yourself. You can’t just link to the OSM site to load their tiles.
Google maps doesn’t charge for their mobile sdk.


[checkpointstore-blob] update dependency version with a caret ^

https://github.com/Azure/azure-sdk-for-js/pull/5824#discussion_r339172201
/cc - @chradek (Close this PR if there is a valid reason to not use caret ^ for this dependency)

For future reference -

npm install --save[-dev]
rush add -p  --caret [--dev]

rush command to add a new package 👆🏻

(notice the --caret flag)
navigate to the appropriate SDK folder and run the command

or add it in package.json(with caret) and run rush update


Dramatically simplify features/support/world

Now that assemblies have been moved into their own modules, this removes all the clever stuff from features/support/world.js making the pattern of steps using assemblies much easier to follow.
Assemblies are now expected to implement async start() and async stop() even if they do nothing.

Great changes!


Write Contributing/Testing process documentation

Write a document that specifies the standard testing/deployment procedure for developers.  The spirit behind this issue is that there are multiple competing ways to deploy and/or test out a PR changeset (publish a container image, make deploy, apply YAMLs directly, etc), and it is unclear for reviewers exactly which procedure to follow.

(responding to @HumairAK's question and/or providing context for this ticket):
I think the best way do this is create either a new section in the README.md, or likely better, create a new CONTRIBUTING.md.
The major points I think we'd like to address are:

how to run DSPO locally
how to deploy DSPO as a developer
how to run unit/functional tests from command line

Given that, I think the way we want to standardize is via make, as we can:

deploy to a cluster you are oc-login'd to via make deploy/make undeploy
run tests via make test, make unittest, and make functest.
generate manifests via make generate and/or make manifests

And finally, running locally can be done via go run main.go --config=$configfile, with a config file looking like
Images:
  ApiServer: quay.io/opendatahub/ds-pipelines-api-server:main-0e8a011
  Artifact: quay.io/opendatahub/ds-pipelines-artifact-manager:main-0e8a011
  OAuthProxy: registry.redhat.io/openshift4/ose-oauth-proxy:v4.12.0
  PersistentAgent: quay.io/opendatahub/ds-pipelines-persistenceagent:main-0e8a011
  ScheduledWorkflow: quay.io/opendatahub/ds-pipelines-scheduledworkflow:main-0e8a011
  Cache: registry.access.redhat.com/ubi8/ubi-minimal
  MoveResultsImage: registry.access.redhat.com/ubi8/ubi-micro
  MariaDB: registry.redhat.io/rhel8/mariadb-103:1-188
  MlmdEnvoy: quay.io/opendatahub/ds-pipelines-metadata-envoy:1.7.0
  MlmdGRPC: quay.io/opendatahub/ds-pipelines-metadata-grpc:1.0.0
  MlmdWriter: quay.io/opendatahub/ds-pipelines-metadata-writer:1.1.0
  CRDViewer: gcr.io/ml-pipeline/viewer-crd-controller:2.0.0-rc.2
  VisualizationServer: gcr.io/ml-pipeline/visualization-server:2.0.0-rc.2

(basically, adapt/expand the variables found in config/configmaps/files/config.yaml )
So this task should just be surrounding those utilities with metadata and context such that a new developer can easily get setup and contribute to the project in a self-service manner


Refresh query on variable change

When changing a variable, (all) queries used for datasource get refreshed. Also when the variable does not affect the query.
Variables based on a query do NOT get refreshed when another variable changes.
Request:

Only refresh a query when input variables change
or add an option to 'query options' where you can select the correct parameters. That would be here:

Add an extra option in the pull down menu of a variable based on a query: 'Refresh on variable X change'

The data source is a query on Microsoft SQL server. It gets updated every time a grafana variable changes.
A Grafana variable can be used to change the query of the datasource (and then the query gets updated automatically), but a Grafana variable can also be used to change the filter in Apache Echarts (replace variable). In the latter case the query should not be updated in Grafana (but it does).

@slindersAmsterdam What do you think if you can display the select element to choose a country directly on the Apache ECharts panel instead of using Dashboard Variables? Will it work for you?
Similar to the button in the top-left corner?

That could be an option that could work.  Is there an example for that?

@slindersAmsterdam This is the code one of the community members shared to get a DOM from Apache EChart's instance and add a button for his use case. It will be a part of the upcoming blog and I was planning to add a select element, hopefully over the weekend.
Adding a select element on DOM will be similar and should be easy to google. If you make it work, please share.
const myFunction = () => {
  alert('myFunction() called!');
}

//Get the DOM for the panel
let dom = echartsInstance.getDom();

//Get the child nodes
let nodeList = dom.childNodes;

//If we haven't added our controls to the DOM yet
if (nodeList.length < 2) {
  //Create a new button
  const btn = document.createElement("button");

  //Establish button name
  const textnode = document.createTextNode("My Button");
  btn.appendChild(textnode);

  //Add click event handler
  btn.addEventListener("click", myFunction);

  //Create a new

  const div = document.createElement("div");

  //Add button to

  div.appendChild(btn);

  //Insert new
 ahead of existing chart div
  dom.insertBefore(div, dom.firstChild);
}

Ok I still have to learn a lot, I can't make it work (but I'm curious if you can add a select element). Still it puzzles me why the data source query gets refreshed in Grafana every time a grafana variable changes. If the variable only interacts with the echart panel, the datasource should not be refreshed. Maybe I'm missing something here..

@slindersAmsterdam, I will look closely later this week.

@slindersAmsterdam We just released Apache ECharts 4.3.0 and added an example with a select list you was looking for: https://volkovlabs.io/blog/echarts-panel-4.3.0-20230417/#panel-variables.
Data Sources with Text inputs are always refreshing when variable changes, there is no workaround it seems. So, using a select list is a good option.


Which User Is Requested First and Which Second

Hello All.
I have a question when it come to Registering which confuses me.
When I attempt to register the agents, it is mentioned that it requires credentials of the Global Admin and the Domain Admin in the Local AD.
My main concern is, when I run either command Register-AzureADPasswordProtectionProxy or Register-AzureADPasswordProtectionForest
Powershell opens a "Windows PowerShell Credential Request" yet at the same time, it mentions AzureCredential.
Is it here where I have to provide Global Admin or Domain Admin Credentials? Or which order should it be?
Guidance is really appreciated

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

ID: 23e000f0-84ce-7ec7-e5ed-4bd9c49f5d49
Version Independent ID: e636b9d1-be81-0f00-97c4-ff4fa9078be3
Content: Deploy Azure AD password protection preview
Content Source: articles/active-directory/authentication/howto-password-ban-bad-on-premises-deploy.md
Service: active-directory
GitHub Login: @MicrosoftGuyJFlo
Microsoft Alias: joflore

@yadcam Thanks for your feedback! We will investigate and update as appropriate.

@yadcam We will now proceed to close this thread. If there are further questions regarding this matter, please reopen it and we will gladly continue the discussion.


SLA for RTO

Hi. Are there any SLAs for Recovery Time Objective when using this method. Or any guarantee of throughput that is offered during restore?

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

ID: eeafbf18-2bee-17c8-9871-118396f904b7
Version Independent ID: 1c591c58-062c-695f-212f-523b4221935c
Content: Azure Instant Restore Capability
Content Source: articles/backup/backup-instant-restore-capability.md
Service: backup
GitHub Login: @trinadhk
Microsoft Alias: trinadhk

@GeethalakshmiG & @trinadhkotturu : any input on SLA for RTO in this context?

Hi if it is instant RP recovery then it will be in order of minutes and if the recovery is from vault it will be in the order of hours. We have recently introduced Restore progress bar which will help you to estimate the time of restore operation,

Thanks for the answer, @GeethalakshmiG
@RyanLWilliams We will now close this issue. If there are further questions regarding this matter, please reply and we will gladly continue the discussion.

Is there any guaranteed throughput we can expect to get? e.g. 50MiB/s? This would greatly help business define their RPOs with Azure Backup?


UpDownWidget not correctly using BaseInput

Reasons for making this change
Whilst attempting to override the BaseInput, I noticed it wasn't being applied for the UpDownWidget.
This change adds a test case for all widgets that use BaseInput to make sure they can be overridden successfully.
I've also removed all instances where BaseInput was required directly, and instead made it always come from the registry for consistency.
Checklist

[ ] I'm updating documentation

[ ] I've checked the rendering of the Markdown text I've added
[ ] If I'm adding a new section, I've updated the Table of Content

[x] I'm adding or updating code

[x] I've added and/or updated tests
[x] I've updated docs if needed
[x] I've run npm run cs-format on my branch to conform my code to prettier coding style

[ ] I'm adding a new feature

[ ] I've updated the playground with an example use of the feature

Thanks!


Add xrpl.libpb as an exported lib

High Level Overview of Change

Tiny change to export libpb so that consumers of libxrpl can link against it again.
Context of Change
Clio could not link against libxrpl produced from the current code.
The reason seems to be that libpb was not exported and consequently did not make it into the linked libraries despite being publicly linked thru thexrpl::libxrpl target in cmake.

Type of Change

[x] Bug fix (non-breaking change which fixes an issue)

API Impact
None other than being able to link against libxrpl as a consumer.

[x] libxrpl change (any change that may affect libxrpl or dependents of libxrpl)

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

Project coverage is 71.1%. Comparing base (d5e5c3c) to head (a00b164).

Additional details and impacted files

@@            Coverage Diff            @@
##           develop   #5022     +/-   ##
=========================================
- Coverage     71.1%   71.1%   -0.0%
=========================================
  Files          796     796
  Lines        66997   66997
  Branches     10982   10980      -2
=========================================
- Hits         47635   47633      -2
- Misses       19362   19364      +2

see 2 files with indirect coverage changes


Unable to use the DD Rings in ArcMap

Using the interface to create the range rings of the DD addin, I am unable to generate the rings.  Below is the inputs.

Below is a screen capture of my attempt to drop center points.

Pressing enter does not generate rings.

@NatalieCampos what coordinate system are those point coordinates in?

I think this goes to the clicking enter to execute tool once all fields are populated. See issue: https://github.com/Esri/distance-direction-addin-dotnet/issues/167. Handled in documentation. Closing


Infra Cost and Architecture

With the advent of huge QA nets and the Pickles SNARK sucking up resources, it's become important to be able to reduce our costs by taking advantage of credits provided by various cloud providers.
The MVP QA Network is designed to deploy testnets to a single k8s cluster, in a single region in GCP, to facilitate this we need we need to rearchitect the deployment.
Requirements:

Able to deploy bulk of resources to Azure Kubernetes Service (easy multi-cloud deployment)
Able to deploy core services/Whales to GCP

Implementation Options:

Couple Infra and Application Deployment more closely
Standardize on kubectl as the deployment interface, abstract away Terraform and write a script
Keep the Terraform as-is, extend to be able to dynamically retrieve credentials from any cloud provider

Time Estimate:

5-9 days

Closing this issue as it is stale for a long time.


As a user, I want to rate the places I visit so I know which places I want to revisit.

Implemented


Add an example for Anaconda or Miniconda

It would be really useful to have an example to show how to cache conda environments.

Sharing what I managed to do:
name: CI

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Cache Conda
      uses: actions/cache@v1
      with:
        path: /home/ga/miniconda3/envs/MYPROJECT
        key: ${{ runner.os }}-conda-${{ hashFiles('environment.yml') }}
        restore-keys: |
          ${{ runner.os }}-conda-
    - name: Setup Conda dependencies
      uses: goanpeca/setup-miniconda@v1
      env:
        CONDA: /home/ga/miniconda3
      with:
         activate-environment: MYPROJECT
         environment-file: environment.yml
         python-version: 3.8
         auto-activate-base: false
    - name: Conda info
      shell: bash -l {0}
      run: |
        conda info
        conda list

    - name: Setup flake8 annotations
      uses: rbialon/flake8-annotations@v1
    - name: Lint with flake8
      shell: bash -l {0}
      run: |
        pip install flake8
        # exit-zero treats all errors as warnings.
        flake8 . --count --exit-zero --statistics

    - name: Run tests
      shell: bash -l {0}
      run: |
        python setup.py test

I made an example on how to do this with the setup-miniconda action:
https://github.com/conda-incubator/setup-miniconda#caching-environments


I added a link to the web development part.

Here I added HTML Dog to the Web Development section. Please view and see if you approve. Thank you.

@NoorinSakhi LGTM

@all-contributors add @NoorinSakhi for content.


[config] make key access easier for testing cases

We had overcomplicated our configs for testing purposes only. This allows us to make NodeConfigs non-mutable and cloneable without impacting the security of our actual production keys.

:umbrella: The latest upstream changes (presumably 6d7d9e112a1ecfffad60f422de2b86646593d5d9) made this pull request unmergeable. Please resolve the merge conflicts.

Why is the mutbility of configs problematic? What I mean by this is that it's a very restricted form of mutability, strictly following the mem::replace pattern. I.e. you either have a config with a private key or one that has None.

I think we should have a principled approach in dealing with configs. They /should not/ be mutable and they should be copyable. This pattern is very problematic in that we allow test-only code to dictate the utility / simplicity of other components.

If you indeed have (future) reasons to need cloneable private keys in production, why does this PR not remove the Options in SafetyRulesConfig, which are there exclusively to support the mem::replace pattern?

Are you referring to the optional test config: https://github.com/libra/libra/blob/master/config/src/config/safety_rules_config.rs#L24

We have several tools for simplifying the cloning patterns of private keys.
Have you considered making testconfig accessible under #[cfg(test)] only? The new resolver has made the use of features less cumbersome, and under that flag, private keys are cloneable.

As long as we rely on config builder to test production code (note code not environment), we're stuck in this ugliness.

Have you thought of documenting the requirement, reinforced by this PR, that we assume validators run with a key manager in all cases? There's more work on bringing our memory use for confidential keys to state-of-the-art coming down the 'pike, and that may now be obsoleted, if we've taken a decision to rely on out-of-memory separation?

The name of each config wherein keys live (except networking) is called *TestConfig. I think that's pretty intuitive, but if there aren't comments, we can easily amend them.
For what it is worth, the keys from storage are cloneable because there's no sensible way to ensure that a key is only ever retrieved once and that may very well not be the right behavior either.

I can agree that configs should not be mutable, but clonable.
I think the only keys that we need to make sure don't get cloned everywhere are really network keys, and them being passed in a config file is not great in any case. (The others are in the TCB and it should be pretty easy to check that there.)
cc @phlip9 @gregnazario I think we should look into a way for full nodes to store and load network keys securely
@bors-libra delegate+

:v: @davidiw can now approve this pull request

@bors-libra r=mimoo

:pushpin: Commit 4b065ab has been approved by mimoo

:lock: Merge conflict

:umbrella: The latest upstream changes (presumably<PHONE_NUMBER>119bc2f4c9f6ae36f00049770eaf57) made this pull request unmergeable. Please resolve the merge conflicts.

@bors-libra r=mimoo

:pushpin: Commit 5ce4259 has been approved by mimoo

:hourglass: Testing commit 5ce4259e3042fe81af2101c54a965618e7c4f1eb with merge 40ad73104e17d3ad67c326e757396a6718acad84...

:sunny: Test successful - checks-actions_land_blocking_test, checks-circle_commit_workflow
Approved by: mimoo
Pushing 40ad73104e17d3ad67c326e757396a6718acad84 to master...


GoogleCloudMessaging.send only send Bundle string values

When sending upstream messages with GoogleCloudMessaging.send(), the Bundle for the data sent to the app server, in the JSON "data" property, are only included if it's String values (Bundle.putString). This is a JSON payload it should at least also send double, boolean values aswell.
Since Android doesn't have Parcelable JSON object, it could be encoded using Bundle for object, and put<Float|Integer|Parcelable|String>ArrayList for array, putBoolean for boolean, put<Double|Float|Integer> for number and putString for string properties.

Thanks for your feedback, we are currently not planning on supporting this.


Fix for TS 2022 and up problem

This took longer than it should have.
This will fix issue #44

Thanks @Ice-mourne . Sorry for the delay.


File.copySync() run in separate isolate somehow causes UI thread to churn

Steps to reproduce
Run the following app:
import 'dart:io' as io;
import 'dart:isolate';

import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';

void main() {
  runApp(
    const MaterialApp(
      title: 'Issue reproduction',
      home: IssueApp(
        numCopiesToMake: 30,
        fileSize: 1024 * 1024 * 1024, // 1GB
      ),
    ),
  );
}

class IssueApp extends StatefulWidget {
  const IssueApp({
    super.key,
    required this.numCopiesToMake,
    required this.fileSize,
  });

  final int numCopiesToMake;
  final int fileSize;

  @override
  State<IssueApp> createState() => _IssueAppState();
}

class _IssueAppState extends State<IssueApp> {
  static Future<int> _copyLargeFileNTimes(_Message message) async {
    // The isolate name here should show that we're not running in the UI thread.
    print('Copying large file ${message.numCopiesToMake} times in isolate "${Isolate.current.debugName}"');

    final io.Directory tmpDir = io.Directory.systemTemp.createTempSync('dart_issue_');
    try {
      final String separator = io.Platform.isWindows ? r'\' : '/';

      // Create a file to serve as a template
      io.File templateFile = io.File('${tmpDir.path}${separator}template');
      templateFile.writeAsBytesSync(List<int>.generate(message.fileSize, (int i) => i % 0xff));
      print('done creating template file; starting to make copies');

      for (int i = 0; i < message.numCopiesToMake; i++) {
        io.File iter = io.File('${tmpDir.path}${separator}copy_$i');
        templateFile.copySync(iter.path);
      }

      return message.numCopiesToMake;
    } finally {
      tmpDir.deleteSync(recursive: true);
    }
  }

  @override
  void initState() {
    super.initState();
    () async {
      int n = await compute<_Message, int>(_copyLargeFileNTimes, _Message(widget.numCopiesToMake, widget.fileSize));
      print('copied file $n times');
    }();
  }

  @override
  Widget build(BuildContext context) => const Center(child: CircularProgressIndicator());
}

class _Message {
  const _Message(
    this.numCopiesToMake,
    this.fileSize,
  );

  final int numCopiesToMake;
  final int fileSize;
}

Expected behavior
Since the work is done in a worker isolate, you expect the progress indicator to keep spinning at 60fps the entire time.
Actual behavior
After you see the "done creating template file; starting to make copies" message in the logs, the frame rate of the app drops substantially as you can see in the progress indicator animation.
Diagnosis
The UI thread is somehow getting involved in the I/O work that's being done in the separate isolate.
Info
$ flutter doctor -v
[✓] Flutter (Channel main, 3.18.0-18.0.pre.46, on macOS 14.1 23B2073 darwin-arm64, locale en-US)
    • Flutter version 3.18.0-18.0.pre.46 on channel main at /Users/tvolkert/project/flutter/flutter
    • Upstream repository git@github.com:flutter/flutter.git
    • Framework revision 7c9c1705e8 (2 days ago), 2023-12-29 07:40:37 -0500
    • Engine revision ea4fb2cb94
    • Dart version 3.3.0 (build 3.3.0-272.0.dev)
    • DevTools version 2.31.0-dev.0

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/tvolkert/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.7+0-17.0.7b1000.6-10550314)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.0.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15A507
    • CocoaPods version 1.14.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2023.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.7+0-17.0.7b1000.6-10550314)

[✓] VS Code (version 1.85.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.80.0

If you use the tracer on https://perfetto.dev/, you can see what Cores are being assigned to what work. My guess is its something similar to https://github.com/flutter/flutter/issues/135443 where your background isolate is getting scheduled on the fast core and kicking the UI or raster thread off to a slow core.

@tvolkert I'm guessing this is running on an Android device? perhaps your big old TV?

Nope this was on macOS desktop with an M3 max chip and 64GB RAM.

Interesting! In that case I'd probably be interested to see what exactly was happening on the UI thread. We have some instructions for getting flame graphs here:
https://github.com/flutter/engine/blob/main/impeller/docs/ios_cpu_profile.md
Might potentially be a dart:io issue

I'd suspect a GC issue. Lightweight isolates cooperate on GC. If you have one Isolate make a huge allocation and then block the thread on long running synchronous IO operations, it may be failing to cooperate on GC with the UI isolate, causing weird GC behavior on the UI thread. I'm curious what happens if you change the copySync() to an await copy(). That will run the copy on a third thread, which should leave the helper Isolate thread available to cooperate with the UI thread on GC, which might remove any pathological behavior.

Took a look at a timeline:

It looks like Dart_NotifyIdle is triggering a new gen collection on the UI thread, which is failing to synchronize with the worker isolate while it's blocked on the copy call.
Changing to the async version of the copy call as I suggested above avoids the animation stalls. Unfortunately, it seems like an Isolate in an Isolate group doing blocking I/O might need some extra consideration in the interaction between Dart_NotifyIdle and new gen GC synchronization? @rmacnak-google may have ideas here.

This is surprising. A native like File_Copy should already be at a safepoint during the actual I/O, and a GC should not need to wait for it.

@rmacnak-google any thoughts on next steps for tacking this down?

Oh, I see it's this? https://github.com/dart-lang/sdk/commit/fa7cadde8038873c07fb3b68f4812393403135b3

The issue was with the I/O operations rather than NotifyIdle.


orm(engine): merge executormeta into orm pkg

What problem does this PR solve?

Issue Number: ref https://github.com/pingcap/tiflow/issues/5673
What is changed and how it works?
At some point in the past, we planned to split the orm package. executormeta was created outside of the orm package to support that plan. However, there was not enough time to have a good implementation. As a result, all clients except the executormeta client are still in the orm package. It looks weird. Also, confusion was caused by the package name model, where we had to use different alias names for different import paths.
This PR will merge the executor meta into the orm package to get a better code structure. If we split the orm package in the future, we can split it again then. But for now, all the clients should be in the orm package.
Check List
Tests

Unit test
Integration test
Manual test (add detailed scripts or steps below)
No code

Questions
Will it cause performance regression or break compatibility?
Do you need to update user documentation, design documentation or monitoring documentation?
Release note
None

/run-engine-integration-test

Codecov Report

Merging #7473 (7b3e3cf) into master (f4754e1) will decrease coverage by 5.5056%.
The diff coverage is 26.7241%.

Additional details and impacted files

Flag
Coverage Δ

cdc
?

dm
52.0032% <0.0000%> (-0.0051%)
:arrow_down:

engine
61.1837% <27.4336%> (+0.2152%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.
@@               Coverage Diff                @@
##             master      #7473        +/-   ##
================================================
- Coverage   59.8150%   54.3094%   -5.5057%
================================================
  Files           803        424       -379
  Lines         92129      53267     -38862
================================================
- Hits          55107      28929     -26178
+ Misses        32213      21564     -10649
+ Partials       4809       2774      -2035

/merge


🐞 [Bug]: Fix loading spinner size in k8s

Is there an existing issue for this?

[X] I have searched the existing issues

which package/s did you face the problem with?
Dashboard
What happened?
Spinner size is way too big.
Steps To Reproduce

login to Dashboard
Navigate to orchestrators/k8s
change values so you can check the loading spinner size

Issue may exist in other VMs too.
which network/s did you face the problem on?
Dev
version
Locally
Twin ID/s
No response
Node ID/s
No response
Farm ID/s
No response
Contract ID/s
No response
Relevant screenshots/screen records
spinner.webm
Relevant log output
-

Work completed:
Decrease dynamic tabs loading size

verified on devnet
version : 5c12959
spinner size is fixed


Hack to allow the vim-tmux-navigator plugin key bindings to interupt.

I'm sure there is a more elegant and flexible solution available, but thought it worth mentioning that I have just created this hack to work around #166 for myself.
This allows the <c-h>, <c-j>, <c-k> and <c-l> binding provided by the
vim-tmux-navigator plugin to be used to switch to a tmux pane while
vdebug waits for a connection to the debugger.
This is useful when debugging cli scripts and you need to change to a
differnt tmux pane so as to execute your script.

Given that I'm going to be pushing for a release of Vdebug 2 soon, which uses non-blocking socket listening, this will be redundant fairly soon (hopefully). So I'm going to close. Thanks for the work you put in, sorry that it won't be incorporated!

v2? I'm sooo excited!

;)
On Fri, 21 Aug 2015 16:37 Leho Kraav<EMAIL_ADDRESS>wrote:

v2? I'm sooo excited!
[image: Alt text for your video]
http://www.youtube.com/watch?v=8iwBM_YB1sE
—
Reply to this email directly or view it on GitHub
https://github.com/joonty/vdebug/pull/122#issuecomment-133465409.


quartz fires duplicated job when the job running for more than 12 hours

I have one job that can run for more than 12 hours while it is scheduled to run every 12 hours . It seems it always fires duplicated job even the job is annotated as @DisallowConcurrentExecution .

it seems the job got recovered as the pod restarted sometimes, the recovered trigger can run at the same time as the cron trigger .

Yes, recovering jobs can (unfortunately) run concurrently.  Job Recovery feature is not (very) compatible with Disallow Concurrent Execution feature.  See #1097


CI and devshell

I'm opening this PR for a number of reasons:

Making implicit dependencies explicit, e.g., version of probe-rs, cargo (by using rust-toolchain.toml / rust-toolchain-nightly.toml. Allow every developer of the project to have the exact same toolchain, et cetera.
Simplify the adoption of embassy for newcomers. Everything you need is a nix develop away
CI: basic formatting and linting for the whole project (see nix/formatters.nix for whole list). Later we can also build the whole project, examples and all, using Github Actions or another open platform.
Reproducible builds and caching: While not implemented yet, this PR opens the ability to build embassy project reproducibly manner.

Open to suggestions. Love the project!

Why is this a private app?

First of all thanks for taking the time to improve this. I'm a bit divided if we should start to add such development environment-specific things like nix configs to the repo. We already have .vscode, but this has a lot of users so I think that's ok.
Isn't there a way to keep these out-repo in a usable form to ensure we don't end up with tons of files like these which we have no way to maintain?

Thank you @lulf!
Ultimately there are both pros and cons to having the developer environment as part of the repo: The good is consistent environments for all (if it works on my machine it works on yours), you get single-source of truth formatting and linting, you also get reproducible CI basically for free. The bad is that in some repsect you already have versioning with rustup and rust-toolchain.toml.
Nix or not, generally I feel having a formatter and linter on such a quickly growing project is a good idea! CI should make sure everything is formatted/linted correctly before merge. CI should not rely on commands such as cargo batch which AFAIK are custom, not used anywhere else and not documented.
The CI should be open source, clearly showcasing how to build the project, or at least the part of it you can, e.g., making sure the code builds, tests get run, examples built (obviously you cannot do hw-in-the-loop if using Github Runners), et cetera :-)

unfortunately I don't think we should merge this:

The upside is limited: The majority of users don't use nix, this only benefits the users who do. No maintainers currently use Nix AFAIK.
The downside is more widespread: every maintainer and contributor needs to keep the nix files up to date for every change they do, and learn enough Nix to be able to do so.
I don't think it's a good tool for CI. The workflow you added takes 11min with cold cache, 1min33s with warm cache. All it does is a format check (as far as I can tell). As a comparison, the existing rustfmt check takes <5s.

using Github Actions or another open platform.

github actions is not open source! the CI system we're using is.

Reproducible builds and caching: While not implemented yet, this PR opens the ability to build embassy project reproducibly manner.

This is a library. People consume it in source form, building it themselves together with their project. We're not producing any binary artifact that people are downloading that we'd care about reproducibility. Rust's .rlib format is highly unstable.

CI should not rely on commands such as cargo batch which AFAIK are custom, not used anywhere else and not documented.

cargo batch exists because it makes CI massively faster: on a ryzen 9 7950x, running the cargo batch in ci.sh takes 2min25s, changing it to run cargo build N times takes 12min. The reason is cargo build can't share the target dir, so it can't be parallelized. Separate target dirs can but then you're building the deps over and over again which is even slower. cargo batch parallelizes and shares the target dir.
It's easy to dismiss "custom, not used anywhere else" things as something intrinsically bad. However, most projects don't have a crate with 1500 Cargo features that needs testing, so here it makes sense to use something not used anywhere else. Same for bender and HIL testing.

No problem at all. I understand where you are coming from. In the end you share the maintenance burden and have to understand the tools and technologies 🤗


Share "is this message editable/deletable" logic from webapp

@timabbott in https://github.com/zulip/zulip-mobile/pull/3880#issuecomment-583621392 points out the webapp's functions message_edit.get_editability, message_edit.get_deletability, and friends, and suggests they're probably functions we should move to shared code.
Looking at message_edit.js, I agree. There's a lot of detail there reflecting different features of Zulip and nuances of its application logic: (a) there's a time limit to edit; (b) but you can edit the topic until a longer time limit; (c) there's an org/realm setting to disable editing entirely; (d) there's another one to allow editing other people's topics; (e) oh but admins can edit other people's topics regardless of (d), but subject to (c); etc., etc., etc. We do not want to try to reimplement all that. :stuck_out_tongue:
The first phase of making this happen will be in the web frontend codebase -- some refactoring will be needed to move them into the shared package, in particular for them to take through parameters the information they get from page_params. I'll file a companion issue there.
I think this isn't currently a high priority; our current UX for editing messages is not good, and I think there are other improvements we can make to it first with a greater impact. But recording it for the queue.

See also https://github.com/zulip/zulip/issues/21739 --- the underlying semantics will be changing sometime soon.


Build changes and readme

[X] Browser build renamed from browser.js to tensor-diagrams.js
[X] Does not compile D3 in the browser build - it is D3@7 is a separate dependency
[X] Removed CLI builds
[X] Wrote README for this project
[X] Project badges
[ ] Change local browser test

Right now there is an error with ESBuild with --external:d3:

Uncaught Error: Dynamic require of "d3" is not supported

Most likely it can be solved within https://esbuild.github.io/api/#external.


Replace deprecated gpt models

davinci and curie models have been deprecated in favor of gpt-3.5-turbo-instruct (https://platform.openai.com/docs/deprecations)

Ahh, I was looking for this. Thank you.
Do you have any idea on when the admins will merge this? It looks like it's been a year since the last commit.

 If you want something that legitemaley works. I actually forked the repo and got it working. https://github.com/theCompanyDream/strapi-supergpt


Android TV support

Hi. Is it possible to add android TV support ?
Thx

@upurii unfortunately notifications are not supported on Android TV, and this app works exclusively on top of Android notifications.


DoubleConversion and glog including bitcode

Description
Bundle upload is failing because DoubleConversion and glog contain bitcode after upgrading to Xcode 16.
Steps to reproduce

Run yarn install on root directory
Run cd ios && pod install
Open ios/app.xcworkspace file
Select the target and select Product -> Archive
Once Archive is done select Distribute App and select App Store Connect

React Native Version
0.73.10
Affected Platforms
Runtime - iOS
Output of npx react-native info
System:
  OS: macOS 14.7
  CPU: (8) arm64 Apple M1 Pro
  Memory: 237.45 MB / 16.00 GB
  Shell:
    version: "5.9"
    path: /bin/zsh
Binaries:
  Node:
    version: 18.12.0
    path: ~/.nvm/versions/node/v18.12.0/bin/node
  Yarn:
    version: 1.22.19
    path: ~/.yarn/bin/yarn
  npm:
    version: 8.19.2
    path: ~/.nvm/versions/node/v18.12.0/bin/npm
  Watchman: Not Found
Managers:
  CocoaPods:
    version: 1.15.2
    path: /opt/homebrew/bin/pod
SDKs:
  iOS SDK:
    Platforms:
      - DriverKit 24.2
      - iOS 18.2
      - macOS 15.2
      - tvOS 18.2
      - visionOS 2.2
      - watchOS 11.2
  Android SDK: Not Found
IDEs:
  Android Studio: 2022.3 AI-223.8836.35.2231.10406996
  Xcode:
    version: 16.2/16C5032a
    path: /usr/bin/xcodebuild
Languages:
  Java:
    version: 17.0.12
    path: /usr/bin/javac
  Ruby:
    version: 3.2.2
    path: .rvm/rubies/ruby-3.2.2/bin/ruby
npmPackages:
  "@react-native-community/cli": Not Found
  react:
    installed: 18.2.0
    wanted: 18.2.0
  react-native:
    installed: 0.73.10
    wanted: 0.73.10
  react-native-macos: Not Found
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: true
  newArchEnabled: false
iOS:
  hermesEnabled: true
  newArchEnabled: false

Stacktrace or Logs
Uploading - rainUSStaging.ipa ...
$ xcrun "altool" "--upload-app" "-f" "/Users/vagrant/deploy/rainUSStaging.ipa" "--type" "ios" "--apiKey" "69BDKDYV2W" "--apiIssuer" "628ad7b2-a6b7-4cf1-b9da-2eaa1ed1a9f8"
Running altool at path '/Applications/Xcode-16.1.0.app/Contents/SharedFrameworks/ContentDeliveryServices.framework/Frameworks/AppStoreService.framework/Support/altool'...
2024-12-19 11:43:10.116 *** Error: [ContentDelivery.Uploader.600002A401C0] Asset validation failed (90482) Invalid Executable. The executable 'rainUSStaging.app/Frameworks/double-conversion.framework/double-conversion' contains bitcode. (ID: 2c998b48-147c-43bd-b864-2799aef53992)
2024-12-19 11:43:10.116 *** Error: [ContentDelivery.Uploader.600002A401C0] Asset validation failed (90482) Invalid Executable. The executable 'rainUSStaging.app/Frameworks/glog.framework/glog' contains bitcode. (ID: 5796d835-f3a3-4988-b87d-58500b027fa8)
2024-12-19 11:43:10.191 [ContentDelivery.Uploader.600002A401C0]
=============
UPLOAD FAILED with 2 errors.
=============
2024-12-19 11:43:10.192 *** Error: Error uploading '/Users/vagrant/deploy/rainUSStaging.ipa'.
2024-12-19 11:43:10.192 *** Error: Asset validation failed Invalid Executable. The executable 'rainUSStaging.app/Frameworks/double-conversion.framework/double-conversion' contains bitcode. (ID: 2c998b48-147c-43bd-b864-2799aef53992) (90482)
 {
    NSLocalizedDescription = "Asset validation failed";
    NSLocalizedFailureReason = "Invalid Executable. The executable 'rainUSStaging.app/Frameworks/double-conversion.framework/double-conversion' contains bitcode. (ID: 2c998b48-147c-43bd-b864-2799aef53992)";
    NSUnderlyingError = "Error Domain=IrisAPI Code=-19241 \"Asset validation failed\" UserInfo={status=409, detail=Invalid Executable. The executable 'rainUSStaging.app/Frameworks/double-conversion.framework/double-conversion' contains bitcode., id=2c998b48-147c-43bd-b864-2799aef53992, code=STATE_ERROR.VALIDATION_ERROR.90482, title=Asset validation failed, NSLocalizedFailureReason=Invalid Executable. The executable 'rainUSStaging.app/Frameworks/double-conversion.framework/double-conversion' contains bitcode., NSLocalizedDescription=Asset validation failed}";
    "iris-code" = "STATE_ERROR.VALIDATION_ERROR.90482";
}
2024-12-19 11:43:10.192 *** Error: Asset validation failed Invalid Executable. The executable 'rainUSStaging.app/Frameworks/glog.framework/glog' contains bitcode. (ID: 5796d835-f3a3-4988-b87d-58500b027fa8) (90482)
 {
    NSLocalizedDescription = "Asset validation failed";
    NSLocalizedFailureReason = "Invalid Executable. The executable 'rainUSStaging.app/Frameworks/glog.framework/glog' contains bitcode. (ID: 5796d835-f3a3-4988-b87d-58500b027fa8)";
    NSUnderlyingError = "Error Domain=IrisAPI Code=-19241 \"Asset validation failed\" UserInfo={status=409, detail=Invalid Executable. The executable 'rainUSStaging.app/Frameworks/glog.framework/glog' contains bitcode., id=5796d835-f3a3-4988-b87d-58500b027fa8, code=STATE_ERROR.VALIDATION_ERROR.90482, title=Asset validation failed, NSLocalizedFailureReason=Invalid Executable. The executable 'rainUSStaging.app/Frameworks/glog.framework/glog' contains bitcode., NSLocalizedDescription=Asset validation failed}";
    "iris-code" = "STATE_ERROR.VALIDATION_ERROR.90482";
}
Uploading IPA failed: exit status 1

Reproducer
https://github.com/react-native-community/reproducer-react-native/tree/main/ReproducerApp
Screenshots and Videos
https://github.com/user-attachments/assets/ab9b9cb2-38ba-43a1-9944-af2137cf3fdd

@rafaelpadovanirain Can you please try these on latest react-native version?

It turns out that Flipper was the one to blame. It was creating the bitcodes under the hood for both. I'll close the issue but I'll leave this comment here in case anyone else run into this.

It turns out that Flipper was the one to blame. It was creating the bitcodes under the hood for both. I'll close the issue but I'll leave this comment here in case anyone else run into this.


use https.ok from HTTP package

Thank you. Can you check the style check failures? https://github.com/nexB/vulnerablecode/actions/runs/8490816624/job/23265445454?pr=1450#step:6:671

All tests passed!


implement more efficient m-separation property with tests

Fixes #4
Changes proposed in this pull request:

Provides a new implementation of m-separation that adapts the d-separation implementation in networkx.algorithms.d_separation for mixed-edge graphs.

Before submitting

[ ] I've read and followed all steps in the Making a pull request
section of the CONTRIBUTING docs.
[ ] I've updated or added any relevant docstrings following the syntax described in the
Writing docstrings section of the CONTRIBUTING docs.
[ ] If this PR fixes a bug, I've added a test that will fail without my fix.
[ ] If this PR adds a new feature, I've added tests that sufficiently cover my new functionality.

After submitting

[ ] All GitHub Actions jobs for my pull request have passed.

Awesome! very cool. I'll take a look at the code.
Logistically, I know this is somewhat more an issue, but I now started a networkx PR for the main functionality we want in networkx. m-separation being one of them.
Would you be open to making a PR to my fork on the branch mixededge? That way, the final PR into networkx also tracks your contribution?
Lmk if this seems somewhat involved w/ git. Happy to help out.
Ref: https://github.com/networkx/networkx/pull/5947
Alternatively...
If you would prefer, we can just discuss/iterate/merge things here and I can add these into the networkx PR with a "Co-Authored-by: " to give you credit.
I can do either relatively simply.

For the former am I right in seeing that I would need to fork your fork, copy over the changes (only two files so doable) and then issue the PR? I can do that without too much trouble I think

For the former am I right in seeing that I would need to fork your fork, copy over the changes (only two files so doable) and then issue the PR? I can do that without too much trouble I think

You would create a fork of networkx (or my fork), then create a new branch of these changes. Then issue a PR. Probably something along these lines to make sure we're on the same page:
git clone <your new fork>

# you should be on main branch to get the most up-to-date code
git branch

# now you have your new branch for the improved m-separation code
git checkout -b msep

# add changes
git add -A
git commit -m "New changes"
git push

# now go to GH of my fork https://github.com/adam2392/networkx
# issue a PR from 'msep' -> 'mixededge'

I think I did it, see PR #1 on your mixededge branch. Let me know if I screwed up

Yep! Looks good! Closing this one then now.


Main

Changes done as per new Updated on Comet- Farm API's and getting result in the local ops file

Attaching a screen shot of the result showing in the terminal from local ops.py file


.gitignore: ignore vim swap files

Signed-off-by: Simental Magana, Marcos<EMAIL_ADDRESS>

Coverage increased (+0.03%) to 66.935% when pulling<PHONE_NUMBER>d97fdd9e4e7f3baaa12c95d27b3da0 on mrkz:ignore_vimfiles into 608387ce6805792ed2fbca26037a207df45ba1c6 on 01org:master.

Coverage decreased (-0.005%) to 66.926% when pulling c8cf3cf03827105a74b236a7418cad2a9d52f1e9 on mrkz:ignore_vimfiles into 4fe33ae248d6d3967f9180e184a6031c6cfce8a3 on 01org:master.


Problem on filtering API with policy name

API-Mgr. CLI version
1.10.1
API-Manager and Service-Pack Version
7.7.20200730
Expected behavior
apim settings get -s my-env
or
apim api get -s my-env -policy "my policy (here is the problem)"
I want to see how many APIs use a policy.
Actual behavior
The result is no Apis were found or the number of API is 0 although I know there is Apis using this policy
Log-Output in Debug
Test case sample
Create a policy with "( )" in the name.
In com.axway.apim.adapter.apis.ApiFilter.isPolicyUsed , policy name is compile as a regex. I think there is a problem when the name contains "( )".

Thanks for the PR @ftriolet.


Collect information about data downloaded

A database should be implemented into the backend subscribe_backend.exe that stores the following information about the downloads:

Data ID
Data Type (Canonical, Update, Deletion)
Topic
URL
Create Timestamp UTC
Update Timestamp UTC (Defaults to create timestamp until there is an update)
Status (Success, Failure, Pending)

This data ID should be used to check for duplicates - if the data ID is already found, the data should not be re-downloaded unless the data type is update.
Potential method: TinyDB

Can be closed ? The backend now exposes metrics covering most of these

Yeah, you're right.


Update of jcommander to 1.72 because of an old 1.66 version

Fixes # .
Did you remember to?

[ ] Add test case(s)
[ ] Update CHANGES.txt

We encourage pull requests that:

Add new features to TestNG (or)
Fix bugs in TestNG

If your pull request involves fixing SonarQube issues then we would suggest that you please discuss this with the
TestNG-dev before you spend time working on it.

Already done.


Doesn't work with MDX

Hey @naiyerasif!
I tried using this library with my Astro project using MDX, and for some reason it works fine on .md files but not .mdx. Maybe the AST it gives you is different?

@naiyerasif Sorry for the delay, ended up needing to do some experimenting. Looks like it's only an issue when:

You used MDX
You use relative image paths (at least in Astro)

StackBlitz example: https://stackblitz.com/edit/github-t4hxnf-jgjzzy?file=src%2Fcontent%2Fblog%2Fusing-mdx.mdx
I added the captioned image to the markdown-style-guide.md file too, and there the caption shows, just not in the MDX file.


HttpTarget constructor only allows you to set protocol, host and port but it doesn't allow you to set the path of the application. If your application is running in different context rather than root (/) then you cannot use it (basically you need to implement your own Target).
I think that the best way to proceed would be modify this method:
 private ProviderInfo getProviderInfo() {
        final ProviderInfo providerInfo = new ProviderInfo();
        providerInfo.setPort(port);
        providerInfo.setHost(host);
        providerInfo.setProtocol(protocol);

      final List<FrameworkMethod> methods = testClass.getAnnotatedMethods(TargetRequestFilter.class);
      if (testClass != null && !methods.isEmpty()) {
          providerInfo.setRequestFilter((Consumer<HttpRequest>) httpRequest -> methods.forEach(method -> {
            try {
              method.invokeExplosively(testTarget, httpRequest);
            } catch (Throwable t) {
              throw new AssertionError("Request filter method " + method.getName() + " failed with an exception", t);
            }
          }));
        }

        return providerInfo;
    }

and also add a new constructor which takes a URL as a parameter.
I can provide PR about this.

So what you are looking for is a base path that is prefixed to all HTTP requests made during the test run?

Well in my example I have one docker image and the server is deployed in a base path (basically WAR file is called starwars.war so the base is /starwars).
Then the REST endpoints are in /rest/...... so the gateway class makes a connection to the endpoint with something like WebTarget peopleTarget = client.target(planetsUrl).path("rest/planet/orbital/average"); were planetsUrl can be http://localhost:8080/starwars or http://dockerHost:9090/starwars or whatever.
Obviously the test on the consumer looks like:
return builder
                .given("planets aggregator")
                .uponReceiving("Planets average calculation")
                    .path("/rest/planet/orbital/average")
                    .method("GET")

Since the clientUrl changes depending on where it is deployed, maybe it could be even http://localhost:8080/starwars-SNAPSHOT but what it doesn't change is the REST URL part.
But then let's look at producer part, if you want to use the default HttpTarget, you get the problem that you can only specify the protocol http, the port 8080 and the host localhost, but you cannot add the path which in my case is starwars.
What I have done is copy paste the HttpTarget class and add one constructor https://gist.github.com/lordofthejars/b76b4138304c66259b10 but If you agree I could send a PR in the HttpTarget class so everyone can use the same.

That will definitely be helpful for others. A pull request would be awesome, but if you don't have the time I could sort it out for you.

No worries, I have always time to contribute to open source community.  :) More discussions coming in next hours

I close the issue since it has been merged the change.